<?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>118429</bug_id>
          
          <creation_ts>2013-07-05 10:57:43 -0700</creation_ts>
          <short_desc>[wk2] Add API to lock the scroll position at the top or bottom of the page</short_desc>
          <delta_ts>2013-07-05 21:53:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jamesr</cc>
    
    <cc>jeffm</cc>
    
    <cc>luiz</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>906455</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-07-05 10:57:43 -0700</bug_when>
    <thetext>Some clients might have a need to keep the page scrolled to the top or bottom, regardless of scrolls that occur via JS/user interaction/page loading.

&lt;rdar://problem/14120323&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906468</commentid>
    <comment_count>1</comment_count>
      <attachid>206167</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-07-05 12:56:59 -0700</bug_when>
    <thetext>Created attachment 206167
preliminary

changelog+test coming right up</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906469</commentid>
    <comment_count>2</comment_count>
      <attachid>206167</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-07-05 12:58:21 -0700</bug_when>
    <thetext>Comment on attachment 206167
preliminary

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

&gt; Source/WebKit2/UIProcess/API/C/WKPage.cpp:886
&gt; +    switch (pinning) {

I know about APICast but it seemed like there weren&apos;t private things in there. Maybe I&apos;m wrong?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906470</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-05 12:59:10 -0700</bug_when>
    <thetext>Attachment 206167 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/WebCore.exp.in&apos;, u&apos;Source/WebCore/page/FrameView.cpp&apos;, u&apos;Source/WebCore/page/FrameView.h&apos;, u&apos;Source/WebCore/page/scrolling/ScrollingCoordinator.h&apos;, u&apos;Source/WebCore/page/scrolling/ScrollingTree.cpp&apos;, u&apos;Source/WebCore/page/scrolling/ScrollingTree.h&apos;, u&apos;Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.h&apos;, u&apos;Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm&apos;, u&apos;Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm&apos;, u&apos;Source/WebCore/platform/ScrollTypes.h&apos;, u&apos;Source/WebKit2/Shared/WebPageCreationParameters.cpp&apos;, u&apos;Source/WebKit2/Shared/WebPageCreationParameters.h&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKPage.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKPagePrivate.h&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.messages.in&apos;]&quot; exit_code: 1
Source/WebCore/page/FrameView.h:438:  The parameter name &quot;pinning&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.h:81:  The parameter name &quot;pinning&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/page/scrolling/ScrollingTree.h:105:  The parameter name &quot;pinning&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/UIProcess/WebPageProxy.h:777:  The parameter name &quot;pinning&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/WebProcess/WebPage/WebPage.h:665:  The parameter name &quot;pinning&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 5 in 20 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>906476</commentid>
    <comment_count>4</comment_count>
      <attachid>206169</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-07-05 14:22:30 -0700</bug_when>
    <thetext>Created attachment 206169
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906478</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-05 14:24:38 -0700</bug_when>
    <thetext>Attachment 206169 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/WebCore.exp.in&apos;, u&apos;Source/WebCore/page/FrameView.cpp&apos;, u&apos;Source/WebCore/page/FrameView.h&apos;, u&apos;Source/WebCore/page/scrolling/ScrollingCoordinator.h&apos;, u&apos;Source/WebCore/page/scrolling/ScrollingTree.cpp&apos;, u&apos;Source/WebCore/page/scrolling/ScrollingTree.h&apos;, u&apos;Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.h&apos;, u&apos;Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm&apos;, u&apos;Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm&apos;, u&apos;Source/WebCore/platform/ScrollTypes.h&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/Shared/WebPageCreationParameters.cpp&apos;, u&apos;Source/WebKit2/Shared/WebPageCreationParameters.h&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKPage.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKPagePrivate.h&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.messages.in&apos;, u&apos;Tools/ChangeLog&apos;, u&apos;Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj&apos;, u&apos;Tools/TestWebKitAPI/Tests/WebKit2/ScrollPinningBehaviors.cpp&apos;]&quot; exit_code: 1
Source/WebKit2/WebProcess/WebPage/WebPage.h:665:  The parameter name &quot;pinning&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 25 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>906482</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-07-05 14:34:48 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/152425</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906536</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-07-05 21:18:32 -0700</bug_when>
    <thetext>100 crashes on the build bot after this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906540</commentid>
    <comment_count>8</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-07-05 21:25:43 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; 100 crashes on the build bot after this one.

Uhhhh, I&apos;ll take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906542</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-07-05 21:27:26 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; 100 crashes on the build bot after this one.
&gt; 
&gt; Uhhhh, I&apos;ll take a look.

Hmm, indeed. In console it looks like it&apos;s the revision before, but it&apos;s definitely mine. I&apos;ll post a patch in a second.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906550</commentid>
    <comment_count>10</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-07-05 21:53:33 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (In reply to comment #7)
&gt; &gt; &gt; 100 crashes on the build bot after this one.
&gt; &gt; 
&gt; &gt; Uhhhh, I&apos;ll take a look.
&gt; 
&gt; Hmm, indeed. In console it looks like it&apos;s the revision before, but it&apos;s definitely mine. I&apos;ll post a patch in a second.

Patch at https://bugs.webkit.org/show_bug.cgi?id=118440</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206167</attachid>
            <date>2013-07-05 12:56:59 -0700</date>
            <delta_ts>2013-07-05 14:22:30 -0700</delta_ts>
            <desc>preliminary</desc>
            <filename>scrollpinning.diff</filename>
            <type>text/plain</type>
            <size>19313</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KaW5kZXggOTVjNmVmNi4uNjA4NGE2NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KQEAgLTExNjUsNiArMTE2NSw3IEBAIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcyMnNldEJh
c2VCYWNrZ3JvdW5kQ29sb3JFUktOU181Q29sb3JFCiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MjN1
cGRhdGVDYW5IYXZlU2Nyb2xsYmFyc0V2CiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MjRmb3JjZUxh
eW91dEZvclBhZ2luYXRpb25FUktOU185RmxvYXRTaXplRVMzX2ZOU18xOUFkanVzdFZpZXdTaXpl
T3JOb3RFCiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MjRwYWludENvbnRlbnRzRm9yU25hcHNob3RF
UE5TXzE1R3JhcGhpY3NDb250ZXh0RVJLTlNfN0ludFJlY3RFTlMwXzE4U2VsZWN0aW9uSW5TbmFw
aG90RU5TMF8yNkNvb3JkaW5hdGVTcGFjZUZvclNuYXBzaG90RQorX19aTjdXZWJDb3JlOUZyYW1l
VmlldzI0c2V0U2Nyb2xsUGlubmluZ0JlaGF2aW9yRU5TXzIxU2Nyb2xsUGlubmluZ0JlaGF2aW9y
RQogX19aTjdXZWJDb3JlOUZyYW1lVmlldzI2YWRqdXN0UGFnZUhlaWdodERlcHJlY2F0ZWRFUGZm
ZmYKIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcyNmFkanVzdFRpbGVkQmFja2luZ0NvdmVyYWdlRXYK
IF9fWk43V2ViQ29yZTlGcmFtZVZpZXcyOXNldFNob3VsZFVwZGF0ZVdoaWxlT2Zmc2NyZWVuRWIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA4MjVjMGIzLi5hZGQwYzM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yMDIsNiArMjAyLDcgQEAgRnJhbWVWaWV3OjpGcmFt
ZVZpZXcoRnJhbWUqIGZyYW1lKQogICAgICwgbV9oYXNTb2Z0d2FyZUZpbHRlcnMoZmFsc2UpCiAj
ZW5kaWYKICAgICAsIG1fdmlzdWFsVXBkYXRlc0FsbG93ZWRCeUNsaWVudCh0cnVlKQorICAgICwg
bV9zY3JvbGxQaW5uaW5nQmVoYXZpb3IoRG9Ob3RQaW4pCiB7CiAgICAgaW5pdCgpOwogCkBAIC0x
NjM3LDYgKzE2MzgsMTYgQEAgSW50U2l6ZSBGcmFtZVZpZXc6OnNjcm9sbE9mZnNldEZvckZpeGVk
UG9zaXRpb24oKSBjb25zdAogICAgIGZsb2F0IGZyYW1lU2NhbGVGYWN0b3IgPSBtX2ZyYW1lID8g
bV9mcmFtZS0+ZnJhbWVTY2FsZUZhY3RvcigpIDogMTsKICAgICByZXR1cm4gc2Nyb2xsT2Zmc2V0
Rm9yRml4ZWRQb3NpdGlvbih2aXNpYmxlQ29udGVudFJlY3QsIHRvdGFsQ29udGVudHNTaXplLCBz
Y3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luLCBmcmFtZVNjYWxlRmFjdG9yLCBmaXhlZEVsZW1l
bnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKCksIGhlYWRlckhlaWdodCgpLCBmb290ZXJIZWlnaHQo
KSk7CiB9CisgICAgCitJbnRQb2ludCBGcmFtZVZpZXc6Om1pbmltdW1TY3JvbGxQb3NpdGlvbigp
IGNvbnN0Cit7CisgICAgSW50UG9pbnQgbWluaW11bVBvc2l0aW9uKFNjcm9sbFZpZXc6Om1pbmlt
dW1TY3JvbGxQb3NpdGlvbigpKTsKKyAgICAKKyAgICBpZiAobV9mcmFtZSA9PSBtX2ZyYW1lLT5w
YWdlKCktPm1haW5GcmFtZSgpICYmIG1fc2Nyb2xsUGlubmluZ0JlaGF2aW9yID09IFBpblRvQm90
dG9tKQorICAgICAgICBtaW5pbXVtUG9zaXRpb24uc2V0WShtYXhpbXVtU2Nyb2xsUG9zaXRpb24o
KS55KCkpOworICAgIAorICAgIHJldHVybiBtaW5pbXVtUG9zaXRpb247Cit9CiAKIEludFBvaW50
IEZyYW1lVmlldzo6bWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3QKIHsKQEAgLTE2NDgsNiAr
MTY1OSw5IEBAIEludFBvaW50IEZyYW1lVmlldzo6bWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgY29u
c3QKICAgICAgICAgfHwgc2Nyb2xsT3JpZ2luKCkgPT0gSW50UG9pbnQ6Onplcm8oKSkKICAgICAg
ICAgbWF4aW11bU9mZnNldC5jbGFtcE5lZ2F0aXZlVG9aZXJvKCk7CiAgICAgCisgICAgaWYgKG1f
ZnJhbWUgPT0gbV9mcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKSAmJiBtX3Njcm9sbFBpbm5pbmdC
ZWhhdmlvciA9PSBQaW5Ub1RvcCkKKyAgICAgICAgbWF4aW11bU9mZnNldC5zZXRZKG1pbmltdW1T
Y3JvbGxQb3NpdGlvbigpLnkoKSk7CisgICAgCiAgICAgcmV0dXJuIG1heGltdW1PZmZzZXQ7CiB9
CiAKQEAgLTQyMzMsNSArNDI0NywxNSBAQCB2b2lkIEZyYW1lVmlldzo6c2V0VmlzdWFsVXBkYXRl
c0FsbG93ZWRCeUNsaWVudChib29sIHZpc3VhbFVwZGF0ZXNBbGxvd2VkKQogCiAgICAgbV9mcmFt
ZS0+ZG9jdW1lbnQoKS0+c2V0VmlzdWFsVXBkYXRlc0FsbG93ZWRCeUNsaWVudCh2aXN1YWxVcGRh
dGVzQWxsb3dlZCk7CiB9CisgICAgCit2b2lkIEZyYW1lVmlldzo6c2V0U2Nyb2xsUGlubmluZ0Jl
aGF2aW9yKFNjcm9sbFBpbm5pbmdCZWhhdmlvciBwaW5uaW5nKQoreworICAgIG1fc2Nyb2xsUGlu
bmluZ0JlaGF2aW9yID0gcGlubmluZzsKKyAgICAKKyAgICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0
b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gbV9mcmFtZS0+cGFnZSgpLT5zY3JvbGxpbmdDb29y
ZGluYXRvcigpKQorICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+c2V0U2Nyb2xsUGlubmlu
Z0JlaGF2aW9yKHBpbm5pbmcpOworICAgIAorICAgIHVwZGF0ZVNjcm9sbGJhcnMoc2Nyb2xsT2Zm
c2V0KCkpOworfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
aAppbmRleCAzMTBiZjViLi45YmE3ZDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTE5
Nyw2ICsxOTcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJ
bkRpcmVjdGlvbihTY3JvbGxEaXJlY3Rpb24pIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCByZXF1
ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoY29uc3QgSW50UG9pbnQmKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGJvb2wgaXNSdWJiZXJCYW5kSW5Qcm9ncmVzcygpIGNvbnN0IE9WRVJSSURFOworICAg
IHZpcnR1YWwgSW50UG9pbnQgbWluaW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3QgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCBJbnRQb2ludCBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdCBPVkVS
UklERTsKIAogICAgIC8vIFRoaXMgaXMgZGlmZmVyZW50IHRoYW4gdmlzaWJsZUNvbnRlbnRSZWN0
KCkgaW4gdGhhdCBpdCBpZ25vcmVzIG5lZ2F0aXZlIChvciBvdmVybHkgcG9zaXRpdmUpCkBAIC00
MzMsNiArNDM0LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0VmlzdWFsVXBkYXRlc0FsbG93ZWRC
eUNsaWVudChib29sKTsKIAogICAgIHZvaWQgcmVzdW1lQW5pbWF0aW5nSW1hZ2VzKCk7CisgICAg
CisgICAgdm9pZCBzZXRTY3JvbGxQaW5uaW5nQmVoYXZpb3IoU2Nyb2xsUGlubmluZ0JlaGF2aW9y
IHBpbm5pbmcpOwogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHNjcm9sbENvbnRlbnRz
RmFzdFBhdGgoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RU
b1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpOwpAQCAtNjU1LDYgKzY1OCw4IEBAIHBy
aXZhdGU6CiAjZW5kaWYKIAogICAgIGJvb2wgbV92aXN1YWxVcGRhdGVzQWxsb3dlZEJ5Q2xpZW50
OworICAgIAorICAgIFNjcm9sbFBpbm5pbmdCZWhhdmlvciBtX3Njcm9sbFBpbm5pbmdCZWhhdmlv
cjsKIH07CiAKIGlubGluZSB2b2lkIEZyYW1lVmlldzo6aW5jcmVtZW50VmlzdWFsbHlOb25FbXB0
eUNoYXJhY3RlckNvdW50KHVuc2lnbmVkIGNvdW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggYjM5YWVlNC4uYmNi
MjA2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdDb29yZGluYXRvci5oCkBAIC0xMjgsNiArMTI4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBzZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wpIHsgfQogICAgIHZpcnR1YWwgYm9vbCBy
dWJiZXJCYW5kc0F0VG9wKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZv
aWQgc2V0UnViYmVyQmFuZHNBdFRvcChib29sKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Ny
b2xsUGlubmluZ0JlaGF2aW9yKFNjcm9sbFBpbm5pbmdCZWhhdmlvcikgeyB9CiAKICAgICAvLyBH
ZW5lcmF0ZWQgYSB1bmlxdWUgaWQgZm9yIHNjcm9sbCBsYXllcnMuCiAgICAgU2Nyb2xsaW5nTm9k
ZUlEIHVuaXF1ZVNjcm9sbExheWVySUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggN2IyNWNkNC4uZTBmMWJkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTU4LDYg
KzU4LDcgQEAgU2Nyb2xsaW5nVHJlZTo6U2Nyb2xsaW5nVHJlZShTY3JvbGxpbmdDb29yZGluYXRv
ciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiAgICAgLCBtX21haW5GcmFtZVBpbm5lZFRvVGhlVG9w
KGZhbHNlKQogICAgICwgbV9tYWluRnJhbWVQaW5uZWRUb1RoZUJvdHRvbShmYWxzZSkKICAgICAs
IG1fbWFpbkZyYW1lSXNSdWJiZXJCYW5kaW5nKGZhbHNlKQorICAgICwgbV9zY3JvbGxQaW5uaW5n
QmVoYXZpb3IoRG9Ob3RQaW4pCiAgICAgLCBtX3Njcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0Vu
YWJsZWQoZmFsc2UpCiAgICAgLCBtX2lzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoZmFsc2Up
CiB7CkBAIC0zMjYsNiArMzI3LDIwIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0UnViYmVyQmFu
ZHNBdFRvcChib29sIHJ1YmJlckJhbmRzQXRUb3ApCiAKICAgICBtX3J1YmJlckJhbmRzQXRUb3Ag
PSBydWJiZXJCYW5kc0F0VG9wOwogfQorICAgIAordm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRTY3Jv
bGxQaW5uaW5nQmVoYXZpb3IoU2Nyb2xsUGlubmluZ0JlaGF2aW9yIHBpbm5pbmcpCit7CisgICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3dpcGVTdGF0ZU11dGV4KTsKKyAgICAKKyAgICBtX3Njcm9s
bFBpbm5pbmdCZWhhdmlvciA9IHBpbm5pbmc7Cit9CisKK1Njcm9sbFBpbm5pbmdCZWhhdmlvciBT
Y3JvbGxpbmdUcmVlOjpzY3JvbGxQaW5uaW5nQmVoYXZpb3IoKQoreworICAgIE11dGV4TG9ja2Vy
IGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOworICAgIAorICAgIHJldHVybiBtX3Njcm9sbFBpbm5p
bmdCZWhhdmlvcjsKK30KIAogYm9vbCBTY3JvbGxpbmdUcmVlOjp3aWxsV2hlZWxFdmVudFN0YXJ0
U3dpcGVHZXN0dXJlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAppbmRleCBkODdm
OTY5Li43MDA4NzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5oCkBAIC0xMDEsNiArMTAxLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UnViYmVy
QmFuZHNBdEJvdHRvbShib29sKTsKICAgICBib29sIHJ1YmJlckJhbmRzQXRUb3AoKTsKICAgICB2
b2lkIHNldFJ1YmJlckJhbmRzQXRUb3AoYm9vbCk7CisgICAgCisgICAgdm9pZCBzZXRTY3JvbGxQ
aW5uaW5nQmVoYXZpb3IoU2Nyb2xsUGlubmluZ0JlaGF2aW9yIHBpbm5pbmcpOworICAgIFNjcm9s
bFBpbm5pbmdCZWhhdmlvciBzY3JvbGxQaW5uaW5nQmVoYXZpb3IoKTsKIAogICAgIGJvb2wgd2ls
bFdoZWVsRXZlbnRTdGFydFN3aXBlR2VzdHVyZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsK
IApAQCAtMTM2LDYgKzEzOSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX21haW5GcmFtZVBpbm5l
ZFRvVGhlVG9wOwogICAgIGJvb2wgbV9tYWluRnJhbWVQaW5uZWRUb1RoZUJvdHRvbTsKICAgICBi
b29sIG1fbWFpbkZyYW1lSXNSdWJiZXJCYW5kaW5nOworICAgIFNjcm9sbFBpbm5pbmdCZWhhdmlv
ciBtX3Njcm9sbFBpbm5pbmdCZWhhdmlvcjsKIAogICAgIGJvb2wgbV9zY3JvbGxpbmdQZXJmb3Jt
YW5jZUxvZ2dpbmdFbmFibGVkOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaAppbmRleCAxYzU0
MzIyLi4yOTFmMjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9t
YWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaApAQCAtNzcsNiArNzcsOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFJ1YmJlckJhbmRzQXRCb3R0b20oYm9vbCkgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBib29sIHJ1YmJlckJhbmRzQXRUb3AoKSBjb25zdCBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UnViYmVyQmFuZHNBdFRvcChib29sKSBPVkVSUklERTsK
KyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUGlubmluZ0JlaGF2aW9yKFNjcm9sbFBp
bm5pbmdCZWhhdmlvciBwaW5uaW5nKSBPVkVSUklERTsKIAogcHJpdmF0ZToKICAgICAvLyBSZXR1
cm4gd2hldGhlciB0aGlzIHNjcm9sbGluZyBjb29yZGluYXRvciBjYW4ga2VlcCBmaXhlZCBwb3Np
dGlvbiBsYXllcnMgZml4ZWQgdG8gdGhlaXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQppbmRleCBi
NTZmMzAxLi44NjliYmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCkBAIC0xMTIsNiArMTEy
LDExIEBAIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OnNldFJ1YmJlckJhbmRzQXRUb3Ao
Ym9vbCBydWJiZXJCYW5kc0F0VG9wKQogewogICAgIHNjcm9sbGluZ1RyZWUoKS0+c2V0UnViYmVy
QmFuZHNBdFRvcChydWJiZXJCYW5kc0F0VG9wKTsKIH0KKyAgICAKK3ZvaWQgU2Nyb2xsaW5nQ29v
cmRpbmF0b3JNYWM6OnNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcihTY3JvbGxQaW5uaW5nQmVoYXZp
b3IgcGlubmluZykKK3sKKyAgICBzY3JvbGxpbmdUcmVlKCktPnNldFNjcm9sbFBpbm5pbmdCZWhh
dmlvcihwaW5uaW5nKTsKK30KIAogdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6Y29tbWl0
VHJlZVN0YXRlSWZOZWVkZWQoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjLm1t
CmluZGV4IDk4YjYwZDcuLjZhMDAwNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVN
YWMubW0KQEAgLTM0Miw3ICszNDIsMTIgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZU1hYzo6c2V0U2Nyb2xsTGF5ZXJQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgcG9zaXQKIAogSW50
UG9pbnQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWM6Om1pbmltdW1TY3JvbGxQb3NpdGlv
bigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIEludFBvaW50KDAsIDApOworICAgIEludFBvaW50IHBv
c2l0aW9uOworICAgIAorICAgIGlmIChzY3JvbGxpbmdUcmVlKCktPnJvb3ROb2RlKCkgPT0gdGhp
cyAmJiBzY3JvbGxpbmdUcmVlKCktPnNjcm9sbFBpbm5pbmdCZWhhdmlvcigpID09IFBpblRvQm90
dG9tKQorICAgICAgICBwb3NpdGlvbi5zZXRZKG1heGltdW1TY3JvbGxQb3NpdGlvbigpLnkoKSk7
CisKKyAgICByZXR1cm4gcG9zaXRpb247CiB9CiAKIEludFBvaW50IFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlTWFjOjptYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdApAQCAtMzUyLDYgKzM1
Nyw5IEBAIEludFBvaW50IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjptYXhpbXVtU2Ny
b2xsUG9zaXRpb24oKSBjb25zdAogCiAgICAgcG9zaXRpb24uY2xhbXBOZWdhdGl2ZVRvWmVybygp
OwogCisgICAgaWYgKHNjcm9sbGluZ1RyZWUoKS0+cm9vdE5vZGUoKSA9PSB0aGlzICYmIHNjcm9s
bGluZ1RyZWUoKS0+c2Nyb2xsUGlubmluZ0JlaGF2aW9yKCkgPT0gUGluVG9Ub3ApCisgICAgICAg
IHBvc2l0aW9uLnNldFkobWluaW11bVNjcm9sbFBvc2l0aW9uKCkueSgpKTsKKwogICAgIHJldHVy
biBwb3NpdGlvbjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKaW5kZXgg
ZDY1ZDgyMS4uYmJhMDRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCkBA
IC0xNTksNiArMTU5LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKICAgICB0eXBlZGVm
IHVuc2lnbmVkIFNjcm9sbGJhckNvbnRyb2xQYXJ0TWFzazsKIAorICAgIGVudW0gU2Nyb2xsUGlu
bmluZ0JlaGF2aW9yIHsKKyAgICAgICAgRG9Ob3RQaW4sCisgICAgICAgIFBpblRvVG9wLAorICAg
ICAgICBQaW5Ub0JvdHRvbQorICAgIH07CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDlhZTNiYjEu
LjliMDZiNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5jcHAKQEAgLTYwLDYgKzYwLDcgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAogICAgIGVuY29kZXIgPDwgbWVkaWFWb2x1bWU7CiAgICAgZW5jb2RlciA8PCBtYXlTdGFydE1l
ZGlhV2hlbkluV2luZG93OwogICAgIGVuY29kZXIgPDwgbWluaW11bUxheW91dFNpemU7CisgICAg
ZW5jb2Rlci5lbmNvZGVFbnVtKHNjcm9sbFBpbm5pbmdCZWhhdmlvcik7CiAKICNpZiBQTEFURk9S
TShNQUMpCiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGxheWVySG9zdGluZ01vZGUpOwpAQCAtMTIz
LDYgKzEyNCw4IEBAIGJvb2wgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2ViUGFnCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubWluaW11bUxheW91dFNpemUp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocGFy
YW1ldGVycy5zY3JvbGxQaW5uaW5nQmVoYXZpb3IpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHBhcmFt
ZXRlcnMubGF5ZXJIb3N0aW5nTW9kZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA3Njc2ZjIwLi5mNWQ5MjkzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAg
LTkwLDYgKzkwLDggQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGJv
b2wgbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsKIAogICAgIFdlYkNvcmU6OkludFNpemUgbWlu
aW11bUxheW91dFNpemU7CisgICAgCisgICAgV2ViQ29yZTo6U2Nyb2xsUGlubmluZ0JlaGF2aW9y
IHNjcm9sbFBpbm5pbmdCZWhhdmlvcjsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBMYXllckhv
c3RpbmdNb2RlIGxheWVySG9zdGluZ01vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuY3BwCmluZGV4IGJlODEzODguLjYxMTE4NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC04NzksNiArODc5LDQ0IEBAIHZvaWQgV0tQYWdl
U2VsZWN0Q29udGV4dE1lbnVJdGVtKFdLUGFnZVJlZiBwYWdlLCBXS0NvbnRleHRNZW51SXRlbVJl
ZiBpdGVtKQogI2VuZGlmCiB9CiAKK1dLU2Nyb2xsUGlubmluZ0JlaGF2aW9yIFdLUGFnZUdldFNj
cm9sbFBpbm5pbmdCZWhhdmlvcihXS1BhZ2VSZWYgcGFnZSkKK3sKKyAgICBTY3JvbGxQaW5uaW5n
QmVoYXZpb3IgcGlubmluZyA9IHRvSW1wbChwYWdlKS0+c2Nyb2xsUGlubmluZ0JlaGF2aW9yKCk7
CisgICAgCisgICAgc3dpdGNoIChwaW5uaW5nKSB7CisgICAgY2FzZSBXZWJDb3JlOjpTY3JvbGxQ
aW5uaW5nQmVoYXZpb3I6OkRvTm90UGluOgorICAgICAgICByZXR1cm4ga1dLU2Nyb2xsUGlubmlu
Z0JlaGF2aW9yRG9Ob3RQaW47CisgICAgY2FzZSBXZWJDb3JlOjpTY3JvbGxQaW5uaW5nQmVoYXZp
b3I6OlBpblRvVG9wOgorICAgICAgICByZXR1cm4ga1dLU2Nyb2xsUGlubmluZ0JlaGF2aW9yUGlu
VG9Ub3A7CisgICAgY2FzZSBXZWJDb3JlOjpTY3JvbGxQaW5uaW5nQmVoYXZpb3I6OlBpblRvQm90
dG9tOgorICAgICAgICByZXR1cm4ga1dLU2Nyb2xsUGlubmluZ0JlaGF2aW9yUGluVG9Cb3R0b207
CisgICAgfQorICAgIAorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBrV0tT
Y3JvbGxQaW5uaW5nQmVoYXZpb3JEb05vdFBpbjsKK30KKwordm9pZCBXS1BhZ2VTZXRTY3JvbGxQ
aW5uaW5nQmVoYXZpb3IoV0tQYWdlUmVmIHBhZ2UsIFdLU2Nyb2xsUGlubmluZ0JlaGF2aW9yIHBp
bm5pbmcpCit7CisgICAgU2Nyb2xsUGlubmluZ0JlaGF2aW9yIGNvcmVQaW5uaW5nID0gU2Nyb2xs
UGlubmluZ0JlaGF2aW9yOjpEb05vdFBpbjsKKworICAgIHN3aXRjaCAocGlubmluZykgeworICAg
IGNhc2Uga1dLU2Nyb2xsUGlubmluZ0JlaGF2aW9yRG9Ob3RQaW46CisgICAgICAgIGNvcmVQaW5u
aW5nID0gU2Nyb2xsUGlubmluZ0JlaGF2aW9yOjpEb05vdFBpbjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBrV0tTY3JvbGxQaW5uaW5nQmVoYXZpb3JQaW5Ub1RvcDoKKyAgICAgICAgY29yZVBp
bm5pbmcgPSBTY3JvbGxQaW5uaW5nQmVoYXZpb3I6OlBpblRvVG9wOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIGtXS1Njcm9sbFBpbm5pbmdCZWhhdmlvclBpblRvQm90dG9tOgorICAgICAgICBj
b3JlUGlubmluZyA9IFNjcm9sbFBpbm5pbmdCZWhhdmlvcjo6UGluVG9Cb3R0b207CisgICAgICAg
IGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IH0KKyAgICAKKyAgICB0b0ltcGwocGFnZSktPnNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcihjb3Jl
UGlubmluZyk7Cit9CisKIAogCiAvLyAtLSBERVBSRUNBVEVEIC0tCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaAppbmRleCAyNDE1ZjI2Li4xMTQ5OTBh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmgK
QEAgLTEwMCw2ICsxMDAsMTYgQEAgV0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tQYWdlQ29weVJlbGF0
ZWRQYWdlcyhXS1BhZ2VSZWYgcGFnZSk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VJbnZhbGlkTWVz
c2FnZUZ1bmN0aW9uKSh1aW50MzJfdCBtZXNzYWdlSUQpOwogV0tfRVhQT1JUIHZvaWQgV0tQYWdl
U2V0SW52YWxpZE1lc3NhZ2VGdW5jdGlvbihXS1BhZ2VJbnZhbGlkTWVzc2FnZUZ1bmN0aW9uIGZ1
bmN0aW9uKTsKIAorZW51bSB7CisgICAga1dLU2Nyb2xsUGlubmluZ0JlaGF2aW9yRG9Ob3RQaW4s
CisgICAga1dLU2Nyb2xsUGlubmluZ0JlaGF2aW9yUGluVG9Ub3AsCisgICAga1dLU2Nyb2xsUGlu
bmluZ0JlaGF2aW9yUGluVG9Cb3R0b20KK307Cit0eXBlZGVmIHVpbnQzMl90IFdLU2Nyb2xsUGlu
bmluZ0JlaGF2aW9yOworCitXS19FWFBPUlQgV0tTY3JvbGxQaW5uaW5nQmVoYXZpb3IgV0tQYWdl
R2V0U2Nyb2xsUGlubmluZ0JlaGF2aW9yKFdLUGFnZVJlZiBwYWdlKTsKK1dLX0VYUE9SVCB2b2lk
IFdLUGFnZVNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcihXS1BhZ2VSZWYgcGFnZSwgV0tTY3JvbGxQ
aW5uaW5nQmVoYXZpb3IgcGlubmluZyk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDFjNzUyZDMu
LjkyMjVjZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBA
IC0zMTgsNiArMzE4LDcgQEAgV2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCog
cGFnZUNsaWVudCwgUGFzc1JlZlB0cjxXZWJQcm9jZXNzUHJveHk+IHAKICNpZiBFTkFCTEUoUEFH
RV9WSVNJQklMSVRZX0FQSSkKICAgICAsIG1fdmlzaWJpbGl0eVN0YXRlKFBhZ2VWaXNpYmlsaXR5
U3RhdGVWaXNpYmxlKQogI2VuZGlmCisgICAgLCBtX3Njcm9sbFBpbm5pbmdCZWhhdmlvcihEb05v
dFBpbikKIHsKICNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKICAgICBpZiAoIW1faXNW
aXNpYmxlKQpAQCAtMzk5Miw2ICszOTkzLDcgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBX
ZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycygpIGNvbnN0CiAgICAgcGFyYW1ldGVycy5t
ZWRpYVZvbHVtZSA9IG1fbWVkaWFWb2x1bWU7CiAgICAgcGFyYW1ldGVycy5tYXlTdGFydE1lZGlh
V2hlbkluV2luZG93ID0gbV9tYXlTdGFydE1lZGlhV2hlbkluV2luZG93OwogICAgIHBhcmFtZXRl
cnMubWluaW11bUxheW91dFNpemUgPSBtX21pbmltdW1MYXlvdXRTaXplOworICAgIHBhcmFtZXRl
cnMuc2Nyb2xsUGlubmluZ0JlaGF2aW9yID0gbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3I7CiAKICNp
ZiBQTEFURk9STShNQUMpCiAgICAgcGFyYW1ldGVycy5sYXllckhvc3RpbmdNb2RlID0gbV9sYXll
ckhvc3RpbmdNb2RlOwpAQCAtNDQ5Miw0ICs0NDk0LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRTYXZlVG9QYWdlQ2FjaGUoKQogICAgIG1fcHJvY2Vzcy0+ZGlkU2F2ZVRvUGFnZUNhY2hlKCk7
CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRTY3JvbGxQaW5uaW5nQmVoYXZpb3IoU2Nyb2xs
UGlubmluZ0JlaGF2aW9yIHBpbm5pbmcpCit7CisgICAgbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3Ig
PSBwaW5uaW5nOworCisgICAgaWYgKGlzVmFsaWQoKSkKKyAgICAgICAgbV9wcm9jZXNzLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRTY3JvbGxQaW5uaW5nQmVoYXZpb3IocGlubmluZyksIG1f
cGFnZUlEKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYTY2NmFmYi4uZDFmNWI1ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNzczLDcgKzc3MywxMCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBjb25uZWN0aW9uV2lsbENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKIAogICAg
IHZvaWQgZGlkU2F2ZVRvUGFnZUNhY2hlKCk7Ci0KKyAgICAgICAgCisgICAgdm9pZCBzZXRTY3Jv
bGxQaW5uaW5nQmVoYXZpb3IoV2ViQ29yZTo6U2Nyb2xsUGlubmluZ0JlaGF2aW9yIHBpbm5pbmcp
OworICAgIFdlYkNvcmU6OlNjcm9sbFBpbm5pbmdCZWhhdmlvciBzY3JvbGxQaW5uaW5nQmVoYXZp
b3IoKSB7IHJldHVybiBtX3Njcm9sbFBpbm5pbmdCZWhhdmlvcjsgfQorICAgICAgICAKIHByaXZh
dGU6CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VDbGllbnQqLCBQYXNzUmVmUHRyPFdlYlByb2Nlc3NQ
cm94eT4sIFdlYlBhZ2VHcm91cCosIHVpbnQ2NF90IHBhZ2VJRCk7CiAKQEAgLTEyODcsNiArMTI5
MCw4IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIEhhc2hNYXA8U3RyaW5nLCBT
dHJpbmc+IG1fdGVtcG9yYXJ5UERGRmlsZXM7CiAjZW5kaWYKKyAgICAgICAgCisgICAgV2ViQ29y
ZTo6U2Nyb2xsUGlubmluZ0JlaGF2aW9yIG1fc2Nyb2xsUGlubmluZ0JlaGF2aW9yOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmlu
ZGV4IDIyYjVjNTAuLmMxZDdkZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CkBAIC0xMjQ1LDYgKzEyNDUsOSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0
aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKIAogICAgIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT52
aWV3KCktPnNldFByb2hpYml0c1Njcm9sbGluZyhzaG91bGREaXNhYmxlU2Nyb2xsaW5nKTsKICAg
ICBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+dmlldygpLT5zZXRWaXN1YWxVcGRhdGVzQWxsb3dlZEJ5
Q2xpZW50KCF3ZWJQYWdlLT5zaG91bGRFeHRlbmRJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNz
aW9uKCkpOworICAgIAorICAgIGlmICh3ZWJQYWdlLT5zY3JvbGxQaW5uaW5nQmVoYXZpb3IoKSAh
PSBEb05vdFBpbikKKyAgICAgICAgbV9mcmFtZS0+Y29yZUZyYW1lKCktPnZpZXcoKS0+c2V0U2Ny
b2xsUGlubmluZ0JlaGF2aW9yKHdlYlBhZ2UtPnNjcm9sbFBpbm5pbmdCZWhhdmlvcigpKTsKIAog
I2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIGlmIChzaG91bGRVc2VGaXhlZExheW91
dCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmlu
ZGV4IDNiMWRiNzguLjYyN2EwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTI4OCw2ICsyODgsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKHVp
bnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVy
cykKICAgICAsIG1faW5zcGVjdG9yQ2xpZW50KDApCiAgICAgLCBtX2JhY2tncm91bmRDb2xvcihD
b2xvcjo6d2hpdGUpCiAgICAgLCBtX21heGltdW1SZW5kZXJpbmdTdXBwcmVzc2lvblRva2VuKDAp
CisgICAgLCBtX3Njcm9sbFBpbm5pbmdCZWhhdmlvcihEb05vdFBpbikKIHsKICAgICBBU1NFUlQo
bV9wYWdlSUQpOwogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgbm9uLWlkZWFsIGxvY2F0aW9uIGZv
ciB0aGlzIFNldHRpbmcgYW5kCkBAIC0zNzksNiArMzgwLDggQEAgV2ViUGFnZTo6V2ViUGFnZSh1
aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRl
cnMpCiAgICAgc2V0SXNJbldpbmRvdyhwYXJhbWV0ZXJzLmlzSW5XaW5kb3cpOwogCiAgICAgc2V0
TWluaW11bUxheW91dFNpemUocGFyYW1ldGVycy5taW5pbXVtTGF5b3V0U2l6ZSk7CisgICAgCisg
ICAgc2V0U2Nyb2xsUGlubmluZ0JlaGF2aW9yKHBhcmFtZXRlcnMuc2Nyb2xsUGlubmluZ0JlaGF2
aW9yKTsKIAogICAgIG1fdXNlckFnZW50ID0gcGFyYW1ldGVycy51c2VyQWdlbnQ7CiAKQEAgLTQy
MjksNSArNDIzMiwxMSBAQCB2b2lkIFdlYlBhZ2U6OnN0b3BFeHRlbmRpbmdJbmNyZW1lbnRhbFJl
bmRlcmluZ1N1cHByZXNzaW9uKHVuc2lnbmVkIHRva2VuKQogICAgIG1fYWN0aXZlUmVuZGVyaW5n
U3VwcHJlc3Npb25Ub2tlbnMucmVtb3ZlKHRva2VuKTsKICAgICBtX3BhZ2UtPm1haW5GcmFtZSgp
LT52aWV3KCktPnNldFZpc3VhbFVwZGF0ZXNBbGxvd2VkQnlDbGllbnQoIXNob3VsZEV4dGVuZElu
Y3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb24oKSk7CiB9CisgICAgCit2b2lkIFdlYlBhZ2U6
OnNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcih1aW50MzJfdCBwaW5uaW5nKQoreworICAgIG1fc2Ny
b2xsUGlubmluZ0JlaGF2aW9yID0gc3RhdGljX2Nhc3Q8U2Nyb2xsUGlubmluZ0JlaGF2aW9yPihw
aW5uaW5nKTsKKyAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCktPnNldFNjcm9sbFBpbm5p
bmdCZWhhdmlvcihtX3Njcm9sbFBpbm5pbmdCZWhhdmlvcik7Cit9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5k
ZXggZWJhYzQ0MC4uZWY1OWZmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCkBAIC02NjEsNiArNjYxLDkgQEAgcHVibGljOgogICAgIHZvaWQgc3RvcEV4
dGVuZGluZ0luY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb24odW5zaWduZWQgdG9rZW4pOwog
ICAgIGJvb2wgc2hvdWxkRXh0ZW5kSW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvbigpIHsg
cmV0dXJuICFtX2FjdGl2ZVJlbmRlcmluZ1N1cHByZXNzaW9uVG9rZW5zLmlzRW1wdHkoKTsgfQog
CisgICAgV2ViQ29yZTo6U2Nyb2xsUGlubmluZ0JlaGF2aW9yIHNjcm9sbFBpbm5pbmdCZWhhdmlv
cigpIHsgcmV0dXJuIG1fc2Nyb2xsUGlubmluZ0JlaGF2aW9yOyB9CisgICAgdm9pZCBzZXRTY3Jv
bGxQaW5uaW5nQmVoYXZpb3IodWludDMyX3QgLyogV2ViQ29yZTo6U2Nyb2xsUGlubmluZ0JlaGF2
aW9yICovIHBpbm5pbmcpOworCiBwcml2YXRlOgogICAgIFdlYlBhZ2UodWludDY0X3QgcGFnZUlE
LCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKQEAgLTEwMjUsNiArMTAyOCw4
IEBAIHByaXZhdGU6CiAKICAgICBIYXNoU2V0PHVuc2lnbmVkPiBtX2FjdGl2ZVJlbmRlcmluZ1N1
cHByZXNzaW9uVG9rZW5zOwogICAgIHVuc2lnbmVkIG1fbWF4aW11bVJlbmRlcmluZ1N1cHByZXNz
aW9uVG9rZW47CisgICAgCisgICAgV2ViQ29yZTo6U2Nyb2xsUGlubmluZ0JlaGF2aW9yIG1fc2Ny
b2xsUGlubmluZ0JlaGF2aW9yOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CmluZGV4IDI5MTI1MzUuLjQ5ZDNjNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0zMTQsNCArMzE0LDYgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAjZW5kaWYKIAogICAgIFNldE1h
aW5GcmFtZUluVmlld1NvdXJjZU1vZGUoYm9vbCBpblZpZXdTb3VyY2VNb2RlKQorICAgIAorICAg
IFNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcih1aW50MzJfdCBwaW5uaW5nKQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206169</attachid>
            <date>2013-07-05 14:22:30 -0700</date>
            <delta_ts>2013-07-05 14:26:52 -0700</delta_ts>
            <desc>patch</desc>
            <filename>scrollpinning.diff</filename>
            <type>text/plain</type>
            <size>33246</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2NDg1NWQwLi5mZWEwNmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcg
QEAKKzIwMTMtMDctMDUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgW3drMl0gQWRkIEFQSSB0byBsb2NrIHRoZSBzY3JvbGwgcG9zaXRpb24gYXQgdGhl
IHRvcCBvciBib3R0b20gb2YgdGhlIHBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExODQyOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTQxMjAz
MjM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dCAoQVBJKTogV2ViS2l0Mi5TY3JvbGxQaW5uaW5nQmVoYXZpb3JzCisKKyAgICAgICAgKiBXZWJD
b3JlLmV4cC5pbjoKKyAgICAgICAgRXhwb3NlIEZyYW1lVmlldzo6c2V0U2Nyb2xsUGlubmluZ0Jl
aGF2aW9yLgorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3OjpGcmFtZVZpZXcpOgorICAgICAgICBPdXIgcGlubmluZyBiZWhhdmlvciBz
aG91bGQgYmUgRG9Ob3RQaW4gYnkgZGVmYXVsdC4KKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6bWluaW11bVNjcm9sbFBvc2l0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6bWF4aW11bVNjcm9sbFBvc2l0aW9uKToK
KyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVN
YWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6
bWluaW11bVNjcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlTWFjOjptYXhpbXVtU2Nyb2xsUG9zaXRpb24pOgorICAgICAgICBGaXggdGhl
IG1pbmltdW0gc2Nyb2xsIHBvc2l0aW9uJ3MgdmVydGljYWwgbG9jYXRpb24gdG8gdGhlIG1heGlt
dW0gaWYKKyAgICAgICAgd2UncmUgcGlubmVkIHRvIHRoZSBib3R0b20sIGFuZCB2aWNlLXZlcnNh
IGlmIHdlJ3JlIHBpbm5lZCB0byB0aGUgdG9wLgorCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6OnNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcik6IEFkZGVkLgorICAgICAgICBJZiBzY3JvbGwg
cGlubmluZyBiZWhhdmlvciBoYXMgY2hhbmdlZCwgaW5mb3JtIFNjcm9sbGluZ0Nvb3JkaW5hdG9y
CisgICAgICAgIGFuZCB1cGRhdGUgc2Nyb2xsYmFycyAod2hpY2ggd2lsbCBhbHNvIHJlLXBpbiB0
aGUgc2Nyb2xsIHBvc2l0aW9uKS4KKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAg
ICAgIE92ZXJyaWRlIG1pbmltdW1TY3JvbGxQb3NpdGlvbiwgYWRkIHNldFNjcm9sbFBpbm5pbmdC
ZWhhdmlvciwKKyAgICAgICAgYW5kIHN0b3JhZ2UgZm9yIG1fc2Nyb2xsUGlubmluZ0JlaGF2aW9y
LgorCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRTY3JvbGxQaW5uaW5nQmVo
YXZpb3IpOiBBZGRlZC4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6U2Nyb2xsaW5nVHJlZSk6Cisg
ICAgICAgIE91ciBwaW5uaW5nIGJlaGF2aW9yIHNob3VsZCBiZSBEb05vdFBpbiBieSBkZWZhdWx0
LgorCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRTY3JvbGxQaW5uaW5nQmVo
YXZpb3IpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2Nyb2xsUGlubmluZ0Jl
aGF2aW9yKToKKyAgICAgICAgR2V0dGVyL3NldHRlciBmb3IgbV9zY3JvbGxQaW5uaW5nQmVoYXZp
b3IsIHNjcm9sbGluZy10aHJlYWQtc2FmZS4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29v
cmRpbmF0b3JNYWMuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29v
cmRpbmF0b3JNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvck1h
Yzo6c2V0U2Nyb2xsUGlubmluZ0JlaGF2aW9yKToKKyAgICAgICAgSW5mb3JtIFNjcm9sbGluZ1Ry
ZWUgb2YgdGhlIHNjcm9sbCBwaW5uaW5nIGJlaGF2aW9yIGNoYW5nZS4KKyAgICAgICAgCisgICAg
ICAgICogcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaDoKKyAgICAgICAgQWRkIFNjcm9sbFBpbm5pbmdC
ZWhhdmlvciBlbnVtLgorCiAyMDEzLTA3LTAyICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25A
YXBwbGUuY29tPgogCiAgICAgICAgIGNvbnN0cmFpblNjcm9sbFBvc2l0aW9uRm9yT3Zlcmhhbmcg
bmVlZHMgdG8gaGFuZGxlIHNjcm9sbE9yaWdpbiBjb3JyZWN0bHkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
aW5kZXggOTVjNmVmNi4uNjA4NGE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTExNjUsNiAr
MTE2NSw3IEBAIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcyMnNldEJhc2VCYWNrZ3JvdW5kQ29sb3JF
UktOU181Q29sb3JFCiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MjN1cGRhdGVDYW5IYXZlU2Nyb2xs
YmFyc0V2CiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MjRmb3JjZUxheW91dEZvclBhZ2luYXRpb25F
UktOU185RmxvYXRTaXplRVMzX2ZOU18xOUFkanVzdFZpZXdTaXplT3JOb3RFCiBfX1pON1dlYkNv
cmU5RnJhbWVWaWV3MjRwYWludENvbnRlbnRzRm9yU25hcHNob3RFUE5TXzE1R3JhcGhpY3NDb250
ZXh0RVJLTlNfN0ludFJlY3RFTlMwXzE4U2VsZWN0aW9uSW5TbmFwaG90RU5TMF8yNkNvb3JkaW5h
dGVTcGFjZUZvclNuYXBzaG90RQorX19aTjdXZWJDb3JlOUZyYW1lVmlldzI0c2V0U2Nyb2xsUGlu
bmluZ0JlaGF2aW9yRU5TXzIxU2Nyb2xsUGlubmluZ0JlaGF2aW9yRQogX19aTjdXZWJDb3JlOUZy
YW1lVmlldzI2YWRqdXN0UGFnZUhlaWdodERlcHJlY2F0ZWRFUGZmZmYKIF9fWk43V2ViQ29yZTlG
cmFtZVZpZXcyNmFkanVzdFRpbGVkQmFja2luZ0NvdmVyYWdlRXYKIF9fWk43V2ViQ29yZTlGcmFt
ZVZpZXcyOXNldFNob3VsZFVwZGF0ZVdoaWxlT2Zmc2NyZWVuRWIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcAppbmRleCA4MjVjMGIzLi5hZGQwYzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCkBAIC0yMDIsNiArMjAyLDcgQEAgRnJhbWVWaWV3OjpGcmFtZVZpZXcoRnJhbWUqIGZyYW1l
KQogICAgICwgbV9oYXNTb2Z0d2FyZUZpbHRlcnMoZmFsc2UpCiAjZW5kaWYKICAgICAsIG1fdmlz
dWFsVXBkYXRlc0FsbG93ZWRCeUNsaWVudCh0cnVlKQorICAgICwgbV9zY3JvbGxQaW5uaW5nQmVo
YXZpb3IoRG9Ob3RQaW4pCiB7CiAgICAgaW5pdCgpOwogCkBAIC0xNjM3LDYgKzE2MzgsMTYgQEAg
SW50U2l6ZSBGcmFtZVZpZXc6OnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oKSBjb25zdAog
ICAgIGZsb2F0IGZyYW1lU2NhbGVGYWN0b3IgPSBtX2ZyYW1lID8gbV9mcmFtZS0+ZnJhbWVTY2Fs
ZUZhY3RvcigpIDogMTsKICAgICByZXR1cm4gc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRQb3NpdGlvbih2
aXNpYmxlQ29udGVudFJlY3QsIHRvdGFsQ29udGVudHNTaXplLCBzY3JvbGxQb3NpdGlvbiwgc2Ny
b2xsT3JpZ2luLCBmcmFtZVNjYWxlRmFjdG9yLCBmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVU
b0ZyYW1lKCksIGhlYWRlckhlaWdodCgpLCBmb290ZXJIZWlnaHQoKSk7CiB9CisgICAgCitJbnRQ
b2ludCBGcmFtZVZpZXc6Om1pbmltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0Cit7CisgICAgSW50
UG9pbnQgbWluaW11bVBvc2l0aW9uKFNjcm9sbFZpZXc6Om1pbmltdW1TY3JvbGxQb3NpdGlvbigp
KTsKKyAgICAKKyAgICBpZiAobV9mcmFtZSA9PSBtX2ZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgp
ICYmIG1fc2Nyb2xsUGlubmluZ0JlaGF2aW9yID09IFBpblRvQm90dG9tKQorICAgICAgICBtaW5p
bXVtUG9zaXRpb24uc2V0WShtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKS55KCkpOworICAgIAorICAg
IHJldHVybiBtaW5pbXVtUG9zaXRpb247Cit9CiAKIEludFBvaW50IEZyYW1lVmlldzo6bWF4aW11
bVNjcm9sbFBvc2l0aW9uKCkgY29uc3QKIHsKQEAgLTE2NDgsNiArMTY1OSw5IEBAIEludFBvaW50
IEZyYW1lVmlldzo6bWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3QKICAgICAgICAgfHwgc2Ny
b2xsT3JpZ2luKCkgPT0gSW50UG9pbnQ6Onplcm8oKSkKICAgICAgICAgbWF4aW11bU9mZnNldC5j
bGFtcE5lZ2F0aXZlVG9aZXJvKCk7CiAgICAgCisgICAgaWYgKG1fZnJhbWUgPT0gbV9mcmFtZS0+
cGFnZSgpLT5tYWluRnJhbWUoKSAmJiBtX3Njcm9sbFBpbm5pbmdCZWhhdmlvciA9PSBQaW5Ub1Rv
cCkKKyAgICAgICAgbWF4aW11bU9mZnNldC5zZXRZKG1pbmltdW1TY3JvbGxQb3NpdGlvbigpLnko
KSk7CisgICAgCiAgICAgcmV0dXJuIG1heGltdW1PZmZzZXQ7CiB9CiAKQEAgLTQyMzMsNSArNDI0
NywxNSBAQCB2b2lkIEZyYW1lVmlldzo6c2V0VmlzdWFsVXBkYXRlc0FsbG93ZWRCeUNsaWVudChi
b29sIHZpc3VhbFVwZGF0ZXNBbGxvd2VkKQogCiAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2V0
VmlzdWFsVXBkYXRlc0FsbG93ZWRCeUNsaWVudCh2aXN1YWxVcGRhdGVzQWxsb3dlZCk7CiB9Cisg
ICAgCit2b2lkIEZyYW1lVmlldzo6c2V0U2Nyb2xsUGlubmluZ0JlaGF2aW9yKFNjcm9sbFBpbm5p
bmdCZWhhdmlvciBwaW5uaW5nKQoreworICAgIG1fc2Nyb2xsUGlubmluZ0JlaGF2aW9yID0gcGlu
bmluZzsKKyAgICAKKyAgICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3Jk
aW5hdG9yID0gbV9mcmFtZS0+cGFnZSgpLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKQorICAgICAg
ICBzY3JvbGxpbmdDb29yZGluYXRvci0+c2V0U2Nyb2xsUGlubmluZ0JlaGF2aW9yKHBpbm5pbmcp
OworICAgIAorICAgIHVwZGF0ZVNjcm9sbGJhcnMoc2Nyb2xsT2Zmc2V0KCkpOworfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCAzMTBiZjViLi5k
MWQ3ZmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTE5Nyw2ICsxOTcsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3JvbGxE
aXJlY3Rpb24pIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCByZXF1ZXN0U2Nyb2xsUG9zaXRpb25V
cGRhdGUoY29uc3QgSW50UG9pbnQmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNSdWJi
ZXJCYW5kSW5Qcm9ncmVzcygpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgSW50UG9pbnQg
bWluaW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBJbnRQ
b2ludCBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdCBPVkVSUklERTsKIAogICAgIC8vIFRo
aXMgaXMgZGlmZmVyZW50IHRoYW4gdmlzaWJsZUNvbnRlbnRSZWN0KCkgaW4gdGhhdCBpdCBpZ25v
cmVzIG5lZ2F0aXZlIChvciBvdmVybHkgcG9zaXRpdmUpCkBAIC00MzMsNiArNDM0LDggQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0VmlzdWFsVXBkYXRlc0FsbG93ZWRCeUNsaWVudChib29sKTsKIAog
ICAgIHZvaWQgcmVzdW1lQW5pbWF0aW5nSW1hZ2VzKCk7CisgICAgCisgICAgdm9pZCBzZXRTY3Jv
bGxQaW5uaW5nQmVoYXZpb3IoU2Nyb2xsUGlubmluZ0JlaGF2aW9yKTsKIAogcHJvdGVjdGVkOgog
ICAgIHZpcnR1YWwgYm9vbCBzY3JvbGxDb250ZW50c0Zhc3RQYXRoKGNvbnN0IEludFNpemUmIHNj
cm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNs
aXBSZWN0KTsKQEAgLTY1NSw2ICs2NTgsOCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBib29s
IG1fdmlzdWFsVXBkYXRlc0FsbG93ZWRCeUNsaWVudDsKKyAgICAKKyAgICBTY3JvbGxQaW5uaW5n
QmVoYXZpb3IgbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3I7CiB9OwogCiBpbmxpbmUgdm9pZCBGcmFt
ZVZpZXc6OmluY3JlbWVudFZpc3VhbGx5Tm9uRW1wdHlDaGFyYWN0ZXJDb3VudCh1bnNpZ25lZCBj
b3VudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdD
b29yZGluYXRvci5oCmluZGV4IGIzOWFlZTQuLmJjYjIwNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtMTI4LDYg
KzEyOCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0UnViYmVyQmFuZHNBdEJvdHRv
bShib29sKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgcnViYmVyQmFuZHNBdFRvcCgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFJ1YmJlckJhbmRzQXRUb3AoYm9v
bCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcihTY3JvbGxQ
aW5uaW5nQmVoYXZpb3IpIHsgfQogCiAgICAgLy8gR2VuZXJhdGVkIGEgdW5pcXVlIGlkIGZvciBz
Y3JvbGwgbGF5ZXJzLgogICAgIFNjcm9sbGluZ05vZGVJRCB1bmlxdWVTY3JvbGxMYXllcklEKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCmlu
ZGV4IDdiMjVjZDQuLmUwZjFiZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWUuY3BwCkBAIC01OCw2ICs1OCw3IEBAIFNjcm9sbGluZ1RyZWU6OlNj
cm9sbGluZ1RyZWUoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQog
ICAgICwgbV9tYWluRnJhbWVQaW5uZWRUb1RoZVRvcChmYWxzZSkKICAgICAsIG1fbWFpbkZyYW1l
UGlubmVkVG9UaGVCb3R0b20oZmFsc2UpCiAgICAgLCBtX21haW5GcmFtZUlzUnViYmVyQmFuZGlu
ZyhmYWxzZSkKKyAgICAsIG1fc2Nyb2xsUGlubmluZ0JlaGF2aW9yKERvTm90UGluKQogICAgICwg
bV9zY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKGZhbHNlKQogICAgICwgbV9pc0hh
bmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKGZhbHNlKQogewpAQCAtMzI2LDYgKzMyNywyMCBAQCB2
b2lkIFNjcm9sbGluZ1RyZWU6OnNldFJ1YmJlckJhbmRzQXRUb3AoYm9vbCBydWJiZXJCYW5kc0F0
VG9wKQogCiAgICAgbV9ydWJiZXJCYW5kc0F0VG9wID0gcnViYmVyQmFuZHNBdFRvcDsKIH0KKyAg
ICAKK3ZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0U2Nyb2xsUGlubmluZ0JlaGF2aW9yKFNjcm9sbFBp
bm5pbmdCZWhhdmlvciBwaW5uaW5nKQoreworICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N3aXBl
U3RhdGVNdXRleCk7CisgICAgCisgICAgbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3IgPSBwaW5uaW5n
OworfQorCitTY3JvbGxQaW5uaW5nQmVoYXZpb3IgU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsUGlubmlu
Z0JlaGF2aW9yKCkKK3sKKyAgICBNdXRleExvY2tlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsK
KyAgICAKKyAgICByZXR1cm4gbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3I7Cit9CiAKIGJvb2wgU2Ny
b2xsaW5nVHJlZTo6d2lsbFdoZWVsRXZlbnRTdGFydFN3aXBlR2VzdHVyZShjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggZDg3Zjk2OS4uNDIzZWVmZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApAQCAtMTAxLDYgKzEwMSw5
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJ1YmJlckJhbmRzQXRCb3R0b20oYm9vbCk7CiAgICAg
Ym9vbCBydWJiZXJCYW5kc0F0VG9wKCk7CiAgICAgdm9pZCBzZXRSdWJiZXJCYW5kc0F0VG9wKGJv
b2wpOworICAgIAorICAgIHZvaWQgc2V0U2Nyb2xsUGlubmluZ0JlaGF2aW9yKFNjcm9sbFBpbm5p
bmdCZWhhdmlvcik7CisgICAgU2Nyb2xsUGlubmluZ0JlaGF2aW9yIHNjcm9sbFBpbm5pbmdCZWhh
dmlvcigpOwogCiAgICAgYm9vbCB3aWxsV2hlZWxFdmVudFN0YXJ0U3dpcGVHZXN0dXJlKGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYpOwogCkBAIC0xMzYsNiArMTM5LDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVUb3A7CiAgICAgYm9vbCBtX21haW5GcmFtZVBp
bm5lZFRvVGhlQm90dG9tOwogICAgIGJvb2wgbV9tYWluRnJhbWVJc1J1YmJlckJhbmRpbmc7Cisg
ICAgU2Nyb2xsUGlubmluZ0JlaGF2aW9yIG1fc2Nyb2xsUGlubmluZ0JlaGF2aW9yOwogCiAgICAg
Ym9vbCBtX3Njcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQ7CiAgICAgCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0
b3JNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29y
ZGluYXRvck1hYy5oCmluZGV4IDFjNTQzMjIuLjAzOGZiNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1h
Yy5oCkBAIC03Nyw2ICs3Nyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0UnViYmVy
QmFuZHNBdEJvdHRvbShib29sKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgcnViYmVyQmFu
ZHNBdFRvcCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRSdWJiZXJCYW5k
c0F0VG9wKGJvb2wpIE9WRVJSSURFOworICAgIAorICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxQ
aW5uaW5nQmVoYXZpb3IoU2Nyb2xsUGlubmluZ0JlaGF2aW9yKSBPVkVSUklERTsKIAogcHJpdmF0
ZToKICAgICAvLyBSZXR1cm4gd2hldGhlciB0aGlzIHNjcm9sbGluZyBjb29yZGluYXRvciBjYW4g
a2VlcCBmaXhlZCBwb3NpdGlvbiBsYXllcnMgZml4ZWQgdG8gdGhlaXIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRv
ck1hYy5tbQppbmRleCBiNTZmMzAxLi44NjliYmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1t
CkBAIC0xMTIsNiArMTEyLDExIEBAIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OnNldFJ1
YmJlckJhbmRzQXRUb3AoYm9vbCBydWJiZXJCYW5kc0F0VG9wKQogewogICAgIHNjcm9sbGluZ1Ry
ZWUoKS0+c2V0UnViYmVyQmFuZHNBdFRvcChydWJiZXJCYW5kc0F0VG9wKTsKIH0KKyAgICAKK3Zv
aWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OnNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcihTY3Jv
bGxQaW5uaW5nQmVoYXZpb3IgcGlubmluZykKK3sKKyAgICBzY3JvbGxpbmdUcmVlKCktPnNldFNj
cm9sbFBpbm5pbmdCZWhhdmlvcihwaW5uaW5nKTsKK30KIAogdm9pZCBTY3JvbGxpbmdDb29yZGlu
YXRvck1hYzo6Y29tbWl0VHJlZVN0YXRlSWZOZWVkZWQoKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlTWFjLm1tCmluZGV4IDk4YjYwZDcuLjZhMDAwNzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVNYWMubW0KQEAgLTM0Miw3ICszNDIsMTIgQEAgdm9pZCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZU1hYzo6c2V0U2Nyb2xsTGF5ZXJQb3NpdGlvbihjb25zdCBJbnRQb2lu
dCYgcG9zaXQKIAogSW50UG9pbnQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWM6Om1pbmlt
dW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIEludFBvaW50KDAsIDApOwor
ICAgIEludFBvaW50IHBvc2l0aW9uOworICAgIAorICAgIGlmIChzY3JvbGxpbmdUcmVlKCktPnJv
b3ROb2RlKCkgPT0gdGhpcyAmJiBzY3JvbGxpbmdUcmVlKCktPnNjcm9sbFBpbm5pbmdCZWhhdmlv
cigpID09IFBpblRvQm90dG9tKQorICAgICAgICBwb3NpdGlvbi5zZXRZKG1heGltdW1TY3JvbGxQ
b3NpdGlvbigpLnkoKSk7CisKKyAgICByZXR1cm4gcG9zaXRpb247CiB9CiAKIEludFBvaW50IFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjptYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25z
dApAQCAtMzUyLDYgKzM1Nyw5IEBAIEludFBvaW50IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
TWFjOjptYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdAogCiAgICAgcG9zaXRpb24uY2xhbXBO
ZWdhdGl2ZVRvWmVybygpOwogCisgICAgaWYgKHNjcm9sbGluZ1RyZWUoKS0+cm9vdE5vZGUoKSA9
PSB0aGlzICYmIHNjcm9sbGluZ1RyZWUoKS0+c2Nyb2xsUGlubmluZ0JlaGF2aW9yKCkgPT0gUGlu
VG9Ub3ApCisgICAgICAgIHBvc2l0aW9uLnNldFkobWluaW11bVNjcm9sbFBvc2l0aW9uKCkueSgp
KTsKKwogICAgIHJldHVybiBwb3NpdGlvbjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFR5cGVzLmgKaW5kZXggZDY1ZDgyMS4uYmJhMDRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxUeXBlcy5oCkBAIC0xNTksNiArMTU5LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAKICAgICB0eXBlZGVmIHVuc2lnbmVkIFNjcm9sbGJhckNvbnRyb2xQYXJ0TWFzazsKIAorICAg
IGVudW0gU2Nyb2xsUGlubmluZ0JlaGF2aW9yIHsKKyAgICAgICAgRG9Ob3RQaW4sCisgICAgICAg
IFBpblRvVG9wLAorICAgICAgICBQaW5Ub0JvdHRvbQorICAgIH07CiB9CiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCmluZGV4IDUzOWEyOTYuLjIxOWE0YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NiBAQAor
MjAxMy0wNy0wNSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAg
ICAgICBbd2syXSBBZGQgQVBJIHRvIGxvY2sgdGhlIHNjcm9sbCBwb3NpdGlvbiBhdCB0aGUgdG9w
IG9yIGJvdHRvbSBvZiB0aGUgcGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTE4NDI5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNDEyMDMyMz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJl
ZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5oOgorICAgICAgICBQYXNzIHRoZSBjdXJyZW50IFNjcm9sbFBpbm5pbmdC
ZWhhdmlvciBhY3Jvc3MgdG8gdGhlIFdlYlBhZ2UgdXBvbiBjcmVhdGlvbi4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlR2V0U2Nyb2xsUGlu
bmluZ0JlaGF2aW9yKToKKyAgICAgICAgKFdLUGFnZVNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcik6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaDoKKyAgICAgICAgU1BJ
IHRvIGdldC9zZXQgdGhlIFdlYlBhZ2VQcm94eSdzIGN1cnJlbnQgU2Nyb2xsUGlubmluZ0JlaGF2
aW9yLgorICAgICAgICBDb252ZXJ0IGJldHdlZW4gV0sgQVBJIHR5cGUgYW5kIFdlYkNvcmUgZW51
bS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAgU2VuZCBTY3JvbGxQaW5uaW5n
QmVoYXZpb3Igd2hlbiBjcmVhdGluZyBhIFdlYlBhZ2UuCisKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpzZXRTY3JvbGxQaW5uaW5nQmVoYXZpb3IpOgorICAgICAgICBQYXNzIFNjcm9s
bFBpbm5pbmdCZWhhdmlvciBjaGFuZ2VzIGFjcm9zcyB0byB0aGUgV2ViUHJvY2VzcyAoYW5kIHNh
dmUgaXQKKyAgICAgICAgaW4gV2ViUGFnZVByb3h5IHNvIGl0IGNhbiBiZSBzZW50IGJhY2sgYWNy
b3NzIGlmIHRoZSBXZWJQcm9jZXNzIGNyYXNoZXMpLgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNjcm9sbFBpbm5p
bmdCZWhhdmlvcik6CisgICAgICAgIEdldHRlci9zZXR0ZXIgYW5kIHN0b3JhZ2UgZm9yIG1fc2Ny
b2xsUGlubmluZ0JlaGF2aW9yLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9h
ZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKToKKyAgICAgICAgSW5m
b3JtIG5ldyBGcmFtZVZpZXdzIG9mIHRoZSBjdXJyZW50IFNjcm9sbFBpbm5pbmdCZWhhdmlvci4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgIFNldCBvdXIgU2Nyb2xsUGlubmluZ0Jl
aGF2aW9yIGJhc2VkIG9uIG91ciBjcmVhdGlvbiBwYXJhbWV0ZXJzLgorCisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OnNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcik6CisgICAgICAgIEluZm9ybSB0
aGUgRnJhbWVWaWV3IG9mIFNjcm9sbFBpbm5pbmdCZWhhdmlvciBjaGFuZ2VzLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6c2Nyb2xsUGlubmluZ0JlaGF2aW9yKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OnNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcik6IEFkZGVkLgorICAgICAgICBBZGQgc3RvcmFn
ZSBmb3IgbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3IuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgQWRkIFNldFNjcm9sbFBpbm5pbmdC
ZWhhdmlvciBtZXNzYWdlLgorCiAyMDEzLTA3LTAxICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBA
YXBwbGUuY29tPgogCiAgICAgICAgIENsZWFuIHVwIHByaXZhdGUgYnJvd3Npbmcgc2Vzc2lvbiB0
cmFja2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMuY3BwCmluZGV4IDlhZTNiYjEuLjliMDZiNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTYwLDYgKzYw
LDcgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbWVkaWFWb2x1bWU7
CiAgICAgZW5jb2RlciA8PCBtYXlTdGFydE1lZGlhV2hlbkluV2luZG93OwogICAgIGVuY29kZXIg
PDwgbWluaW11bUxheW91dFNpemU7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHNjcm9sbFBpbm5p
bmdCZWhhdmlvcik7CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgZW5jb2Rlci5lbmNvZGVFbnVt
KGxheWVySG9zdGluZ01vZGUpOwpAQCAtMTIzLDYgKzEyNCw4IEBAIGJvb2wgV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVyczo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2Rlciwg
V2ViUGFnCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBh
cmFtZXRlcnMubWluaW11bUxheW91dFNpemUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocGFyYW1ldGVycy5zY3JvbGxQaW5uaW5nQmVoYXZpb3Ip
KQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGVFbnVtKHBhcmFtZXRlcnMubGF5ZXJIb3N0aW5nTW9kZSkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRl
eCA3Njc2ZjIwLi5mNWQ5MjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTkwLDYgKzkwLDggQEAgc3RydWN0IFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMgewogICAgIGJvb2wgbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsK
IAogICAgIFdlYkNvcmU6OkludFNpemUgbWluaW11bUxheW91dFNpemU7CisgICAgCisgICAgV2Vi
Q29yZTo6U2Nyb2xsUGlubmluZ0JlaGF2aW9yIHNjcm9sbFBpbm5pbmdCZWhhdmlvcjsKIAogI2lm
IFBMQVRGT1JNKE1BQykKICAgICBMYXllckhvc3RpbmdNb2RlIGxheWVySG9zdGluZ01vZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IGJlODEzODguLjYx
MTE4NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC04
NzksNiArODc5LDQ0IEBAIHZvaWQgV0tQYWdlU2VsZWN0Q29udGV4dE1lbnVJdGVtKFdLUGFnZVJl
ZiBwYWdlLCBXS0NvbnRleHRNZW51SXRlbVJlZiBpdGVtKQogI2VuZGlmCiB9CiAKK1dLU2Nyb2xs
UGlubmluZ0JlaGF2aW9yIFdLUGFnZUdldFNjcm9sbFBpbm5pbmdCZWhhdmlvcihXS1BhZ2VSZWYg
cGFnZSkKK3sKKyAgICBTY3JvbGxQaW5uaW5nQmVoYXZpb3IgcGlubmluZyA9IHRvSW1wbChwYWdl
KS0+c2Nyb2xsUGlubmluZ0JlaGF2aW9yKCk7CisgICAgCisgICAgc3dpdGNoIChwaW5uaW5nKSB7
CisgICAgY2FzZSBXZWJDb3JlOjpTY3JvbGxQaW5uaW5nQmVoYXZpb3I6OkRvTm90UGluOgorICAg
ICAgICByZXR1cm4ga1dLU2Nyb2xsUGlubmluZ0JlaGF2aW9yRG9Ob3RQaW47CisgICAgY2FzZSBX
ZWJDb3JlOjpTY3JvbGxQaW5uaW5nQmVoYXZpb3I6OlBpblRvVG9wOgorICAgICAgICByZXR1cm4g
a1dLU2Nyb2xsUGlubmluZ0JlaGF2aW9yUGluVG9Ub3A7CisgICAgY2FzZSBXZWJDb3JlOjpTY3Jv
bGxQaW5uaW5nQmVoYXZpb3I6OlBpblRvQm90dG9tOgorICAgICAgICByZXR1cm4ga1dLU2Nyb2xs
UGlubmluZ0JlaGF2aW9yUGluVG9Cb3R0b207CisgICAgfQorICAgIAorICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgIHJldHVybiBrV0tTY3JvbGxQaW5uaW5nQmVoYXZpb3JEb05vdFBpbjsK
K30KKwordm9pZCBXS1BhZ2VTZXRTY3JvbGxQaW5uaW5nQmVoYXZpb3IoV0tQYWdlUmVmIHBhZ2Us
IFdLU2Nyb2xsUGlubmluZ0JlaGF2aW9yIHBpbm5pbmcpCit7CisgICAgU2Nyb2xsUGlubmluZ0Jl
aGF2aW9yIGNvcmVQaW5uaW5nID0gU2Nyb2xsUGlubmluZ0JlaGF2aW9yOjpEb05vdFBpbjsKKwor
ICAgIHN3aXRjaCAocGlubmluZykgeworICAgIGNhc2Uga1dLU2Nyb2xsUGlubmluZ0JlaGF2aW9y
RG9Ob3RQaW46CisgICAgICAgIGNvcmVQaW5uaW5nID0gU2Nyb2xsUGlubmluZ0JlaGF2aW9yOjpE
b05vdFBpbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBrV0tTY3JvbGxQaW5uaW5nQmVoYXZp
b3JQaW5Ub1RvcDoKKyAgICAgICAgY29yZVBpbm5pbmcgPSBTY3JvbGxQaW5uaW5nQmVoYXZpb3I6
OlBpblRvVG9wOworICAgICAgICBicmVhazsKKyAgICBjYXNlIGtXS1Njcm9sbFBpbm5pbmdCZWhh
dmlvclBpblRvQm90dG9tOgorICAgICAgICBjb3JlUGlubmluZyA9IFNjcm9sbFBpbm5pbmdCZWhh
dmlvcjo6UGluVG9Cb3R0b207CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyAgICAKKyAgICB0b0ltcGwocGFnZSktPnNl
dFNjcm9sbFBpbm5pbmdCZWhhdmlvcihjb3JlUGlubmluZyk7Cit9CisKIAogCiAvLyAtLSBERVBS
RUNBVEVEIC0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZh
dGUuaAppbmRleCAyNDE1ZjI2Li4xMTQ5OTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmgKQEAgLTEwMCw2ICsxMDAsMTYgQEAgV0tfRVhQT1JU
IFdLQXJyYXlSZWYgV0tQYWdlQ29weVJlbGF0ZWRQYWdlcyhXS1BhZ2VSZWYgcGFnZSk7CiB0eXBl
ZGVmIHZvaWQgKCpXS1BhZ2VJbnZhbGlkTWVzc2FnZUZ1bmN0aW9uKSh1aW50MzJfdCBtZXNzYWdl
SUQpOwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0SW52YWxpZE1lc3NhZ2VGdW5jdGlvbihXS1Bh
Z2VJbnZhbGlkTWVzc2FnZUZ1bmN0aW9uIGZ1bmN0aW9uKTsKIAorZW51bSB7CisgICAga1dLU2Ny
b2xsUGlubmluZ0JlaGF2aW9yRG9Ob3RQaW4sCisgICAga1dLU2Nyb2xsUGlubmluZ0JlaGF2aW9y
UGluVG9Ub3AsCisgICAga1dLU2Nyb2xsUGlubmluZ0JlaGF2aW9yUGluVG9Cb3R0b20KK307Cit0
eXBlZGVmIHVpbnQzMl90IFdLU2Nyb2xsUGlubmluZ0JlaGF2aW9yOworCitXS19FWFBPUlQgV0tT
Y3JvbGxQaW5uaW5nQmVoYXZpb3IgV0tQYWdlR2V0U2Nyb2xsUGlubmluZ0JlaGF2aW9yKFdLUGFn
ZVJlZiBwYWdlKTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFNjcm9sbFBpbm5pbmdCZWhhdmlv
cihXS1BhZ2VSZWYgcGFnZSwgV0tTY3JvbGxQaW5uaW5nQmVoYXZpb3IgcGlubmluZyk7CisKICNp
ZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCmluZGV4IDFjNzUyZDMuLjNlMzBlZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0zMTgsNiArMzE4LDcgQEAgV2ViUGFnZVByb3h5
OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCogcGFnZUNsaWVudCwgUGFzc1JlZlB0cjxXZWJQcm9j
ZXNzUHJveHk+IHAKICNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKICAgICAsIG1fdmlz
aWJpbGl0eVN0YXRlKFBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlKQogI2VuZGlmCisgICAgLCBt
X3Njcm9sbFBpbm5pbmdCZWhhdmlvcihEb05vdFBpbikKIHsKICNpZiBFTkFCTEUoUEFHRV9WSVNJ
QklMSVRZX0FQSSkKICAgICBpZiAoIW1faXNWaXNpYmxlKQpAQCAtMzk5Miw2ICszOTkzLDcgQEAg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVy
cygpIGNvbnN0CiAgICAgcGFyYW1ldGVycy5tZWRpYVZvbHVtZSA9IG1fbWVkaWFWb2x1bWU7CiAg
ICAgcGFyYW1ldGVycy5tYXlTdGFydE1lZGlhV2hlbkluV2luZG93ID0gbV9tYXlTdGFydE1lZGlh
V2hlbkluV2luZG93OwogICAgIHBhcmFtZXRlcnMubWluaW11bUxheW91dFNpemUgPSBtX21pbmlt
dW1MYXlvdXRTaXplOworICAgIHBhcmFtZXRlcnMuc2Nyb2xsUGlubmluZ0JlaGF2aW9yID0gbV9z
Y3JvbGxQaW5uaW5nQmVoYXZpb3I7CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgcGFyYW1ldGVy
cy5sYXllckhvc3RpbmdNb2RlID0gbV9sYXllckhvc3RpbmdNb2RlOwpAQCAtNDQ5Miw0ICs0NDk0
LDE1IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRTYXZlVG9QYWdlQ2FjaGUoKQogICAgIG1fcHJv
Y2Vzcy0+ZGlkU2F2ZVRvUGFnZUNhY2hlKCk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRT
Y3JvbGxQaW5uaW5nQmVoYXZpb3IoU2Nyb2xsUGlubmluZ0JlaGF2aW9yIHBpbm5pbmcpCit7Cisg
ICAgaWYgKG1fc2Nyb2xsUGlubmluZ0JlaGF2aW9yID09IHBpbm5pbmcpCisgICAgICAgIHJldHVy
bjsKKyAgICAKKyAgICBtX3Njcm9sbFBpbm5pbmdCZWhhdmlvciA9IHBpbm5pbmc7CisKKyAgICBp
ZiAoaXNWYWxpZCgpKQorICAgICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OlNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcihwaW5uaW5nKSwgbV9wYWdlSUQpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApp
bmRleCBhNjY2YWZiLi5lYWJlNzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCkBAIC03NzMsNyArNzczLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbm5lY3Rpb25X
aWxsQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopOwogCiAgICAgdm9pZCBkaWRTYXZlVG9QYWdl
Q2FjaGUoKTsKLQorICAgICAgICAKKyAgICB2b2lkIHNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcihX
ZWJDb3JlOjpTY3JvbGxQaW5uaW5nQmVoYXZpb3IpOworICAgIFdlYkNvcmU6OlNjcm9sbFBpbm5p
bmdCZWhhdmlvciBzY3JvbGxQaW5uaW5nQmVoYXZpb3IoKSB7IHJldHVybiBtX3Njcm9sbFBpbm5p
bmdCZWhhdmlvcjsgfQorICAgICAgICAKIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VD
bGllbnQqLCBQYXNzUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4sIFdlYlBhZ2VHcm91cCosIHVpbnQ2
NF90IHBhZ2VJRCk7CiAKQEAgLTEyODcsNiArMTI5MCw4IEBAIHByaXZhdGU6CiAjaWYgUExBVEZP
Uk0oTUFDKQogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fdGVtcG9yYXJ5UERGRmlsZXM7
CiAjZW5kaWYKKyAgICAgICAgCisgICAgV2ViQ29yZTo6U2Nyb2xsUGlubmluZ0JlaGF2aW9yIG1f
c2Nyb2xsUGlubmluZ0JlaGF2aW9yOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDIyYjVjNTAuLmMxZDdkZTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0xMjQ1LDYgKzEyNDUsOSBAQCB2b2lk
IFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkK
IAogICAgIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT52aWV3KCktPnNldFByb2hpYml0c1Njcm9sbGlu
ZyhzaG91bGREaXNhYmxlU2Nyb2xsaW5nKTsKICAgICBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+dmll
dygpLT5zZXRWaXN1YWxVcGRhdGVzQWxsb3dlZEJ5Q2xpZW50KCF3ZWJQYWdlLT5zaG91bGRFeHRl
bmRJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uKCkpOworICAgIAorICAgIGlmICh3ZWJQ
YWdlLT5zY3JvbGxQaW5uaW5nQmVoYXZpb3IoKSAhPSBEb05vdFBpbikKKyAgICAgICAgbV9mcmFt
ZS0+Y29yZUZyYW1lKCktPnZpZXcoKS0+c2V0U2Nyb2xsUGlubmluZ0JlaGF2aW9yKHdlYlBhZ2Ut
PnNjcm9sbFBpbm5pbmdCZWhhdmlvcigpKTsKIAogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JF
KQogICAgIGlmIChzaG91bGRVc2VGaXhlZExheW91dCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDNiMWRiNzguLjYyN2EwZmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTI4OCw2
ICsyODgsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICAgICAsIG1faW5zcGVjdG9yQ2xpZW50
KDApCiAgICAgLCBtX2JhY2tncm91bmRDb2xvcihDb2xvcjo6d2hpdGUpCiAgICAgLCBtX21heGlt
dW1SZW5kZXJpbmdTdXBwcmVzc2lvblRva2VuKDApCisgICAgLCBtX3Njcm9sbFBpbm5pbmdCZWhh
dmlvcihEb05vdFBpbikKIHsKICAgICBBU1NFUlQobV9wYWdlSUQpOwogICAgIC8vIEZJWE1FOiBU
aGlzIGlzIGEgbm9uLWlkZWFsIGxvY2F0aW9uIGZvciB0aGlzIFNldHRpbmcgYW5kCkBAIC0zNzks
NiArMzgwLDggQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgc2V0SXNJbldpbmRvdyhwYXJh
bWV0ZXJzLmlzSW5XaW5kb3cpOwogCiAgICAgc2V0TWluaW11bUxheW91dFNpemUocGFyYW1ldGVy
cy5taW5pbXVtTGF5b3V0U2l6ZSk7CisgICAgCisgICAgc2V0U2Nyb2xsUGlubmluZ0JlaGF2aW9y
KHBhcmFtZXRlcnMuc2Nyb2xsUGlubmluZ0JlaGF2aW9yKTsKIAogICAgIG1fdXNlckFnZW50ID0g
cGFyYW1ldGVycy51c2VyQWdlbnQ7CiAKQEAgLTQyMjksNSArNDIzMiwxMSBAQCB2b2lkIFdlYlBh
Z2U6OnN0b3BFeHRlbmRpbmdJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uKHVuc2lnbmVk
IHRva2VuKQogICAgIG1fYWN0aXZlUmVuZGVyaW5nU3VwcHJlc3Npb25Ub2tlbnMucmVtb3ZlKHRv
a2VuKTsKICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCktPnNldFZpc3VhbFVwZGF0ZXNB
bGxvd2VkQnlDbGllbnQoIXNob3VsZEV4dGVuZEluY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Np
b24oKSk7CiB9CisgICAgCit2b2lkIFdlYlBhZ2U6OnNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcih1
aW50MzJfdCBwaW5uaW5nKQoreworICAgIG1fc2Nyb2xsUGlubmluZ0JlaGF2aW9yID0gc3RhdGlj
X2Nhc3Q8U2Nyb2xsUGlubmluZ0JlaGF2aW9yPihwaW5uaW5nKTsKKyAgICBtX3BhZ2UtPm1haW5G
cmFtZSgpLT52aWV3KCktPnNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcihtX3Njcm9sbFBpbm5pbmdC
ZWhhdmlvcik7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZWJhYzQ0MC4uZWY1OWZmOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC02NjEsNiArNjYx
LDkgQEAgcHVibGljOgogICAgIHZvaWQgc3RvcEV4dGVuZGluZ0luY3JlbWVudGFsUmVuZGVyaW5n
U3VwcHJlc3Npb24odW5zaWduZWQgdG9rZW4pOwogICAgIGJvb2wgc2hvdWxkRXh0ZW5kSW5jcmVt
ZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvbigpIHsgcmV0dXJuICFtX2FjdGl2ZVJlbmRlcmluZ1N1
cHByZXNzaW9uVG9rZW5zLmlzRW1wdHkoKTsgfQogCisgICAgV2ViQ29yZTo6U2Nyb2xsUGlubmlu
Z0JlaGF2aW9yIHNjcm9sbFBpbm5pbmdCZWhhdmlvcigpIHsgcmV0dXJuIG1fc2Nyb2xsUGlubmlu
Z0JlaGF2aW9yOyB9CisgICAgdm9pZCBzZXRTY3JvbGxQaW5uaW5nQmVoYXZpb3IodWludDMyX3Qg
LyogV2ViQ29yZTo6U2Nyb2xsUGlubmluZ0JlaGF2aW9yICovIHBpbm5pbmcpOworCiBwcml2YXRl
OgogICAgIFdlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzJik7CiAKQEAgLTEwMjUsNiArMTAyOCw4IEBAIHByaXZhdGU6CiAKICAgICBIYXNoU2V0
PHVuc2lnbmVkPiBtX2FjdGl2ZVJlbmRlcmluZ1N1cHByZXNzaW9uVG9rZW5zOwogICAgIHVuc2ln
bmVkIG1fbWF4aW11bVJlbmRlcmluZ1N1cHByZXNzaW9uVG9rZW47CisgICAgCisgICAgV2ViQ29y
ZTo6U2Nyb2xsUGlubmluZ0JlaGF2aW9yIG1fc2Nyb2xsUGlubmluZ0JlaGF2aW9yOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDI5MTI1MzUuLjQ5ZDNjNDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluCkBAIC0zMTQsNCArMzE0LDYgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lS
ZWNlaXZlciB7CiAjZW5kaWYKIAogICAgIFNldE1haW5GcmFtZUluVmlld1NvdXJjZU1vZGUoYm9v
bCBpblZpZXdTb3VyY2VNb2RlKQorICAgIAorICAgIFNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcih1
aW50MzJfdCBwaW5uaW5nKQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IGFjZmExZTMuLjcyZWZlZjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMy0wNy0wNSAg
VGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBbd2syXSBB
ZGQgQVBJIHRvIGxvY2sgdGhlIHNjcm9sbCBwb3NpdGlvbiBhdCB0aGUgdG9wIG9yIGJvdHRvbSBv
ZiB0aGUgcGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTE4NDI5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNDEyMDMyMz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mi9TY3JvbGxQaW5uaW5nQmVoYXZpb3JzLmNwcDogQWRkZWQuCisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgQWRkIGEgdGVzdCB0aGF0IGVu
c3VyZXMgdGhhdCB0aGUgdGhyZWUgcGlubmluZyBtb2RlcyAoRG9Ob3RQaW4sIFBpblRvVG9wLCBQ
aW5Ub0JvdHRvbSkKKyAgICAgICAgYWxsIHdvcmsgY29ycmVjdGx5IGluIHRoZSBmYWNlIG9mIHJl
c2l6aW5nIHRoZSB2aWV3IGFuZCBzY3JvbGxpbmcgZnJvbSBKUy4KKwogMjAxMy0wNy0wMiAgQnJp
YW4gSG9sdCAgPGJyaWFuLmhvbHRAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0FUS10gTGVhazog
bGVha3MgaW4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAwNWIxM2EyLi4wMGNjODlhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDYsNiArNDYs
NyBAQAogCQkyOTcyMzRCNzE3M0FGQUM3MDA5ODM2MDEgLyogQ3VzdG9tUHJvdG9jb2xzSW52YWxp
ZFNjaGVtZV9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMjk3MjM0QjUxNzNBRkFDNzAwOTgzNjAxIC8qIEN1c3RvbVByb3RvY29sc0ludmFs
aWRTY2hlbWVfQnVuZGxlLmNwcCAqLzsgfTsKIAkJMjlBQjhBQTExNjRDNzM1ODAwRDQ5QkVDIC8q
IEN1c3RvbVByb3RvY29sc1Rlc3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyOUFCOEE5RjE2NEM3MzU4MDBENDlCRUMgLyogQ3VzdG9tUHJvdG9jb2xz
VGVzdC5tbSAqLzsgfTsKIAkJMjlBQjhBQTQxNjRDN0E5MzAwRDQ5QkVDIC8qIFRlc3RCcm93c2lu
Z0NvbnRleHRMb2FkRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyOUFCOEFBMjE2NEM3QTkzMDBENDlCRUMgLyogVGVzdEJyb3dzaW5nQ29u
dGV4dExvYWREZWxlZ2F0ZS5tbSAqLzsgfTsKKwkJMkQ2NDBCNTUxNzg3NURGRjAwQkZBRjk5IC8q
IFNjcm9sbFBpbm5pbmdCZWhhdmlvcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkQ2NDBCNTQxNzg3NURGRjAwQkZBRjk5IC8qIFNjcm9sbFBpbm5p
bmdCZWhhdmlvcnMuY3BwICovOyB9OwogCQkyREQ3RDNBQTE3ODIwNUQwMDAyNkUxRTMgLyogUmVz
aXplUmV2ZXJzZVBhZ2luYXRlZFdlYlZpZXcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkREN0QzQTkxNzgyMDVEMDAwMjZFMUUzIC8qIFJlc2l6ZVJl
dmVyc2VQYWdpbmF0ZWRXZWJWaWV3LmNwcCAqLzsgfTsKIAkJMkREN0QzQUYxNzgyMjdCMzAwMjZF
MUUzIC8qIGxvdHMtb2YtdGV4dC12ZXJ0aWNhbC1sci5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERDdEM0FFMTc4MjI3QUMwMDI2RTFF
MyAvKiBsb3RzLW9mLXRleHQtdmVydGljYWwtbHIuaHRtbCAqLzsgfTsKIAkJMkU3NzY1Q0QxNkM0
RDgwQTAwQkEyQkIxIC8qIG1haW5JT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyRTc3NjVDQzE2QzREODBBMDBCQTJCQjEgLyogbWFpbklPUy5tbSAq
LzsgfTsKQEAgLTM0Miw2ICszNDMsNyBAQAogCQkyOUFCOEE5RjE2NEM3MzU4MDBENDlCRUMgLyog
Q3VzdG9tUHJvdG9jb2xzVGVzdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
bmFtZSA9IEN1c3RvbVByb3RvY29sc1Rlc3QubW07IHBhdGggPSBXZWJLaXQyT2JqQy9DdXN0b21Q
cm90b2NvbHNUZXN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOUFCOEFBMjE2
NEM3QTkzMDBENDlCRUMgLyogVGVzdEJyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFRlc3RCcm93c2luZ0NvbnRleHRM
b2FkRGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5QUI4QUEzMTY0
QzdBOTMwMEQ0OUJFQyAvKiBUZXN0QnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRlc3RCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQ2NDBCNTQxNzg3NURGRjAwQkZB
Rjk5IC8qIFNjcm9sbFBpbm5pbmdCZWhhdmlvcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU2Nyb2xsUGlubmluZ0JlaGF2aW9ycy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJERDdEM0E5MTc4MjA1RDAwMDI2RTFFMyAvKiBSZXNpemVSZXZlcnNl
UGFnaW5hdGVkV2ViVmlldy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZXNpemVSZXZlcnNlUGFnaW5hdGVkV2ViVmlldy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJERDdEM0FFMTc4MjI3QUMwMDI2RTFFMyAvKiBsb3RzLW9mLXRleHQtdmVydGlj
YWwtbHIuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsb3RzLW9mLXRleHQtdmVydGljYWwtbHIuaHRtbCI7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFNzc2NUNDMTZDNEQ4MEEwMEJBMkJCMSAvKiBt
YWluSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gbWFpbklP
Uy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc0NSw2ICs3NDcsNyBAQAogCQkJ
CUMwQkQ2NjlDMTMxRDNDRjcwMEUxOEYyQSAvKiBSZXNwb25zaXZlbmVzc1RpbWVyRG9lc250Rmly
ZUVhcmx5LmNwcCAqLywKIAkJCQlDMEJENjY5RTEzMUQzQ0ZGMDBFMThGMkEgLyogUmVzcG9uc2l2
ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseV9CdW5kbGUuY3BwICovLAogCQkJCUMwQURCRTgyMTJG
Q0E2QUEwMEQyQzEyOSAvKiBSZXN0b3JlU2Vzc2lvblN0YXRlQ29udGFpbmluZ0Zvcm1EYXRhLmNw
cCAqLywKKwkJCQkyRDY0MEI1NDE3ODc1REZGMDBCRkFGOTkgLyogU2Nyb2xsUGlubmluZ0JlaGF2
aW9ycy5jcHAgKi8sCiAJCQkJNTFGQ0Y3OTgxNTM0QUM2RDAwMTA0NDkxIC8qIFNob3VsZEdvVG9C
YWNrRm9yd2FyZExpc3RJdGVtLmNwcCAqLywKIAkJCQk1MUZDRjc5NzE1MzRBQzZEMDAxMDQ0OTEg
LyogU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1fQnVuZGxlLmNwcCAqLywKIAkJCQlDMDJC
NzdGMTEyNjYxMjE0MDAyNkJGMEYgLyogU3BhY2ViYXJTY3JvbGxpbmcuY3BwICovLApAQCAtMTEx
OCw2ICsxMTIxLDcgQEAKIAkJCQk0QkI0MTYwMjE2ODE1QjI2MDA4MjQyMzggLyogSlNXcmFwcGVy
Rm9yTm9kZUluV2ViRnJhbWUubW0gaW4gU291cmNlcyAqLywKIAkJCQk0NDBBMUQzOTE0QTAxMDNB
MDA4QTY2RjIgLyogS1VSTC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDQ2NDAxMzE2N0E4MzA1
MDAwQkQyMTggLyogTGF5b3V0VW5pdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRDY0MEI1NTE3
ODc1REZGMDBCRkFGOTkgLyogU2Nyb2xsUGlubmluZ0JlaGF2aW9ycy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkyNjMwMEIxODE2NzU1Q0Q5MDA2Njg4NkQgLyogTGlzdEhhc2hTZXQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTJDQjQ3NDExNDQ4RkI5MzAwODczOTk1IC8qIExvYWRBbHRlcm5hdGVI
VE1MU3RyaW5nV2l0aE5vbkRpcmVjdG9yeVVSTC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzM0RD
ODkxMTE0MTk1M0EzMDA3NDdFRjcgLyogTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxi
YWNrLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyL1Njcm9sbFBpbm5pbmdCZWhhdmlvcnMuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyL1Njcm9sbFBpbm5pbmdCZWhhdmlvcnMuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5NWU5MTIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvU2Nyb2xsUGlubmluZ0JlaGF2aW9ycy5jcHAK
QEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJKYXZhU2NyaXB0VGVzdC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisj
aW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCisjaW5jbHVkZSAiVGVzdC5oIgorI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0pTQ29udGV4dFJlZi5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tDb250
ZXh0UHJpdmF0ZS5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tQYWdlUHJpdmF0ZS5oPgorI2luY2x1
ZGUgPFdlYktpdDIvV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KKworbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkgeworCitzdGF0aWMgYm9vbCB0ZXN0RG9uZTsKKworc3RhdGljIHZvaWQgZGlkRmlu
aXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUs
IFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3sKKyAgICBXS1Bh
Z2VTZXRTY3JvbGxQaW5uaW5nQmVoYXZpb3IocGFnZSwga1dLU2Nyb2xsUGlubmluZ0JlaGF2aW9y
UGluVG9Cb3R0b20pOworCisgICAgRVhQRUNUX0pTX0VRKHBhZ2UsICJ3aW5kb3cuc2Nyb2xsWSIs
ICIyNDM0Iik7CisKKyAgICBQbGF0Zm9ybVdlYlZpZXcqIHdlYlZpZXcgPSAoUGxhdGZvcm1XZWJW
aWV3KiljbGllbnRJbmZvOworICAgIHdlYlZpZXctPnJlc2l6ZVRvKDgwMCwgMjAwKTsKKworICAg
IEVYUEVDVF9KU19FUShwYWdlLCAid2luZG93LnNjcm9sbFkiLCAiMjgzNCIpOworICAgIEVYUEVD
VF9KU19FUShwYWdlLCAid2luZG93LnNjcm9sbFRvKDAsMCkiLCAidW5kZWZpbmVkIik7CisgICAg
RVhQRUNUX0pTX0VRKHBhZ2UsICJ3aW5kb3cuc2Nyb2xsWSIsICIyODM0Iik7CisKKyAgICBXS1Bh
Z2VTZXRTY3JvbGxQaW5uaW5nQmVoYXZpb3IocGFnZSwga1dLU2Nyb2xsUGlubmluZ0JlaGF2aW9y
UGluVG9Ub3ApOworICAgIAorICAgIEVYUEVDVF9KU19FUShwYWdlLCAid2luZG93LnNjcm9sbFki
LCAiMCIpOworICAgIEVYUEVDVF9KU19FUShwYWdlLCAid2luZG93LnNjcm9sbFRvKDAsMjAwKSIs
ICJ1bmRlZmluZWQiKTsKKyAgICBFWFBFQ1RfSlNfRVEocGFnZSwgIndpbmRvdy5zY3JvbGxZIiwg
IjAiKTsKKyAgICAKKyAgICBXS1BhZ2VTZXRTY3JvbGxQaW5uaW5nQmVoYXZpb3IocGFnZSwga1dL
U2Nyb2xsUGlubmluZ0JlaGF2aW9yRG9Ob3RQaW4pOworICAgIAorICAgIEVYUEVDVF9KU19FUShw
YWdlLCAid2luZG93LnNjcm9sbFkiLCAiMCIpOworICAgIEVYUEVDVF9KU19FUShwYWdlLCAid2lu
ZG93LnNjcm9sbFRvKDAsMjAwKSIsICJ1bmRlZmluZWQiKTsKKyAgICBFWFBFQ1RfSlNfRVEocGFn
ZSwgIndpbmRvdy5zY3JvbGxZIiwgIjIwMCIpOworICAgIAorICAgIHRlc3REb25lID0gdHJ1ZTsK
K30KKworVEVTVChXZWJLaXQyLCBTY3JvbGxQaW5uaW5nQmVoYXZpb3JzKQoreworICAgIFdLUmV0
YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dChBZG9wdFdLLCBXS0NvbnRleHRDcmVhdGUoKSk7
CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisKKyAgICBXS1Bh
Z2VMb2FkZXJDbGllbnQgbG9hZGVyQ2xpZW50OworICAgIG1lbXNldCgmbG9hZGVyQ2xpZW50LCAw
LCBzaXplb2YobG9hZGVyQ2xpZW50KSk7CisgICAgbG9hZGVyQ2xpZW50LnZlcnNpb24gPSBrV0tQ
YWdlTG9hZGVyQ2xpZW50Q3VycmVudFZlcnNpb247CisgICAgbG9hZGVyQ2xpZW50LmRpZEZpbmlz
aERvY3VtZW50TG9hZEZvckZyYW1lID0gZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWU7Cisg
ICAgbG9hZGVyQ2xpZW50LmNsaWVudEluZm8gPSAmd2ViVmlldzsKKworICAgIFdLUGFnZVNldFBh
Z2VMb2FkZXJDbGllbnQod2ViVmlldy5wYWdlKCksICZsb2FkZXJDbGllbnQpOworCisgICAgV0tQ
YWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNv
dXJjZSgic2ltcGxlLXRhbGwiLCAiaHRtbCIpKS5nZXQoKSk7CisKKyAgICBVdGlsOjpydW4oJnRl
c3REb25lKTsKKyAgICBFWFBFQ1RfVFJVRSh0ZXN0RG9uZSk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkK
</data>
<flag name="review"
          id="227830"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>