<?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>14766</bug_id>
          
          <creation_ts>2007-07-25 15:07:53 -0700</creation_ts>
          <short_desc>S60 browser finditem should be able to find VoIP address</short_desc>
          <delta_ts>2011-03-21 11:53:35 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>S60 Hardware</rep_platform>
          <op_sys>S60 3rd edition</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="George Guo">george.guo</reporter>
          <assigned_to name="George Guo">george.guo</assigned_to>
          <cc>george.guo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>3721</commentid>
    <comment_count>0</comment_count>
    <who name="George Guo">george.guo</who>
    <bug_when>2007-07-25 15:07:53 -0700</bug_when>
    <thetext>According to Find Item UI spec, browser finditem structure should be as follows:
		Phone number
		VoIP address
		E-mail address
		URL address

Browser overrides initialization of Find submenu and does not add option for VoIP address there. 

Refer to JPKN-6X98ZB</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3675</commentid>
    <comment_count>1</comment_count>
      <attachid>15691</attachid>
    <who name="George Guo">george.guo</who>
    <bug_when>2007-07-26 07:51:31 -0700</bug_when>
    <thetext>Created attachment 15691
patch for the solution</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3606</commentid>
    <comment_count>2</comment_count>
      <attachid>15691</attachid>
    <who name="Sachin Padma">Sachin.Padma</who>
    <bug_when>2007-07-27 08:13:26 -0700</bug_when>
    <thetext>Comment on attachment 15691
patch for the solution

Please check the ifdef flags. They are not placed correctly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3445</commentid>
    <comment_count>3</comment_count>
      <attachid>15743</attachid>
    <who name="George Guo">george.guo</who>
    <bug_when>2007-07-30 06:35:40 -0700</bug_when>
    <thetext>Created attachment 15743
New patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3412</commentid>
    <comment_count>4</comment_count>
      <attachid>15751</attachid>
    <who name="George Guo">george.guo</who>
    <bug_when>2007-07-30 14:54:04 -0700</bug_when>
    <thetext>Created attachment 15751
patch without ifdef</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3246</commentid>
    <comment_count>5</comment_count>
      <attachid>15751</attachid>
    <who name="Sachin Padma">Sachin.Padma</who>
    <bug_when>2007-07-31 14:01:00 -0700</bug_when>
    <thetext>Comment on attachment 15751
patch without ifdef 

in normal scrolling mode numbers should be found. Please check formatting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3252</commentid>
    <comment_count>6</comment_count>
      <attachid>15765</attachid>
    <who name="George Guo">george.guo</who>
    <bug_when>2007-07-31 14:49:51 -0700</bug_when>
    <thetext>Created attachment 15765
New patch 

Did the test the scrolling is still working well. Scrolling is using CheckSmartTextEntry and FindItem is using FindNextSmartLink. They won&apos;t interfere each other. 

Fixed some historical format issues in WebKitView.cpp as well.

Please review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2344</commentid>
    <comment_count>7</comment_count>
      <attachid>15960</attachid>
    <who name="George Guo">george.guo</who>
    <bug_when>2007-08-14 09:05:32 -0700</bug_when>
    <thetext>Created attachment 15960
CR is in defined status, new patch needed

CR 409-415 is in defined status. Patch needed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1360</commentid>
    <comment_count>8</comment_count>
      <attachid>15960</attachid>
    <who name="Sachin Padma">Sachin.Padma</who>
    <bug_when>2007-08-27 14:05:08 -0700</bug_when>
    <thetext>Comment on attachment 15960
CR is in defined status, new patch needed

voip call command is not in browser control commands. Check formatting issues. There are two if statements in webkitcursor.cpp that can be combined when assigning cursor image.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866</commentid>
    <comment_count>9</comment_count>
      <attachid>16210</attachid>
    <who name="George Guo">george.guo</who>
    <bug_when>2007-09-06 13:43:57 -0700</bug_when>
    <thetext>Created attachment 16210
New patch after changes based on the previous review

The following changes were made: 
(1) Voip call command was enabled
(2) Two if statements were combined in webkitcursor.cpp 
(3) Format were checked. 
Furthermore the belowing is the test results
* Find phone number still work				pass
* Find Keyword still work				pass
* Find Email address still work 			pass
* Find IP address can find email and phone		pass
* Find VoIP can find 3 digits from 123ok		pass 
* Find VoIP can go back to the beginning at the end	pass 
* Turn on the smart text recoginition work		pass
* After text recogniztion on, do the above tests	pass 



voip call command is not in browser control commands. Check formatting issues.
There are two if statements in webkitcursor.cpp that can be combined when
assigning cursor image.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76752</commentid>
    <comment_count>10</comment_count>
    <who name="Bradley Morrison">bradley.morrison</who>
    <bug_when>2008-04-09 11:31:48 -0700</bug_when>
    <thetext>Bulk update of s60 bugs - tagging and closing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76849</commentid>
    <comment_count>11</comment_count>
    <who name="Bradley Morrison">bradley.morrison</who>
    <bug_when>2008-04-09 11:39:10 -0700</bug_when>
    <thetext>Bulk closing of all s60 platform bugs. 

Sorry for the noise!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76852</commentid>
    <comment_count>12</comment_count>
    <who name="Bradley Morrison">bradley.morrison</who>
    <bug_when>2008-04-09 11:39:24 -0700</bug_when>
    <thetext>Bulk closing of all s60 platform bugs. 

Sorry for the noise!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370775</commentid>
    <comment_count>13</comment_count>
    <who name="Joel Parks">joel.parks</who>
    <bug_when>2011-03-21 11:53:35 -0700</bug_when>
    <thetext>re-purposing InTSW keyword for use by QtWebkit team</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15691</attachid>
            <date>2007-07-26 07:51:31 -0700</date>
            <delta_ts>2007-07-30 06:35:40 -0700</delta_ts>
            <desc>patch for the solution</desc>
            <filename>CR409-415.patch</filename>
            <type>text/plain</type>
            <size>19525</size>
            <attacher name="George Guo">george.guo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDI0NjQxKQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDExIEBADQorbmFndW8sIHJldmlld2VkIGJ5IDxyZXZpZXdlcj4NCisgREVT
QzogYWRkIG9uZSBmb2N1c2VkIHR5cGUgZm9yIFNtYXJ0TGlua1ZvaXAgDQorIGh0dHA6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzY2DQorDQorICAgICAgICBXQVJOSU5HOiBO
TyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQNCisNCisgICAgICAgICogYnJpZGdlL1dlYkNv
cmVCcmlkZ2UuaDoNCisNCiAyMDA3LTA3LTIwIHZtYWxhaXlhLCA8dmlrcmFtLm1hbGFpeWFAbm9r
aWEuY29tPg0KICAgICAgICAgUmV2aWV3ZWQgYnkgWW9uZ2p1bg0KICAgICAgICAgREVTQzogSlBL
Ti02WjM4RTUgLSBCcm93c2VyIGNyYXNoZXMgYW5kIHByb2JsZW1zIHdpdGggbWVtb3J5IGxvdyBu
b3RlLg0KSW5kZXg6IFdlYkNvcmUvYnJpZGdlL1dlYkNvcmVCcmlkZ2UuaA0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
LS0tIFdlYkNvcmUvYnJpZGdlL1dlYkNvcmVCcmlkZ2UuaAkocmV2aXNpb24gMjQ2MzMpDQorKysg
V2ViQ29yZS9icmlkZ2UvV2ViQ29yZUJyaWRnZS5oCSh3b3JraW5nIGNvcHkpDQpAQCAtMTI3LDgg
KzEyNywxMyBAQCB0eXBlZGVmIGVudW0NCiAgICAgRVdlYkNvcmVFbGVtZW50U2Nyb2xsQmFyLA0K
ICAgICBFV2ViQ29yZUVsZW1lbnRTbWFydExpbmtUZWwsDQogICAgIEVXZWJDb3JlRWxlbWVudFNt
YXJ0TGlua0VtYWlsLA0KKyNpZmRlZiBSRF81MF9CUk9XU0VSDQorICAgIEVXZWJDb3JlRWxlbWVu
dEJyb2tlbkltYWdlLA0KKyAgICBFV2ViQ29yZUVsZW1lbnRTbWFydExpbmtWb2lwDQorI2Vsc2UN
CiAgICAgRVdlYkNvcmVFbGVtZW50QnJva2VuSW1hZ2UNCi0gIH0gVFdlYkNvcmVGb2N1c2VkRWxl
bWVudFR5cGU7DQorI2VuZGlmIA0KKyAgfSBUV2ViQ29yZUZvY3VzZWRFbGVtZW50VHlwZTsgIA0K
IA0KIHR5cGVkZWYgZW51bQ0KICAgICB7DQpJbmRleDogV2ViS2l0L0NoYW5nZUxvZw0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KLS0tIFdlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NjQxKQ0KKysrIFdlYktpdC9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkNCkBAIC0xLDMgKzEsMjcgQEANCituYWd1bywgcmV2aWV3
ZWQgYnkgPHJldmlld2VyPg0KKyBERVNDOiBbUzYwXSBBY2NvcmRpbmcgdG8gRmluZCBJdGVtIFVJ
IHNwZWMsIGJyb3dzZXIgZmluZGl0ZW0gc2hvdWxkIGhhdmUgZmluZCAiVm9JUCBhZGRyZXNzIiAN
CisgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NjYNCisNCisgICAg
ICAgICogQnJvd3NlckNvbnRyb2wvaW5jL0JyQ3RsRGVmcy5oOg0KKyAgICAgICAgKFRCckN0bERl
ZnM6Oik6DQorICAgICAgICAqIEJyb3dzZXJDb250cm9sL3NyYy9CckN0bC5jcHA6DQorICAgICAg
ICAoQ0JyQ3RsOjpIYW5kbGVDb21tYW5kTCk6DQorICAgICAgICAqIEJyb3dzZXJWaWV3L2luYy9T
bWFydExpbmtIYW5kbGVyLmg6DQorICAgICAgICAqIEJyb3dzZXJWaWV3L2luYy9TbWFydExpbmtN
YXAuaDoNCisgICAgICAgICogQnJvd3NlclZpZXcvaW5jL1dlYktpdFZpZXcuaDoNCisgICAgICAg
ICogQnJvd3NlclZpZXcvc3JjL1NtYXJ0TGlua0hhbmRsZXIuY3BwOg0KKyAgICAgICAgKENTbWFy
dExpbmtIYW5kbGVyOjpIYW5kbGVNYWtlVm9pcENhbGxMKToNCisgICAgICAgIChDU21hcnRMaW5r
SGFuZGxlcjo6SGFuZGxlU2VuZE1lc3NhZ2UpOg0KKyAgICAgICAgKiBCcm93c2VyVmlldy9zcmMv
U21hcnRMaW5rTWFwLmNwcDoNCisgICAgICAgIChDU21hcnRMaW5rTWFwOjpJbmRleGluZ0NhbGxi
YWNrTCk6DQorICAgICAgICAoQ1NtYXJ0TGlua01hcDo6Q1NtYXJ0TGlua01hcCk6DQorICAgICAg
ICAoQ1NtYXJ0TGlua01hcDo6R2V0TmV4dFZvaXBQaG9uZUVudHJ5KToNCisgICAgICAgIChDU21h
cnRMaW5rTWFwOjpHZXROZXh0UGhvbmVFbnRyeSk6DQorICAgICAgICAoQ1NtYXJ0TGlua01hcDo6
R2V0UHJldlZvaXBQaG9uZUVudHJ5KToNCisgICAgICAgIChDU21hcnRMaW5rTWFwOjpHZXRQcmV2
UGhvbmVFbnRyeSk6DQorICAgICAgICAqIEJyb3dzZXJWaWV3L3NyYy9XZWJLaXRWaWV3LmNwcDoN
CisgICAgICAgIChDV2ViS2l0Vmlldzo6RmluZE5leHRTbWFydExpbmspOg0KKw0KIGhvbmd6aGFv
LCByZXZpZXdlZCBieSA8U2FjaGluPg0KICBERVNDOiBbUzYwXSBSU1MtbGlua3MgZG9lcyBub3Qg
d29yayBhbnltb3JlIGlmIHNvbWUgYXJ0aWNsZSB3YXMgZG93bmxvYWRlZCBmcm9tIHdlYiBmZWVk
cy4NCiAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2MTMNCkluZGV4
OiBXZWJLaXQvQnJvd3NlckNvbnRyb2wvaW5jL0JyQ3RsRGVmcy5oDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
V2ViS2l0L0Jyb3dzZXJDb250cm9sL2luYy9CckN0bERlZnMuaAkocmV2aXNpb24gMjQ2MzMpDQor
KysgV2ViS2l0L0Jyb3dzZXJDb250cm9sL2luYy9CckN0bERlZnMuaAkod29ya2luZyBjb3B5KQ0K
QEAgLTIxMCw3ICsyMTAsMTggQEAgY2xhc3MgVEJyQ3RsRGVmcw0KICAgICAgICAgICAgIEVDb21t
YW5kU21hcnRMaW5rU2VuZEVtYWlsLCAvLy88IA0KICAgICAgICAgICAgIEVDb21tYW5kU2hvd0Fu
Y2hvckhyZWYsICAvLy88RGlzcGxheSB0aGUgVVJMIG9mIGEgaHlwZXJsaW5rIC0gc3VwcG9ydGVk
IG9ubHkgZm9yIEhUTUwNCiAgICAgICAgICAgICBFQ29tbWFuZExvYWRGb2N1c2VkSW1hZ2UsIC8v
LzxMb2FkIHRoZSBmb2N1ZXNkIGltYWdlIC0gc3VwcG9ydGVkIG9ubHkgZm9yIEhUTUwNCisjaWZk
ZWYgUkRfNTBfQlJPV1NFUg0KKyAgICAgICAgICAgIEVDb21tYW5kVW5Mb2FkUGx1Z2luV2luZG93
cywNCisgICAgICAgICAgICBFQ29tbWFuZEZpbmRJdGVtVm9JUEFkZHJlc3MsIA0KKyAgICAgICAg
ICAgIEVDb21tYW5kU21hcnRMaW5rTWFrZVZvaXBDYWxsDQorI2Vsc2UNCiAgICAgICAgICAgICBF
Q29tbWFuZFVuTG9hZFBsdWdpbldpbmRvd3MNCisjZW5kaWYgDQorICAgICAgICAgICAgLyoqDQor
ICAgICAgICAgICAgKiBEaXNwbGF5cyB0aGUgRmluZEl0ZW0gZGlhbG9nIGFuZCBoaWdobGlnaHRz
IGFsbCBvZiB0aGUgVm9JUA0KKyAgICAgICAgICAgICogYWRkcmVzc2VzIGluIHRoZSBjdXJyZW50
IHBhZ2UuIFVzZSB0aGlzIHBhcmFtZXRlciBvbmx5IGlmIHlvdQ0KKyAgICAgICAgICAgICogc3Bl
Y2lmaWVkIHRoZSBFQ2FwYWJpbGl0eUZpbmRJdGVtIGNhcGFiaWxpdHkuDQorICAgICAgICAgICAg
Ki8gICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgIH07DQogICAgICAgICAvKioNCiAg
ICAgICAgICogVGhlIGxvYWQgZXZlbnQgdGhhdCBvY2N1cnJlZC4NCkBAIC02MTEsNyArNjIyLDEy
IEBAIGNsYXNzIFRCckN0bERlZnMNCiANCiAgICAgICAgICAgICBFRWxlbWVudFNtYXJ0TGlua1Rl
bCwgLy8vPCBBIHRlbGVwaG9uZSBudW1iZXIgaW4gdGhlIHBhZ2UuDQogICAgICAgICAgICAgRUVs
ZW1lbnRTbWFydExpbmtFbWFpbCwgLy8vPCBhbiBlbWFpbCBhZGRyZXNzIGluIHRoZSBwYWdlLg0K
KyNpZmRlZiBSRF81MF9CUk9XU0VSDQorICAgICAgICAgICAgRUVsZW1lbnRCcm9rZW5JbWFnZSwg
Ly8vPCBBIG1pc3NpbmcgaW1hZ2UgDQorICAgICAgICAgICAgRUVsZW1lbnRTbWFydExpbmtWb2lw
IC8vIEEgdm9pcCBzbWFydGxpbmsgDQorI2Vsc2UNCiAgICAgICAgICAgICBFRWxlbWVudEJyb2tl
bkltYWdlIC8vLzwgQSBtaXNzaW5nIGltYWdlIA0KKyNlbmRpZiANCiAgICAgICAgIH07DQogDQog
ICAgICAgICAvKioNCkluZGV4OiBXZWJLaXQvQnJvd3NlckNvbnRyb2wvc3JjL0JyQ3RsLmNwcA0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyQ29udHJvbC9zcmMvQnJDdGwuY3BwCShyZXZp
c2lvbiAyNDYzMykNCisrKyBXZWJLaXQvQnJvd3NlckNvbnRyb2wvc3JjL0JyQ3RsLmNwcAkod29y
a2luZyBjb3B5KQ0KQEAgLTExNiw3ICsxMTYsMTIgQEAgc3RhdGljIGNvbnN0IFRDb21tYW5kc0Fy
cmF5IGNvbW1hbmRzQXJyYQ0KICAgICB7VEJyQ3RsRGVmczo6RUVsZW1lbnRTbWFydExpbmtUZWws
IFRCckN0bERlZnM6OkVDb21tYW5kU21hcnRMaW5rQWRkVG9QaG9uZUJvb2ssIFJfVEVYVF9XTUxf
QUREX1RPX0NPTlRBQ1RTLCBOVUxMfSwNCiAgICAge1RCckN0bERlZnM6OkVFbGVtZW50U21hcnRM
aW5rVGVsLCBUQnJDdGxEZWZzOjpFQ29tbWFuZFNtYXJ0TGlua1NlbmRNZXNzYWdlLCBSX1RFWFRf
V01MX1NFTkRfTUVTU0FHRSwgTlVMTH0sDQogICAgIHtUQnJDdGxEZWZzOjpFRWxlbWVudFNtYXJ0
TGlua0VtYWlsLCBUQnJDdGxEZWZzOjpFQ29tbWFuZFNtYXJ0TGlua1NlbmRNZXNzYWdlLCBSX1RF
WFRfV01MX1NFTkRfTUVTU0FHRSwgTlVMTH0sDQorI2lmZGVmIFJEXzUwX0JST1dTRVIgICAgDQor
ICAgIHtUQnJDdGxEZWZzOjpFRWxlbWVudFNtYXJ0TGlua0VtYWlsLCBUQnJDdGxEZWZzOjpFQ29t
bWFuZFNtYXJ0TGlua0FkZFRvUGhvbmVCb29rLCBSX1RFWFRfV01MX0FERF9UT19DT05UQUNUUywg
TlVMTH0sDQorICAgIHtUQnJDdGxEZWZzOjpFRWxlbWVudFNtYXJ0TGlua1ZvaXAsIFRCckN0bERl
ZnM6OkVDb21tYW5kU21hcnRMaW5rTWFrZVZvaXBDYWxsLCBSX1RFWFRfV01MX0xJU1RfQ0FMTCwg
TlVMTH0NCisjZWxzZSANCiAgICAge1RCckN0bERlZnM6OkVFbGVtZW50U21hcnRMaW5rRW1haWws
IFRCckN0bERlZnM6OkVDb21tYW5kU21hcnRMaW5rQWRkVG9QaG9uZUJvb2ssIFJfVEVYVF9XTUxf
QUREX1RPX0NPTlRBQ1RTLCBOVUxMfQ0KKyNlbmRpZiANCiAgICAgfTsNCiANCiAvLyA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PSBMT0NBTCBGVU5DVElPTlMgPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KQEAgLTc1NCw2ICs3NTksMjEgQEAgRVhQT1JUX0Mgdm9pZCBDQnJDdGw6
OkhhbmRsZUNvbW1hbmRMKFRJbg0KICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgYnJl
YWs7DQogICAgICAgICAgICAgfQ0KKyNpZmRlZiBSRF81MF9CUk9XU0VSDQorICAgICAgICBjYXNl
IFRCckN0bERlZnM6OkVDb21tYW5kRmluZEl0ZW1Wb0lQQWRkcmVzczoNCisgICAgICAgICAgICB7
DQorICAgICAgICAgICAgaWYgKCBpV2ViS2l0Q29udHJvbC0+V2ViS2l0VmlldygpLlNtYXJ0TGlu
a01vZGUoKSA9PSBFU21hcnRMaW5rTm9uZSApDQorICAgICAgICAgICAgICAgIHsNCisgICAgICAg
ICAgICAgICAgZm9yICggVEludCBpPTA7IGk8aVN0YXRlQ2hhbmdlT2JzZXJ2ZXJBcnJheS5Db3Vu
dCgpOyBpKysgKQ0KKyAgICAgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICAgICAg
aVN0YXRlQ2hhbmdlT2JzZXJ2ZXJBcnJheVtpXS0+U3RhdGVDaGFuZ2VkKFRCckN0bERlZnM6OkVT
dGF0ZVNtYXJ0VGV4dFZpZXcsIEVUcnVlKTsNCisgICAgICAgICAgICAgICAgICAgIH0NCisgICAg
ICAgICAgICAgICAgaVdlYktpdENvbnRyb2wtPldlYktpdFZpZXcoKS5TZXRTbWFydExpbmtNb2Rl
KEVTbWFydExpbmtWb2lwUGhvbmUpOw0KKyAgICAgICAgICAgICAgICBpV2ViS2l0Q29udHJvbC0+
V2ViS2l0VmlldygpLkZpbmROZXh0U21hcnRMaW5rKEVUcnVlKTsNCisgICAgICAgICAgICAgICAg
fQ0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgICAgIH0NCisjZW5kaWYgDQogICAgICAg
ICBjYXNlIFRCckN0bERlZnM6OkVDb21tYW5kRmluZEl0ZW1FTWFpbDoNCiAgICAgICAgICAgICB7
DQogICAgICAgICAgICAgaWYgKCBpV2ViS2l0Q29udHJvbC0+V2ViS2l0VmlldygpLlNtYXJ0TGlu
a01vZGUoKSA9PSBFU21hcnRMaW5rTm9uZSApDQpAQCAtNzc3LDYgKzc5NywxMyBAQCBFWFBPUlRf
QyB2b2lkIENCckN0bDo6SGFuZGxlQ29tbWFuZEwoVEluDQogICAgICAgICAgICAgaVdlYktpdENv
bnRyb2wtPldlYktpdFZpZXcoKS5NYWluRnJhbWUoKS5TbWFydExpbmtIYW5kbGVyKCktPkhhbmRs
ZU1ha2VDYWxsTCgpOw0KICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgIH0NCisjaWZk
ZWYgUkRfNTBfQlJPV1NFUg0KKyAgICAgICAgY2FzZSBUQnJDdGxEZWZzOjpFQ29tbWFuZFNtYXJ0
TGlua01ha2VWb2lwQ2FsbDoNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgaVdlYktpdENv
bnRyb2wtPldlYktpdFZpZXcoKS5NYWluRnJhbWUoKS5TbWFydExpbmtIYW5kbGVyKCktPkhhbmRs
ZU1ha2VWb2lwQ2FsbEwoKTsNCisgICAgICAgICAgICBicmVhazsNCisgICAgICAgICAgICB9DQor
I2VuZGlmDQogICAgICAgICBjYXNlIFRCckN0bERlZnM6OkVDb21tYW5kU21hcnRMaW5rQWRkVG9Q
aG9uZUJvb2s6DQogICAgICAgICAgICAgew0KICAgICAgICAgICAgIGlXZWJLaXRDb250cm9sLT5X
ZWJLaXRWaWV3KCkuTWFpbkZyYW1lKCkuU21hcnRMaW5rSGFuZGxlcigpLT5IYW5kbGVBZGRUb1Bo
b25lQm9vaygpOw0KSW5kZXg6IFdlYktpdC9Ccm93c2VyVmlldy9pbmMvU21hcnRMaW5rSGFuZGxl
ci5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJWaWV3L2luYy9TbWFydExpbmtIYW5k
bGVyLmgJKHJldmlzaW9uIDI0NjMzKQ0KKysrIFdlYktpdC9Ccm93c2VyVmlldy9pbmMvU21hcnRM
aW5rSGFuZGxlci5oCSh3b3JraW5nIGNvcHkpDQpAQCAtOTUsNiArOTUsMTYgQEAgY2xhc3MgQ1Nt
YXJ0TGlua0hhbmRsZXIgOiBwdWJsaWMgQ0Jhc2UNCiAgICAgICAgICovDQogICAgICAgICB2b2lk
IEhhbmRsZU1ha2VDYWxsTCgpOw0KIA0KKyNpZmRlZiBSRF81MF9CUk9XU0VSDQorICAgICAgICAv
KioNCisgICAgICAgICoNCisgICAgICAgICogQHNpbmNlIDUuMA0KKyAgICAgICAgKiBAcGFyYW0N
CisgICAgICAgICogQHJldHVybiANCisgICAgICAgICovDQorICAgICAgICB2b2lkIEhhbmRsZU1h
a2VWb2lwQ2FsbEwoKTsNCisjZW5kaWYgDQorDQogICAgICAgICAvKioNCiAgICAgICAgICoNCiAg
ICAgICAgICogQHNpbmNlIDMuMQ0KSW5kZXg6IFdlYktpdC9Ccm93c2VyVmlldy9pbmMvU21hcnRM
aW5rTWFwLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL1NtYXJ0TGlu
a01hcC5oCShyZXZpc2lvbiAyNDYzMykNCisrKyBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL1NtYXJ0
TGlua01hcC5oCSh3b3JraW5nIGNvcHkpDQpAQCAtNzYsMTEgKzc2LDE1IEBAIHB1YmxpYzoNCiAg
ICAgdm9pZCBTdG9wSW5kZXhpbmdTbWFydExpbmtzKCk7DQogICAgIHZvaWQgUmVJbmRleFNtYXJ0
TGlua3MoKTsNCiAgIA0KLXB1YmxpYzogDQorcHVibGljOiAgDQogICAgIENTbWFydExpbmsqIEdl
dE5leHRQaG9uZUVudHJ5KCk7DQogICAgIENTbWFydExpbmsqIEdldE5leHRFbWFpbEVudHJ5KCk7
DQogICAgIENTbWFydExpbmsqIEdldFByZXZQaG9uZUVudHJ5KCk7DQogICAgIENTbWFydExpbmsq
IEdldFByZXZFbWFpbEVudHJ5KCk7DQorI2lmZGVmIFJEXzUwX0JST1dTRVINCisgICAgQ1NtYXJ0
TGluayogR2V0TmV4dFZvaXBQaG9uZUVudHJ5KCk7ICAgIA0KKyAgICBDU21hcnRMaW5rKiBHZXRQ
cmV2Vm9pcFBob25lRW50cnkoKTsgICAgDQorI2VuZGlmIA0KICAgICANCiAgICAgQ1NtYXJ0TGlu
ayogR2V0RW50cnkoY29uc3QgVFJlY3QmIGFSZWN0KTsNCiAgICAgVEludCBHZXRFbnRyeUNvdW50
KCkgeyByZXR1cm4gaVNtYXJ0TGlua0FycmF5LkNvdW50KCk7IH0NCkBAIC05OCw4ICsxMDIsMTAg
QEAgcHJpdmF0ZToNCiAgICAgUlBvaW50ZXJBcnJheTxDU21hcnRMaW5rPiBpU21hcnRMaW5rQXJy
YXk7ICAgIA0KICAgICANCiAgICAgVEludCBpUGhvbmVFbnRyeUluZGV4Ow0KLSAgICBUSW50IGlF
bWFpbEVudHJ5SW5kZXg7ICAgIA0KLSAgICANCisgICAgVEludCBpRW1haWxFbnRyeUluZGV4Ow0K
KyNpZmRlZiBSRF81MF9CUk9XU0VSDQorICAgIFRJbnQgaVZvaXBQaG9uZUVudHJ5SW5kZXg7DQor
I2VuZGlmICAgICANCiAgICAgQ0lkbGUqIGlJbmRleGluZ0NhbGxiYWNrOw0KICAgICB9Ow0KIA0K
SW5kZXg6IFdlYktpdC9Ccm93c2VyVmlldy9pbmMvV2ViS2l0Vmlldy5oDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQot
LS0gV2ViS2l0L0Jyb3dzZXJWaWV3L2luYy9XZWJLaXRWaWV3LmgJKHJldmlzaW9uIDI0NjMzKQ0K
KysrIFdlYktpdC9Ccm93c2VyVmlldy9pbmMvV2ViS2l0Vmlldy5oCSh3b3JraW5nIGNvcHkpDQpA
QCAtOTksNiArOTksOSBAQCBlbnVtIFRTbWFydExpbmtNb2RlDQogICAgIHsNCiAgICAgRVNtYXJ0
TGlua1Bob25lLCAgICAgICAgICAgICAgICAgICAgICAgLy9GaW5kaW5nIHBob25lIG51bWJlcnMg
bW9kZQ0KICAgICBFU21hcnRMaW5rRW1haWwsICAgICAgICAgICAgICAgICAgICAgICAvL0ZpbmRp
bmcgZW1haWwgYWRkcmVzc2VzIG1vZGUNCisjaWZkZWYgUkRfNTBfQlJPV1NFUg0KKyAgICBFU21h
cnRMaW5rVm9pcFBob25lLCAgICANCisjZW5kaWYgDQogICAgIEVTbWFydExpbmtOb25lICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIE5vcm1hbCBNb2RlDQogICAgIH07DQogDQpJbmRleDogV2Vi
S2l0L0Jyb3dzZXJWaWV3L3NyYy9TbWFydExpbmtIYW5kbGVyLmNwcA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IFdlYktpdC9Ccm93c2VyVmlldy9zcmMvU21hcnRMaW5rSGFuZGxlci5jcHAJKHJldmlzaW9uIDI0
NjMzKQ0KKysrIFdlYktpdC9Ccm93c2VyVmlldy9zcmMvU21hcnRMaW5rSGFuZGxlci5jcHAJKHdv
cmtpbmcgY29weSkNCkBAIC0xOTAsNiArMTkwLDQ2IEBAIHZvaWQgQ1NtYXJ0TGlua0hhbmRsZXI6
OlByZXBhcmVTZW5kVWkoKQ0KICAgICAgICAgfQ0KICAgICB9DQogDQorI2lmZGVmIFJEXzUwX0JS
T1dTRVINCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENTbWFydExpbmtIYW5kbGVyOjpI
YW5kbGVNYWtlVm9pcENhbGxMDQorLy8NCisvLyBQaG9uZSBudW1iZXINCisvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQ0KKy8vDQordm9pZCBDU21hcnRMaW5rSGFuZGxlcjo6SGFuZGxlTWFrZVZvaXBD
YWxsTCgpDQorICAgIHsNCisNCisjaWZuZGVmIF9fQlJPV1NFUl9TREsNCisgICAgLy9QcmVwYXJl
IEFJVyBzZXJ2aWNlIGhhbmRsZXINCisgICAgUHJlcGFyZUFpd0hhbmRsZXJMKCk7DQorICAgIF9f
QVNTRVJUX0RFQlVHKGlBaXdIYW5kbGVyLCBVc2VyOjpQYW5pYyhfTCgiU21hcnRMaW5rSGFuZGxl
ciIpLCBLRXJyR2VuZXJhbCkpOw0KKw0KKw0KKyAgLy9HZXQgdGhlIGluZm8gbm9kZSB1bmRlciBj
dXJzb3INCisgICAgQ1NtYXJ0TGluayogZW50cnkgPSBpV2ViS2l0RnJhbWUtPldlYktpdFZpZXco
KS5DdXJzb3IoKS0+R2V0U21hcnRMaW5rRW50cnkoKTsNCisgICAgDQorICBpZihlbnRyeSAmJiBl
bnRyeS0+aUVudHJ5VHlwZSA9PSBDRmluZEl0ZW1FbmdpbmU6OkVGaW5kSXRlbVNlYXJjaFBob25l
TnVtYmVyQmluIHx8IENGaW5kSXRlbUVuZ2luZTo6RUZpbmRJdGVtU2VhcmNoTWFpbEFkZHJlc3NC
aW4gKQ0KKyAgICAgICAgew0KKyAgICAgICAgVFB0ciBudW1iZXJQdHIgPSBlbnRyeS0+aUVudHJ5
VGV4dC0+RGVzKCk7DQorICAgICAgICAvL0Zvcm1hdCB0aGUgUGhvbmUgTnVtYmVyDQorICAgICAg
ICBDb21tb25QaG9uZVBhcnNlcjo6UGFyc2VQaG9uZU51bWJlciggbnVtYmVyUHRyLCBDb21tb25Q
aG9uZVBhcnNlcjo6RVBob25lQ2xpZW50TnVtYmVyKTsNCisgICAgICAgIC8vQ2FsbCBBSVcgZnJh
bWV3b3JrIGZ1bmN0aW9uIHRvIG1ha2UgdGhlIGNhbGwNCisgICAgICAgIENBaXdEaWFsRGF0YUV4
dCogZGlhbERhdGFFeHQgPSBDQWl3RGlhbERhdGFFeHQ6Ok5ld0xDKCk7IA0KKyAgICAgICAgZGlh
bERhdGFFeHQtPlNldFBob25lTnVtYmVyTCggbnVtYmVyUHRyICk7IA0KKyAgICAgICAgZGlhbERh
dGFFeHQtPlNldENhbGxUeXBlKCBDQWl3RGlhbERhdGE6OkVBSVdWb2lQICk7ICAgICAgICAgICAg
ICAgICAgDQorDQorICAgICAgICBDQWl3R2VuZXJpY1BhcmFtTGlzdCYgcGFyYW1MaXN0ID0gaUFp
d0hhbmRsZXItPkluUGFyYW1MaXN0TCgpOw0KKyAgICAgICAgZGlhbERhdGFFeHQtPkZpbGxJblBh
cmFtTGlzdEwoIHBhcmFtTGlzdCApOyAgIA0KKyAgICAgIA0KKyAgICAgICAgaUFpd0hhbmRsZXIt
PkV4ZWN1dGVTZXJ2aWNlQ21kTChLQWl3Q21kQ2FsbCwgcGFyYW1MaXN0LCBpQWl3SGFuZGxlci0+
T3V0UGFyYW1MaXN0TCgpLCANCisgICAgICAgICAgICAwLCAwICk7IC8vIC8vIE5vIG9wdGlvbnMg
dXNlZCAsIG5vIGRpYWwgcmVzdWx0cyBhcmUgd2FudGVkLg0KKyAgICAgICAgfQ0KKyAgICAgICAg
Q2xlYW51cFN0YWNrOjpQb3BBbmREZXN0cm95KCk7IC8vIGRpYWxEYXRhRXh0IA0KKyNlbmRpZg0K
KyAgICB9DQorI2VuZGlmIA0KKw0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8gQ1NtYXJ0
TGlua0hhbmRsZXI6OkhhbmRsZU1ha2VDYWxsTA0KIC8vDQpAQCAtMzAwLDcgKzM0MCw2IEBAIHZv
aWQgQ1NtYXJ0TGlua0hhbmRsZXI6OkhhbmRsZVNlbmRNZXNzYWcNCiAgICAgICAgIFRQdHIgbnVt
YmVyUHRyID0gZW50cnktPmlFbnRyeVRleHQtPkRlcygpOw0KIA0KICAgICAgICAgVFVpZCBtdG1V
aWQ9IEtTZW5kdWlNdG1TbXRwVWlkOw0KLQ0KICAgICAgICAgaWYgKCBzZWFyY2hDYXNlICYgQ0Zp
bmRJdGVtRW5naW5lOjpFRmluZEl0ZW1TZWFyY2hQaG9uZU51bWJlckJpbiApDQogICAgICAgICAg
ICAgew0KICAgICAgICAgICAgIENvbW1vblBob25lUGFyc2VyOjpQYXJzZVBob25lTnVtYmVyKCBu
dW1iZXJQdHIsIENvbW1vblBob25lUGFyc2VyOjpFUGxhaW5QaG9uZU51bWJlcik7DQpJbmRleDog
V2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9TbWFydExpbmtNYXAuY3BwDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
V2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9TbWFydExpbmtNYXAuY3BwCShyZXZpc2lvbiAyNDYzMykN
CisrKyBXZWJLaXQvQnJvd3NlclZpZXcvc3JjL1NtYXJ0TGlua01hcC5jcHAJKHdvcmtpbmcgY29w
eSkNCkBAIC0xNjAsNyArMTYwLDcgQEAgVEludCBDU21hcnRMaW5rTWFwOjpJbmRleGluZ0NhbGxi
YWNrTChUQQ0KICAgICAgICAgVFB0ckMgcHRyQnVmZmVyKHNtYXJ0TGlua01hcC0+aVdlYktpdEZy
YW1lLT5XZWJLaXRCcmlkZ2UoKS5XZWJDb3JlQnJpZGdlKCkuR2V0TmV4dFJlbmRlclRleHRGb3JT
bWFydExpbmtzTChiQ29udGludWUpKTsgICANCiANCiAgICAgICAgIGlmIChwdHJCdWZmZXIuTGVu
Z3RoKCkgPiAwKQ0KLSAgICAgICAgICAgIHsgICAgICAgICAgICAgICANCisgICAgICAgICAgICB7
ICAgICANCiAgICAgICAgICAgICBDRmluZEl0ZW1FbmdpbmUqIGZpbmRJdGVtRW5naW5lID0gQ0Zp
bmRJdGVtRW5naW5lOjpOZXdMKCBwdHJCdWZmZXIsIChDRmluZEl0ZW1FbmdpbmU6OlRGaW5kSXRl
bVNlYXJjaENhc2UpKENGaW5kSXRlbUVuZ2luZTo6RUZpbmRJdGVtU2VhcmNoUGhvbmVOdW1iZXJC
aW58Q0ZpbmRJdGVtRW5naW5lOjpFRmluZEl0ZW1TZWFyY2hNYWlsQWRkcmVzc0JpbikgKTsNCiAg
ICAgICAgICAgICBDbGVhbnVwU3RhY2s6OlB1c2hMKGZpbmRJdGVtRW5naW5lKTsNCiANCkBAIC0y
MzAsOCArMjMwLDEzIEBAIENTbWFydExpbmtNYXAqIENTbWFydExpbmtNYXA6Ok5ld0xDKGNvbnMN
CiAvLw0KIC8vIA0KIC8vIA0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi1DU21hcnRMaW5rTWFw
OjpDU21hcnRMaW5rTWFwKGNvbnN0IENXZWJLaXRGcmFtZSogYVdlYktpdEZyYW1lKSA6IGlXZWJL
aXRGcmFtZShhV2ViS2l0RnJhbWUpLCBpUGhvbmVFbnRyeUluZGV4KDApLCBpRW1haWxFbnRyeUlu
ZGV4KDApDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSANCitDU21hcnRMaW5rTWFwOjpDU21hcnRM
aW5rTWFwKGNvbnN0IENXZWJLaXRGcmFtZSogYVdlYktpdEZyYW1lKSA6IGlXZWJLaXRGcmFtZShh
V2ViS2l0RnJhbWUpLCBpUGhvbmVFbnRyeUluZGV4KDApLCANCisjaWZkZWYgUkRfNTBfQlJPV1NF
Ug0KKyAgICBpVm9pcFBob25lRW50cnlJbmRleCgwKSwgDQorI2VuZGlmDQorICAgIGlFbWFpbEVu
dHJ5SW5kZXgoMCkNCisgICAgDQogICAgIHsNCiAgICAgfQ0KIA0KQEAgLTI4MCw2ICsyODUsNDIg
QEAgQ1NtYXJ0TGluayogQ1NtYXJ0TGlua01hcDo6R2V0RW50cnkoY29ucw0KICAgICANCiAgIH0N
CiAgICAgDQorI2lmZGVmIFJEXzUwX0JST1dTRVINCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQor
Ly8gQ1NtYXJ0TGlua01hcDo6R2V0TmV4dFZvaXBQaG9uZUVudHJ5DQorLy8gR2V0cyB0aGUgbmV4
dCBwaG9uZSBlbnRyeSBhbmQgbW92ZXMgdGhlIHBvc2l0aW9uIG9uZSBmb3J3YXJkDQorLy8gDQor
Ly8gDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0NTbWFydExpbmsqIENTbWFydExpbmtNYXA6
OkdldE5leHRWb2lwUGhvbmVFbnRyeSgpDQorICB7ICAgDQorICBpZiAoaVNtYXJ0TGlua0FycmF5
LkNvdW50KCkgPiAwKQ0KKyAgICB7DQorICAgICAgICAgICAgICAgICAgDQorICAgIC8vaWYgeW91
IHJlYWNoIHRoZSBlbmQgb2YgdGhlIGxpc3QgbGV0IG90aGVyIGZyYW1lcyBoYXZlIGEgY2hhbmNl
IGFuZCByZXR1cm4gbnVsbA0KKyAgICBpZiAoaVZvaXBQaG9uZUVudHJ5SW5kZXggPj0gMCkNCisg
ICAgICB7DQorICAgICAgICAgICAgICAgICAgICAgIA0KKyAgICAgIHdoaWxlIChpVm9pcFBob25l
RW50cnlJbmRleDxpU21hcnRMaW5rQXJyYXkuQ291bnQoKSkNCisgICAgICAgIHsgICAgIA0KKyAg
ICAgICAgQ1NtYXJ0TGluayogdGV4dEVudHJ5ID0gaVNtYXJ0TGlua0FycmF5W2lWb2lwUGhvbmVF
bnRyeUluZGV4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorICAgIGlmICh0
ZXh0RW50cnktPmlFbnRyeVR5cGUgPT0gQ0ZpbmRJdGVtRW5naW5lOjpFRmluZEl0ZW1TZWFyY2hQ
aG9uZU51bWJlckJpbiB8fCBDRmluZEl0ZW1FbmdpbmU6OkVGaW5kSXRlbVNlYXJjaE1haWxBZGRy
ZXNzQmluICkgICAgICAgIA0KKyAgICAgICAgICB7DQorICAgICAgICAgICsraVZvaXBQaG9uZUVu
dHJ5SW5kZXg7ICAgICAgICAgDQorICAgICAgICAgIHJldHVybiB0ZXh0RW50cnk7IA0KKyAgICAg
ICAgICB9DQorICAgICAgICAgIA0KKyAgICAgICAgKytpVm9pcFBob25lRW50cnlJbmRleDsNCisg
ICAgICAgIH0NCisgICAgICAgICAgDQorICAgICAgfQ0KKw0KKyAgICB9DQorICAgIA0KKyAgICBp
Vm9pcFBob25lRW50cnlJbmRleCA9IDA7DQorICAgIHJldHVybiBOVUxMOyAgDQorICB9DQorI2Vu
ZGlmIA0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAvLyBDU21hcnRMaW5rTWFwOjpHZXRO
ZXh0UGhvbmVFbnRyeQ0KQEAgLTI5OCw3ICszMzksNyBAQCBDU21hcnRMaW5rKiBDU21hcnRMaW5r
TWFwOjpHZXROZXh0UGhvbmVFDQogICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgIHdoaWxl
IChpUGhvbmVFbnRyeUluZGV4PGlTbWFydExpbmtBcnJheS5Db3VudCgpKQ0KICAgICAgICAgeyAg
ICAgDQotICAgICAgICBDU21hcnRMaW5rKiB0ZXh0RW50cnkgPSBpU21hcnRMaW5rQXJyYXlbaVBo
b25lRW50cnlJbmRleF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorICAg
ICAgICBDU21hcnRMaW5rKiB0ZXh0RW50cnkgPSBpU21hcnRMaW5rQXJyYXlbaVBob25lRW50cnlJ
bmRleF07IA0KICAgICAgICAgaWYgKHRleHRFbnRyeS0+aUVudHJ5VHlwZSA9PSBDRmluZEl0ZW1F
bmdpbmU6OkVGaW5kSXRlbVNlYXJjaFBob25lTnVtYmVyQmluKSAgICAgICAgDQogICAgICAgICAg
IHsNCiAgICAgICAgICAgKytpUGhvbmVFbnRyeUluZGV4OyAgICAgICAgIA0KQEAgLTMxNiw2ICsz
NTcsNDIgQEAgQ1NtYXJ0TGluayogQ1NtYXJ0TGlua01hcDo6R2V0TmV4dFBob25lRQ0KICAgICBy
ZXR1cm4gTlVMTDsgIA0KICAgfQ0KIA0KKyNpZmRlZiBSRF81MF9CUk9XU0VSDQorLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQ0KKy8vIENTbWFydExpbmtNYXA6OkdldFByZXZWb2lwUGhvbmVFbnRyeQ0K
Ky8vIEdldHMgdGhlIHByZXZpb3VzIGVtYWlsIGVudHJ5IGFuZCBtb3ZlcyB0aGUgcG9zaXRpb24g
b25lIGJhY2t3YXJkcw0KKy8vIA0KKy8vIA0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisNCitD
U21hcnRMaW5rKiBDU21hcnRMaW5rTWFwOjpHZXRQcmV2Vm9pcFBob25lRW50cnkoKQ0KKyAgeyAN
CisgIGlmIChpU21hcnRMaW5rQXJyYXkuQ291bnQoKSA+IDApDQorICAgIHsNCisgICAgICAgICAg
ICAgICAgICANCisgICAgLy9pZiB5b3UgcmVhY2ggdGhlIGVuZCBvZiB0aGUgbGlzdCBsZXQgb3Ro
ZXIgZnJhbWVzIGhhdmUgYSBjaGFuY2UgYW5kIHJldHVybiBudWxsDQorICAgIGlmIChpVm9pcFBo
b25lRW50cnlJbmRleCA8IGlTbWFydExpbmtBcnJheS5Db3VudCgpKQ0KKyAgICAgIHsNCisgICAg
ICAgICAgICAgICAgICAgICAgDQorICAgICAgd2hpbGUgKGlWb2lwUGhvbmVFbnRyeUluZGV4Pj0w
KQ0KKyAgICAgICAgeyAgICAgDQorICAgICAgICBDU21hcnRMaW5rKiB0ZXh0RW50cnkgPSBpU21h
cnRMaW5rQXJyYXlbaVZvaXBQaG9uZUVudHJ5SW5kZXhdOw0KKyAgICAgICAgaWYgKHRleHRFbnRy
eS0+aUVudHJ5VHlwZSA9PSBDRmluZEl0ZW1FbmdpbmU6OkVGaW5kSXRlbVNlYXJjaFBob25lTnVt
YmVyQmluIHx8IENGaW5kSXRlbUVuZ2luZTo6RUZpbmRJdGVtU2VhcmNoTWFpbEFkZHJlc3NCaW4p
ICAgICAgICANCisgICAgICAgICAgew0KKyAgICAgICAgICAtLWlWb2lwUGhvbmVFbnRyeUluZGV4
OyAgICAgICAgIA0KKyAgICAgICAgICByZXR1cm4gdGV4dEVudHJ5OyANCisgICAgICAgICAgfQ0K
KyAgICAgICAgIC0taVZvaXBQaG9uZUVudHJ5SW5kZXg7DQorICAgICAgICB9DQorICAgICAgICAg
IA0KKyAgICAgIH0NCisNCisgICAgaVZvaXBQaG9uZUVudHJ5SW5kZXggPSBpU21hcnRMaW5rQXJy
YXkuQ291bnQoKS0xOw0KKyAgICB9DQorICByZXR1cm4gTlVMTDsgICAgDQorICB9DQorI2VuZGlm
IA0KKyAgDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8vIENTbWFydExpbmtNYXA6OkdldFBy
ZXZQaG9uZUVudHJ5DQogLy8gR2V0cyB0aGUgcHJldmlvdXMgZW1haWwgZW50cnkgYW5kIG1vdmVz
IHRoZSBwb3NpdGlvbiBvbmUgYmFja3dhcmRzDQpAQCAtMzM0LDcgKzQxMSw3IEBAIENTbWFydExp
bmsqIENTbWFydExpbmtNYXA6OkdldFByZXZQaG9uZUUNCiAgICAgICAgICAgICAgICAgICAgICAg
DQogICAgICAgd2hpbGUgKGlQaG9uZUVudHJ5SW5kZXg+PTApDQogICAgICAgICB7ICAgICANCi0g
ICAgICAgIENTbWFydExpbmsqIHRleHRFbnRyeSA9IGlTbWFydExpbmtBcnJheVtpUGhvbmVFbnRy
eUluZGV4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisgICAgICAgIENT
bWFydExpbmsqIHRleHRFbnRyeSA9IGlTbWFydExpbmtBcnJheVtpUGhvbmVFbnRyeUluZGV4XTsN
CiAgICAgICAgIGlmICh0ZXh0RW50cnktPmlFbnRyeVR5cGUgPT0gQ0ZpbmRJdGVtRW5naW5lOjpF
RmluZEl0ZW1TZWFyY2hQaG9uZU51bWJlckJpbikgICAgICAgIA0KICAgICAgICAgICB7DQogICAg
ICAgICAgIC0taVBob25lRW50cnlJbmRleDsgICAgICAgICANCkluZGV4OiBXZWJLaXQvQnJvd3Nl
clZpZXcvc3JjL1dlYktpdFZpZXcuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJW
aWV3L3NyYy9XZWJLaXRWaWV3LmNwcAkocmV2aXNpb24gMjQ2MzMpDQorKysgV2ViS2l0L0Jyb3dz
ZXJWaWV3L3NyYy9XZWJLaXRWaWV3LmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTE0NDcsNyArMTQ0
Nyw3IEBAIFRJbnQgQ1dlYktpdFZpZXc6OkZpbmROZXh0U21hcnRMaW5rKFRCb28NCiAgIHsNCiAN
CiAgICAgQ1dlYktpdEZyYW1lKiBmID0gKGlGcmFtZVdpdGhGaW5kS2V5d29yZCkgPyBpRnJhbWVX
aXRoRmluZEtleXdvcmQgOiBpTWFpbkZyYW1lOw0KLSAgQ1NtYXJ0TGluayogc0VudHJ5ID0gTlVM
TDsNCisgICAgQ1NtYXJ0TGluayogc0VudHJ5ID0gTlVMTDsNCiANCiAgICAgd2hpbGUoIGYgKQ0K
ICAgICAgICAgew0KQEAgLTE0NzEsOCArMTQ3MSwxOCBAQCBUSW50IENXZWJLaXRWaWV3OjpGaW5k
TmV4dFNtYXJ0TGluayhUQm9vDQogICAgICAgICAgICAgZWxzZSBpZiAoaVNtYXJ0TGlua01vZGUg
PT0gRVNtYXJ0TGlua0VtYWlsICYmICFhRm9yd2FyZCkNCiAgICAgICAgICAgICB7DQogICAgICAg
ICAgICAgICAgIHNFbnRyeSA9IGYtPlNtYXJ0TGlua01hcCgpLT5HZXRQcmV2RW1haWxFbnRyeSgp
Ow0KKyAgICAgICAgICAgIH0gICAgICAgICAgICANCisjaWZkZWYgUkRfNTBfQlJPV1NFUg0KKyAg
ICAgICAgICAgIGVsc2UgaWYgKGlTbWFydExpbmtNb2RlID09IEVTbWFydExpbmtWb2lwUGhvbmUg
JiYgYUZvcndhcmQpDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICBzRW50cnkgPSBm
LT5TbWFydExpbmtNYXAoKS0+R2V0TmV4dFZvaXBQaG9uZUVudHJ5KCk7IA0KICAgICAgICAgICAg
IH0NCi0NCisgICAgICAgICAgICBlbHNlIGlmIChpU21hcnRMaW5rTW9kZSA9PSBFU21hcnRMaW5r
Vm9pcFBob25lICYmICFhRm9yd2FyZCkNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAg
IHNFbnRyeSA9IGYtPlNtYXJ0TGlua01hcCgpLT5HZXRQcmV2Vm9pcFBob25lRW50cnkoKTsNCisg
ICAgICAgICAgICB9DQorI2VuZGlmIA0KKyAgICAgIA0KICAgICAgICAgaWYgKHNFbnRyeSAhPSBO
VUxMKQ0KICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICBpRnJhbWVXaXRoRmluZEtleXdvcmQg
PSBmOw0KQEAgLTE0OTgsMTEgKzE1MDgsMjggQEAgVEludCBDV2ViS2l0Vmlldzo6RmluZE5leHRT
bWFydExpbmsoVEJvbw0KICAgICAgIHB0c2Nyb2xsLmlZICs9IHB0LmlZIC0gaU1haW5GcmFtZS0+
VmlzaWJsZVJlY3QoKS5IZWlnaHQoKS8yOw0KIA0KICAgICAgIGlNYWluRnJhbWUtPlNjcm9sbFRv
KGlGcmFtZVdpdGhGaW5kS2V5d29yZC0+RnJhbWVDb29yZHNJblZpZXdDb29yZHMocHRzY3JvbGwp
KTsNCi0gICAgICAgICAgICBDdXJzb3IoKS0+U2V0UG9zaXRpb24oaUZyYW1lV2l0aEZpbmRLZXl3
b3JkLT5GcmFtZUNvb3Jkc0luVmlld0Nvb3JkcyhwdCkpOw0KLQ0KKyAgICAgIEN1cnNvcigpLT5T
ZXRQb3NpdGlvbihpRnJhbWVXaXRoRmluZEtleXdvcmQtPkZyYW1lQ29vcmRzSW5WaWV3Q29vcmRz
KHB0KSk7DQorI2lmZGVmIFJEXzUwX0JST1dTRVINCisgICAgICBUQnJDdGxEZWZzOjpUQnJDdGxF
bGVtZW50VHlwZSBlbGVUeXBlOw0KKyAgICAgIGlmICggc0VudHJ5LT5pRW50cnlUeXBlID09IENG
aW5kSXRlbUVuZ2luZTo6RUZpbmRJdGVtU2VhcmNoTWFpbEFkZHJlc3NCaW4gJiYgaVNtYXJ0TGlu
a01vZGUgPT0gRVNtYXJ0TGlua0VtYWlsKSANCisgICAgICAgICAgew0KKyAgICAgICAgICBlbGVU
eXBlID0gVEJyQ3RsRGVmczo6RUVsZW1lbnRTbWFydExpbmtFbWFpbDsgICAgICAgICAgIA0KKyAg
ICAgICAgICB9DQorICAgIGVsc2UgaWYgKHNFbnRyeS0+aUVudHJ5VHlwZSA9PSBDRmluZEl0ZW1F
bmdpbmU6OkVGaW5kSXRlbVNlYXJjaFBob25lTnVtYmVyQmluICYmIGlTbWFydExpbmtNb2RlID09
IEVTbWFydExpbmtQaG9uZSkgDQorICAgICAgICB7DQorICAgICAgICAgIGVsZVR5cGUgPSBUQnJD
dGxEZWZzOjpFRWxlbWVudFNtYXJ0TGlua1RlbDsgICAgICAgICAgICAgICANCisgICAgICAgIH0N
CisgICAgICBlbHNlIGlmICggc0VudHJ5LT5pRW50cnlUeXBlID09IENGaW5kSXRlbUVuZ2luZTo6
RUZpbmRJdGVtU2VhcmNoTWFpbEFkZHJlc3NCaW4gfHwgVEJyQ3RsRGVmczo6RUVsZW1lbnRTbWFy
dExpbmtUZWwNCisgICAgICAgICAgJiYgaVNtYXJ0TGlua01vZGUgPT0gRVNtYXJ0TGlua1ZvaXBQ
aG9uZSApDQorICAgICAgICAgIHsNCisgICAgICAgICAgZWxlVHlwZSA9IFRCckN0bERlZnM6OkVF
bGVtZW50U21hcnRMaW5rVm9pcDsNCisgICAgICAgICAgfQ0KKyNlbHNlDQogICAgICAgICAgICAg
VEJyQ3RsRGVmczo6VEJyQ3RsRWxlbWVudFR5cGUgZWxlVHlwZSA9IHNFbnRyeS0+aUVudHJ5VHlw
ZSA9PSBDRmluZEl0ZW1FbmdpbmU6OkVGaW5kSXRlbVNlYXJjaFBob25lTnVtYmVyQmluID8gVEJy
Q3RsRGVmczo6RUVsZW1lbnRTbWFydExpbmtUZWwgOiBUQnJDdGxEZWZzOjpFRWxlbWVudFNtYXJ0
TGlua0VtYWlsOw0KLSAgICAgICAgICAgIFNldEZvY3VzZWRFbGVtZW50VHlwZShlbGVUeXBlKTsN
Ci0gICAgICAgICAgICBDdXJzb3IoKS0+Q3Vyc29yVXBkYXRlKEVUcnVlKTsNCisjZW5kaWYgDQor
ICAgICAgICAgIA0KKyAgICAgIFNldEZvY3VzZWRFbGVtZW50VHlwZShlbGVUeXBlKTsNCisgICAg
ICBDdXJzb3IoKS0+Q3Vyc29yVXBkYXRlKEVUcnVlKTsNCiANCiAgICAgICAvLyBnZXQgdGhlIG5l
dyBjdXJzb3IgcG9zaXRpb24gYWZ0ZXIgdXBkYXRlIHRoZSBjdXJzb3INCiAgICAgICBUUG9pbnQg
bmV3UG9zKEN1cnNvcigpLT5Qb3NpdGlvbigpKTsNCg==
</data>
<flag name="review"
          id="6539"
          type_id="1"
          status="-"
          setter="Sachin.Padma"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15743</attachid>
            <date>2007-07-30 06:35:40 -0700</date>
            <delta_ts>2007-07-30 14:54:04 -0700</delta_ts>
            <desc>New patch</desc>
            <filename>CR409-415.patch</filename>
            <type>text/plain</type>
            <size>18644</size>
            <attacher name="George Guo">george.guo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDI0NzQ5KQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDEyIEBADQorbmFndW8sIHJldmlld2VkIGJ5IDxyZXZpZXdlcj4NCisgREVT
QzogYWRkIG9uZSBmb2N1c2VkIHR5cGUgZm9yIFNtYXJ0TGlua1ZvaXAgDQorIGh0dHA6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzY2DQorDQorDQorICAgICAgICBXQVJOSU5H
OiBOTyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQNCisNCisgICAgICAgICogYnJpZGdlL1dl
YkNvcmVCcmlkZ2UuaDoNCisNCiB5YWRhdmFsbCwgcmV2aWV3ZWQgYnkgPFphbGFuPg0KICBERVND
OiBGaXhlcyBmb3Igd2lkZ2V0IG1lbnUgQVBJDQogIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0NzYzDQpJbmRleDogV2ViQ29yZS9icmlkZ2UvV2ViQ29yZUJyaWRnZS5o
DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9icmlkZ2UvV2ViQ29yZUJyaWRnZS5oCShyZXZpc2lv
biAyNDc0OSkNCisrKyBXZWJDb3JlL2JyaWRnZS9XZWJDb3JlQnJpZGdlLmgJKHdvcmtpbmcgY29w
eSkNCkBAIC0xMjcsOCArMTI3LDEzIEBAIHR5cGVkZWYgZW51bQ0KICAgICBFV2ViQ29yZUVsZW1l
bnRTY3JvbGxCYXIsDQogICAgIEVXZWJDb3JlRWxlbWVudFNtYXJ0TGlua1RlbCwNCiAgICAgRVdl
YkNvcmVFbGVtZW50U21hcnRMaW5rRW1haWwsDQorI2lmZGVmIFJEXzUwX0JST1dTRVINCisgICAg
RVdlYkNvcmVFbGVtZW50QnJva2VuSW1hZ2UsDQorICAgIEVXZWJDb3JlRWxlbWVudFNtYXJ0TGlu
a1ZvaXANCisjZWxzZQ0KICAgICBFV2ViQ29yZUVsZW1lbnRCcm9rZW5JbWFnZQ0KLSAgfSBUV2Vi
Q29yZUZvY3VzZWRFbGVtZW50VHlwZTsNCisjZW5kaWYgDQorICB9IFRXZWJDb3JlRm9jdXNlZEVs
ZW1lbnRUeXBlOyAgDQogDQogdHlwZWRlZiBlbnVtDQogICAgIHsNCkluZGV4OiBXZWJLaXQvQ2hh
bmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjQ3NDkp
DQorKysgV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQ0KQEAgLTEsMyArMSwyNSBAQA0K
K25hZ3VvLCByZXZpZXdlZCBieSA8cmV2aWV3ZXI+DQorIERFU0M6IFtTNjBdIEFjY29yZGluZyB0
byBGaW5kIEl0ZW0gVUkgc3BlYywgYnJvd3NlciBmaW5kaXRlbSBzaG91bGQgaGF2ZSBmaW5kICJW
b0lQIGFkZHJlc3MiIA0KKyBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDc2Ng0KKw0KKyAgICAgICAgKiBCcm93c2VyQ29udHJvbC9pbmMvQnJDdGxEZWZzLmg6DQorICAg
ICAgICAoVEJyQ3RsRGVmczo6KToNCisgICAgICAgICogQnJvd3NlckNvbnRyb2wvc3JjL0JyQ3Rs
LmNwcDoNCisgICAgICAgIChDQnJDdGw6OkhhbmRsZUNvbW1hbmRMKToNCisgICAgICAgICogQnJv
d3NlclZpZXcvaW5jL1NtYXJ0TGlua0hhbmRsZXIuaDoNCisgICAgICAgICogQnJvd3NlclZpZXcv
aW5jL1NtYXJ0TGlua01hcC5oOg0KKyAgICAgICAgKiBCcm93c2VyVmlldy9pbmMvV2ViS2l0Vmll
dy5oOg0KKyAgICAgICAgKiBCcm93c2VyVmlldy9zcmMvU21hcnRMaW5rSGFuZGxlci5jcHA6DQor
ICAgICAgICAoQ1NtYXJ0TGlua0hhbmRsZXI6OkhhbmRsZU1ha2VWb2lwQ2FsbEwpOg0KKyAgICAg
ICAgKiBCcm93c2VyVmlldy9zcmMvU21hcnRMaW5rTWFwLmNwcDoNCisgICAgICAgIChDU21hcnRM
aW5rTWFwOjpDU21hcnRMaW5rTWFwKToNCisgICAgICAgIChDU21hcnRMaW5rTWFwOjpHZXROZXh0
Vm9pcFBob25lRW50cnkpOg0KKyAgICAgICAgKENTbWFydExpbmtNYXA6OkdldFByZXZWb2lwUGhv
bmVFbnRyeSk6DQorICAgICAgICAqIEJyb3dzZXJWaWV3L3NyYy9XZWJLaXRDdXJzb3IuY3BwOg0K
KyAgICAgICAgKENXZWJLaXRDdXJzb3I6OkN1cnNvclVwZGF0ZSk6DQorICAgICAgICAqIEJyb3dz
ZXJWaWV3L3NyYy9XZWJLaXRWaWV3LmNwcDoNCisgICAgICAgIChDV2ViS2l0Vmlldzo6RmluZE5l
eHRTbWFydExpbmspOg0KKw0KIHZicmFkbGV5LCByZXZpZXdlZCBieSBTYWNoaW4NCiAgREVTQzog
QVlOTi03NEFGODQgOiBVc2VybmFtZSBmaWVsZCBub3QgZmlsbGVkIGF1dG9tYXRpY2FsbHkNCiAg
aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2MTINCkluZGV4OiBXZWJL
aXQvQnJvd3NlckNvbnRyb2wvaW5jL0JyQ3RsRGVmcy5oDQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0
L0Jyb3dzZXJDb250cm9sL2luYy9CckN0bERlZnMuaAkocmV2aXNpb24gMjQ3NDkpDQorKysgV2Vi
S2l0L0Jyb3dzZXJDb250cm9sL2luYy9CckN0bERlZnMuaAkod29ya2luZyBjb3B5KQ0KQEAgLTIx
MCw3ICsyMTAsMTggQEAgY2xhc3MgVEJyQ3RsRGVmcw0KICAgICAgICAgICAgIEVDb21tYW5kU21h
cnRMaW5rU2VuZEVtYWlsLCAvLy88IA0KICAgICAgICAgICAgIEVDb21tYW5kU2hvd0FuY2hvckhy
ZWYsICAvLy88RGlzcGxheSB0aGUgVVJMIG9mIGEgaHlwZXJsaW5rIC0gc3VwcG9ydGVkIG9ubHkg
Zm9yIEhUTUwNCiAgICAgICAgICAgICBFQ29tbWFuZExvYWRGb2N1c2VkSW1hZ2UsIC8vLzxMb2Fk
IHRoZSBmb2N1ZXNkIGltYWdlIC0gc3VwcG9ydGVkIG9ubHkgZm9yIEhUTUwNCi0gICAgICAgICAg
ICBFQ29tbWFuZFVuTG9hZFBsdWdpbldpbmRvd3MNCisjaWZkZWYgUkRfNTBfQlJPV1NFUg0KKyAg
ICAgICAgICAgIEVDb21tYW5kVW5Mb2FkUGx1Z2luV2luZG93cywgLy8vPFVubG9hZCBwbHVnaW4g
d2luZG93cw0KKyAgICAgICAgICAgIEVDb21tYW5kRmluZEl0ZW1Wb0lQQWRkcmVzcywgLy8vPEZp
bmQgVm9JUCBhZGRyZXNzIGl0ZW0NCisgICAgICAgICAgICBFQ29tbWFuZFNtYXJ0TGlua01ha2VW
b2lwQ2FsbCAgIC8vLzxNYWtlVm9pcCBDYWxsdGhyb3VnaCBzbWFydGxpbmsNCisjZWxzZQ0KKyAg
ICAgICAgICAgIEVDb21tYW5kVW5Mb2FkUGx1Z2luV2luZG93cyAgIC8vLzxVbmxvYWQgcGx1Z2lu
IHdpbmRvd3MNCisjZW5kaWYgDQorICAgICAgICAgICAgLyoqDQorICAgICAgICAgICAgKiBEaXNw
bGF5cyB0aGUgRmluZEl0ZW0gZGlhbG9nIGFuZCBoaWdobGlnaHRzIGFsbCBvZiB0aGUgVm9JUA0K
KyAgICAgICAgICAgICogYWRkcmVzc2VzIGluIHRoZSBjdXJyZW50IHBhZ2UuIFVzZSB0aGlzIHBh
cmFtZXRlciBvbmx5IGlmIHlvdQ0KKyAgICAgICAgICAgICogc3BlY2lmaWVkIHRoZSBFQ2FwYWJp
bGl0eUZpbmRJdGVtIGNhcGFiaWxpdHkuDQorICAgICAgICAgICAgKi8gICAgICAgICAgICAgICAg
ICAgIA0KICAgICAgICAgICAgIH07DQogICAgICAgICAvKioNCiAgICAgICAgICogVGhlIGxvYWQg
ZXZlbnQgdGhhdCBvY2N1cnJlZC4NCkBAIC02MTEsNyArNjIyLDEyIEBAIGNsYXNzIFRCckN0bERl
ZnMNCiANCiAgICAgICAgICAgICBFRWxlbWVudFNtYXJ0TGlua1RlbCwgLy8vPCBBIHRlbGVwaG9u
ZSBudW1iZXIgaW4gdGhlIHBhZ2UuDQogICAgICAgICAgICAgRUVsZW1lbnRTbWFydExpbmtFbWFp
bCwgLy8vPCBhbiBlbWFpbCBhZGRyZXNzIGluIHRoZSBwYWdlLg0KKyNpZmRlZiBSRF81MF9CUk9X
U0VSDQorICAgICAgICAgICAgRUVsZW1lbnRCcm9rZW5JbWFnZSwgLy8vPCBBIG1pc3NpbmcgaW1h
Z2UgDQorICAgICAgICAgICAgRUVsZW1lbnRTbWFydExpbmtWb2lwIC8vLzwgQSB2b2lwIHNtYXJ0
bGluayANCisjZWxzZQ0KICAgICAgICAgICAgIEVFbGVtZW50QnJva2VuSW1hZ2UgLy8vPCBBIG1p
c3NpbmcgaW1hZ2UgDQorI2VuZGlmIA0KICAgICAgICAgfTsNCiANCiAgICAgICAgIC8qKg0KSW5k
ZXg6IFdlYktpdC9Ccm93c2VyQ29udHJvbC9zcmMvQnJDdGwuY3BwDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
V2ViS2l0L0Jyb3dzZXJDb250cm9sL3NyYy9CckN0bC5jcHAJKHJldmlzaW9uIDI0NzQ5KQ0KKysr
IFdlYktpdC9Ccm93c2VyQ29udHJvbC9zcmMvQnJDdGwuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAt
MTE2LDcgKzExNiwxMyBAQCBzdGF0aWMgY29uc3QgVENvbW1hbmRzQXJyYXkgY29tbWFuZHNBcnJh
DQogICAgIHtUQnJDdGxEZWZzOjpFRWxlbWVudFNtYXJ0TGlua1RlbCwgVEJyQ3RsRGVmczo6RUNv
bW1hbmRTbWFydExpbmtBZGRUb1Bob25lQm9vaywgUl9URVhUX1dNTF9BRERfVE9fQ09OVEFDVFMs
IE5VTEx9LA0KICAgICB7VEJyQ3RsRGVmczo6RUVsZW1lbnRTbWFydExpbmtUZWwsIFRCckN0bERl
ZnM6OkVDb21tYW5kU21hcnRMaW5rU2VuZE1lc3NhZ2UsIFJfVEVYVF9XTUxfU0VORF9NRVNTQUdF
LCBOVUxMfSwNCiAgICAge1RCckN0bERlZnM6OkVFbGVtZW50U21hcnRMaW5rRW1haWwsIFRCckN0
bERlZnM6OkVDb21tYW5kU21hcnRMaW5rU2VuZE1lc3NhZ2UsIFJfVEVYVF9XTUxfU0VORF9NRVNT
QUdFLCBOVUxMfSwNCisjaWZkZWYgUkRfNTBfQlJPV1NFUiAgICANCiAgICAge1RCckN0bERlZnM6
OkVFbGVtZW50U21hcnRMaW5rRW1haWwsIFRCckN0bERlZnM6OkVDb21tYW5kU21hcnRMaW5rQWRk
VG9QaG9uZUJvb2ssIFJfVEVYVF9XTUxfQUREX1RPX0NPTlRBQ1RTLCBOVUxMfQ0KKy8vICAgIHtU
QnJDdGxEZWZzOjpFRWxlbWVudFNtYXJ0TGlua1ZvaXAsIFRCckN0bERlZnM6OkVDb21tYW5kU21h
cnRMaW5rTWFrZVZvaXBDYWxsLCBSX1RFWFRfV01MX0xJU1RfQ0FMTCwgTlVMTH0NCisvLyAgICBU
aGlzIGlzIGRpc2FibGVkLiBvbmNlIFZvaXAgQ2FsbCBpcyBlbmFibGVkLCB0aGVuIHRoaXMgbmVl
ZCB0byBiZSBlbmFibGVkIHRvbyANCisjZWxzZSANCisgICAge1RCckN0bERlZnM6OkVFbGVtZW50
U21hcnRMaW5rRW1haWwsIFRCckN0bERlZnM6OkVDb21tYW5kU21hcnRMaW5rQWRkVG9QaG9uZUJv
b2ssIFJfVEVYVF9XTUxfQUREX1RPX0NPTlRBQ1RTLCBOVUxMfQ0KKyNlbmRpZiANCiAgICAgfTsN
CiANCiAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBMT0NBTCBGVU5DVElPTlMgPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTc1NCw2ICs3NjAsMjEgQEAgRVhQT1JU
X0Mgdm9pZCBDQnJDdGw6OkhhbmRsZUNvbW1hbmRMKFRJbg0KICAgICAgICAgICAgICAgICB9DQog
ICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgfQ0KKyNpZmRlZiBSRF81MF9CUk9XU0VS
DQorICAgICAgICBjYXNlIFRCckN0bERlZnM6OkVDb21tYW5kRmluZEl0ZW1Wb0lQQWRkcmVzczoN
CisgICAgICAgICAgICB7DQorICAgICAgICAgICAgaWYgKCBpV2ViS2l0Q29udHJvbC0+V2ViS2l0
VmlldygpLlNtYXJ0TGlua01vZGUoKSA9PSBFU21hcnRMaW5rTm9uZSApDQorICAgICAgICAgICAg
ICAgIHsNCisgICAgICAgICAgICAgICAgZm9yICggVEludCBpPTA7IGk8aVN0YXRlQ2hhbmdlT2Jz
ZXJ2ZXJBcnJheS5Db3VudCgpOyBpKysgKQ0KKyAgICAgICAgICAgICAgICAgICAgew0KKyAgICAg
ICAgICAgICAgICAgICAgaVN0YXRlQ2hhbmdlT2JzZXJ2ZXJBcnJheVtpXS0+U3RhdGVDaGFuZ2Vk
KFRCckN0bERlZnM6OkVTdGF0ZVNtYXJ0VGV4dFZpZXcsIEVUcnVlKTsNCisgICAgICAgICAgICAg
ICAgICAgIH0NCisgICAgICAgICAgICAgICAgaVdlYktpdENvbnRyb2wtPldlYktpdFZpZXcoKS5T
ZXRTbWFydExpbmtNb2RlKEVTbWFydExpbmtWb2lwUGhvbmUpOw0KKyAgICAgICAgICAgICAgICBp
V2ViS2l0Q29udHJvbC0+V2ViS2l0VmlldygpLkZpbmROZXh0U21hcnRMaW5rKEVUcnVlKTsNCisg
ICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgICAgIH0NCisj
ZW5kaWYgDQogICAgICAgICBjYXNlIFRCckN0bERlZnM6OkVDb21tYW5kRmluZEl0ZW1FTWFpbDoN
CiAgICAgICAgICAgICB7DQogICAgICAgICAgICAgaWYgKCBpV2ViS2l0Q29udHJvbC0+V2ViS2l0
VmlldygpLlNtYXJ0TGlua01vZGUoKSA9PSBFU21hcnRMaW5rTm9uZSApDQpAQCAtNzc3LDYgKzc5
OCwxMyBAQCBFWFBPUlRfQyB2b2lkIENCckN0bDo6SGFuZGxlQ29tbWFuZEwoVEluDQogICAgICAg
ICAgICAgaVdlYktpdENvbnRyb2wtPldlYktpdFZpZXcoKS5NYWluRnJhbWUoKS5TbWFydExpbmtI
YW5kbGVyKCktPkhhbmRsZU1ha2VDYWxsTCgpOw0KICAgICAgICAgICAgIGJyZWFrOw0KICAgICAg
ICAgICAgIH0NCisjaWZkZWYgUkRfNTBfQlJPV1NFUg0KKyAgICAgICAgY2FzZSBUQnJDdGxEZWZz
OjpFQ29tbWFuZFNtYXJ0TGlua01ha2VWb2lwQ2FsbDoNCisgICAgICAgICAgICB7DQorICAgICAg
ICAgICAgaVdlYktpdENvbnRyb2wtPldlYktpdFZpZXcoKS5NYWluRnJhbWUoKS5TbWFydExpbmtI
YW5kbGVyKCktPkhhbmRsZU1ha2VWb2lwQ2FsbEwoKTsNCisgICAgICAgICAgICBicmVhazsNCisg
ICAgICAgICAgICB9DQorI2VuZGlmDQogICAgICAgICBjYXNlIFRCckN0bERlZnM6OkVDb21tYW5k
U21hcnRMaW5rQWRkVG9QaG9uZUJvb2s6DQogICAgICAgICAgICAgew0KICAgICAgICAgICAgIGlX
ZWJLaXRDb250cm9sLT5XZWJLaXRWaWV3KCkuTWFpbkZyYW1lKCkuU21hcnRMaW5rSGFuZGxlcigp
LT5IYW5kbGVBZGRUb1Bob25lQm9vaygpOw0KSW5kZXg6IFdlYktpdC9Ccm93c2VyVmlldy9pbmMv
U21hcnRMaW5rSGFuZGxlci5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJWaWV3L2lu
Yy9TbWFydExpbmtIYW5kbGVyLmgJKHJldmlzaW9uIDI0NzQ5KQ0KKysrIFdlYktpdC9Ccm93c2Vy
Vmlldy9pbmMvU21hcnRMaW5rSGFuZGxlci5oCSh3b3JraW5nIGNvcHkpDQpAQCAtMTExLDYgKzEx
MSwxNiBAQCBjbGFzcyBDU21hcnRMaW5rSGFuZGxlciA6IHB1YmxpYyBDQmFzZQ0KICAgICAgICAg
Ki8NCiAgICAgICAgIHZvaWQgSGFuZGxlU2VuZE1lc3NhZ2UoKTsNCiANCisjaWZkZWYgUkRfNTBf
QlJPV1NFUg0KKyAgICAgICAgLyoqDQorICAgICAgICAqDQorICAgICAgICAqIEBzaW5jZSA1LjAN
CisgICAgICAgICogQHBhcmFtDQorICAgICAgICAqIEByZXR1cm4gDQorICAgICAgICAqLw0KKyAg
ICAgICAgdm9pZCBIYW5kbGVNYWtlVm9pcENhbGxMKCk7DQorI2VuZGlmIA0KKw0KICAgICBwcml2
YXRlOg0KIA0KICAgICAgICAgLyoqDQpJbmRleDogV2ViS2l0L0Jyb3dzZXJWaWV3L2luYy9TbWFy
dExpbmtNYXAuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyVmlldy9pbmMvU21hcnRM
aW5rTWFwLmgJKHJldmlzaW9uIDI0NzQ5KQ0KKysrIFdlYktpdC9Ccm93c2VyVmlldy9pbmMvU21h
cnRMaW5rTWFwLmgJKHdvcmtpbmcgY29weSkNCkBAIC03Niw3ICs3Niw3IEBAIHB1YmxpYzoNCiAg
ICAgdm9pZCBTdG9wSW5kZXhpbmdTbWFydExpbmtzKCk7DQogICAgIHZvaWQgUmVJbmRleFNtYXJ0
TGlua3MoKTsNCiAgIA0KLXB1YmxpYzogDQorcHVibGljOiAgDQogICAgIENTbWFydExpbmsqIEdl
dE5leHRQaG9uZUVudHJ5KCk7DQogICAgIENTbWFydExpbmsqIEdldE5leHRFbWFpbEVudHJ5KCk7
DQogICAgIENTbWFydExpbmsqIEdldFByZXZQaG9uZUVudHJ5KCk7DQpAQCAtODQsNiArODQsMTAg
QEAgcHVibGljOiANCiAgICAgDQogICAgIENTbWFydExpbmsqIEdldEVudHJ5KGNvbnN0IFRSZWN0
JiBhUmVjdCk7DQogICAgIFRJbnQgR2V0RW50cnlDb3VudCgpIHsgcmV0dXJuIGlTbWFydExpbmtB
cnJheS5Db3VudCgpOyB9DQorI2lmZGVmIFJEXzUwX0JST1dTRVINCisgICAgQ1NtYXJ0TGluayog
R2V0TmV4dFZvaXBQaG9uZUVudHJ5KCk7ICAgIA0KKyAgICBDU21hcnRMaW5rKiBHZXRQcmV2Vm9p
cFBob25lRW50cnkoKTsgICAgDQorI2VuZGlmIA0KICAgICAgICAgDQogcHJpdmF0ZTogICAgDQog
ICAgIHN0YXRpYyBUSW50IEluZGV4aW5nQ2FsbGJhY2tMKFRBbnkqIGFXZWJLaXRTbWFydFRleHRN
YXApOw0KQEAgLTk4LDkgKzEwMiwxMyBAQCBwcml2YXRlOg0KICAgICBSUG9pbnRlckFycmF5PENT
bWFydExpbms+IGlTbWFydExpbmtBcnJheTsgICAgDQogICAgIA0KICAgICBUSW50IGlQaG9uZUVu
dHJ5SW5kZXg7DQotICAgIFRJbnQgaUVtYWlsRW50cnlJbmRleDsgICAgDQorICAgIFRJbnQgaUVt
YWlsRW50cnlJbmRleDsNCiAgICAgDQogICAgIENJZGxlKiBpSW5kZXhpbmdDYWxsYmFjazsNCisj
aWZkZWYgUkRfNTBfQlJPV1NFUg0KKyAgICBUSW50IGlWb2lwUGhvbmVFbnRyeUluZGV4Ow0KKyNl
bmRpZiAgICAgDQorDQogICAgIH07DQogDQogI2VuZGlmDQpJbmRleDogV2ViS2l0L0Jyb3dzZXJW
aWV3L2luYy9XZWJLaXRWaWV3LmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQnJvd3NlclZpZXcv
aW5jL1dlYktpdFZpZXcuaAkocmV2aXNpb24gMjQ3NDkpDQorKysgV2ViS2l0L0Jyb3dzZXJWaWV3
L2luYy9XZWJLaXRWaWV3LmgJKHdvcmtpbmcgY29weSkNCkBAIC05OSw2ICs5OSw5IEBAIGVudW0g
VFNtYXJ0TGlua01vZGUNCiAgICAgew0KICAgICBFU21hcnRMaW5rUGhvbmUsICAgICAgICAgICAg
ICAgICAgICAgICAvL0ZpbmRpbmcgcGhvbmUgbnVtYmVycyBtb2RlDQogICAgIEVTbWFydExpbmtF
bWFpbCwgICAgICAgICAgICAgICAgICAgICAgIC8vRmluZGluZyBlbWFpbCBhZGRyZXNzZXMgbW9k
ZQ0KKyNpZmRlZiBSRF81MF9CUk9XU0VSDQorICAgIEVTbWFydExpbmtWb2lwUGhvbmUsICAgICAg
ICAgICAgICAgICAgICAvL0ZpbmRpbmcgVm9pcCBhZGRyZXNzbW9kZQ0KKyNlbmRpZiANCiAgICAg
RVNtYXJ0TGlua05vbmUgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm9ybWFsIE1vZGUNCiAg
ICAgfTsNCiANCkluZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcvc3JjL1NtYXJ0TGlua0hhbmRsZXIu
Y3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9TbWFydExpbmtIYW5k
bGVyLmNwcAkocmV2aXNpb24gMjQ3NDkpDQorKysgV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9TbWFy
dExpbmtIYW5kbGVyLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTE5MCw2ICsxOTAsNDYgQEAgdm9p
ZCBDU21hcnRMaW5rSGFuZGxlcjo6UHJlcGFyZVNlbmRVaSgpDQogICAgICAgICB9DQogICAgIH0N
CiANCisjaWZkZWYgUkRfNTBfQlJPV1NFUg0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8g
Q1NtYXJ0TGlua0hhbmRsZXI6OkhhbmRsZU1ha2VWb2lwQ2FsbEwNCisvLw0KKy8vIFBob25lIG51
bWJlcg0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCit2b2lkIENTbWFydExpbmtIYW5k
bGVyOjpIYW5kbGVNYWtlVm9pcENhbGxMKCkNCisgICAgew0KKw0KKyNpZm5kZWYgX19CUk9XU0VS
X1NESw0KKyAgICAvL1ByZXBhcmUgQUlXIHNlcnZpY2UgaGFuZGxlcg0KKyAgICBQcmVwYXJlQWl3
SGFuZGxlckwoKTsNCisgICAgX19BU1NFUlRfREVCVUcoaUFpd0hhbmRsZXIsIFVzZXI6OlBhbmlj
KF9MKCJTbWFydExpbmtIYW5kbGVyIiksIEtFcnJHZW5lcmFsKSk7DQorDQorDQorICAvL0dldCB0
aGUgaW5mbyBub2RlIHVuZGVyIGN1cnNvcg0KKyAgICBDU21hcnRMaW5rKiBlbnRyeSA9IGlXZWJL
aXRGcmFtZS0+V2ViS2l0VmlldygpLkN1cnNvcigpLT5HZXRTbWFydExpbmtFbnRyeSgpOw0KKyAg
ICANCisgIGlmKGVudHJ5ICYmIGVudHJ5LT5pRW50cnlUeXBlID09IENGaW5kSXRlbUVuZ2luZTo6
RUZpbmRJdGVtU2VhcmNoUGhvbmVOdW1iZXJCaW4gfHwgQ0ZpbmRJdGVtRW5naW5lOjpFRmluZEl0
ZW1TZWFyY2hNYWlsQWRkcmVzc0JpbiApDQorICAgICAgICB7DQorICAgICAgICBUUHRyIG51bWJl
clB0ciA9IGVudHJ5LT5pRW50cnlUZXh0LT5EZXMoKTsNCisgICAgICAgIC8vRm9ybWF0IHRoZSBQ
aG9uZSBOdW1iZXINCisgICAgICAgIENvbW1vblBob25lUGFyc2VyOjpQYXJzZVBob25lTnVtYmVy
KCBudW1iZXJQdHIsIENvbW1vblBob25lUGFyc2VyOjpFUGhvbmVDbGllbnROdW1iZXIpOw0KKyAg
ICAgICAgLy9DYWxsIEFJVyBmcmFtZXdvcmsgZnVuY3Rpb24gdG8gbWFrZSB0aGUgY2FsbA0KKyAg
ICAgICAgQ0Fpd0RpYWxEYXRhRXh0KiBkaWFsRGF0YUV4dCA9IENBaXdEaWFsRGF0YUV4dDo6TmV3
TEMoKTsgDQorICAgICAgICBkaWFsRGF0YUV4dC0+U2V0UGhvbmVOdW1iZXJMKCBudW1iZXJQdHIg
KTsgDQorICAgICAgICBkaWFsRGF0YUV4dC0+U2V0Q2FsbFR5cGUoIENBaXdEaWFsRGF0YTo6RUFJ
V1ZvaVAgKTsgICAgICAgICAgICAgICAgICANCisNCisgICAgICAgIENBaXdHZW5lcmljUGFyYW1M
aXN0JiBwYXJhbUxpc3QgPSBpQWl3SGFuZGxlci0+SW5QYXJhbUxpc3RMKCk7DQorICAgICAgICBk
aWFsRGF0YUV4dC0+RmlsbEluUGFyYW1MaXN0TCggcGFyYW1MaXN0ICk7ICAgDQorICAgICAgDQor
ICAgICAgICBpQWl3SGFuZGxlci0+RXhlY3V0ZVNlcnZpY2VDbWRMKEtBaXdDbWRDYWxsLCBwYXJh
bUxpc3QsIGlBaXdIYW5kbGVyLT5PdXRQYXJhbUxpc3RMKCksIA0KKyAgICAgICAgICAgIDAsIDAg
KTsgLy8gLy8gTm8gb3B0aW9ucyB1c2VkICwgbm8gZGlhbCByZXN1bHRzIGFyZSB3YW50ZWQuDQor
ICAgICAgICB9DQorICAgICAgICBDbGVhbnVwU3RhY2s6OlBvcEFuZERlc3Ryb3koKTsgLy8gZGlh
bERhdGFFeHQgDQorI2VuZGlmDQorICAgIH0NCisjZW5kaWYgDQorDQogLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0NCiAvLyBDU21hcnRMaW5rSGFuZGxlcjo6SGFuZGxlTWFrZUNhbGxMDQogLy8NCklu
ZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcvc3JjL1NtYXJ0TGlua01hcC5jcHANCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBXZWJLaXQvQnJvd3NlclZpZXcvc3JjL1NtYXJ0TGlua01hcC5jcHAJKHJldmlzaW9uIDI0
NzQ5KQ0KKysrIFdlYktpdC9Ccm93c2VyVmlldy9zcmMvU21hcnRMaW5rTWFwLmNwcAkod29ya2lu
ZyBjb3B5KQ0KQEAgLTIzMCw4ICsyMzAsMTMgQEAgQ1NtYXJ0TGlua01hcCogQ1NtYXJ0TGlua01h
cDo6TmV3TEMoY29ucw0KIC8vDQogLy8gDQogLy8gDQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K
LUNTbWFydExpbmtNYXA6OkNTbWFydExpbmtNYXAoY29uc3QgQ1dlYktpdEZyYW1lKiBhV2ViS2l0
RnJhbWUpIDogaVdlYktpdEZyYW1lKGFXZWJLaXRGcmFtZSksIGlQaG9uZUVudHJ5SW5kZXgoMCks
IGlFbWFpbEVudHJ5SW5kZXgoMCkNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIA0KK0NTbWFydExp
bmtNYXA6OkNTbWFydExpbmtNYXAoY29uc3QgQ1dlYktpdEZyYW1lKiBhV2ViS2l0RnJhbWUpIDog
aVdlYktpdEZyYW1lKGFXZWJLaXRGcmFtZSksIGlQaG9uZUVudHJ5SW5kZXgoMCksIA0KKyNpZmRl
ZiBSRF81MF9CUk9XU0VSDQorICAgIGlWb2lwUGhvbmVFbnRyeUluZGV4KDApLCANCisjZW5kaWYN
CisgICAgaUVtYWlsRW50cnlJbmRleCgwKQ0KKyAgICANCiAgICAgew0KICAgICB9DQogDQpAQCAt
MjgwLDYgKzI4NSw0MiBAQCBDU21hcnRMaW5rKiBDU21hcnRMaW5rTWFwOjpHZXRFbnRyeShjb25z
DQogICAgIA0KICAgfQ0KICAgICANCisjaWZkZWYgUkRfNTBfQlJPV1NFUg0KKy8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0NCisvLyBDU21hcnRMaW5rTWFwOjpHZXROZXh0Vm9pcFBob25lRW50cnkNCisv
LyBHZXRzIHRoZSBuZXh0IHBob25lIGVudHJ5IGFuZCBtb3ZlcyB0aGUgcG9zaXRpb24gb25lIGZv
cndhcmQNCisvLyANCisvLyANCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorQ1NtYXJ0TGluayog
Q1NtYXJ0TGlua01hcDo6R2V0TmV4dFZvaXBQaG9uZUVudHJ5KCkNCisgIHsgICANCisgIGlmIChp
U21hcnRMaW5rQXJyYXkuQ291bnQoKSA+IDApDQorICAgIHsNCisgICAgICAgICAgICAgICAgICAN
CisgICAgLy9pZiB5b3UgcmVhY2ggdGhlIGVuZCBvZiB0aGUgbGlzdCBsZXQgb3RoZXIgZnJhbWVz
IGhhdmUgYSBjaGFuY2UgYW5kIHJldHVybiBudWxsDQorICAgIGlmIChpVm9pcFBob25lRW50cnlJ
bmRleCA+PSAwKQ0KKyAgICAgIHsNCisgICAgICAgICAgICAgICAgICAgICAgDQorICAgICAgd2hp
bGUgKGlWb2lwUGhvbmVFbnRyeUluZGV4PGlTbWFydExpbmtBcnJheS5Db3VudCgpKQ0KKyAgICAg
ICAgeyAgICAgDQorICAgICAgICBDU21hcnRMaW5rKiB0ZXh0RW50cnkgPSBpU21hcnRMaW5rQXJy
YXlbaVZvaXBQaG9uZUVudHJ5SW5kZXhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICANCisgICAgaWYgKHRleHRFbnRyeS0+aUVudHJ5VHlwZSA9PSBDRmluZEl0ZW1FbmdpbmU6OkVG
aW5kSXRlbVNlYXJjaFBob25lTnVtYmVyQmluIHx8IENGaW5kSXRlbUVuZ2luZTo6RUZpbmRJdGVt
U2VhcmNoTWFpbEFkZHJlc3NCaW4gKSAgICAgICAgDQorICAgICAgICAgIHsNCisgICAgICAgICAg
KytpVm9pcFBob25lRW50cnlJbmRleDsgICAgICAgICANCisgICAgICAgICAgcmV0dXJuIHRleHRF
bnRyeTsgDQorICAgICAgICAgIH0NCisgICAgICAgICAgDQorICAgICAgICArK2lWb2lwUGhvbmVF
bnRyeUluZGV4Ow0KKyAgICAgICAgfQ0KKyAgICAgICAgICANCisgICAgICB9DQorDQorICAgIH0N
CisgICAgDQorICAgIGlWb2lwUGhvbmVFbnRyeUluZGV4ID0gMDsNCisgICAgcmV0dXJuIE5VTEw7
ICANCisgIH0NCisjZW5kaWYgDQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8vIENTbWFy
dExpbmtNYXA6OkdldE5leHRQaG9uZUVudHJ5DQpAQCAtMzE2LDYgKzM1Nyw0MiBAQCBDU21hcnRM
aW5rKiBDU21hcnRMaW5rTWFwOjpHZXROZXh0UGhvbmVFDQogICAgIHJldHVybiBOVUxMOyAgDQog
ICB9DQogDQorI2lmZGVmIFJEXzUwX0JST1dTRVINCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQor
Ly8gQ1NtYXJ0TGlua01hcDo6R2V0UHJldlZvaXBQaG9uZUVudHJ5DQorLy8gR2V0cyB0aGUgcHJl
dmlvdXMgZW1haWwgZW50cnkgYW5kIG1vdmVzIHRoZSBwb3NpdGlvbiBvbmUgYmFja3dhcmRzDQor
Ly8gDQorLy8gDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKw0KK0NTbWFydExpbmsqIENTbWFy
dExpbmtNYXA6OkdldFByZXZWb2lwUGhvbmVFbnRyeSgpDQorICB7IA0KKyAgaWYgKGlTbWFydExp
bmtBcnJheS5Db3VudCgpID4gMCkNCisgICAgew0KKyAgICAgICAgICAgICAgICAgIA0KKyAgICAv
L2lmIHlvdSByZWFjaCB0aGUgZW5kIG9mIHRoZSBsaXN0IGxldCBvdGhlciBmcmFtZXMgaGF2ZSBh
IGNoYW5jZSBhbmQgcmV0dXJuIG51bGwNCisgICAgaWYgKGlWb2lwUGhvbmVFbnRyeUluZGV4IDwg
aVNtYXJ0TGlua0FycmF5LkNvdW50KCkpDQorICAgICAgew0KKyAgICAgICAgICAgICAgICAgICAg
ICANCisgICAgICB3aGlsZSAoaVZvaXBQaG9uZUVudHJ5SW5kZXg+PTApDQorICAgICAgICB7ICAg
ICANCisgICAgICAgIENTbWFydExpbmsqIHRleHRFbnRyeSA9IGlTbWFydExpbmtBcnJheVtpVm9p
cFBob25lRW50cnlJbmRleF07DQorICAgICAgICBpZiAodGV4dEVudHJ5LT5pRW50cnlUeXBlID09
IENGaW5kSXRlbUVuZ2luZTo6RUZpbmRJdGVtU2VhcmNoUGhvbmVOdW1iZXJCaW4gfHwgQ0ZpbmRJ
dGVtRW5naW5lOjpFRmluZEl0ZW1TZWFyY2hNYWlsQWRkcmVzc0JpbikgICAgICAgIA0KKyAgICAg
ICAgICB7DQorICAgICAgICAgIC0taVZvaXBQaG9uZUVudHJ5SW5kZXg7ICAgICAgICAgDQorICAg
ICAgICAgIHJldHVybiB0ZXh0RW50cnk7IA0KKyAgICAgICAgICB9DQorICAgICAgICAgLS1pVm9p
cFBob25lRW50cnlJbmRleDsNCisgICAgICAgIH0NCisgICAgICAgICAgDQorICAgICAgfQ0KKw0K
KyAgICBpVm9pcFBob25lRW50cnlJbmRleCA9IGlTbWFydExpbmtBcnJheS5Db3VudCgpLTE7DQor
ICAgIH0NCisgIHJldHVybiBOVUxMOyAgICANCisgIH0NCisjZW5kaWYgDQorICANCiAvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tDQogLy8gQ1NtYXJ0TGlua01hcDo6R2V0UHJldlBob25lRW50cnkNCiAv
LyBHZXRzIHRoZSBwcmV2aW91cyBlbWFpbCBlbnRyeSBhbmQgbW92ZXMgdGhlIHBvc2l0aW9uIG9u
ZSBiYWNrd2FyZHMNCkluZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcvc3JjL1dlYktpdEN1cnNvci5j
cHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQnJvd3NlclZpZXcvc3JjL1dlYktpdEN1cnNvci5j
cHAJKHJldmlzaW9uIDI0NzQ5KQ0KKysrIFdlYktpdC9Ccm93c2VyVmlldy9zcmMvV2ViS2l0Q3Vy
c29yLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTIzNCw2ICsyMzQsMTQgQEAgdm9pZCBDV2ViS2l0
Q3Vyc29yOjpDdXJzb3JVcGRhdGUoIFRCb29sIA0KICAgICAgICAgICAgICAgICBzcHJpdGVNZW0u
aUJpdG1hcCA9IGlTbWFydExpbmtFbWFpbEltYWdlLmlJbWFnZTsNCiAgICAgICAgICAgICAgICAg
c3ByaXRlTWVtLmlNYXNrQml0bWFwID0gaVNtYXJ0TGlua0VtYWlsSW1hZ2UuaU1hc2s7DQogICAg
ICAgICAgICAgICAgIH0NCisjaWZkZWYgUkRfNTBfQlJPV1NFUg0KKyAgICAgICAgICAgIGVsc2Ug
aWYgKCBpVmlldy0+Rm9jdXNlZEVsZW1lbnRUeXBlKCkgPT0gVEJyQ3RsRGVmczo6RUVsZW1lbnRT
bWFydExpbmtWb2lwICkNCisgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICBSZXNl
dFRyYW5zcGFyZW5jeSgpOw0KKyAgICAgICAgICAgICAgICBzcHJpdGVNZW0uaUJpdG1hcCA9IGlT
bWFydExpbmtQaG9uZUltYWdlLmlJbWFnZTsNCisgICAgICAgICAgICAgICAgc3ByaXRlTWVtLmlN
YXNrQml0bWFwID0gaVNtYXJ0TGlua1Bob25lSW1hZ2UuaU1hc2s7DQorICAgICAgICAgICAgICAg
IH0NCisjZW5kaWYgDQogICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICB7DQogICAg
ICAgICAgICAgICAgIFJlc2V0VHJhbnNwYXJlbmN5KCk7DQpJbmRleDogV2ViS2l0L0Jyb3dzZXJW
aWV3L3NyYy9XZWJLaXRWaWV3LmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyVmll
dy9zcmMvV2ViS2l0Vmlldy5jcHAJKHJldmlzaW9uIDI0NzQ5KQ0KKysrIFdlYktpdC9Ccm93c2Vy
Vmlldy9zcmMvV2ViS2l0Vmlldy5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0xNDQ3LDcgKzE0NDcs
NyBAQCBUSW50IENXZWJLaXRWaWV3OjpGaW5kTmV4dFNtYXJ0TGluayhUQm9vDQogICB7DQogDQog
ICAgIENXZWJLaXRGcmFtZSogZiA9IChpRnJhbWVXaXRoRmluZEtleXdvcmQpID8gaUZyYW1lV2l0
aEZpbmRLZXl3b3JkIDogaU1haW5GcmFtZTsNCi0gIENTbWFydExpbmsqIHNFbnRyeSA9IE5VTEw7
DQorICAgIENTbWFydExpbmsqIHNFbnRyeSA9IE5VTEw7DQogDQogICAgIHdoaWxlKCBmICkNCiAg
ICAgICAgIHsNCkBAIC0xNDcyLDcgKzE0NzIsMTcgQEAgVEludCBDV2ViS2l0Vmlldzo6RmluZE5l
eHRTbWFydExpbmsoVEJvbw0KICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgc0VudHJ5
ID0gZi0+U21hcnRMaW5rTWFwKCktPkdldFByZXZFbWFpbEVudHJ5KCk7DQogICAgICAgICAgICAg
fQ0KLQ0KKyNpZmRlZiBSRF81MF9CUk9XU0VSDQorICAgICAgICAgICAgZWxzZSBpZiAoaVNtYXJ0
TGlua01vZGUgPT0gRVNtYXJ0TGlua1ZvaXBQaG9uZSAmJiBhRm9yd2FyZCkNCisgICAgICAgICAg
ICB7DQorICAgICAgICAgICAgICAgIHNFbnRyeSA9IGYtPlNtYXJ0TGlua01hcCgpLT5HZXROZXh0
Vm9pcFBob25lRW50cnkoKTsgDQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGVsc2UgaWYg
KGlTbWFydExpbmtNb2RlID09IEVTbWFydExpbmtWb2lwUGhvbmUgJiYgIWFGb3J3YXJkKQ0KKyAg
ICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgc0VudHJ5ID0gZi0+U21hcnRMaW5rTWFwKCkt
PkdldFByZXZWb2lwUGhvbmVFbnRyeSgpOw0KKyAgICAgICAgICAgIH0NCisjZW5kaWYgDQorICAg
ICAgDQogICAgICAgICBpZiAoc0VudHJ5ICE9IE5VTEwpDQogICAgICAgICAgICAgew0KICAgICAg
ICAgICAgIGlGcmFtZVdpdGhGaW5kS2V5d29yZCA9IGY7DQpAQCAtMTQ5OCwxMSArMTUwOCwyOCBA
QCBUSW50IENXZWJLaXRWaWV3OjpGaW5kTmV4dFNtYXJ0TGluayhUQm9vDQogICAgICAgcHRzY3Jv
bGwuaVkgKz0gcHQuaVkgLSBpTWFpbkZyYW1lLT5WaXNpYmxlUmVjdCgpLkhlaWdodCgpLzI7DQog
DQogICAgICAgaU1haW5GcmFtZS0+U2Nyb2xsVG8oaUZyYW1lV2l0aEZpbmRLZXl3b3JkLT5GcmFt
ZUNvb3Jkc0luVmlld0Nvb3JkcyhwdHNjcm9sbCkpOw0KLSAgICAgICAgICAgIEN1cnNvcigpLT5T
ZXRQb3NpdGlvbihpRnJhbWVXaXRoRmluZEtleXdvcmQtPkZyYW1lQ29vcmRzSW5WaWV3Q29vcmRz
KHB0KSk7DQotDQorICAgICAgQ3Vyc29yKCktPlNldFBvc2l0aW9uKGlGcmFtZVdpdGhGaW5kS2V5
d29yZC0+RnJhbWVDb29yZHNJblZpZXdDb29yZHMocHQpKTsNCisjaWZkZWYgUkRfNTBfQlJPV1NF
Ug0KKyAgICAgIFRCckN0bERlZnM6OlRCckN0bEVsZW1lbnRUeXBlIGVsZVR5cGU7DQorICAgICAg
aWYgKCBzRW50cnktPmlFbnRyeVR5cGUgPT0gQ0ZpbmRJdGVtRW5naW5lOjpFRmluZEl0ZW1TZWFy
Y2hNYWlsQWRkcmVzc0JpbiAmJiBpU21hcnRMaW5rTW9kZSA9PSBFU21hcnRMaW5rRW1haWwpIA0K
KyAgICAgICAgICB7DQorICAgICAgICAgIGVsZVR5cGUgPSBUQnJDdGxEZWZzOjpFRWxlbWVudFNt
YXJ0TGlua0VtYWlsOyAgICAgICAgICAgDQorICAgICAgICAgIH0NCisgICAgICBlbHNlIGlmIChz
RW50cnktPmlFbnRyeVR5cGUgPT0gQ0ZpbmRJdGVtRW5naW5lOjpFRmluZEl0ZW1TZWFyY2hQaG9u
ZU51bWJlckJpbiAmJiBpU21hcnRMaW5rTW9kZSA9PSBFU21hcnRMaW5rUGhvbmUpIA0KKyAgICAg
ICAgew0KKyAgICAgICAgICBlbGVUeXBlID0gVEJyQ3RsRGVmczo6RUVsZW1lbnRTbWFydExpbmtU
ZWw7ICAgICAgICAgICAgICAgDQorICAgICAgICB9DQorICAgICAgZWxzZSBpZiAoIHNFbnRyeS0+
aUVudHJ5VHlwZSA9PSBDRmluZEl0ZW1FbmdpbmU6OkVGaW5kSXRlbVNlYXJjaE1haWxBZGRyZXNz
QmluIHx8IFRCckN0bERlZnM6OkVFbGVtZW50U21hcnRMaW5rVGVsDQorICAgICAgICAgICYmIGlT
bWFydExpbmtNb2RlID09IEVTbWFydExpbmtWb2lwUGhvbmUgKQ0KKyAgICAgICAgICB7DQorICAg
ICAgICAgIGVsZVR5cGUgPSBUQnJDdGxEZWZzOjpFRWxlbWVudFNtYXJ0TGlua1ZvaXA7DQorICAg
ICAgICAgIH0NCisjZWxzZQ0KICAgICAgICAgICAgIFRCckN0bERlZnM6OlRCckN0bEVsZW1lbnRU
eXBlIGVsZVR5cGUgPSBzRW50cnktPmlFbnRyeVR5cGUgPT0gQ0ZpbmRJdGVtRW5naW5lOjpFRmlu
ZEl0ZW1TZWFyY2hQaG9uZU51bWJlckJpbiA/IFRCckN0bERlZnM6OkVFbGVtZW50U21hcnRMaW5r
VGVsIDogVEJyQ3RsRGVmczo6RUVsZW1lbnRTbWFydExpbmtFbWFpbDsNCi0gICAgICAgICAgICBT
ZXRGb2N1c2VkRWxlbWVudFR5cGUoZWxlVHlwZSk7DQotICAgICAgICAgICAgQ3Vyc29yKCktPkN1
cnNvclVwZGF0ZShFVHJ1ZSk7DQorI2VuZGlmIA0KKyAgICAgICAgICANCisgICAgICBTZXRGb2N1
c2VkRWxlbWVudFR5cGUoZWxlVHlwZSk7DQorICAgICAgQ3Vyc29yKCktPkN1cnNvclVwZGF0ZShF
VHJ1ZSk7DQogDQogICAgICAgLy8gZ2V0IHRoZSBuZXcgY3Vyc29yIHBvc2l0aW9uIGFmdGVyIHVw
ZGF0ZSB0aGUgY3Vyc29yDQogICAgICAgVFBvaW50IG5ld1BvcyhDdXJzb3IoKS0+UG9zaXRpb24o
KSk7DQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15751</attachid>
            <date>2007-07-30 14:54:04 -0700</date>
            <delta_ts>2007-07-31 14:49:51 -0700</delta_ts>
            <desc>patch without ifdef </desc>
            <filename>CR409-415.patch</filename>
            <type>text/plain</type>
            <size>17668</size>
            <attacher name="George Guo">george.guo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDI0NzgxKQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDExIEBADQorbmFndW8sIHJldmlld2VkIGJ5IDxyZXZpZXdlcj4NCisgREVT
QzogYWRkIG9uZSBmb2N1c2VkIHR5cGUgZm9yIFNtYXJ0TGlua1ZvaXAgDQorIGh0dHA6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzY2DQorDQorICAgICAgICBXQVJOSU5HOiBO
TyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQNCisNCisgICAgICAgICogYnJpZGdlL1dlYkNv
cmVCcmlkZ2UuaDoNCisNCiB5YWRhdmFsbCwgcmV2aWV3ZWQgYnkgPFphbGFuPg0KICBERVNDOiBG
aXhlcyBmb3Igd2lkZ2V0IG1lbnUgQVBJDQogIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0NzYzDQpJbmRleDogV2ViQ29yZS9icmlkZ2UvV2ViQ29yZUJyaWRnZS5oDQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09DQotLS0gV2ViQ29yZS9icmlkZ2UvV2ViQ29yZUJyaWRnZS5oCShyZXZpc2lvbiAy
NDc4MSkNCisrKyBXZWJDb3JlL2JyaWRnZS9XZWJDb3JlQnJpZGdlLmgJKHdvcmtpbmcgY29weSkN
CkBAIC0xMjcsOCArMTI3LDkgQEAgdHlwZWRlZiBlbnVtDQogICAgIEVXZWJDb3JlRWxlbWVudFNj
cm9sbEJhciwNCiAgICAgRVdlYkNvcmVFbGVtZW50U21hcnRMaW5rVGVsLA0KICAgICBFV2ViQ29y
ZUVsZW1lbnRTbWFydExpbmtFbWFpbCwNCi0gICAgRVdlYkNvcmVFbGVtZW50QnJva2VuSW1hZ2UN
Ci0gIH0gVFdlYkNvcmVGb2N1c2VkRWxlbWVudFR5cGU7DQorICAgIEVXZWJDb3JlRWxlbWVudEJy
b2tlbkltYWdlLA0KKyAgICBFV2ViQ29yZUVsZW1lbnRTbWFydExpbmtWb2lwDQorICB9IFRXZWJD
b3JlRm9jdXNlZEVsZW1lbnRUeXBlOyAgDQogDQogdHlwZWRlZiBlbnVtDQogICAgIHsNCkluZGV4
OiBXZWJLaXQvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0NoYW5nZUxvZwkocmV2
aXNpb24gMjQ3ODEpDQorKysgV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQ0KQEAgLTEs
MyArMSwyNSBAQA0KK25hZ3VvLCByZXZpZXdlZCBieSA8cmV2aWV3ZXI+DQorIERFU0M6IFtTNjBd
IEFjY29yZGluZyB0byBGaW5kIEl0ZW0gVUkgc3BlYywgYnJvd3NlciBmaW5kaXRlbSBzaG91bGQg
aGF2ZSBmaW5kIFZvSVAgYWRkcmVzcw0KKyBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDc2Ng0KKw0KKyAgICAgICAgKiBCcm93c2VyQ29udHJvbC9pbmMvQnJDdGxEZWZz
Lmg6DQorICAgICAgICAoVEJyQ3RsRGVmczo6KToNCisgICAgICAgICogQnJvd3NlckNvbnRyb2wv
c3JjL0JyQ3RsLmNwcDoNCisgICAgICAgIChDQnJDdGw6OkhhbmRsZUNvbW1hbmRMKToNCisgICAg
ICAgICogQnJvd3NlclZpZXcvaW5jL1NtYXJ0TGlua0hhbmRsZXIuaDoNCisgICAgICAgICogQnJv
d3NlclZpZXcvaW5jL1NtYXJ0TGlua01hcC5oOg0KKyAgICAgICAgKiBCcm93c2VyVmlldy9pbmMv
V2ViS2l0Vmlldy5oOg0KKyAgICAgICAgKiBCcm93c2VyVmlldy9zcmMvU21hcnRMaW5rSGFuZGxl
ci5jcHA6DQorICAgICAgICAoQ1NtYXJ0TGlua0hhbmRsZXI6OkhhbmRsZU1ha2VWb2lwQ2FsbEwp
Og0KKyAgICAgICAgKiBCcm93c2VyVmlldy9zcmMvU21hcnRMaW5rTWFwLmNwcDoNCisgICAgICAg
IChDU21hcnRMaW5rTWFwOjpDU21hcnRMaW5rTWFwKToNCisgICAgICAgIChDU21hcnRMaW5rTWFw
OjpHZXROZXh0Vm9pcFBob25lRW50cnkpOg0KKyAgICAgICAgKENTbWFydExpbmtNYXA6OkdldFBy
ZXZWb2lwUGhvbmVFbnRyeSk6DQorICAgICAgICAqIEJyb3dzZXJWaWV3L3NyYy9XZWJLaXRDdXJz
b3IuY3BwOg0KKyAgICAgICAgKENXZWJLaXRDdXJzb3I6OkN1cnNvclVwZGF0ZSk6DQorICAgICAg
ICAqIEJyb3dzZXJWaWV3L3NyYy9XZWJLaXRWaWV3LmNwcDoNCisgICAgICAgIChDV2ViS2l0Vmll
dzo6RmluZE5leHRTbWFydExpbmspOg0KKw0KIHZicmFkbGV5LCByZXZpZXdlZCBieSBTYWNoaW4N
CiAgREVTQzogQVlOTi03NEFGODQgOiBVc2VybmFtZSBmaWVsZCBub3QgZmlsbGVkIGF1dG9tYXRp
Y2FsbHkNCiAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2MTINCklu
ZGV4OiBXZWJLaXQvQnJvd3NlckNvbnRyb2wvaW5jL0JyQ3RsRGVmcy5oDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQot
LS0gV2ViS2l0L0Jyb3dzZXJDb250cm9sL2luYy9CckN0bERlZnMuaAkocmV2aXNpb24gMjQ3ODEp
DQorKysgV2ViS2l0L0Jyb3dzZXJDb250cm9sL2luYy9CckN0bERlZnMuaAkod29ya2luZyBjb3B5
KQ0KQEAgLTIxMCw3ICsyMTAsMTQgQEAgY2xhc3MgVEJyQ3RsRGVmcw0KICAgICAgICAgICAgIEVD
b21tYW5kU21hcnRMaW5rU2VuZEVtYWlsLCAvLy88IA0KICAgICAgICAgICAgIEVDb21tYW5kU2hv
d0FuY2hvckhyZWYsICAvLy88RGlzcGxheSB0aGUgVVJMIG9mIGEgaHlwZXJsaW5rIC0gc3VwcG9y
dGVkIG9ubHkgZm9yIEhUTUwNCiAgICAgICAgICAgICBFQ29tbWFuZExvYWRGb2N1c2VkSW1hZ2Us
IC8vLzxMb2FkIHRoZSBmb2N1ZXNkIGltYWdlIC0gc3VwcG9ydGVkIG9ubHkgZm9yIEhUTUwNCi0g
ICAgICAgICAgICBFQ29tbWFuZFVuTG9hZFBsdWdpbldpbmRvd3MNCisgICAgICAgICAgICBFQ29t
bWFuZFVuTG9hZFBsdWdpbldpbmRvd3MsIC8vLzxVbmxvYWQgcGx1Z2luIHdpbmRvd3MNCisgICAg
ICAgICAgICBFQ29tbWFuZEZpbmRJdGVtVm9JUEFkZHJlc3MsIC8vLzxGaW5kIFZvSVAgYWRkcmVz
cyBpdGVtDQorICAgICAgICAgICAgRUNvbW1hbmRTbWFydExpbmtNYWtlVm9pcENhbGwgICAvLy88
TWFrZVZvaXAgQ2FsbHRocm91Z2ggc21hcnRsaW5rDQorICAgICAgICAgICAgLyoqDQorICAgICAg
ICAgICAgKiBEaXNwbGF5cyB0aGUgRmluZEl0ZW0gZGlhbG9nIGFuZCBoaWdobGlnaHRzIGFsbCBv
ZiB0aGUgVm9JUA0KKyAgICAgICAgICAgICogYWRkcmVzc2VzIGluIHRoZSBjdXJyZW50IHBhZ2Uu
IFVzZSB0aGlzIHBhcmFtZXRlciBvbmx5IGlmIHlvdQ0KKyAgICAgICAgICAgICogc3BlY2lmaWVk
IHRoZSBFQ2FwYWJpbGl0eUZpbmRJdGVtIGNhcGFiaWxpdHkuDQorICAgICAgICAgICAgKi8gICAg
ICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgIH07DQogICAgICAgICAvKioNCiAgICAgICAg
ICogVGhlIGxvYWQgZXZlbnQgdGhhdCBvY2N1cnJlZC4NCkBAIC02MTEsNyArNjE4LDggQEAgY2xh
c3MgVEJyQ3RsRGVmcw0KIA0KICAgICAgICAgICAgIEVFbGVtZW50U21hcnRMaW5rVGVsLCAvLy88
IEEgdGVsZXBob25lIG51bWJlciBpbiB0aGUgcGFnZS4NCiAgICAgICAgICAgICBFRWxlbWVudFNt
YXJ0TGlua0VtYWlsLCAvLy88IGFuIGVtYWlsIGFkZHJlc3MgaW4gdGhlIHBhZ2UuDQotICAgICAg
ICAgICAgRUVsZW1lbnRCcm9rZW5JbWFnZSAvLy88IEEgbWlzc2luZyBpbWFnZSANCisgICAgICAg
ICAgICBFRWxlbWVudEJyb2tlbkltYWdlLCAvLy88IEEgbWlzc2luZyBpbWFnZSANCisgICAgICAg
ICAgICBFRWxlbWVudFNtYXJ0TGlua1ZvaXAgLy8vPCBBIHZvaXAgc21hcnRsaW5rIA0KICAgICAg
ICAgfTsNCiANCiAgICAgICAgIC8qKg0KSW5kZXg6IFdlYktpdC9Ccm93c2VyQ29udHJvbC9zcmMv
QnJDdGwuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJDb250cm9sL3NyYy9CckN0
bC5jcHAJKHJldmlzaW9uIDI0NzgxKQ0KKysrIFdlYktpdC9Ccm93c2VyQ29udHJvbC9zcmMvQnJD
dGwuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMTE3LDYgKzExNyw4IEBAIHN0YXRpYyBjb25zdCBU
Q29tbWFuZHNBcnJheSBjb21tYW5kc0FycmENCiAgICAge1RCckN0bERlZnM6OkVFbGVtZW50U21h
cnRMaW5rVGVsLCBUQnJDdGxEZWZzOjpFQ29tbWFuZFNtYXJ0TGlua1NlbmRNZXNzYWdlLCBSX1RF
WFRfV01MX1NFTkRfTUVTU0FHRSwgTlVMTH0sDQogICAgIHtUQnJDdGxEZWZzOjpFRWxlbWVudFNt
YXJ0TGlua0VtYWlsLCBUQnJDdGxEZWZzOjpFQ29tbWFuZFNtYXJ0TGlua1NlbmRNZXNzYWdlLCBS
X1RFWFRfV01MX1NFTkRfTUVTU0FHRSwgTlVMTH0sDQogICAgIHtUQnJDdGxEZWZzOjpFRWxlbWVu
dFNtYXJ0TGlua0VtYWlsLCBUQnJDdGxEZWZzOjpFQ29tbWFuZFNtYXJ0TGlua0FkZFRvUGhvbmVC
b29rLCBSX1RFWFRfV01MX0FERF9UT19DT05UQUNUUywgTlVMTH0NCisvLyAgICB7VEJyQ3RsRGVm
czo6RUVsZW1lbnRTbWFydExpbmtWb2lwLCBUQnJDdGxEZWZzOjpFQ29tbWFuZFNtYXJ0TGlua01h
a2VWb2lwQ2FsbCwgUl9URVhUX1dNTF9MSVNUX0NBTEwsIE5VTEx9DQorLy8gICAgVGhpcyBpcyBk
aXNhYmxlZC4gb25jZSBWb2lwIENhbGwgaXMgZW5hYmxlZCwgdGhlbiB0aGlzIG5lZWQgdG8gYmUg
ZW5hYmxlZCB0b28gDQogICAgIH07DQogDQogLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0gTE9DQUwgRlVOQ1RJT05TID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC03
NTQsNiArNzU2LDE5IEBAIEVYUE9SVF9DIHZvaWQgQ0JyQ3RsOjpIYW5kbGVDb21tYW5kTChUSW4N
CiAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgIH0N
CisgICAgICAgIGNhc2UgVEJyQ3RsRGVmczo6RUNvbW1hbmRGaW5kSXRlbVZvSVBBZGRyZXNzOg0K
KyAgICAgICAgICAgIHsNCisgICAgICAgICAgICBpZiAoIGlXZWJLaXRDb250cm9sLT5XZWJLaXRW
aWV3KCkuU21hcnRMaW5rTW9kZSgpID09IEVTbWFydExpbmtOb25lICkNCisgICAgICAgICAgICAg
ICAgew0KKyAgICAgICAgICAgICAgICBmb3IgKCBUSW50IGk9MDsgaTxpU3RhdGVDaGFuZ2VPYnNl
cnZlckFycmF5LkNvdW50KCk7IGkrKyApDQorICAgICAgICAgICAgICAgICAgICB7DQorICAgICAg
ICAgICAgICAgICAgICBpU3RhdGVDaGFuZ2VPYnNlcnZlckFycmF5W2ldLT5TdGF0ZUNoYW5nZWQo
VEJyQ3RsRGVmczo6RVN0YXRlU21hcnRUZXh0VmlldywgRVRydWUpOw0KKyAgICAgICAgICAgICAg
ICAgICAgfQ0KKyAgICAgICAgICAgICAgICBpV2ViS2l0Q29udHJvbC0+V2ViS2l0VmlldygpLlNl
dFNtYXJ0TGlua01vZGUoRVNtYXJ0TGlua1ZvaXBQaG9uZSk7DQorICAgICAgICAgICAgICAgIGlX
ZWJLaXRDb250cm9sLT5XZWJLaXRWaWV3KCkuRmluZE5leHRTbWFydExpbmsoRVRydWUpOw0KKyAg
ICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICAgICAgfQ0KICAg
ICAgICAgY2FzZSBUQnJDdGxEZWZzOjpFQ29tbWFuZEZpbmRJdGVtRU1haWw6DQogICAgICAgICAg
ICAgew0KICAgICAgICAgICAgIGlmICggaVdlYktpdENvbnRyb2wtPldlYktpdFZpZXcoKS5TbWFy
dExpbmtNb2RlKCkgPT0gRVNtYXJ0TGlua05vbmUgKQ0KQEAgLTc3NSw2ICs3OTAsMTEgQEAgRVhQ
T1JUX0Mgdm9pZCBDQnJDdGw6OkhhbmRsZUNvbW1hbmRMKFRJbg0KICAgICAgICAgY2FzZSBUQnJD
dGxEZWZzOjpFQ29tbWFuZFNtYXJ0TGlua01ha2VDYWxsOg0KICAgICAgICAgICAgIHsNCiAgICAg
ICAgICAgICBpV2ViS2l0Q29udHJvbC0+V2ViS2l0VmlldygpLk1haW5GcmFtZSgpLlNtYXJ0TGlu
a0hhbmRsZXIoKS0+SGFuZGxlTWFrZUNhbGxMKCk7DQorICAgICAgICAgICAgYnJlYWs7DQorICAg
ICAgICAgICAgfQ0KKyAgICAgICAgY2FzZSBUQnJDdGxEZWZzOjpFQ29tbWFuZFNtYXJ0TGlua01h
a2VWb2lwQ2FsbDoNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgaVdlYktpdENvbnRyb2wt
PldlYktpdFZpZXcoKS5NYWluRnJhbWUoKS5TbWFydExpbmtIYW5kbGVyKCktPkhhbmRsZU1ha2VW
b2lwQ2FsbEwoKTsNCiAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICB9DQogICAgICAg
ICBjYXNlIFRCckN0bERlZnM6OkVDb21tYW5kU21hcnRMaW5rQWRkVG9QaG9uZUJvb2s6DQpJbmRl
eDogV2ViS2l0L0Jyb3dzZXJWaWV3L2luYy9TbWFydExpbmtIYW5kbGVyLmgNCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL1NtYXJ0TGlua0hhbmRsZXIuaAkocmV2aXNpb24g
MjQ3ODEpDQorKysgV2ViS2l0L0Jyb3dzZXJWaWV3L2luYy9TbWFydExpbmtIYW5kbGVyLmgJKHdv
cmtpbmcgY29weSkNCkBAIC0xMTEsNiArMTExLDE0IEBAIGNsYXNzIENTbWFydExpbmtIYW5kbGVy
IDogcHVibGljIENCYXNlDQogICAgICAgICAqLw0KICAgICAgICAgdm9pZCBIYW5kbGVTZW5kTWVz
c2FnZSgpOw0KIA0KKyAgICAgICAgLyoqDQorICAgICAgICAqDQorICAgICAgICAqIEBzaW5jZSA1
LjANCisgICAgICAgICogQHBhcmFtDQorICAgICAgICAqIEByZXR1cm4gDQorICAgICAgICAqLw0K
KyAgICAgICAgdm9pZCBIYW5kbGVNYWtlVm9pcENhbGxMKCk7DQorDQogICAgIHByaXZhdGU6DQog
DQogICAgICAgICAvKioNCkluZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL1NtYXJ0TGlua01h
cC5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJWaWV3L2luYy9TbWFydExpbmtNYXAu
aAkocmV2aXNpb24gMjQ3ODEpDQorKysgV2ViS2l0L0Jyb3dzZXJWaWV3L2luYy9TbWFydExpbmtN
YXAuaAkod29ya2luZyBjb3B5KQ0KQEAgLTc2LDcgKzc2LDcgQEAgcHVibGljOg0KICAgICB2b2lk
IFN0b3BJbmRleGluZ1NtYXJ0TGlua3MoKTsNCiAgICAgdm9pZCBSZUluZGV4U21hcnRMaW5rcygp
Ow0KICAgDQotcHVibGljOiANCitwdWJsaWM6ICANCiAgICAgQ1NtYXJ0TGluayogR2V0TmV4dFBo
b25lRW50cnkoKTsNCiAgICAgQ1NtYXJ0TGluayogR2V0TmV4dEVtYWlsRW50cnkoKTsNCiAgICAg
Q1NtYXJ0TGluayogR2V0UHJldlBob25lRW50cnkoKTsNCkBAIC04NCw2ICs4NCw4IEBAIHB1Ymxp
YzogDQogICAgIA0KICAgICBDU21hcnRMaW5rKiBHZXRFbnRyeShjb25zdCBUUmVjdCYgYVJlY3Qp
Ow0KICAgICBUSW50IEdldEVudHJ5Q291bnQoKSB7IHJldHVybiBpU21hcnRMaW5rQXJyYXkuQ291
bnQoKTsgfQ0KKyAgICBDU21hcnRMaW5rKiBHZXROZXh0Vm9pcFBob25lRW50cnkoKTsgICAgDQor
ICAgIENTbWFydExpbmsqIEdldFByZXZWb2lwUGhvbmVFbnRyeSgpOyAgICANCiAgICAgICAgIA0K
IHByaXZhdGU6ICAgIA0KICAgICBzdGF0aWMgVEludCBJbmRleGluZ0NhbGxiYWNrTChUQW55KiBh
V2ViS2l0U21hcnRUZXh0TWFwKTsNCkBAIC05OCw5ICsxMDAsMTAgQEAgcHJpdmF0ZToNCiAgICAg
UlBvaW50ZXJBcnJheTxDU21hcnRMaW5rPiBpU21hcnRMaW5rQXJyYXk7ICAgIA0KICAgICANCiAg
ICAgVEludCBpUGhvbmVFbnRyeUluZGV4Ow0KLSAgICBUSW50IGlFbWFpbEVudHJ5SW5kZXg7ICAg
IA0KKyAgICBUSW50IGlFbWFpbEVudHJ5SW5kZXg7DQogICAgIA0KICAgICBDSWRsZSogaUluZGV4
aW5nQ2FsbGJhY2s7DQorICAgIFRJbnQgaVZvaXBQaG9uZUVudHJ5SW5kZXg7DQogICAgIH07DQog
DQogI2VuZGlmDQpJbmRleDogV2ViS2l0L0Jyb3dzZXJWaWV3L2luYy9XZWJLaXRWaWV3LmgNCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0NCi0tLSBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL1dlYktpdFZpZXcuaAkocmV2aXNp
b24gMjQ3ODEpDQorKysgV2ViS2l0L0Jyb3dzZXJWaWV3L2luYy9XZWJLaXRWaWV3LmgJKHdvcmtp
bmcgY29weSkNCkBAIC05OSw2ICs5OSw3IEBAIGVudW0gVFNtYXJ0TGlua01vZGUNCiAgICAgew0K
ICAgICBFU21hcnRMaW5rUGhvbmUsICAgICAgICAgICAgICAgICAgICAgICAvL0ZpbmRpbmcgcGhv
bmUgbnVtYmVycyBtb2RlDQogICAgIEVTbWFydExpbmtFbWFpbCwgICAgICAgICAgICAgICAgICAg
ICAgIC8vRmluZGluZyBlbWFpbCBhZGRyZXNzZXMgbW9kZQ0KKyAgICBFU21hcnRMaW5rVm9pcFBo
b25lLCAgICAgICAgICAgICAgICAgICAgLy9GaW5kaW5nIFZvaXAgYWRkcmVzc21vZGUNCiAgICAg
RVNtYXJ0TGlua05vbmUgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm9ybWFsIE1vZGUNCiAg
ICAgfTsNCiANCkluZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcvc3JjL1NtYXJ0TGlua0hhbmRsZXIu
Y3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9TbWFydExpbmtIYW5k
bGVyLmNwcAkocmV2aXNpb24gMjQ3ODEpDQorKysgV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9TbWFy
dExpbmtIYW5kbGVyLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTE5MSw2ICsxOTEsNDQgQEAgdm9p
ZCBDU21hcnRMaW5rSGFuZGxlcjo6UHJlcGFyZVNlbmRVaSgpDQogICAgIH0NCiANCiAvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENTbWFydExpbmtIYW5kbGVyOjpIYW5kbGVNYWtlVm9pcENh
bGxMDQorLy8NCisvLyBQaG9uZSBudW1iZXINCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8v
DQordm9pZCBDU21hcnRMaW5rSGFuZGxlcjo6SGFuZGxlTWFrZVZvaXBDYWxsTCgpDQorICAgIHsN
CisNCisjaWZuZGVmIF9fQlJPV1NFUl9TREsNCisgICAgLy9QcmVwYXJlIEFJVyBzZXJ2aWNlIGhh
bmRsZXINCisgICAgUHJlcGFyZUFpd0hhbmRsZXJMKCk7DQorICAgIF9fQVNTRVJUX0RFQlVHKGlB
aXdIYW5kbGVyLCBVc2VyOjpQYW5pYyhfTCgiU21hcnRMaW5rSGFuZGxlciIpLCBLRXJyR2VuZXJh
bCkpOw0KKw0KKw0KKyAgLy9HZXQgdGhlIGluZm8gbm9kZSB1bmRlciBjdXJzb3INCisgICAgQ1Nt
YXJ0TGluayogZW50cnkgPSBpV2ViS2l0RnJhbWUtPldlYktpdFZpZXcoKS5DdXJzb3IoKS0+R2V0
U21hcnRMaW5rRW50cnkoKTsNCisgICAgDQorICBpZihlbnRyeSAmJiBlbnRyeS0+aUVudHJ5VHlw
ZSA9PSBDRmluZEl0ZW1FbmdpbmU6OkVGaW5kSXRlbVNlYXJjaFBob25lTnVtYmVyQmluIHx8IENG
aW5kSXRlbUVuZ2luZTo6RUZpbmRJdGVtU2VhcmNoTWFpbEFkZHJlc3NCaW4gKQ0KKyAgICAgICAg
ew0KKyAgICAgICAgVFB0ciBudW1iZXJQdHIgPSBlbnRyeS0+aUVudHJ5VGV4dC0+RGVzKCk7DQor
ICAgICAgICAvL0Zvcm1hdCB0aGUgUGhvbmUgTnVtYmVyDQorICAgICAgICBDb21tb25QaG9uZVBh
cnNlcjo6UGFyc2VQaG9uZU51bWJlciggbnVtYmVyUHRyLCBDb21tb25QaG9uZVBhcnNlcjo6RVBo
b25lQ2xpZW50TnVtYmVyKTsNCisgICAgICAgIC8vQ2FsbCBBSVcgZnJhbWV3b3JrIGZ1bmN0aW9u
IHRvIG1ha2UgdGhlIGNhbGwNCisgICAgICAgIENBaXdEaWFsRGF0YUV4dCogZGlhbERhdGFFeHQg
PSBDQWl3RGlhbERhdGFFeHQ6Ok5ld0xDKCk7IA0KKyAgICAgICAgZGlhbERhdGFFeHQtPlNldFBo
b25lTnVtYmVyTCggbnVtYmVyUHRyICk7IA0KKyAgICAgICAgZGlhbERhdGFFeHQtPlNldENhbGxU
eXBlKCBDQWl3RGlhbERhdGE6OkVBSVdWb2lQICk7ICAgICAgICAgICAgICAgICAgDQorDQorICAg
ICAgICBDQWl3R2VuZXJpY1BhcmFtTGlzdCYgcGFyYW1MaXN0ID0gaUFpd0hhbmRsZXItPkluUGFy
YW1MaXN0TCgpOw0KKyAgICAgICAgZGlhbERhdGFFeHQtPkZpbGxJblBhcmFtTGlzdEwoIHBhcmFt
TGlzdCApOyAgIA0KKyAgICAgIA0KKyAgICAgICAgaUFpd0hhbmRsZXItPkV4ZWN1dGVTZXJ2aWNl
Q21kTChLQWl3Q21kQ2FsbCwgcGFyYW1MaXN0LCBpQWl3SGFuZGxlci0+T3V0UGFyYW1MaXN0TCgp
LCANCisgICAgICAgICAgICAwLCAwICk7IC8vIC8vIE5vIG9wdGlvbnMgdXNlZCAsIG5vIGRpYWwg
cmVzdWx0cyBhcmUgd2FudGVkLg0KKyAgICAgICAgfQ0KKyAgICAgICAgQ2xlYW51cFN0YWNrOjpQ
b3BBbmREZXN0cm95KCk7IC8vIGRpYWxEYXRhRXh0IA0KKyNlbmRpZg0KKyAgICB9DQorDQorLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAvLyBDU21hcnRMaW5rSGFuZGxlcjo6SGFuZGxlTWFrZUNh
bGxMDQogLy8NCiAvLyBQaG9uZSBudW1iZXINCkluZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcvc3Jj
L1NtYXJ0TGlua01hcC5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQnJvd3NlclZpZXcvc3Jj
L1NtYXJ0TGlua01hcC5jcHAJKHJldmlzaW9uIDI0NzgxKQ0KKysrIFdlYktpdC9Ccm93c2VyVmll
dy9zcmMvU21hcnRMaW5rTWFwLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTIzMCw4ICsyMzAsMTAg
QEAgQ1NtYXJ0TGlua01hcCogQ1NtYXJ0TGlua01hcDo6TmV3TEMoY29ucw0KIC8vDQogLy8gDQog
Ly8gDQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLUNTbWFydExpbmtNYXA6OkNTbWFydExpbmtN
YXAoY29uc3QgQ1dlYktpdEZyYW1lKiBhV2ViS2l0RnJhbWUpIDogaVdlYktpdEZyYW1lKGFXZWJL
aXRGcmFtZSksIGlQaG9uZUVudHJ5SW5kZXgoMCksIGlFbWFpbEVudHJ5SW5kZXgoMCkNCisvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tIA0KK0NTbWFydExpbmtNYXA6OkNTbWFydExpbmtNYXAoY29uc3Qg
Q1dlYktpdEZyYW1lKiBhV2ViS2l0RnJhbWUpIDogaVdlYktpdEZyYW1lKGFXZWJLaXRGcmFtZSks
IGlQaG9uZUVudHJ5SW5kZXgoMCksIA0KKyAgICBpVm9pcFBob25lRW50cnlJbmRleCgwKSwgDQor
ICAgIGlFbWFpbEVudHJ5SW5kZXgoMCkgICAgDQogICAgIHsNCiAgICAgfQ0KIA0KQEAgLTI4MCw2
ICsyODIsNDAgQEAgQ1NtYXJ0TGluayogQ1NtYXJ0TGlua01hcDo6R2V0RW50cnkoY29ucw0KICAg
ICANCiAgIH0NCiAgICAgDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENTbWFydExpbmtN
YXA6OkdldE5leHRWb2lwUGhvbmVFbnRyeQ0KKy8vIEdldHMgdGhlIG5leHQgcGhvbmUgZW50cnkg
YW5kIG1vdmVzIHRoZSBwb3NpdGlvbiBvbmUgZm9yd2FyZA0KKy8vIA0KKy8vIA0KKy8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0NCitDU21hcnRMaW5rKiBDU21hcnRMaW5rTWFwOjpHZXROZXh0Vm9pcFBo
b25lRW50cnkoKQ0KKyAgeyAgIA0KKyAgaWYgKGlTbWFydExpbmtBcnJheS5Db3VudCgpID4gMCkN
CisgICAgew0KKyAgICAgICAgICAgICAgICAgIA0KKyAgICAvL2lmIHlvdSByZWFjaCB0aGUgZW5k
IG9mIHRoZSBsaXN0IGxldCBvdGhlciBmcmFtZXMgaGF2ZSBhIGNoYW5jZSBhbmQgcmV0dXJuIG51
bGwNCisgICAgaWYgKGlWb2lwUGhvbmVFbnRyeUluZGV4ID49IDApDQorICAgICAgew0KKyAgICAg
ICAgICAgICAgICAgICAgICANCisgICAgICB3aGlsZSAoaVZvaXBQaG9uZUVudHJ5SW5kZXg8aVNt
YXJ0TGlua0FycmF5LkNvdW50KCkpDQorICAgICAgICB7ICAgICANCisgICAgICAgIENTbWFydExp
bmsqIHRleHRFbnRyeSA9IGlTbWFydExpbmtBcnJheVtpVm9pcFBob25lRW50cnlJbmRleF07ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKyAgICBpZiAodGV4dEVudHJ5LT5pRW50
cnlUeXBlID09IENGaW5kSXRlbUVuZ2luZTo6RUZpbmRJdGVtU2VhcmNoUGhvbmVOdW1iZXJCaW4g
fHwgQ0ZpbmRJdGVtRW5naW5lOjpFRmluZEl0ZW1TZWFyY2hNYWlsQWRkcmVzc0JpbiApICAgICAg
ICANCisgICAgICAgICAgew0KKyAgICAgICAgICArK2lWb2lwUGhvbmVFbnRyeUluZGV4OyAgICAg
ICAgIA0KKyAgICAgICAgICByZXR1cm4gdGV4dEVudHJ5OyANCisgICAgICAgICAgfQ0KKyAgICAg
ICAgICANCisgICAgICAgICsraVZvaXBQaG9uZUVudHJ5SW5kZXg7DQorICAgICAgICB9DQorICAg
ICAgICAgIA0KKyAgICAgIH0NCisNCisgICAgfQ0KKyAgICANCisgICAgaVZvaXBQaG9uZUVudHJ5
SW5kZXggPSAwOw0KKyAgICByZXR1cm4gTlVMTDsgIA0KKyAgfQ0KIA0KIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0NCiAvLyBDU21hcnRMaW5rTWFwOjpHZXROZXh0UGhvbmVFbnRyeQ0KQEAgLTMxNiw2
ICszNTIsNDAgQEAgQ1NtYXJ0TGluayogQ1NtYXJ0TGlua01hcDo6R2V0TmV4dFBob25lRQ0KICAg
ICByZXR1cm4gTlVMTDsgIA0KICAgfQ0KIA0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBD
U21hcnRMaW5rTWFwOjpHZXRQcmV2Vm9pcFBob25lRW50cnkNCisvLyBHZXRzIHRoZSBwcmV2aW91
cyBlbWFpbCBlbnRyeSBhbmQgbW92ZXMgdGhlIHBvc2l0aW9uIG9uZSBiYWNrd2FyZHMNCisvLyAN
CisvLyANCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorDQorQ1NtYXJ0TGluayogQ1NtYXJ0TGlu
a01hcDo6R2V0UHJldlZvaXBQaG9uZUVudHJ5KCkNCisgIHsgDQorICBpZiAoaVNtYXJ0TGlua0Fy
cmF5LkNvdW50KCkgPiAwKQ0KKyAgICB7DQorICAgICAgICAgICAgICAgICAgDQorICAgIC8vaWYg
eW91IHJlYWNoIHRoZSBlbmQgb2YgdGhlIGxpc3QgbGV0IG90aGVyIGZyYW1lcyBoYXZlIGEgY2hh
bmNlIGFuZCByZXR1cm4gbnVsbA0KKyAgICBpZiAoaVZvaXBQaG9uZUVudHJ5SW5kZXggPCBpU21h
cnRMaW5rQXJyYXkuQ291bnQoKSkNCisgICAgICB7DQorICAgICAgICAgICAgICAgICAgICAgIA0K
KyAgICAgIHdoaWxlIChpVm9pcFBob25lRW50cnlJbmRleD49MCkNCisgICAgICAgIHsgICAgIA0K
KyAgICAgICAgQ1NtYXJ0TGluayogdGV4dEVudHJ5ID0gaVNtYXJ0TGlua0FycmF5W2lWb2lwUGhv
bmVFbnRyeUluZGV4XTsNCisgICAgICAgIGlmICh0ZXh0RW50cnktPmlFbnRyeVR5cGUgPT0gQ0Zp
bmRJdGVtRW5naW5lOjpFRmluZEl0ZW1TZWFyY2hQaG9uZU51bWJlckJpbiB8fCBDRmluZEl0ZW1F
bmdpbmU6OkVGaW5kSXRlbVNlYXJjaE1haWxBZGRyZXNzQmluKSAgICAgICAgDQorICAgICAgICAg
IHsNCisgICAgICAgICAgLS1pVm9pcFBob25lRW50cnlJbmRleDsgICAgICAgICANCisgICAgICAg
ICAgcmV0dXJuIHRleHRFbnRyeTsgDQorICAgICAgICAgIH0NCisgICAgICAgICAtLWlWb2lwUGhv
bmVFbnRyeUluZGV4Ow0KKyAgICAgICAgfQ0KKyAgICAgICAgICANCisgICAgICB9DQorDQorICAg
IGlWb2lwUGhvbmVFbnRyeUluZGV4ID0gaVNtYXJ0TGlua0FycmF5LkNvdW50KCktMTsNCisgICAg
fQ0KKyAgcmV0dXJuIE5VTEw7ICAgIA0KKyAgfQ0KKyAgDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQ0KIC8vIENTbWFydExpbmtNYXA6OkdldFByZXZQaG9uZUVudHJ5DQogLy8gR2V0cyB0aGUgcHJl
dmlvdXMgZW1haWwgZW50cnkgYW5kIG1vdmVzIHRoZSBwb3NpdGlvbiBvbmUgYmFja3dhcmRzDQpJ
bmRleDogV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9XZWJLaXRDdXJzb3IuY3BwDQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQotLS0gV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9XZWJLaXRDdXJzb3IuY3BwCShyZXZpc2lvbiAy
NDc4MSkNCisrKyBXZWJLaXQvQnJvd3NlclZpZXcvc3JjL1dlYktpdEN1cnNvci5jcHAJKHdvcmtp
bmcgY29weSkNCkBAIC0yMzQsNiArMjM0LDEyIEBAIHZvaWQgQ1dlYktpdEN1cnNvcjo6Q3Vyc29y
VXBkYXRlKCBUQm9vbCANCiAgICAgICAgICAgICAgICAgc3ByaXRlTWVtLmlCaXRtYXAgPSBpU21h
cnRMaW5rRW1haWxJbWFnZS5pSW1hZ2U7DQogICAgICAgICAgICAgICAgIHNwcml0ZU1lbS5pTWFz
a0JpdG1hcCA9IGlTbWFydExpbmtFbWFpbEltYWdlLmlNYXNrOw0KICAgICAgICAgICAgICAgICB9
DQorICAgICAgICAgICAgZWxzZSBpZiAoIGlWaWV3LT5Gb2N1c2VkRWxlbWVudFR5cGUoKSA9PSBU
QnJDdGxEZWZzOjpFRWxlbWVudFNtYXJ0TGlua1ZvaXAgKQ0KKyAgICAgICAgICAgICAgICB7DQor
ICAgICAgICAgICAgICAgIFJlc2V0VHJhbnNwYXJlbmN5KCk7DQorICAgICAgICAgICAgICAgIHNw
cml0ZU1lbS5pQml0bWFwID0gaVNtYXJ0TGlua1Bob25lSW1hZ2UuaUltYWdlOw0KKyAgICAgICAg
ICAgICAgICBzcHJpdGVNZW0uaU1hc2tCaXRtYXAgPSBpU21hcnRMaW5rUGhvbmVJbWFnZS5pTWFz
azsNCisgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAg
ICAgew0KICAgICAgICAgICAgICAgICBSZXNldFRyYW5zcGFyZW5jeSgpOw0KSW5kZXg6IFdlYktp
dC9Ccm93c2VyVmlldy9zcmMvV2ViS2l0Vmlldy5jcHANCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQv
QnJvd3NlclZpZXcvc3JjL1dlYktpdFZpZXcuY3BwCShyZXZpc2lvbiAyNDc4MSkNCisrKyBXZWJL
aXQvQnJvd3NlclZpZXcvc3JjL1dlYktpdFZpZXcuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMTQ0
Nyw3ICsxNDQ3LDcgQEAgVEludCBDV2ViS2l0Vmlldzo6RmluZE5leHRTbWFydExpbmsoVEJvbw0K
ICAgew0KIA0KICAgICBDV2ViS2l0RnJhbWUqIGYgPSAoaUZyYW1lV2l0aEZpbmRLZXl3b3JkKSA/
IGlGcmFtZVdpdGhGaW5kS2V5d29yZCA6IGlNYWluRnJhbWU7DQotICBDU21hcnRMaW5rKiBzRW50
cnkgPSBOVUxMOw0KKyAgICBDU21hcnRMaW5rKiBzRW50cnkgPSBOVUxMOw0KIA0KICAgICB3aGls
ZSggZiApDQogICAgICAgICB7DQpAQCAtMTQ3Miw3ICsxNDcyLDE1IEBAIFRJbnQgQ1dlYktpdFZp
ZXc6OkZpbmROZXh0U21hcnRMaW5rKFRCb28NCiAgICAgICAgICAgICB7DQogICAgICAgICAgICAg
ICAgIHNFbnRyeSA9IGYtPlNtYXJ0TGlua01hcCgpLT5HZXRQcmV2RW1haWxFbnRyeSgpOw0KICAg
ICAgICAgICAgIH0NCi0NCisgICAgICAgICAgICBlbHNlIGlmIChpU21hcnRMaW5rTW9kZSA9PSBF
U21hcnRMaW5rVm9pcFBob25lICYmIGFGb3J3YXJkKQ0KKyAgICAgICAgICAgIHsNCisgICAgICAg
ICAgICAgICAgc0VudHJ5ID0gZi0+U21hcnRMaW5rTWFwKCktPkdldE5leHRWb2lwUGhvbmVFbnRy
eSgpOyANCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgZWxzZSBpZiAoaVNtYXJ0TGlua01v
ZGUgPT0gRVNtYXJ0TGlua1ZvaXBQaG9uZSAmJiAhYUZvcndhcmQpDQorICAgICAgICAgICAgew0K
KyAgICAgICAgICAgICAgICBzRW50cnkgPSBmLT5TbWFydExpbmtNYXAoKS0+R2V0UHJldlZvaXBQ
aG9uZUVudHJ5KCk7DQorICAgICAgICAgICAgfQ0KKyAgICAgIA0KICAgICAgICAgaWYgKHNFbnRy
eSAhPSBOVUxMKQ0KICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICBpRnJhbWVXaXRoRmluZEtl
eXdvcmQgPSBmOw0KQEAgLTE0OTgsMTEgKzE1MDYsMjUgQEAgVEludCBDV2ViS2l0Vmlldzo6Rmlu
ZE5leHRTbWFydExpbmsoVEJvbw0KICAgICAgIHB0c2Nyb2xsLmlZICs9IHB0LmlZIC0gaU1haW5G
cmFtZS0+VmlzaWJsZVJlY3QoKS5IZWlnaHQoKS8yOw0KIA0KICAgICAgIGlNYWluRnJhbWUtPlNj
cm9sbFRvKGlGcmFtZVdpdGhGaW5kS2V5d29yZC0+RnJhbWVDb29yZHNJblZpZXdDb29yZHMocHRz
Y3JvbGwpKTsNCi0gICAgICAgICAgICBDdXJzb3IoKS0+U2V0UG9zaXRpb24oaUZyYW1lV2l0aEZp
bmRLZXl3b3JkLT5GcmFtZUNvb3Jkc0luVmlld0Nvb3JkcyhwdCkpOw0KKyAgICAgIEN1cnNvcigp
LT5TZXRQb3NpdGlvbihpRnJhbWVXaXRoRmluZEtleXdvcmQtPkZyYW1lQ29vcmRzSW5WaWV3Q29v
cmRzKHB0KSk7DQorICAgICAgVEJyQ3RsRGVmczo6VEJyQ3RsRWxlbWVudFR5cGUgZWxlVHlwZTsN
CisgICAgICBpZiAoIHNFbnRyeS0+aUVudHJ5VHlwZSA9PSBDRmluZEl0ZW1FbmdpbmU6OkVGaW5k
SXRlbVNlYXJjaE1haWxBZGRyZXNzQmluICYmIGlTbWFydExpbmtNb2RlID09IEVTbWFydExpbmtF
bWFpbCkgDQorICAgICAgICAgIHsNCisgICAgICAgICAgZWxlVHlwZSA9IFRCckN0bERlZnM6OkVF
bGVtZW50U21hcnRMaW5rRW1haWw7ICAgICAgICAgICANCisgICAgICAgICAgfQ0KKyAgICAgIGVs
c2UgaWYgKHNFbnRyeS0+aUVudHJ5VHlwZSA9PSBDRmluZEl0ZW1FbmdpbmU6OkVGaW5kSXRlbVNl
YXJjaFBob25lTnVtYmVyQmluICYmIGlTbWFydExpbmtNb2RlID09IEVTbWFydExpbmtQaG9uZSkg
DQorICAgICAgICB7DQorICAgICAgICAgIGVsZVR5cGUgPSBUQnJDdGxEZWZzOjpFRWxlbWVudFNt
YXJ0TGlua1RlbDsgICAgICAgICAgICAgICANCisgICAgICAgIH0NCisgICAgICBlbHNlIGlmICgg
c0VudHJ5LT5pRW50cnlUeXBlID09IENGaW5kSXRlbUVuZ2luZTo6RUZpbmRJdGVtU2VhcmNoTWFp
bEFkZHJlc3NCaW4gfHwgVEJyQ3RsRGVmczo6RUVsZW1lbnRTbWFydExpbmtUZWwNCisgICAgICAg
ICAgJiYgaVNtYXJ0TGlua01vZGUgPT0gRVNtYXJ0TGlua1ZvaXBQaG9uZSApDQorICAgICAgICAg
IHsNCisgICAgICAgICAgZWxlVHlwZSA9IFRCckN0bERlZnM6OkVFbGVtZW50U21hcnRMaW5rVm9p
cDsNCisgICAgICAgICAgfQ0KIA0KLSAgICAgICAgICAgIFRCckN0bERlZnM6OlRCckN0bEVsZW1l
bnRUeXBlIGVsZVR5cGUgPSBzRW50cnktPmlFbnRyeVR5cGUgPT0gQ0ZpbmRJdGVtRW5naW5lOjpF
RmluZEl0ZW1TZWFyY2hQaG9uZU51bWJlckJpbiA/IFRCckN0bERlZnM6OkVFbGVtZW50U21hcnRM
aW5rVGVsIDogVEJyQ3RsRGVmczo6RUVsZW1lbnRTbWFydExpbmtFbWFpbDsNCi0gICAgICAgICAg
ICBTZXRGb2N1c2VkRWxlbWVudFR5cGUoZWxlVHlwZSk7DQotICAgICAgICAgICAgQ3Vyc29yKCkt
PkN1cnNvclVwZGF0ZShFVHJ1ZSk7DQorICAgICAgICAgIA0KKyAgICAgIFNldEZvY3VzZWRFbGVt
ZW50VHlwZShlbGVUeXBlKTsNCisgICAgICBDdXJzb3IoKS0+Q3Vyc29yVXBkYXRlKEVUcnVlKTsN
CiANCiAgICAgICAvLyBnZXQgdGhlIG5ldyBjdXJzb3IgcG9zaXRpb24gYWZ0ZXIgdXBkYXRlIHRo
ZSBjdXJzb3INCiAgICAgICBUUG9pbnQgbmV3UG9zKEN1cnNvcigpLT5Qb3NpdGlvbigpKTsNCg==
</data>
<flag name="review"
          id="6574"
          type_id="1"
          status="-"
          setter="Sachin.Padma"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15765</attachid>
            <date>2007-07-31 14:49:51 -0700</date>
            <delta_ts>2007-08-14 09:05:32 -0700</delta_ts>
            <desc>New patch </desc>
            <filename>CR409-415.patch</filename>
            <type>text/plain</type>
            <size>21236</size>
            <attacher name="George Guo">george.guo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDI0NzgxKQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDExIEBADQorbmFndW8sIHJldmlld2VkIGJ5IDxyZXZpZXdlcj4NCisgREVT
QzogYWRkIG9uZSBmb2N1c2VkIHR5cGUgZm9yIFNtYXJ0TGlua1ZvaXAgDQorIGh0dHA6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzY2DQorDQorICAgICAgICBXQVJOSU5HOiBO
TyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQNCisNCisgICAgICAgICogYnJpZGdlL1dlYkNv
cmVCcmlkZ2UuaDoNCisNCiB5YWRhdmFsbCwgcmV2aWV3ZWQgYnkgPFphbGFuPg0KICBERVNDOiBG
aXhlcyBmb3Igd2lkZ2V0IG1lbnUgQVBJDQogIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0NzYzDQpJbmRleDogV2ViQ29yZS9icmlkZ2UvV2ViQ29yZUJyaWRnZS5oDQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09DQotLS0gV2ViQ29yZS9icmlkZ2UvV2ViQ29yZUJyaWRnZS5oCShyZXZpc2lvbiAy
NDc4MSkNCisrKyBXZWJDb3JlL2JyaWRnZS9XZWJDb3JlQnJpZGdlLmgJKHdvcmtpbmcgY29weSkN
CkBAIC0xMjcsOCArMTI3LDkgQEAgdHlwZWRlZiBlbnVtDQogICAgIEVXZWJDb3JlRWxlbWVudFNj
cm9sbEJhciwNCiAgICAgRVdlYkNvcmVFbGVtZW50U21hcnRMaW5rVGVsLA0KICAgICBFV2ViQ29y
ZUVsZW1lbnRTbWFydExpbmtFbWFpbCwNCi0gICAgRVdlYkNvcmVFbGVtZW50QnJva2VuSW1hZ2UN
Ci0gIH0gVFdlYkNvcmVGb2N1c2VkRWxlbWVudFR5cGU7DQorICAgIEVXZWJDb3JlRWxlbWVudEJy
b2tlbkltYWdlLA0KKyAgICBFV2ViQ29yZUVsZW1lbnRTbWFydExpbmtWb2lwDQorICB9IFRXZWJD
b3JlRm9jdXNlZEVsZW1lbnRUeXBlOyAgDQogDQogdHlwZWRlZiBlbnVtDQogICAgIHsNCkluZGV4
OiBXZWJLaXQvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0NoYW5nZUxvZwkocmV2
aXNpb24gMjQ3ODEpDQorKysgV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQ0KQEAgLTEs
MyArMSwyNSBAQA0KK25hZ3VvLCByZXZpZXdlZCBieSA8cmV2aWV3ZXI+DQorIERFU0M6IFtTNjBd
IEFjY29yZGluZyB0byBGaW5kIEl0ZW0gVUkgc3BlYywgYnJvd3NlciBmaW5kaXRlbSBzaG91bGQg
aGF2ZSBmaW5kIFZvSVAgYWRkcmVzcw0KKyBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDc2Ng0KKw0KKyAgICAgICAgKiBCcm93c2VyQ29udHJvbC9pbmMvQnJDdGxEZWZz
Lmg6DQorICAgICAgICAoVEJyQ3RsRGVmczo6KToNCisgICAgICAgICogQnJvd3NlckNvbnRyb2wv
c3JjL0JyQ3RsLmNwcDoNCisgICAgICAgIChDQnJDdGw6OkhhbmRsZUNvbW1hbmRMKToNCisgICAg
ICAgICogQnJvd3NlclZpZXcvaW5jL1NtYXJ0TGlua0hhbmRsZXIuaDoNCisgICAgICAgICogQnJv
d3NlclZpZXcvaW5jL1NtYXJ0TGlua01hcC5oOg0KKyAgICAgICAgKiBCcm93c2VyVmlldy9pbmMv
V2ViS2l0Vmlldy5oOg0KKyAgICAgICAgKiBCcm93c2VyVmlldy9zcmMvU21hcnRMaW5rSGFuZGxl
ci5jcHA6DQorICAgICAgICAoQ1NtYXJ0TGlua0hhbmRsZXI6OkhhbmRsZU1ha2VWb2lwQ2FsbEwp
Og0KKyAgICAgICAgKiBCcm93c2VyVmlldy9zcmMvU21hcnRMaW5rTWFwLmNwcDoNCisgICAgICAg
IChDU21hcnRMaW5rTWFwOjpDU21hcnRMaW5rTWFwKToNCisgICAgICAgIChDU21hcnRMaW5rTWFw
OjpHZXROZXh0Vm9pcFBob25lRW50cnkpOg0KKyAgICAgICAgKENTbWFydExpbmtNYXA6OkdldFBy
ZXZWb2lwUGhvbmVFbnRyeSk6DQorICAgICAgICAqIEJyb3dzZXJWaWV3L3NyYy9XZWJLaXRDdXJz
b3IuY3BwOg0KKyAgICAgICAgKENXZWJLaXRDdXJzb3I6OkN1cnNvclVwZGF0ZSk6DQorICAgICAg
ICAqIEJyb3dzZXJWaWV3L3NyYy9XZWJLaXRWaWV3LmNwcDoNCisgICAgICAgIChDV2ViS2l0Vmll
dzo6RmluZE5leHRTbWFydExpbmspOg0KKw0KIHZicmFkbGV5LCByZXZpZXdlZCBieSBTYWNoaW4N
CiAgREVTQzogQVlOTi03NEFGODQgOiBVc2VybmFtZSBmaWVsZCBub3QgZmlsbGVkIGF1dG9tYXRp
Y2FsbHkNCiAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2MTINCklu
ZGV4OiBXZWJLaXQvQnJvd3NlckNvbnRyb2wvaW5jL0JyQ3RsRGVmcy5oDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQot
LS0gV2ViS2l0L0Jyb3dzZXJDb250cm9sL2luYy9CckN0bERlZnMuaAkocmV2aXNpb24gMjQ3ODEp
DQorKysgV2ViS2l0L0Jyb3dzZXJDb250cm9sL2luYy9CckN0bERlZnMuaAkod29ya2luZyBjb3B5
KQ0KQEAgLTIxMCw3ICsyMTAsMTQgQEAgY2xhc3MgVEJyQ3RsRGVmcw0KICAgICAgICAgICAgIEVD
b21tYW5kU21hcnRMaW5rU2VuZEVtYWlsLCAvLy88IA0KICAgICAgICAgICAgIEVDb21tYW5kU2hv
d0FuY2hvckhyZWYsICAvLy88RGlzcGxheSB0aGUgVVJMIG9mIGEgaHlwZXJsaW5rIC0gc3VwcG9y
dGVkIG9ubHkgZm9yIEhUTUwNCiAgICAgICAgICAgICBFQ29tbWFuZExvYWRGb2N1c2VkSW1hZ2Us
IC8vLzxMb2FkIHRoZSBmb2N1ZXNkIGltYWdlIC0gc3VwcG9ydGVkIG9ubHkgZm9yIEhUTUwNCi0g
ICAgICAgICAgICBFQ29tbWFuZFVuTG9hZFBsdWdpbldpbmRvd3MNCisgICAgICAgICAgICBFQ29t
bWFuZFVuTG9hZFBsdWdpbldpbmRvd3MsIC8vLzxVbmxvYWQgcGx1Z2luIHdpbmRvd3MNCisgICAg
ICAgICAgICBFQ29tbWFuZEZpbmRJdGVtVm9JUEFkZHJlc3MsIC8vLzxGaW5kIFZvSVAgYWRkcmVz
cyBpdGVtDQorICAgICAgICAgICAgRUNvbW1hbmRTbWFydExpbmtNYWtlVm9pcENhbGwgICAvLy88
TWFrZVZvaXAgQ2FsbHRocm91Z2ggc21hcnRsaW5rDQorICAgICAgICAgICAgLyoqDQorICAgICAg
ICAgICAgKiBEaXNwbGF5cyB0aGUgRmluZEl0ZW0gZGlhbG9nIGFuZCBoaWdobGlnaHRzIGFsbCBv
ZiB0aGUgVm9JUA0KKyAgICAgICAgICAgICogYWRkcmVzc2VzIGluIHRoZSBjdXJyZW50IHBhZ2Uu
IFVzZSB0aGlzIHBhcmFtZXRlciBvbmx5IGlmIHlvdQ0KKyAgICAgICAgICAgICogc3BlY2lmaWVk
IHRoZSBFQ2FwYWJpbGl0eUZpbmRJdGVtIGNhcGFiaWxpdHkuDQorICAgICAgICAgICAgKi8gICAg
ICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgIH07DQogICAgICAgICAvKioNCiAgICAgICAg
ICogVGhlIGxvYWQgZXZlbnQgdGhhdCBvY2N1cnJlZC4NCkBAIC02MTEsNyArNjE4LDggQEAgY2xh
c3MgVEJyQ3RsRGVmcw0KIA0KICAgICAgICAgICAgIEVFbGVtZW50U21hcnRMaW5rVGVsLCAvLy88
IEEgdGVsZXBob25lIG51bWJlciBpbiB0aGUgcGFnZS4NCiAgICAgICAgICAgICBFRWxlbWVudFNt
YXJ0TGlua0VtYWlsLCAvLy88IGFuIGVtYWlsIGFkZHJlc3MgaW4gdGhlIHBhZ2UuDQotICAgICAg
ICAgICAgRUVsZW1lbnRCcm9rZW5JbWFnZSAvLy88IEEgbWlzc2luZyBpbWFnZSANCisgICAgICAg
ICAgICBFRWxlbWVudEJyb2tlbkltYWdlLCAvLy88IEEgbWlzc2luZyBpbWFnZSANCisgICAgICAg
ICAgICBFRWxlbWVudFNtYXJ0TGlua1ZvaXAgLy8vPCBBIHZvaXAgc21hcnRsaW5rIA0KICAgICAg
ICAgfTsNCiANCiAgICAgICAgIC8qKg0KSW5kZXg6IFdlYktpdC9Ccm93c2VyQ29udHJvbC9zcmMv
QnJDdGwuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJDb250cm9sL3NyYy9CckN0
bC5jcHAJKHJldmlzaW9uIDI0NzgxKQ0KKysrIFdlYktpdC9Ccm93c2VyQ29udHJvbC9zcmMvQnJD
dGwuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMTE2LDcgKzExNiw4IEBAIHN0YXRpYyBjb25zdCBU
Q29tbWFuZHNBcnJheSBjb21tYW5kc0FycmENCiAgICAge1RCckN0bERlZnM6OkVFbGVtZW50U21h
cnRMaW5rVGVsLCBUQnJDdGxEZWZzOjpFQ29tbWFuZFNtYXJ0TGlua0FkZFRvUGhvbmVCb29rLCBS
X1RFWFRfV01MX0FERF9UT19DT05UQUNUUywgTlVMTH0sDQogICAgIHtUQnJDdGxEZWZzOjpFRWxl
bWVudFNtYXJ0TGlua1RlbCwgVEJyQ3RsRGVmczo6RUNvbW1hbmRTbWFydExpbmtTZW5kTWVzc2Fn
ZSwgUl9URVhUX1dNTF9TRU5EX01FU1NBR0UsIE5VTEx9LA0KICAgICB7VEJyQ3RsRGVmczo6RUVs
ZW1lbnRTbWFydExpbmtFbWFpbCwgVEJyQ3RsRGVmczo6RUNvbW1hbmRTbWFydExpbmtTZW5kTWVz
c2FnZSwgUl9URVhUX1dNTF9TRU5EX01FU1NBR0UsIE5VTEx9LA0KLSAgICB7VEJyQ3RsRGVmczo6
RUVsZW1lbnRTbWFydExpbmtFbWFpbCwgVEJyQ3RsRGVmczo6RUNvbW1hbmRTbWFydExpbmtBZGRU
b1Bob25lQm9vaywgUl9URVhUX1dNTF9BRERfVE9fQ09OVEFDVFMsIE5VTEx9DQorICAgIHtUQnJD
dGxEZWZzOjpFRWxlbWVudFNtYXJ0TGlua0VtYWlsLCBUQnJDdGxEZWZzOjpFQ29tbWFuZFNtYXJ0
TGlua0FkZFRvUGhvbmVCb29rLCBSX1RFWFRfV01MX0FERF9UT19DT05UQUNUUywgTlVMTH0sDQor
ICAgIHtUQnJDdGxEZWZzOjpFRWxlbWVudFNtYXJ0TGlua1ZvaXAsIFRCckN0bERlZnM6OkVDb21t
YW5kU21hcnRMaW5rTWFrZVZvaXBDYWxsLCBSX1RFWFRfV01MX0xJU1RfQ0FMTCwgTlVMTH0NCiAg
ICAgfTsNCiANCiAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBMT0NBTCBGVU5DVElP
TlMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTc1NCw2ICs3NTUsMTkgQEAg
RVhQT1JUX0Mgdm9pZCBDQnJDdGw6OkhhbmRsZUNvbW1hbmRMKFRJbg0KICAgICAgICAgICAgICAg
ICB9DQogICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgfQ0KKyAgICAgICAgY2FzZSBU
QnJDdGxEZWZzOjpFQ29tbWFuZEZpbmRJdGVtVm9JUEFkZHJlc3M6DQorICAgICAgICAgICAgew0K
KyAgICAgICAgICAgIGlmICggaVdlYktpdENvbnRyb2wtPldlYktpdFZpZXcoKS5TbWFydExpbmtN
b2RlKCkgPT0gRVNtYXJ0TGlua05vbmUgKQ0KKyAgICAgICAgICAgICAgICB7DQorICAgICAgICAg
ICAgICAgIGZvciAoIFRJbnQgaT0wOyBpPGlTdGF0ZUNoYW5nZU9ic2VydmVyQXJyYXkuQ291bnQo
KTsgaSsrICkNCisgICAgICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgICAgIGlT
dGF0ZUNoYW5nZU9ic2VydmVyQXJyYXlbaV0tPlN0YXRlQ2hhbmdlZChUQnJDdGxEZWZzOjpFU3Rh
dGVTbWFydFRleHRWaWV3LCBFVHJ1ZSk7DQorICAgICAgICAgICAgICAgICAgICB9DQorICAgICAg
ICAgICAgICAgIGlXZWJLaXRDb250cm9sLT5XZWJLaXRWaWV3KCkuU2V0U21hcnRMaW5rTW9kZShF
U21hcnRMaW5rVm9pcFBob25lKTsNCisgICAgICAgICAgICAgICAgaVdlYktpdENvbnRyb2wtPldl
YktpdFZpZXcoKS5GaW5kTmV4dFNtYXJ0TGluayhFVHJ1ZSk7DQorICAgICAgICAgICAgICAgIH0N
CisgICAgICAgICAgICBicmVhazsNCisgICAgICAgICAgICB9DQogICAgICAgICBjYXNlIFRCckN0
bERlZnM6OkVDb21tYW5kRmluZEl0ZW1FTWFpbDoNCiAgICAgICAgICAgICB7DQogICAgICAgICAg
ICAgaWYgKCBpV2ViS2l0Q29udHJvbC0+V2ViS2l0VmlldygpLlNtYXJ0TGlua01vZGUoKSA9PSBF
U21hcnRMaW5rTm9uZSApDQpAQCAtNzc1LDYgKzc4OSwxMSBAQCBFWFBPUlRfQyB2b2lkIENCckN0
bDo6SGFuZGxlQ29tbWFuZEwoVEluDQogICAgICAgICBjYXNlIFRCckN0bERlZnM6OkVDb21tYW5k
U21hcnRMaW5rTWFrZUNhbGw6DQogICAgICAgICAgICAgew0KICAgICAgICAgICAgIGlXZWJLaXRD
b250cm9sLT5XZWJLaXRWaWV3KCkuTWFpbkZyYW1lKCkuU21hcnRMaW5rSGFuZGxlcigpLT5IYW5k
bGVNYWtlQ2FsbEwoKTsNCisgICAgICAgICAgICBicmVhazsNCisgICAgICAgICAgICB9DQorICAg
ICAgICBjYXNlIFRCckN0bERlZnM6OkVDb21tYW5kU21hcnRMaW5rTWFrZVZvaXBDYWxsOg0KKyAg
ICAgICAgICAgIHsNCisgICAgICAgICAgICBpV2ViS2l0Q29udHJvbC0+V2ViS2l0VmlldygpLk1h
aW5GcmFtZSgpLlNtYXJ0TGlua0hhbmRsZXIoKS0+SGFuZGxlTWFrZVZvaXBDYWxsTCgpOw0KICAg
ICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgIH0NCiAgICAgICAgIGNhc2UgVEJyQ3RsRGVm
czo6RUNvbW1hbmRTbWFydExpbmtBZGRUb1Bob25lQm9vazoNCkluZGV4OiBXZWJLaXQvQnJvd3Nl
clZpZXcvaW5jL1NtYXJ0TGlua0hhbmRsZXIuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93
c2VyVmlldy9pbmMvU21hcnRMaW5rSGFuZGxlci5oCShyZXZpc2lvbiAyNDc4MSkNCisrKyBXZWJL
aXQvQnJvd3NlclZpZXcvaW5jL1NtYXJ0TGlua0hhbmRsZXIuaAkod29ya2luZyBjb3B5KQ0KQEAg
LTExMSw2ICsxMTEsMTQgQEAgY2xhc3MgQ1NtYXJ0TGlua0hhbmRsZXIgOiBwdWJsaWMgQ0Jhc2UN
CiAgICAgICAgICovDQogICAgICAgICB2b2lkIEhhbmRsZVNlbmRNZXNzYWdlKCk7DQogDQorICAg
ICAgICAvKioNCisgICAgICAgICoNCisgICAgICAgICogQHNpbmNlIDUuMA0KKyAgICAgICAgKiBA
cGFyYW0NCisgICAgICAgICogQHJldHVybiANCisgICAgICAgICovDQorICAgICAgICB2b2lkIEhh
bmRsZU1ha2VWb2lwQ2FsbEwoKTsNCisNCiAgICAgcHJpdmF0ZToNCiANCiAgICAgICAgIC8qKg0K
SW5kZXg6IFdlYktpdC9Ccm93c2VyVmlldy9pbmMvU21hcnRMaW5rTWFwLmgNCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL1NtYXJ0TGlua01hcC5oCShyZXZpc2lvbiAyNDc4
MSkNCisrKyBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL1NtYXJ0TGlua01hcC5oCSh3b3JraW5nIGNv
cHkpDQpAQCAtNzYsNyArNzYsNyBAQCBwdWJsaWM6DQogICAgIHZvaWQgU3RvcEluZGV4aW5nU21h
cnRMaW5rcygpOw0KICAgICB2b2lkIFJlSW5kZXhTbWFydExpbmtzKCk7DQogICANCi1wdWJsaWM6
IA0KK3B1YmxpYzogIA0KICAgICBDU21hcnRMaW5rKiBHZXROZXh0UGhvbmVFbnRyeSgpOw0KICAg
ICBDU21hcnRMaW5rKiBHZXROZXh0RW1haWxFbnRyeSgpOw0KICAgICBDU21hcnRMaW5rKiBHZXRQ
cmV2UGhvbmVFbnRyeSgpOw0KQEAgLTg0LDYgKzg0LDggQEAgcHVibGljOiANCiAgICAgDQogICAg
IENTbWFydExpbmsqIEdldEVudHJ5KGNvbnN0IFRSZWN0JiBhUmVjdCk7DQogICAgIFRJbnQgR2V0
RW50cnlDb3VudCgpIHsgcmV0dXJuIGlTbWFydExpbmtBcnJheS5Db3VudCgpOyB9DQorICAgIENT
bWFydExpbmsqIEdldE5leHRWb2lwUGhvbmVFbnRyeSgpOyAgICANCisgICAgQ1NtYXJ0TGluayog
R2V0UHJldlZvaXBQaG9uZUVudHJ5KCk7ICAgIA0KICAgICAgICAgDQogcHJpdmF0ZTogICAgDQog
ICAgIHN0YXRpYyBUSW50IEluZGV4aW5nQ2FsbGJhY2tMKFRBbnkqIGFXZWJLaXRTbWFydFRleHRN
YXApOw0KQEAgLTk4LDkgKzEwMCwxMCBAQCBwcml2YXRlOg0KICAgICBSUG9pbnRlckFycmF5PENT
bWFydExpbms+IGlTbWFydExpbmtBcnJheTsgICAgDQogICAgIA0KICAgICBUSW50IGlQaG9uZUVu
dHJ5SW5kZXg7DQotICAgIFRJbnQgaUVtYWlsRW50cnlJbmRleDsgICAgDQorICAgIFRJbnQgaUVt
YWlsRW50cnlJbmRleDsNCiAgICAgDQogICAgIENJZGxlKiBpSW5kZXhpbmdDYWxsYmFjazsNCisg
ICAgVEludCBpVm9pcFBob25lRW50cnlJbmRleDsNCiAgICAgfTsNCiANCiAjZW5kaWYNCkluZGV4
OiBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL1dlYktpdFZpZXcuaA0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdl
YktpdC9Ccm93c2VyVmlldy9pbmMvV2ViS2l0Vmlldy5oCShyZXZpc2lvbiAyNDc4MSkNCisrKyBX
ZWJLaXQvQnJvd3NlclZpZXcvaW5jL1dlYktpdFZpZXcuaAkod29ya2luZyBjb3B5KQ0KQEAgLTk5
LDYgKzk5LDcgQEAgZW51bSBUU21hcnRMaW5rTW9kZQ0KICAgICB7DQogICAgIEVTbWFydExpbmtQ
aG9uZSwgICAgICAgICAgICAgICAgICAgICAgIC8vRmluZGluZyBwaG9uZSBudW1iZXJzIG1vZGUN
CiAgICAgRVNtYXJ0TGlua0VtYWlsLCAgICAgICAgICAgICAgICAgICAgICAgLy9GaW5kaW5nIGVt
YWlsIGFkZHJlc3NlcyBtb2RlDQorICAgIEVTbWFydExpbmtWb2lwUGhvbmUsICAgICAgICAgICAg
ICAgICAgICAvL0ZpbmRpbmcgVm9pcCBhZGRyZXNzbW9kZQ0KICAgICBFU21hcnRMaW5rTm9uZSAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3JtYWwgTW9kZQ0KICAgICB9Ow0KIA0KSW5kZXg6
IFdlYktpdC9Ccm93c2VyVmlldy9zcmMvU21hcnRMaW5rSGFuZGxlci5jcHANCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBXZWJLaXQvQnJvd3NlclZpZXcvc3JjL1NtYXJ0TGlua0hhbmRsZXIuY3BwCShyZXZpc2lv
biAyNDc4MSkNCisrKyBXZWJLaXQvQnJvd3NlclZpZXcvc3JjL1NtYXJ0TGlua0hhbmRsZXIuY3Bw
CSh3b3JraW5nIGNvcHkpDQpAQCAtMTkxLDYgKzE5MSw0NCBAQCB2b2lkIENTbWFydExpbmtIYW5k
bGVyOjpQcmVwYXJlU2VuZFVpKCkNCiAgICAgfQ0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
DQorLy8gQ1NtYXJ0TGlua0hhbmRsZXI6OkhhbmRsZU1ha2VWb2lwQ2FsbEwNCisvLw0KKy8vIFBo
b25lIG51bWJlcg0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCit2b2lkIENTbWFydExp
bmtIYW5kbGVyOjpIYW5kbGVNYWtlVm9pcENhbGxMKCkNCisgICAgew0KKw0KKyNpZm5kZWYgX19C
Uk9XU0VSX1NESw0KKyAgICAvL1ByZXBhcmUgQUlXIHNlcnZpY2UgaGFuZGxlcg0KKyAgICBQcmVw
YXJlQWl3SGFuZGxlckwoKTsNCisgICAgX19BU1NFUlRfREVCVUcoaUFpd0hhbmRsZXIsIFVzZXI6
OlBhbmljKF9MKCJTbWFydExpbmtIYW5kbGVyIiksIEtFcnJHZW5lcmFsKSk7DQorDQorDQorICAv
L0dldCB0aGUgaW5mbyBub2RlIHVuZGVyIGN1cnNvcg0KKyAgICBDU21hcnRMaW5rKiBlbnRyeSA9
IGlXZWJLaXRGcmFtZS0+V2ViS2l0VmlldygpLkN1cnNvcigpLT5HZXRTbWFydExpbmtFbnRyeSgp
Ow0KKyAgICANCisgIGlmKGVudHJ5ICYmIGVudHJ5LT5pRW50cnlUeXBlID09IENGaW5kSXRlbUVu
Z2luZTo6RUZpbmRJdGVtU2VhcmNoUGhvbmVOdW1iZXJCaW4gfHwgQ0ZpbmRJdGVtRW5naW5lOjpF
RmluZEl0ZW1TZWFyY2hNYWlsQWRkcmVzc0JpbiApDQorICAgICAgICB7DQorICAgICAgICBUUHRy
IG51bWJlclB0ciA9IGVudHJ5LT5pRW50cnlUZXh0LT5EZXMoKTsNCisgICAgICAgIC8vRm9ybWF0
IHRoZSBQaG9uZSBOdW1iZXINCisgICAgICAgIENvbW1vblBob25lUGFyc2VyOjpQYXJzZVBob25l
TnVtYmVyKCBudW1iZXJQdHIsIENvbW1vblBob25lUGFyc2VyOjpFUGhvbmVDbGllbnROdW1iZXIp
Ow0KKyAgICAgICAgLy9DYWxsIEFJVyBmcmFtZXdvcmsgZnVuY3Rpb24gdG8gbWFrZSB0aGUgY2Fs
bA0KKyAgICAgICAgQ0Fpd0RpYWxEYXRhRXh0KiBkaWFsRGF0YUV4dCA9IENBaXdEaWFsRGF0YUV4
dDo6TmV3TEMoKTsgDQorICAgICAgICBkaWFsRGF0YUV4dC0+U2V0UGhvbmVOdW1iZXJMKCBudW1i
ZXJQdHIgKTsgDQorICAgICAgICBkaWFsRGF0YUV4dC0+U2V0Q2FsbFR5cGUoIENBaXdEaWFsRGF0
YTo6RUFJV1ZvaVAgKTsgICAgICAgICAgICAgICAgICANCisNCisgICAgICAgIENBaXdHZW5lcmlj
UGFyYW1MaXN0JiBwYXJhbUxpc3QgPSBpQWl3SGFuZGxlci0+SW5QYXJhbUxpc3RMKCk7DQorICAg
ICAgICBkaWFsRGF0YUV4dC0+RmlsbEluUGFyYW1MaXN0TCggcGFyYW1MaXN0ICk7ICAgDQorICAg
ICAgDQorICAgICAgICBpQWl3SGFuZGxlci0+RXhlY3V0ZVNlcnZpY2VDbWRMKEtBaXdDbWRDYWxs
LCBwYXJhbUxpc3QsIGlBaXdIYW5kbGVyLT5PdXRQYXJhbUxpc3RMKCksIA0KKyAgICAgICAgICAg
IDAsIDAgKTsgLy8gLy8gTm8gb3B0aW9ucyB1c2VkICwgbm8gZGlhbCByZXN1bHRzIGFyZSB3YW50
ZWQuDQorICAgICAgICB9DQorICAgICAgICBDbGVhbnVwU3RhY2s6OlBvcEFuZERlc3Ryb3koKTsg
Ly8gZGlhbERhdGFFeHQgDQorI2VuZGlmDQorICAgIH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQ0KIC8vIENTbWFydExpbmtIYW5kbGVyOjpIYW5kbGVNYWtlQ2FsbEwNCiAvLw0KIC8vIFBo
b25lIG51bWJlcg0KSW5kZXg6IFdlYktpdC9Ccm93c2VyVmlldy9zcmMvU21hcnRMaW5rTWFwLmNw
cA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyVmlldy9zcmMvU21hcnRMaW5rTWFwLmNw
cAkocmV2aXNpb24gMjQ3ODEpDQorKysgV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9TbWFydExpbmtN
YXAuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMjMwLDggKzIzMCwxMCBAQCBDU21hcnRMaW5rTWFw
KiBDU21hcnRMaW5rTWFwOjpOZXdMQyhjb25zDQogLy8NCiAvLyANCiAvLyANCi0vLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tDQotQ1NtYXJ0TGlua01hcDo6Q1NtYXJ0TGlua01hcChjb25zdCBDV2ViS2l0
RnJhbWUqIGFXZWJLaXRGcmFtZSkgOiBpV2ViS2l0RnJhbWUoYVdlYktpdEZyYW1lKSwgaVBob25l
RW50cnlJbmRleCgwKSwgaUVtYWlsRW50cnlJbmRleCgwKQ0KKy8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gDQorQ1NtYXJ0TGlua01hcDo6Q1NtYXJ0TGlua01hcChjb25zdCBDV2ViS2l0RnJhbWUqIGFX
ZWJLaXRGcmFtZSkgOiBpV2ViS2l0RnJhbWUoYVdlYktpdEZyYW1lKSwgaVBob25lRW50cnlJbmRl
eCgwKSwgDQorICAgIGlWb2lwUGhvbmVFbnRyeUluZGV4KDApLCANCisgICAgaUVtYWlsRW50cnlJ
bmRleCgwKSAgICANCiAgICAgew0KICAgICB9DQogDQpAQCAtMjgwLDYgKzI4Miw0MCBAQCBDU21h
cnRMaW5rKiBDU21hcnRMaW5rTWFwOjpHZXRFbnRyeShjb25zDQogICAgIA0KICAgfQ0KICAgICAN
CisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ1NtYXJ0TGlua01hcDo6R2V0TmV4dFZvaXBQ
aG9uZUVudHJ5DQorLy8gR2V0cyB0aGUgbmV4dCBwaG9uZSBlbnRyeSBhbmQgbW92ZXMgdGhlIHBv
c2l0aW9uIG9uZSBmb3J3YXJkDQorLy8gDQorLy8gDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K
K0NTbWFydExpbmsqIENTbWFydExpbmtNYXA6OkdldE5leHRWb2lwUGhvbmVFbnRyeSgpDQorICB7
ICAgDQorICBpZiAoaVNtYXJ0TGlua0FycmF5LkNvdW50KCkgPiAwKQ0KKyAgICB7DQorICAgICAg
ICAgICAgICAgICAgDQorICAgIC8vaWYgeW91IHJlYWNoIHRoZSBlbmQgb2YgdGhlIGxpc3QgbGV0
IG90aGVyIGZyYW1lcyBoYXZlIGEgY2hhbmNlIGFuZCByZXR1cm4gbnVsbA0KKyAgICBpZiAoaVZv
aXBQaG9uZUVudHJ5SW5kZXggPj0gMCkNCisgICAgICB7DQorICAgICAgICAgICAgICAgICAgICAg
IA0KKyAgICAgIHdoaWxlIChpVm9pcFBob25lRW50cnlJbmRleDxpU21hcnRMaW5rQXJyYXkuQ291
bnQoKSkNCisgICAgICAgIHsgICAgIA0KKyAgICAgICAgQ1NtYXJ0TGluayogdGV4dEVudHJ5ID0g
aVNtYXJ0TGlua0FycmF5W2lWb2lwUGhvbmVFbnRyeUluZGV4XTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgDQorICAgIGlmICh0ZXh0RW50cnktPmlFbnRyeVR5cGUgPT0gQ0ZpbmRJ
dGVtRW5naW5lOjpFRmluZEl0ZW1TZWFyY2hQaG9uZU51bWJlckJpbiB8fCBDRmluZEl0ZW1Fbmdp
bmU6OkVGaW5kSXRlbVNlYXJjaE1haWxBZGRyZXNzQmluICkgICAgICAgIA0KKyAgICAgICAgICB7
DQorICAgICAgICAgICsraVZvaXBQaG9uZUVudHJ5SW5kZXg7ICAgICAgICAgDQorICAgICAgICAg
IHJldHVybiB0ZXh0RW50cnk7IA0KKyAgICAgICAgICB9DQorICAgICAgICAgIA0KKyAgICAgICAg
KytpVm9pcFBob25lRW50cnlJbmRleDsNCisgICAgICAgIH0NCisgICAgICAgICAgDQorICAgICAg
fQ0KKw0KKyAgICB9DQorICAgIA0KKyAgICBpVm9pcFBob25lRW50cnlJbmRleCA9IDA7DQorICAg
IHJldHVybiBOVUxMOyAgDQorICB9DQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8vIENT
bWFydExpbmtNYXA6OkdldE5leHRQaG9uZUVudHJ5DQpAQCAtMzE2LDYgKzM1Miw0MCBAQCBDU21h
cnRMaW5rKiBDU21hcnRMaW5rTWFwOjpHZXROZXh0UGhvbmVFDQogICAgIHJldHVybiBOVUxMOyAg
DQogICB9DQogDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENTbWFydExpbmtNYXA6Okdl
dFByZXZWb2lwUGhvbmVFbnRyeQ0KKy8vIEdldHMgdGhlIHByZXZpb3VzIGVtYWlsIGVudHJ5IGFu
ZCBtb3ZlcyB0aGUgcG9zaXRpb24gb25lIGJhY2t3YXJkcw0KKy8vIA0KKy8vIA0KKy8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0NCisNCitDU21hcnRMaW5rKiBDU21hcnRMaW5rTWFwOjpHZXRQcmV2Vm9p
cFBob25lRW50cnkoKQ0KKyAgeyANCisgIGlmIChpU21hcnRMaW5rQXJyYXkuQ291bnQoKSA+IDAp
DQorICAgIHsNCisgICAgICAgICAgICAgICAgICANCisgICAgLy9pZiB5b3UgcmVhY2ggdGhlIGVu
ZCBvZiB0aGUgbGlzdCBsZXQgb3RoZXIgZnJhbWVzIGhhdmUgYSBjaGFuY2UgYW5kIHJldHVybiBu
dWxsDQorICAgIGlmIChpVm9pcFBob25lRW50cnlJbmRleCA8IGlTbWFydExpbmtBcnJheS5Db3Vu
dCgpKQ0KKyAgICAgIHsNCisgICAgICAgICAgICAgICAgICAgICAgDQorICAgICAgd2hpbGUgKGlW
b2lwUGhvbmVFbnRyeUluZGV4Pj0wKQ0KKyAgICAgICAgeyAgICAgDQorICAgICAgICBDU21hcnRM
aW5rKiB0ZXh0RW50cnkgPSBpU21hcnRMaW5rQXJyYXlbaVZvaXBQaG9uZUVudHJ5SW5kZXhdOw0K
KyAgICAgICAgaWYgKHRleHRFbnRyeS0+aUVudHJ5VHlwZSA9PSBDRmluZEl0ZW1FbmdpbmU6OkVG
aW5kSXRlbVNlYXJjaFBob25lTnVtYmVyQmluIHx8IENGaW5kSXRlbUVuZ2luZTo6RUZpbmRJdGVt
U2VhcmNoTWFpbEFkZHJlc3NCaW4pICAgICAgICANCisgICAgICAgICAgew0KKyAgICAgICAgICAt
LWlWb2lwUGhvbmVFbnRyeUluZGV4OyAgICAgICAgIA0KKyAgICAgICAgICByZXR1cm4gdGV4dEVu
dHJ5OyANCisgICAgICAgICAgfQ0KKyAgICAgICAgIC0taVZvaXBQaG9uZUVudHJ5SW5kZXg7DQor
ICAgICAgICB9DQorICAgICAgICAgIA0KKyAgICAgIH0NCisNCisgICAgaVZvaXBQaG9uZUVudHJ5
SW5kZXggPSBpU21hcnRMaW5rQXJyYXkuQ291bnQoKS0xOw0KKyAgICB9DQorICByZXR1cm4gTlVM
TDsgICAgDQorICB9DQorICANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8gQ1NtYXJ0TGlu
a01hcDo6R2V0UHJldlBob25lRW50cnkNCiAvLyBHZXRzIHRoZSBwcmV2aW91cyBlbWFpbCBlbnRy
eSBhbmQgbW92ZXMgdGhlIHBvc2l0aW9uIG9uZSBiYWNrd2FyZHMNCkluZGV4OiBXZWJLaXQvQnJv
d3NlclZpZXcvc3JjL1dlYktpdEN1cnNvci5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQnJv
d3NlclZpZXcvc3JjL1dlYktpdEN1cnNvci5jcHAJKHJldmlzaW9uIDI0NzgxKQ0KKysrIFdlYktp
dC9Ccm93c2VyVmlldy9zcmMvV2ViS2l0Q3Vyc29yLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTIz
NCw2ICsyMzQsMTIgQEAgdm9pZCBDV2ViS2l0Q3Vyc29yOjpDdXJzb3JVcGRhdGUoIFRCb29sIA0K
ICAgICAgICAgICAgICAgICBzcHJpdGVNZW0uaUJpdG1hcCA9IGlTbWFydExpbmtFbWFpbEltYWdl
LmlJbWFnZTsNCiAgICAgICAgICAgICAgICAgc3ByaXRlTWVtLmlNYXNrQml0bWFwID0gaVNtYXJ0
TGlua0VtYWlsSW1hZ2UuaU1hc2s7DQogICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICBl
bHNlIGlmICggaVZpZXctPkZvY3VzZWRFbGVtZW50VHlwZSgpID09IFRCckN0bERlZnM6OkVFbGVt
ZW50U21hcnRMaW5rVm9pcCApDQorICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAg
UmVzZXRUcmFuc3BhcmVuY3koKTsNCisgICAgICAgICAgICAgICAgc3ByaXRlTWVtLmlCaXRtYXAg
PSBpU21hcnRMaW5rUGhvbmVJbWFnZS5pSW1hZ2U7DQorICAgICAgICAgICAgICAgIHNwcml0ZU1l
bS5pTWFza0JpdG1hcCA9IGlTbWFydExpbmtQaG9uZUltYWdlLmlNYXNrOw0KKyAgICAgICAgICAg
ICAgICB9DQogICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICB7DQogICAgICAgICAg
ICAgICAgIFJlc2V0VHJhbnNwYXJlbmN5KCk7DQpJbmRleDogV2ViS2l0L0Jyb3dzZXJWaWV3L3Ny
Yy9XZWJLaXRWaWV3LmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyVmlldy9zcmMv
V2ViS2l0Vmlldy5jcHAJKHJldmlzaW9uIDI0NzgxKQ0KKysrIFdlYktpdC9Ccm93c2VyVmlldy9z
cmMvV2ViS2l0Vmlldy5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0xNDQ3LDcgKzE0NDcsNyBAQCBU
SW50IENXZWJLaXRWaWV3OjpGaW5kTmV4dFNtYXJ0TGluayhUQm9vDQogICB7DQogDQogICAgIENX
ZWJLaXRGcmFtZSogZiA9IChpRnJhbWVXaXRoRmluZEtleXdvcmQpID8gaUZyYW1lV2l0aEZpbmRL
ZXl3b3JkIDogaU1haW5GcmFtZTsNCi0gIENTbWFydExpbmsqIHNFbnRyeSA9IE5VTEw7DQorICAg
IENTbWFydExpbmsqIHNFbnRyeSA9IE5VTEw7DQogDQogICAgIHdoaWxlKCBmICkNCiAgICAgICAg
IHsNCkBAIC0xNDcyLDcgKzE0NzIsMTUgQEAgVEludCBDV2ViS2l0Vmlldzo6RmluZE5leHRTbWFy
dExpbmsoVEJvbw0KICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgc0VudHJ5ID0gZi0+
U21hcnRMaW5rTWFwKCktPkdldFByZXZFbWFpbEVudHJ5KCk7DQogICAgICAgICAgICAgfQ0KLQ0K
KyAgICAgICAgICAgIGVsc2UgaWYgKGlTbWFydExpbmtNb2RlID09IEVTbWFydExpbmtWb2lwUGhv
bmUgJiYgYUZvcndhcmQpDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICBzRW50cnkg
PSBmLT5TbWFydExpbmtNYXAoKS0+R2V0TmV4dFZvaXBQaG9uZUVudHJ5KCk7IA0KKyAgICAgICAg
ICAgIH0NCisgICAgICAgICAgICBlbHNlIGlmIChpU21hcnRMaW5rTW9kZSA9PSBFU21hcnRMaW5r
Vm9pcFBob25lICYmICFhRm9yd2FyZCkNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAg
IHNFbnRyeSA9IGYtPlNtYXJ0TGlua01hcCgpLT5HZXRQcmV2Vm9pcFBob25lRW50cnkoKTsNCisg
ICAgICAgICAgICB9DQorICAgICAgDQogICAgICAgICBpZiAoc0VudHJ5ICE9IE5VTEwpDQogICAg
ICAgICAgICAgew0KICAgICAgICAgICAgIGlGcmFtZVdpdGhGaW5kS2V5d29yZCA9IGY7DQpAQCAt
MTQ4Nyw1NSArMTQ5NSw2NSBAQCBUSW50IENXZWJLaXRWaWV3OjpGaW5kTmV4dFNtYXJ0TGluayhU
Qm9vDQogICAgICAgICBpZiggc0VudHJ5ICE9IE5VTEwgJiYgaUZyYW1lV2l0aEZpbmRLZXl3b3Jk
ICkNCiAgICAgICAgICAgICB7DQogDQotDQogICAgICAgICAgICAgVEludCB4ID0gc0VudHJ5LT5p
RW50cnlBcmVhLmlCci5pWCAtIDQ7DQogICAgICAgICAgICAgVEludCB5ID0gc0VudHJ5LT5pRW50
cnlBcmVhLmlCci5pWSAtIChzRW50cnktPmlFbnRyeUFyZWEuaUJyLmlZIC0gc0VudHJ5LT5pRW50
cnlBcmVhLmlUbC5pWSkvMjsNCiANCiAgICAgICAgICAgICBUUG9pbnQgcHQoeCx5KTsNCiANCi0g
ICAgICBUUG9pbnQgcHRzY3JvbGwoaU1haW5GcmFtZS0+Q29udGVudFBvc2l0aW9uKCkpOw0KLSAg
ICAgIHB0c2Nyb2xsLmlYICs9IHB0LmlYIC0gaU1haW5GcmFtZS0+VmlzaWJsZVJlY3QoKS5XaWR0
aCgpLzI7DQotICAgICAgcHRzY3JvbGwuaVkgKz0gcHQuaVkgLSBpTWFpbkZyYW1lLT5WaXNpYmxl
UmVjdCgpLkhlaWdodCgpLzI7DQorICAgICAgICAgICAgVFBvaW50IHB0c2Nyb2xsKGlNYWluRnJh
bWUtPkNvbnRlbnRQb3NpdGlvbigpKTsNCisgICAgICAgICAgICBwdHNjcm9sbC5pWCArPSBwdC5p
WCAtIGlNYWluRnJhbWUtPlZpc2libGVSZWN0KCkuV2lkdGgoKS8yOw0KKyAgICAgICAgICAgIHB0
c2Nyb2xsLmlZICs9IHB0LmlZIC0gaU1haW5GcmFtZS0+VmlzaWJsZVJlY3QoKS5IZWlnaHQoKS8y
Ow0KIA0KLSAgICAgIGlNYWluRnJhbWUtPlNjcm9sbFRvKGlGcmFtZVdpdGhGaW5kS2V5d29yZC0+
RnJhbWVDb29yZHNJblZpZXdDb29yZHMocHRzY3JvbGwpKTsNCisgICAgICAgICAgICBpTWFpbkZy
YW1lLT5TY3JvbGxUbyhpRnJhbWVXaXRoRmluZEtleXdvcmQtPkZyYW1lQ29vcmRzSW5WaWV3Q29v
cmRzKHB0c2Nyb2xsKSk7DQogICAgICAgICAgICAgQ3Vyc29yKCktPlNldFBvc2l0aW9uKGlGcmFt
ZVdpdGhGaW5kS2V5d29yZC0+RnJhbWVDb29yZHNJblZpZXdDb29yZHMocHQpKTsNCisgICAgICAg
ICAgICBUQnJDdGxEZWZzOjpUQnJDdGxFbGVtZW50VHlwZSBlbGVUeXBlOw0KKyAgICAgICAgICAg
IGlmICggc0VudHJ5LT5pRW50cnlUeXBlID09IENGaW5kSXRlbUVuZ2luZTo6RUZpbmRJdGVtU2Vh
cmNoTWFpbEFkZHJlc3NCaW4gJiYgaVNtYXJ0TGlua01vZGUgPT0gRVNtYXJ0TGlua0VtYWlsKSAN
CisgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICBlbGVUeXBlID0gVEJyQ3RsRGVm
czo6RUVsZW1lbnRTbWFydExpbmtFbWFpbDsgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICB9
DQorICAgICAgICAgICAgZWxzZSBpZiAoc0VudHJ5LT5pRW50cnlUeXBlID09IENGaW5kSXRlbUVu
Z2luZTo6RUZpbmRJdGVtU2VhcmNoUGhvbmVOdW1iZXJCaW4gJiYgaVNtYXJ0TGlua01vZGUgPT0g
RVNtYXJ0TGlua1Bob25lKSANCisgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICBl
bGVUeXBlID0gVEJyQ3RsRGVmczo6RUVsZW1lbnRTbWFydExpbmtUZWw7ICAgICAgICAgICAgICAg
DQorICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICBlbHNlIGlmICggc0VudHJ5LT5pRW50
cnlUeXBlID09IENGaW5kSXRlbUVuZ2luZTo6RUZpbmRJdGVtU2VhcmNoTWFpbEFkZHJlc3NCaW4g
fHwgVEJyQ3RsRGVmczo6RUVsZW1lbnRTbWFydExpbmtUZWwNCisgICAgICAgICAgICAgICAgJiYg
aVNtYXJ0TGlua01vZGUgPT0gRVNtYXJ0TGlua1ZvaXBQaG9uZSApDQorICAgICAgICAgICAgICAg
IHsNCisgICAgICAgICAgICAgICAgZWxlVHlwZSA9IFRCckN0bERlZnM6OkVFbGVtZW50U21hcnRM
aW5rVm9pcDsNCisgICAgICAgICAgICAgICAgfQ0KIA0KLSAgICAgICAgICAgIFRCckN0bERlZnM6
OlRCckN0bEVsZW1lbnRUeXBlIGVsZVR5cGUgPSBzRW50cnktPmlFbnRyeVR5cGUgPT0gQ0ZpbmRJ
dGVtRW5naW5lOjpFRmluZEl0ZW1TZWFyY2hQaG9uZU51bWJlckJpbiA/IFRCckN0bERlZnM6OkVF
bGVtZW50U21hcnRMaW5rVGVsIDogVEJyQ3RsRGVmczo6RUVsZW1lbnRTbWFydExpbmtFbWFpbDsN
CisgICAgICAgICAgDQogICAgICAgICAgICAgU2V0Rm9jdXNlZEVsZW1lbnRUeXBlKGVsZVR5cGUp
Ow0KICAgICAgICAgICAgIEN1cnNvcigpLT5DdXJzb3JVcGRhdGUoRVRydWUpOw0KIA0KLSAgICAg
IC8vIGdldCB0aGUgbmV3IGN1cnNvciBwb3NpdGlvbiBhZnRlciB1cGRhdGUgdGhlIGN1cnNvcg0K
LSAgICAgIFRQb2ludCBuZXdQb3MoQ3Vyc29yKCktPlBvc2l0aW9uKCkpOw0KLSAgICAgIGlmIChp
RnJhbWVXaXRoRmluZEtleXdvcmQgIT0gaU1haW5GcmFtZS0+Rm9jdXNlZEZyYW1lKCkgJiYNCi0g
ICAgICBpTWFpbkZyYW1lLT5Gb2N1c2VkRnJhbWUoKSkNCi0gICAgICB7DQotICAgICAgICBpTWFp
bkZyYW1lLT5Gb2N1c2VkRnJhbWUoKS0+U2V0Rm9jdXMoRUZhbHNlKTsNCi0gICAgICAgIGlGcmFt
ZVdpdGhGaW5kS2V5d29yZC0+U2V0Rm9jdXMoRVRydWUpOw0KLQ0KLSAgICAgICAgLy9TZW5kIHBv
aW50ZXIgZXZlbnQgdG8gdGhlIGZyYW1lIHRoYXQgbG9zdCBmb2N1cw0KLSAgICAgICAgVFBvaW50
ZXJFdmVudCBmb2N1c0xvc3RFdmVudDsNCi0gICAgICAgIGZvY3VzTG9zdEV2ZW50LmlUeXBlID0g
VFBvaW50ZXJFdmVudDo6RU1vdmU7DQotICAgICAgICBmb2N1c0xvc3RFdmVudC5pTW9kaWZpZXJz
ID0gMDsNCi0gICAgICAgIGZvY3VzTG9zdEV2ZW50LmlQb3NpdGlvbiA9IGlNYWluRnJhbWUtPkZv
Y3VzZWRGcmFtZSgpLT5WaWV3Q29vcmRzSW5GcmFtZUNvb3JkcyhuZXdQb3MpOw0KLSAgICAgICAg
aU1haW5GcmFtZS0+Rm9jdXNlZEZyYW1lKCktPldlYktpdEJyaWRnZSgpLldlYkNvcmVCcmlkZ2Uo
KS5Qb2ludGVyRXZlbnQoZm9jdXNMb3N0RXZlbnQpOw0KLQ0KLSAgICAgIH0NCi0NCi0gICAgICAv
L1NlbmQgcG9pbnRlciBldmVudCB0byB0aGUgZnJhbWUgdGhhdCBnYWluIGZvY3VzDQotICAgICAg
VFBvaW50ZXJFdmVudCBmb2N1c0dhaW5FdmVudDsNCi0gICAgICBmb2N1c0dhaW5FdmVudC5pVHlw
ZSA9IFRQb2ludGVyRXZlbnQ6OkVNb3ZlOw0KLSAgICAgIGZvY3VzR2FpbkV2ZW50LmlNb2RpZmll
cnMgPSAwOw0KLSAgICAgIGZvY3VzR2FpbkV2ZW50LmlQb3NpdGlvbiA9IGlGcmFtZVdpdGhGaW5k
S2V5d29yZC0+Vmlld0Nvb3Jkc0luRnJhbWVDb29yZHMobmV3UG9zKTsNCi0gICAgICBpTWFpbkZy
YW1lLT5Gb2N1c2VkRnJhbWUoKS0+V2ViS2l0QnJpZGdlKCkuV2ViQ29yZUJyaWRnZSgpLlBvaW50
ZXJFdmVudChmb2N1c0dhaW5FdmVudCk7DQotDQorICAgICAgICAgICAgLy8gZ2V0IHRoZSBuZXcg
Y3Vyc29yIHBvc2l0aW9uIGFmdGVyIHVwZGF0ZSB0aGUgY3Vyc29yDQorICAgICAgICAgICAgVFBv
aW50IG5ld1BvcyhDdXJzb3IoKS0+UG9zaXRpb24oKSk7DQorICAgICAgICAgICAgaWYgKGlGcmFt
ZVdpdGhGaW5kS2V5d29yZCAhPSBpTWFpbkZyYW1lLT5Gb2N1c2VkRnJhbWUoKSAmJg0KKyAgICAg
ICAgICAgICAgICBpTWFpbkZyYW1lLT5Gb2N1c2VkRnJhbWUoKSkNCisgICAgICAgICAgICAgICAg
ew0KKyAgICAgICAgICAgICAgICBpTWFpbkZyYW1lLT5Gb2N1c2VkRnJhbWUoKS0+U2V0Rm9jdXMo
RUZhbHNlKTsNCisgICAgICAgICAgICAgICAgaUZyYW1lV2l0aEZpbmRLZXl3b3JkLT5TZXRGb2N1
cyhFVHJ1ZSk7DQorDQorICAgICAgICAgICAgICAgIC8vU2VuZCBwb2ludGVyIGV2ZW50IHRvIHRo
ZSBmcmFtZSB0aGF0IGxvc3QgZm9jdXMNCisgICAgICAgICAgICAgICAgVFBvaW50ZXJFdmVudCBm
b2N1c0xvc3RFdmVudDsNCisgICAgICAgICAgICAgICAgZm9jdXNMb3N0RXZlbnQuaVR5cGUgPSBU
UG9pbnRlckV2ZW50OjpFTW92ZTsNCisgICAgICAgICAgICAgICAgZm9jdXNMb3N0RXZlbnQuaU1v
ZGlmaWVycyA9IDA7DQorICAgICAgICAgICAgICAgIGZvY3VzTG9zdEV2ZW50LmlQb3NpdGlvbiA9
IGlNYWluRnJhbWUtPkZvY3VzZWRGcmFtZSgpLT5WaWV3Q29vcmRzSW5GcmFtZUNvb3JkcyhuZXdQ
b3MpOw0KKyAgICAgICAgICAgICAgICBpTWFpbkZyYW1lLT5Gb2N1c2VkRnJhbWUoKS0+V2ViS2l0
QnJpZGdlKCkuV2ViQ29yZUJyaWRnZSgpLlBvaW50ZXJFdmVudChmb2N1c0xvc3RFdmVudCk7DQor
ICAgICAgICAgICAgICAgIH0NCisNCisgICAgICAgICAgICAvL1NlbmQgcG9pbnRlciBldmVudCB0
byB0aGUgZnJhbWUgdGhhdCBnYWluIGZvY3VzDQorICAgICAgICAgICAgVFBvaW50ZXJFdmVudCBm
b2N1c0dhaW5FdmVudDsNCisgICAgICAgICAgICBmb2N1c0dhaW5FdmVudC5pVHlwZSA9IFRQb2lu
dGVyRXZlbnQ6OkVNb3ZlOw0KKyAgICAgICAgICAgIGZvY3VzR2FpbkV2ZW50LmlNb2RpZmllcnMg
PSAwOw0KKyAgICAgICAgICAgIGZvY3VzR2FpbkV2ZW50LmlQb3NpdGlvbiA9IGlGcmFtZVdpdGhG
aW5kS2V5d29yZC0+Vmlld0Nvb3Jkc0luRnJhbWVDb29yZHMobmV3UG9zKTsNCisgICAgICAgICAg
ICBpTWFpbkZyYW1lLT5Gb2N1c2VkRnJhbWUoKS0+V2ViS2l0QnJpZGdlKCkuV2ViQ29yZUJyaWRn
ZSgpLlBvaW50ZXJFdmVudChmb2N1c0dhaW5FdmVudCk7DQogICAgICAgICAgICAgfQ0KLSAgICAg
ICAgICBlbHNlIGlmIChpRnJhbWVXaXRoRmluZEtleXdvcmQgJiYgaUZyYW1lV2l0aEZpbmRLZXl3
b3JkLT5TbWFydExpbmtNYXAoKS0+R2V0RW50cnlDb3VudCgpID4gMCkNCi0gICAgICAgICAgew0K
KyAgICAgICAgZWxzZSBpZiAoaUZyYW1lV2l0aEZpbmRLZXl3b3JkICYmIGlGcmFtZVdpdGhGaW5k
S2V5d29yZC0+U21hcnRMaW5rTWFwKCktPkdldEVudHJ5Q291bnQoKSA+IDApDQorICAgICAgICAg
ICAgew0KICAgICAgICAgICAgIC8va2V5IHdvcmRzIGFyZSBhbHdheXMgdGhlcmUgd3JhcCBhcm91
bmQgYW5kIHRyeSBpdCBmcm9tIHRoZSB0b3AgZnJhbWUNCiAgICAgICAgICAgICBpRnJhbWVXaXRo
RmluZEtleXdvcmQgPSBpTWFpbkZyYW1lOw0KICAgICAgICAgICAgIHJldHVybiBGaW5kTmV4dFNt
YXJ0TGluayhhRm9yd2FyZCk7DQotICAgICAgICAgIH0NCi0NCisgICAgICAgICAgICB9DQogDQog
ICAgIHJldHVybiBLRXJyTm90Rm91bmQ7DQogICB9DQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15960</attachid>
            <date>2007-08-14 09:05:32 -0700</date>
            <delta_ts>2007-09-06 13:43:57 -0700</delta_ts>
            <desc>CR is in defined status, new patch needed</desc>
            <filename>CR409-415.patch</filename>
            <type>text/plain</type>
            <size>20432</size>
            <attacher name="George Guo">george.guo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDI1MDU3KQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDExIEBADQorbmFndW8sIHJldmlld2VkIGJ5IDxyZXZpZXdlcj4NCisgREVT
QzogYWRkIG9uZSBmb2N1c2VkIHR5cGUgZm9yIFNtYXJ0TGlua1ZvaXAgDQorIGh0dHA6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzY2DQorDQorICAgICAgICBXQVJOSU5HOiBO
TyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQNCisNCisgICAgICAgICogYnJpZGdlL1dlYkNv
cmVCcmlkZ2UuaDoNCisNCiB3M2xpdSwgcmV2aWV3ZWQgYnkgPHpidWp0YXNAZ21haWwuY29tPg0K
ICBERVNDOiBbUzYwXSBTTE9OLTc1TUFGVjogPDxPVEM+PiBPVEMgLSBCVFQgLSA2LjgwMC41NjIw
IFdDU1MgVEFCTEUgUk9XIEhFSUdIVA0KICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDg3Mg0KSW5kZXg6IFdlYkNvcmUvYnJpZGdlL1dlYkNvcmVCcmlkZ2UuaA0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KLS0tIFdlYkNvcmUvYnJpZGdlL1dlYkNvcmVCcmlkZ2UuaAkocmV2aXNpb24gMjUw
NTcpDQorKysgV2ViQ29yZS9icmlkZ2UvV2ViQ29yZUJyaWRnZS5oCSh3b3JraW5nIGNvcHkpDQpA
QCAtMTI3LDggKzEyNyw5IEBAIHR5cGVkZWYgZW51bQ0KICAgICBFV2ViQ29yZUVsZW1lbnRTY3Jv
bGxCYXIsDQogICAgIEVXZWJDb3JlRWxlbWVudFNtYXJ0TGlua1RlbCwNCiAgICAgRVdlYkNvcmVF
bGVtZW50U21hcnRMaW5rRW1haWwsDQotICAgIEVXZWJDb3JlRWxlbWVudEJyb2tlbkltYWdlDQot
ICB9IFRXZWJDb3JlRm9jdXNlZEVsZW1lbnRUeXBlOw0KKyAgICBFV2ViQ29yZUVsZW1lbnRCcm9r
ZW5JbWFnZSwNCisgICAgRVdlYkNvcmVFbGVtZW50U21hcnRMaW5rVm9pcA0KKyAgfSBUV2ViQ29y
ZUZvY3VzZWRFbGVtZW50VHlwZTsgIA0KIA0KIHR5cGVkZWYgZW51bQ0KICAgICB7DQpJbmRleDog
V2ViS2l0L0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9DaGFuZ2VMb2cJKHJldmlz
aW9uIDI1MDU3KQ0KKysrIFdlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkNCkBAIC0xLDMg
KzEsMjUgQEANCituYWd1bywgcmV2aWV3ZWQgYnkgPHJldmlld2VyPg0KKyBERVNDOiBbUzYwXSBB
ZGQgc3VwcG9ydCBvZiBjYWxsIHR5cGVzIFZvSVAgVUkgdG8gRmluZEl0ZW0gcmVzdWx0cyANCisg
aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NjYNCisNCisgICAgICAg
ICogQnJvd3NlckNvbnRyb2wvaW5jL0JyQ3RsRGVmcy5oOg0KKyAgICAgICAgKFRCckN0bERlZnM6
Oik6DQorICAgICAgICAqIEJyb3dzZXJDb250cm9sL3NyYy9CckN0bC5jcHA6DQorICAgICAgICAo
Q0JyQ3RsOjpIYW5kbGVDb21tYW5kTCk6DQorICAgICAgICAqIEJyb3dzZXJWaWV3L2luYy9TbWFy
dExpbmtIYW5kbGVyLmg6DQorICAgICAgICAqIEJyb3dzZXJWaWV3L2luYy9TbWFydExpbmtNYXAu
aDoNCisgICAgICAgICogQnJvd3NlclZpZXcvaW5jL1dlYktpdFZpZXcuaDoNCisgICAgICAgICog
QnJvd3NlclZpZXcvc3JjL1NtYXJ0TGlua0hhbmRsZXIuY3BwOg0KKyAgICAgICAgKENTbWFydExp
bmtIYW5kbGVyOjpIYW5kbGVNYWtlVm9pcENhbGxMKToNCisgICAgICAgICogQnJvd3NlclZpZXcv
c3JjL1NtYXJ0TGlua01hcC5jcHA6DQorICAgICAgICAoQ1NtYXJ0TGlua01hcDo6Q1NtYXJ0TGlu
a01hcCk6DQorICAgICAgICAoQ1NtYXJ0TGlua01hcDo6R2V0TmV4dFZvaXBQaG9uZUVudHJ5KToN
CisgICAgICAgIChDU21hcnRMaW5rTWFwOjpHZXRQcmV2Vm9pcFBob25lRW50cnkpOg0KKyAgICAg
ICAgKiBCcm93c2VyVmlldy9zcmMvV2ViS2l0Q3Vyc29yLmNwcDoNCisgICAgICAgIChDV2ViS2l0
Q3Vyc29yOjpDdXJzb3JVcGRhdGUpOg0KKyAgICAgICAgKiBCcm93c2VyVmlldy9zcmMvV2ViS2l0
Vmlldy5jcHA6DQorICAgICAgICAoQ1dlYktpdFZpZXc6OkZpbmROZXh0U21hcnRMaW5rKToNCisN
CiB5YWRhdmFsbCwgcmV2aWV3ZWQgYnkgPHNhY2hpbi5wYWRtYUBub2tpYS5jb20+DQogIERFU0M6
IFdpZGdldCByZWxhdGVkIEJyb3dzZXIgY29udHJvbCAicmVzZXJ2ZWQiIEFQSXMgbmVlZCB0byBi
ZSBleHRlbnNpYmxlDQogIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
ODc0DQpJbmRleDogV2ViS2l0L0Jyb3dzZXJDb250cm9sL2luYy9CckN0bERlZnMuaA0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyQ29udHJvbC9pbmMvQnJDdGxEZWZzLmgJKHJldmlzaW9u
IDI1MDU3KQ0KKysrIFdlYktpdC9Ccm93c2VyQ29udHJvbC9pbmMvQnJDdGxEZWZzLmgJKHdvcmtp
bmcgY29weSkNCkBAIC0yMTAsNyArMjEwLDE0IEBAIGNsYXNzIFRCckN0bERlZnMNCiAgICAgICAg
ICAgICBFQ29tbWFuZFNtYXJ0TGlua1NlbmRFbWFpbCwgLy8vPCANCiAgICAgICAgICAgICBFQ29t
bWFuZFNob3dBbmNob3JIcmVmLCAgLy8vPERpc3BsYXkgdGhlIFVSTCBvZiBhIGh5cGVybGluayAt
IHN1cHBvcnRlZCBvbmx5IGZvciBIVE1MDQogICAgICAgICAgICAgRUNvbW1hbmRMb2FkRm9jdXNl
ZEltYWdlLCAvLy88TG9hZCB0aGUgZm9jdWVzZCBpbWFnZSAtIHN1cHBvcnRlZCBvbmx5IGZvciBI
VE1MDQotICAgICAgICAgICAgRUNvbW1hbmRVbkxvYWRQbHVnaW5XaW5kb3dzDQorICAgICAgICAg
ICAgRUNvbW1hbmRVbkxvYWRQbHVnaW5XaW5kb3dzLCAvLy88VW5sb2FkIHBsdWdpbiB3aW5kb3dz
DQorICAgICAgICAgICAgRUNvbW1hbmRGaW5kSXRlbVZvSVBBZGRyZXNzLCAvLy88RmluZCBWb0lQ
IGFkZHJlc3MgaXRlbQ0KKyAgICAgICAgICAgIEVDb21tYW5kU21hcnRMaW5rTWFrZVZvaXBDYWxs
ICAgLy8vPE1ha2VWb2lwIENhbGx0aHJvdWdoIHNtYXJ0bGluaw0KKyAgICAgICAgICAgIC8qKg0K
KyAgICAgICAgICAgICogRGlzcGxheXMgdGhlIEZpbmRJdGVtIGRpYWxvZyBhbmQgaGlnaGxpZ2h0
cyBhbGwgb2YgdGhlIFZvSVANCisgICAgICAgICAgICAqIGFkZHJlc3NlcyBpbiB0aGUgY3VycmVu
dCBwYWdlLiBVc2UgdGhpcyBwYXJhbWV0ZXIgb25seSBpZiB5b3UNCisgICAgICAgICAgICAqIHNw
ZWNpZmllZCB0aGUgRUNhcGFiaWxpdHlGaW5kSXRlbSBjYXBhYmlsaXR5Lg0KKyAgICAgICAgICAg
ICovICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICB9Ow0KICAgICAgICAgLyoqDQog
ICAgICAgICAqIFRoZSBsb2FkIGV2ZW50IHRoYXQgb2NjdXJyZWQuDQpAQCAtNjExLDcgKzYxOCw4
IEBAIGNsYXNzIFRCckN0bERlZnMNCiANCiAgICAgICAgICAgICBFRWxlbWVudFNtYXJ0TGlua1Rl
bCwgLy8vPCBBIHRlbGVwaG9uZSBudW1iZXIgaW4gdGhlIHBhZ2UuDQogICAgICAgICAgICAgRUVs
ZW1lbnRTbWFydExpbmtFbWFpbCwgLy8vPCBhbiBlbWFpbCBhZGRyZXNzIGluIHRoZSBwYWdlLg0K
LSAgICAgICAgICAgIEVFbGVtZW50QnJva2VuSW1hZ2UgLy8vPCBBIG1pc3NpbmcgaW1hZ2UgDQor
ICAgICAgICAgICAgRUVsZW1lbnRCcm9rZW5JbWFnZSwgLy8vPCBBIG1pc3NpbmcgaW1hZ2UgDQor
ICAgICAgICAgICAgRUVsZW1lbnRTbWFydExpbmtWb2lwIC8vLzwgQSB2b2lwIHNtYXJ0bGluayAN
CiAgICAgICAgIH07DQogDQogICAgICAgICAvKioNCkluZGV4OiBXZWJLaXQvQnJvd3NlckNvbnRy
b2wvc3JjL0JyQ3RsLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyQ29udHJvbC9z
cmMvQnJDdGwuY3BwCShyZXZpc2lvbiAyNTA1NykNCisrKyBXZWJLaXQvQnJvd3NlckNvbnRyb2wv
c3JjL0JyQ3RsLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTc1NCw2ICs3NTQsMTkgQEAgRVhQT1JU
X0Mgdm9pZCBDQnJDdGw6OkhhbmRsZUNvbW1hbmRMKFRJbg0KICAgICAgICAgICAgICAgICB9DQog
ICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgfQ0KKyAgICAgICAgY2FzZSBUQnJDdGxE
ZWZzOjpFQ29tbWFuZEZpbmRJdGVtVm9JUEFkZHJlc3M6DQorICAgICAgICAgICAgew0KKyAgICAg
ICAgICAgIGlmICggaVdlYktpdENvbnRyb2wtPldlYktpdFZpZXcoKS5TbWFydExpbmtNb2RlKCkg
PT0gRVNtYXJ0TGlua05vbmUgKQ0KKyAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAg
IGZvciAoIFRJbnQgaT0wOyBpPGlTdGF0ZUNoYW5nZU9ic2VydmVyQXJyYXkuQ291bnQoKTsgaSsr
ICkNCisgICAgICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgICAgIGlTdGF0ZUNo
YW5nZU9ic2VydmVyQXJyYXlbaV0tPlN0YXRlQ2hhbmdlZChUQnJDdGxEZWZzOjpFU3RhdGVTbWFy
dFRleHRWaWV3LCBFVHJ1ZSk7DQorICAgICAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAg
ICAgIGlXZWJLaXRDb250cm9sLT5XZWJLaXRWaWV3KCkuU2V0U21hcnRMaW5rTW9kZShFU21hcnRM
aW5rVm9pcFBob25lKTsNCisgICAgICAgICAgICAgICAgaVdlYktpdENvbnRyb2wtPldlYktpdFZp
ZXcoKS5GaW5kTmV4dFNtYXJ0TGluayhFVHJ1ZSk7DQorICAgICAgICAgICAgICAgIH0NCisgICAg
ICAgICAgICBicmVhazsNCisgICAgICAgICAgICB9DQogICAgICAgICBjYXNlIFRCckN0bERlZnM6
OkVDb21tYW5kRmluZEl0ZW1FTWFpbDoNCiAgICAgICAgICAgICB7DQogICAgICAgICAgICAgaWYg
KCBpV2ViS2l0Q29udHJvbC0+V2ViS2l0VmlldygpLlNtYXJ0TGlua01vZGUoKSA9PSBFU21hcnRM
aW5rTm9uZSApDQpAQCAtNzc1LDYgKzc4OCwxMSBAQCBFWFBPUlRfQyB2b2lkIENCckN0bDo6SGFu
ZGxlQ29tbWFuZEwoVEluDQogICAgICAgICBjYXNlIFRCckN0bERlZnM6OkVDb21tYW5kU21hcnRM
aW5rTWFrZUNhbGw6DQogICAgICAgICAgICAgew0KICAgICAgICAgICAgIGlXZWJLaXRDb250cm9s
LT5XZWJLaXRWaWV3KCkuTWFpbkZyYW1lKCkuU21hcnRMaW5rSGFuZGxlcigpLT5IYW5kbGVNYWtl
Q2FsbEwoKTsNCisgICAgICAgICAgICBicmVhazsNCisgICAgICAgICAgICB9DQorICAgICAgICBj
YXNlIFRCckN0bERlZnM6OkVDb21tYW5kU21hcnRMaW5rTWFrZVZvaXBDYWxsOg0KKyAgICAgICAg
ICAgIHsNCisgICAgICAgICAgICBpV2ViS2l0Q29udHJvbC0+V2ViS2l0VmlldygpLk1haW5GcmFt
ZSgpLlNtYXJ0TGlua0hhbmRsZXIoKS0+SGFuZGxlTWFrZVZvaXBDYWxsTCgpOw0KICAgICAgICAg
ICAgIGJyZWFrOw0KICAgICAgICAgICAgIH0NCiAgICAgICAgIGNhc2UgVEJyQ3RsRGVmczo6RUNv
bW1hbmRTbWFydExpbmtBZGRUb1Bob25lQm9vazoNCkluZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcv
aW5jL1NtYXJ0TGlua0hhbmRsZXIuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyVmll
dy9pbmMvU21hcnRMaW5rSGFuZGxlci5oCShyZXZpc2lvbiAyNTA1NykNCisrKyBXZWJLaXQvQnJv
d3NlclZpZXcvaW5jL1NtYXJ0TGlua0hhbmRsZXIuaAkod29ya2luZyBjb3B5KQ0KQEAgLTExMSw2
ICsxMTEsMTQgQEAgY2xhc3MgQ1NtYXJ0TGlua0hhbmRsZXIgOiBwdWJsaWMgQ0Jhc2UNCiAgICAg
ICAgICovDQogICAgICAgICB2b2lkIEhhbmRsZVNlbmRNZXNzYWdlKCk7DQogDQorICAgICAgICAv
KioNCisgICAgICAgICoNCisgICAgICAgICogQHNpbmNlIDUuMA0KKyAgICAgICAgKiBAcGFyYW0N
CisgICAgICAgICogQHJldHVybiANCisgICAgICAgICovDQorICAgICAgICB2b2lkIEhhbmRsZU1h
a2VWb2lwQ2FsbEwoKTsNCisNCiAgICAgcHJpdmF0ZToNCiANCiAgICAgICAgIC8qKg0KSW5kZXg6
IFdlYktpdC9Ccm93c2VyVmlldy9pbmMvU21hcnRMaW5rTWFwLmgNCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBX
ZWJLaXQvQnJvd3NlclZpZXcvaW5jL1NtYXJ0TGlua01hcC5oCShyZXZpc2lvbiAyNTA1NykNCisr
KyBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL1NtYXJ0TGlua01hcC5oCSh3b3JraW5nIGNvcHkpDQpA
QCAtNzYsNyArNzYsNyBAQCBwdWJsaWM6DQogICAgIHZvaWQgU3RvcEluZGV4aW5nU21hcnRMaW5r
cygpOw0KICAgICB2b2lkIFJlSW5kZXhTbWFydExpbmtzKCk7DQogICANCi1wdWJsaWM6IA0KK3B1
YmxpYzogIA0KICAgICBDU21hcnRMaW5rKiBHZXROZXh0UGhvbmVFbnRyeSgpOw0KICAgICBDU21h
cnRMaW5rKiBHZXROZXh0RW1haWxFbnRyeSgpOw0KICAgICBDU21hcnRMaW5rKiBHZXRQcmV2UGhv
bmVFbnRyeSgpOw0KQEAgLTg0LDYgKzg0LDggQEAgcHVibGljOiANCiAgICAgDQogICAgIENTbWFy
dExpbmsqIEdldEVudHJ5KGNvbnN0IFRSZWN0JiBhUmVjdCk7DQogICAgIFRJbnQgR2V0RW50cnlD
b3VudCgpIHsgcmV0dXJuIGlTbWFydExpbmtBcnJheS5Db3VudCgpOyB9DQorICAgIENTbWFydExp
bmsqIEdldE5leHRWb2lwUGhvbmVFbnRyeSgpOyAgICANCisgICAgQ1NtYXJ0TGluayogR2V0UHJl
dlZvaXBQaG9uZUVudHJ5KCk7ICAgIA0KICAgICAgICAgDQogcHJpdmF0ZTogICAgDQogICAgIHN0
YXRpYyBUSW50IEluZGV4aW5nQ2FsbGJhY2tMKFRBbnkqIGFXZWJLaXRTbWFydFRleHRNYXApOw0K
QEAgLTk4LDkgKzEwMCwxMCBAQCBwcml2YXRlOg0KICAgICBSUG9pbnRlckFycmF5PENTbWFydExp
bms+IGlTbWFydExpbmtBcnJheTsgICAgDQogICAgIA0KICAgICBUSW50IGlQaG9uZUVudHJ5SW5k
ZXg7DQotICAgIFRJbnQgaUVtYWlsRW50cnlJbmRleDsgICAgDQorICAgIFRJbnQgaUVtYWlsRW50
cnlJbmRleDsNCiAgICAgDQogICAgIENJZGxlKiBpSW5kZXhpbmdDYWxsYmFjazsNCisgICAgVElu
dCBpVm9pcFBob25lRW50cnlJbmRleDsNCiAgICAgfTsNCiANCiAjZW5kaWYNCkluZGV4OiBXZWJL
aXQvQnJvd3NlclZpZXcvaW5jL1dlYktpdFZpZXcuaA0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9C
cm93c2VyVmlldy9pbmMvV2ViS2l0Vmlldy5oCShyZXZpc2lvbiAyNTA1NykNCisrKyBXZWJLaXQv
QnJvd3NlclZpZXcvaW5jL1dlYktpdFZpZXcuaAkod29ya2luZyBjb3B5KQ0KQEAgLTk5LDYgKzk5
LDcgQEAgZW51bSBUU21hcnRMaW5rTW9kZQ0KICAgICB7DQogICAgIEVTbWFydExpbmtQaG9uZSwg
ICAgICAgICAgICAgICAgICAgICAgIC8vRmluZGluZyBwaG9uZSBudW1iZXJzIG1vZGUNCiAgICAg
RVNtYXJ0TGlua0VtYWlsLCAgICAgICAgICAgICAgICAgICAgICAgLy9GaW5kaW5nIGVtYWlsIGFk
ZHJlc3NlcyBtb2RlDQorICAgIEVTbWFydExpbmtWb2lwUGhvbmUsICAgICAgICAgICAgICAgICAg
ICAvL0ZpbmRpbmcgVm9pcCBhZGRyZXNzbW9kZQ0KICAgICBFU21hcnRMaW5rTm9uZSAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyBOb3JtYWwgTW9kZQ0KICAgICB9Ow0KIA0KSW5kZXg6IFdlYktp
dC9Ccm93c2VyVmlldy9zcmMvU21hcnRMaW5rSGFuZGxlci5jcHANCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBX
ZWJLaXQvQnJvd3NlclZpZXcvc3JjL1NtYXJ0TGlua0hhbmRsZXIuY3BwCShyZXZpc2lvbiAyNTA1
NykNCisrKyBXZWJLaXQvQnJvd3NlclZpZXcvc3JjL1NtYXJ0TGlua0hhbmRsZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpDQpAQCAtMTkxLDYgKzE5MSw0NCBAQCB2b2lkIENTbWFydExpbmtIYW5kbGVyOjpQ
cmVwYXJlU2VuZFVpKCkNCiAgICAgfQ0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8g
Q1NtYXJ0TGlua0hhbmRsZXI6OkhhbmRsZU1ha2VWb2lwQ2FsbEwNCisvLw0KKy8vIFBob25lIG51
bWJlcg0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCit2b2lkIENTbWFydExpbmtIYW5k
bGVyOjpIYW5kbGVNYWtlVm9pcENhbGxMKCkNCisgICAgew0KKw0KKyNpZm5kZWYgX19CUk9XU0VS
X1NESw0KKyAgICAvL1ByZXBhcmUgQUlXIHNlcnZpY2UgaGFuZGxlcg0KKyAgICBQcmVwYXJlQWl3
SGFuZGxlckwoKTsNCisgICAgX19BU1NFUlRfREVCVUcoaUFpd0hhbmRsZXIsIFVzZXI6OlBhbmlj
KF9MKCJTbWFydExpbmtIYW5kbGVyIiksIEtFcnJHZW5lcmFsKSk7DQorDQorDQorICAvL0dldCB0
aGUgaW5mbyBub2RlIHVuZGVyIGN1cnNvcg0KKyAgICBDU21hcnRMaW5rKiBlbnRyeSA9IGlXZWJL
aXRGcmFtZS0+V2ViS2l0VmlldygpLkN1cnNvcigpLT5HZXRTbWFydExpbmtFbnRyeSgpOw0KKyAg
ICANCisgIGlmKGVudHJ5ICYmIGVudHJ5LT5pRW50cnlUeXBlID09IENGaW5kSXRlbUVuZ2luZTo6
RUZpbmRJdGVtU2VhcmNoUGhvbmVOdW1iZXJCaW4gfHwgQ0ZpbmRJdGVtRW5naW5lOjpFRmluZEl0
ZW1TZWFyY2hNYWlsQWRkcmVzc0JpbiApDQorICAgICAgICB7DQorICAgICAgICBUUHRyIG51bWJl
clB0ciA9IGVudHJ5LT5pRW50cnlUZXh0LT5EZXMoKTsNCisgICAgICAgIC8vRm9ybWF0IHRoZSBQ
aG9uZSBOdW1iZXINCisgICAgICAgIENvbW1vblBob25lUGFyc2VyOjpQYXJzZVBob25lTnVtYmVy
KCBudW1iZXJQdHIsIENvbW1vblBob25lUGFyc2VyOjpFUGhvbmVDbGllbnROdW1iZXIpOw0KKyAg
ICAgICAgLy9DYWxsIEFJVyBmcmFtZXdvcmsgZnVuY3Rpb24gdG8gbWFrZSB0aGUgY2FsbA0KKyAg
ICAgICAgQ0Fpd0RpYWxEYXRhRXh0KiBkaWFsRGF0YUV4dCA9IENBaXdEaWFsRGF0YUV4dDo6TmV3
TEMoKTsgDQorICAgICAgICBkaWFsRGF0YUV4dC0+U2V0UGhvbmVOdW1iZXJMKCBudW1iZXJQdHIg
KTsgDQorICAgICAgICBkaWFsRGF0YUV4dC0+U2V0Q2FsbFR5cGUoIENBaXdEaWFsRGF0YTo6RUFJ
V1ZvaVAgKTsgICAgICAgICAgICAgICAgICANCisNCisgICAgICAgIENBaXdHZW5lcmljUGFyYW1M
aXN0JiBwYXJhbUxpc3QgPSBpQWl3SGFuZGxlci0+SW5QYXJhbUxpc3RMKCk7DQorICAgICAgICBk
aWFsRGF0YUV4dC0+RmlsbEluUGFyYW1MaXN0TCggcGFyYW1MaXN0ICk7ICAgDQorICAgICAgDQor
ICAgICAgICBpQWl3SGFuZGxlci0+RXhlY3V0ZVNlcnZpY2VDbWRMKEtBaXdDbWRDYWxsLCBwYXJh
bUxpc3QsIGlBaXdIYW5kbGVyLT5PdXRQYXJhbUxpc3RMKCksIA0KKyAgICAgICAgICAgIDAsIDAg
KTsgLy8gLy8gTm8gb3B0aW9ucyB1c2VkICwgbm8gZGlhbCByZXN1bHRzIGFyZSB3YW50ZWQuDQor
ICAgICAgICB9DQorICAgICAgICBDbGVhbnVwU3RhY2s6OlBvcEFuZERlc3Ryb3koKTsgLy8gZGlh
bERhdGFFeHQgDQorI2VuZGlmDQorICAgIH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K
IC8vIENTbWFydExpbmtIYW5kbGVyOjpIYW5kbGVNYWtlQ2FsbEwNCiAvLw0KIC8vIFBob25lIG51
bWJlcg0KSW5kZXg6IFdlYktpdC9Ccm93c2VyVmlldy9zcmMvU21hcnRMaW5rTWFwLmNwcA0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyVmlldy9zcmMvU21hcnRMaW5rTWFwLmNwcAkocmV2
aXNpb24gMjUwNTcpDQorKysgV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9TbWFydExpbmtNYXAuY3Bw
CSh3b3JraW5nIGNvcHkpDQpAQCAtMjMwLDggKzIzMCwxMCBAQCBDU21hcnRMaW5rTWFwKiBDU21h
cnRMaW5rTWFwOjpOZXdMQyhjb25zDQogLy8NCiAvLyANCiAvLyANCi0vLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tDQotQ1NtYXJ0TGlua01hcDo6Q1NtYXJ0TGlua01hcChjb25zdCBDV2ViS2l0RnJhbWUq
IGFXZWJLaXRGcmFtZSkgOiBpV2ViS2l0RnJhbWUoYVdlYktpdEZyYW1lKSwgaVBob25lRW50cnlJ
bmRleCgwKSwgaUVtYWlsRW50cnlJbmRleCgwKQ0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gDQor
Q1NtYXJ0TGlua01hcDo6Q1NtYXJ0TGlua01hcChjb25zdCBDV2ViS2l0RnJhbWUqIGFXZWJLaXRG
cmFtZSkgOiBpV2ViS2l0RnJhbWUoYVdlYktpdEZyYW1lKSwgaVBob25lRW50cnlJbmRleCgwKSwg
DQorICAgIGlWb2lwUGhvbmVFbnRyeUluZGV4KDApLCANCisgICAgaUVtYWlsRW50cnlJbmRleCgw
KSAgICANCiAgICAgew0KICAgICB9DQogDQpAQCAtMjgwLDYgKzI4Miw0MCBAQCBDU21hcnRMaW5r
KiBDU21hcnRMaW5rTWFwOjpHZXRFbnRyeShjb25zDQogICAgIA0KICAgfQ0KICAgICANCisvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ1NtYXJ0TGlua01hcDo6R2V0TmV4dFZvaXBQaG9uZUVu
dHJ5DQorLy8gR2V0cyB0aGUgbmV4dCBwaG9uZSBlbnRyeSBhbmQgbW92ZXMgdGhlIHBvc2l0aW9u
IG9uZSBmb3J3YXJkDQorLy8gDQorLy8gDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0NTbWFy
dExpbmsqIENTbWFydExpbmtNYXA6OkdldE5leHRWb2lwUGhvbmVFbnRyeSgpDQorICB7ICAgDQor
ICBpZiAoaVNtYXJ0TGlua0FycmF5LkNvdW50KCkgPiAwKQ0KKyAgICB7DQorICAgICAgICAgICAg
ICAgICAgDQorICAgIC8vaWYgeW91IHJlYWNoIHRoZSBlbmQgb2YgdGhlIGxpc3QgbGV0IG90aGVy
IGZyYW1lcyBoYXZlIGEgY2hhbmNlIGFuZCByZXR1cm4gbnVsbA0KKyAgICBpZiAoaVZvaXBQaG9u
ZUVudHJ5SW5kZXggPj0gMCkNCisgICAgICB7DQorICAgICAgICAgICAgICAgICAgICAgIA0KKyAg
ICAgIHdoaWxlIChpVm9pcFBob25lRW50cnlJbmRleDxpU21hcnRMaW5rQXJyYXkuQ291bnQoKSkN
CisgICAgICAgIHsgICAgIA0KKyAgICAgICAgQ1NtYXJ0TGluayogdGV4dEVudHJ5ID0gaVNtYXJ0
TGlua0FycmF5W2lWb2lwUGhvbmVFbnRyeUluZGV4XTsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgDQorICAgIGlmICh0ZXh0RW50cnktPmlFbnRyeVR5cGUgPT0gQ0ZpbmRJdGVtRW5n
aW5lOjpFRmluZEl0ZW1TZWFyY2hQaG9uZU51bWJlckJpbiB8fCBDRmluZEl0ZW1FbmdpbmU6OkVG
aW5kSXRlbVNlYXJjaE1haWxBZGRyZXNzQmluICkgICAgICAgIA0KKyAgICAgICAgICB7DQorICAg
ICAgICAgICsraVZvaXBQaG9uZUVudHJ5SW5kZXg7ICAgICAgICAgDQorICAgICAgICAgIHJldHVy
biB0ZXh0RW50cnk7IA0KKyAgICAgICAgICB9DQorICAgICAgICAgIA0KKyAgICAgICAgKytpVm9p
cFBob25lRW50cnlJbmRleDsNCisgICAgICAgIH0NCisgICAgICAgICAgDQorICAgICAgfQ0KKw0K
KyAgICB9DQorICAgIA0KKyAgICBpVm9pcFBob25lRW50cnlJbmRleCA9IDA7DQorICAgIHJldHVy
biBOVUxMOyAgDQorICB9DQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8vIENTbWFydExp
bmtNYXA6OkdldE5leHRQaG9uZUVudHJ5DQpAQCAtMzE2LDYgKzM1Miw0MCBAQCBDU21hcnRMaW5r
KiBDU21hcnRMaW5rTWFwOjpHZXROZXh0UGhvbmVFDQogICAgIHJldHVybiBOVUxMOyAgDQogICB9
DQogDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENTbWFydExpbmtNYXA6OkdldFByZXZW
b2lwUGhvbmVFbnRyeQ0KKy8vIEdldHMgdGhlIHByZXZpb3VzIGVtYWlsIGVudHJ5IGFuZCBtb3Zl
cyB0aGUgcG9zaXRpb24gb25lIGJhY2t3YXJkcw0KKy8vIA0KKy8vIA0KKy8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0NCisNCitDU21hcnRMaW5rKiBDU21hcnRMaW5rTWFwOjpHZXRQcmV2Vm9pcFBob25l
RW50cnkoKQ0KKyAgeyANCisgIGlmIChpU21hcnRMaW5rQXJyYXkuQ291bnQoKSA+IDApDQorICAg
IHsNCisgICAgICAgICAgICAgICAgICANCisgICAgLy9pZiB5b3UgcmVhY2ggdGhlIGVuZCBvZiB0
aGUgbGlzdCBsZXQgb3RoZXIgZnJhbWVzIGhhdmUgYSBjaGFuY2UgYW5kIHJldHVybiBudWxsDQor
ICAgIGlmIChpVm9pcFBob25lRW50cnlJbmRleCA8IGlTbWFydExpbmtBcnJheS5Db3VudCgpKQ0K
KyAgICAgIHsNCisgICAgICAgICAgICAgICAgICAgICAgDQorICAgICAgd2hpbGUgKGlWb2lwUGhv
bmVFbnRyeUluZGV4Pj0wKQ0KKyAgICAgICAgeyAgICAgDQorICAgICAgICBDU21hcnRMaW5rKiB0
ZXh0RW50cnkgPSBpU21hcnRMaW5rQXJyYXlbaVZvaXBQaG9uZUVudHJ5SW5kZXhdOw0KKyAgICAg
ICAgaWYgKHRleHRFbnRyeS0+aUVudHJ5VHlwZSA9PSBDRmluZEl0ZW1FbmdpbmU6OkVGaW5kSXRl
bVNlYXJjaFBob25lTnVtYmVyQmluIHx8IENGaW5kSXRlbUVuZ2luZTo6RUZpbmRJdGVtU2VhcmNo
TWFpbEFkZHJlc3NCaW4pICAgICAgICANCisgICAgICAgICAgew0KKyAgICAgICAgICAtLWlWb2lw
UGhvbmVFbnRyeUluZGV4OyAgICAgICAgIA0KKyAgICAgICAgICByZXR1cm4gdGV4dEVudHJ5OyAN
CisgICAgICAgICAgfQ0KKyAgICAgICAgIC0taVZvaXBQaG9uZUVudHJ5SW5kZXg7DQorICAgICAg
ICB9DQorICAgICAgICAgIA0KKyAgICAgIH0NCisNCisgICAgaVZvaXBQaG9uZUVudHJ5SW5kZXgg
PSBpU21hcnRMaW5rQXJyYXkuQ291bnQoKS0xOw0KKyAgICB9DQorICByZXR1cm4gTlVMTDsgICAg
DQorICB9DQorICANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8gQ1NtYXJ0TGlua01hcDo6
R2V0UHJldlBob25lRW50cnkNCiAvLyBHZXRzIHRoZSBwcmV2aW91cyBlbWFpbCBlbnRyeSBhbmQg
bW92ZXMgdGhlIHBvc2l0aW9uIG9uZSBiYWNrd2FyZHMNCkluZGV4OiBXZWJLaXQvQnJvd3NlclZp
ZXcvc3JjL1dlYktpdEN1cnNvci5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQnJvd3NlclZp
ZXcvc3JjL1dlYktpdEN1cnNvci5jcHAJKHJldmlzaW9uIDI1MDU3KQ0KKysrIFdlYktpdC9Ccm93
c2VyVmlldy9zcmMvV2ViS2l0Q3Vyc29yLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTIzNCw2ICsy
MzQsMTIgQEAgdm9pZCBDV2ViS2l0Q3Vyc29yOjpDdXJzb3JVcGRhdGUoIFRCb29sIA0KICAgICAg
ICAgICAgICAgICBzcHJpdGVNZW0uaUJpdG1hcCA9IGlTbWFydExpbmtFbWFpbEltYWdlLmlJbWFn
ZTsNCiAgICAgICAgICAgICAgICAgc3ByaXRlTWVtLmlNYXNrQml0bWFwID0gaVNtYXJ0TGlua0Vt
YWlsSW1hZ2UuaU1hc2s7DQogICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICBlbHNlIGlm
ICggaVZpZXctPkZvY3VzZWRFbGVtZW50VHlwZSgpID09IFRCckN0bERlZnM6OkVFbGVtZW50U21h
cnRMaW5rVm9pcCApDQorICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgUmVzZXRU
cmFuc3BhcmVuY3koKTsNCisgICAgICAgICAgICAgICAgc3ByaXRlTWVtLmlCaXRtYXAgPSBpU21h
cnRMaW5rUGhvbmVJbWFnZS5pSW1hZ2U7DQorICAgICAgICAgICAgICAgIHNwcml0ZU1lbS5pTWFz
a0JpdG1hcCA9IGlTbWFydExpbmtQaG9uZUltYWdlLmlNYXNrOw0KKyAgICAgICAgICAgICAgICB9
DQogICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg
IFJlc2V0VHJhbnNwYXJlbmN5KCk7DQpJbmRleDogV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9XZWJL
aXRWaWV3LmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyVmlldy9zcmMvV2ViS2l0
Vmlldy5jcHAJKHJldmlzaW9uIDI1MDU3KQ0KKysrIFdlYktpdC9Ccm93c2VyVmlldy9zcmMvV2Vi
S2l0Vmlldy5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0xNDQ3LDcgKzE0NDcsNyBAQCBUSW50IENX
ZWJLaXRWaWV3OjpGaW5kTmV4dFNtYXJ0TGluayhUQm9vDQogICB7DQogDQogICAgIENXZWJLaXRG
cmFtZSogZiA9IChpRnJhbWVXaXRoRmluZEtleXdvcmQpID8gaUZyYW1lV2l0aEZpbmRLZXl3b3Jk
IDogaU1haW5GcmFtZTsNCi0gIENTbWFydExpbmsqIHNFbnRyeSA9IE5VTEw7DQorICAgIENTbWFy
dExpbmsqIHNFbnRyeSA9IE5VTEw7DQogDQogICAgIHdoaWxlKCBmICkNCiAgICAgICAgIHsNCkBA
IC0xNDcyLDcgKzE0NzIsMTUgQEAgVEludCBDV2ViS2l0Vmlldzo6RmluZE5leHRTbWFydExpbmso
VEJvbw0KICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgc0VudHJ5ID0gZi0+U21hcnRM
aW5rTWFwKCktPkdldFByZXZFbWFpbEVudHJ5KCk7DQogICAgICAgICAgICAgfQ0KLQ0KKyAgICAg
ICAgICAgIGVsc2UgaWYgKGlTbWFydExpbmtNb2RlID09IEVTbWFydExpbmtWb2lwUGhvbmUgJiYg
YUZvcndhcmQpDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICBzRW50cnkgPSBmLT5T
bWFydExpbmtNYXAoKS0+R2V0TmV4dFZvaXBQaG9uZUVudHJ5KCk7IA0KKyAgICAgICAgICAgIH0N
CisgICAgICAgICAgICBlbHNlIGlmIChpU21hcnRMaW5rTW9kZSA9PSBFU21hcnRMaW5rVm9pcFBo
b25lICYmICFhRm9yd2FyZCkNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIHNFbnRy
eSA9IGYtPlNtYXJ0TGlua01hcCgpLT5HZXRQcmV2Vm9pcFBob25lRW50cnkoKTsNCisgICAgICAg
ICAgICB9DQorICAgICAgDQogICAgICAgICBpZiAoc0VudHJ5ICE9IE5VTEwpDQogICAgICAgICAg
ICAgew0KICAgICAgICAgICAgIGlGcmFtZVdpdGhGaW5kS2V5d29yZCA9IGY7DQpAQCAtMTQ4Nyw1
NSArMTQ5NSw2NSBAQCBUSW50IENXZWJLaXRWaWV3OjpGaW5kTmV4dFNtYXJ0TGluayhUQm9vDQog
ICAgICAgICBpZiggc0VudHJ5ICE9IE5VTEwgJiYgaUZyYW1lV2l0aEZpbmRLZXl3b3JkICkNCiAg
ICAgICAgICAgICB7DQogDQotDQogICAgICAgICAgICAgVEludCB4ID0gc0VudHJ5LT5pRW50cnlB
cmVhLmlCci5pWCAtIDQ7DQogICAgICAgICAgICAgVEludCB5ID0gc0VudHJ5LT5pRW50cnlBcmVh
LmlCci5pWSAtIChzRW50cnktPmlFbnRyeUFyZWEuaUJyLmlZIC0gc0VudHJ5LT5pRW50cnlBcmVh
LmlUbC5pWSkvMjsNCiANCiAgICAgICAgICAgICBUUG9pbnQgcHQoeCx5KTsNCiANCi0gICAgICBU
UG9pbnQgcHRzY3JvbGwoaU1haW5GcmFtZS0+Q29udGVudFBvc2l0aW9uKCkpOw0KLSAgICAgIHB0
c2Nyb2xsLmlYICs9IHB0LmlYIC0gaU1haW5GcmFtZS0+VmlzaWJsZVJlY3QoKS5XaWR0aCgpLzI7
DQotICAgICAgcHRzY3JvbGwuaVkgKz0gcHQuaVkgLSBpTWFpbkZyYW1lLT5WaXNpYmxlUmVjdCgp
LkhlaWdodCgpLzI7DQorICAgICAgICAgICAgVFBvaW50IHB0c2Nyb2xsKGlNYWluRnJhbWUtPkNv
bnRlbnRQb3NpdGlvbigpKTsNCisgICAgICAgICAgICBwdHNjcm9sbC5pWCArPSBwdC5pWCAtIGlN
YWluRnJhbWUtPlZpc2libGVSZWN0KCkuV2lkdGgoKS8yOw0KKyAgICAgICAgICAgIHB0c2Nyb2xs
LmlZICs9IHB0LmlZIC0gaU1haW5GcmFtZS0+VmlzaWJsZVJlY3QoKS5IZWlnaHQoKS8yOw0KIA0K
LSAgICAgIGlNYWluRnJhbWUtPlNjcm9sbFRvKGlGcmFtZVdpdGhGaW5kS2V5d29yZC0+RnJhbWVD
b29yZHNJblZpZXdDb29yZHMocHRzY3JvbGwpKTsNCisgICAgICAgICAgICBpTWFpbkZyYW1lLT5T
Y3JvbGxUbyhpRnJhbWVXaXRoRmluZEtleXdvcmQtPkZyYW1lQ29vcmRzSW5WaWV3Q29vcmRzKHB0
c2Nyb2xsKSk7DQogICAgICAgICAgICAgQ3Vyc29yKCktPlNldFBvc2l0aW9uKGlGcmFtZVdpdGhG
aW5kS2V5d29yZC0+RnJhbWVDb29yZHNJblZpZXdDb29yZHMocHQpKTsNCisgICAgICAgICAgICBU
QnJDdGxEZWZzOjpUQnJDdGxFbGVtZW50VHlwZSBlbGVUeXBlOw0KKyAgICAgICAgICAgIGlmICgg
c0VudHJ5LT5pRW50cnlUeXBlID09IENGaW5kSXRlbUVuZ2luZTo6RUZpbmRJdGVtU2VhcmNoTWFp
bEFkZHJlc3NCaW4gJiYgaVNtYXJ0TGlua01vZGUgPT0gRVNtYXJ0TGlua0VtYWlsKSANCisgICAg
ICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICBlbGVUeXBlID0gVEJyQ3RsRGVmczo6RUVs
ZW1lbnRTbWFydExpbmtFbWFpbDsgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICB9DQorICAg
ICAgICAgICAgZWxzZSBpZiAoc0VudHJ5LT5pRW50cnlUeXBlID09IENGaW5kSXRlbUVuZ2luZTo6
RUZpbmRJdGVtU2VhcmNoUGhvbmVOdW1iZXJCaW4gJiYgaVNtYXJ0TGlua01vZGUgPT0gRVNtYXJ0
TGlua1Bob25lKSANCisgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICBlbGVUeXBl
ID0gVEJyQ3RsRGVmczo6RUVsZW1lbnRTbWFydExpbmtUZWw7ICAgICAgICAgICAgICAgDQorICAg
ICAgICAgICAgICAgIH0NCisgICAgICAgICAgICBlbHNlIGlmICggc0VudHJ5LT5pRW50cnlUeXBl
ID09IENGaW5kSXRlbUVuZ2luZTo6RUZpbmRJdGVtU2VhcmNoTWFpbEFkZHJlc3NCaW4gfHwgVEJy
Q3RsRGVmczo6RUVsZW1lbnRTbWFydExpbmtUZWwNCisgICAgICAgICAgICAgICAgJiYgaVNtYXJ0
TGlua01vZGUgPT0gRVNtYXJ0TGlua1ZvaXBQaG9uZSApDQorICAgICAgICAgICAgICAgIHsNCisg
ICAgICAgICAgICAgICAgZWxlVHlwZSA9IFRCckN0bERlZnM6OkVFbGVtZW50U21hcnRMaW5rVm9p
cDsNCisgICAgICAgICAgICAgICAgfQ0KIA0KLSAgICAgICAgICAgIFRCckN0bERlZnM6OlRCckN0
bEVsZW1lbnRUeXBlIGVsZVR5cGUgPSBzRW50cnktPmlFbnRyeVR5cGUgPT0gQ0ZpbmRJdGVtRW5n
aW5lOjpFRmluZEl0ZW1TZWFyY2hQaG9uZU51bWJlckJpbiA/IFRCckN0bERlZnM6OkVFbGVtZW50
U21hcnRMaW5rVGVsIDogVEJyQ3RsRGVmczo6RUVsZW1lbnRTbWFydExpbmtFbWFpbDsNCisgICAg
ICAgICAgDQogICAgICAgICAgICAgU2V0Rm9jdXNlZEVsZW1lbnRUeXBlKGVsZVR5cGUpOw0KICAg
ICAgICAgICAgIEN1cnNvcigpLT5DdXJzb3JVcGRhdGUoRVRydWUpOw0KIA0KLSAgICAgIC8vIGdl
dCB0aGUgbmV3IGN1cnNvciBwb3NpdGlvbiBhZnRlciB1cGRhdGUgdGhlIGN1cnNvcg0KLSAgICAg
IFRQb2ludCBuZXdQb3MoQ3Vyc29yKCktPlBvc2l0aW9uKCkpOw0KLSAgICAgIGlmIChpRnJhbWVX
aXRoRmluZEtleXdvcmQgIT0gaU1haW5GcmFtZS0+Rm9jdXNlZEZyYW1lKCkgJiYNCi0gICAgICBp
TWFpbkZyYW1lLT5Gb2N1c2VkRnJhbWUoKSkNCi0gICAgICB7DQotICAgICAgICBpTWFpbkZyYW1l
LT5Gb2N1c2VkRnJhbWUoKS0+U2V0Rm9jdXMoRUZhbHNlKTsNCi0gICAgICAgIGlGcmFtZVdpdGhG
aW5kS2V5d29yZC0+U2V0Rm9jdXMoRVRydWUpOw0KLQ0KLSAgICAgICAgLy9TZW5kIHBvaW50ZXIg
ZXZlbnQgdG8gdGhlIGZyYW1lIHRoYXQgbG9zdCBmb2N1cw0KLSAgICAgICAgVFBvaW50ZXJFdmVu
dCBmb2N1c0xvc3RFdmVudDsNCi0gICAgICAgIGZvY3VzTG9zdEV2ZW50LmlUeXBlID0gVFBvaW50
ZXJFdmVudDo6RU1vdmU7DQotICAgICAgICBmb2N1c0xvc3RFdmVudC5pTW9kaWZpZXJzID0gMDsN
Ci0gICAgICAgIGZvY3VzTG9zdEV2ZW50LmlQb3NpdGlvbiA9IGlNYWluRnJhbWUtPkZvY3VzZWRG
cmFtZSgpLT5WaWV3Q29vcmRzSW5GcmFtZUNvb3JkcyhuZXdQb3MpOw0KLSAgICAgICAgaU1haW5G
cmFtZS0+Rm9jdXNlZEZyYW1lKCktPldlYktpdEJyaWRnZSgpLldlYkNvcmVCcmlkZ2UoKS5Qb2lu
dGVyRXZlbnQoZm9jdXNMb3N0RXZlbnQpOw0KLQ0KLSAgICAgIH0NCi0NCi0gICAgICAvL1NlbmQg
cG9pbnRlciBldmVudCB0byB0aGUgZnJhbWUgdGhhdCBnYWluIGZvY3VzDQotICAgICAgVFBvaW50
ZXJFdmVudCBmb2N1c0dhaW5FdmVudDsNCi0gICAgICBmb2N1c0dhaW5FdmVudC5pVHlwZSA9IFRQ
b2ludGVyRXZlbnQ6OkVNb3ZlOw0KLSAgICAgIGZvY3VzR2FpbkV2ZW50LmlNb2RpZmllcnMgPSAw
Ow0KLSAgICAgIGZvY3VzR2FpbkV2ZW50LmlQb3NpdGlvbiA9IGlGcmFtZVdpdGhGaW5kS2V5d29y
ZC0+Vmlld0Nvb3Jkc0luRnJhbWVDb29yZHMobmV3UG9zKTsNCi0gICAgICBpTWFpbkZyYW1lLT5G
b2N1c2VkRnJhbWUoKS0+V2ViS2l0QnJpZGdlKCkuV2ViQ29yZUJyaWRnZSgpLlBvaW50ZXJFdmVu
dChmb2N1c0dhaW5FdmVudCk7DQotDQorICAgICAgICAgICAgLy8gZ2V0IHRoZSBuZXcgY3Vyc29y
IHBvc2l0aW9uIGFmdGVyIHVwZGF0ZSB0aGUgY3Vyc29yDQorICAgICAgICAgICAgVFBvaW50IG5l
d1BvcyhDdXJzb3IoKS0+UG9zaXRpb24oKSk7DQorICAgICAgICAgICAgaWYgKGlGcmFtZVdpdGhG
aW5kS2V5d29yZCAhPSBpTWFpbkZyYW1lLT5Gb2N1c2VkRnJhbWUoKSAmJg0KKyAgICAgICAgICAg
ICAgICBpTWFpbkZyYW1lLT5Gb2N1c2VkRnJhbWUoKSkNCisgICAgICAgICAgICAgICAgew0KKyAg
ICAgICAgICAgICAgICBpTWFpbkZyYW1lLT5Gb2N1c2VkRnJhbWUoKS0+U2V0Rm9jdXMoRUZhbHNl
KTsNCisgICAgICAgICAgICAgICAgaUZyYW1lV2l0aEZpbmRLZXl3b3JkLT5TZXRGb2N1cyhFVHJ1
ZSk7DQorDQorICAgICAgICAgICAgICAgIC8vU2VuZCBwb2ludGVyIGV2ZW50IHRvIHRoZSBmcmFt
ZSB0aGF0IGxvc3QgZm9jdXMNCisgICAgICAgICAgICAgICAgVFBvaW50ZXJFdmVudCBmb2N1c0xv
c3RFdmVudDsNCisgICAgICAgICAgICAgICAgZm9jdXNMb3N0RXZlbnQuaVR5cGUgPSBUUG9pbnRl
ckV2ZW50OjpFTW92ZTsNCisgICAgICAgICAgICAgICAgZm9jdXNMb3N0RXZlbnQuaU1vZGlmaWVy
cyA9IDA7DQorICAgICAgICAgICAgICAgIGZvY3VzTG9zdEV2ZW50LmlQb3NpdGlvbiA9IGlNYWlu
RnJhbWUtPkZvY3VzZWRGcmFtZSgpLT5WaWV3Q29vcmRzSW5GcmFtZUNvb3JkcyhuZXdQb3MpOw0K
KyAgICAgICAgICAgICAgICBpTWFpbkZyYW1lLT5Gb2N1c2VkRnJhbWUoKS0+V2ViS2l0QnJpZGdl
KCkuV2ViQ29yZUJyaWRnZSgpLlBvaW50ZXJFdmVudChmb2N1c0xvc3RFdmVudCk7DQorICAgICAg
ICAgICAgICAgIH0NCisNCisgICAgICAgICAgICAvL1NlbmQgcG9pbnRlciBldmVudCB0byB0aGUg
ZnJhbWUgdGhhdCBnYWluIGZvY3VzDQorICAgICAgICAgICAgVFBvaW50ZXJFdmVudCBmb2N1c0dh
aW5FdmVudDsNCisgICAgICAgICAgICBmb2N1c0dhaW5FdmVudC5pVHlwZSA9IFRQb2ludGVyRXZl
bnQ6OkVNb3ZlOw0KKyAgICAgICAgICAgIGZvY3VzR2FpbkV2ZW50LmlNb2RpZmllcnMgPSAwOw0K
KyAgICAgICAgICAgIGZvY3VzR2FpbkV2ZW50LmlQb3NpdGlvbiA9IGlGcmFtZVdpdGhGaW5kS2V5
d29yZC0+Vmlld0Nvb3Jkc0luRnJhbWVDb29yZHMobmV3UG9zKTsNCisgICAgICAgICAgICBpTWFp
bkZyYW1lLT5Gb2N1c2VkRnJhbWUoKS0+V2ViS2l0QnJpZGdlKCkuV2ViQ29yZUJyaWRnZSgpLlBv
aW50ZXJFdmVudChmb2N1c0dhaW5FdmVudCk7DQogICAgICAgICAgICAgfQ0KLSAgICAgICAgICBl
bHNlIGlmIChpRnJhbWVXaXRoRmluZEtleXdvcmQgJiYgaUZyYW1lV2l0aEZpbmRLZXl3b3JkLT5T
bWFydExpbmtNYXAoKS0+R2V0RW50cnlDb3VudCgpID4gMCkNCi0gICAgICAgICAgew0KKyAgICAg
ICAgZWxzZSBpZiAoaUZyYW1lV2l0aEZpbmRLZXl3b3JkICYmIGlGcmFtZVdpdGhGaW5kS2V5d29y
ZC0+U21hcnRMaW5rTWFwKCktPkdldEVudHJ5Q291bnQoKSA+IDApDQorICAgICAgICAgICAgew0K
ICAgICAgICAgICAgIC8va2V5IHdvcmRzIGFyZSBhbHdheXMgdGhlcmUgd3JhcCBhcm91bmQgYW5k
IHRyeSBpdCBmcm9tIHRoZSB0b3AgZnJhbWUNCiAgICAgICAgICAgICBpRnJhbWVXaXRoRmluZEtl
eXdvcmQgPSBpTWFpbkZyYW1lOw0KICAgICAgICAgICAgIHJldHVybiBGaW5kTmV4dFNtYXJ0TGlu
ayhhRm9yd2FyZCk7DQotICAgICAgICAgIH0NCi0NCisgICAgICAgICAgICB9DQogDQogICAgIHJl
dHVybiBLRXJyTm90Rm91bmQ7DQogICB9DQo=
</data>
<flag name="review"
          id="6688"
          type_id="1"
          status="-"
          setter="Sachin.Padma"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>16210</attachid>
            <date>2007-09-06 13:43:57 -0700</date>
            <delta_ts>2007-09-17 06:31:08 -0700</delta_ts>
            <desc>New patch after changes based on the previous review</desc>
            <filename>CR409-415.patch</filename>
            <type>text/plain</type>
            <size>15621</size>
            <attacher name="George Guo">george.guo</attacher>
            
              <data encoding="base64">SW5kZXg6IE9zc1dlYmVuZ2luZS9XZWJDb3JlL2JyaWRnZS9XZWJDb3JlQnJpZGdlLmgNCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCi0tLSBPc3NXZWJlbmdpbmUvV2ViQ29yZS9icmlkZ2UvV2ViQ29yZUJyaWRnZS5oCShy
ZXZpc2lvbiAyNzA2KQ0KKysrIE9zc1dlYmVuZ2luZS9XZWJDb3JlL2JyaWRnZS9XZWJDb3JlQnJp
ZGdlLmgJKHdvcmtpbmcgY29weSkNCkBAIC0xMjcsNyArMTI3LDggQEANCiAgICAgRVdlYkNvcmVF
bGVtZW50U2Nyb2xsQmFyLA0KICAgICBFV2ViQ29yZUVsZW1lbnRTbWFydExpbmtUZWwsDQogICAg
IEVXZWJDb3JlRWxlbWVudFNtYXJ0TGlua0VtYWlsLA0KLSAgICBFV2ViQ29yZUVsZW1lbnRCcm9r
ZW5JbWFnZQ0KKyAgICBFV2ViQ29yZUVsZW1lbnRCcm9rZW5JbWFnZSwNCisgICAgRVdlYkNvcmVF
bGVtZW50U21hcnRMaW5rVm9pcA0KICAgfSBUV2ViQ29yZUZvY3VzZWRFbGVtZW50VHlwZTsNCiAN
CiB0eXBlZGVmIGVudW0NCkluZGV4OiBPc3NXZWJlbmdpbmUvV2ViS2l0L0Jyb3dzZXJDb250cm9s
L2luYy9CckN0bERlZnMuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIE9zc1dlYmVuZ2luZS9XZWJLaXQvQnJv
d3NlckNvbnRyb2wvaW5jL0JyQ3RsRGVmcy5oCShyZXZpc2lvbiAyNzA2KQ0KKysrIE9zc1dlYmVu
Z2luZS9XZWJLaXQvQnJvd3NlckNvbnRyb2wvaW5jL0JyQ3RsRGVmcy5oCSh3b3JraW5nIGNvcHkp
DQpAQCAtMjEwLDcgKzIxMCwxNCBAQA0KICAgICAgICAgICAgIEVDb21tYW5kU21hcnRMaW5rU2Vu
ZEVtYWlsLCAvLy88IA0KICAgICAgICAgICAgIEVDb21tYW5kU2hvd0FuY2hvckhyZWYsICAvLy88
RGlzcGxheSB0aGUgVVJMIG9mIGEgaHlwZXJsaW5rIC0gc3VwcG9ydGVkIG9ubHkgZm9yIEhUTUwN
CiAgICAgICAgICAgICBFQ29tbWFuZExvYWRGb2N1c2VkSW1hZ2UsIC8vLzxMb2FkIHRoZSBmb2N1
ZXNkIGltYWdlIC0gc3VwcG9ydGVkIG9ubHkgZm9yIEhUTUwNCi0gICAgICAgICAgICBFQ29tbWFu
ZFVuTG9hZFBsdWdpbldpbmRvd3MNCisgICAgICAgICAgICBFQ29tbWFuZFVuTG9hZFBsdWdpbldp
bmRvd3MsIC8vLzxVbmxvYWQgcGx1Z2luIHdpbmRvd3MNCisgICAgICAgICAgICBFQ29tbWFuZEZp
bmRJdGVtVm9JUEFkZHJlc3MsIC8vLzxGaW5kIFZvSVAgYWRkcmVzcyBpdGVtDQorICAgICAgICAg
ICAgRUNvbW1hbmRTbWFydExpbmtNYWtlVm9pcENhbGwgICAvLy88TWFrZVZvaXAgQ2FsbHRocm91
Z2ggc21hcnRsaW5rDQorICAgICAgICAgICAgLyoqDQorICAgICAgICAgICAgKiBEaXNwbGF5cyB0
aGUgRmluZEl0ZW0gZGlhbG9nIGFuZCBoaWdobGlnaHRzIGFsbCBvZiB0aGUgVm9JUA0KKyAgICAg
ICAgICAgICogYWRkcmVzc2VzIGluIHRoZSBjdXJyZW50IHBhZ2UuIFVzZSB0aGlzIHBhcmFtZXRl
ciBvbmx5IGlmIHlvdQ0KKyAgICAgICAgICAgICogc3BlY2lmaWVkIHRoZSBFQ2FwYWJpbGl0eUZp
bmRJdGVtIGNhcGFiaWxpdHkuDQorICAgICAgICAgICAgKi8gICAgICAgICAgICAgICAgICAgIA0K
ICAgICAgICAgICAgIH07DQogICAgICAgICAvKioNCiAgICAgICAgICogVGhlIGxvYWQgZXZlbnQg
dGhhdCBvY2N1cnJlZC4NCkBAIC02MTEsNyArNjE4LDggQEANCiANCiAgICAgICAgICAgICBFRWxl
bWVudFNtYXJ0TGlua1RlbCwgLy8vPCBBIHRlbGVwaG9uZSBudW1iZXIgaW4gdGhlIHBhZ2UuDQog
ICAgICAgICAgICAgRUVsZW1lbnRTbWFydExpbmtFbWFpbCwgLy8vPCBhbiBlbWFpbCBhZGRyZXNz
IGluIHRoZSBwYWdlLg0KLSAgICAgICAgICAgIEVFbGVtZW50QnJva2VuSW1hZ2UgLy8vPCBBIG1p
c3NpbmcgaW1hZ2UgDQorICAgICAgICAgICAgRUVsZW1lbnRCcm9rZW5JbWFnZSwgLy8vPCBBIG1p
c3NpbmcgaW1hZ2UgDQorICAgICAgICAgICAgRUVsZW1lbnRTbWFydExpbmtWb2lwIC8vLzwgQSB2
b2lwIHNtYXJ0bGluayANCiAgICAgICAgIH07DQogDQogICAgICAgICAvKioNCkluZGV4OiBPc3NX
ZWJlbmdpbmUvV2ViS2l0L0Jyb3dzZXJDb250cm9sL3NyYy9CckN0bC5jcHANCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBPc3NXZWJlbmdpbmUvV2ViS2l0L0Jyb3dzZXJDb250cm9sL3NyYy9CckN0bC5jcHAJKHJl
dmlzaW9uIDI3MDYpDQorKysgT3NzV2ViZW5naW5lL1dlYktpdC9Ccm93c2VyQ29udHJvbC9zcmMv
QnJDdGwuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMTE2LDcgKzExNiw4IEBADQogICAgIHtUQnJD
dGxEZWZzOjpFRWxlbWVudFNtYXJ0TGlua1RlbCwgVEJyQ3RsRGVmczo6RUNvbW1hbmRTbWFydExp
bmtBZGRUb1Bob25lQm9vaywgUl9URVhUX1dNTF9BRERfVE9fQ09OVEFDVFMsIE5VTEx9LA0KICAg
ICB7VEJyQ3RsRGVmczo6RUVsZW1lbnRTbWFydExpbmtUZWwsIFRCckN0bERlZnM6OkVDb21tYW5k
U21hcnRMaW5rU2VuZE1lc3NhZ2UsIFJfVEVYVF9XTUxfU0VORF9NRVNTQUdFLCBOVUxMfSwNCiAg
ICAge1RCckN0bERlZnM6OkVFbGVtZW50U21hcnRMaW5rRW1haWwsIFRCckN0bERlZnM6OkVDb21t
YW5kU21hcnRMaW5rU2VuZE1lc3NhZ2UsIFJfVEVYVF9XTUxfU0VORF9NRVNTQUdFLCBOVUxMfSwN
Ci0gICAge1RCckN0bERlZnM6OkVFbGVtZW50U21hcnRMaW5rRW1haWwsIFRCckN0bERlZnM6OkVD
b21tYW5kU21hcnRMaW5rQWRkVG9QaG9uZUJvb2ssIFJfVEVYVF9XTUxfQUREX1RPX0NPTlRBQ1RT
LCBOVUxMfQ0KKyAgICB7VEJyQ3RsRGVmczo6RUVsZW1lbnRTbWFydExpbmtFbWFpbCwgVEJyQ3Rs
RGVmczo6RUNvbW1hbmRTbWFydExpbmtBZGRUb1Bob25lQm9vaywgUl9URVhUX1dNTF9BRERfVE9f
Q09OVEFDVFMsIE5VTEx9LA0KKyAgICB7VEJyQ3RsRGVmczo6RUVsZW1lbnRTbWFydExpbmtWb2lw
LCBUQnJDdGxEZWZzOjpFQ29tbWFuZFNtYXJ0TGlua01ha2VWb2lwQ2FsbCwgUl9URVhUX1dNTF9M
SVNUX0NBTEwsIE5VTEx9DQogICAgIH07DQogDQogLy8gPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0gTE9DQUwgRlVOQ1RJT05TID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBA
IC03NTQsNiArNzU1LDE5IEBADQogICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICBicmVh
azsNCiAgICAgICAgICAgICB9DQorICAgICAgICBjYXNlIFRCckN0bERlZnM6OkVDb21tYW5kRmlu
ZEl0ZW1Wb0lQQWRkcmVzczoNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgaWYgKCBpV2Vi
S2l0Q29udHJvbC0+V2ViS2l0VmlldygpLlNtYXJ0TGlua01vZGUoKSA9PSBFU21hcnRMaW5rTm9u
ZSApDQorICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgZm9yICggVEludCBpPTA7
IGk8aVN0YXRlQ2hhbmdlT2JzZXJ2ZXJBcnJheS5Db3VudCgpOyBpKysgKQ0KKyAgICAgICAgICAg
ICAgICAgICAgew0KKyAgICAgICAgICAgICAgICAgICAgaVN0YXRlQ2hhbmdlT2JzZXJ2ZXJBcnJh
eVtpXS0+U3RhdGVDaGFuZ2VkKFRCckN0bERlZnM6OkVTdGF0ZVNtYXJ0VGV4dFZpZXcsIEVUcnVl
KTsNCisgICAgICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgaVdlYktpdENvbnRy
b2wtPldlYktpdFZpZXcoKS5TZXRTbWFydExpbmtNb2RlKEVTbWFydExpbmtWb2lwUGhvbmUpOw0K
KyAgICAgICAgICAgICAgICBpV2ViS2l0Q29udHJvbC0+V2ViS2l0VmlldygpLkZpbmROZXh0U21h
cnRMaW5rKEVUcnVlKTsNCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGJyZWFrOw0K
KyAgICAgICAgICAgIH0NCiAgICAgICAgIGNhc2UgVEJyQ3RsRGVmczo6RUNvbW1hbmRGaW5kSXRl
bUVNYWlsOg0KICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICBpZiAoIGlXZWJLaXRDb250cm9s
LT5XZWJLaXRWaWV3KCkuU21hcnRMaW5rTW9kZSgpID09IEVTbWFydExpbmtOb25lICkNCkBAIC03
NzcsNiArNzkxLDExIEBADQogICAgICAgICAgICAgaVdlYktpdENvbnRyb2wtPldlYktpdFZpZXco
KS5NYWluRnJhbWUoKS5TbWFydExpbmtIYW5kbGVyKCktPkhhbmRsZU1ha2VDYWxsTCgpOw0KICAg
ICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgIH0NCisgICAgICAgIGNhc2UgVEJyQ3RsRGVm
czo6RUNvbW1hbmRTbWFydExpbmtNYWtlVm9pcENhbGw6DQorICAgICAgICAgICAgew0KKyAgICAg
ICAgICAgIGlXZWJLaXRDb250cm9sLT5XZWJLaXRWaWV3KCkuTWFpbkZyYW1lKCkuU21hcnRMaW5r
SGFuZGxlcigpLT5IYW5kbGVNYWtlVm9pcENhbGxMKCk7DQorICAgICAgICAgICAgYnJlYWs7DQor
ICAgICAgICAgICAgfQ0KICAgICAgICAgY2FzZSBUQnJDdGxEZWZzOjpFQ29tbWFuZFNtYXJ0TGlu
a0FkZFRvUGhvbmVCb29rOg0KICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICBpV2ViS2l0Q29u
dHJvbC0+V2ViS2l0VmlldygpLk1haW5GcmFtZSgpLlNtYXJ0TGlua0hhbmRsZXIoKS0+SGFuZGxl
QWRkVG9QaG9uZUJvb2soKTsNCkluZGV4OiBPc3NXZWJlbmdpbmUvV2ViS2l0L0Jyb3dzZXJWaWV3
L2luYy9TbWFydExpbmtIYW5kbGVyLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBPc3NXZWJlbmdpbmUvV2Vi
S2l0L0Jyb3dzZXJWaWV3L2luYy9TbWFydExpbmtIYW5kbGVyLmgJKHJldmlzaW9uIDI3MDYpDQor
KysgT3NzV2ViZW5naW5lL1dlYktpdC9Ccm93c2VyVmlldy9pbmMvU21hcnRMaW5rSGFuZGxlci5o
CSh3b3JraW5nIGNvcHkpDQpAQCAtMTExLDYgKzExMSwxMyBAQA0KICAgICAgICAgKi8NCiAgICAg
ICAgIHZvaWQgSGFuZGxlU2VuZE1lc3NhZ2UoKTsNCiANCisgICAgICAgIC8qKg0KKyAgICAgICAg
Kg0KKyAgICAgICAgKiBAc2luY2UgNS4wDQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAgICAgKiBA
cmV0dXJuIA0KKyAgICAgICAgKi8NCisgICAgICAgIHZvaWQgSGFuZGxlTWFrZVZvaXBDYWxsTCgp
Ow0KICAgICBwcml2YXRlOg0KIA0KICAgICAgICAgLyoqDQpJbmRleDogT3NzV2ViZW5naW5lL1dl
YktpdC9Ccm93c2VyVmlldy9pbmMvU21hcnRMaW5rTWFwLmgNCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBPc3NX
ZWJlbmdpbmUvV2ViS2l0L0Jyb3dzZXJWaWV3L2luYy9TbWFydExpbmtNYXAuaAkocmV2aXNpb24g
MjcwNikNCisrKyBPc3NXZWJlbmdpbmUvV2ViS2l0L0Jyb3dzZXJWaWV3L2luYy9TbWFydExpbmtN
YXAuaAkod29ya2luZyBjb3B5KQ0KQEAgLTg0LDYgKzg0LDggQEANCiAgICAgDQogICAgIENTbWFy
dExpbmsqIEdldEVudHJ5KGNvbnN0IFRSZWN0JiBhUmVjdCk7DQogICAgIFRJbnQgR2V0RW50cnlD
b3VudCgpIHsgcmV0dXJuIGlTbWFydExpbmtBcnJheS5Db3VudCgpOyB9DQorICAgIENTbWFydExp
bmsqIEdldE5leHRWb2lwUGhvbmVFbnRyeSgpOyAgICANCisgICAgQ1NtYXJ0TGluayogR2V0UHJl
dlZvaXBQaG9uZUVudHJ5KCk7ICAgIA0KICAgICAgICAgDQogcHJpdmF0ZTogICAgDQogICAgIHN0
YXRpYyBUSW50IEluZGV4aW5nQ2FsbGJhY2tMKFRBbnkqIGFXZWJLaXRTbWFydFRleHRNYXApOw0K
QEAgLTEwMSw2ICsxMDMsNyBAQA0KICAgICBUSW50IGlFbWFpbEVudHJ5SW5kZXg7ICAgIA0KICAg
ICANCiAgICAgQ0lkbGUqIGlJbmRleGluZ0NhbGxiYWNrOw0KKyAgICBUSW50IGlWb2lwUGhvbmVF
bnRyeUluZGV4Ow0KICAgICB9Ow0KIA0KICNlbmRpZg0KSW5kZXg6IE9zc1dlYmVuZ2luZS9XZWJL
aXQvQnJvd3NlclZpZXcvaW5jL1dlYktpdFZpZXcuaA0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIE9zc1dlYmVu
Z2luZS9XZWJLaXQvQnJvd3NlclZpZXcvaW5jL1dlYktpdFZpZXcuaAkocmV2aXNpb24gMjcwNikN
CisrKyBPc3NXZWJlbmdpbmUvV2ViS2l0L0Jyb3dzZXJWaWV3L2luYy9XZWJLaXRWaWV3LmgJKHdv
cmtpbmcgY29weSkNCkBAIC05OSw2ICs5OSw3IEBADQogICAgIHsNCiAgICAgRVNtYXJ0TGlua1Bo
b25lLCAgICAgICAgICAgICAgICAgICAgICAgLy9GaW5kaW5nIHBob25lIG51bWJlcnMgbW9kZQ0K
ICAgICBFU21hcnRMaW5rRW1haWwsICAgICAgICAgICAgICAgICAgICAgICAvL0ZpbmRpbmcgZW1h
aWwgYWRkcmVzc2VzIG1vZGUNCisgICAgRVNtYXJ0TGlua1ZvaXBQaG9uZSwgICAgICAgICAgICAg
ICAgICAgIC8vRmluZGluZyBWb2lwIGFkZHJlc3Ntb2RlDQogICAgIEVTbWFydExpbmtOb25lICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIE5vcm1hbCBNb2RlDQogICAgIH07DQogDQpJbmRleDog
T3NzV2ViZW5naW5lL1dlYktpdC9Ccm93c2VyVmlldy9zcmMvU21hcnRMaW5rSGFuZGxlci5jcHAN
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCi0tLSBPc3NXZWJlbmdpbmUvV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9TbWFy
dExpbmtIYW5kbGVyLmNwcAkocmV2aXNpb24gMjcwNikNCisrKyBPc3NXZWJlbmdpbmUvV2ViS2l0
L0Jyb3dzZXJWaWV3L3NyYy9TbWFydExpbmtIYW5kbGVyLmNwcAkod29ya2luZyBjb3B5KQ0KQEAg
LTE5MSw2ICsxOTEsNDQgQEANCiAgICAgfQ0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQor
Ly8gQ1NtYXJ0TGlua0hhbmRsZXI6OkhhbmRsZU1ha2VWb2lwQ2FsbEwNCisvLw0KKy8vIFBob25l
IG51bWJlcg0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCit2b2lkIENTbWFydExpbmtI
YW5kbGVyOjpIYW5kbGVNYWtlVm9pcENhbGxMKCkNCisgICAgew0KKw0KKyNpZm5kZWYgX19CUk9X
U0VSX1NESw0KKyAgICAvL1ByZXBhcmUgQUlXIHNlcnZpY2UgaGFuZGxlcg0KKyAgICBQcmVwYXJl
QWl3SGFuZGxlckwoKTsNCisgICAgX19BU1NFUlRfREVCVUcoaUFpd0hhbmRsZXIsIFVzZXI6OlBh
bmljKF9MKCJTbWFydExpbmtIYW5kbGVyIiksIEtFcnJHZW5lcmFsKSk7DQorDQorDQorICAvL0dl
dCB0aGUgaW5mbyBub2RlIHVuZGVyIGN1cnNvcg0KKyAgICBDU21hcnRMaW5rKiBlbnRyeSA9IGlX
ZWJLaXRGcmFtZS0+V2ViS2l0VmlldygpLkN1cnNvcigpLT5HZXRTbWFydExpbmtFbnRyeSgpOw0K
KyAgICANCisgIGlmKGVudHJ5ICYmIGVudHJ5LT5pRW50cnlUeXBlID09IENGaW5kSXRlbUVuZ2lu
ZTo6RUZpbmRJdGVtU2VhcmNoUGhvbmVOdW1iZXJCaW4gfHwgQ0ZpbmRJdGVtRW5naW5lOjpFRmlu
ZEl0ZW1TZWFyY2hNYWlsQWRkcmVzc0JpbiApDQorICAgICAgICB7DQorICAgICAgICBUUHRyIG51
bWJlclB0ciA9IGVudHJ5LT5pRW50cnlUZXh0LT5EZXMoKTsNCisgICAgICAgIC8vRm9ybWF0IHRo
ZSBQaG9uZSBOdW1iZXINCisgICAgICAgIENvbW1vblBob25lUGFyc2VyOjpQYXJzZVBob25lTnVt
YmVyKCBudW1iZXJQdHIsIENvbW1vblBob25lUGFyc2VyOjpFUGhvbmVDbGllbnROdW1iZXIpOw0K
KyAgICAgICAgLy9DYWxsIEFJVyBmcmFtZXdvcmsgZnVuY3Rpb24gdG8gbWFrZSB0aGUgY2FsbA0K
KyAgICAgICAgQ0Fpd0RpYWxEYXRhRXh0KiBkaWFsRGF0YUV4dCA9IENBaXdEaWFsRGF0YUV4dDo6
TmV3TEMoKTsgDQorICAgICAgICBkaWFsRGF0YUV4dC0+U2V0UGhvbmVOdW1iZXJMKCBudW1iZXJQ
dHIgKTsgDQorICAgICAgICBkaWFsRGF0YUV4dC0+U2V0Q2FsbFR5cGUoIENBaXdEaWFsRGF0YTo6
RUFJV1ZvaVAgKTsgICAgICAgICAgICAgICAgICANCisNCisgICAgICAgIENBaXdHZW5lcmljUGFy
YW1MaXN0JiBwYXJhbUxpc3QgPSBpQWl3SGFuZGxlci0+SW5QYXJhbUxpc3RMKCk7DQorICAgICAg
ICBkaWFsRGF0YUV4dC0+RmlsbEluUGFyYW1MaXN0TCggcGFyYW1MaXN0ICk7ICAgDQorICAgICAg
DQorICAgICAgICBpQWl3SGFuZGxlci0+RXhlY3V0ZVNlcnZpY2VDbWRMKEtBaXdDbWRDYWxsLCBw
YXJhbUxpc3QsIGlBaXdIYW5kbGVyLT5PdXRQYXJhbUxpc3RMKCksIA0KKyAgICAgICAgICAgIDAs
IDAgKTsgLy8gLy8gTm8gb3B0aW9ucyB1c2VkICwgbm8gZGlhbCByZXN1bHRzIGFyZSB3YW50ZWQu
DQorICAgICAgICB9DQorICAgICAgICBDbGVhbnVwU3RhY2s6OlBvcEFuZERlc3Ryb3koKTsgLy8g
ZGlhbERhdGFFeHQgDQorI2VuZGlmDQorICAgIH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQ0KIC8vIENTbWFydExpbmtIYW5kbGVyOjpIYW5kbGVNYWtlQ2FsbEwNCiAvLw0KIC8vIFBob25l
IG51bWJlcg0KSW5kZXg6IE9zc1dlYmVuZ2luZS9XZWJLaXQvQnJvd3NlclZpZXcvc3JjL1NtYXJ0
TGlua01hcC5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBPc3NXZWJlbmdpbmUvV2ViS2l0L0Jyb3dzZXJW
aWV3L3NyYy9TbWFydExpbmtNYXAuY3BwCShyZXZpc2lvbiAyNzA2KQ0KKysrIE9zc1dlYmVuZ2lu
ZS9XZWJLaXQvQnJvd3NlclZpZXcvc3JjL1NtYXJ0TGlua01hcC5jcHAJKHdvcmtpbmcgY29weSkN
CkBAIC0yMzAsOCArMjMwLDEwIEBADQogLy8NCiAvLyANCiAvLyANCi0vLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tDQotQ1NtYXJ0TGlua01hcDo6Q1NtYXJ0TGlua01hcChjb25zdCBDV2ViS2l0RnJhbWUq
IGFXZWJLaXRGcmFtZSkgOiBpV2ViS2l0RnJhbWUoYVdlYktpdEZyYW1lKSwgaVBob25lRW50cnlJ
bmRleCgwKSwgaUVtYWlsRW50cnlJbmRleCgwKQ0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gDQor
Q1NtYXJ0TGlua01hcDo6Q1NtYXJ0TGlua01hcChjb25zdCBDV2ViS2l0RnJhbWUqIGFXZWJLaXRG
cmFtZSkgOiBpV2ViS2l0RnJhbWUoYVdlYktpdEZyYW1lKSwgaVBob25lRW50cnlJbmRleCgwKSwg
DQorICAgIGlWb2lwUGhvbmVFbnRyeUluZGV4KDApLCANCisgICAgaUVtYWlsRW50cnlJbmRleCgw
KSAgICANCiAgICAgew0KICAgICB9DQogDQpAQCAtMjgwLDcgKzI4Miw0MSBAQA0KICAgICANCiAg
IH0NCiAgICAgDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENTbWFydExpbmtNYXA6Okdl
dE5leHRWb2lwUGhvbmVFbnRyeQ0KKy8vIEdldHMgdGhlIG5leHQgcGhvbmUgZW50cnkgYW5kIG1v
dmVzIHRoZSBwb3NpdGlvbiBvbmUgZm9yd2FyZA0KKy8vIA0KKy8vIA0KKy8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0NCitDU21hcnRMaW5rKiBDU21hcnRMaW5rTWFwOjpHZXROZXh0Vm9pcFBob25lRW50
cnkoKQ0KKyAgeyAgIA0KKyAgaWYgKGlTbWFydExpbmtBcnJheS5Db3VudCgpID4gMCkNCisgICAg
ew0KKyAgICAgICAgICAgICAgICAgIA0KKyAgICAvL2lmIHlvdSByZWFjaCB0aGUgZW5kIG9mIHRo
ZSBsaXN0IGxldCBvdGhlciBmcmFtZXMgaGF2ZSBhIGNoYW5jZSBhbmQgcmV0dXJuIG51bGwNCisg
ICAgaWYgKGlWb2lwUGhvbmVFbnRyeUluZGV4ID49IDApDQorICAgICAgew0KKyAgICAgICAgICAg
ICAgICAgICAgICANCisgICAgICB3aGlsZSAoaVZvaXBQaG9uZUVudHJ5SW5kZXg8aVNtYXJ0TGlu
a0FycmF5LkNvdW50KCkpDQorICAgICAgICB7ICAgICANCisgICAgICAgIENTbWFydExpbmsqIHRl
eHRFbnRyeSA9IGlTbWFydExpbmtBcnJheVtpVm9pcFBob25lRW50cnlJbmRleF07ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIA0KKyAgICBpZiAodGV4dEVudHJ5LT5pRW50cnlUeXBl
ID09IENGaW5kSXRlbUVuZ2luZTo6RUZpbmRJdGVtU2VhcmNoUGhvbmVOdW1iZXJCaW4gfHwgQ0Zp
bmRJdGVtRW5naW5lOjpFRmluZEl0ZW1TZWFyY2hNYWlsQWRkcmVzc0JpbiApICAgICAgICANCisg
ICAgICAgICAgew0KKyAgICAgICAgICArK2lWb2lwUGhvbmVFbnRyeUluZGV4OyAgICAgICAgIA0K
KyAgICAgICAgICByZXR1cm4gdGV4dEVudHJ5OyANCisgICAgICAgICAgfQ0KKyAgICAgICAgICAN
CisgICAgICAgICsraVZvaXBQaG9uZUVudHJ5SW5kZXg7DQorICAgICAgICB9DQorICAgICAgICAg
IA0KKyAgICAgIH0NCiANCisgICAgfQ0KKyAgICANCisgICAgaVZvaXBQaG9uZUVudHJ5SW5kZXgg
PSAwOw0KKyAgICByZXR1cm4gTlVMTDsgIA0KKyAgfQ0KKw0KIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0NCiAvLyBDU21hcnRMaW5rTWFwOjpHZXROZXh0UGhvbmVFbnRyeQ0KIC8vIEdldHMgdGhlIG5l
eHQgcGhvbmUgZW50cnkgYW5kIG1vdmVzIHRoZSBwb3NpdGlvbiBvbmUgZm9yd2FyZA0KQEAgLTMx
Nyw2ICszNTMsNDAgQEANCiAgIH0NCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ1Nt
YXJ0TGlua01hcDo6R2V0UHJldlZvaXBQaG9uZUVudHJ5DQorLy8gR2V0cyB0aGUgcHJldmlvdXMg
ZW1haWwgZW50cnkgYW5kIG1vdmVzIHRoZSBwb3NpdGlvbiBvbmUgYmFja3dhcmRzDQorLy8gDQor
Ly8gDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKw0KK0NTbWFydExpbmsqIENTbWFydExpbmtN
YXA6OkdldFByZXZWb2lwUGhvbmVFbnRyeSgpDQorICB7IA0KKyAgaWYgKGlTbWFydExpbmtBcnJh
eS5Db3VudCgpID4gMCkNCisgICAgew0KKyAgICAgICAgICAgICAgICAgIA0KKyAgICAvL2lmIHlv
dSByZWFjaCB0aGUgZW5kIG9mIHRoZSBsaXN0IGxldCBvdGhlciBmcmFtZXMgaGF2ZSBhIGNoYW5j
ZSBhbmQgcmV0dXJuIG51bGwNCisgICAgaWYgKGlWb2lwUGhvbmVFbnRyeUluZGV4IDwgaVNtYXJ0
TGlua0FycmF5LkNvdW50KCkpDQorICAgICAgew0KKyAgICAgICAgICAgICAgICAgICAgICANCisg
ICAgICB3aGlsZSAoaVZvaXBQaG9uZUVudHJ5SW5kZXg+PTApDQorICAgICAgICB7ICAgICANCisg
ICAgICAgIENTbWFydExpbmsqIHRleHRFbnRyeSA9IGlTbWFydExpbmtBcnJheVtpVm9pcFBob25l
RW50cnlJbmRleF07DQorICAgICAgICBpZiAodGV4dEVudHJ5LT5pRW50cnlUeXBlID09IENGaW5k
SXRlbUVuZ2luZTo6RUZpbmRJdGVtU2VhcmNoUGhvbmVOdW1iZXJCaW4gfHwgQ0ZpbmRJdGVtRW5n
aW5lOjpFRmluZEl0ZW1TZWFyY2hNYWlsQWRkcmVzc0JpbikgICAgICAgIA0KKyAgICAgICAgICB7
DQorICAgICAgICAgIC0taVZvaXBQaG9uZUVudHJ5SW5kZXg7ICAgICAgICAgDQorICAgICAgICAg
IHJldHVybiB0ZXh0RW50cnk7IA0KKyAgICAgICAgICB9DQorICAgICAgICAgLS1pVm9pcFBob25l
RW50cnlJbmRleDsNCisgICAgICAgIH0NCisgICAgICAgICAgDQorICAgICAgfQ0KKw0KKyAgICBp
Vm9pcFBob25lRW50cnlJbmRleCA9IGlTbWFydExpbmtBcnJheS5Db3VudCgpLTE7DQorICAgIH0N
CisgIHJldHVybiBOVUxMOyAgICANCisgIH0NCisgIA0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N
CiAvLyBDU21hcnRMaW5rTWFwOjpHZXRQcmV2UGhvbmVFbnRyeQ0KIC8vIEdldHMgdGhlIHByZXZp
b3VzIGVtYWlsIGVudHJ5IGFuZCBtb3ZlcyB0aGUgcG9zaXRpb24gb25lIGJhY2t3YXJkcw0KIC8v
IA0KSW5kZXg6IE9zc1dlYmVuZ2luZS9XZWJLaXQvQnJvd3NlclZpZXcvc3JjL1dlYktpdEN1cnNv
ci5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NCi0tLSBPc3NXZWJlbmdpbmUvV2ViS2l0L0Jyb3dzZXJWaWV3L3Ny
Yy9XZWJLaXRDdXJzb3IuY3BwCShyZXZpc2lvbiAyNzA2KQ0KKysrIE9zc1dlYmVuZ2luZS9XZWJL
aXQvQnJvd3NlclZpZXcvc3JjL1dlYktpdEN1cnNvci5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0y
MjIsMTggKzIyMiwxOSBAQA0KICAgICAgICAgICAgICAgICAgICAgPyBpVHJhbnNwYXJlbnRBcnJv
d01hc2sNCiAgICAgICAgICAgICAgICAgICAgIDogaUFycm93SW1hZ2UuaU1hc2s7DQogICAgICAg
ICAgICAgICAgIH0NCi0gICAgICAgICAgICBlbHNlIGlmICggaVZpZXctPkZvY3VzZWRFbGVtZW50
VHlwZSgpID09IFRCckN0bERlZnM6OkVFbGVtZW50U21hcnRMaW5rVGVsICkNCi0gICAgICAgICAg
ICAgICAgew0KLSAgICAgICAgICAgICAgICBSZXNldFRyYW5zcGFyZW5jeSgpOw0KLSAgICAgICAg
ICAgICAgICBzcHJpdGVNZW0uaUJpdG1hcCA9IGlTbWFydExpbmtQaG9uZUltYWdlLmlJbWFnZTsN
Ci0gICAgICAgICAgICAgICAgc3ByaXRlTWVtLmlNYXNrQml0bWFwID0gaVNtYXJ0TGlua1Bob25l
SW1hZ2UuaU1hc2s7DQotICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICBlbHNlIGlmKCBp
Vmlldy0+Rm9jdXNlZEVsZW1lbnRUeXBlKCkgPT0gVEJyQ3RsRGVmczo6RUVsZW1lbnRTbWFydExp
bmtFbWFpbCApDQogICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgUmVzZXRUcmFu
c3BhcmVuY3koKTsNCiAgICAgICAgICAgICAgICAgc3ByaXRlTWVtLmlCaXRtYXAgPSBpU21hcnRM
aW5rRW1haWxJbWFnZS5pSW1hZ2U7DQogICAgICAgICAgICAgICAgIHNwcml0ZU1lbS5pTWFza0Jp
dG1hcCA9IGlTbWFydExpbmtFbWFpbEltYWdlLmlNYXNrOw0KICAgICAgICAgICAgICAgICB9DQor
ICAgICAgICAgICAgZWxzZSBpZiAoIGlWaWV3LT5Gb2N1c2VkRWxlbWVudFR5cGUoKSA9PSBUQnJD
dGxEZWZzOjpFRWxlbWVudFNtYXJ0TGlua1RlbCANCisgICAgICAgICAgICAgICAgfHwgaVZpZXct
PkZvY3VzZWRFbGVtZW50VHlwZSgpID09IFRCckN0bERlZnM6OkVFbGVtZW50U21hcnRMaW5rVm9p
cCApDQorICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgUmVzZXRUcmFuc3BhcmVu
Y3koKTsNCisgICAgICAgICAgICAgICAgc3ByaXRlTWVtLmlCaXRtYXAgPSBpU21hcnRMaW5rUGhv
bmVJbWFnZS5pSW1hZ2U7DQorICAgICAgICAgICAgICAgIHNwcml0ZU1lbS5pTWFza0JpdG1hcCA9
IGlTbWFydExpbmtQaG9uZUltYWdlLmlNYXNrOw0KKyAgICAgICAgICAgICAgICB9DQogICAgICAg
ICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgIFJlc2V0VHJh
bnNwYXJlbmN5KCk7DQpJbmRleDogT3NzV2ViZW5naW5lL1dlYktpdC9Ccm93c2VyVmlldy9zcmMv
V2ViS2l0Vmlldy5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBPc3NXZWJlbmdpbmUvV2ViS2l0L0Jyb3dz
ZXJWaWV3L3NyYy9XZWJLaXRWaWV3LmNwcAkocmV2aXNpb24gMjcwNikNCisrKyBPc3NXZWJlbmdp
bmUvV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9XZWJLaXRWaWV3LmNwcAkod29ya2luZyBjb3B5KQ0K
QEAgLTE0NzMsNyArMTQ3MywxNCBAQA0KICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAg
c0VudHJ5ID0gZi0+U21hcnRMaW5rTWFwKCktPkdldFByZXZFbWFpbEVudHJ5KCk7DQogICAgICAg
ICAgICAgfQ0KLQ0KKyAgICAgICAgICAgIGVsc2UgaWYgKGlTbWFydExpbmtNb2RlID09IEVTbWFy
dExpbmtWb2lwUGhvbmUgJiYgYUZvcndhcmQpDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAg
ICAgICBzRW50cnkgPSBmLT5TbWFydExpbmtNYXAoKS0+R2V0TmV4dFZvaXBQaG9uZUVudHJ5KCk7
IA0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBlbHNlIGlmIChpU21hcnRMaW5rTW9kZSA9
PSBFU21hcnRMaW5rVm9pcFBob25lICYmICFhRm9yd2FyZCkNCisgICAgICAgICAgICB7DQorICAg
ICAgICAgICAgICAgIHNFbnRyeSA9IGYtPlNtYXJ0TGlua01hcCgpLT5HZXRQcmV2Vm9pcFBob25l
RW50cnkoKTsNCisgICAgICAgICAgICB9DQogICAgICAgICBpZiAoc0VudHJ5ICE9IE5VTEwpDQog
ICAgICAgICAgICAgew0KICAgICAgICAgICAgIGlGcmFtZVdpdGhGaW5kS2V5d29yZCA9IGY7DQpA
QCAtMTUwMCw4ICsxNTA3LDIyIEBADQogDQogICAgICAgaU1haW5GcmFtZS0+U2Nyb2xsVG8oaUZy
YW1lV2l0aEZpbmRLZXl3b3JkLT5GcmFtZUNvb3Jkc0luVmlld0Nvb3JkcyhwdHNjcm9sbCkpOw0K
ICAgICAgICAgICAgIEN1cnNvcigpLT5TZXRQb3NpdGlvbihpRnJhbWVXaXRoRmluZEtleXdvcmQt
PkZyYW1lQ29vcmRzSW5WaWV3Q29vcmRzKHB0KSk7DQorICAgICAgVEJyQ3RsRGVmczo6VEJyQ3Rs
RWxlbWVudFR5cGUgZWxlVHlwZTsNCisgICAgICBpZiAoIHNFbnRyeS0+aUVudHJ5VHlwZSA9PSBD
RmluZEl0ZW1FbmdpbmU6OkVGaW5kSXRlbVNlYXJjaE1haWxBZGRyZXNzQmluICYmIGlTbWFydExp
bmtNb2RlID09IEVTbWFydExpbmtFbWFpbCkgDQorICAgICAgICAgIHsNCisgICAgICAgICAgZWxl
VHlwZSA9IFRCckN0bERlZnM6OkVFbGVtZW50U21hcnRMaW5rRW1haWw7ICAgICAgICAgICANCisg
ICAgICAgICAgfQ0KKyAgICAgIGVsc2UgaWYgKHNFbnRyeS0+aUVudHJ5VHlwZSA9PSBDRmluZEl0
ZW1FbmdpbmU6OkVGaW5kSXRlbVNlYXJjaFBob25lTnVtYmVyQmluICYmIGlTbWFydExpbmtNb2Rl
ID09IEVTbWFydExpbmtQaG9uZSkgDQorICAgICAgICB7DQorICAgICAgICAgIGVsZVR5cGUgPSBU
QnJDdGxEZWZzOjpFRWxlbWVudFNtYXJ0TGlua1RlbDsgICAgICAgICAgICAgICANCisgICAgICAg
IH0NCisgICAgICBlbHNlIGlmICggc0VudHJ5LT5pRW50cnlUeXBlID09IENGaW5kSXRlbUVuZ2lu
ZTo6RUZpbmRJdGVtU2VhcmNoTWFpbEFkZHJlc3NCaW4gfHwgVEJyQ3RsRGVmczo6RUVsZW1lbnRT
bWFydExpbmtUZWwNCisgICAgICAgICAgJiYgaVNtYXJ0TGlua01vZGUgPT0gRVNtYXJ0TGlua1Zv
aXBQaG9uZSApDQorICAgICAgICAgIHsNCisgICAgICAgICAgZWxlVHlwZSA9IFRCckN0bERlZnM6
OkVFbGVtZW50U21hcnRMaW5rVm9pcDsNCisgICAgICAgICAgfQ0KIA0KLSAgICAgICAgICAgIFRC
ckN0bERlZnM6OlRCckN0bEVsZW1lbnRUeXBlIGVsZVR5cGUgPSBzRW50cnktPmlFbnRyeVR5cGUg
PT0gQ0ZpbmRJdGVtRW5naW5lOjpFRmluZEl0ZW1TZWFyY2hQaG9uZU51bWJlckJpbiA/IFRCckN0
bERlZnM6OkVFbGVtZW50U21hcnRMaW5rVGVsIDogVEJyQ3RsRGVmczo6RUVsZW1lbnRTbWFydExp
bmtFbWFpbDsNCisgICAgICAgICAgDQogICAgICAgICAgICAgU2V0Rm9jdXNlZEVsZW1lbnRUeXBl
KGVsZVR5cGUpOw0KICAgICAgICAgICAgIEN1cnNvcigpLT5DdXJzb3JVcGRhdGUoRVRydWUpOw0K
IA0K
</data>

          </attachment>
      

    </bug>

</bugzilla>