selenium-webdriver 4.0.0.alpha7 → 4.0.0.beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +25 -0
  3. data/LICENSE +1 -1
  4. data/README.md +4 -5
  5. data/lib/selenium/server.rb +2 -26
  6. data/lib/selenium/webdriver.rb +0 -2
  7. data/lib/selenium/webdriver/atoms/findElements.js +88 -86
  8. data/lib/selenium/webdriver/chrome/driver.rb +6 -0
  9. data/lib/selenium/webdriver/chrome/features.rb +66 -0
  10. data/lib/selenium/webdriver/chrome/options.rb +51 -39
  11. data/lib/selenium/webdriver/chrome/service.rb +1 -1
  12. data/lib/selenium/webdriver/common.rb +2 -1
  13. data/lib/selenium/webdriver/common/driver.rb +11 -5
  14. data/lib/selenium/webdriver/common/driver_extensions/has_devtools.rb +1 -2
  15. data/lib/selenium/webdriver/common/driver_extensions/has_location.rb +5 -8
  16. data/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +7 -1
  17. data/lib/selenium/webdriver/common/driver_extensions/has_logs.rb +30 -0
  18. data/lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb +4 -27
  19. data/lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb +1 -0
  20. data/lib/selenium/webdriver/{edge_html/driver.rb → common/driver_extensions/prints_page.rb} +7 -13
  21. data/lib/selenium/webdriver/common/manager.rb +6 -1
  22. data/lib/selenium/webdriver/common/options.rb +25 -8
  23. data/lib/selenium/webdriver/common/platform.rb +2 -0
  24. data/lib/selenium/webdriver/common/service.rb +0 -8
  25. data/lib/selenium/webdriver/common/service_manager.rb +1 -1
  26. data/lib/selenium/webdriver/common/target_locator.rb +4 -4
  27. data/lib/selenium/webdriver/devtools.rb +5 -2
  28. data/lib/selenium/webdriver/devtools/v85/memory.rb +1 -1
  29. data/lib/selenium/webdriver/devtools/v85/network.rb +1 -1
  30. data/lib/selenium/webdriver/devtools/v85/page.rb +1 -1
  31. data/lib/selenium/webdriver/devtools/v86/memory.rb +1 -1
  32. data/lib/selenium/webdriver/devtools/v86/network.rb +1 -1
  33. data/lib/selenium/webdriver/devtools/v86/page.rb +1 -1
  34. data/lib/selenium/webdriver/devtools/v87/accessibility.rb +1 -1
  35. data/lib/selenium/webdriver/devtools/v87/animation.rb +2 -2
  36. data/lib/selenium/webdriver/devtools/v87/application_cache.rb +2 -2
  37. data/lib/selenium/webdriver/devtools/v87/audits.rb +2 -2
  38. data/lib/selenium/webdriver/devtools/v87/background_service.rb +2 -2
  39. data/lib/selenium/webdriver/devtools/v87/browser.rb +1 -1
  40. data/lib/selenium/webdriver/devtools/v87/cache_storage.rb +1 -1
  41. data/lib/selenium/webdriver/devtools/v87/cast.rb +2 -2
  42. data/lib/selenium/webdriver/devtools/v87/console.rb +2 -2
  43. data/lib/selenium/webdriver/devtools/v87/css.rb +2 -2
  44. data/lib/selenium/webdriver/devtools/v87/database.rb +2 -2
  45. data/lib/selenium/webdriver/devtools/v87/debugger.rb +2 -2
  46. data/lib/selenium/webdriver/devtools/v87/device_orientation.rb +1 -1
  47. data/lib/selenium/webdriver/devtools/v87/dom.rb +2 -2
  48. data/lib/selenium/webdriver/devtools/v87/dom_debugger.rb +1 -1
  49. data/lib/selenium/webdriver/devtools/v87/dom_snapshot.rb +1 -1
  50. data/lib/selenium/webdriver/devtools/v87/dom_storage.rb +2 -2
  51. data/lib/selenium/webdriver/devtools/v87/emulation.rb +2 -2
  52. data/lib/selenium/webdriver/devtools/v87/fetch.rb +2 -2
  53. data/lib/selenium/webdriver/devtools/v87/headless_experimental.rb +2 -2
  54. data/lib/selenium/webdriver/devtools/v87/heap_profiler.rb +2 -2
  55. data/lib/selenium/webdriver/devtools/v87/indexed_db.rb +1 -1
  56. data/lib/selenium/webdriver/devtools/v87/input.rb +1 -1
  57. data/lib/selenium/webdriver/devtools/v87/inspector.rb +2 -2
  58. data/lib/selenium/webdriver/devtools/v87/io.rb +1 -1
  59. data/lib/selenium/webdriver/devtools/v87/layer_tree.rb +2 -2
  60. data/lib/selenium/webdriver/devtools/v87/log.rb +2 -2
  61. data/lib/selenium/webdriver/devtools/v87/media.rb +2 -2
  62. data/lib/selenium/webdriver/devtools/v87/memory.rb +2 -2
  63. data/lib/selenium/webdriver/devtools/v87/network.rb +3 -3
  64. data/lib/selenium/webdriver/devtools/v87/overlay.rb +2 -2
  65. data/lib/selenium/webdriver/devtools/v87/page.rb +3 -3
  66. data/lib/selenium/webdriver/devtools/v87/performance.rb +2 -2
  67. data/lib/selenium/webdriver/devtools/v87/profiler.rb +2 -2
  68. data/lib/selenium/webdriver/devtools/v87/runtime.rb +2 -2
  69. data/lib/selenium/webdriver/devtools/v87/schema.rb +1 -1
  70. data/lib/selenium/webdriver/devtools/v87/security.rb +2 -2
  71. data/lib/selenium/webdriver/devtools/v87/service_worker.rb +2 -2
  72. data/lib/selenium/webdriver/devtools/v87/storage.rb +2 -2
  73. data/lib/selenium/webdriver/devtools/v87/system_info.rb +1 -1
  74. data/lib/selenium/webdriver/devtools/v87/target.rb +2 -2
  75. data/lib/selenium/webdriver/devtools/v87/tethering.rb +2 -2
  76. data/lib/selenium/webdriver/devtools/v87/tracing.rb +2 -2
  77. data/lib/selenium/webdriver/devtools/v87/web_audio.rb +2 -2
  78. data/lib/selenium/webdriver/devtools/v87/web_authn.rb +1 -1
  79. data/lib/selenium/webdriver/devtools/{v84 → v88}/accessibility.rb +12 -3
  80. data/lib/selenium/webdriver/devtools/{v84 → v88}/animation.rb +3 -3
  81. data/lib/selenium/webdriver/devtools/{v84 → v88}/application_cache.rb +3 -3
  82. data/lib/selenium/webdriver/devtools/{v84 → v88}/audits.rb +3 -3
  83. data/lib/selenium/webdriver/devtools/{v84 → v88}/background_service.rb +3 -3
  84. data/lib/selenium/webdriver/devtools/{v84 → v88}/browser.rb +8 -3
  85. data/lib/selenium/webdriver/devtools/{v84 → v88}/cache_storage.rb +3 -3
  86. data/lib/selenium/webdriver/devtools/{v84 → v88}/cast.rb +3 -3
  87. data/lib/selenium/webdriver/devtools/{v84 → v88}/console.rb +3 -3
  88. data/lib/selenium/webdriver/devtools/{v84 → v88}/css.rb +17 -3
  89. data/lib/selenium/webdriver/devtools/{v84 → v88}/database.rb +3 -3
  90. data/lib/selenium/webdriver/devtools/{v84 → v88}/debugger.rb +9 -7
  91. data/lib/selenium/webdriver/devtools/{v84 → v88}/device_orientation.rb +3 -3
  92. data/lib/selenium/webdriver/devtools/{v84 → v88}/dom.rb +10 -3
  93. data/lib/selenium/webdriver/devtools/{v84 → v88}/dom_debugger.rb +3 -3
  94. data/lib/selenium/webdriver/devtools/{v84 → v88}/dom_snapshot.rb +3 -3
  95. data/lib/selenium/webdriver/devtools/{v84 → v88}/dom_storage.rb +3 -3
  96. data/lib/selenium/webdriver/devtools/{v84 → v88}/emulation.rb +21 -5
  97. data/lib/selenium/webdriver/devtools/{v84 → v88}/fetch.rb +3 -3
  98. data/lib/selenium/webdriver/devtools/{v84 → v88}/headless_experimental.rb +3 -3
  99. data/lib/selenium/webdriver/devtools/{v84 → v88}/heap_profiler.rb +3 -3
  100. data/lib/selenium/webdriver/devtools/{v84 → v88}/indexed_db.rb +3 -3
  101. data/lib/selenium/webdriver/devtools/{v84 → v88}/input.rb +12 -6
  102. data/lib/selenium/webdriver/devtools/{v84 → v88}/inspector.rb +3 -3
  103. data/lib/selenium/webdriver/devtools/{v84 → v88}/io.rb +3 -3
  104. data/lib/selenium/webdriver/devtools/{v84 → v88}/layer_tree.rb +3 -3
  105. data/lib/selenium/webdriver/devtools/{v84 → v88}/log.rb +3 -3
  106. data/lib/selenium/webdriver/devtools/{v84 → v88}/media.rb +3 -3
  107. data/lib/selenium/webdriver/devtools/{v84 → v88}/memory.rb +4 -4
  108. data/lib/selenium/webdriver/devtools/{v84 → v88}/network.rb +21 -4
  109. data/lib/selenium/webdriver/devtools/{v84 → v88}/overlay.rb +29 -5
  110. data/lib/selenium/webdriver/devtools/{v84 → v88}/page.rb +4 -4
  111. data/lib/selenium/webdriver/devtools/{v84 → v88}/performance.rb +3 -3
  112. data/lib/selenium/webdriver/devtools/{v84 → v88}/profiler.rb +15 -3
  113. data/lib/selenium/webdriver/devtools/{v84 → v88}/runtime.rb +9 -7
  114. data/lib/selenium/webdriver/devtools/{v84 → v88}/schema.rb +3 -3
  115. data/lib/selenium/webdriver/devtools/{v84 → v88}/security.rb +3 -3
  116. data/lib/selenium/webdriver/devtools/{v84 → v88}/service_worker.rb +3 -3
  117. data/lib/selenium/webdriver/devtools/{v84 → v88}/storage.rb +9 -3
  118. data/lib/selenium/webdriver/devtools/{v84 → v88}/system_info.rb +3 -3
  119. data/lib/selenium/webdriver/devtools/{v84 → v88}/target.rb +7 -5
  120. data/lib/selenium/webdriver/devtools/{v84 → v88}/tethering.rb +3 -3
  121. data/lib/selenium/webdriver/devtools/{v84 → v88}/tracing.rb +6 -5
  122. data/lib/selenium/webdriver/devtools/{v84 → v88}/web_audio.rb +3 -3
  123. data/lib/selenium/webdriver/devtools/{v84 → v88}/web_authn.rb +9 -3
  124. data/lib/selenium/webdriver/edge.rb +7 -29
  125. data/lib/selenium/webdriver/{edge_chrome → edge}/bridge.rb +2 -2
  126. data/lib/selenium/webdriver/{edge_chrome → edge}/driver.rb +4 -4
  127. data/lib/selenium/webdriver/edge/features.rb +39 -0
  128. data/lib/selenium/webdriver/{edge_chrome → edge}/options.rb +9 -3
  129. data/lib/selenium/webdriver/{edge_chrome → edge}/profile.rb +2 -2
  130. data/lib/selenium/webdriver/{edge_chrome → edge}/service.rb +2 -2
  131. data/lib/selenium/webdriver/firefox/driver.rb +13 -0
  132. data/lib/selenium/webdriver/firefox/features.rb +47 -0
  133. data/lib/selenium/webdriver/firefox/options.rb +20 -21
  134. data/lib/selenium/webdriver/firefox/profile.rb +12 -2
  135. data/lib/selenium/webdriver/firefox/service.rb +1 -1
  136. data/lib/selenium/webdriver/ie/options.rb +0 -10
  137. data/lib/selenium/webdriver/ie/service.rb +1 -1
  138. data/lib/selenium/webdriver/remote/bridge.rb +6 -26
  139. data/lib/selenium/webdriver/remote/capabilities.rb +1 -15
  140. data/lib/selenium/webdriver/remote/commands.rb +1 -0
  141. data/lib/selenium/webdriver/remote/driver.rb +6 -1
  142. data/lib/selenium/webdriver/remote/http/default.rb +2 -2
  143. data/lib/selenium/webdriver/remote/http/persistent.rb +6 -0
  144. data/lib/selenium/webdriver/{common/driver_extensions/rotatable.rb → safari/features.rb} +26 -36
  145. data/lib/selenium/webdriver/safari/options.rb +0 -25
  146. data/lib/selenium/webdriver/support/block_event_listener.rb +1 -1
  147. data/lib/selenium/webdriver/support/event_firing_bridge.rb +1 -1
  148. data/lib/selenium/webdriver/version.rb +1 -1
  149. data/selenium-webdriver.gemspec +4 -2
  150. data/selenium_server_deploy.jar +0 -0
  151. metadata +89 -59
  152. data/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +0 -65
  153. data/lib/selenium/webdriver/edge_html/options.rb +0 -84
  154. data/lib/selenium/webdriver/edge_html/service.rb +0 -47
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 98a5536f91ba3fce5d5a6065dfca9c19d97e911b80f2eb3b26ee5a95057a5d9d
4
- data.tar.gz: 80f3216b300aa16f984183dffe014fbe4d5f2647f63a1f6deb84b9aa41209fac
3
+ metadata.gz: fbd9e70ae09ed6fea363edabb44b99241312dca9d828e487f547dff889a59417
4
+ data.tar.gz: bb407f0fba28c434a94f852e19a30330a2a89232aa053ade69af7b2c92ba39bd
5
5
  SHA512:
6
- metadata.gz: 8ea3a82cdb6fe8d089858101df6f614141ac90da8f3a2eb6e85a812beca801103acb24480293132ddc44330e897b22f666c588b7830aca1e23e1384d7970144a
7
- data.tar.gz: 68d902ca4d337a844ff39479fe234fad9f08e6fcd21fee6a6e5c88abdabba98de41a12399f7d5df95fc8f49ecb8061b30ffe3d82e284dcd01607c36deeb0a776
6
+ metadata.gz: 649bfbd08d8be6864972a7ea1c7f380c01f41bf50ef8b774547c7084f70416076a0ec515b1c386dc666f5db833096c49dd4ae44c6c8be4c57695a0b41150b46b
7
+ data.tar.gz: f962b7a26c6bb82f1df10aa45a6ba5e2576f12895875fada0ce5b4dea9aca776b9cf9e501646e2deadde4e710fc751e76e6ccbe5f3ab9eb67526037d6d244423
data/CHANGES CHANGED
@@ -1,3 +1,28 @@
1
+ 4.0.0.beta1 (2021-02-15)
2
+ =========================
3
+
4
+ DevTools:
5
+ * Updated supported versions to 85-88
6
+
7
+ Edge:
8
+ * Removed support for legacy Edge HTML
9
+
10
+ Firefox:
11
+ * Fixed support for default profile settings
12
+ * Added support for Devtools for Firefox v87+
13
+
14
+ Safari:
15
+ * Removed default platformName specification so it works with Grid
16
+
17
+ Ruby:
18
+ * Added support for httpOnly attribute in Cookies
19
+ * Implemented `#print_page` method (thanks @raju249)
20
+ * Fixed support for missing libraries in Ruby 3.0 (thanks @znz)
21
+ * Deprecated `HTTP::Persistent` class
22
+ * Fixed support for accessors in options classes
23
+ * Added support for status endpoint for all browsers
24
+ * Fix support for Browser, Driver, and Performance Logging in Chrome and Edge
25
+
1
26
  4.0.0.alpha7 (2020-11-10)
2
27
  =========================
3
28
 
data/LICENSE CHANGED
@@ -187,7 +187,7 @@
187
187
  same "printed page" as the copyright notice for easier
188
188
  identification within third-party archives.
189
189
 
190
- Copyright 2020 Software Freedom Conservancy (SFC)
190
+ Copyright 2021 Software Freedom Conservancy (SFC)
191
191
 
192
192
  Licensed under the Apache License, Version 2.0 (the "License");
193
193
  you may not use this file except in compliance with the License.
data/README.md CHANGED
@@ -1,7 +1,6 @@
1
1
  # selenium-webdriver
2
2
 
3
- This gem provides Ruby bindings for WebDriver
4
- and has been tested to work on MRI (2.0 through 2.2),
3
+ This gem provides Ruby bindings for Selenium and supports MRI > 2.5
5
4
 
6
5
  ## Install
7
6
 
@@ -9,14 +8,14 @@ and has been tested to work on MRI (2.0 through 2.2),
9
8
 
10
9
  ## Links
11
10
 
12
- * http://rubygems.org/gems/selenium-webdriver
13
- * http://seleniumhq.github.io/selenium/docs/api/rb/index.html
11
+ * https://rubygems.org/gems/selenium-webdriver
12
+ * https://www.selenium.dev/selenium/docs/api/rb/index.html
14
13
  * https://github.com/SeleniumHQ/selenium/wiki/Ruby-Bindings
15
14
  * https://github.com/SeleniumHQ/selenium/issues
16
15
 
17
16
  ## License
18
17
 
19
- Copyright 2009-2018 Software Freedom Conservancy
18
+ Copyright 2009-2021 Software Freedom Conservancy
20
19
 
21
20
  Licensed to the Software Freedom Conservancy (SFC) under one
22
21
  or more contributor license agreements. See the NOTICE file
@@ -139,31 +139,7 @@ module Selenium
139
139
  # :standalone, #hub, #node
140
140
  #
141
141
 
142
- attr_accessor :role
143
-
144
- #
145
- # The server port
146
- #
147
-
148
- attr_accessor :port
149
-
150
- #
151
- # The server timeout
152
- #
153
-
154
- attr_accessor :timeout
155
-
156
- #
157
- # Whether to launch the server in the background
158
- #
159
-
160
- attr_accessor :background
161
-
162
- #
163
- # Path to log file, or 'true' for stdout.
164
- #
165
-
166
- attr_accessor :log
142
+ attr_accessor :role, :port, :timeout, :background, :log
167
143
 
168
144
  #
169
145
  # @param [String] jar Path to the server jar.
@@ -225,7 +201,7 @@ module Selenium
225
201
  private
226
202
 
227
203
  def selenium4?
228
- @jar.match?(/[^\.][4]\./) || @jar.include?('deploy')
204
+ @jar.match?(/[^.]4\./) || @jar.include?('deploy')
229
205
  end
230
206
 
231
207
  def stop_process
@@ -39,8 +39,6 @@ module Selenium
39
39
  autoload :Chrome, 'selenium/webdriver/chrome'
40
40
  autoload :DevTools, 'selenium/webdriver/devtools'
41
41
  autoload :Edge, 'selenium/webdriver/edge'
42
- autoload :EdgeHtml, 'selenium/webdriver/edge'
43
- autoload :EdgeChrome, 'selenium/webdriver/edge'
44
42
  autoload :Firefox, 'selenium/webdriver/firefox'
45
43
  autoload :IE, 'selenium/webdriver/ie'
46
44
  autoload :Remote, 'selenium/webdriver/remote'
@@ -1,7 +1,7 @@
1
1
  function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)a.length||void 0===b?c[d]&&c[d]!==Object.prototype[d]?c=c[d]:c=c[d]={}:c[d]=b}
2
2
  function ca(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";
3
- else if("function"==b&&"undefined"==typeof a.call)return"object";return b}function da(a){return"function"==ca(a)}function ea(a){var b=typeof a;return"object"==b&&null!=a||"function"==b}function ha(a,b,c){return a.call.apply(a.bind,arguments)}
4
- function ia(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var e=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(e,d);return a.apply(b,e)}}return function(){return a.apply(b,arguments)}}function ja(a,b,c){Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?ja=ha:ja=ia;return ja.apply(null,arguments)}
3
+ else if("function"==b&&"undefined"==typeof a.call)return"object";return b}function da(a){return"function"==ca(a)}function ea(a){var b=typeof a;return"object"==b&&null!=a||"function"==b}function fa(a,b,c){return a.call.apply(a.bind,arguments)}
4
+ function ia(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var e=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(e,d);return a.apply(b,e)}}return function(){return a.apply(b,arguments)}}function ja(a,b,c){Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?ja=fa:ja=ia;return ja.apply(null,arguments)}
5
5
  function ka(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var d=c.slice();d.push.apply(d,arguments);return a.apply(this,d)}}function l(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a};/*
6
6
 
7
7
  The MIT License
@@ -30,92 +30,94 @@ function ka(a,b){var c=Array.prototype.slice.call(arguments,1);return function()
30
30
  function la(a,b,c){this.a=a;this.b=b||1;this.f=c||1};var ma;var na=Array.prototype.indexOf?function(a,b){return Array.prototype.indexOf.call(a,b,void 0)}:function(a,b){if("string"===typeof a)return"string"!==typeof b||1!=b.length?-1:a.indexOf(b,0);for(var c=0;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1},q=Array.prototype.forEach?function(a,b,c){Array.prototype.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e="string"===typeof a?a.split(""):a,f=0;f<d;f++)f in e&&b.call(c,e[f],f,a)},oa=Array.prototype.filter?function(a,b){return Array.prototype.filter.call(a,
31
31
  b,void 0)}:function(a,b){for(var c=a.length,d=[],e=0,f="string"===typeof a?a.split(""):a,g=0;g<c;g++)if(g in f){var h=f[g];b.call(void 0,h,g,a)&&(d[e++]=h)}return d},pa=Array.prototype.map?function(a,b){return Array.prototype.map.call(a,b,void 0)}:function(a,b){for(var c=a.length,d=Array(c),e="string"===typeof a?a.split(""):a,f=0;f<c;f++)f in e&&(d[f]=b.call(void 0,e[f],f,a));return d},qa=Array.prototype.reduce?function(a,b,c){return Array.prototype.reduce.call(a,b,c)}:function(a,b,c){var d=c;q(a,
32
32
  function(e,f){d=b.call(void 0,d,e,f,a)});return d},ra=Array.prototype.some?function(a,b){return Array.prototype.some.call(a,b,void 0)}:function(a,b){for(var c=a.length,d="string"===typeof a?a.split(""):a,e=0;e<c;e++)if(e in d&&b.call(void 0,d[e],e,a))return!0;return!1},sa=Array.prototype.every?function(a,b,c){return Array.prototype.every.call(a,b,c)}:function(a,b,c){for(var d=a.length,e="string"===typeof a?a.split(""):a,f=0;f<d;f++)if(f in e&&!b.call(c,e[f],f,a))return!1;return!0};
33
- function ta(a,b){a:{for(var c=a.length,d="string"===typeof a?a.split(""):a,e=0;e<c;e++)if(e in d&&b.call(void 0,d[e],e,a)){b=e;break a}b=-1}return 0>b?null:"string"===typeof a?a.charAt(b):a[b]}function ua(a){return Array.prototype.concat.apply([],arguments)}function va(a,b,c){return 2>=arguments.length?Array.prototype.slice.call(a,b):Array.prototype.slice.call(a,b,c)};function wa(a){var b=a.length-1;return 0<=b&&a.indexOf(" ",b)==b}var xa=String.prototype.trim?function(a){return a.trim()}:function(a){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(a)[1]};
34
- function ya(a,b){var c=0;a=xa(String(a)).split(".");b=xa(String(b)).split(".");for(var d=Math.max(a.length,b.length),e=0;0==c&&e<d;e++){var f=a[e]||"",g=b[e]||"";do{f=/(\d*)(\D*)(.*)/.exec(f)||["","","",""];g=/(\d*)(\D*)(.*)/.exec(g)||["","","",""];if(0==f[0].length&&0==g[0].length)break;c=za(0==f[1].length?0:parseInt(f[1],10),0==g[1].length?0:parseInt(g[1],10))||za(0==f[2].length,0==g[2].length)||za(f[2],g[2]);f=f[3];g=g[3]}while(0==c)}return c}function za(a,b){return a<b?-1:a>b?1:0};var r;a:{var Aa=k.navigator;if(Aa){var Ba=Aa.userAgent;if(Ba){r=Ba;break a}}r=""}function v(a){return-1!=r.indexOf(a)};function Ca(){return v("Firefox")||v("FxiOS")}function Da(){return(v("Chrome")||v("CriOS"))&&!v("Edge")};function Ea(a){return String(a).replace(/\-([a-z])/g,function(b,c){return c.toUpperCase()})};function Fa(){return v("iPhone")&&!v("iPod")&&!v("iPad")};function Ga(a,b){var c=Ha;return Object.prototype.hasOwnProperty.call(c,a)?c[a]:c[a]=b(a)};var Ia=v("Opera"),w=v("Trident")||v("MSIE"),Ja=v("Edge"),Ka=v("Gecko")&&!(-1!=r.toLowerCase().indexOf("webkit")&&!v("Edge"))&&!(v("Trident")||v("MSIE"))&&!v("Edge"),La=-1!=r.toLowerCase().indexOf("webkit")&&!v("Edge");function Ma(){var a=k.document;return a?a.documentMode:void 0}var Na;
35
- a:{var Oa="",Pa=function(){var a=r;if(Ka)return/rv:([^\);]+)(\)|;)/.exec(a);if(Ja)return/Edge\/([\d\.]+)/.exec(a);if(w)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(La)return/WebKit\/(\S+)/.exec(a);if(Ia)return/(?:Version)[ \/]?(\S+)/.exec(a)}();Pa&&(Oa=Pa?Pa[1]:"");if(w){var Qa=Ma();if(null!=Qa&&Qa>parseFloat(Oa)){Na=String(Qa);break a}}Na=Oa}var Ha={};function Ra(a){return Ga(a,function(){return 0<=ya(Na,a)})}var x;x=k.document&&w?Ma():void 0;var y=w&&!(9<=Number(x)),Sa=w&&!(8<=Number(x));function Ta(a,b,c,d){this.a=a;this.nodeName=c;this.nodeValue=d;this.nodeType=2;this.parentNode=this.ownerElement=b}function Ua(a,b){var c=Sa&&"href"==b.nodeName?a.getAttribute(b.nodeName,2):b.nodeValue;return new Ta(b,a,b.nodeName,c)};function Va(a){this.b=a;this.a=0}function Wa(a){a=a.match(Xa);for(var b=0;b<a.length;b++)Ya.test(a[b])&&a.splice(b,1);return new Va(a)}var Xa=/\$?(?:(?![0-9-\.])(?:\*|[\w-\.]+):)?(?![0-9-\.])(?:\*|[\w-\.]+)|\/\/|\.\.|::|\d+(?:\.\d*)?|\.\d+|"[^"]*"|'[^']*'|[!<>]=|\s+|./g,Ya=/^\s/;function z(a,b){return a.b[a.a+(b||0)]}function A(a){return a.b[a.a++]}function Za(a){return a.b.length<=a.a};function $a(a,b){this.x=void 0!==a?a:0;this.y=void 0!==b?b:0}$a.prototype.ceil=function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);return this};$a.prototype.floor=function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);return this};$a.prototype.round=function(){this.x=Math.round(this.x);this.y=Math.round(this.y);return this};function ab(a,b){this.width=a;this.height=b}ab.prototype.aspectRatio=function(){return this.width/this.height};ab.prototype.ceil=function(){this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this};ab.prototype.floor=function(){this.width=Math.floor(this.width);this.height=Math.floor(this.height);return this};ab.prototype.round=function(){this.width=Math.round(this.width);this.height=Math.round(this.height);return this};function bb(a){return a?new cb(B(a)):ma||(ma=new cb)}function db(a){for(;a&&1!=a.nodeType;)a=a.previousSibling;return a}function eb(a,b){if(!a||!b)return!1;if(a.contains&&1==b.nodeType)return a==b||a.contains(b);if("undefined"!=typeof a.compareDocumentPosition)return a==b||!!(a.compareDocumentPosition(b)&16);for(;b&&a!=b;)b=b.parentNode;return b==a}
36
- function fb(a,b){if(a==b)return 0;if(a.compareDocumentPosition)return a.compareDocumentPosition(b)&2?1:-1;if(w&&!(9<=Number(x))){if(9==a.nodeType)return-1;if(9==b.nodeType)return 1}if("sourceIndex"in a||a.parentNode&&"sourceIndex"in a.parentNode){var c=1==a.nodeType,d=1==b.nodeType;if(c&&d)return a.sourceIndex-b.sourceIndex;var e=a.parentNode,f=b.parentNode;return e==f?gb(a,b):!c&&eb(e,b)?-1*hb(a,b):!d&&eb(f,a)?hb(b,a):(c?a.sourceIndex:e.sourceIndex)-(d?b.sourceIndex:f.sourceIndex)}d=B(a);c=d.createRange();
37
- c.selectNode(a);c.collapse(!0);a=d.createRange();a.selectNode(b);a.collapse(!0);return c.compareBoundaryPoints(k.Range.START_TO_END,a)}function hb(a,b){var c=a.parentNode;if(c==b)return-1;for(;b.parentNode!=c;)b=b.parentNode;return gb(b,a)}function gb(a,b){for(;b=b.previousSibling;)if(b==a)return-1;return 1}function B(a){return 9==a.nodeType?a:a.ownerDocument||a.document}function ib(a,b){a&&(a=a.parentNode);for(var c=0;a;){if(b(a))return a;a=a.parentNode;c++}return null}
38
- function cb(a){this.a=a||k.document||document}cb.prototype.getElementsByTagName=function(a,b){return(b||this.a).getElementsByTagName(String(a))};
39
- function jb(a,b,c,d){a=d||a.a;var e=b&&"*"!=b?String(b).toUpperCase():"";if(a.querySelectorAll&&a.querySelector&&(e||c))c=a.querySelectorAll(e+(c?"."+c:""));else if(c&&a.getElementsByClassName)if(b=a.getElementsByClassName(c),e){a={};for(var f=d=0,g;g=b[f];f++)e==g.nodeName&&(a[d++]=g);a.length=d;c=a}else c=b;else if(b=a.getElementsByTagName(e||"*"),c){a={};for(f=d=0;g=b[f];f++){e=g.className;var h;if(h="function"==typeof e.split)h=0<=na(e.split(/\s+/),c);h&&(a[d++]=g)}a.length=d;c=a}else c=b;return c}
40
- ;function C(a){var b=null,c=a.nodeType;1==c&&(b=a.textContent,b=void 0==b||null==b?a.innerText:b,b=void 0==b||null==b?"":b);if("string"!=typeof b)if(y&&"title"==a.nodeName.toLowerCase()&&1==c)b=a.text;else if(9==c||1==c){a=9==c?a.documentElement:a.firstChild;c=0;var d=[];for(b="";a;){do 1!=a.nodeType&&(b+=a.nodeValue),y&&"title"==a.nodeName.toLowerCase()&&(b+=a.text),d[c++]=a;while(a=a.firstChild);for(;c&&!(a=d[--c].nextSibling););}}else b=a.nodeValue;return b}
41
- function kb(a,b,c){if(null===b)return!0;try{if(!a.getAttribute)return!1}catch(d){return!1}Sa&&"class"==b&&(b="className");return null==c?!!a.getAttribute(b):a.getAttribute(b,2)==c}function lb(a,b,c,d,e){return(y?mb:nb).call(null,a,b,aa(c)?c:null,aa(d)?d:null,e||new D)}
42
- function mb(a,b,c,d,e){if(a instanceof ob||8==a.b||c&&null===a.b){var f=b.all;if(!f)return e;a=pb(a);if("*"!=a&&(f=b.getElementsByTagName(a),!f))return e;if(c){for(var g=[],h=0;b=f[h++];)kb(b,c,d)&&g.push(b);f=g}for(h=0;b=f[h++];)"*"==a&&"!"==b.tagName||e.add(b);return e}qb(a,b,c,d,e);return e}
43
- function nb(a,b,c,d,e){b.getElementsByName&&d&&"name"==c&&!w?(b=b.getElementsByName(d),q(b,function(f){a.a(f)&&e.add(f)})):b.getElementsByClassName&&d&&"class"==c?(b=b.getElementsByClassName(d),q(b,function(f){f.className==d&&a.a(f)&&e.add(f)})):a instanceof E?qb(a,b,c,d,e):b.getElementsByTagName&&(b=b.getElementsByTagName(a.f()),q(b,function(f){kb(f,c,d)&&e.add(f)}));return e}
44
- function rb(a,b,c,d,e){var f;if((a instanceof ob||8==a.b||c&&null===a.b)&&(f=b.childNodes)){var g=pb(a);if("*"!=g&&(f=oa(f,function(h){return h.tagName&&h.tagName.toLowerCase()==g}),!f))return e;c&&(f=oa(f,function(h){return kb(h,c,d)}));q(f,function(h){"*"==g&&("!"==h.tagName||"*"==g&&1!=h.nodeType)||e.add(h)});return e}return sb(a,b,c,d,e)}function sb(a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)kb(b,c,d)&&a.a(b)&&e.add(b);return e}
45
- function qb(a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)kb(b,c,d)&&a.a(b)&&e.add(b),qb(a,b,c,d,e)}function pb(a){if(a instanceof E){if(8==a.b)return"!";if(null===a.b)return"*"}return a.f()};function D(){this.b=this.a=null;this.m=0}function tb(a){this.f=a;this.a=this.b=null}function ub(a,b){if(!a.a)return b;if(!b.a)return a;var c=a.a;b=b.a;for(var d=null,e,f=0;c&&b;){e=c.f;var g=b.f;e==g||e instanceof Ta&&g instanceof Ta&&e.a==g.a?(e=c,c=c.a,b=b.a):0<fb(c.f,b.f)?(e=b,b=b.a):(e=c,c=c.a);(e.b=d)?d.a=e:a.a=e;d=e;f++}for(e=c||b;e;)e.b=d,d=d.a=e,f++,e=e.a;a.b=d;a.m=f;return a}function vb(a,b){b=new tb(b);b.a=a.a;a.b?a.a.b=b:a.a=a.b=b;a.a=b;a.m++}
46
- D.prototype.add=function(a){a=new tb(a);a.b=this.b;this.a?this.b.a=a:this.a=this.b=a;this.b=a;this.m++};function wb(a){return(a=a.a)?a.f:null}function xb(a){return(a=wb(a))?C(a):""}function yb(a,b){return new zb(a,!!b)}function zb(a,b){this.f=a;this.b=(this.v=b)?a.b:a.a;this.a=null}function F(a){var b=a.b;if(null==b)return null;var c=a.a=b;a.b=a.v?b.b:b.a;return c.f};function H(a){this.i=a;this.b=this.g=!1;this.f=null}function I(a){return"\n "+a.toString().split("\n").join("\n ")}function Ab(a,b){a.g=b}function Bb(a,b){a.b=b}function J(a,b){a=a.a(b);return a instanceof D?+xb(a):+a}function K(a,b){a=a.a(b);return a instanceof D?xb(a):""+a}function Cb(a,b){a=a.a(b);return a instanceof D?!!a.m:!!a};function Db(a,b,c){H.call(this,a.i);this.c=a;this.h=b;this.u=c;this.g=b.g||c.g;this.b=b.b||c.b;this.c==Eb&&(c.b||c.g||4==c.i||0==c.i||!b.f?b.b||b.g||4==b.i||0==b.i||!c.f||(this.f={name:c.f.name,A:b}):this.f={name:b.f.name,A:c})}l(Db,H);
47
- function Gb(a,b,c,d,e){b=b.a(d);c=c.a(d);var f;if(b instanceof D&&c instanceof D){b=yb(b);for(d=F(b);d;d=F(b))for(e=yb(c),f=F(e);f;f=F(e))if(a(C(d),C(f)))return!0;return!1}if(b instanceof D||c instanceof D){b instanceof D?(e=b,d=c):(e=c,d=b);f=yb(e);for(var g=typeof d,h=F(f);h;h=F(f)){switch(g){case "number":h=+C(h);break;case "boolean":h=!!C(h);break;case "string":h=C(h);break;default:throw Error("Illegal primitive type for comparison.");}if(e==b&&a(h,d)||e==c&&a(d,h))return!0}return!1}return e?
48
- "boolean"==typeof b||"boolean"==typeof c?a(!!b,!!c):"number"==typeof b||"number"==typeof c?a(+b,+c):a(b,c):a(+b,+c)}Db.prototype.a=function(a){return this.c.s(this.h,this.u,a)};Db.prototype.toString=function(){var a="Binary Expression: "+this.c;a+=I(this.h);return a+=I(this.u)};function Hb(a,b,c,d){this.Z=a;this.M=b;this.i=c;this.s=d}Hb.prototype.toString=function(){return this.Z};var Ib={};
49
- function L(a,b,c,d){if(Ib.hasOwnProperty(a))throw Error("Binary operator already created: "+a);a=new Hb(a,b,c,d);return Ib[a.toString()]=a}L("div",6,1,function(a,b,c){return J(a,c)/J(b,c)});L("mod",6,1,function(a,b,c){return J(a,c)%J(b,c)});L("*",6,1,function(a,b,c){return J(a,c)*J(b,c)});L("+",5,1,function(a,b,c){return J(a,c)+J(b,c)});L("-",5,1,function(a,b,c){return J(a,c)-J(b,c)});L("<",4,2,function(a,b,c){return Gb(function(d,e){return d<e},a,b,c)});
50
- L(">",4,2,function(a,b,c){return Gb(function(d,e){return d>e},a,b,c)});L("<=",4,2,function(a,b,c){return Gb(function(d,e){return d<=e},a,b,c)});L(">=",4,2,function(a,b,c){return Gb(function(d,e){return d>=e},a,b,c)});var Eb=L("=",3,2,function(a,b,c){return Gb(function(d,e){return d==e},a,b,c,!0)});L("!=",3,2,function(a,b,c){return Gb(function(d,e){return d!=e},a,b,c,!0)});L("and",2,2,function(a,b,c){return Cb(a,c)&&Cb(b,c)});L("or",1,2,function(a,b,c){return Cb(a,c)||Cb(b,c)});function Jb(a,b){if(b.a.length&&4!=a.i)throw Error("Primary expression must evaluate to nodeset if filter has predicate(s).");H.call(this,a.i);this.c=a;this.h=b;this.g=a.g;this.b=a.b}l(Jb,H);Jb.prototype.a=function(a){a=this.c.a(a);return Kb(this.h,a)};Jb.prototype.toString=function(){var a="Filter:"+I(this.c);return a+=I(this.h)};function Lb(a,b){if(b.length<a.L)throw Error("Function "+a.l+" expects at least"+a.L+" arguments, "+b.length+" given");if(null!==a.G&&b.length>a.G)throw Error("Function "+a.l+" expects at most "+a.G+" arguments, "+b.length+" given");a.Y&&q(b,function(c,d){if(4!=c.i)throw Error("Argument "+d+" to function "+a.l+" is not of type Nodeset: "+c);});H.call(this,a.i);this.C=a;this.c=b;Ab(this,a.g||ra(b,function(c){return c.g}));Bb(this,a.X&&!b.length||a.W&&!!b.length||ra(b,function(c){return c.b}))}
51
- l(Lb,H);Lb.prototype.a=function(a){return this.C.s.apply(null,ua(a,this.c))};Lb.prototype.toString=function(){var a="Function: "+this.C;if(this.c.length){var b=qa(this.c,function(c,d){return c+I(d)},"Arguments:");a+=I(b)}return a};function Mb(a,b,c,d,e,f,g,h){this.l=a;this.i=b;this.g=c;this.X=d;this.W=!1;this.s=e;this.L=f;this.G=void 0!==g?g:f;this.Y=!!h}Mb.prototype.toString=function(){return this.l};var Nb={};
52
- function M(a,b,c,d,e,f,g,h){if(Nb.hasOwnProperty(a))throw Error("Function already created: "+a+".");Nb[a]=new Mb(a,b,c,d,e,f,g,h)}M("boolean",2,!1,!1,function(a,b){return Cb(b,a)},1);M("ceiling",1,!1,!1,function(a,b){return Math.ceil(J(b,a))},1);M("concat",3,!1,!1,function(a,b){return qa(va(arguments,1),function(c,d){return c+K(d,a)},"")},2,null);M("contains",2,!1,!1,function(a,b,c){b=K(b,a);a=K(c,a);return a=-1!=b.indexOf(a)},2);M("count",1,!1,!1,function(a,b){return b.a(a).m},1,1,!0);
53
- M("false",2,!1,!1,function(){return!1},0);M("floor",1,!1,!1,function(a,b){return Math.floor(J(b,a))},1);M("id",4,!1,!1,function(a,b){function c(h){if(y){var n=e.all[h];if(n){if(n.nodeType&&h==n.id)return n;if(n.length)return ta(n,function(t){return h==t.id})}return null}return e.getElementById(h)}var d=a.a,e=9==d.nodeType?d:d.ownerDocument;a=K(b,a).split(/\s+/);var f=[];q(a,function(h){h=c(h);!h||0<=na(f,h)||f.push(h)});f.sort(fb);var g=new D;q(f,function(h){g.add(h)});return g},1);
54
- M("lang",2,!1,!1,function(){return!1},1);M("last",1,!0,!1,function(a){if(1!=arguments.length)throw Error("Function last expects ()");return a.f},0);M("local-name",3,!1,!0,function(a,b){return(a=b?wb(b.a(a)):a.a)?a.localName||a.nodeName.toLowerCase():""},0,1,!0);M("name",3,!1,!0,function(a,b){return(a=b?wb(b.a(a)):a.a)?a.nodeName.toLowerCase():""},0,1,!0);M("namespace-uri",3,!0,!1,function(){return""},0,1,!0);
55
- M("normalize-space",3,!1,!0,function(a,b){return(b?K(b,a):C(a.a)).replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")},0,1);M("not",2,!1,!1,function(a,b){return!Cb(b,a)},1);M("number",1,!1,!0,function(a,b){return b?J(b,a):+C(a.a)},0,1);M("position",1,!0,!1,function(a){return a.b},0);M("round",1,!1,!1,function(a,b){return Math.round(J(b,a))},1);M("starts-with",2,!1,!1,function(a,b,c){b=K(b,a);a=K(c,a);return 0==b.lastIndexOf(a,0)},2);M("string",3,!1,!0,function(a,b){return b?K(b,a):C(a.a)},0,1);
56
- M("string-length",1,!1,!0,function(a,b){return(b?K(b,a):C(a.a)).length},0,1);M("substring",3,!1,!1,function(a,b,c,d){c=J(c,a);if(isNaN(c)||Infinity==c||-Infinity==c)return"";d=d?J(d,a):Infinity;if(isNaN(d)||-Infinity===d)return"";c=Math.round(c)-1;var e=Math.max(c,0);a=K(b,a);return Infinity==d?a.substring(e):a.substring(e,c+Math.round(d))},2,3);M("substring-after",3,!1,!1,function(a,b,c){b=K(b,a);a=K(c,a);c=b.indexOf(a);return-1==c?"":b.substring(c+a.length)},2);
57
- M("substring-before",3,!1,!1,function(a,b,c){b=K(b,a);a=K(c,a);a=b.indexOf(a);return-1==a?"":b.substring(0,a)},2);M("sum",1,!1,!1,function(a,b){a=yb(b.a(a));b=0;for(var c=F(a);c;c=F(a))b+=+C(c);return b},1,1,!0);M("translate",3,!1,!1,function(a,b,c,d){b=K(b,a);c=K(c,a);var e=K(d,a);a={};for(d=0;d<c.length;d++){var f=c.charAt(d);f in a||(a[f]=e.charAt(d))}c="";for(d=0;d<b.length;d++)f=b.charAt(d),c+=f in a?a[f]:f;return c},3);M("true",2,!1,!1,function(){return!0},0);function E(a,b){this.h=a;this.c=void 0!==b?b:null;this.b=null;switch(a){case "comment":this.b=8;break;case "text":this.b=3;break;case "processing-instruction":this.b=7;break;case "node":break;default:throw Error("Unexpected argument");}}function Ob(a){return"comment"==a||"text"==a||"processing-instruction"==a||"node"==a}E.prototype.a=function(a){return null===this.b||this.b==a.nodeType};E.prototype.f=function(){return this.h};
58
- E.prototype.toString=function(){var a="Kind Test: "+this.h;null===this.c||(a+=I(this.c));return a};function Pb(a){H.call(this,3);this.c=a.substring(1,a.length-1)}l(Pb,H);Pb.prototype.a=function(){return this.c};Pb.prototype.toString=function(){return"Literal: "+this.c};function ob(a,b){this.l=a.toLowerCase();a="*"==this.l?"*":"http://www.w3.org/1999/xhtml";this.c=b?b.toLowerCase():a}ob.prototype.a=function(a){var b=a.nodeType;if(1!=b&&2!=b)return!1;b=void 0!==a.localName?a.localName:a.nodeName;return"*"!=this.l&&this.l!=b.toLowerCase()?!1:"*"==this.c?!0:this.c==(a.namespaceURI?a.namespaceURI.toLowerCase():"http://www.w3.org/1999/xhtml")};ob.prototype.f=function(){return this.l};
59
- ob.prototype.toString=function(){return"Name Test: "+("http://www.w3.org/1999/xhtml"==this.c?"":this.c+":")+this.l};function Qb(a){H.call(this,1);this.c=a}l(Qb,H);Qb.prototype.a=function(){return this.c};Qb.prototype.toString=function(){return"Number: "+this.c};function Rb(a,b){H.call(this,a.i);this.h=a;this.c=b;this.g=a.g;this.b=a.b;1==this.c.length&&(a=this.c[0],a.F||a.c!=Sb||(a=a.u,"*"!=a.f()&&(this.f={name:a.f(),A:null})))}l(Rb,H);function Tb(){H.call(this,4)}l(Tb,H);Tb.prototype.a=function(a){var b=new D;a=a.a;9==a.nodeType?b.add(a):b.add(a.ownerDocument);return b};Tb.prototype.toString=function(){return"Root Helper Expression"};function Ub(){H.call(this,4)}l(Ub,H);Ub.prototype.a=function(a){var b=new D;b.add(a.a);return b};Ub.prototype.toString=function(){return"Context Helper Expression"};
60
- function Vb(a){return"/"==a||"//"==a}Rb.prototype.a=function(a){var b=this.h.a(a);if(!(b instanceof D))throw Error("Filter expression must evaluate to nodeset.");a=this.c;for(var c=0,d=a.length;c<d&&b.m;c++){var e=a[c],f=yb(b,e.c.v);if(e.g||e.c!=Wb)if(e.g||e.c!=Xb){var g=F(f);for(b=e.a(new la(g));null!=(g=F(f));)g=e.a(new la(g)),b=ub(b,g)}else g=F(f),b=e.a(new la(g));else{for(g=F(f);(b=F(f))&&(!g.contains||g.contains(b))&&b.compareDocumentPosition(g)&8;g=b);b=e.a(new la(g))}}return b};
61
- Rb.prototype.toString=function(){var a="Path Expression:"+I(this.h);if(this.c.length){var b=qa(this.c,function(c,d){return c+I(d)},"Steps:");a+=I(b)}return a};function Yb(a,b){this.a=a;this.v=!!b}
62
- function Kb(a,b,c){for(c=c||0;c<a.a.length;c++)for(var d=a.a[c],e=yb(b),f=b.m,g,h=0;g=F(e);h++){var n=a.v?f-h:h+1;g=d.a(new la(g,n,f));if("number"==typeof g)n=n==g;else if("string"==typeof g||"boolean"==typeof g)n=!!g;else if(g instanceof D)n=0<g.m;else throw Error("Predicate.evaluate returned an unexpected type.");if(!n){n=e;g=n.f;var t=n.a;if(!t)throw Error("Next must be called at least once before remove.");var p=t.b;t=t.a;p?p.a=t:g.a=t;t?t.b=p:g.b=p;g.m--;n.a=null}}return b}
63
- Yb.prototype.toString=function(){return qa(this.a,function(a,b){return a+I(b)},"Predicates:")};function Zb(a,b,c,d){H.call(this,4);this.c=a;this.u=b;this.h=c||new Yb([]);this.F=!!d;b=this.h;b=0<b.a.length?b.a[0].f:null;a.aa&&b&&(a=b.name,a=y?a.toLowerCase():a,this.f={name:a,A:b.A});a:{a=this.h;for(b=0;b<a.a.length;b++)if(c=a.a[b],c.g||1==c.i||0==c.i){a=!0;break a}a=!1}this.g=a}l(Zb,H);
64
- Zb.prototype.a=function(a){var b=a.a,c=this.f,d=null,e=null,f=0;c&&(d=c.name,e=c.A?K(c.A,a):null,f=1);if(this.F)if(this.g||this.c!=$b)if(b=yb((new Zb(ac,new E("node"))).a(a)),c=F(b))for(a=this.s(c,d,e,f);null!=(c=F(b));)a=ub(a,this.s(c,d,e,f));else a=new D;else a=lb(this.u,b,d,e),a=Kb(this.h,a,f);else a=this.s(a.a,d,e,f);return a};Zb.prototype.s=function(a,b,c,d){a=this.c.C(this.u,a,b,c);return a=Kb(this.h,a,d)};
65
- Zb.prototype.toString=function(){var a="Step:"+I("Operator: "+(this.F?"//":"/"));this.c.l&&(a+=I("Axis: "+this.c));a+=I(this.u);if(this.h.a.length){var b=qa(this.h.a,function(c,d){return c+I(d)},"Predicates:");a+=I(b)}return a};function bc(a,b,c,d){this.l=a;this.C=b;this.v=c;this.aa=d}bc.prototype.toString=function(){return this.l};var cc={};function N(a,b,c,d){if(cc.hasOwnProperty(a))throw Error("Axis already created: "+a);b=new bc(a,b,c,!!d);return cc[a]=b}
66
- N("ancestor",function(a,b){for(var c=new D;b=b.parentNode;)a.a(b)&&vb(c,b);return c},!0);N("ancestor-or-self",function(a,b){var c=new D;do a.a(b)&&vb(c,b);while(b=b.parentNode);return c},!0);
67
- var Sb=N("attribute",function(a,b){var c=new D,d=a.f();if("style"==d&&y&&b.style)return c.add(new Ta(b.style,b,"style",b.style.cssText)),c;var e=b.attributes;if(e)if(a instanceof E&&null===a.b||"*"==d)for(a=0;d=e[a];a++)y?d.nodeValue&&c.add(Ua(b,d)):c.add(d);else(d=e.getNamedItem(d))&&(y?d.nodeValue&&c.add(Ua(b,d)):c.add(d));return c},!1),$b=N("child",function(a,b,c,d,e){return(y?rb:sb).call(null,a,b,aa(c)?c:null,aa(d)?d:null,e||new D)},!1,!0);N("descendant",lb,!1,!0);
68
- var ac=N("descendant-or-self",function(a,b,c,d){var e=new D;kb(b,c,d)&&a.a(b)&&e.add(b);return lb(a,b,c,d,e)},!1,!0),Wb=N("following",function(a,b,c,d){var e=new D;do for(var f=b;f=f.nextSibling;)kb(f,c,d)&&a.a(f)&&e.add(f),e=lb(a,f,c,d,e);while(b=b.parentNode);return e},!1,!0);N("following-sibling",function(a,b){for(var c=new D;b=b.nextSibling;)a.a(b)&&c.add(b);return c},!1);N("namespace",function(){return new D},!1);
69
- var dc=N("parent",function(a,b){var c=new D;if(9==b.nodeType)return c;if(2==b.nodeType)return c.add(b.ownerElement),c;b=b.parentNode;a.a(b)&&c.add(b);return c},!1),Xb=N("preceding",function(a,b,c,d){var e=new D,f=[];do f.unshift(b);while(b=b.parentNode);for(var g=1,h=f.length;g<h;g++){var n=[];for(b=f[g];b=b.previousSibling;)n.unshift(b);for(var t=0,p=n.length;t<p;t++)b=n[t],kb(b,c,d)&&a.a(b)&&e.add(b),e=lb(a,b,c,d,e)}return e},!0,!0);
70
- N("preceding-sibling",function(a,b){for(var c=new D;b=b.previousSibling;)a.a(b)&&vb(c,b);return c},!0);var ec=N("self",function(a,b){var c=new D;a.a(b)&&c.add(b);return c},!1);function fc(a){H.call(this,1);this.c=a;this.g=a.g;this.b=a.b}l(fc,H);fc.prototype.a=function(a){return-J(this.c,a)};fc.prototype.toString=function(){return"Unary Expression: -"+I(this.c)};function gc(a){H.call(this,4);this.c=a;Ab(this,ra(this.c,function(b){return b.g}));Bb(this,ra(this.c,function(b){return b.b}))}l(gc,H);gc.prototype.a=function(a){var b=new D;q(this.c,function(c){c=c.a(a);if(!(c instanceof D))throw Error("Path expression must evaluate to NodeSet.");b=ub(b,c)});return b};gc.prototype.toString=function(){return qa(this.c,function(a,b){return a+I(b)},"Union Expression:")};function hc(a,b){this.a=a;this.b=b}function ic(a){for(var b,c=[];;){O(a,"Missing right hand side of binary expression.");b=jc(a);var d=A(a.a);if(!d)break;var e=(d=Ib[d]||null)&&d.M;if(!e){a.a.a--;break}for(;c.length&&e<=c[c.length-1].M;)b=new Db(c.pop(),c.pop(),b);c.push(b,d)}for(;c.length;)b=new Db(c.pop(),c.pop(),b);return b}function O(a,b){if(Za(a.a))throw Error(b);}function kc(a,b){a=A(a.a);if(a!=b)throw Error("Bad token, expected: "+b+" got: "+a);}
71
- function lc(a){a=A(a.a);if(")"!=a)throw Error("Bad token: "+a);}function mc(a){a=A(a.a);if(2>a.length)throw Error("Unclosed literal string");return new Pb(a)}
72
- function nc(a){var b=[];if(Vb(z(a.a))){var c=A(a.a);var d=z(a.a);if("/"==c&&(Za(a.a)||"."!=d&&".."!=d&&"@"!=d&&"*"!=d&&!/(?![0-9])[\w]/.test(d)))return new Tb;d=new Tb;O(a,"Missing next location step.");c=oc(a,c);b.push(c)}else{a:{c=z(a.a);d=c.charAt(0);switch(d){case "$":throw Error("Variable reference not allowed in HTML XPath");case "(":A(a.a);c=ic(a);O(a,'unclosed "("');kc(a,")");break;case '"':case "'":c=mc(a);break;default:if(isNaN(+c))if(!Ob(c)&&/(?![0-9])[\w]/.test(d)&&"("==z(a.a,1)){c=A(a.a);
73
- c=Nb[c]||null;A(a.a);for(d=[];")"!=z(a.a);){O(a,"Missing function argument list.");d.push(ic(a));if(","!=z(a.a))break;A(a.a)}O(a,"Unclosed function argument list.");lc(a);c=new Lb(c,d)}else{c=null;break a}else c=new Qb(+A(a.a))}"["==z(a.a)&&(d=new Yb(pc(a)),c=new Jb(c,d))}if(c)if(Vb(z(a.a)))d=c;else return c;else c=oc(a,"/"),d=new Ub,b.push(c)}for(;Vb(z(a.a));)c=A(a.a),O(a,"Missing next location step."),c=oc(a,c),b.push(c);return new Rb(d,b)}
74
- function oc(a,b){if("/"!=b&&"//"!=b)throw Error('Step op should be "/" or "//"');if("."==z(a.a)){var c=new Zb(ec,new E("node"));A(a.a);return c}if(".."==z(a.a))return c=new Zb(dc,new E("node")),A(a.a),c;if("@"==z(a.a)){var d=Sb;A(a.a);O(a,"Missing attribute name")}else if("::"==z(a.a,1)){if(!/(?![0-9])[\w]/.test(z(a.a).charAt(0)))throw Error("Bad token: "+A(a.a));var e=A(a.a);d=cc[e]||null;if(!d)throw Error("No axis with name: "+e);A(a.a);O(a,"Missing node name")}else d=$b;e=z(a.a);if(/(?![0-9])[\w\*]/.test(e.charAt(0)))if("("==
75
- z(a.a,1)){if(!Ob(e))throw Error("Invalid node type: "+e);e=A(a.a);if(!Ob(e))throw Error("Invalid type name: "+e);kc(a,"(");O(a,"Bad nodetype");var f=z(a.a).charAt(0),g=null;if('"'==f||"'"==f)g=mc(a);O(a,"Bad nodetype");lc(a);e=new E(e,g)}else if(e=A(a.a),f=e.indexOf(":"),-1==f)e=new ob(e);else{g=e.substring(0,f);if("*"==g)var h="*";else if(h=a.b(g),!h)throw Error("Namespace prefix not declared: "+g);e=e.substr(f+1);e=new ob(e,h)}else throw Error("Bad token: "+A(a.a));a=new Yb(pc(a),d.v);return c||
76
- new Zb(d,e,a,"//"==b)}function pc(a){for(var b=[];"["==z(a.a);){A(a.a);O(a,"Missing predicate expression.");var c=ic(a);b.push(c);O(a,"Unclosed predicate expression.");kc(a,"]")}return b}function jc(a){if("-"==z(a.a))return A(a.a),new fc(jc(a));var b=nc(a);if("|"!=z(a.a))a=b;else{for(b=[b];"|"==A(a.a);)O(a,"Missing next union location path."),b.push(nc(a));a.a.a--;a=new gc(b)}return a};function qc(a){switch(a.nodeType){case 1:return ka(rc,a);case 9:return qc(a.documentElement);case 11:case 10:case 6:case 12:return sc;default:return a.parentNode?qc(a.parentNode):sc}}function sc(){return null}function rc(a,b){if(a.prefix==b)return a.namespaceURI||"http://www.w3.org/1999/xhtml";var c=a.getAttributeNode("xmlns:"+b);return c&&c.specified?c.value||null:a.parentNode&&9!=a.parentNode.nodeType?rc(a.parentNode,b):null};function vc(a,b){if(!a.length)throw Error("Empty XPath expression.");a=Wa(a);if(Za(a))throw Error("Invalid XPath expression.");b?da(b)||(b=ja(b.lookupNamespaceURI,b)):b=function(){return null};var c=ic(new hc(a,b));if(!Za(a))throw Error("Bad token: "+A(a));this.evaluate=function(d,e){d=c.a(new la(d));return new P(d,e)}}
77
- function P(a,b){if(0==b)if(a instanceof D)b=4;else if("string"==typeof a)b=2;else if("number"==typeof a)b=1;else if("boolean"==typeof a)b=3;else throw Error("Unexpected evaluation result.");if(2!=b&&1!=b&&3!=b&&!(a instanceof D))throw Error("value could not be converted to the specified type");this.resultType=b;switch(b){case 2:this.stringValue=a instanceof D?xb(a):""+a;break;case 1:this.numberValue=a instanceof D?+xb(a):+a;break;case 3:this.booleanValue=a instanceof D?0<a.m:!!a;break;case 4:case 5:case 6:case 7:var c=
78
- yb(a);var d=[];for(var e=F(c);e;e=F(c))d.push(e instanceof Ta?e.a:e);this.snapshotLength=a.m;this.invalidIteratorState=!1;break;case 8:case 9:a=wb(a);this.singleNodeValue=a instanceof Ta?a.a:a;break;default:throw Error("Unknown XPathResult type.");}var f=0;this.iterateNext=function(){if(4!=b&&5!=b)throw Error("iterateNext called with wrong result type");return f>=d.length?null:d[f++]};this.snapshotItem=function(g){if(6!=b&&7!=b)throw Error("snapshotItem called with wrong result type");return g>=d.length||
79
- 0>g?null:d[g]}}P.ANY_TYPE=0;P.NUMBER_TYPE=1;P.STRING_TYPE=2;P.BOOLEAN_TYPE=3;P.UNORDERED_NODE_ITERATOR_TYPE=4;P.ORDERED_NODE_ITERATOR_TYPE=5;P.UNORDERED_NODE_SNAPSHOT_TYPE=6;P.ORDERED_NODE_SNAPSHOT_TYPE=7;P.ANY_UNORDERED_NODE_TYPE=8;P.FIRST_ORDERED_NODE_TYPE=9;function wc(a){this.lookupNamespaceURI=qc(a)}
80
- function xc(a,b){a=a||k;var c=a.Document&&a.Document.prototype||a.document;if(!c.evaluate||b)a.XPathResult=P,c.evaluate=function(d,e,f,g){return(new vc(d,f)).evaluate(e,g)},c.createExpression=function(d,e){return new vc(d,e)},c.createNSResolver=function(d){return new wc(d)}}ba("wgxpath.install",xc);ba("wgxpath.install",xc);var yc=window;function Q(a,b){this.code=a;this.a=S[a]||zc;this.message=b||"";a=this.a.replace(/((?:^|\s+)[a-z])/g,function(c){return c.toUpperCase().replace(/^[\s\xa0]+/g,"")});b=a.length-5;if(0>b||a.indexOf("Error",b)!=b)a+="Error";this.name=a;a=Error(this.message);a.name=this.name;this.stack=a.stack||""}l(Q,Error);var zc="unknown error",S={15:"element not selectable",11:"element not visible"};S[31]=zc;S[30]=zc;S[24]="invalid cookie domain";S[29]="invalid element coordinates";S[12]="invalid element state";
81
- S[32]="invalid selector";S[51]="invalid selector";S[52]="invalid selector";S[17]="javascript error";S[405]="unsupported operation";S[34]="move target out of bounds";S[27]="no such alert";S[7]="no such element";S[8]="no such frame";S[23]="no such window";S[28]="script timeout";S[33]="session not created";S[10]="stale element reference";S[21]="timeout";S[25]="unable to set cookie";S[26]="unexpected alert open";S[13]=zc;S[9]="unknown command";var Ac={B:function(a){return!(!a.querySelectorAll||!a.querySelector)},o:function(a,b){if(!a)throw new Q(32,"No class name specified");a=xa(a);if(-1!==a.indexOf(" "))throw new Q(32,"Compound class names not permitted");if(Ac.B(b))try{return b.querySelector("."+a.replace(/\./g,"\\."))||null}catch(c){throw new Q(32,"An invalid or illegal class name was specified");}a=jb(bb(b),"*",a,b);return a.length?a[0]:null},j:function(a,b){if(!a)throw new Q(32,"No class name specified");a=xa(a);if(-1!==a.indexOf(" "))throw new Q(32,
82
- "Compound class names not permitted");if(Ac.B(b))try{return b.querySelectorAll("."+a.replace(/\./g,"\\."))}catch(c){throw new Q(32,"An invalid or illegal class name was specified");}return jb(bb(b),"*",a,b)}};var Bc=Ca(),Cc=Fa()||v("iPod"),Dc=v("iPad"),Ec=v("Android")&&!(Da()||Ca()||v("Opera")||v("Silk")),Fc=Da(),Gc=v("Safari")&&!(Da()||v("Coast")||v("Opera")||v("Edge")||v("Edg/")||v("OPR")||Ca()||v("Silk")||v("Android"))&&!(Fa()||v("iPad")||v("iPod"));function Hc(a){return(a=a.exec(r))?a[1]:""}(function(){if(Bc)return Hc(/Firefox\/([0-9.]+)/);if(w||Ja||Ia)return Na;if(Fc)return Fa()||v("iPad")||v("iPod")?Hc(/CriOS\/([0-9.]+)/):Hc(/Chrome\/([0-9.]+)/);if(Gc&&!(Fa()||v("iPad")||v("iPod")))return Hc(/Version\/([0-9.]+)/);if(Cc||Dc){var a=/Version\/(\S+).*Mobile\/(\S+)/.exec(r);if(a)return a[1]+"."+a[2]}else if(Ec)return(a=Hc(/Android\s+([0-9.]+)/))?a:Hc(/Version\/([0-9.]+)/);return""})();var Ic,Jc,Kc=function(){if(!Ka)return!1;var a=k.Components;if(!a)return!1;try{if(!a.classes)return!1}catch(f){return!1}var b=a.classes;a=a.interfaces;var c=b["@mozilla.org/xpcom/version-comparator;1"].getService(a.nsIVersionComparator);b=b["@mozilla.org/xre/app-info;1"].getService(a.nsIXULAppInfo);var d=b.platformVersion,e=b.version;Ic=function(){return 0<=c.compare(d,"8")};Jc=function(f){c.compare(e,""+f)};return!0}(),Lc=w&&!(8<=Number(x)),Mc=w&&!(9<=Number(x));Ec&&Kc&&Jc(2.3);Ec&&Kc&&Jc(4);
83
- Gc&&Kc&&Jc(6);var Nc={o:function(a,b){if(!da(b.querySelector)&&w&&(Kc?Ic():w?0<=ya(x,8):Ra(8))&&!ea(b.querySelector))throw Error("CSS selection is not supported");if(!a)throw new Q(32,"No selector specified");a=xa(a);try{var c=b.querySelector(a)}catch(d){throw new Q(32,"An invalid or illegal selector was specified");}return c&&1==c.nodeType?c:null},j:function(a,b){if(!da(b.querySelectorAll)&&w&&(Kc?Ic():w?0<=ya(x,8):Ra(8))&&!ea(b.querySelector))throw Error("CSS selection is not supported");if(!a)throw new Q(32,
84
- "No selector specified");a=xa(a);try{return b.querySelectorAll(a)}catch(c){throw new Q(32,"An invalid or illegal selector was specified");}}};var Oc={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",
33
+ function ta(a,b){a:{for(var c=a.length,d="string"===typeof a?a.split(""):a,e=0;e<c;e++)if(e in d&&b.call(void 0,d[e],e,a)){b=e;break a}b=-1}return 0>b?null:"string"===typeof a?a.charAt(b):a[b]}function ua(a){return Array.prototype.concat.apply([],arguments)}function va(a,b,c){return 2>=arguments.length?Array.prototype.slice.call(a,b):Array.prototype.slice.call(a,b,c)}function wa(a,b){a.sort(b||xa)}function xa(a,b){return a>b?1:a<b?-1:0};function ya(a){var b=a.length-1;return 0<=b&&a.indexOf(" ",b)==b}var za=String.prototype.trim?function(a){return a.trim()}:function(a){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(a)[1]};
34
+ function Aa(a,b){var c=0;a=za(String(a)).split(".");b=za(String(b)).split(".");for(var d=Math.max(a.length,b.length),e=0;0==c&&e<d;e++){var f=a[e]||"",g=b[e]||"";do{f=/(\d*)(\D*)(.*)/.exec(f)||["","","",""];g=/(\d*)(\D*)(.*)/.exec(g)||["","","",""];if(0==f[0].length&&0==g[0].length)break;c=Ba(0==f[1].length?0:parseInt(f[1],10),0==g[1].length?0:parseInt(g[1],10))||Ba(0==f[2].length,0==g[2].length)||Ba(f[2],g[2]);f=f[3];g=g[3]}while(0==c)}return c}function Ba(a,b){return a<b?-1:a>b?1:0};var Ca;a:{var Da=k.navigator;if(Da){var Ea=Da.userAgent;if(Ea){Ca=Ea;break a}}Ca=""}function r(a){return-1!=Ca.indexOf(a)};function Fa(){return r("Firefox")||r("FxiOS")}function Ga(){return(r("Chrome")||r("CriOS"))&&!r("Edge")};function Ha(a){return String(a).replace(/\-([a-z])/g,function(b,c){return c.toUpperCase()})};function Ia(){return r("iPhone")&&!r("iPod")&&!r("iPad")};function Ja(a,b){var c=Ka;return Object.prototype.hasOwnProperty.call(c,a)?c[a]:c[a]=b(a)};var La=r("Opera"),t=r("Trident")||r("MSIE"),Ma=r("Edge"),Na=r("Gecko")&&!(-1!=Ca.toLowerCase().indexOf("webkit")&&!r("Edge"))&&!(r("Trident")||r("MSIE"))&&!r("Edge"),Oa=-1!=Ca.toLowerCase().indexOf("webkit")&&!r("Edge");function Pa(){var a=k.document;return a?a.documentMode:void 0}var Qa;
35
+ a:{var Ra="",Sa=function(){var a=Ca;if(Na)return/rv:([^\);]+)(\)|;)/.exec(a);if(Ma)return/Edge\/([\d\.]+)/.exec(a);if(t)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(Oa)return/WebKit\/(\S+)/.exec(a);if(La)return/(?:Version)[ \/]?(\S+)/.exec(a)}();Sa&&(Ra=Sa?Sa[1]:"");if(t){var Ta=Pa();if(null!=Ta&&Ta>parseFloat(Ra)){Qa=String(Ta);break a}}Qa=Ra}var Ka={};function Ua(a){return Ja(a,function(){return 0<=Aa(Qa,a)})}var w;w=k.document&&t?Pa():void 0;var x=t&&!(9<=Number(w)),Va=t&&!(8<=Number(w));function Wa(a,b,c,d){this.a=a;this.nodeName=c;this.nodeValue=d;this.nodeType=2;this.parentNode=this.ownerElement=b}function Xa(a,b){var c=Va&&"href"==b.nodeName?a.getAttribute(b.nodeName,2):b.nodeValue;return new Wa(b,a,b.nodeName,c)};function Ya(a){this.b=a;this.a=0}function Za(a){a=a.match($a);for(var b=0;b<a.length;b++)ab.test(a[b])&&a.splice(b,1);return new Ya(a)}var $a=/\$?(?:(?![0-9-\.])(?:\*|[\w-\.]+):)?(?![0-9-\.])(?:\*|[\w-\.]+)|\/\/|\.\.|::|\d+(?:\.\d*)?|\.\d+|"[^"]*"|'[^']*'|[!<>]=|\s+|./g,ab=/^\s/;function y(a,b){return a.b[a.a+(b||0)]}function z(a){return a.b[a.a++]}function bb(a){return a.b.length<=a.a};function cb(a,b){this.x=void 0!==a?a:0;this.y=void 0!==b?b:0}cb.prototype.ceil=function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);return this};cb.prototype.floor=function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);return this};cb.prototype.round=function(){this.x=Math.round(this.x);this.y=Math.round(this.y);return this};function db(a,b){this.width=a;this.height=b}db.prototype.aspectRatio=function(){return this.width/this.height};db.prototype.ceil=function(){this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this};db.prototype.floor=function(){this.width=Math.floor(this.width);this.height=Math.floor(this.height);return this};db.prototype.round=function(){this.width=Math.round(this.width);this.height=Math.round(this.height);return this};function eb(a){return a?new fb(A(a)):ma||(ma=new fb)}function gb(a){for(;a&&1!=a.nodeType;)a=a.previousSibling;return a}function hb(a,b){if(!a||!b)return!1;if(a.contains&&1==b.nodeType)return a==b||a.contains(b);if("undefined"!=typeof a.compareDocumentPosition)return a==b||!!(a.compareDocumentPosition(b)&16);for(;b&&a!=b;)b=b.parentNode;return b==a}
36
+ function ib(a,b){if(a==b)return 0;if(a.compareDocumentPosition)return a.compareDocumentPosition(b)&2?1:-1;if(t&&!(9<=Number(w))){if(9==a.nodeType)return-1;if(9==b.nodeType)return 1}if("sourceIndex"in a||a.parentNode&&"sourceIndex"in a.parentNode){var c=1==a.nodeType,d=1==b.nodeType;if(c&&d)return a.sourceIndex-b.sourceIndex;var e=a.parentNode,f=b.parentNode;return e==f?jb(a,b):!c&&hb(e,b)?-1*kb(a,b):!d&&hb(f,a)?kb(b,a):(c?a.sourceIndex:e.sourceIndex)-(d?b.sourceIndex:f.sourceIndex)}d=A(a);c=d.createRange();
37
+ c.selectNode(a);c.collapse(!0);a=d.createRange();a.selectNode(b);a.collapse(!0);return c.compareBoundaryPoints(k.Range.START_TO_END,a)}function kb(a,b){var c=a.parentNode;if(c==b)return-1;for(;b.parentNode!=c;)b=b.parentNode;return jb(b,a)}function jb(a,b){for(;b=b.previousSibling;)if(b==a)return-1;return 1}function A(a){return 9==a.nodeType?a:a.ownerDocument||a.document}function lb(a,b){a&&(a=a.parentNode);for(var c=0;a;){if(b(a))return a;a=a.parentNode;c++}return null}
38
+ function fb(a){this.a=a||k.document||document}fb.prototype.getElementsByTagName=function(a,b){return(b||this.a).getElementsByTagName(String(a))};
39
+ function mb(a,b,c,d){a=d||a.a;var e=b&&"*"!=b?String(b).toUpperCase():"";if(a.querySelectorAll&&a.querySelector&&(e||c))c=a.querySelectorAll(e+(c?"."+c:""));else if(c&&a.getElementsByClassName)if(b=a.getElementsByClassName(c),e){a={};for(var f=d=0,g;g=b[f];f++)e==g.nodeName&&(a[d++]=g);a.length=d;c=a}else c=b;else if(b=a.getElementsByTagName(e||"*"),c){a={};for(f=d=0;g=b[f];f++){e=g.className;var h;if(h="function"==typeof e.split)h=0<=na(e.split(/\s+/),c);h&&(a[d++]=g)}a.length=d;c=a}else c=b;return c}
40
+ ;function B(a){var b=null,c=a.nodeType;1==c&&(b=a.textContent,b=void 0==b||null==b?a.innerText:b,b=void 0==b||null==b?"":b);if("string"!=typeof b)if(x&&"title"==a.nodeName.toLowerCase()&&1==c)b=a.text;else if(9==c||1==c){a=9==c?a.documentElement:a.firstChild;c=0;var d=[];for(b="";a;){do 1!=a.nodeType&&(b+=a.nodeValue),x&&"title"==a.nodeName.toLowerCase()&&(b+=a.text),d[c++]=a;while(a=a.firstChild);for(;c&&!(a=d[--c].nextSibling););}}else b=a.nodeValue;return b}
41
+ function nb(a,b,c){if(null===b)return!0;try{if(!a.getAttribute)return!1}catch(d){return!1}Va&&"class"==b&&(b="className");return null==c?!!a.getAttribute(b):a.getAttribute(b,2)==c}function ob(a,b,c,d,e){return(x?pb:qb).call(null,a,b,aa(c)?c:null,aa(d)?d:null,e||new C)}
42
+ function pb(a,b,c,d,e){if(a instanceof rb||8==a.b||c&&null===a.b){var f=b.all;if(!f)return e;a=sb(a);if("*"!=a&&(f=b.getElementsByTagName(a),!f))return e;if(c){for(var g=[],h=0;b=f[h++];)nb(b,c,d)&&g.push(b);f=g}for(h=0;b=f[h++];)"*"==a&&"!"==b.tagName||e.add(b);return e}tb(a,b,c,d,e);return e}
43
+ function qb(a,b,c,d,e){b.getElementsByName&&d&&"name"==c&&!t?(b=b.getElementsByName(d),q(b,function(f){a.a(f)&&e.add(f)})):b.getElementsByClassName&&d&&"class"==c?(b=b.getElementsByClassName(d),q(b,function(f){f.className==d&&a.a(f)&&e.add(f)})):a instanceof D?tb(a,b,c,d,e):b.getElementsByTagName&&(b=b.getElementsByTagName(a.f()),q(b,function(f){nb(f,c,d)&&e.add(f)}));return e}
44
+ function ub(a,b,c,d,e){var f;if((a instanceof rb||8==a.b||c&&null===a.b)&&(f=b.childNodes)){var g=sb(a);if("*"!=g&&(f=oa(f,function(h){return h.tagName&&h.tagName.toLowerCase()==g}),!f))return e;c&&(f=oa(f,function(h){return nb(h,c,d)}));q(f,function(h){"*"==g&&("!"==h.tagName||"*"==g&&1!=h.nodeType)||e.add(h)});return e}return vb(a,b,c,d,e)}function vb(a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)nb(b,c,d)&&a.a(b)&&e.add(b);return e}
45
+ function tb(a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)nb(b,c,d)&&a.a(b)&&e.add(b),tb(a,b,c,d,e)}function sb(a){if(a instanceof D){if(8==a.b)return"!";if(null===a.b)return"*"}return a.f()};function C(){this.b=this.a=null;this.m=0}function wb(a){this.f=a;this.a=this.b=null}function xb(a,b){if(!a.a)return b;if(!b.a)return a;var c=a.a;b=b.a;for(var d=null,e,f=0;c&&b;){e=c.f;var g=b.f;e==g||e instanceof Wa&&g instanceof Wa&&e.a==g.a?(e=c,c=c.a,b=b.a):0<ib(c.f,b.f)?(e=b,b=b.a):(e=c,c=c.a);(e.b=d)?d.a=e:a.a=e;d=e;f++}for(e=c||b;e;)e.b=d,d=d.a=e,f++,e=e.a;a.b=d;a.m=f;return a}function yb(a,b){b=new wb(b);b.a=a.a;a.b?a.a.b=b:a.a=a.b=b;a.a=b;a.m++}
46
+ C.prototype.add=function(a){a=new wb(a);a.b=this.b;this.a?this.b.a=a:this.a=this.b=a;this.b=a;this.m++};function zb(a){return(a=a.a)?a.f:null}function Ab(a){return(a=zb(a))?B(a):""}function Bb(a,b){return new Cb(a,!!b)}function Cb(a,b){this.f=a;this.b=(this.A=b)?a.b:a.a;this.a=null}function E(a){var b=a.b;if(null==b)return null;var c=a.a=b;a.b=a.A?b.b:b.a;return c.f};function F(a){this.i=a;this.b=this.g=!1;this.f=null}function H(a){return"\n "+a.toString().split("\n").join("\n ")}function Db(a,b){a.g=b}function Eb(a,b){a.b=b}function I(a,b){a=a.a(b);return a instanceof C?+Ab(a):+a}function J(a,b){a=a.a(b);return a instanceof C?Ab(a):""+a}function Gb(a,b){a=a.a(b);return a instanceof C?!!a.m:!!a};function Hb(a,b,c){F.call(this,a.i);this.c=a;this.h=b;this.v=c;this.g=b.g||c.g;this.b=b.b||c.b;this.c==Ib&&(c.b||c.g||4==c.i||0==c.i||!b.f?b.b||b.g||4==b.i||0==b.i||!c.f||(this.f={name:c.f.name,B:b}):this.f={name:b.f.name,B:c})}l(Hb,F);
47
+ function Jb(a,b,c,d,e){b=b.a(d);c=c.a(d);var f;if(b instanceof C&&c instanceof C){b=Bb(b);for(d=E(b);d;d=E(b))for(e=Bb(c),f=E(e);f;f=E(e))if(a(B(d),B(f)))return!0;return!1}if(b instanceof C||c instanceof C){b instanceof C?(e=b,d=c):(e=c,d=b);f=Bb(e);for(var g=typeof d,h=E(f);h;h=E(f)){switch(g){case "number":h=+B(h);break;case "boolean":h=!!B(h);break;case "string":h=B(h);break;default:throw Error("Illegal primitive type for comparison.");}if(e==b&&a(h,d)||e==c&&a(d,h))return!0}return!1}return e?
48
+ "boolean"==typeof b||"boolean"==typeof c?a(!!b,!!c):"number"==typeof b||"number"==typeof c?a(+b,+c):a(b,c):a(+b,+c)}Hb.prototype.a=function(a){return this.c.s(this.h,this.v,a)};Hb.prototype.toString=function(){var a="Binary Expression: "+this.c;a+=H(this.h);return a+=H(this.v)};function Kb(a,b,c,d){this.$=a;this.M=b;this.i=c;this.s=d}Kb.prototype.toString=function(){return this.$};var Lb={};
49
+ function K(a,b,c,d){if(Lb.hasOwnProperty(a))throw Error("Binary operator already created: "+a);a=new Kb(a,b,c,d);return Lb[a.toString()]=a}K("div",6,1,function(a,b,c){return I(a,c)/I(b,c)});K("mod",6,1,function(a,b,c){return I(a,c)%I(b,c)});K("*",6,1,function(a,b,c){return I(a,c)*I(b,c)});K("+",5,1,function(a,b,c){return I(a,c)+I(b,c)});K("-",5,1,function(a,b,c){return I(a,c)-I(b,c)});K("<",4,2,function(a,b,c){return Jb(function(d,e){return d<e},a,b,c)});
50
+ K(">",4,2,function(a,b,c){return Jb(function(d,e){return d>e},a,b,c)});K("<=",4,2,function(a,b,c){return Jb(function(d,e){return d<=e},a,b,c)});K(">=",4,2,function(a,b,c){return Jb(function(d,e){return d>=e},a,b,c)});var Ib=K("=",3,2,function(a,b,c){return Jb(function(d,e){return d==e},a,b,c,!0)});K("!=",3,2,function(a,b,c){return Jb(function(d,e){return d!=e},a,b,c,!0)});K("and",2,2,function(a,b,c){return Gb(a,c)&&Gb(b,c)});K("or",1,2,function(a,b,c){return Gb(a,c)||Gb(b,c)});function Mb(a,b){if(b.a.length&&4!=a.i)throw Error("Primary expression must evaluate to nodeset if filter has predicate(s).");F.call(this,a.i);this.c=a;this.h=b;this.g=a.g;this.b=a.b}l(Mb,F);Mb.prototype.a=function(a){a=this.c.a(a);return Nb(this.h,a)};Mb.prototype.toString=function(){var a="Filter:"+H(this.c);return a+=H(this.h)};function Ob(a,b){if(b.length<a.L)throw Error("Function "+a.l+" expects at least"+a.L+" arguments, "+b.length+" given");if(null!==a.H&&b.length>a.H)throw Error("Function "+a.l+" expects at most "+a.H+" arguments, "+b.length+" given");a.Z&&q(b,function(c,d){if(4!=c.i)throw Error("Argument "+d+" to function "+a.l+" is not of type Nodeset: "+c);});F.call(this,a.i);this.D=a;this.c=b;Db(this,a.g||ra(b,function(c){return c.g}));Eb(this,a.Y&&!b.length||a.X&&!!b.length||ra(b,function(c){return c.b}))}
51
+ l(Ob,F);Ob.prototype.a=function(a){return this.D.s.apply(null,ua(a,this.c))};Ob.prototype.toString=function(){var a="Function: "+this.D;if(this.c.length){var b=qa(this.c,function(c,d){return c+H(d)},"Arguments:");a+=H(b)}return a};function Pb(a,b,c,d,e,f,g,h){this.l=a;this.i=b;this.g=c;this.Y=d;this.X=!1;this.s=e;this.L=f;this.H=void 0!==g?g:f;this.Z=!!h}Pb.prototype.toString=function(){return this.l};var Qb={};
52
+ function L(a,b,c,d,e,f,g,h){if(Qb.hasOwnProperty(a))throw Error("Function already created: "+a+".");Qb[a]=new Pb(a,b,c,d,e,f,g,h)}L("boolean",2,!1,!1,function(a,b){return Gb(b,a)},1);L("ceiling",1,!1,!1,function(a,b){return Math.ceil(I(b,a))},1);L("concat",3,!1,!1,function(a,b){return qa(va(arguments,1),function(c,d){return c+J(d,a)},"")},2,null);L("contains",2,!1,!1,function(a,b,c){b=J(b,a);a=J(c,a);return a=-1!=b.indexOf(a)},2);L("count",1,!1,!1,function(a,b){return b.a(a).m},1,1,!0);
53
+ L("false",2,!1,!1,function(){return!1},0);L("floor",1,!1,!1,function(a,b){return Math.floor(I(b,a))},1);L("id",4,!1,!1,function(a,b){function c(h){if(x){var n=e.all[h];if(n){if(n.nodeType&&h==n.id)return n;if(n.length)return ta(n,function(u){return h==u.id})}return null}return e.getElementById(h)}var d=a.a,e=9==d.nodeType?d:d.ownerDocument;a=J(b,a).split(/\s+/);var f=[];q(a,function(h){h=c(h);!h||0<=na(f,h)||f.push(h)});f.sort(ib);var g=new C;q(f,function(h){g.add(h)});return g},1);
54
+ L("lang",2,!1,!1,function(){return!1},1);L("last",1,!0,!1,function(a){if(1!=arguments.length)throw Error("Function last expects ()");return a.f},0);L("local-name",3,!1,!0,function(a,b){return(a=b?zb(b.a(a)):a.a)?a.localName||a.nodeName.toLowerCase():""},0,1,!0);L("name",3,!1,!0,function(a,b){return(a=b?zb(b.a(a)):a.a)?a.nodeName.toLowerCase():""},0,1,!0);L("namespace-uri",3,!0,!1,function(){return""},0,1,!0);
55
+ L("normalize-space",3,!1,!0,function(a,b){return(b?J(b,a):B(a.a)).replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")},0,1);L("not",2,!1,!1,function(a,b){return!Gb(b,a)},1);L("number",1,!1,!0,function(a,b){return b?I(b,a):+B(a.a)},0,1);L("position",1,!0,!1,function(a){return a.b},0);L("round",1,!1,!1,function(a,b){return Math.round(I(b,a))},1);L("starts-with",2,!1,!1,function(a,b,c){b=J(b,a);a=J(c,a);return 0==b.lastIndexOf(a,0)},2);L("string",3,!1,!0,function(a,b){return b?J(b,a):B(a.a)},0,1);
56
+ L("string-length",1,!1,!0,function(a,b){return(b?J(b,a):B(a.a)).length},0,1);L("substring",3,!1,!1,function(a,b,c,d){c=I(c,a);if(isNaN(c)||Infinity==c||-Infinity==c)return"";d=d?I(d,a):Infinity;if(isNaN(d)||-Infinity===d)return"";c=Math.round(c)-1;var e=Math.max(c,0);a=J(b,a);return Infinity==d?a.substring(e):a.substring(e,c+Math.round(d))},2,3);L("substring-after",3,!1,!1,function(a,b,c){b=J(b,a);a=J(c,a);c=b.indexOf(a);return-1==c?"":b.substring(c+a.length)},2);
57
+ L("substring-before",3,!1,!1,function(a,b,c){b=J(b,a);a=J(c,a);a=b.indexOf(a);return-1==a?"":b.substring(0,a)},2);L("sum",1,!1,!1,function(a,b){a=Bb(b.a(a));b=0;for(var c=E(a);c;c=E(a))b+=+B(c);return b},1,1,!0);L("translate",3,!1,!1,function(a,b,c,d){b=J(b,a);c=J(c,a);var e=J(d,a);a={};for(d=0;d<c.length;d++){var f=c.charAt(d);f in a||(a[f]=e.charAt(d))}c="";for(d=0;d<b.length;d++)f=b.charAt(d),c+=f in a?a[f]:f;return c},3);L("true",2,!1,!1,function(){return!0},0);function D(a,b){this.h=a;this.c=void 0!==b?b:null;this.b=null;switch(a){case "comment":this.b=8;break;case "text":this.b=3;break;case "processing-instruction":this.b=7;break;case "node":break;default:throw Error("Unexpected argument");}}function Rb(a){return"comment"==a||"text"==a||"processing-instruction"==a||"node"==a}D.prototype.a=function(a){return null===this.b||this.b==a.nodeType};D.prototype.f=function(){return this.h};
58
+ D.prototype.toString=function(){var a="Kind Test: "+this.h;null===this.c||(a+=H(this.c));return a};function Sb(a){F.call(this,3);this.c=a.substring(1,a.length-1)}l(Sb,F);Sb.prototype.a=function(){return this.c};Sb.prototype.toString=function(){return"Literal: "+this.c};function rb(a,b){this.l=a.toLowerCase();a="*"==this.l?"*":"http://www.w3.org/1999/xhtml";this.c=b?b.toLowerCase():a}rb.prototype.a=function(a){var b=a.nodeType;if(1!=b&&2!=b)return!1;b=void 0!==a.localName?a.localName:a.nodeName;return"*"!=this.l&&this.l!=b.toLowerCase()?!1:"*"==this.c?!0:this.c==(a.namespaceURI?a.namespaceURI.toLowerCase():"http://www.w3.org/1999/xhtml")};rb.prototype.f=function(){return this.l};
59
+ rb.prototype.toString=function(){return"Name Test: "+("http://www.w3.org/1999/xhtml"==this.c?"":this.c+":")+this.l};function Tb(a){F.call(this,1);this.c=a}l(Tb,F);Tb.prototype.a=function(){return this.c};Tb.prototype.toString=function(){return"Number: "+this.c};function Ub(a,b){F.call(this,a.i);this.h=a;this.c=b;this.g=a.g;this.b=a.b;1==this.c.length&&(a=this.c[0],a.G||a.c!=Vb||(a=a.v,"*"!=a.f()&&(this.f={name:a.f(),B:null})))}l(Ub,F);function Wb(){F.call(this,4)}l(Wb,F);Wb.prototype.a=function(a){var b=new C;a=a.a;9==a.nodeType?b.add(a):b.add(a.ownerDocument);return b};Wb.prototype.toString=function(){return"Root Helper Expression"};function Xb(){F.call(this,4)}l(Xb,F);Xb.prototype.a=function(a){var b=new C;b.add(a.a);return b};Xb.prototype.toString=function(){return"Context Helper Expression"};
60
+ function Yb(a){return"/"==a||"//"==a}Ub.prototype.a=function(a){var b=this.h.a(a);if(!(b instanceof C))throw Error("Filter expression must evaluate to nodeset.");a=this.c;for(var c=0,d=a.length;c<d&&b.m;c++){var e=a[c],f=Bb(b,e.c.A);if(e.g||e.c!=Zb)if(e.g||e.c!=$b){var g=E(f);for(b=e.a(new la(g));null!=(g=E(f));)g=e.a(new la(g)),b=xb(b,g)}else g=E(f),b=e.a(new la(g));else{for(g=E(f);(b=E(f))&&(!g.contains||g.contains(b))&&b.compareDocumentPosition(g)&8;g=b);b=e.a(new la(g))}}return b};
61
+ Ub.prototype.toString=function(){var a="Path Expression:"+H(this.h);if(this.c.length){var b=qa(this.c,function(c,d){return c+H(d)},"Steps:");a+=H(b)}return a};function ac(a,b){this.a=a;this.A=!!b}
62
+ function Nb(a,b,c){for(c=c||0;c<a.a.length;c++)for(var d=a.a[c],e=Bb(b),f=b.m,g,h=0;g=E(e);h++){var n=a.A?f-h:h+1;g=d.a(new la(g,n,f));if("number"==typeof g)n=n==g;else if("string"==typeof g||"boolean"==typeof g)n=!!g;else if(g instanceof C)n=0<g.m;else throw Error("Predicate.evaluate returned an unexpected type.");if(!n){n=e;g=n.f;var u=n.a;if(!u)throw Error("Next must be called at least once before remove.");var p=u.b;u=u.a;p?p.a=u:g.a=u;u?u.b=p:g.b=p;g.m--;n.a=null}}return b}
63
+ ac.prototype.toString=function(){return qa(this.a,function(a,b){return a+H(b)},"Predicates:")};function bc(a,b,c,d){F.call(this,4);this.c=a;this.v=b;this.h=c||new ac([]);this.G=!!d;b=this.h;b=0<b.a.length?b.a[0].f:null;a.ca&&b&&(a=b.name,a=x?a.toLowerCase():a,this.f={name:a,B:b.B});a:{a=this.h;for(b=0;b<a.a.length;b++)if(c=a.a[b],c.g||1==c.i||0==c.i){a=!0;break a}a=!1}this.g=a}l(bc,F);
64
+ bc.prototype.a=function(a){var b=a.a,c=this.f,d=null,e=null,f=0;c&&(d=c.name,e=c.B?J(c.B,a):null,f=1);if(this.G)if(this.g||this.c!=cc)if(b=Bb((new bc(dc,new D("node"))).a(a)),c=E(b))for(a=this.s(c,d,e,f);null!=(c=E(b));)a=xb(a,this.s(c,d,e,f));else a=new C;else a=ob(this.v,b,d,e),a=Nb(this.h,a,f);else a=this.s(a.a,d,e,f);return a};bc.prototype.s=function(a,b,c,d){a=this.c.D(this.v,a,b,c);return a=Nb(this.h,a,d)};
65
+ bc.prototype.toString=function(){var a="Step:"+H("Operator: "+(this.G?"//":"/"));this.c.l&&(a+=H("Axis: "+this.c));a+=H(this.v);if(this.h.a.length){var b=qa(this.h.a,function(c,d){return c+H(d)},"Predicates:");a+=H(b)}return a};function ec(a,b,c,d){this.l=a;this.D=b;this.A=c;this.ca=d}ec.prototype.toString=function(){return this.l};var fc={};function M(a,b,c,d){if(fc.hasOwnProperty(a))throw Error("Axis already created: "+a);b=new ec(a,b,c,!!d);return fc[a]=b}
66
+ M("ancestor",function(a,b){for(var c=new C;b=b.parentNode;)a.a(b)&&yb(c,b);return c},!0);M("ancestor-or-self",function(a,b){var c=new C;do a.a(b)&&yb(c,b);while(b=b.parentNode);return c},!0);
67
+ var Vb=M("attribute",function(a,b){var c=new C,d=a.f();if("style"==d&&x&&b.style)return c.add(new Wa(b.style,b,"style",b.style.cssText)),c;var e=b.attributes;if(e)if(a instanceof D&&null===a.b||"*"==d)for(a=0;d=e[a];a++)x?d.nodeValue&&c.add(Xa(b,d)):c.add(d);else(d=e.getNamedItem(d))&&(x?d.nodeValue&&c.add(Xa(b,d)):c.add(d));return c},!1),cc=M("child",function(a,b,c,d,e){return(x?ub:vb).call(null,a,b,aa(c)?c:null,aa(d)?d:null,e||new C)},!1,!0);M("descendant",ob,!1,!0);
68
+ var dc=M("descendant-or-self",function(a,b,c,d){var e=new C;nb(b,c,d)&&a.a(b)&&e.add(b);return ob(a,b,c,d,e)},!1,!0),Zb=M("following",function(a,b,c,d){var e=new C;do for(var f=b;f=f.nextSibling;)nb(f,c,d)&&a.a(f)&&e.add(f),e=ob(a,f,c,d,e);while(b=b.parentNode);return e},!1,!0);M("following-sibling",function(a,b){for(var c=new C;b=b.nextSibling;)a.a(b)&&c.add(b);return c},!1);M("namespace",function(){return new C},!1);
69
+ var gc=M("parent",function(a,b){var c=new C;if(9==b.nodeType)return c;if(2==b.nodeType)return c.add(b.ownerElement),c;b=b.parentNode;a.a(b)&&c.add(b);return c},!1),$b=M("preceding",function(a,b,c,d){var e=new C,f=[];do f.unshift(b);while(b=b.parentNode);for(var g=1,h=f.length;g<h;g++){var n=[];for(b=f[g];b=b.previousSibling;)n.unshift(b);for(var u=0,p=n.length;u<p;u++)b=n[u],nb(b,c,d)&&a.a(b)&&e.add(b),e=ob(a,b,c,d,e)}return e},!0,!0);
70
+ M("preceding-sibling",function(a,b){for(var c=new C;b=b.previousSibling;)a.a(b)&&yb(c,b);return c},!0);var hc=M("self",function(a,b){var c=new C;a.a(b)&&c.add(b);return c},!1);function ic(a){F.call(this,1);this.c=a;this.g=a.g;this.b=a.b}l(ic,F);ic.prototype.a=function(a){return-I(this.c,a)};ic.prototype.toString=function(){return"Unary Expression: -"+H(this.c)};function jc(a){F.call(this,4);this.c=a;Db(this,ra(this.c,function(b){return b.g}));Eb(this,ra(this.c,function(b){return b.b}))}l(jc,F);jc.prototype.a=function(a){var b=new C;q(this.c,function(c){c=c.a(a);if(!(c instanceof C))throw Error("Path expression must evaluate to NodeSet.");b=xb(b,c)});return b};jc.prototype.toString=function(){return qa(this.c,function(a,b){return a+H(b)},"Union Expression:")};function kc(a,b){this.a=a;this.b=b}function lc(a){for(var b,c=[];;){N(a,"Missing right hand side of binary expression.");b=mc(a);var d=z(a.a);if(!d)break;var e=(d=Lb[d]||null)&&d.M;if(!e){a.a.a--;break}for(;c.length&&e<=c[c.length-1].M;)b=new Hb(c.pop(),c.pop(),b);c.push(b,d)}for(;c.length;)b=new Hb(c.pop(),c.pop(),b);return b}function N(a,b){if(bb(a.a))throw Error(b);}function nc(a,b){a=z(a.a);if(a!=b)throw Error("Bad token, expected: "+b+" got: "+a);}
71
+ function oc(a){a=z(a.a);if(")"!=a)throw Error("Bad token: "+a);}function pc(a){a=z(a.a);if(2>a.length)throw Error("Unclosed literal string");return new Sb(a)}
72
+ function qc(a){var b=[];if(Yb(y(a.a))){var c=z(a.a);var d=y(a.a);if("/"==c&&(bb(a.a)||"."!=d&&".."!=d&&"@"!=d&&"*"!=d&&!/(?![0-9])[\w]/.test(d)))return new Wb;d=new Wb;N(a,"Missing next location step.");c=rc(a,c);b.push(c)}else{a:{c=y(a.a);d=c.charAt(0);switch(d){case "$":throw Error("Variable reference not allowed in HTML XPath");case "(":z(a.a);c=lc(a);N(a,'unclosed "("');nc(a,")");break;case '"':case "'":c=pc(a);break;default:if(isNaN(+c))if(!Rb(c)&&/(?![0-9])[\w]/.test(d)&&"("==y(a.a,1)){c=z(a.a);
73
+ c=Qb[c]||null;z(a.a);for(d=[];")"!=y(a.a);){N(a,"Missing function argument list.");d.push(lc(a));if(","!=y(a.a))break;z(a.a)}N(a,"Unclosed function argument list.");oc(a);c=new Ob(c,d)}else{c=null;break a}else c=new Tb(+z(a.a))}"["==y(a.a)&&(d=new ac(sc(a)),c=new Mb(c,d))}if(c)if(Yb(y(a.a)))d=c;else return c;else c=rc(a,"/"),d=new Xb,b.push(c)}for(;Yb(y(a.a));)c=z(a.a),N(a,"Missing next location step."),c=rc(a,c),b.push(c);return new Ub(d,b)}
74
+ function rc(a,b){if("/"!=b&&"//"!=b)throw Error('Step op should be "/" or "//"');if("."==y(a.a)){var c=new bc(hc,new D("node"));z(a.a);return c}if(".."==y(a.a))return c=new bc(gc,new D("node")),z(a.a),c;if("@"==y(a.a)){var d=Vb;z(a.a);N(a,"Missing attribute name")}else if("::"==y(a.a,1)){if(!/(?![0-9])[\w]/.test(y(a.a).charAt(0)))throw Error("Bad token: "+z(a.a));var e=z(a.a);d=fc[e]||null;if(!d)throw Error("No axis with name: "+e);z(a.a);N(a,"Missing node name")}else d=cc;e=y(a.a);if(/(?![0-9])[\w\*]/.test(e.charAt(0)))if("("==
75
+ y(a.a,1)){if(!Rb(e))throw Error("Invalid node type: "+e);e=z(a.a);if(!Rb(e))throw Error("Invalid type name: "+e);nc(a,"(");N(a,"Bad nodetype");var f=y(a.a).charAt(0),g=null;if('"'==f||"'"==f)g=pc(a);N(a,"Bad nodetype");oc(a);e=new D(e,g)}else if(e=z(a.a),f=e.indexOf(":"),-1==f)e=new rb(e);else{g=e.substring(0,f);if("*"==g)var h="*";else if(h=a.b(g),!h)throw Error("Namespace prefix not declared: "+g);e=e.substr(f+1);e=new rb(e,h)}else throw Error("Bad token: "+z(a.a));a=new ac(sc(a),d.A);return c||
76
+ new bc(d,e,a,"//"==b)}function sc(a){for(var b=[];"["==y(a.a);){z(a.a);N(a,"Missing predicate expression.");var c=lc(a);b.push(c);N(a,"Unclosed predicate expression.");nc(a,"]")}return b}function mc(a){if("-"==y(a.a))return z(a.a),new ic(mc(a));var b=qc(a);if("|"!=y(a.a))a=b;else{for(b=[b];"|"==z(a.a);)N(a,"Missing next union location path."),b.push(qc(a));a.a.a--;a=new jc(b)}return a};function vc(a){switch(a.nodeType){case 1:return ka(wc,a);case 9:return vc(a.documentElement);case 11:case 10:case 6:case 12:return xc;default:return a.parentNode?vc(a.parentNode):xc}}function xc(){return null}function wc(a,b){if(a.prefix==b)return a.namespaceURI||"http://www.w3.org/1999/xhtml";var c=a.getAttributeNode("xmlns:"+b);return c&&c.specified?c.value||null:a.parentNode&&9!=a.parentNode.nodeType?wc(a.parentNode,b):null};function yc(a,b){if(!a.length)throw Error("Empty XPath expression.");a=Za(a);if(bb(a))throw Error("Invalid XPath expression.");b?da(b)||(b=ja(b.lookupNamespaceURI,b)):b=function(){return null};var c=lc(new kc(a,b));if(!bb(a))throw Error("Bad token: "+z(a));this.evaluate=function(d,e){d=c.a(new la(d));return new O(d,e)}}
77
+ function O(a,b){if(0==b)if(a instanceof C)b=4;else if("string"==typeof a)b=2;else if("number"==typeof a)b=1;else if("boolean"==typeof a)b=3;else throw Error("Unexpected evaluation result.");if(2!=b&&1!=b&&3!=b&&!(a instanceof C))throw Error("value could not be converted to the specified type");this.resultType=b;switch(b){case 2:this.stringValue=a instanceof C?Ab(a):""+a;break;case 1:this.numberValue=a instanceof C?+Ab(a):+a;break;case 3:this.booleanValue=a instanceof C?0<a.m:!!a;break;case 4:case 5:case 6:case 7:var c=
78
+ Bb(a);var d=[];for(var e=E(c);e;e=E(c))d.push(e instanceof Wa?e.a:e);this.snapshotLength=a.m;this.invalidIteratorState=!1;break;case 8:case 9:a=zb(a);this.singleNodeValue=a instanceof Wa?a.a:a;break;default:throw Error("Unknown XPathResult type.");}var f=0;this.iterateNext=function(){if(4!=b&&5!=b)throw Error("iterateNext called with wrong result type");return f>=d.length?null:d[f++]};this.snapshotItem=function(g){if(6!=b&&7!=b)throw Error("snapshotItem called with wrong result type");return g>=d.length||
79
+ 0>g?null:d[g]}}O.ANY_TYPE=0;O.NUMBER_TYPE=1;O.STRING_TYPE=2;O.BOOLEAN_TYPE=3;O.UNORDERED_NODE_ITERATOR_TYPE=4;O.ORDERED_NODE_ITERATOR_TYPE=5;O.UNORDERED_NODE_SNAPSHOT_TYPE=6;O.ORDERED_NODE_SNAPSHOT_TYPE=7;O.ANY_UNORDERED_NODE_TYPE=8;O.FIRST_ORDERED_NODE_TYPE=9;function zc(a){this.lookupNamespaceURI=vc(a)}
80
+ function Ac(a,b){a=a||k;var c=a.Document&&a.Document.prototype||a.document;if(!c.evaluate||b)a.XPathResult=O,c.evaluate=function(d,e,f,g){return(new yc(d,f)).evaluate(e,g)},c.createExpression=function(d,e){return new yc(d,e)},c.createNSResolver=function(d){return new zc(d)}}ba("wgxpath.install",Ac);ba("wgxpath.install",Ac);var Bc=window;function P(a,b){this.code=a;this.a=Q[a]||Cc;this.message=b||"";a=this.a.replace(/((?:^|\s+)[a-z])/g,function(c){return c.toUpperCase().replace(/^[\s\xa0]+/g,"")});b=a.length-5;if(0>b||a.indexOf("Error",b)!=b)a+="Error";this.name=a;a=Error(this.message);a.name=this.name;this.stack=a.stack||""}l(P,Error);var Cc="unknown error",Q={15:"element not selectable",11:"element not visible"};Q[31]=Cc;Q[30]=Cc;Q[24]="invalid cookie domain";Q[29]="invalid element coordinates";Q[12]="invalid element state";
81
+ Q[32]="invalid selector";Q[51]="invalid selector";Q[52]="invalid selector";Q[17]="javascript error";Q[405]="unsupported operation";Q[34]="move target out of bounds";Q[27]="no such alert";Q[7]="no such element";Q[8]="no such frame";Q[23]="no such window";Q[28]="script timeout";Q[33]="session not created";Q[10]="stale element reference";Q[21]="timeout";Q[25]="unable to set cookie";Q[26]="unexpected alert open";Q[13]=Cc;Q[9]="unknown command";var Dc={C:function(a){return!(!a.querySelectorAll||!a.querySelector)},o:function(a,b){if(!a)throw new P(32,"No class name specified");a=za(a);if(-1!==a.indexOf(" "))throw new P(32,"Compound class names not permitted");if(Dc.C(b))try{return b.querySelector("."+a.replace(/\./g,"\\."))||null}catch(c){throw new P(32,"An invalid or illegal class name was specified");}a=mb(eb(b),"*",a,b);return a.length?a[0]:null},j:function(a,b){if(!a)throw new P(32,"No class name specified");a=za(a);if(-1!==a.indexOf(" "))throw new P(32,
82
+ "Compound class names not permitted");if(Dc.C(b))try{return b.querySelectorAll("."+a.replace(/\./g,"\\."))}catch(c){throw new P(32,"An invalid or illegal class name was specified");}return mb(eb(b),"*",a,b)}};var Ec=Fa(),Fc=Ia()||r("iPod"),Gc=r("iPad"),Hc=r("Android")&&!(Ga()||Fa()||r("Opera")||r("Silk")),Ic=Ga(),Jc=r("Safari")&&!(Ga()||r("Coast")||r("Opera")||r("Edge")||r("Edg/")||r("OPR")||Fa()||r("Silk")||r("Android"))&&!(Ia()||r("iPad")||r("iPod"));function Kc(a){return(a=a.exec(Ca))?a[1]:""}(function(){if(Ec)return Kc(/Firefox\/([0-9.]+)/);if(t||Ma||La)return Qa;if(Ic)return Ia()||r("iPad")||r("iPod")?Kc(/CriOS\/([0-9.]+)/):Kc(/Chrome\/([0-9.]+)/);if(Jc&&!(Ia()||r("iPad")||r("iPod")))return Kc(/Version\/([0-9.]+)/);if(Fc||Gc){var a=/Version\/(\S+).*Mobile\/(\S+)/.exec(Ca);if(a)return a[1]+"."+a[2]}else if(Hc)return(a=Kc(/Android\s+([0-9.]+)/))?a:Kc(/Version\/([0-9.]+)/);return""})();var Lc,Mc,Nc=function(){if(!Na)return!1;var a=k.Components;if(!a)return!1;try{if(!a.classes)return!1}catch(f){return!1}var b=a.classes;a=a.interfaces;var c=b["@mozilla.org/xpcom/version-comparator;1"].getService(a.nsIVersionComparator);b=b["@mozilla.org/xre/app-info;1"].getService(a.nsIXULAppInfo);var d=b.platformVersion,e=b.version;Lc=function(){return 0<=c.compare(d,"8")};Mc=function(f){c.compare(e,""+f)};return!0}(),Oc=t&&!(8<=Number(w)),Pc=t&&!(9<=Number(w));Hc&&Nc&&Mc(2.3);Hc&&Nc&&Mc(4);
83
+ Jc&&Nc&&Mc(6);var Qc={o:function(a,b){if(!da(b.querySelector)&&t&&(Nc?Lc():t?0<=Aa(w,8):Ua(8))&&!ea(b.querySelector))throw Error("CSS selection is not supported");if(!a)throw new P(32,"No selector specified");a=za(a);try{var c=b.querySelector(a)}catch(d){throw new P(32,"An invalid or illegal selector was specified");}return c&&1==c.nodeType?c:null},j:function(a,b){if(!da(b.querySelectorAll)&&t&&(Nc?Lc():t?0<=Aa(w,8):Ua(8))&&!ea(b.querySelector))throw Error("CSS selection is not supported");if(!a)throw new P(32,
84
+ "No selector specified");a=za(a);try{return b.querySelectorAll(a)}catch(c){throw new P(32,"An invalid or illegal selector was specified");}}};var Rc={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",
85
85
  darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",
86
86
  ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",
87
87
  lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",
88
88
  moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",
89
- seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};var Pc="backgroundColor borderTopColor borderRightColor borderBottomColor borderLeftColor color outlineColor".split(" "),Qc=/#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/,Rc=/^#(?:[0-9a-f]{3}){1,2}$/i,Sc=/^(?:rgba)?\((\d{1,3}),\s?(\d{1,3}),\s?(\d{1,3}),\s?(0|1|0\.\d*)\)$/i,Tc=/^(?:rgb)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2})\)$/i;function Uc(a,b){b=b.toLowerCase();return"style"==b?Vc(a.style.cssText):Lc&&"value"==b&&T(a,"INPUT")?a.value:Mc&&!0===a[b]?String(a.getAttribute(b)):(a=a.getAttributeNode(b))&&a.specified?a.value:null}var Wc=/[;]+(?=(?:(?:[^"]*"){2})*[^"]*$)(?=(?:(?:[^']*'){2})*[^']*$)(?=(?:[^()]*\([^()]*\))*[^()]*$)/;
90
- function Vc(a){var b=[];q(a.split(Wc),function(c){var d=c.indexOf(":");0<d&&(c=[c.slice(0,d),c.slice(d+1)],2==c.length&&b.push(c[0].toLowerCase(),":",c[1],";"))});b=b.join("");return b=";"==b.charAt(b.length-1)?b:b+";"}function T(a,b){b&&"string"!==typeof b&&(b=b.toString());return!!a&&1==a.nodeType&&(!b||a.tagName.toUpperCase()==b)};var U={};U.I=function(){var a={ba:"http://www.w3.org/2000/svg"};return function(b){return a[b]||null}}();
91
- U.s=function(a,b,c){var d=B(a);if(!d.documentElement)return null;(w||Ec)&&xc(d?d.parentWindow||d.defaultView:window);try{var e=d.createNSResolver?d.createNSResolver(d.documentElement):U.I;if(w&&!Ra(7))return d.evaluate.call(d,b,a,e,c,null);if(!w||9<=Number(x)){for(var f={},g=d.getElementsByTagName("*"),h=0;h<g.length;++h){var n=g[h],t=n.namespaceURI;if(t&&!f[t]){var p=n.lookupPrefix(t);if(!p){var G=t.match(".*/(\\w+)/?$");p=G?G[1]:"xhtml"}f[t]=p}}var R={},fa;for(fa in f)R[f[fa]]=fa;e=function(m){return R[m]||
92
- null}}try{return d.evaluate(b,a,e,c,null)}catch(m){if("TypeError"===m.name)return e=d.createNSResolver?d.createNSResolver(d.documentElement):U.I,d.evaluate(b,a,e,c,null);throw m;}}catch(m){if(!Ka||"NS_ERROR_ILLEGAL_VALUE"!=m.name)throw new Q(32,"Unable to locate an element with the xpath expression "+b+" because of the following error:\n"+m);}};U.J=function(a,b){if(!a||1!=a.nodeType)throw new Q(32,'The result of the xpath expression "'+b+'" is: '+a+". It should be an element.");};
93
- U.o=function(a,b){var c=function(){var d=U.s(b,a,9);return d?d.singleNodeValue||null:b.selectSingleNode?(d=B(b),d.setProperty&&d.setProperty("SelectionLanguage","XPath"),b.selectSingleNode(a)):null}();null===c||U.J(c,a);return c};
94
- U.j=function(a,b){var c=function(){var d=U.s(b,a,7);if(d){for(var e=d.snapshotLength,f=[],g=0;g<e;++g)f.push(d.snapshotItem(g));return f}return b.selectNodes?(d=B(b),d.setProperty&&d.setProperty("SelectionLanguage","XPath"),b.selectNodes(a)):[]}();q(c,function(d){U.J(d,a)});return c};function Xc(a,b,c,d){this.c=a;this.a=b;this.b=c;this.f=d}Xc.prototype.ceil=function(){this.c=Math.ceil(this.c);this.a=Math.ceil(this.a);this.b=Math.ceil(this.b);this.f=Math.ceil(this.f);return this};Xc.prototype.floor=function(){this.c=Math.floor(this.c);this.a=Math.floor(this.a);this.b=Math.floor(this.b);this.f=Math.floor(this.f);return this};Xc.prototype.round=function(){this.c=Math.round(this.c);this.a=Math.round(this.a);this.b=Math.round(this.b);this.f=Math.round(this.f);return this};function V(a,b,c,d){this.a=a;this.b=b;this.width=c;this.height=d}V.prototype.ceil=function(){this.a=Math.ceil(this.a);this.b=Math.ceil(this.b);this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this};V.prototype.floor=function(){this.a=Math.floor(this.a);this.b=Math.floor(this.b);this.width=Math.floor(this.width);this.height=Math.floor(this.height);return this};
95
- V.prototype.round=function(){this.a=Math.round(this.a);this.b=Math.round(this.b);this.width=Math.round(this.width);this.height=Math.round(this.height);return this};var Yc="function"===typeof ShadowRoot;function Zc(a){for(a=a.parentNode;a&&1!=a.nodeType&&9!=a.nodeType&&11!=a.nodeType;)a=a.parentNode;return T(a)?a:null}
96
- function W(a,b){b=Ea(b);if("float"==b||"cssFloat"==b||"styleFloat"==b)b=Mc?"styleFloat":"cssFloat";a:{var c=b;var d=B(a);if(d.defaultView&&d.defaultView.getComputedStyle&&(d=d.defaultView.getComputedStyle(a,null))){c=d[c]||d.getPropertyValue(c)||"";break a}c=""}a=c||$c(a,b);if(null===a)a=null;else if(0<=na(Pc,b)){b:{var e=a.match(Sc);if(e&&(b=Number(e[1]),c=Number(e[2]),d=Number(e[3]),e=Number(e[4]),0<=b&&255>=b&&0<=c&&255>=c&&0<=d&&255>=d&&0<=e&&1>=e)){b=[b,c,d,e];break b}b=null}if(!b)b:{if(d=a.match(Tc))if(b=
97
- Number(d[1]),c=Number(d[2]),d=Number(d[3]),0<=b&&255>=b&&0<=c&&255>=c&&0<=d&&255>=d){b=[b,c,d,1];break b}b=null}if(!b)b:{b=a.toLowerCase();c=Oc[b.toLowerCase()];if(!c&&(c="#"==b.charAt(0)?b:"#"+b,4==c.length&&(c=c.replace(Qc,"#$1$1$2$2$3$3")),!Rc.test(c))){b=null;break b}b=[parseInt(c.substr(1,2),16),parseInt(c.substr(3,2),16),parseInt(c.substr(5,2),16),1]}a=b?"rgba("+b.join(", ")+")":a}return a}
98
- function $c(a,b){var c=a.currentStyle||a.style,d=c[b];void 0===d&&da(c.getPropertyValue)&&(d=c.getPropertyValue(b));return"inherit"!=d?void 0!==d?d:null:(a=Zc(a))?$c(a,b):null}
99
- function ad(a,b,c){function d(g){var h=bd(g);return 0<h.height&&0<h.width?!0:T(g,"PATH")&&(0<h.height||0<h.width)?(g=W(g,"stroke-width"),!!g&&0<parseInt(g,10)):"hidden"!=W(g,"overflow")&&ra(g.childNodes,function(n){return 3==n.nodeType||T(n)&&d(n)})}function e(g){return cd(g)==X&&sa(g.childNodes,function(h){return!T(h)||e(h)||!d(h)})}if(!T(a))throw Error("Argument to isShown must be of type Element");if(T(a,"BODY"))return!0;if(T(a,"OPTION")||T(a,"OPTGROUP"))return a=ib(a,function(g){return T(g,"SELECT")}),
100
- !!a&&ad(a,!0,c);var f=dd(a);if(f)return!!f.image&&0<f.rect.width&&0<f.rect.height&&ad(f.image,b,c);if(T(a,"INPUT")&&"hidden"==a.type.toLowerCase()||T(a,"NOSCRIPT"))return!1;f=W(a,"visibility");return"collapse"!=f&&"hidden"!=f&&c(a)&&(b||0!=ed(a))&&d(a)?!e(a):!1}
101
- function fd(a){function b(c){if(T(c)&&"none"==W(c,"display"))return!1;var d;if((d=c.parentNode)&&d.shadowRoot&&void 0!==c.assignedSlot)d=c.assignedSlot?c.assignedSlot.parentNode:null;else if(c.getDestinationInsertionPoints){var e=c.getDestinationInsertionPoints();0<e.length&&(d=e[e.length-1])}if(Yc&&d instanceof ShadowRoot){if(d.host.shadowRoot!==d)return!1;d=d.host}return!d||9!=d.nodeType&&11!=d.nodeType?d&&T(d,"DETAILS")&&!d.open&&!T(c,"SUMMARY")?!1:!!d&&b(d):!0}return ad(a,!1,b)}var X="hidden";
102
- function cd(a){function b(m){function u(Fb){if(Fb==g)return!0;var tc=W(Fb,"display");return 0==tc.lastIndexOf("inline",0)||"contents"==tc||"absolute"==uc&&"static"==W(Fb,"position")?!1:!0}var uc=W(m,"position");if("fixed"==uc)return t=!0,m==g?null:g;for(m=Zc(m);m&&!u(m);)m=Zc(m);return m}function c(m){var u=m;if("visible"==n)if(m==g&&h)u=h;else if(m==h)return{x:"visible",y:"visible"};u={x:W(u,"overflow-x"),y:W(u,"overflow-y")};m==g&&(u.x="visible"==u.x?"auto":u.x,u.y="visible"==u.y?"auto":u.y);return u}
103
- function d(m){if(m==g){var u=(new cb(f)).a;m=u.scrollingElement?u.scrollingElement:La||"CSS1Compat"!=u.compatMode?u.body||u.documentElement:u.documentElement;u=u.parentWindow||u.defaultView;m=w&&Ra("10")&&u.pageYOffset!=m.scrollTop?new $a(m.scrollLeft,m.scrollTop):new $a(u.pageXOffset||m.scrollLeft,u.pageYOffset||m.scrollTop)}else m=new $a(m.scrollLeft,m.scrollTop);return m}var e=gd(a),f=B(a),g=f.documentElement,h=f.body,n=W(g,"overflow"),t;for(a=b(a);a;a=b(a)){var p=c(a);if("visible"!=p.x||"visible"!=
104
- p.y){var G=bd(a);if(0==G.width||0==G.height)return X;var R=e.a<G.a,fa=e.b<G.b;if(R&&"hidden"==p.x||fa&&"hidden"==p.y)return X;if(R&&"visible"!=p.x||fa&&"visible"!=p.y){R=d(a);fa=e.b<G.b-R.y;if(e.a<G.a-R.x&&"visible"!=p.x||fa&&"visible"!=p.x)return X;e=cd(a);return e==X?X:"scroll"}R=e.f>=G.a+G.width;G=e.c>=G.b+G.height;if(R&&"hidden"==p.x||G&&"hidden"==p.y)return X;if(R&&"visible"!=p.x||G&&"visible"!=p.y){if(t&&(p=d(a),e.f>=g.scrollWidth-p.x||e.a>=g.scrollHeight-p.y))return X;e=cd(a);return e==X?X:
89
+ seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};var Sc="backgroundColor borderTopColor borderRightColor borderBottomColor borderLeftColor color outlineColor".split(" "),Tc=/#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/,Uc=/^#(?:[0-9a-f]{3}){1,2}$/i,Vc=/^(?:rgba)?\((\d{1,3}),\s?(\d{1,3}),\s?(\d{1,3}),\s?(0|1|0\.\d*)\)$/i,Wc=/^(?:rgb)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2})\)$/i;function Xc(a,b){b=b.toLowerCase();return"style"==b?Yc(a.style.cssText):Oc&&"value"==b&&S(a,"INPUT")?a.value:Pc&&!0===a[b]?String(a.getAttribute(b)):(a=a.getAttributeNode(b))&&a.specified?a.value:null}var Zc=/[;]+(?=(?:(?:[^"]*"){2})*[^"]*$)(?=(?:(?:[^']*'){2})*[^']*$)(?=(?:[^()]*\([^()]*\))*[^()]*$)/;
90
+ function Yc(a){var b=[];q(a.split(Zc),function(c){var d=c.indexOf(":");0<d&&(c=[c.slice(0,d),c.slice(d+1)],2==c.length&&b.push(c[0].toLowerCase(),":",c[1],";"))});b=b.join("");return b=";"==b.charAt(b.length-1)?b:b+";"}function S(a,b){b&&"string"!==typeof b&&(b=b.toString());return!!a&&1==a.nodeType&&(!b||a.tagName.toUpperCase()==b)};var T={};T.I=function(){var a={da:"http://www.w3.org/2000/svg"};return function(b){return a[b]||null}}();
91
+ T.s=function(a,b,c){var d=A(a);if(!d.documentElement)return null;(t||Hc)&&Ac(d?d.parentWindow||d.defaultView:window);try{var e=d.createNSResolver?d.createNSResolver(d.documentElement):T.I;if(t&&!Ua(7))return d.evaluate.call(d,b,a,e,c,null);if(!t||9<=Number(w)){for(var f={},g=d.getElementsByTagName("*"),h=0;h<g.length;++h){var n=g[h],u=n.namespaceURI;if(u&&!f[u]){var p=n.lookupPrefix(u);if(!p){var G=u.match(".*/(\\w+)/?$");p=G?G[1]:"xhtml"}f[u]=p}}var R={},ha;for(ha in f)R[f[ha]]=ha;e=function(m){return R[m]||
92
+ null}}try{return d.evaluate(b,a,e,c,null)}catch(m){if("TypeError"===m.name)return e=d.createNSResolver?d.createNSResolver(d.documentElement):T.I,d.evaluate(b,a,e,c,null);throw m;}}catch(m){if(!Na||"NS_ERROR_ILLEGAL_VALUE"!=m.name)throw new P(32,"Unable to locate an element with the xpath expression "+b+" because of the following error:\n"+m);}};T.J=function(a,b){if(!a||1!=a.nodeType)throw new P(32,'The result of the xpath expression "'+b+'" is: '+a+". It should be an element.");};
93
+ T.o=function(a,b){var c=function(){var d=T.s(b,a,9);return d?d.singleNodeValue||null:b.selectSingleNode?(d=A(b),d.setProperty&&d.setProperty("SelectionLanguage","XPath"),b.selectSingleNode(a)):null}();null===c||T.J(c,a);return c};
94
+ T.j=function(a,b){var c=function(){var d=T.s(b,a,7);if(d){for(var e=d.snapshotLength,f=[],g=0;g<e;++g)f.push(d.snapshotItem(g));return f}return b.selectNodes?(d=A(b),d.setProperty&&d.setProperty("SelectionLanguage","XPath"),b.selectNodes(a)):[]}();q(c,function(d){T.J(d,a)});return c};function $c(a,b,c,d){this.c=a;this.a=b;this.b=c;this.f=d}$c.prototype.ceil=function(){this.c=Math.ceil(this.c);this.a=Math.ceil(this.a);this.b=Math.ceil(this.b);this.f=Math.ceil(this.f);return this};$c.prototype.floor=function(){this.c=Math.floor(this.c);this.a=Math.floor(this.a);this.b=Math.floor(this.b);this.f=Math.floor(this.f);return this};$c.prototype.round=function(){this.c=Math.round(this.c);this.a=Math.round(this.a);this.b=Math.round(this.b);this.f=Math.round(this.f);return this};function U(a,b,c,d){this.a=a;this.b=b;this.width=c;this.height=d}U.prototype.ceil=function(){this.a=Math.ceil(this.a);this.b=Math.ceil(this.b);this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this};U.prototype.floor=function(){this.a=Math.floor(this.a);this.b=Math.floor(this.b);this.width=Math.floor(this.width);this.height=Math.floor(this.height);return this};
95
+ U.prototype.round=function(){this.a=Math.round(this.a);this.b=Math.round(this.b);this.width=Math.round(this.width);this.height=Math.round(this.height);return this};var ad="function"===typeof ShadowRoot;function bd(a){for(a=a.parentNode;a&&1!=a.nodeType&&9!=a.nodeType&&11!=a.nodeType;)a=a.parentNode;return S(a)?a:null}
96
+ function V(a,b){b=Ha(b);if("float"==b||"cssFloat"==b||"styleFloat"==b)b=Pc?"styleFloat":"cssFloat";a:{var c=b;var d=A(a);if(d.defaultView&&d.defaultView.getComputedStyle&&(d=d.defaultView.getComputedStyle(a,null))){c=d[c]||d.getPropertyValue(c)||"";break a}c=""}a=c||cd(a,b);if(null===a)a=null;else if(0<=na(Sc,b)){b:{var e=a.match(Vc);if(e&&(b=Number(e[1]),c=Number(e[2]),d=Number(e[3]),e=Number(e[4]),0<=b&&255>=b&&0<=c&&255>=c&&0<=d&&255>=d&&0<=e&&1>=e)){b=[b,c,d,e];break b}b=null}if(!b)b:{if(d=a.match(Wc))if(b=
97
+ Number(d[1]),c=Number(d[2]),d=Number(d[3]),0<=b&&255>=b&&0<=c&&255>=c&&0<=d&&255>=d){b=[b,c,d,1];break b}b=null}if(!b)b:{b=a.toLowerCase();c=Rc[b.toLowerCase()];if(!c&&(c="#"==b.charAt(0)?b:"#"+b,4==c.length&&(c=c.replace(Tc,"#$1$1$2$2$3$3")),!Uc.test(c))){b=null;break b}b=[parseInt(c.substr(1,2),16),parseInt(c.substr(3,2),16),parseInt(c.substr(5,2),16),1]}a=b?"rgba("+b.join(", ")+")":a}return a}
98
+ function cd(a,b){var c=a.currentStyle||a.style,d=c[b];void 0===d&&da(c.getPropertyValue)&&(d=c.getPropertyValue(b));return"inherit"!=d?void 0!==d?d:null:(a=bd(a))?cd(a,b):null}
99
+ function dd(a,b,c){function d(g){var h=W(g);return 0<h.height&&0<h.width?!0:S(g,"PATH")&&(0<h.height||0<h.width)?(g=V(g,"stroke-width"),!!g&&0<parseInt(g,10)):"hidden"!=V(g,"overflow")&&ra(g.childNodes,function(n){return 3==n.nodeType||S(n)&&d(n)})}function e(g){return ed(g)==X&&sa(g.childNodes,function(h){return!S(h)||e(h)||!d(h)})}if(!S(a))throw Error("Argument to isShown must be of type Element");if(S(a,"BODY"))return!0;if(S(a,"OPTION")||S(a,"OPTGROUP"))return a=lb(a,function(g){return S(g,"SELECT")}),
100
+ !!a&&dd(a,!0,c);var f=fd(a);if(f)return!!f.image&&0<f.rect.width&&0<f.rect.height&&dd(f.image,b,c);if(S(a,"INPUT")&&"hidden"==a.type.toLowerCase()||S(a,"NOSCRIPT"))return!1;f=V(a,"visibility");return"collapse"!=f&&"hidden"!=f&&c(a)&&(b||0!=gd(a))&&d(a)?!e(a):!1}
101
+ function hd(a){function b(c){if(S(c)&&"none"==V(c,"display"))return!1;var d;if((d=c.parentNode)&&d.shadowRoot&&void 0!==c.assignedSlot)d=c.assignedSlot?c.assignedSlot.parentNode:null;else if(c.getDestinationInsertionPoints){var e=c.getDestinationInsertionPoints();0<e.length&&(d=e[e.length-1])}if(ad&&d instanceof ShadowRoot){if(d.host.shadowRoot!==d)return!1;d=d.host}return!d||9!=d.nodeType&&11!=d.nodeType?d&&S(d,"DETAILS")&&!d.open&&!S(c,"SUMMARY")?!1:!!d&&b(d):!0}return dd(a,!1,b)}var X="hidden";
102
+ function ed(a){function b(m){function v(Fb){if(Fb==g)return!0;var tc=V(Fb,"display");return 0==tc.lastIndexOf("inline",0)||"contents"==tc||"absolute"==uc&&"static"==V(Fb,"position")?!1:!0}var uc=V(m,"position");if("fixed"==uc)return u=!0,m==g?null:g;for(m=bd(m);m&&!v(m);)m=bd(m);return m}function c(m){var v=m;if("visible"==n)if(m==g&&h)v=h;else if(m==h)return{x:"visible",y:"visible"};v={x:V(v,"overflow-x"),y:V(v,"overflow-y")};m==g&&(v.x="visible"==v.x?"auto":v.x,v.y="visible"==v.y?"auto":v.y);return v}
103
+ function d(m){if(m==g){var v=(new fb(f)).a;m=v.scrollingElement?v.scrollingElement:Oa||"CSS1Compat"!=v.compatMode?v.body||v.documentElement:v.documentElement;v=v.parentWindow||v.defaultView;m=t&&Ua("10")&&v.pageYOffset!=m.scrollTop?new cb(m.scrollLeft,m.scrollTop):new cb(v.pageXOffset||m.scrollLeft,v.pageYOffset||m.scrollTop)}else m=new cb(m.scrollLeft,m.scrollTop);return m}var e=id(a),f=A(a),g=f.documentElement,h=f.body,n=V(g,"overflow"),u;for(a=b(a);a;a=b(a)){var p=c(a);if("visible"!=p.x||"visible"!=
104
+ p.y){var G=W(a);if(0==G.width||0==G.height)return X;var R=e.a<G.a,ha=e.b<G.b;if(R&&"hidden"==p.x||ha&&"hidden"==p.y)return X;if(R&&"visible"!=p.x||ha&&"visible"!=p.y){R=d(a);ha=e.b<G.b-R.y;if(e.a<G.a-R.x&&"visible"!=p.x||ha&&"visible"!=p.x)return X;e=ed(a);return e==X?X:"scroll"}R=e.f>=G.a+G.width;G=e.c>=G.b+G.height;if(R&&"hidden"==p.x||G&&"hidden"==p.y)return X;if(R&&"visible"!=p.x||G&&"visible"!=p.y){if(u&&(p=d(a),e.f>=g.scrollWidth-p.x||e.a>=g.scrollHeight-p.y))return X;e=ed(a);return e==X?X:
105
105
  "scroll"}}}return"none"}
106
- function bd(a){var b=dd(a);if(b)return b.rect;if(T(a,"HTML"))return a=B(a),a=((a?a.parentWindow||a.defaultView:window)||window).document,a="CSS1Compat"==a.compatMode?a.documentElement:a.body,a=new ab(a.clientWidth,a.clientHeight),new V(0,0,a.width,a.height);try{var c=a.getBoundingClientRect()}catch(d){return new V(0,0,0,0)}b=new V(c.left,c.top,c.right-c.left,c.bottom-c.top);w&&a.ownerDocument.body&&(a=B(a),b.a-=a.documentElement.clientLeft+a.body.clientLeft,b.b-=a.documentElement.clientTop+a.body.clientTop);
107
- return b}function dd(a){var b=T(a,"MAP");if(!b&&!T(a,"AREA"))return null;var c=b?a:T(a.parentNode,"MAP")?a.parentNode:null,d=null,e=null;c&&c.name&&(d=U.o('/descendant::*[@usemap = "#'+c.name+'"]',B(c)))&&(e=bd(d),b||"default"==a.shape.toLowerCase()||(a=hd(a),b=Math.min(Math.max(a.a,0),e.width),c=Math.min(Math.max(a.b,0),e.height),e=new V(b+e.a,c+e.b,Math.min(a.width,e.width-b),Math.min(a.height,e.height-c))));return{image:d,rect:e||new V(0,0,0,0)}}
108
- function hd(a){var b=a.shape.toLowerCase();a=a.coords.split(",");if("rect"==b&&4==a.length){b=a[0];var c=a[1];return new V(b,c,a[2]-b,a[3]-c)}if("circle"==b&&3==a.length)return b=a[2],new V(a[0]-b,a[1]-b,2*b,2*b);if("poly"==b&&2<a.length){b=a[0];c=a[1];for(var d=b,e=c,f=2;f+1<a.length;f+=2)b=Math.min(b,a[f]),d=Math.max(d,a[f]),c=Math.min(c,a[f+1]),e=Math.max(e,a[f+1]);return new V(b,c,d-b,e-c)}return new V(0,0,0,0)}function gd(a){a=bd(a);return new Xc(a.b,a.a+a.width,a.b+a.height,a.a)}
109
- function id(a){return a.replace(/^[^\S\xa0]+|[^\S\xa0]+$/g,"")}function jd(a){var b=[];Yc?kd(a,b):ld(a,b);a=pa(b,id);return id(a.join("\n")).replace(/\xa0/g," ")}
110
- function md(a,b,c){if(T(a,"BR"))b.push("");else{var d=T(a,"TD"),e=W(a,"display"),f=!d&&!(0<=na(nd,e)),g=void 0!==a.previousElementSibling?a.previousElementSibling:db(a.previousSibling);g=g?W(g,"display"):"";var h=W(a,"float")||W(a,"cssFloat")||W(a,"styleFloat");!f||"run-in"==g&&"none"==h||/^[\s\xa0]*$/.test(b[b.length-1]||"")||b.push("");var n=fd(a),t=null,p=null;n&&(t=W(a,"white-space"),p=W(a,"text-transform"));q(a.childNodes,function(G){c(G,b,n,t,p)});a=b[b.length-1]||"";!d&&"table-cell"!=e||!a||
111
- wa(a)||(b[b.length-1]+=" ");f&&"run-in"!=e&&!/^[\s\xa0]*$/.test(a)&&b.push("")}}function ld(a,b){md(a,b,function(c,d,e,f,g){3==c.nodeType&&e?od(c,d,f,g):T(c)&&ld(c,d)})}var nd="inline inline-block inline-table none table-cell table-column table-column-group".split(" ");
112
- function od(a,b,c,d){a=a.nodeValue.replace(/[\u200b\u200e\u200f]/g,"");a=a.replace(/(\r\n|\r|\n)/g,"\n");if("normal"==c||"nowrap"==c)a=a.replace(/\n/g," ");a="pre"==c||"pre-wrap"==c?a.replace(/[ \f\t\v\u2028\u2029]/g,"\u00a0"):a.replace(/[ \f\t\v\u2028\u2029]+/g," ");"capitalize"==d?a=a.replace(/(^|[^\d\p{L}\p{S}])([\p{Ll}|\p{S}])/gu,function(e,f,g){return f+g.toUpperCase()}):"uppercase"==d?a=a.toUpperCase():"lowercase"==d&&(a=a.toLowerCase());c=b.pop()||"";wa(c)&&0==a.lastIndexOf(" ",0)&&(a=a.substr(1));
113
- b.push(c+a)}function ed(a){if(Mc){if("relative"==W(a,"position"))return 1;a=W(a,"filter");return(a=a.match(/^alpha\(opacity=(\d*)\)/)||a.match(/^progid:DXImageTransform.Microsoft.Alpha\(Opacity=(\d*)\)/))?Number(a[1])/100:1}return pd(a)}function pd(a){var b=1,c=W(a,"opacity");c&&(b=Number(c));(a=Zc(a))&&(b*=pd(a));return b}
114
- function qd(a,b,c,d,e){if(3==a.nodeType&&c)od(a,b,d,e);else if(T(a))if(T(a,"CONTENT")||T(a,"SLOT")){for(var f=a;f.parentNode;)f=f.parentNode;f instanceof ShadowRoot?(a=T(a,"CONTENT")?a.getDistributedNodes():a.assignedNodes(),q(a,function(g){qd(g,b,c,d,e)})):kd(a,b)}else if(T(a,"SHADOW")){for(f=a;f.parentNode;)f=f.parentNode;if(f instanceof ShadowRoot&&(a=f))for(a=a.olderShadowRoot;a;)q(a.childNodes,function(g){qd(g,b,c,d,e)}),a=a.olderShadowRoot}else kd(a,b)}
115
- function kd(a,b){a.shadowRoot&&q(a.shadowRoot.childNodes,function(c){qd(c,b,!0,null,null)});md(a,b,function(c,d,e,f,g){var h=null;1==c.nodeType?h=c:3==c.nodeType&&(h=c);null!=h&&(null!=h.assignedSlot||h.getDestinationInsertionPoints&&0<h.getDestinationInsertionPoints().length)||qd(c,d,e,f,g)})};var rd={B:function(a,b){return!(!a.querySelectorAll||!a.querySelector)&&!/^\d.*/.test(b)},o:function(a,b){var c=bb(b),d="string"===typeof a?c.a.getElementById(a):a;return d?Uc(d,"id")==a&&b!=d&&eb(b,d)?d:ta(jb(c,"*"),function(e){return Uc(e,"id")==a&&b!=e&&eb(b,e)}):null},j:function(a,b){if(!a)return[];if(rd.B(b,a))try{return b.querySelectorAll("#"+rd.S(a))}catch(c){return[]}b=jb(bb(b),"*",null,b);return oa(b,function(c){return Uc(c,"id")==a})},S:function(a){return a.replace(/([\s'"\\#.:;,!?+<>=~*^$|%&@`{}\-\/\[\]\(\)])/g,
116
- "\\$1")}};var Y={},sd={};Y.N=function(a,b,c){try{var d=Nc.j("a",b)}catch(e){d=jb(bb(b),"A",null,b)}return ta(d,function(e){e=jd(e);e=e.replace(/^[\s]+|[\s]+$/g,"");return c&&-1!=e.indexOf(a)||e==a})};Y.K=function(a,b,c){try{var d=Nc.j("a",b)}catch(e){d=jb(bb(b),"A",null,b)}return oa(d,function(e){e=jd(e);e=e.replace(/^[\s]+|[\s]+$/g,"");return c&&-1!=e.indexOf(a)||e==a})};Y.o=function(a,b){return Y.N(a,b,!1)};Y.j=function(a,b){return Y.K(a,b,!1)};sd.o=function(a,b){return Y.N(a,b,!0)};
117
- sd.j=function(a,b){return Y.K(a,b,!0)};var Z={D:function(a,b){return function(c){var d=Z.H(a);d=bd(d);c=bd(c);return b.call(null,d,c)}},P:function(a){return Z.D(a,function(b,c){return c.b+c.height<b.b})},R:function(a){return Z.D(a,function(b,c){return b.b+b.height<c.b})},U:function(a){return Z.D(a,function(b,c){return c.a+c.width<b.a})},$:function(a){return Z.D(a,function(b,c){return b.a+b.width<c.a})},V:function(a,b){if(b)var c=b;else"number"==typeof a.distance&&(c=a.distance,delete a.distance);c||(c=50);return function(d){var e=Z.H(a);
118
- if(e===d)return!1;e=bd(e);d=bd(d);var f=d.a+d.width,g=e.b-e.height,h=d.b-d.height;return Math.abs(e.a+e.width-d.a)<=c||Math.abs(f-e.a)<=c?Math.abs(g-d.b)<=c||Math.abs(h-e.b)<=c:!1}},H:function(a){if(ea(a)&&1==a.nodeType)return a;if(da(a))return Z.H(a.call(null));if(ea(a)){var b;a:{if(b=td(a)){var c=ud[b];if(c&&da(c.o)){b=c.o(a[b],yc.document);break a}}throw new Q(61,"Unsupported locator strategy: "+b);}if(!b)throw new Q(7,"No element has been found by "+JSON.stringify(a));return b}throw new Q(61,
119
- "Selector is of wrong type: "+JSON.stringify(a));}};Z.O={left:Z.U,right:Z.$,above:Z.P,below:Z.R,near:Z.V};Z.T=function(a,b){var c=[];q(a,function(d){d&&sa(b,function(e){var f=e.kind,g=Z.O[f];if(!g)throw new Q(61,"Cannot find filter suitable for "+f);return g.apply(null,e.args)(d)},null)&&c.push(d)},null);return c};Z.o=function(a,b){a=Z.j(a,b);return 0==a.length?null:a[0]};
120
- Z.j=function(a,b){if(!a.hasOwnProperty("root")||!a.hasOwnProperty("filters"))throw new Q(61,"Locator not suitable for relative locators: "+JSON.stringify(a));var c=a.filters,d=ca(c);if("array"!=d&&("object"!=d||"number"!=typeof c.length))throw new Q(61,"Targets should be an array: "+JSON.stringify(a));var e;T(a.root)?e=[a.root]:e=vd(a.root,b);return 0==e.length?[]:Z.T(e,a.filters)};var wd={o:function(a,b){if(""===a)throw new Q(32,'Unable to locate an element with the tagName ""');return b.getElementsByTagName(a)[0]||null},j:function(a,b){if(""===a)throw new Q(32,'Unable to locate an element with the tagName ""');return b.getElementsByTagName(a)}};var ud={className:Ac,"class name":Ac,css:Nc,"css selector":Nc,relative:Z,id:rd,linkText:Y,"link text":Y,name:{o:function(a,b){b=jb(bb(b),"*",null,b);return ta(b,function(c){return Uc(c,"name")==a})},j:function(a,b){b=jb(bb(b),"*",null,b);return oa(b,function(c){return Uc(c,"name")==a})}},partialLinkText:sd,"partial link text":sd,tagName:wd,"tag name":wd,xpath:U};function td(a){for(var b in a)if(a.hasOwnProperty(b))return b;return null}
121
- function vd(a,b){var c=td(a);if(c){var d=ud[c];if(d&&da(d.j))return d.j(a[c],b||yc.document)}throw new Q(61,"Unsupported locator strategy: "+c);};ba("_",vd);; return this._.apply(null,arguments);}).apply({navigator:typeof window!='undefined'?window.navigator:null,document:typeof window!='undefined'?window.document:null}, arguments);}
106
+ function W(a){var b=fd(a);if(b)return b.rect;if(S(a,"HTML"))return a=A(a),a=((a?a.parentWindow||a.defaultView:window)||window).document,a="CSS1Compat"==a.compatMode?a.documentElement:a.body,a=new db(a.clientWidth,a.clientHeight),new U(0,0,a.width,a.height);try{var c=a.getBoundingClientRect()}catch(d){return new U(0,0,0,0)}b=new U(c.left,c.top,c.right-c.left,c.bottom-c.top);t&&a.ownerDocument.body&&(a=A(a),b.a-=a.documentElement.clientLeft+a.body.clientLeft,b.b-=a.documentElement.clientTop+a.body.clientTop);
107
+ return b}function fd(a){var b=S(a,"MAP");if(!b&&!S(a,"AREA"))return null;var c=b?a:S(a.parentNode,"MAP")?a.parentNode:null,d=null,e=null;c&&c.name&&(d=T.o('/descendant::*[@usemap = "#'+c.name+'"]',A(c)))&&(e=W(d),b||"default"==a.shape.toLowerCase()||(a=jd(a),b=Math.min(Math.max(a.a,0),e.width),c=Math.min(Math.max(a.b,0),e.height),e=new U(b+e.a,c+e.b,Math.min(a.width,e.width-b),Math.min(a.height,e.height-c))));return{image:d,rect:e||new U(0,0,0,0)}}
108
+ function jd(a){var b=a.shape.toLowerCase();a=a.coords.split(",");if("rect"==b&&4==a.length){b=a[0];var c=a[1];return new U(b,c,a[2]-b,a[3]-c)}if("circle"==b&&3==a.length)return b=a[2],new U(a[0]-b,a[1]-b,2*b,2*b);if("poly"==b&&2<a.length){b=a[0];c=a[1];for(var d=b,e=c,f=2;f+1<a.length;f+=2)b=Math.min(b,a[f]),d=Math.max(d,a[f]),c=Math.min(c,a[f+1]),e=Math.max(e,a[f+1]);return new U(b,c,d-b,e-c)}return new U(0,0,0,0)}function id(a){a=W(a);return new $c(a.b,a.a+a.width,a.b+a.height,a.a)}
109
+ function kd(a){return a.replace(/^[^\S\xa0]+|[^\S\xa0]+$/g,"")}function ld(a){var b=[];ad?md(a,b):nd(a,b);a=pa(b,kd);return kd(a.join("\n")).replace(/\xa0/g," ")}
110
+ function od(a,b,c){if(S(a,"BR"))b.push("");else{var d=S(a,"TD"),e=V(a,"display"),f=!d&&!(0<=na(pd,e)),g=void 0!==a.previousElementSibling?a.previousElementSibling:gb(a.previousSibling);g=g?V(g,"display"):"";var h=V(a,"float")||V(a,"cssFloat")||V(a,"styleFloat");!f||"run-in"==g&&"none"==h||/^[\s\xa0]*$/.test(b[b.length-1]||"")||b.push("");var n=hd(a),u=null,p=null;n&&(u=V(a,"white-space"),p=V(a,"text-transform"));q(a.childNodes,function(G){c(G,b,n,u,p)});a=b[b.length-1]||"";!d&&"table-cell"!=e||!a||
111
+ ya(a)||(b[b.length-1]+=" ");f&&"run-in"!=e&&!/^[\s\xa0]*$/.test(a)&&b.push("")}}function nd(a,b){od(a,b,function(c,d,e,f,g){3==c.nodeType&&e?qd(c,d,f,g):S(c)&&nd(c,d)})}var pd="inline inline-block inline-table none table-cell table-column table-column-group".split(" ");
112
+ function qd(a,b,c,d){a=a.nodeValue.replace(/[\u200b\u200e\u200f]/g,"");a=a.replace(/(\r\n|\r|\n)/g,"\n");if("normal"==c||"nowrap"==c)a=a.replace(/\n/g," ");a="pre"==c||"pre-wrap"==c?a.replace(/[ \f\t\v\u2028\u2029]/g,"\u00a0"):a.replace(/[ \f\t\v\u2028\u2029]+/g," ");"capitalize"==d?a=a.replace(/(^|[^\d\p{L}\p{S}])([\p{Ll}|\p{S}])/gu,function(e,f,g){return f+g.toUpperCase()}):"uppercase"==d?a=a.toUpperCase():"lowercase"==d&&(a=a.toLowerCase());c=b.pop()||"";ya(c)&&0==a.lastIndexOf(" ",0)&&(a=a.substr(1));
113
+ b.push(c+a)}function gd(a){if(Pc){if("relative"==V(a,"position"))return 1;a=V(a,"filter");return(a=a.match(/^alpha\(opacity=(\d*)\)/)||a.match(/^progid:DXImageTransform.Microsoft.Alpha\(Opacity=(\d*)\)/))?Number(a[1])/100:1}return rd(a)}function rd(a){var b=1,c=V(a,"opacity");c&&(b=Number(c));(a=bd(a))&&(b*=rd(a));return b}
114
+ function sd(a,b,c,d,e){if(3==a.nodeType&&c)qd(a,b,d,e);else if(S(a))if(S(a,"CONTENT")||S(a,"SLOT")){for(var f=a;f.parentNode;)f=f.parentNode;f instanceof ShadowRoot?(a=S(a,"CONTENT")?a.getDistributedNodes():a.assignedNodes(),q(a,function(g){sd(g,b,c,d,e)})):md(a,b)}else if(S(a,"SHADOW")){for(f=a;f.parentNode;)f=f.parentNode;if(f instanceof ShadowRoot&&(a=f))for(a=a.olderShadowRoot;a;)q(a.childNodes,function(g){sd(g,b,c,d,e)}),a=a.olderShadowRoot}else md(a,b)}
115
+ function md(a,b){a.shadowRoot&&q(a.shadowRoot.childNodes,function(c){sd(c,b,!0,null,null)});od(a,b,function(c,d,e,f,g){var h=null;1==c.nodeType?h=c:3==c.nodeType&&(h=c);null!=h&&(null!=h.assignedSlot||h.getDestinationInsertionPoints&&0<h.getDestinationInsertionPoints().length)||sd(c,d,e,f,g)})};var td={C:function(a,b){return!(!a.querySelectorAll||!a.querySelector)&&!/^\d.*/.test(b)},o:function(a,b){var c=eb(b),d="string"===typeof a?c.a.getElementById(a):a;return d?Xc(d,"id")==a&&b!=d&&hb(b,d)?d:ta(mb(c,"*"),function(e){return Xc(e,"id")==a&&b!=e&&hb(b,e)}):null},j:function(a,b){if(!a)return[];if(td.C(b,a))try{return b.querySelectorAll("#"+td.T(a))}catch(c){return[]}b=mb(eb(b),"*",null,b);return oa(b,function(c){return Xc(c,"id")==a})},T:function(a){return a.replace(/([\s'"\\#.:;,!?+<>=~*^$|%&@`{}\-\/\[\]\(\)])/g,
116
+ "\\$1")}};var Y={},ud={};Y.N=function(a,b,c){try{var d=Qc.j("a",b)}catch(e){d=mb(eb(b),"A",null,b)}return ta(d,function(e){e=ld(e);e=e.replace(/^[\s]+|[\s]+$/g,"");return c&&-1!=e.indexOf(a)||e==a})};Y.K=function(a,b,c){try{var d=Qc.j("a",b)}catch(e){d=mb(eb(b),"A",null,b)}return oa(d,function(e){e=ld(e);e=e.replace(/^[\s]+|[\s]+$/g,"");return c&&-1!=e.indexOf(a)||e==a})};Y.o=function(a,b){return Y.N(a,b,!1)};Y.j=function(a,b){return Y.K(a,b,!1)};ud.o=function(a,b){return Y.N(a,b,!0)};
117
+ ud.j=function(a,b){return Y.K(a,b,!0)};var Z={F:function(a,b){return function(c){var d=Z.u(a);d=W(d);c=W(c);return b.call(null,d,c)}},R:function(a){return Z.F(a,function(b,c){return c.b+c.height<b.b})},S:function(a){return Z.F(a,function(b,c){return b.b+b.height<c.b})},V:function(a){return Z.F(a,function(b,c){return c.a+c.width<b.a})},aa:function(a){return Z.F(a,function(b,c){return b.a+b.width<c.a})},W:function(a,b){var c;b?c=b:"number"==typeof a.distance&&(c=a.distance);c||(c=100);return function(d){var e=Z.u(a);if(e===d)return!1;e=
118
+ W(e);d=W(d);var f=Math.abs(e.a+e.width-d.a),g=Math.abs(e.b+e.height-d.b);g=Math.abs(e.b-(d.b+d.height))<=c||g<=c;return(Math.abs(e.a-(d.a+d.width))<=c||f<=c)&&g?!0:Math.sqrt(Math.pow(Math.abs(e.a+e.width/2-(d.a+d.width/2)),2)+Math.pow(Math.abs(e.b+e.height/2-(d.b+d.height/2)),2))<=c}},u:function(a){if(ea(a)&&1==a.nodeType)return a;if(da(a))return Z.u(a.call(null));if(ea(a)){var b;a:{if(b=vd(a)){var c=wd[b];if(c&&da(c.o)){b=c.o(a[b],Bc.document);break a}}throw new P(61,"Unsupported locator strategy: "+
119
+ b);}if(!b)throw new P(7,"No element has been found by "+JSON.stringify(a));return b}throw new P(61,"Selector is of wrong type: "+JSON.stringify(a));}};Z.P={left:Z.V,right:Z.aa,above:Z.R,below:Z.S,near:Z.W};Z.O={left:Z.u,right:Z.u,above:Z.u,below:Z.u,near:Z.u};
120
+ Z.U=function(a,b){var c=[];q(a,function(e){e&&sa(b,function(f){var g=f.kind,h=Z.P[g];if(!h)throw new P(61,"Cannot find filter suitable for "+g);return h.apply(null,f.args)(e)},null)&&c.push(e)},null);a=b[b.length-1];var d=Z.O[a?a.kind:"unknown"];return d?(a=d.apply(null,a.args))?Z.ba(a,c):c:c};
121
+ Z.ba=function(a,b){function c(f){f=W(f);return Math.sqrt(Math.pow(d-(f.a+Math.max(1,f.width)/2),2)+Math.pow(e-(f.b+Math.max(1,f.height)/2),2))}a=W(a);var d=a.a+Math.max(1,a.width)/2,e=a.b+Math.max(1,a.height)/2;wa(b,function(f,g){return c(f)-c(g)});return b};Z.o=function(a,b){a=Z.j(a,b);return 0==a.length?null:a[0]};
122
+ Z.j=function(a,b){if(!a.hasOwnProperty("root")||!a.hasOwnProperty("filters"))throw new P(61,"Locator not suitable for relative locators: "+JSON.stringify(a));var c=a.filters,d=ca(c);if("array"!=d&&("object"!=d||"number"!=typeof c.length))throw new P(61,"Targets should be an array: "+JSON.stringify(a));var e;S(a.root)?e=[a.root]:e=xd(a.root,b);return 0==e.length?[]:Z.U(e,a.filters)};var yd={o:function(a,b){if(""===a)throw new P(32,'Unable to locate an element with the tagName ""');return b.getElementsByTagName(a)[0]||null},j:function(a,b){if(""===a)throw new P(32,'Unable to locate an element with the tagName ""');return b.getElementsByTagName(a)}};var wd={className:Dc,"class name":Dc,css:Qc,"css selector":Qc,relative:Z,id:td,linkText:Y,"link text":Y,name:{o:function(a,b){b=mb(eb(b),"*",null,b);return ta(b,function(c){return Xc(c,"name")==a})},j:function(a,b){b=mb(eb(b),"*",null,b);return oa(b,function(c){return Xc(c,"name")==a})}},partialLinkText:ud,"partial link text":ud,tagName:yd,"tag name":yd,xpath:T};function vd(a){for(var b in a)if(a.hasOwnProperty(b))return b;return null}
123
+ function xd(a,b){var c=vd(a);if(c){var d=wd[c];if(d&&da(d.j))return d.j(a[c],b||Bc.document)}throw new P(61,"Unsupported locator strategy: "+c);};ba("_",xd);; return this._.apply(null,arguments);}).apply({navigator:typeof window!='undefined'?window.navigator:null,document:typeof window!='undefined'?window.document:null}, arguments);}
@@ -33,7 +33,9 @@ module Selenium
33
33
  include DriverExtensions::DownloadsFiles
34
34
  include DriverExtensions::HasDevTools
35
35
  include DriverExtensions::HasAuthentication
36
+ include DriverExtensions::HasLogs
36
37
  include DriverExtensions::HasLogEvents
38
+ include DriverExtensions::PrintsPage
37
39
 
38
40
  def browser
39
41
  :chrome
@@ -49,6 +51,10 @@ module Selenium
49
51
 
50
52
  private
51
53
 
54
+ def devtools_version
55
+ Integer(capabilities.browser_version.split('.').first)
56
+ end
57
+
52
58
  def debugger_address
53
59
  capabilities['goog:chromeOptions']['debuggerAddress']
54
60
  end
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Licensed to the Software Freedom Conservancy (SFC) under one
4
+ # or more contributor license agreements. See the NOTICE file
5
+ # distributed with this work for additional information
6
+ # regarding copyright ownership. The SFC licenses this file
7
+ # to you under the Apache License, Version 2.0 (the
8
+ # "License"); you may not use this file except in compliance
9
+ # with the License. You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing,
14
+ # software distributed under the License is distributed on an
15
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
+ # KIND, either express or implied. See the License for the
17
+ # specific language governing permissions and limitations
18
+ # under the License.
19
+
20
+ module Selenium
21
+ module WebDriver
22
+ module Chrome
23
+ module Features
24
+
25
+ CHROME_COMMANDS = {
26
+ get_network_conditions: [:get, 'session/:session_id/chromium/network_conditions'],
27
+ set_network_conditions: [:post, 'session/:session_id/chromium/network_conditions'],
28
+ send_command: [:post, 'session/:session_id/goog/cdp/execute'],
29
+ get_available_log_types: [:get, 'session/:session_id/se/log/types'],
30
+ get_log: [:post, 'session/:session_id/se/log']
31
+ }.freeze
32
+
33
+ def commands(command)
34
+ CHROME_COMMANDS[command] || self.class::COMMANDS[command]
35
+ end
36
+
37
+ def network_conditions
38
+ execute :get_network_conditions
39
+ end
40
+
41
+ def send_command(command_params)
42
+ execute :send_command, {}, command_params
43
+ end
44
+
45
+ def network_conditions=(conditions)
46
+ execute :set_network_conditions, {}, {network_conditions: conditions}
47
+ end
48
+
49
+ def available_log_types
50
+ types = execute :get_available_log_types
51
+ Array(types).map(&:to_sym)
52
+ end
53
+
54
+ def log(type)
55
+ data = execute :get_log, {}, {type: type.to_s}
56
+
57
+ Array(data).map do |l|
58
+ LogEntry.new l.fetch('level', 'UNKNOWN'), l.fetch('timestamp'), l.fetch('message')
59
+ rescue KeyError
60
+ next
61
+ end
62
+ end
63
+ end # Bridge
64
+ end # Chrome
65
+ end # WebDriver
66
+ end # Selenium
@@ -21,7 +21,7 @@ module Selenium
21
21
  module WebDriver
22
22
  module Chrome
23
23
  class Options < WebDriver::Options
24
- attr_accessor :profile
24
+ attr_accessor :profile, :logging_prefs
25
25
 
26
26
  KEY = 'goog:chromeOptions'
27
27
  BROWSER = 'chrome'
@@ -29,7 +29,6 @@ module Selenium
29
29
  # see: http://chromedriver.chromium.org/capabilities
30
30
  CAPABILITIES = {args: 'args',
31
31
  binary: 'binary',
32
- extensions: 'extensions',
33
32
  local_state: 'localState',
34
33
  prefs: 'prefs',
35
34
  detach: 'detach',
@@ -40,15 +39,8 @@ module Selenium
40
39
  perf_logging_prefs: 'perfLoggingPrefs',
41
40
  window_types: 'windowTypes'}.freeze
42
41
 
43
- CAPABILITIES.each_key do |key|
44
- define_method key do
45
- @options[key]
46
- end
47
-
48
- define_method "#{key}=" do |value|
49
- @options[key] = value
50
- end
51
- end
42
+ # NOTE: special handling of 'extensions' to validate when set instead of when used
43
+ attr_reader :extensions
52
44
 
53
45
  # Create a new Options instance.
54
46
  #
@@ -74,12 +66,24 @@ module Selenium
74
66
  # @option opts [Array<String>] :window_types A list of window types to appear in the list of window handles
75
67
  #
76
68
 
77
- def initialize(profile: nil, encoded_extensions: nil, **opts)
69
+ def initialize(profile: nil, **opts)
78
70
  super(**opts)
79
71
 
80
72
  @profile = profile
81
- @options[:encoded_extensions] = encoded_extensions if encoded_extensions
82
- @options[:extensions]&.each(&method(:validate_extension))
73
+
74
+ @options = {args: [],
75
+ prefs: {},
76
+ emulation: {},
77
+ extensions: [],
78
+ local_state: {},
79
+ exclude_switches: [],
80
+ perf_logging_prefs: {},
81
+ window_types: []}.merge(@options)
82
+
83
+ @logging_prefs = options.delete(:logging_prefs) || {}
84
+ @encoded_extensions = @options.delete(:encoded_extensions) || []
85
+ @extensions = []
86
+ (@options.delete(:extensions)).each(&method(:validate_extension))
83
87
  end
84
88
 
85
89
  #
@@ -94,8 +98,21 @@ module Selenium
94
98
 
95
99
  def add_extension(path)
96
100
  validate_extension(path)
97
- @options[:extensions] ||= []
98
- @options[:extensions] << path
101
+ end
102
+
103
+ #
104
+ # Add an extension by local path.
105
+ #
106
+ # @example
107
+ # extensions = ['/path/to/extension.crx', '/path/to/other.crx']
108
+ # options = Selenium::WebDriver::Chrome::Options.new
109
+ # options.extensions = extensions
110
+ #
111
+ # @param [Array<String>] :extensions A list of paths to (.crx) Chrome extensions to install on startup
112
+ #
113
+
114
+ def extensions=(extensions)
115
+ extensions.each(&method(:validate_extension))
99
116
  end
100
117
 
101
118
  #
@@ -109,10 +126,8 @@ module Selenium
109
126
  #
110
127
 
111
128
  def add_encoded_extension(encoded)
112
- @options[:encoded_extensions] ||= []
113
- @options[:encoded_extensions] << encoded
129
+ @encoded_extensions << encoded
114
130
  end
115
- alias_method :encoded_extension=, :add_encoded_extension
116
131
 
117
132
  #
118
133
  # Add a command-line argument to use when starting Chrome.
@@ -125,7 +140,6 @@ module Selenium
125
140
  #
126
141
 
127
142
  def add_argument(arg)
128
- @options[:args] ||= []
129
143
  @options[:args] << arg
130
144
  end
131
145
 
@@ -141,7 +155,6 @@ module Selenium
141
155
  #
142
156
 
143
157
  def add_preference(name, value)
144
- @options[:prefs] ||= {}
145
158
  @options[:prefs][name] = value
146
159
  end
147
160
 
@@ -182,19 +195,23 @@ module Selenium
182
195
 
183
196
  private
184
197
 
198
+ def enable_logging(browser_options)
199
+ browser_options['goog:loggingPrefs'] = @logging_prefs
200
+ end
201
+
185
202
  def process_browser_options(browser_options)
186
- options = browser_options[KEY]
203
+ enable_logging(browser_options) unless @logging_prefs.empty?
204
+
205
+ options = browser_options[self.class::KEY]
187
206
  options['binary'] ||= binary_path if binary_path
188
- (options['args'] || []) << "--user-data-dir=#{@profile.directory}" if @profile
189
- merge_extensions(options)
190
- end
207
+ if @profile
208
+ options['args'] ||= []
209
+ options['args'] << "--user-data-dir=#{@profile.directory}"
210
+ end
191
211
 
192
- def merge_extensions(browser_options)
193
- extensions = browser_options['extensions'] || []
194
- encoded_extensions = browser_options.delete(:encoded_extensions) || []
212
+ return if (@encoded_extensions + @extensions).empty?
195
213
 
196
- browser_options['extensions'] = extensions.map(&method(:encode_extension)) + encoded_extensions
197
- browser_options.delete('extensions') if browser_options['extensions'].empty?
214
+ options['extensions'] = @encoded_extensions + @extensions.map(&method(:encode_extension))
198
215
  end
199
216
 
200
217
  def binary_path
@@ -208,17 +225,12 @@ module Selenium
208
225
  def validate_extension(path)
209
226
  raise Error::WebDriverError, "could not find extension at #{path.inspect}" unless File.file?(path)
210
227
  raise Error::WebDriverError, "file was not an extension #{path.inspect}" unless File.extname(path) == '.crx'
228
+
229
+ @extensions << path
211
230
  end
212
231
 
213
- def generate_as_json(value, camelize_keys: true)
214
- if value.is_a?(Hash)
215
- value.each_with_object({}) do |(key, val), hash|
216
- key = convert_json_key(key, camelize: camelize_keys)
217
- hash[key] = generate_as_json(val, camelize_keys: key != 'prefs')
218
- end
219
- else
220
- super
221
- end
232
+ def camelize?(key)
233
+ !['prefs'].include?(key)
222
234
  end
223
235
  end # Options
224
236
  end # Chrome