<?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>134316</bug_id>
          
          <creation_ts>2014-06-25 16:37:04 -0700</creation_ts>
          <short_desc>Crash in ScrollingTree::isRubberBandInProgress()</short_desc>
          <delta_ts>2014-06-25 17:51:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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="Beth Dakin">bdakin</reporter>
          <assigned_to name="Beth Dakin">bdakin</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1018442</commentid>
    <comment_count>0</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2014-06-25 16:37:04 -0700</bug_when>
    <thetext>There is a crash in ScrollingTree::isRubberBandInProgress() that seems to indicate that the ScrollingNode&apos;s ScrollingTree pointer is null. This seems to be a race condition that can occur when tearing down a page.

      3 libsystem_pthread.dylib:  _pthread_mutex_check_init + 17
        3 libsystem_pthread.dylib:  _pthread_mutex_lock + 28
   ==&gt; 3 com.apple.WebCore:  WebCore::ScrollingTree::isRubberBandInProgress + 22 &lt;==
            3 com.apple.WebCore:  WebCore::ScrollingTreeScrollingNode::updateBeforeChildren + 58
              3 com.apple.WebCore:  WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren + 24
                3 com.apple.WebCore:  WebCore::ScrollingTree::updateTreeFromStateNode + 541
                  3 com.apple.WebCore:  WebCore::ScrollingTree::commitNewTreeState + 295
                    3 com.apple.WebCore:  WebCore::ThreadedScrollingTree::commitNewTreeState + 29
                      3 com.apple.WebCore:  WTF::FunctionWrapper&lt;void  + 57
                        3 com.apple.WebCore:  WTF::BoundFunctionImpl&lt;WTF::FunctionWrapper&lt;void  + 44
                          3 com.apple.WebCore:  WebCore::ScrollingThread::dispatchFunctionsFromScrollingThread + 121
                            3 com.apple.WebCore:  WebCore::ScrollingThread::threadRunLoopSourceCallback + 65
                              3 com.apple.CoreFoundation:  

&lt;rdar://problem/16247911&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018452</commentid>
    <comment_count>1</comment_count>
      <attachid>233853</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2014-06-25 17:07:57 -0700</bug_when>
    <thetext>Created attachment 233853
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018456</commentid>
    <comment_count>2</comment_count>
      <attachid>233853</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-06-25 17:20:36 -0700</bug_when>
    <thetext>Comment on attachment 233853
Patch

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

Am I allowed to review this? Maybe I am.

&gt; Source/WebCore/ChangeLog:13
&gt; +        believe that the ScrollingCoordinatorâs ScrollingTree pointer had been null-ed out 

Squiggly apostrophe.

&gt; Source/WebCore/ChangeLog:16
&gt; +        creation back to the scrolling thread and to use the this pointer to create new 

For clarity, I think &quot;scrolling thread&quot; should be &quot;scrolling tree&quot; here. Node creation was always happening on the scrolling thread -- but it was using data from the scrolling coordinator, which was not thread-safe.

&gt; Source/WebCore/ChangeLog:17
&gt; +        nodes rather than the ScrollingCoordinatorâs pointer.

Squiggles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018464</commentid>
    <comment_count>3</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2014-06-25 17:51:59 -0700</bug_when>
    <thetext>Thank you! Fixed the thingies. http://trac.webkit.org/changeset/170451</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233853</attachid>
            <date>2014-06-25 17:07:57 -0700</date>
            <delta_ts>2014-06-25 17:20:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>for-review.txt</filename>
            <type>text/plain</type>
            <size>18948</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MDQ0NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisyMDE0LTA2LTI1ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBDcmFzaCBpbiBTY3JvbGxpbmdUcmVl
Ojppc1J1YmJlckJhbmRJblByb2dyZXNzKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzNDMxNgorICAgICAgICAtYW5kIGNvcnJlc3BvbmRpbmctCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjI0NzkxMT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNyYXNoIGFwcGVhcnMgdG8gaGF2ZSBiZWVu
IGNhdXNlZCBieSBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xNjEyNzYgCisgICAg
ICAgIHdoaWNoIG1vdmVkIHRoZSBTY3JvbGxpbmdOb2RlIGNyZWF0aW9uIGNvZGUgZnJvbSBTY3Jv
bGxpbmdUcmVlIG92ZXIgdG8gCisgICAgICAgIFNjcm9sbGluZ0Nvb3JkaW5hdG9yLiBUaGlzIGNy
ZWF0ZXMgYSB0aHJlYWQgc2FmZXR5IGlzc3VlLiBJbiB0aGUgY3Jhc2hpbmcgY2FzZSwgd2UgCisg
ICAgICAgIGJlbGlldmUgdGhhdCB0aGUgU2Nyb2xsaW5nQ29vcmRpbmF0b3LigJlzIFNjcm9sbGlu
Z1RyZWUgcG9pbnRlciBoYWQgYmVlbiBudWxsLWVkIG91dCAKKyAgICAgICAgZXZlbiB0aG91Z2gg
dGhlIFNjcm9sbGluZ1RyZWUgd2FzIGtlcHQgYWxpdmUgYnkgdGhlIGJpbmQgY2FsbCB0byBwcm9w
YWdhdGUgCisgICAgICAgIGNvbW1pdE5ld1RyZWVTdGF0ZSgpIG92ZXIgdG8gdGhlIHNjcm9sbGlu
ZyB0aHJlYWQuIFRoZSBmaXggaXMgdG8gbW92ZSBub2RlIAorICAgICAgICBjcmVhdGlvbiBiYWNr
IHRvIHRoZSBzY3JvbGxpbmcgdGhyZWFkIGFuZCB0byB1c2UgdGhlIHRoaXMgcG9pbnRlciB0byBj
cmVhdGUgbmV3IAorICAgICAgICBub2RlcyByYXRoZXIgdGhhbiB0aGUgU2Nyb2xsaW5nQ29vcmRp
bmF0b3LigJlzIHBvaW50ZXIuCisKKyAgICAgICAgRG9u4oCZdCBhbGxvdyBTY3JvbGxpbmdDb29y
ZGluYXRvciB0byBoYW5kbGUgU2Nyb2xsaW5nVHJlZU5vZGUgY3JlYXRpb24uCisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oOgorCisgICAgICAgIFJl
LW5hbWUgY3JlYXRlTm9kZSB0byBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZSgpLiAKKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWU6OnVwZGF0ZVRyZWVGcm9tU3RhdGVOb2RlKToKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisKKyAgICAgICAgUmVtb3ZlIHRoaXMgaW1wbGVtZW50
YXRpb24gb2YgY3JlYXRlTm9kZSB0aGF0IGNhbGxlZCBpbnRvIHRoZSAKKyAgICAgICAgU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxp
bmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6Y3Jl
YXRlTm9kZSk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3Jv
bGxpbmdUcmVlLmg6CisKKyAgICAgICAgRG9u4oCZdCBhbGxvdyBTY3JvbGxpbmdDb29yZGluYXRv
ciB0byBoYW5kbGUgU2Nyb2xsaW5nVHJlZU5vZGUgY3JlYXRpb24uCisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvaW9zL1Njcm9sbGluZ0Nvb3JkaW5hdG9ySU9TLmg6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvaW9zL1Njcm9sbGluZ0Nvb3JkaW5hdG9ySU9TLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JJT1M6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKTogRGVs
ZXRlZC4KKworICAgICAgICBSZS1uYW1lIGNyZWF0ZU5vZGUgdG8gY3JlYXRlU2Nyb2xsaW5nVHJl
ZU5vZGUsIGFuZCBhY3R1YWxseSBjcmVhdGUgdGhlIG5vZGVzIGhlcmUuCisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZUlPUzo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZUlPUzo6Y3JlYXRlTm9kZSk6IERlbGV0ZWQuCisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuaDoKKworICAgICAgICBEb27igJl0
IGFsbG93IFNjcm9sbGluZ0Nvb3JkaW5hdG9yIHRvIGhhbmRsZSBTY3JvbGxpbmdUcmVlTm9kZSBj
cmVhdGlvbi4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0
b3JNYWMuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0
b3JNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6Y3Jl
YXRlU2Nyb2xsaW5nVHJlZU5vZGUpOiBEZWxldGVkLgorCisgICAgICAgIEFkZCB0aGUgaW1wbGVt
ZW50YXRpb24gb2YgY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoKSBmb3IgdGhlIE1hYyB0byAKKyAg
ICAgICAgU2Nyb2xsaW5nVHJlZU1hYyBzaW5jZSBpdCBjYW4gY3JlYXRlIE1hYy1zcGVjaWZpYyBu
b2Rlcy4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5jcHA6
CisgICAgICAgIChTY3JvbGxpbmdUcmVlTWFjOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZSk6Cisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuaDoKKwogMjAxNC0w
Ni0yNSAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBhbiB1bmRvIGdyb3VwIGZvciBlYWNoIGRpY3RhdGVkIHV0dGVyYW5jZSBpbiBXZWJLaXQKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yLmgJKHJldmlzaW9uIDE3MDQzMikKKysrIFNvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAkod29ya2luZyBjb3B5
KQpAQCAtNTMsOCArNTMsNiBAQCBwdWJsaWM6CiAKICAgICBTY3JvbGxpbmdUcmVlKiBzY3JvbGxp
bmdUcmVlKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxpbmdUcmVlLmdldCgpOyB9CiAKLSAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVO
b2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpID0gMDsKLQogICAgIHZvaWQg
c2Nyb2xsaW5nU3RhdGVUcmVlUHJvcGVydGllc0NoYW5nZWQoKTsKIAogICAgIHZvaWQgc2NoZWR1
bGVVcGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBj
b25zdCBGbG9hdFBvaW50JiwgYm9vbCBwcm9ncmFtbWF0aWNTY3JvbGwsIFNldE9yU3luY1Njcm9s
bGluZ0xheWVyUG9zaXRpb24pOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAJKHJldmlzaW9uIDE3MDQzMikKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
NzIsNyArMTcyLDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjp1cGRhdGVUcmVlRnJvbVN0YXRlTgog
ICAgIGlmIChpdCAhPSBtX25vZGVNYXAuZW5kKCkpCiAgICAgICAgIG5vZGUgPSBpdC0+dmFsdWU7
CiAgICAgZWxzZSB7Ci0gICAgICAgIG5vZGUgPSBjcmVhdGVOb2RlKHN0YXRlTm9kZS0+bm9kZVR5
cGUoKSwgbm9kZUlEKTsKKyAgICAgICAgbm9kZSA9IGNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKHN0
YXRlTm9kZS0+bm9kZVR5cGUoKSwgbm9kZUlEKTsKICAgICAgICAgaWYgKCFwYXJlbnROb2RlSUQp
IHsKICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIHJvb3Qgbm9kZS4gQ2xlYXIgdGhlIG5vZGUg
bWFwLgogICAgICAgICAgICAgQVNTRVJUKHN0YXRlTm9kZS0+bm9kZVR5cGUoKSA9PSBGcmFtZVNj
cm9sbGluZ05vZGUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuaAkocmV2aXNpb24gMTcwNDMyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03MSw2ICs3MSw4IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgc2V0TWFpbkZyYW1lUGluU3RhdGUoYm9vbCBwaW5uZWRUb1Ro
ZUxlZnQsIGJvb2wgcGlubmVkVG9UaGVSaWdodCwgYm9vbCBwaW5uZWRUb1RoZVRvcCwgYm9vbCBw
aW5uZWRUb1RoZUJvdHRvbSk7CiAKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJl
ZU5vZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxp
bmdOb2RlSUQpID0gMDsKKwogICAgIC8vIENhbGxlZCBhZnRlciBhIHNjcm9sbGluZyB0cmVlIG5v
ZGUgaGFzIGhhbmRsZWQgYSBzY3JvbGwgYW5kIHVwZGF0ZWQgaXRzIGxheWVycy4KICAgICAvLyBV
cGRhdGVzIEZyYW1lVmlldy9SZW5kZXJMYXllciBzY3JvbGxpbmcgc3RhdGUgYW5kIEdyYXBoaWNz
TGF5ZXJzLgogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3Jv
bGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBTZXRPclN5bmNT
Y3JvbGxpbmdMYXllclBvc2l0aW9uID0gU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24pID0gMDsK
QEAgLTEzNSw4ICsxMzcsNiBAQCBwcml2YXRlOgogICAgIHR5cGVkZWYgSGFzaE1hcDxTY3JvbGxp
bmdOb2RlSUQsIFJlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4+IE9ycGhhblNjcm9sbGluZ05vZGVN
YXA7CiAgICAgdm9pZCB1cGRhdGVUcmVlRnJvbVN0YXRlTm9kZShjb25zdCBTY3JvbGxpbmdTdGF0
ZU5vZGUqLCBPcnBoYW5TY3JvbGxpbmdOb2RlTWFwJik7CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9s
bGluZ05vZGVJRCkgPSAwOwotCiAgICAgU2Nyb2xsaW5nVHJlZU5vZGUqIG5vZGVGb3JJRChTY3Jv
bGxpbmdOb2RlSUQpIGNvbnN0OwogCiAgICAgUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBtX3Jv
b3ROb2RlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3Jv
bGxpbmdUcmVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCShyZXZpc2lvbiAxNzA0MzIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMTYsMTEgKzExNiw2IEBAIHZvaWQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpo
YW5kbGVXaGVlbEUKIH0KICNlbmRpZgogCi1QYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBU
aHJlYWRlZFNjcm9sbGluZ1RyZWU6OmNyZWF0ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5
cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCi17Ci0gICAgcmV0dXJuIG1fc2Nyb2xsaW5nQ29v
cmRpbmF0b3ItPmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKG5vZGVUeXBlLCBub2RlSUQpOwotfQot
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xM
SU5HKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxp
bmdUcmVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhy
ZWFkZWRTY3JvbGxpbmdUcmVlLmgJKHJldmlzaW9uIDE3MDQzMikKKysrIFNvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC01OSw4ICs1OSw2IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBUaHJlYWRl
ZFNjcm9sbGluZ1RyZWUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciopOwogCi0gICAgdmlydHVh
bCBQYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVOb2RlKFNjcm9sbGluZ05vZGVU
eXBlLCBTY3JvbGxpbmdOb2RlSUQpIG92ZXJyaWRlOwotCiAgICAgdmlydHVhbCB2b2lkIHNjcm9s
bGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYg
c2Nyb2xsUG9zaXRpb24sIFNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24gPSBTeW5jU2Ny
b2xsaW5nTGF5ZXJQb3NpdGlvbikgb3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZp
cnR1YWwgdm9pZCBoYW5kbGVXaGVlbEV2ZW50UGhhc2UoUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2Up
IG92ZXJyaWRlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9s
bGluZ0Nvb3JkaW5hdG9ySU9TLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvaW9zL1Njcm9sbGluZ0Nvb3JkaW5hdG9ySU9TLmgJKHJldmlzaW9uIDE3MDQzMikK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdDb29yZGluYXRv
cklPUy5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1MSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgaGFuZGxlV2hlZWxFdmVudChGcmFtZVZpZXcqLCBjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiBwcml2YXRlOgotICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUo
U2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkIHNjaGVkdWxlVHJlZVN0YXRlQ29tbWl0KCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNj
cm9sbGluZ1N0YXRlVHJlZUNvbW1pdHRlclRpbWVyRmlyZWQoVGltZXI8U2Nyb2xsaW5nQ29vcmRp
bmF0b3JJT1M+Kik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Ny
b2xsaW5nQ29vcmRpbmF0b3JJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ0Nvb3JkaW5hdG9ySU9TLm1tCShyZXZpc2lvbiAxNzA0
MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nQ29vcmRp
bmF0b3JJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTEwNCwyNCArMTA0LDYgQEAgdm9pZCBTY3Jv
bGxpbmdDb29yZGluYXRvcklPUzo6Y29tbWl0VHJlZQogICAgIC8vIEZJWE1FOiBmaWd1cmUgb3V0
IGhvdyB0byBjb21taXQuCiB9CiAKLVBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IFNjcm9s
bGluZ0Nvb3JkaW5hdG9ySU9TOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2Rl
VHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKLXsKLSAgICBBU1NFUlQoc2Ny
b2xsaW5nVHJlZSgpKTsKLQotICAgIHN3aXRjaCAobm9kZVR5cGUpIHsKLSAgICBjYXNlIEZyYW1l
U2Nyb2xsaW5nTm9kZToKLSAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGVJT1M6OmNyZWF0ZSgqc2Nyb2xsaW5nVHJlZSgpLCBub2RlSUQpOwotICAgIGNhc2UgT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgY2FzZSBGaXhlZE5vZGU6Ci0gICAgICAgIHJldHVybiBT
Y3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnNjcm9sbGluZ1RyZWUoKSwgbm9kZUlEKTsK
LSAgICBjYXNlIFN0aWNreU5vZGU6Ci0gICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlU3RpY2t5
Tm9kZTo6Y3JlYXRlKCpzY3JvbGxpbmdUcmVlKCksIG5vZGVJRCk7Ci0gICAgfQotICAgIHJldHVy
biBudWxscHRyOwotfQotCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9T
LmNwcAkocmV2aXNpb24gMTcwNDMyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
aW9zL1Njcm9sbGluZ1RyZWVJT1MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Miw5ICs5MiwyMCBA
QCB2b2lkIFNjcm9sbGluZ1RyZWVJT1M6OnNjcm9sbGluZ1RyZWVOb2RlCiAgICAgY2FsbE9uTWFp
blRocmVhZChiaW5kKCZBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY2hlZHVsZVVwZGF0ZVNj
cm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbCwgbV9zY3JvbGxpbmdDb29yZGluYXRvci5nZXQo
KSwgbm9kZUlELCBzY3JvbGxQb3NpdGlvbiwgaXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbCgp
LCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKSk7CiB9CiAKLVBhc3NSZWZQdHI8U2Nyb2xs
aW5nVHJlZU5vZGU+IFNjcm9sbGluZ1RyZWVJT1M6OmNyZWF0ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5
cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCitQYXNzUmVmUHRyPFNjcm9sbGlu
Z1RyZWVOb2RlPiBTY3JvbGxpbmdUcmVlSU9TOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3Jv
bGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKIHsKLSAgICBy
ZXR1cm4gbV9zY3JvbGxpbmdDb29yZGluYXRvci0+Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUobm9k
ZVR5cGUsIG5vZGVJRCk7CisgICAgc3dpdGNoIChub2RlVHlwZSkgeworICAgIGNhc2UgRnJhbWVT
Y3JvbGxpbmdOb2RlOgorICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZUlPUzo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOworICAgIGNhc2UgT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgY2FzZSBGaXhlZE5vZGU6CisgICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVl
Rml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CisgICAgY2FzZSBTdGlja3lOb2RlOgor
ICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGU6OmNyZWF0ZSgqdGhpcywgbm9k
ZUlEKTsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIEZsb2F0UmVjdCBTY3JvbGxp
bmdUcmVlSU9TOjpmaXhlZFBvc2l0aW9uUmVjdCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmgJKHJldmlzaW9uIDE3
MDQzMikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVl
SU9TLmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToKICAgICBleHBs
aWNpdCBTY3JvbGxpbmdUcmVlSU9TKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqKTsKICAgICB2
aXJ0dWFsIGJvb2wgaXNTY3JvbGxpbmdUcmVlSU9TKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBjcmVh
dGVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJl
ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlE
LCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgU2V0T3JTeW5jU2Nyb2xsaW5nTGF5
ZXJQb3NpdGlvbiA9IFN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9uKSBvdmVycmlkZTsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
TWFjLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgJKHJldmlzaW9uIDE3MDQzMikKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5oCSh3b3JraW5n
IGNvcHkpCkBAIC01MSw3ICs1MSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFuZGxl
V2hlZWxFdmVudChGcmFtZVZpZXcqLCBjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlk
ZTsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+
IGNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2Rl
SUQpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVRyZWVTdGF0ZUNvbW1pdCgp
IG92ZXJyaWRlOwogCiAgICAgdm9pZCBzY3JvbGxpbmdTdGF0ZVRyZWVDb21taXR0ZXJUaW1lckZp
cmVkKFRpbWVyPFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjPiopOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGlu
YXRvck1hYy5tbQkocmV2aXNpb24gMTcwNDMyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
NDIsMjQgKzE0Miw2IEBAIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OnVwZGF0ZVRpbGUK
ICAgICB0aWxlZEJhY2tpbmctPnNldFNjcm9sbGluZ01vZGVJbmRpY2F0aW9uKGluZGljYXRvck1v
ZGUpOwogfQogCi1QYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBTY3JvbGxpbmdDb29yZGlu
YXRvck1hYzo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5
cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCi17Ci0gICAgQVNTRVJUKHNjcm9sbGluZ1RyZWUo
KSk7Ci0KLSAgICBzd2l0Y2ggKG5vZGVUeXBlKSB7Ci0gICAgY2FzZSBGcmFtZVNjcm9sbGluZ05v
ZGU6Ci0gICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpj
cmVhdGUoKnNjcm9sbGluZ1RyZWUoKSwgbm9kZUlEKTsKLSAgICBjYXNlIE92ZXJmbG93U2Nyb2xs
aW5nTm9kZToKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBu
dWxscHRyOwotICAgIGNhc2UgRml4ZWROb2RlOgotICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJl
ZUZpeGVkTm9kZTo6Y3JlYXRlKCpzY3JvbGxpbmdUcmVlKCksIG5vZGVJRCk7Ci0gICAgY2FzZSBT
dGlja3lOb2RlOgotICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGU6OmNyZWF0
ZSgqc2Nyb2xsaW5nVHJlZSgpLCBub2RlSUQpOwotICAgIH0KLSAgICByZXR1cm4gbnVsbHB0cjsK
LX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1ND
Uk9MTElORykgJiYgUExBVEZPUk0oTUFDKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmNwcAkocmV2aXNpb24gMTcw
NDMyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVN
YWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiwxMCBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1RyZWVNYWMuaCIKIAorI2luY2x1ZGUgIlNjcm9sbGlu
Z1RyZWVGaXhlZE5vZGUuaCIKKyNpbmNsdWRlICJTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlTWFjLmgiCisjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUuaCIKKwogI2lmIEVO
QUJMRShBU1lOQ19TQ1JPTExJTkcpICYmIFBMQVRGT1JNKE1BQykKIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC00MCw0ICs0NCwyMCBAQCBTY3JvbGxpbmdUcmVlTWFjOjpTY3JvbGxpbmdU
cmVlTWFjKEFzeW5jCiB7CiB9CiAKK1Bhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IFNjcm9s
bGluZ1RyZWVNYWM6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5v
ZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQoreworICAgIHN3aXRjaCAobm9kZVR5cGUp
IHsKKyAgICBjYXNlIEZyYW1lU2Nyb2xsaW5nTm9kZToKKyAgICAgICAgcmV0dXJuIFNjcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKKyAgICBj
YXNlIE92ZXJmbG93U2Nyb2xsaW5nTm9kZToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGNhc2UgRml4ZWROb2RlOgorICAgICAgICBy
ZXR1cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOworICAg
IGNhc2UgU3RpY2t5Tm9kZToKKyAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVTdGlja3lOb2Rl
OjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CisgICAgfQorICAgIHJldHVybiBudWxscHRyOworfQor
CiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgUExBVEZPUk0oTUFDKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
VHJlZU1hYy5oCShyZXZpc2lvbiAxNzA0MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw5
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFNjcm9sbGluZ1RyZWVNYWMgOiBwdWJsaWMg
VGhyZWFkZWRTY3JvbGxpbmdUcmVlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPFNjcm9s
bGluZ1RyZWVNYWM+IGNyZWF0ZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKik7CisKKyAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVO
b2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpIG92ZXJyaWRlOworCiAgICAg
CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFNjcm9sbGluZ1RyZWVNYWMoQXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvciopOwpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTcwNDQ4KQorKysgU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTQt
MDYtMjUgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgorCisgICAgICAgIENyYXNoIGlu
IFNjcm9sbGluZ1RyZWU6OmlzUnViYmVyQmFuZEluUHJvZ3Jlc3MoKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0MzE2CisgICAgICAgIC1hbmQgY29y
cmVzcG9uZGluZy0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE2MjQ3OTExPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgYWxsIFNjcm9sbGlu
Z1RyZWVOb2RlIGNyZWF0aW9uIGZyb20gU2Nyb2xsaW5nQ29vcmRpbmF0b3Igc3ViY2xhc3NlcyBp
bnRvIAorICAgICAgICBTY3JvbGxpbmdUcmVlIHN1YmNsYXNzZXMuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZU5vZGUpOiBEZWxldGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
bW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGVT
Y3JvbGxpbmdUcmVlTm9kZSk6IERlbGV0ZWQuCisKIDIwMTQtMDYtMjUgIENocmlzIEZsZWl6YWNo
ICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYW4gdW5kbyBncm91cCBmb3Ig
ZWFjaCBkaWN0YXRlZCB1dHRlcmFuY2UgaW4gV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5j
cHAJKHJldmlzaW9uIDE3MDQzMikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxp
bmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk5LDcgKzk5LDcg
QEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTgogICAgIG1fc2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKG5vZGVJ
RCwgc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOwogfQogCi1Q
YXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVO
b2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQor
UGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gUmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3JlYXRl
U2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05v
ZGVJRCBub2RlSUQpCiB7CiAgICAgc3dpdGNoIChub2RlVHlwZSkgewogICAgIGNhc2UgRnJhbWVT
Y3JvbGxpbmdOb2RlOgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9S
ZW1vdGVTY3JvbGxpbmdUcmVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmgJKHJldmlzaW9uIDE3MDQzMikKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIHNjcm9sbGluZ1RyZWVOb2RlV2lsbFN0YXJ0UGFuR2VzdHVyZSgpIG92ZXJyaWRlOwogI2Vu
ZGlmCiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU5vZGU+
IGNyZWF0ZU5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZVR5cGUsIFdlYkNvcmU6OlNjcm9sbGlu
Z05vZGVJRCk7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVO
b2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlVHlwZSwg
V2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKICAgICAKICAgICBSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5JiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk7CiB9OwpJ
bmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Nj
cm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oCShyZXZpc2lvbiAxNzA0MzIpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3ICs2NCw2IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCBib29sIGNvb3JkaW5hdGVzU2Nyb2xsaW5nRm9yRnJhbWVWaWV3KFdlYkNvcmU6OkZy
YW1lVmlldyopIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVRyZWVT
dGF0ZUNvbW1pdCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6
OlNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShXZWJDb3JlOjpTY3Jv
bGxpbmdOb2RlVHlwZSwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIGJvb2wgaXNSdWJiZXJCYW5kSW5Qcm9ncmVzcygpIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxQaW5uaW5nQmVoYXZpb3IoV2ViQ29yZTo6U2Nyb2xsUGlu
bmluZ0JlaGF2aW9yKSBvdmVycmlkZTsKIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3IubW0JKHJldmlzaW9uIDE3MDQzMikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
U2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC02NywxMyArNjcsNiBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY2hlZHVs
CiAgICAgbV93ZWJQYWdlLT5kcmF3aW5nQXJlYSgpLT5zY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJG
bHVzaCgpOwogfQogCi1QYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvcjo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUs
IFNjcm9sbGluZ05vZGVJRCkKLXsKLSAgICAvLyBXZSBuZXZlciBjcmVhdGVkIHNjcm9sbGluZyBu
b2RlcyBpbiB0aGUgV2ViUHJvY2VzcyB3aXRoIHJlbW90ZSBzY3JvbGxpbmcuCi0gICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KIGJvb2wgUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OmNvb3JkaW5hdGVzU2Nyb2xsaW5nRm9yRnJhbWVWaWV3KEZyYW1l
VmlldyogZnJhbWVWaWV3KSBjb25zdAogewogICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSBm
cmFtZVZpZXctPnJlbmRlclZpZXcoKTsK
</data>
<flag name="review"
          id="258361"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>