<?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>32878</bug_id>
          
          <creation_ts>2009-12-22 12:44:06 -0800</creation_ts>
          <short_desc>Wrong state and TouchLists in TouchEvents</short_desc>
          <delta_ts>2010-01-07 06:37:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>32485</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Kim Grönholm">kim.1.gronholm</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>petri.latvala</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>174336</commentid>
    <comment_count>0</comment_count>
    <who name="Kim Grönholm">kim.1.gronholm</who>
    <bug_when>2009-12-22 12:44:06 -0800</bug_when>
    <thetext>Currently we fire touchstart event once and after that all touchpoint presses and releases are fired as touchmove events until all fingers are released and touchend is sent. 
This is wrong. It should go like this:
With event type touchstart the changedTouches list should contain only the touch point that was inserted on the screen. When another touch point is inserted, there is another touchstart event fired with the new touch point again in changedTouches. Similarly with touchend, only the released touch points are in the changedTouches and a touchend event is fired every time one or more fingers are released. This also means that in touchmove event there&apos;s never new or released touchpoints.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174338</commentid>
    <comment_count>1</comment_count>
      <attachid>45398</attachid>
    <who name="Kim Grönholm">kim.1.gronholm</who>
    <bug_when>2009-12-22 12:53:08 -0800</bug_when>
    <thetext>Created attachment 45398
Corrects the TouchEvent API, layouttest for it and DumpRenderTree for Qt

Submitted a patch that fixes this issue. Also removed an unused member variable from EventHandler (m_previousTouchEvent).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174340</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-22 12:55:49 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45398 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176681</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-01-04 07:12:13 -0800</bug_when>
    <thetext>Does this new behavior match Android, iPhone etc? It would be good to explain the justification for the behavior change also in the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177374</commentid>
    <comment_count>4</comment_count>
      <attachid>45398</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-05 13:49:10 -0800</bug_when>
    <thetext>Comment on attachment 45398
Corrects the TouchEvent API, layouttest for it and DumpRenderTree for Qt

We need a more detailed ChangeLog in order to review this.  Please see:
http://webkit.org/coding/contributing.html#changelogs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178144</commentid>
    <comment_count>5</comment_count>
      <attachid>46045</attachid>
    <who name="Petri Latvala">petri.latvala</who>
    <bug_when>2010-01-07 04:46:17 -0800</bug_when>
    <thetext>Created attachment 46045
Patch with more detailed changelogs.

Enhanced the changelog. Indeed this new behaviour matches what is on iPhone and Android.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178146</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-07 04:51:21 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 46045 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178165</commentid>
    <comment_count>7</comment_count>
      <attachid>46045</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-01-07 06:10:24 -0800</bug_when>
    <thetext>Comment on attachment 46045
Patch with more detailed changelogs.

Ok.

Looks good, r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178168</commentid>
    <comment_count>8</comment_count>
      <attachid>46045</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-07 06:37:34 -0800</bug_when>
    <thetext>Comment on attachment 46045
Patch with more detailed changelogs.

Clearing flags on attachment: 46045

Committed r52922: &lt;http://trac.webkit.org/changeset/52922&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178169</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-07 06:37:41 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45398</attachid>
            <date>2009-12-22 12:53:08 -0800</date>
            <delta_ts>2010-01-05 13:49:09 -0800</delta_ts>
            <desc>Corrects the TouchEvent API, layouttest for it and DumpRenderTree for Qt</desc>
            <filename>match-iphone-touch-api</filename>
            <type>text/plain</type>
            <size>17799</size>
            <attacher name="Kim Grönholm">kim.1.gronholm</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1MDdjYjdkLi4yZjQ1MTgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMTIt
MjIgIEtpbSBHcsO2bmhvbG0gIDxraW0uZ3JvbmhvbG1Abm9tb3Zvay5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV3Jvbmcgc3RhdGUgYW5kIFRv
dWNoTGlzdHMgaW4gVG91Y2hFdmVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTMyODc4CisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9iYXNpYy10b3Vj
aC1ldmVudHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NjcmlwdC10ZXN0
cy9iYXNpYy10b3VjaC1ldmVudHMuanM6CisgICAgICAgIChzaW5nbGVUb3VjaFNlcXVlbmNlKToK
KyAgICAgICAgKG11bHRpVG91Y2hTZXF1ZW5jZSk6CisKIDIwMDktMTItMjEgIENzYWJhIE9zenRy
b2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIFNraXAgbGF5b3V0VGVz
dENvbnRyb2xsZXIubm90aWZ5RG9uZSgpIHJlbGF0ZWQgdGVzdCB1bnRpbCBmaXguCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9iYXNpYy10b3VjaC1ldmVudHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvYmFzaWMtdG91Y2gtZXZlbnRzLWV4cGVjdGVk
LnR4dAppbmRleCAzODQxNDM2Li43YWU0NTI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9iYXNpYy10b3VjaC1ldmVudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL2Jhc2ljLXRvdWNoLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTExLDYgKzEx
LDE2IEBAIFBBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMF0ucGFnZVkgaXMgMTAKIFBBU1MgbGFzdEV2
ZW50LnRvdWNoZXNbMF0uY2xpZW50WCBpcyAxMAogUEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS5j
bGllbnRZIGlzIDEwCiBQQVNTIGxhc3RFdmVudC50b3VjaGVzWzBdLmlkZW50aWZpZXIgaXMgMAor
UEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVggaXMgMTAKK1BBU1MgbGFzdEV2
ZW50LmNoYW5nZWRUb3VjaGVzWzBdLnBhZ2VZIGlzIDEwCitQQVNTIGxhc3RFdmVudC5jaGFuZ2Vk
VG91Y2hlc1swXS5jbGllbnRYIGlzIDEwCitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1sw
XS5jbGllbnRZIGlzIDEwCitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5pZGVudGlm
aWVyIGlzIDAKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXNbMF0ucGFnZVggaXMgMTAKK1BB
U1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXNbMF0ucGFnZVkgaXMgMTAKK1BBU1MgbGFzdEV2ZW50
LnRhcmdldFRvdWNoZXNbMF0uY2xpZW50WCBpcyAxMAorUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91
Y2hlc1swXS5jbGllbnRZIGlzIDEwCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzBdLmlk
ZW50aWZpZXIgaXMgMAogUEFTUyBsYXN0RXZlbnQudHlwZSBpcyAidG91Y2htb3ZlIgogUEFTUyBs
YXN0RXZlbnQudG91Y2hlcy5sZW5ndGggaXMgMQogUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNo
ZXMubGVuZ3RoIGlzIDEKQEAgLTM2LDE5ICs0NiwxMCBAQCBQQVNTIGxhc3RFdmVudC5jaGFuZ2Vk
VG91Y2hlc1swXS5pZGVudGlmaWVyIGlzIDAKIFBBU1MgbGFzdEV2ZW50LnNoaWZ0S2V5IGlzIGZh
bHNlCiBQQVNTIGxhc3RFdmVudC5hbHRLZXkgaXMgZmFsc2UKIG11bHRpIHRvdWNoIHNlcXVlbmNl
CitUd28gdG91Y2hwb2ludHMgcHJlc3NlZAogUEFTUyBsYXN0RXZlbnQudHlwZSBpcyAidG91Y2hz
dGFydCIKLVBBU1MgbGFzdEV2ZW50LnRvdWNoZXMubGVuZ3RoIGlzIDEKLVBBU1MgbGFzdEV2ZW50
LmNoYW5nZWRUb3VjaGVzLmxlbmd0aCBpcyAxCi1QQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVz
Lmxlbmd0aCBpcyAxCi1QQVNTIGxhc3RFdmVudC50b3VjaGVzWzBdLnRhcmdldC5pZCBpcyAidG91
Y2h0YXJnZXQiCi1QQVNTIGxhc3RFdmVudC50b3VjaGVzWzBdLnBhZ2VYIGlzIDEwCi1QQVNTIGxh
c3RFdmVudC50b3VjaGVzWzBdLnBhZ2VZIGlzIDEwCi1QQVNTIGxhc3RFdmVudC50b3VjaGVzWzBd
LmNsaWVudFggaXMgMTAKLVBBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WSBpcyAxMAot
UEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS5pZGVudGlmaWVyIGlzIDAKLVBBU1MgbGFzdEV2ZW50
LnR5cGUgaXMgInRvdWNobW92ZSIKIFBBU1MgbGFzdEV2ZW50LnRvdWNoZXMubGVuZ3RoIGlzIDIK
LVBBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzLmxlbmd0aCBpcyAxCitQQVNTIGxhc3RFdmVu
dC5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggaXMgMgogUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hl
cy5sZW5ndGggaXMgMgogUEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS5wYWdlWCBpcyAxMAogUEFT
UyBsYXN0RXZlbnQudG91Y2hlc1swXS5wYWdlWSBpcyAxMApAQCAtNjAsMTEgKzYxLDI3IEBAIFBB
U1MgbGFzdEV2ZW50LnRvdWNoZXNbMV0ucGFnZVkgaXMgMzAKIFBBU1MgbGFzdEV2ZW50LnRvdWNo
ZXNbMV0uY2xpZW50WCBpcyAyMAogUEFTUyBsYXN0RXZlbnQudG91Y2hlc1sxXS5jbGllbnRZIGlz
IDMwCiBQQVNTIGxhc3RFdmVudC50b3VjaGVzWzFdLmlkZW50aWZpZXIgaXMgMQotUEFTUyBsYXN0
RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVggaXMgMjAKLVBBU1MgbGFzdEV2ZW50LmNoYW5n
ZWRUb3VjaGVzWzBdLnBhZ2VZIGlzIDMwCi1QQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1sw
XS5jbGllbnRYIGlzIDIwCi1QQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRZ
IGlzIDMwCi1QQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5pZGVudGlmaWVyIGlzIDEK
K1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLnBhZ2VYIGlzIDEwCitQQVNTIGxhc3RF
dmVudC5jaGFuZ2VkVG91Y2hlc1swXS5wYWdlWSBpcyAxMAorUEFTUyBsYXN0RXZlbnQuY2hhbmdl
ZFRvdWNoZXNbMF0uY2xpZW50WCBpcyAxMAorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNb
MF0uY2xpZW50WSBpcyAxMAorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uaWRlbnRp
ZmllciBpcyAwCitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1sxXS5wYWdlWCBpcyAyMAor
UEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMV0ucGFnZVkgaXMgMzAKK1BBU1MgbGFzdEV2
ZW50LmNoYW5nZWRUb3VjaGVzWzFdLmNsaWVudFggaXMgMjAKK1BBU1MgbGFzdEV2ZW50LmNoYW5n
ZWRUb3VjaGVzWzFdLmNsaWVudFkgaXMgMzAKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVz
WzFdLmlkZW50aWZpZXIgaXMgMQorUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hlc1swXS5wYWdl
WCBpcyAxMAorUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hlc1swXS5wYWdlWSBpcyAxMAorUEFT
UyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hlc1swXS5jbGllbnRYIGlzIDEwCitQQVNTIGxhc3RFdmVu
dC50YXJnZXRUb3VjaGVzWzBdLmNsaWVudFkgaXMgMTAKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRv
dWNoZXNbMF0uaWRlbnRpZmllciBpcyAwCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzFd
LnBhZ2VYIGlzIDIwCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzFdLnBhZ2VZIGlzIDMw
CitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzFdLmNsaWVudFggaXMgMjAKK1BBU1MgbGFz
dEV2ZW50LnRhcmdldFRvdWNoZXNbMV0uY2xpZW50WSBpcyAzMAorUEFTUyBsYXN0RXZlbnQudGFy
Z2V0VG91Y2hlc1sxXS5pZGVudGlmaWVyIGlzIDEKK0ZpcnN0IHRvdWNocG9pbnQgbW92ZWQKIFBB
U1MgbGFzdEV2ZW50LnR5cGUgaXMgInRvdWNobW92ZSIKIFBBU1MgbGFzdEV2ZW50LnRvdWNoZXMu
bGVuZ3RoIGlzIDIKIFBBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzLmxlbmd0aCBpcyAxCkBA
IC04NCw3ICsxMDEsOCBAQCBQQVNTIGxhc3RFdmVudC50b3VjaGVzWzFdLnBhZ2VZIGlzIDMwCiBQ
QVNTIGxhc3RFdmVudC50b3VjaGVzWzFdLmNsaWVudFggaXMgMjAKIFBBU1MgbGFzdEV2ZW50LnRv
dWNoZXNbMV0uY2xpZW50WSBpcyAzMAogUEFTUyBsYXN0RXZlbnQudG91Y2hlc1sxXS5pZGVudGlm
aWVyIGlzIDEKLVBBU1MgbGFzdEV2ZW50LnR5cGUgaXMgInRvdWNobW92ZSIKK0ZpcnN0IHRvdWNo
cG9pbnQgaXMgcmVsZWFzZWQKK1BBU1MgbGFzdEV2ZW50LnR5cGUgaXMgInRvdWNoZW5kIgogUEFT
UyBsYXN0RXZlbnQudG91Y2hlcy5sZW5ndGggaXMgMQogUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRv
dWNoZXMubGVuZ3RoIGlzIDEKIFBBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXMubGVuZ3RoIGlz
IDEKQEAgLTk4LDYgKzExNiwxMiBAQCBQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5w
YWdlWSBpcyAxNQogUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WCBpcyAx
NQogUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WSBpcyAxNQogUEFTUyBs
YXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uaWRlbnRpZmllciBpcyAwCitQQVNTIGxhc3RFdmVu
dC50YXJnZXRUb3VjaGVzWzBdLnBhZ2VYIGlzIDIwCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3Vj
aGVzWzBdLnBhZ2VZIGlzIDMwCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzBdLmNsaWVu
dFggaXMgMjAKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXNbMF0uY2xpZW50WSBpcyAzMAor
UEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hlc1swXS5pZGVudGlmaWVyIGlzIDEKK0xhc3QgcmVt
YWluaW5nIHRvdWNocG9pbnQgaXMgcmVsZWFzZWQKIFBBU1MgbGFzdEV2ZW50LnR5cGUgaXMgInRv
dWNoZW5kIgogUEFTUyBsYXN0RXZlbnQudG91Y2hlcy5sZW5ndGggaXMgMAogUEFTUyBsYXN0RXZl
bnQuY2hhbmdlZFRvdWNoZXMubGVuZ3RoIGlzIDEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9iYXNpYy10b3VjaC1ldmVudHMuanMgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvYmFzaWMtdG91Y2gtZXZlbnRzLmpzCmluZGV4IDdl
ZWNkMzUuLjY3NjZhYmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcmlw
dC10ZXN0cy9iYXNpYy10b3VjaC1ldmVudHMuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc2NyaXB0LXRlc3RzL2Jhc2ljLXRvdWNoLWV2ZW50cy5qcwpAQCAtNDksNiArNDksOCBAQCBm
dW5jdGlvbiBzaW5nbGVUb3VjaFNlcXVlbmNlKCkKICAgICBzaG91bGRCZSgibGFzdEV2ZW50LnNo
aWZ0S2V5IiwgImZhbHNlIik7CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXN0RXZlbnQu
dG91Y2hlc1swXS50YXJnZXQuaWQiLCAidG91Y2h0YXJnZXQiKTsKICAgICB2ZXJpZnlUb3VjaFBv
aW50KCJ0b3VjaGVzIiwgMCwgMTAsIDEwLCAwKTsKKyAgICB2ZXJpZnlUb3VjaFBvaW50KCJjaGFu
Z2VkVG91Y2hlcyIsIDAsIDEwLCAxMCwgMCk7CisgICAgdmVyaWZ5VG91Y2hQb2ludCgidGFyZ2V0
VG91Y2hlcyIsIDAsIDEwLCAxMCwgMCk7CiAKICAgICBldmVudFNlbmRlci51cGRhdGVUb3VjaFBv
aW50KDAsIDIwLCAxNSk7CiAgICAgZXZlbnRTZW5kZXIuc2V0VG91Y2hNb2RpZmllcigic2hpZnQi
LCB0cnVlKTsKQEAgLTY1LDYgKzY3LDcgQEAgZnVuY3Rpb24gc2luZ2xlVG91Y2hTZXF1ZW5jZSgp
CiAgICAgZXZlbnRTZW5kZXIuc2V0VG91Y2hNb2RpZmllcigic2hpZnQiLCBmYWxzZSk7CiAgICAg
ZXZlbnRTZW5kZXIuc2V0VG91Y2hNb2RpZmllcigiYWx0IiwgZmFsc2UpOwogCisgICAgZXZlbnRT
ZW5kZXIucmVsZWFzZVRvdWNoUG9pbnQoMCk7CiAgICAgZXZlbnRTZW5kZXIudG91Y2hFbmQoKTsK
IAogICAgIHZlcmlmeVRvdWNoRXZlbnQoInRvdWNoZW5kIiwgMCwgMSwgMCk7CkBAIC03NywzOCAr
ODAsMzcgQEAgZnVuY3Rpb24gbXVsdGlUb3VjaFNlcXVlbmNlKCkKIHsKICAgICBkZWJ1ZygibXVs
dGkgdG91Y2ggc2VxdWVuY2UiKTsKIAorICAgIGRlYnVnKCJUd28gdG91Y2hwb2ludHMgcHJlc3Nl
ZCIpOwogICAgIGV2ZW50U2VuZGVyLmFkZFRvdWNoUG9pbnQoMTAsIDEwKTsKLSAgICBldmVudFNl
bmRlci50b3VjaFN0YXJ0KCk7Ci0KLSAgICB2ZXJpZnlUb3VjaEV2ZW50KCJ0b3VjaHN0YXJ0Iiwg
MSwgMSwgMSk7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXN0RXZlbnQudG91Y2hlc1sw
XS50YXJnZXQuaWQiLCAidG91Y2h0YXJnZXQiKTsKLSAgICB2ZXJpZnlUb3VjaFBvaW50KCJ0b3Vj
aGVzIiwgMCwgMTAsIDEwLCAwKTsKLQogICAgIGV2ZW50U2VuZGVyLmFkZFRvdWNoUG9pbnQoMjAs
IDMwKTsKLSAgICBldmVudFNlbmRlci50b3VjaE1vdmUoKTsKLQotICAgIHZlcmlmeVRvdWNoRXZl
bnQoInRvdWNobW92ZSIsIDIsIDEsIDIpOworICAgIGV2ZW50U2VuZGVyLnRvdWNoU3RhcnQoKTsK
KyAgICB2ZXJpZnlUb3VjaEV2ZW50KCJ0b3VjaHN0YXJ0IiwgMiwgMiwgMik7CiAgICAgdmVyaWZ5
VG91Y2hQb2ludCgidG91Y2hlcyIsIDAsIDEwLCAxMCwgMCk7CiAgICAgdmVyaWZ5VG91Y2hQb2lu
dCgidG91Y2hlcyIsIDEsIDIwLCAzMCwgMSk7Ci0gICAgdmVyaWZ5VG91Y2hQb2ludCgiY2hhbmdl
ZFRvdWNoZXMiLCAwLCAyMCwgMzAsIDEpOworICAgIHZlcmlmeVRvdWNoUG9pbnQoImNoYW5nZWRU
b3VjaGVzIiwgMCwgMTAsIDEwLCAwKTsKKyAgICB2ZXJpZnlUb3VjaFBvaW50KCJjaGFuZ2VkVG91
Y2hlcyIsIDEsIDIwLCAzMCwgMSk7CisgICAgdmVyaWZ5VG91Y2hQb2ludCgidGFyZ2V0VG91Y2hl
cyIsIDAsIDEwLCAxMCwgMCk7CisgICAgdmVyaWZ5VG91Y2hQb2ludCgidGFyZ2V0VG91Y2hlcyIs
IDEsIDIwLCAzMCwgMSk7CiAKKyAgICBkZWJ1ZygiRmlyc3QgdG91Y2hwb2ludCBtb3ZlZCIpOwog
ICAgIGV2ZW50U2VuZGVyLnVwZGF0ZVRvdWNoUG9pbnQoMCwgMTUsIDE1KTsKICAgICBldmVudFNl
bmRlci50b3VjaE1vdmUoKTsKLQogICAgIHZlcmlmeVRvdWNoRXZlbnQoInRvdWNobW92ZSIsIDIs
IDEsIDIpOwogICAgIHZlcmlmeVRvdWNoUG9pbnQoInRvdWNoZXMiLCAwLCAxNSwgMTUsIDApOwog
ICAgIHZlcmlmeVRvdWNoUG9pbnQoImNoYW5nZWRUb3VjaGVzIiwgMCwgMTUsIDE1LCAwKTsKICAg
ICB2ZXJpZnlUb3VjaFBvaW50KCJ0b3VjaGVzIiwgMSwgMjAsIDMwLCAxKTsKIAorICAgIGRlYnVn
KCJGaXJzdCB0b3VjaHBvaW50IGlzIHJlbGVhc2VkIik7CiAgICAgZXZlbnRTZW5kZXIucmVsZWFz
ZVRvdWNoUG9pbnQoMCk7Ci0gICAgZXZlbnRTZW5kZXIudG91Y2hNb3ZlKCk7Ci0KLSAgICB2ZXJp
ZnlUb3VjaEV2ZW50KCJ0b3VjaG1vdmUiLCAxLCAxLCAxKTsKKyAgICBldmVudFNlbmRlci50b3Vj
aEVuZCgpOworICAgIHZlcmlmeVRvdWNoRXZlbnQoInRvdWNoZW5kIiwgMSwgMSwgMSk7CiAgICAg
dmVyaWZ5VG91Y2hQb2ludCgidG91Y2hlcyIsIDAsIDIwLCAzMCwgMSk7CiAgICAgdmVyaWZ5VG91
Y2hQb2ludCgiY2hhbmdlZFRvdWNoZXMiLCAwLCAxNSwgMTUsIDApOworICAgIHZlcmlmeVRvdWNo
UG9pbnQoInRhcmdldFRvdWNoZXMiLCAwLCAyMCwgMzAsIDEpOwogCisgICAgZGVidWcoIkxhc3Qg
cmVtYWluaW5nIHRvdWNocG9pbnQgaXMgcmVsZWFzZWQiKTsKKyAgICBldmVudFNlbmRlci5yZWxl
YXNlVG91Y2hQb2ludCgwKTsKICAgICBldmVudFNlbmRlci50b3VjaEVuZCgpOwotCiAgICAgdmVy
aWZ5VG91Y2hFdmVudCgidG91Y2hlbmQiLCAwLCAxLCAwKTsKICAgICB2ZXJpZnlUb3VjaFBvaW50
KCJjaGFuZ2VkVG91Y2hlcyIsIDAsIDIwLCAzMCwgMSk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDZjOGY3ZDIuLjMyMWZjMjAgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMDktMTItMjIgIEtpbSBHcsO2bmhvbG0gIDxraW0uZ3JvbmhvbG1Abm9t
b3Zvay5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV3Jvbmcgc3RhdGUgYW5kIFRvdWNoTGlzdHMgaW4gVG91Y2hFdmVudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyODc4CisKKyAgICAgICAgKiBw
YWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6Omhh
bmRsZVRvdWNoRXZlbnQpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisKIDIwMDkt
MTItMjIgIEt3YW5nIFl1bCBTZW8gIDxza3l1bEBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwIGIvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggMTQ4MTU0OS4u
NzRmYzU2ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTI1NDUsMTcgKzI1NDUsMjAgQEAgYm9v
bCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50
JiBldmVudCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVmUHRyPFRvdWNoTGlzdD4g
dG91Y2hlcyA9IFRvdWNoTGlzdDo6Y3JlYXRlKCk7Ci0gICAgUmVmUHRyPFRvdWNoTGlzdD4gY2hh
bmdlZFRvdWNoZXMgPSBUb3VjaExpc3Q6OmNyZWF0ZSgpOworICAgIFJlZlB0cjxUb3VjaExpc3Q+
IHByZXNzZWRUb3VjaGVzID0gVG91Y2hMaXN0OjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8VG91Y2hM
aXN0PiByZWxlYXNlZFRvdWNoZXMgPSBUb3VjaExpc3Q6OmNyZWF0ZSgpOworICAgIFJlZlB0cjxU
b3VjaExpc3Q+IG1vdmVkVG91Y2hlcyA9IFRvdWNoTGlzdDo6Y3JlYXRlKCk7CiAgICAgUmVmUHRy
PFRvdWNoTGlzdD4gdGFyZ2V0VG91Y2hlcyA9IFRvdWNoTGlzdDo6Y3JlYXRlKCk7CiAKICAgICBj
b25zdCBWZWN0b3I8UGxhdGZvcm1Ub3VjaFBvaW50PiYgcG9pbnRzID0gZXZlbnQudG91Y2hQb2lu
dHMoKTsKKyAgICBBdG9taWNTdHJpbmcqIGV2ZW50TmFtZSA9IDA7CisKICAgICBmb3IgKGludCBp
ID0gMDsgaSA8IHBvaW50cy5zaXplKCk7ICsraSkgewogICAgICAgICBjb25zdCBQbGF0Zm9ybVRv
dWNoUG9pbnQmIHBvaW50ID0gcG9pbnRzW2ldOwotCiAgICAgICAgIEludFBvaW50IGZyYW1lUG9p
bnQgPSBkb2N1bWVudFBvaW50Rm9yV2luZG93UG9pbnQobV9mcmFtZSwgcG9pbnQucG9zKCkpOwog
ICAgICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdCA9IGhpdFRlc3RSZXN1bHRBdFBvaW50KGZyYW1l
UG9pbnQsIC8qYWxsb3dTaGFkb3dDb250ZW50Ki8gZmFsc2UpOwotCiAgICAgICAgIE5vZGUqIHRh
cmdldCA9IHJlc3VsdC5pbm5lck5vZGUoKTsKKwogICAgICAgICAvLyBUb3VjaCBldmVudHMgc2hv
dWxkIG5vdCBnbyB0byB0ZXh0IG5vZGVzCiAgICAgICAgIGlmICh0YXJnZXQgJiYgdGFyZ2V0LT5p
c1RleHROb2RlKCkpCiAgICAgICAgICAgICB0YXJnZXQgPSB0YXJnZXQtPnBhcmVudE5vZGUoKTsK
QEAgLTI1NzAsNDkgKzI1NzMsNzcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZl
bnQoY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50JiBldmVudCkKICAgICAgICAgICAgIG1fZmlyc3RU
b3VjaFBhZ2VQb3MgPSBmcmFtZVBvaW50OwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHBvaW50
LnN0YXRlKCkgIT0gUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVhc2VkKSB7Ci0gICAgICAg
ICAgICB0b3VjaGVzLT5hcHBlbmQodG91Y2gpOwotCi0gICAgICAgICAgICBpZiAobV90b3VjaEV2
ZW50VGFyZ2V0ID09IHRhcmdldCkKLSAgICAgICAgICAgICAgIHRhcmdldFRvdWNoZXMtPmFwcGVu
ZCh0b3VjaCk7CisgICAgICAgIGlmIChwb2ludC5zdGF0ZSgpID09IFBsYXRmb3JtVG91Y2hQb2lu
dDo6VG91Y2hSZWxlYXNlZCkKKyAgICAgICAgICAgIHJlbGVhc2VkVG91Y2hlcy0+YXBwZW5kKHRv
dWNoKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAocG9pbnQuc3RhdGUoKSA9PSBQ
bGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUHJlc3NlZCkKKyAgICAgICAgICAgICAgICBwcmVzc2Vk
VG91Y2hlcy0+YXBwZW5kKHRvdWNoKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAg
ICAgIHRvdWNoZXMtPmFwcGVuZCh0b3VjaCk7CisgICAgICAgICAgICAgICAgaWYgKG1fdG91Y2hF
dmVudFRhcmdldCA9PSB0YXJnZXQpCisgICAgICAgICAgICAgICAgICAgIHRhcmdldFRvdWNoZXMt
PmFwcGVuZCh0b3VjaCk7CisgICAgICAgICAgICAgICAgaWYgKHBvaW50LnN0YXRlKCkgPT0gUGxh
dGZvcm1Ub3VjaFBvaW50OjpUb3VjaE1vdmVkKQorICAgICAgICAgICAgICAgICAgICBtb3ZlZFRv
dWNoZXMtPmFwcGVuZCh0b3VjaCk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KLQotICAgICAg
ICBpZiAocG9pbnQuc3RhdGUoKSAhPSBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoU3RhdGlvbmFy
eSkKLSAgICAgICAgICAgIGNoYW5nZWRUb3VjaGVzLT5hcHBlbmQodG91Y2gpOwotICAgIH0KLQot
ICAgIEF0b21pY1N0cmluZyogZXZlbnROYW1lID0gMDsKLSAgICBzd2l0Y2ggKGV2ZW50LnR5cGUo
KSkgewotICAgIGNhc2UgVG91Y2hTdGFydDoKLSAgICAgICAgZXZlbnROYW1lID0gJmV2ZW50TmFt
ZXMoKS50b3VjaHN0YXJ0RXZlbnQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgVG91Y2hNb3Zl
OgotICAgICAgICBldmVudE5hbWUgPSAmZXZlbnROYW1lcygpLnRvdWNobW92ZUV2ZW50OwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIFRvdWNoRW5kOgotICAgICAgICBldmVudE5hbWUgPSAmZXZl
bnROYW1lcygpLnRvdWNoZW5kRXZlbnQ7Ci0gICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIGlm
ICghbV90b3VjaEV2ZW50VGFyZ2V0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBSZWZQ
dHI8VG91Y2hFdmVudD4gZXYgPSBUb3VjaEV2ZW50OjpjcmVhdGUodG91Y2hlcy5nZXQoKSwgdGFy
Z2V0VG91Y2hlcy5nZXQoKSwgY2hhbmdlZFRvdWNoZXMuZ2V0KCksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpldmVudE5hbWUsIG1fdG91Y2hFdmVudFRh
cmdldC0+ZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9maXJzdFRvdWNoU2NyZWVuUG9zLngoKSwgbV9maXJz
dFRvdWNoU2NyZWVuUG9zLnkoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbV9maXJzdFRvdWNoUGFnZVBvcy54KCksIG1fZmlyc3RUb3VjaFBhZ2VQb3Mu
eSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVu
dC5jdHJsS2V5KCksIGV2ZW50LmFsdEtleSgpLCBldmVudC5zaGlmdEtleSgpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5tZXRhS2V5KCkpOwor
ICAgIGJvb2wgZGVmYXVsdFByZXZlbnRlZCA9IGZhbHNlOwogCi0gICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7Ci0gICAgbV90b3VjaEV2ZW50VGFyZ2V0LT5kaXNwYXRjaEV2ZW50KGV2LmdldCgpLCBl
Yyk7CisgICAgaWYgKHJlbGVhc2VkVG91Y2hlcy0+bGVuZ3RoKCkgPiAwKSB7CisgICAgICAgIGV2
ZW50TmFtZSA9ICZldmVudE5hbWVzKCkudG91Y2hlbmRFdmVudDsKKyAgICAgICAgUmVmUHRyPFRv
dWNoRXZlbnQ+IGVuZEV2ID0gCisgICAgICAgICAgICBUb3VjaEV2ZW50OjpjcmVhdGUodG91Y2hl
cy5nZXQoKSwgdGFyZ2V0VG91Y2hlcy5nZXQoKSwgcmVsZWFzZWRUb3VjaGVzLmdldCgpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmV2ZW50TmFt
ZSwgbV90b3VjaEV2ZW50VGFyZ2V0LT5kb2N1bWVudCgpLT5kZWZhdWx0VmlldygpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9maXJzdFRvdWNo
U2NyZWVuUG9zLngoKSwgbV9maXJzdFRvdWNoU2NyZWVuUG9zLnkoKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZmlyc3RUb3VjaFBhZ2VQb3Mu
eCgpLCBtX2ZpcnN0VG91Y2hQYWdlUG9zLnkoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmN0cmxLZXkoKSwgZXZlbnQuYWx0S2V5KCks
IGV2ZW50LnNoaWZ0S2V5KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBldmVudC5tZXRhS2V5KCkpOworICAgICAgICBFeGNlcHRpb25Db2RlIGVj
ID0gMDsKKyAgICAgICAgbV90b3VjaEV2ZW50VGFyZ2V0LT5kaXNwYXRjaEV2ZW50KGVuZEV2Lmdl
dCgpLCBlYyk7CisgICAgICAgIGRlZmF1bHRQcmV2ZW50ZWQgPSBlbmRFdi0+ZGVmYXVsdFByZXZl
bnRlZCgpOworICAgIH0KKyAgICBpZiAocHJlc3NlZFRvdWNoZXMtPmxlbmd0aCgpID4gMCkgewor
ICAgICAgICAvLyBBZGQgcHJlc3NlZCB0b3VjaHBvaW50cyB0byB0b3VjaGVzIGFuZCB0YXJnZXRU
b3VjaGVzCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcHJlc3NlZFRvdWNoZXMtPmxlbmd0
aCgpOyArK2kpIHsKKyAgICAgICAgICAgIHRvdWNoZXMtPmFwcGVuZChwcmVzc2VkVG91Y2hlcy0+
aXRlbShpKSk7CisgICAgICAgICAgICBpZiAobV90b3VjaEV2ZW50VGFyZ2V0ID09IHByZXNzZWRU
b3VjaGVzLT5pdGVtKGkpLT50YXJnZXQoKSkKKyAgICAgICAgICAgICAgICB0YXJnZXRUb3VjaGVz
LT5hcHBlbmQocHJlc3NlZFRvdWNoZXMtPml0ZW0oaSkpOworICAgICAgICB9CisKKyAgICAgICAg
ZXZlbnROYW1lID0gJmV2ZW50TmFtZXMoKS50b3VjaHN0YXJ0RXZlbnQ7CisgICAgICAgIFJlZlB0
cjxUb3VjaEV2ZW50PiBzdGFydEV2ID0gCisgICAgICAgICAgICBUb3VjaEV2ZW50OjpjcmVhdGUo
dG91Y2hlcy5nZXQoKSwgdGFyZ2V0VG91Y2hlcy5nZXQoKSwgcHJlc3NlZFRvdWNoZXMuZ2V0KCks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqZXZl
bnROYW1lLCBtX3RvdWNoRXZlbnRUYXJnZXQtPmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2ZpcnN0
VG91Y2hTY3JlZW5Qb3MueCgpLCBtX2ZpcnN0VG91Y2hTY3JlZW5Qb3MueSgpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9maXJzdFRvdWNoUGFn
ZVBvcy54KCksIG1fZmlyc3RUb3VjaFBhZ2VQb3MueSgpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuY3RybEtleSgpLCBldmVudC5hbHRL
ZXkoKSwgZXZlbnQuc2hpZnRLZXkoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGV2ZW50Lm1ldGFLZXkoKSk7CisgICAgICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOworICAgICAgICBtX3RvdWNoRXZlbnRUYXJnZXQtPmRpc3BhdGNoRXZlbnQoc3Rh
cnRFdi5nZXQoKSwgZWMpOworICAgICAgICBkZWZhdWx0UHJldmVudGVkIHw9IHN0YXJ0RXYtPmRl
ZmF1bHRQcmV2ZW50ZWQoKTsKKyAgICB9CisgICAgaWYgKG1vdmVkVG91Y2hlcy0+bGVuZ3RoKCkg
PiAwKSB7CisgICAgICAgIGV2ZW50TmFtZSA9ICZldmVudE5hbWVzKCkudG91Y2htb3ZlRXZlbnQ7
CisgICAgICAgIFJlZlB0cjxUb3VjaEV2ZW50PiBtb3ZlRXYgPSAKKyAgICAgICAgICAgIFRvdWNo
RXZlbnQ6OmNyZWF0ZSh0b3VjaGVzLmdldCgpLCB0YXJnZXRUb3VjaGVzLmdldCgpLCBtb3ZlZFRv
dWNoZXMuZ2V0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqZXZlbnROYW1lLCBtX3RvdWNoRXZlbnRUYXJnZXQtPmRvY3VtZW50KCktPmRlZmF1
bHRWaWV3KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtX2ZpcnN0VG91Y2hTY3JlZW5Qb3MueCgpLCBtX2ZpcnN0VG91Y2hTY3JlZW5Qb3MueSgp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9m
aXJzdFRvdWNoUGFnZVBvcy54KCksIG1fZmlyc3RUb3VjaFBhZ2VQb3MueSgpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuY3RybEtleSgp
LCBldmVudC5hbHRLZXkoKSwgZXZlbnQuc2hpZnRLZXkoKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50Lm1ldGFLZXkoKSk7CisgICAgICAg
IEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgICAgICBtX3RvdWNoRXZlbnRUYXJnZXQtPmRpc3Bh
dGNoRXZlbnQobW92ZUV2LmdldCgpLCBlYyk7CisgICAgICAgIGRlZmF1bHRQcmV2ZW50ZWQgfD0g
bW92ZUV2LT5kZWZhdWx0UHJldmVudGVkKCk7CisgICAgfQogCiAgICAgaWYgKGV2ZW50LnR5cGUo
KSA9PSBUb3VjaEVuZCkKICAgICAgICAgbV90b3VjaEV2ZW50VGFyZ2V0ID0gMDsKIAotICAgIG1f
cHJldmlvdXNUb3VjaEV2ZW50ID0gZXY7Ci0KLSAgICByZXR1cm4gZXYtPmRlZmF1bHRQcmV2ZW50
ZWQoKTsKKyAgICByZXR1cm4gZGVmYXVsdFByZXZlbnRlZDsKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmgKaW5kZXggNTMxMzNlNC4uNmExMmU3MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5oCisrKyBiL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtNDA5LDcg
KzQwOSw2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPE5vZGU+IG1fdG91Y2hFdmVudFRhcmdldDsK
ICAgICBJbnRQb2ludCBtX2ZpcnN0VG91Y2hTY3JlZW5Qb3M7CiAgICAgSW50UG9pbnQgbV9maXJz
dFRvdWNoUGFnZVBvczsKLSAgICBSZWZQdHI8VG91Y2hFdmVudD4gbV9wcmV2aW91c1RvdWNoRXZl
bnQ7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dl
YktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCAzNjc5ZDI0Li45ZTdmYWVjIDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMDktMTItMjIgIEtpbSBHcsO2bmhvbG0gIDxraW0uZ3JvbmhvbG1Abm9tb3Zv
ay5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V3Jvbmcgc3RhdGUgYW5kIFRvdWNoTGlzdHMgaW4gVG91Y2hFdmVudHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyODc4CisKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0LmNwcDoKKyAgICAgICAgKEV2ZW50U2VuZGVyOjp0
b3VjaFN0YXJ0KToKKyAgICAgICAgKEV2ZW50U2VuZGVyOjp0b3VjaEVuZCk6CisgICAgICAgIChF
dmVudFNlbmRlcjo6Y2xlYXJUb3VjaFBvaW50cyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
cXQvRXZlbnRTZW5kZXJRdC5oOgorCiAyMDA5LTEyLTIyICBTaW1vbiBIYXVzbWFubiAgPHNpbW9u
LmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBIb2xnZXIg
RnJleXRoZXIuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9FdmVu
dFNlbmRlclF0LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0V2ZW50U2VuZGVy
UXQuY3BwCmluZGV4IGQ0ZjkzODMuLmYzMjQ4MDAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L0V2ZW50U2VuZGVyUXQuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0V2ZW50U2VuZGVyUXQuY3BwCkBAIC0zMDEsNyArMzAxLDExIEBAIHZvaWQg
RXZlbnRTZW5kZXI6OnNldFRvdWNoTW9kaWZpZXIoY29uc3QgUVN0cmluZyAmbW9kaWZpZXIsIGJv
b2wgZW5hYmxlKQogdm9pZCBFdmVudFNlbmRlcjo6dG91Y2hTdGFydCgpCiB7CiAjaWYgUVRfVkVS
U0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDQsIDYsIDApCi0gICAgc2VuZFRvdWNoRXZlbnQoUUV2
ZW50OjpUb3VjaEJlZ2luKTsKKyAgICBpZiAoIW1fdG91Y2hBY3RpdmUpIHsKKyAgICAgICAgc2Vu
ZFRvdWNoRXZlbnQoUUV2ZW50OjpUb3VjaEJlZ2luKTsKKyAgICAgICAgbV90b3VjaEFjdGl2ZSA9
IHRydWU7CisgICAgfSBlbHNlCisgICAgICAgIHNlbmRUb3VjaEV2ZW50KFFFdmVudDo6VG91Y2hV
cGRhdGUpOwogI2VuZGlmCiB9CiAKQEAgLTMxNiw4ICszMjAsMTIgQEAgdm9pZCBFdmVudFNlbmRl
cjo6dG91Y2hFbmQoKQogewogI2lmIFFUX1ZFUlNJT04gPj0gUVRfVkVSU0lPTl9DSEVDSyg0LCA2
LCAwKQogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV90b3VjaFBvaW50cy5jb3VudCgpOyArK2kp
Ci0gICAgICAgIG1fdG91Y2hQb2ludHNbaV0uc2V0U3RhdGUoUXQ6OlRvdWNoUG9pbnRSZWxlYXNl
ZCk7CisgICAgICAgIGlmIChtX3RvdWNoUG9pbnRzW2ldLnN0YXRlKCkgIT0gUXQ6OlRvdWNoUG9p
bnRSZWxlYXNlZCkgeworICAgICAgICAgICAgc2VuZFRvdWNoRXZlbnQoUUV2ZW50OjpUb3VjaFVw
ZGF0ZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICBzZW5kVG91Y2hFdmVu
dChRRXZlbnQ6OlRvdWNoRW5kKTsKKyAgICBtX3RvdWNoQWN0aXZlID0gZmFsc2U7CiAjZW5kaWYK
IH0KIApAQCAtMzI2LDYgKzMzNCw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6OmNsZWFyVG91Y2hQb2lu
dHMoKQogI2lmIFFUX1ZFUlNJT04gPj0gUVRfVkVSU0lPTl9DSEVDSyg0LCA2LCAwKQogICAgIG1f
dG91Y2hQb2ludHMuY2xlYXIoKTsKICAgICBtX3RvdWNoTW9kaWZpZXJzID0gUXQ6OktleWJvYXJk
TW9kaWZpZXJzKCk7CisgICAgbV90b3VjaEFjdGl2ZSA9IGZhbHNlOwogI2VuZGlmCiB9CiAKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0V2ZW50U2VuZGVyUXQuaCBi
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0V2ZW50U2VuZGVyUXQuaAppbmRleCA4ZTk0
NjdhLi4yNGVmZThmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9F
dmVudFNlbmRlclF0LmgKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRXZlbnRT
ZW5kZXJRdC5oCkBAIC03Nyw2ICs3Nyw3IEBAIHByaXZhdGU6CiAjaWYgUVRfVkVSU0lPTiA+PSBR
VF9WRVJTSU9OX0NIRUNLKDQsIDYsIDApCiAgICAgUUxpc3Q8UVRvdWNoRXZlbnQ6OlRvdWNoUG9p
bnQ+IG1fdG91Y2hQb2ludHM7CiAgICAgUXQ6OktleWJvYXJkTW9kaWZpZXJzIG1fdG91Y2hNb2Rp
ZmllcnM7CisgICAgYm9vbCBtX3RvdWNoQWN0aXZlOwogI2VuZGlmCiB9OwogI2VuZGlmIC8vICBF
dmVudFNlbmRlclF0X2gK
</data>
<flag name="review"
          id="27424"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46045</attachid>
            <date>2010-01-07 04:46:17 -0800</date>
            <delta_ts>2010-01-07 06:37:33 -0800</delta_ts>
            <desc>Patch with more detailed changelogs.</desc>
            <filename>match-iphone-touch-api2.diff</filename>
            <type>text/plain</type>
            <size>19258</size>
            <attacher name="Petri Latvala">petri.latvala</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1MDdjYjdkLi4yZjQ1MTgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMDktMTIt
MjIgIEtpbSBHcsO2bmhvbG0gIDxraW0uZ3JvbmhvbG1Abm9tb3Zvay5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV3Jvbmcgc3RhdGUgYW5kIFRv
dWNoTGlzdHMgaW4gVG91Y2hFdmVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTMyODc4CisKKyAgICAgICAgVG91Y2ggZXZlbnQgdGVzdHMgY2hhbmdl
ZCB0byBtYXRjaCB0aGUgQVBJIGFuZCBzZW1hbnRpY3Mgb2YgaVBob25lIGFuZAorICAgICAgICBB
bmRyb2lkLiBFYWNoIG5ldyB0b3VjaCBwb2ludCBwcmVzcyBkaXNwYXRjaGVzIGEgdG91Y2hzdGFy
dCBldmVudCB3aXRoCisgICAgICAgIHRoZSBwcmVzc2VkIHRvdWNoIHBvaW50KHMpIGluIHRoZSBj
aGFuZ2VkVG91Y2hlcyBsaXN0LCBhbmQgYSByZWxlYXNlCisgICAgICAgIGRpc3BhdGNoZXMgYSB0
b3VjaGVuZCBldmVudCB3aXRoIHRoZSByZWxlYXNlZCB0b3VjaCBwb2ludChzKSBpbgorICAgICAg
ICBjaGFuZ2VkVG91Y2hlcy4gTW92ZWQgcG9pbnRzIGRpc3BhdGNoIGEgdG91Y2htb3ZlIGV2ZW50
LCB3aXRoIHRoZSBtb3ZlZAorICAgICAgICBwb2ludHMgaW4gY2hhbmdlZFRvdWNoZXMuIE9sZCBi
ZWhhdmlvdXIgZW1pdHRlZCBvbmx5IG9uZSB0b3VjaHN0YXJ0IHdoZW4KKyAgICAgICAgdGhlIGZp
cnN0IHBvaW50IHdhcyBwcmVzc2VkIGFuZCBvbmUgdG91Y2hlbmQgd2hlbiB0aGUgbGFzdCBwb2lu
dCB3YXMKKyAgICAgICAgcmVsZWFzZWQsIGFuZCBhbnkgZXZlbnRzIGluIGJldHdlZW4gd2VyZSB0
b3VjaG1vdmVzLiBOZXcgcHJlc3NlcyBvcgorICAgICAgICByZWxlYXNlcyBjb3VsZCBvbmx5IGJl
IGRldGVjdGVkIGJ5IGNvbXBhcmluZyB0aGUgbGlzdHMgdG91Y2hlcyBhbmQKKyAgICAgICAgY2hh
bmdlZFRvdWNoZXMuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9iYXNpYy10b3VjaC1ldmVudHMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9iYXNpYy10
b3VjaC1ldmVudHMuanM6CisgICAgICAgIChzaW5nbGVUb3VjaFNlcXVlbmNlKToKKyAgICAgICAg
KG11bHRpVG91Y2hTZXF1ZW5jZSk6CisKIDIwMDktMTItMjEgIENzYWJhIE9zenRyb2dvbsOhYyAg
PG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIFNraXAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIubm90aWZ5RG9uZSgpIHJlbGF0ZWQgdGVzdCB1bnRpbCBmaXguCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9iYXNpYy10b3VjaC1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvYmFzaWMtdG91Y2gtZXZlbnRzLWV4cGVjdGVkLnR4dAppbmRl
eCAzODQxNDM2Li43YWU0NTI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9i
YXNpYy10b3VjaC1ldmVudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL2Jhc2ljLXRvdWNoLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTExLDYgKzExLDE2IEBAIFBB
U1MgbGFzdEV2ZW50LnRvdWNoZXNbMF0ucGFnZVkgaXMgMTAKIFBBU1MgbGFzdEV2ZW50LnRvdWNo
ZXNbMF0uY2xpZW50WCBpcyAxMAogUEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS5jbGllbnRZIGlz
IDEwCiBQQVNTIGxhc3RFdmVudC50b3VjaGVzWzBdLmlkZW50aWZpZXIgaXMgMAorUEFTUyBsYXN0
RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVggaXMgMTAKK1BBU1MgbGFzdEV2ZW50LmNoYW5n
ZWRUb3VjaGVzWzBdLnBhZ2VZIGlzIDEwCitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1sw
XS5jbGllbnRYIGlzIDEwCitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRZ
IGlzIDEwCitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5pZGVudGlmaWVyIGlzIDAK
K1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXNbMF0ucGFnZVggaXMgMTAKK1BBU1MgbGFzdEV2
ZW50LnRhcmdldFRvdWNoZXNbMF0ucGFnZVkgaXMgMTAKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRv
dWNoZXNbMF0uY2xpZW50WCBpcyAxMAorUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hlc1swXS5j
bGllbnRZIGlzIDEwCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzBdLmlkZW50aWZpZXIg
aXMgMAogUEFTUyBsYXN0RXZlbnQudHlwZSBpcyAidG91Y2htb3ZlIgogUEFTUyBsYXN0RXZlbnQu
dG91Y2hlcy5sZW5ndGggaXMgMQogUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXMubGVuZ3Ro
IGlzIDEKQEAgLTM2LDE5ICs0NiwxMCBAQCBQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1sw
XS5pZGVudGlmaWVyIGlzIDAKIFBBU1MgbGFzdEV2ZW50LnNoaWZ0S2V5IGlzIGZhbHNlCiBQQVNT
IGxhc3RFdmVudC5hbHRLZXkgaXMgZmFsc2UKIG11bHRpIHRvdWNoIHNlcXVlbmNlCitUd28gdG91
Y2hwb2ludHMgcHJlc3NlZAogUEFTUyBsYXN0RXZlbnQudHlwZSBpcyAidG91Y2hzdGFydCIKLVBB
U1MgbGFzdEV2ZW50LnRvdWNoZXMubGVuZ3RoIGlzIDEKLVBBU1MgbGFzdEV2ZW50LmNoYW5nZWRU
b3VjaGVzLmxlbmd0aCBpcyAxCi1QQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzLmxlbmd0aCBp
cyAxCi1QQVNTIGxhc3RFdmVudC50b3VjaGVzWzBdLnRhcmdldC5pZCBpcyAidG91Y2h0YXJnZXQi
Ci1QQVNTIGxhc3RFdmVudC50b3VjaGVzWzBdLnBhZ2VYIGlzIDEwCi1QQVNTIGxhc3RFdmVudC50
b3VjaGVzWzBdLnBhZ2VZIGlzIDEwCi1QQVNTIGxhc3RFdmVudC50b3VjaGVzWzBdLmNsaWVudFgg
aXMgMTAKLVBBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WSBpcyAxMAotUEFTUyBsYXN0
RXZlbnQudG91Y2hlc1swXS5pZGVudGlmaWVyIGlzIDAKLVBBU1MgbGFzdEV2ZW50LnR5cGUgaXMg
InRvdWNobW92ZSIKIFBBU1MgbGFzdEV2ZW50LnRvdWNoZXMubGVuZ3RoIGlzIDIKLVBBU1MgbGFz
dEV2ZW50LmNoYW5nZWRUb3VjaGVzLmxlbmd0aCBpcyAxCitQQVNTIGxhc3RFdmVudC5jaGFuZ2Vk
VG91Y2hlcy5sZW5ndGggaXMgMgogUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hlcy5sZW5ndGgg
aXMgMgogUEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS5wYWdlWCBpcyAxMAogUEFTUyBsYXN0RXZl
bnQudG91Y2hlc1swXS5wYWdlWSBpcyAxMApAQCAtNjAsMTEgKzYxLDI3IEBAIFBBU1MgbGFzdEV2
ZW50LnRvdWNoZXNbMV0ucGFnZVkgaXMgMzAKIFBBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMV0uY2xp
ZW50WCBpcyAyMAogUEFTUyBsYXN0RXZlbnQudG91Y2hlc1sxXS5jbGllbnRZIGlzIDMwCiBQQVNT
IGxhc3RFdmVudC50b3VjaGVzWzFdLmlkZW50aWZpZXIgaXMgMQotUEFTUyBsYXN0RXZlbnQuY2hh
bmdlZFRvdWNoZXNbMF0ucGFnZVggaXMgMjAKLVBBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVz
WzBdLnBhZ2VZIGlzIDMwCi1QQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRY
IGlzIDIwCi1QQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRZIGlzIDMwCi1Q
QVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5pZGVudGlmaWVyIGlzIDEKK1BBU1MgbGFz
dEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLnBhZ2VYIGlzIDEwCitQQVNTIGxhc3RFdmVudC5jaGFu
Z2VkVG91Y2hlc1swXS5wYWdlWSBpcyAxMAorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNb
MF0uY2xpZW50WCBpcyAxMAorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50
WSBpcyAxMAorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uaWRlbnRpZmllciBpcyAw
CitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1sxXS5wYWdlWCBpcyAyMAorUEFTUyBsYXN0
RXZlbnQuY2hhbmdlZFRvdWNoZXNbMV0ucGFnZVkgaXMgMzAKK1BBU1MgbGFzdEV2ZW50LmNoYW5n
ZWRUb3VjaGVzWzFdLmNsaWVudFggaXMgMjAKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVz
WzFdLmNsaWVudFkgaXMgMzAKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzFdLmlkZW50
aWZpZXIgaXMgMQorUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hlc1swXS5wYWdlWCBpcyAxMAor
UEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hlc1swXS5wYWdlWSBpcyAxMAorUEFTUyBsYXN0RXZl
bnQudGFyZ2V0VG91Y2hlc1swXS5jbGllbnRYIGlzIDEwCitQQVNTIGxhc3RFdmVudC50YXJnZXRU
b3VjaGVzWzBdLmNsaWVudFkgaXMgMTAKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXNbMF0u
aWRlbnRpZmllciBpcyAwCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzFdLnBhZ2VYIGlz
IDIwCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzFdLnBhZ2VZIGlzIDMwCitQQVNTIGxh
c3RFdmVudC50YXJnZXRUb3VjaGVzWzFdLmNsaWVudFggaXMgMjAKK1BBU1MgbGFzdEV2ZW50LnRh
cmdldFRvdWNoZXNbMV0uY2xpZW50WSBpcyAzMAorUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hl
c1sxXS5pZGVudGlmaWVyIGlzIDEKK0ZpcnN0IHRvdWNocG9pbnQgbW92ZWQKIFBBU1MgbGFzdEV2
ZW50LnR5cGUgaXMgInRvdWNobW92ZSIKIFBBU1MgbGFzdEV2ZW50LnRvdWNoZXMubGVuZ3RoIGlz
IDIKIFBBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzLmxlbmd0aCBpcyAxCkBAIC04NCw3ICsx
MDEsOCBAQCBQQVNTIGxhc3RFdmVudC50b3VjaGVzWzFdLnBhZ2VZIGlzIDMwCiBQQVNTIGxhc3RF
dmVudC50b3VjaGVzWzFdLmNsaWVudFggaXMgMjAKIFBBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMV0u
Y2xpZW50WSBpcyAzMAogUEFTUyBsYXN0RXZlbnQudG91Y2hlc1sxXS5pZGVudGlmaWVyIGlzIDEK
LVBBU1MgbGFzdEV2ZW50LnR5cGUgaXMgInRvdWNobW92ZSIKK0ZpcnN0IHRvdWNocG9pbnQgaXMg
cmVsZWFzZWQKK1BBU1MgbGFzdEV2ZW50LnR5cGUgaXMgInRvdWNoZW5kIgogUEFTUyBsYXN0RXZl
bnQudG91Y2hlcy5sZW5ndGggaXMgMQogUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXMubGVu
Z3RoIGlzIDEKIFBBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXMubGVuZ3RoIGlzIDEKQEAgLTk4
LDYgKzExNiwxMiBAQCBQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5wYWdlWSBpcyAx
NQogUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WCBpcyAxNQogUEFTUyBs
YXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WSBpcyAxNQogUEFTUyBsYXN0RXZlbnQu
Y2hhbmdlZFRvdWNoZXNbMF0uaWRlbnRpZmllciBpcyAwCitQQVNTIGxhc3RFdmVudC50YXJnZXRU
b3VjaGVzWzBdLnBhZ2VYIGlzIDIwCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzBdLnBh
Z2VZIGlzIDMwCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzBdLmNsaWVudFggaXMgMjAK
K1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXNbMF0uY2xpZW50WSBpcyAzMAorUEFTUyBsYXN0
RXZlbnQudGFyZ2V0VG91Y2hlc1swXS5pZGVudGlmaWVyIGlzIDEKK0xhc3QgcmVtYWluaW5nIHRv
dWNocG9pbnQgaXMgcmVsZWFzZWQKIFBBU1MgbGFzdEV2ZW50LnR5cGUgaXMgInRvdWNoZW5kIgog
UEFTUyBsYXN0RXZlbnQudG91Y2hlcy5sZW5ndGggaXMgMAogUEFTUyBsYXN0RXZlbnQuY2hhbmdl
ZFRvdWNoZXMubGVuZ3RoIGlzIDEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3NjcmlwdC10ZXN0cy9iYXNpYy10b3VjaC1ldmVudHMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9zY3JpcHQtdGVzdHMvYmFzaWMtdG91Y2gtZXZlbnRzLmpzCmluZGV4IDdlZWNkMzUuLjY3
NjZhYmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9i
YXNpYy10b3VjaC1ldmVudHMuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NyaXB0
LXRlc3RzL2Jhc2ljLXRvdWNoLWV2ZW50cy5qcwpAQCAtNDksNiArNDksOCBAQCBmdW5jdGlvbiBz
aW5nbGVUb3VjaFNlcXVlbmNlKCkKICAgICBzaG91bGRCZSgibGFzdEV2ZW50LnNoaWZ0S2V5Iiwg
ImZhbHNlIik7CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXN0RXZlbnQudG91Y2hlc1sw
XS50YXJnZXQuaWQiLCAidG91Y2h0YXJnZXQiKTsKICAgICB2ZXJpZnlUb3VjaFBvaW50KCJ0b3Vj
aGVzIiwgMCwgMTAsIDEwLCAwKTsKKyAgICB2ZXJpZnlUb3VjaFBvaW50KCJjaGFuZ2VkVG91Y2hl
cyIsIDAsIDEwLCAxMCwgMCk7CisgICAgdmVyaWZ5VG91Y2hQb2ludCgidGFyZ2V0VG91Y2hlcyIs
IDAsIDEwLCAxMCwgMCk7CiAKICAgICBldmVudFNlbmRlci51cGRhdGVUb3VjaFBvaW50KDAsIDIw
LCAxNSk7CiAgICAgZXZlbnRTZW5kZXIuc2V0VG91Y2hNb2RpZmllcigic2hpZnQiLCB0cnVlKTsK
QEAgLTY1LDYgKzY3LDcgQEAgZnVuY3Rpb24gc2luZ2xlVG91Y2hTZXF1ZW5jZSgpCiAgICAgZXZl
bnRTZW5kZXIuc2V0VG91Y2hNb2RpZmllcigic2hpZnQiLCBmYWxzZSk7CiAgICAgZXZlbnRTZW5k
ZXIuc2V0VG91Y2hNb2RpZmllcigiYWx0IiwgZmFsc2UpOwogCisgICAgZXZlbnRTZW5kZXIucmVs
ZWFzZVRvdWNoUG9pbnQoMCk7CiAgICAgZXZlbnRTZW5kZXIudG91Y2hFbmQoKTsKIAogICAgIHZl
cmlmeVRvdWNoRXZlbnQoInRvdWNoZW5kIiwgMCwgMSwgMCk7CkBAIC03NywzOCArODAsMzcgQEAg
ZnVuY3Rpb24gbXVsdGlUb3VjaFNlcXVlbmNlKCkKIHsKICAgICBkZWJ1ZygibXVsdGkgdG91Y2gg
c2VxdWVuY2UiKTsKIAorICAgIGRlYnVnKCJUd28gdG91Y2hwb2ludHMgcHJlc3NlZCIpOwogICAg
IGV2ZW50U2VuZGVyLmFkZFRvdWNoUG9pbnQoMTAsIDEwKTsKLSAgICBldmVudFNlbmRlci50b3Vj
aFN0YXJ0KCk7Ci0KLSAgICB2ZXJpZnlUb3VjaEV2ZW50KCJ0b3VjaHN0YXJ0IiwgMSwgMSwgMSk7
Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXN0RXZlbnQudG91Y2hlc1swXS50YXJnZXQu
aWQiLCAidG91Y2h0YXJnZXQiKTsKLSAgICB2ZXJpZnlUb3VjaFBvaW50KCJ0b3VjaGVzIiwgMCwg
MTAsIDEwLCAwKTsKLQogICAgIGV2ZW50U2VuZGVyLmFkZFRvdWNoUG9pbnQoMjAsIDMwKTsKLSAg
ICBldmVudFNlbmRlci50b3VjaE1vdmUoKTsKLQotICAgIHZlcmlmeVRvdWNoRXZlbnQoInRvdWNo
bW92ZSIsIDIsIDEsIDIpOworICAgIGV2ZW50U2VuZGVyLnRvdWNoU3RhcnQoKTsKKyAgICB2ZXJp
ZnlUb3VjaEV2ZW50KCJ0b3VjaHN0YXJ0IiwgMiwgMiwgMik7CiAgICAgdmVyaWZ5VG91Y2hQb2lu
dCgidG91Y2hlcyIsIDAsIDEwLCAxMCwgMCk7CiAgICAgdmVyaWZ5VG91Y2hQb2ludCgidG91Y2hl
cyIsIDEsIDIwLCAzMCwgMSk7Ci0gICAgdmVyaWZ5VG91Y2hQb2ludCgiY2hhbmdlZFRvdWNoZXMi
LCAwLCAyMCwgMzAsIDEpOworICAgIHZlcmlmeVRvdWNoUG9pbnQoImNoYW5nZWRUb3VjaGVzIiwg
MCwgMTAsIDEwLCAwKTsKKyAgICB2ZXJpZnlUb3VjaFBvaW50KCJjaGFuZ2VkVG91Y2hlcyIsIDEs
IDIwLCAzMCwgMSk7CisgICAgdmVyaWZ5VG91Y2hQb2ludCgidGFyZ2V0VG91Y2hlcyIsIDAsIDEw
LCAxMCwgMCk7CisgICAgdmVyaWZ5VG91Y2hQb2ludCgidGFyZ2V0VG91Y2hlcyIsIDEsIDIwLCAz
MCwgMSk7CiAKKyAgICBkZWJ1ZygiRmlyc3QgdG91Y2hwb2ludCBtb3ZlZCIpOwogICAgIGV2ZW50
U2VuZGVyLnVwZGF0ZVRvdWNoUG9pbnQoMCwgMTUsIDE1KTsKICAgICBldmVudFNlbmRlci50b3Vj
aE1vdmUoKTsKLQogICAgIHZlcmlmeVRvdWNoRXZlbnQoInRvdWNobW92ZSIsIDIsIDEsIDIpOwog
ICAgIHZlcmlmeVRvdWNoUG9pbnQoInRvdWNoZXMiLCAwLCAxNSwgMTUsIDApOwogICAgIHZlcmlm
eVRvdWNoUG9pbnQoImNoYW5nZWRUb3VjaGVzIiwgMCwgMTUsIDE1LCAwKTsKICAgICB2ZXJpZnlU
b3VjaFBvaW50KCJ0b3VjaGVzIiwgMSwgMjAsIDMwLCAxKTsKIAorICAgIGRlYnVnKCJGaXJzdCB0
b3VjaHBvaW50IGlzIHJlbGVhc2VkIik7CiAgICAgZXZlbnRTZW5kZXIucmVsZWFzZVRvdWNoUG9p
bnQoMCk7Ci0gICAgZXZlbnRTZW5kZXIudG91Y2hNb3ZlKCk7Ci0KLSAgICB2ZXJpZnlUb3VjaEV2
ZW50KCJ0b3VjaG1vdmUiLCAxLCAxLCAxKTsKKyAgICBldmVudFNlbmRlci50b3VjaEVuZCgpOwor
ICAgIHZlcmlmeVRvdWNoRXZlbnQoInRvdWNoZW5kIiwgMSwgMSwgMSk7CiAgICAgdmVyaWZ5VG91
Y2hQb2ludCgidG91Y2hlcyIsIDAsIDIwLCAzMCwgMSk7CiAgICAgdmVyaWZ5VG91Y2hQb2ludCgi
Y2hhbmdlZFRvdWNoZXMiLCAwLCAxNSwgMTUsIDApOworICAgIHZlcmlmeVRvdWNoUG9pbnQoInRh
cmdldFRvdWNoZXMiLCAwLCAyMCwgMzAsIDEpOwogCisgICAgZGVidWcoIkxhc3QgcmVtYWluaW5n
IHRvdWNocG9pbnQgaXMgcmVsZWFzZWQiKTsKKyAgICBldmVudFNlbmRlci5yZWxlYXNlVG91Y2hQ
b2ludCgwKTsKICAgICBldmVudFNlbmRlci50b3VjaEVuZCgpOwotCiAgICAgdmVyaWZ5VG91Y2hF
dmVudCgidG91Y2hlbmQiLCAwLCAxLCAwKTsKICAgICB2ZXJpZnlUb3VjaFBvaW50KCJjaGFuZ2Vk
VG91Y2hlcyIsIDAsIDIwLCAzMCwgMSk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDZjOGY3ZDIuLjMyMWZjMjAgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMDktMTItMjIgIEtpbSBHcsO2bmhvbG0gIDxraW0uZ3JvbmhvbG1Abm9tb3Zvay5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV3Jvbmcg
c3RhdGUgYW5kIFRvdWNoTGlzdHMgaW4gVG91Y2hFdmVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyODc4CisKKyAgICAgICAgVG91Y2ggZXZlbnRz
IGNoYW5nZWQgdG8gbWF0Y2ggdGhlIEFQSSBhbmQgc2VtYW50aWNzIG9mIGlQaG9uZSBhbmQKKyAg
ICAgICAgQW5kcm9pZC4gRWFjaCBuZXcgdG91Y2ggcG9pbnQgcHJlc3MgZGlzcGF0Y2hlcyBhIHRv
dWNoc3RhcnQgZXZlbnQgd2l0aAorICAgICAgICB0aGUgcHJlc3NlZCB0b3VjaCBwb2ludChzKSBp
biB0aGUgY2hhbmdlZFRvdWNoZXMgbGlzdCwgYW5kIGEgcmVsZWFzZQorICAgICAgICBkaXNwYXRj
aGVzIGEgdG91Y2hlbmQgZXZlbnQgd2l0aCB0aGUgcmVsZWFzZWQgdG91Y2ggcG9pbnQocykgaW4K
KyAgICAgICAgY2hhbmdlZFRvdWNoZXMuIE1vdmVkIHBvaW50cyBkaXNwYXRjaCBhIHRvdWNobW92
ZSBldmVudCwgd2l0aCB0aGUgbW92ZWQKKyAgICAgICAgcG9pbnRzIGluIGNoYW5nZWRUb3VjaGVz
LiBPbGQgYmVoYXZpb3VyIGVtaXR0ZWQgb25seSBvbmUgdG91Y2hzdGFydCB3aGVuCisgICAgICAg
IHRoZSBmaXJzdCBwb2ludCB3YXMgcHJlc3NlZCBhbmQgb25lIHRvdWNoZW5kIHdoZW4gdGhlIGxh
c3QgcG9pbnQgd2FzCisgICAgICAgIHJlbGVhc2VkLCBhbmQgYW55IGV2ZW50cyBpbiBiZXR3ZWVu
IHdlcmUgdG91Y2htb3Zlcy4gTmV3IHByZXNzZXMgb3IKKyAgICAgICAgcmVsZWFzZXMgY291bGQg
b25seSBiZSBkZXRlY3RlZCBieSBjb21wYXJpbmcgdGhlIGxpc3RzIHRvdWNoZXMgYW5kCisgICAg
ICAgIGNoYW5nZWRUb3VjaGVzLgorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50KToKKyAgICAg
ICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOgorCiAyMDA5LTEyLTIyICBLd2FuZyBZdWwgU2VvICA8
c2t5dWxAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDE0ODE1NDkuLjc0ZmM1NmUgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCkBAIC0yNTQ1LDE3ICsyNTQ1LDIwIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVU
b3VjaEV2ZW50KGNvbnN0IFBsYXRmb3JtVG91Y2hFdmVudCYgZXZlbnQpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIFJlZlB0cjxUb3VjaExpc3Q+IHRvdWNoZXMgPSBUb3VjaExpc3Q6OmNy
ZWF0ZSgpOwotICAgIFJlZlB0cjxUb3VjaExpc3Q+IGNoYW5nZWRUb3VjaGVzID0gVG91Y2hMaXN0
OjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8VG91Y2hMaXN0PiBwcmVzc2VkVG91Y2hlcyA9IFRvdWNo
TGlzdDo6Y3JlYXRlKCk7CisgICAgUmVmUHRyPFRvdWNoTGlzdD4gcmVsZWFzZWRUb3VjaGVzID0g
VG91Y2hMaXN0OjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8VG91Y2hMaXN0PiBtb3ZlZFRvdWNoZXMg
PSBUb3VjaExpc3Q6OmNyZWF0ZSgpOwogICAgIFJlZlB0cjxUb3VjaExpc3Q+IHRhcmdldFRvdWNo
ZXMgPSBUb3VjaExpc3Q6OmNyZWF0ZSgpOwogCiAgICAgY29uc3QgVmVjdG9yPFBsYXRmb3JtVG91
Y2hQb2ludD4mIHBvaW50cyA9IGV2ZW50LnRvdWNoUG9pbnRzKCk7CisgICAgQXRvbWljU3RyaW5n
KiBldmVudE5hbWUgPSAwOworCiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwb2ludHMuc2l6ZSgp
OyArK2kpIHsKICAgICAgICAgY29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50JiBwb2ludCA9IHBvaW50
c1tpXTsKLQogICAgICAgICBJbnRQb2ludCBmcmFtZVBvaW50ID0gZG9jdW1lbnRQb2ludEZvcldp
bmRvd1BvaW50KG1fZnJhbWUsIHBvaW50LnBvcygpKTsKICAgICAgICAgSGl0VGVzdFJlc3VsdCBy
ZXN1bHQgPSBoaXRUZXN0UmVzdWx0QXRQb2ludChmcmFtZVBvaW50LCAvKmFsbG93U2hhZG93Q29u
dGVudCovIGZhbHNlKTsKLQogICAgICAgICBOb2RlKiB0YXJnZXQgPSByZXN1bHQuaW5uZXJOb2Rl
KCk7CisKICAgICAgICAgLy8gVG91Y2ggZXZlbnRzIHNob3VsZCBub3QgZ28gdG8gdGV4dCBub2Rl
cwogICAgICAgICBpZiAodGFyZ2V0ICYmIHRhcmdldC0+aXNUZXh0Tm9kZSgpKQogICAgICAgICAg
ICAgdGFyZ2V0ID0gdGFyZ2V0LT5wYXJlbnROb2RlKCk7CkBAIC0yNTcwLDQ5ICsyNTczLDc3IEBA
IGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50KGNvbnN0IFBsYXRmb3JtVG91Y2hF
dmVudCYgZXZlbnQpCiAgICAgICAgICAgICBtX2ZpcnN0VG91Y2hQYWdlUG9zID0gZnJhbWVQb2lu
dDsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChwb2ludC5zdGF0ZSgpICE9IFBsYXRmb3JtVG91
Y2hQb2ludDo6VG91Y2hSZWxlYXNlZCkgewotICAgICAgICAgICAgdG91Y2hlcy0+YXBwZW5kKHRv
dWNoKTsKLQotICAgICAgICAgICAgaWYgKG1fdG91Y2hFdmVudFRhcmdldCA9PSB0YXJnZXQpCi0g
ICAgICAgICAgICAgICB0YXJnZXRUb3VjaGVzLT5hcHBlbmQodG91Y2gpOworICAgICAgICBpZiAo
cG9pbnQuc3RhdGUoKSA9PSBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUmVsZWFzZWQpCisgICAg
ICAgICAgICByZWxlYXNlZFRvdWNoZXMtPmFwcGVuZCh0b3VjaCk7CisgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgaWYgKHBvaW50LnN0YXRlKCkgPT0gUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3Vj
aFByZXNzZWQpCisgICAgICAgICAgICAgICAgcHJlc3NlZFRvdWNoZXMtPmFwcGVuZCh0b3VjaCk7
CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICB0b3VjaGVzLT5hcHBlbmQodG91
Y2gpOworICAgICAgICAgICAgICAgIGlmIChtX3RvdWNoRXZlbnRUYXJnZXQgPT0gdGFyZ2V0KQor
ICAgICAgICAgICAgICAgICAgICB0YXJnZXRUb3VjaGVzLT5hcHBlbmQodG91Y2gpOworICAgICAg
ICAgICAgICAgIGlmIChwb2ludC5zdGF0ZSgpID09IFBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hN
b3ZlZCkKKyAgICAgICAgICAgICAgICAgICAgbW92ZWRUb3VjaGVzLT5hcHBlbmQodG91Y2gpOwor
ICAgICAgICAgICAgfQogICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHBvaW50LnN0YXRlKCkgIT0g
UGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFN0YXRpb25hcnkpCi0gICAgICAgICAgICBjaGFuZ2Vk
VG91Y2hlcy0+YXBwZW5kKHRvdWNoKTsKLSAgICB9Ci0KLSAgICBBdG9taWNTdHJpbmcqIGV2ZW50
TmFtZSA9IDA7Ci0gICAgc3dpdGNoIChldmVudC50eXBlKCkpIHsKLSAgICBjYXNlIFRvdWNoU3Rh
cnQ6Ci0gICAgICAgIGV2ZW50TmFtZSA9ICZldmVudE5hbWVzKCkudG91Y2hzdGFydEV2ZW50Owot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIFRvdWNoTW92ZToKLSAgICAgICAgZXZlbnROYW1lID0g
JmV2ZW50TmFtZXMoKS50b3VjaG1vdmVFdmVudDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBU
b3VjaEVuZDoKLSAgICAgICAgZXZlbnROYW1lID0gJmV2ZW50TmFtZXMoKS50b3VjaGVuZEV2ZW50
OwotICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBpZiAoIW1fdG91Y2hFdmVudFRhcmdldCkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgUmVmUHRyPFRvdWNoRXZlbnQ+IGV2ID0gVG91
Y2hFdmVudDo6Y3JlYXRlKHRvdWNoZXMuZ2V0KCksIHRhcmdldFRvdWNoZXMuZ2V0KCksIGNoYW5n
ZWRUb3VjaGVzLmdldCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqZXZlbnROYW1lLCBtX3RvdWNoRXZlbnRUYXJnZXQtPmRvY3VtZW50KCktPmRlZmF1
bHRWaWV3KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1fZmlyc3RUb3VjaFNjcmVlblBvcy54KCksIG1fZmlyc3RUb3VjaFNjcmVlblBvcy55KCksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZmlyc3RUb3Vj
aFBhZ2VQb3MueCgpLCBtX2ZpcnN0VG91Y2hQYWdlUG9zLnkoKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuY3RybEtleSgpLCBldmVudC5hbHRL
ZXkoKSwgZXZlbnQuc2hpZnRLZXkoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZXZlbnQubWV0YUtleSgpKTsKKyAgICBib29sIGRlZmF1bHRQcmV2ZW50
ZWQgPSBmYWxzZTsKIAotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIG1fdG91Y2hFdmVu
dFRhcmdldC0+ZGlzcGF0Y2hFdmVudChldi5nZXQoKSwgZWMpOworICAgIGlmIChyZWxlYXNlZFRv
dWNoZXMtPmxlbmd0aCgpID4gMCkgeworICAgICAgICBldmVudE5hbWUgPSAmZXZlbnROYW1lcygp
LnRvdWNoZW5kRXZlbnQ7CisgICAgICAgIFJlZlB0cjxUb3VjaEV2ZW50PiBlbmRFdiA9IAorICAg
ICAgICAgICAgVG91Y2hFdmVudDo6Y3JlYXRlKHRvdWNoZXMuZ2V0KCksIHRhcmdldFRvdWNoZXMu
Z2V0KCksIHJlbGVhc2VkVG91Y2hlcy5nZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICpldmVudE5hbWUsIG1fdG91Y2hFdmVudFRhcmdldC0+
ZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fZmlyc3RUb3VjaFNjcmVlblBvcy54KCksIG1fZmlyc3RU
b3VjaFNjcmVlblBvcy55KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtX2ZpcnN0VG91Y2hQYWdlUG9zLngoKSwgbV9maXJzdFRvdWNoUGFnZVBv
cy55KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBldmVudC5jdHJsS2V5KCksIGV2ZW50LmFsdEtleSgpLCBldmVudC5zaGlmdEtleSgpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQubWV0
YUtleSgpKTsKKyAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgICAgIG1fdG91Y2hF
dmVudFRhcmdldC0+ZGlzcGF0Y2hFdmVudChlbmRFdi5nZXQoKSwgZWMpOworICAgICAgICBkZWZh
dWx0UHJldmVudGVkID0gZW5kRXYtPmRlZmF1bHRQcmV2ZW50ZWQoKTsKKyAgICB9CisgICAgaWYg
KHByZXNzZWRUb3VjaGVzLT5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgLy8gQWRkIHByZXNzZWQg
dG91Y2hwb2ludHMgdG8gdG91Y2hlcyBhbmQgdGFyZ2V0VG91Y2hlcworICAgICAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IHByZXNzZWRUb3VjaGVzLT5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAg
ICB0b3VjaGVzLT5hcHBlbmQocHJlc3NlZFRvdWNoZXMtPml0ZW0oaSkpOworICAgICAgICAgICAg
aWYgKG1fdG91Y2hFdmVudFRhcmdldCA9PSBwcmVzc2VkVG91Y2hlcy0+aXRlbShpKS0+dGFyZ2V0
KCkpCisgICAgICAgICAgICAgICAgdGFyZ2V0VG91Y2hlcy0+YXBwZW5kKHByZXNzZWRUb3VjaGVz
LT5pdGVtKGkpKTsKKyAgICAgICAgfQorCisgICAgICAgIGV2ZW50TmFtZSA9ICZldmVudE5hbWVz
KCkudG91Y2hzdGFydEV2ZW50OworICAgICAgICBSZWZQdHI8VG91Y2hFdmVudD4gc3RhcnRFdiA9
IAorICAgICAgICAgICAgVG91Y2hFdmVudDo6Y3JlYXRlKHRvdWNoZXMuZ2V0KCksIHRhcmdldFRv
dWNoZXMuZ2V0KCksIHByZXNzZWRUb3VjaGVzLmdldCgpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmV2ZW50TmFtZSwgbV90b3VjaEV2ZW50VGFy
Z2V0LT5kb2N1bWVudCgpLT5kZWZhdWx0VmlldygpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9maXJzdFRvdWNoU2NyZWVuUG9zLngoKSwgbV9m
aXJzdFRvdWNoU2NyZWVuUG9zLnkoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fZmlyc3RUb3VjaFBhZ2VQb3MueCgpLCBtX2ZpcnN0VG91Y2hQ
YWdlUG9zLnkoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGV2ZW50LmN0cmxLZXkoKSwgZXZlbnQuYWx0S2V5KCksIGV2ZW50LnNoaWZ0S2V5KCks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVu
dC5tZXRhS2V5KCkpOworICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICAgICAgbV90
b3VjaEV2ZW50VGFyZ2V0LT5kaXNwYXRjaEV2ZW50KHN0YXJ0RXYuZ2V0KCksIGVjKTsKKyAgICAg
ICAgZGVmYXVsdFByZXZlbnRlZCB8PSBzdGFydEV2LT5kZWZhdWx0UHJldmVudGVkKCk7CisgICAg
fQorICAgIGlmIChtb3ZlZFRvdWNoZXMtPmxlbmd0aCgpID4gMCkgeworICAgICAgICBldmVudE5h
bWUgPSAmZXZlbnROYW1lcygpLnRvdWNobW92ZUV2ZW50OworICAgICAgICBSZWZQdHI8VG91Y2hF
dmVudD4gbW92ZUV2ID0gCisgICAgICAgICAgICBUb3VjaEV2ZW50OjpjcmVhdGUodG91Y2hlcy5n
ZXQoKSwgdGFyZ2V0VG91Y2hlcy5nZXQoKSwgbW92ZWRUb3VjaGVzLmdldCgpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmV2ZW50TmFtZSwgbV90
b3VjaEV2ZW50VGFyZ2V0LT5kb2N1bWVudCgpLT5kZWZhdWx0VmlldygpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9maXJzdFRvdWNoU2NyZWVu
UG9zLngoKSwgbV9maXJzdFRvdWNoU2NyZWVuUG9zLnkoKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZmlyc3RUb3VjaFBhZ2VQb3MueCgpLCBt
X2ZpcnN0VG91Y2hQYWdlUG9zLnkoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGV2ZW50LmN0cmxLZXkoKSwgZXZlbnQuYWx0S2V5KCksIGV2ZW50
LnNoaWZ0S2V5KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBldmVudC5tZXRhS2V5KCkpOworICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
KyAgICAgICAgbV90b3VjaEV2ZW50VGFyZ2V0LT5kaXNwYXRjaEV2ZW50KG1vdmVFdi5nZXQoKSwg
ZWMpOworICAgICAgICBkZWZhdWx0UHJldmVudGVkIHw9IG1vdmVFdi0+ZGVmYXVsdFByZXZlbnRl
ZCgpOworICAgIH0KIAogICAgIGlmIChldmVudC50eXBlKCkgPT0gVG91Y2hFbmQpCiAgICAgICAg
IG1fdG91Y2hFdmVudFRhcmdldCA9IDA7CiAKLSAgICBtX3ByZXZpb3VzVG91Y2hFdmVudCA9IGV2
OwotCi0gICAgcmV0dXJuIGV2LT5kZWZhdWx0UHJldmVudGVkKCk7CisgICAgcmV0dXJuIGRlZmF1
bHRQcmV2ZW50ZWQ7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5oIGIvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IDUzMTMzZTQuLjZh
MTJlNzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9XZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKQEAgLTQwOSw3ICs0MDksNiBAQCBwcml2YXRlOgogICAg
IFJlZlB0cjxOb2RlPiBtX3RvdWNoRXZlbnRUYXJnZXQ7CiAgICAgSW50UG9pbnQgbV9maXJzdFRv
dWNoU2NyZWVuUG9zOwogICAgIEludFBvaW50IG1fZmlyc3RUb3VjaFBhZ2VQb3M7Ci0gICAgUmVm
UHRyPFRvdWNoRXZlbnQ+IG1fcHJldmlvdXNUb3VjaEV2ZW50OwogI2VuZGlmCiB9OwogCmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5k
ZXggMzY3OWQyNC4uOWU3ZmFlYyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDA5LTEyLTIyICBL
aW0gR3LDtm5ob2xtICA8a2ltLmdyb25ob2xtQG5vbW92b2suY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdyb25nIHN0YXRlIGFuZCBUb3VjaExp
c3RzIGluIFRvdWNoRXZlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zMjg3OAorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvRXZlbnRTZW5k
ZXJRdC5jcHA6CisgICAgICAgIChFdmVudFNlbmRlcjo6dG91Y2hTdGFydCk6CisgICAgICAgIChF
dmVudFNlbmRlcjo6dG91Y2hFbmQpOgorICAgICAgICAoRXZlbnRTZW5kZXI6OmNsZWFyVG91Y2hQ
b2ludHMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0V2ZW50U2VuZGVyUXQuaDoKKwog
MjAwOS0xMi0yMiAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAK
ICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgpkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRXZlbnRTZW5kZXJRdC5jcHAgYi9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0LmNwcAppbmRleCBkNGY5MzgzLi5m
MzI0ODAwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9FdmVudFNl
bmRlclF0LmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9FdmVudFNlbmRl
clF0LmNwcApAQCAtMzAxLDcgKzMwMSwxMSBAQCB2b2lkIEV2ZW50U2VuZGVyOjpzZXRUb3VjaE1v
ZGlmaWVyKGNvbnN0IFFTdHJpbmcgJm1vZGlmaWVyLCBib29sIGVuYWJsZSkKIHZvaWQgRXZlbnRT
ZW5kZXI6OnRvdWNoU3RhcnQoKQogewogI2lmIFFUX1ZFUlNJT04gPj0gUVRfVkVSU0lPTl9DSEVD
Syg0LCA2LCAwKQotICAgIHNlbmRUb3VjaEV2ZW50KFFFdmVudDo6VG91Y2hCZWdpbik7CisgICAg
aWYgKCFtX3RvdWNoQWN0aXZlKSB7CisgICAgICAgIHNlbmRUb3VjaEV2ZW50KFFFdmVudDo6VG91
Y2hCZWdpbik7CisgICAgICAgIG1fdG91Y2hBY3RpdmUgPSB0cnVlOworICAgIH0gZWxzZQorICAg
ICAgICBzZW5kVG91Y2hFdmVudChRRXZlbnQ6OlRvdWNoVXBkYXRlKTsKICNlbmRpZgogfQogCkBA
IC0zMTYsOCArMzIwLDEyIEBAIHZvaWQgRXZlbnRTZW5kZXI6OnRvdWNoRW5kKCkKIHsKICNpZiBR
VF9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hFQ0soNCwgNiwgMCkKICAgICBmb3IgKGludCBpID0g
MDsgaSA8IG1fdG91Y2hQb2ludHMuY291bnQoKTsgKytpKQotICAgICAgICBtX3RvdWNoUG9pbnRz
W2ldLnNldFN0YXRlKFF0OjpUb3VjaFBvaW50UmVsZWFzZWQpOworICAgICAgICBpZiAobV90b3Vj
aFBvaW50c1tpXS5zdGF0ZSgpICE9IFF0OjpUb3VjaFBvaW50UmVsZWFzZWQpIHsKKyAgICAgICAg
ICAgIHNlbmRUb3VjaEV2ZW50KFFFdmVudDo6VG91Y2hVcGRhdGUpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CiAgICAgc2VuZFRvdWNoRXZlbnQoUUV2ZW50OjpUb3VjaEVuZCk7Cisg
ICAgbV90b3VjaEFjdGl2ZSA9IGZhbHNlOwogI2VuZGlmCiB9CiAKQEAgLTMyNiw2ICszMzQsNyBA
QCB2b2lkIEV2ZW50U2VuZGVyOjpjbGVhclRvdWNoUG9pbnRzKCkKICNpZiBRVF9WRVJTSU9OID49
IFFUX1ZFUlNJT05fQ0hFQ0soNCwgNiwgMCkKICAgICBtX3RvdWNoUG9pbnRzLmNsZWFyKCk7CiAg
ICAgbV90b3VjaE1vZGlmaWVycyA9IFF0OjpLZXlib2FyZE1vZGlmaWVycygpOworICAgIG1fdG91
Y2hBY3RpdmUgPSBmYWxzZTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0LmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9xdC9FdmVudFNlbmRlclF0LmgKaW5kZXggOGU5NDY3YS4uMjRlZmU4ZiAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRXZlbnRTZW5kZXJRdC5oCisrKyBiL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0V2ZW50U2VuZGVyUXQuaApAQCAtNzcsNiArNzcs
NyBAQCBwcml2YXRlOgogI2lmIFFUX1ZFUlNJT04gPj0gUVRfVkVSU0lPTl9DSEVDSyg0LCA2LCAw
KQogICAgIFFMaXN0PFFUb3VjaEV2ZW50OjpUb3VjaFBvaW50PiBtX3RvdWNoUG9pbnRzOwogICAg
IFF0OjpLZXlib2FyZE1vZGlmaWVycyBtX3RvdWNoTW9kaWZpZXJzOworICAgIGJvb2wgbV90b3Vj
aEFjdGl2ZTsKICNlbmRpZgogfTsKICNlbmRpZiAvLyAgRXZlbnRTZW5kZXJRdF9oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>