<?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>97427</bug_id>
          
          <creation_ts>2012-09-23 23:42:32 -0700</creation_ts>
          <short_desc>[EFL][DRT] Support Geolocation</short_desc>
          <delta_ts>2012-11-01 22:54:59 -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>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>82140</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="seonae kim">sunaeluv.kim</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bw80.lee</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jiyeon0402.kim</cc>
    
    <cc>jye.kang</cc>
    
    <cc>kihong.kwon</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>726403</commentid>
    <comment_count>0</comment_count>
    <who name="seonae kim">sunaeluv.kim</who>
    <bug_when>2012-09-23 23:42:32 -0700</bug_when>
    <thetext>The EFL port should support Geolocation DRT as follows:

setMockGeolocationReset
setMockGeolocationPermission
setMockGeolocationPosition
setMockGeolocationError
numberOfPendingGeolocationPermissionRequests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743790</commentid>
    <comment_count>1</comment_count>
      <attachid>169071</attachid>
    <who name="seonae kim">sunaeluv.kim</who>
    <bug_when>2012-10-16 19:07:22 -0700</bug_when>
    <thetext>Created attachment 169071
Patch

Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743798</commentid>
    <comment_count>2</comment_count>
      <attachid>169071</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-10-16 19:26:06 -0700</bug_when>
    <thetext>Comment on attachment 169071
Patch

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

As you know, WK2 is important for us. Will you support geolocation for WK2 as well ?

&gt; Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp:763
&gt; +    mock-&gt;reset();

To avoid unused parameter build warning when geolocation is disabled, you need to use UNUSED_PARAM macro as below,

#else
    UNUSED_PARAM(ewkView)
#endif

&gt; Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp:774
&gt; +#endif

ditto.

&gt; Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp:784
&gt; +#endif

ditto.

&gt; Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp:794
&gt; +#endif

ditto.

&gt; Tools/DumpRenderTree/efl/TestRunnerEfl.cpp:372
&gt; +        view = browser-&gt;extraViews().last();

Why do you only test last view when there are multiple views ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743834</commentid>
    <comment_count>3</comment_count>
    <who name="seonae kim">sunaeluv.kim</who>
    <bug_when>2012-10-16 21:31:51 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 169071 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169071&amp;action=review
&gt; 
&gt; As you know, WK2 is important for us. Will you support geolocation for WK2 as well ?
In case WK2, I need to talk with byungwoo lee.
&gt; 
&gt; &gt; Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp:763
&gt; &gt; +    mock-&gt;reset();
&gt; 
&gt; To avoid unused parameter build warning when geolocation is disabled, you need to use UNUSED_PARAM macro as below,
I&apos;ll change as you said.

&gt; 
&gt; #else
&gt;     UNUSED_PARAM(ewkView)
&gt; #endif
&gt; 
&gt; &gt; Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp:774
&gt; &gt; +#endif
&gt; 
&gt; ditto.
&gt; 
&gt; &gt; Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp:784
&gt; &gt; +#endif
&gt; 
&gt; ditto.
&gt; 
&gt; &gt; Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp:794
&gt; &gt; +#endif
&gt; 
&gt; ditto.
&gt; 
&gt; &gt; Tools/DumpRenderTree/efl/TestRunnerEfl.cpp:372
&gt; &gt; +        view = browser-&gt;extraViews().last();
&gt; 
&gt; Why do you only test last view when there are multiple views ?
Precisely, it is not last and current, because last of extraViews has been to maintain a current view. Gtk port also used a similar view that prepend for webViewList.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744967</commentid>
    <comment_count>4</comment_count>
      <attachid>169340</attachid>
    <who name="seonae kim">sunaeluv.kim</who>
    <bug_when>2012-10-17 22:04:22 -0700</bug_when>
    <thetext>Created attachment 169340
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745208</commentid>
    <comment_count>5</comment_count>
      <attachid>169340</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-10-18 06:28:44 -0700</bug_when>
    <thetext>Comment on attachment 169340
Patch

I&apos;m not a fan of the setDumpRenderTreeModeEnabled approach; so far we have designed DRT and DRTSupport in a way that the normal code paths do not need to know what DRT is or if it is being run at all (contrary to Qt&apos;s DRT, for example). Why don&apos;t you move those calls you have added to _ewk_view_priv_new to a method in DRTSupport and call it whenever you create a view in DRT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746130</commentid>
    <comment_count>6</comment_count>
    <who name="seonae kim">sunaeluv.kim</who>
    <bug_when>2012-10-19 01:43:06 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 169340 [details])
&gt; I&apos;m not a fan of the setDumpRenderTreeModeEnabled approach; so far we have designed DRT and DRTSupport in a way that the normal code paths do not need to know what DRT is or if it is being run at all (contrary to Qt&apos;s DRT, for example). Why don&apos;t you move those calls you have added to _ewk_view_priv_new to a method in DRTSupport and call it whenever you create a view in DRT?

I don&apos;t understand why dumpRenderTreeModeEnabled should be moved to DRTSupport.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746161</commentid>
    <comment_count>7</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-10-19 02:39:58 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; I&apos;m not a fan of the setDumpRenderTreeModeEnabled approach; so far we have designed DRT and DRTSupport in a way that the normal code paths do not need to know what DRT is or if it is being run at all (contrary to Qt&apos;s DRT, for example). Why don&apos;t you move those calls you have added to _ewk_view_priv_new to a method in DRTSupport and call it whenever you create a view in DRT?
&gt;
&gt; I don&apos;t understand why dumpRenderTreeModeEnabled should be moved to DRTSupport.

Basically, for the reasons I outlined above: the code in EWK should be oblivious to whether it is running normally or within DRT. This centralizes the testing code in a single place (DRTSupport instead of different places as it has happened to the DRT code in the Qt port) and eases the maintenance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752940</commentid>
    <comment_count>8</comment_count>
    <who name="seonae kim">sunaeluv.kim</who>
    <bug_when>2012-10-28 06:03:23 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; &gt; I&apos;m not a fan of the setDumpRenderTreeModeEnabled approach; so far we have designed DRT and DRTSupport in a way that the normal code paths do not need to know what DRT is or if it is being run at all (contrary to Qt&apos;s DRT, for example). Why don&apos;t you move those calls you have added to _ewk_view_priv_new to a method in DRTSupport and call it whenever you create a view in DRT?
&gt; &gt;
&gt; &gt; I don&apos;t understand why dumpRenderTreeModeEnabled should be moved to DRTSupport.
&gt; 
&gt; Basically, for the reasons I outlined above: the code in EWK should be oblivious to whether it is running normally or within DRT. This centralizes the testing code in a single place (DRTSupport instead of different places as it has happened to the DRT code in the Qt port) and eases the maintenance.

I agree with you that the code is used in a single place.
But dumpRenderTreeModeEnabled need to distinguish the controller in runtime whether GeolocationClientMock is used or not.
Is there any other way if this code not used in _ewk_view_priv_new?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753186</commentid>
    <comment_count>9</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-10-29 02:22:17 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; But dumpRenderTreeModeEnabled need to distinguish the controller in runtime whether GeolocationClientMock is used or not.
&gt; Is there any other way if this code not used in _ewk_view_priv_new?

I suggest adding a method to DRTSupport that retrieves a WebCore::Page via EWKPriv::corePage() and calls the code you&apos;ve currently added to _ewk_view_priv_new(). You then call this method from DumpRenderTreeChrome.cpp (or DumpRenderTreeView.cpp, I don&apos;t remember) whenever you are creating a new view.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755003</commentid>
    <comment_count>10</comment_count>
    <who name="seonae kim">sunaeluv.kim</who>
    <bug_when>2012-10-30 23:48:04 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; But dumpRenderTreeModeEnabled need to distinguish the controller in runtime whether GeolocationClientMock is used or not.
&gt; &gt; Is there any other way if this code not used in _ewk_view_priv_new?
&gt; 
&gt; I suggest adding a method to DRTSupport that retrieves a WebCore::Page via EWKPriv::corePage() and calls the code you&apos;ve currently added to _ewk_view_priv_new(). You then call this method from DumpRenderTreeChrome.cpp (or DumpRenderTreeView.cpp, I don&apos;t remember) whenever you are creating a new view.

Okay, I understand and think that this way you suggest is clearer than previous.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755910</commentid>
    <comment_count>11</comment_count>
      <attachid>171773</attachid>
    <who name="seonae kim">sunaeluv.kim</who>
    <bug_when>2012-10-31 23:04:29 -0700</bug_when>
    <thetext>Created attachment 171773
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755938</commentid>
    <comment_count>12</comment_count>
      <attachid>171773</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-10-31 23:52:20 -0700</bug_when>
    <thetext>Comment on attachment 171773
Patch

Why not requesting r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755950</commentid>
    <comment_count>13</comment_count>
      <attachid>171785</attachid>
    <who name="seonae kim">sunaeluv.kim</who>
    <bug_when>2012-11-01 00:13:55 -0700</bug_when>
    <thetext>Created attachment 171785
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755952</commentid>
    <comment_count>14</comment_count>
    <who name="seonae kim">sunaeluv.kim</who>
    <bug_when>2012-11-01 00:18:17 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 171773 [details])
&gt; Why not requesting r?
Sorry, I did.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756014</commentid>
    <comment_count>15</comment_count>
      <attachid>171785</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-11-01 02:36:39 -0700</bug_when>
    <thetext>Comment on attachment 171785
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756048</commentid>
    <comment_count>16</comment_count>
      <attachid>171785</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-11-01 03:39:50 -0700</bug_when>
    <thetext>Comment on attachment 171785
Patch

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

&gt; Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp:89
&gt; +    WebCore::provideGeolocationTo(page, mock);

Sorry. I missed one. If we add this one to here, we add GeolocationClient twice. One is ewk_view and other is here.

Because, you will add a GeolocationClientEfl to WebCore&apos;s supplement in _ewk_view_priv_new, right ? When we run layout test, GeolocationClient will be added twice by this. It might to make assertion.

We have to follow other ports&apos;s implementation using a flag. (e.g. s_drt ?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756099</commentid>
    <comment_count>17</comment_count>
      <attachid>171814</attachid>
    <who name="seonae kim">sunaeluv.kim</who>
    <bug_when>2012-11-01 04:47:34 -0700</bug_when>
    <thetext>Created attachment 171814
Patch

Reverted code to use s_drtRun flag</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756846</commentid>
    <comment_count>18</comment_count>
      <attachid>171814</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-11-01 19:43:47 -0700</bug_when>
    <thetext>Comment on attachment 171814
Patch

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

&gt; Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp:200
&gt; +    DumpRenderTreeSupportEfl::setDumpRenderTreeModeEnabled(true);

Add a comment why you need this setting.

For example,
// Set running in DRT mode for ewkview to create testable objects.

In addition, it would be good if you call this by alphabetical order.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756873</commentid>
    <comment_count>19</comment_count>
      <attachid>171983</attachid>
    <who name="seonae kim">sunaeluv.kim</who>
    <bug_when>2012-11-01 21:25:56 -0700</bug_when>
    <thetext>Created attachment 171983
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756876</commentid>
    <comment_count>20</comment_count>
      <attachid>171984</attachid>
    <who name="seonae kim">sunaeluv.kim</who>
    <bug_when>2012-11-01 21:32:59 -0700</bug_when>
    <thetext>Created attachment 171984
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756898</commentid>
    <comment_count>21</comment_count>
      <attachid>171984</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-01 22:54:54 -0700</bug_when>
    <thetext>Comment on attachment 171984
Patch

Clearing flags on attachment: 171984

Committed r133266: &lt;http://trac.webkit.org/changeset/133266&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756899</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-01 22:54:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169071</attachid>
            <date>2012-10-16 19:07:22 -0700</date>
            <delta_ts>2012-10-17 22:04:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>16234</size>
            <attacher name="seonae kim">sunaeluv.kim</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNjBmZmFjLi5hZDUzMjdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAt
MTYgIFNlb25hZSBLaW0gIDxzdW5hZWx1di5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VG
TF1bRFJUXSBTdXBwb3J0IEdlb2xvY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05NzQyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVuc2tpcCBHZW9sb2NhdGlvbiB0ZXN0IGNhc2VzLgorCisgICAg
ICAgICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTItMTAtMTUgIFBhYmxv
IEZsb3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgogCiAgICAgICAgIEFkZCBmb3JjZSBwYXJh
bWV0ZXIgdG8gRE9NVG9rZW5MaXN0LnRvZ2dsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVz
dEV4cGVjdGF0aW9ucwpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDEwMDll
MzcuLmIxNDVjMDgKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEy
NTgsMTMgKzEyNTgsNiBAQCB3ZWJraXQub3JnL2IvNjg1OTEgaHR0cC90ZXN0cy9zZWN1cml0eS9m
aWxlc3lzdGVtLWlmcmFtZS1mcm9tLXJlbW90ZS5odG1sCiB3ZWJraXQub3JnL2IvNjg1OTEgaHR0
cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvZmlsZXN5c3RlbS11cmwtaW4taWZyYW1lLmh0
bWwKIHdlYmtpdC5vcmcvYi82ODU5MSBodHRwL3Rlc3RzL2luc3BlY3Rvci9maWxlc3lzdGVtCiAK
LSMgVGhlIEVGTCBwb3J0IGhhcyBubyBzdXBwb3J0IGZvciB0aGUgR2VvbG9jYXRpb24KLXdlYmtp
dC5vcmcvYi84MjE0MCBmYXN0L2RvbS9HZW9sb2NhdGlvbiBbIFNraXAgXQotd2Via2l0Lm9yZy9i
LzgyMTQwIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1nZW9sb2NhdGlvbi5odG1s
IFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODIxNDAgaW5zcGVjdG9yL2dlb2xvY2F0aW9uLWVy
cm9yLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi84MjE0MCBpbnNwZWN0b3IvZ2VvbG9j
YXRpb24tc3VjY2Vzcy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODIxNDAgaW5zcGVj
dG9yL2dlb2xvY2F0aW9uLXdhdGNoUG9zaXRpb24uaHRtbCBbIEZhaWx1cmUgXQotCiAjIEVGTCdz
IEV2ZW50U2VuZGVyIGRvZXMgbm90IGltcGxlbWVudCBjb250ZXh0Q2xpY2sgeWV0CiB3ZWJraXQu
b3JnL2IvODYwOTEgZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktc3RhbmRhbG9uZS1pbWFnZS1jcmFz
aC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvODYwOTEgZWRpdGluZy9zZWxlY3Rpb24v
NTM1NDQ1NS0xLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNTc2YzQ5Mi4uMWM1MTI4NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMC0xNiAgU2VvbmFlIEtpbSAgPHN1bmFl
bHV2LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtEUlRdIFN1cHBvcnQgR2VvbG9j
YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3
NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1w
bGVtZW50IG1ldGhvZHMgdG8gdXNlIEdlb2xvY2F0aW9uQ2xpZW50TW9jayBpbiBEdW1wUmVuZGVy
VHJlZS4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorCiAyMDEyLTEwLTE1ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBmcmFtZXdvcmsg
YW5kIGxpYnJhcnkgbGlua2luZyBpbnRvIFdlYktpdC54Y2NvbmZpZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwu
Y21ha2UKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCAxN2IyNDM5Li5iZWE3
MGUwCi0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtNyw2ICs3LDcgQEAgTElTVChBUFBFTkQgV2ViS2l0
X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZWZsIgog
ICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlybyIKICAgICAiJHtXRUJD
T1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvZWZsIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0
Zm9ybS9tb2NrIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAiCiAg
ICAgJHtDQUlST19JTkNMVURFX0RJUlN9CiAgICAgJHtFQ09SRV9JTkNMVURFX0RJUlN9CkBAIC03
OCw2ICs3OSwxMiBAQCBJRiAoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKQogICApCiBF
TkRJRiAoKQogCitJRiAoRU5BQkxFX0dFT0xPQ0FUSU9OKQorICBMSVNUKEFQUEVORCBXZWJLaXRf
SU5DTFVERV9ESVJFQ1RPUklFUworICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2dlb2xvY2F0
aW9uIgorICApCitFTkRJRiAoKQorCiBMSVNUKEFQUEVORCBXZWJLaXRfU09VUkNFUwogICAgIGVm
bC9XZWJDb3JlU3VwcG9ydC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAogICAgIGVmbC9XZWJDb3Jl
U3VwcG9ydC9CYXR0ZXJ5Q2xpZW50RWZsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDE1MDEzYmEu
LmUyZWZmNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0xMC0xNiAg
U2VvbmFlIEtpbSAgPHN1bmFlbHV2LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtE
UlRdIFN1cHBvcnQgR2VvbG9jYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk3NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW1wbGVtZW50IG1ldGhvZHMgdG8gdXNlIEdlb2xvY2F0aW9uQ2xpZW50
TW9jayBpbiBEdW1wUmVuZGVyVHJlZS4KKyAgICAgICAgVGhpcyBjbGllbnQgaXMgY3JlYXRlZCB3
aGVuIGxheW91dCB0ZXN0cyBpcyB3b3JraW5nLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEVmbDo6c2V0RHVtcFJlbmRlclRyZWVNb2RlRW5hYmxlZCk6CisgICAgICAgIChEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmw6OmR1bXBSZW5kZXJUcmVlTW9kZUVuYWJsZWQpOgorICAgICAgICAo
RHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpyZXNldEdlb2xvY2F0aW9uQ2xpZW50TW9jayk6Cisg
ICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldE1vY2tHZW9sb2NhdGlvblBlcm1p
c3Npb24pOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRNb2NrR2VvbG9j
YXRpb25Qb3NpdGlvbik6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldE1v
Y2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcik6CisgICAgICAgIChEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmw6Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RzKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRF
ZmwuaDoKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX2V3a192aWV3X3By
aXZfbmV3KToKKwogMjAxMi0xMC0xNSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVt
ZXpAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdW1dLMl0gSW1wbGVtZW50IEZhdmljb25zIEFQ
SQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1
NQppbmRleCA3NDY2MDI5Li41Mjg1ZTJkCi0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcApAQCAtNjEsNiAr
NjEsMTQgQEAKICNpbmNsdWRlIDx3b3JrZXJzL1dvcmtlclRocmVhZC5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CiAKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCisjaW5jbHVkZSA8R2VvbG9j
YXRpb25DbGllbnRNb2NrLmg+CisjaW5jbHVkZSA8R2VvbG9jYXRpb25Db250cm9sbGVyLmg+Cisj
aW5jbHVkZSA8R2VvbG9jYXRpb25FcnJvci5oPgorI2luY2x1ZGUgPEdlb2xvY2F0aW9uUG9zaXRp
b24uaD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNlbmRpZgorCiAjZGVmaW5lIERS
VF9TVVBQT1JUX0ZSQU1FX0dFVF9PUl9SRVRVUk4oZXdrRnJhbWUsIGZyYW1lLCAuLi4pIFwKICAg
ICBXZWJDb3JlOjpGcmFtZSogZnJhbWUgPSBFV0tQcml2YXRlOjpjb3JlRnJhbWUoZXdrRnJhbWUp
OyAgXAogICAgIGlmICghZnJhbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCkBAIC03MCw3ICs3OCwxOSBAQAogICAgIFdlYkNvcmU6OlBhZ2UqIHBhZ2Ug
PSBFV0tQcml2YXRlOjpjb3JlUGFnZShld2tWaWV3KTsgIFwKICAgICBpZiAoIXBhZ2UpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIHJldHVybiBf
X1ZBX0FSR1NfXzsKLSAgICAKKworYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNfZHJ0
UnVuID0gZmFsc2U7CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXREdW1wUmVu
ZGVyVHJlZU1vZGVFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBzX2RydFJ1biA9IGVuYWJs
ZWQ7Cit9CisKK2Jvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpkdW1wUmVuZGVyVHJlZU1v
ZGVFbmFibGVkKCkKK3sKKyAgICByZXR1cm4gc19kcnRSdW47Cit9CisKIHVuc2lnbmVkIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbDo6YWN0aXZlQW5pbWF0aW9uc0NvdW50KGNvbnN0IEV2YXNfT2Jq
ZWN0KiBld2tGcmFtZSkKIHsKICAgICBEUlRfU1VQUE9SVF9GUkFNRV9HRVRfT1JfUkVUVVJOKGV3
a0ZyYW1lLCBmcmFtZSwgMCk7CkBAIC03MzMsMyArNzUzLDU1IEBAIHZvaWQgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0RWZsOjpzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGJv
b2wgZm9yCiB7CiAgICAgV2ViQ29yZTo6U2NoZW1lUmVnaXN0cnk6OnNldERvbWFpblJlbGF4YXRp
b25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoZm9yYmlkZGVuLCBzY2hlbWUpOwogfQorCit2b2lkIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6cmVzZXRHZW9sb2NhdGlvbkNsaWVudE1vY2soY29uc3Qg
RXZhc19PYmplY3QqIGV3a1ZpZXcpCit7CisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQorICAgIERS
VF9TVVBQUlRfUEFHRV9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHBhZ2UpOworCisgICAgV2ViQ29y
ZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6R2Vv
bG9jYXRpb25DbGllbnRNb2NrKj4oV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9t
KHBhZ2UpLT5jbGllbnQoKSk7CisgICAgbW9jay0+cmVzZXQoKTsKKyNlbmRpZgorfQorCit2b2lk
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0TW9ja0dlb2xvY2F0aW9uUGVybWlzc2lvbihj
b25zdCBFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBhbGxvd2VkKQoreworI2lmIEVOQUJMRShH
RU9MT0NBVElPTikKKyAgICBEUlRfU1VQUFJUX1BBR0VfR0VUX09SX1JFVFVSTihld2tWaWV3LCBw
YWdlKTsKKworICAgIFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50TW9jayogbW9jayA9IHN0YXRp
Y19jYXN0PFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50TW9jayo+KFdlYkNvcmU6Okdlb2xvY2F0
aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKS0+Y2xpZW50KCkpOworICAgIG1vY2stPnNldFBlcm1p
c3Npb24oYWxsb3dlZCk7CisjZW5kaWYKK30KKwordm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRF
Zmw6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3
LCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgYm9v
bCBjYW5Qcm92aWRlQWx0aXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgYm9vbCBjYW5Qcm92aWRlQWx0
aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgY2FuUHJvdmlkZUhl
YWRpbmcsIGRvdWJsZSBoZWFkaW5nLCBib29sIGNhblByb3ZpZGVTcGVlZCwgZG91YmxlIHNwZWVk
KQoreworI2lmIEVOQUJMRShHRU9MT0NBVElPTikKKyAgICBEUlRfU1VQUFJUX1BBR0VfR0VUX09S
X1JFVFVSTihld2tWaWV3LCBwYWdlKTsKKworICAgIFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50
TW9jayogbW9jayA9IHN0YXRpY19jYXN0PFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50TW9jayo+
KFdlYkNvcmU6Okdlb2xvY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKS0+Y2xpZW50KCkpOwor
ICAgIG1vY2stPnNldFBvc2l0aW9uKFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0
ZShjdXJyZW50VGltZSgpLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSwgY2FuUHJvdmlk
ZUFsdGl0dWRlLCBhbHRpdHVkZSwgY2FuUHJvdmlkZUFsdGl0dWRlQWNjdXJhY3ksIGFsdGl0dWRl
QWNjdXJhY3ksIGNhblByb3ZpZGVIZWFkaW5nLCBoZWFkaW5nLCBjYW5Qcm92aWRlU3BlZWQsIHNw
ZWVkKSk7CisjZW5kaWYKK30KKwordm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldE1v
Y2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihjb25zdCBFdmFzX09iamVjdCog
ZXdrVmlldywgY29uc3QgY2hhciogZXJyb3JNZXNzYWdlKQoreworI2lmIEVOQUJMRShHRU9MT0NB
VElPTikKKyAgICBEUlRfU1VQUFJUX1BBR0VfR0VUX09SX1JFVFVSTihld2tWaWV3LCBwYWdlKTsK
KworICAgIFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50TW9jayogbW9jayA9IHN0YXRpY19jYXN0
PFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50TW9jayo+KFdlYkNvcmU6Okdlb2xvY2F0aW9uQ29u
dHJvbGxlcjo6ZnJvbShwYWdlKS0+Y2xpZW50KCkpOworICAgIG1vY2stPnNldFBvc2l0aW9uVW5h
dmFpbGFibGVFcnJvcihlcnJvck1lc3NhZ2UpOworI2VuZGlmCit9CisKK2ludCBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRFZmw6Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RzKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQoreworI2lmIEVOQUJMRShHRU9MT0NBVElP
TikKKyAgICBEUlRfU1VQUFJUX1BBR0VfR0VUX09SX1JFVFVSTihld2tWaWV3LCBwYWdlLCAtMSk7
CisKKyAgICBXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2sgPSBzdGF0aWNfY2Fz
dDxXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudE1vY2sqPihXZWJDb3JlOjpHZW9sb2NhdGlvbkNv
bnRyb2xsZXI6OmZyb20ocGFnZSktPmNsaWVudCgpKTsKKyAgICByZXR1cm4gbW9jay0+bnVtYmVy
T2ZQZW5kaW5nUGVybWlzc2lvblJlcXVlc3RzKCk7CisjZWxzZQorICAgIHJldHVybiAwOworI2Vu
ZGlmCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3
NTUKaW5kZXggY2NjMDg3My4uMDUyZTU5NwotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaApAQCAtNDgsNiArNDgs
OSBAQCBwdWJsaWM6CiAKICAgICB+RHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsKCkgeyB9CiAKKyAg
ICBzdGF0aWMgdm9pZCBzZXREdW1wUmVuZGVyVHJlZU1vZGVFbmFibGVkKGJvb2wpOworICAgIHN0
YXRpYyBib29sIGR1bXBSZW5kZXJUcmVlTW9kZUVuYWJsZWQoKTsKKwogICAgIHN0YXRpYyB1bnNp
Z25lZCBhY3RpdmVBbmltYXRpb25zQ291bnQoY29uc3QgRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsK
ICAgICBzdGF0aWMgYm9vbCBjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXcoRXZhc19PYmplY3QqIGV3
a0ZyYW1lKTsKICAgICBzdGF0aWMgdm9pZCBjbGVhckZyYW1lTmFtZShFdmFzX09iamVjdCogZXdr
RnJhbWUpOwpAQCAtMTIxLDYgKzEyNCwxNSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgY29u
ZmlybUNvbXBvc2l0aW9uKEV2YXNfT2JqZWN0KiwgY29uc3QgY2hhciopOwogICAgIHN0YXRpYyBX
ZWJDb3JlOjpJbnRSZWN0IGZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKEV2YXNfT2JqZWN0Kiwg
aW50LCBpbnQpOwogICAgIHN0YXRpYyBib29sIHNlbGVjdGVkUmFuZ2UoRXZhc19PYmplY3QqLCBp
bnQqLCBpbnQqKTsKKworICAgIHN0YXRpYyB2b2lkIHJlc2V0R2VvbG9jYXRpb25DbGllbnRNb2Nr
KGNvbnN0IEV2YXNfT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9u
UGVybWlzc2lvbihjb25zdCBFdmFzX09iamVjdCosIGJvb2wgYWxsb3dlZCk7CisgICAgc3RhdGlj
IHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oY29uc3QgRXZhc19PYmplY3QqLCBkb3Vi
bGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgYm9vbCBjYW5Q
cm92aWRlQWx0aXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgYm9vbCBjYW5Qcm92aWRlQWx0aXR1ZGVB
Y2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgY2FuUHJvdmlkZUhlYWRpbmcs
IGRvdWJsZSBoZWFkaW5nLCBib29sIGNhblByb3ZpZGVTcGVlZCwgZG91YmxlIHNwZWVkKTsKKyAg
ICBzdGF0aWMgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvblVuYXZhaWxhYmxlRXJyb3Io
Y29uc3QgRXZhc19PYmplY3QqLCBjb25zdCBjaGFyKiBlcnJvck1lc3NhZ2UpOworICAgIHN0YXRp
YyBpbnQgbnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMoY29uc3Qg
RXZhc19PYmplY3QqKTsKKworcHJpdmF0ZToKKyAgICBzdGF0aWMgYm9vbCBzX2RydFJ1bjsKIH07
CiAKICNlbmRpZiAvLyBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmxfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfdmlldy5jcHAKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCAzYThiNzEz
Li40NmEzNzZiCi0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2lu
Y2x1ZGUgIkNvbnRleHRNZW51Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVy
LmgiCiAjaW5jbHVkZSAiRHJhZ0NsaWVudEVmbC5oIgorI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVl
U3VwcG9ydEVmbC5oIgogI2luY2x1ZGUgIkVkaXRvckNsaWVudEVmbC5oIgogI2luY2x1ZGUgIkVm
bFNjcmVlblV0aWxpdGllcy5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgpAQCAtODUsNiAr
ODYsMTEgQEAKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudEVmbC5oIgogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCisjaW5jbHVkZSAiR2VvbG9jYXRpb25DbGllbnRN
b2NrLmgiCisjaW5jbHVkZSAiR2VvbG9jYXRpb25Db250cm9sbGVyLmgiCisjZW5kaWYKKwogI2lm
IEVOQUJMRShWSUJSQVRJT04pCiAjaW5jbHVkZSAiVmlicmF0aW9uQ2xpZW50RWZsLmgiCiAjZW5k
aWYKQEAgLTc1NSw2ICs3NjEsMTQgQEAgc3RhdGljIEV3a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3
a192aWV3X3ByaXZfbmV3KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKICNlbmRpZgog
ICAgIHByaXYtPnBhZ2UgPSBhZG9wdFB0cihuZXcgV2ViQ29yZTo6UGFnZShwYWdlQ2xpZW50cykp
OwogCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQorICAgIGlmIChEdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmw6OmR1bXBSZW5kZXJUcmVlTW9kZUVuYWJsZWQoKSkgeworICAgICAgICBXZWJDb3JlOjpH
ZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2sgPSBuZXcgV2ViQ29yZTo6R2VvbG9jYXRpb25DbGll
bnRNb2NrOworICAgICAgICBXZWJDb3JlOjpwcm92aWRlR2VvbG9jYXRpb25Ubyhwcml2LT5wYWdl
LmdldCgpLCBtb2NrKTsKKyAgICAgICAgbW9jay0+c2V0Q29udHJvbGxlcihXZWJDb3JlOjpHZW9s
b2NhdGlvbkNvbnRyb2xsZXI6OmZyb20ocHJpdi0+cGFnZS5nZXQoKSkpOworICAgIH0KKyNlbmRp
ZgorCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKICAgICBXZWJDb3JlOjpwcm92aWRl
RGV2aWNlTW90aW9uVG8ocHJpdi0+cGFnZS5nZXQoKSwgbmV3IFdlYkNvcmU6OkRldmljZU1vdGlv
bkNsaWVudEVmbCk7CiAgICAgV2ViQ29yZTo6cHJvdmlkZURldmljZU9yaWVudGF0aW9uVG8ocHJp
di0+cGFnZS5nZXQoKSwgbmV3IFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50RWZsKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3ODA1
NzZkLi5lNjJjNjAzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMTAtMTYgIFNlb25hZSBLaW0gIDxzdW5hZWx1
di5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF1bRFJUXSBTdXBwb3J0IEdlb2xvY2F0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzQy
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxl
bWVudCBtZXRob2RzIHRvIHVzZSBHZW9sb2NhdGlvbkNsaWVudE1vY2sgaW4gRHVtcFJlbmRlclRy
ZWUuCisgICAgICAgIFRoaXMgY2xpZW50IGlzIGNyZWF0ZWQgd2hlbiBsYXlvdXQgdGVzdHMgaXMg
d29ya2luZy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNo
cm9tZS5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6aW5pdGlhbGl6ZSk6Cisg
ICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6cmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZh
bHVlcyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwOgor
ICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24pOgorICAgICAg
ICAoVGVzdFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9y
KToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNldEdlb2xvY2F0aW9uUGVybWlzc2lvbik6CisgICAg
ICAgIChUZXN0UnVubmVyOjpudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0cyk6CisKIDIwMTItMTAtMTUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CiAKICAgICAgICAgVXBkYXRlIHRoZSB1cmwgYmFyIGluIE1pbmlCcm93c2VyIHdoZW4gZ2V0
dGluZyB0aGUgY29tbWl0dGVkIFVSTApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
ZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9E
dW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpp
bmRleCA5OTMxMzVlLi42OWI5ZWFmCi0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1w
UmVuZGVyVHJlZUNocm9tZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBS
ZW5kZXJUcmVlQ2hyb21lLmNwcApAQCAtMTk3LDYgKzE5Nyw3IEBAIHZvaWQgRHVtcFJlbmRlclRy
ZWVDaHJvbWU6OnJlbW92ZVdpbmRvdyhFdmFzX09iamVjdCogdmlldykKIGJvb2wgRHVtcFJlbmRl
clRyZWVDaHJvbWU6OmluaXRpYWxpemUoKQogewogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVm
bDo6c2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKHRydWUpOworICAgIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEVmbDo6c2V0RHVtcFJlbmRlclRyZWVNb2RlRW5hYmxlZCh0cnVlKTsKIAogICAgIG1fbWFp
blZpZXcgPSBjcmVhdGVWaWV3KCk7CiAgICAgaWYgKCFtX21haW5WaWV3KQpAQCAtMzA3LDYgKzMw
OCw3IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6OnJlc2V0RGVmYXVsdHNUb0NvbnNpc3Rl
bnRWYWx1ZXMoKQogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6Y2xlYXJPcGVuZXIobWFp
bkZyYW1lKCkpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6Y2xlYXJVc2VyU2NyaXB0
cyhtYWluVmlldygpKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmNsZWFyVXNlclN0
eWxlU2hlZXRzKG1haW5WaWV3KCkpOworICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6cmVz
ZXRHZW9sb2NhdGlvbkNsaWVudE1vY2sobWFpblZpZXcoKSk7CiAgICAgRHVtcFJlbmRlclRyZWVT
dXBwb3J0RWZsOjpzZXRJbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uRW5hYmxlZChtYWluVmlldygp
LCB0cnVlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFZhbGlkYXRpb25NZXNz
YWdlVGltZXJNYWduaWZpY2F0aW9uKG1haW5WaWV3KCksIC0xKTsKICAgICBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRFZmw6OnNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKG1haW5WaWV3KCksIHRy
dWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwu
Y3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCm9sZCBtb2Rl
IDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggMTk3MDNhZS4uMmIwZWI2ZAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCkBAIC0zNjUsMzAgKzM2NSw0MiBAQCB2b2lk
IFRlc3RSdW5uZXI6OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbihib29sLCBkb3VibGUsIGJvb2ws
IGRvdWJsZSwgYm9vbCwgZG91YgogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgVGVz
dFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlLCBkb3VibGUsIGRvdWJs
ZSwgYm9vbCwgZG91YmxlLCBib29sLCBkb3VibGUsIGJvb2wsIGRvdWJsZSwgYm9vbCwgZG91Ymxl
KQordm9pZCBUZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0
aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgYm9vbCBjYW5Qcm92aWRl
QWx0aXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgYm9vbCBjYW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFj
eSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgY2FuUHJvdmlkZUhlYWRpbmcsIGRvdWJs
ZSBoZWFkaW5nLCBib29sIGNhblByb3ZpZGVTcGVlZCwgZG91YmxlIHNwZWVkKQogewotICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgZm9yIEdlb2xvY2F0aW9uIGxheW91dCB0ZXN0cy4KLSAgICAvLyBT
ZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MjY0LgotICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgRXZhc19PYmplY3QqIHZpZXcgPSBicm93c2VyLT5tYWluVmll
dygpOworICAgIGlmIChicm93c2VyLT5leHRyYVZpZXdzKCkuc2l6ZSgpID4gMCkKKyAgICAgICAg
dmlldyA9IGJyb3dzZXItPmV4dHJhVmlld3MoKS5sYXN0KCk7CisKKyAgICBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRFZmw6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKHZpZXcsIGxhdGl0dWRlLCBs
b25naXR1ZGUsIGFjY3VyYWN5LCBjYW5Qcm92aWRlQWx0aXR1ZGUsIGFsdGl0dWRlLCBjYW5Qcm92
aWRlQWx0aXR1ZGVBY2N1cmFjeSwgYWx0aXR1ZGVBY2N1cmFjeSwgY2FuUHJvdmlkZUhlYWRpbmcs
IGhlYWRpbmcsIGNhblByb3ZpZGVTcGVlZCwgc3BlZWQpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6
OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihKU1N0cmluZ1JlZikK
K3ZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVy
cm9yKEpTU3RyaW5nUmVmIG1lc3NhZ2UpCiB7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3Ig
R2VvbG9jYXRpb24gbGF5b3V0IHRlc3RzLgotICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgyNjQuCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBF
dmFzX09iamVjdCogdmlldyA9IGJyb3dzZXItPm1haW5WaWV3KCk7CisgICAgaWYgKGJyb3dzZXIt
PmV4dHJhVmlld3MoKS5zaXplKCkgPiAwKQorICAgICAgICB2aWV3ID0gYnJvd3Nlci0+ZXh0cmFW
aWV3cygpLmxhc3QoKTsKKworICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0TW9ja0dl
b2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKHZpZXcsIG1lc3NhZ2UtPnN0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnNldEdlb2xvY2F0aW9uUGVy
bWlzc2lvbihib29sIGFsbG93KQogewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIEdlb2xv
Y2F0aW9uIGxheW91dCB0ZXN0cy4KICAgICBzZXRHZW9sb2NhdGlvblBlcm1pc3Npb25Db21tb24o
YWxsb3cpOworCisgICAgRXZhc19PYmplY3QqIHZpZXcgPSBicm93c2VyLT5tYWluVmlldygpOwor
ICAgIGlmIChicm93c2VyLT5leHRyYVZpZXdzKCkuc2l6ZSgpID4gMCkKKyAgICAgICAgdmlldyA9
IGJyb3dzZXItPmV4dHJhVmlld3MoKS5sYXN0KCk7CisKKyAgICBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmw6OnNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Npb24odmlldywgYWxsb3cpOwogfQogCiBp
bnQgVGVzdFJ1bm5lcjo6bnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dHMoKQogewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIEdlb2xvY2F0aW9uIGxheW91dCB0
ZXN0cy4KLSAgICByZXR1cm4gLTE7CisgICAgRXZhc19PYmplY3QqIHZpZXcgPSBicm93c2VyLT5t
YWluVmlldygpOworICAgIGlmIChicm93c2VyLT5leHRyYVZpZXdzKCkuc2l6ZSgpID4gMCkKKyAg
ICAgICAgdmlldyA9IGJyb3dzZXItPmV4dHJhVmlld3MoKS5sYXN0KCk7CisKKyAgICByZXR1cm4g
RHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0cyh2aWV3KTsKIH0KIAogdm9pZCBUZXN0UnVubmVyOjphZGRNb2NrU3BlZWNo
SW5wdXRSZXN1bHQoSlNTdHJpbmdSZWYsIGRvdWJsZSwgSlNTdHJpbmdSZWYpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169340</attachid>
            <date>2012-10-17 22:04:22 -0700</date>
            <delta_ts>2012-10-31 23:04:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>16831</size>
            <attacher name="seonae kim">sunaeluv.kim</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNjBmZmFjLi5hZDUzMjdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAt
MTYgIFNlb25hZSBLaW0gIDxzdW5hZWx1di5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VG
TF1bRFJUXSBTdXBwb3J0IEdlb2xvY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05NzQyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVuc2tpcCBHZW9sb2NhdGlvbiB0ZXN0IGNhc2VzLgorCisgICAg
ICAgICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTItMTAtMTUgIFBhYmxv
IEZsb3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgogCiAgICAgICAgIEFkZCBmb3JjZSBwYXJh
bWV0ZXIgdG8gRE9NVG9rZW5MaXN0LnRvZ2dsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVz
dEV4cGVjdGF0aW9ucwpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDEwMDll
MzcuLmIxNDVjMDgKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEy
NTgsMTMgKzEyNTgsNiBAQCB3ZWJraXQub3JnL2IvNjg1OTEgaHR0cC90ZXN0cy9zZWN1cml0eS9m
aWxlc3lzdGVtLWlmcmFtZS1mcm9tLXJlbW90ZS5odG1sCiB3ZWJraXQub3JnL2IvNjg1OTEgaHR0
cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvZmlsZXN5c3RlbS11cmwtaW4taWZyYW1lLmh0
bWwKIHdlYmtpdC5vcmcvYi82ODU5MSBodHRwL3Rlc3RzL2luc3BlY3Rvci9maWxlc3lzdGVtCiAK
LSMgVGhlIEVGTCBwb3J0IGhhcyBubyBzdXBwb3J0IGZvciB0aGUgR2VvbG9jYXRpb24KLXdlYmtp
dC5vcmcvYi84MjE0MCBmYXN0L2RvbS9HZW9sb2NhdGlvbiBbIFNraXAgXQotd2Via2l0Lm9yZy9i
LzgyMTQwIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1nZW9sb2NhdGlvbi5odG1s
IFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODIxNDAgaW5zcGVjdG9yL2dlb2xvY2F0aW9uLWVy
cm9yLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi84MjE0MCBpbnNwZWN0b3IvZ2VvbG9j
YXRpb24tc3VjY2Vzcy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODIxNDAgaW5zcGVj
dG9yL2dlb2xvY2F0aW9uLXdhdGNoUG9zaXRpb24uaHRtbCBbIEZhaWx1cmUgXQotCiAjIEVGTCdz
IEV2ZW50U2VuZGVyIGRvZXMgbm90IGltcGxlbWVudCBjb250ZXh0Q2xpY2sgeWV0CiB3ZWJraXQu
b3JnL2IvODYwOTEgZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktc3RhbmRhbG9uZS1pbWFnZS1jcmFz
aC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvODYwOTEgZWRpdGluZy9zZWxlY3Rpb24v
NTM1NDQ1NS0xLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNTc2YzQ5Mi4uMWM1MTI4NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMC0xNiAgU2VvbmFlIEtpbSAgPHN1bmFl
bHV2LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtEUlRdIFN1cHBvcnQgR2VvbG9j
YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3
NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1w
bGVtZW50IG1ldGhvZHMgdG8gdXNlIEdlb2xvY2F0aW9uQ2xpZW50TW9jayBpbiBEdW1wUmVuZGVy
VHJlZS4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorCiAyMDEyLTEwLTE1ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBmcmFtZXdvcmsg
YW5kIGxpYnJhcnkgbGlua2luZyBpbnRvIFdlYktpdC54Y2NvbmZpZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwu
Y21ha2UKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCAxN2IyNDM5Li5iZWE3
MGUwCi0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtNyw2ICs3LDcgQEAgTElTVChBUFBFTkQgV2ViS2l0
X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZWZsIgog
ICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlybyIKICAgICAiJHtXRUJD
T1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvZWZsIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0
Zm9ybS9tb2NrIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAiCiAg
ICAgJHtDQUlST19JTkNMVURFX0RJUlN9CiAgICAgJHtFQ09SRV9JTkNMVURFX0RJUlN9CkBAIC03
OCw2ICs3OSwxMiBAQCBJRiAoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKQogICApCiBF
TkRJRiAoKQogCitJRiAoRU5BQkxFX0dFT0xPQ0FUSU9OKQorICBMSVNUKEFQUEVORCBXZWJLaXRf
SU5DTFVERV9ESVJFQ1RPUklFUworICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2dlb2xvY2F0
aW9uIgorICApCitFTkRJRiAoKQorCiBMSVNUKEFQUEVORCBXZWJLaXRfU09VUkNFUwogICAgIGVm
bC9XZWJDb3JlU3VwcG9ydC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAogICAgIGVmbC9XZWJDb3Jl
U3VwcG9ydC9CYXR0ZXJ5Q2xpZW50RWZsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDE1MDEzYmEu
LmUyZWZmNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0xMC0xNiAg
U2VvbmFlIEtpbSAgPHN1bmFlbHV2LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtE
UlRdIFN1cHBvcnQgR2VvbG9jYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk3NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW1wbGVtZW50IG1ldGhvZHMgdG8gdXNlIEdlb2xvY2F0aW9uQ2xpZW50
TW9jayBpbiBEdW1wUmVuZGVyVHJlZS4KKyAgICAgICAgVGhpcyBjbGllbnQgaXMgY3JlYXRlZCB3
aGVuIGxheW91dCB0ZXN0cyBpcyB3b3JraW5nLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEVmbDo6c2V0RHVtcFJlbmRlclRyZWVNb2RlRW5hYmxlZCk6CisgICAgICAgIChEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmw6OmR1bXBSZW5kZXJUcmVlTW9kZUVuYWJsZWQpOgorICAgICAgICAo
RHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpyZXNldEdlb2xvY2F0aW9uQ2xpZW50TW9jayk6Cisg
ICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldE1vY2tHZW9sb2NhdGlvblBlcm1p
c3Npb24pOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRNb2NrR2VvbG9j
YXRpb25Qb3NpdGlvbik6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldE1v
Y2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcik6CisgICAgICAgIChEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmw6Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RzKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRF
ZmwuaDoKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX2V3a192aWV3X3By
aXZfbmV3KToKKwogMjAxMi0xMC0xNSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVt
ZXpAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdW1dLMl0gSW1wbGVtZW50IEZhdmljb25zIEFQ
SQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1
NQppbmRleCA3NDY2MDI5Li42N2RjYmIzCi0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcApAQCAtNjEsNiAr
NjEsMTQgQEAKICNpbmNsdWRlIDx3b3JrZXJzL1dvcmtlclRocmVhZC5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CiAKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCisjaW5jbHVkZSA8R2VvbG9j
YXRpb25DbGllbnRNb2NrLmg+CisjaW5jbHVkZSA8R2VvbG9jYXRpb25Db250cm9sbGVyLmg+Cisj
aW5jbHVkZSA8R2VvbG9jYXRpb25FcnJvci5oPgorI2luY2x1ZGUgPEdlb2xvY2F0aW9uUG9zaXRp
b24uaD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNlbmRpZgorCiAjZGVmaW5lIERS
VF9TVVBQT1JUX0ZSQU1FX0dFVF9PUl9SRVRVUk4oZXdrRnJhbWUsIGZyYW1lLCAuLi4pIFwKICAg
ICBXZWJDb3JlOjpGcmFtZSogZnJhbWUgPSBFV0tQcml2YXRlOjpjb3JlRnJhbWUoZXdrRnJhbWUp
OyAgXAogICAgIGlmICghZnJhbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCkBAIC03MCw3ICs3OCwxOSBAQAogICAgIFdlYkNvcmU6OlBhZ2UqIHBhZ2Ug
PSBFV0tQcml2YXRlOjpjb3JlUGFnZShld2tWaWV3KTsgIFwKICAgICBpZiAoIXBhZ2UpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIHJldHVybiBf
X1ZBX0FSR1NfXzsKLSAgICAKKworYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNfZHJ0
UnVuID0gZmFsc2U7CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXREdW1wUmVu
ZGVyVHJlZU1vZGVFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBzX2RydFJ1biA9IGVuYWJs
ZWQ7Cit9CisKK2Jvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpkdW1wUmVuZGVyVHJlZU1v
ZGVFbmFibGVkKCkKK3sKKyAgICByZXR1cm4gc19kcnRSdW47Cit9CisKIHVuc2lnbmVkIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbDo6YWN0aXZlQW5pbWF0aW9uc0NvdW50KGNvbnN0IEV2YXNfT2Jq
ZWN0KiBld2tGcmFtZSkKIHsKICAgICBEUlRfU1VQUE9SVF9GUkFNRV9HRVRfT1JfUkVUVVJOKGV3
a0ZyYW1lLCBmcmFtZSwgMCk7CkBAIC03MzMsMyArNzUzLDc3IEBAIHZvaWQgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0RWZsOjpzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGJv
b2wgZm9yCiB7CiAgICAgV2ViQ29yZTo6U2NoZW1lUmVnaXN0cnk6OnNldERvbWFpblJlbGF4YXRp
b25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoZm9yYmlkZGVuLCBzY2hlbWUpOwogfQorCit2b2lkIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6cmVzZXRHZW9sb2NhdGlvbkNsaWVudE1vY2soY29uc3Qg
RXZhc19PYmplY3QqIGV3a1ZpZXcpCit7CisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQorICAgIERS
VF9TVVBQUlRfUEFHRV9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHBhZ2UpOworCisgICAgV2ViQ29y
ZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6R2Vv
bG9jYXRpb25DbGllbnRNb2NrKj4oV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9t
KHBhZ2UpLT5jbGllbnQoKSk7CisgICAgbW9jay0+cmVzZXQoKTsKKyNlbHNlCisgICAgVU5VU0VE
X1BBUkFNKGV3a1ZpZXcpOworI2VuZGlmCit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0
RWZsOjpzZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9uKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBib29sIGFsbG93ZWQpCit7CisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQorICAgIERSVF9T
VVBQUlRfUEFHRV9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHBhZ2UpOworCisgICAgV2ViQ29yZTo6
R2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6R2VvbG9j
YXRpb25DbGllbnRNb2NrKj4oV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBh
Z2UpLT5jbGllbnQoKSk7CisgICAgbW9jay0+c2V0UGVybWlzc2lvbihhbGxvd2VkKTsKKyNlbHNl
CisgICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcpOworICAgIFVOVVNFRF9QQVJBTShhbGxvd2VkKTsK
KyNlbmRpZgorfQorCit2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0TW9ja0dlb2xv
Y2F0aW9uUG9zaXRpb24oY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGRvdWJsZSBsYXRpdHVk
ZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBib29sIGNhblByb3ZpZGVBbHRp
dHVkZSwgZG91YmxlIGFsdGl0dWRlLCBib29sIGNhblByb3ZpZGVBbHRpdHVkZUFjY3VyYWN5LCBk
b3VibGUgYWx0aXR1ZGVBY2N1cmFjeSwgYm9vbCBjYW5Qcm92aWRlSGVhZGluZywgZG91YmxlIGhl
YWRpbmcsIGJvb2wgY2FuUHJvdmlkZVNwZWVkLCBkb3VibGUgc3BlZWQpCit7CisjaWYgRU5BQkxF
KEdFT0xPQ0FUSU9OKQorICAgIERSVF9TVVBQUlRfUEFHRV9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcs
IHBhZ2UpOworCisgICAgV2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrID0gc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrKj4oV2ViQ29yZTo6R2VvbG9j
YXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpLT5jbGllbnQoKSk7CisgICAgbW9jay0+c2V0UG9z
aXRpb24oV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRlKGN1cnJlbnRUaW1lKCks
IGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5LCBjYW5Qcm92aWRlQWx0aXR1ZGUsIGFsdGl0
dWRlLCBjYW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgYWx0aXR1ZGVBY2N1cmFjeSwgY2FuUHJv
dmlkZUhlYWRpbmcsIGhlYWRpbmcsIGNhblByb3ZpZGVTcGVlZCwgc3BlZWQpKTsKKyNlbHNlCisg
ICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcpOworICAgIFVOVVNFRF9QQVJBTShsYXRpdHVkZSk7Cisg
ICAgVU5VU0VEX1BBUkFNKGxvbmdpdHVkZSk7CisgICAgVU5VU0VEX1BBUkFNKGFjY3VyYWN5KTsK
KyAgICBVTlVTRURfUEFSQU0oY2FuUHJvdmlkZUFsdGl0dWRlKTsKKyAgICBVTlVTRURfUEFSQU0o
YWx0aXR1ZGUpOworICAgIFVOVVNFRF9QQVJBTShjYW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSk7
CisgICAgVU5VU0VEX1BBUkFNKGFsdGl0dWRlQWNjdXJhY3kpOworICAgIFVOVVNFRF9QQVJBTShj
YW5Qcm92aWRlSGVhZGluZyk7CisgICAgVU5VU0VEX1BBUkFNKGhlYWRpbmcpOworICAgIFVOVVNF
RF9QQVJBTShjYW5Qcm92aWRlU3BlZWQpOworICAgIFVOVVNFRF9QQVJBTShzcGVlZCk7CisjZW5k
aWYKK30KKwordm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldE1vY2tHZW9sb2NhdGlv
blBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywgY29u
c3QgY2hhciogZXJyb3JNZXNzYWdlKQoreworI2lmIEVOQUJMRShHRU9MT0NBVElPTikKKyAgICBE
UlRfU1VQUFJUX1BBR0VfR0VUX09SX1JFVFVSTihld2tWaWV3LCBwYWdlKTsKKworICAgIFdlYkNv
cmU6Okdlb2xvY2F0aW9uQ2xpZW50TW9jayogbW9jayA9IHN0YXRpY19jYXN0PFdlYkNvcmU6Okdl
b2xvY2F0aW9uQ2xpZW50TW9jayo+KFdlYkNvcmU6Okdlb2xvY2F0aW9uQ29udHJvbGxlcjo6ZnJv
bShwYWdlKS0+Y2xpZW50KCkpOworICAgIG1vY2stPnNldFBvc2l0aW9uVW5hdmFpbGFibGVFcnJv
cihlcnJvck1lc3NhZ2UpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZXdrVmlldyk7CisgICAg
VU5VU0VEX1BBUkFNKGVycm9yTWVzc2FnZSk7CisjZW5kaWYKK30KKworaW50IER1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbDo6bnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dHMoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCit7CisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9O
KQorICAgIERSVF9TVVBQUlRfUEFHRV9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHBhZ2UsIC0xKTsK
KworICAgIFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50TW9jayogbW9jayA9IHN0YXRpY19jYXN0
PFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50TW9jayo+KFdlYkNvcmU6Okdlb2xvY2F0aW9uQ29u
dHJvbGxlcjo6ZnJvbShwYWdlKS0+Y2xpZW50KCkpOworICAgIHJldHVybiBtb2NrLT5udW1iZXJP
ZlBlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMoKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGV3
a1ZpZXcpOworICAgIHJldHVybiAwOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaCBiL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCm9s
ZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggY2NjMDg3My4uMDUyZTU5NwotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRF
ZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRFZmwuaApAQCAtNDgsNiArNDgsOSBAQCBwdWJsaWM6CiAKICAgICB+RHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsKCkgeyB9CiAKKyAgICBzdGF0aWMgdm9pZCBzZXREdW1wUmVuZGVyVHJl
ZU1vZGVFbmFibGVkKGJvb2wpOworICAgIHN0YXRpYyBib29sIGR1bXBSZW5kZXJUcmVlTW9kZUVu
YWJsZWQoKTsKKwogICAgIHN0YXRpYyB1bnNpZ25lZCBhY3RpdmVBbmltYXRpb25zQ291bnQoY29u
c3QgRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKICAgICBzdGF0aWMgYm9vbCBjYWxsU2hvdWxkQ2xv
c2VPbldlYlZpZXcoRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKICAgICBzdGF0aWMgdm9pZCBjbGVh
ckZyYW1lTmFtZShFdmFzX09iamVjdCogZXdrRnJhbWUpOwpAQCAtMTIxLDYgKzEyNCwxNSBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIHZvaWQgY29uZmlybUNvbXBvc2l0aW9uKEV2YXNfT2JqZWN0Kiwg
Y29uc3QgY2hhciopOwogICAgIHN0YXRpYyBXZWJDb3JlOjpJbnRSZWN0IGZpcnN0UmVjdEZvckNo
YXJhY3RlclJhbmdlKEV2YXNfT2JqZWN0KiwgaW50LCBpbnQpOwogICAgIHN0YXRpYyBib29sIHNl
bGVjdGVkUmFuZ2UoRXZhc19PYmplY3QqLCBpbnQqLCBpbnQqKTsKKworICAgIHN0YXRpYyB2b2lk
IHJlc2V0R2VvbG9jYXRpb25DbGllbnRNb2NrKGNvbnN0IEV2YXNfT2JqZWN0Kik7CisgICAgc3Rh
dGljIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUGVybWlzc2lvbihjb25zdCBFdmFzX09iamVjdCos
IGJvb2wgYWxsb3dlZCk7CisgICAgc3RhdGljIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRp
b24oY29uc3QgRXZhc19PYmplY3QqLCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUs
IGRvdWJsZSBhY2N1cmFjeSwgYm9vbCBjYW5Qcm92aWRlQWx0aXR1ZGUsIGRvdWJsZSBhbHRpdHVk
ZSwgYm9vbCBjYW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJh
Y3ksIGJvb2wgY2FuUHJvdmlkZUhlYWRpbmcsIGRvdWJsZSBoZWFkaW5nLCBib29sIGNhblByb3Zp
ZGVTcGVlZCwgZG91YmxlIHNwZWVkKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRNb2NrR2VvbG9jYXRp
b25Qb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IoY29uc3QgRXZhc19PYmplY3QqLCBjb25zdCBjaGFy
KiBlcnJvck1lc3NhZ2UpOworICAgIHN0YXRpYyBpbnQgbnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdHMoY29uc3QgRXZhc19PYmplY3QqKTsKKworcHJpdmF0ZToKKyAg
ICBzdGF0aWMgYm9vbCBzX2RydFJ1bjsKIH07CiAKICNlbmRpZiAvLyBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRFZmxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKb2xkIG1vZGUgMTAwNjQ0Cm5l
dyBtb2RlIDEwMDc1NQppbmRleCAzYThiNzEzLi40NmEzNzZiCi0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3
LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNvbnRleHRNZW51Q29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRHJhZ0NsaWVudEVmbC5o
IgorI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oIgogI2luY2x1ZGUgIkVkaXRv
ckNsaWVudEVmbC5oIgogI2luY2x1ZGUgIkVmbFNjcmVlblV0aWxpdGllcy5oIgogI2luY2x1ZGUg
IkV2ZW50SGFuZGxlci5oIgpAQCAtODUsNiArODYsMTEgQEAKICNpbmNsdWRlICJEZXZpY2VPcmll
bnRhdGlvbkNsaWVudEVmbC5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCisj
aW5jbHVkZSAiR2VvbG9jYXRpb25DbGllbnRNb2NrLmgiCisjaW5jbHVkZSAiR2VvbG9jYXRpb25D
b250cm9sbGVyLmgiCisjZW5kaWYKKwogI2lmIEVOQUJMRShWSUJSQVRJT04pCiAjaW5jbHVkZSAi
VmlicmF0aW9uQ2xpZW50RWZsLmgiCiAjZW5kaWYKQEAgLTc1NSw2ICs3NjEsMTQgQEAgc3RhdGlj
IEV3a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3a192aWV3X3ByaXZfbmV3KEV3a19WaWV3X1NtYXJ0
X0RhdGEqIHNtYXJ0RGF0YSkKICNlbmRpZgogICAgIHByaXYtPnBhZ2UgPSBhZG9wdFB0cihuZXcg
V2ViQ29yZTo6UGFnZShwYWdlQ2xpZW50cykpOwogCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQor
ICAgIGlmIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmR1bXBSZW5kZXJUcmVlTW9kZUVuYWJs
ZWQoKSkgeworICAgICAgICBXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2sgPSBu
ZXcgV2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrOworICAgICAgICBXZWJDb3JlOjpwcm92
aWRlR2VvbG9jYXRpb25Ubyhwcml2LT5wYWdlLmdldCgpLCBtb2NrKTsKKyAgICAgICAgbW9jay0+
c2V0Q29udHJvbGxlcihXZWJDb3JlOjpHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmZyb20ocHJpdi0+
cGFnZS5nZXQoKSkpOworICAgIH0KKyNlbmRpZgorCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRB
VElPTikKICAgICBXZWJDb3JlOjpwcm92aWRlRGV2aWNlTW90aW9uVG8ocHJpdi0+cGFnZS5nZXQo
KSwgbmV3IFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudEVmbCk7CiAgICAgV2ViQ29yZTo6cHJv
dmlkZURldmljZU9yaWVudGF0aW9uVG8ocHJpdi0+cGFnZS5nZXQoKSwgbmV3IFdlYkNvcmU6OkRl
dmljZU9yaWVudGF0aW9uQ2xpZW50RWZsKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3ODA1NzZkLi5lNjJjNjAzIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTIt
MTAtMTYgIFNlb25hZSBLaW0gIDxzdW5hZWx1di5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAg
W0VGTF1bRFJUXSBTdXBwb3J0IEdlb2xvY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzQyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBtZXRob2RzIHRvIHVzZSBHZW9sb2NhdGlv
bkNsaWVudE1vY2sgaW4gRHVtcFJlbmRlclRyZWUuCisgICAgICAgIFRoaXMgY2xpZW50IGlzIGNy
ZWF0ZWQgd2hlbiBsYXlvdXQgdGVzdHMgaXMgd29ya2luZy4KKworICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHA6CisgICAgICAgIChEdW1wUmVuZGVy
VHJlZUNocm9tZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6
cmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0TW9ja0dl
b2xvY2F0aW9uUG9zaXRpb24pOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0
aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNldEdl
b2xvY2F0aW9uUGVybWlzc2lvbik6CisgICAgICAgIChUZXN0UnVubmVyOjpudW1iZXJPZlBlbmRp
bmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyk6CisKIDIwMTItMTAtMTUgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIHRoZSB1cmwg
YmFyIGluIE1pbmlCcm93c2VyIHdoZW4gZ2V0dGluZyB0aGUgY29tbWl0dGVkIFVSTApkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKb2xkIG1v
ZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCA5OTMxMzVlLi42OWI5ZWFmCi0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcApAQCAtMTk3LDYg
KzE5Nyw3IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6OnJlbW92ZVdpbmRvdyhFdmFzX09i
amVjdCogdmlldykKIGJvb2wgRHVtcFJlbmRlclRyZWVDaHJvbWU6OmluaXRpYWxpemUoKQogewog
ICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKHRy
dWUpOworICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0RHVtcFJlbmRlclRyZWVNb2Rl
RW5hYmxlZCh0cnVlKTsKIAogICAgIG1fbWFpblZpZXcgPSBjcmVhdGVWaWV3KCk7CiAgICAgaWYg
KCFtX21haW5WaWV3KQpAQCAtMzA3LDYgKzMwOCw3IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVDaHJv
bWU6OnJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogICAgIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEVmbDo6Y2xlYXJPcGVuZXIobWFpbkZyYW1lKCkpOwogICAgIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEVmbDo6Y2xlYXJVc2VyU2NyaXB0cyhtYWluVmlldygpKTsKICAgICBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRFZmw6OmNsZWFyVXNlclN0eWxlU2hlZXRzKG1haW5WaWV3KCkpOworICAgIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6cmVzZXRHZW9sb2NhdGlvbkNsaWVudE1vY2sobWFpblZp
ZXcoKSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRJbnRlcmFjdGl2ZUZvcm1W
YWxpZGF0aW9uRW5hYmxlZChtYWluVmlldygpLCB0cnVlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRFZmw6OnNldFZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uKG1haW5WaWV3
KCksIC0xKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldEF1dGhvckFuZFVzZXJT
dHlsZXNFbmFibGVkKG1haW5WaWV3KCksIHRydWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZs
L1Rlc3RSdW5uZXJFZmwuY3BwCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXgg
MTk3MDNhZS4uMmIwZWI2ZAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5l
ckVmbC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3Bw
CkBAIC0zNjUsMzAgKzM2NSw0MiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tEZXZpY2VPcmll
bnRhdGlvbihib29sLCBkb3VibGUsIGJvb2wsIGRvdWJsZSwgYm9vbCwgZG91YgogICAgIG5vdElt
cGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9z
aXRpb24oZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgYm9vbCwgZG91YmxlLCBib29sLCBkb3VibGUs
IGJvb2wsIGRvdWJsZSwgYm9vbCwgZG91YmxlKQordm9pZCBUZXN0UnVubmVyOjpzZXRNb2NrR2Vv
bG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJs
ZSBhY2N1cmFjeSwgYm9vbCBjYW5Qcm92aWRlQWx0aXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgYm9v
bCBjYW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJv
b2wgY2FuUHJvdmlkZUhlYWRpbmcsIGRvdWJsZSBoZWFkaW5nLCBib29sIGNhblByb3ZpZGVTcGVl
ZCwgZG91YmxlIHNwZWVkKQogewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIEdlb2xvY2F0
aW9uIGxheW91dCB0ZXN0cy4KLSAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI4MjY0LgotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgRXZhc19PYmpl
Y3QqIHZpZXcgPSBicm93c2VyLT5tYWluVmlldygpOworICAgIGlmIChicm93c2VyLT5leHRyYVZp
ZXdzKCkuc2l6ZSgpID4gMCkKKyAgICAgICAgdmlldyA9IGJyb3dzZXItPmV4dHJhVmlld3MoKS5s
YXN0KCk7CisKKyAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldE1vY2tHZW9sb2NhdGlv
blBvc2l0aW9uKHZpZXcsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5LCBjYW5Qcm92aWRl
QWx0aXR1ZGUsIGFsdGl0dWRlLCBjYW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgYWx0aXR1ZGVB
Y2N1cmFjeSwgY2FuUHJvdmlkZUhlYWRpbmcsIGhlYWRpbmcsIGNhblByb3ZpZGVTcGVlZCwgc3Bl
ZWQpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5h
dmFpbGFibGVFcnJvcihKU1N0cmluZ1JlZikKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0dlb2xv
Y2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKEpTU3RyaW5nUmVmIG1lc3NhZ2UpCiB7Ci0g
ICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3IgR2VvbG9jYXRpb24gbGF5b3V0IHRlc3RzLgotICAg
IC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgyNjQuCi0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBFdmFzX09iamVjdCogdmlldyA9IGJyb3dzZXItPm1h
aW5WaWV3KCk7CisgICAgaWYgKGJyb3dzZXItPmV4dHJhVmlld3MoKS5zaXplKCkgPiAwKQorICAg
ICAgICB2aWV3ID0gYnJvd3Nlci0+ZXh0cmFWaWV3cygpLmxhc3QoKTsKKworICAgIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEVmbDo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVy
cm9yKHZpZXcsIG1lc3NhZ2UtPnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogfQogCiB2b2lkIFRl
c3RSdW5uZXI6OnNldEdlb2xvY2F0aW9uUGVybWlzc2lvbihib29sIGFsbG93KQogewotICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgZm9yIEdlb2xvY2F0aW9uIGxheW91dCB0ZXN0cy4KICAgICBzZXRH
ZW9sb2NhdGlvblBlcm1pc3Npb25Db21tb24oYWxsb3cpOworCisgICAgRXZhc19PYmplY3QqIHZp
ZXcgPSBicm93c2VyLT5tYWluVmlldygpOworICAgIGlmIChicm93c2VyLT5leHRyYVZpZXdzKCku
c2l6ZSgpID4gMCkKKyAgICAgICAgdmlldyA9IGJyb3dzZXItPmV4dHJhVmlld3MoKS5sYXN0KCk7
CisKKyAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldE1vY2tHZW9sb2NhdGlvblBlcm1p
c3Npb24odmlldywgYWxsb3cpOwogfQogCiBpbnQgVGVzdFJ1bm5lcjo6bnVtYmVyT2ZQZW5kaW5n
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMoKQogewotICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgZm9yIEdlb2xvY2F0aW9uIGxheW91dCB0ZXN0cy4KLSAgICByZXR1cm4gLTE7CisgICAgRXZh
c19PYmplY3QqIHZpZXcgPSBicm93c2VyLT5tYWluVmlldygpOworICAgIGlmIChicm93c2VyLT5l
eHRyYVZpZXdzKCkuc2l6ZSgpID4gMCkKKyAgICAgICAgdmlldyA9IGJyb3dzZXItPmV4dHJhVmll
d3MoKS5sYXN0KCk7CisKKyAgICByZXR1cm4gRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpudW1i
ZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyh2aWV3KTsKIH0KIAogdm9p
ZCBUZXN0UnVubmVyOjphZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQoSlNTdHJpbmdSZWYsIGRvdWJs
ZSwgSlNTdHJpbmdSZWYpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171773</attachid>
            <date>2012-10-31 23:04:29 -0700</date>
            <delta_ts>2012-11-01 00:13:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>15038</size>
            <attacher name="seonae kim">sunaeluv.kim</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiMGM1Yzg0Li44NjhiZGMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAt
MzEgIFNlb25hZSBLaW0gIDxzdW5hZWx1di5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VG
TF1bRFJUXSBTdXBwb3J0IEdlb2xvY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05NzQyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENoYW5nZSB0aGUgY29tbWVudCBvZiBHZW9sb2NhdGlvbiB0ZXN0
IGNhc2VzLgorCisgICAgICAgICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIw
MTItMTAtMzEgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBTY3Jp
cHQgcnVuIGZyb20gYW4gaXNvbGF0ZWQgd29ybGQgc2hvdWxkIGJ5cGFzcyBhIHBhZ2UncyBDU1Au
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDBjN2FiYjUu
LjI4NDYxYTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBA
IC0xMzMxLDcgKzEzMzEsNyBAQCB3ZWJraXQub3JnL2IvNjg1OTEgaHR0cC90ZXN0cy9zZWN1cml0
eS9maWxlc3lzdGVtLWlmcmFtZS1mcm9tLXJlbW90ZS5odG1sCiB3ZWJraXQub3JnL2IvNjg1OTEg
aHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvZmlsZXN5c3RlbS11cmwtaW4taWZyYW1l
Lmh0bWwKIHdlYmtpdC5vcmcvYi82ODU5MSBodHRwL3Rlc3RzL2luc3BlY3Rvci9maWxlc3lzdGVt
CiAKLSMgVGhlIEVGTCBwb3J0IGhhcyBubyBzdXBwb3J0IGZvciB0aGUgR2VvbG9jYXRpb24KKyMg
RUZMJ3MgVGVzdFJ1bm5lciBzaG91bGQgc3VwcG9ydCBmb3IgdGhlIEdlb2xvY2F0aW9uIEFQSQog
d2Via2l0Lm9yZy9iLzgyMTQwIGZhc3QvZG9tL0dlb2xvY2F0aW9uIFsgU2tpcCBdCiB3ZWJraXQu
b3JnL2IvODIxNDAgZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWdlb2xvY2F0aW9u
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi84MjE0MCBpbnNwZWN0b3IvZ2VvbG9jYXRp
b24tZXJyb3IuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiYWQ2NTI1Li4zZWY4YmE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTEwLTMxICBTZW9uYWUgS2ltICA8c3VuYWVs
dXYua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdW0RSVF0gU3VwcG9ydCBHZW9sb2Nh
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc0
MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
YSBtb2NrIGRpcmVjdG9yeSB0byB1c2UgR2VvbG9jYXRpb25DbGllbnRNb2NrIGluIER1bXBSZW5k
ZXJUcmVlLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisKIDIwMTItMTAtMzEgIE1p
Y2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KIAogICAgICAg
ICBbRUZMXVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVpcmVzIGNvbnRleHRDbGljayBpbXBsZW1lbnRh
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggMzUzNzNkZi4uOTIwYjE0NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtRWZsLmNtYWtlCkBAIC03LDYgKzcsNyBAQCBMSVNUKEFQUEVORCBXZWJLaXRfSU5D
TFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9lZmwiCiAgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvIgogICAgICIke1dFQkNPUkVf
RElSfS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3Jt
L21vY2siCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL25ldHdvcmsvc291cCIKICAgICAk
e0NBSVJPX0lOQ0xVREVfRElSU30KICAgICAke0VDT1JFX0lOQ0xVREVfRElSU30KQEAgLTg2LDYg
Kzg3LDEyIEBAIElGIChXVEZfVVNFX1RFWFRVUkVfTUFQUEVSX0dMKQogICApCiBFTkRJRiAoKQog
CitJRiAoRU5BQkxFX0dFT0xPQ0FUSU9OKQorICBMSVNUKEFQUEVORCBXZWJLaXRfSU5DTFVERV9E
SVJFQ1RPUklFUworICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2dlb2xvY2F0aW9uIgorICAp
CitFTkRJRiAoKQorCiBMSVNUKEFQUEVORCBXZWJLaXRfU09VUkNFUwogICAgIGVmbC9XZWJDb3Jl
U3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5jcHAKICAgICBlZmwvV2Vi
Q29yZVN1cHBvcnQvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA3
ZGMzNDQ4Li5hODFmMzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTIt
MTAtMzEgIFNlb25hZSBLaW0gIDxzdW5hZWx1di5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAg
W0VGTF1bRFJUXSBTdXBwb3J0IEdlb2xvY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzQyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBtZXRob2RzIHRvIHVzZSBHZW9sb2NhdGlv
bkNsaWVudE1vY2sgaW4gRHVtcFJlbmRlclRyZWUuCisgICAgICAgIFRoaXMgY2xpZW50IGF0dGFj
aGVzIHRvIHRoZSBwYWdlIHdoZW5ldmVyIGEgdmlldyBpcyBjcmVhdGVkLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcDoKKyAgICAgICAgKER1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6YXR0YWNoQ2xpZW50VG9QYWdlKToKKyAgICAgICAgKER1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6cmVzZXRHZW9sb2NhdGlvbkNsaWVudE1vY2spOgorICAg
ICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNz
aW9uKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0TW9ja0dlb2xvY2F0
aW9uUG9zaXRpb24pOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRNb2Nr
R2VvbG9jYXRpb25Qb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IpOgorICAgICAgICAoRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsOjpudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0cyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZs
Lmg6CisKIDIwMTItMTAtMzEgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBz
YW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVpcmVzIGNv
bnRleHRDbGljayBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKaW5kZXgg
ZWVlNzEyMi4uZDEwODQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCkBAIC02Miw2ICs2
MiwxNCBAQAogI2luY2x1ZGUgPHdvcmtlcnMvV29ya2VyVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KIAorI2lmIEVOQUJMRShHRU9MT0NBVElPTikKKyNpbmNsdWRlIDxHZW9sb2Nh
dGlvbkNsaWVudE1vY2suaD4KKyNpbmNsdWRlIDxHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaD4KKyNp
bmNsdWRlIDxHZW9sb2NhdGlvbkVycm9yLmg+CisjaW5jbHVkZSA8R2VvbG9jYXRpb25Qb3NpdGlv
bi5oPgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorI2VuZGlmCisKICNkZWZpbmUgRFJU
X1NVUFBPUlRfRlJBTUVfR0VUX09SX1JFVFVSTihld2tGcmFtZSwgZnJhbWUsIC4uLikgXAogICAg
IFdlYkNvcmU6OkZyYW1lKiBmcmFtZSA9IEVXS1ByaXZhdGU6OmNvcmVGcmFtZShld2tGcmFtZSk7
ICBcCiAgICAgaWYgKCFmcmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKQEAgLTcxLDcgKzc5LDIwIEBACiAgICAgV2ViQ29yZTo6UGFnZSogcGFnZSA9
IEVXS1ByaXZhdGU6OmNvcmVQYWdlKGV3a1ZpZXcpOyAgXAogICAgIGlmICghcGFnZSkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgcmV0dXJuIF9f
VkFfQVJHU19fOwotICAgIAorCit2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6YXR0YWNo
Q2xpZW50c1RvUGFnZShjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyNpZiBFTkFCTEUo
R0VPTE9DQVRJT04pCisgICAgRFJUX1NVUFBSVF9QQUdFX0dFVF9PUl9SRVRVUk4oZXdrVmlldywg
cGFnZSk7CisKKyAgICBXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2sgPSBuZXcg
V2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrOworICAgIFdlYkNvcmU6OnByb3ZpZGVHZW9s
b2NhdGlvblRvKHBhZ2UsIG1vY2spOworICAgIG1vY2stPnNldENvbnRyb2xsZXIoV2ViQ29yZTo6
R2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGV3a1ZpZXcpOworI2VuZGlmCit9CisKIHVuc2lnbmVkIER1bXBSZW5kZXJUcmVlU3VwcG9y
dEVmbDo6YWN0aXZlQW5pbWF0aW9uc0NvdW50KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSkK
IHsKICAgICBEUlRfU1VQUE9SVF9GUkFNRV9HRVRfT1JfUkVUVVJOKGV3a0ZyYW1lLCBmcmFtZSwg
MCk7CkBAIC03NzksMyArODAwLDc3IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpz
ZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGJvb2wgZm9yCiB7CiAgICAg
V2ViQ29yZTo6U2NoZW1lUmVnaXN0cnk6OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JV
UkxTY2hlbWUoZm9yYmlkZGVuLCBzY2hlbWUpOwogfQorCit2b2lkIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEVmbDo6cmVzZXRHZW9sb2NhdGlvbkNsaWVudE1vY2soY29uc3QgRXZhc19PYmplY3QqIGV3
a1ZpZXcpCit7CisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQorICAgIERSVF9TVVBQUlRfUEFHRV9H
RVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHBhZ2UpOworCisgICAgV2ViQ29yZTo6R2VvbG9jYXRpb25D
bGllbnRNb2NrKiBtb2NrID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRN
b2NrKj4oV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpLT5jbGllbnQo
KSk7CisgICAgbW9jay0+cmVzZXQoKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcp
OworI2VuZGlmCit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRNb2NrR2Vv
bG9jYXRpb25QZXJtaXNzaW9uKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGFsbG93
ZWQpCit7CisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQorICAgIERSVF9TVVBQUlRfUEFHRV9HRVRf
T1JfUkVUVVJOKGV3a1ZpZXcsIHBhZ2UpOworCisgICAgV2ViQ29yZTo6R2VvbG9jYXRpb25DbGll
bnRNb2NrKiBtb2NrID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRNb2Nr
Kj4oV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpLT5jbGllbnQoKSk7
CisgICAgbW9jay0+c2V0UGVybWlzc2lvbihhbGxvd2VkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGV3a1ZpZXcpOworICAgIFVOVVNFRF9QQVJBTShhbGxvd2VkKTsKKyNlbmRpZgorfQorCit2
b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24o
Y29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdp
dHVkZSwgZG91YmxlIGFjY3VyYWN5LCBib29sIGNhblByb3ZpZGVBbHRpdHVkZSwgZG91YmxlIGFs
dGl0dWRlLCBib29sIGNhblByb3ZpZGVBbHRpdHVkZUFjY3VyYWN5LCBkb3VibGUgYWx0aXR1ZGVB
Y2N1cmFjeSwgYm9vbCBjYW5Qcm92aWRlSGVhZGluZywgZG91YmxlIGhlYWRpbmcsIGJvb2wgY2Fu
UHJvdmlkZVNwZWVkLCBkb3VibGUgc3BlZWQpCit7CisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQor
ICAgIERSVF9TVVBQUlRfUEFHRV9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHBhZ2UpOworCisgICAg
V2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrID0gc3RhdGljX2Nhc3Q8V2ViQ29y
ZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrKj4oV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVy
Ojpmcm9tKHBhZ2UpLT5jbGllbnQoKSk7CisgICAgbW9jay0+c2V0UG9zaXRpb24oV2ViQ29yZTo6
R2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRlKGN1cnJlbnRUaW1lKCksIGxhdGl0dWRlLCBsb25n
aXR1ZGUsIGFjY3VyYWN5LCBjYW5Qcm92aWRlQWx0aXR1ZGUsIGFsdGl0dWRlLCBjYW5Qcm92aWRl
QWx0aXR1ZGVBY2N1cmFjeSwgYWx0aXR1ZGVBY2N1cmFjeSwgY2FuUHJvdmlkZUhlYWRpbmcsIGhl
YWRpbmcsIGNhblByb3ZpZGVTcGVlZCwgc3BlZWQpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KGV3a1ZpZXcpOworICAgIFVOVVNFRF9QQVJBTShsYXRpdHVkZSk7CisgICAgVU5VU0VEX1BBUkFN
KGxvbmdpdHVkZSk7CisgICAgVU5VU0VEX1BBUkFNKGFjY3VyYWN5KTsKKyAgICBVTlVTRURfUEFS
QU0oY2FuUHJvdmlkZUFsdGl0dWRlKTsKKyAgICBVTlVTRURfUEFSQU0oYWx0aXR1ZGUpOworICAg
IFVOVVNFRF9QQVJBTShjYW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSk7CisgICAgVU5VU0VEX1BB
UkFNKGFsdGl0dWRlQWNjdXJhY3kpOworICAgIFVOVVNFRF9QQVJBTShjYW5Qcm92aWRlSGVhZGlu
Zyk7CisgICAgVU5VU0VEX1BBUkFNKGhlYWRpbmcpOworICAgIFVOVVNFRF9QQVJBTShjYW5Qcm92
aWRlU3BlZWQpOworICAgIFVOVVNFRF9QQVJBTShzcGVlZCk7CisjZW5kaWYKK30KKwordm9pZCBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFp
bGFibGVFcnJvcihjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgY2hhciogZXJyb3JN
ZXNzYWdlKQoreworI2lmIEVOQUJMRShHRU9MT0NBVElPTikKKyAgICBEUlRfU1VQUFJUX1BBR0Vf
R0VUX09SX1JFVFVSTihld2tWaWV3LCBwYWdlKTsKKworICAgIFdlYkNvcmU6Okdlb2xvY2F0aW9u
Q2xpZW50TW9jayogbW9jayA9IHN0YXRpY19jYXN0PFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50
TW9jayo+KFdlYkNvcmU6Okdlb2xvY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKS0+Y2xpZW50
KCkpOworICAgIG1vY2stPnNldFBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihlcnJvck1lc3NhZ2Up
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZXdrVmlldyk7CisgICAgVU5VU0VEX1BBUkFNKGVy
cm9yTWVzc2FnZSk7CisjZW5kaWYKK30KKworaW50IER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6
bnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMoY29uc3QgRXZhc19P
YmplY3QqIGV3a1ZpZXcpCit7CisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQorICAgIERSVF9TVVBQ
UlRfUEFHRV9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHBhZ2UsIC0xKTsKKworICAgIFdlYkNvcmU6
Okdlb2xvY2F0aW9uQ2xpZW50TW9jayogbW9jayA9IHN0YXRpY19jYXN0PFdlYkNvcmU6Okdlb2xv
Y2F0aW9uQ2xpZW50TW9jayo+KFdlYkNvcmU6Okdlb2xvY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShw
YWdlKS0+Y2xpZW50KCkpOworICAgIHJldHVybiBtb2NrLT5udW1iZXJPZlBlbmRpbmdQZXJtaXNz
aW9uUmVxdWVzdHMoKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcpOworICAgIHJl
dHVybiAwOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCmluZGV4IDM1YzA1MDAuLmVl
YWUyOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCkBAIC00OSw2ICs0OSw4IEBAIHB1YmxpYzoK
IAogICAgIH5EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwoKSB7IH0KIAorICAgIHN0YXRpYyB2b2lk
IGF0dGFjaENsaWVudHNUb1BhZ2UoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpOworCiAgICAg
c3RhdGljIHVuc2lnbmVkIGFjdGl2ZUFuaW1hdGlvbnNDb3VudChjb25zdCBFdmFzX09iamVjdCog
ZXdrRnJhbWUpOwogICAgIHN0YXRpYyBib29sIGNhbGxTaG91bGRDbG9zZU9uV2ViVmlldyhFdmFz
X09iamVjdCogZXdrRnJhbWUpOwogICAgIHN0YXRpYyB2b2lkIGNsZWFyRnJhbWVOYW1lKEV2YXNf
T2JqZWN0KiBld2tGcmFtZSk7CkBAIC0xMjcsNiArMTI5LDEzIEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgdm9pZCBjb25maXJtQ29tcG9zaXRpb24oRXZhc19PYmplY3QqLCBjb25zdCBjaGFyKik7CiAg
ICAgc3RhdGljIFdlYkNvcmU6OkludFJlY3QgZmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UoRXZh
c19PYmplY3QqLCBpbnQsIGludCk7CiAgICAgc3RhdGljIGJvb2wgc2VsZWN0ZWRSYW5nZShFdmFz
X09iamVjdCosIGludCosIGludCopOworCisgICAgLy8gR2VvbG9jYXRpb24KKyAgICBzdGF0aWMg
dm9pZCByZXNldEdlb2xvY2F0aW9uQ2xpZW50TW9jayhjb25zdCBFdmFzX09iamVjdCopOworICAg
IHN0YXRpYyB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Npb24oY29uc3QgRXZhc19PYmpl
Y3QqLCBib29sIGFsbG93ZWQpOworICAgIHN0YXRpYyB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBv
c2l0aW9uKGNvbnN0IEV2YXNfT2JqZWN0KiwgZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0
dWRlLCBkb3VibGUgYWNjdXJhY3ksIGJvb2wgY2FuUHJvdmlkZUFsdGl0dWRlLCBkb3VibGUgYWx0
aXR1ZGUsIGJvb2wgY2FuUHJvdmlkZUFsdGl0dWRlQWNjdXJhY3ksIGRvdWJsZSBhbHRpdHVkZUFj
Y3VyYWN5LCBib29sIGNhblByb3ZpZGVIZWFkaW5nLCBkb3VibGUgaGVhZGluZywgYm9vbCBjYW5Q
cm92aWRlU3BlZWQsIGRvdWJsZSBzcGVlZCk7CisgICAgc3RhdGljIHZvaWQgc2V0TW9ja0dlb2xv
Y2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKGNvbnN0IEV2YXNfT2JqZWN0KiwgY29uc3Qg
Y2hhciogZXJyb3JNZXNzYWdlKTsKKyAgICBzdGF0aWMgaW50IG51bWJlck9mUGVuZGluZ0dlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKGNvbnN0IEV2YXNfT2JqZWN0Kik7CiB9OwogCiAjZW5k
aWYgLy8gRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsX2gKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2ZmQ1YTE0Li5jNTgwMzM4IDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTItMTAtMzEgIFNlb25hZSBLaW0gIDxzdW5hZWx1di5raW1Ac2Ftc3VuZy5jb20+CisKKyAg
ICAgICAgW0VGTF1bRFJUXSBTdXBwb3J0IEdlb2xvY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzQyNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBtZXRob2RzIHRvIHVzZSBHZW9s
b2NhdGlvbkNsaWVudE1vY2sgaW4gRHVtcFJlbmRlclRyZWUuCisgICAgICAgIFRoaXMgY2xpZW50
IGF0dGFjaGVzIHRvIHRoZSBwYWdlIHdoZW5ldmVyIGEgdmlldyBpcyBjcmVhdGVkLgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcDoKKyAgICAg
ICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpjcmVhdGVWaWV3KToKKyAgICAgICAgKER1bXBSZW5k
ZXJUcmVlQ2hyb21lOjpyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHA6CisgICAgICAgIChUZXN0UnVu
bmVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbik6CisgICAgICAgIChUZXN0UnVubmVyOjpz
ZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IpOgorICAgICAgICAoVGVz
dFJ1bm5lcjo6c2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKToKKyAgICAgICAgKFRlc3RSdW5uZXI6
Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKToKKwogMjAxMi0x
MC0zMSAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFNjcmlwdCBy
dW4gZnJvbSBhbiBpc29sYXRlZCB3b3JsZCBzaG91bGQgYnlwYXNzIGEgcGFnZSdzIENTUC4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5j
cHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCmlu
ZGV4IGQxYmE1ZmYuLmQ1MGJhZjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Vm
bC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZs
L0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcApAQCAtMTM2LDYgKzEzNiw4IEBAIEV2YXNfT2JqZWN0
KiBEdW1wUmVuZGVyVHJlZUNocm9tZTo6Y3JlYXRlVmlldygpIGNvbnN0CiAgICAgZXZhc19vYmpl
Y3Rfc21hcnRfY2FsbGJhY2tfYWRkKG1haW5GcmFtZSwgInRpdGxlLGNoYW5nZWQiLCBvbkZyYW1l
VGl0bGVDaGFuZ2VkLCAwKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQobWFp
bkZyYW1lLCAieHNzLGRldGVjdGVkIiwgb25EaWREZXRlY3RYU1MsIDApOwogCisgICAgRHVtcFJl
bmRlclRyZWVTdXBwb3J0RWZsOjphdHRhY2hDbGllbnRzVG9QYWdlKHZpZXcpOworCiAgICAgcmV0
dXJuIHZpZXc7CiB9CiAKQEAgLTMwOCw2ICszMTAsNyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlQ2hy
b21lOjpyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKCkKICAgICBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRFZmw6OmNsZWFyT3BlbmVyKG1haW5GcmFtZSgpKTsKICAgICBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRFZmw6OmNsZWFyVXNlclNjcmlwdHMobWFpblZpZXcoKSk7CiAgICAgRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsOjpjbGVhclVzZXJTdHlsZVNoZWV0cyhtYWluVmlldygpKTsKKyAgICBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnJlc2V0R2VvbG9jYXRpb25DbGllbnRNb2NrKG1haW5W
aWV3KCkpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0SW50ZXJhY3RpdmVGb3Jt
VmFsaWRhdGlvbkVuYWJsZWQobWFpblZpZXcoKSwgdHJ1ZSk7CiAgICAgRHVtcFJlbmRlclRyZWVT
dXBwb3J0RWZsOjpzZXRWYWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbihtYWluVmll
dygpLCAtMSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRBdXRob3JBbmRVc2Vy
U3R5bGVzRW5hYmxlZChtYWluVmlldygpLCB0cnVlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Vm
bC9UZXN0UnVubmVyRWZsLmNwcAppbmRleCAxOTcwM2FlLi5jZDc4YjEwIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCkBAIC0zNjUsMzAgKzM2NSw0MSBAQCB2
b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbihib29sLCBkb3VibGUsIGJv
b2wsIGRvdWJsZSwgYm9vbCwgZG91YgogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQg
VGVzdFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlLCBkb3VibGUsIGRv
dWJsZSwgYm9vbCwgZG91YmxlLCBib29sLCBkb3VibGUsIGJvb2wsIGRvdWJsZSwgYm9vbCwgZG91
YmxlKQordm9pZCBUZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUg
bGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgYm9vbCBjYW5Qcm92
aWRlQWx0aXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgYm9vbCBjYW5Qcm92aWRlQWx0aXR1ZGVBY2N1
cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgY2FuUHJvdmlkZUhlYWRpbmcsIGRv
dWJsZSBoZWFkaW5nLCBib29sIGNhblByb3ZpZGVTcGVlZCwgZG91YmxlIHNwZWVkKQogewotICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIEdlb2xvY2F0aW9uIGxheW91dCB0ZXN0cy4KLSAgICAv
LyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MjY0LgotICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgRXZhc19PYmplY3QqIHZpZXcgPSBicm93c2VyLT5tYWlu
VmlldygpOworICAgIGlmIChicm93c2VyLT5leHRyYVZpZXdzKCkuc2l6ZSgpID4gMCkKKyAgICAg
ICAgdmlldyA9IGJyb3dzZXItPmV4dHJhVmlld3MoKS5sYXN0KCk7CisKKyAgICBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRFZmw6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKHZpZXcsIGxhdGl0dWRl
LCBsb25naXR1ZGUsIGFjY3VyYWN5LCBjYW5Qcm92aWRlQWx0aXR1ZGUsIGFsdGl0dWRlLCBjYW5Q
cm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgYWx0aXR1ZGVBY2N1cmFjeSwgY2FuUHJvdmlkZUhlYWRp
bmcsIGhlYWRpbmcsIGNhblByb3ZpZGVTcGVlZCwgc3BlZWQpOwogfQogCi12b2lkIFRlc3RSdW5u
ZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihKU1N0cmluZ1Jl
ZikKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJs
ZUVycm9yKEpTU3RyaW5nUmVmIG1lc3NhZ2UpCiB7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCBm
b3IgR2VvbG9jYXRpb24gbGF5b3V0IHRlc3RzLgotICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgyNjQuCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICBFdmFzX09iamVjdCogdmlldyA9IGJyb3dzZXItPm1haW5WaWV3KCk7CisgICAgaWYgKGJyb3dz
ZXItPmV4dHJhVmlld3MoKS5zaXplKCkgPiAwKQorICAgICAgICB2aWV3ID0gYnJvd3Nlci0+ZXh0
cmFWaWV3cygpLmxhc3QoKTsKKworICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0TW9j
a0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKHZpZXcsIG1lc3NhZ2UtPnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnNldEdlb2xvY2F0aW9u
UGVybWlzc2lvbihib29sIGFsbG93KQogewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIEdl
b2xvY2F0aW9uIGxheW91dCB0ZXN0cy4KICAgICBzZXRHZW9sb2NhdGlvblBlcm1pc3Npb25Db21t
b24oYWxsb3cpOworICAgIEV2YXNfT2JqZWN0KiB2aWV3ID0gYnJvd3Nlci0+bWFpblZpZXcoKTsK
KyAgICBpZiAoYnJvd3Nlci0+ZXh0cmFWaWV3cygpLnNpemUoKSA+IDApCisgICAgICAgIHZpZXcg
PSBicm93c2VyLT5leHRyYVZpZXdzKCkubGFzdCgpOworCisgICAgRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsOjpzZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9uKHZpZXcsIGFsbG93KTsKIH0KIAog
aW50IFRlc3RSdW5uZXI6Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RzKCkKIHsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IGZvciBHZW9sb2NhdGlvbiBsYXlvdXQg
dGVzdHMuCi0gICAgcmV0dXJuIC0xOworICAgIEV2YXNfT2JqZWN0KiB2aWV3ID0gYnJvd3Nlci0+
bWFpblZpZXcoKTsKKyAgICBpZiAoYnJvd3Nlci0+ZXh0cmFWaWV3cygpLnNpemUoKSA+IDApCisg
ICAgICAgIHZpZXcgPSBicm93c2VyLT5leHRyYVZpZXdzKCkubGFzdCgpOworCisgICAgcmV0dXJu
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6bnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdHModmlldyk7CiB9CiAKIHZvaWQgVGVzdFJ1bm5lcjo6YWRkTW9ja1NwZWVj
aElucHV0UmVzdWx0KEpTU3RyaW5nUmVmLCBkb3VibGUsIEpTU3RyaW5nUmVmKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171785</attachid>
            <date>2012-11-01 00:13:55 -0700</date>
            <delta_ts>2012-11-01 04:47:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>15038</size>
            <attacher name="seonae kim">sunaeluv.kim</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiMGM1Yzg0Li44NjhiZGMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAt
MzEgIFNlb25hZSBLaW0gIDxzdW5hZWx1di5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VG
TF1bRFJUXSBTdXBwb3J0IEdlb2xvY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05NzQyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENoYW5nZSB0aGUgY29tbWVudCBvZiBHZW9sb2NhdGlvbiB0ZXN0
IGNhc2VzLgorCisgICAgICAgICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIw
MTItMTAtMzEgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBTY3Jp
cHQgcnVuIGZyb20gYW4gaXNvbGF0ZWQgd29ybGQgc2hvdWxkIGJ5cGFzcyBhIHBhZ2UncyBDU1Au
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDBjN2FiYjUu
LjI4NDYxYTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBA
IC0xMzMxLDcgKzEzMzEsNyBAQCB3ZWJraXQub3JnL2IvNjg1OTEgaHR0cC90ZXN0cy9zZWN1cml0
eS9maWxlc3lzdGVtLWlmcmFtZS1mcm9tLXJlbW90ZS5odG1sCiB3ZWJraXQub3JnL2IvNjg1OTEg
aHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvZmlsZXN5c3RlbS11cmwtaW4taWZyYW1l
Lmh0bWwKIHdlYmtpdC5vcmcvYi82ODU5MSBodHRwL3Rlc3RzL2luc3BlY3Rvci9maWxlc3lzdGVt
CiAKLSMgVGhlIEVGTCBwb3J0IGhhcyBubyBzdXBwb3J0IGZvciB0aGUgR2VvbG9jYXRpb24KKyMg
RUZMJ3MgVGVzdFJ1bm5lciBzaG91bGQgc3VwcG9ydCBmb3IgdGhlIEdlb2xvY2F0aW9uIEFQSQog
d2Via2l0Lm9yZy9iLzgyMTQwIGZhc3QvZG9tL0dlb2xvY2F0aW9uIFsgU2tpcCBdCiB3ZWJraXQu
b3JnL2IvODIxNDAgZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWdlb2xvY2F0aW9u
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi84MjE0MCBpbnNwZWN0b3IvZ2VvbG9jYXRp
b24tZXJyb3IuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiYWQ2NTI1Li4zZWY4YmE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTEwLTMxICBTZW9uYWUgS2ltICA8c3VuYWVs
dXYua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdW0RSVF0gU3VwcG9ydCBHZW9sb2Nh
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc0
MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
YSBtb2NrIGRpcmVjdG9yeSB0byB1c2UgR2VvbG9jYXRpb25DbGllbnRNb2NrIGluIER1bXBSZW5k
ZXJUcmVlLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisKIDIwMTItMTAtMzEgIE1p
Y2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KIAogICAgICAg
ICBbRUZMXVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVpcmVzIGNvbnRleHRDbGljayBpbXBsZW1lbnRh
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggMzUzNzNkZi4uOTIwYjE0NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtRWZsLmNtYWtlCkBAIC03LDYgKzcsNyBAQCBMSVNUKEFQUEVORCBXZWJLaXRfSU5D
TFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9lZmwiCiAgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvIgogICAgICIke1dFQkNPUkVf
RElSfS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3Jt
L21vY2siCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL25ldHdvcmsvc291cCIKICAgICAk
e0NBSVJPX0lOQ0xVREVfRElSU30KICAgICAke0VDT1JFX0lOQ0xVREVfRElSU30KQEAgLTg2LDYg
Kzg3LDEyIEBAIElGIChXVEZfVVNFX1RFWFRVUkVfTUFQUEVSX0dMKQogICApCiBFTkRJRiAoKQog
CitJRiAoRU5BQkxFX0dFT0xPQ0FUSU9OKQorICBMSVNUKEFQUEVORCBXZWJLaXRfSU5DTFVERV9E
SVJFQ1RPUklFUworICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2dlb2xvY2F0aW9uIgorICAp
CitFTkRJRiAoKQorCiBMSVNUKEFQUEVORCBXZWJLaXRfU09VUkNFUwogICAgIGVmbC9XZWJDb3Jl
U3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5jcHAKICAgICBlZmwvV2Vi
Q29yZVN1cHBvcnQvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA3
ZGMzNDQ4Li5hODFmMzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTIt
MTAtMzEgIFNlb25hZSBLaW0gIDxzdW5hZWx1di5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAg
W0VGTF1bRFJUXSBTdXBwb3J0IEdlb2xvY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzQyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBtZXRob2RzIHRvIHVzZSBHZW9sb2NhdGlv
bkNsaWVudE1vY2sgaW4gRHVtcFJlbmRlclRyZWUuCisgICAgICAgIFRoaXMgY2xpZW50IGF0dGFj
aGVzIHRvIHRoZSBwYWdlIHdoZW5ldmVyIGEgdmlldyBpcyBjcmVhdGVkLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcDoKKyAgICAgICAgKER1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6YXR0YWNoQ2xpZW50VG9QYWdlKToKKyAgICAgICAgKER1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6cmVzZXRHZW9sb2NhdGlvbkNsaWVudE1vY2spOgorICAg
ICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNz
aW9uKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0TW9ja0dlb2xvY2F0
aW9uUG9zaXRpb24pOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRNb2Nr
R2VvbG9jYXRpb25Qb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IpOgorICAgICAgICAoRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsOjpudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0cyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZs
Lmg6CisKIDIwMTItMTAtMzEgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBz
YW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVpcmVzIGNv
bnRleHRDbGljayBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKaW5kZXgg
ZWVlNzEyMi4uZDEwODQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCkBAIC02Miw2ICs2
MiwxNCBAQAogI2luY2x1ZGUgPHdvcmtlcnMvV29ya2VyVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KIAorI2lmIEVOQUJMRShHRU9MT0NBVElPTikKKyNpbmNsdWRlIDxHZW9sb2Nh
dGlvbkNsaWVudE1vY2suaD4KKyNpbmNsdWRlIDxHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaD4KKyNp
bmNsdWRlIDxHZW9sb2NhdGlvbkVycm9yLmg+CisjaW5jbHVkZSA8R2VvbG9jYXRpb25Qb3NpdGlv
bi5oPgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorI2VuZGlmCisKICNkZWZpbmUgRFJU
X1NVUFBPUlRfRlJBTUVfR0VUX09SX1JFVFVSTihld2tGcmFtZSwgZnJhbWUsIC4uLikgXAogICAg
IFdlYkNvcmU6OkZyYW1lKiBmcmFtZSA9IEVXS1ByaXZhdGU6OmNvcmVGcmFtZShld2tGcmFtZSk7
ICBcCiAgICAgaWYgKCFmcmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKQEAgLTcxLDcgKzc5LDIwIEBACiAgICAgV2ViQ29yZTo6UGFnZSogcGFnZSA9
IEVXS1ByaXZhdGU6OmNvcmVQYWdlKGV3a1ZpZXcpOyAgXAogICAgIGlmICghcGFnZSkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgcmV0dXJuIF9f
VkFfQVJHU19fOwotICAgIAorCit2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6YXR0YWNo
Q2xpZW50c1RvUGFnZShjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyNpZiBFTkFCTEUo
R0VPTE9DQVRJT04pCisgICAgRFJUX1NVUFBSVF9QQUdFX0dFVF9PUl9SRVRVUk4oZXdrVmlldywg
cGFnZSk7CisKKyAgICBXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2sgPSBuZXcg
V2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrOworICAgIFdlYkNvcmU6OnByb3ZpZGVHZW9s
b2NhdGlvblRvKHBhZ2UsIG1vY2spOworICAgIG1vY2stPnNldENvbnRyb2xsZXIoV2ViQ29yZTo6
R2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGV3a1ZpZXcpOworI2VuZGlmCit9CisKIHVuc2lnbmVkIER1bXBSZW5kZXJUcmVlU3VwcG9y
dEVmbDo6YWN0aXZlQW5pbWF0aW9uc0NvdW50KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSkK
IHsKICAgICBEUlRfU1VQUE9SVF9GUkFNRV9HRVRfT1JfUkVUVVJOKGV3a0ZyYW1lLCBmcmFtZSwg
MCk7CkBAIC03NzksMyArODAwLDc3IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpz
ZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGJvb2wgZm9yCiB7CiAgICAg
V2ViQ29yZTo6U2NoZW1lUmVnaXN0cnk6OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JV
UkxTY2hlbWUoZm9yYmlkZGVuLCBzY2hlbWUpOwogfQorCit2b2lkIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEVmbDo6cmVzZXRHZW9sb2NhdGlvbkNsaWVudE1vY2soY29uc3QgRXZhc19PYmplY3QqIGV3
a1ZpZXcpCit7CisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQorICAgIERSVF9TVVBQUlRfUEFHRV9H
RVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHBhZ2UpOworCisgICAgV2ViQ29yZTo6R2VvbG9jYXRpb25D
bGllbnRNb2NrKiBtb2NrID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRN
b2NrKj4oV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpLT5jbGllbnQo
KSk7CisgICAgbW9jay0+cmVzZXQoKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcp
OworI2VuZGlmCit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRNb2NrR2Vv
bG9jYXRpb25QZXJtaXNzaW9uKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGFsbG93
ZWQpCit7CisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQorICAgIERSVF9TVVBQUlRfUEFHRV9HRVRf
T1JfUkVUVVJOKGV3a1ZpZXcsIHBhZ2UpOworCisgICAgV2ViQ29yZTo6R2VvbG9jYXRpb25DbGll
bnRNb2NrKiBtb2NrID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRNb2Nr
Kj4oV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpLT5jbGllbnQoKSk7
CisgICAgbW9jay0+c2V0UGVybWlzc2lvbihhbGxvd2VkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGV3a1ZpZXcpOworICAgIFVOVVNFRF9QQVJBTShhbGxvd2VkKTsKKyNlbmRpZgorfQorCit2
b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24o
Y29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdp
dHVkZSwgZG91YmxlIGFjY3VyYWN5LCBib29sIGNhblByb3ZpZGVBbHRpdHVkZSwgZG91YmxlIGFs
dGl0dWRlLCBib29sIGNhblByb3ZpZGVBbHRpdHVkZUFjY3VyYWN5LCBkb3VibGUgYWx0aXR1ZGVB
Y2N1cmFjeSwgYm9vbCBjYW5Qcm92aWRlSGVhZGluZywgZG91YmxlIGhlYWRpbmcsIGJvb2wgY2Fu
UHJvdmlkZVNwZWVkLCBkb3VibGUgc3BlZWQpCit7CisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQor
ICAgIERSVF9TVVBQUlRfUEFHRV9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHBhZ2UpOworCisgICAg
V2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrID0gc3RhdGljX2Nhc3Q8V2ViQ29y
ZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrKj4oV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVy
Ojpmcm9tKHBhZ2UpLT5jbGllbnQoKSk7CisgICAgbW9jay0+c2V0UG9zaXRpb24oV2ViQ29yZTo6
R2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRlKGN1cnJlbnRUaW1lKCksIGxhdGl0dWRlLCBsb25n
aXR1ZGUsIGFjY3VyYWN5LCBjYW5Qcm92aWRlQWx0aXR1ZGUsIGFsdGl0dWRlLCBjYW5Qcm92aWRl
QWx0aXR1ZGVBY2N1cmFjeSwgYWx0aXR1ZGVBY2N1cmFjeSwgY2FuUHJvdmlkZUhlYWRpbmcsIGhl
YWRpbmcsIGNhblByb3ZpZGVTcGVlZCwgc3BlZWQpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KGV3a1ZpZXcpOworICAgIFVOVVNFRF9QQVJBTShsYXRpdHVkZSk7CisgICAgVU5VU0VEX1BBUkFN
KGxvbmdpdHVkZSk7CisgICAgVU5VU0VEX1BBUkFNKGFjY3VyYWN5KTsKKyAgICBVTlVTRURfUEFS
QU0oY2FuUHJvdmlkZUFsdGl0dWRlKTsKKyAgICBVTlVTRURfUEFSQU0oYWx0aXR1ZGUpOworICAg
IFVOVVNFRF9QQVJBTShjYW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSk7CisgICAgVU5VU0VEX1BB
UkFNKGFsdGl0dWRlQWNjdXJhY3kpOworICAgIFVOVVNFRF9QQVJBTShjYW5Qcm92aWRlSGVhZGlu
Zyk7CisgICAgVU5VU0VEX1BBUkFNKGhlYWRpbmcpOworICAgIFVOVVNFRF9QQVJBTShjYW5Qcm92
aWRlU3BlZWQpOworICAgIFVOVVNFRF9QQVJBTShzcGVlZCk7CisjZW5kaWYKK30KKwordm9pZCBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFp
bGFibGVFcnJvcihjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgY2hhciogZXJyb3JN
ZXNzYWdlKQoreworI2lmIEVOQUJMRShHRU9MT0NBVElPTikKKyAgICBEUlRfU1VQUFJUX1BBR0Vf
R0VUX09SX1JFVFVSTihld2tWaWV3LCBwYWdlKTsKKworICAgIFdlYkNvcmU6Okdlb2xvY2F0aW9u
Q2xpZW50TW9jayogbW9jayA9IHN0YXRpY19jYXN0PFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50
TW9jayo+KFdlYkNvcmU6Okdlb2xvY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKS0+Y2xpZW50
KCkpOworICAgIG1vY2stPnNldFBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihlcnJvck1lc3NhZ2Up
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZXdrVmlldyk7CisgICAgVU5VU0VEX1BBUkFNKGVy
cm9yTWVzc2FnZSk7CisjZW5kaWYKK30KKworaW50IER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6
bnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMoY29uc3QgRXZhc19P
YmplY3QqIGV3a1ZpZXcpCit7CisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQorICAgIERSVF9TVVBQ
UlRfUEFHRV9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHBhZ2UsIC0xKTsKKworICAgIFdlYkNvcmU6
Okdlb2xvY2F0aW9uQ2xpZW50TW9jayogbW9jayA9IHN0YXRpY19jYXN0PFdlYkNvcmU6Okdlb2xv
Y2F0aW9uQ2xpZW50TW9jayo+KFdlYkNvcmU6Okdlb2xvY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShw
YWdlKS0+Y2xpZW50KCkpOworICAgIHJldHVybiBtb2NrLT5udW1iZXJPZlBlbmRpbmdQZXJtaXNz
aW9uUmVxdWVzdHMoKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcpOworICAgIHJl
dHVybiAwOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCmluZGV4IDM1YzA1MDAuLmVl
YWUyOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCkBAIC00OSw2ICs0OSw4IEBAIHB1YmxpYzoK
IAogICAgIH5EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwoKSB7IH0KIAorICAgIHN0YXRpYyB2b2lk
IGF0dGFjaENsaWVudHNUb1BhZ2UoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpOworCiAgICAg
c3RhdGljIHVuc2lnbmVkIGFjdGl2ZUFuaW1hdGlvbnNDb3VudChjb25zdCBFdmFzX09iamVjdCog
ZXdrRnJhbWUpOwogICAgIHN0YXRpYyBib29sIGNhbGxTaG91bGRDbG9zZU9uV2ViVmlldyhFdmFz
X09iamVjdCogZXdrRnJhbWUpOwogICAgIHN0YXRpYyB2b2lkIGNsZWFyRnJhbWVOYW1lKEV2YXNf
T2JqZWN0KiBld2tGcmFtZSk7CkBAIC0xMjcsNiArMTI5LDEzIEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgdm9pZCBjb25maXJtQ29tcG9zaXRpb24oRXZhc19PYmplY3QqLCBjb25zdCBjaGFyKik7CiAg
ICAgc3RhdGljIFdlYkNvcmU6OkludFJlY3QgZmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UoRXZh
c19PYmplY3QqLCBpbnQsIGludCk7CiAgICAgc3RhdGljIGJvb2wgc2VsZWN0ZWRSYW5nZShFdmFz
X09iamVjdCosIGludCosIGludCopOworCisgICAgLy8gR2VvbG9jYXRpb24KKyAgICBzdGF0aWMg
dm9pZCByZXNldEdlb2xvY2F0aW9uQ2xpZW50TW9jayhjb25zdCBFdmFzX09iamVjdCopOworICAg
IHN0YXRpYyB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Npb24oY29uc3QgRXZhc19PYmpl
Y3QqLCBib29sIGFsbG93ZWQpOworICAgIHN0YXRpYyB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBv
c2l0aW9uKGNvbnN0IEV2YXNfT2JqZWN0KiwgZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0
dWRlLCBkb3VibGUgYWNjdXJhY3ksIGJvb2wgY2FuUHJvdmlkZUFsdGl0dWRlLCBkb3VibGUgYWx0
aXR1ZGUsIGJvb2wgY2FuUHJvdmlkZUFsdGl0dWRlQWNjdXJhY3ksIGRvdWJsZSBhbHRpdHVkZUFj
Y3VyYWN5LCBib29sIGNhblByb3ZpZGVIZWFkaW5nLCBkb3VibGUgaGVhZGluZywgYm9vbCBjYW5Q
cm92aWRlU3BlZWQsIGRvdWJsZSBzcGVlZCk7CisgICAgc3RhdGljIHZvaWQgc2V0TW9ja0dlb2xv
Y2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKGNvbnN0IEV2YXNfT2JqZWN0KiwgY29uc3Qg
Y2hhciogZXJyb3JNZXNzYWdlKTsKKyAgICBzdGF0aWMgaW50IG51bWJlck9mUGVuZGluZ0dlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKGNvbnN0IEV2YXNfT2JqZWN0Kik7CiB9OwogCiAjZW5k
aWYgLy8gRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsX2gKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2ZmQ1YTE0Li5jNTgwMzM4IDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTItMTAtMzEgIFNlb25hZSBLaW0gIDxzdW5hZWx1di5raW1Ac2Ftc3VuZy5jb20+CisKKyAg
ICAgICAgW0VGTF1bRFJUXSBTdXBwb3J0IEdlb2xvY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzQyNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBtZXRob2RzIHRvIHVzZSBHZW9s
b2NhdGlvbkNsaWVudE1vY2sgaW4gRHVtcFJlbmRlclRyZWUuCisgICAgICAgIFRoaXMgY2xpZW50
IGF0dGFjaGVzIHRvIHRoZSBwYWdlIHdoZW5ldmVyIGEgdmlldyBpcyBjcmVhdGVkLgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcDoKKyAgICAg
ICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpjcmVhdGVWaWV3KToKKyAgICAgICAgKER1bXBSZW5k
ZXJUcmVlQ2hyb21lOjpyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHA6CisgICAgICAgIChUZXN0UnVu
bmVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbik6CisgICAgICAgIChUZXN0UnVubmVyOjpz
ZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IpOgorICAgICAgICAoVGVz
dFJ1bm5lcjo6c2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKToKKyAgICAgICAgKFRlc3RSdW5uZXI6
Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKToKKwogMjAxMi0x
MC0zMSAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFNjcmlwdCBy
dW4gZnJvbSBhbiBpc29sYXRlZCB3b3JsZCBzaG91bGQgYnlwYXNzIGEgcGFnZSdzIENTUC4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5j
cHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCmlu
ZGV4IGQxYmE1ZmYuLmQ1MGJhZjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Vm
bC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZs
L0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcApAQCAtMTM2LDYgKzEzNiw4IEBAIEV2YXNfT2JqZWN0
KiBEdW1wUmVuZGVyVHJlZUNocm9tZTo6Y3JlYXRlVmlldygpIGNvbnN0CiAgICAgZXZhc19vYmpl
Y3Rfc21hcnRfY2FsbGJhY2tfYWRkKG1haW5GcmFtZSwgInRpdGxlLGNoYW5nZWQiLCBvbkZyYW1l
VGl0bGVDaGFuZ2VkLCAwKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQobWFp
bkZyYW1lLCAieHNzLGRldGVjdGVkIiwgb25EaWREZXRlY3RYU1MsIDApOwogCisgICAgRHVtcFJl
bmRlclRyZWVTdXBwb3J0RWZsOjphdHRhY2hDbGllbnRzVG9QYWdlKHZpZXcpOworCiAgICAgcmV0
dXJuIHZpZXc7CiB9CiAKQEAgLTMwOCw2ICszMTAsNyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlQ2hy
b21lOjpyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKCkKICAgICBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRFZmw6OmNsZWFyT3BlbmVyKG1haW5GcmFtZSgpKTsKICAgICBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRFZmw6OmNsZWFyVXNlclNjcmlwdHMobWFpblZpZXcoKSk7CiAgICAgRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsOjpjbGVhclVzZXJTdHlsZVNoZWV0cyhtYWluVmlldygpKTsKKyAgICBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnJlc2V0R2VvbG9jYXRpb25DbGllbnRNb2NrKG1haW5W
aWV3KCkpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0SW50ZXJhY3RpdmVGb3Jt
VmFsaWRhdGlvbkVuYWJsZWQobWFpblZpZXcoKSwgdHJ1ZSk7CiAgICAgRHVtcFJlbmRlclRyZWVT
dXBwb3J0RWZsOjpzZXRWYWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbihtYWluVmll
dygpLCAtMSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRBdXRob3JBbmRVc2Vy
U3R5bGVzRW5hYmxlZChtYWluVmlldygpLCB0cnVlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Vm
bC9UZXN0UnVubmVyRWZsLmNwcAppbmRleCAxOTcwM2FlLi5jZDc4YjEwIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCkBAIC0zNjUsMzAgKzM2NSw0MSBAQCB2
b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbihib29sLCBkb3VibGUsIGJv
b2wsIGRvdWJsZSwgYm9vbCwgZG91YgogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQg
VGVzdFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlLCBkb3VibGUsIGRv
dWJsZSwgYm9vbCwgZG91YmxlLCBib29sLCBkb3VibGUsIGJvb2wsIGRvdWJsZSwgYm9vbCwgZG91
YmxlKQordm9pZCBUZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUg
bGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgYm9vbCBjYW5Qcm92
aWRlQWx0aXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgYm9vbCBjYW5Qcm92aWRlQWx0aXR1ZGVBY2N1
cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgY2FuUHJvdmlkZUhlYWRpbmcsIGRv
dWJsZSBoZWFkaW5nLCBib29sIGNhblByb3ZpZGVTcGVlZCwgZG91YmxlIHNwZWVkKQogewotICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIEdlb2xvY2F0aW9uIGxheW91dCB0ZXN0cy4KLSAgICAv
LyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MjY0LgotICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgRXZhc19PYmplY3QqIHZpZXcgPSBicm93c2VyLT5tYWlu
VmlldygpOworICAgIGlmIChicm93c2VyLT5leHRyYVZpZXdzKCkuc2l6ZSgpID4gMCkKKyAgICAg
ICAgdmlldyA9IGJyb3dzZXItPmV4dHJhVmlld3MoKS5sYXN0KCk7CisKKyAgICBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRFZmw6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKHZpZXcsIGxhdGl0dWRl
LCBsb25naXR1ZGUsIGFjY3VyYWN5LCBjYW5Qcm92aWRlQWx0aXR1ZGUsIGFsdGl0dWRlLCBjYW5Q
cm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgYWx0aXR1ZGVBY2N1cmFjeSwgY2FuUHJvdmlkZUhlYWRp
bmcsIGhlYWRpbmcsIGNhblByb3ZpZGVTcGVlZCwgc3BlZWQpOwogfQogCi12b2lkIFRlc3RSdW5u
ZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihKU1N0cmluZ1Jl
ZikKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJs
ZUVycm9yKEpTU3RyaW5nUmVmIG1lc3NhZ2UpCiB7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCBm
b3IgR2VvbG9jYXRpb24gbGF5b3V0IHRlc3RzLgotICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgyNjQuCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICBFdmFzX09iamVjdCogdmlldyA9IGJyb3dzZXItPm1haW5WaWV3KCk7CisgICAgaWYgKGJyb3dz
ZXItPmV4dHJhVmlld3MoKS5zaXplKCkgPiAwKQorICAgICAgICB2aWV3ID0gYnJvd3Nlci0+ZXh0
cmFWaWV3cygpLmxhc3QoKTsKKworICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0TW9j
a0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKHZpZXcsIG1lc3NhZ2UtPnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnNldEdlb2xvY2F0aW9u
UGVybWlzc2lvbihib29sIGFsbG93KQogewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIEdl
b2xvY2F0aW9uIGxheW91dCB0ZXN0cy4KICAgICBzZXRHZW9sb2NhdGlvblBlcm1pc3Npb25Db21t
b24oYWxsb3cpOworICAgIEV2YXNfT2JqZWN0KiB2aWV3ID0gYnJvd3Nlci0+bWFpblZpZXcoKTsK
KyAgICBpZiAoYnJvd3Nlci0+ZXh0cmFWaWV3cygpLnNpemUoKSA+IDApCisgICAgICAgIHZpZXcg
PSBicm93c2VyLT5leHRyYVZpZXdzKCkubGFzdCgpOworCisgICAgRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsOjpzZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9uKHZpZXcsIGFsbG93KTsKIH0KIAog
aW50IFRlc3RSdW5uZXI6Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RzKCkKIHsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IGZvciBHZW9sb2NhdGlvbiBsYXlvdXQg
dGVzdHMuCi0gICAgcmV0dXJuIC0xOworICAgIEV2YXNfT2JqZWN0KiB2aWV3ID0gYnJvd3Nlci0+
bWFpblZpZXcoKTsKKyAgICBpZiAoYnJvd3Nlci0+ZXh0cmFWaWV3cygpLnNpemUoKSA+IDApCisg
ICAgICAgIHZpZXcgPSBicm93c2VyLT5leHRyYVZpZXdzKCkubGFzdCgpOworCisgICAgcmV0dXJu
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6bnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdHModmlldyk7CiB9CiAKIHZvaWQgVGVzdFJ1bm5lcjo6YWRkTW9ja1NwZWVj
aElucHV0UmVzdWx0KEpTU3RyaW5nUmVmLCBkb3VibGUsIEpTU3RyaW5nUmVmKQo=
</data>
<flag name="review"
          id="185833"
          type_id="1"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171814</attachid>
            <date>2012-11-01 04:47:34 -0700</date>
            <delta_ts>2012-11-01 21:25:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>16337</size>
            <attacher name="seonae kim">sunaeluv.kim</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiMGM1Yzg0Li44NjhiZGMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAt
MzEgIFNlb25hZSBLaW0gIDxzdW5hZWx1di5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VG
TF1bRFJUXSBTdXBwb3J0IEdlb2xvY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05NzQyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENoYW5nZSB0aGUgY29tbWVudCBvZiBHZW9sb2NhdGlvbiB0ZXN0
IGNhc2VzLgorCisgICAgICAgICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIw
MTItMTAtMzEgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBTY3Jp
cHQgcnVuIGZyb20gYW4gaXNvbGF0ZWQgd29ybGQgc2hvdWxkIGJ5cGFzcyBhIHBhZ2UncyBDU1Au
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDBjN2FiYjUu
LjI4NDYxYTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBA
IC0xMzMxLDcgKzEzMzEsNyBAQCB3ZWJraXQub3JnL2IvNjg1OTEgaHR0cC90ZXN0cy9zZWN1cml0
eS9maWxlc3lzdGVtLWlmcmFtZS1mcm9tLXJlbW90ZS5odG1sCiB3ZWJraXQub3JnL2IvNjg1OTEg
aHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvZmlsZXN5c3RlbS11cmwtaW4taWZyYW1l
Lmh0bWwKIHdlYmtpdC5vcmcvYi82ODU5MSBodHRwL3Rlc3RzL2luc3BlY3Rvci9maWxlc3lzdGVt
CiAKLSMgVGhlIEVGTCBwb3J0IGhhcyBubyBzdXBwb3J0IGZvciB0aGUgR2VvbG9jYXRpb24KKyMg
RUZMJ3MgVGVzdFJ1bm5lciBzaG91bGQgc3VwcG9ydCBmb3IgdGhlIEdlb2xvY2F0aW9uIEFQSQog
d2Via2l0Lm9yZy9iLzgyMTQwIGZhc3QvZG9tL0dlb2xvY2F0aW9uIFsgU2tpcCBdCiB3ZWJraXQu
b3JnL2IvODIxNDAgZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWdlb2xvY2F0aW9u
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi84MjE0MCBpbnNwZWN0b3IvZ2VvbG9jYXRp
b24tZXJyb3IuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiYWQ2NTI1Li4zZWY4YmE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTEwLTMxICBTZW9uYWUgS2ltICA8c3VuYWVs
dXYua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdW0RSVF0gU3VwcG9ydCBHZW9sb2Nh
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc0
MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
YSBtb2NrIGRpcmVjdG9yeSB0byB1c2UgR2VvbG9jYXRpb25DbGllbnRNb2NrIGluIER1bXBSZW5k
ZXJUcmVlLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisKIDIwMTItMTAtMzEgIE1p
Y2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KIAogICAgICAg
ICBbRUZMXVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVpcmVzIGNvbnRleHRDbGljayBpbXBsZW1lbnRh
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggMzUzNzNkZi4uOTIwYjE0NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtRWZsLmNtYWtlCkBAIC03LDYgKzcsNyBAQCBMSVNUKEFQUEVORCBXZWJLaXRfSU5D
TFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9lZmwiCiAgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvIgogICAgICIke1dFQkNPUkVf
RElSfS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3Jt
L21vY2siCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL25ldHdvcmsvc291cCIKICAgICAk
e0NBSVJPX0lOQ0xVREVfRElSU30KICAgICAke0VDT1JFX0lOQ0xVREVfRElSU30KQEAgLTg2LDYg
Kzg3LDEyIEBAIElGIChXVEZfVVNFX1RFWFRVUkVfTUFQUEVSX0dMKQogICApCiBFTkRJRiAoKQog
CitJRiAoRU5BQkxFX0dFT0xPQ0FUSU9OKQorICBMSVNUKEFQUEVORCBXZWJLaXRfSU5DTFVERV9E
SVJFQ1RPUklFUworICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2dlb2xvY2F0aW9uIgorICAp
CitFTkRJRiAoKQorCiBMSVNUKEFQUEVORCBXZWJLaXRfU09VUkNFUwogICAgIGVmbC9XZWJDb3Jl
U3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5jcHAKICAgICBlZmwvV2Vi
Q29yZVN1cHBvcnQvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA3
ZGMzNDQ4Li5hODFmMzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTIt
MTAtMzEgIFNlb25hZSBLaW0gIDxzdW5hZWx1di5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAg
W0VGTF1bRFJUXSBTdXBwb3J0IEdlb2xvY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzQyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBtZXRob2RzIHRvIHVzZSBHZW9sb2NhdGlv
bkNsaWVudE1vY2sgaW4gRHVtcFJlbmRlclRyZWUuCisgICAgICAgIFRoaXMgY2xpZW50IGF0dGFj
aGVzIHRvIHRoZSBwYWdlIHdoZW5ldmVyIGEgdmlldyBpcyBjcmVhdGVkLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcDoKKyAgICAgICAgKER1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6YXR0YWNoQ2xpZW50VG9QYWdlKToKKyAgICAgICAgKER1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6cmVzZXRHZW9sb2NhdGlvbkNsaWVudE1vY2spOgorICAg
ICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNz
aW9uKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0TW9ja0dlb2xvY2F0
aW9uUG9zaXRpb24pOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRNb2Nr
R2VvbG9jYXRpb25Qb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IpOgorICAgICAgICAoRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsOjpudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0cyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZs
Lmg6CisKIDIwMTItMTAtMzEgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBz
YW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVpcmVzIGNv
bnRleHRDbGljayBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKaW5kZXgg
ZWVlNzEyMi4uYjA0NWFiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCkBAIC02Miw2ICs2
MiwxNCBAQAogI2luY2x1ZGUgPHdvcmtlcnMvV29ya2VyVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KIAorI2lmIEVOQUJMRShHRU9MT0NBVElPTikKKyNpbmNsdWRlIDxHZW9sb2Nh
dGlvbkNsaWVudE1vY2suaD4KKyNpbmNsdWRlIDxHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaD4KKyNp
bmNsdWRlIDxHZW9sb2NhdGlvbkVycm9yLmg+CisjaW5jbHVkZSA8R2VvbG9jYXRpb25Qb3NpdGlv
bi5oPgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorI2VuZGlmCisKICNkZWZpbmUgRFJU
X1NVUFBPUlRfRlJBTUVfR0VUX09SX1JFVFVSTihld2tGcmFtZSwgZnJhbWUsIC4uLikgXAogICAg
IFdlYkNvcmU6OkZyYW1lKiBmcmFtZSA9IEVXS1ByaXZhdGU6OmNvcmVGcmFtZShld2tGcmFtZSk7
ICBcCiAgICAgaWYgKCFmcmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKQEAgLTcxLDcgKzc5LDE5IEBACiAgICAgV2ViQ29yZTo6UGFnZSogcGFnZSA9
IEVXS1ByaXZhdGU6OmNvcmVQYWdlKGV3a1ZpZXcpOyAgXAogICAgIGlmICghcGFnZSkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgcmV0dXJuIF9f
VkFfQVJHU19fOwotICAgIAorCitib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c19kcnRS
dW4gPSBmYWxzZTsKKwordm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldER1bXBSZW5k
ZXJUcmVlTW9kZUVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIHNfZHJ0UnVuID0gZW5hYmxl
ZDsKK30KKworYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmR1bXBSZW5kZXJUcmVlTW9k
ZUVuYWJsZWQoKQoreworICAgIHJldHVybiBzX2RydFJ1bjsKK30KKwogdW5zaWduZWQgRHVtcFJl
bmRlclRyZWVTdXBwb3J0RWZsOjphY3RpdmVBbmltYXRpb25zQ291bnQoY29uc3QgRXZhc19PYmpl
Y3QqIGV3a0ZyYW1lKQogewogICAgIERSVF9TVVBQT1JUX0ZSQU1FX0dFVF9PUl9SRVRVUk4oZXdr
RnJhbWUsIGZyYW1lLCAwKTsKQEAgLTc3OSwzICs3OTksNzcgQEAgdm9pZCBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRFZmw6OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoYm9v
bCBmb3IKIHsKICAgICBXZWJDb3JlOjpTY2hlbWVSZWdpc3RyeTo6c2V0RG9tYWluUmVsYXhhdGlv
bkZvcmJpZGRlbkZvclVSTFNjaGVtZShmb3JiaWRkZW4sIHNjaGVtZSk7CiB9CisKK3ZvaWQgRHVt
cFJlbmRlclRyZWVTdXBwb3J0RWZsOjpyZXNldEdlb2xvY2F0aW9uQ2xpZW50TW9jayhjb25zdCBF
dmFzX09iamVjdCogZXdrVmlldykKK3sKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCisgICAgRFJU
X1NVUFBSVF9QQUdFX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgcGFnZSk7CisKKyAgICBXZWJDb3Jl
OjpHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2sgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpHZW9s
b2NhdGlvbkNsaWVudE1vY2sqPihXZWJDb3JlOjpHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmZyb20o
cGFnZSktPmNsaWVudCgpKTsKKyAgICBtb2NrLT5yZXNldCgpOworI2Vsc2UKKyAgICBVTlVTRURf
UEFSQU0oZXdrVmlldyk7CisjZW5kaWYKK30KKwordm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRF
Zmw6OnNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Npb24oY29uc3QgRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIGJvb2wgYWxsb3dlZCkKK3sKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCisgICAgRFJUX1NV
UFBSVF9QQUdFX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgcGFnZSk7CisKKyAgICBXZWJDb3JlOjpH
ZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2sgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpHZW9sb2Nh
dGlvbkNsaWVudE1vY2sqPihXZWJDb3JlOjpHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFn
ZSktPmNsaWVudCgpKTsKKyAgICBtb2NrLT5zZXRQZXJtaXNzaW9uKGFsbG93ZWQpOworI2Vsc2UK
KyAgICBVTlVTRURfUEFSQU0oZXdrVmlldyk7CisgICAgVU5VU0VEX1BBUkFNKGFsbG93ZWQpOwor
I2VuZGlmCit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRNb2NrR2VvbG9j
YXRpb25Qb3NpdGlvbihjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywgZG91YmxlIGxhdGl0dWRl
LCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3ksIGJvb2wgY2FuUHJvdmlkZUFsdGl0
dWRlLCBkb3VibGUgYWx0aXR1ZGUsIGJvb2wgY2FuUHJvdmlkZUFsdGl0dWRlQWNjdXJhY3ksIGRv
dWJsZSBhbHRpdHVkZUFjY3VyYWN5LCBib29sIGNhblByb3ZpZGVIZWFkaW5nLCBkb3VibGUgaGVh
ZGluZywgYm9vbCBjYW5Qcm92aWRlU3BlZWQsIGRvdWJsZSBzcGVlZCkKK3sKKyNpZiBFTkFCTEUo
R0VPTE9DQVRJT04pCisgICAgRFJUX1NVUFBSVF9QQUdFX0dFVF9PUl9SRVRVUk4oZXdrVmlldywg
cGFnZSk7CisKKyAgICBXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2sgPSBzdGF0
aWNfY2FzdDxXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudE1vY2sqPihXZWJDb3JlOjpHZW9sb2Nh
dGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSktPmNsaWVudCgpKTsKKyAgICBtb2NrLT5zZXRQb3Np
dGlvbihXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUoY3VycmVudFRpbWUoKSwg
bGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3ksIGNhblByb3ZpZGVBbHRpdHVkZSwgYWx0aXR1
ZGUsIGNhblByb3ZpZGVBbHRpdHVkZUFjY3VyYWN5LCBhbHRpdHVkZUFjY3VyYWN5LCBjYW5Qcm92
aWRlSGVhZGluZywgaGVhZGluZywgY2FuUHJvdmlkZVNwZWVkLCBzcGVlZCkpOworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0oZXdrVmlldyk7CisgICAgVU5VU0VEX1BBUkFNKGxhdGl0dWRlKTsKKyAg
ICBVTlVTRURfUEFSQU0obG9uZ2l0dWRlKTsKKyAgICBVTlVTRURfUEFSQU0oYWNjdXJhY3kpOwor
ICAgIFVOVVNFRF9QQVJBTShjYW5Qcm92aWRlQWx0aXR1ZGUpOworICAgIFVOVVNFRF9QQVJBTShh
bHRpdHVkZSk7CisgICAgVU5VU0VEX1BBUkFNKGNhblByb3ZpZGVBbHRpdHVkZUFjY3VyYWN5KTsK
KyAgICBVTlVTRURfUEFSQU0oYWx0aXR1ZGVBY2N1cmFjeSk7CisgICAgVU5VU0VEX1BBUkFNKGNh
blByb3ZpZGVIZWFkaW5nKTsKKyAgICBVTlVTRURfUEFSQU0oaGVhZGluZyk7CisgICAgVU5VU0VE
X1BBUkFNKGNhblByb3ZpZGVTcGVlZCk7CisgICAgVU5VU0VEX1BBUkFNKHNwZWVkKTsKKyNlbmRp
ZgorfQorCit2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0TW9ja0dlb2xvY2F0aW9u
UG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25z
dCBjaGFyKiBlcnJvck1lc3NhZ2UpCit7CisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQorICAgIERS
VF9TVVBQUlRfUEFHRV9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHBhZ2UpOworCisgICAgV2ViQ29y
ZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6R2Vv
bG9jYXRpb25DbGllbnRNb2NrKj4oV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9t
KHBhZ2UpLT5jbGllbnQoKSk7CisgICAgbW9jay0+c2V0UG9zaXRpb25VbmF2YWlsYWJsZUVycm9y
KGVycm9yTWVzc2FnZSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShld2tWaWV3KTsKKyAgICBV
TlVTRURfUEFSQU0oZXJyb3JNZXNzYWdlKTsKKyNlbmRpZgorfQorCitpbnQgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0RWZsOjpudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
cyhjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04p
CisgICAgRFJUX1NVUFBSVF9QQUdFX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgcGFnZSwgLTEpOwor
CisgICAgV2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrID0gc3RhdGljX2Nhc3Q8
V2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrKj4oV2ViQ29yZTo6R2VvbG9jYXRpb25Db250
cm9sbGVyOjpmcm9tKHBhZ2UpLT5jbGllbnQoKSk7CisgICAgcmV0dXJuIG1vY2stPm51bWJlck9m
UGVuZGluZ1Blcm1pc3Npb25SZXF1ZXN0cygpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZXdr
Vmlldyk7CisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oIGIvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKaW5k
ZXggMzVjMDUwMC4uNTlhNjNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKQEAgLTQ5LDYgKzQ5
LDkgQEAgcHVibGljOgogCiAgICAgfkR1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbCgpIHsgfQogCisg
ICAgc3RhdGljIHZvaWQgc2V0RHVtcFJlbmRlclRyZWVNb2RlRW5hYmxlZChib29sKTsKKyAgICBz
dGF0aWMgYm9vbCBkdW1wUmVuZGVyVHJlZU1vZGVFbmFibGVkKCk7CisKICAgICBzdGF0aWMgdW5z
aWduZWQgYWN0aXZlQW5pbWF0aW9uc0NvdW50KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7
CiAgICAgc3RhdGljIGJvb2wgY2FsbFNob3VsZENsb3NlT25XZWJWaWV3KEV2YXNfT2JqZWN0KiBl
d2tGcmFtZSk7CiAgICAgc3RhdGljIHZvaWQgY2xlYXJGcmFtZU5hbWUoRXZhc19PYmplY3QqIGV3
a0ZyYW1lKTsKQEAgLTEyNyw2ICsxMzAsMTYgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGNv
bmZpcm1Db21wb3NpdGlvbihFdmFzX09iamVjdCosIGNvbnN0IGNoYXIqKTsKICAgICBzdGF0aWMg
V2ViQ29yZTo6SW50UmVjdCBmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZShFdmFzX09iamVjdCos
IGludCwgaW50KTsKICAgICBzdGF0aWMgYm9vbCBzZWxlY3RlZFJhbmdlKEV2YXNfT2JqZWN0Kiwg
aW50KiwgaW50Kik7CisKKyAgICAvLyBHZW9sb2NhdGlvbgorICAgIHN0YXRpYyB2b2lkIHJlc2V0
R2VvbG9jYXRpb25DbGllbnRNb2NrKGNvbnN0IEV2YXNfT2JqZWN0Kik7CisgICAgc3RhdGljIHZv
aWQgc2V0TW9ja0dlb2xvY2F0aW9uUGVybWlzc2lvbihjb25zdCBFdmFzX09iamVjdCosIGJvb2wg
YWxsb3dlZCk7CisgICAgc3RhdGljIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oY29u
c3QgRXZhc19PYmplY3QqLCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJs
ZSBhY2N1cmFjeSwgYm9vbCBjYW5Qcm92aWRlQWx0aXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgYm9v
bCBjYW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJv
b2wgY2FuUHJvdmlkZUhlYWRpbmcsIGRvdWJsZSBoZWFkaW5nLCBib29sIGNhblByb3ZpZGVTcGVl
ZCwgZG91YmxlIHNwZWVkKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3Np
dGlvblVuYXZhaWxhYmxlRXJyb3IoY29uc3QgRXZhc19PYmplY3QqLCBjb25zdCBjaGFyKiBlcnJv
ck1lc3NhZ2UpOworICAgIHN0YXRpYyBpbnQgbnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdHMoY29uc3QgRXZhc19PYmplY3QqKTsKKworcHJpdmF0ZToKKyAgICBzdGF0
aWMgYm9vbCBzX2RydFJ1bjsKIH07CiAKICNlbmRpZiAvLyBEdW1wUmVuZGVyVHJlZVN1cHBvcnRF
ZmxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXggNDAzMDI5NS4uZmFhNTVjMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVk
ZSAiQ29udGV4dE1lbnVDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIK
ICNpbmNsdWRlICJEcmFnQ2xpZW50RWZsLmgiCisjaW5jbHVkZSAiRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsLmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50RWZsLmgiCiAjaW5jbHVkZSAiRWZsU2Ny
ZWVuVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCkBAIC04NSw2ICs4Niwx
MSBAQAogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50RWZsLmgiCiAjZW5kaWYKIAor
I2lmIEVOQUJMRShHRU9MT0NBVElPTikKKyNpbmNsdWRlICJHZW9sb2NhdGlvbkNsaWVudE1vY2su
aCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCIKKyNlbmRpZgorCiAjaWYgRU5B
QkxFKFZJQlJBVElPTikKICNpbmNsdWRlICJWaWJyYXRpb25DbGllbnRFZmwuaCIKICNlbmRpZgpA
QCAtNzg0LDYgKzc5MCwxNCBAQCBzdGF0aWMgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBfZXdrX3Zp
ZXdfcHJpdl9uZXcoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKQogICAgIFdlYkNvcmU6
OnByb3ZpZGVOYXZpZ2F0b3JDb250ZW50VXRpbHNUbyhwcml2LT5wYWdlLmdldCgpLCBwcml2LT5u
YXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQuZ2V0KCkpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
R0VPTE9DQVRJT04pCisgICAgaWYgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6ZHVtcFJlbmRl
clRyZWVNb2RlRW5hYmxlZCgpKSB7CisgICAgICAgIFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50
TW9jayogbW9jayA9IG5ldyBXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudE1vY2s7CisgICAgICAg
IFdlYkNvcmU6OnByb3ZpZGVHZW9sb2NhdGlvblRvKHByaXYtPnBhZ2UuZ2V0KCksIG1vY2spOwor
ICAgICAgICBtb2NrLT5zZXRDb250cm9sbGVyKFdlYkNvcmU6Okdlb2xvY2F0aW9uQ29udHJvbGxl
cjo6ZnJvbShwcml2LT5wYWdlLmdldCgpKSk7CisgICAgfQorI2VuZGlmCisKICAgICBwcml2LT5w
YWdlU2V0dGluZ3MgPSBwcml2LT5wYWdlLT5zZXR0aW5ncygpOwogCiAgICAgV2ViQ29yZTo6TGF5
b3V0TWlsZXN0b25lcyBsYXlvdXRNaWxlc3RvbmVzID0gV2ViQ29yZTo6RGlkRmlyc3RMYXlvdXQg
fCBXZWJDb3JlOjpEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQ7CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNmZkNWExNC4uYzU4MDMzOCAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIyIEBACisyMDEyLTEwLTMxICBTZW9uYWUgS2ltICA8c3VuYWVsdXYua2ltQHNhbXN1bmcu
Y29tPgorCisgICAgICAgIFtFRkxdW0RSVF0gU3VwcG9ydCBHZW9sb2NhdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc0MjcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgbWV0aG9kcyB0
byB1c2UgR2VvbG9jYXRpb25DbGllbnRNb2NrIGluIER1bXBSZW5kZXJUcmVlLgorICAgICAgICBU
aGlzIGNsaWVudCBhdHRhY2hlcyB0byB0aGUgcGFnZSB3aGVuZXZlciBhIHZpZXcgaXMgY3JlYXRl
ZC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5j
cHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6Y3JlYXRlVmlldyk6CisgICAgICAg
IChEdW1wUmVuZGVyVHJlZUNocm9tZTo6cmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcyk6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwOgorICAgICAg
ICAoVGVzdFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24pOgorICAgICAgICAoVGVz
dFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKToKKyAg
ICAgICAgKFRlc3RSdW5uZXI6OnNldEdlb2xvY2F0aW9uUGVybWlzc2lvbik6CisgICAgICAgIChU
ZXN0UnVubmVyOjpudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyk6
CisKIDIwMTItMTAtMzEgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBTY3JpcHQgcnVuIGZyb20gYW4gaXNvbGF0ZWQgd29ybGQgc2hvdWxkIGJ5cGFzcyBhIHBhZ2Un
cyBDU1AuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRy
ZWVDaHJvbWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hy
b21lLmNwcAppbmRleCBkMWJhNWZmLi44ZTMyOTY5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKQEAgLTE5Nyw2ICsxOTcsNyBAQCB2
b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpyZW1vdmVXaW5kb3coRXZhc19PYmplY3QqIHZpZXcp
CiBib29sIER1bXBSZW5kZXJUcmVlQ2hyb21lOjppbml0aWFsaXplKCkKIHsKICAgICBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmw6OnNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZCh0cnVlKTsKKyAgICBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldER1bXBSZW5kZXJUcmVlTW9kZUVuYWJsZWQodHJ1
ZSk7CiAKICAgICBtX21haW5WaWV3ID0gY3JlYXRlVmlldygpOwogICAgIGlmICghbV9tYWluVmll
dykKQEAgLTMwOCw2ICszMDksNyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpyZXNldERl
ZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKCkKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6
OmNsZWFyT3BlbmVyKG1haW5GcmFtZSgpKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6
OmNsZWFyVXNlclNjcmlwdHMobWFpblZpZXcoKSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0
RWZsOjpjbGVhclVzZXJTdHlsZVNoZWV0cyhtYWluVmlldygpKTsKKyAgICBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRFZmw6OnJlc2V0R2VvbG9jYXRpb25DbGllbnRNb2NrKG1haW5WaWV3KCkpOwogICAg
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0SW50ZXJhY3RpdmVGb3JtVmFsaWRhdGlvbkVu
YWJsZWQobWFpblZpZXcoKSwgdHJ1ZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpz
ZXRWYWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbihtYWluVmlldygpLCAtMSk7CiAg
ICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxl
ZChtYWluVmlldygpLCB0cnVlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Vm
bC9UZXN0UnVubmVyRWZsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVy
RWZsLmNwcAppbmRleCAxOTcwM2FlLi5jZDc4YjEwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
ZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCkBAIC0zNjUsMzAgKzM2NSw0MSBAQCB2b2lkIFRlc3RSdW5u
ZXI6OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbihib29sLCBkb3VibGUsIGJvb2wsIGRvdWJsZSwg
Ym9vbCwgZG91YgogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6
c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgYm9vbCwg
ZG91YmxlLCBib29sLCBkb3VibGUsIGJvb2wsIGRvdWJsZSwgYm9vbCwgZG91YmxlKQordm9pZCBU
ZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRv
dWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgYm9vbCBjYW5Qcm92aWRlQWx0aXR1ZGUs
IGRvdWJsZSBhbHRpdHVkZSwgYm9vbCBjYW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgZG91Ymxl
IGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgY2FuUHJvdmlkZUhlYWRpbmcsIGRvdWJsZSBoZWFkaW5n
LCBib29sIGNhblByb3ZpZGVTcGVlZCwgZG91YmxlIHNwZWVkKQogewotICAgIC8vIEZJWE1FOiBJ
bXBsZW1lbnQgZm9yIEdlb2xvY2F0aW9uIGxheW91dCB0ZXN0cy4KLSAgICAvLyBTZWUgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MjY0LgotICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgRXZhc19PYmplY3QqIHZpZXcgPSBicm93c2VyLT5tYWluVmlldygpOworICAg
IGlmIChicm93c2VyLT5leHRyYVZpZXdzKCkuc2l6ZSgpID4gMCkKKyAgICAgICAgdmlldyA9IGJy
b3dzZXItPmV4dHJhVmlld3MoKS5sYXN0KCk7CisKKyAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRF
Zmw6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKHZpZXcsIGxhdGl0dWRlLCBsb25naXR1ZGUs
IGFjY3VyYWN5LCBjYW5Qcm92aWRlQWx0aXR1ZGUsIGFsdGl0dWRlLCBjYW5Qcm92aWRlQWx0aXR1
ZGVBY2N1cmFjeSwgYWx0aXR1ZGVBY2N1cmFjeSwgY2FuUHJvdmlkZUhlYWRpbmcsIGhlYWRpbmcs
IGNhblByb3ZpZGVTcGVlZCwgc3BlZWQpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tH
ZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihKU1N0cmluZ1JlZikKK3ZvaWQgVGVz
dFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKEpTU3Ry
aW5nUmVmIG1lc3NhZ2UpCiB7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3IgR2VvbG9jYXRp
b24gbGF5b3V0IHRlc3RzLgotICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjgyNjQuCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBFdmFzX09iamVj
dCogdmlldyA9IGJyb3dzZXItPm1haW5WaWV3KCk7CisgICAgaWYgKGJyb3dzZXItPmV4dHJhVmll
d3MoKS5zaXplKCkgPiAwKQorICAgICAgICB2aWV3ID0gYnJvd3Nlci0+ZXh0cmFWaWV3cygpLmxh
c3QoKTsKKworICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0TW9ja0dlb2xvY2F0aW9u
UG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKHZpZXcsIG1lc3NhZ2UtPnN0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnNldEdlb2xvY2F0aW9uUGVybWlzc2lvbihi
b29sIGFsbG93KQogewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIEdlb2xvY2F0aW9uIGxh
eW91dCB0ZXN0cy4KICAgICBzZXRHZW9sb2NhdGlvblBlcm1pc3Npb25Db21tb24oYWxsb3cpOwor
ICAgIEV2YXNfT2JqZWN0KiB2aWV3ID0gYnJvd3Nlci0+bWFpblZpZXcoKTsKKyAgICBpZiAoYnJv
d3Nlci0+ZXh0cmFWaWV3cygpLnNpemUoKSA+IDApCisgICAgICAgIHZpZXcgPSBicm93c2VyLT5l
eHRyYVZpZXdzKCkubGFzdCgpOworCisgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRN
b2NrR2VvbG9jYXRpb25QZXJtaXNzaW9uKHZpZXcsIGFsbG93KTsKIH0KIAogaW50IFRlc3RSdW5u
ZXI6Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKCkKIHsKLSAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IGZvciBHZW9sb2NhdGlvbiBsYXlvdXQgdGVzdHMuCi0gICAg
cmV0dXJuIC0xOworICAgIEV2YXNfT2JqZWN0KiB2aWV3ID0gYnJvd3Nlci0+bWFpblZpZXcoKTsK
KyAgICBpZiAoYnJvd3Nlci0+ZXh0cmFWaWV3cygpLnNpemUoKSA+IDApCisgICAgICAgIHZpZXcg
PSBicm93c2VyLT5leHRyYVZpZXdzKCkubGFzdCgpOworCisgICAgcmV0dXJuIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbDo6bnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dHModmlldyk7CiB9CiAKIHZvaWQgVGVzdFJ1bm5lcjo6YWRkTW9ja1NwZWVjaElucHV0UmVzdWx0
KEpTU3RyaW5nUmVmLCBkb3VibGUsIEpTU3RyaW5nUmVmKQo=
</data>
<flag name="review"
          id="186095"
          type_id="1"
          status="+"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171983</attachid>
            <date>2012-11-01 21:25:56 -0700</date>
            <delta_ts>2012-11-01 21:32:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>16394</size>
            <attacher name="seonae kim">sunaeluv.kim</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiMGM1Yzg0Li44NjhiZGMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAt
MzEgIFNlb25hZSBLaW0gIDxzdW5hZWx1di5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VG
TF1bRFJUXSBTdXBwb3J0IEdlb2xvY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05NzQyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENoYW5nZSB0aGUgY29tbWVudCBvZiBHZW9sb2NhdGlvbiB0ZXN0
IGNhc2VzLgorCisgICAgICAgICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIw
MTItMTAtMzEgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBTY3Jp
cHQgcnVuIGZyb20gYW4gaXNvbGF0ZWQgd29ybGQgc2hvdWxkIGJ5cGFzcyBhIHBhZ2UncyBDU1Au
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDBjN2FiYjUu
LjI4NDYxYTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBA
IC0xMzMxLDcgKzEzMzEsNyBAQCB3ZWJraXQub3JnL2IvNjg1OTEgaHR0cC90ZXN0cy9zZWN1cml0
eS9maWxlc3lzdGVtLWlmcmFtZS1mcm9tLXJlbW90ZS5odG1sCiB3ZWJraXQub3JnL2IvNjg1OTEg
aHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvZmlsZXN5c3RlbS11cmwtaW4taWZyYW1l
Lmh0bWwKIHdlYmtpdC5vcmcvYi82ODU5MSBodHRwL3Rlc3RzL2luc3BlY3Rvci9maWxlc3lzdGVt
CiAKLSMgVGhlIEVGTCBwb3J0IGhhcyBubyBzdXBwb3J0IGZvciB0aGUgR2VvbG9jYXRpb24KKyMg
RUZMJ3MgVGVzdFJ1bm5lciBzaG91bGQgc3VwcG9ydCBmb3IgdGhlIEdlb2xvY2F0aW9uIEFQSQog
d2Via2l0Lm9yZy9iLzgyMTQwIGZhc3QvZG9tL0dlb2xvY2F0aW9uIFsgU2tpcCBdCiB3ZWJraXQu
b3JnL2IvODIxNDAgZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWdlb2xvY2F0aW9u
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi84MjE0MCBpbnNwZWN0b3IvZ2VvbG9jYXRp
b24tZXJyb3IuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiYWQ2NTI1Li4zZWY4YmE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTEwLTMxICBTZW9uYWUgS2ltICA8c3VuYWVs
dXYua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdW0RSVF0gU3VwcG9ydCBHZW9sb2Nh
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc0
MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
YSBtb2NrIGRpcmVjdG9yeSB0byB1c2UgR2VvbG9jYXRpb25DbGllbnRNb2NrIGluIER1bXBSZW5k
ZXJUcmVlLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisKIDIwMTItMTAtMzEgIE1p
Y2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KIAogICAgICAg
ICBbRUZMXVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVpcmVzIGNvbnRleHRDbGljayBpbXBsZW1lbnRh
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggMzUzNzNkZi4uOTIwYjE0NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtRWZsLmNtYWtlCkBAIC03LDYgKzcsNyBAQCBMSVNUKEFQUEVORCBXZWJLaXRfSU5D
TFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9lZmwiCiAgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvIgogICAgICIke1dFQkNPUkVf
RElSfS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3Jt
L21vY2siCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL25ldHdvcmsvc291cCIKICAgICAk
e0NBSVJPX0lOQ0xVREVfRElSU30KICAgICAke0VDT1JFX0lOQ0xVREVfRElSU30KQEAgLTg2LDYg
Kzg3LDEyIEBAIElGIChXVEZfVVNFX1RFWFRVUkVfTUFQUEVSX0dMKQogICApCiBFTkRJRiAoKQog
CitJRiAoRU5BQkxFX0dFT0xPQ0FUSU9OKQorICBMSVNUKEFQUEVORCBXZWJLaXRfSU5DTFVERV9E
SVJFQ1RPUklFUworICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2dlb2xvY2F0aW9uIgorICAp
CitFTkRJRiAoKQorCiBMSVNUKEFQUEVORCBXZWJLaXRfU09VUkNFUwogICAgIGVmbC9XZWJDb3Jl
U3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5jcHAKICAgICBlZmwvV2Vi
Q29yZVN1cHBvcnQvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA3
ZGMzNDQ4Li5hODFmMzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTIt
MTAtMzEgIFNlb25hZSBLaW0gIDxzdW5hZWx1di5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAg
W0VGTF1bRFJUXSBTdXBwb3J0IEdlb2xvY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzQyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBtZXRob2RzIHRvIHVzZSBHZW9sb2NhdGlv
bkNsaWVudE1vY2sgaW4gRHVtcFJlbmRlclRyZWUuCisgICAgICAgIFRoaXMgY2xpZW50IGF0dGFj
aGVzIHRvIHRoZSBwYWdlIHdoZW5ldmVyIGEgdmlldyBpcyBjcmVhdGVkLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcDoKKyAgICAgICAgKER1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6YXR0YWNoQ2xpZW50VG9QYWdlKToKKyAgICAgICAgKER1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6cmVzZXRHZW9sb2NhdGlvbkNsaWVudE1vY2spOgorICAg
ICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNz
aW9uKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0TW9ja0dlb2xvY2F0
aW9uUG9zaXRpb24pOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRNb2Nr
R2VvbG9jYXRpb25Qb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IpOgorICAgICAgICAoRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsOjpudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0cyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZs
Lmg6CisKIDIwMTItMTAtMzEgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBz
YW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVpcmVzIGNv
bnRleHRDbGljayBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKaW5kZXgg
ZWVlNzEyMi4uYjA0NWFiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCkBAIC02Miw2ICs2
MiwxNCBAQAogI2luY2x1ZGUgPHdvcmtlcnMvV29ya2VyVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KIAorI2lmIEVOQUJMRShHRU9MT0NBVElPTikKKyNpbmNsdWRlIDxHZW9sb2Nh
dGlvbkNsaWVudE1vY2suaD4KKyNpbmNsdWRlIDxHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaD4KKyNp
bmNsdWRlIDxHZW9sb2NhdGlvbkVycm9yLmg+CisjaW5jbHVkZSA8R2VvbG9jYXRpb25Qb3NpdGlv
bi5oPgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorI2VuZGlmCisKICNkZWZpbmUgRFJU
X1NVUFBPUlRfRlJBTUVfR0VUX09SX1JFVFVSTihld2tGcmFtZSwgZnJhbWUsIC4uLikgXAogICAg
IFdlYkNvcmU6OkZyYW1lKiBmcmFtZSA9IEVXS1ByaXZhdGU6OmNvcmVGcmFtZShld2tGcmFtZSk7
ICBcCiAgICAgaWYgKCFmcmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKQEAgLTcxLDcgKzc5LDE5IEBACiAgICAgV2ViQ29yZTo6UGFnZSogcGFnZSA9
IEVXS1ByaXZhdGU6OmNvcmVQYWdlKGV3a1ZpZXcpOyAgXAogICAgIGlmICghcGFnZSkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgcmV0dXJuIF9f
VkFfQVJHU19fOwotICAgIAorCitib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c19kcnRS
dW4gPSBmYWxzZTsKKwordm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldER1bXBSZW5k
ZXJUcmVlTW9kZUVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIHNfZHJ0UnVuID0gZW5hYmxl
ZDsKK30KKworYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmR1bXBSZW5kZXJUcmVlTW9k
ZUVuYWJsZWQoKQoreworICAgIHJldHVybiBzX2RydFJ1bjsKK30KKwogdW5zaWduZWQgRHVtcFJl
bmRlclRyZWVTdXBwb3J0RWZsOjphY3RpdmVBbmltYXRpb25zQ291bnQoY29uc3QgRXZhc19PYmpl
Y3QqIGV3a0ZyYW1lKQogewogICAgIERSVF9TVVBQT1JUX0ZSQU1FX0dFVF9PUl9SRVRVUk4oZXdr
RnJhbWUsIGZyYW1lLCAwKTsKQEAgLTc3OSwzICs3OTksNzcgQEAgdm9pZCBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRFZmw6OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoYm9v
bCBmb3IKIHsKICAgICBXZWJDb3JlOjpTY2hlbWVSZWdpc3RyeTo6c2V0RG9tYWluUmVsYXhhdGlv
bkZvcmJpZGRlbkZvclVSTFNjaGVtZShmb3JiaWRkZW4sIHNjaGVtZSk7CiB9CisKK3ZvaWQgRHVt
cFJlbmRlclRyZWVTdXBwb3J0RWZsOjpyZXNldEdlb2xvY2F0aW9uQ2xpZW50TW9jayhjb25zdCBF
dmFzX09iamVjdCogZXdrVmlldykKK3sKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCisgICAgRFJU
X1NVUFBSVF9QQUdFX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgcGFnZSk7CisKKyAgICBXZWJDb3Jl
OjpHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2sgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpHZW9s
b2NhdGlvbkNsaWVudE1vY2sqPihXZWJDb3JlOjpHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmZyb20o
cGFnZSktPmNsaWVudCgpKTsKKyAgICBtb2NrLT5yZXNldCgpOworI2Vsc2UKKyAgICBVTlVTRURf
UEFSQU0oZXdrVmlldyk7CisjZW5kaWYKK30KKwordm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRF
Zmw6OnNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Npb24oY29uc3QgRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIGJvb2wgYWxsb3dlZCkKK3sKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCisgICAgRFJUX1NV
UFBSVF9QQUdFX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgcGFnZSk7CisKKyAgICBXZWJDb3JlOjpH
ZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2sgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpHZW9sb2Nh
dGlvbkNsaWVudE1vY2sqPihXZWJDb3JlOjpHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFn
ZSktPmNsaWVudCgpKTsKKyAgICBtb2NrLT5zZXRQZXJtaXNzaW9uKGFsbG93ZWQpOworI2Vsc2UK
KyAgICBVTlVTRURfUEFSQU0oZXdrVmlldyk7CisgICAgVU5VU0VEX1BBUkFNKGFsbG93ZWQpOwor
I2VuZGlmCit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRNb2NrR2VvbG9j
YXRpb25Qb3NpdGlvbihjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywgZG91YmxlIGxhdGl0dWRl
LCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3ksIGJvb2wgY2FuUHJvdmlkZUFsdGl0
dWRlLCBkb3VibGUgYWx0aXR1ZGUsIGJvb2wgY2FuUHJvdmlkZUFsdGl0dWRlQWNjdXJhY3ksIGRv
dWJsZSBhbHRpdHVkZUFjY3VyYWN5LCBib29sIGNhblByb3ZpZGVIZWFkaW5nLCBkb3VibGUgaGVh
ZGluZywgYm9vbCBjYW5Qcm92aWRlU3BlZWQsIGRvdWJsZSBzcGVlZCkKK3sKKyNpZiBFTkFCTEUo
R0VPTE9DQVRJT04pCisgICAgRFJUX1NVUFBSVF9QQUdFX0dFVF9PUl9SRVRVUk4oZXdrVmlldywg
cGFnZSk7CisKKyAgICBXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2sgPSBzdGF0
aWNfY2FzdDxXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudE1vY2sqPihXZWJDb3JlOjpHZW9sb2Nh
dGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSktPmNsaWVudCgpKTsKKyAgICBtb2NrLT5zZXRQb3Np
dGlvbihXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUoY3VycmVudFRpbWUoKSwg
bGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3ksIGNhblByb3ZpZGVBbHRpdHVkZSwgYWx0aXR1
ZGUsIGNhblByb3ZpZGVBbHRpdHVkZUFjY3VyYWN5LCBhbHRpdHVkZUFjY3VyYWN5LCBjYW5Qcm92
aWRlSGVhZGluZywgaGVhZGluZywgY2FuUHJvdmlkZVNwZWVkLCBzcGVlZCkpOworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0oZXdrVmlldyk7CisgICAgVU5VU0VEX1BBUkFNKGxhdGl0dWRlKTsKKyAg
ICBVTlVTRURfUEFSQU0obG9uZ2l0dWRlKTsKKyAgICBVTlVTRURfUEFSQU0oYWNjdXJhY3kpOwor
ICAgIFVOVVNFRF9QQVJBTShjYW5Qcm92aWRlQWx0aXR1ZGUpOworICAgIFVOVVNFRF9QQVJBTShh
bHRpdHVkZSk7CisgICAgVU5VU0VEX1BBUkFNKGNhblByb3ZpZGVBbHRpdHVkZUFjY3VyYWN5KTsK
KyAgICBVTlVTRURfUEFSQU0oYWx0aXR1ZGVBY2N1cmFjeSk7CisgICAgVU5VU0VEX1BBUkFNKGNh
blByb3ZpZGVIZWFkaW5nKTsKKyAgICBVTlVTRURfUEFSQU0oaGVhZGluZyk7CisgICAgVU5VU0VE
X1BBUkFNKGNhblByb3ZpZGVTcGVlZCk7CisgICAgVU5VU0VEX1BBUkFNKHNwZWVkKTsKKyNlbmRp
ZgorfQorCit2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0TW9ja0dlb2xvY2F0aW9u
UG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25z
dCBjaGFyKiBlcnJvck1lc3NhZ2UpCit7CisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQorICAgIERS
VF9TVVBQUlRfUEFHRV9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHBhZ2UpOworCisgICAgV2ViQ29y
ZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6R2Vv
bG9jYXRpb25DbGllbnRNb2NrKj4oV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9t
KHBhZ2UpLT5jbGllbnQoKSk7CisgICAgbW9jay0+c2V0UG9zaXRpb25VbmF2YWlsYWJsZUVycm9y
KGVycm9yTWVzc2FnZSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShld2tWaWV3KTsKKyAgICBV
TlVTRURfUEFSQU0oZXJyb3JNZXNzYWdlKTsKKyNlbmRpZgorfQorCitpbnQgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0RWZsOjpudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
cyhjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04p
CisgICAgRFJUX1NVUFBSVF9QQUdFX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgcGFnZSwgLTEpOwor
CisgICAgV2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrID0gc3RhdGljX2Nhc3Q8
V2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrKj4oV2ViQ29yZTo6R2VvbG9jYXRpb25Db250
cm9sbGVyOjpmcm9tKHBhZ2UpLT5jbGllbnQoKSk7CisgICAgcmV0dXJuIG1vY2stPm51bWJlck9m
UGVuZGluZ1Blcm1pc3Npb25SZXF1ZXN0cygpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZXdr
Vmlldyk7CisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oIGIvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKaW5k
ZXggMzVjMDUwMC4uNTlhNjNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKQEAgLTQ5LDYgKzQ5
LDkgQEAgcHVibGljOgogCiAgICAgfkR1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbCgpIHsgfQogCisg
ICAgc3RhdGljIHZvaWQgc2V0RHVtcFJlbmRlclRyZWVNb2RlRW5hYmxlZChib29sKTsKKyAgICBz
dGF0aWMgYm9vbCBkdW1wUmVuZGVyVHJlZU1vZGVFbmFibGVkKCk7CisKICAgICBzdGF0aWMgdW5z
aWduZWQgYWN0aXZlQW5pbWF0aW9uc0NvdW50KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7
CiAgICAgc3RhdGljIGJvb2wgY2FsbFNob3VsZENsb3NlT25XZWJWaWV3KEV2YXNfT2JqZWN0KiBl
d2tGcmFtZSk7CiAgICAgc3RhdGljIHZvaWQgY2xlYXJGcmFtZU5hbWUoRXZhc19PYmplY3QqIGV3
a0ZyYW1lKTsKQEAgLTEyNyw2ICsxMzAsMTYgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGNv
bmZpcm1Db21wb3NpdGlvbihFdmFzX09iamVjdCosIGNvbnN0IGNoYXIqKTsKICAgICBzdGF0aWMg
V2ViQ29yZTo6SW50UmVjdCBmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZShFdmFzX09iamVjdCos
IGludCwgaW50KTsKICAgICBzdGF0aWMgYm9vbCBzZWxlY3RlZFJhbmdlKEV2YXNfT2JqZWN0Kiwg
aW50KiwgaW50Kik7CisKKyAgICAvLyBHZW9sb2NhdGlvbgorICAgIHN0YXRpYyB2b2lkIHJlc2V0
R2VvbG9jYXRpb25DbGllbnRNb2NrKGNvbnN0IEV2YXNfT2JqZWN0Kik7CisgICAgc3RhdGljIHZv
aWQgc2V0TW9ja0dlb2xvY2F0aW9uUGVybWlzc2lvbihjb25zdCBFdmFzX09iamVjdCosIGJvb2wg
YWxsb3dlZCk7CisgICAgc3RhdGljIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oY29u
c3QgRXZhc19PYmplY3QqLCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJs
ZSBhY2N1cmFjeSwgYm9vbCBjYW5Qcm92aWRlQWx0aXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgYm9v
bCBjYW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJv
b2wgY2FuUHJvdmlkZUhlYWRpbmcsIGRvdWJsZSBoZWFkaW5nLCBib29sIGNhblByb3ZpZGVTcGVl
ZCwgZG91YmxlIHNwZWVkKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3Np
dGlvblVuYXZhaWxhYmxlRXJyb3IoY29uc3QgRXZhc19PYmplY3QqLCBjb25zdCBjaGFyKiBlcnJv
ck1lc3NhZ2UpOworICAgIHN0YXRpYyBpbnQgbnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdHMoY29uc3QgRXZhc19PYmplY3QqKTsKKworcHJpdmF0ZToKKyAgICBzdGF0
aWMgYm9vbCBzX2RydFJ1bjsKIH07CiAKICNlbmRpZiAvLyBEdW1wUmVuZGVyVHJlZVN1cHBvcnRF
ZmxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXggNDAzMDI5NS4uZmFhNTVjMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVk
ZSAiQ29udGV4dE1lbnVDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIK
ICNpbmNsdWRlICJEcmFnQ2xpZW50RWZsLmgiCisjaW5jbHVkZSAiRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsLmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50RWZsLmgiCiAjaW5jbHVkZSAiRWZsU2Ny
ZWVuVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCkBAIC04NSw2ICs4Niwx
MSBAQAogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50RWZsLmgiCiAjZW5kaWYKIAor
I2lmIEVOQUJMRShHRU9MT0NBVElPTikKKyNpbmNsdWRlICJHZW9sb2NhdGlvbkNsaWVudE1vY2su
aCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCIKKyNlbmRpZgorCiAjaWYgRU5B
QkxFKFZJQlJBVElPTikKICNpbmNsdWRlICJWaWJyYXRpb25DbGllbnRFZmwuaCIKICNlbmRpZgpA
QCAtNzg0LDYgKzc5MCwxNCBAQCBzdGF0aWMgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBfZXdrX3Zp
ZXdfcHJpdl9uZXcoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKQogICAgIFdlYkNvcmU6
OnByb3ZpZGVOYXZpZ2F0b3JDb250ZW50VXRpbHNUbyhwcml2LT5wYWdlLmdldCgpLCBwcml2LT5u
YXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQuZ2V0KCkpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
R0VPTE9DQVRJT04pCisgICAgaWYgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6ZHVtcFJlbmRl
clRyZWVNb2RlRW5hYmxlZCgpKSB7CisgICAgICAgIFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50
TW9jayogbW9jayA9IG5ldyBXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudE1vY2s7CisgICAgICAg
IFdlYkNvcmU6OnByb3ZpZGVHZW9sb2NhdGlvblRvKHByaXYtPnBhZ2UuZ2V0KCksIG1vY2spOwor
ICAgICAgICBtb2NrLT5zZXRDb250cm9sbGVyKFdlYkNvcmU6Okdlb2xvY2F0aW9uQ29udHJvbGxl
cjo6ZnJvbShwcml2LT5wYWdlLmdldCgpKSk7CisgICAgfQorI2VuZGlmCisKICAgICBwcml2LT5w
YWdlU2V0dGluZ3MgPSBwcml2LT5wYWdlLT5zZXR0aW5ncygpOwogCiAgICAgV2ViQ29yZTo6TGF5
b3V0TWlsZXN0b25lcyBsYXlvdXRNaWxlc3RvbmVzID0gV2ViQ29yZTo6RGlkRmlyc3RMYXlvdXQg
fCBXZWJDb3JlOjpEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQ7CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNmZkNWExNC4uYzU4MDMzOCAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIyIEBACisyMDEyLTEwLTMxICBTZW9uYWUgS2ltICA8c3VuYWVsdXYua2ltQHNhbXN1bmcu
Y29tPgorCisgICAgICAgIFtFRkxdW0RSVF0gU3VwcG9ydCBHZW9sb2NhdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc0MjcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgbWV0aG9kcyB0
byB1c2UgR2VvbG9jYXRpb25DbGllbnRNb2NrIGluIER1bXBSZW5kZXJUcmVlLgorICAgICAgICBU
aGlzIGNsaWVudCBhdHRhY2hlcyB0byB0aGUgcGFnZSB3aGVuZXZlciBhIHZpZXcgaXMgY3JlYXRl
ZC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5j
cHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6Y3JlYXRlVmlldyk6CisgICAgICAg
IChEdW1wUmVuZGVyVHJlZUNocm9tZTo6cmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcyk6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwOgorICAgICAg
ICAoVGVzdFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24pOgorICAgICAgICAoVGVz
dFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKToKKyAg
ICAgICAgKFRlc3RSdW5uZXI6OnNldEdlb2xvY2F0aW9uUGVybWlzc2lvbik6CisgICAgICAgIChU
ZXN0UnVubmVyOjpudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyk6
CisKIDIwMTItMTAtMzEgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBTY3JpcHQgcnVuIGZyb20gYW4gaXNvbGF0ZWQgd29ybGQgc2hvdWxkIGJ5cGFzcyBhIHBhZ2Un
cyBDU1AuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRy
ZWVDaHJvbWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hy
b21lLmNwcAppbmRleCBkMWJhNWZmLi5mYjljNzE3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKQEAgLTE5Niw2ICsxOTYsOCBAQCB2
b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpyZW1vdmVXaW5kb3coRXZhc19PYmplY3QqIHZpZXcp
CiAKIGJvb2wgRHVtcFJlbmRlclRyZWVDaHJvbWU6OmluaXRpYWxpemUoKQogeworICAgIC8vIE5v
dGlmaWVzIHRoYXQgRFJUIGlzIHJ1bm5pbmcgZm9yIGV3a1ZpZXcgdG8gY3JlYXRlIHRlc3RhYmxl
IG9iamVjdHMuCisgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXREdW1wUmVuZGVyVHJl
ZU1vZGVFbmFibGVkKHRydWUpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0TW9j
a1Njcm9sbGJhcnNFbmFibGVkKHRydWUpOwogCiAgICAgbV9tYWluVmlldyA9IGNyZWF0ZVZpZXco
KTsKQEAgLTMwOCw2ICszMTAsNyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpyZXNldERl
ZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKCkKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6
OmNsZWFyT3BlbmVyKG1haW5GcmFtZSgpKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6
OmNsZWFyVXNlclNjcmlwdHMobWFpblZpZXcoKSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0
RWZsOjpjbGVhclVzZXJTdHlsZVNoZWV0cyhtYWluVmlldygpKTsKKyAgICBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRFZmw6OnJlc2V0R2VvbG9jYXRpb25DbGllbnRNb2NrKG1haW5WaWV3KCkpOwogICAg
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0SW50ZXJhY3RpdmVGb3JtVmFsaWRhdGlvbkVu
YWJsZWQobWFpblZpZXcoKSwgdHJ1ZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpz
ZXRWYWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbihtYWluVmlldygpLCAtMSk7CiAg
ICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxl
ZChtYWluVmlldygpLCB0cnVlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Vm
bC9UZXN0UnVubmVyRWZsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVy
RWZsLmNwcAppbmRleCAxOTcwM2FlLi5jZDc4YjEwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
ZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCkBAIC0zNjUsMzAgKzM2NSw0MSBAQCB2b2lkIFRlc3RSdW5u
ZXI6OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbihib29sLCBkb3VibGUsIGJvb2wsIGRvdWJsZSwg
Ym9vbCwgZG91YgogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6
c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgYm9vbCwg
ZG91YmxlLCBib29sLCBkb3VibGUsIGJvb2wsIGRvdWJsZSwgYm9vbCwgZG91YmxlKQordm9pZCBU
ZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRv
dWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgYm9vbCBjYW5Qcm92aWRlQWx0aXR1ZGUs
IGRvdWJsZSBhbHRpdHVkZSwgYm9vbCBjYW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgZG91Ymxl
IGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgY2FuUHJvdmlkZUhlYWRpbmcsIGRvdWJsZSBoZWFkaW5n
LCBib29sIGNhblByb3ZpZGVTcGVlZCwgZG91YmxlIHNwZWVkKQogewotICAgIC8vIEZJWE1FOiBJ
bXBsZW1lbnQgZm9yIEdlb2xvY2F0aW9uIGxheW91dCB0ZXN0cy4KLSAgICAvLyBTZWUgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MjY0LgotICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgRXZhc19PYmplY3QqIHZpZXcgPSBicm93c2VyLT5tYWluVmlldygpOworICAg
IGlmIChicm93c2VyLT5leHRyYVZpZXdzKCkuc2l6ZSgpID4gMCkKKyAgICAgICAgdmlldyA9IGJy
b3dzZXItPmV4dHJhVmlld3MoKS5sYXN0KCk7CisKKyAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRF
Zmw6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKHZpZXcsIGxhdGl0dWRlLCBsb25naXR1ZGUs
IGFjY3VyYWN5LCBjYW5Qcm92aWRlQWx0aXR1ZGUsIGFsdGl0dWRlLCBjYW5Qcm92aWRlQWx0aXR1
ZGVBY2N1cmFjeSwgYWx0aXR1ZGVBY2N1cmFjeSwgY2FuUHJvdmlkZUhlYWRpbmcsIGhlYWRpbmcs
IGNhblByb3ZpZGVTcGVlZCwgc3BlZWQpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tH
ZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihKU1N0cmluZ1JlZikKK3ZvaWQgVGVz
dFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKEpTU3Ry
aW5nUmVmIG1lc3NhZ2UpCiB7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3IgR2VvbG9jYXRp
b24gbGF5b3V0IHRlc3RzLgotICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjgyNjQuCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBFdmFzX09iamVj
dCogdmlldyA9IGJyb3dzZXItPm1haW5WaWV3KCk7CisgICAgaWYgKGJyb3dzZXItPmV4dHJhVmll
d3MoKS5zaXplKCkgPiAwKQorICAgICAgICB2aWV3ID0gYnJvd3Nlci0+ZXh0cmFWaWV3cygpLmxh
c3QoKTsKKworICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0TW9ja0dlb2xvY2F0aW9u
UG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKHZpZXcsIG1lc3NhZ2UtPnN0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnNldEdlb2xvY2F0aW9uUGVybWlzc2lvbihi
b29sIGFsbG93KQogewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIEdlb2xvY2F0aW9uIGxh
eW91dCB0ZXN0cy4KICAgICBzZXRHZW9sb2NhdGlvblBlcm1pc3Npb25Db21tb24oYWxsb3cpOwor
ICAgIEV2YXNfT2JqZWN0KiB2aWV3ID0gYnJvd3Nlci0+bWFpblZpZXcoKTsKKyAgICBpZiAoYnJv
d3Nlci0+ZXh0cmFWaWV3cygpLnNpemUoKSA+IDApCisgICAgICAgIHZpZXcgPSBicm93c2VyLT5l
eHRyYVZpZXdzKCkubGFzdCgpOworCisgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRN
b2NrR2VvbG9jYXRpb25QZXJtaXNzaW9uKHZpZXcsIGFsbG93KTsKIH0KIAogaW50IFRlc3RSdW5u
ZXI6Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKCkKIHsKLSAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IGZvciBHZW9sb2NhdGlvbiBsYXlvdXQgdGVzdHMuCi0gICAg
cmV0dXJuIC0xOworICAgIEV2YXNfT2JqZWN0KiB2aWV3ID0gYnJvd3Nlci0+bWFpblZpZXcoKTsK
KyAgICBpZiAoYnJvd3Nlci0+ZXh0cmFWaWV3cygpLnNpemUoKSA+IDApCisgICAgICAgIHZpZXcg
PSBicm93c2VyLT5leHRyYVZpZXdzKCkubGFzdCgpOworCisgICAgcmV0dXJuIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbDo6bnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dHModmlldyk7CiB9CiAKIHZvaWQgVGVzdFJ1bm5lcjo6YWRkTW9ja1NwZWVjaElucHV0UmVzdWx0
KEpTU3RyaW5nUmVmLCBkb3VibGUsIEpTU3RyaW5nUmVmKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171984</attachid>
            <date>2012-11-01 21:32:59 -0700</date>
            <delta_ts>2012-11-01 22:54:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>16389</size>
            <attacher name="seonae kim">sunaeluv.kim</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiMGM1Yzg0Li43MWMwZmNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAt
MzEgIFNlb25hZSBLaW0gIDxzdW5hZWx1di5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VG
TF1bRFJUXSBTdXBwb3J0IEdlb2xvY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05NzQyNworCisgICAgICAgIFJldmlld2VkIGJ5IEd5dXlvdW5n
IEtpbS4KKworICAgICAgICBDaGFuZ2UgdGhlIGNvbW1lbnQgb2YgR2VvbG9jYXRpb24gdGVzdCBj
YXNlcy4KKworICAgICAgICAqIHBsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEy
LTEwLTMxICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgU2NyaXB0
IHJ1biBmcm9tIGFuIGlzb2xhdGVkIHdvcmxkIHNob3VsZCBieXBhc3MgYSBwYWdlJ3MgQ1NQLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwYzdhYmI1Li4y
ODQ2MWExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
MTMzMSw3ICsxMzMxLDcgQEAgd2Via2l0Lm9yZy9iLzY4NTkxIGh0dHAvdGVzdHMvc2VjdXJpdHkv
ZmlsZXN5c3RlbS1pZnJhbWUtZnJvbS1yZW1vdGUuaHRtbAogd2Via2l0Lm9yZy9iLzY4NTkxIGh0
dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2ZpbGVzeXN0ZW0tdXJsLWluLWlmcmFtZS5o
dG1sCiB3ZWJraXQub3JnL2IvNjg1OTEgaHR0cC90ZXN0cy9pbnNwZWN0b3IvZmlsZXN5c3RlbQog
Ci0jIFRoZSBFRkwgcG9ydCBoYXMgbm8gc3VwcG9ydCBmb3IgdGhlIEdlb2xvY2F0aW9uCisjIEVG
TCdzIFRlc3RSdW5uZXIgc2hvdWxkIHN1cHBvcnQgZm9yIHRoZSBHZW9sb2NhdGlvbiBBUEkKIHdl
YmtpdC5vcmcvYi84MjE0MCBmYXN0L2RvbS9HZW9sb2NhdGlvbiBbIFNraXAgXQogd2Via2l0Lm9y
Zy9iLzgyMTQwIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1nZW9sb2NhdGlvbi5o
dG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvODIxNDAgaW5zcGVjdG9yL2dlb2xvY2F0aW9u
LWVycm9yLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYmFkNjUyNS4uNGE1NzdlZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMC0zMSAgU2VvbmFlIEtpbSAgPHN1bmFlbHV2
LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtEUlRdIFN1cHBvcnQgR2VvbG9jYXRp
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NDI3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR3l1eW91bmcgS2ltLiAKKworICAgICAgICBBZGQgYSBt
b2NrIGRpcmVjdG9yeSB0byB1c2UgR2VvbG9jYXRpb25DbGllbnRNb2NrIGluIER1bXBSZW5kZXJU
cmVlLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisKIDIwMTItMTAtMzEgIE1pY2hh
xYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBb
RUZMXVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVpcmVzIGNvbnRleHRDbGljayBpbXBsZW1lbnRhdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggMzUzNzNkZi4uOTIwYjE0NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtRWZsLmNtYWtlCkBAIC03LDYgKzcsNyBAQCBMSVNUKEFQUEVORCBXZWJLaXRfSU5DTFVE
RV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9lZmwiCiAgICAgIiR7
V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvIgogICAgICIke1dFQkNPUkVfRElS
fS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL21v
Y2siCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL25ldHdvcmsvc291cCIKICAgICAke0NB
SVJPX0lOQ0xVREVfRElSU30KICAgICAke0VDT1JFX0lOQ0xVREVfRElSU30KQEAgLTg2LDYgKzg3
LDEyIEBAIElGIChXVEZfVVNFX1RFWFRVUkVfTUFQUEVSX0dMKQogICApCiBFTkRJRiAoKQogCitJ
RiAoRU5BQkxFX0dFT0xPQ0FUSU9OKQorICBMSVNUKEFQUEVORCBXZWJLaXRfSU5DTFVERV9ESVJF
Q1RPUklFUworICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2dlb2xvY2F0aW9uIgorICApCitF
TkRJRiAoKQorCiBMSVNUKEFQUEVORCBXZWJLaXRfU09VUkNFUwogICAgIGVmbC9XZWJDb3JlU3Vw
cG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5jcHAKICAgICBlZmwvV2ViQ29y
ZVN1cHBvcnQvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA3ZGMz
NDQ4Li5hMmFhYjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMTAt
MzEgIFNlb25hZSBLaW0gIDxzdW5hZWx1di5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VG
TF1bRFJUXSBTdXBwb3J0IEdlb2xvY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05NzQyNworCisgICAgICAgIFJldmlld2VkIGJ5IEd5dXlvdW5n
IEtpbS4gCisKKyAgICAgICAgSW1wbGVtZW50IG1ldGhvZHMgdG8gdXNlIEdlb2xvY2F0aW9uQ2xp
ZW50TW9jayBpbiBEdW1wUmVuZGVyVHJlZS4KKyAgICAgICAgVGhpcyBjbGllbnQgYXR0YWNoZXMg
dG8gdGhlIHBhZ2Ugd2hlbmV2ZXIgYSB2aWV3IGlzIGNyZWF0ZWQuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwOgorICAgICAgICAoRHVtcFJl
bmRlclRyZWVTdXBwb3J0RWZsOjphdHRhY2hDbGllbnRUb1BhZ2UpOgorICAgICAgICAoRHVtcFJl
bmRlclRyZWVTdXBwb3J0RWZsOjpyZXNldEdlb2xvY2F0aW9uQ2xpZW50TW9jayk6CisgICAgICAg
IChEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Npb24p
OgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRNb2NrR2VvbG9jYXRpb25Q
b3NpdGlvbik6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldE1vY2tHZW9s
b2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcik6CisgICAgICAgIChEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRFZmw6Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Rz
KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaDoK
KwogMjAxMi0xMC0zMSAgTWljaGHFgiBQYWt1xYJhIHZlbCBSdXRrYSAgPG0ucGFrdWxhQHNhbXN1
bmcuY29tPgogCiAgICAgICAgIFtFRkxdW0RSVF0gRXZlbnRTZW5kZXIgcmVxdWlyZXMgY29udGV4
dENsaWNrIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAppbmRleCBlZWU3
MTIyLi5iMDQ1YWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKQEAgLTYyLDYgKzYyLDE0
IEBACiAjaW5jbHVkZSA8d29ya2Vycy9Xb3JrZXJUaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQorI2luY2x1ZGUgPEdlb2xvY2F0aW9u
Q2xpZW50TW9jay5oPgorI2luY2x1ZGUgPEdlb2xvY2F0aW9uQ29udHJvbGxlci5oPgorI2luY2x1
ZGUgPEdlb2xvY2F0aW9uRXJyb3IuaD4KKyNpbmNsdWRlIDxHZW9sb2NhdGlvblBvc2l0aW9uLmg+
CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjZW5kaWYKKwogI2RlZmluZSBEUlRfU1VQ
UE9SVF9GUkFNRV9HRVRfT1JfUkVUVVJOKGV3a0ZyYW1lLCBmcmFtZSwgLi4uKSBcCiAgICAgV2Vi
Q29yZTo6RnJhbWUqIGZyYW1lID0gRVdLUHJpdmF0ZTo6Y29yZUZyYW1lKGV3a0ZyYW1lKTsgIFwK
ICAgICBpZiAoIWZyYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXApAQCAtNzEsNyArNzksMTkgQEAKICAgICBXZWJDb3JlOjpQYWdlKiBwYWdlID0gRVdL
UHJpdmF0ZTo6Y29yZVBhZ2UoZXdrVmlldyk7ICBcCiAgICAgaWYgKCFwYWdlKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICByZXR1cm4gX19WQV9B
UkdTX187Ci0gICAgCisKK2Jvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzX2RydFJ1biA9
IGZhbHNlOworCit2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0RHVtcFJlbmRlclRy
ZWVNb2RlRW5hYmxlZChib29sIGVuYWJsZWQpCit7CisgICAgc19kcnRSdW4gPSBlbmFibGVkOwor
fQorCitib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6ZHVtcFJlbmRlclRyZWVNb2RlRW5h
YmxlZCgpCit7CisgICAgcmV0dXJuIHNfZHJ0UnVuOworfQorCiB1bnNpZ25lZCBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRFZmw6OmFjdGl2ZUFuaW1hdGlvbnNDb3VudChjb25zdCBFdmFzX09iamVjdCog
ZXdrRnJhbWUpCiB7CiAgICAgRFJUX1NVUFBPUlRfRlJBTUVfR0VUX09SX1JFVFVSTihld2tGcmFt
ZSwgZnJhbWUsIDApOwpAQCAtNzc5LDMgKzc5OSw3NyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEVmbDo6c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShib29sIGZv
cgogewogICAgIFdlYkNvcmU6OlNjaGVtZVJlZ2lzdHJ5OjpzZXREb21haW5SZWxheGF0aW9uRm9y
YmlkZGVuRm9yVVJMU2NoZW1lKGZvcmJpZGRlbiwgc2NoZW1lKTsKIH0KKwordm9pZCBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmw6OnJlc2V0R2VvbG9jYXRpb25DbGllbnRNb2NrKGNvbnN0IEV2YXNf
T2JqZWN0KiBld2tWaWV3KQoreworI2lmIEVOQUJMRShHRU9MT0NBVElPTikKKyAgICBEUlRfU1VQ
UFJUX1BBR0VfR0VUX09SX1JFVFVSTihld2tWaWV3LCBwYWdlKTsKKworICAgIFdlYkNvcmU6Okdl
b2xvY2F0aW9uQ2xpZW50TW9jayogbW9jayA9IHN0YXRpY19jYXN0PFdlYkNvcmU6Okdlb2xvY2F0
aW9uQ2xpZW50TW9jayo+KFdlYkNvcmU6Okdlb2xvY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdl
KS0+Y2xpZW50KCkpOworICAgIG1vY2stPnJlc2V0KCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShld2tWaWV3KTsKKyNlbmRpZgorfQorCit2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6
c2V0TW9ja0dlb2xvY2F0aW9uUGVybWlzc2lvbihjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywg
Ym9vbCBhbGxvd2VkKQoreworI2lmIEVOQUJMRShHRU9MT0NBVElPTikKKyAgICBEUlRfU1VQUFJU
X1BBR0VfR0VUX09SX1JFVFVSTihld2tWaWV3LCBwYWdlKTsKKworICAgIFdlYkNvcmU6Okdlb2xv
Y2F0aW9uQ2xpZW50TW9jayogbW9jayA9IHN0YXRpY19jYXN0PFdlYkNvcmU6Okdlb2xvY2F0aW9u
Q2xpZW50TW9jayo+KFdlYkNvcmU6Okdlb2xvY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKS0+
Y2xpZW50KCkpOworICAgIG1vY2stPnNldFBlcm1pc3Npb24oYWxsb3dlZCk7CisjZWxzZQorICAg
IFVOVVNFRF9QQVJBTShld2tWaWV3KTsKKyAgICBVTlVTRURfUEFSQU0oYWxsb3dlZCk7CisjZW5k
aWYKK30KKwordm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldE1vY2tHZW9sb2NhdGlv
blBvc2l0aW9uKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBkb3VibGUgbGF0aXR1ZGUsIGRv
dWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgYm9vbCBjYW5Qcm92aWRlQWx0aXR1ZGUs
IGRvdWJsZSBhbHRpdHVkZSwgYm9vbCBjYW5Qcm92aWRlQWx0aXR1ZGVBY2N1cmFjeSwgZG91Ymxl
IGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgY2FuUHJvdmlkZUhlYWRpbmcsIGRvdWJsZSBoZWFkaW5n
LCBib29sIGNhblByb3ZpZGVTcGVlZCwgZG91YmxlIHNwZWVkKQoreworI2lmIEVOQUJMRShHRU9M
T0NBVElPTikKKyAgICBEUlRfU1VQUFJUX1BBR0VfR0VUX09SX1JFVFVSTihld2tWaWV3LCBwYWdl
KTsKKworICAgIFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50TW9jayogbW9jayA9IHN0YXRpY19j
YXN0PFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50TW9jayo+KFdlYkNvcmU6Okdlb2xvY2F0aW9u
Q29udHJvbGxlcjo6ZnJvbShwYWdlKS0+Y2xpZW50KCkpOworICAgIG1vY2stPnNldFBvc2l0aW9u
KFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0ZShjdXJyZW50VGltZSgpLCBsYXRp
dHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSwgY2FuUHJvdmlkZUFsdGl0dWRlLCBhbHRpdHVkZSwg
Y2FuUHJvdmlkZUFsdGl0dWRlQWNjdXJhY3ksIGFsdGl0dWRlQWNjdXJhY3ksIGNhblByb3ZpZGVI
ZWFkaW5nLCBoZWFkaW5nLCBjYW5Qcm92aWRlU3BlZWQsIHNwZWVkKSk7CisjZWxzZQorICAgIFVO
VVNFRF9QQVJBTShld2tWaWV3KTsKKyAgICBVTlVTRURfUEFSQU0obGF0aXR1ZGUpOworICAgIFVO
VVNFRF9QQVJBTShsb25naXR1ZGUpOworICAgIFVOVVNFRF9QQVJBTShhY2N1cmFjeSk7CisgICAg
VU5VU0VEX1BBUkFNKGNhblByb3ZpZGVBbHRpdHVkZSk7CisgICAgVU5VU0VEX1BBUkFNKGFsdGl0
dWRlKTsKKyAgICBVTlVTRURfUEFSQU0oY2FuUHJvdmlkZUFsdGl0dWRlQWNjdXJhY3kpOworICAg
IFVOVVNFRF9QQVJBTShhbHRpdHVkZUFjY3VyYWN5KTsKKyAgICBVTlVTRURfUEFSQU0oY2FuUHJv
dmlkZUhlYWRpbmcpOworICAgIFVOVVNFRF9QQVJBTShoZWFkaW5nKTsKKyAgICBVTlVTRURfUEFS
QU0oY2FuUHJvdmlkZVNwZWVkKTsKKyAgICBVTlVTRURfUEFSQU0oc3BlZWQpOworI2VuZGlmCit9
CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3Np
dGlvblVuYXZhaWxhYmxlRXJyb3IoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IGNo
YXIqIGVycm9yTWVzc2FnZSkKK3sKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCisgICAgRFJUX1NV
UFBSVF9QQUdFX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgcGFnZSk7CisKKyAgICBXZWJDb3JlOjpH
ZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2sgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpHZW9sb2Nh
dGlvbkNsaWVudE1vY2sqPihXZWJDb3JlOjpHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFn
ZSktPmNsaWVudCgpKTsKKyAgICBtb2NrLT5zZXRQb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IoZXJy
b3JNZXNzYWdlKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGV3a1ZpZXcpOworICAgIFVOVVNF
RF9QQVJBTShlcnJvck1lc3NhZ2UpOworI2VuZGlmCit9CisKK2ludCBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRFZmw6Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKGNv
bnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQoreworI2lmIEVOQUJMRShHRU9MT0NBVElPTikKKyAg
ICBEUlRfU1VQUFJUX1BBR0VfR0VUX09SX1JFVFVSTihld2tWaWV3LCBwYWdlLCAtMSk7CisKKyAg
ICBXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2sgPSBzdGF0aWNfY2FzdDxXZWJD
b3JlOjpHZW9sb2NhdGlvbkNsaWVudE1vY2sqPihXZWJDb3JlOjpHZW9sb2NhdGlvbkNvbnRyb2xs
ZXI6OmZyb20ocGFnZSktPmNsaWVudCgpKTsKKyAgICByZXR1cm4gbW9jay0+bnVtYmVyT2ZQZW5k
aW5nUGVybWlzc2lvblJlcXVlc3RzKCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShld2tWaWV3
KTsKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmggYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaAppbmRleCAz
NWMwNTAwLi41OWE2M2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaApAQCAtNDksNiArNDksOSBA
QCBwdWJsaWM6CiAKICAgICB+RHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsKCkgeyB9CiAKKyAgICBz
dGF0aWMgdm9pZCBzZXREdW1wUmVuZGVyVHJlZU1vZGVFbmFibGVkKGJvb2wpOworICAgIHN0YXRp
YyBib29sIGR1bXBSZW5kZXJUcmVlTW9kZUVuYWJsZWQoKTsKKwogICAgIHN0YXRpYyB1bnNpZ25l
ZCBhY3RpdmVBbmltYXRpb25zQ291bnQoY29uc3QgRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKICAg
ICBzdGF0aWMgYm9vbCBjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXcoRXZhc19PYmplY3QqIGV3a0Zy
YW1lKTsKICAgICBzdGF0aWMgdm9pZCBjbGVhckZyYW1lTmFtZShFdmFzX09iamVjdCogZXdrRnJh
bWUpOwpAQCAtMTI3LDYgKzEzMCwxNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgY29uZmly
bUNvbXBvc2l0aW9uKEV2YXNfT2JqZWN0KiwgY29uc3QgY2hhciopOwogICAgIHN0YXRpYyBXZWJD
b3JlOjpJbnRSZWN0IGZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKEV2YXNfT2JqZWN0KiwgaW50
LCBpbnQpOwogICAgIHN0YXRpYyBib29sIHNlbGVjdGVkUmFuZ2UoRXZhc19PYmplY3QqLCBpbnQq
LCBpbnQqKTsKKworICAgIC8vIEdlb2xvY2F0aW9uCisgICAgc3RhdGljIHZvaWQgcmVzZXRHZW9s
b2NhdGlvbkNsaWVudE1vY2soY29uc3QgRXZhc19PYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBz
ZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9uKGNvbnN0IEV2YXNfT2JqZWN0KiwgYm9vbCBhbGxv
d2VkKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihjb25zdCBF
dmFzX09iamVjdCosIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFj
Y3VyYWN5LCBib29sIGNhblByb3ZpZGVBbHRpdHVkZSwgZG91YmxlIGFsdGl0dWRlLCBib29sIGNh
blByb3ZpZGVBbHRpdHVkZUFjY3VyYWN5LCBkb3VibGUgYWx0aXR1ZGVBY2N1cmFjeSwgYm9vbCBj
YW5Qcm92aWRlSGVhZGluZywgZG91YmxlIGhlYWRpbmcsIGJvb2wgY2FuUHJvdmlkZVNwZWVkLCBk
b3VibGUgc3BlZWQpOworICAgIHN0YXRpYyB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9u
VW5hdmFpbGFibGVFcnJvcihjb25zdCBFdmFzX09iamVjdCosIGNvbnN0IGNoYXIqIGVycm9yTWVz
c2FnZSk7CisgICAgc3RhdGljIGludCBudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0cyhjb25zdCBFdmFzX09iamVjdCopOworCitwcml2YXRlOgorICAgIHN0YXRpYyBi
b29sIHNfZHJ0UnVuOwogfTsKIAogI2VuZGlmIC8vIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCA0MDMwMjk1Li5mYWE1NWMyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJD
b250ZXh0TWVudUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2lu
Y2x1ZGUgIkRyYWdDbGllbnRFZmwuaCIKKyNpbmNsdWRlICJEdW1wUmVuZGVyVHJlZVN1cHBvcnRF
ZmwuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnRFZmwuaCIKICNpbmNsdWRlICJFZmxTY3JlZW5V
dGlsaXRpZXMuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKQEAgLTg1LDYgKzg2LDExIEBA
CiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25DbGllbnRFZmwuaCIKICNlbmRpZgogCisjaWYg
RU5BQkxFKEdFT0xPQ0FUSU9OKQorI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ2xpZW50TW9jay5oIgor
I2luY2x1ZGUgIkdlb2xvY2F0aW9uQ29udHJvbGxlci5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUo
VklCUkFUSU9OKQogI2luY2x1ZGUgIlZpYnJhdGlvbkNsaWVudEVmbC5oIgogI2VuZGlmCkBAIC03
ODQsNiArNzkwLDE0IEBAIHN0YXRpYyBFd2tfVmlld19Qcml2YXRlX0RhdGEqIF9ld2tfdmlld19w
cml2X25ldyhFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiAgICAgV2ViQ29yZTo6cHJv
dmlkZU5hdmlnYXRvckNvbnRlbnRVdGlsc1RvKHByaXYtPnBhZ2UuZ2V0KCksIHByaXYtPm5hdmln
YXRvckNvbnRlbnRVdGlsc0NsaWVudC5nZXQoKSk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShHRU9M
T0NBVElPTikKKyAgICBpZiAoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpkdW1wUmVuZGVyVHJl
ZU1vZGVFbmFibGVkKCkpIHsKKyAgICAgICAgV2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRNb2Nr
KiBtb2NrID0gbmV3IFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50TW9jazsKKyAgICAgICAgV2Vi
Q29yZTo6cHJvdmlkZUdlb2xvY2F0aW9uVG8ocHJpdi0+cGFnZS5nZXQoKSwgbW9jayk7CisgICAg
ICAgIG1vY2stPnNldENvbnRyb2xsZXIoV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVyOjpm
cm9tKHByaXYtPnBhZ2UuZ2V0KCkpKTsKKyAgICB9CisjZW5kaWYKKwogICAgIHByaXYtPnBhZ2VT
ZXR0aW5ncyA9IHByaXYtPnBhZ2UtPnNldHRpbmdzKCk7CiAKICAgICBXZWJDb3JlOjpMYXlvdXRN
aWxlc3RvbmVzIGxheW91dE1pbGVzdG9uZXMgPSBXZWJDb3JlOjpEaWRGaXJzdExheW91dCB8IFdl
YkNvcmU6OkRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dDsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2ZmQ1YTE0Li44OTYyYTk1IDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjIgQEAKKzIwMTItMTAtMzEgIFNlb25hZSBLaW0gIDxzdW5hZWx1di5raW1Ac2Ftc3VuZy5jb20+
CisKKyAgICAgICAgW0VGTF1bRFJUXSBTdXBwb3J0IEdlb2xvY2F0aW9uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzQyNworCisgICAgICAgIFJldmll
d2VkIGJ5IEd5dXlvdW5nIEtpbS4gCisKKyAgICAgICAgSW1wbGVtZW50IG1ldGhvZHMgdG8gdXNl
IEdlb2xvY2F0aW9uQ2xpZW50TW9jayBpbiBEdW1wUmVuZGVyVHJlZS4KKyAgICAgICAgVGhpcyBj
bGllbnQgYXR0YWNoZXMgdG8gdGhlIHBhZ2Ugd2hlbmV2ZXIgYSB2aWV3IGlzIGNyZWF0ZWQuCisK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwOgor
ICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6OmNyZWF0ZVZpZXcpOgorICAgICAgICAoRHVt
cFJlbmRlclRyZWVDaHJvbWU6OnJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcDoKKyAgICAgICAgKFRl
c3RSdW5uZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKToKKyAgICAgICAgKFRlc3RSdW5u
ZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcik6CisgICAgICAg
IChUZXN0UnVubmVyOjpzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24pOgorICAgICAgICAoVGVzdFJ1
bm5lcjo6bnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMpOgorCiAy
MDEyLTEwLTMxICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgU2Ny
aXB0IHJ1biBmcm9tIGFuIGlzb2xhdGVkIHdvcmxkIHNob3VsZCBieXBhc3MgYSBwYWdlJ3MgQ1NQ
LgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hy
b21lLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5j
cHAKaW5kZXggZDFiYTVmZi4uZmI5YzcxNyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCkBAIC0xOTYsNiArMTk2LDggQEAgdm9pZCBE
dW1wUmVuZGVyVHJlZUNocm9tZTo6cmVtb3ZlV2luZG93KEV2YXNfT2JqZWN0KiB2aWV3KQogCiBi
b29sIER1bXBSZW5kZXJUcmVlQ2hyb21lOjppbml0aWFsaXplKCkKIHsKKyAgICAvLyBOb3RpZmll
cyB0aGF0IERSVCBpcyBydW5uaW5nIGZvciBld2tWaWV3IHRvIGNyZWF0ZSB0ZXN0YWJsZSBvYmpl
Y3RzLgorICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0RHVtcFJlbmRlclRyZWVNb2Rl
RW5hYmxlZCh0cnVlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldE1vY2tTY3Jv
bGxiYXJzRW5hYmxlZCh0cnVlKTsKIAogICAgIG1fbWFpblZpZXcgPSBjcmVhdGVWaWV3KCk7CkBA
IC0zMDgsNiArMzEwLDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6cmVzZXREZWZhdWx0
c1RvQ29uc2lzdGVudFZhbHVlcygpCiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpjbGVh
ck9wZW5lcihtYWluRnJhbWUoKSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpjbGVh
clVzZXJTY3JpcHRzKG1haW5WaWV3KCkpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6
Y2xlYXJVc2VyU3R5bGVTaGVldHMobWFpblZpZXcoKSk7CisgICAgRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsOjpyZXNldEdlb2xvY2F0aW9uQ2xpZW50TW9jayhtYWluVmlldygpKTsKICAgICBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldEludGVyYWN0aXZlRm9ybVZhbGlkYXRpb25FbmFibGVk
KG1haW5WaWV3KCksIHRydWUpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0VmFs
aWRhdGlvbk1lc3NhZ2VUaW1lck1hZ25pZmljYXRpb24obWFpblZpZXcoKSwgLTEpOwogICAgIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQobWFp
blZpZXcoKSwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVz
dFJ1bm5lckVmbC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5j
cHAKaW5kZXggMTk3MDNhZS4uY2Q3OGIxMCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9U
ZXN0UnVubmVyRWZsLmNwcApAQCAtMzY1LDMwICszNjUsNDEgQEAgdm9pZCBUZXN0UnVubmVyOjpz
ZXRNb2NrRGV2aWNlT3JpZW50YXRpb24oYm9vbCwgZG91YmxlLCBib29sLCBkb3VibGUsIGJvb2ws
IGRvdWIKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldE1v
Y2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGJvb2wsIGRvdWJs
ZSwgYm9vbCwgZG91YmxlLCBib29sLCBkb3VibGUsIGJvb2wsIGRvdWJsZSkKK3ZvaWQgVGVzdFJ1
bm5lcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUg
bG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3ksIGJvb2wgY2FuUHJvdmlkZUFsdGl0dWRlLCBkb3Vi
bGUgYWx0aXR1ZGUsIGJvb2wgY2FuUHJvdmlkZUFsdGl0dWRlQWNjdXJhY3ksIGRvdWJsZSBhbHRp
dHVkZUFjY3VyYWN5LCBib29sIGNhblByb3ZpZGVIZWFkaW5nLCBkb3VibGUgaGVhZGluZywgYm9v
bCBjYW5Qcm92aWRlU3BlZWQsIGRvdWJsZSBzcGVlZCkKIHsKLSAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IGZvciBHZW9sb2NhdGlvbiBsYXlvdXQgdGVzdHMuCi0gICAgLy8gU2VlIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODI2NC4KLSAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIEV2YXNfT2JqZWN0KiB2aWV3ID0gYnJvd3Nlci0+bWFpblZpZXcoKTsKKyAgICBpZiAo
YnJvd3Nlci0+ZXh0cmFWaWV3cygpLnNpemUoKSA+IDApCisgICAgICAgIHZpZXcgPSBicm93c2Vy
LT5leHRyYVZpZXdzKCkubGFzdCgpOworCisgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpz
ZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbih2aWV3LCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1
cmFjeSwgY2FuUHJvdmlkZUFsdGl0dWRlLCBhbHRpdHVkZSwgY2FuUHJvdmlkZUFsdGl0dWRlQWNj
dXJhY3ksIGFsdGl0dWRlQWNjdXJhY3ksIGNhblByb3ZpZGVIZWFkaW5nLCBoZWFkaW5nLCBjYW5Q
cm92aWRlU3BlZWQsIHNwZWVkKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9j
YXRpb25Qb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IoSlNTdHJpbmdSZWYpCit2b2lkIFRlc3RSdW5u
ZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihKU1N0cmluZ1Jl
ZiBtZXNzYWdlKQogewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIEdlb2xvY2F0aW9uIGxh
eW91dCB0ZXN0cy4KLSAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI4MjY0LgotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgRXZhc19PYmplY3QqIHZp
ZXcgPSBicm93c2VyLT5tYWluVmlldygpOworICAgIGlmIChicm93c2VyLT5leHRyYVZpZXdzKCku
c2l6ZSgpID4gMCkKKyAgICAgICAgdmlldyA9IGJyb3dzZXItPmV4dHJhVmlld3MoKS5sYXN0KCk7
CisKKyAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0
aW9uVW5hdmFpbGFibGVFcnJvcih2aWV3LCBtZXNzYWdlLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
KTsKIH0KIAogdm9pZCBUZXN0UnVubmVyOjpzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24oYm9vbCBh
bGxvdykKIHsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IGZvciBHZW9sb2NhdGlvbiBsYXlvdXQg
dGVzdHMuCiAgICAgc2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uQ29tbW9uKGFsbG93KTsKKyAgICBF
dmFzX09iamVjdCogdmlldyA9IGJyb3dzZXItPm1haW5WaWV3KCk7CisgICAgaWYgKGJyb3dzZXIt
PmV4dHJhVmlld3MoKS5zaXplKCkgPiAwKQorICAgICAgICB2aWV3ID0gYnJvd3Nlci0+ZXh0cmFW
aWV3cygpLmxhc3QoKTsKKworICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0TW9ja0dl
b2xvY2F0aW9uUGVybWlzc2lvbih2aWV3LCBhbGxvdyk7CiB9CiAKIGludCBUZXN0UnVubmVyOjpu
dW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cygpCiB7Ci0gICAgLy8g
RklYTUU6IEltcGxlbWVudCBmb3IgR2VvbG9jYXRpb24gbGF5b3V0IHRlc3RzLgotICAgIHJldHVy
biAtMTsKKyAgICBFdmFzX09iamVjdCogdmlldyA9IGJyb3dzZXItPm1haW5WaWV3KCk7CisgICAg
aWYgKGJyb3dzZXItPmV4dHJhVmlld3MoKS5zaXplKCkgPiAwKQorICAgICAgICB2aWV3ID0gYnJv
d3Nlci0+ZXh0cmFWaWV3cygpLmxhc3QoKTsKKworICAgIHJldHVybiBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRFZmw6Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKHZp
ZXcpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OmFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdChKU1N0
cmluZ1JlZiwgZG91YmxlLCBKU1N0cmluZ1JlZikK
</data>

          </attachment>
      

    </bug>

</bugzilla>