<?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>96267</bug_id>
          
          <creation_ts>2012-09-10 06:05:28 -0700</creation_ts>
          <short_desc>[CSSRegions]Flag auto-height regions</short_desc>
          <delta_ts>2012-11-05 01:38:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</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>91097</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mihnea Ovidenie">mihnea</reporter>
          <assigned_to name="Mihnea Ovidenie">mihnea</assigned_to>
          <cc>donggwan.kim</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>715996</commentid>
    <comment_count>0</comment_count>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-09-10 06:05:28 -0700</bug_when>
    <thetext>First split of auto-height regions bigger patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718212</commentid>
    <comment_count>1</comment_count>
      <attachid>163592</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-09-12 05:03:48 -0700</bug_when>
    <thetext>Created attachment 163592
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718218</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-12 05:07:49 -0700</bug_when>
    <thetext>Attachment 163592 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1
/mnt/git/webkit-style-queue/Tools/Scripts/webkitpy/layout_tests/port/chromium_android.py:34: DeprecationWarning: the sets module is deprecated
  import sets
WARNING: Using the chromium port without having the downstream skia_test_expectations.txt file checked out. Expectations related things might be wonky.
LayoutTests/platform/chromium/TestExpectations:2503:  Unsupported expectation: FAIL  [test/expectations] [5]
Total errors found: 1 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719593</commentid>
    <comment_count>3</comment_count>
      <attachid>163592</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-09-13 09:37:31 -0700</bug_when>
    <thetext>Comment on attachment 163592
Patch

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

The patch doesn&apos;t apply on ToT. I would like to see a revised version but the approach looks OK.

&gt;&gt; LayoutTests/platform/chromium/TestExpectations:2503
&gt;&gt; +BUGWK96267 SKIP : fast/regions/autoheight-regions-mark.html = FAIL
&gt; 
&gt; Unsupported expectation: FAIL  [test/expectations] [5]

I think you just put PASS instead of FAIL as you are SKIP&apos;ping them.

&gt; Source/WebCore/ChangeLog:11
&gt; +        - has height: auto and is part of the normal flow
&gt; +        - has height: auto, is not part of normal flow and does not have top/bottom specified

Let&apos;s use precise language here. You are doing the right thing in the code by looking at the *logical* height and *logical* top/bottom but this ChangeLog could lead people to think otherwise.

&gt; Source/WebCore/rendering/RenderRegion.cpp:304
&gt; +    if (isValid()) {

Nit: Early return are preferred.

&gt; Source/WebCore/rendering/RenderRegion.h:118
&gt; +    bool usesAutoHeight() const { return m_usesAutoHeight; }

Not a huge fan of the naming, first it should be usesAutoLogicalHeight. But the whole hasAutoHeightStyle vs usesAutoHeight is not super clear to me.

In RenderLayer, we use a pattern of should* / is* (shouldBeNormalFlowOnly / isNormalFlowOnly, shouldBeSelfPaintingLayer / isSelfPaintingLayer). It would fit nicely here.

&gt; Source/WebCore/rendering/RenderRegion.h:195
&gt; +    bool m_usesAutoHeight;

May be better to move it with the other booleans above.

&gt; Source/WebCore/rendering/RenderView.cpp:160
&gt; +#ifndef NDEBUG
&gt; +        if (m_flowThreadController)
&gt; +            m_flowThreadController-&gt;checkAutoHeightRegions();
&gt; +#endif

Pushing that into layoutRenderNamedFlowThreads() would have made more sense but that means losing some coverage as the check wouldn&apos;t be run if you have no named flow thread. This could easily be fixed by moving the count check for named flow thread into layoutRenderNamedFlowThreads.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721889</commentid>
    <comment_count>4</comment_count>
      <attachid>164389</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-09-17 07:00:00 -0700</bug_when>
    <thetext>Created attachment 164389
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721892</commentid>
    <comment_count>5</comment_count>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-09-17 07:03:19 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 163592 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=163592&amp;action=review
&gt; 
&gt; The patch doesn&apos;t apply on ToT. I would like to see a revised version but the approach looks OK.
&gt; 
&gt; &gt;&gt; LayoutTests/platform/chromium/TestExpectations:2503
&gt; &gt;&gt; +BUGWK96267 SKIP : fast/regions/autoheight-regions-mark.html = FAIL
&gt; &gt; 
&gt; &gt; Unsupported expectation: FAIL  [test/expectations] [5]
&gt; 
&gt; I think you just put PASS instead of FAIL as you are SKIP&apos;ping them.
&gt; 

Done.

&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +        - has height: auto and is part of the normal flow
&gt; &gt; +        - has height: auto, is not part of normal flow and does not have top/bottom specified
&gt; 
&gt; Let&apos;s use precise language here. You are doing the right thing in the code by looking at the *logical* height and *logical* top/bottom but this ChangeLog could lead people to think otherwise.
&gt; 

Done.

&gt; &gt; Source/WebCore/rendering/RenderRegion.cpp:304
&gt; &gt; +    if (isValid()) {
&gt; 
&gt; Nit: Early return are preferred.
&gt; 

Done.

&gt; &gt; Source/WebCore/rendering/RenderRegion.h:118
&gt; &gt; +    bool usesAutoHeight() const { return m_usesAutoHeight; }
&gt; 
&gt; Not a huge fan of the naming, first it should be usesAutoLogicalHeight. But the whole hasAutoHeightStyle vs usesAutoHeight is not super clear to me.
&gt; 
&gt; In RenderLayer, we use a pattern of should* / is* (shouldBeNormalFlowOnly / isNormalFlowOnly, shouldBeSelfPaintingLayer / isSelfPaintingLayer). It would fit nicely here.
&gt; 

I used shouldHaveAutoLogicalHeight() and hasAutoLogicalHeight(). I preferred these names instead of shouldBeAutoLogicalHeight/isAutoLogicalHeight.

&gt; &gt; Source/WebCore/rendering/RenderRegion.h:195
&gt; &gt; +    bool m_usesAutoHeight;
&gt; 
&gt; May be better to move it with the other booleans above.
&gt; 

Done, also made the booleans bit sized.

&gt; &gt; Source/WebCore/rendering/RenderView.cpp:160
&gt; &gt; +#ifndef NDEBUG
&gt; &gt; +        if (m_flowThreadController)
&gt; &gt; +            m_flowThreadController-&gt;checkAutoHeightRegions();
&gt; &gt; +#endif
&gt; 
&gt; Pushing that into layoutRenderNamedFlowThreads() would have made more sense but that means losing some coverage as the check wouldn&apos;t be run if you have no named flow thread. This could easily be fixed by moving the count check for named flow thread into layoutRenderNamedFlowThreads.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721975</commentid>
    <comment_count>6</comment_count>
      <attachid>164389</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-09-17 09:05:34 -0700</bug_when>
    <thetext>Comment on attachment 164389
Patch 2

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

&gt; LayoutTests/ChangeLog:14
&gt; +        * platform/mac/fast/regions/autoheight-regions-mark-expected.png: Added.
&gt; +        * platform/mac/fast/regions/autoheight-regions-mark-expected.txt: Added.

Unless I am mistaking, those baselines are cross-platform and could be moved next to the test case.

&gt; Source/WebCore/rendering/FlowThreadController.cpp:104
&gt; +#ifndef NDEBUG
&gt; +    checkAutoLogicalHeightRegions();
&gt; +#endif

An alternative to that would be to change checkAutoLogicalHeightRegions to isAutoLogicalHeightRegionsFlagConsistent and make it return a boolean so that you can just do:

ASSERT(isAutoLogicalHeightRegionsFlagConsistent());

That would be my preferred way.

&gt; Source/WebCore/rendering/RenderRegion.cpp:206
&gt; +    checkRegionHavingAutoLogicalHeight();

Checking is more about a &apos;check&apos; (for example your check in RenderFlowThread), not really an &apos;update&apos;. I would name it updateRegionHasAutoLogicalHeightFlag, recomputeRegionAutoLogicalHeightFlag or similar.

&gt; Source/WebCore/rendering/RenderTreeAsText.cpp:698
&gt; +                    if (renderRegion-&gt;hasAutoLogicalHeight())
&gt; +                        ts &lt;&lt; &quot; hasAutoLogicalHeight&quot;;

This really looks like it should be in RenderRegion::renderName(). As this is the existing pattern, I am not asking to change it now but you should consider that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722577</commentid>
    <comment_count>7</comment_count>
      <attachid>164510</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-09-18 01:12:30 -0700</bug_when>
    <thetext>Created attachment 164510
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722591</commentid>
    <comment_count>8</comment_count>
      <attachid>164510</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-18 01:39:37 -0700</bug_when>
    <thetext>Comment on attachment 164510
Patch for landing

Clearing flags on attachment: 164510

Committed r128861: &lt;http://trac.webkit.org/changeset/128861&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722592</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-18 01:39:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163592</attachid>
            <date>2012-09-12 05:03:48 -0700</date>
            <delta_ts>2012-09-17 07:00:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>96267.patch</filename>
            <type>text/plain</type>
            <size>18974</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhMzJiNDZkLi5lYzE5ZDc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDkt
MTIgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTU1Jl
Z2lvbnNdRmxhZyBhdXRvLWhlaWdodCByZWdpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjI2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZSByZWdpb25zIGhhdmluZyBhdXRvLWhlaWdodCBzaG91
bGQgYmUgZmxhZ2dlZCBzbyB0aGF0IHRoZWlyIGhlaWdodCB3aWxsIGNvbXB1dGVkIGFzIHBhcnQg
b2YgYSAyIHBhc3MtbGF5b3V0IG1lY2hhbmlzbS4KKyAgICAgICAgQWRkZWQgYSB0ZXN0IHRoYXQg
Y2hlY2tzIHdoZXRoZXIgYSByZWdpb24gaW4gc2V2ZXJhbCBzaXR1YXRpb25zIGlzIG1hcmtlZCBw
cm9wZXJseS4KKworICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LXJlZ2lvbnMtbWFy
ay5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRp
b25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1yZWdp
b25zLW1hcmstZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFz
dC9yZWdpb25zL2F1dG9oZWlnaHQtcmVnaW9ucy1tYXJrLWV4cGVjdGVkLnR4dDogQWRkZWQuCisK
IDIwMTItMDktMTEgIFRhaWp1IFRzdWlraSAgPHR6aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFdlYkZyYW1lSW1wbDo6Y2xpZW50KCkgbmVlZHMgTlVMTCBjaGVjayBpbiBXZWJXb3JrZXJDbGll
bnRJbXBsOjpvcGVuRmlsZVN5c3RlbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdp
b25zL2F1dG9oZWlnaHQtcmVnaW9ucy1tYXJrLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvYXV0b2hlaWdodC1yZWdpb25zLW1hcmsuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi42NTRkZjA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL2F1dG9oZWlnaHQtcmVnaW9ucy1tYXJrLmh0bWwKQEAgLTAsMCArMSw1OSBAQAorPCFk
b2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8IS0tIFRlc3RzIHRoYXQgcmVnaW9ucyB3aXRoIGF1
dG8taGVpZ2h0IGFyZSBpZGVudGlmaWVkIGFuZCBmbGFnZ2VkIGNvcnJlY3RseSAtLT4KKyAgICA8
aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgLnNwZWNpZmllZFdpZHRoIHsgd2lk
dGg6IDUwcHg7IH0KKyAgICAgICAgICAgIC5zcGVjaWZpZWRXaWR0aDIgeyB3aWR0aDogMTAwcHg7
IH0KKyAgICAgICAgICAgIC5zcGVjaWZpZWRIZWlnaHQgeyBoZWlnaHQ6IDUwcHg7IH0KKyAgICAg
ICAgICAgIC5hdXRvSGVpZ2h0IHsgaGVpZ2h0OiBhdXRvOyB9CisKKyAgICAgICAgICAgICNyZWdp
b24gIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7IH0KKyAgICAgICAgICAgICNyZWdpb24yICB7
IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93MjsgfQorICAgICAgICAgICAgI3JlZ2lvbjMgeyAtd2Vi
a2l0LWZsb3ctZnJvbTogZmxvdzM7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA1MHB4OyBib3R0
b206IDEwMHB4OyB9CisgICAgICAgICAgICAjcmVnaW9uNCB7IC13ZWJraXQtZmxvdy1mcm9tOiBm
bG93NDsgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyOyBwb3NpdGlvbjogYWJzb2x1
dGU7IGxlZnQ6IDUwcHg7IHJpZ2h0OiAxMDBweDsgfQorICAgICAgICAgICAgI3JlZ2lvbjUgeyAt
d2Via2l0LWZsb3ctZnJvbTogZmxvdzU7IH0KKyAgICAgICAgICAgICNyZWdpb242IHsgLXdlYmtp
dC1mbG93LWZyb206IGZsb3c2OyB9CisgICAgICAgICAgICAjYXJ0aWNsZTcgeyAtd2Via2l0LWZs
b3ctaW50bzogZmxvdzc7IH0KKyAgICAgICAgICAgICNyZWdpb243IHsgLXdlYmtpdC1mbG93LWZy
b206IGZsb3c3OyB9CisgICAgICAgICAgICAjYXJ0aWNsZTggeyAtd2Via2l0LWZsb3ctaW50bzog
Zmxvdzg7IH0KKyAgICAgICAgICAgICNyZWdpb244IHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c4
OyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8
IS0tIEEgcmVnaW9uIHdpdGggc3BlY2lmaWVkIGhlaWdodCBzaG91bGQgbm90IGJlIG1hcmtlZCBh
cyBoYXZpbmcgYXV0byBoZWlnaHQgLS0+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbiIgY2xhc3M9
InNwZWNpZmllZFdpZHRoIHNwZWNpZmllZEhlaWdodCI+PC9kaXY+CisKKyAgICAgICAgPCEtLSBB
IHJlZ2lvbiB3aXRob3V0IGEgc3BlY2lmaWVkIGhlaWdodCBzaG91bGQgYmUgbWFya2VkIGFzIGhh
dmluZyBhdXRvIGhlaWdodCAtLT4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uMiIgY2xhc3M9InNw
ZWNpZmllZFdpZHRoIj48L2Rpdj4KKworICAgICAgICA8IS0tIEFuIG91dCBvZiBmbG93IHJlZ2lv
biB3aXRoIGhlaWdodCBhdXRvIGFuZCBzcGVjaWZpZWQgdG9wL2JvdHRvbSBzaG91bGQgbm90IGJl
IG1hcmtlZAorICAgICAgICBhcyBhdXRvLWhlaWdodCAtLT4KKyAgICAgICAgPGRpdiBpZD0icmVn
aW9uMyIgY2xhc3M9InNwZWNpZmllZFdpZHRoIj48L2Rpdj4KKworICAgICAgICA8IS0tIEFuIG91
dCBvZiBmbG93IHJlZ2lvbiB3aXRoIGhlaWdodCBhdXRvLCB2ZXJ0aWNhbCB3cml0aW5nIG1vZGUs
IHNwZWNpZmllZCBsZWZ0L3JpZ2h0IHNob3VsZAorICAgICAgICBub3QgYmUgbWFya2VkIGFzIGF1
dG8taGVpZ2h0LS0+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbjQiIGNsYXNzPSJzcGVjaWZpZWRI
ZWlnaHQiPjwvZGl2PgorCisgICAgICAgIDwhLS0gRHluYW1pYyBjaGFuZ2Ugb2YgaGVpZ2h0IHZh
bHVlcyBzaG91bGQgbWFyayB0aGUgcmVnaW9ucyBhdXRvIGhlaWdodCBjb3JyZWN0bHkgLS0+Cisg
ICAgICAgIDxkaXYgaWQ9InJlZ2lvbjUiIGNsYXNzPSJzcGVjaWZpZWRXaWR0aCBzcGVjaWZpZWRI
ZWlnaHQiPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJyZWdpb242IiBjbGFzcz0ic3BlY2lmaWVk
V2lkdGgiPjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInJlZ2lvbjUiKS5jbGFzc05hbWUgPSAic3BlY2lmaWVkV2lkdGggYXV0b0hl
aWdodCI7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uNiIpLmNs
YXNzTmFtZSA9ICJzcGVjaWZpZWRXaWR0aCBzcGVjaWZpZWRIZWlnaHQiOworICAgICAgICA8L3Nj
cmlwdD4KKworICAgICAgICA8IS0tIEFuIGludmFsaWQgcmVnaW9uIHNob3VsZCBub3QgYmUgbWFy
a2VkIGFzIGF1dG8gaGVpZ2h0IGV2ZW4gaWYgaXQgaGFzIGhlaWdodDphdXRvIHNpbmNlIGl0IHdp
bGwgbm90IGdldAorICAgICAgICBhbnkgY29udGVudC4gQmVsb3csIHJlZ2lvbjggaXMgaW52YWxp
ZC4gLS0+CisgICAgICAgIDxkaXYgaWQ9ImFydGljbGU4Ij4KKyAgICAgICAgICAgIDxkaXYgaWQ9
InJlZ2lvbjciIGNsYXNzPSJzcGVjaWZpZWRXaWR0aCI+PC9kaXY+CisgICAgICAgIDwvZGl2Pgor
ICAgICAgICA8ZGl2IGlkPSJhcnRpY2xlNyI+CisgICAgICAgICAgICA8ZGl2IGlkPSJyZWdpb244
IiBjbGFzcz0ic3BlY2lmaWVkV2lkdGgiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PHNjcmlwdD4KKyAgICAgICAgICAgIC8vIENoYW5naW5nIHN0eWxlIGZvciBhbiBpbnZhbGlkIHJl
Z2lvbiBzaG91bGQgbm90IG1hcmsgdGhlIHJlZ2lvbiBhcyBhdXRvSGVpZ2h0LgorICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjgiKS5jbGFzc05hbWUgPSAic3BlY2lm
aWVkV2lkdGgyIjsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZGQ0
ZjdlMy4uNTE2OTgzMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0
RXhwZWN0YXRpb25zCkBAIC0yNTAwLDYgKzI1MDAsOCBAQCBCVUdXSzc0MTM3IFdJTiBMSU5VWCBB
TkRST0lEIExJT04gOiBmYXN0L3JlZ2lvbnMvcmVnaW9uLW92ZXJmbG93LWF1dG8tb3ZlcmZsb3ct
aAogQlVHV0s3NDEzNyBTTk9XTEVPUEFSRCA6IGZhc3QvcmVnaW9ucy9yZWdpb24tb3ZlcmZsb3ct
YXV0by1vdmVyZmxvdy12aXNpYmxlLmh0bWwgPSBQQVNTIElNQUdFK1RFWFQgVElNRU9VVAogQlVH
V0s3NDEzNyBXSU4gTElOVVggQU5EUk9JRCBMSU9OIDogZmFzdC9yZWdpb25zL3JlZ2lvbi1vdmVy
Zmxvdy1hdXRvLW92ZXJmbG93LXZpc2libGUuaHRtbCA9IFBBU1MgTUlTU0lORwogCitCVUdXSzk2
MjY3IFNLSVAgOiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1yZWdpb25zLW1hcmsuaHRtbCA9IEZB
SUwKKwogLy8gQ1NTMyBmaWx0ZXJzIG5lZWRzIHJlYmFzZWxpbmVzIG9uIHdpbmRvd3MgYWZ0ZXIg
OTQzNzIKIEJVR1dLODI3ODMgV0lOIDogY3NzMy9maWx0ZXJzL2ZpbHRlci1jaGFuZ2UtcmVwYWlu
dC5odG1sID0gSU1BR0UKIEJVR1dLODI3ODMgV0lOIDogY3NzMy9maWx0ZXJzL2ZpbHRlci1jaGFu
Z2UtcmVwYWludC1jb21wb3NpdGVkLmh0bWwgPSBJTUFHRQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LXJlZ2lvbnMtbWFyay1leHBl
Y3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZWdpb25zL2F1dG9oZWln
aHQtcmVnaW9ucy1tYXJrLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mM2Q5NzRjYjIzNjQzOTY3
NTg0YWQwNTIzODY2MTgxOGVmNzcxNjhjCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzMjg5Cnpj
bWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTFCJVFsWWJwUnpua0I5Z0NDTTQ3JD1T
dUZ4ZU9Nagp6I3duPT0yQnYxX0RUWVJkTnZWa2pOIztxWiQqRT4kaUtaIUxoUkYlJHw5Pit1QE1M
P3NJRUdacmQzKVdFa3dKbXkKemZXZCtOJm1TKDVRUWBWa2NLKGJHMTRGfXNOP0QtTWUtMVlRTmw5
aVYyOEkrSzRoRHReaDYpU300IyEzWE0rME91CnpGXnB6fShVTWBiUjI7MWxNcipeLStIa1pzOUlY
dlVZZVZke3EyOX1Janh9ais4JT0+LTI/a0dCS2JMaCoyfjdaawpDODAqRlcKCmxpdGVyYWwgMApI
Y21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Jl
Z2lvbnMvYXV0b2hlaWdodC1yZWdpb25zLW1hcmstZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LXJlZ2lvbnMtbWFyay1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQzOTYzOAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlZ2lvbnMvYXV0b2hl
aWdodC1yZWdpb25zLW1hcmstZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzggQEAKK2xheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAor
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4MTE2CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCww
KSBzaXplIDgwMHgxMTYKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHgx
MDAKKyAgICAgIFJlbmRlclJlZ2lvbiB7RElWfSBhdCAoMCwwKSBzaXplIDUweDUwCisgICAgICBS
ZW5kZXJSZWdpb24ge0RJVn0gYXQgKDAsNTApIHNpemUgNTB4MAorICAgICAgUmVuZGVyUmVnaW9u
IHtESVZ9IGF0ICgwLDUwKSBzaXplIDUweDAKKyAgICAgIFJlbmRlclJlZ2lvbiB7RElWfSBhdCAo
MCw1MCkgc2l6ZSA1MHg1MAorRmxvdyBUaHJlYWRzCisgIFRocmVhZCB3aXRoIGZsb3ctbmFtZSAn
ZmxvdycKKyAgICBsYXllciBhdCAoMCwwKSBzaXplIDUweDUwCisgICAgICBSZW5kZXJOYW1lZEZs
b3dUaHJlYWQgYXQgKDAsMCkgc2l6ZSA1MHg1MAorICBSZWdpb25zIGZvciBmbG93ICdmbG93Jwor
ICAgIFJlbmRlclJlZ2lvbiB7RElWfSAjcmVnaW9uCisgIFRocmVhZCB3aXRoIGZsb3ctbmFtZSAn
ZmxvdzInCisgIFJlZ2lvbnMgZm9yIGZsb3cgJ2Zsb3cyJworICAgIFJlbmRlclJlZ2lvbiB7RElW
fSAjcmVnaW9uMiB1c2VzQXV0b0hlaWdodAorICBUaHJlYWQgd2l0aCBmbG93LW5hbWUgJ2Zsb3cz
JworICBSZWdpb25zIGZvciBmbG93ICdmbG93MycKKyAgICBSZW5kZXJSZWdpb24ge0RJVn0gI3Jl
Z2lvbjMKKyAgVGhyZWFkIHdpdGggZmxvdy1uYW1lICdmbG93NCcKKyAgUmVnaW9ucyBmb3IgZmxv
dyAnZmxvdzQnCisgICAgUmVuZGVyUmVnaW9uIHtESVZ9ICNyZWdpb240CisgIFRocmVhZCB3aXRo
IGZsb3ctbmFtZSAnZmxvdzUnCisgIFJlZ2lvbnMgZm9yIGZsb3cgJ2Zsb3c1JworICAgIFJlbmRl
clJlZ2lvbiB7RElWfSAjcmVnaW9uNSB1c2VzQXV0b0hlaWdodAorICBUaHJlYWQgd2l0aCBmbG93
LW5hbWUgJ2Zsb3c2JworICAgIGxheWVyIGF0ICgwLDApIHNpemUgNTB4NTAKKyAgICAgIFJlbmRl
ck5hbWVkRmxvd1RocmVhZCBhdCAoMCwwKSBzaXplIDUweDUwCisgIFJlZ2lvbnMgZm9yIGZsb3cg
J2Zsb3c2JworICAgIFJlbmRlclJlZ2lvbiB7RElWfSAjcmVnaW9uNgorICBUaHJlYWQgd2l0aCBm
bG93LW5hbWUgJ2Zsb3c4JworICBSZWdpb25zIGZvciBmbG93ICdmbG93OCcKKyAgICBSZW5kZXJS
ZWdpb24ge0RJVn0gI3JlZ2lvbjggaW52YWxpZAorICBUaHJlYWQgd2l0aCBmbG93LW5hbWUgJ2Zs
b3c3JworICBSZWdpb25zIGZvciBmbG93ICdmbG93NycKKyAgICBSZW5kZXJSZWdpb24ge0RJVn0g
I3JlZ2lvbjcgdXNlc0F1dG9IZWlnaHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhMzc1ODQyLi4zMzk2OTM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTItMDktMTIgIE1paG5lYSBPdmlkZW5pZSAg
PG1paG5lYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTU1JlZ2lvbnNdRmxhZyBhdXRvLWhlaWdo
dCByZWdpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NjI2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoZSByZWdpb25zIGhhdmluZyBhdXRvLWhlaWdodCBzaG91bGQgYmUgZmxhZ2dlZCBzbyB0aGF0
IHRoZWlyIGhlaWdodCB3aWxsIGNvbXB1dGVkIGFzIHBhcnQgb2YgYSAyIHBhc3MtbGF5b3V0IG1l
Y2hhbmlzbS4KKyAgICAgICAgQSB2YWxpZCByZWdpb24gaXMgZmxhZ2dlZCBhcyB1c2luZyBhdXRv
LWhlaWdodCBpZjoKKyAgICAgICAgLSBoYXMgaGVpZ2h0OiBhdXRvIGFuZCBpcyBwYXJ0IG9mIHRo
ZSBub3JtYWwgZmxvdworICAgICAgICAtIGhhcyBoZWlnaHQ6IGF1dG8sIGlzIG5vdCBwYXJ0IG9m
IG5vcm1hbCBmbG93IGFuZCBkb2VzIG5vdCBoYXZlIHRvcC9ib3R0b20gc3BlY2lmaWVkCisgICAg
ICAgIEFuIGludmFsaWQgcmVnaW9uIChwYXJ0IG9mIGNpcmN1bGFyIGRlcGVuZGVuY3kpIHdpbGwg
bm90IGJlIG1hcmtlZCBldmVuIGlmIGl0cyBzdHlsZSBtYXRjaGVzIHRoZSBhYm92ZSBzaXR1YXRp
b25zLgorCisgICAgICAgIFRlc3Q6IGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LXJlZ2lvbnMtbWFy
ay5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwOiBL
ZWVwIGEgY291bnRlciBvZiBhdXRvLWhlaWdodCB2YWxpZCByZWdpb25zCisgICAgICAgIChXZWJD
b3JlOjpGbG93VGhyZWFkQ29udHJvbGxlcjo6Rmxvd1RocmVhZENvbnRyb2xsZXIpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpGbG93VGhyZWFkQ29udHJvbGxlcjo6Y2hl
Y2tBdXRvSGVpZ2h0UmVnaW9ucyk6IEhlbHBlciBmdW5jdGlvbiB0aGF0IGlzIHVzZWQgdG8gdmVy
aWZ5IHRoZSBudW1iZXIgb2YgYXV0by1oZWlnaHQgcmVnaW9ucy4KKyAgICAgICAgKiByZW5kZXJp
bmcvRmxvd1RocmVhZENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRD
b250cm9sbGVyOjpoYXNBdXRvSGVpZ2h0UmVnaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpGbG93
VGhyZWFkQ29udHJvbGxlcjo6aW5jcmVtZW50QXV0b0hlaWdodFJlZ2lvbnMpOgorICAgICAgICAo
V2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6OmRlY3JlbWVudEF1dG9IZWlnaHRSZWdpb25z
KToKKyAgICAgICAgKEZsb3dUaHJlYWRDb250cm9sbGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyRmxvd1RocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckZsb3dUaHJlYWQ6OmF1dG9IZWlnaHRSZWdpb25zQ291bnQpOiBIZWxwZXIgZnVu
Y3Rpb24gdGhhdCBpcyB1c2VkIHRvIGNvdW50IHRoZSBudW1iZXIgb2YgcmVnaW9ucyBtYXJrZWQg
YXMgdXNpbmcgYXV0by1oZWlnaHQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJl
YWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclJlZ2lvbjo6UmVuZGVyUmVnaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclJlZ2lvbjo6Y2hlY2tSZWdpb25Vc2luZ0F1dG9IZWlnaHQpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZWdpb246OnN0eWxlRGlkQ2hhbmdlKTogRm9y
IGEgcmVnaW9uIHRoYXQgaXMgYXR0YWNoZWQgdG8gYSBmbG93IHRocmVhZCwgdmVyaWZ5IHdoZXRo
ZXIgdGhlIHN0eWxlIGNoYW5nZSBtb2RpZmllZCBpdHMgYXV0by1oZWlnaHQgYXBwZWFyYW5jZS4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6YXR0YWNoUmVnaW9uKTogSGFuZGxlIHRo
ZSBjYXNlIG9mIGF0dGFjaGluZyByZWdpb24gdG8gYSBmbG93IHRocmVhZCBhbmQgdGhlIGRldGFj
aC9hdHRhY2ggc2VxdWVuY2Ugd2hlbiB0aGUgcmVnaW9uIGlzIG1vdmVkIGluIHRoZSByZW5kZXIg
dHJlZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6ZGV0YWNoUmVnaW9uKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJSZWdpb246Omhhc0F1dG9IZWlnaHRTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJS
ZWdpb246OnVzZXNBdXRvSGVpZ2h0KToKKyAgICAgICAgKFJlbmRlclJlZ2lvbik6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwOiBGb3IgdGhlIHJlZ2lvbnMgdGhhdCB1
c2UgYXV0by1oZWlnaHQsIG1vZGlmeSB0aGUgb3V0cHV0IHRvIHJlZmxlY3QgdGhhdC4KKyAgICAg
ICAgKFdlYkNvcmU6OndyaXRlUmVuZGVyTmFtZWRGbG93VGhyZWFkcyk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclZpZXcuY3BwOiBJZiB0aGUgdmlldyBoYXMgZmxvdyB0aHJlYWRzLCB2ZXJp
ZnkgdGhhdCB0aGUgY3VycmVudCBudW1iZXIgb2YgYXV0by1oZWlnaHQgcmVnaW9ucyBpcyBjb3Jy
ZWN0IGJ5IGl0ZXJhdGluZyBvdmVyIGFsbCB0aGUgcmVnaW9ucyBhdHRhY2hlZCB0byB0aGUgZmxv
dyB0aHJlYWRzCisgICAgICAgIGFuZCBjb21wdXRlIHRoZSBudW1iZXIgb2YgYXV0by1oZWlnaHQg
cmVnaW9ucyBvbiB0aGUgc3BvdC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OmxheW91
dCk6CisKIDIwMTItMDktMTEgIFJ5dWFuIENob2kgIDxyeXVhbi5jaG9pQHNhbXN1bmcuY29tPgog
CiAgICAgICAgIFtDTUFLRV0gU3VwcGx5IGZlYXR1cmUgZGVmaW5lcyB0byBDb2RlR2VuZXJhdG9y
VGVzdFJ1bm5lci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhy
ZWFkQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENv
bnRyb2xsZXIuY3BwCmluZGV4IDllZGQwYWEuLmRkY2I1NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcApAQCAtNDksNiArNDksNyBA
QCBGbG93VGhyZWFkQ29udHJvbGxlcjo6Rmxvd1RocmVhZENvbnRyb2xsZXIoUmVuZGVyVmlldyog
dmlldykKICAgICA6IG1fdmlldyh2aWV3KQogICAgICwgbV9jdXJyZW50UmVuZGVyRmxvd1RocmVh
ZCgwKQogICAgICwgbV9pc1JlbmRlck5hbWVkRmxvd1RocmVhZE9yZGVyRGlydHkoZmFsc2UpCisg
ICAgLCBtX2F1dG9IZWlnaHRSZWdpb25zQ291bnQoMCkKIHsKIH0KIApAQCAtMTU2LDQgKzE1Nywy
MyBAQCB2b2lkIEZsb3dUaHJlYWRDb250cm9sbGVyOjp1bnJlZ2lzdGVyTmFtZWRGbG93Q29udGVu
dE5vZGUoTm9kZSogY29udGVudE5vZGUpCiAgICAgbV9tYXBOYW1lZEZsb3dDb250ZW50Tm9kZXMu
cmVtb3ZlKGNvbnRlbnROb2RlKTsKIH0KIAorI2lmbmRlZiBOREVCVUcKK3ZvaWQgRmxvd1RocmVh
ZENvbnRyb2xsZXI6OmNoZWNrQXV0b0hlaWdodFJlZ2lvbnMoKSBjb25zdAoreworICAgIGlmICgh
aGFzUmVuZGVyTmFtZWRGbG93VGhyZWFkcygpKSB7CisgICAgICAgIEFTU0VSVCghaGFzQXV0b0hl
aWdodFJlZ2lvbnMoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBDb3VudCB0
aGUgbnVtYmVyIG9mIGF1dG8gaGVpZ2h0IHJlZ2lvbnMKKyAgICB1bnNpZ25lZCBhdXRvSGVpZ2h0
UmVnaW9ucyA9IDA7CisgICAgZm9yIChSZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0OjppdGVyYXRv
ciBpdGVyID0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5iZWdpbigpOyBpdGVyICE9IG1f
cmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+ZW5kKCk7ICsraXRlcikgeworICAgICAgICBSZW5k
ZXJOYW1lZEZsb3dUaHJlYWQqIGZsb3dSZW5kZXJlciA9ICppdGVyOworICAgICAgICBhdXRvSGVp
Z2h0UmVnaW9ucyArPSBmbG93UmVuZGVyZXItPmF1dG9IZWlnaHRSZWdpb25zQ291bnQoKTsKKyAg
ICB9CisKKyAgICBBU1NFUlQoYXV0b0hlaWdodFJlZ2lvbnMgPT0gbV9hdXRvSGVpZ2h0UmVnaW9u
c0NvdW50KTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5oCmluZGV4IDBhZWY2MTEu
LjI0OWQ2ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFk
Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29u
dHJvbGxlci5oCkBAIC02Niw2ICs2NiwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWdpc3Rlck5h
bWVkRmxvd0NvbnRlbnROb2RlKE5vZGUqLCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqKTsKICAgICB2
b2lkIHVucmVnaXN0ZXJOYW1lZEZsb3dDb250ZW50Tm9kZShOb2RlKik7CiAKKyAgICBib29sIGhh
c0F1dG9IZWlnaHRSZWdpb25zKCkgY29uc3QgeyByZXR1cm4gbV9hdXRvSGVpZ2h0UmVnaW9uc0Nv
dW50OyB9CisgICAgdm9pZCBpbmNyZW1lbnRBdXRvSGVpZ2h0UmVnaW9ucygpIHsgKyttX2F1dG9I
ZWlnaHRSZWdpb25zQ291bnQ7IH0KKyAgICB2b2lkIGRlY3JlbWVudEF1dG9IZWlnaHRSZWdpb25z
KCkgeyBBU1NFUlQobV9hdXRvSGVpZ2h0UmVnaW9uc0NvdW50ID4gMCk7IC0tbV9hdXRvSGVpZ2h0
UmVnaW9uc0NvdW50OyB9CisKKyNpZm5kZWYgTkRFQlVHCisgICAgdm9pZCBjaGVja0F1dG9IZWln
aHRSZWdpb25zKCkgY29uc3Q7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIEZsb3dUaHJlYWRD
b250cm9sbGVyKFJlbmRlclZpZXcqKTsKIApAQCAtNzMsNiArODEsNyBAQCBwcml2YXRlOgogICAg
IFJlbmRlclZpZXcqIG1fdmlldzsKICAgICBSZW5kZXJGbG93VGhyZWFkKiBtX2N1cnJlbnRSZW5k
ZXJGbG93VGhyZWFkOwogICAgIGJvb2wgbV9pc1JlbmRlck5hbWVkRmxvd1RocmVhZE9yZGVyRGly
dHk7CisgICAgdW5zaWduZWQgbV9hdXRvSGVpZ2h0UmVnaW9uc0NvdW50OwogICAgIE93blB0cjxS
ZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0PiBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3Q7CiAg
ICAgLy8gbWFwcyBhIGNvbnRlbnQgbm9kZSB0byBpdHMgcmVuZGVyIGZsb3cgdGhyZWFkLgogICAg
IEhhc2hNYXA8Tm9kZSosIFJlbmRlck5hbWVkRmxvd1RocmVhZCo+IG1fbWFwTmFtZWRGbG93Q29u
dGVudE5vZGVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZs
b3dUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQu
Y3BwCmluZGV4IDgyNjg2MTEuLjI5OTkxY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKQEAgLTc1NCw2ICs3NTQsMjUgQEAgYm9vbCBSZW5kZXJG
bG93VGhyZWFkOjpvYmplY3RJbkZsb3dSZWdpb24oY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3Qs
IGNvbnN0IFJlbmQKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKKyNpZm5kZWYgTkRFQlVHCit1bnNp
Z25lZCBSZW5kZXJGbG93VGhyZWFkOjphdXRvSGVpZ2h0UmVnaW9uc0NvdW50KCkgY29uc3QKK3sK
KyAgICB1bnNpZ25lZCBhdXRvSGVpZ2h0UmVnaW9ucyA9IDA7CisgICAgZm9yIChSZW5kZXJSZWdp
b25MaXN0Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gbV9yZWdpb25MaXN0LmJlZ2luKCk7IGl0ZXIg
IT0gbV9yZWdpb25MaXN0LmVuZCgpOyArK2l0ZXIpIHsKKyAgICAgICAgY29uc3QgUmVuZGVyUmVn
aW9uKiByZWdpb24gPSAqaXRlcjsKKyAgICAgICAgaWYgKCFyZWdpb24tPmlzVmFsaWQoKSkgewor
ICAgICAgICAgICAgQVNTRVJUKCFyZWdpb24tPnVzZXNBdXRvSGVpZ2h0KCkpOworICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAocmVnaW9uLT51c2VzQXV0b0hl
aWdodCgpKQorICAgICAgICAgICAgYXV0b0hlaWdodFJlZ2lvbnMrKzsKKyAgICB9CisKKyAgICBy
ZXR1cm4gYXV0b0hlaWdodFJlZ2lvbnM7Cit9CisjZW5kaWYKKwogQ3VycmVudFJlbmRlckZsb3dU
aHJlYWRNYWludGFpbmVyOjpDdXJyZW50UmVuZGVyRmxvd1RocmVhZE1haW50YWluZXIoUmVuZGVy
Rmxvd1RocmVhZCogcmVuZGVyRmxvd1RocmVhZCkKICAgICAgICAgOiBtX3JlbmRlckZsb3dUaHJl
YWQocmVuZGVyRmxvd1RocmVhZCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGbG93VGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Rmxvd1RocmVhZC5oCmluZGV4IGYyYTIwNDYuLjRmOTUyMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaApAQCAtMTMxLDYgKzEzMSwxMCBAQCBwdWJsaWM6
CiAKICAgICBib29sIHBhZ2VMb2dpY2FsSGVpZ2h0Q2hhbmdlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
cGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkOyB9CiAKKyNpZm5kZWYgTkRFQlVHCisgICAgdW5zaWdu
ZWQgYXV0b0hlaWdodFJlZ2lvbnNDb3VudCgpIGNvbnN0OworI2VuZGlmCisKIHByb3RlY3RlZDoK
ICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCA9IDA7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKaW5kZXggZDg5NWNkMC4uOTdlZTQw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKQEAgLTQ5LDYg
KzQ5LDcgQEAgUmVuZGVyUmVnaW9uOjpSZW5kZXJSZWdpb24oTm9kZSogbm9kZSwgUmVuZGVyRmxv
d1RocmVhZCogZmxvd1RocmVhZCkKICAgICAsIG1faXNWYWxpZChmYWxzZSkKICAgICAsIG1faGFz
Q3VzdG9tUmVnaW9uU3R5bGUoZmFsc2UpCiAgICAgLCBtX3JlZ2lvblN0YXRlKFJlZ2lvblVuZGVm
aW5lZCkKKyAgICAsIG1fdXNlc0F1dG9IZWlnaHQoZmFsc2UpCiB7CiB9CiAKQEAgLTE3MSw2ICsx
NzIsMjMgQEAgdm9pZCBSZW5kZXJSZWdpb246OmNoZWNrUmVnaW9uU3R5bGUoKQogICAgIG1fZmxv
d1RocmVhZC0+Y2hlY2tSZWdpb25zV2l0aFN0eWxpbmcoKTsKIH0KIAordm9pZCBSZW5kZXJSZWdp
b246OmNoZWNrUmVnaW9uVXNpbmdBdXRvSGVpZ2h0KCkKK3sKKyAgICBBU1NFUlQobV9mbG93VGhy
ZWFkKTsKKworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBib29s
IGRpZFVzZUF1dG9IZWlnaHQgPSBtX3VzZXNBdXRvSGVpZ2h0OworICAgIG1fdXNlc0F1dG9IZWln
aHQgPSBoYXNBdXRvSGVpZ2h0U3R5bGUoKTsKKyAgICBpZiAobV91c2VzQXV0b0hlaWdodCAhPSBk
aWRVc2VBdXRvSGVpZ2h0KSB7CisgICAgICAgIGlmIChtX3VzZXNBdXRvSGVpZ2h0KQorICAgICAg
ICAgICAgdmlldygpLT5mbG93VGhyZWFkQ29udHJvbGxlcigpLT5pbmNyZW1lbnRBdXRvSGVpZ2h0
UmVnaW9ucygpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB2aWV3KCktPmZsb3dUaHJlYWRD
b250cm9sbGVyKCktPmRlY3JlbWVudEF1dG9IZWlnaHRSZWdpb25zKCk7CisgICAgfQorfQorCiB2
b2lkIFJlbmRlclJlZ2lvbjo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNv
bnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKIHsKICAgICBSZW5kZXJSZXBsYWNlZDo6c3R5bGVE
aWRDaGFuZ2UoZGlmZiwgb2xkU3R5bGUpOwpAQCAtMTg0LDYgKzIwMiw3IEBAIHZvaWQgUmVuZGVy
UmVnaW9uOjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVy
U3R5bGUqIG9sZFN0CiAgICAgfQogCiAgICAgY2hlY2tSZWdpb25TdHlsZSgpOworICAgIGNoZWNr
UmVnaW9uVXNpbmdBdXRvSGVpZ2h0KCk7CiB9CiAKIHZvaWQgUmVuZGVyUmVnaW9uOjpsYXlvdXQo
KQpAQCAtMjgxLDEyICszMDAsMjMgQEAgdm9pZCBSZW5kZXJSZWdpb246OmF0dGFjaFJlZ2lvbigp
CiAgICAgLy8gVGhlIHJlZ2lvbiBqdXN0IGdvdCBhdHRhY2hlZCB0byB0aGUgZmxvdyB0aHJlYWQs
IGxldHMgY2hlY2sgd2hldGhlcgogICAgIC8vIGl0IGhhcyByZWdpb24gc3R5bGluZyBydWxlcyBh
c3NvY2lhdGVkLgogICAgIGNoZWNrUmVnaW9uU3R5bGUoKTsKKworICAgIGlmIChpc1ZhbGlkKCkp
IHsKKyAgICAgICAgbV91c2VzQXV0b0hlaWdodCA9IGhhc0F1dG9IZWlnaHRTdHlsZSgpOworICAg
ICAgICBpZiAodXNlc0F1dG9IZWlnaHQoKSkKKyAgICAgICAgICAgIHZpZXcoKS0+Zmxvd1RocmVh
ZENvbnRyb2xsZXIoKS0+aW5jcmVtZW50QXV0b0hlaWdodFJlZ2lvbnMoKTsKKyAgICB9CiB9CiAK
IHZvaWQgUmVuZGVyUmVnaW9uOjpkZXRhY2hSZWdpb24oKQogewotICAgIGlmIChtX2Zsb3dUaHJl
YWQpCisgICAgaWYgKG1fZmxvd1RocmVhZCkgewogICAgICAgICBtX2Zsb3dUaHJlYWQtPnJlbW92
ZVJlZ2lvbkZyb21UaHJlYWQodGhpcyk7CisgICAgICAgIGlmICh1c2VzQXV0b0hlaWdodCgpKSB7
CisgICAgICAgICAgICBBU1NFUlQoaXNWYWxpZCgpKTsKKyAgICAgICAgICAgIHZpZXcoKS0+Zmxv
d1RocmVhZENvbnRyb2xsZXIoKS0+ZGVjcmVtZW50QXV0b0hlaWdodFJlZ2lvbnMoKTsKKyAgICAg
ICAgfQorICAgIH0KICAgICBtX2Zsb3dUaHJlYWQgPSAwOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUmVnaW9uLmgKaW5kZXggZWUwNGVjYy4uZTNjYjJhNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaApAQCAtMTA5LDYgKzEwOSwxNCBAQCBwdWJsaWM6
CiAgICAgLy8gb3IgY29sdW1ucyBhZGRlZCB0b2dldGhlci4KICAgICB2aXJ0dWFsIExheW91dFVu
aXQgbG9naWNhbEhlaWdodE9mQWxsRmxvd1RocmVhZENvbnRlbnQoKSBjb25zdDsKIAorICAgIGJv
b2wgaGFzQXV0b0hlaWdodFN0eWxlKCkgY29uc3QKKyAgICB7CisgICAgICAgIGJvb2wgaGFzU3Bl
Y2lmaWVkRW5kcG9pbnRzRm9ySGVpZ2h0ID0gc3R5bGUoKS0+bG9naWNhbFRvcCgpLmlzU3BlY2lm
aWVkKCkgJiYgc3R5bGUoKS0+bG9naWNhbEJvdHRvbSgpLmlzU3BlY2lmaWVkKCk7CisgICAgICAg
IGJvb2wgaGFzQW5jaG9yZWRFbmRwb2ludHNGb3JIZWlnaHQgPSBpc091dE9mRmxvd1Bvc2l0aW9u
ZWQoKSAmJiBoYXNTcGVjaWZpZWRFbmRwb2ludHNGb3JIZWlnaHQ7CisgICAgICAgIHJldHVybiBz
dHlsZSgpLT5sb2dpY2FsSGVpZ2h0KCkuaXNBdXRvKCkgJiYgIWhhc0FuY2hvcmVkRW5kcG9pbnRz
Rm9ySGVpZ2h0OworICAgIH0KKyAgICBib29sIHVzZXNBdXRvSGVpZ2h0KCkgY29uc3QgeyByZXR1
cm4gbV91c2VzQXV0b0hlaWdodDsgfQorCiAgICAgLy8gVGhlIHRvcCBvZiB0aGUgbmVhcmVzdCBw
YWdlIGluc2lkZSB0aGUgcmVnaW9uLiBGb3IgUmVuZGVyUmVnaW9ucywgdGhpcyBpcyBqdXN0IHRo
ZSBsb2dpY2FsIHRvcCBvZiB0aGUKICAgICAvLyBmbG93IHRocmVhZCBwb3J0aW9uIHdlIGNvbnRh
aW4uIEZvciBzZXRzLCB3ZSBoYXZlIHRvIGZpZ3VyZSBvdXQgdGhlIHRvcCBvZiB0aGUgbmVhcmVz
dCBjb2x1bW4gb3IKICAgICAvLyBwYWdlLgpAQCAtMTQ5LDYgKzE1Nyw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBwcmludFJlZ2lvbk9iamVjdHNTdHlsZXMoKTsKIAogICAgIHZvaWQgY2hlY2tSZWdp
b25TdHlsZSgpOworICAgIHZvaWQgY2hlY2tSZWdpb25Vc2luZ0F1dG9IZWlnaHQoKTsKIAogcHJv
dGVjdGVkOgogICAgIFJlbmRlckZsb3dUaHJlYWQqIG1fZmxvd1RocmVhZDsKQEAgLTE4Myw2ICsx
OTIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1ZhbGlkOwogICAgIGJvb2wgbV9oYXNDdXN0
b21SZWdpb25TdHlsZTsKICAgICBSZWdpb25TdGF0ZSBtX3JlZ2lvblN0YXRlOworICAgIGJvb2wg
bV91c2VzQXV0b0hlaWdodDsKIH07CiAKIGlubGluZSBSZW5kZXJSZWdpb24qIHRvUmVuZGVyUmVn
aW9uKFJlbmRlck9iamVjdCogb2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRyZWVBc1RleHQuY3BwCmluZGV4IDI3NjM2NmMuLjI0MzYyNmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKQEAgLTcwOSw2ICs3MDksOCBA
QCBzdGF0aWMgdm9pZCB3cml0ZVJlbmRlck5hbWVkRmxvd1RocmVhZHMoVGV4dFN0cmVhbSYgdHMs
IFJlbmRlclZpZXcqIHJlbmRlclZpZXcsCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAgICAgaWYgKHJlbmRlclJlZ2lvbi0+aGFzQ3VzdG9tUmVnaW9uU3R5bGUoKSkKICAg
ICAgICAgICAgICAgICAgICAgICAgIHRzIDw8ICIgcmVnaW9uIHN0eWxlOiAxIjsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKHJlbmRlclJlZ2lvbi0+dXNlc0F1dG9IZWlnaHQoKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRzIDw8ICIgdXNlc0F1dG9IZWlnaHQiOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICBpZiAoIXJlbmRlclJlZ2lvbi0+aXNWYWxpZCgpKQogICAgICAg
ICAgICAgICAgICAgICB0cyA8PCAiIGludmFsaWQiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZXcuY3BwCmluZGV4IDE0MWVhNTIuLjZiMzA4YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTE1NCw2ICsxNTQsMTAgQEAgdm9pZCBSZW5kZXJWaWV3
OjpsYXlvdXQoKQogICAgIG1fbGF5b3V0U3RhdGUgPSAmc3RhdGU7CiAKICAgICBpZiAobmVlZHNM
YXlvdXQoKSkgeworI2lmbmRlZiBOREVCVUcKKyAgICAgICAgaWYgKG1fZmxvd1RocmVhZENvbnRy
b2xsZXIpCisgICAgICAgICAgICBtX2Zsb3dUaHJlYWRDb250cm9sbGVyLT5jaGVja0F1dG9IZWln
aHRSZWdpb25zKCk7CisjZW5kaWYKICAgICAgICAgUmVuZGVyQmxvY2s6OmxheW91dCgpOwogICAg
ICAgICBpZiAoaGFzUmVuZGVyTmFtZWRGbG93VGhyZWFkcygpKQogICAgICAgICAgICAgZmxvd1Ro
cmVhZENvbnRyb2xsZXIoKS0+bGF5b3V0UmVuZGVyTmFtZWRGbG93VGhyZWFkcygpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164389</attachid>
            <date>2012-09-17 07:00:00 -0700</date>
            <delta_ts>2012-09-18 01:12:24 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>96267-4.patch</filename>
            <type>text/plain</type>
            <size>19422</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmMjVhZDQwLi5hNzk3NTk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDkt
MTcgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTU1Jl
Z2lvbnNdRmxhZyBhdXRvLWhlaWdodCByZWdpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjI2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZSByZWdpb25zIGhhdmluZyBhdXRvIGxvZ2ljYWwgaGVp
Z2h0IHNob3VsZCBiZSBmbGFnZ2VkIHNvIHRoYXQgdGhlaXIgaGVpZ2h0IHdpbGwgY29tcHV0ZWQg
YXMgcGFydCBvZiBhIDIgcGFzcy1sYXlvdXQgbWVjaGFuaXNtLgorICAgICAgICBBZGRlZCBhIHRl
c3QgdGhhdCBjaGVja3Mgd2hldGhlciBhIHJlZ2lvbiBpbiBzZXZlcmFsIHNpdHVhdGlvbnMgaXMg
bWFya2VkIHByb3Blcmx5LgorCisgICAgICAgICogZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtcmVn
aW9ucy1tYXJrLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RF
eHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvcmVnaW9ucy9hdXRvaGVp
Z2h0LXJlZ2lvbnMtbWFyay1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1yZWdpb25zLW1hcmstZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKwogMjAxMi0wOS0xNyAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQgR1RLIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LXJlZ2lvbnMtbWFyay5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtcmVnaW9ucy1tYXJrLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjU0ZGYwOAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LXJlZ2lvbnMtbWFyay5odG1sCkBAIC0w
LDAgKzEsNTkgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPCEtLSBUZXN0cyB0aGF0
IHJlZ2lvbnMgd2l0aCBhdXRvLWhlaWdodCBhcmUgaWRlbnRpZmllZCBhbmQgZmxhZ2dlZCBjb3Jy
ZWN0bHkgLS0+CisgICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgIC5zcGVj
aWZpZWRXaWR0aCB7IHdpZHRoOiA1MHB4OyB9CisgICAgICAgICAgICAuc3BlY2lmaWVkV2lkdGgy
IHsgd2lkdGg6IDEwMHB4OyB9CisgICAgICAgICAgICAuc3BlY2lmaWVkSGVpZ2h0IHsgaGVpZ2h0
OiA1MHB4OyB9CisgICAgICAgICAgICAuYXV0b0hlaWdodCB7IGhlaWdodDogYXV0bzsgfQorCisg
ICAgICAgICAgICAjcmVnaW9uICB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93OyB9CisgICAgICAg
ICAgICAjcmVnaW9uMiAgeyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzI7IH0KKyAgICAgICAgICAg
ICNyZWdpb24zIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3czOyBwb3NpdGlvbjogYWJzb2x1dGU7
IHRvcDogNTBweDsgYm90dG9tOiAxMDBweDsgfQorICAgICAgICAgICAgI3JlZ2lvbjQgeyAtd2Vi
a2l0LWZsb3ctZnJvbTogZmxvdzQ7IC13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjsg
cG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiA1MHB4OyByaWdodDogMTAwcHg7IH0KKyAgICAgICAg
ICAgICNyZWdpb241IHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c1OyB9CisgICAgICAgICAgICAj
cmVnaW9uNiB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93NjsgfQorICAgICAgICAgICAgI2FydGlj
bGU3IHsgLXdlYmtpdC1mbG93LWludG86IGZsb3c3OyB9CisgICAgICAgICAgICAjcmVnaW9uNyB7
IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93NzsgfQorICAgICAgICAgICAgI2FydGljbGU4IHsgLXdl
YmtpdC1mbG93LWludG86IGZsb3c4OyB9CisgICAgICAgICAgICAjcmVnaW9uOCB7IC13ZWJraXQt
Zmxvdy1mcm9tOiBmbG93ODsgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8
Ym9keT4KKyAgICAgICAgPCEtLSBBIHJlZ2lvbiB3aXRoIHNwZWNpZmllZCBoZWlnaHQgc2hvdWxk
IG5vdCBiZSBtYXJrZWQgYXMgaGF2aW5nIGF1dG8gaGVpZ2h0IC0tPgorICAgICAgICA8ZGl2IGlk
PSJyZWdpb24iIGNsYXNzPSJzcGVjaWZpZWRXaWR0aCBzcGVjaWZpZWRIZWlnaHQiPjwvZGl2Pgor
CisgICAgICAgIDwhLS0gQSByZWdpb24gd2l0aG91dCBhIHNwZWNpZmllZCBoZWlnaHQgc2hvdWxk
IGJlIG1hcmtlZCBhcyBoYXZpbmcgYXV0byBoZWlnaHQgLS0+CisgICAgICAgIDxkaXYgaWQ9InJl
Z2lvbjIiIGNsYXNzPSJzcGVjaWZpZWRXaWR0aCI+PC9kaXY+CisKKyAgICAgICAgPCEtLSBBbiBv
dXQgb2YgZmxvdyByZWdpb24gd2l0aCBoZWlnaHQgYXV0byBhbmQgc3BlY2lmaWVkIHRvcC9ib3R0
b20gc2hvdWxkIG5vdCBiZSBtYXJrZWQKKyAgICAgICAgYXMgYXV0by1oZWlnaHQgLS0+CisgICAg
ICAgIDxkaXYgaWQ9InJlZ2lvbjMiIGNsYXNzPSJzcGVjaWZpZWRXaWR0aCI+PC9kaXY+CisKKyAg
ICAgICAgPCEtLSBBbiBvdXQgb2YgZmxvdyByZWdpb24gd2l0aCBoZWlnaHQgYXV0bywgdmVydGlj
YWwgd3JpdGluZyBtb2RlLCBzcGVjaWZpZWQgbGVmdC9yaWdodCBzaG91bGQKKyAgICAgICAgbm90
IGJlIG1hcmtlZCBhcyBhdXRvLWhlaWdodC0tPgorICAgICAgICA8ZGl2IGlkPSJyZWdpb240IiBj
bGFzcz0ic3BlY2lmaWVkSGVpZ2h0Ij48L2Rpdj4KKworICAgICAgICA8IS0tIER5bmFtaWMgY2hh
bmdlIG9mIGhlaWdodCB2YWx1ZXMgc2hvdWxkIG1hcmsgdGhlIHJlZ2lvbnMgYXV0byBoZWlnaHQg
Y29ycmVjdGx5IC0tPgorICAgICAgICA8ZGl2IGlkPSJyZWdpb241IiBjbGFzcz0ic3BlY2lmaWVk
V2lkdGggc3BlY2lmaWVkSGVpZ2h0Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uNiIg
Y2xhc3M9InNwZWNpZmllZFdpZHRoIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb241IikuY2xhc3NOYW1lID0gInNwZWNp
ZmllZFdpZHRoIGF1dG9IZWlnaHQiOworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInJlZ2lvbjYiKS5jbGFzc05hbWUgPSAic3BlY2lmaWVkV2lkdGggc3BlY2lmaWVkSGVpZ2h0
IjsKKyAgICAgICAgPC9zY3JpcHQ+CisKKyAgICAgICAgPCEtLSBBbiBpbnZhbGlkIHJlZ2lvbiBz
aG91bGQgbm90IGJlIG1hcmtlZCBhcyBhdXRvIGhlaWdodCBldmVuIGlmIGl0IGhhcyBoZWlnaHQ6
YXV0byBzaW5jZSBpdCB3aWxsIG5vdCBnZXQKKyAgICAgICAgYW55IGNvbnRlbnQuIEJlbG93LCBy
ZWdpb244IGlzIGludmFsaWQuIC0tPgorICAgICAgICA8ZGl2IGlkPSJhcnRpY2xlOCI+CisgICAg
ICAgICAgICA8ZGl2IGlkPSJyZWdpb243IiBjbGFzcz0ic3BlY2lmaWVkV2lkdGgiPjwvZGl2Pgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iYXJ0aWNsZTciPgorICAgICAgICAgICAg
PGRpdiBpZD0icmVnaW9uOCIgY2xhc3M9InNwZWNpZmllZFdpZHRoIj48L2Rpdj4KKyAgICAgICAg
PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICAvLyBDaGFuZ2luZyBzdHlsZSBm
b3IgYW4gaW52YWxpZCByZWdpb24gc2hvdWxkIG5vdCBtYXJrIHRoZSByZWdpb24gYXMgYXV0b0hl
aWdodC4KKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb244IikuY2xh
c3NOYW1lID0gInNwZWNpZmllZFdpZHRoMiI7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IDE1MjM3NWQuLjZmMmU0MWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjQ4OCw2ICsyNDg4LDggQEAgQlVHQ1I4
NDAzMiBXSU4gOiBmYXN0L2RvbS9vYmplY3QtcGx1Z2luLWhpZGVzLXByb3BlcnRpZXMuaHRtbCA9
IFBBU1MgVElNRU9VVAogQlVHV0s3NDIxOSA6IGZhc3QvcmVnaW9ucy9wb3NpdGlvbmVkLW9iamVj
dHMtYmxvY2stc3RhdGljLXNwYW5uaW5nLXJlZ2lvbnMtcnRsLmh0bWwgPSBQQVNTIElNQUdFCiBC
VUdXSzc0MjE5IDogZmFzdC9yZWdpb25zL3Bvc2l0aW9uZWQtb2JqZWN0cy1ibG9jay1zdGF0aWMt
c3Bhbm5pbmctcmVnaW9ucy5odG1sID0gUEFTUyBJTUFHRQogCitCVUdXSzk2MjY3IDogZmFzdC9y
ZWdpb25zL2F1dG9oZWlnaHQtcmVnaW9ucy1tYXJrLmh0bWwgPSBQQVNTCisKIEJVR1dLNzQxMzcg
U05PV0xFT1BBUkQgOiBmYXN0L3JlZ2lvbnMvb3V0bGluZS1zaWRlcy1pbi1yZWdpb24uaHRtbCA9
IFBBU1MgVElNRU9VVAogQlVHV0s4MzgyNCBNQUMgOiBmYXN0L3JlZ2lvbnMvcmVnaW9uLW92ZXJm
bG93LWJyZWFrLmh0bWwgPSBJTUFHRQogQlVHV0s3NDEzNyA6IGZhc3QvcmVnaW9ucy9mbG9hdC1w
dXNoZWQtd2lkdGgtY2hhbmdlLmh0bWwgPSBQQVNTIElNQUdFCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtcmVnaW9ucy1tYXJrLWV4
cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlZ2lvbnMvYXV0b2hl
aWdodC1yZWdpb25zLW1hcmstZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzZDk3NGNiMjM2NDM5
Njc1ODRhZDA1MjM4NjYxODE4ZWY3NzE2OGMKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDMyODkK
emNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlVeyt2WVYyYT5pMUIlUWxZYnBSem5rQjlnQ0NNNDck
PVN1RnhlT01qCnojd249PTJCdjFfRFRZUmROdlZrak4jO3FaJCpFPiRpS1ohTGhSRiUkfDk+K3VA
TUw/c0lFR1pyZDMpV0Vrd0pteQp6ZldkK04mbVMoNVFRYFZrY0soYkcxNEZ9c04/RC1NZS0xWVFO
bDlpVjI4SStLNGhEdF5oNilTfTQjITNYTSswT3UKekZecHp9KFVNYGJSMjsxbE1yKl4tK0hrWnM5
SVh2VVllVmR7cTI5fUlqeH1qKzglPT4tMj9rR0JLYkxoKjJ+N1prCkM4MCpGVwoKbGl0ZXJhbCAw
CkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qv
cmVnaW9ucy9hdXRvaGVpZ2h0LXJlZ2lvbnMtbWFyay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtcmVnaW9ucy1tYXJrLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YWUxYWJjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVnaW9ucy9hdXRv
aGVpZ2h0LXJlZ2lvbnMtbWFyay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzOCBAQAorbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CitsYXllciBhdCAoMCwwKSBzaXplIDgwMHgxMTYKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgw
LDApIHNpemUgODAweDExNgorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0
eDEwMAorICAgICAgUmVuZGVyUmVnaW9uIHtESVZ9IGF0ICgwLDApIHNpemUgNTB4NTAKKyAgICAg
IFJlbmRlclJlZ2lvbiB7RElWfSBhdCAoMCw1MCkgc2l6ZSA1MHgwCisgICAgICBSZW5kZXJSZWdp
b24ge0RJVn0gYXQgKDAsNTApIHNpemUgNTB4MAorICAgICAgUmVuZGVyUmVnaW9uIHtESVZ9IGF0
ICgwLDUwKSBzaXplIDUweDUwCitGbG93IFRocmVhZHMKKyAgVGhyZWFkIHdpdGggZmxvdy1uYW1l
ICdmbG93JworICAgIGxheWVyIGF0ICgwLDApIHNpemUgNTB4NTAKKyAgICAgIFJlbmRlck5hbWVk
Rmxvd1RocmVhZCBhdCAoMCwwKSBzaXplIDUweDUwCisgIFJlZ2lvbnMgZm9yIGZsb3cgJ2Zsb3cn
CisgICAgUmVuZGVyUmVnaW9uIHtESVZ9ICNyZWdpb24KKyAgVGhyZWFkIHdpdGggZmxvdy1uYW1l
ICdmbG93MicKKyAgUmVnaW9ucyBmb3IgZmxvdyAnZmxvdzInCisgICAgUmVuZGVyUmVnaW9uIHtE
SVZ9ICNyZWdpb24yIGhhc0F1dG9Mb2dpY2FsSGVpZ2h0CisgIFRocmVhZCB3aXRoIGZsb3ctbmFt
ZSAnZmxvdzMnCisgIFJlZ2lvbnMgZm9yIGZsb3cgJ2Zsb3czJworICAgIFJlbmRlclJlZ2lvbiB7
RElWfSAjcmVnaW9uMworICBUaHJlYWQgd2l0aCBmbG93LW5hbWUgJ2Zsb3c0JworICBSZWdpb25z
IGZvciBmbG93ICdmbG93NCcKKyAgICBSZW5kZXJSZWdpb24ge0RJVn0gI3JlZ2lvbjQKKyAgVGhy
ZWFkIHdpdGggZmxvdy1uYW1lICdmbG93NScKKyAgUmVnaW9ucyBmb3IgZmxvdyAnZmxvdzUnCisg
ICAgUmVuZGVyUmVnaW9uIHtESVZ9ICNyZWdpb241IGhhc0F1dG9Mb2dpY2FsSGVpZ2h0CisgIFRo
cmVhZCB3aXRoIGZsb3ctbmFtZSAnZmxvdzYnCisgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA1MHg1
MAorICAgICAgUmVuZGVyTmFtZWRGbG93VGhyZWFkIGF0ICgwLDApIHNpemUgNTB4NTAKKyAgUmVn
aW9ucyBmb3IgZmxvdyAnZmxvdzYnCisgICAgUmVuZGVyUmVnaW9uIHtESVZ9ICNyZWdpb242Cisg
IFRocmVhZCB3aXRoIGZsb3ctbmFtZSAnZmxvdzgnCisgIFJlZ2lvbnMgZm9yIGZsb3cgJ2Zsb3c4
JworICAgIFJlbmRlclJlZ2lvbiB7RElWfSAjcmVnaW9uOCBpbnZhbGlkCisgIFRocmVhZCB3aXRo
IGZsb3ctbmFtZSAnZmxvdzcnCisgIFJlZ2lvbnMgZm9yIGZsb3cgJ2Zsb3c3JworICAgIFJlbmRl
clJlZ2lvbiB7RElWfSAjcmVnaW9uNyBoYXNBdXRvTG9naWNhbEhlaWdodApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDQ4MjY2ZWQuLmE2MDRmZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAxMi0wOS0x
NyAgTWlobmVhIE92aWRlbmllICA8bWlobmVhQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTUmVn
aW9uc11GbGFnIGF1dG8taGVpZ2h0IHJlZ2lvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MjY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhlIHJlZ2lvbnMgaGF2aW5nIGF1dG8gbG9naWNhbCBoZWln
aHQgc2hvdWxkIGJlIGZsYWdnZWQgc28gdGhhdCB0aGVpciBoZWlnaHQgd2lsbCBjb21wdXRlZCBh
cyBwYXJ0IG9mIGEgMiBwYXNzLWxheW91dCBtZWNoYW5pc20uCisgICAgICAgIEEgdmFsaWQgcmVn
aW9uIGlzIGZsYWdnZWQgYXMgaGF2aW5nIGF1dG8gbG9naWNhbCBoZWlnaHQgaWY6CisgICAgICAg
IC0gaGFzIGF1dG8gbG9naWNhbCBoZWlnaHQgYW5kIGlzIHBhcnQgb2YgdGhlIG5vcm1hbCBmbG93
CisgICAgICAgIC0gaGFzIGF1dG8gbG9naWNhbCBoZWlnaHQsIGlzIG5vdCBwYXJ0IG9mIG5vcm1h
bCBmbG93IGFuZCBkb2VzIG5vdCBoYXZlIGxvZ2ljYWwgdG9wL2JvdHRvbSBzcGVjaWZpZWQKKwor
ICAgICAgICBBbiBpbnZhbGlkIHJlZ2lvbiAocGFydCBvZiBjaXJjdWxhciBkZXBlbmRlbmN5KSB3
aWxsIG5vdCBiZSBtYXJrZWQgZXZlbiBpZiBpdHMgc3R5bGUgbWF0Y2hlcyB0aGUgYWJvdmUgc2l0
dWF0aW9ucy4KKworICAgICAgICBUZXN0OiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1yZWdpb25z
LW1hcmsuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNw
cDogS2VlcCBhIGNvdW50ZXIgb2YgYXV0byBsb2dpY2FsIGhlaWdodCB2YWxpZCByZWdpb25zCisg
ICAgICAgIChXZWJDb3JlOjpGbG93VGhyZWFkQ29udHJvbGxlcjo6Rmxvd1RocmVhZENvbnRyb2xs
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6OmxheW91dFJlbmRl
ck5hbWVkRmxvd1RocmVhZHMpOiBWZXJpZnkgdGhhdCB0aGUgY3VycmVudCBudW1iZXIgb2YgYXV0
byBsb2dpY2FsIGhlaWdodCByZWdpb25zIGlzIGNvcnJlY3QgYnkgaXRlcmF0aW5nIG92ZXIgYWxs
IHRoZSByZWdpb25zIGF0dGFjaGVkIHRvIHRoZSBmbG93IHRocmVhZHMKKyAgICAgICAgYW5kIGNv
bXB1dGUgdGhlIG51bWJlciBvZiBhdXRvIGxvZ2ljYWwgaGVpZ2h0IHJlZ2lvbnMgb24gdGhlIHNw
b3QuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250
cm9sbGVyOjpjaGVja0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucyk6IEhlbHBlciBmdW5jdGlvbiB0
aGF0IGlzIHVzZWQgdG8gdmVyaWZ5IHRoZSBudW1iZXIgb2YgYXV0byBsb2dpY2FsIGhlaWdodCBy
ZWdpb25zLgorICAgICAgICAqIHJlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5oOgorICAg
ICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6Omhhc0F1dG9Mb2dpY2FsSGVpZ2h0
UmVnaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpGbG93VGhyZWFkQ29udHJvbGxlcjo6aW5jcmVt
ZW50QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkZsb3dUaHJl
YWRDb250cm9sbGVyOjpkZWNyZW1lbnRBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMpOgorICAgICAg
ICAoRmxvd1RocmVhZENvbnRyb2xsZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93
VGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Rmxvd1RocmVhZDo6YXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQpOiBIZWxwZXIgZnVuY3Rp
b24gdGhhdCBpcyB1c2VkIHRvIGNvdW50IHRoZSBudW1iZXIgb2YgcmVnaW9ucyBtYXJrZWQgYXMg
aGF2aW5nIGF1dG8gbG9naWNhbCBoZWlnaHQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZs
b3dUaHJlYWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6UmVuZGVyUmVnaW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclJlZ2lvbjo6Y2hlY2tSZWdpb25IYXZpbmdBdXRvTG9naWNhbEhlaWdodCk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6c3R5bGVE
aWRDaGFuZ2UpOiBGb3IgYSByZWdpb24gdGhhdCBpcyBhdHRhY2hlZCB0byBhIGZsb3cgdGhyZWFk
LCB2ZXJpZnkgd2hldGhlciB0aGUgc3R5bGUgY2hhbmdlIG1vZGlmaWVkIGl0cyBhdXRvIGxvZ2lj
YWwgaGVpZ2h0IGFwcGVhcmFuY2UuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZWdpb246OmF0
dGFjaFJlZ2lvbik6IEhhbmRsZSB0aGUgY2FzZSBvZiBhdHRhY2hpbmcgcmVnaW9uIHRvIGEgZmxv
dyB0aHJlYWQgYW5kIHRoZSBkZXRhY2gvYXR0YWNoIHNlcXVlbmNlIHdoZW4gdGhlIHJlZ2lvbiBp
cyBtb3ZlZCBpbiB0aGUgcmVuZGVyIHRyZWUuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZWdp
b246OmRldGFjaFJlZ2lvbik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpzaG91bGRIYXZlQXV0b0xvZ2ljYWxIZWln
aHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpoYXNBdXRvTG9naWNhbEhlaWdo
dCk6CisgICAgICAgIChSZW5kZXJSZWdpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
cmVlQXNUZXh0LmNwcDogRm9yIHRoZSByZWdpb25zIHRoYXQgdXNlIGF1dG8gbG9naWNhbCBoZWln
aHQsIG1vZGlmeSB0aGUgb3V0cHV0IHRvIHJlZmxlY3QgdGhhdC4KKyAgICAgICAgKFdlYkNvcmU6
OndyaXRlUmVuZGVyTmFtZWRGbG93VGhyZWFkcyk6CisKIDIwMTItMDktMTcgIE1pa2UgV2VzdCAg
PG1rd3N0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBEb24ndCBHQyBpbWcgZWxlbWVudHMgYmxv
Y2tlZCBieSBDU1AgdW50aWwgZXJyb3IgZXZlbnRzIGZpcmUuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcAppbmRleCA5ZWRkMGFhLi40ZGFk
MTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJv
bGxlci5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAgRmxvd1RocmVhZENvbnRyb2xsZXI6OkZsb3dUaHJl
YWRDb250cm9sbGVyKFJlbmRlclZpZXcqIHZpZXcpCiAgICAgOiBtX3ZpZXcodmlldykKICAgICAs
IG1fY3VycmVudFJlbmRlckZsb3dUaHJlYWQoMCkKICAgICAsIG1faXNSZW5kZXJOYW1lZEZsb3dU
aHJlYWRPcmRlckRpcnR5KGZhbHNlKQorICAgICwgbV9hdXRvTG9naWNhbEhlaWdodFJlZ2lvbnND
b3VudCgwKQogewogfQogCkBAIC05OCw2ICs5OSwxMCBAQCB2b2lkIEZsb3dUaHJlYWRDb250cm9s
bGVyOjpsYXlvdXRSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKCkKIHsKICAgICBBU1NFUlQobV9yZW5k
ZXJOYW1lZEZsb3dUaHJlYWRMaXN0KTsKIAorI2lmbmRlZiBOREVCVUcKKyAgICBjaGVja0F1dG9M
b2dpY2FsSGVpZ2h0UmVnaW9ucygpOworI2VuZGlmCisKICAgICAvLyBSZW1vdmUgdGhlIGxlZnQt
b3ZlciBmbG93IHRocmVhZHMuCiAgICAgUmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdCB0b1JlbW92
ZUxpc3Q7CiAgICAgZm9yIChSZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0OjppdGVyYXRvciBpdGVy
ID0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5iZWdpbigpOyBpdGVyICE9IG1fcmVuZGVy
TmFtZWRGbG93VGhyZWFkTGlzdC0+ZW5kKCk7ICsraXRlcikgewpAQCAtMTU2LDQgKzE2MSwyMyBA
QCB2b2lkIEZsb3dUaHJlYWRDb250cm9sbGVyOjp1bnJlZ2lzdGVyTmFtZWRGbG93Q29udGVudE5v
ZGUoTm9kZSogY29udGVudE5vZGUpCiAgICAgbV9tYXBOYW1lZEZsb3dDb250ZW50Tm9kZXMucmVt
b3ZlKGNvbnRlbnROb2RlKTsKIH0KIAorI2lmbmRlZiBOREVCVUcKK3ZvaWQgRmxvd1RocmVhZENv
bnRyb2xsZXI6OmNoZWNrQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkgY29uc3QKK3sKKyAgICBp
ZiAoIWhhc1JlbmRlck5hbWVkRmxvd1RocmVhZHMoKSkgeworICAgICAgICBBU1NFUlQoIWhhc0F1
dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IC8vIENvdW50IHRoZSBudW1iZXIgb2YgYXV0byBoZWlnaHQgcmVnaW9ucworICAgIHVuc2lnbmVk
IGF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucyA9IDA7CisgICAgZm9yIChSZW5kZXJOYW1lZEZsb3dU
aHJlYWRMaXN0OjppdGVyYXRvciBpdGVyID0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5i
ZWdpbigpOyBpdGVyICE9IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+ZW5kKCk7ICsraXRl
cikgeworICAgICAgICBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqIGZsb3dSZW5kZXJlciA9ICppdGVy
OworICAgICAgICBhdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMgKz0gZmxvd1JlbmRlcmVyLT5hdXRv
TG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudCgpOworICAgIH0KKworICAgIEFTU0VSVChhdXRvTG9n
aWNhbEhlaWdodFJlZ2lvbnMgPT0gbV9hdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudCk7Cit9
CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuaAppbmRleCBhZTYyMzdkLi4yOTBiZDQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuaApA
QCAtNjcsNiArNjcsMTQgQEAgcHVibGljOgogICAgIHZvaWQgcmVnaXN0ZXJOYW1lZEZsb3dDb250
ZW50Tm9kZShOb2RlKiwgUmVuZGVyTmFtZWRGbG93VGhyZWFkKik7CiAgICAgdm9pZCB1bnJlZ2lz
dGVyTmFtZWRGbG93Q29udGVudE5vZGUoTm9kZSopOwogCisgICAgYm9vbCBoYXNBdXRvTG9naWNh
bEhlaWdodFJlZ2lvbnMoKSBjb25zdCB7IHJldHVybiBtX2F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9u
c0NvdW50OyB9CisgICAgdm9pZCBpbmNyZW1lbnRBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKSB7
ICsrbV9hdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudDsgfQorICAgIHZvaWQgZGVjcmVtZW50
QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkgeyBBU1NFUlQobV9hdXRvTG9naWNhbEhlaWdodFJl
Z2lvbnNDb3VudCA+IDApOyAtLW1fYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQ7IH0KKwor
I2lmbmRlZiBOREVCVUcKKyAgICB2b2lkIGNoZWNrQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkg
Y29uc3Q7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIEZsb3dUaHJlYWRDb250cm9sbGVyKFJl
bmRlclZpZXcqKTsKIApAQCAtNzQsNiArODIsNyBAQCBwcml2YXRlOgogICAgIFJlbmRlclZpZXcq
IG1fdmlldzsKICAgICBSZW5kZXJGbG93VGhyZWFkKiBtX2N1cnJlbnRSZW5kZXJGbG93VGhyZWFk
OwogICAgIGJvb2wgbV9pc1JlbmRlck5hbWVkRmxvd1RocmVhZE9yZGVyRGlydHk7CisgICAgdW5z
aWduZWQgbV9hdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudDsKICAgICBPd25QdHI8UmVuZGVy
TmFtZWRGbG93VGhyZWFkTGlzdD4gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0OwogICAgIC8v
IG1hcHMgYSBjb250ZW50IG5vZGUgdG8gaXRzIHJlbmRlciBmbG93IHRocmVhZC4KICAgICBIYXNo
TWFwPE5vZGUqLCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqPiBtX21hcE5hbWVkRmxvd0NvbnRlbnRO
b2RlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhy
ZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcApp
bmRleCA4MjY4NjExLi4wNzQxZWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZsb3dUaHJlYWQuY3BwCkBAIC03NTQsNiArNzU0LDI1IEBAIGJvb2wgUmVuZGVyRmxvd1Ro
cmVhZDo6b2JqZWN0SW5GbG93UmVnaW9uKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25z
dCBSZW5kCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisjaWZuZGVmIE5ERUJVRwordW5zaWduZWQg
UmVuZGVyRmxvd1RocmVhZDo6YXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQoKSBjb25zdAor
eworICAgIHVuc2lnbmVkIGF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucyA9IDA7CisgICAgZm9yIChS
ZW5kZXJSZWdpb25MaXN0Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gbV9yZWdpb25MaXN0LmJlZ2lu
KCk7IGl0ZXIgIT0gbV9yZWdpb25MaXN0LmVuZCgpOyArK2l0ZXIpIHsKKyAgICAgICAgY29uc3Qg
UmVuZGVyUmVnaW9uKiByZWdpb24gPSAqaXRlcjsKKyAgICAgICAgaWYgKCFyZWdpb24tPmlzVmFs
aWQoKSkgeworICAgICAgICAgICAgQVNTRVJUKCFyZWdpb24tPmhhc0F1dG9Mb2dpY2FsSGVpZ2h0
KCkpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAocmVn
aW9uLT5oYXNBdXRvTG9naWNhbEhlaWdodCgpKQorICAgICAgICAgICAgYXV0b0xvZ2ljYWxIZWln
aHRSZWdpb25zKys7CisgICAgfQorCisgICAgcmV0dXJuIGF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9u
czsKK30KKyNlbmRpZgorCiBDdXJyZW50UmVuZGVyRmxvd1RocmVhZE1haW50YWluZXI6OkN1cnJl
bnRSZW5kZXJGbG93VGhyZWFkTWFpbnRhaW5lcihSZW5kZXJGbG93VGhyZWFkKiByZW5kZXJGbG93
VGhyZWFkKQogICAgICAgICA6IG1fcmVuZGVyRmxvd1RocmVhZChyZW5kZXJGbG93VGhyZWFkKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKaW5kZXggNjUw
MDk3ZS4uZDA5MTgzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1Ro
cmVhZC5oCkBAIC0xMzEsNiArMTMxLDEwIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgcGFnZUxvZ2lj
YWxIZWlnaHRDaGFuZ2VkKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlTG9naWNhbEhlaWdodENoYW5n
ZWQ7IH0KIAorI2lmbmRlZiBOREVCVUcKKyAgICB1bnNpZ25lZCBhdXRvTG9naWNhbEhlaWdodFJl
Z2lvbnNDb3VudCgpIGNvbnN0OworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGNv
bnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclJlZ2lvbi5jcHAKaW5kZXggMmI3ZTQyNS4uZDkzYWM1OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAgUmVuZGVy
UmVnaW9uOjpSZW5kZXJSZWdpb24oTm9kZSogbm9kZSwgUmVuZGVyRmxvd1RocmVhZCogZmxvd1Ro
cmVhZCkKICAgICAsIG1fcGFyZW50TmFtZWRGbG93VGhyZWFkKDApCiAgICAgLCBtX2lzVmFsaWQo
ZmFsc2UpCiAgICAgLCBtX2hhc0N1c3RvbVJlZ2lvblN0eWxlKGZhbHNlKQorICAgICwgbV9oYXNB
dXRvTG9naWNhbEhlaWdodChmYWxzZSkKICAgICAsIG1fcmVnaW9uU3RhdGUoUmVnaW9uVW5kZWZp
bmVkKQogewogfQpAQCAtMTcyLDYgKzE3MywyMyBAQCB2b2lkIFJlbmRlclJlZ2lvbjo6Y2hlY2tS
ZWdpb25TdHlsZSgpCiAgICAgbV9mbG93VGhyZWFkLT5jaGVja1JlZ2lvbnNXaXRoU3R5bGluZygp
OwogfQogCit2b2lkIFJlbmRlclJlZ2lvbjo6Y2hlY2tSZWdpb25IYXZpbmdBdXRvTG9naWNhbEhl
aWdodCgpCit7CisgICAgQVNTRVJUKG1fZmxvd1RocmVhZCk7CisKKyAgICBpZiAoIWlzVmFsaWQo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCBkaWRIYXZlQXV0b0xvZ2ljYWxIZWlnaHQg
PSBtX2hhc0F1dG9Mb2dpY2FsSGVpZ2h0OworICAgIG1faGFzQXV0b0xvZ2ljYWxIZWlnaHQgPSBz
aG91bGRIYXZlQXV0b0xvZ2ljYWxIZWlnaHQoKTsKKyAgICBpZiAobV9oYXNBdXRvTG9naWNhbEhl
aWdodCAhPSBkaWRIYXZlQXV0b0xvZ2ljYWxIZWlnaHQpIHsKKyAgICAgICAgaWYgKG1faGFzQXV0
b0xvZ2ljYWxIZWlnaHQpCisgICAgICAgICAgICB2aWV3KCktPmZsb3dUaHJlYWRDb250cm9sbGVy
KCktPmluY3JlbWVudEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICB2aWV3KCktPmZsb3dUaHJlYWRDb250cm9sbGVyKCktPmRlY3JlbWVudEF1dG9M
b2dpY2FsSGVpZ2h0UmVnaW9ucygpOworICAgIH0KK30KKwogdm9pZCBSZW5kZXJSZWdpb246OnN0
eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xk
U3R5bGUpCiB7CiAgICAgUmVuZGVyUmVwbGFjZWQ6OnN0eWxlRGlkQ2hhbmdlKGRpZmYsIG9sZFN0
eWxlKTsKQEAgLTE4NSw2ICsyMDMsNyBAQCB2b2lkIFJlbmRlclJlZ2lvbjo6c3R5bGVEaWRDaGFu
Z2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdAogICAgIH0K
IAogICAgIGNoZWNrUmVnaW9uU3R5bGUoKTsKKyAgICBjaGVja1JlZ2lvbkhhdmluZ0F1dG9Mb2dp
Y2FsSGVpZ2h0KCk7CiB9CiAKIHZvaWQgUmVuZGVyUmVnaW9uOjpsYXlvdXQoKQpAQCAtMjgyLDEy
ICszMDEsMjQgQEAgdm9pZCBSZW5kZXJSZWdpb246OmF0dGFjaFJlZ2lvbigpCiAgICAgLy8gVGhl
IHJlZ2lvbiBqdXN0IGdvdCBhdHRhY2hlZCB0byB0aGUgZmxvdyB0aHJlYWQsIGxldHMgY2hlY2sg
d2hldGhlcgogICAgIC8vIGl0IGhhcyByZWdpb24gc3R5bGluZyBydWxlcyBhc3NvY2lhdGVkLgog
ICAgIGNoZWNrUmVnaW9uU3R5bGUoKTsKKworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX2hhc0F1dG9Mb2dpY2FsSGVpZ2h0ID0gc2hvdWxkSGF2ZUF1dG9Mb2dp
Y2FsSGVpZ2h0KCk7CisgICAgaWYgKGhhc0F1dG9Mb2dpY2FsSGVpZ2h0KCkpCisgICAgICAgIHZp
ZXcoKS0+Zmxvd1RocmVhZENvbnRyb2xsZXIoKS0+aW5jcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRS
ZWdpb25zKCk7CiB9CiAKIHZvaWQgUmVuZGVyUmVnaW9uOjpkZXRhY2hSZWdpb24oKQogewotICAg
IGlmIChtX2Zsb3dUaHJlYWQpCisgICAgaWYgKG1fZmxvd1RocmVhZCkgewogICAgICAgICBtX2Zs
b3dUaHJlYWQtPnJlbW92ZVJlZ2lvbkZyb21UaHJlYWQodGhpcyk7CisgICAgICAgIGlmIChoYXNB
dXRvTG9naWNhbEhlaWdodCgpKSB7CisgICAgICAgICAgICBBU1NFUlQoaXNWYWxpZCgpKTsKKyAg
ICAgICAgICAgIHZpZXcoKS0+Zmxvd1RocmVhZENvbnRyb2xsZXIoKS0+ZGVjcmVtZW50QXV0b0xv
Z2ljYWxIZWlnaHRSZWdpb25zKCk7CisgICAgICAgIH0KKyAgICB9CiAgICAgbV9mbG93VGhyZWFk
ID0gMDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJl
Z2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCmluZGV4IDNk
OWQ1YTguLmViYjNjOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJSZWdpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgK
QEAgLTExNCw2ICsxMTQsMTQgQEAgcHVibGljOgogICAgIC8vIG9yIGNvbHVtbnMgYWRkZWQgdG9n
ZXRoZXIuCiAgICAgdmlydHVhbCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHRPZkFsbEZsb3dUaHJl
YWRDb250ZW50KCkgY29uc3Q7CiAKKyAgICBib29sIHNob3VsZEhhdmVBdXRvTG9naWNhbEhlaWdo
dCgpIGNvbnN0CisgICAgeworICAgICAgICBib29sIGhhc1NwZWNpZmllZEVuZHBvaW50c0Zvckhl
aWdodCA9IHN0eWxlKCktPmxvZ2ljYWxUb3AoKS5pc1NwZWNpZmllZCgpICYmIHN0eWxlKCktPmxv
Z2ljYWxCb3R0b20oKS5pc1NwZWNpZmllZCgpOworICAgICAgICBib29sIGhhc0FuY2hvcmVkRW5k
cG9pbnRzRm9ySGVpZ2h0ID0gaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgJiYgaGFzU3BlY2lmaWVk
RW5kcG9pbnRzRm9ySGVpZ2h0OworICAgICAgICByZXR1cm4gc3R5bGUoKS0+bG9naWNhbEhlaWdo
dCgpLmlzQXV0bygpICYmICFoYXNBbmNob3JlZEVuZHBvaW50c0ZvckhlaWdodDsKKyAgICB9Cisg
ICAgYm9vbCBoYXNBdXRvTG9naWNhbEhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzQXV0b0xv
Z2ljYWxIZWlnaHQ7IH0KKwogICAgIC8vIFRoZSB0b3Agb2YgdGhlIG5lYXJlc3QgcGFnZSBpbnNp
ZGUgdGhlIHJlZ2lvbi4gRm9yIFJlbmRlclJlZ2lvbnMsIHRoaXMgaXMganVzdCB0aGUgbG9naWNh
bCB0b3Agb2YgdGhlCiAgICAgLy8gZmxvdyB0aHJlYWQgcG9ydGlvbiB3ZSBjb250YWluLiBGb3Ig
c2V0cywgd2UgaGF2ZSB0byBmaWd1cmUgb3V0IHRoZSB0b3Agb2YgdGhlIG5lYXJlc3QgY29sdW1u
IG9yCiAgICAgLy8gcGFnZS4KQEAgLTE1NCw2ICsxNjIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
cHJpbnRSZWdpb25PYmplY3RzU3R5bGVzKCk7CiAKICAgICB2b2lkIGNoZWNrUmVnaW9uU3R5bGUo
KTsKKyAgICB2b2lkIGNoZWNrUmVnaW9uSGF2aW5nQXV0b0xvZ2ljYWxIZWlnaHQoKTsKIAogcHJv
dGVjdGVkOgogICAgIFJlbmRlckZsb3dUaHJlYWQqIG1fZmxvd1RocmVhZDsKQEAgLTE4NSw4ICsx
OTQsOSBAQCBwcml2YXRlOgogICAgIHR5cGVkZWYgSGFzaE1hcDxjb25zdCBSZW5kZXJPYmplY3Qq
LCBPYmplY3RSZWdpb25TdHlsZUluZm8gPiBSZW5kZXJPYmplY3RSZWdpb25TdHlsZU1hcDsKICAg
ICBSZW5kZXJPYmplY3RSZWdpb25TdHlsZU1hcCBtX3JlbmRlck9iamVjdFJlZ2lvblN0eWxlOwog
Ci0gICAgYm9vbCBtX2lzVmFsaWQ7Ci0gICAgYm9vbCBtX2hhc0N1c3RvbVJlZ2lvblN0eWxlOwor
ICAgIGJvb2wgbV9pc1ZhbGlkIDogMTsKKyAgICBib29sIG1faGFzQ3VzdG9tUmVnaW9uU3R5bGUg
OiAxOworICAgIGJvb2wgbV9oYXNBdXRvTG9naWNhbEhlaWdodCA6IDE7CiAgICAgUmVnaW9uU3Rh
dGUgbV9yZWdpb25TdGF0ZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUcmVlQXNUZXh0LmNwcAppbmRleCBlZjY1MGFkLi44MTNjZjdlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCkBAIC02OTQsNiArNjk0LDggQEAg
c3RhdGljIHZvaWQgd3JpdGVSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKFRleHRTdHJlYW0mIHRzLCBS
ZW5kZXJWaWV3KiByZW5kZXJWaWV3LAogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgIGlmIChyZW5kZXJSZWdpb24tPmhhc0N1c3RvbVJlZ2lvblN0eWxlKCkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICB0cyA8PCAiIHJlZ2lvbiBzdHlsZTogMSI7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChyZW5kZXJSZWdpb24tPmhhc0F1dG9Mb2dpY2FsSGVpZ2h0KCkpCisgICAg
ICAgICAgICAgICAgICAgICAgICB0cyA8PCAiIGhhc0F1dG9Mb2dpY2FsSGVpZ2h0IjsKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgaWYgKCFyZW5kZXJSZWdpb24tPmlzVmFsaWQo
KSkKICAgICAgICAgICAgICAgICAgICAgdHMgPDwgIiBpbnZhbGlkIjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164510</attachid>
            <date>2012-09-18 01:12:30 -0700</date>
            <delta_ts>2012-09-18 01:39:37 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-96267-20120918111156.patch</filename>
            <type>text/plain</type>
            <size>20302</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4ODUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWE5OTQzNjVjOWU4M2Fj
NTZkODM5MTA4YTYwZjJiNDExODAzYjY2Ni4uZjgzNTdkMWVkMTQzOTM2NzNiOTZlNmRhMjE0ZDJm
YTg4NmU4MTJhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTA5LTE4ICBNaWhu
ZWEgT3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1NSZWdpb25zXUZs
YWcgYXV0by1oZWlnaHQgcmVnaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTYyNjcKKworICAgICAgICBSZXZpZXdlZCBieSBKdWxpZW4gQ2hhZmZy
YWl4LgorCisgICAgICAgIFRoZSByZWdpb25zIGhhdmluZyBhdXRvIGxvZ2ljYWwgaGVpZ2h0IHNo
b3VsZCBiZSBmbGFnZ2VkIHNvIHRoYXQgdGhlaXIgaGVpZ2h0IHdpbGwgY29tcHV0ZWQgYXMgcGFy
dCBvZiBhIDIgcGFzcy1sYXlvdXQgbWVjaGFuaXNtLgorICAgICAgICBBIHZhbGlkIHJlZ2lvbiBp
cyBmbGFnZ2VkIGFzIGhhdmluZyBhdXRvIGxvZ2ljYWwgaGVpZ2h0IGlmOgorICAgICAgICAtIGhh
cyBhdXRvIGxvZ2ljYWwgaGVpZ2h0IGFuZCBpcyBwYXJ0IG9mIHRoZSBub3JtYWwgZmxvdworICAg
ICAgICAtIGhhcyBhdXRvIGxvZ2ljYWwgaGVpZ2h0LCBpcyBub3QgcGFydCBvZiBub3JtYWwgZmxv
dyBhbmQgZG9lcyBub3QgaGF2ZSBsb2dpY2FsIHRvcC9ib3R0b20gc3BlY2lmaWVkCisKKyAgICAg
ICAgQW4gaW52YWxpZCByZWdpb24gKHBhcnQgb2YgY2lyY3VsYXIgZGVwZW5kZW5jeSkgd2lsbCBu
b3QgYmUgbWFya2VkIGV2ZW4gaWYgaXRzIHN0eWxlIG1hdGNoZXMgdGhlIGFib3ZlIHNpdHVhdGlv
bnMuCisKKyAgICAgICAgVGVzdDogZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtcmVnaW9ucy1tYXJr
Lmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHA6IEtl
ZXAgYSBjb3VudGVyIG9mIGF1dG8gbG9naWNhbCBoZWlnaHQgdmFsaWQgcmVnaW9ucy4KKyAgICAg
ICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250cm9sbGVyOjpGbG93VGhyZWFkQ29udHJvbGxlcik6
CisgICAgICAgIChXZWJDb3JlOjpGbG93VGhyZWFkQ29udHJvbGxlcjo6bGF5b3V0UmVuZGVyTmFt
ZWRGbG93VGhyZWFkcyk6IFZlcmlmeSB0aGF0IHRoZSBjdXJyZW50IG51bWJlciBvZiBhdXRvIGxv
Z2ljYWwgaGVpZ2h0IHJlZ2lvbnMgaXMgY29ycmVjdCBieSBpdGVyYXRpbmcgb3ZlciBhbGwgdGhl
IHJlZ2lvbnMgYXR0YWNoZWQgdG8gdGhlIGZsb3cgdGhyZWFkcworICAgICAgICBhbmQgY29tcHV0
ZSB0aGUgbnVtYmVyIG9mIGF1dG8gbG9naWNhbCBoZWlnaHQgcmVnaW9ucyBvbiB0aGUgc3BvdC4K
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xs
ZXI6OmlzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zRmxhZ0NvbnNpc3RlbnQpOiBIZWxwZXIgZnVu
Y3Rpb24gdGhhdCBpcyB1c2VkIHRvIHZlcmlmeSB0aGUgbnVtYmVyIG9mIGF1dG8gbG9naWNhbCBo
ZWlnaHQgcmVnaW9ucy4KKyAgICAgICAgKiByZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250cm9sbGVyOjpoYXNBdXRvTG9naWNh
bEhlaWdodFJlZ2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6
OmluY3JlbWVudEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpG
bG93VGhyZWFkQ29udHJvbGxlcjo6ZGVjcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKToK
KyAgICAgICAgKEZsb3dUaHJlYWRDb250cm9sbGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyRmxvd1RocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckZsb3dUaHJlYWQ6OmF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50KTogSGVscGVy
IGZ1bmN0aW9uIHRoYXQgaXMgdXNlZCB0byBjb3VudCB0aGUgbnVtYmVyIG9mIHJlZ2lvbnMgbWFy
a2VkIGFzIGhhdmluZyBhdXRvIGxvZ2ljYWwgaGVpZ2h0LgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJGbG93VGhyZWFkLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZWdpb246OlJlbmRlclJlZ2lvbik6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJSZWdpb246OnVwZGF0ZVJlZ2lvbkhhc0F1dG9Mb2dpY2FsSGVpZ2h0
RmxhZyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lv
bjo6c3R5bGVEaWRDaGFuZ2UpOiBGb3IgYSByZWdpb24gdGhhdCBpcyBhdHRhY2hlZCB0byBhIGZs
b3cgdGhyZWFkLCB2ZXJpZnkgd2hldGhlciB0aGUgc3R5bGUgY2hhbmdlIG1vZGlmaWVkIGl0cyBh
dXRvIGxvZ2ljYWwgaGVpZ2h0IGFwcGVhcmFuY2UuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJS
ZWdpb246OmF0dGFjaFJlZ2lvbik6IEhhbmRsZSB0aGUgY2FzZSBvZiBhdHRhY2hpbmcgcmVnaW9u
IHRvIGEgZmxvdyB0aHJlYWQgYW5kIHRoZSBkZXRhY2gvYXR0YWNoIHNlcXVlbmNlIHdoZW4gdGhl
IHJlZ2lvbiBpcyBtb3ZlZCBpbiB0aGUgcmVuZGVyIHRyZWUuCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJSZWdpb246OmRldGFjaFJlZ2lvbik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJl
Z2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpzaG91bGRIYXZlQXV0b0xv
Z2ljYWxIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpoYXNBdXRvTG9n
aWNhbEhlaWdodCk6CisgICAgICAgIChSZW5kZXJSZWdpb24pOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUcmVlQXNUZXh0LmNwcDogRm9yIHRoZSByZWdpb25zIHRoYXQgdXNlIGF1dG8gbG9n
aWNhbCBoZWlnaHQsIG1vZGlmeSB0aGUgb3V0cHV0IHRvIHJlZmxlY3QgdGhhdC4KKyAgICAgICAg
KFdlYkNvcmU6OndyaXRlUmVuZGVyTmFtZWRGbG93VGhyZWFkcyk6CisKIDIwMTItMDktMTcgIENz
YWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTI4ODI2IGFuZCByMTI4ODEzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHAKaW5kZXggOWVkZDBhYTdlOGY4MGU2
MmRhZTYzMTZlZmIwNzM3YTFlMTMxNzIxNS4uY2I0YmRiMWYyYzQzMmJmODU1NmZjMjkwOTE0ZDFm
YmZkMjljZWY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJl
YWRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVh
ZENvbnRyb2xsZXIuY3BwCkBAIC00OSw2ICs0OSw3IEBAIEZsb3dUaHJlYWRDb250cm9sbGVyOjpG
bG93VGhyZWFkQ29udHJvbGxlcihSZW5kZXJWaWV3KiB2aWV3KQogICAgIDogbV92aWV3KHZpZXcp
CiAgICAgLCBtX2N1cnJlbnRSZW5kZXJGbG93VGhyZWFkKDApCiAgICAgLCBtX2lzUmVuZGVyTmFt
ZWRGbG93VGhyZWFkT3JkZXJEaXJ0eShmYWxzZSkKKyAgICAsIG1fYXV0b0xvZ2ljYWxIZWlnaHRS
ZWdpb25zQ291bnQoMCkKIHsKIH0KIApAQCAtOTgsNiArOTksOCBAQCB2b2lkIEZsb3dUaHJlYWRD
b250cm9sbGVyOjpsYXlvdXRSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKCkKIHsKICAgICBBU1NFUlQo
bV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0KTsKIAorICAgIEFTU0VSVChpc0F1dG9Mb2dpY2Fs
SGVpZ2h0UmVnaW9uc0ZsYWdDb25zaXN0ZW50KCkpOworCiAgICAgLy8gUmVtb3ZlIHRoZSBsZWZ0
LW92ZXIgZmxvdyB0aHJlYWRzLgogICAgIFJlbmRlck5hbWVkRmxvd1RocmVhZExpc3QgdG9SZW1v
dmVMaXN0OwogICAgIGZvciAoUmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdDo6aXRlcmF0b3IgaXRl
ciA9IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+YmVnaW4oKTsgaXRlciAhPSBtX3JlbmRl
ck5hbWVkRmxvd1RocmVhZExpc3QtPmVuZCgpOyArK2l0ZXIpIHsKQEAgLTE1Niw0ICsxNTksMjEg
QEAgdm9pZCBGbG93VGhyZWFkQ29udHJvbGxlcjo6dW5yZWdpc3Rlck5hbWVkRmxvd0NvbnRlbnRO
b2RlKE5vZGUqIGNvbnRlbnROb2RlKQogICAgIG1fbWFwTmFtZWRGbG93Q29udGVudE5vZGVzLnJl
bW92ZShjb250ZW50Tm9kZSk7CiB9CiAKKyNpZm5kZWYgTkRFQlVHCitib29sIEZsb3dUaHJlYWRD
b250cm9sbGVyOjppc0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0ZsYWdDb25zaXN0ZW50KCkgY29u
c3QKK3sKKyAgICBpZiAoIWhhc1JlbmRlck5hbWVkRmxvd1RocmVhZHMoKSkKKyAgICAgICAgcmV0
dXJuICFoYXNBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKTsKKworICAgIC8vIENvdW50IHRoZSBu
dW1iZXIgb2YgYXV0byBoZWlnaHQgcmVnaW9ucworICAgIHVuc2lnbmVkIGF1dG9Mb2dpY2FsSGVp
Z2h0UmVnaW9ucyA9IDA7CisgICAgZm9yIChSZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0OjppdGVy
YXRvciBpdGVyID0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5iZWdpbigpOyBpdGVyICE9
IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+ZW5kKCk7ICsraXRlcikgeworICAgICAgICBS
ZW5kZXJOYW1lZEZsb3dUaHJlYWQqIGZsb3dSZW5kZXJlciA9ICppdGVyOworICAgICAgICBhdXRv
TG9naWNhbEhlaWdodFJlZ2lvbnMgKz0gZmxvd1JlbmRlcmVyLT5hdXRvTG9naWNhbEhlaWdodFJl
Z2lvbnNDb3VudCgpOworICAgIH0KKworICAgIHJldHVybiBhdXRvTG9naWNhbEhlaWdodFJlZ2lv
bnMgPT0gbV9hdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudDsKK30KKyNlbmRpZgorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
Rmxvd1RocmVhZENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhy
ZWFkQ29udHJvbGxlci5oCmluZGV4IGFlNjIzN2QyZGExMzc3NDBlODU0NTBjYmFmNTExMTIwNjJl
YjIzY2EuLjg0NDg2ZjRiMjk5MTY5ZmFjZGM3NzAzMDFhM2ExMzFjNTc5NWU2NDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5oCkBAIC02Nyw2
ICs2NywxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWdpc3Rlck5hbWVkRmxvd0NvbnRlbnROb2Rl
KE5vZGUqLCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqKTsKICAgICB2b2lkIHVucmVnaXN0ZXJOYW1l
ZEZsb3dDb250ZW50Tm9kZShOb2RlKik7CiAKKyAgICBib29sIGhhc0F1dG9Mb2dpY2FsSGVpZ2h0
UmVnaW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQ7
IH0KKyAgICB2b2lkIGluY3JlbWVudEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpIHsgKyttX2F1
dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50OyB9CisgICAgdm9pZCBkZWNyZW1lbnRBdXRvTG9n
aWNhbEhlaWdodFJlZ2lvbnMoKSB7IEFTU0VSVChtX2F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0Nv
dW50ID4gMCk7IC0tbV9hdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudDsgfQorCisjaWZuZGVm
IE5ERUJVRworICAgIGJvb2wgaXNBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNGbGFnQ29uc2lzdGVu
dCgpIGNvbnN0OworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBGbG93VGhyZWFkQ29udHJvbGxl
cihSZW5kZXJWaWV3Kik7CiAKQEAgLTc0LDYgKzgyLDcgQEAgcHJpdmF0ZToKICAgICBSZW5kZXJW
aWV3KiBtX3ZpZXc7CiAgICAgUmVuZGVyRmxvd1RocmVhZCogbV9jdXJyZW50UmVuZGVyRmxvd1Ro
cmVhZDsKICAgICBib29sIG1faXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRPcmRlckRpcnR5OworICAg
IHVuc2lnbmVkIG1fYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQ7CiAgICAgT3duUHRyPFJl
bmRlck5hbWVkRmxvd1RocmVhZExpc3Q+IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdDsKICAg
ICAvLyBtYXBzIGEgY29udGVudCBub2RlIHRvIGl0cyByZW5kZXIgZmxvdyB0aHJlYWQuCiAgICAg
SGFzaE1hcDxOb2RlKiwgUmVuZGVyTmFtZWRGbG93VGhyZWFkKj4gbV9tYXBOYW1lZEZsb3dDb250
ZW50Tm9kZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxv
d1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5j
cHAKaW5kZXggODI2ODYxMTdhM2Y2YjBmNTIyMzkxZGU2ZmUxM2Y5OTliYmEwODQzNC4uMDc0MWVh
OGM4YWY0ODJlMjVhOWM1Y2M0MmJlNGY4OWYzZjQ1MzE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcApAQCAtNzU0LDYgKzc1NCwyNSBAQCBib29s
IFJlbmRlckZsb3dUaHJlYWQ6Om9iamVjdEluRmxvd1JlZ2lvbihjb25zdCBSZW5kZXJPYmplY3Qq
IG9iamVjdCwgY29uc3QgUmVuZAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorI2lmbmRlZiBOREVC
VUcKK3Vuc2lnbmVkIFJlbmRlckZsb3dUaHJlYWQ6OmF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0Nv
dW50KCkgY29uc3QKK3sKKyAgICB1bnNpZ25lZCBhdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMgPSAw
OworICAgIGZvciAoUmVuZGVyUmVnaW9uTGlzdDo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IG1fcmVn
aW9uTGlzdC5iZWdpbigpOyBpdGVyICE9IG1fcmVnaW9uTGlzdC5lbmQoKTsgKytpdGVyKSB7Cisg
ICAgICAgIGNvbnN0IFJlbmRlclJlZ2lvbiogcmVnaW9uID0gKml0ZXI7CisgICAgICAgIGlmICgh
cmVnaW9uLT5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIEFTU0VSVCghcmVnaW9uLT5oYXNBdXRv
TG9naWNhbEhlaWdodCgpKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAg
ICAgICAgaWYgKHJlZ2lvbi0+aGFzQXV0b0xvZ2ljYWxIZWlnaHQoKSkKKyAgICAgICAgICAgIGF1
dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucysrOworICAgIH0KKworICAgIHJldHVybiBhdXRvTG9naWNh
bEhlaWdodFJlZ2lvbnM7Cit9CisjZW5kaWYKKwogQ3VycmVudFJlbmRlckZsb3dUaHJlYWRNYWlu
dGFpbmVyOjpDdXJyZW50UmVuZGVyRmxvd1RocmVhZE1haW50YWluZXIoUmVuZGVyRmxvd1RocmVh
ZCogcmVuZGVyRmxvd1RocmVhZCkKICAgICAgICAgOiBtX3JlbmRlckZsb3dUaHJlYWQocmVuZGVy
Rmxvd1RocmVhZCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGbG93VGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVh
ZC5oCmluZGV4IDY1MDA5N2U1Nzc2ZmFjZTVhZGU0YmNiZDFkNjgyOGI2MzRhNmIxNWMuLmQwOTE4
M2Q5NTY2MjYwZGFjMzBlNGVmNTg5NTZkZGMxZjY5MjAyYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaApAQCAtMTMxLDYgKzEzMSwxMCBAQCBwdWJsaWM6
CiAKICAgICBib29sIHBhZ2VMb2dpY2FsSGVpZ2h0Q2hhbmdlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
cGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkOyB9CiAKKyNpZm5kZWYgTkRFQlVHCisgICAgdW5zaWdu
ZWQgYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQoKSBjb25zdDsKKyNlbmRpZgorCiBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgPSAwOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCmluZGV4IDJiN2U0MjUy
YWIyMzY5NmEwNzBkNDY4MzhjZjUyNTNiYTM1YjkxZmEuLjhhNzQ4N2Q3Y2RhNjgyMzc3NTE0Y2Rm
ZjcxODY5ZjdiMDViY2IzNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZWdpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdp
b24uY3BwCkBAIC00OSw2ICs0OSw3IEBAIFJlbmRlclJlZ2lvbjo6UmVuZGVyUmVnaW9uKE5vZGUq
IG5vZGUsIFJlbmRlckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQpCiAgICAgLCBtX3BhcmVudE5hbWVk
Rmxvd1RocmVhZCgwKQogICAgICwgbV9pc1ZhbGlkKGZhbHNlKQogICAgICwgbV9oYXNDdXN0b21S
ZWdpb25TdHlsZShmYWxzZSkKKyAgICAsIG1faGFzQXV0b0xvZ2ljYWxIZWlnaHQoZmFsc2UpCiAg
ICAgLCBtX3JlZ2lvblN0YXRlKFJlZ2lvblVuZGVmaW5lZCkKIHsKIH0KQEAgLTE3Miw2ICsxNzMs
MjMgQEAgdm9pZCBSZW5kZXJSZWdpb246OmNoZWNrUmVnaW9uU3R5bGUoKQogICAgIG1fZmxvd1Ro
cmVhZC0+Y2hlY2tSZWdpb25zV2l0aFN0eWxpbmcoKTsKIH0KIAordm9pZCBSZW5kZXJSZWdpb246
OnVwZGF0ZVJlZ2lvbkhhc0F1dG9Mb2dpY2FsSGVpZ2h0RmxhZygpCit7CisgICAgQVNTRVJUKG1f
Zmxvd1RocmVhZCk7CisKKyAgICBpZiAoIWlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgYm9vbCBkaWRIYXZlQXV0b0xvZ2ljYWxIZWlnaHQgPSBtX2hhc0F1dG9Mb2dpY2FsSGVpZ2h0
OworICAgIG1faGFzQXV0b0xvZ2ljYWxIZWlnaHQgPSBzaG91bGRIYXZlQXV0b0xvZ2ljYWxIZWln
aHQoKTsKKyAgICBpZiAobV9oYXNBdXRvTG9naWNhbEhlaWdodCAhPSBkaWRIYXZlQXV0b0xvZ2lj
YWxIZWlnaHQpIHsKKyAgICAgICAgaWYgKG1faGFzQXV0b0xvZ2ljYWxIZWlnaHQpCisgICAgICAg
ICAgICB2aWV3KCktPmZsb3dUaHJlYWRDb250cm9sbGVyKCktPmluY3JlbWVudEF1dG9Mb2dpY2Fs
SGVpZ2h0UmVnaW9ucygpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB2aWV3KCktPmZsb3dU
aHJlYWRDb250cm9sbGVyKCktPmRlY3JlbWVudEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpOwor
ICAgIH0KK30KKwogdm9pZCBSZW5kZXJSZWdpb246OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVy
ZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCiB7CiAgICAgUmVuZGVyUmVw
bGFjZWQ6OnN0eWxlRGlkQ2hhbmdlKGRpZmYsIG9sZFN0eWxlKTsKQEAgLTE4NSw2ICsyMDMsNyBA
QCB2b2lkIFJlbmRlclJlZ2lvbjo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYs
IGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdAogICAgIH0KIAogICAgIGNoZWNrUmVnaW9uU3R5bGUo
KTsKKyAgICB1cGRhdGVSZWdpb25IYXNBdXRvTG9naWNhbEhlaWdodEZsYWcoKTsKIH0KIAogdm9p
ZCBSZW5kZXJSZWdpb246OmxheW91dCgpCkBAIC0yODIsMTIgKzMwMSwyNCBAQCB2b2lkIFJlbmRl
clJlZ2lvbjo6YXR0YWNoUmVnaW9uKCkKICAgICAvLyBUaGUgcmVnaW9uIGp1c3QgZ290IGF0dGFj
aGVkIHRvIHRoZSBmbG93IHRocmVhZCwgbGV0cyBjaGVjayB3aGV0aGVyCiAgICAgLy8gaXQgaGFz
IHJlZ2lvbiBzdHlsaW5nIHJ1bGVzIGFzc29jaWF0ZWQuCiAgICAgY2hlY2tSZWdpb25TdHlsZSgp
OworCisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1faGFzQXV0
b0xvZ2ljYWxIZWlnaHQgPSBzaG91bGRIYXZlQXV0b0xvZ2ljYWxIZWlnaHQoKTsKKyAgICBpZiAo
aGFzQXV0b0xvZ2ljYWxIZWlnaHQoKSkKKyAgICAgICAgdmlldygpLT5mbG93VGhyZWFkQ29udHJv
bGxlcigpLT5pbmNyZW1lbnRBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKTsKIH0KIAogdm9pZCBS
ZW5kZXJSZWdpb246OmRldGFjaFJlZ2lvbigpCiB7Ci0gICAgaWYgKG1fZmxvd1RocmVhZCkKKyAg
ICBpZiAobV9mbG93VGhyZWFkKSB7CiAgICAgICAgIG1fZmxvd1RocmVhZC0+cmVtb3ZlUmVnaW9u
RnJvbVRocmVhZCh0aGlzKTsKKyAgICAgICAgaWYgKGhhc0F1dG9Mb2dpY2FsSGVpZ2h0KCkpIHsK
KyAgICAgICAgICAgIEFTU0VSVChpc1ZhbGlkKCkpOworICAgICAgICAgICAgdmlldygpLT5mbG93
VGhyZWFkQ29udHJvbGxlcigpLT5kZWNyZW1lbnRBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKTsK
KyAgICAgICAgfQorICAgIH0KICAgICBtX2Zsb3dUaHJlYWQgPSAwOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKaW5kZXggM2Q5ZDVhOGEyNzFjNjhjYWI5MmJkNGE0
NzBhNmRkM2UxNjIyNjFhZC4uOGE0ZjcxMjA2MWYyM2MxYWRlODMyNTVlZjE5MGJlODAxYWM2ZDQx
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaApAQCAtMTE0LDYgKzEx
NCwxNCBAQCBwdWJsaWM6CiAgICAgLy8gb3IgY29sdW1ucyBhZGRlZCB0b2dldGhlci4KICAgICB2
aXJ0dWFsIExheW91dFVuaXQgbG9naWNhbEhlaWdodE9mQWxsRmxvd1RocmVhZENvbnRlbnQoKSBj
b25zdDsKIAorICAgIGJvb2wgc2hvdWxkSGF2ZUF1dG9Mb2dpY2FsSGVpZ2h0KCkgY29uc3QKKyAg
ICB7CisgICAgICAgIGJvb2wgaGFzU3BlY2lmaWVkRW5kcG9pbnRzRm9ySGVpZ2h0ID0gc3R5bGUo
KS0+bG9naWNhbFRvcCgpLmlzU3BlY2lmaWVkKCkgJiYgc3R5bGUoKS0+bG9naWNhbEJvdHRvbSgp
LmlzU3BlY2lmaWVkKCk7CisgICAgICAgIGJvb2wgaGFzQW5jaG9yZWRFbmRwb2ludHNGb3JIZWln
aHQgPSBpc091dE9mRmxvd1Bvc2l0aW9uZWQoKSAmJiBoYXNTcGVjaWZpZWRFbmRwb2ludHNGb3JI
ZWlnaHQ7CisgICAgICAgIHJldHVybiBzdHlsZSgpLT5sb2dpY2FsSGVpZ2h0KCkuaXNBdXRvKCkg
JiYgIWhhc0FuY2hvcmVkRW5kcG9pbnRzRm9ySGVpZ2h0OworICAgIH0KKyAgICBib29sIGhhc0F1
dG9Mb2dpY2FsSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9oYXNBdXRvTG9naWNhbEhlaWdodDsg
fQorCiAgICAgLy8gVGhlIHRvcCBvZiB0aGUgbmVhcmVzdCBwYWdlIGluc2lkZSB0aGUgcmVnaW9u
LiBGb3IgUmVuZGVyUmVnaW9ucywgdGhpcyBpcyBqdXN0IHRoZSBsb2dpY2FsIHRvcCBvZiB0aGUK
ICAgICAvLyBmbG93IHRocmVhZCBwb3J0aW9uIHdlIGNvbnRhaW4uIEZvciBzZXRzLCB3ZSBoYXZl
IHRvIGZpZ3VyZSBvdXQgdGhlIHRvcCBvZiB0aGUgbmVhcmVzdCBjb2x1bW4gb3IKICAgICAvLyBw
YWdlLgpAQCAtMTU0LDYgKzE2Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwcmludFJlZ2lvbk9i
amVjdHNTdHlsZXMoKTsKIAogICAgIHZvaWQgY2hlY2tSZWdpb25TdHlsZSgpOworICAgIHZvaWQg
dXBkYXRlUmVnaW9uSGFzQXV0b0xvZ2ljYWxIZWlnaHRGbGFnKCk7CiAKIHByb3RlY3RlZDoKICAg
ICBSZW5kZXJGbG93VGhyZWFkKiBtX2Zsb3dUaHJlYWQ7CkBAIC0xODUsOCArMTk0LDkgQEAgcHJp
dmF0ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgUmVuZGVyT2JqZWN0KiwgT2JqZWN0UmVn
aW9uU3R5bGVJbmZvID4gUmVuZGVyT2JqZWN0UmVnaW9uU3R5bGVNYXA7CiAgICAgUmVuZGVyT2Jq
ZWN0UmVnaW9uU3R5bGVNYXAgbV9yZW5kZXJPYmplY3RSZWdpb25TdHlsZTsKIAotICAgIGJvb2wg
bV9pc1ZhbGlkOwotICAgIGJvb2wgbV9oYXNDdXN0b21SZWdpb25TdHlsZTsKKyAgICBib29sIG1f
aXNWYWxpZCA6IDE7CisgICAgYm9vbCBtX2hhc0N1c3RvbVJlZ2lvblN0eWxlIDogMTsKKyAgICBi
b29sIG1faGFzQXV0b0xvZ2ljYWxIZWlnaHQgOiAxOwogICAgIFJlZ2lvblN0YXRlIG1fcmVnaW9u
U3RhdGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VHJlZUFzVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4
dC5jcHAKaW5kZXggZWY2NTBhZGVkYjMzNGUxYWY3MjRjNjZlZGNkNjMyZDM2OGEwMmNmMy4uODEz
Y2Y3ZTBjOTJhOGUzYzhlYjNlOTY5MTBmMDNhYTM2YTVkMTRhNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcApAQCAtNjk0LDYgKzY5NCw4IEBAIHN0
YXRpYyB2b2lkIHdyaXRlUmVuZGVyTmFtZWRGbG93VGhyZWFkcyhUZXh0U3RyZWFtJiB0cywgUmVu
ZGVyVmlldyogcmVuZGVyVmlldywKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICBpZiAocmVuZGVyUmVnaW9uLT5oYXNDdXN0b21SZWdpb25TdHlsZSgpKQogICAgICAg
ICAgICAgICAgICAgICAgICAgdHMgPDwgIiByZWdpb24gc3R5bGU6IDEiOworICAgICAgICAgICAg
ICAgICAgICBpZiAocmVuZGVyUmVnaW9uLT5oYXNBdXRvTG9naWNhbEhlaWdodCgpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgdHMgPDwgIiBoYXNBdXRvTG9naWNhbEhlaWdodCI7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIGlmICghcmVuZGVyUmVnaW9uLT5pc1ZhbGlkKCkp
CiAgICAgICAgICAgICAgICAgICAgIHRzIDw8ICIgaW52YWxpZCI7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjA2OTI0NTdk
ZDA1MTA1ZmQ0ZGQ5NDJjZjc0ZjVkOGMxYzJlMDY2Ni4uMzY5ODc4MzNhOWRkOTgwNGJiZDA0MGE5
MDJlNDRlNDkwMGRlN2U3MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA5LTE4ICBNaWhu
ZWEgT3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1NSZWdpb25zXUZs
YWcgYXV0by1oZWlnaHQgcmVnaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTYyNjcKKworICAgICAgICBSZXZpZXdlZCBieSBKdWxpZW4gQ2hhZmZy
YWl4LgorCisgICAgICAgIFRoZSByZWdpb25zIGhhdmluZyBhdXRvIGxvZ2ljYWwgaGVpZ2h0IHNo
b3VsZCBiZSBmbGFnZ2VkIHNvIHRoYXQgdGhlaXIgaGVpZ2h0IHdpbGwgY29tcHV0ZWQgYXMgcGFy
dCBvZiBhIDIgcGFzcy1sYXlvdXQgbWVjaGFuaXNtLgorICAgICAgICBBZGRlZCBhIHRlc3QgdGhh
dCBjaGVja3Mgd2hldGhlciBhIHJlZ2lvbiBpbiBzZXZlcmFsIHNpdHVhdGlvbnMgaXMgbWFya2Vk
IHByb3Blcmx5LgorCisgICAgICAgICogZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtcmVnaW9ucy1t
YXJrLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3JlZ2lvbnMvYXV0
b2hlaWdodC1yZWdpb25zLW1hcmstZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtcmVnaW9ucy1tYXJrLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczoK
KwogMjAxMi0wOS0xNyAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgW0Nocm9taXVtXSBVbnJldmlld2VkIGdhcmRlbmluZywgbWFyayBwZXJmL25lc3Rl
ZC1jb21iaW5lZC1zZWxlY3RvcnMuaHRtbCBpcyBmbGFreQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtcmVnaW9ucy1tYXJrLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1yZWdpb25zLW1hcmsuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
NTRkZjA4YjNlMGE5MmIxNGFmMmIwMGMyNDgyYTBlMzBhYTEyMDU0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtcmVnaW9ucy1tYXJrLmh0bWwK
QEAgLTAsMCArMSw1OSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8IS0tIFRlc3Rz
IHRoYXQgcmVnaW9ucyB3aXRoIGF1dG8taGVpZ2h0IGFyZSBpZGVudGlmaWVkIGFuZCBmbGFnZ2Vk
IGNvcnJlY3RseSAtLT4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAg
LnNwZWNpZmllZFdpZHRoIHsgd2lkdGg6IDUwcHg7IH0KKyAgICAgICAgICAgIC5zcGVjaWZpZWRX
aWR0aDIgeyB3aWR0aDogMTAwcHg7IH0KKyAgICAgICAgICAgIC5zcGVjaWZpZWRIZWlnaHQgeyBo
ZWlnaHQ6IDUwcHg7IH0KKyAgICAgICAgICAgIC5hdXRvSGVpZ2h0IHsgaGVpZ2h0OiBhdXRvOyB9
CisKKyAgICAgICAgICAgICNyZWdpb24gIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7IH0KKyAg
ICAgICAgICAgICNyZWdpb24yICB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93MjsgfQorICAgICAg
ICAgICAgI3JlZ2lvbjMgeyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzM7IHBvc2l0aW9uOiBhYnNv
bHV0ZTsgdG9wOiA1MHB4OyBib3R0b206IDEwMHB4OyB9CisgICAgICAgICAgICAjcmVnaW9uNCB7
IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93NDsgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2Fs
LWxyOyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDUwcHg7IHJpZ2h0OiAxMDBweDsgfQorICAg
ICAgICAgICAgI3JlZ2lvbjUgeyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzU7IH0KKyAgICAgICAg
ICAgICNyZWdpb242IHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c2OyB9CisgICAgICAgICAgICAj
YXJ0aWNsZTcgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzc7IH0KKyAgICAgICAgICAgICNyZWdp
b243IHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c3OyB9CisgICAgICAgICAgICAjYXJ0aWNsZTgg
eyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzg7IH0KKyAgICAgICAgICAgICNyZWdpb244IHsgLXdl
YmtpdC1mbG93LWZyb206IGZsb3c4OyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgor
ICAgIDxib2R5PgorICAgICAgICA8IS0tIEEgcmVnaW9uIHdpdGggc3BlY2lmaWVkIGhlaWdodCBz
aG91bGQgbm90IGJlIG1hcmtlZCBhcyBoYXZpbmcgYXV0byBoZWlnaHQgLS0+CisgICAgICAgIDxk
aXYgaWQ9InJlZ2lvbiIgY2xhc3M9InNwZWNpZmllZFdpZHRoIHNwZWNpZmllZEhlaWdodCI+PC9k
aXY+CisKKyAgICAgICAgPCEtLSBBIHJlZ2lvbiB3aXRob3V0IGEgc3BlY2lmaWVkIGhlaWdodCBz
aG91bGQgYmUgbWFya2VkIGFzIGhhdmluZyBhdXRvIGhlaWdodCAtLT4KKyAgICAgICAgPGRpdiBp
ZD0icmVnaW9uMiIgY2xhc3M9InNwZWNpZmllZFdpZHRoIj48L2Rpdj4KKworICAgICAgICA8IS0t
IEFuIG91dCBvZiBmbG93IHJlZ2lvbiB3aXRoIGhlaWdodCBhdXRvIGFuZCBzcGVjaWZpZWQgdG9w
L2JvdHRvbSBzaG91bGQgbm90IGJlIG1hcmtlZAorICAgICAgICBhcyBhdXRvLWhlaWdodCAtLT4K
KyAgICAgICAgPGRpdiBpZD0icmVnaW9uMyIgY2xhc3M9InNwZWNpZmllZFdpZHRoIj48L2Rpdj4K
KworICAgICAgICA8IS0tIEFuIG91dCBvZiBmbG93IHJlZ2lvbiB3aXRoIGhlaWdodCBhdXRvLCB2
ZXJ0aWNhbCB3cml0aW5nIG1vZGUsIHNwZWNpZmllZCBsZWZ0L3JpZ2h0IHNob3VsZAorICAgICAg
ICBub3QgYmUgbWFya2VkIGFzIGF1dG8taGVpZ2h0LS0+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lv
bjQiIGNsYXNzPSJzcGVjaWZpZWRIZWlnaHQiPjwvZGl2PgorCisgICAgICAgIDwhLS0gRHluYW1p
YyBjaGFuZ2Ugb2YgaGVpZ2h0IHZhbHVlcyBzaG91bGQgbWFyayB0aGUgcmVnaW9ucyBhdXRvIGhl
aWdodCBjb3JyZWN0bHkgLS0+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbjUiIGNsYXNzPSJzcGVj
aWZpZWRXaWR0aCBzcGVjaWZpZWRIZWlnaHQiPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJyZWdp
b242IiBjbGFzcz0ic3BlY2lmaWVkV2lkdGgiPjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjUiKS5jbGFzc05hbWUgPSAi
c3BlY2lmaWVkV2lkdGggYXV0b0hlaWdodCI7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgicmVnaW9uNiIpLmNsYXNzTmFtZSA9ICJzcGVjaWZpZWRXaWR0aCBzcGVjaWZpZWRI
ZWlnaHQiOworICAgICAgICA8L3NjcmlwdD4KKworICAgICAgICA8IS0tIEFuIGludmFsaWQgcmVn
aW9uIHNob3VsZCBub3QgYmUgbWFya2VkIGFzIGF1dG8gaGVpZ2h0IGV2ZW4gaWYgaXQgaGFzIGhl
aWdodDphdXRvIHNpbmNlIGl0IHdpbGwgbm90IGdldAorICAgICAgICBhbnkgY29udGVudC4gQmVs
b3csIHJlZ2lvbjggaXMgaW52YWxpZC4gLS0+CisgICAgICAgIDxkaXYgaWQ9ImFydGljbGU4Ij4K
KyAgICAgICAgICAgIDxkaXYgaWQ9InJlZ2lvbjciIGNsYXNzPSJzcGVjaWZpZWRXaWR0aCI+PC9k
aXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJhcnRpY2xlNyI+CisgICAgICAg
ICAgICA8ZGl2IGlkPSJyZWdpb244IiBjbGFzcz0ic3BlY2lmaWVkV2lkdGgiPjwvZGl2PgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIC8vIENoYW5naW5nIHN0
eWxlIGZvciBhbiBpbnZhbGlkIHJlZ2lvbiBzaG91bGQgbm90IG1hcmsgdGhlIHJlZ2lvbiBhcyBh
dXRvSGVpZ2h0LgorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjgi
KS5jbGFzc05hbWUgPSAic3BlY2lmaWVkV2lkdGgyIjsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAg
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggOTU0ZGFlMDc3MDQ5MjI1ZmQwNjI5ZWNlY2ZjNDUyMmUwNDQ3ZmI0
NC4uYWU0NjczZjY2Mzk3Zjg2NGVjNzE4YzUyMTY4NGJiN2FlODRlODQ0NiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC0yNDg5LDYgKzI0
ODksOCBAQCBCVUdDUjg0MDMyIFdJTiA6IGZhc3QvZG9tL29iamVjdC1wbHVnaW4taGlkZXMtcHJv
cGVydGllcy5odG1sID0gUEFTUyBUSU1FT1VUCiBCVUdXSzc0MjE5IDogZmFzdC9yZWdpb25zL3Bv
c2l0aW9uZWQtb2JqZWN0cy1ibG9jay1zdGF0aWMtc3Bhbm5pbmctcmVnaW9ucy1ydGwuaHRtbCA9
IFBBU1MgSU1BR0UKIEJVR1dLNzQyMTkgOiBmYXN0L3JlZ2lvbnMvcG9zaXRpb25lZC1vYmplY3Rz
LWJsb2NrLXN0YXRpYy1zcGFubmluZy1yZWdpb25zLmh0bWwgPSBQQVNTIElNQUdFCiAKK0JVR1dL
OTYyNjcgOiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1yZWdpb25zLW1hcmsuaHRtbCA9IFBBU1MK
KwogQlVHV0s3NDEzNyBTTk9XTEVPUEFSRCA6IGZhc3QvcmVnaW9ucy9vdXRsaW5lLXNpZGVzLWlu
LXJlZ2lvbi5odG1sID0gUEFTUyBUSU1FT1VUCiBCVUdXSzgzODI0IE1BQyA6IGZhc3QvcmVnaW9u
cy9yZWdpb24tb3ZlcmZsb3ctYnJlYWsuaHRtbCA9IElNQUdFCiBCVUdXSzc0MTM3IDogZmFzdC9y
ZWdpb25zL2Zsb2F0LXB1c2hlZC13aWR0aC1jaGFuZ2UuaHRtbCA9IFBBU1MgSU1BR0UKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1y
ZWdpb25zLW1hcmstZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qv
cmVnaW9ucy9hdXRvaGVpZ2h0LXJlZ2lvbnMtbWFyay1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjNkOTc0Y2IyMzY0Mzk2NzU4NGFkMDUyMzg2NjE4MThlZjc3MTY4YwpHSVQgYmluYXJ5IHBhdGNo
CmxpdGVyYWwgMzI4OQp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkxQiVRbFli
cFJ6bmtCOWdDQ000NyQ9U3VGeGVPTWoKeiN3bj09MkJ2MV9EVFlSZE52VmtqTiM7cVokKkU+JGlL
WiFMaFJGJSR8OT4rdUBNTD9zSUVHWnJkMylXRWt3Sm15CnpmV2QrTiZtUyg1UVFgVmtjSyhiRzE0
Rn1zTj9ELU1lLTFZUU5sOWlWMjhJK0s0aER0Xmg2KVN9NCMhM1hNKzBPdQp6Rl5wen0oVU1gYlIy
OzFsTXIqXi0rSGtaczlJWHZVWWVWZHtxMjl9SWp4fWorOCU9Pi0yP2tHQktiTGgqMn43WmsKQzgw
KkZXCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtcmVnaW9ucy1tYXJrLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1yZWdp
b25zLW1hcmstZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhZTFhYmNjYWFmNzFmMzFkNDE4NTBh
NzVmMzRhZmYyOWVjMjQxNjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtcmVnaW9ucy1tYXJrLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDM4IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDExNgorICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MTE2CisgICAgUmVuZGVyQm9keSB7
Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4MTAwCisgICAgICBSZW5kZXJSZWdpb24ge0RJVn0gYXQg
KDAsMCkgc2l6ZSA1MHg1MAorICAgICAgUmVuZGVyUmVnaW9uIHtESVZ9IGF0ICgwLDUwKSBzaXpl
IDUweDAKKyAgICAgIFJlbmRlclJlZ2lvbiB7RElWfSBhdCAoMCw1MCkgc2l6ZSA1MHgwCisgICAg
ICBSZW5kZXJSZWdpb24ge0RJVn0gYXQgKDAsNTApIHNpemUgNTB4NTAKK0Zsb3cgVGhyZWFkcwor
ICBUaHJlYWQgd2l0aCBmbG93LW5hbWUgJ2Zsb3cnCisgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA1
MHg1MAorICAgICAgUmVuZGVyTmFtZWRGbG93VGhyZWFkIGF0ICgwLDApIHNpemUgNTB4NTAKKyAg
UmVnaW9ucyBmb3IgZmxvdyAnZmxvdycKKyAgICBSZW5kZXJSZWdpb24ge0RJVn0gI3JlZ2lvbgor
ICBUaHJlYWQgd2l0aCBmbG93LW5hbWUgJ2Zsb3cyJworICBSZWdpb25zIGZvciBmbG93ICdmbG93
MicKKyAgICBSZW5kZXJSZWdpb24ge0RJVn0gI3JlZ2lvbjIgaGFzQXV0b0xvZ2ljYWxIZWlnaHQK
KyAgVGhyZWFkIHdpdGggZmxvdy1uYW1lICdmbG93MycKKyAgUmVnaW9ucyBmb3IgZmxvdyAnZmxv
dzMnCisgICAgUmVuZGVyUmVnaW9uIHtESVZ9ICNyZWdpb24zCisgIFRocmVhZCB3aXRoIGZsb3ct
bmFtZSAnZmxvdzQnCisgIFJlZ2lvbnMgZm9yIGZsb3cgJ2Zsb3c0JworICAgIFJlbmRlclJlZ2lv
biB7RElWfSAjcmVnaW9uNAorICBUaHJlYWQgd2l0aCBmbG93LW5hbWUgJ2Zsb3c1JworICBSZWdp
b25zIGZvciBmbG93ICdmbG93NScKKyAgICBSZW5kZXJSZWdpb24ge0RJVn0gI3JlZ2lvbjUgaGFz
QXV0b0xvZ2ljYWxIZWlnaHQKKyAgVGhyZWFkIHdpdGggZmxvdy1uYW1lICdmbG93NicKKyAgICBs
YXllciBhdCAoMCwwKSBzaXplIDUweDUwCisgICAgICBSZW5kZXJOYW1lZEZsb3dUaHJlYWQgYXQg
KDAsMCkgc2l6ZSA1MHg1MAorICBSZWdpb25zIGZvciBmbG93ICdmbG93NicKKyAgICBSZW5kZXJS
ZWdpb24ge0RJVn0gI3JlZ2lvbjYKKyAgVGhyZWFkIHdpdGggZmxvdy1uYW1lICdmbG93OCcKKyAg
UmVnaW9ucyBmb3IgZmxvdyAnZmxvdzgnCisgICAgUmVuZGVyUmVnaW9uIHtESVZ9ICNyZWdpb244
IGludmFsaWQKKyAgVGhyZWFkIHdpdGggZmxvdy1uYW1lICdmbG93NycKKyAgUmVnaW9ucyBmb3Ig
ZmxvdyAnZmxvdzcnCisgICAgUmVuZGVyUmVnaW9uIHtESVZ9ICNyZWdpb243IGhhc0F1dG9Mb2dp
Y2FsSGVpZ2h0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>