<?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>28930</bug_id>
          
          <creation_ts>2009-09-02 17:58:23 -0700</creation_ts>
          <short_desc>Enable switch for notifications in Page Settings</short_desc>
          <delta_ts>2009-09-24 19:46:02 -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>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Gregg">johnnyg</reporter>
          <assigned_to name="John Gregg">johnnyg</assigned_to>
          <cc>ap</cc>
    
    <cc>atwilson</cc>
    
    <cc>eric</cc>
    
    <cc>jmalonzo</cc>
    
    <cc>pkasting</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>144359</commentid>
    <comment_count>0</comment_count>
    <who name="John Gregg">johnnyg</who>
    <bug_when>2009-09-02 17:58:23 -0700</bug_when>
    <thetext>Keeping with the pattern of other new features, notifications needs the ability to hide from javascript at runtime based, e.g. on a command line flag to the browser.

Proposing a new boolean parameter in the page Settings object which controls whether notifications are enabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144666</commentid>
    <comment_count>1</comment_count>
      <attachid>39029</attachid>
    <who name="John Gregg">johnnyg</who>
    <bug_when>2009-09-03 19:02:15 -0700</bug_when>
    <thetext>Created attachment 39029
patch which adds [set]desktopNotificationsEnabled() flag to Settings object

Patch covers the following:
 - adds desktopNotificationsEnabled() and setDesktopNotificationsEnabled(bool) to Settings object
 - checks the setting before returning access to notificationCenter
 - adds support for the setting via WebPreferencesPrivate in mac/win WebKit
 - sets the flag to true for DumpRenderTree</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144667</commentid>
    <comment_count>2</comment_count>
      <attachid>39030</attachid>
    <who name="John Gregg">johnnyg</who>
    <bug_when>2009-09-03 19:05:55 -0700</bug_when>
    <thetext>Created attachment 39030
same patch w/ style fix

same patch as above with one stray tab expunged</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144721</commentid>
    <comment_count>3</comment_count>
      <attachid>39030</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-04 00:31:16 -0700</bug_when>
    <thetext>Comment on attachment 39030
same patch w/ style fix

LGTM.  I&apos;m not sure that Mac/Win will want this on by default, but they can always fix that:
 323         [NSNumber numberWithBool:YES],  WebKitDesktopNotificationsEnabledPreferenceKey,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144732</commentid>
    <comment_count>4</comment_count>
      <attachid>39030</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-04 00:42:45 -0700</bug_when>
    <thetext>Comment on attachment 39030
same patch w/ style fix

Rejecting patch 39030 from commit-queue.  This patch will require manual commit.

Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;]&quot;  exit_code: 1  cwd: None</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144733</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-04 00:44:30 -0700</bug_when>
    <thetext>A repository hook failed: MERGE request failed on &apos;/repository/webkit/trunk&apos;: Commit blocked by pre-commit hook (exit code 1) with output:
svnlook: Can&apos;t write to stream: Broken pipe

    The following files contain tab characters:

        trunk/WebKit/win/ChangeLog

    Please use spaces instead to indent.
    If you must commit a file with tabs, use svn propset to set the &quot;allow-tabs&quot; property.
 at /usr/local/libexec/git-core//git-svn line 469

You&apos;ll need to remove the tabs from your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144836</commentid>
    <comment_count>6</comment_count>
      <attachid>39070</attachid>
    <who name="John Gregg">johnnyg</who>
    <bug_when>2009-09-04 09:45:19 -0700</bug_when>
    <thetext>Created attachment 39070
same patch, one more tab gone and default false.

Removed that tab, and I agree it should default off at least until the point the feature and tests are enabled, so I changed that YES to a NO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144897</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-09-04 12:39:48 -0700</bug_when>
    <thetext>Most new features cannot and needn&apos;t be enabled at runtime. Unless there&apos;s a special need for notifications, I&apos;d say that we shouldn&apos;t do this at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144900</commentid>
    <comment_count>8</comment_count>
    <who name="John Gregg">johnnyg</who>
    <bug_when>2009-09-04 12:53:20 -0700</bug_when>
    <thetext>Maybe I&apos;m not explaining it precisely, but there are a lot of similar options in WebCore/page/Settings.h:
        bool m_isJavaEnabled : 1;
        bool m_arePluginsEnabled : 1;
        bool m_databasesEnabled : 1;
        bool m_localStorageEnabled : 1;
        bool m_sessionStorageEnabled : 1;
        bool m_offlineWebApplicationCacheEnabled : 1;
        bool m_downloadableBinaryFontsEnabled : 1;
(and _many_ others), which is what I meant by &quot;following the pattern of other new features&quot;. 

The goal is to support a command line flag to the browser which causes the javascript object to be exposed or not exposed, in order to roll out this new feature gradually.

Without a change like this the best option is exposing the same javascript API at all times but changing the behavior of the API based on options, which is less ideal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144991</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-05 01:25:59 -0700</bug_when>
    <thetext>@ap, can you please clarify?

@john: no need to mark me as the requestee.  We really should turn off that field in Bugzilla since we use it so differently than mozilla does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145035</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-09-05 23:03:58 -0700</bug_when>
    <thetext>Some of these are runtime settings because clients (such as Safari) want them to be runtime. I&apos;m not sure about downloadable binary fonts, or database-related features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145090</commentid>
    <comment_count>11</comment_count>
      <attachid>39030</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-06 22:01:32 -0700</bug_when>
    <thetext>Comment on attachment 39030
same patch w/ style fix

Clearing review flag on obsolete patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145403</commentid>
    <comment_count>12</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-09-08 09:57:55 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Some of these are runtime settings because clients (such as Safari) want them
&gt; to be runtime.

Yes, that is precisely the case here: Chromium wants this to be runtime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145418</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-09-08 10:16:34 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Yes, that is precisely the case here: Chromium wants this to be runtime.

That&apos;s a good reason.

One more question: in this particular case, does a client need any WebCore changes in order to make this a runtime setting? Can it just turn client callbacks into no-ops, and not display any notifications?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145422</commentid>
    <comment_count>14</comment_count>
    <who name="John Gregg">johnnyg</who>
    <bug_when>2009-09-08 10:20:48 -0700</bug_when>
    <thetext>In this particular case, yes, the client can provide a NotificationPresenter which simply no-ops all calls into it.  

However in that state, a web site would see window.webkitNotifications in JavaScript but not be able to use it successfully, and Chromium would prefer to hide webkitNotifications from script entirely if the command-line switch hasn&apos;t been enabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145448</commentid>
    <comment_count>15</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-09-08 10:53:58 -0700</bug_when>
    <thetext>Even with this patch, &quot;webkitNotifications in window&quot; will be true, I think. We don&apos;t have a way to reliably hide a disabled feature, as far as I know.

Can you describe what exactly the use case for this is? Can the same JavaScript code be exposed to both behaviors? We have some precedent with popup window blocking, and sites are not informed about the blocker being active in advance.

In another bug, someone mentioned that Chromium wants all new features to have runtime switches for easier transition between distribution channels. If that&apos;s also one of the reasons here, it&apos;s perfectly valid, but it needs some webkit-dev discussion, in my opinion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145462</commentid>
    <comment_count>16</comment_count>
    <who name="John Gregg">johnnyg</who>
    <bug_when>2009-09-08 11:13:55 -0700</bug_when>
    <thetext>It&apos;s true, that window.webkitNotifications === null with this flag off, as opposed to undefined, but the check for

if (window.webkitNotifications) {
  use notifications
} else {
  don&apos;t
}

will behave correctly, and the methods themselves (like window.webkitNotification.createNotification) *are* reliably hidden.

As you say, command line switches for managing the rollout of the new feature in Chromium is exactly the reason for this -- I will try to help gather consensus for how to deal with it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147225</commentid>
    <comment_count>17</comment_count>
      <attachid>39579</attachid>
    <who name="John Gregg">johnnyg</who>
    <bug_when>2009-09-14 16:25:29 -0700</bug_when>
    <thetext>Created attachment 39579
same patch, rename to &quot;experimental&quot;

As discussed on webkit-dev, this patch renames the functions being added to &quot;experimentalNotifications&quot; to indicate that this feature isn&apos;t completely implemented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149826</commentid>
    <comment_count>18</comment_count>
      <attachid>39579</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-24 14:00:43 -0700</bug_when>
    <thetext>Comment on attachment 39579
same patch, rename to &quot;experimental&quot;

This patch looks good, except for the fact that notifications are on for Windows DRT and off for Mac DRT.  Is that what you intended?

Please correct that or explain why it&apos;s on for one and not the other when landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149829</commentid>
    <comment_count>19</comment_count>
    <who name="John Gregg">johnnyg</who>
    <bug_when>2009-09-24 14:05:14 -0700</bug_when>
    <thetext>This was intentional; the modifications to DRT required to run the notifications tests have already landed for Windows, and the DRT code in this patch is required for those tests to continue to work (although they are disabled in the tree).  I haven&apos;t submitted those modifications yet for Mac DRT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149924</commentid>
    <comment_count>20</comment_count>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2009-09-24 19:46:02 -0700</bug_when>
    <thetext>Committed as r48745.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39029</attachid>
            <date>2009-09-03 19:02:15 -0700</date>
            <delta_ts>2009-09-03 19:05:55 -0700</delta_ts>
            <desc>patch which adds [set]desktopNotificationsEnabled() flag to Settings object</desc>
            <filename>bug28930.diff</filename>
            <type>text/plain</type>
            <size>18455</size>
            <attacher name="John Gregg">johnnyg</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODAzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMDktMDktMDMgIEpvaG4gR3JlZ2cgIDxqb2hubnlnQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaXNF
bmFibGVkIHN3aXRjaCBmb3Igbm90aWZpY2F0aW9ucyBpbiBQYWdlIFNldHRpbmdzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODkzMAorCisgICAgICAg
IEFkZHMgYSBydW4tdGltZSBmbGFnIGluIFNldHRpbmdzIG9iamVjdCB0aGF0IGNvbnRyb2xzIHdo
ZXRoZXIKKyAgICAgICAgdG8gZXhwb3NlIGRlc2t0b3Agbm90aWZpY2F0aW9ucy4KKworICAgICAg
ICBObyBuZXcgdGVzdCwgYnV0IHRlc3QgY29kZSBhbHNvIG1vZGlmaWVkIHRvIHNldCB0aGlzIHBy
ZWZlcmVuY2UuCisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6OndlYmtpdE5vdGlmaWNhdGlvbnMpOiBjaGVjayBwcmVmZXJlbmNlIGJl
Zm9yZSByZXR1cm5pbmcgbm90aWZpY2F0aW9ucyBvYmplY3QKKyAgICAgICAgKiBwYWdlL1NldHRp
bmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6CisgICAgICAg
IChXZWJDb3JlOjpTZXR0aW5nczo6c2V0RGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkKToKKyAg
ICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6ZGVz
a3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkKToKKwogMjAwOS0wOS0wMyAgQWxleGV5IFByb3NrdXJ5
YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dl
YkNvcmUuYmFzZS5leHAJKHJldmlzaW9uIDQ4MDAwKQorKysgV2ViQ29yZS9XZWJDb3JlLmJhc2Uu
ZXhwCSh3b3JraW5nIGNvcHkpCkBAIC02NjUsNiArNjY1LDcgQEAgX19aTjdXZWJDb3JlOFNldHRp
bmdzMjdzZXRMb2NhbFN0b3JhZ2VEYQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjhzZXRGb3JjZUZU
UERpcmVjdG9yeUxpc3RpbmdzRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI5c2V0QXV0aG9yQW5k
VXNlclN0eWxlc0VuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjlzZXRXZWJBcmNoaXZl
RGVidWdNb2RlRW5hYmxlZEViCitfX1pON1dlYkNvcmU4U2V0dGluZ3MzMHNldERlc2t0b3BOb3Rp
ZmljYXRpb25zRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MzMXNldFNocmlua3NTdGFu
ZGFsb25lSW1hZ2VzVG9GaXRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMzJzZXRBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MzMnNldE5lZWRzQWRv
YmVGcmFtZVJlbG9hZGluZ1F1aXJrRWIKSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCShyZXZpc2lvbiA0ODAw
MCkKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MTMs
NiArNjEzLDkgQEAgTm90aWZpY2F0aW9uQ2VudGVyKiBET01XaW5kb3c6OndlYmtpdE5vdAogICAg
IGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIDA7CiAKKyAgICBpZiAoIXBhZ2UtPnNldHRpbmdz
KCktPmRlc2t0b3BOb3RpZmljYXRpb25zRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gMDsKKwog
ICAgIE5vdGlmaWNhdGlvblByZXNlbnRlciogcHJvdmlkZXIgPSBwYWdlLT5jaHJvbWUoKS0+bm90
aWZpY2F0aW9uUHJlc2VudGVyKCk7CiAgICAgaWYgKHByb3ZpZGVyKSAKICAgICAgICAgbV9ub3Rp
ZmljYXRpb25zID0gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUoZG9jdW1lbnQsIHByb3ZpZGVy
KTsgICAgCkluZGV4OiBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAJKHJldmlzaW9uIDQ4MDAwKQorKysgV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEwOSw3IEBAIFNldHRpbmdz
OjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwgbV9kb3dubG9hZGFibGVCaW5hcnlGb250c0Vu
YWJsZWQodHJ1ZSkKICAgICAsIG1feHNzQXVkaXRvckVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKHRydWUpCisgICAgLCBtX2Rlc2t0b3BOb3RpZmlj
YXRpb25zRW5hYmxlZChmYWxzZSkKIHsKICAgICAvLyBBIEZyYW1lIG1heSBub3QgaGF2ZSBiZWVu
IGNyZWF0ZWQgeWV0LCBzbyB3ZSBpbml0aWFsaXplIHRoZSBBdG9taWNTdHJpbmcgCiAgICAgLy8g
aGFzaCBiZWZvcmUgdHJ5aW5nIHRvIHVzZSBpdC4KQEAgLTQ5Myw0ICs0OTQsOSBAQCB2b2lkIFNl
dHRpbmdzOjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nCiAgICAgc2V0TmVlZHNSZWFwcGx5U3R5
bGVzSW5BbGxGcmFtZXMobV9wYWdlKTsKIH0KIAordm9pZCBTZXR0aW5nczo6c2V0RGVza3RvcE5v
dGlmaWNhdGlvbnNFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBtX2Rlc2t0b3BOb3RpZmlj
YXRpb25zRW5hYmxlZCA9IGVuYWJsZWQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5oCShyZXZpc2lvbiA0ODAwMCkKKysrIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNTMsNiArMjUzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKGJvb2wpOwogICAgICAg
ICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9h
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZDsgfQogCisgICAgICAgIHZvaWQgc2V0RGVza3Rv
cE5vdGlmaWNhdGlvbnNFbmFibGVkKGJvb2wpOworICAgICAgICBib29sIGRlc2t0b3BOb3RpZmlj
YXRpb25zRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVza3RvcE5vdGlmaWNhdGlvbnNFbmFi
bGVkOyB9CisKICAgICBwcml2YXRlOgogICAgICAgICBQYWdlKiBtX3BhZ2U7CiAgICAgICAgIApA
QCAtMzE3LDYgKzMyMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX2Rv
d25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV94c3NBdWRp
dG9yRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5h
YmxlZCA6IDE7CisgICAgICAgIGJvb2wgbV9kZXNrdG9wTm90aWZpY2F0aW9uc0VuYWJsZWQgOiAx
OwogCiAjaWYgVVNFKFNBRkFSSV9USEVNRSkKICAgICAgICAgc3RhdGljIGJvb2wgZ1Nob3VsZFBh
aW50TmF0aXZlQ29udHJvbHM7CkluZGV4OiBXZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gNDgwMzcpCisrKyBXZWJLaXQvbWFj
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDA5LTA5LTAzICBK
b2huIEdyZWdnICA8am9obm55Z0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIGlzRW5hYmxlZCBzd2l0Y2ggZm9yIG5vdGlmaWNhdGlv
bnMgaW4gUGFnZSBTZXR0aW5ncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mjg5MzAKKworICAgICAgICBBZGRzIHN1cHBvcnQgZm9yIHRoZSBkZXNrdG9w
Tm90aWZpY2F0aW9uc0VuYWJsZWQgZmxhZyBpbiBTZXR0aW5ncworICAgICAgICB0aHJvdWdoIFdl
YlByZWZlcmVuY2VzUHJpdmF0ZS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZUtl
eXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAg
ICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgorICAgICAgICAoLVtXZWJQcmVmZXJl
bmNlcyBkZXNrdG9wTm90aWZpY2F0aW9uc0VuYWJsZWRdKToKKyAgICAgICAgKC1bV2ViUHJlZmVy
ZW5jZXMgc2V0RGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkOl0pOgorICAgICAgICAqIFdlYlZp
ZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1t
OgorICAgICAgICAoLVtXZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb246XSk6
CisKIDIwMDktMDktMDMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkIGJ1aWxkIGZpeC4KSW5kZXg6IFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlS2V5c1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZUtleXNQcml2YXRlLmgJKHJldmlzaW9uIDQ4MDAwKQorKysgV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2
ICs1NSw3IEBACiAjZGVmaW5lIFdlYktpdFBsdWdpbnNFbmFibGVkUHJlZmVyZW5jZUtleSBAIldl
YktpdFBsdWdpbnNFbmFibGVkIgogI2RlZmluZSBXZWJLaXREYXRhYmFzZXNFbmFibGVkUHJlZmVy
ZW5jZUtleSBAIldlYktpdERhdGFiYXNlc0VuYWJsZWRQcmVmZXJlbmNlS2V5IgogI2RlZmluZSBX
ZWJLaXRMb2NhbFN0b3JhZ2VFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdExvY2FsU3RvcmFn
ZUVuYWJsZWRQcmVmZXJlbmNlS2V5IgorI2RlZmluZSBXZWJLaXREZXNrdG9wTm90aWZpY2F0aW9u
c0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0RGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVk
UHJlZmVyZW5jZUtleSIKICNkZWZpbmUgV2ViS2l0QWxsb3dBbmltYXRlZEltYWdlc1ByZWZlcmVu
Y2VLZXkgQCJXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VzUHJlZmVyZW5jZUtleSIKICNkZWZpbmUg
V2ViS2l0QWxsb3dBbmltYXRlZEltYWdlTG9vcGluZ1ByZWZlcmVuY2VLZXkgQCJXZWJLaXRBbGxv
d0FuaW1hdGVkSW1hZ2VMb29waW5nUHJlZmVyZW5jZUtleSIKICNkZWZpbmUgV2ViS2l0RGlzcGxh
eUltYWdlc0tleSBAIldlYktpdERpc3BsYXlJbWFnZXNLZXkiCkluZGV4OiBXZWJLaXQvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tCShyZXZpc2lvbiA0ODAwMCkKKysrIFdlYktpdC9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzIwLDYgKzMyMCw3IEBAIHN0
YXRpYyBXZWJDYWNoZU1vZGVsIGNhY2hlTW9kZWxGb3JNYWluQnUKICAgICAgICAgW05TTnVtYmVy
IG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRQbHVnaW5zRW5hYmxlZFByZWZlcmVuY2VLZXks
CiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdLCAgV2ViS2l0RGF0YWJhc2Vz
RW5hYmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZ
RVNdLCAgV2ViS2l0TG9jYWxTdG9yYWdlRW5hYmxlZFByZWZlcmVuY2VLZXksCisgICAgICAgIFtO
U051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdLCAgV2ViS2l0RGVza3RvcE5vdGlmaWNhdGlvbnNF
bmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllF
U10sICBXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VzUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05T
TnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VMb29w
aW5nUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10s
ICBXZWJLaXREaXNwbGF5SW1hZ2VzS2V5LApAQCAtMTAxMSw2ICsxMDEyLDE2IEBAIHN0YXRpYyBX
ZWJDYWNoZU1vZGVsIGNhY2hlTW9kZWxGb3JNYWluQnUKICAgICBbc2VsZiBfc2V0Qm9vbFZhbHVl
OmxvY2FsU3RvcmFnZUVuYWJsZWQgZm9yS2V5OldlYktpdExvY2FsU3RvcmFnZUVuYWJsZWRQcmVm
ZXJlbmNlS2V5XTsKIH0KIAorLSAoQk9PTClkZXNrdG9wTm90aWZpY2F0aW9uc0VuYWJsZWQKK3sK
KyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXREZXNrdG9wTm90aWZpY2F0
aW9uc0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKworLSAodm9pZClzZXREZXNrdG9wTm90aWZp
Y2F0aW9uc0VuYWJsZWQ6KEJPT0wpZGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkCit7CisgICAg
W3NlbGYgX3NldEJvb2xWYWx1ZTpkZXNrdG9wTm90aWZpY2F0aW9uc0VuYWJsZWQgZm9yS2V5Oldl
YktpdERlc2t0b3BOb3RpZmljYXRpb25zRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCiArIChX
ZWJQcmVmZXJlbmNlcyAqKV9nZXRJbnN0YW5jZUZvcklkZW50aWZpZXI6KE5TU3RyaW5nICopaWRl
bnQKIHsKICAgICBMT0coRW5jb2RpbmcsICJyZXF1ZXN0aW5nIGZvciAlQFxuIiwgaWRlbnQpOwpJ
bmRleDogV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAkocmV2aXNp
b24gNDgwMDApCisrKyBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEwNyw2ICsxMDcsOSBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlBy
ZWZlcmVuY2VzUmVtb3ZlZE5vCiAtIChCT09MKWlzWFNTQXVkaXRvckVuYWJsZWQ7CiAtICh2b2lk
KXNldFhTU0F1ZGl0b3JFbmFibGVkOihCT09MKWZsYWc7CiAKKy0gKEJPT0wpZGVza3RvcE5vdGlm
aWNhdGlvbnNFbmFibGVkOworLSAodm9pZClzZXREZXNrdG9wTm90aWZpY2F0aW9uc0VuYWJsZWQ6
KEJPT0wpZGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkOworCiAvLyB6ZXJvIG1lYW5zIGRvIEF1
dG9TY2FsZQogLSAoZmxvYXQpUERGU2NhbGVGYWN0b3I7CiAtICh2b2lkKXNldFBERlNjYWxlRmFj
dG9yOihmbG9hdClzY2FsZTsKSW5kZXg6IFdlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCShyZXZpc2lvbiA0ODAw
MCkKKysrIFdlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
Mjc3LDYgKzEyNzcsNyBAQCBzdGF0aWMgYm9vbCBmYXN0RG9jdW1lbnRUZWFyZG93bkVuYWJsZWQo
CiAgICAgc2V0dGluZ3MtPnNldFBsdWdpbnNFbmFibGVkKFtwcmVmZXJlbmNlcyBhcmVQbHVnSW5z
RW5hYmxlZF0pOwogICAgIHNldHRpbmdzLT5zZXREYXRhYmFzZXNFbmFibGVkKFtwcmVmZXJlbmNl
cyBkYXRhYmFzZXNFbmFibGVkXSk7CiAgICAgc2V0dGluZ3MtPnNldExvY2FsU3RvcmFnZUVuYWJs
ZWQoW3ByZWZlcmVuY2VzIGxvY2FsU3RvcmFnZUVuYWJsZWRdKTsKKyAgICBzZXR0aW5ncy0+c2V0
RGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkKFtwcmVmZXJlbmNlcyBkZXNrdG9wTm90aWZpY2F0
aW9uc0VuYWJsZWRdKTsKICAgICBzZXR0aW5ncy0+c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChb
cHJlZmVyZW5jZXMgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLT5zZXRT
YW5zU2VyaWZGb250RmFtaWx5KFtwcmVmZXJlbmNlcyBzYW5zU2VyaWZGb250RmFtaWx5XSk7CiAg
ICAgc2V0dGluZ3MtPnNldFNlcmlmRm9udEZhbWlseShbcHJlZmVyZW5jZXMgc2VyaWZGb250RmFt
aWx5XSk7CkluZGV4OiBXZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
d2luL0NoYW5nZUxvZwkocmV2aXNpb24gNDgwMzcpCisrKyBXZWJLaXQvd2luL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDA5LTA5LTAzICBKb2huIEdyZWdnICA8
am9obm55Z0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEVuYWJsZSBzd2l0Y2ggZm9yIG5vdGlmaWNhdGlvbnMgaW4gUGFnZSBTZXR0
aW5ncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg5
MzAKKworICAgICAgICBBZGRzIHN1cHBvcnQgZm9yIHRoZSBkZXNrdG9wTm90aWZpY2F0aW9uc0Vu
YWJsZWQgZmxhZyBpbiBTZXR0aW5ncyB0aHJvdWdoCisgICAgICAgIFdlYlByZWZlcmVuY2VzUHJp
dmF0ZSBpbnRlcmZhY2UuICBBbHNvIGNsZWFucyB1cCBzb21lIGlzc3VlcyBhY2Nlc3NpbmcgdGhl
CisgICAgICAgIG5vdGlmaWNhdGlvbiBkZWxlZ2F0ZSB0aHJvdWdoIER1bXBSZW5kZXJUcmVlLgor
CQorICAgICAgICAqIEludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGw6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5jcHA6
CisgICAgICAgIChXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlOjpoYXNOb3RpZmljYXRp
b25EZWxlZ2F0ZSk6CisgICAgICAgIChXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlOjpu
b3RpZmljYXRpb25EZWxlZ2F0ZSk6CisgICAgICAgICogV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
Lmg6CisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV2ViUHJlZmVyZW5j
ZXM6OmluaXRpYWxpemVEZWZhdWx0U2V0dGluZ3MpOgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6
OnNldERlc2t0b3BOb3RpZmljYXRpb25zRW5hYmxlZCk6CisgICAgICAgIChXZWJQcmVmZXJlbmNl
czo6ZGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkKToKKyAgICAgICAgKiBXZWJQcmVmZXJlbmNl
cy5oOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6bm90aWZ5UHJl
ZmVyZW5jZXNDaGFuZ2VkKToKKwogMjAwOS0wOS0wMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IGVyaWNAd2Via2l0Lm9yZy4KSW5kZXg6IFdl
YktpdC93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAkocmV2aXNpb24gNDgwMDApCisrKyBXZWJL
aXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2
ICs1Myw3IEBACiAjZGVmaW5lIFdlYktpdFBsdWdpbnNFbmFibGVkUHJlZmVyZW5jZUtleSAiV2Vi
S2l0UGx1Z2luc0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdERhdGFiYXNlc0VuYWJsZWRQcmVmZXJl
bmNlS2V5ICJXZWJLaXREYXRhYmFzZXNFbmFibGVkIgogI2RlZmluZSBXZWJLaXRMb2NhbFN0b3Jh
Z2VFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0TG9jYWxTdG9yYWdlRW5hYmxlZCIKKyNkZWZp
bmUgV2ViS2l0RGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0
RGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkIgogI2RlZmluZSBXZWJLaXRBbGxvd0FuaW1hdGVk
SW1hZ2VzUHJlZmVyZW5jZUtleSAiV2ViS2l0QWxsb3dBbmltYXRlZEltYWdlc1ByZWZlcmVuY2VL
ZXkiCiAjZGVmaW5lIFdlYktpdEFsbG93QW5pbWF0ZWRJbWFnZUxvb3BpbmdQcmVmZXJlbmNlS2V5
ICJXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VMb29waW5nUHJlZmVyZW5jZUtleSIKICNkZWZpbmUg
V2ViS2l0RGlzcGxheUltYWdlc0tleSAiV2ViS2l0RGlzcGxheUltYWdlc0tleSIKSW5kZXg6IFdl
YktpdC93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2Vi
UHJlZmVyZW5jZXMuY3BwCShyZXZpc2lvbiA0ODAwMCkKKysrIFdlYktpdC93aW4vV2ViUHJlZmVy
ZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTAsNiArMjEwLDcgQEAgdm9pZCBXZWJQcmVm
ZXJlbmNlczo6aW5pdGlhbGl6ZURlZmF1bHRTZQogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRl
ZmF1bHRzLCBDRlNUUihXZWJLaXRQbHVnaW5zRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29s
ZWFuVHJ1ZSk7CiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktp
dERhdGFiYXNlc0VuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhblRydWUpOwogICAgIENG
RGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRMb2NhbFN0b3JhZ2VFbmFi
bGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5UcnVlKTsKKyAgICBDRkRpY3Rpb25hcnlBZGRW
YWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0RGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkUHJl
ZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUo
ZGVmYXVsdHMsIENGU1RSKFdlYktpdEFsbG93QW5pbWF0ZWRJbWFnZXNQcmVmZXJlbmNlS2V5KSwg
a0NGQm9vbGVhblRydWUpOwogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNU
UihXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VMb29waW5nUHJlZmVyZW5jZUtleSksIGtDRkJvb2xl
YW5UcnVlKTsKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0
RGlzcGxheUltYWdlc0tleSksIGtDRkJvb2xlYW5UcnVlKTsKQEAgLTEyODksNiArMTI5MCwxOCBA
QCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlByZWZlcmVuY2VzCiAgICAgcmV0dXJuIFNf
T0s7CiB9CiAKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViUHJlZmVyZW5jZXM6OnNldERl
c2t0b3BOb3RpZmljYXRpb25zRW5hYmxlZChCT09MIGVuYWJsZWQpCit7CisgICAgc2V0Qm9vbFZh
bHVlKENGU1RSKFdlYktpdERlc2t0b3BOb3RpZmljYXRpb25zRW5hYmxlZFByZWZlcmVuY2VLZXkp
LCBlbmFibGVkKTsKKyAgICByZXR1cm4gU19PSzsKK30KKworSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBXZWJQcmVmZXJlbmNlczo6ZGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkKEJPT0wqIGVu
YWJsZWQpCit7CisgICAgKmVuYWJsZWQgPSBib29sVmFsdWVGb3JLZXkoQ0ZTVFIoV2ViS2l0RGVz
a3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkUHJlZmVyZW5jZUtleSkpOworICAgIHJldHVybiBTX09L
OworfQorCiBIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpzZXRab29tc1RleHRPbmx5KEJPT0wgem9v
bXNUZXh0T25seSkKIHsKICAgICBzZXRCb29sVmFsdWUoQ0ZTVFIoV2ViS2l0Wm9vbXNUZXh0T25s
eVByZWZlcmVuY2VLZXkpLCB6b29tc1RleHRPbmx5KTsKSW5kZXg6IFdlYktpdC93aW4vV2ViUHJl
ZmVyZW5jZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmgJKHJl
dmlzaW9uIDQ4MDAwKQorKysgV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMjUsNyArMzI1LDEzIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBzZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoCiAgICAgICAgIC8q
IFtpbl0gKi8gQlNUUiBsb2NhdGlvbik7Ci0gICAgCisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgZGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkKAorICAgICAgICAvKiBb
cmV0dmFsXVtvdXRdICovIEJPT0wgKmVuYWJsZWQpOworCisgICAgdmlydHVhbCBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIHNldERlc2t0b3BOb3RpZmljYXRpb25zRW5hYmxlZCgKKyAgICAgICAg
LyogW2luXSAqLyBCT09MIGVuYWJsZWQpOworCiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIHNldFNob3VsZFBhaW50TmF0aXZlQ29udHJvbHMoIAogICAgIC8qIFtpbl0gKi8g
Qk9PTCBzaG91bGRQYWludCk7CiAKSW5kZXg6IFdlYktpdC93aW4vV2ViVmlldy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkocmV2aXNpb24gNDgwMDApCisrKyBXZWJL
aXQvd2luL1dlYlZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MzcyLDYgKzQzNzIsMTEgQEAg
SFJFU1VMVCBXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZQogICAgICAgICByZXR1cm4g
aHI7CiAgICAgc2V0dGluZ3MtPnNldExvY2FsU3RvcmFnZUVuYWJsZWQoZW5hYmxlZCk7CiAKKyAg
ICBociA9IHByZWZzUHJpdmF0ZS0+ZGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkKCZlbmFibGVk
KTsKKyAgICBpZiAoRkFJTEVEKGhyKSkKKyAgICAgICAgcmV0dXJuIGhyOworICAgIHNldHRpbmdz
LT5zZXREZXNrdG9wTm90aWZpY2F0aW9uc0VuYWJsZWQoZW5hYmxlZCk7CisKICAgICBociA9IHBy
ZWZzUHJpdmF0ZS0+aXNXZWJTZWN1cml0eUVuYWJsZWQoJmVuYWJsZWQpOwogICAgIGlmIChGQUlM
RUQoaHIpKQogICAgICAgICByZXR1cm4gaHI7CkluZGV4OiBXZWJLaXQvd2luL0ludGVyZmFjZXMv
SVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9JbnRl
cmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCShyZXZpc2lvbiA0ODAwMCkKKysrIFdl
YktpdC93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAkod29ya2luZyBj
b3B5KQpAQCAtNzksNiArNzksOSBAQCBpbnRlcmZhY2UgSVdlYlByZWZlcmVuY2VzUHJpdmF0ZSA6
IElVbmtuCiAgICAgSFJFU1VMVCBpc1hTU0F1ZGl0b3JFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9P
TCAqZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBzZXRYU1NBdWRpdG9yRW5hYmxlZChbaW5dIEJPT0wg
ZW5hYmxlZCk7CiAKKyAgICBIUkVTVUxUIGRlc2t0b3BOb3RpZmljYXRpb25zRW5hYmxlZChbb3V0
LCByZXR2YWxdIEJPT0wgKmVuYWJsZWQpOworICAgIEhSRVNVTFQgc2V0RGVza3RvcE5vdGlmaWNh
dGlvbnNFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKKwogICAgIC8vIFVzZWQgdG8gc2V0IHBy
ZWZlcmVuY2Ugc3BlY2lmaWVkIGJ5IGEgdGVzdCB2aWEgTGF5b3V0VGVzdENvbnRyb2xsZXIub3Zl
cnJpZGVQcmVmZXJlbmNlKC4uKS4KICAgICAvLyBVc2VkIGJ5IER1bXBSZW5kZXJUcmVlLgogICAg
IEhSRVNVTFQgc2V0UHJlZmVyZW5jZUZvclRlc3QoW2luXSBCU1RSIGtleSwgW2luXSBCU1RSIHZh
bHVlKTsKSW5kZXg6IFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNh
dGlvbnNEZWxlZ2F0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmNwcAkocmV2aXNpb24gNDgwMDApCisr
KyBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdh
dGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODUsOCArMTg1LDcgQEAgYm9vbCBXZWJEZXNrdG9w
Tm90aWZpY2F0aW9uc0RlbGVnYXRlOjpoYQogICAgIG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWkp
OwogCiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlMj4gdWkyOwotICAgIGlmIChTVUNDRUVERUQo
dWktPlF1ZXJ5SW50ZXJmYWNlKElJRF9JV2ViVUlEZWxlZ2F0ZTIsICZ1aTIpKSkKLSAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgcmV0dXJuIFNVQ0NFRURFRCh1aS0+UXVlcnlJbnRlcmZhY2UoSUlE
X0lXZWJVSURlbGVnYXRlMiwgKHZvaWQqKikgJnVpMikpOwogfQogCiBDT01QdHI8SVdlYkRlc2t0
b3BOb3RpZmljYXRpb25zRGVsZWdhdGU+IFdlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGU6
Om5vdGlmaWNhdGlvbkRlbGVnYXRlKCkKQEAgLTE5Niw3ICsxOTUsNyBAQCBDT01QdHI8SVdlYkRl
c2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGU+CiAKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGUy
PiB1aTI7CiAgICAgQ09NUHRyPElXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlPiBkZWxl
Z2F0ZTsKLSAgICBpZiAoU1VDQ0VFREVEKHVpLT5RdWVyeUludGVyZmFjZShJSURfSVdlYlVJRGVs
ZWdhdGUyLCAmdWkyKSkpCisgICAgaWYgKFNVQ0NFRURFRCh1aS0+UXVlcnlJbnRlcmZhY2UoSUlE
X0lXZWJVSURlbGVnYXRlMiwgKHZvaWQqKikgJnVpMikpKQogICAgICAgICB1aTItPmRlc2t0b3BO
b3RpZmljYXRpb25zRGVsZWdhdGUoJmRlbGVnYXRlKTsKIAogICAgIHJldHVybiBkZWxlZ2F0ZTsK
SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDQ4MDM3KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDktMDktMDMgIEpvaG4gR3JlZ2cgIDxqb2hu
bnlnQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRW5hYmxlIHN3aXRjaCBmb3Igbm90aWZpY2F0aW9ucyBpbiBQYWdlIFNldHRpbmdz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODkzMAor
CisgICAgICAgIE5vdyB0aGF0IGRlc2t0b3Agbm90aWZpY2F0aW9ucyBhcmUgY29udHJvbGxlZCBi
eSBydW4tdGltZSBzd2l0Y2gsCisgICAgICAgIHNldCB0aGF0IHN3aXRjaCB0byB0cnVlIGZvciBE
dW1wUmVuZGVyVHJlZS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVy
VHJlZS5tbToKKyAgICAgICAgKHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChy
ZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS93aW4vVUlEZWxlZ2F0ZS5jcHA6CisgICAgICAgIChVSURlbGVnYXRlOjpRdWVyeUludGVyZmFj
ZSk6CisKIDIwMDktMDktMDMgIEtldmluIFdhdHRlcnMgIDxrZXZpbndhdHRlcnNAZ21haWwuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtldmluIE9sbGl2aWVyLgpJbmRleDogV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQkocmV2aXNpb24g
NDgwMDApCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTQwNiw2ICs0MDYsNyBAQCBzdGF0aWMgdm9pZCByZXNldERl
ZmF1bHRzVG9Db25zaXN0ZW50VmFsCiAgICAgW3ByZWZlcmVuY2VzIHNldFNob3VsZFByaW50QmFj
a2dyb3VuZHM6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0Q2FjaGVNb2RlbDpXZWJDYWNoZU1v
ZGVsRG9jdW1lbnRCcm93c2VyXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0WFNTQXVkaXRvckVuYWJs
ZWQ6Tk9dOworCVtwcmVmZXJlbmNlcyBzZXREZXNrdG9wTm90aWZpY2F0aW9uc0VuYWJsZWQ6WUVT
XTsKIAogICAgIFtwcmVmZXJlbmNlcyBzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkOk5PXTsKICAg
ICBbcHJlZmVyZW5jZXMgc2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQ6WUVTXTsKSW5kZXg6
IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNw
cAkocmV2aXNpb24gNDgwMDApCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVt
cFJlbmRlclRyZWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MzUsNiArNzM1LDcgQEAgc3RhdGlj
IHZvaWQgcmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbAogICAgICAgICBwcmVmc1ByaXZhdGUt
PnNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKFRSVUUpOwogICAgICAgICBwcmVm
c1ByaXZhdGUtPnNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKFRSVUUpOwogICAgICAgICBw
cmVmc1ByaXZhdGUtPnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoRkFMU0UpOworICAgICAgICBw
cmVmc1ByaXZhdGUtPnNldERlc2t0b3BOb3RpZmljYXRpb25zRW5hYmxlZChUUlVFKTsKICAgICAg
ICAgcHJlZnNQcml2YXRlLT5zZXRTaG91bGRQYWludE5hdGl2ZUNvbnRyb2xzKEZBTFNFKTsgLy8g
RklYTUUgLSBuZWVkIHRvIG1ha2UgRFJUIHBhc3Mgd2l0aCBXaW5kb3dzIG5hdGl2ZSBjb250cm9s
cyA8aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU1OTI+CiAgICAgICAg
IHByZWZzUHJpdmF0ZS0+c2V0WFNTQXVkaXRvckVuYWJsZWQoRkFMU0UpOwogICAgICAgICBwcmVm
c1ByaXZhdGUtPnNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChUUlVFKTsKSW5k
ZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9VSURlbGVnYXRlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVUlEZWxlZ2F0ZS5jcHAJKHJl
dmlzaW9uIDQ4MDAwKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1VJRGVsZWdh
dGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzYsNiArMTc2LDggQEAgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBVSURlbGVnYXRlOjpRdQogICAgICAgICAqcHB2T2JqZWN0ID0gc3RhdGljX2Nh
c3Q8SVdlYlVJRGVsZWdhdGUqPih0aGlzKTsKICAgICBlbHNlIGlmIChJc0VxdWFsR1VJRChyaWlk
LCBJSURfSVdlYlVJRGVsZWdhdGUpKQogICAgICAgICAqcHB2T2JqZWN0ID0gc3RhdGljX2Nhc3Q8
SVdlYlVJRGVsZWdhdGUqPih0aGlzKTsKKyAgICBlbHNlIGlmIChJc0VxdWFsR1VJRChyaWlkLCBJ
SURfSVdlYlVJRGVsZWdhdGUyKSkKKyAgICAgICAgKnBwdk9iamVjdCA9IHN0YXRpY19jYXN0PElX
ZWJVSURlbGVnYXRlMio+KHRoaXMpOwogICAgIGVsc2UgaWYgKElzRXF1YWxHVUlEKHJpaWQsIElJ
RF9JV2ViVUlEZWxlZ2F0ZVByaXZhdGUpKQogICAgICAgICAqcHB2T2JqZWN0ID0gc3RhdGljX2Nh
c3Q8SVdlYlVJRGVsZWdhdGVQcml2YXRlKj4odGhpcyk7CiAgICAgZWxzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39030</attachid>
            <date>2009-09-03 19:05:55 -0700</date>
            <delta_ts>2009-09-06 22:01:32 -0700</delta_ts>
            <desc>same patch w/ style fix</desc>
            <filename>bug28930_.diff</filename>
            <type>text/plain</type>
            <size>18458</size>
            <attacher name="John Gregg">johnnyg</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODAzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMDktMDktMDMgIEpvaG4gR3JlZ2cgIDxqb2hubnlnQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaXNF
bmFibGVkIHN3aXRjaCBmb3Igbm90aWZpY2F0aW9ucyBpbiBQYWdlIFNldHRpbmdzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODkzMAorCisgICAgICAg
IEFkZHMgYSBydW4tdGltZSBmbGFnIGluIFNldHRpbmdzIG9iamVjdCB0aGF0IGNvbnRyb2xzIHdo
ZXRoZXIKKyAgICAgICAgdG8gZXhwb3NlIGRlc2t0b3Agbm90aWZpY2F0aW9ucy4KKworICAgICAg
ICBObyBuZXcgdGVzdCwgYnV0IHRlc3QgY29kZSBhbHNvIG1vZGlmaWVkIHRvIHNldCB0aGlzIHBy
ZWZlcmVuY2UuCisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6OndlYmtpdE5vdGlmaWNhdGlvbnMpOiBjaGVjayBwcmVmZXJlbmNlIGJl
Zm9yZSByZXR1cm5pbmcgbm90aWZpY2F0aW9ucyBvYmplY3QKKyAgICAgICAgKiBwYWdlL1NldHRp
bmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6CisgICAgICAg
IChXZWJDb3JlOjpTZXR0aW5nczo6c2V0RGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkKToKKyAg
ICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6ZGVz
a3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkKToKKwogMjAwOS0wOS0wMyAgQWxleGV5IFByb3NrdXJ5
YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dl
YkNvcmUuYmFzZS5leHAJKHJldmlzaW9uIDQ4MDAwKQorKysgV2ViQ29yZS9XZWJDb3JlLmJhc2Uu
ZXhwCSh3b3JraW5nIGNvcHkpCkBAIC02NjUsNiArNjY1LDcgQEAgX19aTjdXZWJDb3JlOFNldHRp
bmdzMjdzZXRMb2NhbFN0b3JhZ2VEYQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjhzZXRGb3JjZUZU
UERpcmVjdG9yeUxpc3RpbmdzRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI5c2V0QXV0aG9yQW5k
VXNlclN0eWxlc0VuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjlzZXRXZWJBcmNoaXZl
RGVidWdNb2RlRW5hYmxlZEViCitfX1pON1dlYkNvcmU4U2V0dGluZ3MzMHNldERlc2t0b3BOb3Rp
ZmljYXRpb25zRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MzMXNldFNocmlua3NTdGFu
ZGFsb25lSW1hZ2VzVG9GaXRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMzJzZXRBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MzMnNldE5lZWRzQWRv
YmVGcmFtZVJlbG9hZGluZ1F1aXJrRWIKSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCShyZXZpc2lvbiA0ODAw
MCkKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MTMs
NiArNjEzLDkgQEAgTm90aWZpY2F0aW9uQ2VudGVyKiBET01XaW5kb3c6OndlYmtpdE5vdAogICAg
IGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIDA7CiAKKyAgICBpZiAoIXBhZ2UtPnNldHRpbmdz
KCktPmRlc2t0b3BOb3RpZmljYXRpb25zRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gMDsKKwog
ICAgIE5vdGlmaWNhdGlvblByZXNlbnRlciogcHJvdmlkZXIgPSBwYWdlLT5jaHJvbWUoKS0+bm90
aWZpY2F0aW9uUHJlc2VudGVyKCk7CiAgICAgaWYgKHByb3ZpZGVyKSAKICAgICAgICAgbV9ub3Rp
ZmljYXRpb25zID0gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUoZG9jdW1lbnQsIHByb3ZpZGVy
KTsgICAgCkluZGV4OiBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAJKHJldmlzaW9uIDQ4MDAwKQorKysgV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEwOSw3IEBAIFNldHRpbmdz
OjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwgbV9kb3dubG9hZGFibGVCaW5hcnlGb250c0Vu
YWJsZWQodHJ1ZSkKICAgICAsIG1feHNzQXVkaXRvckVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKHRydWUpCisgICAgLCBtX2Rlc2t0b3BOb3RpZmlj
YXRpb25zRW5hYmxlZChmYWxzZSkKIHsKICAgICAvLyBBIEZyYW1lIG1heSBub3QgaGF2ZSBiZWVu
IGNyZWF0ZWQgeWV0LCBzbyB3ZSBpbml0aWFsaXplIHRoZSBBdG9taWNTdHJpbmcgCiAgICAgLy8g
aGFzaCBiZWZvcmUgdHJ5aW5nIHRvIHVzZSBpdC4KQEAgLTQ5Myw0ICs0OTQsOSBAQCB2b2lkIFNl
dHRpbmdzOjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nCiAgICAgc2V0TmVlZHNSZWFwcGx5U3R5
bGVzSW5BbGxGcmFtZXMobV9wYWdlKTsKIH0KIAordm9pZCBTZXR0aW5nczo6c2V0RGVza3RvcE5v
dGlmaWNhdGlvbnNFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBtX2Rlc2t0b3BOb3RpZmlj
YXRpb25zRW5hYmxlZCA9IGVuYWJsZWQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5oCShyZXZpc2lvbiA0ODAwMCkKKysrIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNTMsNiArMjUzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKGJvb2wpOwogICAgICAg
ICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9h
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZDsgfQogCisgICAgICAgIHZvaWQgc2V0RGVza3Rv
cE5vdGlmaWNhdGlvbnNFbmFibGVkKGJvb2wpOworICAgICAgICBib29sIGRlc2t0b3BOb3RpZmlj
YXRpb25zRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVza3RvcE5vdGlmaWNhdGlvbnNFbmFi
bGVkOyB9CisKICAgICBwcml2YXRlOgogICAgICAgICBQYWdlKiBtX3BhZ2U7CiAgICAgICAgIApA
QCAtMzE3LDYgKzMyMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX2Rv
d25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV94c3NBdWRp
dG9yRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5h
YmxlZCA6IDE7CisgICAgICAgIGJvb2wgbV9kZXNrdG9wTm90aWZpY2F0aW9uc0VuYWJsZWQgOiAx
OwogCiAjaWYgVVNFKFNBRkFSSV9USEVNRSkKICAgICAgICAgc3RhdGljIGJvb2wgZ1Nob3VsZFBh
aW50TmF0aXZlQ29udHJvbHM7CkluZGV4OiBXZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gNDgwMzcpCisrKyBXZWJLaXQvbWFj
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDA5LTA5LTAzICBK
b2huIEdyZWdnICA8am9obm55Z0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIGlzRW5hYmxlZCBzd2l0Y2ggZm9yIG5vdGlmaWNhdGlv
bnMgaW4gUGFnZSBTZXR0aW5ncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mjg5MzAKKworICAgICAgICBBZGRzIHN1cHBvcnQgZm9yIHRoZSBkZXNrdG9w
Tm90aWZpY2F0aW9uc0VuYWJsZWQgZmxhZyBpbiBTZXR0aW5ncworICAgICAgICB0aHJvdWdoIFdl
YlByZWZlcmVuY2VzUHJpdmF0ZS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZUtl
eXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAg
ICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgorICAgICAgICAoLVtXZWJQcmVmZXJl
bmNlcyBkZXNrdG9wTm90aWZpY2F0aW9uc0VuYWJsZWRdKToKKyAgICAgICAgKC1bV2ViUHJlZmVy
ZW5jZXMgc2V0RGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkOl0pOgorICAgICAgICAqIFdlYlZp
ZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1t
OgorICAgICAgICAoLVtXZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb246XSk6
CisKIDIwMDktMDktMDMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkIGJ1aWxkIGZpeC4KSW5kZXg6IFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlS2V5c1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZUtleXNQcml2YXRlLmgJKHJldmlzaW9uIDQ4MDAwKQorKysgV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2
ICs1NSw3IEBACiAjZGVmaW5lIFdlYktpdFBsdWdpbnNFbmFibGVkUHJlZmVyZW5jZUtleSBAIldl
YktpdFBsdWdpbnNFbmFibGVkIgogI2RlZmluZSBXZWJLaXREYXRhYmFzZXNFbmFibGVkUHJlZmVy
ZW5jZUtleSBAIldlYktpdERhdGFiYXNlc0VuYWJsZWRQcmVmZXJlbmNlS2V5IgogI2RlZmluZSBX
ZWJLaXRMb2NhbFN0b3JhZ2VFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdExvY2FsU3RvcmFn
ZUVuYWJsZWRQcmVmZXJlbmNlS2V5IgorI2RlZmluZSBXZWJLaXREZXNrdG9wTm90aWZpY2F0aW9u
c0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0RGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVk
UHJlZmVyZW5jZUtleSIKICNkZWZpbmUgV2ViS2l0QWxsb3dBbmltYXRlZEltYWdlc1ByZWZlcmVu
Y2VLZXkgQCJXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VzUHJlZmVyZW5jZUtleSIKICNkZWZpbmUg
V2ViS2l0QWxsb3dBbmltYXRlZEltYWdlTG9vcGluZ1ByZWZlcmVuY2VLZXkgQCJXZWJLaXRBbGxv
d0FuaW1hdGVkSW1hZ2VMb29waW5nUHJlZmVyZW5jZUtleSIKICNkZWZpbmUgV2ViS2l0RGlzcGxh
eUltYWdlc0tleSBAIldlYktpdERpc3BsYXlJbWFnZXNLZXkiCkluZGV4OiBXZWJLaXQvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tCShyZXZpc2lvbiA0ODAwMCkKKysrIFdlYktpdC9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzIwLDYgKzMyMCw3IEBAIHN0
YXRpYyBXZWJDYWNoZU1vZGVsIGNhY2hlTW9kZWxGb3JNYWluQnUKICAgICAgICAgW05TTnVtYmVy
IG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRQbHVnaW5zRW5hYmxlZFByZWZlcmVuY2VLZXks
CiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdLCAgV2ViS2l0RGF0YWJhc2Vz
RW5hYmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZ
RVNdLCAgV2ViS2l0TG9jYWxTdG9yYWdlRW5hYmxlZFByZWZlcmVuY2VLZXksCisgICAgICAgIFtO
U051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdLCAgV2ViS2l0RGVza3RvcE5vdGlmaWNhdGlvbnNF
bmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllF
U10sICBXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VzUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05T
TnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VMb29w
aW5nUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10s
ICBXZWJLaXREaXNwbGF5SW1hZ2VzS2V5LApAQCAtMTAxMSw2ICsxMDEyLDE2IEBAIHN0YXRpYyBX
ZWJDYWNoZU1vZGVsIGNhY2hlTW9kZWxGb3JNYWluQnUKICAgICBbc2VsZiBfc2V0Qm9vbFZhbHVl
OmxvY2FsU3RvcmFnZUVuYWJsZWQgZm9yS2V5OldlYktpdExvY2FsU3RvcmFnZUVuYWJsZWRQcmVm
ZXJlbmNlS2V5XTsKIH0KIAorLSAoQk9PTClkZXNrdG9wTm90aWZpY2F0aW9uc0VuYWJsZWQKK3sK
KyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXREZXNrdG9wTm90aWZpY2F0
aW9uc0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKworLSAodm9pZClzZXREZXNrdG9wTm90aWZp
Y2F0aW9uc0VuYWJsZWQ6KEJPT0wpZGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkCit7CisgICAg
W3NlbGYgX3NldEJvb2xWYWx1ZTpkZXNrdG9wTm90aWZpY2F0aW9uc0VuYWJsZWQgZm9yS2V5Oldl
YktpdERlc2t0b3BOb3RpZmljYXRpb25zRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCiArIChX
ZWJQcmVmZXJlbmNlcyAqKV9nZXRJbnN0YW5jZUZvcklkZW50aWZpZXI6KE5TU3RyaW5nICopaWRl
bnQKIHsKICAgICBMT0coRW5jb2RpbmcsICJyZXF1ZXN0aW5nIGZvciAlQFxuIiwgaWRlbnQpOwpJ
bmRleDogV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAkocmV2aXNp
b24gNDgwMDApCisrKyBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEwNyw2ICsxMDcsOSBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlBy
ZWZlcmVuY2VzUmVtb3ZlZE5vCiAtIChCT09MKWlzWFNTQXVkaXRvckVuYWJsZWQ7CiAtICh2b2lk
KXNldFhTU0F1ZGl0b3JFbmFibGVkOihCT09MKWZsYWc7CiAKKy0gKEJPT0wpZGVza3RvcE5vdGlm
aWNhdGlvbnNFbmFibGVkOworLSAodm9pZClzZXREZXNrdG9wTm90aWZpY2F0aW9uc0VuYWJsZWQ6
KEJPT0wpZGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkOworCiAvLyB6ZXJvIG1lYW5zIGRvIEF1
dG9TY2FsZQogLSAoZmxvYXQpUERGU2NhbGVGYWN0b3I7CiAtICh2b2lkKXNldFBERlNjYWxlRmFj
dG9yOihmbG9hdClzY2FsZTsKSW5kZXg6IFdlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCShyZXZpc2lvbiA0ODAw
MCkKKysrIFdlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
Mjc3LDYgKzEyNzcsNyBAQCBzdGF0aWMgYm9vbCBmYXN0RG9jdW1lbnRUZWFyZG93bkVuYWJsZWQo
CiAgICAgc2V0dGluZ3MtPnNldFBsdWdpbnNFbmFibGVkKFtwcmVmZXJlbmNlcyBhcmVQbHVnSW5z
RW5hYmxlZF0pOwogICAgIHNldHRpbmdzLT5zZXREYXRhYmFzZXNFbmFibGVkKFtwcmVmZXJlbmNl
cyBkYXRhYmFzZXNFbmFibGVkXSk7CiAgICAgc2V0dGluZ3MtPnNldExvY2FsU3RvcmFnZUVuYWJs
ZWQoW3ByZWZlcmVuY2VzIGxvY2FsU3RvcmFnZUVuYWJsZWRdKTsKKyAgICBzZXR0aW5ncy0+c2V0
RGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkKFtwcmVmZXJlbmNlcyBkZXNrdG9wTm90aWZpY2F0
aW9uc0VuYWJsZWRdKTsKICAgICBzZXR0aW5ncy0+c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChb
cHJlZmVyZW5jZXMgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLT5zZXRT
YW5zU2VyaWZGb250RmFtaWx5KFtwcmVmZXJlbmNlcyBzYW5zU2VyaWZGb250RmFtaWx5XSk7CiAg
ICAgc2V0dGluZ3MtPnNldFNlcmlmRm9udEZhbWlseShbcHJlZmVyZW5jZXMgc2VyaWZGb250RmFt
aWx5XSk7CkluZGV4OiBXZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
d2luL0NoYW5nZUxvZwkocmV2aXNpb24gNDgwMzcpCisrKyBXZWJLaXQvd2luL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDA5LTA5LTAzICBKb2huIEdyZWdnICA8
am9obm55Z0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEVuYWJsZSBzd2l0Y2ggZm9yIG5vdGlmaWNhdGlvbnMgaW4gUGFnZSBTZXR0
aW5ncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg5
MzAKKworICAgICAgICBBZGRzIHN1cHBvcnQgZm9yIHRoZSBkZXNrdG9wTm90aWZpY2F0aW9uc0Vu
YWJsZWQgZmxhZyBpbiBTZXR0aW5ncyB0aHJvdWdoCisgICAgICAgIFdlYlByZWZlcmVuY2VzUHJp
dmF0ZSBpbnRlcmZhY2UuICBBbHNvIGNsZWFucyB1cCBzb21lIGlzc3VlcyBhY2Nlc3NpbmcgdGhl
CisgICAgICAgIG5vdGlmaWNhdGlvbiBkZWxlZ2F0ZSB0aHJvdWdoIER1bXBSZW5kZXJUcmVlLgor
CQorICAgICAgICAqIEludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGw6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5jcHA6
CisgICAgICAgIChXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlOjpoYXNOb3RpZmljYXRp
b25EZWxlZ2F0ZSk6CisgICAgICAgIChXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlOjpu
b3RpZmljYXRpb25EZWxlZ2F0ZSk6CisgICAgICAgICogV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
Lmg6CisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV2ViUHJlZmVyZW5j
ZXM6OmluaXRpYWxpemVEZWZhdWx0U2V0dGluZ3MpOgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6
OnNldERlc2t0b3BOb3RpZmljYXRpb25zRW5hYmxlZCk6CisgICAgICAgIChXZWJQcmVmZXJlbmNl
czo6ZGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkKToKKyAgICAgICAgKiBXZWJQcmVmZXJlbmNl
cy5oOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6bm90aWZ5UHJl
ZmVyZW5jZXNDaGFuZ2VkKToKKwogMjAwOS0wOS0wMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IGVyaWNAd2Via2l0Lm9yZy4KSW5kZXg6IFdl
YktpdC93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAkocmV2aXNpb24gNDgwMDApCisrKyBXZWJL
aXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2
ICs1Myw3IEBACiAjZGVmaW5lIFdlYktpdFBsdWdpbnNFbmFibGVkUHJlZmVyZW5jZUtleSAiV2Vi
S2l0UGx1Z2luc0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdERhdGFiYXNlc0VuYWJsZWRQcmVmZXJl
bmNlS2V5ICJXZWJLaXREYXRhYmFzZXNFbmFibGVkIgogI2RlZmluZSBXZWJLaXRMb2NhbFN0b3Jh
Z2VFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0TG9jYWxTdG9yYWdlRW5hYmxlZCIKKyNkZWZp
bmUgV2ViS2l0RGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0
RGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkIgogI2RlZmluZSBXZWJLaXRBbGxvd0FuaW1hdGVk
SW1hZ2VzUHJlZmVyZW5jZUtleSAiV2ViS2l0QWxsb3dBbmltYXRlZEltYWdlc1ByZWZlcmVuY2VL
ZXkiCiAjZGVmaW5lIFdlYktpdEFsbG93QW5pbWF0ZWRJbWFnZUxvb3BpbmdQcmVmZXJlbmNlS2V5
ICJXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VMb29waW5nUHJlZmVyZW5jZUtleSIKICNkZWZpbmUg
V2ViS2l0RGlzcGxheUltYWdlc0tleSAiV2ViS2l0RGlzcGxheUltYWdlc0tleSIKSW5kZXg6IFdl
YktpdC93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2Vi
UHJlZmVyZW5jZXMuY3BwCShyZXZpc2lvbiA0ODAwMCkKKysrIFdlYktpdC93aW4vV2ViUHJlZmVy
ZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTAsNiArMjEwLDcgQEAgdm9pZCBXZWJQcmVm
ZXJlbmNlczo6aW5pdGlhbGl6ZURlZmF1bHRTZQogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRl
ZmF1bHRzLCBDRlNUUihXZWJLaXRQbHVnaW5zRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29s
ZWFuVHJ1ZSk7CiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktp
dERhdGFiYXNlc0VuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhblRydWUpOwogICAgIENG
RGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRMb2NhbFN0b3JhZ2VFbmFi
bGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5UcnVlKTsKKyAgICBDRkRpY3Rpb25hcnlBZGRW
YWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0RGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkUHJl
ZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUo
ZGVmYXVsdHMsIENGU1RSKFdlYktpdEFsbG93QW5pbWF0ZWRJbWFnZXNQcmVmZXJlbmNlS2V5KSwg
a0NGQm9vbGVhblRydWUpOwogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNU
UihXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VMb29waW5nUHJlZmVyZW5jZUtleSksIGtDRkJvb2xl
YW5UcnVlKTsKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0
RGlzcGxheUltYWdlc0tleSksIGtDRkJvb2xlYW5UcnVlKTsKQEAgLTEyODksNiArMTI5MCwxOCBA
QCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlByZWZlcmVuY2VzCiAgICAgcmV0dXJuIFNf
T0s7CiB9CiAKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViUHJlZmVyZW5jZXM6OnNldERl
c2t0b3BOb3RpZmljYXRpb25zRW5hYmxlZChCT09MIGVuYWJsZWQpCit7CisgICAgc2V0Qm9vbFZh
bHVlKENGU1RSKFdlYktpdERlc2t0b3BOb3RpZmljYXRpb25zRW5hYmxlZFByZWZlcmVuY2VLZXkp
LCBlbmFibGVkKTsKKyAgICByZXR1cm4gU19PSzsKK30KKworSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBXZWJQcmVmZXJlbmNlczo6ZGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkKEJPT0wqIGVu
YWJsZWQpCit7CisgICAgKmVuYWJsZWQgPSBib29sVmFsdWVGb3JLZXkoQ0ZTVFIoV2ViS2l0RGVz
a3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkUHJlZmVyZW5jZUtleSkpOworICAgIHJldHVybiBTX09L
OworfQorCiBIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpzZXRab29tc1RleHRPbmx5KEJPT0wgem9v
bXNUZXh0T25seSkKIHsKICAgICBzZXRCb29sVmFsdWUoQ0ZTVFIoV2ViS2l0Wm9vbXNUZXh0T25s
eVByZWZlcmVuY2VLZXkpLCB6b29tc1RleHRPbmx5KTsKSW5kZXg6IFdlYktpdC93aW4vV2ViUHJl
ZmVyZW5jZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmgJKHJl
dmlzaW9uIDQ4MDAwKQorKysgV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMjUsNyArMzI1LDEzIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBzZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoCiAgICAgICAgIC8q
IFtpbl0gKi8gQlNUUiBsb2NhdGlvbik7Ci0gICAgCisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgZGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkKAorICAgICAgICAvKiBb
cmV0dmFsXVtvdXRdICovIEJPT0wgKmVuYWJsZWQpOworCisgICAgdmlydHVhbCBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIHNldERlc2t0b3BOb3RpZmljYXRpb25zRW5hYmxlZCgKKyAgICAgICAg
LyogW2luXSAqLyBCT09MIGVuYWJsZWQpOworCiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIHNldFNob3VsZFBhaW50TmF0aXZlQ29udHJvbHMoIAogICAgIC8qIFtpbl0gKi8g
Qk9PTCBzaG91bGRQYWludCk7CiAKSW5kZXg6IFdlYktpdC93aW4vV2ViVmlldy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkocmV2aXNpb24gNDgwMDApCisrKyBXZWJL
aXQvd2luL1dlYlZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MzcyLDYgKzQzNzIsMTEgQEAg
SFJFU1VMVCBXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZQogICAgICAgICByZXR1cm4g
aHI7CiAgICAgc2V0dGluZ3MtPnNldExvY2FsU3RvcmFnZUVuYWJsZWQoZW5hYmxlZCk7CiAKKyAg
ICBociA9IHByZWZzUHJpdmF0ZS0+ZGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkKCZlbmFibGVk
KTsKKyAgICBpZiAoRkFJTEVEKGhyKSkKKyAgICAgICAgcmV0dXJuIGhyOworICAgIHNldHRpbmdz
LT5zZXREZXNrdG9wTm90aWZpY2F0aW9uc0VuYWJsZWQoZW5hYmxlZCk7CisKICAgICBociA9IHBy
ZWZzUHJpdmF0ZS0+aXNXZWJTZWN1cml0eUVuYWJsZWQoJmVuYWJsZWQpOwogICAgIGlmIChGQUlM
RUQoaHIpKQogICAgICAgICByZXR1cm4gaHI7CkluZGV4OiBXZWJLaXQvd2luL0ludGVyZmFjZXMv
SVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9JbnRl
cmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCShyZXZpc2lvbiA0ODAwMCkKKysrIFdl
YktpdC93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAkod29ya2luZyBj
b3B5KQpAQCAtNzksNiArNzksOSBAQCBpbnRlcmZhY2UgSVdlYlByZWZlcmVuY2VzUHJpdmF0ZSA6
IElVbmtuCiAgICAgSFJFU1VMVCBpc1hTU0F1ZGl0b3JFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9P
TCAqZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBzZXRYU1NBdWRpdG9yRW5hYmxlZChbaW5dIEJPT0wg
ZW5hYmxlZCk7CiAKKyAgICBIUkVTVUxUIGRlc2t0b3BOb3RpZmljYXRpb25zRW5hYmxlZChbb3V0
LCByZXR2YWxdIEJPT0wgKmVuYWJsZWQpOworICAgIEhSRVNVTFQgc2V0RGVza3RvcE5vdGlmaWNh
dGlvbnNFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKKwogICAgIC8vIFVzZWQgdG8gc2V0IHBy
ZWZlcmVuY2Ugc3BlY2lmaWVkIGJ5IGEgdGVzdCB2aWEgTGF5b3V0VGVzdENvbnRyb2xsZXIub3Zl
cnJpZGVQcmVmZXJlbmNlKC4uKS4KICAgICAvLyBVc2VkIGJ5IER1bXBSZW5kZXJUcmVlLgogICAg
IEhSRVNVTFQgc2V0UHJlZmVyZW5jZUZvclRlc3QoW2luXSBCU1RSIGtleSwgW2luXSBCU1RSIHZh
bHVlKTsKSW5kZXg6IFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNh
dGlvbnNEZWxlZ2F0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmNwcAkocmV2aXNpb24gNDgwMDApCisr
KyBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdh
dGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODUsOCArMTg1LDcgQEAgYm9vbCBXZWJEZXNrdG9w
Tm90aWZpY2F0aW9uc0RlbGVnYXRlOjpoYQogICAgIG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWkp
OwogCiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlMj4gdWkyOwotICAgIGlmIChTVUNDRUVERUQo
dWktPlF1ZXJ5SW50ZXJmYWNlKElJRF9JV2ViVUlEZWxlZ2F0ZTIsICZ1aTIpKSkKLSAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgcmV0dXJuIFNVQ0NFRURFRCh1aS0+UXVlcnlJbnRlcmZhY2UoSUlE
X0lXZWJVSURlbGVnYXRlMiwgKHZvaWQqKikgJnVpMikpOwogfQogCiBDT01QdHI8SVdlYkRlc2t0
b3BOb3RpZmljYXRpb25zRGVsZWdhdGU+IFdlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGU6
Om5vdGlmaWNhdGlvbkRlbGVnYXRlKCkKQEAgLTE5Niw3ICsxOTUsNyBAQCBDT01QdHI8SVdlYkRl
c2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGU+CiAKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGUy
PiB1aTI7CiAgICAgQ09NUHRyPElXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlPiBkZWxl
Z2F0ZTsKLSAgICBpZiAoU1VDQ0VFREVEKHVpLT5RdWVyeUludGVyZmFjZShJSURfSVdlYlVJRGVs
ZWdhdGUyLCAmdWkyKSkpCisgICAgaWYgKFNVQ0NFRURFRCh1aS0+UXVlcnlJbnRlcmZhY2UoSUlE
X0lXZWJVSURlbGVnYXRlMiwgKHZvaWQqKikgJnVpMikpKQogICAgICAgICB1aTItPmRlc2t0b3BO
b3RpZmljYXRpb25zRGVsZWdhdGUoJmRlbGVnYXRlKTsKIAogICAgIHJldHVybiBkZWxlZ2F0ZTsK
SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDQ4MDM3KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDktMDktMDMgIEpvaG4gR3JlZ2cgIDxqb2hu
bnlnQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRW5hYmxlIHN3aXRjaCBmb3Igbm90aWZpY2F0aW9ucyBpbiBQYWdlIFNldHRpbmdz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODkzMAor
CisgICAgICAgIE5vdyB0aGF0IGRlc2t0b3Agbm90aWZpY2F0aW9ucyBhcmUgY29udHJvbGxlZCBi
eSBydW4tdGltZSBzd2l0Y2gsCisgICAgICAgIHNldCB0aGF0IHN3aXRjaCB0byB0cnVlIGZvciBE
dW1wUmVuZGVyVHJlZS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVy
VHJlZS5tbToKKyAgICAgICAgKHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChy
ZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS93aW4vVUlEZWxlZ2F0ZS5jcHA6CisgICAgICAgIChVSURlbGVnYXRlOjpRdWVyeUludGVyZmFj
ZSk6CisKIDIwMDktMDktMDMgIEtldmluIFdhdHRlcnMgIDxrZXZpbndhdHRlcnNAZ21haWwuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtldmluIE9sbGl2aWVyLgpJbmRleDogV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQkocmV2aXNpb24g
NDgwMDApCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTQwNiw2ICs0MDYsNyBAQCBzdGF0aWMgdm9pZCByZXNldERl
ZmF1bHRzVG9Db25zaXN0ZW50VmFsCiAgICAgW3ByZWZlcmVuY2VzIHNldFNob3VsZFByaW50QmFj
a2dyb3VuZHM6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0Q2FjaGVNb2RlbDpXZWJDYWNoZU1v
ZGVsRG9jdW1lbnRCcm93c2VyXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0WFNTQXVkaXRvckVuYWJs
ZWQ6Tk9dOworICAgIFtwcmVmZXJlbmNlcyBzZXREZXNrdG9wTm90aWZpY2F0aW9uc0VuYWJsZWQ6
WUVTXTsKIAogICAgIFtwcmVmZXJlbmNlcyBzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkOk5PXTsK
ICAgICBbcHJlZmVyZW5jZXMgc2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQ6WUVTXTsKSW5k
ZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVl
LmNwcAkocmV2aXNpb24gNDgwMDApCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4v
RHVtcFJlbmRlclRyZWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MzUsNiArNzM1LDcgQEAgc3Rh
dGljIHZvaWQgcmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbAogICAgICAgICBwcmVmc1ByaXZh
dGUtPnNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKFRSVUUpOwogICAgICAgICBw
cmVmc1ByaXZhdGUtPnNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKFRSVUUpOwogICAgICAg
ICBwcmVmc1ByaXZhdGUtPnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoRkFMU0UpOworICAgICAg
ICBwcmVmc1ByaXZhdGUtPnNldERlc2t0b3BOb3RpZmljYXRpb25zRW5hYmxlZChUUlVFKTsKICAg
ICAgICAgcHJlZnNQcml2YXRlLT5zZXRTaG91bGRQYWludE5hdGl2ZUNvbnRyb2xzKEZBTFNFKTsg
Ly8gRklYTUUgLSBuZWVkIHRvIG1ha2UgRFJUIHBhc3Mgd2l0aCBXaW5kb3dzIG5hdGl2ZSBjb250
cm9scyA8aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU1OTI+CiAgICAg
ICAgIHByZWZzUHJpdmF0ZS0+c2V0WFNTQXVkaXRvckVuYWJsZWQoRkFMU0UpOwogICAgICAgICBw
cmVmc1ByaXZhdGUtPnNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChUUlVFKTsK
SW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9VSURlbGVnYXRlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVUlEZWxlZ2F0ZS5jcHAJ
KHJldmlzaW9uIDQ4MDAwKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1VJRGVs
ZWdhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzYsNiArMTc2LDggQEAgSFJFU1VMVCBTVERN
RVRIT0RDQUxMVFlQRSBVSURlbGVnYXRlOjpRdQogICAgICAgICAqcHB2T2JqZWN0ID0gc3RhdGlj
X2Nhc3Q8SVdlYlVJRGVsZWdhdGUqPih0aGlzKTsKICAgICBlbHNlIGlmIChJc0VxdWFsR1VJRChy
aWlkLCBJSURfSVdlYlVJRGVsZWdhdGUpKQogICAgICAgICAqcHB2T2JqZWN0ID0gc3RhdGljX2Nh
c3Q8SVdlYlVJRGVsZWdhdGUqPih0aGlzKTsKKyAgICBlbHNlIGlmIChJc0VxdWFsR1VJRChyaWlk
LCBJSURfSVdlYlVJRGVsZWdhdGUyKSkKKyAgICAgICAgKnBwdk9iamVjdCA9IHN0YXRpY19jYXN0
PElXZWJVSURlbGVnYXRlMio+KHRoaXMpOwogICAgIGVsc2UgaWYgKElzRXF1YWxHVUlEKHJpaWQs
IElJRF9JV2ViVUlEZWxlZ2F0ZVByaXZhdGUpKQogICAgICAgICAqcHB2T2JqZWN0ID0gc3RhdGlj
X2Nhc3Q8SVdlYlVJRGVsZWdhdGVQcml2YXRlKj4odGhpcyk7CiAgICAgZWxzZQo=
</data>
<flag name="commit-queue"
          id="20068"
          type_id="3"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39070</attachid>
            <date>2009-09-04 09:45:19 -0700</date>
            <delta_ts>2009-09-14 16:25:29 -0700</delta_ts>
            <desc>same patch, one more tab gone and default false.</desc>
            <filename>bug28930_.diff</filename>
            <type>text/plain</type>
            <size>18457</size>
            <attacher name="John Gregg">johnnyg</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODAzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMDktMDktMDMgIEpvaG4gR3JlZ2cgIDxqb2hubnlnQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaXNF
bmFibGVkIHN3aXRjaCBmb3Igbm90aWZpY2F0aW9ucyBpbiBQYWdlIFNldHRpbmdzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODkzMAorCisgICAgICAg
IEFkZHMgYSBydW4tdGltZSBmbGFnIGluIFNldHRpbmdzIG9iamVjdCB0aGF0IGNvbnRyb2xzIHdo
ZXRoZXIKKyAgICAgICAgdG8gZXhwb3NlIGRlc2t0b3Agbm90aWZpY2F0aW9ucy4KKworICAgICAg
ICBObyBuZXcgdGVzdCwgYnV0IHRlc3QgY29kZSBhbHNvIG1vZGlmaWVkIHRvIHNldCB0aGlzIHBy
ZWZlcmVuY2UuCisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6OndlYmtpdE5vdGlmaWNhdGlvbnMpOiBjaGVjayBwcmVmZXJlbmNlIGJl
Zm9yZSByZXR1cm5pbmcgbm90aWZpY2F0aW9ucyBvYmplY3QKKyAgICAgICAgKiBwYWdlL1NldHRp
bmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6CisgICAgICAg
IChXZWJDb3JlOjpTZXR0aW5nczo6c2V0RGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkKToKKyAg
ICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6ZGVz
a3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkKToKKwogMjAwOS0wOS0wMyAgQWxleGV5IFByb3NrdXJ5
YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dl
YkNvcmUuYmFzZS5leHAJKHJldmlzaW9uIDQ4MDAwKQorKysgV2ViQ29yZS9XZWJDb3JlLmJhc2Uu
ZXhwCSh3b3JraW5nIGNvcHkpCkBAIC02NjUsNiArNjY1LDcgQEAgX19aTjdXZWJDb3JlOFNldHRp
bmdzMjdzZXRMb2NhbFN0b3JhZ2VEYQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjhzZXRGb3JjZUZU
UERpcmVjdG9yeUxpc3RpbmdzRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI5c2V0QXV0aG9yQW5k
VXNlclN0eWxlc0VuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjlzZXRXZWJBcmNoaXZl
RGVidWdNb2RlRW5hYmxlZEViCitfX1pON1dlYkNvcmU4U2V0dGluZ3MzMHNldERlc2t0b3BOb3Rp
ZmljYXRpb25zRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MzMXNldFNocmlua3NTdGFu
ZGFsb25lSW1hZ2VzVG9GaXRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMzJzZXRBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MzMnNldE5lZWRzQWRv
YmVGcmFtZVJlbG9hZGluZ1F1aXJrRWIKSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCShyZXZpc2lvbiA0ODAw
MCkKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MTMs
NiArNjEzLDkgQEAgTm90aWZpY2F0aW9uQ2VudGVyKiBET01XaW5kb3c6OndlYmtpdE5vdAogICAg
IGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIDA7CiAKKyAgICBpZiAoIXBhZ2UtPnNldHRpbmdz
KCktPmRlc2t0b3BOb3RpZmljYXRpb25zRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gMDsKKwog
ICAgIE5vdGlmaWNhdGlvblByZXNlbnRlciogcHJvdmlkZXIgPSBwYWdlLT5jaHJvbWUoKS0+bm90
aWZpY2F0aW9uUHJlc2VudGVyKCk7CiAgICAgaWYgKHByb3ZpZGVyKSAKICAgICAgICAgbV9ub3Rp
ZmljYXRpb25zID0gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUoZG9jdW1lbnQsIHByb3ZpZGVy
KTsgICAgCkluZGV4OiBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAJKHJldmlzaW9uIDQ4MDAwKQorKysgV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEwOSw3IEBAIFNldHRpbmdz
OjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwgbV9kb3dubG9hZGFibGVCaW5hcnlGb250c0Vu
YWJsZWQodHJ1ZSkKICAgICAsIG1feHNzQXVkaXRvckVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKHRydWUpCisgICAgLCBtX2Rlc2t0b3BOb3RpZmlj
YXRpb25zRW5hYmxlZChmYWxzZSkKIHsKICAgICAvLyBBIEZyYW1lIG1heSBub3QgaGF2ZSBiZWVu
IGNyZWF0ZWQgeWV0LCBzbyB3ZSBpbml0aWFsaXplIHRoZSBBdG9taWNTdHJpbmcgCiAgICAgLy8g
aGFzaCBiZWZvcmUgdHJ5aW5nIHRvIHVzZSBpdC4KQEAgLTQ5Myw0ICs0OTQsOSBAQCB2b2lkIFNl
dHRpbmdzOjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nCiAgICAgc2V0TmVlZHNSZWFwcGx5U3R5
bGVzSW5BbGxGcmFtZXMobV9wYWdlKTsKIH0KIAordm9pZCBTZXR0aW5nczo6c2V0RGVza3RvcE5v
dGlmaWNhdGlvbnNFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBtX2Rlc2t0b3BOb3RpZmlj
YXRpb25zRW5hYmxlZCA9IGVuYWJsZWQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5oCShyZXZpc2lvbiA0ODAwMCkKKysrIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNTMsNiArMjUzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKGJvb2wpOwogICAgICAg
ICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9h
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZDsgfQogCisgICAgICAgIHZvaWQgc2V0RGVza3Rv
cE5vdGlmaWNhdGlvbnNFbmFibGVkKGJvb2wpOworICAgICAgICBib29sIGRlc2t0b3BOb3RpZmlj
YXRpb25zRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVza3RvcE5vdGlmaWNhdGlvbnNFbmFi
bGVkOyB9CisKICAgICBwcml2YXRlOgogICAgICAgICBQYWdlKiBtX3BhZ2U7CiAgICAgICAgIApA
QCAtMzE3LDYgKzMyMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX2Rv
d25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV94c3NBdWRp
dG9yRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5h
YmxlZCA6IDE7CisgICAgICAgIGJvb2wgbV9kZXNrdG9wTm90aWZpY2F0aW9uc0VuYWJsZWQgOiAx
OwogCiAjaWYgVVNFKFNBRkFSSV9USEVNRSkKICAgICAgICAgc3RhdGljIGJvb2wgZ1Nob3VsZFBh
aW50TmF0aXZlQ29udHJvbHM7CkluZGV4OiBXZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gNDgwMzcpCisrKyBXZWJLaXQvbWFj
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDA5LTA5LTAzICBK
b2huIEdyZWdnICA8am9obm55Z0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIGlzRW5hYmxlZCBzd2l0Y2ggZm9yIG5vdGlmaWNhdGlv
bnMgaW4gUGFnZSBTZXR0aW5ncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mjg5MzAKKworICAgICAgICBBZGRzIHN1cHBvcnQgZm9yIHRoZSBkZXNrdG9w
Tm90aWZpY2F0aW9uc0VuYWJsZWQgZmxhZyBpbiBTZXR0aW5ncworICAgICAgICB0aHJvdWdoIFdl
YlByZWZlcmVuY2VzUHJpdmF0ZS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZUtl
eXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAg
ICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgorICAgICAgICAoLVtXZWJQcmVmZXJl
bmNlcyBkZXNrdG9wTm90aWZpY2F0aW9uc0VuYWJsZWRdKToKKyAgICAgICAgKC1bV2ViUHJlZmVy
ZW5jZXMgc2V0RGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkOl0pOgorICAgICAgICAqIFdlYlZp
ZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1t
OgorICAgICAgICAoLVtXZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb246XSk6
CisKIDIwMDktMDktMDMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkIGJ1aWxkIGZpeC4KSW5kZXg6IFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlS2V5c1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZUtleXNQcml2YXRlLmgJKHJldmlzaW9uIDQ4MDAwKQorKysgV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2
ICs1NSw3IEBACiAjZGVmaW5lIFdlYktpdFBsdWdpbnNFbmFibGVkUHJlZmVyZW5jZUtleSBAIldl
YktpdFBsdWdpbnNFbmFibGVkIgogI2RlZmluZSBXZWJLaXREYXRhYmFzZXNFbmFibGVkUHJlZmVy
ZW5jZUtleSBAIldlYktpdERhdGFiYXNlc0VuYWJsZWRQcmVmZXJlbmNlS2V5IgogI2RlZmluZSBX
ZWJLaXRMb2NhbFN0b3JhZ2VFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdExvY2FsU3RvcmFn
ZUVuYWJsZWRQcmVmZXJlbmNlS2V5IgorI2RlZmluZSBXZWJLaXREZXNrdG9wTm90aWZpY2F0aW9u
c0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0RGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVk
UHJlZmVyZW5jZUtleSIKICNkZWZpbmUgV2ViS2l0QWxsb3dBbmltYXRlZEltYWdlc1ByZWZlcmVu
Y2VLZXkgQCJXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VzUHJlZmVyZW5jZUtleSIKICNkZWZpbmUg
V2ViS2l0QWxsb3dBbmltYXRlZEltYWdlTG9vcGluZ1ByZWZlcmVuY2VLZXkgQCJXZWJLaXRBbGxv
d0FuaW1hdGVkSW1hZ2VMb29waW5nUHJlZmVyZW5jZUtleSIKICNkZWZpbmUgV2ViS2l0RGlzcGxh
eUltYWdlc0tleSBAIldlYktpdERpc3BsYXlJbWFnZXNLZXkiCkluZGV4OiBXZWJLaXQvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tCShyZXZpc2lvbiA0ODAwMCkKKysrIFdlYktpdC9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzIwLDYgKzMyMCw3IEBAIHN0
YXRpYyBXZWJDYWNoZU1vZGVsIGNhY2hlTW9kZWxGb3JNYWluQnUKICAgICAgICAgW05TTnVtYmVy
IG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRQbHVnaW5zRW5hYmxlZFByZWZlcmVuY2VLZXks
CiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdLCAgV2ViS2l0RGF0YWJhc2Vz
RW5hYmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZ
RVNdLCAgV2ViS2l0TG9jYWxTdG9yYWdlRW5hYmxlZFByZWZlcmVuY2VLZXksCisgICAgICAgIFtO
U051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICAgV2ViS2l0RGVza3RvcE5vdGlmaWNhdGlvbnNF
bmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllF
U10sICBXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VzUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05T
TnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VMb29w
aW5nUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10s
ICBXZWJLaXREaXNwbGF5SW1hZ2VzS2V5LApAQCAtMTAxMSw2ICsxMDEyLDE2IEBAIHN0YXRpYyBX
ZWJDYWNoZU1vZGVsIGNhY2hlTW9kZWxGb3JNYWluQnUKICAgICBbc2VsZiBfc2V0Qm9vbFZhbHVl
OmxvY2FsU3RvcmFnZUVuYWJsZWQgZm9yS2V5OldlYktpdExvY2FsU3RvcmFnZUVuYWJsZWRQcmVm
ZXJlbmNlS2V5XTsKIH0KIAorLSAoQk9PTClkZXNrdG9wTm90aWZpY2F0aW9uc0VuYWJsZWQKK3sK
KyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXREZXNrdG9wTm90aWZpY2F0
aW9uc0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKworLSAodm9pZClzZXREZXNrdG9wTm90aWZp
Y2F0aW9uc0VuYWJsZWQ6KEJPT0wpZGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkCit7CisgICAg
W3NlbGYgX3NldEJvb2xWYWx1ZTpkZXNrdG9wTm90aWZpY2F0aW9uc0VuYWJsZWQgZm9yS2V5Oldl
YktpdERlc2t0b3BOb3RpZmljYXRpb25zRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCiArIChX
ZWJQcmVmZXJlbmNlcyAqKV9nZXRJbnN0YW5jZUZvcklkZW50aWZpZXI6KE5TU3RyaW5nICopaWRl
bnQKIHsKICAgICBMT0coRW5jb2RpbmcsICJyZXF1ZXN0aW5nIGZvciAlQFxuIiwgaWRlbnQpOwpJ
bmRleDogV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAkocmV2aXNp
b24gNDgwMDApCisrKyBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEwNyw2ICsxMDcsOSBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlBy
ZWZlcmVuY2VzUmVtb3ZlZE5vCiAtIChCT09MKWlzWFNTQXVkaXRvckVuYWJsZWQ7CiAtICh2b2lk
KXNldFhTU0F1ZGl0b3JFbmFibGVkOihCT09MKWZsYWc7CiAKKy0gKEJPT0wpZGVza3RvcE5vdGlm
aWNhdGlvbnNFbmFibGVkOworLSAodm9pZClzZXREZXNrdG9wTm90aWZpY2F0aW9uc0VuYWJsZWQ6
KEJPT0wpZGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkOworCiAvLyB6ZXJvIG1lYW5zIGRvIEF1
dG9TY2FsZQogLSAoZmxvYXQpUERGU2NhbGVGYWN0b3I7CiAtICh2b2lkKXNldFBERlNjYWxlRmFj
dG9yOihmbG9hdClzY2FsZTsKSW5kZXg6IFdlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCShyZXZpc2lvbiA0ODAw
MCkKKysrIFdlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
Mjc3LDYgKzEyNzcsNyBAQCBzdGF0aWMgYm9vbCBmYXN0RG9jdW1lbnRUZWFyZG93bkVuYWJsZWQo
CiAgICAgc2V0dGluZ3MtPnNldFBsdWdpbnNFbmFibGVkKFtwcmVmZXJlbmNlcyBhcmVQbHVnSW5z
RW5hYmxlZF0pOwogICAgIHNldHRpbmdzLT5zZXREYXRhYmFzZXNFbmFibGVkKFtwcmVmZXJlbmNl
cyBkYXRhYmFzZXNFbmFibGVkXSk7CiAgICAgc2V0dGluZ3MtPnNldExvY2FsU3RvcmFnZUVuYWJs
ZWQoW3ByZWZlcmVuY2VzIGxvY2FsU3RvcmFnZUVuYWJsZWRdKTsKKyAgICBzZXR0aW5ncy0+c2V0
RGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkKFtwcmVmZXJlbmNlcyBkZXNrdG9wTm90aWZpY2F0
aW9uc0VuYWJsZWRdKTsKICAgICBzZXR0aW5ncy0+c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChb
cHJlZmVyZW5jZXMgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLT5zZXRT
YW5zU2VyaWZGb250RmFtaWx5KFtwcmVmZXJlbmNlcyBzYW5zU2VyaWZGb250RmFtaWx5XSk7CiAg
ICAgc2V0dGluZ3MtPnNldFNlcmlmRm9udEZhbWlseShbcHJlZmVyZW5jZXMgc2VyaWZGb250RmFt
aWx5XSk7CkluZGV4OiBXZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
d2luL0NoYW5nZUxvZwkocmV2aXNpb24gNDgwMzcpCisrKyBXZWJLaXQvd2luL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDA5LTA5LTAzICBKb2huIEdyZWdnICA8
am9obm55Z0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEVuYWJsZSBzd2l0Y2ggZm9yIG5vdGlmaWNhdGlvbnMgaW4gUGFnZSBTZXR0
aW5ncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg5
MzAKKworICAgICAgICBBZGRzIHN1cHBvcnQgZm9yIHRoZSBkZXNrdG9wTm90aWZpY2F0aW9uc0Vu
YWJsZWQgZmxhZyBpbiBTZXR0aW5ncyB0aHJvdWdoCisgICAgICAgIFdlYlByZWZlcmVuY2VzUHJp
dmF0ZSBpbnRlcmZhY2UuICBBbHNvIGNsZWFucyB1cCBzb21lIGlzc3VlcyBhY2Nlc3NpbmcgdGhl
CisgICAgICAgIG5vdGlmaWNhdGlvbiBkZWxlZ2F0ZSB0aHJvdWdoIER1bXBSZW5kZXJUcmVlLgor
CisgICAgICAgICogSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbDoKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmNwcDoK
KyAgICAgICAgKFdlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGU6Omhhc05vdGlmaWNhdGlv
bkRlbGVnYXRlKToKKyAgICAgICAgKFdlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGU6Om5v
dGlmaWNhdGlvbkRlbGVnYXRlKToKKyAgICAgICAgKiBXZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUu
aDoKKyAgICAgICAgKiBXZWJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJQcmVmZXJlbmNl
czo6aW5pdGlhbGl6ZURlZmF1bHRTZXR0aW5ncyk6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6
c2V0RGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkKToKKyAgICAgICAgKFdlYlByZWZlcmVuY2Vz
OjpkZXNrdG9wTm90aWZpY2F0aW9uc0VuYWJsZWQpOgorICAgICAgICAqIFdlYlByZWZlcmVuY2Vz
Lmg6CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3Ojpub3RpZnlQcmVm
ZXJlbmNlc0NoYW5nZWQpOgorCiAyMDA5LTA5LTAzICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgZXJpY0B3ZWJraXQub3JnLgpJbmRleDogV2Vi
S2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
d2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCShyZXZpc2lvbiA0ODAwMCkKKysrIFdlYktp
dC93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYg
KzUzLDcgQEAKICNkZWZpbmUgV2ViS2l0UGx1Z2luc0VuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJL
aXRQbHVnaW5zRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0RGF0YWJhc2VzRW5hYmxlZFByZWZlcmVu
Y2VLZXkgIldlYktpdERhdGFiYXNlc0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdExvY2FsU3RvcmFn
ZUVuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRMb2NhbFN0b3JhZ2VFbmFibGVkIgorI2RlZmlu
ZSBXZWJLaXREZXNrdG9wTm90aWZpY2F0aW9uc0VuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRE
ZXNrdG9wTm90aWZpY2F0aW9uc0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdEFsbG93QW5pbWF0ZWRJ
bWFnZXNQcmVmZXJlbmNlS2V5ICJXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VzUHJlZmVyZW5jZUtl
eSIKICNkZWZpbmUgV2ViS2l0QWxsb3dBbmltYXRlZEltYWdlTG9vcGluZ1ByZWZlcmVuY2VLZXkg
IldlYktpdEFsbG93QW5pbWF0ZWRJbWFnZUxvb3BpbmdQcmVmZXJlbmNlS2V5IgogI2RlZmluZSBX
ZWJLaXREaXNwbGF5SW1hZ2VzS2V5ICJXZWJLaXREaXNwbGF5SW1hZ2VzS2V5IgpJbmRleDogV2Vi
S2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJQ
cmVmZXJlbmNlcy5jcHAJKHJldmlzaW9uIDQ4MDAwKQorKysgV2ViS2l0L3dpbi9XZWJQcmVmZXJl
bmNlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMCw2ICsyMTAsNyBAQCB2b2lkIFdlYlByZWZl
cmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNlCiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVm
YXVsdHMsIENGU1RSKFdlYktpdFBsdWdpbnNFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xl
YW5UcnVlKTsKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0
RGF0YWJhc2VzRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgQ0ZE
aWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdExvY2FsU3RvcmFnZUVuYWJs
ZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhblRydWUpOworICAgIENGRGljdGlvbmFyeUFkZFZh
bHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXREZXNrdG9wTm90aWZpY2F0aW9uc0VuYWJsZWRQcmVm
ZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShk
ZWZhdWx0cywgQ0ZTVFIoV2ViS2l0QWxsb3dBbmltYXRlZEltYWdlc1ByZWZlcmVuY2VLZXkpLCBr
Q0ZCb29sZWFuVHJ1ZSk7CiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RS
KFdlYktpdEFsbG93QW5pbWF0ZWRJbWFnZUxvb3BpbmdQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVh
blRydWUpOwogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRE
aXNwbGF5SW1hZ2VzS2V5KSwga0NGQm9vbGVhblRydWUpOwpAQCAtMTI4OSw2ICsxMjkwLDE4IEBA
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViUHJlZmVyZW5jZXMKICAgICByZXR1cm4gU19P
SzsKIH0KIAorSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJQcmVmZXJlbmNlczo6c2V0RGVz
a3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkKEJPT0wgZW5hYmxlZCkKK3sKKyAgICBzZXRCb29sVmFs
dWUoQ0ZTVFIoV2ViS2l0RGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkUHJlZmVyZW5jZUtleSks
IGVuYWJsZWQpOworICAgIHJldHVybiBTX09LOworfQorCitIUkVTVUxUIFNURE1FVEhPRENBTExU
WVBFIFdlYlByZWZlcmVuY2VzOjpkZXNrdG9wTm90aWZpY2F0aW9uc0VuYWJsZWQoQk9PTCogZW5h
YmxlZCkKK3sKKyAgICAqZW5hYmxlZCA9IGJvb2xWYWx1ZUZvcktleShDRlNUUihXZWJLaXREZXNr
dG9wTm90aWZpY2F0aW9uc0VuYWJsZWRQcmVmZXJlbmNlS2V5KSk7CisgICAgcmV0dXJuIFNfT0s7
Cit9CisKIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldFpvb21zVGV4dE9ubHkoQk9PTCB6b29t
c1RleHRPbmx5KQogewogICAgIHNldEJvb2xWYWx1ZShDRlNUUihXZWJLaXRab29tc1RleHRPbmx5
UHJlZmVyZW5jZUtleSksIHpvb21zVGV4dE9ubHkpOwpJbmRleDogV2ViS2l0L3dpbi9XZWJQcmVm
ZXJlbmNlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuaAkocmV2
aXNpb24gNDgwMDApCisrKyBXZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMyNSw3ICszMjUsMTMgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIHNldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCgKICAgICAgICAgLyog
W2luXSAqLyBCU1RSIGxvY2F0aW9uKTsKLSAgICAKKworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERN
RVRIT0RDQUxMVFlQRSBkZXNrdG9wTm90aWZpY2F0aW9uc0VuYWJsZWQoCisgICAgICAgIC8qIFty
ZXR2YWxdW291dF0gKi8gQk9PTCAqZW5hYmxlZCk7CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgc2V0RGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkKAorICAgICAgICAv
KiBbaW5dICovIEJPT0wgZW5hYmxlZCk7CisKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgc2V0U2hvdWxkUGFpbnROYXRpdmVDb250cm9scyggCiAgICAgLyogW2luXSAqLyBC
T09MIHNob3VsZFBhaW50KTsKIApJbmRleDogV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvd2luL1dlYlZpZXcuY3BwCShyZXZpc2lvbiA0ODAwMCkKKysrIFdlYktp
dC93aW4vV2ViVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzNzIsNiArNDM3MiwxMSBAQCBI
UkVTVUxUIFdlYlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlCiAgICAgICAgIHJldHVybiBo
cjsKICAgICBzZXR0aW5ncy0+c2V0TG9jYWxTdG9yYWdlRW5hYmxlZChlbmFibGVkKTsKIAorICAg
IGhyID0gcHJlZnNQcml2YXRlLT5kZXNrdG9wTm90aWZpY2F0aW9uc0VuYWJsZWQoJmVuYWJsZWQp
OworICAgIGlmIChGQUlMRUQoaHIpKQorICAgICAgICByZXR1cm4gaHI7CisgICAgc2V0dGluZ3Mt
PnNldERlc2t0b3BOb3RpZmljYXRpb25zRW5hYmxlZChlbmFibGVkKTsKKwogICAgIGhyID0gcHJl
ZnNQcml2YXRlLT5pc1dlYlNlY3VyaXR5RW5hYmxlZCgmZW5hYmxlZCk7CiAgICAgaWYgKEZBSUxF
RChocikpCiAgICAgICAgIHJldHVybiBocjsKSW5kZXg6IFdlYktpdC93aW4vSW50ZXJmYWNlcy9J
V2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL0ludGVy
ZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwJKHJldmlzaW9uIDQ4MDAwKQorKysgV2Vi
S2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC03OSw2ICs3OSw5IEBAIGludGVyZmFjZSBJV2ViUHJlZmVyZW5jZXNQcml2YXRlIDog
SVVua24KICAgICBIUkVTVUxUIGlzWFNTQXVkaXRvckVuYWJsZWQoW291dCwgcmV0dmFsXSBCT09M
ICplbmFibGVkKTsKICAgICBIUkVTVUxUIHNldFhTU0F1ZGl0b3JFbmFibGVkKFtpbl0gQk9PTCBl
bmFibGVkKTsKIAorICAgIEhSRVNVTFQgZGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkKFtvdXQs
IHJldHZhbF0gQk9PTCAqZW5hYmxlZCk7CisgICAgSFJFU1VMVCBzZXREZXNrdG9wTm90aWZpY2F0
aW9uc0VuYWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOworCiAgICAgLy8gVXNlZCB0byBzZXQgcHJl
ZmVyZW5jZSBzcGVjaWZpZWQgYnkgYSB0ZXN0IHZpYSBMYXlvdXRUZXN0Q29udHJvbGxlci5vdmVy
cmlkZVByZWZlcmVuY2UoLi4pLgogICAgIC8vIFVzZWQgYnkgRHVtcFJlbmRlclRyZWUuCiAgICAg
SFJFU1VMVCBzZXRQcmVmZXJlbmNlRm9yVGVzdChbaW5dIEJTVFIga2V5LCBbaW5dIEJTVFIgdmFs
dWUpOwpJbmRleDogV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJEZXNrdG9wTm90aWZpY2F0
aW9uc0RlbGVnYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGUuY3BwCShyZXZpc2lvbiA0ODAwMCkKKysr
IFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4NSw4ICsxODUsNyBAQCBib29sIFdlYkRlc2t0b3BO
b3RpZmljYXRpb25zRGVsZWdhdGU6OmhhCiAgICAgbV93ZWJWaWV3LT51aURlbGVnYXRlKCZ1aSk7
CiAKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGUyPiB1aTI7Ci0gICAgaWYgKFNVQ0NFRURFRCh1
aS0+UXVlcnlJbnRlcmZhY2UoSUlEX0lXZWJVSURlbGVnYXRlMiwgJnVpMikpKQotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gU1VDQ0VFREVEKHVpLT5RdWVyeUludGVyZmFjZShJSURf
SVdlYlVJRGVsZWdhdGUyLCAodm9pZCoqKSAmdWkyKSk7CiB9CiAKIENPTVB0cjxJV2ViRGVza3Rv
cE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZT4gV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZTo6
bm90aWZpY2F0aW9uRGVsZWdhdGUoKQpAQCAtMTk2LDcgKzE5NSw3IEBAIENPTVB0cjxJV2ViRGVz
a3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZT4KIAogICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZTI+
IHVpMjsKICAgICBDT01QdHI8SVdlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGU+IGRlbGVn
YXRlOwotICAgIGlmIChTVUNDRUVERUQodWktPlF1ZXJ5SW50ZXJmYWNlKElJRF9JV2ViVUlEZWxl
Z2F0ZTIsICZ1aTIpKSkKKyAgICBpZiAoU1VDQ0VFREVEKHVpLT5RdWVyeUludGVyZmFjZShJSURf
SVdlYlVJRGVsZWdhdGUyLCAodm9pZCoqKSAmdWkyKSkpCiAgICAgICAgIHVpMi0+ZGVza3RvcE5v
dGlmaWNhdGlvbnNEZWxlZ2F0ZSgmZGVsZWdhdGUpOwogCiAgICAgcmV0dXJuIGRlbGVnYXRlOwpJ
bmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0No
YW5nZUxvZwkocmV2aXNpb24gNDgwMzcpCisrKyBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAwOS0wOS0wMyAgSm9obiBHcmVnZyAgPGpvaG5u
eWdAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBFbmFibGUgc3dpdGNoIGZvciBub3RpZmljYXRpb25zIGluIFBhZ2UgU2V0dGluZ3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4OTMwCisK
KyAgICAgICAgTm93IHRoYXQgZGVza3RvcCBub3RpZmljYXRpb25zIGFyZSBjb250cm9sbGVkIGJ5
IHJ1bi10aW1lIHN3aXRjaCwKKyAgICAgICAgc2V0IHRoYXQgc3dpdGNoIHRvIHRydWUgZm9yIER1
bXBSZW5kZXJUcmVlLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJU
cmVlLm1tOgorICAgICAgICAocmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKHJl
c2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L3dpbi9VSURlbGVnYXRlLmNwcDoKKyAgICAgICAgKFVJRGVsZWdhdGU6OlF1ZXJ5SW50ZXJmYWNl
KToKKwogMjAwOS0wOS0wMyAgS2V2aW4gV2F0dGVycyAgPGtldmlud2F0dGVyc0BnbWFpbC5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2V2aW4gT2xsaXZpZXIuCkluZGV4OiBXZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCShyZXZpc2lvbiA0
ODAwMCkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bQkod29ya2luZyBjb3B5KQpAQCAtNDA2LDYgKzQwNiw3IEBAIHN0YXRpYyB2b2lkIHJlc2V0RGVm
YXVsdHNUb0NvbnNpc3RlbnRWYWwKICAgICBbcHJlZmVyZW5jZXMgc2V0U2hvdWxkUHJpbnRCYWNr
Z3JvdW5kczpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRDYWNoZU1vZGVsOldlYkNhY2hlTW9k
ZWxEb2N1bWVudEJyb3dzZXJdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRYU1NBdWRpdG9yRW5hYmxl
ZDpOT107CisgICAgW3ByZWZlcmVuY2VzIHNldERlc2t0b3BOb3RpZmljYXRpb25zRW5hYmxlZDpZ
RVNdOwogCiAgICAgW3ByZWZlcmVuY2VzIHNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQ6Tk9dOwog
ICAgIFtwcmVmZXJlbmNlcyBzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZDpZRVNdOwpJbmRl
eDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUu
Y3BwCShyZXZpc2lvbiA0ODAwMCkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9E
dW1wUmVuZGVyVHJlZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczNSw2ICs3MzUsNyBAQCBzdGF0
aWMgdm9pZCByZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsCiAgICAgICAgIHByZWZzUHJpdmF0
ZS0+c2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMoVFJVRSk7CiAgICAgICAgIHBy
ZWZzUHJpdmF0ZS0+c2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQoVFJVRSk7CiAgICAgICAg
IHByZWZzUHJpdmF0ZS0+c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChGQUxTRSk7CisgICAgICAg
IHByZWZzUHJpdmF0ZS0+c2V0RGVza3RvcE5vdGlmaWNhdGlvbnNFbmFibGVkKFRSVUUpOwogICAg
ICAgICBwcmVmc1ByaXZhdGUtPnNldFNob3VsZFBhaW50TmF0aXZlQ29udHJvbHMoRkFMU0UpOyAv
LyBGSVhNRSAtIG5lZWQgdG8gbWFrZSBEUlQgcGFzcyB3aXRoIFdpbmRvd3MgbmF0aXZlIGNvbnRy
b2xzIDxodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTU5Mj4KICAgICAg
ICAgcHJlZnNQcml2YXRlLT5zZXRYU1NBdWRpdG9yRW5hYmxlZChGQUxTRSk7CiAgICAgICAgIHBy
ZWZzUHJpdmF0ZS0+c2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKFRSVUUpOwpJ
bmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1VJRGVsZWdhdGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9VSURlbGVnYXRlLmNwcAko
cmV2aXNpb24gNDgwMDApCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVUlEZWxl
Z2F0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3Niw2ICsxNzYsOCBAQCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIFVJRGVsZWdhdGU6OlF1CiAgICAgICAgICpwcHZPYmplY3QgPSBzdGF0aWNf
Y2FzdDxJV2ViVUlEZWxlZ2F0ZSo+KHRoaXMpOwogICAgIGVsc2UgaWYgKElzRXF1YWxHVUlEKHJp
aWQsIElJRF9JV2ViVUlEZWxlZ2F0ZSkpCiAgICAgICAgICpwcHZPYmplY3QgPSBzdGF0aWNfY2Fz
dDxJV2ViVUlEZWxlZ2F0ZSo+KHRoaXMpOworICAgIGVsc2UgaWYgKElzRXF1YWxHVUlEKHJpaWQs
IElJRF9JV2ViVUlEZWxlZ2F0ZTIpKQorICAgICAgICAqcHB2T2JqZWN0ID0gc3RhdGljX2Nhc3Q8
SVdlYlVJRGVsZWdhdGUyKj4odGhpcyk7CiAgICAgZWxzZSBpZiAoSXNFcXVhbEdVSUQocmlpZCwg
SUlEX0lXZWJVSURlbGVnYXRlUHJpdmF0ZSkpCiAgICAgICAgICpwcHZPYmplY3QgPSBzdGF0aWNf
Y2FzdDxJV2ViVUlEZWxlZ2F0ZVByaXZhdGUqPih0aGlzKTsKICAgICBlbHNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39579</attachid>
            <date>2009-09-14 16:25:29 -0700</date>
            <delta_ts>2009-09-24 14:00:42 -0700</delta_ts>
            <desc>same patch, rename to &quot;experimental&quot;</desc>
            <filename>bug28930_experimental.diff</filename>
            <type>text/plain</type>
            <size>18983</size>
            <attacher name="John Gregg">johnnyg</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODM3NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMDktMDktMTQgIEpvaG4gR3JlZ2cgIDxqb2hubnlnQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaXNF
bmFibGVkIHN3aXRjaCBmb3Igbm90aWZpY2F0aW9ucyAoZXhwZXJpbWVudGFsKSBpbiBQYWdlIFNl
dHRpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
ODkzMAorCisgICAgICAgIEFkZHMgYSBydW4tdGltZSBmbGFnIGluIFNldHRpbmdzIG9iamVjdCB0
aGF0IGNvbnRyb2xzIHdoZXRoZXIKKyAgICAgICAgdG8gZXhwb3NlIGRlc2t0b3Agbm90aWZpY2F0
aW9ucy4KKworICAgICAgICBObyBuZXcgdGVzdCwgYnV0IHRlc3QgY29kZSBhbHNvIG1vZGlmaWVk
IHRvIHNldCB0aGlzIHByZWZlcmVuY2UuCisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OndlYmtpdE5vdGlmaWNhdGlvbnMpOiBjaGVj
ayBwcmVmZXJlbmNlIGJlZm9yZSByZXR1cm5pbmcgbm90aWZpY2F0aW9ucyBvYmplY3QKKyAgICAg
ICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0
aW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0RXhwZXJpbWVudGFsTm90aWZp
Y2F0aW9uc0VuYWJsZWQpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlNldHRpbmdzOjpleHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZCk6CisKIDIw
MDktMDktMTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIE5v
dCByZXZpZXdlZCwgbWF5YmUgc2hvdWxkJ3ZlIGJlZW46CkluZGV4OiBXZWJDb3JlL1dlYkNvcmUu
YmFzZS5leHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCShyZXZpc2lv
biA0ODM3NCkKKysrIFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAkod29ya2luZyBjb3B5KQpAQCAt
Njc2LDYgKzY3Niw3IEBAIF9fWk43V2ViQ29yZThTZXR0aW5nczMzc2V0RG93bmxvYWRhYmxlQmkK
IF9fWk43V2ViQ29yZThTZXR0aW5nczMzc2V0RW5mb3JjZUNTU01JTUVUeXBlSW5TdHJpY3RNb2Rl
RWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczM0c2V0TG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5h
YmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MzNXNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJv
bUZpbGVVUkxzRWIKK19fWk43V2ViQ29yZThTZXR0aW5nczM1c2V0RXhwZXJpbWVudGFsTm90aWZp
Y2F0aW9uc0VuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMzVzZXRUcmVhdHNBbnlUZXh0
Q1NTTGlua0FzU3R5bGVzaGVldEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MzNnNldE9mZmxpbmVX
ZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3M0MHNldEph
dmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHlFYgpJbmRleDogV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJ
KHJldmlzaW9uIDQ4Mzc0KQorKysgV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTYxMyw2ICs2MTMsOSBAQCBOb3RpZmljYXRpb25DZW50ZXIqIERPTVdpbmRvdzo6
d2Via2l0Tm90CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gMDsKIAorICAgIGlmICgh
cGFnZS0+c2V0dGluZ3MoKS0+ZXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQoKSkKKyAg
ICAgICAgcmV0dXJuIDA7CisKICAgICBOb3RpZmljYXRpb25QcmVzZW50ZXIqIHByb3ZpZGVyID0g
cGFnZS0+Y2hyb21lKCktPm5vdGlmaWNhdGlvblByZXNlbnRlcigpOwogICAgIGlmIChwcm92aWRl
cikgCiAgICAgICAgIG1fbm90aWZpY2F0aW9ucyA9IE5vdGlmaWNhdGlvbkNlbnRlcjo6Y3JlYXRl
KGRvY3VtZW50LCBwcm92aWRlcik7ICAgIApJbmRleDogV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCShyZXZpc2lvbiA0ODM3
NCkKKysrIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNCw2
ICsxMTQsNyBAQCBTZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkKICAgICAsIG1fZG93bmxv
YWRhYmxlQmluYXJ5Rm9udHNFbmFibGVkKHRydWUpCiAgICAgLCBtX3hzc0F1ZGl0b3JFbmFibGVk
KGZhbHNlKQogICAgICwgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCh0cnVlKQorICAg
ICwgbV9leHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZChmYWxzZSkKIHsKICAgICAvLyBB
IEZyYW1lIG1heSBub3QgaGF2ZSBiZWVuIGNyZWF0ZWQgeWV0LCBzbyB3ZSBpbml0aWFsaXplIHRo
ZSBBdG9taWNTdHJpbmcgCiAgICAgLy8gaGFzaCBiZWZvcmUgdHJ5aW5nIHRvIHVzZSBpdC4KQEAg
LTQ5Nyw2ICs0OTgsMTEgQEAgdm9pZCBTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGlu
ZwogICAgIHNldE5lZWRzUmVhcHBseVN0eWxlc0luQWxsRnJhbWVzKG1fcGFnZSk7CiB9CiAKK3Zv
aWQgU2V0dGluZ3M6OnNldEV4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkKGJvb2wgZW5h
YmxlZCkKK3sKKyAgICBtX2V4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkID0gZW5hYmxl
ZDsKK30KKwogI2lmIFBMQVRGT1JNKFdJTikKIHZvaWQgU2V0dGluZ3M6OnNldFNob3VsZFVzZUhp
Z2hSZXNvbHV0aW9uVGltZXJzKGJvb2wgc2hvdWxkVXNlSGlnaFJlc29sdXRpb25UaW1lcnMpCiB7
CkluZGV4OiBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuaAkocmV2aXNpb24gNDgzNzQpCisrKyBXZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aAkod29ya2luZyBjb3B5KQpAQCAtMjUzLDYgKzI1Myw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChib29sKTsKICAg
ICAgICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQ7IH0KIAorICAgICAgICB2b2lkIHNldEV4
cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkKGJvb2wpOworICAgICAgICBib29sIGV4cGVy
aW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9leHBlcmltZW50
YWxOb3RpZmljYXRpb25zRW5hYmxlZDsgfQorCiAjaWYgUExBVEZPUk0oV0lOKQogICAgICAgICBz
dGF0aWMgdm9pZCBzZXRTaG91bGRVc2VIaWdoUmVzb2x1dGlvblRpbWVycyhib29sKTsKICAgICAg
ICAgc3RhdGljIGJvb2wgc2hvdWxkVXNlSGlnaFJlc29sdXRpb25UaW1lcnMoKSB7IHJldHVybiBn
U2hvdWxkVXNlSGlnaFJlc29sdXRpb25UaW1lcnM7IH0KQEAgLTMyMiw2ICszMjUsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9kb3dubG9hZGFibGVCaW5hcnlGb250c0Vu
YWJsZWQgOiAxOwogICAgICAgICBib29sIG1feHNzQXVkaXRvckVuYWJsZWQgOiAxOwogICAgICAg
ICBib29sIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgOiAxOworICAgICAgICBib29s
IG1fZXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQgOiAxOwogCiAjaWYgVVNFKFNBRkFS
SV9USEVNRSkKICAgICAgICAgc3RhdGljIGJvb2wgZ1Nob3VsZFBhaW50TmF0aXZlQ29udHJvbHM7
CkluZGV4OiBXZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL0No
YW5nZUxvZwkocmV2aXNpb24gNDgzNzQpCisrKyBXZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDA5LTA5LTE0ICBKb2huIEdyZWdnICA8am9obm55
Z0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIGlzRW5hYmxlZCBzd2l0Y2ggZm9yIG5vdGlmaWNhdGlvbnMgKGV4cGVyaW1lbnRhbCkg
aW4gUGFnZSBTZXR0aW5ncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Mjg5MzAKKworICAgICAgICBBZGRzIHN1cHBvcnQgZm9yIHRoZSBleHBlcmltZW50
YWxOb3RpZmljYXRpb25zRW5hYmxlZCBmbGFnIGluIFNldHRpbmdzCisgICAgICAgIHRocm91Z2gg
V2ViUHJlZmVyZW5jZXNQcml2YXRlLgorCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNl
S2V5c1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgorICAg
ICAgICAoK1tXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXplXSk6CisgICAgICAgICgtW1dlYlByZWZl
cmVuY2VzIGV4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkXSk6CisgICAgICAgICgtW1dl
YlByZWZlcmVuY2VzIHNldEV4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkOl0pOgorICAg
ICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmll
dy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5nZWROb3Rp
ZmljYXRpb246XSk6CisKIDIwMDktMDktMTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCkluZGV4OiBX
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCShyZXZpc2lv
biA0ODM3NCkKKysrIFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUu
aAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiArNTUsNyBAQAogI2RlZmluZSBXZWJLaXRQbHVnaW5z
RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRQbHVnaW5zRW5hYmxlZCIKICNkZWZpbmUgV2Vi
S2l0RGF0YWJhc2VzRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXREYXRhYmFzZXNFbmFibGVk
UHJlZmVyZW5jZUtleSIKICNkZWZpbmUgV2ViS2l0TG9jYWxTdG9yYWdlRW5hYmxlZFByZWZlcmVu
Y2VLZXkgQCJXZWJLaXRMb2NhbFN0b3JhZ2VFbmFibGVkUHJlZmVyZW5jZUtleSIKKyNkZWZpbmUg
V2ViS2l0RXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2Vi
S2l0RXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWRQcmVmZXJlbmNlS2V5IgogI2RlZmlu
ZSBXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VzUHJlZmVyZW5jZUtleSBAIldlYktpdEFsbG93QW5p
bWF0ZWRJbWFnZXNQcmVmZXJlbmNlS2V5IgogI2RlZmluZSBXZWJLaXRBbGxvd0FuaW1hdGVkSW1h
Z2VMb29waW5nUHJlZmVyZW5jZUtleSBAIldlYktpdEFsbG93QW5pbWF0ZWRJbWFnZUxvb3BpbmdQ
cmVmZXJlbmNlS2V5IgogI2RlZmluZSBXZWJLaXREaXNwbGF5SW1hZ2VzS2V5IEAiV2ViS2l0RGlz
cGxheUltYWdlc0tleSIKSW5kZXg6IFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0JKHJl
dmlzaW9uIDQ4Mzc0KQorKysgV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0zMjAsNiArMzIwLDcgQEAgc3RhdGljIFdlYkNhY2hlTW9kZWwgY2Fj
aGVNb2RlbEZvck1haW5CdQogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSwg
IFdlYktpdFBsdWdpbnNFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51
bWJlcldpdGhCb29sOllFU10sICBXZWJLaXREYXRhYmFzZXNFbmFibGVkUHJlZmVyZW5jZUtleSwK
ICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRMb2NhbFN0b3Jh
Z2VFbmFibGVkUHJlZmVyZW5jZUtleSwKKyAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29s
Ok5PXSwgICBXZWJLaXRFeHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZFByZWZlcmVuY2VL
ZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdLCAgV2ViS2l0QWxsb3dB
bmltYXRlZEltYWdlc1ByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRo
Qm9vbDpZRVNdLCAgV2ViS2l0QWxsb3dBbmltYXRlZEltYWdlTG9vcGluZ1ByZWZlcmVuY2VLZXks
CiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdLCAgV2ViS2l0RGlzcGxheUlt
YWdlc0tleSwKQEAgLTEwMTEsNiArMTAxMiwxNiBAQCBzdGF0aWMgV2ViQ2FjaGVNb2RlbCBjYWNo
ZU1vZGVsRm9yTWFpbkJ1CiAgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpsb2NhbFN0b3JhZ2VFbmFi
bGVkIGZvcktleTpXZWJLaXRMb2NhbFN0b3JhZ2VFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAK
Ky0gKEJPT0wpZXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQKK3sKKyAgICByZXR1cm4g
W3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRFeHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5h
YmxlZFByZWZlcmVuY2VLZXldOworfQorCistICh2b2lkKXNldEV4cGVyaW1lbnRhbE5vdGlmaWNh
dGlvbnNFbmFibGVkOihCT09MKWV4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkCit7Cisg
ICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpleHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZCBm
b3JLZXk6V2ViS2l0RXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWRQcmVmZXJlbmNlS2V5
XTsKK30KKwogKyAoV2ViUHJlZmVyZW5jZXMgKilfZ2V0SW5zdGFuY2VGb3JJZGVudGlmaWVyOihO
U1N0cmluZyAqKWlkZW50CiB7CiAgICAgTE9HKEVuY29kaW5nLCAicmVxdWVzdGluZyBmb3IgJUBc
biIsIGlkZW50KTsKSW5kZXg6IFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZh
dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2
YXRlLmgJKHJldmlzaW9uIDQ4Mzc0KQorKysgV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VzUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsNiArMTA3LDkgQEAgZXh0ZXJuIE5T
U3RyaW5nICpXZWJQcmVmZXJlbmNlc1JlbW92ZWRObwogLSAoQk9PTClpc1hTU0F1ZGl0b3JFbmFi
bGVkOwogLSAodm9pZClzZXRYU1NBdWRpdG9yRW5hYmxlZDooQk9PTClmbGFnOwogCistIChCT09M
KWV4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkOworLSAodm9pZClzZXRFeHBlcmltZW50
YWxOb3RpZmljYXRpb25zRW5hYmxlZDooQk9PTClub3RpZmljYXRpb25zRW5hYmxlZDsKKwogLy8g
emVybyBtZWFucyBkbyBBdXRvU2NhbGUKIC0gKGZsb2F0KVBERlNjYWxlRmFjdG9yOwogLSAodm9p
ZClzZXRQREZTY2FsZUZhY3RvcjooZmxvYXQpc2NhbGU7CkluZGV4OiBXZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQkocmV2aXNpb24gNDgzNzQpCisrKyBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkod29y
a2luZyBjb3B5KQpAQCAtMTI3Nyw2ICsxMjc3LDcgQEAgc3RhdGljIGJvb2wgZmFzdERvY3VtZW50
VGVhcmRvd25FbmFibGVkKAogICAgIHNldHRpbmdzLT5zZXRQbHVnaW5zRW5hYmxlZChbcHJlZmVy
ZW5jZXMgYXJlUGx1Z0luc0VuYWJsZWRdKTsKICAgICBzZXR0aW5ncy0+c2V0RGF0YWJhc2VzRW5h
YmxlZChbcHJlZmVyZW5jZXMgZGF0YWJhc2VzRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLT5zZXRM
b2NhbFN0b3JhZ2VFbmFibGVkKFtwcmVmZXJlbmNlcyBsb2NhbFN0b3JhZ2VFbmFibGVkXSk7Cisg
ICAgc2V0dGluZ3MtPnNldEV4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkKFtwcmVmZXJl
bmNlcyBleHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLT5z
ZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKFtwcmVmZXJlbmNlcyBwcml2YXRlQnJvd3NpbmdFbmFi
bGVkXSk7CiAgICAgc2V0dGluZ3MtPnNldFNhbnNTZXJpZkZvbnRGYW1pbHkoW3ByZWZlcmVuY2Vz
IHNhbnNTZXJpZkZvbnRGYW1pbHldKTsKICAgICBzZXR0aW5ncy0+c2V0U2VyaWZGb250RmFtaWx5
KFtwcmVmZXJlbmNlcyBzZXJpZkZvbnRGYW1pbHldKTsKSW5kZXg6IFdlYktpdC93aW4vQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiA0ODM3NCkK
KysrIFdlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAK
KzIwMDktMDktMTQgIEpvaG4gR3JlZ2cgIDxqb2hubnlnQGdvb2dsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlIHN3aXRjaCBmb3Ig
bm90aWZpY2F0aW9ucyAoZXhwZXJpbWVudGFsKSBpbiBQYWdlIFNldHRpbmdzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODkzMAorCisgICAgICAgIEFk
ZHMgc3VwcG9ydCBmb3IgdGhlIGV4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkIGZsYWcg
aW4gU2V0dGluZ3MgdGhyb3VnaAorICAgICAgICBXZWJQcmVmZXJlbmNlc1ByaXZhdGUgaW50ZXJm
YWNlLiAgQWxzbyBjbGVhbnMgdXAgc29tZSBpc3N1ZXMgYWNjZXNzaW5nIHRoZQorICAgICAgICBu
b3RpZmljYXRpb24gZGVsZWdhdGUgdGhyb3VnaCBEdW1wUmVuZGVyVHJlZS4KKworICAgICAgICAq
IEludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGw6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5jcHA6CisgICAgICAgIChX
ZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlOjpoYXNOb3RpZmljYXRpb25EZWxlZ2F0ZSk6
CisgICAgICAgIChXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlOjpub3RpZmljYXRpb25E
ZWxlZ2F0ZSk6CisgICAgICAgICogV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6CisgICAgICAg
ICogV2ViUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OmluaXRpYWxp
emVEZWZhdWx0U2V0dGluZ3MpOgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OnNldEV4cGVyaW1l
bnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkKToKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpleHBl
cmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZCk6CisgICAgICAgICogV2ViUHJlZmVyZW5jZXMu
aDoKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6Om5vdGlmeVByZWZl
cmVuY2VzQ2hhbmdlZCk6CisKIDIwMDktMDktMTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCkluZGV4
OiBXZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgJKHJldmlzaW9uIDQ4Mzc0KQorKysg
V2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAt
NTMsNiArNTMsNyBAQAogI2RlZmluZSBXZWJLaXRQbHVnaW5zRW5hYmxlZFByZWZlcmVuY2VLZXkg
IldlYktpdFBsdWdpbnNFbmFibGVkIgogI2RlZmluZSBXZWJLaXREYXRhYmFzZXNFbmFibGVkUHJl
ZmVyZW5jZUtleSAiV2ViS2l0RGF0YWJhc2VzRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0TG9jYWxT
dG9yYWdlRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdExvY2FsU3RvcmFnZUVuYWJsZWQiCisj
ZGVmaW5lIFdlYktpdEV4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkUHJlZmVyZW5jZUtl
eSAiV2ViS2l0RXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQiCiAjZGVmaW5lIFdlYktp
dEFsbG93QW5pbWF0ZWRJbWFnZXNQcmVmZXJlbmNlS2V5ICJXZWJLaXRBbGxvd0FuaW1hdGVkSW1h
Z2VzUHJlZmVyZW5jZUtleSIKICNkZWZpbmUgV2ViS2l0QWxsb3dBbmltYXRlZEltYWdlTG9vcGlu
Z1ByZWZlcmVuY2VLZXkgIldlYktpdEFsbG93QW5pbWF0ZWRJbWFnZUxvb3BpbmdQcmVmZXJlbmNl
S2V5IgogI2RlZmluZSBXZWJLaXREaXNwbGF5SW1hZ2VzS2V5ICJXZWJLaXREaXNwbGF5SW1hZ2Vz
S2V5IgpJbmRleDogV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAJKHJldmlzaW9uIDQ4Mzc0KQorKysgV2ViS2l0
L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMCw2ICsyMTAsNyBA
QCB2b2lkIFdlYlByZWZlcmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNlCiAgICAgQ0ZEaWN0aW9u
YXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdFBsdWdpbnNFbmFibGVkUHJlZmVyZW5j
ZUtleSksIGtDRkJvb2xlYW5UcnVlKTsKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0
cywgQ0ZTVFIoV2ViS2l0RGF0YWJhc2VzRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFu
VHJ1ZSk7CiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdExv
Y2FsU3RvcmFnZUVuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhblRydWUpOworICAgIENG
RGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRFeHBlcmltZW50YWxOb3Rp
ZmljYXRpb25zRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwogICAgIENG
RGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRBbGxvd0FuaW1hdGVkSW1h
Z2VzUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5UcnVlKTsKICAgICBDRkRpY3Rpb25hcnlBZGRW
YWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0QWxsb3dBbmltYXRlZEltYWdlTG9vcGluZ1ByZWZl
cmVuY2VLZXkpLCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVm
YXVsdHMsIENGU1RSKFdlYktpdERpc3BsYXlJbWFnZXNLZXkpLCBrQ0ZCb29sZWFuVHJ1ZSk7CkBA
IC0xMjkxLDYgKzEyOTIsMTggQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJQcmVmZXJl
bmNlcwogICAgIHJldHVybiBTX09LOwogfQogCitIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdl
YlByZWZlcmVuY2VzOjpzZXRFeHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZChCT09MIGVu
YWJsZWQpCit7CisgICAgc2V0Qm9vbFZhbHVlKENGU1RSKFdlYktpdEV4cGVyaW1lbnRhbE5vdGlm
aWNhdGlvbnNFbmFibGVkUHJlZmVyZW5jZUtleSksIGVuYWJsZWQpOworICAgIHJldHVybiBTX09L
OworfQorCitIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlByZWZlcmVuY2VzOjpleHBlcmlt
ZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZChCT09MKiBlbmFibGVkKQoreworICAgICplbmFibGVk
ID0gYm9vbFZhbHVlRm9yS2V5KENGU1RSKFdlYktpdEV4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNF
bmFibGVkUHJlZmVyZW5jZUtleSkpOworICAgIHJldHVybiBTX09LOworfQorCiBIUkVTVUxUIFdl
YlByZWZlcmVuY2VzOjpzZXRab29tc1RleHRPbmx5KEJPT0wgem9vbXNUZXh0T25seSkKIHsKICAg
ICBzZXRCb29sVmFsdWUoQ0ZTVFIoV2ViS2l0Wm9vbXNUZXh0T25seVByZWZlcmVuY2VLZXkpLCB6
b29tc1RleHRPbmx5KTsKSW5kZXg6IFdlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmgJKHJldmlzaW9uIDQ4Mzc0KQorKysg
V2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMjUsNyArMzI1
LDEzIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBz
ZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoCiAgICAgICAgIC8qIFtpbl0gKi8gQlNUUiBsb2Nh
dGlvbik7Ci0gICAgCisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZXhw
ZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQoCisgICAgICAgIC8qIFtyZXR2YWxdW291dF0g
Ki8gQk9PTCAqZW5hYmxlZCk7CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgc2V0RXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQoCisgICAgICAgIC8qIFtpbl0g
Ki8gQk9PTCBlbmFibGVkKTsKKwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBzZXRTaG91bGRQYWludE5hdGl2ZUNvbnRyb2xzKCAKICAgICAvKiBbaW5dICovIEJPT0wgc2hv
dWxkUGFpbnQpOwogCkluZGV4OiBXZWJLaXQvd2luL1dlYlZpZXcuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC93aW4vV2ViVmlldy5jcHAJKHJldmlzaW9uIDQ4Mzc0KQorKysgV2ViS2l0L3dpbi9X
ZWJWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDM3MSw2ICs0MzcxLDExIEBAIEhSRVNVTFQg
V2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2UKICAgICAgICAgcmV0dXJuIGhyOwogICAg
IHNldHRpbmdzLT5zZXRMb2NhbFN0b3JhZ2VFbmFibGVkKGVuYWJsZWQpOwogCisgICAgaHIgPSBw
cmVmc1ByaXZhdGUtPmV4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkKCZlbmFibGVkKTsK
KyAgICBpZiAoRkFJTEVEKGhyKSkKKyAgICAgICAgcmV0dXJuIGhyOworICAgIHNldHRpbmdzLT5z
ZXRFeHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZChlbmFibGVkKTsKKwogICAgIGhyID0g
cHJlZnNQcml2YXRlLT5pc1dlYlNlY3VyaXR5RW5hYmxlZCgmZW5hYmxlZCk7CiAgICAgaWYgKEZB
SUxFRChocikpCiAgICAgICAgIHJldHVybiBocjsKSW5kZXg6IFdlYktpdC93aW4vSW50ZXJmYWNl
cy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL0lu
dGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwJKHJldmlzaW9uIDQ4Mzc0KQorKysg
V2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC03OSw2ICs3OSw5IEBAIGludGVyZmFjZSBJV2ViUHJlZmVyZW5jZXNQcml2YXRl
IDogSVVua24KICAgICBIUkVTVUxUIGlzWFNTQXVkaXRvckVuYWJsZWQoW291dCwgcmV0dmFsXSBC
T09MICplbmFibGVkKTsKICAgICBIUkVTVUxUIHNldFhTU0F1ZGl0b3JFbmFibGVkKFtpbl0gQk9P
TCBlbmFibGVkKTsKIAorICAgIEhSRVNVTFQgZXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJs
ZWQoW291dCwgcmV0dmFsXSBCT09MICplbmFibGVkKTsKKyAgICBIUkVTVUxUIHNldEV4cGVyaW1l
bnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKKwogICAgIEhSRVNV
TFQgc2V0U2hvdWxkVXNlSGlnaFJlc29sdXRpb25UaW1lcnMoW2luXSBCT09MIHVzZUhpZ2hSZXNv
bHV0aW9uVGltZXJzKTsKICAgICBIUkVTVUxUIHNob3VsZFVzZUhpZ2hSZXNvbHV0aW9uVGltZXJz
KFtvdXQsIHJldHZhbF0gQk9PTCogdXNlSGlnaFJlc29sdXRpb25UaW1lcnMpOwogCkluZGV4OiBX
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5v
dGlmaWNhdGlvbnNEZWxlZ2F0ZS5jcHAJKHJldmlzaW9uIDQ4Mzc0KQorKysgV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTg1LDggKzE4NSw3IEBAIGJvb2wgV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNE
ZWxlZ2F0ZTo6aGEKICAgICBtX3dlYlZpZXctPnVpRGVsZWdhdGUoJnVpKTsKIAogICAgIENPTVB0
cjxJV2ViVUlEZWxlZ2F0ZTI+IHVpMjsKLSAgICBpZiAoU1VDQ0VFREVEKHVpLT5RdWVyeUludGVy
ZmFjZShJSURfSVdlYlVJRGVsZWdhdGUyLCAmdWkyKSkpCi0gICAgICAgIHJldHVybiB0cnVlOwor
ICAgIHJldHVybiBTVUNDRUVERUQodWktPlF1ZXJ5SW50ZXJmYWNlKElJRF9JV2ViVUlEZWxlZ2F0
ZTIsICh2b2lkKiopICZ1aTIpKTsKIH0KIAogQ09NUHRyPElXZWJEZXNrdG9wTm90aWZpY2F0aW9u
c0RlbGVnYXRlPiBXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlOjpub3RpZmljYXRpb25E
ZWxlZ2F0ZSgpCkBAIC0xOTYsNyArMTk1LDcgQEAgQ09NUHRyPElXZWJEZXNrdG9wTm90aWZpY2F0
aW9uc0RlbGVnYXRlPgogCiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlMj4gdWkyOwogICAgIENP
TVB0cjxJV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZT4gZGVsZWdhdGU7Ci0gICAgaWYg
KFNVQ0NFRURFRCh1aS0+UXVlcnlJbnRlcmZhY2UoSUlEX0lXZWJVSURlbGVnYXRlMiwgJnVpMikp
KQorICAgIGlmIChTVUNDRUVERUQodWktPlF1ZXJ5SW50ZXJmYWNlKElJRF9JV2ViVUlEZWxlZ2F0
ZTIsICh2b2lkKiopICZ1aTIpKSkKICAgICAgICAgdWkyLT5kZXNrdG9wTm90aWZpY2F0aW9uc0Rl
bGVnYXRlKCZkZWxlZ2F0ZSk7CiAKICAgICByZXR1cm4gZGVsZWdhdGU7CkluZGV4OiBXZWJLaXRU
b29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCShyZXZp
c2lvbiA0ODM3NCkKKysrIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDIwIEBACisyMDA5LTA5LTE0ICBKb2huIEdyZWdnICA8am9obm55Z0Bnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuYWJs
ZSBzd2l0Y2ggZm9yIG5vdGlmaWNhdGlvbnMgKGV4cGVyaW1lbnRhbCkgaW4gUGFnZSBTZXR0aW5n
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg5MzAK
KworICAgICAgICBOb3cgdGhhdCBkZXNrdG9wIG5vdGlmaWNhdGlvbnMgYXJlIGNvbnRyb2xsZWQg
YnkgcnVuLXRpbWUgc3dpdGNoLAorICAgICAgICBzZXQgdGhhdCBzd2l0Y2ggdG8gdHJ1ZSBmb3Ig
RHVtcFJlbmRlclRyZWUuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRl
clRyZWUubW06CisgICAgICAgIChyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAo
cmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvd2luL1VJRGVsZWdhdGUuY3BwOgorICAgICAgICAoVUlEZWxlZ2F0ZTo6UXVlcnlJbnRlcmZh
Y2UpOgorCiAyMDA5LTA5LTE0ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBOb3QgcmV2aWV3ZWQsIG1heWJlIHNob3VsZCd2ZSBiZWVuOgpJbmRleDogV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQkocmV2aXNp
b24gNDgzNzQpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW0JKHdvcmtpbmcgY29weSkKQEAgLTQwNiw2ICs0MDYsNyBAQCBzdGF0aWMgdm9pZCByZXNl
dERlZmF1bHRzVG9Db25zaXN0ZW50VmFsCiAgICAgW3ByZWZlcmVuY2VzIHNldFNob3VsZFByaW50
QmFja2dyb3VuZHM6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0Q2FjaGVNb2RlbDpXZWJDYWNo
ZU1vZGVsRG9jdW1lbnRCcm93c2VyXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0WFNTQXVkaXRvckVu
YWJsZWQ6Tk9dOworICAgIFtwcmVmZXJlbmNlcyBzZXRFeHBlcmltZW50YWxOb3RpZmljYXRpb25z
RW5hYmxlZDpOT107CiAKICAgICBbcHJlZmVyZW5jZXMgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZDpOT107CiAgICAgW3ByZWZlcmVuY2VzIHNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkOllF
U107CkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVu
ZGVyVHJlZS5jcHAJKHJldmlzaW9uIDQ4Mzc0KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzM1LDYgKzczNSw3
IEBAIHN0YXRpYyB2b2lkIHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWwKICAgICAgICAgcHJl
ZnNQcml2YXRlLT5zZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyhUUlVFKTsKICAg
ICAgICAgcHJlZnNQcml2YXRlLT5zZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZChUUlVFKTsK
ICAgICAgICAgcHJlZnNQcml2YXRlLT5zZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKEZBTFNFKTsK
KyAgICAgICAgcHJlZnNQcml2YXRlLT5zZXRFeHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxl
ZChUUlVFKTsKICAgICAgICAgcHJlZnNQcml2YXRlLT5zZXRTaG91bGRQYWludE5hdGl2ZUNvbnRy
b2xzKEZBTFNFKTsgLy8gRklYTUUgLSBuZWVkIHRvIG1ha2UgRFJUIHBhc3Mgd2l0aCBXaW5kb3dz
IG5hdGl2ZSBjb250cm9scyA8aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjU1OTI+CiAgICAgICAgIHByZWZzUHJpdmF0ZS0+c2V0WFNTQXVkaXRvckVuYWJsZWQoRkFMU0Up
OwogICAgICAgICBwcmVmc1ByaXZhdGUtPnNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5h
YmxlZChUUlVFKTsKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9VSURlbGVn
YXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVUlE
ZWxlZ2F0ZS5jcHAJKHJldmlzaW9uIDQ4Mzc0KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL1VJRGVsZWdhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzYsNiArMTc2LDggQEAg
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBVSURlbGVnYXRlOjpRdQogICAgICAgICAqcHB2T2Jq
ZWN0ID0gc3RhdGljX2Nhc3Q8SVdlYlVJRGVsZWdhdGUqPih0aGlzKTsKICAgICBlbHNlIGlmIChJ
c0VxdWFsR1VJRChyaWlkLCBJSURfSVdlYlVJRGVsZWdhdGUpKQogICAgICAgICAqcHB2T2JqZWN0
ID0gc3RhdGljX2Nhc3Q8SVdlYlVJRGVsZWdhdGUqPih0aGlzKTsKKyAgICBlbHNlIGlmIChJc0Vx
dWFsR1VJRChyaWlkLCBJSURfSVdlYlVJRGVsZWdhdGUyKSkKKyAgICAgICAgKnBwdk9iamVjdCA9
IHN0YXRpY19jYXN0PElXZWJVSURlbGVnYXRlMio+KHRoaXMpOwogICAgIGVsc2UgaWYgKElzRXF1
YWxHVUlEKHJpaWQsIElJRF9JV2ViVUlEZWxlZ2F0ZVByaXZhdGUpKQogICAgICAgICAqcHB2T2Jq
ZWN0ID0gc3RhdGljX2Nhc3Q8SVdlYlVJRGVsZWdhdGVQcml2YXRlKj4odGhpcyk7CiAgICAgZWxz
ZQo=
</data>
<flag name="review"
          id="20686"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>