<?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>56643</bug_id>
          
          <creation_ts>2011-03-18 06:28:54 -0700</creation_ts>
          <short_desc>Web Inspector: implement inspector session storage.</short_desc>
          <delta_ts>2011-03-18 08:43:40 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Podivilov">podivilov</reporter>
          <assigned_to name="Pavel Podivilov">podivilov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>369605</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-03-18 06:28:54 -0700</bug_when>
    <thetext>Web Inspector: implement inspector session storage.

We would like to enable debugger/profiler from frontend side only. However, when user clicks &quot;Start Debugging JavaScript&quot; in Safari, we need to enable debugger when frontend is opened or re-opened for the same page.
The idea is to store debugger-enabled setting in session storage and check it on frontend load.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369606</commentid>
    <comment_count>1</comment_count>
      <attachid>86160</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-03-18 06:29:49 -0700</bug_when>
    <thetext>Created attachment 86160
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369611</commentid>
    <comment_count>2</comment_count>
      <attachid>86160</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-03-18 06:59:29 -0700</bug_when>
    <thetext>Comment on attachment 86160
Patch.

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

&gt; Source/WebCore/WebCore.exp.in:1283
&gt; +__ZN7WebCore15InspectorClient18loadSessionSettingERKN3WTF6StringEPS2_

Mind alphabetic order. Also most of the inspector symbols are guarded by #if ENABLE(INSPECTOR) (see http://trac.webkit.org/browser/trunk/Source/WebCore/WebCore.exp.in#L1489) , you should move this couple there as well.

&gt; Source/WebCore/inspector/InspectorClient.h:59
&gt; +    void saveSessionSetting(const String&amp; key, const String&amp; value);

InspectorClient API has nothing to do with these storage. The fact that the session storage is implemented on the inspector client is platform-specific and should be implemented in the WebKit layer.

&gt; Source/WebCore/inspector/InspectorFrontendHost.cpp:225
&gt; +    m_client-&gt;saveSessionSetting(key, value);

You should check that the client has not been disconnected yet as in the other methods.

&gt; Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm:207
&gt; +    InspectorClient* client = [m_windowController.get() inspectorClient];

You should use platform-specific storage here, generic interface shouldn&apos;t contain session storage methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369621</commentid>
    <comment_count>3</comment_count>
      <attachid>86163</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-03-18 07:41:10 -0700</bug_when>
    <thetext>Created attachment 86163
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369622</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-03-18 07:41:18 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 86160 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=86160&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/WebCore.exp.in:1283
&gt; &gt; +__ZN7WebCore15InspectorClient18loadSessionSettingERKN3WTF6StringEPS2_
&gt; 
&gt; Mind alphabetic order. Also most of the inspector symbols are guarded by #if ENABLE(INSPECTOR) (see http://trac.webkit.org/browser/trunk/Source/WebCore/WebCore.exp.in#L1489) , you should move this couple there as well.
&gt; 
&gt; &gt; Source/WebCore/inspector/InspectorClient.h:59
&gt; &gt; +    void saveSessionSetting(const String&amp; key, const String&amp; value);
&gt; 
&gt; InspectorClient API has nothing to do with these storage. The fact that the session storage is implemented on the inspector client is platform-specific and should be implemented in the WebKit layer.
&gt; 
&gt; &gt; Source/WebCore/inspector/InspectorFrontendHost.cpp:225
&gt; &gt; +    m_client-&gt;saveSessionSetting(key, value);
&gt; 
&gt; You should check that the client has not been disconnected yet as in the other methods.
&gt; 
&gt; &gt; Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm:207
&gt; &gt; +    InspectorClient* client = [m_windowController.get() inspectorClient];
&gt; 
&gt; You should use platform-specific storage here, generic interface shouldn&apos;t contain session storage methods.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369628</commentid>
    <comment_count>5</comment_count>
      <attachid>86163</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-03-18 08:04:00 -0700</bug_when>
    <thetext>Comment on attachment 86163
Patch.

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

&gt; Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm:122
&gt; +void WebInspectorClient::saveSessionSetting(const String&amp; key, const String&amp; value)

Consider moving these two methods to WebKit/cf</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369648</commentid>
    <comment_count>6</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-03-18 08:43:40 -0700</bug_when>
    <thetext>Committed r81470: &lt;http://trac.webkit.org/changeset/81470&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86160</attachid>
            <date>2011-03-18 06:29:49 -0700</date>
            <delta_ts>2011-03-18 07:41:10 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>11596</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5NzhmZjdhLi4xMDUxMWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTEtMDMtMTggIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogaW1wbGVtZW50IGluc3BlY3RvciBzZXNzaW9uIHN0b3JhZ2UuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjY0MworCisgICAgICAgIFdl
IHdvdWxkIGxpa2UgdG8gZW5hYmxlIGRlYnVnZ2VyL3Byb2ZpbGVyIGZyb20gZnJvbnRlbmQgc2lk
ZSBvbmx5LgorICAgICAgICBIb3dldmVyLCB3aGVuIHVzZXIgY2xpY2tzICJTdGFydCBEZWJ1Z2dp
bmcgSmF2YVNjcmlwdCIgaW4gU2FmYXJpLCB3ZQorICAgICAgICBuZWVkIHRvIGVuYWJsZSBkZWJ1
Z2dlciB3aGVuIGZyb250ZW5kIGlzIG9wZW5lZCBvciByZS1vcGVuZWQgZm9yIHRoZQorICAgICAg
ICBzYW1lIHBhZ2UuIFRoZSBpZGVhIGlzIHRvIHN0b3JlIGRlYnVnZ2VyLWVuYWJsZWQgc2V0dGlu
ZyBpbiBzZXNzaW9uCisgICAgICAgIHN0b3JhZ2UgYW5kIGNoZWNrIGl0IG9uIGZyb250ZW5kIGxv
YWQuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudDo6c2F2
ZVNlc3Npb25TZXR0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudDo6bG9h
ZFNlc3Npb25TZXR0aW5nKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50Lmg6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6c2F2ZVNlc3Npb25TZXR0aW5nKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50Ojpsb2FkU2Vzc2lvblNl
dHRpbmcpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpzYXZlU2Vzc2lvblNldHRp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRIb3N0Ojpsb2FkU2Vzc2lv
blNldHRpbmcpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbDoKKwogMjAxMS0w
My0xNyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAxNjg2YTg2Li4yYTNlMzQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTI4MCw2ICsxMjgwLDggQEAgX19aVFZON1dlYkNv
cmUxN0ZpbGVDaG9vc2VyQ2xpZW50RQogX19aVFZON1dlYkNvcmUxN0ZyYW1lTG9hZGVyQ2xpZW50
RQogX19aVFZON1dlYkNvcmUyNUhpc3RvcnlQcm9wZXJ0eUxpc3RXcml0ZXJFCiBfX1pUVk43V2Vi
Q29yZTI4SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDhTZXR0aW5nc0UKK19fWk43V2ViQ29y
ZTE1SW5zcGVjdG9yQ2xpZW50MThsb2FkU2Vzc2lvblNldHRpbmdFUktOM1dURjZTdHJpbmdFUFMy
XworX19aTjdXZWJDb3JlMTVJbnNwZWN0b3JDbGllbnQxOHNhdmVTZXNzaW9uU2V0dGluZ0VSS04z
V1RGNlN0cmluZ0VTNF8KIF9maWxlbmFtZUJ5Rml4aW5nSWxsZWdhbENoYXJhY3RlcnMKIF9oYXND
YXNlSW5zZW5zaXRpdmVTdWJzdHJpbmcKIF9oYXNDYXNlSW5zZW5zaXRpdmVTdWZmaXgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5jcHAKaW5kZXggNDM0ZDY5Ny4u
ZmUwZTVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5j
cHAKQEAgLTYzLDYgKzYzLDE4IEBAIGJvb2wgSW5zcGVjdG9yQ2xpZW50Ojpkb0Rpc3BhdGNoTWVz
c2FnZU9uRnJvbnRlbmRQYWdlKFBhZ2UqIGZyb250ZW5kUGFnZSwgY29uc3QKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAordm9pZCBJbnNwZWN0b3JDbGllbnQ6OnNhdmVTZXNzaW9uU2V0dGluZyhjb25z
dCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBpZiAoIWtleS5pc0Vt
cHR5KCkpCisgICAgICAgIG1fc2Vzc2lvblNldHRpbmdzLnNldChrZXksIHZhbHVlKTsKK30KKwor
dm9pZCBJbnNwZWN0b3JDbGllbnQ6OmxvYWRTZXNzaW9uU2V0dGluZyhjb25zdCBTdHJpbmcmIGtl
eSwgU3RyaW5nKiB2YWx1ZSkKK3sKKyAgICBpZiAoIWtleS5pc0VtcHR5KCkpCisgICAgICAgICp2
YWx1ZSA9IG1fc2Vzc2lvblNldHRpbmdzLmdldChrZXkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNsaWVudC5oCmluZGV4IGQyNGNlNGQuLmE3MDk2MGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKQEAgLTI3LDYgKzI3LDggQEAK
ICNkZWZpbmUgSW5zcGVjdG9yQ2xpZW50X2gKIAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Cisj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTMsNiArNTUsMTIgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVJbnNwZWN0b3JTdGF0ZUNvb2tpZShjb25zdCBTdHJpbmcmKSB7
IH07CiAKICAgICBib29sIGRvRGlzcGF0Y2hNZXNzYWdlT25Gcm9udGVuZFBhZ2UoUGFnZSogZnJv
bnRlbmRQYWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworCisgICAgdm9pZCBzYXZlU2Vzc2lv
blNldHRpbmcoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUpOworICAgIHZv
aWQgbG9hZFNlc3Npb25TZXR0aW5nKGNvbnN0IFN0cmluZyYga2V5LCBTdHJpbmcqIHZhbHVlKTsK
KworcHJpdmF0ZToKKyAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX3Nlc3Npb25TZXR0aW5n
czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmgKaW5kZXggMzFmNTJiNy4uZDVlZWFm
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
Q2xpZW50LmgKQEAgLTYyLDYgKzYyLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBpbnNw
ZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBz
ZW5kTWVzc2FnZVRvQmFja2VuZChjb25zdCBTdHJpbmcmKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZv
aWQgc2F2ZVNlc3Npb25TZXR0aW5nKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIHt9Cisg
ICAgdmlydHVhbCB2b2lkIGxvYWRTZXNzaW9uU2V0dGluZyhjb25zdCBTdHJpbmcmLCBTdHJpbmcq
KSB7fQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcAppbmRleCBmMmU2NmJjLi43MGE1
Y2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRIb3N0LmNwcApAQCAtMjIwLDYgKzIyMCwxOSBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kSG9z
dDo6Y29weVRleHQoY29uc3QgU3RyaW5nJiB0ZXh0KQogICAgIFBhc3RlYm9hcmQ6OmdlbmVyYWxQ
YXN0ZWJvYXJkKCktPndyaXRlUGxhaW5UZXh0KHRleHQpOwogfQogCit2b2lkIEluc3BlY3RvckZy
b250ZW5kSG9zdDo6c2F2ZVNlc3Npb25TZXR0aW5nKGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBT
dHJpbmcmIHZhbHVlKQoreworICAgIG1fY2xpZW50LT5zYXZlU2Vzc2lvblNldHRpbmcoa2V5LCB2
YWx1ZSk7CisKK30KKworU3RyaW5nIEluc3BlY3RvckZyb250ZW5kSG9zdDo6bG9hZFNlc3Npb25T
ZXR0aW5nKGNvbnN0IFN0cmluZyYga2V5KQoreworICAgIFN0cmluZyB2YWx1ZTsKKyAgICBtX2Ns
aWVudC0+bG9hZFNlc3Npb25TZXR0aW5nKGtleSwgJnZhbHVlKTsKKyAgICByZXR1cm4gdmFsdWU7
Cit9CisKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpzZW5kTWVzc2FnZVRvQmFja2VuZChj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgbV9jbGllbnQtPnNlbmRNZXNzYWdlVG9CYWNr
ZW5kKG1lc3NhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kSG9zdC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kSG9zdC5oCmluZGV4IDAzYzU1YTkuLjA1ZDU1NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgKQEAgLTc1LDYgKzc1LDkgQEAg
cHVibGljOgogCiAgICAgdm9pZCBjb3B5VGV4dChjb25zdCBTdHJpbmcmIHRleHQpOwogCisgICAg
dm9pZCBzYXZlU2Vzc2lvblNldHRpbmcoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYg
dmFsdWUpOworICAgIFN0cmluZyBsb2FkU2Vzc2lvblNldHRpbmcoY29uc3QgU3RyaW5nJiBrZXkp
OworCiAgICAgLy8gQ2FsbGVkIGZyb20gW0N1c3RvbV0gaW1wbGVtZW50YXRpb25zLgogICAgIHZv
aWQgc2hvd0NvbnRleHRNZW51KEV2ZW50KiwgY29uc3QgVmVjdG9yPENvbnRleHRNZW51SXRlbSo+
JiBpdGVtcyk7CiAgICAgdm9pZCBzZW5kTWVzc2FnZVRvQmFja2VuZChjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kSG9zdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRIb3N0LmlkbAppbmRleCA2ODUzYzdkLi4wNzAzYThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbApAQCAtNDcsNiArNDcsOSBA
QCBtb2R1bGUgY29yZSB7CiAgICAgICAgIERPTVN0cmluZyBsb2NhbGl6ZWRTdHJpbmdzVVJMKCk7
CiAgICAgICAgIERPTVN0cmluZyBoaWRkZW5QYW5lbHMoKTsKIAorICAgICAgICB2b2lkIHNhdmVT
ZXNzaW9uU2V0dGluZyhpbiBET01TdHJpbmcga2V5LCBpbiBET01TdHJpbmcgdmFsdWUpOworICAg
ICAgICBET01TdHJpbmcgbG9hZFNlc3Npb25TZXR0aW5nKGluIERPTVN0cmluZyBrZXkpOworCiAg
ICAgICAgIHZvaWQgY29weVRleHQoaW4gRE9NU3RyaW5nIHRleHQpOwogCiAgICAgICAgIFtDdXN0
b21dIERPTVN0cmluZyBwbGF0Zm9ybSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDQ1OTUzNTMuLjVm
YTI4YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0wMy0xOCAgUGF2
ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBpbXBsZW1lbnQg
aW5zcGVjdG9yIHNlc3Npb24gc3RvcmFnZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU2NjQzCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJ
bnNwZWN0b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JD
bGllbnQubW06CisgICAgICAgIChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6c2F2ZVNlc3Np
b25TZXR0aW5nKToKKyAgICAgICAgKFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50Ojpsb2FkU2Vz
c2lvblNldHRpbmcpOgorICAgICAgICAoLVtXZWJJbnNwZWN0b3JXaW5kb3dDb250cm9sbGVyIGlu
c3BlY3RvckNsaWVudF0pOgorCiAyMDExLTAzLTE3ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBh
cHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oCmlu
ZGV4IDEwOGMyY2MuLmM0YTk1ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oCkBAIC05NSw2ICs5NSw5IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQgaGVp
Z2h0KTsKICAgICB2aXJ0dWFsIHZvaWQgaW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBXVEY6OlN0
cmluZyYgbmV3VVJMKTsKIAorICAgIHZpcnR1YWwgdm9pZCBzYXZlU2Vzc2lvblNldHRpbmcoY29u
c3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUpOworICAgIHZpcnR1YWwgdm9pZCBs
b2FkU2Vzc2lvblNldHRpbmcoY29uc3QgIFN0cmluZyYga2V5LCBTdHJpbmcqIHZhbHVlKTsKKwog
cHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVdpbmRvd1RpdGxlKCkgY29uc3Q7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5t
bQppbmRleCA3MmI3ODJhLi5iYTBmODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCkBAIC02NSw2ICs2NSw3IEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogLSAoQk9PTClhdHRhY2hlZDsKIC0gKHZvaWQpc2V0
RnJvbnRlbmRDbGllbnQ6KFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50Kilmcm9udGVuZENsaWVu
dDsKIC0gKHZvaWQpc2V0SW5zcGVjdG9yQ2xpZW50OihXZWJJbnNwZWN0b3JDbGllbnQqKWluc3Bl
Y3RvckNsaWVudDsKKy0gKFdlYkluc3BlY3RvckNsaWVudCopaW5zcGVjdG9yQ2xpZW50OwogLSAo
dm9pZClzZXRBdHRhY2hlZFdpbmRvd0hlaWdodDoodW5zaWduZWQpaGVpZ2h0OwogLSAodm9pZClk
ZXN0cm95SW5zcGVjdG9yVmlldzooYm9vbClub3RpZnlJbnNwZWN0b3JDb250cm9sbGVyOwogQGVu
ZApAQCAtMjAxLDYgKzIwMiwyMCBAQCB2b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50Ojpp
bnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYgbmV3VVJMKQogICAgIHVwZGF0ZVdpbmRv
d1RpdGxlKCk7CiB9CiAKK3ZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OnNhdmVTZXNz
aW9uU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAg
ICBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCA9IFttX3dpbmRvd0NvbnRyb2xsZXIuZ2V0KCkgaW5z
cGVjdG9yQ2xpZW50XTsKKyAgICBpZiAoY2xpZW50KQorICAgICAgICBjbGllbnQtPnNhdmVTZXNz
aW9uU2V0dGluZyhrZXksIHZhbHVlKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENs
aWVudDo6bG9hZFNlc3Npb25TZXR0aW5nKGNvbnN0IFN0cmluZyYga2V5LCBTdHJpbmcqIHZhbHVl
KQoreworICAgIEluc3BlY3RvckNsaWVudCogY2xpZW50ID0gW21fd2luZG93Q29udHJvbGxlci5n
ZXQoKSBpbnNwZWN0b3JDbGllbnRdOworICAgIGlmIChjbGllbnQpCisgICAgICAgIGNsaWVudC0+
bG9hZFNlc3Npb25TZXR0aW5nKGtleSwgdmFsdWUpOworfQorCiB2b2lkIFdlYkluc3BlY3RvckZy
b250ZW5kQ2xpZW50Ojp1cGRhdGVXaW5kb3dUaXRsZSgpIGNvbnN0CiB7CiAgICAgTlNTdHJpbmcg
KnRpdGxlID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6VUlfU1RSSU5HX0lOVEVSTkFMKCJX
ZWIgSW5zcGVjdG9yIOKAlCAlQCIsICJXZWIgSW5zcGVjdG9yIHdpbmRvdyB0aXRsZSIpLCAoTlNT
dHJpbmcgKiltX2luc3BlY3RlZFVSTF07CkBAIC00MjIsNiArNDM3LDExIEBAIHZvaWQgV2ViSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnQ6OnVwZGF0ZVdpbmRvd1RpdGxlKCkgY29uc3QKICAgICBfaW5z
cGVjdG9yQ2xpZW50ID0gaW5zcGVjdG9yQ2xpZW50OwogfQogCistIChXZWJJbnNwZWN0b3JDbGll
bnQqKWluc3BlY3RvckNsaWVudAoreworICAgIHJldHVybiBfaW5zcGVjdG9yQ2xpZW50OworfQor
CiAtICh2b2lkKXNldEF0dGFjaGVkV2luZG93SGVpZ2h0Oih1bnNpZ25lZCloZWlnaHQKIHsKICAg
ICBpZiAoIV9hdHRhY2hlZFRvSW5zcGVjdGVkV2ViVmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCA3
ZjMyMDYwLi40OGVkMTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEt
MDMtMTggIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
aW1wbGVtZW50IGluc3BlY3RvciBzZXNzaW9uIHN0b3JhZ2UuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjY0MworCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkluc3BlY3RvckZyb250
ZW5kQ2xpZW50OjpzYXZlU2Vzc2lvblNldHRpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnQ6OmxvYWRTZXNzaW9uU2V0dGluZyk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yQ2xpZW50Lmg6CisKIDIwMTEtMDMtMTEgIEJyYWR5IEVpZHNvbiAgPGJl
aWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIE1vcmUgV2luZG93cyBidWlsZCBmaXggZm9yIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjIxNgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAK
aW5kZXggMjkyMjQ4NS4uMTQzMGFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCkBAIC0zMjIsNiArMzIyLDE2
IEBAIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6Omluc3BlY3RlZFVSTENoYW5nZWQo
Y29uc3QgU3RyaW5nJiBuZXdVUkwpCiAgICAgdXBkYXRlV2luZG93VGl0bGUoKTsKIH0KIAordm9p
ZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6c2F2ZVNlc3Npb25TZXR0aW5nKGNvbnN0IFN0
cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIG1faW5zcGVjdG9yQ2xpZW50
LT5zYXZlU2Vzc2lvblNldHRpbmcoa2V5LCB2YWx1ZSk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnQ6OmxvYWRTZXNzaW9uU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSwgU3Ry
aW5nKiB2YWx1ZSkKK3sKKyAgICBtX2luc3BlY3RvckNsaWVudC0+bG9hZFNlc3Npb25TZXR0aW5n
KGtleSwgdmFsdWUpOworfQorCiB2b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpjbG9z
ZVdpbmRvd1dpdGhvdXROb3RpZmljYXRpb25zKCkKIHsKICAgICBpZiAoIW1fZnJvbnRlbmRId25k
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVj
dG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0
b3JDbGllbnQuaAppbmRleCBhMDU5NTU5Li5iMjk3Mjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuaApAQCAtMTA0LDYg
KzEwNCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0QXR0YWNoZWRXaW5kb3dIZWln
aHQodW5zaWduZWQgaGVpZ2h0KTsKICAgICB2aXJ0dWFsIHZvaWQgaW5zcGVjdGVkVVJMQ2hhbmdl
ZChjb25zdCBXVEY6OlN0cmluZyYgbmV3VVJMKTsKIAorICAgIHZpcnR1YWwgdm9pZCBzYXZlU2Vz
c2lvblNldHRpbmcoY29uc3QgV1RGOjpTdHJpbmcmIGtleSwgY29uc3QgV1RGOjpTdHJpbmcmIHZh
bHVlKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFNlc3Npb25TZXR0aW5nKGNvbnN0ICBXVEY6OlN0
cmluZyYga2V5LCBXVEY6OlN0cmluZyogdmFsdWUpOworCiBwcml2YXRlOgogICAgIH5XZWJJbnNw
ZWN0b3JGcm9udGVuZENsaWVudCgpOwogCg==
</data>
<flag name="review"
          id="78398"
          type_id="1"
          status="-"
          setter="yurys"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86163</attachid>
            <date>2011-03-18 07:41:10 -0700</date>
            <delta_ts>2011-03-18 08:03:59 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>12750</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5NzhmZjdhLi45OWZiOWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTEtMDMtMTggIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogaW1wbGVtZW50IGluc3BlY3RvciBzZXNzaW9uIHN0b3JhZ2UuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjY0MworCisgICAgICAgIFdl
IHdvdWxkIGxpa2UgdG8gZW5hYmxlIGRlYnVnZ2VyL3Byb2ZpbGVyIGZyb20gZnJvbnRlbmQgc2lk
ZSBvbmx5LgorICAgICAgICBIb3dldmVyLCB3aGVuIHVzZXIgY2xpY2tzICJTdGFydCBEZWJ1Z2dp
bmcgSmF2YVNjcmlwdCIgaW4gU2FmYXJpLCB3ZQorICAgICAgICBuZWVkIHRvIGVuYWJsZSBkZWJ1
Z2dlciB3aGVuIGZyb250ZW5kIGlzIG9wZW5lZCBvciByZS1vcGVuZWQgZm9yIHRoZQorICAgICAg
ICBzYW1lIHBhZ2UuIFRoZSBpZGVhIGlzIHRvIHN0b3JlIGRlYnVnZ2VyLWVuYWJsZWQgc2V0dGlu
ZyBpbiBzZXNzaW9uCisgICAgICAgIHN0b3JhZ2UgYW5kIGNoZWNrIGl0IG9uIGZyb250ZW5kIGxv
YWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpzYXZlU2Vzc2lvblNldHRp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmxvYWRTZXNz
aW9uU2V0dGluZyk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnNhdmVTZXNzaW9u
U2V0dGluZyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OmxvYWRT
ZXNzaW9uU2V0dGluZyk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9z
dC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsOgorCiAy
MDExLTAzLTE3ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZENsaWVudC5oCmluZGV4IDMxZjUyYjcuLmQ1ZWVhZmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCkBA
IC02Miw2ICs2Miw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaW5zcGVjdGVkVVJMQ2hh
bmdlZChjb25zdCBTdHJpbmcmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2VuZE1lc3NhZ2VU
b0JhY2tlbmQoY29uc3QgU3RyaW5nJikgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHNhdmVTZXNz
aW9uU2V0dGluZyhjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSB7fQorICAgIHZpcnR1YWwg
dm9pZCBsb2FkU2Vzc2lvblNldHRpbmcoY29uc3QgU3RyaW5nJiwgU3RyaW5nKikge30KIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKaW5kZXggZjJlNjZiYy4uNzQ1MGQzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAK
QEAgLTIyMCw2ICsyMjAsMjAgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OmNvcHlUZXh0
KGNvbnN0IFN0cmluZyYgdGV4dCkKICAgICBQYXN0ZWJvYXJkOjpnZW5lcmFsUGFzdGVib2FyZCgp
LT53cml0ZVBsYWluVGV4dCh0ZXh0KTsKIH0KIAordm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6
OnNhdmVTZXNzaW9uU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1
ZSkKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5zYXZlU2Vzc2lvblNl
dHRpbmcoa2V5LCB2YWx1ZSk7Cit9CisKK1N0cmluZyBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6Omxv
YWRTZXNzaW9uU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSkKK3sKKyAgICBTdHJpbmcgdmFsdWU7
CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+bG9hZFNlc3Npb25TZXR0aW5n
KGtleSwgJnZhbHVlKTsKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKIHZvaWQgSW5zcGVjdG9yRnJv
bnRlbmRIb3N0OjpzZW5kTWVzc2FnZVRvQmFja2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7
CiAgICAgbV9jbGllbnQtPnNlbmRNZXNzYWdlVG9CYWNrZW5kKG1lc3NhZ2UpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oCmluZGV4IDAzYzU1
YTkuLjA1ZDU1NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZEhvc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmRIb3N0LmgKQEAgLTc1LDYgKzc1LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBjb3B5
VGV4dChjb25zdCBTdHJpbmcmIHRleHQpOwogCisgICAgdm9pZCBzYXZlU2Vzc2lvblNldHRpbmco
Y29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUpOworICAgIFN0cmluZyBsb2Fk
U2Vzc2lvblNldHRpbmcoY29uc3QgU3RyaW5nJiBrZXkpOworCiAgICAgLy8gQ2FsbGVkIGZyb20g
W0N1c3RvbV0gaW1wbGVtZW50YXRpb25zLgogICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KEV2ZW50
KiwgY29uc3QgVmVjdG9yPENvbnRleHRNZW51SXRlbSo+JiBpdGVtcyk7CiAgICAgdm9pZCBzZW5k
TWVzc2FnZVRvQmFja2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbAppbmRleCA2ODUzYzdk
Li4wNzAzYThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmRIb3N0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmRIb3N0LmlkbApAQCAtNDcsNiArNDcsOSBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAg
IERPTVN0cmluZyBsb2NhbGl6ZWRTdHJpbmdzVVJMKCk7CiAgICAgICAgIERPTVN0cmluZyBoaWRk
ZW5QYW5lbHMoKTsKIAorICAgICAgICB2b2lkIHNhdmVTZXNzaW9uU2V0dGluZyhpbiBET01TdHJp
bmcga2V5LCBpbiBET01TdHJpbmcgdmFsdWUpOworICAgICAgICBET01TdHJpbmcgbG9hZFNlc3Np
b25TZXR0aW5nKGluIERPTVN0cmluZyBrZXkpOworCiAgICAgICAgIHZvaWQgY29weVRleHQoaW4g
RE9NU3RyaW5nIHRleHQpOwogCiAgICAgICAgIFtDdXN0b21dIERPTVN0cmluZyBwbGF0Zm9ybSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCmluZGV4IDQ1OTUzNTMuLjM0MmNmM2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOCBAQAorMjAxMS0wMy0xOCAgUGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBpbXBsZW1lbnQgaW5zcGVjdG9yIHNlc3Npb24gc3RvcmFn
ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NjQz
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuaDoKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW06CisgICAgICAgIChXZWJJ
bnNwZWN0b3JDbGllbnQ6OnNhdmVTZXNzaW9uU2V0dGluZyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3JDbGllbnQ6OmxvYWRTZXNzaW9uU2V0dGluZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3JGcm9u
dGVuZENsaWVudDo6c2F2ZVNlc3Npb25TZXR0aW5nKToKKyAgICAgICAgKFdlYkluc3BlY3RvckZy
b250ZW5kQ2xpZW50Ojpsb2FkU2Vzc2lvblNldHRpbmcpOgorICAgICAgICAoLVtXZWJJbnNwZWN0
b3JXaW5kb3dDb250cm9sbGVyIGluc3BlY3RvckNsaWVudF0pOgorCiAyMDExLTAzLTE3ICBHZW9m
ZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xp
dmVyIEh1bnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJJbnNwZWN0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
Ykluc3BlY3RvckNsaWVudC5oCmluZGV4IDEwOGMyY2MuLjdkMDkxMDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oCkBA
IC0zMSw3ICszMSw5IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtU3RyaW5nLmg+CiAKICNp
bXBvcnQgPHd0Zi9Gb3J3YXJkLmg+CisjaW1wb3J0IDx3dGYvSGFzaE1hcC5oPgogI2ltcG9ydCA8
d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiAjaWZk
ZWYgX19PQkpDX18KIEBjbGFzcyBXZWJJbnNwZWN0b3JXaW5kb3dDb250cm9sbGVyOwpAQCAtNjcs
MTIgKzY5LDE3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVsZWFzZUZyb250ZW5kUGFnZSgpOwog
CisgICAgdm9pZCBzYXZlU2Vzc2lvblNldHRpbmcoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0
cmluZyYgdmFsdWUpOworICAgIHZvaWQgbG9hZFNlc3Npb25TZXR0aW5nKGNvbnN0IFN0cmluZyYg
a2V5LCBTdHJpbmcqIHZhbHVlKTsKKwogcHJpdmF0ZToKICAgICBXVEY6OlBhc3NPd25QdHI8V2Vi
Q29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6U2V0dGluZ3M+IGNyZWF0ZUZyb250
ZW5kU2V0dGluZ3MoKTsKIAogICAgIFdlYlZpZXcgKm1fd2ViVmlldzsKICAgICBSZXRhaW5QdHI8
V2ViTm9kZUhpZ2hsaWdodGVyPiBtX2hpZ2hsaWdodGVyOwogICAgIFdlYkNvcmU6OlBhZ2UqIG1f
ZnJvbnRlbmRQYWdlOworCisgICAgV1RGOjpIYXNoTWFwPFdURjo6U3RyaW5nLCBXVEY6OlN0cmlu
Zz4gbV9zZXNzaW9uU2V0dGluZ3M7CiB9OwogCiAKQEAgLTk1LDYgKzEwMiw5IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQgaGVpZ2h0
KTsKICAgICB2aXJ0dWFsIHZvaWQgaW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBXVEY6OlN0cmlu
ZyYgbmV3VVJMKTsKIAorICAgIHZpcnR1YWwgdm9pZCBzYXZlU2Vzc2lvblNldHRpbmcoY29uc3Qg
U3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUpOworICAgIHZpcnR1YWwgdm9pZCBsb2Fk
U2Vzc2lvblNldHRpbmcoY29uc3QgU3RyaW5nJiBrZXksIFN0cmluZyogdmFsdWUpOworCiBwcml2
YXRlOgogICAgIHZvaWQgdXBkYXRlV2luZG93VGl0bGUoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCmlu
ZGV4IDcyYjc4MmEuLjlhZDYxNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KQEAgLTY1LDYgKzY1LDcgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAtIChCT09MKWF0dGFjaGVkOwogLSAodm9pZClzZXRGcm9u
dGVuZENsaWVudDooV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQqKWZyb250ZW5kQ2xpZW50Owog
LSAodm9pZClzZXRJbnNwZWN0b3JDbGllbnQ6KFdlYkluc3BlY3RvckNsaWVudCopaW5zcGVjdG9y
Q2xpZW50OworLSAoV2ViSW5zcGVjdG9yQ2xpZW50KilpbnNwZWN0b3JDbGllbnQ7CiAtICh2b2lk
KXNldEF0dGFjaGVkV2luZG93SGVpZ2h0Oih1bnNpZ25lZCloZWlnaHQ7CiAtICh2b2lkKWRlc3Ry
b3lJbnNwZWN0b3JWaWV3Oihib29sKW5vdGlmeUluc3BlY3RvckNvbnRyb2xsZXI7CiBAZW5kCkBA
IC0xMTgsNiArMTE5LDE4IEBAIHZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50OjpoaWRlSGlnaGxpZ2h0
KCkKICAgICBbbV9oaWdobGlnaHRlci5nZXQoKSBoaWRlSGlnaGxpZ2h0XTsKIH0KIAordm9pZCBX
ZWJJbnNwZWN0b3JDbGllbnQ6OnNhdmVTZXNzaW9uU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBpZiAoIWtleS5pc0VtcHR5KCkpCisgICAgICAg
IG1fc2Vzc2lvblNldHRpbmdzLnNldChrZXksIHZhbHVlKTsKK30KKwordm9pZCBXZWJJbnNwZWN0
b3JDbGllbnQ6OmxvYWRTZXNzaW9uU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSwgU3RyaW5nKiB2
YWx1ZSkKK3sKKyAgICBpZiAoIWtleS5pc0VtcHR5KCkpCisgICAgICAgICp2YWx1ZSA9IG1fc2Vz
c2lvblNldHRpbmdzLmdldChrZXkpOworfQorCiBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6
V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQoV2ViVmlldyogaW5zcGVjdGVkV2ViVmlldywgV2Vi
SW5zcGVjdG9yV2luZG93Q29udHJvbGxlciogd2luZG93Q29udHJvbGxlciwgSW5zcGVjdG9yQ29u
dHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlciwgUGFnZSogZnJvbnRlbmRQYWdlLCBXVEY6OlBh
c3NPd25QdHI8U2V0dGluZ3M+IHNldHRpbmdzKQogICAgIDogSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRMb2NhbChpbnNwZWN0b3JDb250cm9sbGVyLCAgZnJvbnRlbmRQYWdlLCBzZXR0aW5ncykKICAg
ICAsIG1faW5zcGVjdGVkV2ViVmlldyhpbnNwZWN0ZWRXZWJWaWV3KQpAQCAtMjAxLDYgKzIxNCwy
MCBAQCB2b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjppbnNwZWN0ZWRVUkxDaGFuZ2Vk
KGNvbnN0IFN0cmluZyYgbmV3VVJMKQogICAgIHVwZGF0ZVdpbmRvd1RpdGxlKCk7CiB9CiAKK3Zv
aWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OnNhdmVTZXNzaW9uU2V0dGluZyhjb25zdCBT
dHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBXZWJJbnNwZWN0b3JDbGll
bnQqIGNsaWVudCA9IFttX3dpbmRvd0NvbnRyb2xsZXIuZ2V0KCkgaW5zcGVjdG9yQ2xpZW50XTsK
KyAgICBpZiAoY2xpZW50KQorICAgICAgICBjbGllbnQtPnNhdmVTZXNzaW9uU2V0dGluZyhrZXks
IHZhbHVlKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6bG9hZFNlc3Np
b25TZXR0aW5nKGNvbnN0IFN0cmluZyYga2V5LCBTdHJpbmcqIHZhbHVlKQoreworICAgIFdlYklu
c3BlY3RvckNsaWVudCogY2xpZW50ID0gW21fd2luZG93Q29udHJvbGxlci5nZXQoKSBpbnNwZWN0
b3JDbGllbnRdOworICAgIGlmIChjbGllbnQpCisgICAgICAgIGNsaWVudC0+bG9hZFNlc3Npb25T
ZXR0aW5nKGtleSwgdmFsdWUpOworfQorCiB2b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50
Ojp1cGRhdGVXaW5kb3dUaXRsZSgpIGNvbnN0CiB7CiAgICAgTlNTdHJpbmcgKnRpdGxlID0gW05T
U3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6VUlfU1RSSU5HX0lOVEVSTkFMKCJXZWIgSW5zcGVjdG9y
IOKAlCAlQCIsICJXZWIgSW5zcGVjdG9yIHdpbmRvdyB0aXRsZSIpLCAoTlNTdHJpbmcgKiltX2lu
c3BlY3RlZFVSTF07CkBAIC00MjIsNiArNDQ5LDExIEBAIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnQ6OnVwZGF0ZVdpbmRvd1RpdGxlKCkgY29uc3QKICAgICBfaW5zcGVjdG9yQ2xpZW50
ID0gaW5zcGVjdG9yQ2xpZW50OwogfQogCistIChXZWJJbnNwZWN0b3JDbGllbnQqKWluc3BlY3Rv
ckNsaWVudAoreworICAgIHJldHVybiBfaW5zcGVjdG9yQ2xpZW50OworfQorCiAtICh2b2lkKXNl
dEF0dGFjaGVkV2luZG93SGVpZ2h0Oih1bnNpZ25lZCloZWlnaHQKIHsKICAgICBpZiAoIV9hdHRh
Y2hlZFRvSW5zcGVjdGVkV2ViVmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCA3ZjMyMDYwLi44YTkw
Nzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDMtMTggIFBhdmVs
IFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogaW1wbGVtZW50IGlu
c3BlY3RvciBzZXNzaW9uIHN0b3JhZ2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01NjY0MworCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSW5z
cGVjdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkluc3BlY3RvckNsaWVudDo6c2F2ZVNlc3Np
b25TZXR0aW5nKToKKyAgICAgICAgKFdlYkluc3BlY3RvckNsaWVudDo6bG9hZFNlc3Npb25TZXR0
aW5nKToKKyAgICAgICAgKFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpzYXZlU2Vzc2lvblNl
dHRpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmxvYWRTZXNzaW9u
U2V0dGluZyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lmg6
CisKIDIwMTEtMDMtMTEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAg
ICAgIE1vcmUgV2luZG93cyBidWlsZCBmaXggZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01NjIxNgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKaW5kZXggMjkyMjQ4NS4uYzZiNmM4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9y
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNw
ZWN0b3JDbGllbnQuY3BwCkBAIC0yMDYsNiArMjA2LDE4IEBAIHZvaWQgV2ViSW5zcGVjdG9yQ2xp
ZW50Ojp1cGRhdGVIaWdobGlnaHQoKQogICAgICAgICBtX2hpZ2hsaWdodC0+dXBkYXRlKCk7CiB9
CiAKK3ZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50OjpzYXZlU2Vzc2lvblNldHRpbmcoY29uc3QgU3Ry
aW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgaWYgKCFrZXkuaXNFbXB0eSgp
KQorICAgICAgICBtX3Nlc3Npb25TZXR0aW5ncy5zZXQoa2V5LCB2YWx1ZSk7Cit9CisKK3ZvaWQg
V2ViSW5zcGVjdG9yQ2xpZW50Ojpsb2FkU2Vzc2lvblNldHRpbmcoY29uc3QgU3RyaW5nJiBrZXks
IFN0cmluZyogdmFsdWUpCit7CisgICAgaWYgKCFrZXkuaXNFbXB0eSgpKQorICAgICAgICAqdmFs
dWUgPSBtX3Nlc3Npb25TZXR0aW5ncy5nZXQoa2V5KTsKK30KKwogV2ViSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnQ6OldlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50KFdlYlZpZXcqIGluc3BlY3RlZFdl
YlZpZXcsIEhXTkQgaW5zcGVjdGVkV2ViVmlld0h3bmQsIEhXTkQgZnJvbnRlbmRId25kLCBjb25z
dCBDT01QdHI8V2ViVmlldz4mIGZyb250ZW5kV2ViVmlldywgSFdORCBmcm9udGVuZFdlYlZpZXdI
d25kLCBXZWJJbnNwZWN0b3JDbGllbnQqIGluc3BlY3RvckNsaWVudCwgUGFzc093blB0cjxTZXR0
aW5ncz4gc2V0dGluZ3MpCiAgICAgOiBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsKGluc3Bl
Y3RlZFdlYlZpZXctPnBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLCAgY29yZShmcm9udGVu
ZFdlYlZpZXcuZ2V0KCkpLCBzZXR0aW5ncykKICAgICAsIG1faW5zcGVjdGVkV2ViVmlldyhpbnNw
ZWN0ZWRXZWJWaWV3KQpAQCAtMzIyLDYgKzMzNCwxNiBAQCB2b2lkIFdlYkluc3BlY3RvckZyb250
ZW5kQ2xpZW50OjppbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYgbmV3VVJMKQogICAg
IHVwZGF0ZVdpbmRvd1RpdGxlKCk7CiB9CiAKK3ZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQ6OnNhdmVTZXNzaW9uU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2
YWx1ZSkKK3sKKyAgICBtX2luc3BlY3RvckNsaWVudC0+c2F2ZVNlc3Npb25TZXR0aW5nKGtleSwg
dmFsdWUpOworfQorCit2b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50Ojpsb2FkU2Vzc2lv
blNldHRpbmcoY29uc3QgU3RyaW5nJiBrZXksIFN0cmluZyogdmFsdWUpCit7CisgICAgbV9pbnNw
ZWN0b3JDbGllbnQtPmxvYWRTZXNzaW9uU2V0dGluZyhrZXksIHZhbHVlKTsKK30KKwogdm9pZCBX
ZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2xvc2VXaW5kb3dXaXRob3V0Tm90aWZpY2F0aW9u
cygpCiB7CiAgICAgaWYgKCFtX2Zyb250ZW5kSHduZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oIGIvU291cmNlL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmgKaW5kZXggYTA1OTU1OS4u
ZTVkZGJkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
SW5zcGVjdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViSW5zcGVjdG9yQ2xpZW50LmgKQEAgLTM1LDcgKzM1LDkgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L1BsYXRmb3JtU3RyaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dNZXNzYWdlTGlzdGVu
ZXIuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2gu
aD4KICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTczLDYg
Kzc1LDkgQEAgcHVibGljOgogICAgICAgICByZWxlYXNlRnJvbnRlbmRQYWdlKCk7CiAgICAgfQog
CisgICAgdm9pZCBzYXZlU2Vzc2lvblNldHRpbmcoY29uc3QgV1RGOjpTdHJpbmcmIGtleSwgY29u
c3QgV1RGOjpTdHJpbmcmIHZhbHVlKTsKKyAgICB2b2lkIGxvYWRTZXNzaW9uU2V0dGluZyhjb25z
dCBXVEY6OlN0cmluZyYga2V5LCBXVEY6OlN0cmluZyogdmFsdWUpOworCiBwcml2YXRlOgogICAg
IH5XZWJJbnNwZWN0b3JDbGllbnQoKTsKICAgICBXVEY6OlBhc3NPd25QdHI8V2ViQ29yZTo6SW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6U2V0dGluZ3M+IGNyZWF0ZUZyb250ZW5kU2V0dGlu
Z3MoKTsKQEAgLTgzLDYgKzg4LDggQEAgcHJpdmF0ZToKICAgICBIV05EIG1fZnJvbnRlbmRId25k
OwogCiAgICAgT3duUHRyPFdlYk5vZGVIaWdobGlnaHQ+IG1faGlnaGxpZ2h0OworCisgICAgV1RG
OjpIYXNoTWFwPFdURjo6U3RyaW5nLCBXVEY6OlN0cmluZz4gbV9zZXNzaW9uU2V0dGluZ3M7CiB9
OwogCiBjbGFzcyBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpJ
bnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLCBXZWJDb3JlOjpXaW5kb3dNZXNzYWdlTGlzdGVu
ZXIgewpAQCAtMTA0LDYgKzExMSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0QXR0
YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQgaGVpZ2h0KTsKICAgICB2aXJ0dWFsIHZvaWQgaW5z
cGVjdGVkVVJMQ2hhbmdlZChjb25zdCBXVEY6OlN0cmluZyYgbmV3VVJMKTsKIAorICAgIHZpcnR1
YWwgdm9pZCBzYXZlU2Vzc2lvblNldHRpbmcoY29uc3QgV1RGOjpTdHJpbmcmIGtleSwgY29uc3Qg
V1RGOjpTdHJpbmcmIHZhbHVlKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFNlc3Npb25TZXR0aW5n
KGNvbnN0IFdURjo6U3RyaW5nJiBrZXksIFdURjo6U3RyaW5nKiB2YWx1ZSk7CisKIHByaXZhdGU6
CiAgICAgfldlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50KCk7CiAK
</data>
<flag name="review"
          id="78401"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>