summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2019-09-03 15:18:23 +0200
committerJules Laplace <julescarbon@gmail.com>2019-09-03 15:18:23 +0200
commit6f2af841c17ff4ed28d40121114825a40e8cf6fa (patch)
tree5cc68e65c61e85ada066e45cf62805b60b24cf67
parentbea0583348a3e7de85d4fed5e7fe206fb90fcc73 (diff)
updating rems
-rwxr-xr-xStoneIsland/config.xml5
-rw-r--r--StoneIsland/package-lock.json3862
-rw-r--r--StoneIsland/package.json8
-rw-r--r--StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/fileHashes.binbin406323 -> 406673 bytes
-rw-r--r--StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/fileSnapshots.binbin2220968 -> 4412325 bytes
-rw-r--r--StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/taskArtifacts.binbin128032 -> 225240 bytes
-rw-r--r--StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/taskArtifacts.lockbin17 -> 17 bytes
-rw-r--r--StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lockbin17 -> 17 bytes
-rw-r--r--StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lockbin17 -> 17 bytes
-rw-r--r--StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileReleaseJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lockbin17 -> 17 bytes
-rw-r--r--StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileReleaseJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lockbin17 -> 17 bytes
-rw-r--r--StoneIsland/platforms/android/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lockbin17 -> 17 bytes
-rw-r--r--StoneIsland/platforms/android/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lockbin17 -> 17 bytes
-rw-r--r--StoneIsland/platforms/android/.gradle/3.3/tasks/_compileReleaseJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lockbin17 -> 17 bytes
-rw-r--r--StoneIsland/platforms/android/.gradle/3.3/tasks/_compileReleaseJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lockbin17 -> 17 bytes
-rwxr-xr-xStoneIsland/platforms/android/AndroidManifest.xml4
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/generated/source/buildConfig/debug/org/apache/cordova/BuildConfig.java13
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/generated/source/buildConfig/release/org/apache/cordova/BuildConfig.java13
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/debug/AndroidManifest.xml27
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/debug/classes.jarbin130522 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/release/AndroidManifest.xml27
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/release/classes.jarbin130446 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/AuthenticationToken.classbin776 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/BuildConfig.classbin711 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CallbackContext.classbin3329 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CallbackMap.classbin1491 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/Config.classbin1841 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ConfigXmlParser.classbin4919 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$1.classbin943 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$2.classbin1019 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$3.classbin1522 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$4$1.classbin1090 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$4.classbin2012 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity.classbin11826 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaArgs.classbin2561 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaBridge.classbin5470 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaClientCertRequest.classbin1426 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$1.classbin1221 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$2.classbin1201 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$3.classbin1352 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$4.classbin1223 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$5.classbin1223 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$6.classbin1203 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$7.classbin1354 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$8.classbin1506 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$9.classbin1240 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$Result.classbin277 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper.classbin3796 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaHttpAuthHandler.classbin821 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaInterface.classbin725 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaInterfaceImpl$ActivityResultHolder.classbin1064 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaInterfaceImpl.classbin7855 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaPlugin.classbin6877 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaPreferences.classbin3223 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaResourceApi$OpenForReadResult.classbin905 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaResourceApi.classbin12711 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebView.classbin2239 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewEngine$Client.classbin549 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewEngine$EngineView.classbin308 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewEngine.classbin1170 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$1.classbin1660 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$2.classbin1560 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$3.classbin1468 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$EngineClient$1$1.classbin1256 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$EngineClient$1.classbin1482 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$EngineClient.classbin4953 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl.classbin16044 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$1.classbin1027 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$2.classbin748 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$3.classbin737 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$4.classbin748 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$5.classbin1988 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid.classbin9479 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ExposedJsApi.classbin442 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ICordovaClientCertRequest.classbin443 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ICordovaCookieManager.classbin345 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ICordovaHttpAuthHandler.classbin229 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/LOG.classbin3616 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$BridgeMode.classbin814 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode$1.classbin1456 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode.classbin1544 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$JsMessage.classbin4360 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode$1.classbin1594 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode.classbin1562 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$NoOpBridgeMode.classbin712 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$1.classbin1407 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$2.classbin1733 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$OnlineEventsBridgeModeDelegate.classbin499 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode.classbin2619 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue.classbin7448 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginEntry.classbin1042 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginManager.classbin12314 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginResult$Status.classbin1651 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginResult.classbin5908 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ResumeCallback.classbin2995 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/Whitelist$URLPattern.classbin3133 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/Whitelist.classbin2952 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemCookieManager.classbin1843 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemExposedJsApi.classbin1433 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$1.classbin1202 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$2.classbin1204 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$3.classbin1270 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$4.classbin1707 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$5.classbin1787 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient.classbin10992 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebView.classbin2658 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewClient.classbin9561 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewEngine$1.classbin1841 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewEngine$2.classbin1050 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewEngine.classbin12258 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/AuthenticationToken.classbin776 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/BuildConfig.classbin576 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CallbackContext.classbin3329 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CallbackMap.classbin1491 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/Config.classbin1841 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ConfigXmlParser.classbin4919 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$1.classbin943 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$2.classbin1019 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$3.classbin1522 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$4$1.classbin1090 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$4.classbin2012 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity.classbin11826 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaArgs.classbin2561 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaBridge.classbin5470 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaClientCertRequest.classbin1426 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$1.classbin1221 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$2.classbin1201 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$3.classbin1352 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$4.classbin1223 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$5.classbin1223 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$6.classbin1203 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$7.classbin1354 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$8.classbin1506 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$9.classbin1240 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$Result.classbin277 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper.classbin3796 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaHttpAuthHandler.classbin821 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaInterface.classbin725 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaInterfaceImpl$ActivityResultHolder.classbin1064 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaInterfaceImpl.classbin7855 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaPlugin.classbin6877 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaPreferences.classbin3223 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaResourceApi$OpenForReadResult.classbin905 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaResourceApi.classbin12711 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebView.classbin2239 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewEngine$Client.classbin549 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewEngine$EngineView.classbin308 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewEngine.classbin1170 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$1.classbin1660 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$2.classbin1560 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$3.classbin1468 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$EngineClient$1$1.classbin1256 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$EngineClient$1.classbin1482 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$EngineClient.classbin4953 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl.classbin16044 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$1.classbin1027 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$2.classbin748 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$3.classbin737 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$4.classbin748 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$5.classbin1988 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid.classbin9479 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ExposedJsApi.classbin442 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ICordovaClientCertRequest.classbin443 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ICordovaCookieManager.classbin345 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ICordovaHttpAuthHandler.classbin229 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/LOG.classbin3616 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$BridgeMode.classbin814 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode$1.classbin1456 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode.classbin1544 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$JsMessage.classbin4360 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode$1.classbin1594 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode.classbin1562 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$NoOpBridgeMode.classbin712 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$1.classbin1407 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$2.classbin1733 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$OnlineEventsBridgeModeDelegate.classbin499 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode.classbin2619 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue.classbin7448 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginEntry.classbin1042 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginManager.classbin12314 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginResult$Status.classbin1651 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginResult.classbin5908 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ResumeCallback.classbin2995 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/Whitelist$URLPattern.classbin3133 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/Whitelist.classbin2952 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemCookieManager.classbin1843 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemExposedJsApi.classbin1433 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$1.classbin1202 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$2.classbin1204 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$3.classbin1270 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$4.classbin1707 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$5.classbin1787 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient.classbin10992 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebView.classbin2658 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewClient.classbin9561 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewEngine$1.classbin1841 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewEngine$2.classbin1050 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewEngine.classbin12258 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental-safeguard/debug/tag.txt1
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental-safeguard/release/tag.txt1
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/compileDebugAidl/dependency.storebin5 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/compileReleaseAidl/dependency.storebin5 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugAssets/merger.xml2
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml2
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugShaders/merger.xml2
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseAssets/merger.xml2
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseJniLibFolders/merger.xml2
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseShaders/merger.xml2
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageDebugResources/compile-file-map.properties1
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageDebugResources/merger.xml2
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageReleaseResources/compile-file-map.properties1
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageReleaseResources/merger.xml2
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/manifests/aapt/debug/AndroidManifest.xml27
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/intermediates/manifests/aapt/release/AndroidManifest.xml27
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/outputs/aar/CordovaLib-debug.aarbin117856 -> 0 bytes
-rw-r--r--StoneIsland/platforms/android/CordovaLib/build/outputs/aar/CordovaLib-release.aarbin117781 -> 0 bytes
-rwxr-xr-xStoneIsland/platforms/android/android.json814
-rwxr-xr-xStoneIsland/platforms/android/assets/www/cordova_plugins.js19
-rwxr-xr-xStoneIsland/platforms/android/assets/www/css/account.css115
-rwxr-xr-xStoneIsland/platforms/android/assets/www/css/blogs.css52
-rwxr-xr-xStoneIsland/platforms/android/assets/www/css/cart.css73
-rwxr-xr-xStoneIsland/platforms/android/assets/www/css/index.css17
-rwxr-xr-xStoneIsland/platforms/android/assets/www/css/nav.css86
-rwxr-xr-xStoneIsland/platforms/android/assets/www/css/products.css45
-rwxr-xr-xStoneIsland/platforms/android/assets/www/index.html529
-rwxr-xr-xStoneIsland/platforms/android/assets/www/js/index.js7
-rwxr-xr-xStoneIsland/platforms/android/assets/www/js/lib/account/AccountView.js2
-rwxr-xr-xStoneIsland/platforms/android/assets/www/js/lib/blogs/ArchiveView.js1
-rwxr-xr-xStoneIsland/platforms/android/assets/www/js/lib/blogs/HubView.js12
-rwxr-xr-xStoneIsland/platforms/android/assets/www/js/lib/blogs/StoryView.js1
-rwxr-xr-xStoneIsland/platforms/android/assets/www/js/lib/cart/CartSummary.js7
-rw-r--r--StoneIsland/platforms/android/assets/www/js/lib/etc/accessibility.js9
-rwxr-xr-xStoneIsland/platforms/android/assets/www/js/lib/nav/AddressView.js18
-rwxr-xr-xStoneIsland/platforms/android/assets/www/js/lib/nav/CreditCardView.js4
-rwxr-xr-xStoneIsland/platforms/android/assets/www/js/lib/products/CollectionView.js2
-rwxr-xr-xStoneIsland/platforms/android/assets/www/js/lib/products/GalleryView.js9
-rwxr-xr-xStoneIsland/platforms/android/assets/www/js/lib/products/ProductView.js4
-rwxr-xr-xStoneIsland/platforms/android/assets/www/js/lib/products/Selector.js2
-rwxr-xr-xStoneIsland/platforms/android/assets/www/js/lib/view/Serializable.js7
-rwxr-xr-xStoneIsland/platforms/android/assets/www/js/vendor/iscroll-5.1.3.js2011
-rw-r--r--[-rwxr-xr-x]StoneIsland/platforms/android/assets/www/js/vendor/iscroll.js3319
-rw-r--r--StoneIsland/platforms/android/assets/www/plugins/com.phonegap.plugin.mobile-accessibility/android/AndroidVox_v1.js1778
-rw-r--r--StoneIsland/platforms/android/assets/www/plugins/com.phonegap.plugin.mobile-accessibility/android/chromeandroidvox.js1778
-rw-r--r--StoneIsland/platforms/android/assets/www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js53
-rw-r--r--StoneIsland/platforms/android/assets/www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js502
-rwxr-xr-xStoneIsland/platforms/android/platform_www/cordova_plugins.js19
-rw-r--r--StoneIsland/platforms/android/platform_www/plugins/com.phonegap.plugin.mobile-accessibility/android/AndroidVox_v1.js1778
-rw-r--r--StoneIsland/platforms/android/platform_www/plugins/com.phonegap.plugin.mobile-accessibility/android/chromeandroidvox.js1778
-rw-r--r--StoneIsland/platforms/android/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js53
-rw-r--r--StoneIsland/platforms/android/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js502
-rw-r--r--StoneIsland/platforms/android/res/xml/config.xml9
-rw-r--r--StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/AbstractMobileAccessibilityHelper.java41
-rw-r--r--StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/DonutMobileAccessibilityHelper.java187
-rw-r--r--StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/IceCreamSandwichMobileAccessibilityHelper.java104
-rw-r--r--StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/JellyBeanMobileAccessibilityHelper.java52
-rw-r--r--StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/KitKatMobileAccessibilityHelper.java99
-rw-r--r--StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/MobileAccessibility.java330
-rw-r--r--StoneIsland/platforms/ios/CordovaLib/CordovaLib.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist10
-rw-r--r--StoneIsland/platforms/ios/Stone Island.xcarchive/Info.plist6
-rw-r--r--StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Assets.carbin1178536 -> 1178600 bytes
-rw-r--r--StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nibbin2284 -> 2283 bytes
-rw-r--r--StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nibbin832 -> 832 bytes
-rw-r--r--StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Info.plistbin1763 -> 1763 bytes
-rw-r--r--StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/MainViewController.nibbin943 -> 943 bytes
-rwxr-xr-xStoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Stone Islandbin2252768 -> 2269760 bytes
-rw-r--r--StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/_CodeSignature/CodeResources173
-rwxr-xr-xStoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/config.xml2
-rw-r--r--StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/embedded.mobileprovisionbin7741 -> 7717 bytes
-rwxr-xr-xStoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/account.css115
-rwxr-xr-xStoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/blogs.css52
-rwxr-xr-xStoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/cart.css73
-rwxr-xr-xStoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/index.css17
-rwxr-xr-xStoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/nav.css81
-rwxr-xr-xStoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/products.css45
-rwxr-xr-xStoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/index.html529
-rwxr-xr-xStoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/index.js4
-rwxr-xr-xStoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/AccountView.js2
-rwxr-xr-xStoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/ArchiveView.js1
-rwxr-xr-xStoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/HubView.js12
-rwxr-xr-xStoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/StoryView.js1
-rwxr-xr-xStoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartSummary.js7
-rw-r--r--StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/accessibility.js9
-rwxr-xr-xStoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/AddressView.js18
-rwxr-xr-xStoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/CreditCardView.js4
-rwxr-xr-xStoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/CollectionView.js2
-rwxr-xr-xStoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/GalleryView.js9
-rwxr-xr-xStoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/ProductView.js4
-rwxr-xr-xStoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/Selector.js2
-rwxr-xr-xStoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/Serializable.js7
-rwxr-xr-xStoneIsland/platforms/ios/Stone Island.xcodeproj/project.pbxproj10
-rw-r--r--StoneIsland/platforms/ios/Stone Island.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist5
-rw-r--r--StoneIsland/platforms/ios/Stone Island.xcworkspace/xcuserdata/user.xcuserdatad/UserInterfaceState.xcuserstatebin29694 -> 37285 bytes
-rw-r--r--StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-mobile-accessibility/CDVMobileAccessibility.h82
-rw-r--r--StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-mobile-accessibility/CDVMobileAccessibility.m511
-rw-r--r--StoneIsland/platforms/ios/Stone Island/Stone Island-Info.plist4
-rwxr-xr-xStoneIsland/platforms/ios/Stone Island/config.xml5
-rw-r--r--StoneIsland/platforms/ios/frameworks.json3
-rw-r--r--StoneIsland/platforms/ios/ios.json674
-rw-r--r--StoneIsland/platforms/ios/platform_www/cordova_plugins.js19
-rw-r--r--StoneIsland/platforms/ios/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js53
-rw-r--r--StoneIsland/platforms/ios/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js502
-rw-r--r--StoneIsland/platforms/ios/www/cordova_plugins.js19
-rwxr-xr-xStoneIsland/platforms/ios/www/css/account.css123
-rwxr-xr-xStoneIsland/platforms/ios/www/css/blogs.css97
-rwxr-xr-xStoneIsland/platforms/ios/www/css/cart.css80
-rwxr-xr-xStoneIsland/platforms/ios/www/css/index.css17
-rwxr-xr-xStoneIsland/platforms/ios/www/css/nav.css93
-rwxr-xr-xStoneIsland/platforms/ios/www/css/products.css51
-rwxr-xr-xStoneIsland/platforms/ios/www/css/vendor/flickity.css2
-rwxr-xr-xStoneIsland/platforms/ios/www/index.html530
-rwxr-xr-xStoneIsland/platforms/ios/www/js/index.js16
-rwxr-xr-xStoneIsland/platforms/ios/www/js/lib/account/AccountView.js2
-rwxr-xr-xStoneIsland/platforms/ios/www/js/lib/blogs/ArchiveView.js1
-rwxr-xr-xStoneIsland/platforms/ios/www/js/lib/blogs/HubView.js12
-rwxr-xr-xStoneIsland/platforms/ios/www/js/lib/blogs/StoryView.js2
-rwxr-xr-xStoneIsland/platforms/ios/www/js/lib/cart/CartSummary.js7
-rw-r--r--StoneIsland/platforms/ios/www/js/lib/etc/accessibility.js9
-rwxr-xr-xStoneIsland/platforms/ios/www/js/lib/nav/AddressView.js18
-rwxr-xr-xStoneIsland/platforms/ios/www/js/lib/nav/CreditCardView.js4
-rwxr-xr-xStoneIsland/platforms/ios/www/js/lib/nav/NavView.js12
-rwxr-xr-xStoneIsland/platforms/ios/www/js/lib/products/CollectionView.js2
-rwxr-xr-xStoneIsland/platforms/ios/www/js/lib/products/GalleryView.js9
-rwxr-xr-xStoneIsland/platforms/ios/www/js/lib/products/ProductView.js4
-rwxr-xr-xStoneIsland/platforms/ios/www/js/lib/products/Selector.js2
-rwxr-xr-xStoneIsland/platforms/ios/www/js/lib/view/Serializable.js7
-rwxr-xr-xStoneIsland/platforms/ios/www/js/vendor/iscroll-5.1.3.js2011
-rw-r--r--[-rwxr-xr-x]StoneIsland/platforms/ios/www/js/vendor/iscroll.js3319
-rw-r--r--StoneIsland/platforms/ios/www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js53
-rw-r--r--StoneIsland/platforms/ios/www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js502
329 files changed, 23381 insertions, 6937 deletions
diff --git a/StoneIsland/config.xml b/StoneIsland/config.xml
index 64634d01..cfe778f7 100755
--- a/StoneIsland/config.xml
+++ b/StoneIsland/config.xml
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
-<widget android-versionCode="6120" id="us.okfoc.stoneisland" version="1.2.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
+<widget android-versionCode="6121" id="us.okfoc.stoneisland" version="1.2.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>Stone Island</name>
<description>
Stone Island
@@ -33,7 +33,8 @@
<platform name="android">
<allow-intent href="market:*" />
<preference name="AndroidLaunchMode" value="singleTop" />
- <preference name="android-minSdkVersion" value="26" />
+ <preference name="android-minSdkVersion" value="28" />
+ <preference name="android-targetSdkVersion" value="28" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
diff --git a/StoneIsland/package-lock.json b/StoneIsland/package-lock.json
index 2c8aec33..a6e74427 100644
--- a/StoneIsland/package-lock.json
+++ b/StoneIsland/package-lock.json
@@ -5,50 +5,74 @@
"requires": true,
"dependencies": {
"JSONStream": {
- "version": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.0.tgz",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.0.tgz",
"integrity": "sha1-aAq5rGVyqKGiB+CzhyHbHHeyFeU=",
"requires": {
- "jsonparse": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.0.tgz",
- "through": "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
+ "jsonparse": "^1.2.0",
+ "through": ">=2.2.7 <3"
}
},
"abbrev": {
- "version": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz",
"integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8="
},
"accepts": {
- "version": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz",
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz",
"integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=",
"requires": {
- "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz",
- "negotiator": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz"
+ "mime-types": "~2.1.11",
+ "negotiator": "0.6.1"
}
},
"acorn": {
- "version": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz",
"integrity": "sha1-yM4n3grMdtiW0rH6099YjZ6C8BQ="
},
"aliasify": {
- "version": "https://registry.npmjs.org/aliasify/-/aliasify-1.9.0.tgz",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/aliasify/-/aliasify-1.9.0.tgz",
"integrity": "sha1-A6oaX+W0ysYE47lnvEx86s+VcDA=",
"requires": {
- "browserify-transform-tools": "https://registry.npmjs.org/browserify-transform-tools/-/browserify-transform-tools-1.5.3.tgz"
+ "browserify-transform-tools": "~1.5.1"
+ }
+ },
+ "android-versions": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/android-versions/-/android-versions-1.4.0.tgz",
+ "integrity": "sha512-GnomfYsBq+nZh3c3UH/4r9Jt6FuTxdhUJbeHIdYOH5xBhQ8I0ZzC2/RM5IFFIjrzuNWSHb8JWP1lPK0/a26jrg==",
+ "requires": {
+ "semver": "^5.4.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
+ "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
+ }
}
},
"ansi": {
- "version": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz",
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz",
"integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE="
},
"ansi-escapes": {
- "version": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
"integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4="
},
"ansi-regex": {
- "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
},
"ansi-styles": {
- "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
},
"ansicolors": {
@@ -62,19 +86,23 @@
"integrity": "sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk="
},
"array-filter": {
- "version": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz",
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz",
"integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw="
},
"array-flatten": {
- "version": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
},
"array-map": {
- "version": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz",
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz",
"integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI="
},
"array-reduce": {
- "version": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz",
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz",
"integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys="
},
"asap": {
@@ -83,38 +111,44 @@
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
},
"asn1": {
- "version": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz",
+ "version": "0.1.11",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz",
"integrity": "sha1-VZvhg3bQik7E2+gId9J4GGObLfc="
},
"asn1.js": {
- "version": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz",
+ "version": "4.9.1",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz",
"integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=",
"requires": {
- "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "minimalistic-assert": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz"
+ "bn.js": "^4.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
}
},
"assert": {
- "version": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
"integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
"requires": {
- "util": "https://registry.npmjs.org/util/-/util-0.10.3.tgz"
+ "util": "0.10.3"
}
},
"assert-plus": {
- "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz",
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz",
"integrity": "sha1-7nQAlBMALYTOxyGcasgRgS5yMWA="
},
"astw": {
- "version": "https://registry.npmjs.org/astw/-/astw-2.0.0.tgz",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astw/-/astw-2.0.0.tgz",
"integrity": "sha1-CBIayCiNNWEcDO7GY/bNVFYEiX0=",
"requires": {
- "acorn": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz"
+ "acorn": "^1.0.3"
}
},
"async": {
- "version": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
"integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0="
},
"async-some": {
@@ -122,23 +156,27 @@
"resolved": "https://registry.npmjs.org/async-some/-/async-some-1.0.2.tgz",
"integrity": "sha1-TYqBYg1ZWHkbW5j4AtMgd3bpVQk=",
"requires": {
- "dezalgo": "1.0.3"
+ "dezalgo": "^1.0.2"
}
},
"asynckit": {
- "version": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
},
"aws-sign2": {
- "version": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz",
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz",
"integrity": "sha1-xXED96F/wDfwLXwuZLYC6iI/fWM="
},
"aws4": {
- "version": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
"integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4="
},
"balanced-match": {
- "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
"integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg="
},
"base64-js": {
@@ -147,682 +185,632 @@
"integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw=="
},
"bcrypt-pbkdf": {
- "version": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
"integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
"optional": true,
"requires": {
- "tweetnacl": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"
+ "tweetnacl": "^0.14.3"
}
},
"big-integer": {
- "version": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.17.tgz",
+ "version": "1.6.17",
+ "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.17.tgz",
"integrity": "sha1-8Nz1EJqUnkKpk+4+j7IHBFKBe1E="
},
"bl": {
- "version": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz",
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz",
"integrity": "sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ=",
"requires": {
- "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz"
+ "readable-stream": "~1.0.26"
},
"dependencies": {
"readable-stream": {
- "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
"integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
"requires": {
- "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
}
}
}
},
"block-stream": {
- "version": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
+ "version": "0.0.9",
+ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
"integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
"requires": {
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+ "inherits": "~2.0.0"
}
},
"bn.js": {
- "version": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
"integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU="
},
"boom": {
- "version": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz",
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz",
"integrity": "sha1-emNune1O/O+xnO9JR6PGffrukRs=",
"requires": {
- "hoek": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz"
+ "hoek": "0.9.x"
}
},
"bplist-creator": {
- "version": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.4.tgz",
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.4.tgz",
"integrity": "sha1-SsBJZ4LhJ6hcHSAmpPXrIqev+ZE=",
"requires": {
- "stream-buffers": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-0.2.6.tgz"
+ "stream-buffers": "~0.2.3"
}
},
"bplist-parser": {
- "version": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.1.1.tgz",
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.1.1.tgz",
"integrity": "sha1-1g1dzCDLptx+HymbNdPh+V2vuuY=",
"requires": {
- "big-integer": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.17.tgz"
+ "big-integer": "^1.6.7"
}
},
"brace-expansion": {
- "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz",
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz",
"integrity": "sha1-cZfX6qm4fmSDkOph/GbIRCdCDfk=",
"requires": {
- "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
- "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+ "balanced-match": "^0.4.1",
+ "concat-map": "0.0.1"
}
},
"brorand": {
- "version": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
"integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8="
},
"browser-pack": {
- "version": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.0.2.tgz",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.0.2.tgz",
"integrity": "sha1-+GzWzvT1MAyOY+B6TVEvZfv/RTE=",
"requires": {
- "JSONStream": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.0.tgz",
- "combine-source-map": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.7.2.tgz",
- "defined": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
- "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
- "umd": "https://registry.npmjs.org/umd/-/umd-3.0.1.tgz"
+ "JSONStream": "^1.0.3",
+ "combine-source-map": "~0.7.1",
+ "defined": "^1.0.0",
+ "through2": "^2.0.0",
+ "umd": "^3.0.0"
}
},
"browser-resolve": {
- "version": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz",
+ "version": "1.11.2",
+ "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz",
"integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=",
"requires": {
- "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz"
+ "resolve": "1.1.7"
},
"dependencies": {
"resolve": {
- "version": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
"integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs="
}
}
},
"browserify": {
- "version": "https://registry.npmjs.org/browserify/-/browserify-13.3.0.tgz",
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/browserify/-/browserify-13.3.0.tgz",
"integrity": "sha1-tanJAgJD8McORnW+yCI7xifkFc4=",
"requires": {
- "JSONStream": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.0.tgz",
- "assert": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
- "browser-pack": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.0.2.tgz",
- "browser-resolve": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz",
- "browserify-zlib": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
- "buffer": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
- "cached-path-relative": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz",
- "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
- "console-browserify": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
- "constants-browserify": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
- "crypto-browserify": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz",
- "defined": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
- "deps-sort": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz",
- "domain-browser": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz",
- "duplexer2": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
- "events": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
- "glob": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
- "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
- "htmlescape": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz",
- "https-browserify": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "insert-module-globals": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.0.1.tgz",
- "labeled-stream-splicer": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz",
- "module-deps": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz",
- "os-browserify": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz",
- "parents": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz",
- "path-browserify": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
- "process": "https://registry.npmjs.org/process/-/process-0.11.9.tgz",
- "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "querystring-es3": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
- "read-only-stream": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz",
- "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz",
- "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.2.0.tgz",
- "shasum": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz",
- "shell-quote": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz",
- "stream-browserify": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
- "stream-http": "https://registry.npmjs.org/stream-http/-/stream-http-2.6.3.tgz",
- "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "subarg": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz",
- "syntax-error": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.1.6.tgz",
- "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
- "timers-browserify": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz",
- "tty-browserify": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
- "url": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
- "util": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
- "vm-browserify": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
- "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
+ "JSONStream": "^1.0.3",
+ "assert": "^1.4.0",
+ "browser-pack": "^6.0.1",
+ "browser-resolve": "^1.11.0",
+ "browserify-zlib": "~0.1.2",
+ "buffer": "^4.1.0",
+ "cached-path-relative": "^1.0.0",
+ "concat-stream": "~1.5.1",
+ "console-browserify": "^1.1.0",
+ "constants-browserify": "~1.0.0",
+ "crypto-browserify": "^3.0.0",
+ "defined": "^1.0.0",
+ "deps-sort": "^2.0.0",
+ "domain-browser": "~1.1.0",
+ "duplexer2": "~0.1.2",
+ "events": "~1.1.0",
+ "glob": "^7.1.0",
+ "has": "^1.0.0",
+ "htmlescape": "^1.1.0",
+ "https-browserify": "~0.0.0",
+ "inherits": "~2.0.1",
+ "insert-module-globals": "^7.0.0",
+ "labeled-stream-splicer": "^2.0.0",
+ "module-deps": "^4.0.8",
+ "os-browserify": "~0.1.1",
+ "parents": "^1.0.1",
+ "path-browserify": "~0.0.0",
+ "process": "~0.11.0",
+ "punycode": "^1.3.2",
+ "querystring-es3": "~0.2.0",
+ "read-only-stream": "^2.0.0",
+ "readable-stream": "^2.0.2",
+ "resolve": "^1.1.4",
+ "shasum": "^1.0.0",
+ "shell-quote": "^1.6.1",
+ "stream-browserify": "^2.0.0",
+ "stream-http": "^2.0.0",
+ "string_decoder": "~0.10.0",
+ "subarg": "^1.0.0",
+ "syntax-error": "^1.1.1",
+ "through2": "^2.0.0",
+ "timers-browserify": "^1.0.1",
+ "tty-browserify": "~0.0.0",
+ "url": "~0.11.0",
+ "util": "~0.10.1",
+ "vm-browserify": "~0.0.1",
+ "xtend": "^4.0.0"
},
"dependencies": {
"glob": {
- "version": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
"integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
"requires": {
- "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
- "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.2",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
}
}
},
"browserify-aes": {
- "version": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz",
"integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=",
"requires": {
- "buffer-xor": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
- "cipher-base": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz",
- "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz",
- "evp_bytestokey": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+ "buffer-xor": "^1.0.2",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.0",
+ "inherits": "^2.0.1"
}
},
"browserify-cipher": {
- "version": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz",
"integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=",
"requires": {
- "browserify-aes": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz",
- "browserify-des": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz",
- "evp_bytestokey": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz"
+ "browserify-aes": "^1.0.4",
+ "browserify-des": "^1.0.0",
+ "evp_bytestokey": "^1.0.0"
}
},
"browserify-des": {
- "version": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz",
"integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=",
"requires": {
- "cipher-base": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz",
- "des.js": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+ "cipher-base": "^1.0.1",
+ "des.js": "^1.0.0",
+ "inherits": "^2.0.1"
}
},
"browserify-rsa": {
- "version": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
"integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
"requires": {
- "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
- "randombytes": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz"
+ "bn.js": "^4.1.0",
+ "randombytes": "^2.0.1"
}
},
"browserify-sign": {
- "version": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.0.tgz",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.0.tgz",
"integrity": "sha1-EHc5EMPCBtVCCkaq2GlPgguFlo8=",
"requires": {
- "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
- "browserify-rsa": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
- "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz",
- "create-hmac": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.4.tgz",
- "elliptic": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "parse-asn1": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.0.0.tgz"
+ "bn.js": "^4.1.1",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.2",
+ "elliptic": "^6.0.0",
+ "inherits": "^2.0.1",
+ "parse-asn1": "^5.0.0"
}
},
"browserify-transform-tools": {
- "version": "https://registry.npmjs.org/browserify-transform-tools/-/browserify-transform-tools-1.5.3.tgz",
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/browserify-transform-tools/-/browserify-transform-tools-1.5.3.tgz",
"integrity": "sha1-UJycZS+2sHvw0h787rsdgm+AdUs=",
"requires": {
- "falafel": "https://registry.npmjs.org/falafel/-/falafel-1.2.0.tgz",
- "through": "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
+ "falafel": "^1.0.1",
+ "through": "^2.3.7"
}
},
"browserify-zlib": {
- "version": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
"integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=",
"requires": {
- "pako": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz"
+ "pako": "~0.2.0"
}
},
"buffer": {
- "version": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
+ "version": "4.9.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
"integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
"requires": {
- "base64-js": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz",
- "ieee754": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz",
- "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4",
+ "isarray": "^1.0.0"
},
"dependencies": {
"base64-js": {
- "version": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz",
"integrity": "sha1-o5mS1yNYSBGYK+XikLtqU9hnAPE="
},
"isarray": {
- "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
}
}
},
"buffer-shims": {
- "version": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
"integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E="
},
"buffer-xor": {
- "version": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
"integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk="
},
"builtin-modules": {
- "version": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
"integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8="
},
"builtin-status-codes": {
- "version": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
"integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug="
},
"builtins": {
- "version": "https://registry.npmjs.org/builtins/-/builtins-0.0.7.tgz",
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/builtins/-/builtins-0.0.7.tgz",
"integrity": "sha1-NVIZzWzxjb58Acx/0tznZc/cVJo="
},
"bytes": {
- "version": "https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz",
"integrity": "sha1-1baAoWW2IBc5rLYRVCqrwtjOsHA="
},
"cached-path-relative": {
- "version": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz",
"integrity": "sha1-0JxLUoAKpMB44t2BqGmqyQ0uVOc="
},
"caseless": {
- "version": "https://registry.npmjs.org/caseless/-/caseless-0.6.0.tgz",
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.6.0.tgz",
"integrity": "sha1-gWfBq4OX+1u5X5bSjlqBxQ8kesQ="
},
"chalk": {
- "version": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"requires": {
- "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "has-ansi": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
}
},
"cipher-base": {
- "version": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz",
"integrity": "sha1-7qvxlEGc6QDaMBjCB9IS8qbfCgc=",
"requires": {
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+ "inherits": "^2.0.1"
}
},
"cli-cursor": {
- "version": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
"integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
"requires": {
- "restore-cursor": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz"
+ "restore-cursor": "^1.0.1"
}
},
"cli-width": {
- "version": "https://registry.npmjs.org/cli-width/-/cli-width-1.1.1.tgz",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-1.1.1.tgz",
"integrity": "sha1-pNKT72frt7iNSk1CwMzwDE0eNm0="
},
"code-point-at": {
- "version": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
},
"combine-source-map": {
- "version": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.7.2.tgz",
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.7.2.tgz",
"integrity": "sha1-CHAxKFazB6h8xKxIbzqaYq7MwJ4=",
"requires": {
- "convert-source-map": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz",
- "inline-source-map": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz",
- "lodash.memoize": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz",
- "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz"
+ "convert-source-map": "~1.1.0",
+ "inline-source-map": "~0.6.0",
+ "lodash.memoize": "~3.0.3",
+ "source-map": "~0.5.3"
}
},
"combined-stream": {
- "version": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz",
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz",
"integrity": "sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8=",
"requires": {
- "delayed-stream": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz"
+ "delayed-stream": "0.0.5"
}
},
"commander": {
- "version": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
"integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
"requires": {
- "graceful-readlink": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz"
+ "graceful-readlink": ">= 1.0.0"
}
},
"compressible": {
- "version": "https://registry.npmjs.org/compressible/-/compressible-2.0.9.tgz",
+ "version": "2.0.9",
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.9.tgz",
"integrity": "sha1-baq04rWZwncN2eIeeokbHFp1VCU=",
"requires": {
- "mime-db": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz"
+ "mime-db": ">= 1.24.0 < 2"
}
},
"compression": {
- "version": "https://registry.npmjs.org/compression/-/compression-1.6.2.tgz",
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/compression/-/compression-1.6.2.tgz",
"integrity": "sha1-zOsSHsydCcUtetDDNQ6pPd1AK8M=",
"requires": {
- "accepts": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz",
- "bytes": "https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz",
- "compressible": "https://registry.npmjs.org/compressible/-/compressible-2.0.9.tgz",
- "debug": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
- "on-headers": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz",
- "vary": "https://registry.npmjs.org/vary/-/vary-1.1.0.tgz"
+ "accepts": "~1.3.3",
+ "bytes": "2.3.0",
+ "compressible": "~2.0.8",
+ "debug": "~2.2.0",
+ "on-headers": "~1.0.1",
+ "vary": "~1.1.0"
}
},
"concat-map": {
- "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
"concat-stream": {
- "version": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
"integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=",
"requires": {
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
- "typedarray": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"
+ "inherits": "~2.0.1",
+ "readable-stream": "~2.0.0",
+ "typedarray": "~0.0.5"
},
"dependencies": {
"isarray": {
- "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"readable-stream": {
- "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
"integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
"requires": {
- "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
- "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~1.0.6",
+ "string_decoder": "~0.10.x",
+ "util-deprecate": "~1.0.1"
}
}
}
},
"configstore": {
- "version": "https://registry.npmjs.org/configstore/-/configstore-1.4.0.tgz",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/configstore/-/configstore-1.4.0.tgz",
"integrity": "sha1-w1eB0FAdJowlxUuLF/YkDopPsCE=",
"requires": {
- "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
- "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
- "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
- "osenv": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz",
- "uuid": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
- "write-file-atomic": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.1.tgz",
- "xdg-basedir": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz"
+ "graceful-fs": "^4.1.2",
+ "mkdirp": "^0.5.0",
+ "object-assign": "^4.0.1",
+ "os-tmpdir": "^1.0.0",
+ "osenv": "^0.1.0",
+ "uuid": "^2.0.1",
+ "write-file-atomic": "^1.1.2",
+ "xdg-basedir": "^2.0.0"
}
},
"console-browserify": {
- "version": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
"integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
"requires": {
- "date-now": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz"
+ "date-now": "^0.1.4"
}
},
"constants-browserify": {
- "version": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
"integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U="
},
"content-disposition": {
- "version": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
"integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ="
},
"content-type": {
- "version": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz",
"integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0="
},
"convert-source-map": {
- "version": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz",
"integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA="
},
"cookie": {
- "version": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
"integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
},
"cookie-signature": {
- "version": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
},
"cordova": {
- "version": "https://registry.npmjs.org/cordova/-/cordova-6.5.0.tgz",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/cordova/-/cordova-6.5.0.tgz",
"integrity": "sha1-5uyBsX3VDBfEC0uHMw987Tj7C0c=",
"requires": {
- "cordova-common": "https://registry.npmjs.org/cordova-common/-/cordova-common-2.0.0.tgz",
- "cordova-lib": "https://registry.npmjs.org/cordova-lib/-/cordova-lib-6.5.0.tgz",
- "insight": "https://registry.npmjs.org/insight/-/insight-0.8.4.tgz",
- "nopt": "https://registry.npmjs.org/nopt/-/nopt-3.0.1.tgz",
- "q": "https://registry.npmjs.org/q/-/q-1.0.1.tgz",
- "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
- "update-notifier": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.5.0.tgz"
+ "cordova-common": "2.0.0",
+ "cordova-lib": "6.5.0",
+ "insight": "~0.8.2",
+ "nopt": "3.0.1",
+ "q": "1.0.1",
+ "underscore": "1.7.0",
+ "update-notifier": "^0.5.0"
}
},
"cordova-android": {
- "version": "6.2.3",
- "resolved": "https://registry.npmjs.org/cordova-android/-/cordova-android-6.2.3.tgz",
- "integrity": "sha1-JJ8hts5fHxyEenq4OxaQnb7Vqig=",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/cordova-android/-/cordova-android-8.0.0.tgz",
+ "integrity": "sha512-Ipv8HbVJpxEyYFSFLTEOaLRp0yxBtJVNbgSuDEB4naa34FzQaRWSNiiMcPJnO+x3hRXNt7pcwa46hARNzhn7+w==",
"requires": {
- "cordova-common": "2.0.2",
- "elementtree": "0.1.6",
- "nopt": "3.0.6",
- "properties-parser": "0.2.3",
- "q": "1.5.0",
- "shelljs": "0.5.3"
+ "android-versions": "^1.3.0",
+ "cordova-common": "^3.1.0",
+ "elementtree": "^0.1.7",
+ "nopt": "^4.0.1",
+ "properties-parser": "^0.3.1",
+ "q": "^1.4.1",
+ "shelljs": "^0.5.3"
},
"dependencies": {
- "abbrev": {
- "version": "1.1.0",
- "bundled": true
- },
- "ansi": {
- "version": "0.3.1",
- "bundled": true
- },
"balanced-match": {
- "version": "0.4.2",
- "bundled": true
- },
- "base64-js": {
- "version": "0.0.8",
- "bundled": true
- },
- "big-integer": {
- "version": "1.6.22",
- "bundled": true
- },
- "bplist-parser": {
- "version": "0.1.1",
- "bundled": true,
- "requires": {
- "big-integer": "1.6.22"
- }
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
},
"brace-expansion": {
- "version": "1.1.7",
- "bundled": true,
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"requires": {
- "balanced-match": "0.4.2",
+ "balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
- "concat-map": {
- "version": "0.0.1",
- "bundled": true
- },
"cordova-common": {
- "version": "2.0.2",
- "bundled": true,
- "requires": {
- "ansi": "0.3.1",
- "bplist-parser": "0.1.1",
- "cordova-registry-mapper": "1.1.15",
- "elementtree": "0.1.6",
- "glob": "5.0.15",
- "minimatch": "3.0.3",
- "osenv": "0.1.4",
- "plist": "1.2.0",
- "q": "1.5.0",
- "semver": "5.3.0",
- "shelljs": "0.5.3",
- "underscore": "1.8.3",
- "unorm": "1.4.1"
- }
- },
- "cordova-registry-mapper": {
- "version": "1.1.15",
- "bundled": true
- },
- "elementtree": {
- "version": "0.1.6",
- "bundled": true,
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-3.2.0.tgz",
+ "integrity": "sha512-EvlQ6PirfR65hGDoQvsluW00uSS2MTVIRKQ3c1Xvsddx7D5T5JgF3fHWkGik/Y/8yNcpI0zI2NcJyie2z/ak2A==",
"requires": {
- "sax": "0.3.5"
+ "ansi": "^0.3.1",
+ "bplist-parser": "^0.1.0",
+ "cross-spawn": "^6.0.5",
+ "elementtree": "0.1.7",
+ "endent": "^1.1.1",
+ "fs-extra": "^8.0.0",
+ "glob": "^7.1.2",
+ "minimatch": "^3.0.0",
+ "plist": "^3.0.1",
+ "q": "^1.4.1",
+ "strip-bom": "^3.0.0",
+ "underscore": "^1.8.3",
+ "which": "^1.3.0"
}
},
"glob": {
- "version": "5.0.15",
- "bundled": true,
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
+ "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
"requires": {
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.3",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
- }
- },
- "inflight": {
- "version": "1.0.6",
- "bundled": true,
- "requires": {
- "once": "1.4.0",
- "wrappy": "1.0.2"
- }
- },
- "inherits": {
- "version": "2.0.3",
- "bundled": true
- },
- "lodash": {
- "version": "3.10.1",
- "bundled": true
- },
- "minimatch": {
- "version": "3.0.3",
- "bundled": true,
- "requires": {
- "brace-expansion": "1.1.7"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "dependencies": {
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ }
}
},
"nopt": {
- "version": "3.0.6",
- "bundled": true,
- "requires": {
- "abbrev": "1.1.0"
- }
- },
- "once": {
- "version": "1.4.0",
- "bundled": true,
- "requires": {
- "wrappy": "1.0.2"
- }
- },
- "os-homedir": {
- "version": "1.0.2",
- "bundled": true
- },
- "os-tmpdir": {
- "version": "1.0.2",
- "bundled": true
- },
- "osenv": {
- "version": "0.1.4",
- "bundled": true,
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
+ "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
"requires": {
- "os-homedir": "1.0.2",
- "os-tmpdir": "1.0.2"
+ "abbrev": "1",
+ "osenv": "^0.1.4"
}
},
- "path-is-absolute": {
- "version": "1.0.1",
- "bundled": true
- },
- "plist": {
- "version": "1.2.0",
- "bundled": true,
+ "properties-parser": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/properties-parser/-/properties-parser-0.3.1.tgz",
+ "integrity": "sha1-ExbpU5/7/ZOEXjabIRAiq9R4dxo=",
"requires": {
- "base64-js": "0.0.8",
- "util-deprecate": "1.0.2",
- "xmlbuilder": "4.0.0",
- "xmldom": "0.1.27"
+ "string.prototype.codepointat": "^0.2.0"
}
},
- "properties-parser": {
- "version": "0.2.3",
- "bundled": true
- },
"q": {
- "version": "1.5.0",
- "bundled": true
- },
- "sax": {
- "version": "0.3.5",
- "bundled": true
- },
- "semver": {
- "version": "5.3.0",
- "bundled": true
- },
- "shelljs": {
- "version": "0.5.3",
- "bundled": true
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
+ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc="
},
"underscore": {
- "version": "1.8.3",
- "bundled": true
- },
- "unorm": {
- "version": "1.4.1",
- "bundled": true
- },
- "util-deprecate": {
- "version": "1.0.2",
- "bundled": true
- },
- "wrappy": {
- "version": "1.0.2",
- "bundled": true
- },
- "xmlbuilder": {
- "version": "4.0.0",
- "bundled": true,
- "requires": {
- "lodash": "3.10.1"
- }
- },
- "xmldom": {
- "version": "0.1.27",
- "bundled": true
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz",
+ "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg=="
}
}
},
"cordova-app-hello-world": {
- "version": "https://registry.npmjs.org/cordova-app-hello-world/-/cordova-app-hello-world-3.11.0.tgz",
+ "version": "3.11.0",
+ "resolved": "https://registry.npmjs.org/cordova-app-hello-world/-/cordova-app-hello-world-3.11.0.tgz",
"integrity": "sha1-khT+ud1xPKSBocurzuymCWbBwM8="
},
"cordova-common": {
- "version": "https://registry.npmjs.org/cordova-common/-/cordova-common-2.0.0.tgz",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-2.0.0.tgz",
"integrity": "sha1-ElCX60tQtzU87CJu0hZJGSKTrpc=",
"requires": {
- "ansi": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz",
- "bplist-parser": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.1.1.tgz",
- "cordova-registry-mapper": "https://registry.npmjs.org/cordova-registry-mapper/-/cordova-registry-mapper-1.1.15.tgz",
- "elementtree": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.7.tgz",
- "glob": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
- "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
- "osenv": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz",
- "plist": "1.2.0",
- "q": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
- "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
- "shelljs": "https://registry.npmjs.org/shelljs/-/shelljs-0.5.3.tgz",
- "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
- "unorm": "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz"
+ "ansi": "^0.3.1",
+ "bplist-parser": "^0.1.0",
+ "cordova-registry-mapper": "^1.1.8",
+ "elementtree": "^0.1.6",
+ "glob": "^5.0.13",
+ "minimatch": "^3.0.0",
+ "osenv": "^0.1.3",
+ "plist": "^1.2.0",
+ "q": "^1.4.1",
+ "semver": "^5.0.1",
+ "shelljs": "^0.5.3",
+ "underscore": "^1.8.3",
+ "unorm": "^1.3.3"
},
"dependencies": {
"base64-js": {
@@ -836,17 +824,19 @@
"integrity": "sha1-CEtQk93JJQbiWfh0uNmxr7jHlZM=",
"requires": {
"base64-js": "0.0.8",
- "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "util-deprecate": "1.0.2",
"xmlbuilder": "4.0.0",
- "xmldom": "0.1.27"
+ "xmldom": "0.1.x"
}
},
"q": {
- "version": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
"integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4="
},
"underscore": {
- "version": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
"integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI="
},
"xmlbuilder": {
@@ -854,63 +844,69 @@
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.0.0.tgz",
"integrity": "sha1-mLj2UcowqmJANvEn0RzGbce5B6M=",
"requires": {
- "lodash": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz"
+ "lodash": "^3.5.0"
}
}
}
},
"cordova-create": {
- "version": "https://registry.npmjs.org/cordova-create/-/cordova-create-1.0.2.tgz",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/cordova-create/-/cordova-create-1.0.2.tgz",
"integrity": "sha1-y5u6mBfGKmRbrLbgDajMUJNqD6U=",
"requires": {
- "cordova-app-hello-world": "https://registry.npmjs.org/cordova-app-hello-world/-/cordova-app-hello-world-3.11.0.tgz",
- "cordova-common": "https://registry.npmjs.org/cordova-common/-/cordova-common-2.0.0.tgz",
- "cordova-fetch": "https://registry.npmjs.org/cordova-fetch/-/cordova-fetch-1.0.2.tgz",
- "q": "https://registry.npmjs.org/q/-/q-1.0.1.tgz",
- "shelljs": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz",
- "valid-identifier": "https://registry.npmjs.org/valid-identifier/-/valid-identifier-0.0.1.tgz"
+ "cordova-app-hello-world": "^3.11.0",
+ "cordova-common": "2.0.0",
+ "cordova-fetch": "1.0.2",
+ "q": "1.0.1",
+ "shelljs": "0.3.0",
+ "valid-identifier": "0.0.1"
},
"dependencies": {
"shelljs": {
- "version": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz",
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz",
"integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E="
}
}
},
"cordova-fetch": {
- "version": "https://registry.npmjs.org/cordova-fetch/-/cordova-fetch-1.0.2.tgz",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/cordova-fetch/-/cordova-fetch-1.0.2.tgz",
"integrity": "sha1-uPSQPzn+YTiIBiVSqWmVQTrxbTU=",
"requires": {
- "cordova-common": "https://registry.npmjs.org/cordova-common/-/cordova-common-2.0.0.tgz",
- "dependency-ls": "https://registry.npmjs.org/dependency-ls/-/dependency-ls-1.0.0.tgz",
- "is-url": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz",
- "q": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
- "shelljs": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.6.tgz"
+ "cordova-common": "2.0.0",
+ "dependency-ls": "^1.0.0",
+ "is-url": "^1.2.1",
+ "q": "^1.4.1",
+ "shelljs": "^0.7.0"
},
"dependencies": {
"glob": {
- "version": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
"integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
"requires": {
- "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
- "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.2",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
},
"q": {
- "version": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
"integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4="
},
"shelljs": {
- "version": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.6.tgz",
+ "version": "0.7.6",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.6.tgz",
"integrity": "sha1-N5zM+1a5HIYB5HkzVutTgpJN6a0=",
"requires": {
- "glob": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
- "interpret": "https://registry.npmjs.org/interpret/-/interpret-1.0.1.tgz",
- "rechoir": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz"
+ "glob": "^7.0.0",
+ "interpret": "^1.0.0",
+ "rechoir": "^0.6.2"
}
}
}
@@ -921,13 +917,13 @@
"integrity": "sha512-c5yXY5b/ONRSe+IoBOz9MqcPNmTa/AdnwSOPelm/izRV0uqNg9mW4Fe9W8mRCMBzfCFQFL4qJcCC4Bi0VLg4mQ==",
"requires": {
"cordova-common": "2.1.0",
- "ios-sim": "6.1.2",
- "nopt": "3.0.6",
- "plist": "1.2.0",
- "q": "1.5.0",
- "shelljs": "0.5.3",
- "xcode": "0.9.3",
- "xml-escape": "1.1.0"
+ "ios-sim": "^6.1.2",
+ "nopt": "^3.0.6",
+ "plist": "^1.2.0",
+ "q": "^1.4.1",
+ "shelljs": "^0.5.3",
+ "xcode": "^0.9.0",
+ "xml-escape": "^1.1.0"
},
"dependencies": {
"abbrev": {
@@ -954,21 +950,21 @@
"version": "0.0.7",
"bundled": true,
"requires": {
- "stream-buffers": "2.2.0"
+ "stream-buffers": "~2.2.0"
}
},
"bplist-parser": {
"version": "0.1.1",
"bundled": true,
"requires": {
- "big-integer": "1.6.25"
+ "big-integer": "^1.6.7"
}
},
"brace-expansion": {
"version": "1.1.8",
"bundled": true,
"requires": {
- "balanced-match": "1.0.0",
+ "balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
@@ -980,19 +976,19 @@
"version": "2.1.0",
"bundled": true,
"requires": {
- "ansi": "0.3.1",
- "bplist-parser": "0.1.1",
- "cordova-registry-mapper": "1.1.15",
+ "ansi": "^0.3.1",
+ "bplist-parser": "^0.1.0",
+ "cordova-registry-mapper": "^1.1.8",
"elementtree": "0.1.6",
- "glob": "5.0.15",
- "minimatch": "3.0.4",
- "osenv": "0.1.4",
- "plist": "1.2.0",
- "q": "1.5.0",
- "semver": "5.4.1",
- "shelljs": "0.5.3",
- "underscore": "1.8.3",
- "unorm": "1.4.1"
+ "glob": "^5.0.13",
+ "minimatch": "^3.0.0",
+ "osenv": "^0.1.3",
+ "plist": "^1.2.0",
+ "q": "^1.4.1",
+ "semver": "^5.0.1",
+ "shelljs": "^0.5.3",
+ "underscore": "^1.8.3",
+ "unorm": "^1.3.3"
}
},
"cordova-registry-mapper": {
@@ -1010,19 +1006,19 @@
"version": "5.0.15",
"bundled": true,
"requires": {
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
},
"inflight": {
"version": "1.0.6",
"bundled": true,
"requires": {
- "once": "1.4.0",
- "wrappy": "1.0.2"
+ "once": "^1.3.0",
+ "wrappy": "1"
}
},
"inherits": {
@@ -1033,10 +1029,10 @@
"version": "6.1.2",
"bundled": true,
"requires": {
- "bplist-parser": "0.0.6",
+ "bplist-parser": "^0.0.6",
"nopt": "1.0.9",
- "plist": "1.2.0",
- "simctl": "1.1.1"
+ "plist": "^1.2.0",
+ "simctl": "^1.1.1"
},
"dependencies": {
"bplist-parser": {
@@ -1047,7 +1043,7 @@
"version": "1.0.9",
"bundled": true,
"requires": {
- "abbrev": "1.1.1"
+ "abbrev": "1"
}
}
}
@@ -1060,21 +1056,21 @@
"version": "3.0.4",
"bundled": true,
"requires": {
- "brace-expansion": "1.1.8"
+ "brace-expansion": "^1.1.7"
}
},
"nopt": {
"version": "3.0.6",
"bundled": true,
"requires": {
- "abbrev": "1.1.1"
+ "abbrev": "1"
}
},
"once": {
"version": "1.4.0",
"bundled": true,
"requires": {
- "wrappy": "1.0.2"
+ "wrappy": "1"
}
},
"os-homedir": {
@@ -1089,8 +1085,8 @@
"version": "0.1.4",
"bundled": true,
"requires": {
- "os-homedir": "1.0.2",
- "os-tmpdir": "1.0.2"
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
}
},
"path-is-absolute": {
@@ -1108,7 +1104,7 @@
"base64-js": "0.0.8",
"util-deprecate": "1.0.2",
"xmlbuilder": "4.0.0",
- "xmldom": "0.1.27"
+ "xmldom": "0.1.x"
}
},
"q": {
@@ -1131,8 +1127,8 @@
"version": "1.1.1",
"bundled": true,
"requires": {
- "shelljs": "0.2.6",
- "tail": "0.4.0"
+ "shelljs": "^0.2.6",
+ "tail": "^0.4.0"
},
"dependencies": {
"shelljs": {
@@ -1160,7 +1156,7 @@
"requires": {
"base64-js": "1.1.2",
"xmlbuilder": "8.2.2",
- "xmldom": "0.1.27"
+ "xmldom": "0.1.x"
}
},
"xmlbuilder": {
@@ -1201,8 +1197,8 @@
"version": "0.9.3",
"bundled": true,
"requires": {
- "pegjs": "0.10.0",
- "simple-plist": "0.2.1",
+ "pegjs": "^0.10.0",
+ "simple-plist": "^0.2.1",
"uuid": "3.0.1"
}
},
@@ -1214,7 +1210,7 @@
"version": "4.0.0",
"bundled": true,
"requires": {
- "lodash": "3.10.1"
+ "lodash": "^3.5.0"
}
},
"xmldom": {
@@ -1224,41 +1220,43 @@
}
},
"cordova-js": {
- "version": "https://registry.npmjs.org/cordova-js/-/cordova-js-4.2.1.tgz",
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/cordova-js/-/cordova-js-4.2.1.tgz",
"integrity": "sha1-AcoYbhTmOwHLbSTkaXUOSBoDg1U=",
"requires": {
- "browserify": "https://registry.npmjs.org/browserify/-/browserify-13.3.0.tgz"
+ "browserify": "13.3.0"
}
},
"cordova-lib": {
- "version": "https://registry.npmjs.org/cordova-lib/-/cordova-lib-6.5.0.tgz",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/cordova-lib/-/cordova-lib-6.5.0.tgz",
"integrity": "sha1-92MKBMKdbN7pgBkLHZP7FTasRT8=",
"requires": {
- "aliasify": "https://registry.npmjs.org/aliasify/-/aliasify-1.9.0.tgz",
- "cordova-common": "https://registry.npmjs.org/cordova-common/-/cordova-common-2.0.0.tgz",
- "cordova-create": "https://registry.npmjs.org/cordova-create/-/cordova-create-1.0.2.tgz",
- "cordova-fetch": "https://registry.npmjs.org/cordova-fetch/-/cordova-fetch-1.0.2.tgz",
- "cordova-js": "https://registry.npmjs.org/cordova-js/-/cordova-js-4.2.1.tgz",
- "cordova-registry-mapper": "https://registry.npmjs.org/cordova-registry-mapper/-/cordova-registry-mapper-1.1.15.tgz",
- "cordova-serve": "https://registry.npmjs.org/cordova-serve/-/cordova-serve-1.0.1.tgz",
- "dep-graph": "https://registry.npmjs.org/dep-graph/-/dep-graph-1.1.0.tgz",
- "elementtree": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.6.tgz",
- "glob": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
- "init-package-json": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.9.4.tgz",
- "nopt": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
- "npm": "https://registry.npmjs.org/npm/-/npm-2.15.11.tgz",
- "opener": "https://registry.npmjs.org/opener/-/opener-1.4.1.tgz",
- "plist": "1.2.0",
- "properties-parser": "https://registry.npmjs.org/properties-parser/-/properties-parser-0.2.3.tgz",
- "q": "https://registry.npmjs.org/q/-/q-1.0.1.tgz",
- "request": "https://registry.npmjs.org/request/-/request-2.47.0.tgz",
- "semver": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
- "shelljs": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz",
- "tar": "https://registry.npmjs.org/tar/-/tar-1.0.2.tgz",
- "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
- "unorm": "https://registry.npmjs.org/unorm/-/unorm-1.3.3.tgz",
- "valid-identifier": "https://registry.npmjs.org/valid-identifier/-/valid-identifier-0.0.1.tgz",
- "xcode": "https://registry.npmjs.org/xcode/-/xcode-0.9.1.tgz"
+ "aliasify": "^1.7.2",
+ "cordova-common": "2.0.0",
+ "cordova-create": "^1.0.1",
+ "cordova-fetch": "1.0.2",
+ "cordova-js": "4.2.1",
+ "cordova-registry-mapper": "1.x",
+ "cordova-serve": "^1.0.0",
+ "dep-graph": "1.1.0",
+ "elementtree": "0.1.6",
+ "glob": "^5.0.3",
+ "init-package-json": "^1.2.0",
+ "nopt": "^3.0.6",
+ "npm": "^2.10.x",
+ "opener": "1.4.1",
+ "plist": "^1.2.0",
+ "properties-parser": "0.2.3",
+ "q": "1.0.1",
+ "request": "2.47.0",
+ "semver": "^4.3.x",
+ "shelljs": "0.3.0",
+ "tar": "1.0.2",
+ "underscore": "1.7.0",
+ "unorm": "1.3.3",
+ "valid-identifier": "0.0.1",
+ "xcode": "^0.9.0"
},
"dependencies": {
"base64-js": {
@@ -1267,17 +1265,19 @@
"integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg="
},
"elementtree": {
- "version": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.6.tgz",
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.6.tgz",
"integrity": "sha1-KsTEbqMFFsjEy9teOsdBjlkt4gw=",
"requires": {
- "sax": "https://registry.npmjs.org/sax/-/sax-0.3.5.tgz"
+ "sax": "0.3.5"
}
},
"nopt": {
- "version": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
"requires": {
- "abbrev": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz"
+ "abbrev": "1"
}
},
"plist": {
@@ -1286,25 +1286,29 @@
"integrity": "sha1-CEtQk93JJQbiWfh0uNmxr7jHlZM=",
"requires": {
"base64-js": "0.0.8",
- "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "util-deprecate": "1.0.2",
"xmlbuilder": "4.0.0",
- "xmldom": "0.1.27"
+ "xmldom": "0.1.x"
}
},
"sax": {
- "version": "https://registry.npmjs.org/sax/-/sax-0.3.5.tgz",
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-0.3.5.tgz",
"integrity": "sha1-iPz8H3PAyLvVt8d2ttPzUB7tBz0="
},
"semver": {
- "version": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
+ "version": "4.3.6",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
"integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto="
},
"shelljs": {
- "version": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz",
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz",
"integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E="
},
"unorm": {
- "version": "https://registry.npmjs.org/unorm/-/unorm-1.3.3.tgz",
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.3.3.tgz",
"integrity": "sha1-Fqh3JnHr1vfN5vjF5Ju2CsR9upM="
},
"xmlbuilder": {
@@ -1312,7 +1316,7 @@
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.0.0.tgz",
"integrity": "sha1-mLj2UcowqmJANvEn0RzGbce5B6M=",
"requires": {
- "lodash": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz"
+ "lodash": "^3.5.0"
}
}
}
@@ -1322,7 +1326,7 @@
"resolved": "https://registry.npmjs.org/cordova-plugin-app-name/-/cordova-plugin-app-name-1.0.4.tgz",
"integrity": "sha1-FruwzRrwdAumNH66QPIgM0HU+z0=",
"requires": {
- "xml2js": "0.4.19"
+ "xml2js": "^0.4.16"
}
},
"cordova-plugin-customurlscheme": {
@@ -1381,104 +1385,137 @@
"integrity": "sha1-Q5odL0c2YnYogm5Rla5Tm1TmJIo="
},
"cordova-registry-mapper": {
- "version": "https://registry.npmjs.org/cordova-registry-mapper/-/cordova-registry-mapper-1.1.15.tgz",
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/cordova-registry-mapper/-/cordova-registry-mapper-1.1.15.tgz",
"integrity": "sha1-4kS5GFuBdUc7/2B5MkkFEV+D3Hw="
},
"cordova-serve": {
- "version": "https://registry.npmjs.org/cordova-serve/-/cordova-serve-1.0.1.tgz",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cordova-serve/-/cordova-serve-1.0.1.tgz",
"integrity": "sha1-iVx/tLvmMPocif6vbXR3nL/2bac=",
"requires": {
- "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "compression": "https://registry.npmjs.org/compression/-/compression-1.6.2.tgz",
- "express": "https://registry.npmjs.org/express/-/express-4.14.1.tgz",
- "q": "https://registry.npmjs.org/q/-/q-1.4.1.tgz"
+ "chalk": "^1.1.1",
+ "compression": "^1.6.0",
+ "express": "^4.13.3",
+ "q": "^1.4.1"
},
"dependencies": {
"q": {
- "version": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
"integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4="
}
}
},
"core-util-is": {
- "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"create-ecdh": {
- "version": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz",
"integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=",
"requires": {
- "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
- "elliptic": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz"
+ "bn.js": "^4.1.0",
+ "elliptic": "^6.0.0"
}
},
"create-hash": {
- "version": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz",
"integrity": "sha1-USEAYte7dHn2xlu0GpIgix1hq60=",
"requires": {
- "cipher-base": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "ripemd160": "https://registry.npmjs.org/ripemd160/-/ripemd160-1.0.1.tgz",
- "sha.js": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz"
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "ripemd160": "^1.0.0",
+ "sha.js": "^2.3.6"
}
},
"create-hmac": {
- "version": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.4.tgz",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.4.tgz",
"integrity": "sha1-0/tLolPriz9W456i+8uK90e9MXA=",
"requires": {
- "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1"
+ }
+ },
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
+ "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
+ }
}
},
"cryptiles": {
- "version": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz",
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz",
"integrity": "sha1-7ZH/HxetE9N0gohZT4pIoNJvMlw=",
"requires": {
- "boom": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz"
+ "boom": "0.4.x"
}
},
"crypto-browserify": {
- "version": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz",
+ "version": "3.11.0",
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz",
"integrity": "sha1-NlKgkGq5sqfgw85mpAjpV6JIVSI=",
"requires": {
- "browserify-cipher": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz",
- "browserify-sign": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.0.tgz",
- "create-ecdh": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz",
- "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz",
- "create-hmac": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.4.tgz",
- "diffie-hellman": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "pbkdf2": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.9.tgz",
- "public-encrypt": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz",
- "randombytes": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz"
+ "browserify-cipher": "^1.0.0",
+ "browserify-sign": "^4.0.0",
+ "create-ecdh": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.0",
+ "diffie-hellman": "^5.0.0",
+ "inherits": "^2.0.1",
+ "pbkdf2": "^3.0.3",
+ "public-encrypt": "^4.0.0",
+ "randombytes": "^2.0.0"
}
},
"ctype": {
- "version": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz",
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz",
"integrity": "sha1-gsGMJGH3QRTvFsE1IkrQuRRMoS8="
},
"dashdash": {
- "version": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
"requires": {
- "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
+ "assert-plus": "^1.0.0"
},
"dependencies": {
"assert-plus": {
- "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
}
}
},
"date-now": {
- "version": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
"integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs="
},
"debug": {
- "version": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
"integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
"requires": {
- "ms": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz"
+ "ms": "0.7.1"
}
},
"debuglog": {
@@ -1486,80 +1523,118 @@
"resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz",
"integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI="
},
+ "dedent": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
+ "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw="
+ },
+ "deep-equal": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
+ "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
+ },
"deep-extend": {
- "version": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz",
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz",
"integrity": "sha1-7+QRPQgIX05vlod1mBD4B0aeIlM="
},
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "requires": {
+ "object-keys": "^1.0.12"
+ },
+ "dependencies": {
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
+ }
+ }
+ },
"defined": {
- "version": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
"integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
},
"delayed-stream": {
- "version": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz",
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz",
"integrity": "sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8="
},
"dep-graph": {
- "version": "https://registry.npmjs.org/dep-graph/-/dep-graph-1.1.0.tgz",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/dep-graph/-/dep-graph-1.1.0.tgz",
"integrity": "sha1-+t6GqSeZqBPptCURzfPfpsyNvv4=",
"requires": {
- "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.2.1.tgz"
+ "underscore": "1.2.1"
},
"dependencies": {
"underscore": {
- "version": "https://registry.npmjs.org/underscore/-/underscore-1.2.1.tgz",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.2.1.tgz",
"integrity": "sha1-/FxrB2VnPZKi1KyLTcCqiHAuK9Q="
}
}
},
"depd": {
- "version": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz",
"integrity": "sha1-4b2Cxqq2ztlluXuIsX7T5SjKGMM="
},
"dependency-ls": {
- "version": "https://registry.npmjs.org/dependency-ls/-/dependency-ls-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/dependency-ls/-/dependency-ls-1.0.0.tgz",
"integrity": "sha1-MR3J+pqEC+5MbKM5VFVuXPCctck=",
"requires": {
- "q": "https://registry.npmjs.org/q/-/q-1.4.1.tgz"
+ "q": "1.4.1"
},
"dependencies": {
"q": {
- "version": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
"integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4="
}
}
},
"deps-sort": {
- "version": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz",
"integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=",
"requires": {
- "JSONStream": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.0.tgz",
- "shasum": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz",
- "subarg": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz",
- "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz"
+ "JSONStream": "^1.0.3",
+ "shasum": "^1.0.0",
+ "subarg": "^1.0.0",
+ "through2": "^2.0.0"
}
},
"des.js": {
- "version": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
"integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
"requires": {
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "minimalistic-assert": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz"
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
}
},
"destroy": {
- "version": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
},
"detective": {
- "version": "https://registry.npmjs.org/detective/-/detective-4.3.2.tgz",
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/detective/-/detective-4.3.2.tgz",
"integrity": "sha1-d2l+LnlHrD/nyOJqbW8RUjWvqRw=",
"requires": {
- "acorn": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
- "defined": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz"
+ "acorn": "^3.1.0",
+ "defined": "^1.0.0"
},
"dependencies": {
"acorn": {
- "version": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
"integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo="
}
}
@@ -1569,257 +1644,376 @@
"resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz",
"integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=",
"requires": {
- "asap": "2.0.6",
- "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+ "asap": "^2.0.0",
+ "wrappy": "1"
}
},
"diffie-hellman": {
- "version": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz",
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz",
"integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=",
"requires": {
- "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
- "miller-rabin": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz",
- "randombytes": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz"
+ "bn.js": "^4.1.0",
+ "miller-rabin": "^4.0.0",
+ "randombytes": "^2.0.0"
}
},
"domain-browser": {
- "version": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz",
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz",
"integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw="
},
"duplexer2": {
- "version": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
"integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
"requires": {
- "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz"
+ "readable-stream": "^2.0.2"
}
},
"duplexify": {
- "version": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.0.tgz",
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.0.tgz",
"integrity": "sha1-GqdzAC4VeEV+nZ1KULDMquvL1gQ=",
"requires": {
- "end-of-stream": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.0.0.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz",
- "stream-shift": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz"
+ "end-of-stream": "1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
}
},
"ecc-jsbn": {
- "version": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
"integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
"optional": true,
"requires": {
- "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"
+ "jsbn": "~0.1.0"
}
},
"ee-first": {
- "version": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"elementtree": {
- "version": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.7.tgz",
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.7.tgz",
"integrity": "sha1-mskb5uUvtuYkTE5UpKw+2K6OKcA=",
"requires": {
- "sax": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz"
+ "sax": "1.1.4"
}
},
"elliptic": {
- "version": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz",
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz",
"integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=",
"requires": {
- "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
- "brorand": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
- "hash.js": "https://registry.npmjs.org/hash.js/-/hash.js-1.0.3.tgz",
- "hmac-drbg": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.0.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "minimalistic-assert": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz",
- "minimalistic-crypto-utils": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz"
+ "bn.js": "^4.4.0",
+ "brorand": "^1.0.1",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.0"
}
},
"encodeurl": {
- "version": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz",
"integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA="
},
"end-of-stream": {
- "version": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.0.0.tgz",
"integrity": "sha1-1FlucCc0qT5A6a+GQxnqvZn/Lw4=",
"requires": {
- "once": "https://registry.npmjs.org/once/-/once-1.3.3.tgz"
+ "once": "~1.3.0"
},
"dependencies": {
"once": {
- "version": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
"integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
"requires": {
- "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+ "wrappy": "1"
+ }
+ }
+ }
+ },
+ "endent": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/endent/-/endent-1.3.0.tgz",
+ "integrity": "sha512-C8AryqPPwtydqcpO5AF6k9Bd1EpFkQtvsefJqS3y3n8TG13Jy63MascDxTOULZYqrUde+dK6BjNc6LIMr3iI2A==",
+ "requires": {
+ "dedent": "^0.7.0",
+ "fast-json-parse": "^1.0.3",
+ "objectorarray": "^1.0.3"
+ }
+ },
+ "es-abstract": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz",
+ "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==",
+ "requires": {
+ "es-to-primitive": "^1.2.0",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "is-callable": "^1.1.4",
+ "is-regex": "^1.0.4",
+ "object-keys": "^1.0.12"
+ },
+ "dependencies": {
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "requires": {
+ "function-bind": "^1.1.1"
}
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
}
}
},
+ "es-to-primitive": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
+ "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
"escape-html": {
- "version": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
},
"escape-string-regexp": {
- "version": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
},
"etag": {
- "version": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz",
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz",
"integrity": "sha1-A9MLX2fdbmMtKUXTDWZScxo01dg="
},
"events": {
- "version": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
"integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ="
},
"evp_bytestokey": {
- "version": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz",
"integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=",
"requires": {
- "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz"
+ "create-hash": "^1.1.1"
}
},
"exit-hook": {
- "version": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
"integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g="
},
"express": {
- "version": "https://registry.npmjs.org/express/-/express-4.14.1.tgz",
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.14.1.tgz",
"integrity": "sha1-ZGwjf3ZvFIwhIK/wc4F7nk1+DTM=",
"requires": {
- "accepts": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz",
- "array-flatten": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "content-disposition": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
- "content-type": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz",
- "cookie": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
- "cookie-signature": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "debug": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
- "depd": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz",
- "encodeurl": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz",
- "escape-html": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "etag": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz",
- "finalhandler": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.5.1.tgz",
- "fresh": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz",
- "merge-descriptors": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "methods": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "on-finished": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
- "parseurl": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz",
- "path-to-regexp": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "proxy-addr": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.3.tgz",
- "qs": "https://registry.npmjs.org/qs/-/qs-6.2.0.tgz",
- "range-parser": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
- "send": "https://registry.npmjs.org/send/-/send-0.14.2.tgz",
- "serve-static": "https://registry.npmjs.org/serve-static/-/serve-static-1.11.2.tgz",
- "type-is": "https://registry.npmjs.org/type-is/-/type-is-1.6.14.tgz",
- "utils-merge": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz",
- "vary": "https://registry.npmjs.org/vary/-/vary-1.1.0.tgz"
+ "accepts": "~1.3.3",
+ "array-flatten": "1.1.1",
+ "content-disposition": "0.5.2",
+ "content-type": "~1.0.2",
+ "cookie": "0.3.1",
+ "cookie-signature": "1.0.6",
+ "debug": "~2.2.0",
+ "depd": "~1.1.0",
+ "encodeurl": "~1.0.1",
+ "escape-html": "~1.0.3",
+ "etag": "~1.7.0",
+ "finalhandler": "0.5.1",
+ "fresh": "0.3.0",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.1",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~1.1.3",
+ "qs": "6.2.0",
+ "range-parser": "~1.2.0",
+ "send": "0.14.2",
+ "serve-static": "~1.11.2",
+ "type-is": "~1.6.14",
+ "utils-merge": "1.0.0",
+ "vary": "~1.1.0"
}
},
"extend": {
- "version": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz",
"integrity": "sha1-WkdDU7nzNT3dgXbf03uRyDpG8dQ="
},
"extsprintf": {
- "version": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz",
"integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA="
},
"falafel": {
- "version": "https://registry.npmjs.org/falafel/-/falafel-1.2.0.tgz",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/falafel/-/falafel-1.2.0.tgz",
"integrity": "sha1-wY0k71CRF0pJfzGM0ksCaiXN2rQ=",
"requires": {
- "acorn": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz",
- "foreach": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
- "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "object-keys": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz"
+ "acorn": "^1.0.3",
+ "foreach": "^2.0.5",
+ "isarray": "0.0.1",
+ "object-keys": "^1.0.6"
}
},
+ "fast-json-parse": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/fast-json-parse/-/fast-json-parse-1.0.3.tgz",
+ "integrity": "sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw=="
+ },
"figures": {
- "version": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
"integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
"requires": {
- "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
+ "escape-string-regexp": "^1.0.5",
+ "object-assign": "^4.1.0"
}
},
"finalhandler": {
- "version": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.5.1.tgz",
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.5.1.tgz",
"integrity": "sha1-LEANjUUwk1vCMlScX6OF7Afeb80=",
"requires": {
- "debug": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
- "escape-html": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "on-finished": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
- "statuses": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
- "unpipe": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
+ "debug": "~2.2.0",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "statuses": "~1.3.1",
+ "unpipe": "~1.0.0"
+ }
+ },
+ "for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "requires": {
+ "is-callable": "^1.1.3"
}
},
"foreach": {
- "version": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
"integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k="
},
"forever-agent": {
- "version": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz",
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz",
"integrity": "sha1-bQ4JxJIflKJ/Y9O0nF/v8epMUTA="
},
"form-data": {
- "version": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz",
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz",
"integrity": "sha1-kavXiKupcCsaq/qLwBAxoqyeOxI=",
"requires": {
- "async": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
- "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz",
- "mime": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz"
+ "async": "~0.9.0",
+ "combined-stream": "~0.0.4",
+ "mime": "~1.2.11"
},
"dependencies": {
"mime": {
- "version": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz",
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz",
"integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA="
}
}
},
"forwarded": {
- "version": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz",
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz",
"integrity": "sha1-Ge+YdMSuHCl7zweP3mOgm2aoQ2M="
},
"fresh": {
- "version": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz",
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz",
"integrity": "sha1-ZR+DjiJCTnVm3hYdg1jKoZn4PU8="
},
+ "fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz",
+ "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg=="
+ }
+ }
+ },
"fs.realpath": {
- "version": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
"fstream": {
- "version": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz",
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz",
"integrity": "sha1-YE6Kkv4m/9n2+uMDmdSYThqyKCI=",
"requires": {
- "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
- "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.0.tgz"
+ "graceful-fs": "^4.1.2",
+ "inherits": "~2.0.0",
+ "mkdirp": ">=0.5 0",
+ "rimraf": "2"
}
},
"function-bind": {
- "version": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz",
"integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E="
},
"generate-function": {
- "version": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
"integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ="
},
"generate-object-property": {
- "version": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
"integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
"requires": {
- "is-property": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz"
+ "is-property": "^1.0.0"
}
},
"getpass": {
- "version": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz",
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz",
"integrity": "sha1-KD/9n8ElaECHUxHBtg6MQBhxEOY=",
"requires": {
- "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
+ "assert-plus": "^1.0.0"
},
"dependencies": {
"assert-plus": {
- "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
}
}
@@ -1830,370 +2024,424 @@
"integrity": "sha1-fdeTMNKr5pwQws73lxTJchV5Hfo="
},
"glob": {
- "version": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+ "version": "5.0.15",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
"integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
"requires": {
- "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
- "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
},
"got": {
- "version": "https://registry.npmjs.org/got/-/got-3.3.1.tgz",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/got/-/got-3.3.1.tgz",
"integrity": "sha1-5dDtSvVfw+701WAHdp2YGSvLLso=",
"requires": {
- "duplexify": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.0.tgz",
- "infinity-agent": "https://registry.npmjs.org/infinity-agent/-/infinity-agent-2.0.3.tgz",
- "is-redirect": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
- "is-stream": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "lowercase-keys": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
- "nested-error-stacks": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz",
- "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
- "prepend-http": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
- "read-all-stream": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz",
- "timed-out": "https://registry.npmjs.org/timed-out/-/timed-out-2.0.0.tgz"
+ "duplexify": "^3.2.0",
+ "infinity-agent": "^2.0.0",
+ "is-redirect": "^1.0.0",
+ "is-stream": "^1.0.0",
+ "lowercase-keys": "^1.0.0",
+ "nested-error-stacks": "^1.0.0",
+ "object-assign": "^3.0.0",
+ "prepend-http": "^1.0.0",
+ "read-all-stream": "^3.0.0",
+ "timed-out": "^2.0.0"
},
"dependencies": {
"object-assign": {
- "version": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
"integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I="
}
}
},
"graceful-fs": {
- "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
},
"graceful-readlink": {
- "version": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
"integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="
},
"har-validator": {
- "version": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
"integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=",
"requires": {
- "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "commander": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
- "is-my-json-valid": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz",
- "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
+ "chalk": "^1.1.1",
+ "commander": "^2.9.0",
+ "is-my-json-valid": "^2.12.4",
+ "pinkie-promise": "^2.0.0"
}
},
"has": {
- "version": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
"integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
"requires": {
- "function-bind": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz"
+ "function-bind": "^1.0.2"
}
},
"has-ansi": {
- "version": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
"requires": {
- "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
+ "ansi-regex": "^2.0.0"
}
},
+ "has-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
+ "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q="
+ },
"hash.js": {
- "version": "https://registry.npmjs.org/hash.js/-/hash.js-1.0.3.tgz",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.0.3.tgz",
"integrity": "sha1-EzL/ABVsCg/92CNgE9B7d6BFFXM=",
"requires": {
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+ "inherits": "^2.0.1"
}
},
"hawk": {
- "version": "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz",
"integrity": "sha1-h81JH5tG5OKurKM1QWdmiF0tHtk=",
"requires": {
- "boom": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz",
- "cryptiles": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz",
- "hoek": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz",
- "sntp": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz"
+ "boom": "0.4.x",
+ "cryptiles": "0.2.x",
+ "hoek": "0.9.x",
+ "sntp": "0.2.x"
}
},
"hmac-drbg": {
- "version": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.0.tgz",
"integrity": "sha1-PbRx9FquSplKBogyIXH1G4uRvuU=",
"requires": {
- "hash.js": "https://registry.npmjs.org/hash.js/-/hash.js-1.0.3.tgz",
- "minimalistic-assert": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz",
- "minimalistic-crypto-utils": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz"
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
}
},
"hoek": {
- "version": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz",
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz",
"integrity": "sha1-PTIkYrrfB3Fup+uFuviAec3c5QU="
},
"hosted-git-info": {
- "version": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.2.0.tgz",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.2.0.tgz",
"integrity": "sha1-eg0JeGPYhsD6u9zTe/F1jYvs+KU="
},
"htmlescape": {
- "version": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz",
"integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E="
},
"http-errors": {
- "version": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz",
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz",
"integrity": "sha1-eIwNLB3iyBuebowBhDtrl+uSB1A=",
"requires": {
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "setprototypeof": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz",
- "statuses": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz"
+ "inherits": "2.0.3",
+ "setprototypeof": "1.0.2",
+ "statuses": ">= 1.3.1 < 2"
}
},
"http-signature": {
- "version": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz",
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz",
"integrity": "sha1-T72sEyVZqoMjEh5UB3nAoBKyfmY=",
"requires": {
- "asn1": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz",
- "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz",
- "ctype": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz"
+ "asn1": "0.1.11",
+ "assert-plus": "^0.1.5",
+ "ctype": "0.5.3"
}
},
"https-browserify": {
- "version": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz",
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz",
"integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI="
},
"ieee754": {
- "version": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz",
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz",
"integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q="
},
"imurmurhash": {
- "version": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
},
"indexof": {
- "version": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
"integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10="
},
"infinity-agent": {
- "version": "https://registry.npmjs.org/infinity-agent/-/infinity-agent-2.0.3.tgz",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/infinity-agent/-/infinity-agent-2.0.3.tgz",
"integrity": "sha1-ReDi/3qesDCyfWK3SzdEt6esQhY="
},
"inflight": {
- "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"requires": {
- "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+ "once": "^1.3.0",
+ "wrappy": "1"
}
},
"inherits": {
- "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
"ini": {
- "version": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz",
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz",
"integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4="
},
"init-package-json": {
- "version": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.9.4.tgz",
+ "version": "1.9.4",
+ "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.9.4.tgz",
"integrity": "sha1-tAU9C0Dwz4QqQZZpN8s9wPU06FY=",
"requires": {
- "glob": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
- "npm-package-arg": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-4.2.0.tgz",
- "promzard": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz",
- "read": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
- "read-package-json": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.4.tgz",
- "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
- "validate-npm-package-license": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
- "validate-npm-package-name": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-2.2.2.tgz"
+ "glob": "^6.0.0",
+ "npm-package-arg": "^4.0.0",
+ "promzard": "^0.3.0",
+ "read": "~1.0.1",
+ "read-package-json": "1 || 2",
+ "semver": "2.x || 3.x || 4 || 5",
+ "validate-npm-package-license": "^3.0.1",
+ "validate-npm-package-name": "^2.0.1"
},
"dependencies": {
"glob": {
- "version": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
"integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
"requires": {
- "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
- "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
}
}
},
"inline-source-map": {
- "version": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz",
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz",
"integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=",
"requires": {
- "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz"
+ "source-map": "~0.5.3"
}
},
"inquirer": {
- "version": "https://registry.npmjs.org/inquirer/-/inquirer-0.10.1.tgz",
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.10.1.tgz",
"integrity": "sha1-6iXkzmnKFF4FyZ5G3P7AXkASWUo=",
"requires": {
- "ansi-escapes": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
- "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "cli-cursor": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
- "cli-width": "https://registry.npmjs.org/cli-width/-/cli-width-1.1.1.tgz",
- "figures": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
- "lodash": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
- "readline2": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz",
- "run-async": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz",
- "rx-lite": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz",
- "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "through": "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
+ "ansi-escapes": "^1.1.0",
+ "ansi-regex": "^2.0.0",
+ "chalk": "^1.0.0",
+ "cli-cursor": "^1.0.1",
+ "cli-width": "^1.0.1",
+ "figures": "^1.3.5",
+ "lodash": "^3.3.1",
+ "readline2": "^1.0.1",
+ "run-async": "^0.1.0",
+ "rx-lite": "^3.1.2",
+ "strip-ansi": "^3.0.0",
+ "through": "^2.3.6"
}
},
"insert-module-globals": {
- "version": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.0.1.tgz",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.0.1.tgz",
"integrity": "sha1-wDv04BywhtW15azorQr+eInWOMM=",
"requires": {
- "JSONStream": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.0.tgz",
- "combine-source-map": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.7.2.tgz",
- "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
- "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.4.tgz",
- "lexical-scope": "https://registry.npmjs.org/lexical-scope/-/lexical-scope-1.2.0.tgz",
- "process": "https://registry.npmjs.org/process/-/process-0.11.9.tgz",
- "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
- "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
+ "JSONStream": "^1.0.3",
+ "combine-source-map": "~0.7.1",
+ "concat-stream": "~1.5.1",
+ "is-buffer": "^1.1.0",
+ "lexical-scope": "^1.2.0",
+ "process": "~0.11.0",
+ "through2": "^2.0.0",
+ "xtend": "^4.0.0"
}
},
"insight": {
- "version": "https://registry.npmjs.org/insight/-/insight-0.8.4.tgz",
+ "version": "0.8.4",
+ "resolved": "https://registry.npmjs.org/insight/-/insight-0.8.4.tgz",
"integrity": "sha1-ZxyvZbR8n+jD0bMgbPRbshG3WIQ=",
"requires": {
- "async": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
- "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "configstore": "https://registry.npmjs.org/configstore/-/configstore-1.4.0.tgz",
- "inquirer": "https://registry.npmjs.org/inquirer/-/inquirer-0.10.1.tgz",
- "lodash.debounce": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-3.1.1.tgz",
- "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "os-name": "https://registry.npmjs.org/os-name/-/os-name-1.0.3.tgz",
- "request": "https://registry.npmjs.org/request/-/request-2.79.0.tgz",
- "tough-cookie": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
- "uuid": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz"
+ "async": "^1.4.2",
+ "chalk": "^1.0.0",
+ "configstore": "^1.0.0",
+ "inquirer": "^0.10.0",
+ "lodash.debounce": "^3.0.1",
+ "object-assign": "^4.0.1",
+ "os-name": "^1.0.0",
+ "request": "^2.74.0",
+ "tough-cookie": "^2.0.0",
+ "uuid": "^3.0.0"
},
"dependencies": {
"assert-plus": {
- "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
"integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ="
},
"async": {
- "version": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
"integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
},
"aws-sign2": {
- "version": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
"integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8="
},
"boom": {
- "version": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
+ "version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
"integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
"requires": {
- "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz"
+ "hoek": "2.x.x"
}
},
"caseless": {
- "version": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
"integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c="
},
"combined-stream": {
- "version": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
"integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
"requires": {
- "delayed-stream": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
+ "delayed-stream": "~1.0.0"
}
},
"cryptiles": {
- "version": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
"integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
"requires": {
- "boom": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz"
+ "boom": "2.x.x"
}
},
"delayed-stream": {
- "version": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
},
"forever-agent": {
- "version": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
"integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
},
"form-data": {
- "version": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz",
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz",
"integrity": "sha1-icNTQAi5fq2ky7FX1Y9vXfAl6uQ=",
"requires": {
- "asynckit": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
- "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz"
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.5",
+ "mime-types": "^2.1.12"
}
},
"hawk": {
- "version": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
"integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
"requires": {
- "boom": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
- "cryptiles": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
- "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
- "sntp": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz"
+ "boom": "2.x.x",
+ "cryptiles": "2.x.x",
+ "hoek": "2.x.x",
+ "sntp": "1.x.x"
}
},
"hoek": {
- "version": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
+ "version": "2.16.3",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
"integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
},
"http-signature": {
- "version": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
"integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
"requires": {
- "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
- "jsprim": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz",
- "sshpk": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.2.tgz"
+ "assert-plus": "^0.2.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
}
},
"oauth-sign": {
- "version": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
"integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM="
},
"qs": {
- "version": "https://registry.npmjs.org/qs/-/qs-6.3.1.tgz",
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.1.tgz",
"integrity": "sha1-kYwLO802Z5dyuvE1say0wWUe150="
},
"request": {
- "version": "https://registry.npmjs.org/request/-/request-2.79.0.tgz",
+ "version": "2.79.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz",
"integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=",
"requires": {
- "aws-sign2": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
- "aws4": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
- "caseless": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
- "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
- "extend": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz",
- "forever-agent": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "form-data": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz",
- "har-validator": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
- "hawk": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
- "http-signature": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
- "is-typedarray": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "isstream": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "json-stringify-safe": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz",
- "oauth-sign": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
- "qs": "https://registry.npmjs.org/qs/-/qs-6.3.1.tgz",
- "stringstream": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
- "tough-cookie": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
- "tunnel-agent": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
- "uuid": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz"
+ "aws-sign2": "~0.6.0",
+ "aws4": "^1.2.1",
+ "caseless": "~0.11.0",
+ "combined-stream": "~1.0.5",
+ "extend": "~3.0.0",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.1.1",
+ "har-validator": "~2.0.6",
+ "hawk": "~3.1.3",
+ "http-signature": "~1.1.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.7",
+ "oauth-sign": "~0.8.1",
+ "qs": "~6.3.0",
+ "stringstream": "~0.0.4",
+ "tough-cookie": "~2.3.0",
+ "tunnel-agent": "~0.4.1",
+ "uuid": "^3.0.0"
}
},
"sntp": {
- "version": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
"integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
"requires": {
- "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz"
+ "hoek": "2.x.x"
}
},
"uuid": {
- "version": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz",
"integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE="
}
}
},
"interpret": {
- "version": "https://registry.npmjs.org/interpret/-/interpret-1.0.1.tgz",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.1.tgz",
"integrity": "sha1-1Xn7f2k7hYAElHrzn6DbSfeVYCw="
},
"ionic-plugin-keyboard": {
@@ -2202,389 +2450,489 @@
"integrity": "sha1-8qnhabvptVIkADR8n9bTRn7j+hI="
},
"ios-deploy": {
- "version": "https://registry.npmjs.org/ios-deploy/-/ios-deploy-1.9.1.tgz",
- "integrity": "sha1-597JUIu0ZKHy1Ua7B/raQdJwjmY="
+ "version": "1.9.4",
+ "resolved": "https://registry.npmjs.org/ios-deploy/-/ios-deploy-1.9.4.tgz",
+ "integrity": "sha512-pgyc19zgtwGrfx3GL8yV0c0dAPucTpJ0VZkuS3DcqxIZYC48+UW+tBTxI43u1ZDk17mop0ABLs1SkAy5SUQ6pQ=="
},
"ipaddr.js": {
- "version": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.2.0.tgz",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.2.0.tgz",
"integrity": "sha1-irpJyRknmVhb3WQ+DMtQ6K53e6Q="
},
"is-buffer": {
- "version": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.4.tgz",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.4.tgz",
"integrity": "sha1-z8hszV3FpS+oBIkRHGkgxFfi2Ys="
},
"is-builtin-module": {
- "version": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
"integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
"requires": {
- "builtin-modules": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz"
+ "builtin-modules": "^1.0.0"
}
},
+ "is-callable": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
+ "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA=="
+ },
+ "is-date-object": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
+ "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY="
+ },
"is-finite": {
- "version": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
"integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
"requires": {
- "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
+ "number-is-nan": "^1.0.0"
}
},
"is-fullwidth-code-point": {
- "version": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"requires": {
- "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
+ "number-is-nan": "^1.0.0"
}
},
"is-my-json-valid": {
- "version": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz",
+ "version": "2.15.0",
+ "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz",
"integrity": "sha1-k27do8o8IR/ZjzstPgjaQ/eykVs=",
"requires": {
- "generate-function": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
- "generate-object-property": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
- "jsonpointer": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
- "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
+ "generate-function": "^2.0.0",
+ "generate-object-property": "^1.1.0",
+ "jsonpointer": "^4.0.0",
+ "xtend": "^4.0.0"
}
},
"is-npm": {
- "version": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz",
"integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ="
},
"is-property": {
- "version": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
"integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ="
},
"is-redirect": {
- "version": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
"integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ="
},
+ "is-regex": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
+ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
+ "requires": {
+ "has": "^1.0.1"
+ }
+ },
"is-stream": {
- "version": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
},
+ "is-symbol": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
+ "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
+ "requires": {
+ "has-symbols": "^1.0.0"
+ }
+ },
"is-typedarray": {
- "version": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
},
"is-url": {
- "version": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz",
"integrity": "sha1-SYkFpZO/R8wtnn9zg3K792lsfyY="
},
"isarray": {
- "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
},
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
+ },
"isstream": {
- "version": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
},
"jju": {
- "version": "https://registry.npmjs.org/jju/-/jju-1.3.0.tgz",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/jju/-/jju-1.3.0.tgz",
"integrity": "sha1-2t2e8BkkvHKLA/L3l5vb1i96Kqo="
},
"jodid25519": {
- "version": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz",
"integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=",
"optional": true,
"requires": {
- "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"
+ "jsbn": "~0.1.0"
}
},
"jsbn": {
- "version": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
"optional": true
},
"json-parse-helpfulerror": {
- "version": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz",
"integrity": "sha1-E/FM4C7tTpgSl7ZOueO5MuLdE9w=",
"requires": {
- "jju": "https://registry.npmjs.org/jju/-/jju-1.3.0.tgz"
+ "jju": "^1.1.0"
}
},
"json-schema": {
- "version": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
"integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
},
"json-stable-stringify": {
- "version": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz",
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz",
"integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=",
"requires": {
- "jsonify": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz"
+ "jsonify": "~0.0.0"
}
},
"json-stringify-safe": {
- "version": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
},
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
"jsonify": {
- "version": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
"integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM="
},
"jsonparse": {
- "version": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.0.tgz",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.0.tgz",
"integrity": "sha1-hfwkWx2SWazGlBlguQWt9k594Og="
},
"jsonpointer": {
- "version": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
"integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk="
},
"jsprim": {
- "version": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz",
"integrity": "sha1-KnJW9wQSop7jZwqspiWZTE3P8lI=",
"requires": {
- "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz",
- "json-schema": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
- "verror": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz"
+ "extsprintf": "1.0.2",
+ "json-schema": "0.2.3",
+ "verror": "1.3.6"
}
},
"labeled-stream-splicer": {
- "version": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz",
"integrity": "sha1-pS4dE4AkwAuGscDJH2d5GLiuClk=",
"requires": {
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "stream-splicer": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz"
+ "inherits": "^2.0.1",
+ "isarray": "~0.0.1",
+ "stream-splicer": "^2.0.0"
}
},
"latest-version": {
- "version": "https://registry.npmjs.org/latest-version/-/latest-version-1.0.1.tgz",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-1.0.1.tgz",
"integrity": "sha1-cs/Ebj6NG+ZR4eu1Tqn26pbzdLs=",
"requires": {
- "package-json": "https://registry.npmjs.org/package-json/-/package-json-1.2.0.tgz"
+ "package-json": "^1.0.0"
}
},
"lexical-scope": {
- "version": "https://registry.npmjs.org/lexical-scope/-/lexical-scope-1.2.0.tgz",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/lexical-scope/-/lexical-scope-1.2.0.tgz",
"integrity": "sha1-/Ope3HBKSzqHls3KQZw6CvryLfQ=",
"requires": {
- "astw": "https://registry.npmjs.org/astw/-/astw-2.0.0.tgz"
+ "astw": "^2.0.0"
}
},
"lodash": {
- "version": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
"integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="
},
"lodash._getnative": {
- "version": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
+ "version": "3.9.1",
+ "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
"integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U="
},
"lodash.debounce": {
- "version": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-3.1.1.tgz",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-3.1.1.tgz",
"integrity": "sha1-gSIRw3ipTMKdWqTjNGzwv846ffU=",
"requires": {
- "lodash._getnative": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz"
+ "lodash._getnative": "^3.0.0"
}
},
"lodash.memoize": {
- "version": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz",
"integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8="
},
"lowercase-keys": {
- "version": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
"integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY="
},
"media-typer": {
- "version": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
},
"merge-descriptors": {
- "version": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
"integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
},
"methods": {
- "version": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
},
"miller-rabin": {
- "version": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz",
"integrity": "sha1-SmL7HUKTPAVYOYL0xxb2+55sbT0=",
"requires": {
- "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
- "brorand": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz"
+ "bn.js": "^4.0.0",
+ "brorand": "^1.0.1"
}
},
"mime": {
- "version": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
"integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM="
},
"mime-db": {
- "version": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz",
+ "version": "1.26.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz",
"integrity": "sha1-6v/NDk/Gk1z4E02iRuLmw1MFrf8="
},
"mime-types": {
- "version": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz",
+ "version": "2.1.14",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz",
"integrity": "sha1-9+99l1g/yvO30oK2+LVnnaselO4=",
"requires": {
- "mime-db": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz"
+ "mime-db": "~1.26.0"
}
},
"minimalistic-assert": {
- "version": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz",
"integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M="
},
"minimalistic-crypto-utils": {
- "version": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
"integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo="
},
"minimatch": {
- "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
"integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
"requires": {
- "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz"
+ "brace-expansion": "^1.0.0"
}
},
"minimist": {
- "version": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
},
"mkdirp": {
- "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"requires": {
- "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+ "minimist": "0.0.8"
},
"dependencies": {
"minimist": {
- "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
}
}
},
"module-deps": {
- "version": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz",
"integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=",
"requires": {
- "JSONStream": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.0.tgz",
- "browser-resolve": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz",
- "cached-path-relative": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz",
- "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
- "defined": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
- "detective": "https://registry.npmjs.org/detective/-/detective-4.3.2.tgz",
- "duplexer2": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "parents": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz",
- "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz",
- "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.2.0.tgz",
- "stream-combiner2": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
- "subarg": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz",
- "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
- "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
+ "JSONStream": "^1.0.3",
+ "browser-resolve": "^1.7.0",
+ "cached-path-relative": "^1.0.0",
+ "concat-stream": "~1.5.0",
+ "defined": "^1.0.0",
+ "detective": "^4.0.0",
+ "duplexer2": "^0.1.2",
+ "inherits": "^2.0.1",
+ "parents": "^1.0.0",
+ "readable-stream": "^2.0.2",
+ "resolve": "^1.1.3",
+ "stream-combiner2": "^1.1.1",
+ "subarg": "^1.0.0",
+ "through2": "^2.0.0",
+ "xtend": "^4.0.0"
}
},
"ms": {
- "version": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
"integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg="
},
"mute-stream": {
- "version": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
"integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
},
"negotiator": {
- "version": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
"integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
},
"nested-error-stacks": {
- "version": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz",
"integrity": "sha1-GfYZWRUZ8JZ2mlupqG5u7sgjw88=",
"requires": {
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+ "inherits": "~2.0.1"
}
},
+ "nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
+ },
"node-uuid": {
- "version": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz",
+ "version": "1.4.7",
+ "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz",
"integrity": "sha1-baWhdmjEs91ZYjvaEc9/pMH2Cm8="
},
"nopt": {
- "version": "https://registry.npmjs.org/nopt/-/nopt-3.0.1.tgz",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.1.tgz",
"integrity": "sha1-vOXEJEajKR9HYio3CrvxWPu6y/0=",
"requires": {
- "abbrev": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz"
+ "abbrev": "1"
}
},
"normalize-package-data": {
- "version": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz",
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz",
"integrity": "sha1-jZJPFClg4Xd+f/4XBUNjHMfLAt8=",
"requires": {
- "hosted-git-info": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.2.0.tgz",
- "is-builtin-module": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
- "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
- "validate-npm-package-license": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz"
+ "hosted-git-info": "^2.1.4",
+ "is-builtin-module": "^1.0.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
}
},
"npm": {
- "version": "https://registry.npmjs.org/npm/-/npm-2.15.11.tgz",
+ "version": "2.15.11",
+ "resolved": "https://registry.npmjs.org/npm/-/npm-2.15.11.tgz",
"integrity": "sha1-NQWI+6nNjThM+abo3A/vD5SZK3w=",
"requires": {
- "abbrev": "1.0.9",
- "ansi": "0.3.1",
- "ansi-regex": "2.0.0",
- "ansicolors": "0.3.2",
- "ansistyles": "0.1.3",
- "archy": "1.0.0",
- "async-some": "1.0.2",
+ "abbrev": "~1.0.9",
+ "ansi": "~0.3.1",
+ "ansi-regex": "*",
+ "ansicolors": "~0.3.2",
+ "ansistyles": "~0.1.3",
+ "archy": "~1.0.0",
+ "async-some": "~1.0.2",
"block-stream": "0.0.9",
- "char-spinner": "1.0.1",
- "chmodr": "1.0.2",
- "chownr": "1.0.1",
- "cmd-shim": "2.0.2",
- "columnify": "1.5.4",
- "config-chain": "1.1.10",
- "dezalgo": "1.0.3",
- "editor": "1.0.0",
- "fs-vacuum": "1.2.9",
- "fs-write-stream-atomic": "1.0.8",
- "fstream": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz",
- "fstream-npm": "1.1.1",
- "github-url-from-git": "1.4.0",
- "github-url-from-username-repo": "1.0.2",
- "glob": "7.0.6",
- "graceful-fs": "4.1.6",
- "hosted-git-info": "2.1.5",
- "imurmurhash": "0.1.4",
- "inflight": "1.0.5",
- "inherits": "2.0.3",
- "ini": "1.3.4",
- "init-package-json": "1.9.4",
- "lockfile": "1.0.1",
- "lru-cache": "4.0.1",
- "minimatch": "3.0.3",
- "mkdirp": "0.5.1",
- "node-gyp": "3.4.0",
- "nopt": "3.0.6",
- "normalize-git-url": "3.0.2",
- "normalize-package-data": "2.3.5",
- "npm-cache-filename": "1.0.2",
- "npm-install-checks": "1.0.7",
- "npm-package-arg": "4.1.0",
- "npm-registry-client": "7.2.1",
- "npm-user-validate": "0.1.5",
- "npmlog": "2.0.4",
- "once": "1.4.0",
- "opener": "1.4.1",
- "osenv": "0.1.3",
- "path-is-inside": "1.0.2",
- "read": "1.0.7",
- "read-installed": "4.0.3",
- "read-package-json": "2.0.4",
- "readable-stream": "2.1.5",
- "realize-package-specifier": "3.0.1",
- "request": "2.74.0",
- "retry": "0.10.0",
- "rimraf": "2.5.4",
- "semver": "5.1.0",
- "sha": "2.0.1",
- "slide": "1.1.6",
- "sorted-object": "2.0.0",
- "spdx-license-ids": "1.2.2",
- "strip-ansi": "3.0.1",
- "tar": "2.2.1",
- "text-table": "0.2.0",
+ "char-spinner": "~1.0.1",
+ "chmodr": "~1.0.2",
+ "chownr": "~1.0.1",
+ "cmd-shim": "~2.0.2",
+ "columnify": "~1.5.4",
+ "config-chain": "~1.1.10",
+ "dezalgo": "~1.0.3",
+ "editor": "~1.0.0",
+ "fs-vacuum": "~1.2.9",
+ "fs-write-stream-atomic": "~1.0.8",
+ "fstream": "~1.0.10",
+ "fstream-npm": "~1.1.1",
+ "github-url-from-git": "~1.4.0",
+ "github-url-from-username-repo": "~1.0.2",
+ "glob": "~7.0.6",
+ "graceful-fs": "~4.1.6",
+ "hosted-git-info": "~2.1.5",
+ "imurmurhash": "*",
+ "inflight": "~1.0.4",
+ "inherits": "~2.0.3",
+ "ini": "~1.3.4",
+ "init-package-json": "~1.9.4",
+ "lockfile": "~1.0.1",
+ "lru-cache": "~4.0.1",
+ "minimatch": "~3.0.3",
+ "mkdirp": "~0.5.1",
+ "node-gyp": "~3.4.0",
+ "nopt": "~3.0.6",
+ "normalize-git-url": "~3.0.2",
+ "normalize-package-data": "~2.3.5",
+ "npm-cache-filename": "~1.0.2",
+ "npm-install-checks": "~1.0.7",
+ "npm-package-arg": "~4.1.0",
+ "npm-registry-client": "~7.2.1",
+ "npm-user-validate": "~0.1.5",
+ "npmlog": "~2.0.4",
+ "once": "~1.4.0",
+ "opener": "~1.4.1",
+ "osenv": "~0.1.3",
+ "path-is-inside": "~1.0.0",
+ "read": "~1.0.7",
+ "read-installed": "~4.0.3",
+ "read-package-json": "~2.0.4",
+ "readable-stream": "~2.1.5",
+ "realize-package-specifier": "~3.0.1",
+ "request": "~2.74.0",
+ "retry": "~0.10.0",
+ "rimraf": "~2.5.4",
+ "semver": "~5.1.0",
+ "sha": "~2.0.1",
+ "slide": "~1.1.6",
+ "sorted-object": "~2.0.0",
+ "spdx-license-ids": "~1.2.2",
+ "strip-ansi": "~3.0.1",
+ "tar": "~2.2.1",
+ "text-table": "~0.2.0",
"uid-number": "0.0.6",
- "umask": "1.1.0",
- "validate-npm-package-license": "3.0.1",
- "validate-npm-package-name": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-2.2.2.tgz",
- "which": "1.2.11",
- "wrappy": "1.0.2",
- "write-file-atomic": "1.1.4"
+ "umask": "~1.1.0",
+ "validate-npm-package-license": "~3.0.1",
+ "validate-npm-package-name": "~2.2.2",
+ "which": "~1.2.11",
+ "wrappy": "~1.0.2",
+ "write-file-atomic": "~1.1.4"
},
"dependencies": {
"abbrev": {
@@ -2612,7 +2960,7 @@
"resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
"integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
"requires": {
- "inherits": "2.0.3"
+ "inherits": "~2.0.0"
}
},
"char-spinner": {
@@ -2635,8 +2983,8 @@
"resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-2.0.2.tgz",
"integrity": "sha1-b8vamUg6j9FdfTChlspp1oii79s=",
"requires": {
- "graceful-fs": "4.1.6",
- "mkdirp": "0.5.1"
+ "graceful-fs": "^4.1.2",
+ "mkdirp": "~0.5.0"
}
},
"columnify": {
@@ -2644,8 +2992,8 @@
"resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz",
"integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=",
"requires": {
- "strip-ansi": "3.0.1",
- "wcwidth": "1.0.0"
+ "strip-ansi": "^3.0.0",
+ "wcwidth": "^1.0.0"
},
"dependencies": {
"wcwidth": {
@@ -2653,7 +3001,7 @@
"resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.0.tgz",
"integrity": "sha1-AtBZ/3qPx0Hg9rXaHmmytA2uym8=",
"requires": {
- "defaults": "1.0.3"
+ "defaults": "^1.0.0"
},
"dependencies": {
"defaults": {
@@ -2661,7 +3009,7 @@
"resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
"integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
"requires": {
- "clone": "1.0.2"
+ "clone": "^1.0.2"
},
"dependencies": {
"clone": {
@@ -2680,8 +3028,8 @@
"resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.10.tgz",
"integrity": "sha1-f8OD3g/MhNcRy0Zb0XZXnK1hI0Y=",
"requires": {
- "ini": "1.3.4",
- "proto-list": "1.2.4"
+ "ini": "^1.3.4",
+ "proto-list": "~1.2.1"
},
"dependencies": {
"proto-list": {
@@ -2701,9 +3049,9 @@
"resolved": "https://registry.npmjs.org/fs-vacuum/-/fs-vacuum-1.2.9.tgz",
"integrity": "sha1-T5AZOrjqAokJlbzU6ARlml02ay0=",
"requires": {
- "graceful-fs": "4.1.6",
- "path-is-inside": "1.0.2",
- "rimraf": "2.5.4"
+ "graceful-fs": "^4.1.2",
+ "path-is-inside": "^1.0.1",
+ "rimraf": "^2.5.2"
}
},
"fs-write-stream-atomic": {
@@ -2711,10 +3059,10 @@
"resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.8.tgz",
"integrity": "sha1-5Jqt3yiPh9Rv+eiC8hahOrxAd4s=",
"requires": {
- "graceful-fs": "4.1.6",
- "iferr": "0.1.5",
- "imurmurhash": "0.1.4",
- "readable-stream": "2.1.5"
+ "graceful-fs": "^4.1.2",
+ "iferr": "^0.1.5",
+ "imurmurhash": "^0.1.4",
+ "readable-stream": "1 || 2"
},
"dependencies": {
"iferr": {
@@ -2729,8 +3077,8 @@
"resolved": "https://registry.npmjs.org/fstream-npm/-/fstream-npm-1.1.1.tgz",
"integrity": "sha1-a5F122I5qD2CCeIyQmxJTbspaQw=",
"requires": {
- "fstream-ignore": "1.0.5",
- "inherits": "2.0.3"
+ "fstream-ignore": "^1.0.0",
+ "inherits": "2"
},
"dependencies": {
"fstream-ignore": {
@@ -2738,9 +3086,9 @@
"resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz",
"integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=",
"requires": {
- "fstream": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz",
- "inherits": "2.0.3",
- "minimatch": "3.0.3"
+ "fstream": "^1.0.0",
+ "inherits": "2",
+ "minimatch": "^3.0.0"
}
}
}
@@ -2755,12 +3103,12 @@
"resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz",
"integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=",
"requires": {
- "fs.realpath": "1.0.0",
- "inflight": "1.0.5",
- "inherits": "2.0.3",
- "minimatch": "3.0.3",
- "once": "1.4.0",
- "path-is-absolute": "1.0.0"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.2",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
},
"dependencies": {
"fs.realpath": {
@@ -2795,8 +3143,8 @@
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.5.tgz",
"integrity": "sha1-2zIEzVqd4ubNiQuFxuL2a89PYgo=",
"requires": {
- "once": "1.4.0",
- "wrappy": "1.0.2"
+ "once": "^1.3.0",
+ "wrappy": "1"
}
},
"inherits": {
@@ -2814,14 +3162,14 @@
"resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.9.4.tgz",
"integrity": "sha1-tAU9C0Dwz4QqQZZpN8s9wPU06FY=",
"requires": {
- "glob": "6.0.4",
- "npm-package-arg": "4.1.0",
- "promzard": "0.3.0",
- "read": "1.0.7",
- "read-package-json": "2.0.4",
- "semver": "5.1.0",
- "validate-npm-package-license": "3.0.1",
- "validate-npm-package-name": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-2.2.2.tgz"
+ "glob": "^6.0.0",
+ "npm-package-arg": "^4.0.0",
+ "promzard": "^0.3.0",
+ "read": "~1.0.1",
+ "read-package-json": "1 || 2",
+ "semver": "2.x || 3.x || 4 || 5",
+ "validate-npm-package-license": "^3.0.1",
+ "validate-npm-package-name": "^2.0.1"
},
"dependencies": {
"glob": {
@@ -2829,11 +3177,11 @@
"resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
"integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
"requires": {
- "inflight": "1.0.5",
- "inherits": "2.0.3",
- "minimatch": "3.0.3",
- "once": "1.4.0",
- "path-is-absolute": "1.0.0"
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
},
"dependencies": {
"path-is-absolute": {
@@ -2848,7 +3196,7 @@
"resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz",
"integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=",
"requires": {
- "read": "1.0.7"
+ "read": "1"
}
}
}
@@ -2863,8 +3211,8 @@
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.1.tgz",
"integrity": "sha1-E0OVXtry432bnn7nJB4nxLn7cr4=",
"requires": {
- "pseudomap": "1.0.2",
- "yallist": "2.0.0"
+ "pseudomap": "^1.0.1",
+ "yallist": "^2.0.0"
},
"dependencies": {
"pseudomap": {
@@ -2884,7 +3232,7 @@
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
"integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
"requires": {
- "brace-expansion": "1.1.6"
+ "brace-expansion": "^1.0.0"
},
"dependencies": {
"brace-expansion": {
@@ -2892,7 +3240,7 @@
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz",
"integrity": "sha1-cZfX6qm4fmSDkOph/GbIRCdCDfk=",
"requires": {
- "balanced-match": "0.4.2",
+ "balanced-match": "^0.4.1",
"concat-map": "0.0.1"
},
"dependencies": {
@@ -2930,20 +3278,20 @@
"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.4.0.tgz",
"integrity": "sha1-3aVYOTs+y74kyea4cDxxGUxj+jY=",
"requires": {
- "fstream": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz",
- "glob": "7.0.6",
- "graceful-fs": "4.1.6",
- "minimatch": "3.0.3",
- "mkdirp": "0.5.1",
- "nopt": "3.0.6",
- "npmlog": "2.0.4",
- "osenv": "0.1.3",
- "path-array": "1.0.1",
- "request": "2.74.0",
- "rimraf": "2.5.4",
- "semver": "5.1.0",
- "tar": "2.2.1",
- "which": "1.2.11"
+ "fstream": "^1.0.0",
+ "glob": "^7.0.3",
+ "graceful-fs": "^4.1.2",
+ "minimatch": "^3.0.2",
+ "mkdirp": "^0.5.0",
+ "nopt": "2 || 3",
+ "npmlog": "0 || 1 || 2 || 3",
+ "osenv": "0",
+ "path-array": "^1.0.0",
+ "request": "2",
+ "rimraf": "2",
+ "semver": "2.x || 3.x || 4 || 5",
+ "tar": "^2.0.0",
+ "which": "1"
},
"dependencies": {
"path-array": {
@@ -2951,7 +3299,7 @@
"resolved": "https://registry.npmjs.org/path-array/-/path-array-1.0.1.tgz",
"integrity": "sha1-fi8PNfB6IBUSK4aLfqwOssT+wnE=",
"requires": {
- "array-index": "1.0.0"
+ "array-index": "^1.0.0"
},
"dependencies": {
"array-index": {
@@ -2959,8 +3307,8 @@
"resolved": "https://registry.npmjs.org/array-index/-/array-index-1.0.0.tgz",
"integrity": "sha1-7FanSe4QPk4Ix5C5w1PfFgVbl/k=",
"requires": {
- "debug": "2.2.0",
- "es6-symbol": "3.1.0"
+ "debug": "^2.2.0",
+ "es6-symbol": "^3.0.2"
},
"dependencies": {
"debug": {
@@ -2983,8 +3331,8 @@
"resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.0.tgz",
"integrity": "sha1-lEgcZV56fK2C66gy2X1UM0ltf/o=",
"requires": {
- "d": "0.1.1",
- "es5-ext": "0.10.12"
+ "d": "~0.1.1",
+ "es5-ext": "~0.10.11"
},
"dependencies": {
"d": {
@@ -2992,7 +3340,7 @@
"resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
"integrity": "sha1-2hhMU10Y2O57oqoim5FACfrhEwk=",
"requires": {
- "es5-ext": "0.10.12"
+ "es5-ext": "~0.10.2"
}
},
"es5-ext": {
@@ -3000,8 +3348,8 @@
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz",
"integrity": "sha1-qoRkHU23a2Krul5F/YBey6sUAEc=",
"requires": {
- "es6-iterator": "2.0.0",
- "es6-symbol": "3.1.0"
+ "es6-iterator": "2",
+ "es6-symbol": "~3.1"
},
"dependencies": {
"es6-iterator": {
@@ -3009,9 +3357,9 @@
"resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.0.tgz",
"integrity": "sha1-vZaFZ9YWNeM8C4BydhPJy0sJa6w=",
"requires": {
- "d": "0.1.1",
- "es5-ext": "0.10.12",
- "es6-symbol": "3.1.0"
+ "d": "^0.1.1",
+ "es5-ext": "^0.10.7",
+ "es6-symbol": "3"
}
}
}
@@ -3029,7 +3377,7 @@
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
"requires": {
- "abbrev": "1.0.9"
+ "abbrev": "1"
}
},
"normalize-git-url": {
@@ -3042,10 +3390,10 @@
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz",
"integrity": "sha1-jZJPFClg4Xd+f/4XBUNjHMfLAt8=",
"requires": {
- "hosted-git-info": "2.1.5",
- "is-builtin-module": "1.0.0",
- "semver": "5.1.0",
- "validate-npm-package-license": "3.0.1"
+ "hosted-git-info": "^2.1.4",
+ "is-builtin-module": "^1.0.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
},
"dependencies": {
"is-builtin-module": {
@@ -3053,7 +3401,7 @@
"resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
"integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
"requires": {
- "builtin-modules": "1.1.0"
+ "builtin-modules": "^1.0.0"
},
"dependencies": {
"builtin-modules": {
@@ -3075,8 +3423,8 @@
"resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-1.0.7.tgz",
"integrity": "sha1-bZGu2grJaAHx7Xqt7hFqbAoIalc=",
"requires": {
- "npmlog": "2.0.4",
- "semver": "5.1.0"
+ "npmlog": "0.1 || 1 || 2",
+ "semver": "^2.3.0 || 3.x || 4 || 5"
}
},
"npm-package-arg": {
@@ -3084,8 +3432,8 @@
"resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-4.1.0.tgz",
"integrity": "sha1-LgFfisAHN8uX+ZfJy/BZ9Cp0Un0=",
"requires": {
- "hosted-git-info": "2.1.5",
- "semver": "5.1.0"
+ "hosted-git-info": "^2.1.4",
+ "semver": "4 || 5"
}
},
"npm-registry-client": {
@@ -3093,16 +3441,16 @@
"resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-7.2.1.tgz",
"integrity": "sha1-x5ImawiMwxP4Ul5+NSSGJscj23U=",
"requires": {
- "concat-stream": "1.5.2",
- "graceful-fs": "4.1.6",
- "normalize-package-data": "2.3.5",
- "npm-package-arg": "4.1.0",
- "npmlog": "2.0.4",
- "once": "1.4.0",
- "request": "2.74.0",
- "retry": "0.10.0",
- "semver": "5.1.0",
- "slide": "1.1.6"
+ "concat-stream": "^1.5.2",
+ "graceful-fs": "^4.1.6",
+ "normalize-package-data": "~1.0.1 || ^2.0.0",
+ "npm-package-arg": "^3.0.0 || ^4.0.0",
+ "npmlog": "~2.0.0 || ~3.1.0",
+ "once": "^1.3.3",
+ "request": "^2.74.0",
+ "retry": "^0.10.0",
+ "semver": "2 >=2.2.1 || 3.x || 4 || 5",
+ "slide": "^1.1.3"
},
"dependencies": {
"concat-stream": {
@@ -3110,9 +3458,9 @@
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
"integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=",
"requires": {
- "inherits": "2.0.3",
- "readable-stream": "2.0.6",
- "typedarray": "0.0.6"
+ "inherits": "~2.0.1",
+ "readable-stream": "~2.0.0",
+ "typedarray": "~0.0.5"
},
"dependencies": {
"readable-stream": {
@@ -3120,12 +3468,12 @@
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
"integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
"requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "1.0.7",
- "string_decoder": "0.10.31",
- "util-deprecate": "1.0.2"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~1.0.6",
+ "string_decoder": "~0.10.x",
+ "util-deprecate": "~1.0.1"
},
"dependencies": {
"core-util-is": {
@@ -3179,9 +3527,9 @@
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.4.tgz",
"integrity": "sha1-mLUlMPJRTKkNCexbIsiEZyI3VpI=",
"requires": {
- "ansi": "0.3.1",
- "are-we-there-yet": "1.1.2",
- "gauge": "1.2.7"
+ "ansi": "~0.3.1",
+ "are-we-there-yet": "~1.1.2",
+ "gauge": "~1.2.5"
},
"dependencies": {
"are-we-there-yet": {
@@ -3189,8 +3537,8 @@
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz",
"integrity": "sha1-gORw6VoIR5T+GJkmLFZnxuiN4bM=",
"requires": {
- "delegates": "1.0.0",
- "readable-stream": "2.1.5"
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.0 || ^1.1.13"
},
"dependencies": {
"delegates": {
@@ -3205,11 +3553,11 @@
"resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz",
"integrity": "sha1-6c7FSD09TuDvRLYKfZnkk14TbZM=",
"requires": {
- "ansi": "0.3.1",
- "has-unicode": "2.0.0",
- "lodash.pad": "4.4.0",
- "lodash.padend": "4.5.0",
- "lodash.padstart": "4.5.0"
+ "ansi": "^0.3.0",
+ "has-unicode": "^2.0.0",
+ "lodash.pad": "^4.1.0",
+ "lodash.padend": "^4.1.0",
+ "lodash.padstart": "^4.1.0"
},
"dependencies": {
"has-unicode": {
@@ -3232,9 +3580,9 @@
"resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.4.0.tgz",
"integrity": "sha1-+qON8mwKaexQhqgiRslY4VDcsas=",
"requires": {
- "lodash._baseslice": "4.0.0",
- "lodash._basetostring": "4.12.0",
- "lodash.tostring": "4.1.4"
+ "lodash._baseslice": "~4.0.0",
+ "lodash._basetostring": "~4.12.0",
+ "lodash.tostring": "^4.0.0"
}
},
"lodash.padend": {
@@ -3242,9 +3590,9 @@
"resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.5.0.tgz",
"integrity": "sha1-oonpN37i5t6Lp/EfOo6zJgcLdhk=",
"requires": {
- "lodash._baseslice": "4.0.0",
- "lodash._basetostring": "4.12.0",
- "lodash.tostring": "4.1.4"
+ "lodash._baseslice": "~4.0.0",
+ "lodash._basetostring": "~4.12.0",
+ "lodash.tostring": "^4.0.0"
}
},
"lodash.padstart": {
@@ -3252,9 +3600,9 @@
"resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.5.0.tgz",
"integrity": "sha1-PqGQ9nNIQcM2TSedEeBWcmtgp5o=",
"requires": {
- "lodash._baseslice": "4.0.0",
- "lodash._basetostring": "4.12.0",
- "lodash.tostring": "4.1.4"
+ "lodash._baseslice": "~4.0.0",
+ "lodash._basetostring": "~4.12.0",
+ "lodash.tostring": "^4.0.0"
}
},
"lodash.tostring": {
@@ -3271,7 +3619,7 @@
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"requires": {
- "wrappy": "1.0.2"
+ "wrappy": "1"
}
},
"opener": {
@@ -3284,8 +3632,8 @@
"resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.3.tgz",
"integrity": "sha1-g88FxtZFj8TVrGNi6jJdkvJ1Qhc=",
"requires": {
- "os-homedir": "1.0.0",
- "os-tmpdir": "1.0.1"
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
},
"dependencies": {
"os-homedir": {
@@ -3305,7 +3653,7 @@
"resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
"integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=",
"requires": {
- "mute-stream": "0.0.5"
+ "mute-stream": "~0.0.4"
},
"dependencies": {
"mute-stream": {
@@ -3320,10 +3668,10 @@
"resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.4.tgz",
"integrity": "sha1-Ye0bIlbqQ42ACIlQkL6EuOeZyFM=",
"requires": {
- "glob": "6.0.4",
- "graceful-fs": "4.1.6",
- "json-parse-helpfulerror": "1.0.3",
- "normalize-package-data": "2.3.5"
+ "glob": "^6.0.0",
+ "graceful-fs": "^4.1.2",
+ "json-parse-helpfulerror": "^1.0.2",
+ "normalize-package-data": "^2.0.0"
},
"dependencies": {
"glob": {
@@ -3331,11 +3679,11 @@
"resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
"integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
"requires": {
- "inflight": "1.0.5",
- "inherits": "2.0.3",
- "minimatch": "3.0.3",
- "once": "1.4.0",
- "path-is-absolute": "1.0.0"
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
},
"dependencies": {
"path-is-absolute": {
@@ -3350,7 +3698,7 @@
"resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz",
"integrity": "sha1-E/FM4C7tTpgSl7ZOueO5MuLdE9w=",
"requires": {
- "jju": "1.3.0"
+ "jju": "^1.1.0"
},
"dependencies": {
"jju": {
@@ -3367,13 +3715,13 @@
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz",
"integrity": "sha1-ZvqLcg4UOLNkaB8q0aY8YYRIydA=",
"requires": {
- "buffer-shims": "1.0.0",
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "1.0.7",
- "string_decoder": "0.10.31",
- "util-deprecate": "1.0.2"
+ "buffer-shims": "^1.0.0",
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~1.0.6",
+ "string_decoder": "~0.10.x",
+ "util-deprecate": "~1.0.1"
},
"dependencies": {
"buffer-shims": {
@@ -3413,8 +3761,8 @@
"resolved": "https://registry.npmjs.org/realize-package-specifier/-/realize-package-specifier-3.0.1.tgz",
"integrity": "sha1-/eMukmRI44+ZM02Vt7CNUeOpjZ8=",
"requires": {
- "dezalgo": "1.0.3",
- "npm-package-arg": "4.1.0"
+ "dezalgo": "^1.0.1",
+ "npm-package-arg": "^4.0.0"
}
},
"request": {
@@ -3422,27 +3770,27 @@
"resolved": "https://registry.npmjs.org/request/-/request-2.74.0.tgz",
"integrity": "sha1-dpPKdou7DqXIzgjAhKRe+gW4kqs=",
"requires": {
- "aws-sign2": "0.6.0",
- "aws4": "1.4.1",
- "bl": "1.1.2",
- "caseless": "0.11.0",
- "combined-stream": "1.0.5",
- "extend": "3.0.0",
- "forever-agent": "0.6.1",
- "form-data": "1.0.0-rc4",
- "har-validator": "2.0.6",
- "hawk": "3.1.3",
- "http-signature": "1.1.1",
- "is-typedarray": "1.0.0",
- "isstream": "0.1.2",
- "json-stringify-safe": "5.0.1",
- "mime-types": "2.1.11",
- "node-uuid": "1.4.7",
- "oauth-sign": "0.8.2",
- "qs": "6.2.1",
- "stringstream": "0.0.5",
- "tough-cookie": "2.3.1",
- "tunnel-agent": "0.4.3"
+ "aws-sign2": "~0.6.0",
+ "aws4": "^1.2.1",
+ "bl": "~1.1.2",
+ "caseless": "~0.11.0",
+ "combined-stream": "~1.0.5",
+ "extend": "~3.0.0",
+ "forever-agent": "~0.6.1",
+ "form-data": "~1.0.0-rc4",
+ "har-validator": "~2.0.6",
+ "hawk": "~3.1.3",
+ "http-signature": "~1.1.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.7",
+ "node-uuid": "~1.4.7",
+ "oauth-sign": "~0.8.1",
+ "qs": "~6.2.0",
+ "stringstream": "~0.0.4",
+ "tough-cookie": "~2.3.0",
+ "tunnel-agent": "~0.4.1"
},
"dependencies": {
"aws-sign2": {
@@ -3460,7 +3808,7 @@
"resolved": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz",
"integrity": "sha1-/cqHGplxOqANGeO7ukHER4emU5g=",
"requires": {
- "readable-stream": "2.0.6"
+ "readable-stream": "~2.0.5"
},
"dependencies": {
"readable-stream": {
@@ -3468,12 +3816,12 @@
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
"integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
"requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "1.0.7",
- "string_decoder": "0.10.31",
- "util-deprecate": "1.0.2"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~1.0.6",
+ "string_decoder": "~0.10.x",
+ "util-deprecate": "~1.0.1"
},
"dependencies": {
"core-util-is": {
@@ -3515,7 +3863,7 @@
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
"integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
"requires": {
- "delayed-stream": "1.0.0"
+ "delayed-stream": "~1.0.0"
},
"dependencies": {
"delayed-stream": {
@@ -3540,9 +3888,9 @@
"resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz",
"integrity": "sha1-BaxrwiIntD5EYfSIFhVUaZ1Pi14=",
"requires": {
- "async": "1.5.2",
- "combined-stream": "1.0.5",
- "mime-types": "2.1.11"
+ "async": "^1.5.2",
+ "combined-stream": "^1.0.5",
+ "mime-types": "^2.1.10"
},
"dependencies": {
"async": {
@@ -3557,10 +3905,10 @@
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
"integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=",
"requires": {
- "chalk": "1.1.3",
- "commander": "2.9.0",
- "is-my-json-valid": "2.13.1",
- "pinkie-promise": "2.0.1"
+ "chalk": "^1.1.1",
+ "commander": "^2.9.0",
+ "is-my-json-valid": "^2.12.4",
+ "pinkie-promise": "^2.0.0"
},
"dependencies": {
"chalk": {
@@ -3568,11 +3916,11 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"requires": {
- "ansi-styles": "2.2.1",
- "escape-string-regexp": "1.0.5",
- "has-ansi": "2.0.0",
- "strip-ansi": "3.0.1",
- "supports-color": "2.0.0"
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
},
"dependencies": {
"ansi-styles": {
@@ -3590,7 +3938,7 @@
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
"requires": {
- "ansi-regex": "2.0.0"
+ "ansi-regex": "^2.0.0"
}
},
"supports-color": {
@@ -3605,7 +3953,7 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
"integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
"requires": {
- "graceful-readlink": "1.0.1"
+ "graceful-readlink": ">= 1.0.0"
},
"dependencies": {
"graceful-readlink": {
@@ -3620,10 +3968,10 @@
"resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz",
"integrity": "sha1-1Vd4qC/rawlj/0vhEdXRaE6JBwc=",
"requires": {
- "generate-function": "2.0.0",
- "generate-object-property": "1.2.0",
+ "generate-function": "^2.0.0",
+ "generate-object-property": "^1.1.0",
"jsonpointer": "2.0.0",
- "xtend": "4.0.1"
+ "xtend": "^4.0.0"
},
"dependencies": {
"generate-function": {
@@ -3636,7 +3984,7 @@
"resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
"integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
"requires": {
- "is-property": "1.0.2"
+ "is-property": "^1.0.0"
},
"dependencies": {
"is-property": {
@@ -3663,7 +4011,7 @@
"resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
"integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
"requires": {
- "pinkie": "2.0.4"
+ "pinkie": "^2.0.0"
},
"dependencies": {
"pinkie": {
@@ -3680,10 +4028,10 @@
"resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
"integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
"requires": {
- "boom": "2.10.1",
- "cryptiles": "2.0.5",
- "hoek": "2.16.3",
- "sntp": "1.0.9"
+ "boom": "2.x.x",
+ "cryptiles": "2.x.x",
+ "hoek": "2.x.x",
+ "sntp": "1.x.x"
},
"dependencies": {
"boom": {
@@ -3691,7 +4039,7 @@
"resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
"integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
"requires": {
- "hoek": "2.16.3"
+ "hoek": "2.x.x"
}
},
"cryptiles": {
@@ -3699,7 +4047,7 @@
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
"integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
"requires": {
- "boom": "2.10.1"
+ "boom": "2.x.x"
}
},
"hoek": {
@@ -3712,7 +4060,7 @@
"resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
"integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
"requires": {
- "hoek": "2.16.3"
+ "hoek": "2.x.x"
}
}
}
@@ -3722,9 +4070,9 @@
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
"integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
"requires": {
- "assert-plus": "0.2.0",
- "jsprim": "1.3.0",
- "sshpk": "1.9.2"
+ "assert-plus": "^0.2.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
},
"dependencies": {
"assert-plus": {
@@ -3767,14 +4115,14 @@
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.9.2.tgz",
"integrity": "sha1-O0E1G7rVw03fS9gRmTfv7jGkZ2U=",
"requires": {
- "asn1": "0.2.3",
- "assert-plus": "1.0.0",
- "dashdash": "1.14.0",
- "ecc-jsbn": "0.1.1",
- "getpass": "0.1.6",
- "jodid25519": "1.0.2",
- "jsbn": "0.1.0",
- "tweetnacl": "0.13.3"
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jodid25519": "^1.0.0",
+ "jsbn": "~0.1.0",
+ "tweetnacl": "~0.13.0"
},
"dependencies": {
"asn1": {
@@ -3792,7 +4140,7 @@
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.0.tgz",
"integrity": "sha1-KeSGxUGL8PNWA0qZPVFoajPoQUE=",
"requires": {
- "assert-plus": "1.0.0"
+ "assert-plus": "^1.0.0"
}
},
"ecc-jsbn": {
@@ -3801,7 +4149,7 @@
"integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
"optional": true,
"requires": {
- "jsbn": "0.1.0"
+ "jsbn": "~0.1.0"
}
},
"getpass": {
@@ -3809,7 +4157,7 @@
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz",
"integrity": "sha1-KD/9n8ElaECHUxHBtg6MQBhxEOY=",
"requires": {
- "assert-plus": "1.0.0"
+ "assert-plus": "^1.0.0"
}
},
"jodid25519": {
@@ -3818,7 +4166,7 @@
"integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=",
"optional": true,
"requires": {
- "jsbn": "0.1.0"
+ "jsbn": "~0.1.0"
}
},
"jsbn": {
@@ -3857,7 +4205,7 @@
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz",
"integrity": "sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw=",
"requires": {
- "mime-db": "1.23.0"
+ "mime-db": "~1.23.0"
},
"dependencies": {
"mime-db": {
@@ -3909,7 +4257,7 @@
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz",
"integrity": "sha1-loAAk8vxoMhr2VtGJUZ1NcKd+gQ=",
"requires": {
- "glob": "7.0.6"
+ "glob": "^7.0.5"
}
},
"semver": {
@@ -3922,8 +4270,8 @@
"resolved": "https://registry.npmjs.org/sha/-/sha-2.0.1.tgz",
"integrity": "sha1-YDCCL70smCOUn49y7WQR7lzyWq4=",
"requires": {
- "graceful-fs": "4.1.6",
- "readable-stream": "2.0.2"
+ "graceful-fs": "^4.1.2",
+ "readable-stream": "^2.0.2"
},
"dependencies": {
"readable-stream": {
@@ -3931,12 +4279,12 @@
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz",
"integrity": "sha1-vsgb6ujPRVFovC5bKzH1vPrtmxs=",
"requires": {
- "core-util-is": "1.0.1",
- "inherits": "2.0.3",
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
"isarray": "0.0.1",
- "process-nextick-args": "1.0.3",
- "string_decoder": "0.10.31",
- "util-deprecate": "1.0.1"
+ "process-nextick-args": "~1.0.0",
+ "string_decoder": "~0.10.x",
+ "util-deprecate": "~1.0.1"
},
"dependencies": {
"core-util-is": {
@@ -3988,7 +4336,7 @@
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"requires": {
- "ansi-regex": "2.0.0"
+ "ansi-regex": "^2.0.0"
}
},
"tar": {
@@ -3996,9 +4344,9 @@
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
"integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
"requires": {
- "block-stream": "0.0.9",
- "fstream": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz",
- "inherits": "2.0.3"
+ "block-stream": "*",
+ "fstream": "^1.0.2",
+ "inherits": "2"
}
},
"uid-number": {
@@ -4016,8 +4364,8 @@
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
"integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
"requires": {
- "spdx-correct": "1.0.2",
- "spdx-expression-parse": "1.0.2"
+ "spdx-correct": "~1.0.0",
+ "spdx-expression-parse": "~1.0.0"
},
"dependencies": {
"spdx-correct": {
@@ -4025,7 +4373,7 @@
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
"integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
"requires": {
- "spdx-license-ids": "1.2.2"
+ "spdx-license-ids": "^1.0.2"
}
},
"spdx-expression-parse": {
@@ -4033,8 +4381,8 @@
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.2.tgz",
"integrity": "sha1-1SsUtelnB3FECvIlvLVjEirEUvY=",
"requires": {
- "spdx-exceptions": "1.0.4",
- "spdx-license-ids": "1.2.2"
+ "spdx-exceptions": "^1.0.4",
+ "spdx-license-ids": "^1.0.0"
},
"dependencies": {
"spdx-exceptions": {
@@ -4051,7 +4399,7 @@
"resolved": "https://registry.npmjs.org/which/-/which-1.2.11.tgz",
"integrity": "sha1-yLLu6muMFln6fB3U/aq+lTPcXos=",
"requires": {
- "isexe": "1.1.2"
+ "isexe": "^1.1.1"
},
"dependencies": {
"isexe": {
@@ -4071,138 +4419,174 @@
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.1.4.tgz",
"integrity": "sha1-sfUtwujcDjywTRh6JfdYo4qQyjs=",
"requires": {
- "graceful-fs": "4.1.6",
- "imurmurhash": "0.1.4",
- "slide": "1.1.6"
+ "graceful-fs": "^4.1.2",
+ "imurmurhash": "^0.1.4",
+ "slide": "^1.1.5"
}
}
}
},
"npm-package-arg": {
- "version": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-4.2.0.tgz",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-4.2.0.tgz",
"integrity": "sha1-gJvGHKv1S9X/lPYWXIm6juiMEVw=",
"requires": {
- "hosted-git-info": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.2.0.tgz",
- "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz"
+ "hosted-git-info": "^2.1.5",
+ "semver": "^5.1.0"
}
},
"number-is-nan": {
- "version": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
},
"oauth-sign": {
- "version": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.4.0.tgz",
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.4.0.tgz",
"integrity": "sha1-8ilW8x6nFRqCHl8vsywRPK2Ln2k="
},
"object-assign": {
- "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
+ "object-inspect": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
+ "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ=="
+ },
"object-keys": {
- "version": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz",
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz",
"integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0="
},
+ "objectorarray": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.3.tgz",
+ "integrity": "sha512-kPoflSYkAf/Onvjr4ZLaq37vDuOXjVzfwLCRuORRzYGdXkHa/vacPT0RgR+KmtkwOYFcxTMM62BRrZk8GGKHjw==",
+ "requires": {
+ "tape": "^4.8.0"
+ }
+ },
"on-finished": {
- "version": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
"integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
"requires": {
- "ee-first": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
+ "ee-first": "1.1.1"
}
},
"on-headers": {
- "version": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz",
"integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c="
},
"once": {
- "version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"requires": {
- "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+ "wrappy": "1"
}
},
"onetime": {
- "version": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
"integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k="
},
"opener": {
- "version": "https://registry.npmjs.org/opener/-/opener-1.4.1.tgz",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/opener/-/opener-1.4.1.tgz",
"integrity": "sha1-iXWQrNGu0zEbcDtYvMtNQ/VvKJU="
},
"os-browserify": {
- "version": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz",
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz",
"integrity": "sha1-ScoCk+CxlZCl9d4Qx/JlphfY/lQ="
},
"os-homedir": {
- "version": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
"integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
},
"os-name": {
- "version": "https://registry.npmjs.org/os-name/-/os-name-1.0.3.tgz",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/os-name/-/os-name-1.0.3.tgz",
"integrity": "sha1-GzefZINa98Wn9JizV8uVIVwVnt8=",
"requires": {
- "osx-release": "https://registry.npmjs.org/osx-release/-/osx-release-1.1.0.tgz",
- "win-release": "https://registry.npmjs.org/win-release/-/win-release-1.1.1.tgz"
+ "osx-release": "^1.0.0",
+ "win-release": "^1.0.0"
}
},
"os-tmpdir": {
- "version": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
},
"osenv": {
- "version": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz",
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz",
"integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=",
"requires": {
- "os-homedir": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
- "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
}
},
"osx-release": {
- "version": "https://registry.npmjs.org/osx-release/-/osx-release-1.1.0.tgz",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/osx-release/-/osx-release-1.1.0.tgz",
"integrity": "sha1-8heRGigTaUmvG/kwiyQeJzfTzWw=",
"requires": {
- "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz"
+ "minimist": "^1.1.0"
}
},
"package-json": {
- "version": "https://registry.npmjs.org/package-json/-/package-json-1.2.0.tgz",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/package-json/-/package-json-1.2.0.tgz",
"integrity": "sha1-yOysCUInzfdqMWh07QXifMk5oOA=",
"requires": {
- "got": "https://registry.npmjs.org/got/-/got-3.3.1.tgz",
- "registry-url": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz"
+ "got": "^3.2.0",
+ "registry-url": "^3.0.0"
}
},
"pako": {
- "version": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
"integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU="
},
"parents": {
- "version": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz",
"integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=",
"requires": {
- "path-platform": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz"
+ "path-platform": "~0.11.15"
}
},
"parse-asn1": {
- "version": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.0.0.tgz",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.0.0.tgz",
"integrity": "sha1-NQYPbVAV03Yox3D04JGgtaJ4vCM=",
"requires": {
- "asn1.js": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz",
- "browserify-aes": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz",
- "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz",
- "evp_bytestokey": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz",
- "pbkdf2": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.9.tgz"
+ "asn1.js": "^4.0.0",
+ "browserify-aes": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.0",
+ "pbkdf2": "^3.0.3"
}
},
"parseurl": {
- "version": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz",
"integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY="
},
"path-browserify": {
- "version": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
"integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo="
},
"path-is-absolute": {
- "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
},
"path-is-inside": {
@@ -4210,39 +4594,55 @@
"resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
"integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM="
},
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
+ },
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
+ },
"path-platform": {
- "version": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz",
+ "version": "0.11.15",
+ "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz",
"integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I="
},
"path-to-regexp": {
- "version": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
},
"pbkdf2": {
- "version": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.9.tgz",
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.9.tgz",
"integrity": "sha1-8sSyWmAAWLPDdzwIbDfbvuH/5pM=",
"requires": {
- "create-hmac": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.4.tgz"
+ "create-hmac": "^1.1.2"
}
},
"pegjs": {
- "version": "https://registry.npmjs.org/pegjs/-/pegjs-0.9.0.tgz",
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/pegjs/-/pegjs-0.9.0.tgz",
"integrity": "sha1-9q76LjzlYWkgjlIXnf5B+JFBo2k="
},
"phonegap-plugin-push": {
- "version": "1.9.2",
- "resolved": "https://registry.npmjs.org/phonegap-plugin-push/-/phonegap-plugin-push-1.9.2.tgz",
- "integrity": "sha1-3PktbNuZLcs3iUCyIbfwjoKcn8E="
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/phonegap-plugin-push/-/phonegap-plugin-push-1.11.1.tgz",
+ "integrity": "sha512-AI7sV+g/ORyP0V3r6aCfekA+WC1RghbXyEAkqExMq/G0J66lAVySluemeGZsrpdNGjkq/KqLrjslHqYNPq3Nxw=="
},
"pinkie": {
- "version": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
"integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
},
"pinkie-promise": {
- "version": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
"integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
"requires": {
- "pinkie": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz"
+ "pinkie": "^2.0.0"
}
},
"plist": {
@@ -4250,104 +4650,121 @@
"resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz",
"integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==",
"requires": {
- "base64-js": "1.3.0",
- "xmlbuilder": "9.0.7",
- "xmldom": "0.1.27"
+ "base64-js": "^1.2.3",
+ "xmlbuilder": "^9.0.7",
+ "xmldom": "0.1.x"
}
},
"prepend-http": {
- "version": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
"integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
},
"process": {
- "version": "https://registry.npmjs.org/process/-/process-0.11.9.tgz",
+ "version": "0.11.9",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.9.tgz",
"integrity": "sha1-e9WtIapiU+fahoImTx4R0RwDGME="
},
"process-nextick-args": {
- "version": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
"integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
},
"promzard": {
- "version": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz",
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz",
"integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=",
"requires": {
- "read": "https://registry.npmjs.org/read/-/read-1.0.7.tgz"
+ "read": "1"
}
},
"properties-parser": {
- "version": "https://registry.npmjs.org/properties-parser/-/properties-parser-0.2.3.tgz",
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/properties-parser/-/properties-parser-0.2.3.tgz",
"integrity": "sha1-91kSVfcHq7/yJ8e1a2N9uwNzoQ8="
},
"proxy-addr": {
- "version": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.3.tgz",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.3.tgz",
"integrity": "sha1-3JdQL1ci6IhGez+iKXp7H/R98HQ=",
"requires": {
- "forwarded": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz",
- "ipaddr.js": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.2.0.tgz"
+ "forwarded": "~0.1.0",
+ "ipaddr.js": "1.2.0"
}
},
"public-encrypt": {
- "version": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz",
"integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=",
"requires": {
- "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
- "browserify-rsa": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
- "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz",
- "parse-asn1": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.0.0.tgz",
- "randombytes": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz"
+ "bn.js": "^4.1.0",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "parse-asn1": "^5.0.0",
+ "randombytes": "^2.0.1"
}
},
"punycode": {
- "version": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
},
"q": {
- "version": "https://registry.npmjs.org/q/-/q-1.0.1.tgz",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.0.1.tgz",
"integrity": "sha1-EYcq7t7okmgRCxCnGESP+xARKhQ="
},
"qs": {
- "version": "https://registry.npmjs.org/qs/-/qs-6.2.0.tgz",
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.0.tgz",
"integrity": "sha1-O3hIwDwt7OaalSKw+ujEEm10Xzs="
},
"querystring": {
- "version": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
"integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA="
},
"querystring-es3": {
- "version": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
"integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM="
},
"randombytes": {
- "version": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz",
"integrity": "sha1-Z0yZdgkBw8QRJ3GjHlIdw0nMCew="
},
"range-parser": {
- "version": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
"integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
},
"rc": {
- "version": "https://registry.npmjs.org/rc/-/rc-1.1.7.tgz",
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.7.tgz",
"integrity": "sha1-xepWS7B6/5/TpbMukGwdOmWUD+o=",
"requires": {
- "deep-extend": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz",
- "ini": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz",
- "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "strip-json-comments": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz"
+ "deep-extend": "~0.4.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
}
},
"read": {
- "version": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
"integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=",
"requires": {
- "mute-stream": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz"
+ "mute-stream": "~0.0.4"
}
},
"read-all-stream": {
- "version": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz",
"integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=",
"requires": {
- "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz"
+ "pinkie-promise": "^2.0.0",
+ "readable-stream": "^2.0.0"
}
},
"read-installed": {
@@ -4355,60 +4772,65 @@
"resolved": "https://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz",
"integrity": "sha1-/5uLZ/GH0eTCm5/rMfayI6zRkGc=",
"requires": {
- "debuglog": "1.0.1",
- "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
- "read-package-json": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.4.tgz",
- "readdir-scoped-modules": "1.0.2",
- "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
- "slide": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz",
- "util-extend": "1.0.3"
+ "debuglog": "^1.0.1",
+ "graceful-fs": "^4.1.2",
+ "read-package-json": "^2.0.0",
+ "readdir-scoped-modules": "^1.0.0",
+ "semver": "2 || 3 || 4 || 5",
+ "slide": "~1.1.3",
+ "util-extend": "^1.0.1"
}
},
"read-only-stream": {
- "version": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz",
"integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=",
"requires": {
- "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz"
+ "readable-stream": "^2.0.2"
}
},
"read-package-json": {
- "version": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.4.tgz",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.4.tgz",
"integrity": "sha1-Ye0bIlbqQ42ACIlQkL6EuOeZyFM=",
"requires": {
- "glob": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
- "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
- "json-parse-helpfulerror": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz",
- "normalize-package-data": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz"
+ "glob": "^6.0.0",
+ "graceful-fs": "^4.1.2",
+ "json-parse-helpfulerror": "^1.0.2",
+ "normalize-package-data": "^2.0.0"
},
"dependencies": {
"glob": {
- "version": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
"integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
"requires": {
- "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
- "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
}
}
},
"readable-stream": {
- "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz",
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz",
"integrity": "sha1-nPSUY5hd8BbIrogTCXqSk6mzNyk=",
"requires": {
- "buffer-shims": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
- "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
- "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
+ "buffer-shims": "^1.0.0",
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~1.0.6",
+ "string_decoder": "~0.10.x",
+ "util-deprecate": "~1.0.1"
},
"dependencies": {
"isarray": {
- "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
}
}
@@ -4418,217 +4840,265 @@
"resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz",
"integrity": "sha1-n6+jfShr5dksuuve4DDcm19AZ0c=",
"requires": {
- "debuglog": "1.0.1",
- "dezalgo": "1.0.3",
- "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
- "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
+ "debuglog": "^1.0.1",
+ "dezalgo": "^1.0.0",
+ "graceful-fs": "^4.1.2",
+ "once": "^1.3.0"
}
},
"readline2": {
- "version": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz",
"integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=",
"requires": {
- "code-point-at": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "is-fullwidth-code-point": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "mute-stream": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz"
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "mute-stream": "0.0.5"
},
"dependencies": {
"mute-stream": {
- "version": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz",
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz",
"integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA="
}
}
},
"rechoir": {
- "version": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
"integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
"requires": {
- "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.2.0.tgz"
+ "resolve": "^1.1.6"
}
},
"registry-url": {
- "version": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
"integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
"requires": {
- "rc": "https://registry.npmjs.org/rc/-/rc-1.1.7.tgz"
+ "rc": "^1.0.1"
}
},
"repeating": {
- "version": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz",
"integrity": "sha1-PUEUIYh3U3SU+X93+Xhfq4EPpKw=",
"requires": {
- "is-finite": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz"
+ "is-finite": "^1.0.0"
}
},
"request": {
- "version": "https://registry.npmjs.org/request/-/request-2.47.0.tgz",
+ "version": "2.47.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.47.0.tgz",
"integrity": "sha1-Cen9Gk/tZZOoBe+CArIPDF7LSF8=",
"requires": {
- "aws-sign2": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz",
- "bl": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz",
- "caseless": "https://registry.npmjs.org/caseless/-/caseless-0.6.0.tgz",
- "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz",
- "forever-agent": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz",
- "form-data": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz",
- "hawk": "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz",
- "http-signature": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz",
- "json-stringify-safe": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz",
- "node-uuid": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz",
- "oauth-sign": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.4.0.tgz",
- "qs": "https://registry.npmjs.org/qs/-/qs-2.3.3.tgz",
- "stringstream": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
- "tough-cookie": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
- "tunnel-agent": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz"
+ "aws-sign2": "~0.5.0",
+ "bl": "~0.9.0",
+ "caseless": "~0.6.0",
+ "combined-stream": "~0.0.5",
+ "forever-agent": "~0.5.0",
+ "form-data": "~0.1.0",
+ "hawk": "1.1.1",
+ "http-signature": "~0.10.0",
+ "json-stringify-safe": "~5.0.0",
+ "mime-types": "~1.0.1",
+ "node-uuid": "~1.4.0",
+ "oauth-sign": "~0.4.0",
+ "qs": "~2.3.1",
+ "stringstream": "~0.0.4",
+ "tough-cookie": ">=0.12.0",
+ "tunnel-agent": "~0.4.0"
},
"dependencies": {
"mime-types": {
- "version": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz",
"integrity": "sha1-mVrhOSq4r/y/yyZB3QVOlDwNXc4="
},
"qs": {
- "version": "https://registry.npmjs.org/qs/-/qs-2.3.3.tgz",
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-2.3.3.tgz",
"integrity": "sha1-6eha2+ddoLvkyOBHaghikPhjtAQ="
}
}
},
"resolve": {
- "version": "https://registry.npmjs.org/resolve/-/resolve-1.2.0.tgz",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.2.0.tgz",
"integrity": "sha1-lYnD8vYUnRQXpAvswWY9tuxrwmw="
},
"restore-cursor": {
- "version": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
"integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
"requires": {
- "exit-hook": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
- "onetime": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz"
+ "exit-hook": "^1.0.0",
+ "onetime": "^1.0.0"
+ }
+ },
+ "resumer": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz",
+ "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=",
+ "requires": {
+ "through": "~2.3.4"
}
},
"rimraf": {
- "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.0.tgz",
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.0.tgz",
"integrity": "sha1-ibig/kMrn/nsmpJaALbNs6kbuto=",
"requires": {
- "glob": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz"
+ "glob": "^7.0.5"
},
"dependencies": {
"glob": {
- "version": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
"integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
"requires": {
- "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
- "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.2",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
}
}
},
"ripemd160": {
- "version": "https://registry.npmjs.org/ripemd160/-/ripemd160-1.0.1.tgz",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-1.0.1.tgz",
"integrity": "sha1-k6S71JQrxXS2mo+lfHHeEOzKfW4="
},
"run-async": {
- "version": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz",
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz",
"integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=",
"requires": {
- "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
+ "once": "^1.3.0"
}
},
"rx-lite": {
- "version": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz",
"integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI="
},
"sax": {
- "version": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz",
"integrity": "sha1-dLbTPJrh4AFRDxeakRaFiPGu2qk="
},
"semver": {
- "version": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
"integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8="
},
"semver-diff": {
- "version": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz",
"integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
"requires": {
- "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz"
+ "semver": "^5.0.3"
}
},
"send": {
- "version": "https://registry.npmjs.org/send/-/send-0.14.2.tgz",
+ "version": "0.14.2",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.14.2.tgz",
"integrity": "sha1-ObBDiz9RC+Xcb2Z6EfcWiTaM3u8=",
"requires": {
- "debug": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
- "depd": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz",
- "destroy": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
- "encodeurl": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz",
- "escape-html": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "etag": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz",
- "fresh": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz",
- "http-errors": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz",
- "mime": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
- "ms": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
- "on-finished": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
- "range-parser": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
- "statuses": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz"
+ "debug": "~2.2.0",
+ "depd": "~1.1.0",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.1",
+ "escape-html": "~1.0.3",
+ "etag": "~1.7.0",
+ "fresh": "0.3.0",
+ "http-errors": "~1.5.1",
+ "mime": "1.3.4",
+ "ms": "0.7.2",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.0",
+ "statuses": "~1.3.1"
},
"dependencies": {
"ms": {
- "version": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
"integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U="
}
}
},
"serve-static": {
- "version": "https://registry.npmjs.org/serve-static/-/serve-static-1.11.2.tgz",
+ "version": "1.11.2",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.11.2.tgz",
"integrity": "sha1-LPmIm9RDWjIMw2iVyapXvWYuasc=",
"requires": {
- "encodeurl": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz",
- "escape-html": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "parseurl": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz",
- "send": "https://registry.npmjs.org/send/-/send-0.14.2.tgz"
+ "encodeurl": "~1.0.1",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.1",
+ "send": "0.14.2"
}
},
"setprototypeof": {
- "version": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz",
"integrity": "sha1-gaVSFB7BBLiOic44MQOtXGZWTQg="
},
"sha.js": {
- "version": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz",
+ "version": "2.4.8",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz",
"integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=",
"requires": {
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+ "inherits": "^2.0.1"
}
},
"shasum": {
- "version": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz",
"integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=",
"requires": {
- "json-stable-stringify": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz",
- "sha.js": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz"
+ "json-stable-stringify": "~0.0.0",
+ "sha.js": "~2.4.4"
+ }
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "requires": {
+ "shebang-regex": "^1.0.0"
}
},
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
+ },
"shell-quote": {
- "version": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz",
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz",
"integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=",
"requires": {
- "array-filter": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz",
- "array-map": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz",
- "array-reduce": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz",
- "jsonify": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz"
+ "array-filter": "~0.0.0",
+ "array-map": "~0.0.0",
+ "array-reduce": "~0.0.0",
+ "jsonify": "~0.0.0"
}
},
"shelljs": {
- "version": "https://registry.npmjs.org/shelljs/-/shelljs-0.5.3.tgz",
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.5.3.tgz",
"integrity": "sha1-xUmCuZbHbvDB5rWfvcWCX1txMRM="
},
"simple-plist": {
- "version": "https://registry.npmjs.org/simple-plist/-/simple-plist-0.1.4.tgz",
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-0.1.4.tgz",
"integrity": "sha1-EOtRtH4zxVbrjsRtXuZNZOcX210=",
"requires": {
- "bplist-creator": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.4.tgz",
- "bplist-parser": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.0.6.tgz",
+ "bplist-creator": "0.0.4",
+ "bplist-parser": "0.0.6",
"plist": "1.2.0"
},
"dependencies": {
@@ -4638,7 +5108,8 @@
"integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg="
},
"bplist-parser": {
- "version": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.0.6.tgz",
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.0.6.tgz",
"integrity": "sha1-ONo0cYF9+dRKs4kuJ3B7u9daEbk="
},
"plist": {
@@ -4647,9 +5118,9 @@
"integrity": "sha1-CEtQk93JJQbiWfh0uNmxr7jHlZM=",
"requires": {
"base64-js": "0.0.8",
- "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "util-deprecate": "1.0.2",
"xmlbuilder": "4.0.0",
- "xmldom": "0.1.27"
+ "xmldom": "0.1.x"
}
},
"xmlbuilder": {
@@ -4657,170 +5128,299 @@
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.0.0.tgz",
"integrity": "sha1-mLj2UcowqmJANvEn0RzGbce5B6M=",
"requires": {
- "lodash": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz"
+ "lodash": "^3.5.0"
}
}
}
},
"slide": {
- "version": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz",
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz",
"integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc="
},
"sntp": {
- "version": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz",
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz",
"integrity": "sha1-+4hfGLDzqtGJ+CSGJTa87ux1CQA=",
"requires": {
- "hoek": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz"
+ "hoek": "0.9.x"
}
},
"source-map": {
- "version": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
"integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI="
},
"spdx-correct": {
- "version": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
"integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
"requires": {
- "spdx-license-ids": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz"
+ "spdx-license-ids": "^1.0.2"
}
},
"spdx-expression-parse": {
- "version": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
"integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw="
},
"spdx-license-ids": {
- "version": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
"integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc="
},
"sshpk": {
- "version": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.2.tgz",
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.2.tgz",
"integrity": "sha1-1agEziJpVRVjjnmNviMnPeBwpfo=",
"requires": {
- "asn1": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
- "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "bcrypt-pbkdf": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
- "dashdash": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "ecc-jsbn": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
- "getpass": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz",
- "jodid25519": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz",
- "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "tweetnacl": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jodid25519": "^1.0.0",
+ "jsbn": "~0.1.0",
+ "tweetnacl": "~0.14.0"
},
"dependencies": {
"asn1": {
- "version": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
"integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y="
},
"assert-plus": {
- "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
}
}
},
"statuses": {
- "version": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
"integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4="
},
"stream-browserify": {
- "version": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
"integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
"requires": {
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz"
+ "inherits": "~2.0.1",
+ "readable-stream": "^2.0.2"
}
},
"stream-buffers": {
- "version": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-0.2.6.tgz",
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-0.2.6.tgz",
"integrity": "sha1-GBwI1bs2kARfaUAbmuanoM8zE/w="
},
"stream-combiner2": {
- "version": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
"integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=",
"requires": {
- "duplexer2": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
- "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz"
+ "duplexer2": "~0.1.0",
+ "readable-stream": "^2.0.2"
}
},
"stream-http": {
- "version": "https://registry.npmjs.org/stream-http/-/stream-http-2.6.3.tgz",
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.6.3.tgz",
"integrity": "sha1-TD3b+WNZaOos/U5I1D3l3vJiWsM=",
"requires": {
- "builtin-status-codes": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz",
- "to-arraybuffer": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
- "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
+ "builtin-status-codes": "^3.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.1.0",
+ "to-arraybuffer": "^1.0.0",
+ "xtend": "^4.0.0"
}
},
"stream-shift": {
- "version": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
"integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI="
},
"stream-splicer": {
- "version": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz",
"integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=",
"requires": {
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz"
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.2"
}
},
"string-length": {
- "version": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz",
"integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=",
"requires": {
- "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "string.prototype.codepointat": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz",
+ "integrity": "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg=="
+ },
+ "string.prototype.trim": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz",
+ "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=",
+ "requires": {
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.5.0",
+ "function-bind": "^1.0.2"
}
},
"string_decoder": {
- "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
},
"stringstream": {
- "version": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
"integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg="
},
"strip-ansi": {
- "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"requires": {
- "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
+ "ansi-regex": "^2.0.0"
}
},
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="
+ },
"strip-json-comments": {
- "version": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
"integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
},
"subarg": {
- "version": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz",
"integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=",
"requires": {
- "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz"
+ "minimist": "^1.1.0"
}
},
"supports-color": {
- "version": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
},
"syntax-error": {
- "version": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.1.6.tgz",
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.1.6.tgz",
"integrity": "sha1-tFSXBtOGzBwdx8JCPxhXm2yt5xA=",
"requires": {
- "acorn": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz"
+ "acorn": "^2.7.0"
},
"dependencies": {
"acorn": {
- "version": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz",
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz",
"integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc="
}
}
},
+ "tape": {
+ "version": "4.11.0",
+ "resolved": "https://registry.npmjs.org/tape/-/tape-4.11.0.tgz",
+ "integrity": "sha512-yixvDMX7q7JIs/omJSzSZrqulOV51EC9dK8dM0TzImTIkHWfe2/kFyL5v+d9C+SrCMaICk59ujsqFAVidDqDaA==",
+ "requires": {
+ "deep-equal": "~1.0.1",
+ "defined": "~1.0.0",
+ "for-each": "~0.3.3",
+ "function-bind": "~1.1.1",
+ "glob": "~7.1.4",
+ "has": "~1.0.3",
+ "inherits": "~2.0.4",
+ "minimist": "~1.2.0",
+ "object-inspect": "~1.6.0",
+ "resolve": "~1.11.1",
+ "resumer": "~0.0.0",
+ "string.prototype.trim": "~1.1.2",
+ "through": "~2.3.8"
+ },
+ "dependencies": {
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "glob": {
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
+ "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "resolve": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz",
+ "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==",
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ }
+ }
+ },
"tar": {
- "version": "https://registry.npmjs.org/tar/-/tar-1.0.2.tgz",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-1.0.2.tgz",
"integrity": "sha1-iw9nQPmUYlneJqPtnJoiiQ3/Aj8=",
"requires": {
- "block-stream": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
- "fstream": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+ "block-stream": "*",
+ "fstream": "^1.0.2",
+ "inherits": "2"
}
},
"text-table": {
@@ -4829,122 +5429,148 @@
"integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
},
"through": {
- "version": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
},
"through2": {
- "version": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
"integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
"requires": {
- "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz",
- "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
+ "readable-stream": "^2.1.5",
+ "xtend": "~4.0.1"
}
},
"timed-out": {
- "version": "https://registry.npmjs.org/timed-out/-/timed-out-2.0.0.tgz",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-2.0.0.tgz",
"integrity": "sha1-84sK6B03R9YoAB9B2vxlKs5nHAo="
},
"timers-browserify": {
- "version": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz",
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz",
"integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=",
"requires": {
- "process": "https://registry.npmjs.org/process/-/process-0.11.9.tgz"
+ "process": "~0.11.0"
}
},
"to-arraybuffer": {
- "version": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
"integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M="
},
"tough-cookie": {
- "version": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
"integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=",
"requires": {
- "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz"
+ "punycode": "^1.4.1"
}
},
"tty-browserify": {
- "version": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
"integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY="
},
"tunnel-agent": {
- "version": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
"integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us="
},
"tweetnacl": {
- "version": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
"optional": true
},
"type-is": {
- "version": "https://registry.npmjs.org/type-is/-/type-is-1.6.14.tgz",
+ "version": "1.6.14",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.14.tgz",
"integrity": "sha1-4hljnBfe0coHiQkt1UoDgmuBfLI=",
"requires": {
- "media-typer": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz"
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.13"
}
},
"typedarray": {
- "version": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
},
"umd": {
- "version": "https://registry.npmjs.org/umd/-/umd-3.0.1.tgz",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.1.tgz",
"integrity": "sha1-iuVW4RAR9jwllnCKiDclnwGz1g4="
},
"underscore": {
- "version": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
"integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk="
},
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
+ },
"unorm": {
- "version": "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz",
"integrity": "sha1-NkIA1fE2RsqLzURJAnEzVhR5IwA="
},
"unpipe": {
- "version": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
},
"update-notifier": {
- "version": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.5.0.tgz",
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.5.0.tgz",
"integrity": "sha1-B7XcIGazYnqztPUwEw9+3doHpMw=",
"requires": {
- "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "configstore": "https://registry.npmjs.org/configstore/-/configstore-1.4.0.tgz",
- "is-npm": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz",
- "latest-version": "https://registry.npmjs.org/latest-version/-/latest-version-1.0.1.tgz",
- "repeating": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz",
- "semver-diff": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz",
- "string-length": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz"
+ "chalk": "^1.0.0",
+ "configstore": "^1.0.0",
+ "is-npm": "^1.0.0",
+ "latest-version": "^1.0.0",
+ "repeating": "^1.1.2",
+ "semver-diff": "^2.0.0",
+ "string-length": "^1.0.0"
}
},
"url": {
- "version": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
"integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
"requires": {
- "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
- "querystring": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz"
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
},
"dependencies": {
"punycode": {
- "version": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
"integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
}
}
},
"util": {
- "version": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
"integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
"requires": {
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
+ "inherits": "2.0.1"
},
"dependencies": {
"inherits": {
- "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
"integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
}
}
},
"util-deprecate": {
- "version": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
"util-extend": {
@@ -4953,84 +5579,105 @@
"integrity": "sha1-p8IW0mdUUWljeztu3GypEZ4v+T8="
},
"utils-merge": {
- "version": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz",
"integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg="
},
"uuid": {
- "version": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
"integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho="
},
"valid-identifier": {
- "version": "https://registry.npmjs.org/valid-identifier/-/valid-identifier-0.0.1.tgz",
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/valid-identifier/-/valid-identifier-0.0.1.tgz",
"integrity": "sha1-7x1wk6nTKH4/zpLfkW+GFrI/kLQ="
},
"validate-npm-package-license": {
- "version": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
"integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
"requires": {
- "spdx-correct": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
- "spdx-expression-parse": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz"
+ "spdx-correct": "~1.0.0",
+ "spdx-expression-parse": "~1.0.0"
}
},
"validate-npm-package-name": {
- "version": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-2.2.2.tgz",
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-2.2.2.tgz",
"integrity": "sha1-9laVsi9zJEQgGaPH+jmm5/0pkIU=",
"requires": {
- "builtins": "https://registry.npmjs.org/builtins/-/builtins-0.0.7.tgz"
+ "builtins": "0.0.7"
}
},
"vary": {
- "version": "https://registry.npmjs.org/vary/-/vary-1.1.0.tgz",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.0.tgz",
"integrity": "sha1-4eWv+70WrnaN0mdDlLmtMCJlMUA="
},
"verror": {
- "version": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz",
"integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=",
"requires": {
- "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz"
+ "extsprintf": "1.0.2"
}
},
"vm-browserify": {
- "version": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
"integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=",
"requires": {
- "indexof": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz"
+ "indexof": "0.0.1"
+ }
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "requires": {
+ "isexe": "^2.0.0"
}
},
"win-release": {
- "version": "https://registry.npmjs.org/win-release/-/win-release-1.1.1.tgz",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/win-release/-/win-release-1.1.1.tgz",
"integrity": "sha1-X6VeAr58qTTt/BJmVjLoSbcuUgk=",
"requires": {
- "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz"
+ "semver": "^5.0.1"
}
},
"wrappy": {
- "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"write-file-atomic": {
- "version": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.1.tgz",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.1.tgz",
"integrity": "sha1-fUW6MjFjKN0ex9kPYOvA2EW7dZo=",
"requires": {
- "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
- "imurmurhash": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "slide": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz"
+ "graceful-fs": "^4.1.11",
+ "imurmurhash": "^0.1.4",
+ "slide": "^1.1.5"
}
},
"xcode": {
- "version": "https://registry.npmjs.org/xcode/-/xcode-0.9.1.tgz",
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/xcode/-/xcode-0.9.1.tgz",
"integrity": "sha1-W05xtxsDVz/wzbSEORA+gQfaD5U=",
"requires": {
- "node-uuid": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz",
- "pegjs": "https://registry.npmjs.org/pegjs/-/pegjs-0.9.0.tgz",
- "simple-plist": "https://registry.npmjs.org/simple-plist/-/simple-plist-0.1.4.tgz"
+ "node-uuid": "1.4.7",
+ "pegjs": "0.9.0",
+ "simple-plist": "0.1.4"
}
},
"xdg-basedir": {
- "version": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz",
"integrity": "sha1-7byQPMOF/ARSPZZqM1UEtVBNG9I=",
"requires": {
- "os-homedir": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz"
+ "os-homedir": "^1.0.0"
}
},
"xml2js": {
@@ -5038,8 +5685,8 @@
"resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz",
"integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==",
"requires": {
- "sax": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz",
- "xmlbuilder": "9.0.4"
+ "sax": ">=0.6.0",
+ "xmlbuilder": "~9.0.1"
},
"dependencies": {
"xmlbuilder": {
@@ -5060,7 +5707,8 @@
"integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk="
},
"xtend": {
- "version": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
"integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
}
}
diff --git a/StoneIsland/package.json b/StoneIsland/package.json
index f9cefa21..f2ab351b 100644
--- a/StoneIsland/package.json
+++ b/StoneIsland/package.json
@@ -5,7 +5,7 @@
"main": "index.js",
"dependencies": {
"cordova": "^6.4.0",
- "cordova-android": "^6.2.3",
+ "cordova-android": "^8.0.0",
"cordova-ios": "^4.5.2",
"cordova-plugin-app-name": "^1.0.4",
"cordova-plugin-customurlscheme": "~4.2.0",
@@ -20,8 +20,8 @@
"cordova-plugin-whitelist": "1",
"cordova-plugin-x-socialsharing": "~5.1.3",
"ionic-plugin-keyboard": "~2.2.1",
- "ios-deploy": "^1.9.0",
- "phonegap-plugin-push": "^1.9.2",
+ "ios-deploy": "^1.9.4",
+ "phonegap-plugin-push": "^1.11.1",
"plist": "^3.0.1"
},
"devDependencies": {},
@@ -59,4 +59,4 @@
"ios"
]
}
-} \ No newline at end of file
+}
diff --git a/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/fileHashes.bin b/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/fileHashes.bin
index 68cf609b..fcb3c332 100644
--- a/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/fileHashes.bin
+++ b/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/fileHashes.bin
Binary files differ
diff --git a/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/fileSnapshots.bin b/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/fileSnapshots.bin
index cdae22a7..86c9363d 100644
--- a/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/fileSnapshots.bin
+++ b/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/fileSnapshots.bin
Binary files differ
diff --git a/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/taskArtifacts.bin b/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/taskArtifacts.bin
index fcbedd1b..fe8f19b3 100644
--- a/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/taskArtifacts.bin
+++ b/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/taskArtifacts.bin
Binary files differ
diff --git a/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/taskArtifacts.lock b/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/taskArtifacts.lock
index 8107e00d..63207987 100644
--- a/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/taskArtifacts.lock
+++ b/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/taskArtifacts.lock
Binary files differ
diff --git a/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock b/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock
index a537871b..3477b852 100644
--- a/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock
+++ b/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock
Binary files differ
diff --git a/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock b/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock
index e3633f27..3dd6588c 100644
--- a/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock
+++ b/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock
Binary files differ
diff --git a/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileReleaseJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock b/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileReleaseJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock
index 9654131b..db73d461 100644
--- a/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileReleaseJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock
+++ b/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileReleaseJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock
Binary files differ
diff --git a/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileReleaseJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock b/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileReleaseJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock
index 3782d128..1f529f6e 100644
--- a/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileReleaseJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock
+++ b/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileReleaseJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock
Binary files differ
diff --git a/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock b/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock
index 69aacc1e..620aaf9e 100644
--- a/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock
+++ b/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock
Binary files differ
diff --git a/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock b/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock
index 91b6782b..d9d88041 100644
--- a/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock
+++ b/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock
Binary files differ
diff --git a/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileReleaseJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock b/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileReleaseJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock
index c25818cf..1daade5e 100644
--- a/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileReleaseJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock
+++ b/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileReleaseJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock
Binary files differ
diff --git a/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileReleaseJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock b/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileReleaseJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock
index c0909e53..4d371375 100644
--- a/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileReleaseJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock
+++ b/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileReleaseJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock
Binary files differ
diff --git a/StoneIsland/platforms/android/AndroidManifest.xml b/StoneIsland/platforms/android/AndroidManifest.xml
index 8ca9463a..74dd5c09 100755
--- a/StoneIsland/platforms/android/AndroidManifest.xml
+++ b/StoneIsland/platforms/android/AndroidManifest.xml
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
-<manifest android:hardwareAccelerated="true" android:versionCode="6110" android:versionName="1.1.0" package="us.okfoc.stoneisland" xmlns:android="http://schemas.android.com/apk/res/android">
+<manifest android:hardwareAccelerated="true" android:versionCode="6121" android:versionName="1.2.1" package="us.okfoc.stoneisland" xmlns:android="http://schemas.android.com/apk/res/android">
<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<application android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name" android:supportsRtl="true">
@@ -41,7 +41,7 @@
</service>
<service android:exported="false" android:name="com.adobe.phonegap.push.RegistrationIntentService" />
</application>
- <uses-sdk android:minSdkVersion="26" android:targetSdkVersion="22" />
+ <uses-sdk android:minSdkVersion="28" android:targetSdkVersion="28" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
diff --git a/StoneIsland/platforms/android/CordovaLib/build/generated/source/buildConfig/debug/org/apache/cordova/BuildConfig.java b/StoneIsland/platforms/android/CordovaLib/build/generated/source/buildConfig/debug/org/apache/cordova/BuildConfig.java
deleted file mode 100644
index f2feb906..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/generated/source/buildConfig/debug/org/apache/cordova/BuildConfig.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Automatically generated file. DO NOT MODIFY
- */
-package org.apache.cordova;
-
-public final class BuildConfig {
- public static final boolean DEBUG = Boolean.parseBoolean("true");
- public static final String APPLICATION_ID = "org.apache.cordova";
- public static final String BUILD_TYPE = "debug";
- public static final String FLAVOR = "";
- public static final int VERSION_CODE = 1;
- public static final String VERSION_NAME = "1.0";
-}
diff --git a/StoneIsland/platforms/android/CordovaLib/build/generated/source/buildConfig/release/org/apache/cordova/BuildConfig.java b/StoneIsland/platforms/android/CordovaLib/build/generated/source/buildConfig/release/org/apache/cordova/BuildConfig.java
deleted file mode 100644
index 3e3c0cfe..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/generated/source/buildConfig/release/org/apache/cordova/BuildConfig.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Automatically generated file. DO NOT MODIFY
- */
-package org.apache.cordova;
-
-public final class BuildConfig {
- public static final boolean DEBUG = false;
- public static final String APPLICATION_ID = "org.apache.cordova";
- public static final String BUILD_TYPE = "release";
- public static final String FLAVOR = "";
- public static final int VERSION_CODE = 1;
- public static final String VERSION_NAME = "1.0";
-}
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/debug/AndroidManifest.xml b/StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/debug/AndroidManifest.xml
deleted file mode 100644
index 90863ed8..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/debug/AndroidManifest.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="org.apache.cordova"
- android:versionCode="1"
- android:versionName="1.0" >
-
- <uses-sdk android:minSdkVersion="14" />
-
-</manifest> \ No newline at end of file
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/debug/classes.jar b/StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/debug/classes.jar
deleted file mode 100644
index 4a99943b..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/debug/classes.jar
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/release/AndroidManifest.xml b/StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/release/AndroidManifest.xml
deleted file mode 100644
index 90863ed8..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/release/AndroidManifest.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="org.apache.cordova"
- android:versionCode="1"
- android:versionName="1.0" >
-
- <uses-sdk android:minSdkVersion="14" />
-
-</manifest> \ No newline at end of file
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/release/classes.jar b/StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/release/classes.jar
deleted file mode 100644
index 6a68a5c3..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/release/classes.jar
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/AuthenticationToken.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/AuthenticationToken.class
deleted file mode 100644
index e9d51465..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/AuthenticationToken.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/BuildConfig.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/BuildConfig.class
deleted file mode 100644
index 4c5619f6..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/BuildConfig.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CallbackContext.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CallbackContext.class
deleted file mode 100644
index 2ee39be7..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CallbackContext.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CallbackMap.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CallbackMap.class
deleted file mode 100644
index 462375d9..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CallbackMap.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/Config.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/Config.class
deleted file mode 100644
index 66cb1be9..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/Config.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ConfigXmlParser.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ConfigXmlParser.class
deleted file mode 100644
index 62fa0b3d..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ConfigXmlParser.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$1.class
deleted file mode 100644
index c4624d15..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$1.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$2.class
deleted file mode 100644
index 33738151..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$2.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$3.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$3.class
deleted file mode 100644
index fabe9efa..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$3.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$4$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$4$1.class
deleted file mode 100644
index 3c062db9..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$4$1.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$4.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$4.class
deleted file mode 100644
index 76695eb5..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$4.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity.class
deleted file mode 100644
index 46a17ceb..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaArgs.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaArgs.class
deleted file mode 100644
index 18014a39..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaArgs.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaBridge.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaBridge.class
deleted file mode 100644
index c7f3f237..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaBridge.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaClientCertRequest.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaClientCertRequest.class
deleted file mode 100644
index 46007d42..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaClientCertRequest.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$1.class
deleted file mode 100644
index 683ff52e..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$1.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$2.class
deleted file mode 100644
index c7f3d4af..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$2.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$3.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$3.class
deleted file mode 100644
index 4cb4f9bc..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$3.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$4.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$4.class
deleted file mode 100644
index ac24ba52..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$4.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$5.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$5.class
deleted file mode 100644
index 3ab9531e..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$5.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$6.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$6.class
deleted file mode 100644
index 05530d9e..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$6.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$7.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$7.class
deleted file mode 100644
index 5cd2cb8c..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$7.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$8.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$8.class
deleted file mode 100644
index e57fded7..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$8.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$9.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$9.class
deleted file mode 100644
index 628d4627..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$9.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$Result.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$Result.class
deleted file mode 100644
index c4dd9997..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$Result.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper.class
deleted file mode 100644
index fd873766..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaHttpAuthHandler.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaHttpAuthHandler.class
deleted file mode 100644
index c912f928..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaHttpAuthHandler.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaInterface.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaInterface.class
deleted file mode 100644
index b2059438..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaInterface.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaInterfaceImpl$ActivityResultHolder.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaInterfaceImpl$ActivityResultHolder.class
deleted file mode 100644
index 92dae914..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaInterfaceImpl$ActivityResultHolder.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaInterfaceImpl.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaInterfaceImpl.class
deleted file mode 100644
index 22ffbfe4..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaInterfaceImpl.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaPlugin.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaPlugin.class
deleted file mode 100644
index d8906c9c..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaPlugin.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaPreferences.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaPreferences.class
deleted file mode 100644
index ed0b3da5..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaPreferences.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaResourceApi$OpenForReadResult.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaResourceApi$OpenForReadResult.class
deleted file mode 100644
index 15ab1f62..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaResourceApi$OpenForReadResult.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaResourceApi.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaResourceApi.class
deleted file mode 100644
index f11f59a3..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaResourceApi.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebView.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebView.class
deleted file mode 100644
index 14ca5e93..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebView.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewEngine$Client.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewEngine$Client.class
deleted file mode 100644
index deb6dfda..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewEngine$Client.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewEngine$EngineView.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewEngine$EngineView.class
deleted file mode 100644
index 1149bf24..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewEngine$EngineView.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewEngine.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewEngine.class
deleted file mode 100644
index 7a7dcb4f..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewEngine.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$1.class
deleted file mode 100644
index 4cf05bbe..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$1.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$2.class
deleted file mode 100644
index af9110d2..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$2.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$3.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$3.class
deleted file mode 100644
index e5c567e3..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$3.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$EngineClient$1$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$EngineClient$1$1.class
deleted file mode 100644
index 1370f669..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$EngineClient$1$1.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$EngineClient$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$EngineClient$1.class
deleted file mode 100644
index a93f9374..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$EngineClient$1.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$EngineClient.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$EngineClient.class
deleted file mode 100644
index 4df9559c..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$EngineClient.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl.class
deleted file mode 100644
index a8921a41..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$1.class
deleted file mode 100644
index 5365b497..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$1.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$2.class
deleted file mode 100644
index 7509891d..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$2.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$3.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$3.class
deleted file mode 100644
index 6f01ec94..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$3.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$4.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$4.class
deleted file mode 100644
index 12c2685d..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$4.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$5.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$5.class
deleted file mode 100644
index 306f92b6..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$5.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid.class
deleted file mode 100644
index 324266e6..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ExposedJsApi.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ExposedJsApi.class
deleted file mode 100644
index 6e675205..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ExposedJsApi.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ICordovaClientCertRequest.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ICordovaClientCertRequest.class
deleted file mode 100644
index 18ad39ec..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ICordovaClientCertRequest.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ICordovaCookieManager.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ICordovaCookieManager.class
deleted file mode 100644
index 142b69c9..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ICordovaCookieManager.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ICordovaHttpAuthHandler.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ICordovaHttpAuthHandler.class
deleted file mode 100644
index ac03d2d9..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ICordovaHttpAuthHandler.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/LOG.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/LOG.class
deleted file mode 100644
index 11bd8f7c..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/LOG.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$BridgeMode.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$BridgeMode.class
deleted file mode 100644
index 1d25e8d1..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$BridgeMode.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode$1.class
deleted file mode 100644
index 9f380c55..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode$1.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode.class
deleted file mode 100644
index 8bae598b..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$JsMessage.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$JsMessage.class
deleted file mode 100644
index 11fbf781..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$JsMessage.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode$1.class
deleted file mode 100644
index 1f58f471..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode$1.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode.class
deleted file mode 100644
index 58ab6eea..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$NoOpBridgeMode.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$NoOpBridgeMode.class
deleted file mode 100644
index 5befb5dd..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$NoOpBridgeMode.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$1.class
deleted file mode 100644
index 3d637415..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$1.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$2.class
deleted file mode 100644
index 58299a40..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$2.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$OnlineEventsBridgeModeDelegate.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$OnlineEventsBridgeModeDelegate.class
deleted file mode 100644
index c3848041..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$OnlineEventsBridgeModeDelegate.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode.class
deleted file mode 100644
index 4281bfde..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue.class
deleted file mode 100644
index 7048a7b4..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginEntry.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginEntry.class
deleted file mode 100644
index 4adc8d03..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginEntry.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginManager.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginManager.class
deleted file mode 100644
index c59578c4..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginManager.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginResult$Status.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginResult$Status.class
deleted file mode 100644
index d9ff981f..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginResult$Status.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginResult.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginResult.class
deleted file mode 100644
index dfefc658..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginResult.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ResumeCallback.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ResumeCallback.class
deleted file mode 100644
index fc6a4d13..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ResumeCallback.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/Whitelist$URLPattern.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/Whitelist$URLPattern.class
deleted file mode 100644
index 05973c38..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/Whitelist$URLPattern.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/Whitelist.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/Whitelist.class
deleted file mode 100644
index 1be2bfca..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/Whitelist.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemCookieManager.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemCookieManager.class
deleted file mode 100644
index 4d1199c6..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemCookieManager.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemExposedJsApi.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemExposedJsApi.class
deleted file mode 100644
index 8511795f..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemExposedJsApi.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$1.class
deleted file mode 100644
index 9b3e91ee..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$1.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$2.class
deleted file mode 100644
index 2d0ac1a4..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$2.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$3.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$3.class
deleted file mode 100644
index 5c6f1a01..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$3.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$4.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$4.class
deleted file mode 100644
index d7817b09..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$4.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$5.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$5.class
deleted file mode 100644
index 797cdd71..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$5.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient.class
deleted file mode 100644
index f4959cc7..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebView.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebView.class
deleted file mode 100644
index 9dfe6ede..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebView.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewClient.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewClient.class
deleted file mode 100644
index 4ded5789..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewClient.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewEngine$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewEngine$1.class
deleted file mode 100644
index 88b63e1e..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewEngine$1.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewEngine$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewEngine$2.class
deleted file mode 100644
index ec201a98..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewEngine$2.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewEngine.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewEngine.class
deleted file mode 100644
index f7f36b74..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewEngine.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/AuthenticationToken.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/AuthenticationToken.class
deleted file mode 100644
index e9d51465..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/AuthenticationToken.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/BuildConfig.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/BuildConfig.class
deleted file mode 100644
index bf0083a2..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/BuildConfig.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CallbackContext.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CallbackContext.class
deleted file mode 100644
index 2ee39be7..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CallbackContext.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CallbackMap.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CallbackMap.class
deleted file mode 100644
index 462375d9..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CallbackMap.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/Config.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/Config.class
deleted file mode 100644
index 66cb1be9..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/Config.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ConfigXmlParser.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ConfigXmlParser.class
deleted file mode 100644
index 62fa0b3d..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ConfigXmlParser.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$1.class
deleted file mode 100644
index c4624d15..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$1.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$2.class
deleted file mode 100644
index 33738151..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$2.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$3.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$3.class
deleted file mode 100644
index fabe9efa..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$3.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$4$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$4$1.class
deleted file mode 100644
index 3c062db9..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$4$1.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$4.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$4.class
deleted file mode 100644
index 76695eb5..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$4.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity.class
deleted file mode 100644
index 46a17ceb..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaArgs.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaArgs.class
deleted file mode 100644
index 18014a39..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaArgs.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaBridge.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaBridge.class
deleted file mode 100644
index c7f3f237..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaBridge.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaClientCertRequest.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaClientCertRequest.class
deleted file mode 100644
index 46007d42..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaClientCertRequest.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$1.class
deleted file mode 100644
index 683ff52e..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$1.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$2.class
deleted file mode 100644
index c7f3d4af..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$2.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$3.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$3.class
deleted file mode 100644
index 4cb4f9bc..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$3.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$4.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$4.class
deleted file mode 100644
index ac24ba52..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$4.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$5.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$5.class
deleted file mode 100644
index 3ab9531e..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$5.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$6.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$6.class
deleted file mode 100644
index 05530d9e..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$6.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$7.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$7.class
deleted file mode 100644
index 5cd2cb8c..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$7.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$8.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$8.class
deleted file mode 100644
index e57fded7..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$8.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$9.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$9.class
deleted file mode 100644
index 628d4627..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$9.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$Result.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$Result.class
deleted file mode 100644
index c4dd9997..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$Result.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper.class
deleted file mode 100644
index fd873766..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaHttpAuthHandler.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaHttpAuthHandler.class
deleted file mode 100644
index c912f928..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaHttpAuthHandler.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaInterface.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaInterface.class
deleted file mode 100644
index b2059438..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaInterface.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaInterfaceImpl$ActivityResultHolder.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaInterfaceImpl$ActivityResultHolder.class
deleted file mode 100644
index 92dae914..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaInterfaceImpl$ActivityResultHolder.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaInterfaceImpl.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaInterfaceImpl.class
deleted file mode 100644
index 22ffbfe4..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaInterfaceImpl.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaPlugin.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaPlugin.class
deleted file mode 100644
index d8906c9c..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaPlugin.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaPreferences.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaPreferences.class
deleted file mode 100644
index ed0b3da5..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaPreferences.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaResourceApi$OpenForReadResult.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaResourceApi$OpenForReadResult.class
deleted file mode 100644
index 15ab1f62..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaResourceApi$OpenForReadResult.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaResourceApi.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaResourceApi.class
deleted file mode 100644
index f11f59a3..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaResourceApi.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebView.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebView.class
deleted file mode 100644
index 14ca5e93..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebView.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewEngine$Client.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewEngine$Client.class
deleted file mode 100644
index deb6dfda..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewEngine$Client.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewEngine$EngineView.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewEngine$EngineView.class
deleted file mode 100644
index 1149bf24..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewEngine$EngineView.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewEngine.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewEngine.class
deleted file mode 100644
index 7a7dcb4f..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewEngine.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$1.class
deleted file mode 100644
index 4cf05bbe..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$1.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$2.class
deleted file mode 100644
index af9110d2..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$2.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$3.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$3.class
deleted file mode 100644
index e5c567e3..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$3.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$EngineClient$1$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$EngineClient$1$1.class
deleted file mode 100644
index 1370f669..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$EngineClient$1$1.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$EngineClient$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$EngineClient$1.class
deleted file mode 100644
index a93f9374..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$EngineClient$1.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$EngineClient.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$EngineClient.class
deleted file mode 100644
index 4df9559c..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$EngineClient.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl.class
deleted file mode 100644
index a8921a41..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$1.class
deleted file mode 100644
index 5365b497..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$1.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$2.class
deleted file mode 100644
index 7509891d..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$2.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$3.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$3.class
deleted file mode 100644
index 6f01ec94..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$3.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$4.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$4.class
deleted file mode 100644
index 12c2685d..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$4.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$5.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$5.class
deleted file mode 100644
index 306f92b6..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$5.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid.class
deleted file mode 100644
index 324266e6..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ExposedJsApi.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ExposedJsApi.class
deleted file mode 100644
index 6e675205..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ExposedJsApi.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ICordovaClientCertRequest.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ICordovaClientCertRequest.class
deleted file mode 100644
index 18ad39ec..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ICordovaClientCertRequest.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ICordovaCookieManager.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ICordovaCookieManager.class
deleted file mode 100644
index 142b69c9..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ICordovaCookieManager.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ICordovaHttpAuthHandler.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ICordovaHttpAuthHandler.class
deleted file mode 100644
index ac03d2d9..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ICordovaHttpAuthHandler.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/LOG.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/LOG.class
deleted file mode 100644
index 11bd8f7c..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/LOG.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$BridgeMode.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$BridgeMode.class
deleted file mode 100644
index 1d25e8d1..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$BridgeMode.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode$1.class
deleted file mode 100644
index 9f380c55..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode$1.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode.class
deleted file mode 100644
index 8bae598b..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$JsMessage.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$JsMessage.class
deleted file mode 100644
index 11fbf781..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$JsMessage.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode$1.class
deleted file mode 100644
index 1f58f471..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode$1.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode.class
deleted file mode 100644
index 58ab6eea..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$NoOpBridgeMode.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$NoOpBridgeMode.class
deleted file mode 100644
index 5befb5dd..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$NoOpBridgeMode.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$1.class
deleted file mode 100644
index 3d637415..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$1.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$2.class
deleted file mode 100644
index 58299a40..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$2.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$OnlineEventsBridgeModeDelegate.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$OnlineEventsBridgeModeDelegate.class
deleted file mode 100644
index c3848041..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$OnlineEventsBridgeModeDelegate.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode.class
deleted file mode 100644
index 4281bfde..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue.class
deleted file mode 100644
index 7048a7b4..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginEntry.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginEntry.class
deleted file mode 100644
index 4adc8d03..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginEntry.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginManager.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginManager.class
deleted file mode 100644
index c59578c4..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginManager.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginResult$Status.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginResult$Status.class
deleted file mode 100644
index d9ff981f..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginResult$Status.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginResult.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginResult.class
deleted file mode 100644
index dfefc658..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginResult.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ResumeCallback.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ResumeCallback.class
deleted file mode 100644
index fc6a4d13..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ResumeCallback.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/Whitelist$URLPattern.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/Whitelist$URLPattern.class
deleted file mode 100644
index 05973c38..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/Whitelist$URLPattern.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/Whitelist.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/Whitelist.class
deleted file mode 100644
index 1be2bfca..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/Whitelist.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemCookieManager.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemCookieManager.class
deleted file mode 100644
index 4d1199c6..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemCookieManager.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemExposedJsApi.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemExposedJsApi.class
deleted file mode 100644
index 8511795f..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemExposedJsApi.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$1.class
deleted file mode 100644
index 9b3e91ee..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$1.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$2.class
deleted file mode 100644
index 2d0ac1a4..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$2.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$3.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$3.class
deleted file mode 100644
index 5c6f1a01..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$3.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$4.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$4.class
deleted file mode 100644
index d7817b09..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$4.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$5.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$5.class
deleted file mode 100644
index 797cdd71..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$5.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient.class
deleted file mode 100644
index f4959cc7..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebView.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebView.class
deleted file mode 100644
index 9dfe6ede..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebView.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewClient.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewClient.class
deleted file mode 100644
index 4ded5789..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewClient.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewEngine$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewEngine$1.class
deleted file mode 100644
index 88b63e1e..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewEngine$1.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewEngine$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewEngine$2.class
deleted file mode 100644
index ec201a98..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewEngine$2.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewEngine.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewEngine.class
deleted file mode 100644
index f7f36b74..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewEngine.class
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental-safeguard/debug/tag.txt b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental-safeguard/debug/tag.txt
deleted file mode 100644
index c01a13dc..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental-safeguard/debug/tag.txt
+++ /dev/null
@@ -1 +0,0 @@
-incremental task execution \ No newline at end of file
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental-safeguard/release/tag.txt b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental-safeguard/release/tag.txt
deleted file mode 100644
index c01a13dc..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental-safeguard/release/tag.txt
+++ /dev/null
@@ -1 +0,0 @@
-incremental task execution \ No newline at end of file
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/compileDebugAidl/dependency.store b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/compileDebugAidl/dependency.store
deleted file mode 100644
index 8b8400dc..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/compileDebugAidl/dependency.store
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/compileReleaseAidl/dependency.store b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/compileReleaseAidl/dependency.store
deleted file mode 100644
index 8b8400dc..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/compileReleaseAidl/dependency.store
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugAssets/merger.xml b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugAssets/merger.xml
deleted file mode 100644
index 4c208e13..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugAssets/merger.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<merger version="3"><dataSet config="main"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/assets"/><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/build/generated/assets/shaders/debug"/></dataSet><dataSet config="debug"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/debug/assets"/></dataSet></merger> \ No newline at end of file
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml
deleted file mode 100644
index e595fb8f..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<merger version="3"><dataSet config="main"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/main/jniLibs"/></dataSet><dataSet config="debug"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/debug/jniLibs"/></dataSet></merger> \ No newline at end of file
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugShaders/merger.xml b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugShaders/merger.xml
deleted file mode 100644
index ac16ccac..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugShaders/merger.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<merger version="3"><dataSet config="main"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/main/shaders"/></dataSet><dataSet config="debug"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/debug/shaders"/></dataSet></merger> \ No newline at end of file
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseAssets/merger.xml b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseAssets/merger.xml
deleted file mode 100644
index fcafcdc0..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseAssets/merger.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<merger version="3"><dataSet config="main"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/assets"/><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/build/generated/assets/shaders/release"/></dataSet><dataSet config="release"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/release/assets"/></dataSet></merger> \ No newline at end of file
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseJniLibFolders/merger.xml b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseJniLibFolders/merger.xml
deleted file mode 100644
index 2c2760b3..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseJniLibFolders/merger.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<merger version="3"><dataSet config="main"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/main/jniLibs"/></dataSet><dataSet config="release"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/release/jniLibs"/></dataSet></merger> \ No newline at end of file
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseShaders/merger.xml b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseShaders/merger.xml
deleted file mode 100644
index b2ca7bf1..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseShaders/merger.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<merger version="3"><dataSet config="main"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/main/shaders"/></dataSet><dataSet config="release"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/release/shaders"/></dataSet></merger> \ No newline at end of file
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageDebugResources/compile-file-map.properties b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageDebugResources/compile-file-map.properties
deleted file mode 100644
index 5e1405e1..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageDebugResources/compile-file-map.properties
+++ /dev/null
@@ -1 +0,0 @@
-#Thu May 10 16:57:13 CEST 2018
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageDebugResources/merger.xml b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageDebugResources/merger.xml
deleted file mode 100644
index fd6ec75b..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageDebugResources/merger.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<merger version="3"><dataSet config="main$Generated" generated="true"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/res"/><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/build/generated/res/rs/debug"/><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/build/generated/res/resValues/debug"/></dataSet><dataSet config="debug$Generated" generated="true"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/debug/res"/></dataSet><dataSet config="main" generated-set="main$Generated"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/res"/><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/build/generated/res/rs/debug"/><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/build/generated/res/resValues/debug"/></dataSet><dataSet config="debug" generated-set="debug$Generated"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/debug/res"/></dataSet><mergedItems/></merger> \ No newline at end of file
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageReleaseResources/compile-file-map.properties b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageReleaseResources/compile-file-map.properties
deleted file mode 100644
index 642d76ad..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageReleaseResources/compile-file-map.properties
+++ /dev/null
@@ -1 +0,0 @@
-#Thu May 10 16:57:15 CEST 2018
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageReleaseResources/merger.xml b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageReleaseResources/merger.xml
deleted file mode 100644
index 60241c2b..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageReleaseResources/merger.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<merger version="3"><dataSet config="main$Generated" generated="true"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/res"/><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/build/generated/res/rs/release"/><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/build/generated/res/resValues/release"/></dataSet><dataSet config="release$Generated" generated="true"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/release/res"/></dataSet><dataSet config="main" generated-set="main$Generated"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/res"/><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/build/generated/res/rs/release"/><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/build/generated/res/resValues/release"/></dataSet><dataSet config="release" generated-set="release$Generated"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/release/res"/></dataSet><mergedItems/></merger> \ No newline at end of file
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/manifests/aapt/debug/AndroidManifest.xml b/StoneIsland/platforms/android/CordovaLib/build/intermediates/manifests/aapt/debug/AndroidManifest.xml
deleted file mode 100644
index 90863ed8..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/manifests/aapt/debug/AndroidManifest.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="org.apache.cordova"
- android:versionCode="1"
- android:versionName="1.0" >
-
- <uses-sdk android:minSdkVersion="14" />
-
-</manifest> \ No newline at end of file
diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/manifests/aapt/release/AndroidManifest.xml b/StoneIsland/platforms/android/CordovaLib/build/intermediates/manifests/aapt/release/AndroidManifest.xml
deleted file mode 100644
index 90863ed8..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/manifests/aapt/release/AndroidManifest.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="org.apache.cordova"
- android:versionCode="1"
- android:versionName="1.0" >
-
- <uses-sdk android:minSdkVersion="14" />
-
-</manifest> \ No newline at end of file
diff --git a/StoneIsland/platforms/android/CordovaLib/build/outputs/aar/CordovaLib-debug.aar b/StoneIsland/platforms/android/CordovaLib/build/outputs/aar/CordovaLib-debug.aar
deleted file mode 100644
index 6a7b1bb7..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/outputs/aar/CordovaLib-debug.aar
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/CordovaLib/build/outputs/aar/CordovaLib-release.aar b/StoneIsland/platforms/android/CordovaLib/build/outputs/aar/CordovaLib-release.aar
deleted file mode 100644
index 28458987..00000000
--- a/StoneIsland/platforms/android/CordovaLib/build/outputs/aar/CordovaLib-release.aar
+++ /dev/null
Binary files differ
diff --git a/StoneIsland/platforms/android/android.json b/StoneIsland/platforms/android/android.json
index aab94b50..4fbbbbfb 100755
--- a/StoneIsland/platforms/android/android.json
+++ b/StoneIsland/platforms/android/android.json
@@ -1,400 +1,436 @@
{
- "prepare_queue": {
- "installed": [],
- "uninstalled": []
- },
- "config_munge": {
- "files": {
- "res/xml/config.xml": {
- "parents": {
- "/*": [
- {
- "xml": "<feature name=\"InAppBrowser\"><param name=\"android-package\" value=\"org.apache.cordova.inappbrowser.InAppBrowser\" /></feature>",
- "count": 1
- },
- {
- "xml": "<feature name=\"SocialSharing\"><param name=\"android-package\" value=\"nl.xservices.plugins.SocialSharing\" /></feature>",
- "count": 1
- },
- {
- "xml": "<feature name=\"LaunchMyApp\"><param name=\"android-package\" value=\"nl.xservices.plugins.LaunchMyApp\" /></feature>",
- "count": 1
- },
- {
- "xml": "<feature name=\"Whitelist\"><param name=\"android-package\" value=\"org.apache.cordova.whitelist.WhitelistPlugin\" /><param name=\"onload\" value=\"true\" /></feature>",
- "count": 1
- },
- {
- "xml": "<feature name=\"Device\"><param name=\"android-package\" value=\"org.apache.cordova.device.Device\" /></feature>",
- "count": 1
- },
- {
- "xml": "<feature name=\"NetworkStatus\"><param name=\"android-package\" value=\"org.apache.cordova.networkinformation.NetworkManager\" /></feature>",
- "count": 1
- },
- {
- "xml": "<feature name=\"Notification\"><param name=\"android-package\" value=\"org.apache.cordova.dialogs.Notification\" /></feature>",
- "count": 1
- },
- {
- "xml": "<feature name=\"Geolocation\"><param name=\"android-package\" value=\"org.apache.cordova.geolocation.Geolocation\" /></feature>",
- "count": 1
- },
- {
- "xml": "<feature name=\"Keyboard\"><param name=\"android-package\" value=\"io.ionic.keyboard.IonicKeyboard\" /><param name=\"onload\" value=\"true\" /></feature>",
- "count": 1
- },
- {
- "xml": "<feature name=\"StatusBar\"><param name=\"android-package\" value=\"org.apache.cordova.statusbar.StatusBar\" /><param name=\"onload\" value=\"true\" /></feature>",
- "count": 1
- },
- {
- "xml": "<feature name=\"SplashScreen\"><param name=\"android-package\" value=\"org.apache.cordova.splashscreen.SplashScreen\" /><param name=\"onload\" value=\"true\" /></feature>",
- "count": 1
- },
- {
- "xml": "<feature name=\"PushNotification\"><param name=\"android-package\" value=\"com.adobe.phonegap.push.PushPlugin\" /></feature>",
- "count": 1
- },
- {
- "xml": "<feature name=\"Sim\"><param name=\"android-package\" value=\"com.pbakondy.Sim\" /></feature>",
- "count": 1
- }
- ]
- }
- },
- "AndroidManifest.xml": {
- "parents": {
- "/manifest/application": [
- {
- "xml": "<activity android:exported=\"true\" android:name=\"com.adobe.phonegap.push.PushHandlerActivity\" android:permission=\"${applicationId}.permission.PushHandlerActivity\" />",
- "count": 1
- },
- {
- "xml": "<receiver android:name=\"com.adobe.phonegap.push.BackgroundActionButtonHandler\" />",
- "count": 1
- },
- {
- "xml": "<receiver android:exported=\"true\" android:name=\"com.google.android.gms.gcm.GcmReceiver\" android:permission=\"com.google.android.c2dm.permission.SEND\"><intent-filter><action android:name=\"com.google.android.c2dm.intent.RECEIVE\" /><category android:name=\"${applicationId}\" /></intent-filter></receiver>",
- "count": 1
- },
- {
- "xml": "<service android:exported=\"false\" android:name=\"com.adobe.phonegap.push.GCMIntentService\"><intent-filter><action android:name=\"com.google.android.c2dm.intent.RECEIVE\" /></intent-filter></service>",
- "count": 1
- },
- {
- "xml": "<service android:exported=\"false\" android:name=\"com.adobe.phonegap.push.PushInstanceIDListenerService\"><intent-filter><action android:name=\"com.google.android.gms.iid.InstanceID\" /></intent-filter></service>",
- "count": 1
- },
- {
- "xml": "<service android:exported=\"false\" android:name=\"com.adobe.phonegap.push.RegistrationIntentService\" />",
- "count": 1
- }
- ],
- "/manifest": [
- {
- "xml": "<uses-permission android:name=\"android.permission.INTERNET\" />",
- "count": 1
- },
- {
- "xml": "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" />",
- "count": 1
- },
- {
- "xml": "<uses-permission android:name=\"android.permission.WAKE_LOCK\" />",
- "count": 1
- },
- {
- "xml": "<uses-permission android:name=\"android.permission.VIBRATE\" />",
- "count": 1
- },
- {
- "xml": "<uses-permission android:name=\"com.google.android.c2dm.permission.RECEIVE\" />",
- "count": 1
- },
- {
- "xml": "<uses-permission android:name=\"${applicationId}.permission.C2D_MESSAGE\" />",
- "count": 1
- },
- {
- "xml": "<uses-permission android:name=\"${applicationId}.permission.PushHandlerActivity\" />",
- "count": 1
- },
- {
- "xml": "<permission android:name=\"${applicationId}.permission.C2D_MESSAGE\" android:protectionLevel=\"signature\" />",
- "count": 1
- },
- {
- "xml": "<permission android:name=\"${applicationId}.permission.PushHandlerActivity\" android:protectionLevel=\"signature\" />",
- "count": 1
- }
- ],
- "/*/application/activity": [],
- "/*": [
- {
- "xml": "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" />",
- "count": 1
- },
- {
- "xml": "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" />",
- "count": 1
- },
- {
- "xml": "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\" />",
- "count": 1
+ "prepare_queue": {
+ "installed": [],
+ "uninstalled": []
+ },
+ "config_munge": {
+ "files": {
+ "res/xml/config.xml": {
+ "parents": {
+ "/*": [
+ {
+ "xml": "<feature name=\"InAppBrowser\"><param name=\"android-package\" value=\"org.apache.cordova.inappbrowser.InAppBrowser\" /></feature>",
+ "count": 1
+ },
+ {
+ "xml": "<feature name=\"SocialSharing\"><param name=\"android-package\" value=\"nl.xservices.plugins.SocialSharing\" /></feature>",
+ "count": 1
+ },
+ {
+ "xml": "<feature name=\"LaunchMyApp\"><param name=\"android-package\" value=\"nl.xservices.plugins.LaunchMyApp\" /></feature>",
+ "count": 1
+ },
+ {
+ "xml": "<feature name=\"Whitelist\"><param name=\"android-package\" value=\"org.apache.cordova.whitelist.WhitelistPlugin\" /><param name=\"onload\" value=\"true\" /></feature>",
+ "count": 1
+ },
+ {
+ "xml": "<feature name=\"Device\"><param name=\"android-package\" value=\"org.apache.cordova.device.Device\" /></feature>",
+ "count": 1
+ },
+ {
+ "xml": "<feature name=\"NetworkStatus\"><param name=\"android-package\" value=\"org.apache.cordova.networkinformation.NetworkManager\" /></feature>",
+ "count": 1
+ },
+ {
+ "xml": "<feature name=\"Notification\"><param name=\"android-package\" value=\"org.apache.cordova.dialogs.Notification\" /></feature>",
+ "count": 1
+ },
+ {
+ "xml": "<feature name=\"Geolocation\"><param name=\"android-package\" value=\"org.apache.cordova.geolocation.Geolocation\" /></feature>",
+ "count": 1
+ },
+ {
+ "xml": "<feature name=\"Keyboard\"><param name=\"android-package\" value=\"io.ionic.keyboard.IonicKeyboard\" /><param name=\"onload\" value=\"true\" /></feature>",
+ "count": 1
+ },
+ {
+ "xml": "<feature name=\"StatusBar\"><param name=\"android-package\" value=\"org.apache.cordova.statusbar.StatusBar\" /><param name=\"onload\" value=\"true\" /></feature>",
+ "count": 1
+ },
+ {
+ "xml": "<feature name=\"SplashScreen\"><param name=\"android-package\" value=\"org.apache.cordova.splashscreen.SplashScreen\" /><param name=\"onload\" value=\"true\" /></feature>",
+ "count": 1
+ },
+ {
+ "xml": "<feature name=\"PushNotification\"><param name=\"android-package\" value=\"com.adobe.phonegap.push.PushPlugin\" /></feature>",
+ "count": 1
+ },
+ {
+ "xml": "<feature name=\"Sim\"><param name=\"android-package\" value=\"com.pbakondy.Sim\" /></feature>",
+ "count": 1
+ }
+ ]
+ }
},
- {
- "xml": "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\" />",
- "count": 1
+ "AndroidManifest.xml": {
+ "parents": {
+ "/manifest/application": [
+ {
+ "xml": "<activity android:exported=\"true\" android:name=\"com.adobe.phonegap.push.PushHandlerActivity\" android:permission=\"${applicationId}.permission.PushHandlerActivity\" />",
+ "count": 1
+ },
+ {
+ "xml": "<receiver android:name=\"com.adobe.phonegap.push.BackgroundActionButtonHandler\" />",
+ "count": 1
+ },
+ {
+ "xml": "<receiver android:exported=\"true\" android:name=\"com.google.android.gms.gcm.GcmReceiver\" android:permission=\"com.google.android.c2dm.permission.SEND\"><intent-filter><action android:name=\"com.google.android.c2dm.intent.RECEIVE\" /><category android:name=\"${applicationId}\" /></intent-filter></receiver>",
+ "count": 1
+ },
+ {
+ "xml": "<service android:exported=\"false\" android:name=\"com.adobe.phonegap.push.GCMIntentService\"><intent-filter><action android:name=\"com.google.android.c2dm.intent.RECEIVE\" /></intent-filter></service>",
+ "count": 1
+ },
+ {
+ "xml": "<service android:exported=\"false\" android:name=\"com.adobe.phonegap.push.PushInstanceIDListenerService\"><intent-filter><action android:name=\"com.google.android.gms.iid.InstanceID\" /></intent-filter></service>",
+ "count": 1
+ },
+ {
+ "xml": "<service android:exported=\"false\" android:name=\"com.adobe.phonegap.push.RegistrationIntentService\" />",
+ "count": 1
+ }
+ ],
+ "/manifest": [
+ {
+ "xml": "<uses-permission android:name=\"android.permission.INTERNET\" />",
+ "count": 1
+ },
+ {
+ "xml": "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" />",
+ "count": 1
+ },
+ {
+ "xml": "<uses-permission android:name=\"android.permission.WAKE_LOCK\" />",
+ "count": 1
+ },
+ {
+ "xml": "<uses-permission android:name=\"android.permission.VIBRATE\" />",
+ "count": 1
+ },
+ {
+ "xml": "<uses-permission android:name=\"com.google.android.c2dm.permission.RECEIVE\" />",
+ "count": 1
+ },
+ {
+ "xml": "<uses-permission android:name=\"${applicationId}.permission.C2D_MESSAGE\" />",
+ "count": 1
+ },
+ {
+ "xml": "<uses-permission android:name=\"${applicationId}.permission.PushHandlerActivity\" />",
+ "count": 1
+ },
+ {
+ "xml": "<permission android:name=\"${applicationId}.permission.C2D_MESSAGE\" android:protectionLevel=\"signature\" />",
+ "count": 1
+ },
+ {
+ "xml": "<permission android:name=\"${applicationId}.permission.PushHandlerActivity\" android:protectionLevel=\"signature\" />",
+ "count": 1
+ }
+ ],
+ "/*/application/activity": [],
+ "/*": [
+ {
+ "xml": "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" />",
+ "count": 1
+ },
+ {
+ "xml": "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" />",
+ "count": 1
+ },
+ {
+ "xml": "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\" />",
+ "count": 1
+ },
+ {
+ "xml": "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\" />",
+ "count": 1
+ },
+ {
+ "xml": "<uses-feature android:name=\"android.hardware.location.gps\" />",
+ "count": 1
+ },
+ {
+ "xml": "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\" />",
+ "count": 1
+ }
+ ],
+ "/manifest/application/activity": [
+ {
+ "xml": "<intent-filter><action android:name=\"android.intent.action.VIEW\" /><category android:name=\"android.intent.category.DEFAULT\" /><category android:name=\"android.intent.category.BROWSABLE\" /><data android:scheme=\"stoneisland\" /></intent-filter>",
+ "count": 1
+ },
+ {
+ "xml": "<intent-filter><action android:name=\"android.intent.action.VIEW\" /><category android:name=\"android.intent.category.DEFAULT\" /><category android:name=\"android.intent.category.BROWSABLE\" /><data android:host=\" \" android:pathPrefix=\"/\" android:scheme=\" \" /></intent-filter>",
+ "count": 1
+ }
+ ]
+ }
},
- {
- "xml": "<uses-feature android:name=\"android.hardware.location.gps\" />",
- "count": 1
+ "res/values/parseplugin.xml": {
+ "parents": {
+ "/*": []
+ }
},
- {
- "xml": "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\" />",
- "count": 1
- }
- ],
- "/manifest/application/activity": [
- {
- "xml": "<intent-filter><action android:name=\"android.intent.action.VIEW\" /><category android:name=\"android.intent.category.DEFAULT\" /><category android:name=\"android.intent.category.BROWSABLE\" /><data android:scheme=\"stoneisland\" /></intent-filter>",
- "count": 1
+ "res/values/strings.xml": {
+ "parents": {
+ "/resources": [
+ {
+ "xml": "<string name=\"google_app_id\">85075801930</string>",
+ "count": 1
+ }
+ ]
+ }
},
- {
- "xml": "<intent-filter><action android:name=\"android.intent.action.VIEW\" /><category android:name=\"android.intent.category.DEFAULT\" /><category android:name=\"android.intent.category.BROWSABLE\" /><data android:host=\" \" android:pathPrefix=\"/\" android:scheme=\" \" /></intent-filter>",
- "count": 1
+ "config.xml": {
+ "parents": {
+ "/*": [
+ {
+ "xml": "<preference name=\"AppName\" value=\"Stone Island\" />",
+ "count": 1
+ },
+ {
+ "xml": "<feature name=\"Device\"><param name=\"android-package\" value=\"org.apache.cordova.device.Device\" /></feature>",
+ "count": 1
+ },
+ {
+ "xml": "<feature name=\"NetworkStatus\"><param name=\"android-package\" value=\"org.apache.cordova.networkinformation.NetworkManager\" /></feature>",
+ "count": 1
+ },
+ {
+ "xml": "<access origin=\"https://ssl.gstatic.com/accessibility/javascript/android/*\" />",
+ "count": 1
+ },
+ {
+ "xml": "<feature name=\"MobileAccessibility\"><param name=\"android-package\" value=\"com.phonegap.plugin.mobileaccessibility.MobileAccessibility\" /></feature>",
+ "count": 1
+ }
+ ]
+ }
}
- ]
}
- },
- "res/values/parseplugin.xml": {
- "parents": {
- "/*": []
- }
- },
- "res/values/strings.xml": {
- "parents": {
- "/resources": [
- {
- "xml": "<string name=\"google_app_id\">85075801930</string>",
- "count": 1
- }
- ]
- }
- },
- "config.xml": {
- "parents": {
- "/*": [
- {
- "xml": "<preference name=\"AppName\" value=\"Stone Island\" />",
- "count": 1
- }
- ]
- }
- }
- }
- },
- "installed_plugins": {
- "cordova-plugin-inappbrowser": {
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- },
- "cordova-plugin-x-socialsharing": {
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- },
- "cordova-plugin-customurlscheme": {
- "URL_SCHEME": "stoneisland",
- "ANDROID_SCHEME": " ",
- "ANDROID_HOST": " ",
- "ANDROID_PATHPREFIX": "/",
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- },
- "cordova-plugin-whitelist": {
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- },
- "cordova-plugin-device": {
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- },
- "cordova-plugin-network-information": {
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- },
- "cordova-plugin-dialogs": {
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- },
- "cordova-plugin-compat": {
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- },
- "cordova-plugin-geolocation": {
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- },
- "ionic-plugin-keyboard": {
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- },
- "cordova-plugin-statusbar": {
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- },
- "cordova-plugin-app-name": {
- "APP_NAME": "Stone Island",
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- },
- "cordova-plugin-splashscreen": {
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- },
- "phonegap-plugin-push": {
- "SENDER_ID": "85075801930",
- "PACKAGE_NAME": "us.okfoc.stoneisland"
},
- "cordova-plugin-sim": {
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- }
- },
- "dependent_plugins": {},
- "modules": [
- {
- "file": "plugins/cordova-plugin-inappbrowser/www/inappbrowser.js",
- "id": "cordova-plugin-inappbrowser.inappbrowser",
- "pluginId": "cordova-plugin-inappbrowser",
- "clobbers": [
- "cordova.InAppBrowser.open",
- "window.open"
- ]
- },
- {
- "file": "plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js",
- "id": "cordova-plugin-x-socialsharing.SocialSharing",
- "pluginId": "cordova-plugin-x-socialsharing",
- "clobbers": [
- "window.plugins.socialsharing"
- ]
- },
- {
- "file": "plugins/cordova-plugin-customurlscheme/www/android/LaunchMyApp.js",
- "id": "cordova-plugin-customurlscheme.LaunchMyApp",
- "pluginId": "cordova-plugin-customurlscheme",
- "clobbers": [
- "window.plugins.launchmyapp"
- ]
- },
- {
- "file": "plugins/cordova-plugin-device/www/device.js",
- "id": "cordova-plugin-device.device",
- "pluginId": "cordova-plugin-device",
- "clobbers": [
- "device"
- ]
- },
- {
- "file": "plugins/cordova-plugin-network-information/www/network.js",
- "id": "cordova-plugin-network-information.network",
- "pluginId": "cordova-plugin-network-information",
- "clobbers": [
- "navigator.connection",
- "navigator.network.connection"
- ]
- },
- {
- "file": "plugins/cordova-plugin-network-information/www/Connection.js",
- "id": "cordova-plugin-network-information.Connection",
- "pluginId": "cordova-plugin-network-information",
- "clobbers": [
- "Connection"
- ]
- },
- {
- "file": "plugins/cordova-plugin-dialogs/www/notification.js",
- "id": "cordova-plugin-dialogs.notification",
- "pluginId": "cordova-plugin-dialogs",
- "merges": [
- "navigator.notification"
- ]
- },
- {
- "file": "plugins/cordova-plugin-dialogs/www/android/notification.js",
- "id": "cordova-plugin-dialogs.notification_android",
- "pluginId": "cordova-plugin-dialogs",
- "merges": [
- "navigator.notification"
- ]
- },
- {
- "file": "plugins/cordova-plugin-geolocation/www/android/geolocation.js",
- "id": "cordova-plugin-geolocation.geolocation",
- "pluginId": "cordova-plugin-geolocation",
- "clobbers": [
- "navigator.geolocation"
- ]
- },
- {
- "file": "plugins/cordova-plugin-geolocation/www/PositionError.js",
- "id": "cordova-plugin-geolocation.PositionError",
- "pluginId": "cordova-plugin-geolocation",
- "runs": true
- },
- {
- "file": "plugins/ionic-plugin-keyboard/www/android/keyboard.js",
- "id": "ionic-plugin-keyboard.keyboard",
- "pluginId": "ionic-plugin-keyboard",
- "clobbers": [
- "cordova.plugins.Keyboard"
- ],
- "runs": true
- },
- {
- "id": "cordova-plugin-statusbar.statusbar",
- "file": "plugins/cordova-plugin-statusbar/www/statusbar.js",
- "pluginId": "cordova-plugin-statusbar",
- "clobbers": [
- "window.StatusBar"
- ]
- },
- {
- "id": "cordova-plugin-splashscreen.SplashScreen",
- "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js",
- "pluginId": "cordova-plugin-splashscreen",
- "clobbers": [
- "navigator.splashscreen"
- ]
- },
- {
- "id": "phonegap-plugin-push.PushNotification",
- "file": "plugins/phonegap-plugin-push/www/push.js",
- "pluginId": "phonegap-plugin-push",
- "clobbers": [
- "PushNotification"
- ]
- },
- {
- "id": "cordova-plugin-sim.Sim",
- "file": "plugins/cordova-plugin-sim/www/sim.js",
- "pluginId": "cordova-plugin-sim",
- "merges": [
- "window.plugins.sim"
- ]
+ "installed_plugins": {
+ "cordova-plugin-inappbrowser": {
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "cordova-plugin-x-socialsharing": {
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "cordova-plugin-customurlscheme": {
+ "URL_SCHEME": "stoneisland",
+ "ANDROID_SCHEME": " ",
+ "ANDROID_HOST": " ",
+ "ANDROID_PATHPREFIX": "/",
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "cordova-plugin-whitelist": {
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "cordova-plugin-device": {
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "cordova-plugin-network-information": {
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "cordova-plugin-dialogs": {
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "cordova-plugin-compat": {
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "cordova-plugin-geolocation": {
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "ionic-plugin-keyboard": {
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "cordova-plugin-statusbar": {
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "cordova-plugin-app-name": {
+ "APP_NAME": "Stone Island",
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "cordova-plugin-splashscreen": {
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "phonegap-plugin-push": {
+ "SENDER_ID": "85075801930",
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "cordova-plugin-sim": {
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "phonegap-plugin-mobile-accessibility": {
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ }
},
- {
- "id": "cordova-plugin-sim.SimAndroid",
- "file": "plugins/cordova-plugin-sim/www/android/sim.js",
- "pluginId": "cordova-plugin-sim",
- "merges": [
- "window.plugins.sim"
- ]
+ "dependent_plugins": {},
+ "modules": [
+ {
+ "file": "plugins/cordova-plugin-inappbrowser/www/inappbrowser.js",
+ "id": "cordova-plugin-inappbrowser.inappbrowser",
+ "pluginId": "cordova-plugin-inappbrowser",
+ "clobbers": [
+ "cordova.InAppBrowser.open",
+ "window.open"
+ ]
+ },
+ {
+ "file": "plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js",
+ "id": "cordova-plugin-x-socialsharing.SocialSharing",
+ "pluginId": "cordova-plugin-x-socialsharing",
+ "clobbers": [
+ "window.plugins.socialsharing"
+ ]
+ },
+ {
+ "file": "plugins/cordova-plugin-customurlscheme/www/android/LaunchMyApp.js",
+ "id": "cordova-plugin-customurlscheme.LaunchMyApp",
+ "pluginId": "cordova-plugin-customurlscheme",
+ "clobbers": [
+ "window.plugins.launchmyapp"
+ ]
+ },
+ {
+ "file": "plugins/cordova-plugin-device/www/device.js",
+ "id": "cordova-plugin-device.device",
+ "pluginId": "cordova-plugin-device",
+ "clobbers": [
+ "device"
+ ]
+ },
+ {
+ "file": "plugins/cordova-plugin-network-information/www/network.js",
+ "id": "cordova-plugin-network-information.network",
+ "pluginId": "cordova-plugin-network-information",
+ "clobbers": [
+ "navigator.connection",
+ "navigator.network.connection"
+ ]
+ },
+ {
+ "file": "plugins/cordova-plugin-network-information/www/Connection.js",
+ "id": "cordova-plugin-network-information.Connection",
+ "pluginId": "cordova-plugin-network-information",
+ "clobbers": [
+ "Connection"
+ ]
+ },
+ {
+ "file": "plugins/cordova-plugin-dialogs/www/notification.js",
+ "id": "cordova-plugin-dialogs.notification",
+ "pluginId": "cordova-plugin-dialogs",
+ "merges": [
+ "navigator.notification"
+ ]
+ },
+ {
+ "file": "plugins/cordova-plugin-dialogs/www/android/notification.js",
+ "id": "cordova-plugin-dialogs.notification_android",
+ "pluginId": "cordova-plugin-dialogs",
+ "merges": [
+ "navigator.notification"
+ ]
+ },
+ {
+ "file": "plugins/cordova-plugin-geolocation/www/android/geolocation.js",
+ "id": "cordova-plugin-geolocation.geolocation",
+ "pluginId": "cordova-plugin-geolocation",
+ "clobbers": [
+ "navigator.geolocation"
+ ]
+ },
+ {
+ "file": "plugins/cordova-plugin-geolocation/www/PositionError.js",
+ "id": "cordova-plugin-geolocation.PositionError",
+ "pluginId": "cordova-plugin-geolocation",
+ "runs": true
+ },
+ {
+ "file": "plugins/ionic-plugin-keyboard/www/android/keyboard.js",
+ "id": "ionic-plugin-keyboard.keyboard",
+ "pluginId": "ionic-plugin-keyboard",
+ "clobbers": [
+ "cordova.plugins.Keyboard"
+ ],
+ "runs": true
+ },
+ {
+ "id": "cordova-plugin-statusbar.statusbar",
+ "file": "plugins/cordova-plugin-statusbar/www/statusbar.js",
+ "pluginId": "cordova-plugin-statusbar",
+ "clobbers": [
+ "window.StatusBar"
+ ]
+ },
+ {
+ "id": "cordova-plugin-splashscreen.SplashScreen",
+ "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js",
+ "pluginId": "cordova-plugin-splashscreen",
+ "clobbers": [
+ "navigator.splashscreen"
+ ]
+ },
+ {
+ "id": "phonegap-plugin-push.PushNotification",
+ "file": "plugins/phonegap-plugin-push/www/push.js",
+ "pluginId": "phonegap-plugin-push",
+ "clobbers": [
+ "PushNotification"
+ ]
+ },
+ {
+ "id": "cordova-plugin-sim.Sim",
+ "file": "plugins/cordova-plugin-sim/www/sim.js",
+ "pluginId": "cordova-plugin-sim",
+ "merges": [
+ "window.plugins.sim"
+ ]
+ },
+ {
+ "id": "cordova-plugin-sim.SimAndroid",
+ "file": "plugins/cordova-plugin-sim/www/android/sim.js",
+ "pluginId": "cordova-plugin-sim",
+ "merges": [
+ "window.plugins.sim"
+ ]
+ },
+ {
+ "id": "phonegap-plugin-mobile-accessibility.mobile-accessibility",
+ "file": "plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js",
+ "pluginId": "phonegap-plugin-mobile-accessibility",
+ "clobbers": [
+ "window.MobileAccessibility"
+ ]
+ },
+ {
+ "id": "phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications",
+ "file": "plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js",
+ "pluginId": "phonegap-plugin-mobile-accessibility",
+ "clobbers": [
+ "MobileAccessibilityNotifications"
+ ]
+ }
+ ],
+ "plugin_metadata": {
+ "cordova-plugin-inappbrowser": "1.5.0",
+ "cordova-plugin-x-socialsharing": "5.1.3",
+ "cordova-plugin-customurlscheme": "4.2.0",
+ "cordova-plugin-whitelist": "1.3.0",
+ "cordova-plugin-device": "1.1.3",
+ "cordova-plugin-network-information": "1.3.0",
+ "cordova-plugin-dialogs": "1.3.0",
+ "cordova-plugin-compat": "1.1.0",
+ "cordova-plugin-geolocation": "2.4.0",
+ "ionic-plugin-keyboard": "2.2.1",
+ "cordova-plugin-statusbar": "2.2.3",
+ "cordova-plugin-app-name": "1.0.4",
+ "cordova-plugin-splashscreen": "4.0.3",
+ "phonegap-plugin-push": "1.9.2",
+ "cordova-plugin-sim": "1.3.3",
+ "phonegap-plugin-mobile-accessibility": "1.0.5-dev"
}
- ],
- "plugin_metadata": {
- "cordova-plugin-inappbrowser": "1.5.0",
- "cordova-plugin-x-socialsharing": "5.1.3",
- "cordova-plugin-customurlscheme": "4.2.0",
- "cordova-plugin-whitelist": "1.3.0",
- "cordova-plugin-device": "1.1.3",
- "cordova-plugin-network-information": "1.3.0",
- "cordova-plugin-dialogs": "1.3.0",
- "cordova-plugin-compat": "1.1.0",
- "cordova-plugin-geolocation": "2.4.0",
- "ionic-plugin-keyboard": "2.2.1",
- "cordova-plugin-statusbar": "2.2.3",
- "cordova-plugin-app-name": "1.0.4",
- "cordova-plugin-splashscreen": "4.0.3",
- "phonegap-plugin-push": "1.9.2",
- "cordova-plugin-sim": "1.3.3"
- }
} \ No newline at end of file
diff --git a/StoneIsland/platforms/android/assets/www/cordova_plugins.js b/StoneIsland/platforms/android/assets/www/cordova_plugins.js
index 770bd946..2b01e07f 100755
--- a/StoneIsland/platforms/android/assets/www/cordova_plugins.js
+++ b/StoneIsland/platforms/android/assets/www/cordova_plugins.js
@@ -128,6 +128,22 @@ module.exports = [
"merges": [
"window.plugins.sim"
]
+ },
+ {
+ "id": "phonegap-plugin-mobile-accessibility.mobile-accessibility",
+ "file": "plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js",
+ "pluginId": "phonegap-plugin-mobile-accessibility",
+ "clobbers": [
+ "window.MobileAccessibility"
+ ]
+ },
+ {
+ "id": "phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications",
+ "file": "plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js",
+ "pluginId": "phonegap-plugin-mobile-accessibility",
+ "clobbers": [
+ "MobileAccessibilityNotifications"
+ ]
}
];
module.exports.metadata =
@@ -147,7 +163,8 @@ module.exports.metadata =
"cordova-plugin-app-name": "1.0.4",
"cordova-plugin-splashscreen": "4.0.3",
"phonegap-plugin-push": "1.9.2",
- "cordova-plugin-sim": "1.3.3"
+ "cordova-plugin-sim": "1.3.3",
+ "phonegap-plugin-mobile-accessibility": "1.0.5-dev"
};
// BOTTOM OF METADATA
}); \ No newline at end of file
diff --git a/StoneIsland/platforms/android/assets/www/css/account.css b/StoneIsland/platforms/android/assets/www/css/account.css
index 32c7df79..be82a4c7 100755
--- a/StoneIsland/platforms/android/assets/www/css/account.css
+++ b/StoneIsland/platforms/android/assets/www/css/account.css
@@ -67,7 +67,7 @@
content:'';
width:calc(100% + 100px);
height:1px;
- background:#bbb;
+ background:#666;
position:absolute;
bottom:0;
left:-50px;
@@ -122,12 +122,23 @@
text-align: center;
margin: 0;
padding: 20px 10px 8px 10px;
- font-size: 14px;
+ font-size: 16px;
color: #000;
letter-spacing: 1px;
font-weight: bold;
}
+label {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+ font-size: 16px;
+ color: #000;
+ letter-spacing:1px;
+ text-transform:uppercase;
+ height: 48px;
+}
input[type=text], input[type=password], input[type=number], input[type=date], input[type=email] {
font-family:pfd, sans-serif;
font-size:14px;
@@ -135,13 +146,13 @@ input[type=text], input[type=password], input[type=number], input[type=date], in
color:#000;
letter-spacing:1px;
text-transform:uppercase;
- height:35px;
+ height: 48px;
text-align:center;
margin: 0px auto;
display:block;
- margin-top:4px;
+ margin-top: 0px;
width: calc(100vw - 10px);
- border:1px solid #a9a9a9;
+ border:1px solid #696969;
padding: 0;
border-radius: 0;
}
@@ -149,27 +160,35 @@ input[type=text], input[type=password], input[type=number], input[type=date], in
input[type=text], input[type=password], input[type=number], input[type=email] {
-webkit-appearance: none;
}
-
+input[type=text]:focus, input[type=password]:focus, input[type=number]:focus, input[type=email] {
+ border-width: 2px;
+}
.half-input {
margin: 0px auto;
- display: block;
+ display: flex;
+ flex-direction: row;
+ justify-content: flex-start;
+ align-items: center;
margin-top: 4px;
width: calc(100vw - 10px);
overflow: auto;
}
+.half-input label {
+ width: 50%;
+}
.half-input input, .half-input select {
position: relative;
margin: 0;
border:none;
box-sizing: border-box;
float: left;
- border: 1px solid #a9a9a9;
+ border: 1px solid #696969;
width: 50%;
}
.half-input > input:first-child {
- border-right: 1px solid #a9a9a9;
+ border-right: 1px solid #696969;
}
#signup .toggle-container, #profile .toggle-container {
@@ -179,7 +198,7 @@ input[type=text], input[type=password], input[type=number], input[type=email] {
width: calc(100vw - 10px);
box-sizing: border-box;
padding:0px 18px 2px;
- font-size:14px;
+ font-size:16px;
}
#settings .toggle-container {
@@ -189,7 +208,7 @@ input[type=text], input[type=password], input[type=number], input[type=email] {
width: calc(100vw - 10px);
box-sizing: border-box;
padding:10px 18px 2px;
- font-size:14px;
+ font-size:16px;
}
.toggle-row {
@@ -296,10 +315,12 @@ input.switch:checked + label:after {
.container-fill {
min-height:80px;
+ display: flex;
flex: 1;
align-items: center;
justify-content: center;
position:relative;
+ flex-direction: column;
}
.container-fill-condensed {
@@ -317,26 +338,27 @@ input.switch:checked + label:after {
width:calc(100vw - 10px);
box-sizing:border-box;
margin:10px auto 0;
- position:relative
+ position:relative;
}
.container-row .container-message-condensed {
margin: 2px auto!important
}
.container-fill .container-message {
- font-size:12px;
+ font-size:14px;
letter-spacing:0.5px;
text-align:center;
- position:absolute;
- top:50%;
- left:50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
width:100%;
- -webkit-transform: translateX(-50%) translateY(-50%);
- transform: translateX(-50%) translateY(-50%);
+ min-height: 48px;
color:#000;
}
-
+.billing-container a {
+ text-decoration: none;
+}
.premessage {
top:calc(50% - 20px)!important;
@@ -351,7 +373,7 @@ input.switch:checked + label:after {
}
.checkbox-container {
- font-size:11px;
+ font-size:14px;
width:calc(100vw - 10px);
display:table;
box-sizing:border-box;
@@ -381,6 +403,7 @@ input.switch:checked + label:after {
vertical-align:middle;
display:table-cell;
box-sizing:border-box;
+ text-align: left;
}
.billing-container .checkbox-caption {
@@ -442,10 +465,6 @@ input.switch:checked + label:after {
}
.privacy-msg {
- left: 50%;
- display: inline-block;
- position: relative;
- transform: translateX(-50%);
padding-top: 15px;
padding-bottom: 80px;
}
@@ -463,46 +482,50 @@ input.switch:checked + label:after {
color: #000;
letter-spacing: 1px;
text-transform: uppercase;
- height: 35px;
+ height: 48px;
text-align: center;
margin: 0px auto;
display: block;
margin-top: 4px;
width: calc(100vw - 10px);
- border: 1px solid #a9a9a9;
+ border: 1px solid #696969;
}
.date-wrapper span {
display: block;
}
.half-input .select-wrapper {
+ display: flex;
+ align-items: center;
+ justify-content: center;
width: 50%;
border: 0;
margin-top: 0px;
float: left;
box-sizing: border-box;
- border: 1px solid #a9a9a9;
+ border: 1px solid #696969;
+}
+.half-input .select-wrapper:nth-child(2) {
border-left: 0px;
}
.half-input .select-wrapper span {
- top: 8px;
color: #aaa;
+ top: 0;
}
.select-wrapper [type=date] {
opacity: 0;
width: 100%;
- height: 35px;
- line-height: 35px;
+ height: 48px;
+ line-height: 48px;
position: absolute;
top: -5px;
left: -1px;
- width: 1px; height: 1px;
}
.select-wrapper select {
opacity: 0;
width: 100%;
- height: 35px;
- line-height: 35px;
+ height: 48px;
+ line-height: 48px;
position: absolute;
top: 0; left: 0;
box-sizing: border-box;
@@ -512,8 +535,8 @@ input.switch:checked + label:after {
}
.select-wrapper span {
position: relative;
- top: 8px;
- color: #888;
+ top: 15px;
+ color: #666;
}
.select-wrapper.picked span {
color: #000;
@@ -521,33 +544,29 @@ input.switch:checked + label:after {
.country-wrapper-static {
text-align: center;
- color: #a9a9a9;
+ color: #696969;
border: 1px solid;
- padding-top: 9px;
+ border-left: 0;
font-size: 14px;
- height: 35px;
+ height: 48px;
box-sizing: border-box;
-}
-
-.container-row input:first-child {
-margin-top:10px
+ width: 50%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
}
.container-row .half-input input {
margin-top:0px
}
-#login .container-row input:first-child {
-margin-bottom:9px!important
-}
-
.newuser {
display:inline-block;
- padding:14px;
+ padding:18px;
text-decoration:underline
}
.forgotpassword {
- padding:14px;
+ padding:18px;
text-decoration:underline
} \ No newline at end of file
diff --git a/StoneIsland/platforms/android/assets/www/css/blogs.css b/StoneIsland/platforms/android/assets/www/css/blogs.css
index bf5ab68f..0834912e 100755
--- a/StoneIsland/platforms/android/assets/www/css/blogs.css
+++ b/StoneIsland/platforms/android/assets/www/css/blogs.css
@@ -6,11 +6,19 @@
margin: 15px 0 0;
text-align: center;
text-transform:uppercase;
+ display:flex;
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
}
#story .links li {
- padding: 10px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ height: 48px;
+ padding: 0 15px;
list-style-type: none;
- display: inline-block;
+ font-size: 16px;
}
#story .links li:before {
content: ' | ',
@@ -57,7 +65,7 @@ animation: mfadein 0.6s;
#hub .content .body, #story .content .body {
letter-spacing:0.35px;
- font-size:12px;
+ font-size:16px;
width:calc(100vw - 40px);
box-sizing:border-box;
margin:10px auto 20px;
@@ -65,7 +73,7 @@ animation: mfadein 0.6s;
}
#hub .content .body:last-child {
- margin:10px auto 100px;
+ margin:20px auto 100px;
}
#story .content .body:last-child {
@@ -85,14 +93,14 @@ animation: mfadein 0.6s;
.content-header .title, .content-header .subtitle {
display:block;
font-weight:bold;
- font-size:14px;
+ font-size:16px;
text-transform:uppercase
}
.content-header .title {
margin:0;
padding:0;
- line-height:13px;
+ line-height:1.4em;
}
.content-header .subtitle {
@@ -101,12 +109,17 @@ animation: mfadein 0.6s;
.content-share {
border:1px solid black;
- padding:4px 8px 2px;
+ padding: 0 12px;
+ height: 48px;
+ font-size: 16px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
float:right
}
.content-header span.date, .content-header span.store {
- font-size:10px;
+ font-size:16px;
}
/* NOTE: optional arrows */
@@ -118,8 +131,8 @@ animation: mfadein 0.6s;
background-size:5px 10px;
background-repeat:no-repeat;
background-position:center;
- width:15px;
- height:30px;
+ width:24px;
+ height:48px;
top:26vh;
content:'';
transform:translateY(-50%);
@@ -130,7 +143,6 @@ animation: mfadein 0.6s;
z-index:2;
position:absolute;
display:block;
- animation: gallery-fade 4s forwards;
}
.gallery-right {
border:1px solid black;
@@ -139,8 +151,8 @@ animation: mfadein 0.6s;
background-size:5px 10px;
background-repeat:no-repeat;
background-position:center;
- width:15px;
- height:30px;
+ width:24px;
+ height:48px;
top:26vh;
content:'';
transform:translateY(-50%);
@@ -151,7 +163,6 @@ animation: mfadein 0.6s;
z-index:2;
position:absolute;
display:block;
- animation: gallery-fade 4s forwards;
}
@-webkit-keyframes gallery-fade {
@@ -220,7 +231,7 @@ ul.links {
margin:0 0 12px;
padding:0;
font-weight:bold;
- font-size:14px;
+ font-size:16px;
}
@@ -233,7 +244,7 @@ ul.links {
}
.archive .body {
font-size: 14px;
- line-height: 1.2em;
+ line-height: 1.4em;
font-weight: 100;
}
@@ -278,11 +289,14 @@ ul.links {
}
#archive .menu .item {
width: 100%;
- text-align: center;
+ display: flex;
+ justify-content: center;
+ align-items: center;
border-bottom: 1px solid black;
background: white;
- padding:12px 0;
- font-size:14px;
+ padding:0;
+ height: 48px;
+ font-size:16px;
letter-spacing:0.7px
}
diff --git a/StoneIsland/platforms/android/assets/www/css/cart.css b/StoneIsland/platforms/android/assets/www/css/cart.css
index 7619a82b..c5725349 100755
--- a/StoneIsland/platforms/android/assets/www/css/cart.css
+++ b/StoneIsland/platforms/android/assets/www/css/cart.css
@@ -6,20 +6,24 @@
#cart .steps {
width: 100%;
- border-bottom: 1px solid #bbb;
+ border-bottom: 1px solid #666;
font-size: 0;
+ display: flex;
+ flex-direction: row;
}
#cart .steps span {
- display: inline-block;
- font-size: 13px;
+ display: flex;
+ font-size: 16px;
text-align: center;
- padding: 11px 0 10px;
- color: #bbb;
+ color: #666;
width: 33%;
position:relative;
+ height: 48px;
+ justify-content: center;
+ align-items: center;
}
.summary_step, .shipping_step {
- border-right: 1px solid #bbb
+ border-right: 1px solid #666;
}
#cart.summary .summary_step,
@@ -109,7 +113,12 @@
#cart h3 {
padding-left: 5px;
- font-size:12px;
+ font-size:16px;
+ height: 48px;
+ display: flex;
+ justify-content: flex-start;
+ align-items: center;
+ font-size: 16px;
}
.cart_item_row {
@@ -153,9 +162,9 @@ padding-left:5px;
.cart_item_price .remove {
display:block;
-width:20px;
-height:20px;
-border:1px solid #d2d2d2;
+width:48px;
+height:48px;
+border:1px solid #b2b2b2;
float:right;
margin-bottom:10px;
position:relative;
@@ -164,8 +173,8 @@ position:relative;
.cart_item_price .remove:after {
content:'';
width:1px;
-height:22px;
-background:#bbb;
+height:48px;
+background:#333;
position:absolute;
top:50%;
left:50%;
@@ -177,8 +186,8 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%)
.cart_item_price .remove:before {
content:'';
width:1px;
- height:22px;
- background:#bbb;
+ height:48px;
+ background:#333;
position:absolute;
top:50%;
left:50%;
@@ -188,27 +197,27 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%)
}
.cart_item_price .price {
- font-size:11px;
+ font-size:16px;
font-weight:bold;
display:block
}
.cart_item_info .sku {
- font-size:10px;
+ font-size:16px;
font-weight:bold;
- display:block
+ display:block;
}
.cart_item_info .title {
- font-size:10px;
+ font-size:16px;
font-weight:bold;
display:block;
- line-height:12px;
+ line-height:1.4em;
text-transform:uppercase;
}
.cart_item_info .type {
- font-size:10px;
+ font-size:16px;
font-weight:bold;
display:block;
text-transform:capitalize;
@@ -217,7 +226,7 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%)
.cart_item_info .meta {
padding-top:5px;
letter-spacing:.75px;
- font-size:8px;
+ font-size:14px;
}
.order_section .rows {
@@ -241,8 +250,8 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%)
width:calc(100vw - 30px);
margin:0 auto;
display:table;
- color:#bbb;
- font-size:11px;
+ color:#666;
+ font-size:16px;
}
.cart-summary-row {
@@ -274,7 +283,7 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%)
#orders .order_section {
padding-bottom: 16px;
- border-bottom: 1px solid #bbb;
+ border-bottom: 1px solid #666;
}
@@ -294,9 +303,10 @@ color:#000;
position:relative;
text-align:right;
width:calc(100vw - 10px);
- margin:0 auto;
+ margin:0 auto 20px 0;
box-sizing:border-box;
-
+ display: flex;
+ flex-direction: column;
}
.dropdown-wrapper .add_edit {
@@ -308,11 +318,15 @@ color:#000;
}
.dropdown-wrapper .dropdown {
- font-size:14px;
+ font-size:16px;
box-sizing:border-box;
+ display: flex;
+ justify-content: center;
align-items: center;
text-align: center;
- padding:10px 0;
+ height: 48px;
+ margin-left: 3px;
+ padding:0;
border:1px solid #a9a9a9;
position:relative;
}
@@ -355,6 +369,9 @@ color:#000;
margin-left:5px;
margin-bottom:6px;
}
+#cart .cc_confirm h3 {
+ justify-content: center
+}
#cart_shipping input:first-child {
margin-top:10px
diff --git a/StoneIsland/platforms/android/assets/www/css/index.css b/StoneIsland/platforms/android/assets/www/css/index.css
index 4d8e5514..fa3dae54 100755
--- a/StoneIsland/platforms/android/assets/www/css/index.css
+++ b/StoneIsland/platforms/android/assets/www/css/index.css
@@ -17,9 +17,12 @@ body {
-webkit-user-select: none; /* prevent copy paste, to allow, change 'none' to 'text' */
background: #fff;
font-family: pfd, sans-serif;
- font-size: 12px;
+ font-size: 14px;
padding-top: constant(safe-area-inset-top);
}
+a, a:visited {
+ color: #000;
+}
.loader {
z-index: 2;
@@ -60,3 +63,15 @@ body {
color: red !important;
border-color: red !important;
}
+.error_hilite ~ span.err {
+ display: flex;
+}
+span.err {
+ display: none;
+ text-align: center;
+ justify-content: center;
+ align-items: center;
+ font-size: 14px;
+ height: 48px;
+ color: red !important;
+}
diff --git a/StoneIsland/platforms/android/assets/www/css/nav.css b/StoneIsland/platforms/android/assets/www/css/nav.css
index b7002f20..d69ff144 100755
--- a/StoneIsland/platforms/android/assets/www/css/nav.css
+++ b/StoneIsland/platforms/android/assets/www/css/nav.css
@@ -35,7 +35,7 @@
}
#nav .menu span {
display: block;
- font-size: 14px;
+ font-size: 16px;
letter-spacing:1.25px;
text-shadow:0px 0px 1px rgba(0,0,0,.2);
color: #000;
@@ -77,9 +77,9 @@
#nav .submenu span {
display: block;
- font-size: 14px;
+ font-size: 16px;
letter-spacing:1.25px;
- color: #bbb;
+ color: #666;
padding: 4px 0 12px 20px
}
@@ -94,7 +94,7 @@
float: left;
width: 61px;
border-left: 1px solid #ddd;
- color: #bbb;
+ color: #666;
font-size: 18px;
padding: 5px 0;
text-align: center;
@@ -137,10 +137,13 @@ padding-bottom:0px;
}
#intro div {
position: absolute;
- top: 50%; left: 50%;
+ top: 50%;
+ left: 50%;
width: 200px;
- padding: 50px;
- text-align: center;
+ height: 100px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
font-size: 17px;
}
#intro #compass {
@@ -198,7 +201,7 @@ padding-bottom:0px;
display: block;
position: absolute;
top: 0; left: 0; width: 100%;
- height: 42px;
+ height: 48px;
border-bottom: 1px solid black;
}
#header .logo {
@@ -207,42 +210,42 @@ padding-bottom:0px;
background-position: center center;
position: absolute;
background-size: contain;
- width: 100px; height: 40px;
- left: 50%; top: -4px;
+ width: 100px; height: 48px;
+ left: 50%; top: -3px;
margin-left: -50px;
top:0px;
}
#header .burger {
display: inline-block;
font-size: 24px;
- padding: 9px 10px 5px;
+ padding: 12px 13px 7px;
}
#header .cart_rapper {
- display: inline-block;
+ display: flex;
+ justify-content: center;
+ align-items: flex-end;
position: relative;
float: right;
- width: 40px; height: 40px;
+ width: 44px; height: 48px;
}
#header .cart {
position: relative;
- float: right;
width: 18px;
- top: 15px;
+ margin-bottom: 10px;
height: 18px;
- margin-right: 18px;
background: #fff;
background-image:url(../img/cart-box.png);
background-size:100%;
background-repeat:no-repeat;
}
-.cart .cart_count {
+#header .cart .cart_count {
position: absolute;
top: 50%;
left: 50%;
transform: translateY(-50%) translateX(-50%);
- color: #bbb;
+ color: #666;
font-size:12.35px;
}
@@ -273,12 +276,16 @@ padding-bottom:0px;
}
#footer div {
width: 50%;
+ height: 48px;
text-align: center;
- padding: 10px 0;
color: #000;
float: left;
- font-size:14px;
+ font-size: 16px;
font-weight:bold;
+ padding: 0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
}
#footer .ok {
color: #000;
@@ -287,7 +294,7 @@ padding-bottom:0px;
width: 100%;
}
#footer .ok.disabled {
- color: #bbb;
+ color: #666;
}
@@ -300,8 +307,10 @@ padding-bottom:0px;
width: 100%; height: 100%;
background: rgba(255,255,255,0.8);
opacity: 0;
- -webkit-transition: opacity 0.2s;
- transition: opacity 0.2s;
+ -webkit-transition: opacity 0.2s, -webkit-transform 0.2s;
+ transition: opacity 0.2s, transform 0.2s;
+ -webkit-transform: translateZ(0) translateX(0);
+ transform: translateZ(0) translateX(0);
}
#curtain.visible {
pointer-events: auto;
@@ -346,13 +355,14 @@ padding-bottom:0px;
#consent_modal {
display: none;
z-index: 2;
+ font-size: 16px;
}
#consent_modal a {
color: black;
}
.modal button {
font-family: pfd, sans-serif;
- font-size: 12px;
+ font-size: 14px;
padding: 10px;
box-sizing: border-box;
margin: 0;
@@ -376,6 +386,11 @@ padding-bottom:0px;
#consent_error.visible {
opacity: 1;
}
+.accessible #consent_modal br:nth-last-of-type(1),
+.accessible #consent_modal br:nth-last-of-type(2) {
+ display: none;
+}
+
/* SELECTOR */
#selector {
@@ -400,7 +415,7 @@ padding-bottom:0px;
#selector:not(.selector-outer-wrap) .options div {
background: white;
text-align: center;
- padding: 7px 12px;
+ padding: 12px 12px;
box-sizing:border-box;
font-size: 14px;
border-left:1px solid black;
@@ -462,28 +477,31 @@ padding-bottom:0px;
#cart,
#profile, #shipping, #payment, #settings, #orders {
position: absolute;
- top: 43px;
- height: -webkit-calc(100% - 43px - 39px);
- height: calc(100% - 43px - 39px);
+ top: 49px;
+ height: -webkit-calc(100% - 49px - 39px);
+ height: calc(100% - 49px - 39px);
width: 100%;
overflow: hidden;
}
#collection.single {
- height: -webkit-calc(100% - 43px);
- height: calc(100% - 43px);
+ height: -webkit-calc(100% - 49px);
+ height: calc(100% - 49px);
}
#story, #hub, #archive, .page, #closed {
/* these things do not have a footer */
- height: -webkit-calc(100% - 43px);
- height: calc(100% - 43px);
+ height: -webkit-calc(100% - 49px);
+ height: calc(100% - 49px);
}
h1 {
text-align: center;
margin: 0;
- padding: 16px 10px 12px 10px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
border-bottom: 1px solid #000;
- font-size: 14px;
+ height: 48px;
+ font-size: 16px;
color: #000;
letter-spacing: 1px;
font-weight: bold;
diff --git a/StoneIsland/platforms/android/assets/www/css/products.css b/StoneIsland/platforms/android/assets/www/css/products.css
index 59bb403f..fbc22d28 100755
--- a/StoneIsland/platforms/android/assets/www/css/products.css
+++ b/StoneIsland/platforms/android/assets/www/css/products.css
@@ -103,7 +103,7 @@
}
.product .product-header {
- font-size:14px;
+ font-size:16px;
margin:18px 0 0;
max-width:60%;
position:relative;
@@ -136,33 +136,49 @@
}
.product .style {
- padding:4px 9px;
+ padding: 0;
border:1px solid black;
float:left
}
.product .share {
float:right;
- padding:4px 9px;
+ padding: 0 12px;
+ height: 48px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
border:1px solid black;
}
.product .type {
display:table-cell;
- font-size:14px;
+ font-size:16px;
}
-.product .size {
- padding-right:16px;
+.product .size-color {
+ display: flex;
+ flex-direction: row;
+}
+.product .size-color span {
position:relative;
- box-sizing:border-box
+ box-sizing:border-box;
+ padding: 0 12px;
+ height: 48px;
+ font-size: 16px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+.product .size-color span.size {
+ border-right: 1px solid #444;
}
.product .price {
display:table-cell;
- font-size:14px;
+ font-size:16px;
text-align:right;
- vertical-align:bottom
+ vertical-align:bottom;
}
.product .price, .product .type {
@@ -179,12 +195,12 @@
.style-share {
letter-spacing:0.5px;
- font-size:12.35px
+ font-size:16px;
}
.size-color {
position:relative;
- font-size:12.35px
+ font-size:16px;
}
.type-price, .style-share {
@@ -194,7 +210,7 @@
}
-.size::after {
+/*.size::after {
content: '';
display: inline-block;
width: 1px;
@@ -205,7 +221,7 @@
right:5px;
background: #999;
}
-
+*/
.product .fit,
.product .notAvailableInCanada {
@@ -232,7 +248,8 @@
#product .content .body {
letter-spacing:0.35px;
- font-size:12px;
+ font-size:16px;
+ line-height: 1.4em;
box-sizing:border-box;
margin:0px auto 20px;
clear:both;
diff --git a/StoneIsland/platforms/android/assets/www/index.html b/StoneIsland/platforms/android/assets/www/index.html
index b6fc8317..664b2df0 100755
--- a/StoneIsland/platforms/android/assets/www/index.html
+++ b/StoneIsland/platforms/android/assets/www/index.html
@@ -28,103 +28,96 @@
<link rel="stylesheet" type="text/css" href="css/blogs.css">
<title>Stone Island</title>
</head>
-<body class="loading">
+<body class="loading" role="application">
-<div id="nav">
+<div id="nav" role="directory">
<div id="nav-container">
<div id="nav-row">
<!-- flex -->
- <span class="menu">
- <div class="logo"></div>
- <div class="main_menu">
- <span class="store">STORE</span>
- <span class="hub">HUB</span>
- <span class="story">STORY</span>
- <span class="archive">ARCHIVE</span>
+ <span role="menu" class="menu">
+ <div class="logo" aria-label="Stone Island"></div>
+ <div role="menu" aria-label="Main Menu" class="main_menu">
+ <span role="menuitem" class="store">STORE</span>
+ <span role="menuitem" class="hub">HUB</span>
+ <span role="menuitem" class="story">STORY</span>
+ <span role="menuitem" class="archive">ARCHIVE</span>
</div>
- <div class="account_menu">
- <span class="account_back menu-emphasis">&lt; MY ACCOUNT</span>
- <span class="profile">MY PROFILE</span>
- <span class="payment">MY CARD</span>
- <span class="shipping">ADDRESS BOOK</span>
- <span class="orders">MY ORDERS</span>
- <span class="return_link">RETURNS</span>
- <span class="settings">NOTIFICATIONS</span>
+ <div role="menu" aria-label="Account Menu" class="account_menu">
+ <span role="menuitem" class="account_back menu-emphasis">&lt; MY ACCOUNT</span>
+ <span role="menuitem" class="profile">MY PROFILE</span>
+ <span role="menuitem" class="payment">MY CARD</span>
+ <span role="menuitem" class="shipping">ADDRESS BOOK</span>
+ <span role="menuitem" class="orders">MY ORDERS</span>
+ <span role="menuitem" class="return_link">RETURNS</span>
+ <span role="menuitem" class="settings">NOTIFICATIONS</span>
</div>
- <div class="faq_menu">
- <span class="faq_back menu-emphasis">&lt; FAQ</span>
- <span class="privacy">PRIVACY POLICY</span>
- <span class="account_terms">MY ACCOUNT TERMS AND CONDITIONS OF USE</span>
- <span class="terms">TERMS AND CONDITIONS</span>
- <span class="returns">RETURN POLICY</span>
- <span class="care">CUSTOMER CARE</span>
+ <div role="menu" aria-label="FAQ Menu" class="faq_menu">
+ <span role="menuitem" class="faq_back menu-emphasis">&lt; FAQ</span>
+ <span role="menuitem" class="privacy">PRIVACY POLICY</span>
+ <span role="menuitem" class="account_terms">MY ACCOUNT TERMS AND CONDITIONS OF USE</span>
+ <span role="menuitem" class="terms">TERMS AND CONDITIONS</span>
+ <span role="menuitem" class="returns">RETURN POLICY</span>
+ <span role="menuitem" class="care">CUSTOMER CARE</span>
</div>
</span>
</div>
<div id="nav-fill">
<!-- flex fill -->
- <span class="submenu">
+ <span role="menu" class="submenu">
<div class="main_menu">
- <span class="account">MY ACCOUNT</span>
- <span class="login">LOGIN</span>
- <span class="faq">FAQ</span>
+ <span role="menuitem" class="account">MY ACCOUNT</span>
+ <span role="menuitem" class="login">LOGIN</span>
+ <span role="menuitem" class="faq">FAQ</span>
</div>
<div class="account_menu">
- <span class="logout">LOGOUT</span>
- <span class="faq">FAQ</span>
- <span class="main">MAIN MENU</span>
+ <span role="menuitem" class="logout">LOGOUT</span>
+ <span role="menuitem" class="faq">FAQ</span>
+ <span role="menuitem" class="main">MAIN MENU</span>
</div>
<div class="faq_menu">
- <span class="account">MY ACCOUNT</span>
- <span class="login">LOGIN</span>
- <span class="logout">LOGOUT</span>
- <span class="main">MAIN MENU</span>
+ <span role="menuitem" class="account">MY ACCOUNT</span>
+ <span role="menuitem" class="login">LOGIN</span>
+ <span role="menuitem" class="logout">LOGOUT</span>
+ <span role="menuitem" class="main">MAIN MENU</span>
</div>
</span>
</div>
<!-- end flex -->
</div>
- <span class="social">
- <span class="fb ion-social-facebook"></span>
- <span class="insta ion-social-instagram-outline"></span>
- <span class="tw ion-social-twitter"></span>
- <span class="yt ion-social-youtube"></span>
+ <span class="social" role="list" aria-label="Social Links">
+ <span role="menuitem" class="fb ion-social-facebook"></span>
+ <span role="menuitem" class="insta ion-social-instagram-outline"></span>
+ <span role="menuitem" class="tw ion-social-twitter"></span>
+ <span role="menuitem" class="yt ion-social-youtube"></span>
</span>
</div>
<div id="content">
- <div id="intro">
+ <div id="intro" role="menu" aria-label="Stone Island Home Screen">
<div id="compass"></div>
- <div class="store">STORE</div>
- <div class="hub">HUB</div>
- <div class="story">STORY</div>
- <div class="archive">ARCHIVE</div>
+ <div role="menuitem" class="store">STORE</div>
+ <div role="menuitem" class="hub">HUB</div>
+ <div role="menuitem" class="story">STORY</div>
+ <div role="menuitem" class="archive">ARCHIVE</div>
<div class="alert"></div>
- <span class="latlng">+40&deg; 58' 90.9" N&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;74&deg; 04' 46.3" W</span>
+ <span class="latlng" role="note" aria-label="Your Latitude and Longitude">+40&deg; 58' 90.9" N&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;74&deg; 04' 46.3" W</span>
</div>
- <div id="header">
- <span class="burger ion-android-menu"></span>
- <span class="logo"></span>
- <span class="cart_rapper"><span class="cart"><span class="cart_count">0</span></span></span>
- </div>
-
- <div id="footer">
- <!-- 'Cancel' i think needs to go BACK in the navigation.. rather than jumping to the home screen -->
- <div class="cancel">CANCEL</div>
- <div class="ok">OK</div>
+ <div id="header" role="menubar" aria-label="Menu bar">
+ <span role="menu" aria-label="Show main menu" class="burger ion-android-menu"></span>
+ <span role="link" aria-label="Homepage. Stone Island logo" class="logo"></span>
+ <span role="link" aria-label="View cart" class="cart_rapper"><span class="cart"><span role="display" class="cart_count">0</span></span></span>
</div>
-
<!-- BLOGS ================================================ -->
- <div id="story">
+ <div id="story" role="region" aria-label="Stone Island Story">
<div class="scroll">
- <h1>STORY</h1>
+ <h1 aria-label="Current section: Stone Island Story">STORY</h1>
<img>
<ul class="links"></ul>
<div class="content">
@@ -137,21 +130,21 @@
</div>
</div>
- <div id="hub">
+ <div id="hub" role="region" aria-label="Stone Island Hub">
<div class="scroll">
- <h1>HUB</h1>
+ <h1 aria-label="Current section: Stone Island Hub">HUB</h1>
<div class="content">
<script type="text/html" class="template">
<div class="hub_item" data-id="{{id}}">
- <div class="gallery gallery-{{id}}"></div>
- <div class="gallery-left"></div>
- <div class="gallery-right"></div>
- <div class="content-header">
- <div class="content-share">
- SHARE +
+ <div class="gallery gallery-{{id}}" role="carousel"></div>
+ <div role="button" class="gallery-left"></div>
+ <div role="button" class="gallery-right"></div>
+ <div role="heading" class="content-header">
+ <div role="button" class="content-share">
+ SHARE +
</div>
- <span class="title">{{title}}</span>
- <span class="subtitle">{{subtitle}}</span>
+ <span role="heading" aria-details="{{cleantitle}}" class="title">{{title}}</span>
+ <span role="heading" aria-details="{{cleansubtitle}}"class="subtitle">{{subtitle}}</span>
<span class="date">
{{date}}
<span class="store">
@@ -167,7 +160,7 @@
<div class="fade-cover"></div>
</div>
- <div id="archive">
+ <div id="archive" role="region" aria-label="Stone Island Archive">
<div class="scroll">
<div class="content">
@@ -187,28 +180,29 @@
</div>
</div>
- <div class="menu">
+ <div class="menu" role="menu">
<div class="items">
<script type="text/html" class="template">
- <div class="item">{{title}}</div>
+ <div role="button" class="item">{{title}}</div>
</script>
</div>
</div>
<div class="heading">
- <h1>ARCHIVE</h1>
- <div class="subtitle">'982'015</div>
+ <h1 role="heading" aria-label="Current section: Stone Island Archive">ARCHIVE</h1>
+ <div role="heading" class="subtitle" aria-label="1982 to 2015">'982'015</div>
</div>
</div>
- <div id="privacy" class="page">
+ <div id="privacy" role="region" aria-label="Privacy Policy" class="page">
<div class="scroll">
- <h1>PRIVACY POLICY</h1>
+ <h1 aria-label="Current section: Privacy Policy">PRIVACY POLICY</h1>
<div class="content"></div>
</div>
</div>
- <div id="account_terms" class="page">
+
+ <div id="account_terms" role="region" aria-label="My Account Terms and Conditions of Use" class="page">
<div class="scroll">
- <h1>MY ACCOUNT TERMS AND CONDITIONS OF USE</h1>
+ <h1 aria-label="Current section: My Account terms and conditions of use">MY ACCOUNT TERMS AND CONDITIONS OF USE</h1>
<div class="content">
<h2>1. Services</h2>
<p>
@@ -261,21 +255,24 @@
</div>
</div>
</div>
- <div id="terms" class="page">
+
+ <div id="terms" role="region" aria-label="Terms and Conditions" class="page">
<div class="scroll">
- <h1>TERMS AND CONDITIONS</h1>
+ <h1 aria-label="Current section: Terms and conditions">TERMS AND CONDITIONS</h1>
<div class="content"></div>
</div>
</div>
- <div id="returns" class="page">
+
+ <div id="returns" role="region" aria-label="Return Policy" class="page">
<div class="scroll">
- <h1>RETURN POLICY</h1>
+ <h1 aria-label="Current section: Return policy">RETURN POLICY</h1>
<div class="content"></div>
</div>
</div>
- <div id="care" class="page">
+
+ <div id="care" role="region" aria-label="Customer Care" class="page">
<div class="scroll">
- <h1>CUSTOMER CARE</h1>
+ <h1 aria-label="Current section: Customer care">CUSTOMER CARE</h1>
<div class="content"></div>
</div>
</div>
@@ -283,42 +280,42 @@
<!-- STORE ================================================ -->
- <div id="collection">
+ <div id="collection" role="region" aria-label="Store">
<div class="scroll">
- <h1>LOADING...</h1>
+ <h1 aria-label="Current section: Store">LOADING...</h1>
<div class="loader"></div>
<div class="content">
<script type="text/html" class="template">
- <div class="item" data-code="{{code8}}">
- <img src="{{image}}">
+ <div role="link" class="item" data-code="{{code8}}">
+ <img src="{{image}}" alt="{{title}}">
</div>
</script>
</div>
</div>
</div>
- <div id="search">
+ <div id="search" role="search" aria-label="Search">
<div class="scroll">
- <h1>SEARCH</h1>
+ <h1 aria-label="Current section: Search">SEARCH</h1>
<div class="form">
<input type="text" class="q" placeholder="ENTER YOUR SEARCH">
</div>
</div>
</div>
- <div id="product">
+ <div id="product" role="region" aria-label="Product view">
<div class="scroll">
<div class="loader"></div>
- <div id="gallery" class="gallery">
+ <div id="gallery" class="gallery" role="carousel">
<script type="text/html" class="template">
- <div class="item" style="background-image:url({{image}})"></div>
+ <div role="link" class="item" aria-label="{{alt}}" style="background-image:url({{image}})"></div>
</script>
</div>
- <div class="gallery-left"></div>
- <div class="gallery-right"></div>
+ <div role="button" class="gallery-left" aria-label="Scroll gallery left"></div>
+ <div role="button" class="gallery-right" aria-label="Scroll gallery right"></div>
<div class="content">
<div class="product-header">
- <span class="title"></span>
+ <span role="heading" class="title"></span>
</div>
<div class="type-price">
<span class="type"></span>
@@ -327,11 +324,11 @@
<div class="style-share">
<span class="style">
<div class="size-color">
- <span class="size"></span>
- <span class="color"></span>
+ <span role="button" class="size" aria-label="Tap to select size. Current size"></span>
+ <span role="button" class="color" aria-label="Tap to select color. Current color"></span>
</div>
</span>
- <span class="share">SHARE +</span>
+ <span role="button" class="share">SHARE +</span>
</div>
<div class="fit">Fits Large</div>
<div class='fitHeader'></div>
@@ -347,14 +344,14 @@
</div>
</div>
- <div id="closed">
+ <div id="closed" role="region" aria-label="The store is closed">
<div class="closed_store_msg">
<h3>
LOADING THE STORE, PLEASE WAIT
</h3>
<h4>
</h4>
- <div class="website_link">
+ <div role="link" class="website_link">
visit<br>
<b>www.stoneisland.com</b>
</div>
@@ -364,33 +361,38 @@
<!-- ACCOUNT ================================================ -->
- <div id="login">
+ <div id="login" role="region" aria-label="Log In">
<div class="scroll">
- <h1>LOGIN</h1>
+ <h1 aria-label="Current section: Log In">LOGIN</h1>
<div class="form">
<div class="container">
<div class="container-row">
- <input type="email" name="Email" placeholder="EMAIL ADDRESS" required tabindex="1">
- <form><input type="password" name="Password" placeholder="PASSWORD" required tabindex="2"></form>
+ <label for="login_email_address">Email Address</label>
+ <input type="email" id="login_email_address" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="1">
+ <span class='err'></span>
+
+ <label for="login_password">Password</label>
+ <form><input type="password" id="login_password" name="Password" aria-placeholder="PASSWORD" required tabindex="2"></form>
+ <span class='err'></span>
</div>
<div class="container-fill">
<div class="container-message premessage">
- <div class="newuser">New User?</div>
- <div class="forgotpassword">Forgot Password?</div>
+ <div rel="link" class="newuser">New User?</div>
+ <div rel="link" class="forgotpassword">Forgot Password?</div>
</div>
<div class="container-message submessage">
<span class="msg"></span>
</div>
</div>
</div>
- <input type="submit" style="position: absolute; left: -9999px; width: 1px; height: 1px;">
+ <input type="submit" aria-label="Submit form" style="position: absolute; left: -9999px; width: 1px; height: 1px;">
</div>
</div>
</div>
- <div id="logout">
+ <div id="logout" role="region" aria-label="You are now logged out">
<div class="scroll">
- <h1>LOGOUT</h1>
+ <h1 aria-label="Current section: You are now Logged Out">LOGOUT</h1>
<div class="container">
<div class="container-fill">
<span class="container-message msg">
@@ -401,52 +403,71 @@
</div>
</div>
- <div id="signup">
+ <div id="signup" role="region" aria-label="New User. Create an account">
<div class="scroll">
- <h1>NEW USER</h1>
+ <h1 aria-label="Current section: New User. Create an account">NEW USER</h1>
<div class="form">
<div class="container">
<div class="container-row">
- <input type="text" name="Name" placeholder="FIRST NAME" required tabindex="1">
- <input type="text" name="Surname" placeholder="LAST NAME" required tabindex="2">
- <input type="email" name="Email" placeholder="EMAIL ADDRESS" required tabindex="3">
- <input type="email" name="ConfirmEmail" placeholder="CONFIRM EMAIL ADDRESS" required tabindex="4">
+ <label for="signup_name">First Name</label>
+ <input type="text" id="signup_name" name="Name" aria-placeholder="FIRST NAME" required tabindex="1">
+ <span class='err'></span>
+
+ <label for="signup_surname">Last Name</label>
+ <input type="text" id="signup_surname" name="Surname" aria-placeholder="LAST NAME" required tabindex="2">
+ <span class='err'></span>
+
+ <label for="signup_email">Email Address</label>
+ <input type="email" id="signup_email" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="3">
+ <span class='err'></span>
+
+ <label for="signup_confirmemail">Confirm Email Address</label>
+ <input type="email" id="signup_confirmemail" name="ConfirmEmail" aria-placeholder="CONFIRM EMAIL ADDRESS" required tabindex="4">
+ <span class='err'></span>
+
+ <label for="signup_birthday">Birthday (MM/DD/YYYY)</label>
<div class="select-wrapper date-wrapper">
- <span>BIRTHDAY (MM/DD/YYYY)</span>
- <input type="date" name="BirthDay" min="1900-01-01" placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="5">
+ <span></span>
+ <input type="date" id="signup_birthday" name="BirthDay" aria-label="Birthday" min="1900-01-01" aria-placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="5">
</div>
+ <span class='err'></span>
<h2>PASSWORD</h2>
- <input type="password" name="Password" placeholder="PASSWORD (7 CHARACTERS OR MORE)" required tabindex="6">
- <input type="password" name="Password2" placeholder="CONFIRM PASSWORD" required tabindex="7">
+ <label for="signup_password">Password (7 Characters or more)</label>
+ <input type="password" id="signup_password" name="Password" aria-placeholder="PASSWORD (7 CHARACTERS OR MORE)" required tabindex="6">
+ <span class='err'></span>
+
+ <label for="signup_confirm_password">Confirm Password</label>
+ <input type="password" id="signup_confirm_password" name="Password2" aria-placeholder="CONFIRM PASSWORD" required tabindex="7">
+ <span class='err'></span>
</div>
<div class="container-row">
- <div class="checkbox-container ">
+ <div class="checkbox-container">
<div class="checkbox-row">
<div class="checkbox-toggle">
- <input type="checkbox" id="checkbox-data-profiling" name="YooxLetter" value="true" required tabindex="8">
+ <input type="checkbox" id="checkbox-data-profiling" aria-labelledby="checkbox-data-profiling-label" name="YooxLetter" value="true" required tabindex="8">
<label for="checkbox-data-profiling"></label>
</div>
- <label class="checkbox-caption" for="checkbox-data-profiling">
+ <label class="checkbox-caption" for="checkbox-data-profiling" id="checkbox-data-profiling-label">
I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION FOR MARKETING PURPOSES.
</label>
</div>
<div class="checkbox-row">
<div class="checkbox-toggle">
- <input type="checkbox" id="checkbox-shopping-data-profiling" name="DataProfiling" value="true" required tabindex="9">
+ <input type="checkbox" id="checkbox-shopping-data-profiling" aria-labelledby="checkbox-shopping-data-profiling-label" name="DataProfiling" value="true" required tabindex="9">
<label for="checkbox-shopping-data-profiling"></label>
</div>
- <label class="checkbox-caption" for="checkbox-shopping-data-profiling">
+ <label class="checkbox-caption" for="checkbox-shopping-data-profiling" id="checkbox-shopping-data-profiling-label">
I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION TO CUSTOMIZE MY SHOPPING EXPERIENCE BASED ON MY INTERESTS AND HABITS.
</label>
</div>
<div class="checkbox-row">
<div class="checkbox-toggle">
- <input type="checkbox" id="checkbox-shopping-account-terms" name="GdprTerms" value="true" required tabindex="10">
+ <input type="checkbox" id="checkbox-shopping-account-terms" aria-labelledby="checkbox-gdpr-terms-label" name="GdprTerms" value="true" required tabindex="10">
<label for="checkbox-shopping-data-profiling"></label>
</div>
- <label class="checkbox-caption" for="checkbox-shopping-account-terms">
+ <label class="checkbox-caption" for="checkbox-shopping-account-terms" id="checkbox-gdpr-terms-label">
I ACCEPT MY ACCOUNT TERMS AND CONDITIONS OF USE *
</label>
</div>
@@ -465,54 +486,71 @@
</div>
</div>
- <div id="profile">
+ <div id="profile" role="region" aria-label="My Profile">
<div class="scroll">
- <h1>MY PROFILE</h1>
+ <h1 aria-label="Current section: My Profile">MY PROFILE</h1>
<div class="form">
<div class="container">
<div class="container-row">
- <input type="text" name="Name" placeholder="FIRST NAME" required tabindex="1">
- <input type="text" name="Surname" placeholder="LAST NAME" required tabindex="2">
- <input type="email" name="Email" placeholder="EMAIL ADDRESS" required tabindex="3">
+ <label for="profile_name">First Name</label>
+ <input type="text" id="profile_name" name="Name" aria-placeholder="FIRST NAME" required tabindex="1">
+ <span class='err'></span>
+
+ <label for="profile_surname">Last Name</label>
+ <input type="text" id="profile_surname" name="Surname" aria-placeholder="LAST NAME" required tabindex="2">
+ <span class='err'></span>
+
+ <label for="profile_email">Email Address</label>
+ <input type="email" id="profile_email" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="3">
+ <span class='err'></span>
+
+ <label for="profile_birthday">Birthday (MM/DD/YYYY)</label>
<div class="select-wrapper date-wrapper">
- <span>BIRTHDAY (MM/DD/YYYY)</span>
- <input type="date" name="BirthDay" min="1900-01-01" placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="4">
+ <span></span>
+ <input type="date" id="profile_birthday" name="BirthDay" aria-label="Birthday" min="1900-01-01" aria-placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="5">
</div>
+ <span class='err'></span>
<h2>CHANGE PASSWORD</h2>
- <input type="password" name="CurrentPassword" placeholder="CURRENT PASSWORD" required>
- <input type="password" name="NewPassword" placeholder="NEW PASSWORD (7 CHARACTERS OR MORE)" required tabindex="5">
- <div class="container-fill container-fill-condensed">
- <div class="container-message container-message-condensed">
- <span class="msg msg-condensed">
- </span>
- </div>
+ <label for="profile_password">Current Password</label>
+ <input type="password" id="profile_password" name="CurrentPassword" aria-placeholder="CURRENT PASSWORD" required tabindex="6">
+ <span class='err'></span>
+
+ <label for="profile_confirm_password">New Password (7 characters or more)</label>
+ <input type="password" id="profile_confirm_password" name="NewPassword" aria-placeholder="NEW PASSWORD (7 CHARACTERS OR MORE)" required tabindex="7">
+ <span class='err'></span>
+ </div>
+
+ <div class="container-fill container-fill-condensed">
+ <div class="container-message container-message-condensed">
+ <span class="msg msg-condensed">
+ </span>
</div>
- <div class="container-row">
- <div class="checkbox-container">
- <div class="checkbox-row">
- <div class="checkbox-toggle">
- <input type="checkbox" id="checkbox-data-profiling-profile" name="YooxLetter" value="true" required tabindex="7">
- <label for="checkbox-data-profiling-profile"></label>
- </div>
- <label class="checkbox-caption" for="checkbox-data-profiling-profile">
- I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION FOR MARKETING PURPOSES.
- </label>
- </div>
- <div class="checkbox-row">
- <div class="checkbox-toggle">
- <input type="checkbox" id="checkbox-shopping-data-profiling-profile" name="DataProfiling" value="true" required tabindex="8">
- <label for="checkbox-shopping-data-profiling-profile"></label>
- </div>
- <label class="checkbox-caption" for="checkbox-shopping-data-profiling-profile">
- I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION TO CUSTOMIZE MY SHOPPING EXPERIENCE BASED ON MY INTERESTS AND HABITS.
- </label>
+ </div>
+ <div class="container-row">
+ <div class="checkbox-container">
+ <div class="checkbox-row">
+ <div class="checkbox-toggle">
+ <input type="checkbox" id="checkbox-data-profiling-profile" aria-labelledby="yoox-letter-checkbox" name="YooxLetter" value="true" required tabindex="7">
+ <label for="checkbox-data-profiling-profile"></label>
</div>
- <div class="privacy-msg">
- Personal data will be electronically processed by SPORTSWEAR COMPANY and YOOX NET-A-PORTER GROUP in order to complete your request. Please note that you are responsible for third party data that you disclose to SPORTSWEAR COMPANY and YOOX NET-A-PORTER GROUP.
- <br>
- Consult our <a href="#/page/privacy">PRIVACY POLICY</a> for further information.
+ <label class="checkbox-caption" for="checkbox-data-profiling-profile" id="yoox-letter-checkbox">
+ I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION FOR MARKETING PURPOSES.
+ </label>
+ </div>
+ <div class="checkbox-row">
+ <div class="checkbox-toggle">
+ <input type="checkbox" id="checkbox-shopping-data-profiling-profile" aria-labelledby="yoox-data-profiling-checkbox" name="DataProfiling" value="true" required tabindex="8">
+ <label for="checkbox-shopping-data-profiling-profile"></label>
</div>
+ <label class="checkbox-caption" for="checkbox-shopping-data-profiling-profile" id="yoox-data-profiling-checkbox">
+ I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION TO CUSTOMIZE MY SHOPPING EXPERIENCE BASED ON MY INTERESTS AND HABITS.
+ </label>
+ </div>
+ <div class="privacy-msg">
+ Personal data will be electronically processed by SPORTSWEAR COMPANY and YOOX NET-A-PORTER GROUP in order to complete your request. Please note that you are responsible for third party data that you disclose to SPORTSWEAR COMPANY and YOOX NET-A-PORTER GROUP.
+ <br>
+ Consult our <a href="#/page/privacy">PRIVACY POLICY</a> for further information.
</div>
</div>
</div>
@@ -520,11 +558,10 @@
</div>
</div>
</div>
-
- <div id="shipping">
+ <div id="shipping" role="region" aria-label="Address Book">
<div class="scroll">
- <h1>ADDRESS BOOK</h1>
+ <h1 aria-label="Current section: Your address book">ADDRESS BOOK</h1>
<div class="form">
<div class="container">
<div class="container-row">
@@ -537,7 +574,7 @@
information will always remain private
</span>
</div>
- <div class="privacy-msg">
+ <div rel="link" class="privacy-msg">
Consult our <u>PRIVACY POLICY</u> for further information.
</div>
</div>
@@ -546,9 +583,9 @@
</div>
</div>
- <div id="payment">
+ <div id="payment" role="region" aria-label="My Card">
<div class="scroll">
- <h1>MY CARD</h1>
+ <h1 aria-label="Current section: My Card">MY CARD</h1>
<div class="form">
<div class="container">
<div class="container-row">
@@ -562,7 +599,7 @@
information will always remain private
</span>
</div>
- <div class="privacy-msg">
+ <div rel="link" class="privacy-msg">
Consult our <u>PRIVACY POLICY</u> for further information.
</div>
</div>
@@ -571,9 +608,9 @@
</div>
</div>
- <div id="settings">
+ <div id="settings" role="region" aria-label="Notifications">
<div class="scroll">
- <h1>NOTIFICATIONS</h1>
+ <h1 aria-label="Current section: Notifications">NOTIFICATIONS</h1>
<div class="form">
<div class="toggle-container">
<div class="toggle-row">
@@ -582,7 +619,7 @@
Receive notifications for Store
</div>
<div class="toggle">
- <input type="checkbox" id="store-notifications" name="store" class="switch">
+ <input type="checkbox" aria-label="Receive notifications for Store" id="store-notifications" name="store" class="switch">
<label for="store-notifications"></label>
</div>
</div>
@@ -592,7 +629,7 @@
Receive notifications for Hub
</div>
<div class="toggle">
- <input type="checkbox" id="hub-notifications" name="hub" class="switch">
+ <input type="checkbox" aria-label="Receive notifications for Hub" id="hub-notifications" name="hub" class="switch">
<label for="hub-notifications"></label>
</div>
</div>
@@ -601,9 +638,9 @@
</div>
</div>
- <div id="orders">
+ <div id="orders" role="region" aria-label="My Orders">
<div class="scroll">
- <h1>MY ORDERS</h1>
+ <h1 aria-label="Current section: My orders">MY ORDERS</h1>
<div id="order_list">
<div class="list"></div>
<div class="empty">You have no orders.</div>
@@ -681,12 +718,12 @@
<!-- CART ================================================ -->
- <div id="cart">
- <h1>
- <span class="full_msg">
+ <div id="cart" role="region" aria-label="Your Cart">
+ <h1 role="presentation">
+ <span class="full_msg" role="heading" aria-label="Current section: Your cart">
YOUR CART / <span class="itemcount"></span>
</span>
- <span class="empty_msg">
+ <span class="empty_msg" role="heading" aria-label="Current section: Your cart is empty">
YOUR CART IS EMPTY
</span>
</h1>
@@ -694,10 +731,10 @@
<div class="steps">
<span class="summary_step">SUMMARY</span>
<span class="shipping_step">SHIPPING</span>
- <span class="payment_step">BILLING</span>
+ <span class="payment_step">PAYMENT</span>
</div>
- <div id="cart_summary">
+ <div id="cart_summary" role="region" aria-label="Cart Summary">
<div class="scroll">
<div class="summary-container container">
<div class="container-row">
@@ -705,20 +742,20 @@
<div class="rows">
<script type="text/html" class="template">
<div class="cart_item_image">
- <img src="{{image}}">
+ <a href="#/store/{{code8}}" aria-label="{{cleantitle}}"><img src="{{image}}"></a>
</div>
<div class="cart_item_info">
- <span class="sku">{{sku}}</span>
- <span class="title">{{title}}</span>
- <span class="type">{{type}}</span>
+ <span class="sku" aria-label="SKU">{{sku}}</span>
+ <span class="title" aria-label="Product name: {{cleantitle}}">{{title}}</span>
+ <span class="type" aria-label="Product type">{{type}}</span>
<div class="meta">
- <div class="meta-size"><b>SIZE:</b> {{size}}</div>
- <div class="meta-color"><b>COLOR:</b> {{color}}</div>
- <div class="meta-quantity"><b>QUANTITY:</b> {{quantity}}</div>
+ <div class="meta-size" aria-label="Size"><b>SIZE:</b> {{size}}</div>
+ <div class="meta-color" aria-label="Color"><b>COLOR:</b> {{color}}</div>
+ <div class="meta-quantity" aria-label="Quantity"><b>QUANTITY:</b> {{quantity}}</div>
</div>
</div>
<div class="cart_item_price">
- <span class="remove"></span>
+ <span class="remove" aria-label="Remove item from your cart. Item to be removed: {{cleantitle}}"></span>
<span class="price">{{price}}</span>
</div>
</script>
@@ -752,7 +789,7 @@
</div>
</div>
- <div id="cart_shipping">
+ <div id="cart_shipping" role="region" aria-label="Cart Shipping">
<div class="scroll">
<div class="form">
<div class="dropdown-wrapper">
@@ -810,9 +847,11 @@
information will always remain private
</span>
</div>
- <div class="privacy-msg">
- Consult our <u>PRIVACY POLICY</u> for further information.
- </div>
+ <a href="#/page/privacy">
+ <div class="privacy-msg">
+ Consult our <u>PRIVACY POLICY</u> for further information.
+ </div>
+ </a>
</div>
</div>
@@ -820,7 +859,7 @@
</div>
</div>
- <div id="cart_payment">
+ <div id="cart_payment" role="region" aria-label="Cart Payment">
<div class="scroll">
<div class="form">
@@ -877,7 +916,7 @@
<script type="text/html" class="cc_template">
<div class="checkbox-row">
<div class="checkbox-toggle">
- <input id="cc-checkbox-{{id}}" type="radio" name="CCId" value="{{id}}" {{checked}}>
+ <input id="cc-checkbox-{{id}}" aria-label="Select this credit card" type="radio" name="CCId" value="{{id}}" {{checked}}>
<label for="cc-checkbox-{{id}}"></label>
</div>
<label class="checkbox-caption" for="cc-checkbox-{{id}}">
@@ -903,20 +942,20 @@
information will always remain private
</span>
</div>
- <div class="privacy-msg">
- Consult our <u>PRIVACY POLICY</u> for further information.
- </div>
+ <a class='privacy-link'> href="#/page/privacy">
+ <div class="privacy-msg">
+ Consult our <u>PRIVACY POLICY</u> for further information.
+ </div>
+ </a>
</div>
</div>
- <br><br><br><br>
-
</div>
</div>
</div>
- <div id="cart_confirm">
+ <div id="cart_confirm" role="region" aria-label="Confirm your order">
<div class="scroll">
- <h1>CONFIRM</h1>
+ <h1 aria-label="Current section: Confirm your cart">CONFIRM</h1>
<div class="order_section">
<h2>ORDER SUMMARY</h2>
@@ -997,11 +1036,17 @@
</div>
+ <div id="footer" role="menubar" aria-label="Footer">
+ <!-- 'Cancel' i think needs to go BACK in the navigation.. rather than jumping to the home screen -->
+ <div role="button" class="cancel">CANCEL</div>
+ <div role="button" class="ok">OK</div>
+ </div>
+
<div id="curtain">
<div class="loader"></div>
</div>
- <div class="modal" id="consent_modal">
+ <div class="modal" id="consent_modal" role="modal" aria-label="Please accept the new terms">
YOUR MY ACCOUNT
<br><br>
We have improved the My Account Terms and Conditions of Use.
@@ -1017,6 +1062,7 @@
</label>
</div>
</div>
+ <br><br>
For more information, please consult our
<a href="#/page/privacy">Privacy Policy</a> or visit
<a href="#" id="care-link">Customer Care</a>.
@@ -1030,22 +1076,31 @@
</div>
<div id="selector">
- <div class="options">
+ <div class="options" role="select">
<script type="text/html" class="template">
- <div data-id="{{id}}">{{label}}</div>
+ <div aria-label="Pick {{label}}" data-id="{{id}}">{{label}}</div>
</script>
</div>
</div>
</div>
+<!-- Forms -->
+
<script type="text/html" id="creditcard_template">
- <input type="number" name="Number" placeholder="CREDIT CARD NUMBER" required>
+ <label for="creditcard_id_{{_id}}">Credit Card Number</label>
+ <input type="number" id="creditcard_id_{{_id}}" name="Number" aria-placeholder="CREDIT CARD NUMBER" required>
+ <span class='err'></span>
+
<div class="half-input">
+ <label for="cc_expiration_month_{{_id}}">EXPIRATION MONTH</label>
+ <label for="cc_expiration_year_{{_id}}">EXPIRATION YEAR</label>
+ </div>
+ <div class="half-input">
<div class="select-wrapper">
- <span>EXPIRATION MONTH</span>
- <select name="ExpirationMonth">
+ <span></span>
+ <select name="ExpirationMonth" id="cc_expiration_month_{{_id}}">
<option value="NONE">EXPIRATION MONTH</option>
<option value="01">01</option>
<option value="02">02</option>
@@ -1062,10 +1117,9 @@
</select>
</div>
<div class="select-wrapper">
- <span>EXPIRATION YEAR</span>
- <select name="ExpirationYear">
+ <span></span>
+ <select name="ExpirationYear" id="cc_expiration_year_{{_id}}">
<option value="NONE">EXPIRATION YEAR</option>
- <option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
<option value="2021">2021</option>
@@ -1081,25 +1135,50 @@
</select>
</div>
</div>
- <input type="number" name="Cvv" placeholder="SECURITY CODE" required>
+ <label for="cc_cvv_{{_id}}">Security Code</label>
+ <input type="number" id="cc_cvv_{{_id}}" name="Cvv" aria-placeholder="SECURITY CODE" required>
+ <span class='err'></span>
</script>
<script type="text/html" id="address_template">
- <input type="text" name="Name" placeholder="First Name">
- <input type="text" name="Surname" placeholder="Last Name">
- <input type="text" name="Address1" placeholder="Address Line 1">
- <input type="text" name="Address2" placeholder="Address Line 2">
+ <label for="address_name_{{_id}}">First Name</label>
+ <input type="text" id="address_name_{{_id}}" name="Name" aria-placeholder="First Name">
+ <span class="err"></span>
+
+ <label for="address_surname_{{_id}}">Last Name</label>
+ <input type="text" id="address_surname_{{_id}}" name="Surname" aria-placeholder="Last Name">
+ <span class="err"></span>
+
+ <label for="address_address1_{{_id}}">Address line 1</label>
+ <input type="text" id="address_address1_{{_id}}" name="Address1" aria-placeholder="Address Line 1">
+ <span class="err"></span>
+
+ <label for="address_address2_{{_id}}">Address line 2</label>
+ <input type="text" id="address_address2_{{_id}}" name="Address2" aria-placeholder="Address Line 2">
+ <span class="err"></span>
+
+ <div class="half-input">
+ <label for="address_city_{{_id}}">City</label>
+ <label for="address_state_{{_id}}">State</label>
+ </div>
+
<div class="half-input">
- <input type="text" name="City" placeholder="City">
+ <input type="text" id="address_city_{{_id}}" name="City" aria-placeholder="City">
<div class="select-wrapper">
- <span>STATE</span>
- <select name="Province">
+ <span></span>
+ <select id="address_state_{{_id}}" name="Province">
{{PROVINCES}}
</select>
</div>
</div>
+
<div class="half-input">
- <input type="text" name="ZipCode" placeholder="ZIP" required>
+ <label for="address_zip_{{_id}}">Zip</label>
+ <label>Country</label>
+ </div>
+
+ <div class="half-input">
+ <input type="text" id="address_zip_{{_id}}" name="ZipCode" aria-placeholder="ZIP" required>
<div class="country-wrapper-static">
<span class="country-label">UNITED STATES</span>
<!--
@@ -1109,7 +1188,10 @@
-->
</div>
</div>
- <input type="number" name="Phone" placeholder="PHONE NUMBER">
+
+ <label for="address_phone_{{_id}}">Phone Number</label>
+ <input type="number" id="address_phone_{{_id}}" name="Phone" aria-placeholder="PHONE NUMBER">
+ <span class="err"></span>
<!--
<div class="checkbox-container save_as_default">
<div class="checkbox-row">
@@ -1227,6 +1309,7 @@
<script src="js/lib/etc/geo.js"></script>
<script src="js/lib/etc/sim.js"></script>
<script src="js/lib/etc/backup_db.js"></script>
+<script src="js/lib/etc/accessibility.js"></script>
<script src="js/lib/view/View.js"></script>
<script src="js/lib/view/Router.js"></script>
diff --git a/StoneIsland/platforms/android/assets/www/js/index.js b/StoneIsland/platforms/android/assets/www/js/index.js
index a8caa2e5..ed82a820 100755
--- a/StoneIsland/platforms/android/assets/www/js/index.js
+++ b/StoneIsland/platforms/android/assets/www/js/index.js
@@ -18,6 +18,9 @@ var app = (function(){
app.iscroll_options = {
mouseWheel: true,
scrollbars: true,
+ disablePointer: is_android ? true : false, // important to disable the pointer events that causes the issues
+ disableTouch: false, // false if you want the slider to be usable with touch devices
+ disableMouse: false // false if you want the slider to be usable with a mouse (desktop)
}
if (window.cordova) {
@@ -90,8 +93,8 @@ var app = (function(){
}
app.api_ready = function(){
- if (is_iphone_x) {
- StatusBar.hide()
+ if (is_iphone_x && 'StatusBar' in window) {
+ window.StatusBar.hide()
}
app.view = null
diff --git a/StoneIsland/platforms/android/assets/www/js/lib/account/AccountView.js b/StoneIsland/platforms/android/assets/www/js/lib/account/AccountView.js
index 8ac7c193..af035f6a 100755
--- a/StoneIsland/platforms/android/assets/www/js/lib/account/AccountView.js
+++ b/StoneIsland/platforms/android/assets/www/js/lib/account/AccountView.js
@@ -74,7 +74,7 @@ var AccountView = View.extend({
},
populateCreditCards: function(data, cb){
- console.log("populate ccs:", data.CreditCards)
+ // console.log("populate ccs:", data.CreditCards)
this.ccs = data.CreditCards
this.ccLookup = {}
if (! data.CreditCards || ! data.CreditCards.length) {
diff --git a/StoneIsland/platforms/android/assets/www/js/lib/blogs/ArchiveView.js b/StoneIsland/platforms/android/assets/www/js/lib/blogs/ArchiveView.js
index 12aaf7de..0d769e95 100755
--- a/StoneIsland/platforms/android/assets/www/js/lib/blogs/ArchiveView.js
+++ b/StoneIsland/platforms/android/assets/www/js/lib/blogs/ArchiveView.js
@@ -21,7 +21,6 @@ var ArchiveView = ScrollableView.extend({
this.scroller = new IScroll('#archive .scroll', app.iscroll_options)
this.$subtitle = this.$('.subtitle')
this.subtitle_html = this.$subtitle.html()
-
},
back: function(){
diff --git a/StoneIsland/platforms/android/assets/www/js/lib/blogs/HubView.js b/StoneIsland/platforms/android/assets/www/js/lib/blogs/HubView.js
index b072a887..c4ebd716 100755
--- a/StoneIsland/platforms/android/assets/www/js/lib/blogs/HubView.js
+++ b/StoneIsland/platforms/android/assets/www/js/lib/blogs/HubView.js
@@ -57,6 +57,8 @@ var HubView = ScrollableView.extend({
.replace(/{{date}}/, moment(row.date).format("MM.DD.YYYY"))
.replace(/{{title}}/, row.title)
.replace(/{{subtitle}}/, row.subtitle)
+ .replace(/{{cleantitle}}/, stonewash(row.title))
+ .replace(/{{cleansubtitle}}/, stonewash(row.subtitle))
.replace(/{{link}}/, row.link)
.replace(/{{body}}/, row.body.replace(/\n/g, "<br>"))
var $t = $(t)
@@ -71,6 +73,7 @@ var HubView = ScrollableView.extend({
row.image.forEach(function(img){
var el = document.createElement("div")
el.style.backgroundImage = "url(" + img.uri + ")"
+ el.setAttribute('aria-label', img.caption)
el.className = "item"
$gallery.append(el)
})
@@ -107,6 +110,8 @@ var HubView = ScrollableView.extend({
play.className = "play"
$(".gallery-" + row.id).append(play)
$(".gallery-" + row.id).addClass("gallery-video-post")
+ $(".gallery-" + row.id).attr('role', 'link')
+ $(".gallery-" + row.id).attr('aria-label', stonewash(row.title) + ". Watch the video on Youtube")
if (! row.image) {
var url = row.link
var ytid = (url.match(/v=([-_a-zA-Z0-9]{11})/i) || url.match(/youtu.be\/([-_a-zA-Z0-9]{11})/i) || url.match(/embed\/([-_a-zA-Z0-9]{11})/i))[1].split('&')[0];
@@ -125,6 +130,7 @@ var HubView = ScrollableView.extend({
store_link: function(){
app.router.go("store")
},
+
play_video: function(e){
var row = $(e.currentTarget).closest('.gallery-video-post').data("row")
window.open(row.link, '_system')
@@ -142,7 +148,9 @@ var HubView = ScrollableView.extend({
share: function(e){
var title = $(e.currentTarget).parent().find(".title").text()
console.log("share", title)
- window.plugins.socialsharing.share(title, null, null, "http://deeplink.me/www.stoneisland.com/hub" )
+ if (window.plugins && window.plugins.socialsharing) {
+ window.plugins.socialsharing.share(title, null, null, "http://deeplink.me/www.stoneisland.com/hub" )
+ }
},
})
@@ -169,7 +177,7 @@ var HubLoader = (function(){
if (item.image && item.image.length) {
loader = new Loader (HubLoader.build)
images = item.image.map(function(img){
- return img.uri.replace("http:","https:")
+ return img.uri.replace("http:", "https:")
}).filter(function(img){
return img.uri
})
diff --git a/StoneIsland/platforms/android/assets/www/js/lib/blogs/StoryView.js b/StoneIsland/platforms/android/assets/www/js/lib/blogs/StoryView.js
index 5a7a56d1..9ba17343 100755
--- a/StoneIsland/platforms/android/assets/www/js/lib/blogs/StoryView.js
+++ b/StoneIsland/platforms/android/assets/www/js/lib/blogs/StoryView.js
@@ -67,6 +67,7 @@ var StoryView = ScrollableView.extend({
this.$img.stop().fadeTo(110,0.65, function() {
$replace.attr("src", section.image.uri)
+ $replace.attr("alt", section.image.caption)
}).fadeTo(130,1)
}
diff --git a/StoneIsland/platforms/android/assets/www/js/lib/cart/CartSummary.js b/StoneIsland/platforms/android/assets/www/js/lib/cart/CartSummary.js
index 9b5da7b7..bf150791 100755
--- a/StoneIsland/platforms/android/assets/www/js/lib/cart/CartSummary.js
+++ b/StoneIsland/platforms/android/assets/www/js/lib/cart/CartSummary.js
@@ -75,7 +75,6 @@ var CartSummary = ScrollableView.extend({
this.$rows.append($el)
app.product.find(code, function(data, details){
// console.log(data, details)
-
var descriptions = app.product.get_descriptions( details )
// console.log(descriptions)
@@ -110,8 +109,10 @@ var CartSummary = ScrollableView.extend({
var t = this.template
.replace(/{{image}}/, sdk.image(item['Code10'], '11_f'))
- .replace(/{{sku}}/, num)
- .replace(/{{title}}/, title)
+ .replace(/{{sku}}/g, num)
+ .replace(/{{code8}}/g, data['Code8'])
+ .replace(/{{title}}/g, title)
+ .replace(/{{cleantitle}}/g, stonewash(title))
.replace(/{{type}}/, type)
.replace(/{{size}}/, size_name)
.replace(/{{color}}/, color_name)
diff --git a/StoneIsland/platforms/android/assets/www/js/lib/etc/accessibility.js b/StoneIsland/platforms/android/assets/www/js/lib/etc/accessibility.js
new file mode 100644
index 00000000..614c3796
--- /dev/null
+++ b/StoneIsland/platforms/android/assets/www/js/lib/etc/accessibility.js
@@ -0,0 +1,9 @@
+$(function(){
+ $("h1").each(function(){
+ this['aria-label'] = 'Section title is ' + this.innerText
+ })
+})
+
+function stonewash (s) {
+ return s.replace(/'0/g, '20').replace(/_/g, ' ')
+} \ No newline at end of file
diff --git a/StoneIsland/platforms/android/assets/www/js/lib/nav/AddressView.js b/StoneIsland/platforms/android/assets/www/js/lib/nav/AddressView.js
index 9e0c49b6..fd0fa59d 100755
--- a/StoneIsland/platforms/android/assets/www/js/lib/nav/AddressView.js
+++ b/StoneIsland/platforms/android/assets/www/js/lib/nav/AddressView.js
@@ -1,4 +1,6 @@
+var AddressViewID = Math.round(Date.now() % 1000)
+
var AddressView = SerializableView.extend({
template: $("#address_template").html(),
@@ -14,7 +16,7 @@ var AddressView = SerializableView.extend({
this.parent = opt.parent
this.checkPhone = 'checkPhone' in opt ? opt.checkPhone : true
this.setElement( this.parent.$(".address") )
- this.$el.html(this.template)
+ this.$el.html(this.template.replace(/{{_id}}/g, AddressViewID++))
},
populate: function(data){
@@ -34,12 +36,15 @@ var AddressView = SerializableView.extend({
"Address1": "Please enter your street address.",
"City": "Please enter your city.",
"ZipCode": "Please enter your zip code.",
+ "Phone": "Please enter your phone number.",
},
validate_fields: function(data, errors){
if (this.disabled) { return }
if (this.checkPhone) {
- var phone_number = data.Phone ? data.Phone.replace(/[^0-9]/g, "") : ""
+ var phone_number = data.Phone ? String(data.Phone).replace(/[^0-9]/g, "").replace(/^[01]+/, '') : ""
+ data.Phone = phone_number
+ this.$('[name=Phone]').val(phone_number)
var phone_length = phone_number.length
if (phone_length === 0 || ! data.Phone) {
errors.push([ "Phone", "Please enter your phone number." ])
@@ -50,10 +55,10 @@ var AddressView = SerializableView.extend({
else if (phone_length > 10) {
errors.push([ "Phone", "International phone numbers are not accepted." ])
}
- else if (data.Phone[0] === '+') {
+ else if (phone_number.charAt(0) === '+') {
errors.push([ "Phone", "Please enter a valid 10 digit US/Canada phone number. International phone numbers are not accepted." ])
}
- else if (phone_number[0] === '1') {
+ else if (phone_number.charAt(0) === '1') {
errors.push([ "Phone", "Please enter a valid 10 digit US/Canada phone number. International phone numbers are not accepted." ])
}
}
@@ -81,7 +86,10 @@ var AddressView = SerializableView.extend({
},
scroll_up_to_phone: function(e){
- app.view.scroller && app.view.scroller.scrollTo(0, -$(e.currentTarget).position().top)
+ var position = $(e.currentTarget).prev('label').position()
+ if (app.view.scroller && position) {
+ app.view.scroller.scrollTo(0, -position.top)
+ }
},
})
diff --git a/StoneIsland/platforms/android/assets/www/js/lib/nav/CreditCardView.js b/StoneIsland/platforms/android/assets/www/js/lib/nav/CreditCardView.js
index 63784618..af53d964 100755
--- a/StoneIsland/platforms/android/assets/www/js/lib/nav/CreditCardView.js
+++ b/StoneIsland/platforms/android/assets/www/js/lib/nav/CreditCardView.js
@@ -1,4 +1,6 @@
+var CreditCardViewID = Math.round(Date.now() % 1000)
+
var CreditCardView = SerializableView.extend({
template: $("#creditcard_template").html(),
@@ -13,7 +15,7 @@ var CreditCardView = SerializableView.extend({
initialize: function(opt){
this.parent = opt.parent
this.setElement( this.parent.$(".cc") )
- this.$el.html(this.template)
+ this.$el.html(this.template.replace(/{{_id}}/g, CreditCardViewID++))
this.$number = this.$("[name=Number]")
this.$number.validateCreditCard(this.updateCard.bind(this), this.cardOptions)
diff --git a/StoneIsland/platforms/android/assets/www/js/lib/products/CollectionView.js b/StoneIsland/platforms/android/assets/www/js/lib/products/CollectionView.js
index 4674fc18..b7af235a 100755
--- a/StoneIsland/platforms/android/assets/www/js/lib/products/CollectionView.js
+++ b/StoneIsland/platforms/android/assets/www/js/lib/products/CollectionView.js
@@ -196,6 +196,7 @@ var CollectionView = ScrollableView.extend({
this.items[ item['Code8'] ] = item
var t = this.template.replace(/{{image}}/, sdk.image(item['DefaultCode10'], is_single_product ? '13_f' : '11_f'))
.replace(/{{code8}}/, item['Code8'])
+ .replace(/{{title}}/, stonewash(item['ModelNames']))
var $t = $(t)
if (app.store.ShowProductNameOnCollectionPage) {
var $title = $("<span>")
@@ -217,6 +218,7 @@ var CollectionView = ScrollableView.extend({
setCollectionName: function(name){
this.collectionName = name
this.$title.html(this.collectionName)
+ this.$title.attr('aria-label', stonewash(this.collectionName))
},
// filter by department
diff --git a/StoneIsland/platforms/android/assets/www/js/lib/products/GalleryView.js b/StoneIsland/platforms/android/assets/www/js/lib/products/GalleryView.js
index 0acd48c5..d6f5723c 100755
--- a/StoneIsland/platforms/android/assets/www/js/lib/products/GalleryView.js
+++ b/StoneIsland/platforms/android/assets/www/js/lib/products/GalleryView.js
@@ -39,7 +39,9 @@ var GalleryView = View.extend({
Object.keys(valid_styles).sort(sort_image_styles).forEach(function(style){
var id = valid_styles[style] + "_" + style
- var t = this.template.replace(/{{image}}/, sdk.image(code, id))
+ var t = this.template
+ .replace(/{{image}}/, sdk.image(code, id))
+ .replace(/{{alt}}/, YOOX_IMAGE_STYLE_LABELS[style] || "Alternate view")
this.$el.append(t)
}.bind(this))
@@ -79,5 +81,8 @@ var GalleryView = View.extend({
})
var YOOX_IMAGE_STYLE_ORDER = "ZZZ f r d e a b c g l".split(" ")
-
+var YOOX_IMAGE_STYLE_LABELS = {
+ f: 'Front view',
+ r: 'Rear view',
+}
function sort_image_styles (b,a){ return (YOOX_IMAGE_STYLE_ORDER.indexOf(b)) - (YOOX_IMAGE_STYLE_ORDER.indexOf(a)) } \ No newline at end of file
diff --git a/StoneIsland/platforms/android/assets/www/js/lib/products/ProductView.js b/StoneIsland/platforms/android/assets/www/js/lib/products/ProductView.js
index 3bcf5ee4..c47dfddd 100755
--- a/StoneIsland/platforms/android/assets/www/js/lib/products/ProductView.js
+++ b/StoneIsland/platforms/android/assets/www/js/lib/products/ProductView.js
@@ -434,7 +434,9 @@ var ProductView = ScrollableView.extend({
},
share: function(){
- window.plugins.socialsharing.share( this.item['ModelNames'], null, null, "http://deeplink.me/www.stoneisland.com/store/" + this.code)
+ if (window.plugins && 'socialsharing' in window.plugins) {
+ window.plugins.socialsharing.share( this.item['ModelNames'], null, null, "http://deeplink.me/www.stoneisland.com/store/" + this.code)
+ }
},
})
diff --git a/StoneIsland/platforms/android/assets/www/js/lib/products/Selector.js b/StoneIsland/platforms/android/assets/www/js/lib/products/Selector.js
index 9c1109f6..e3376a4d 100755
--- a/StoneIsland/platforms/android/assets/www/js/lib/products/Selector.js
+++ b/StoneIsland/platforms/android/assets/www/js/lib/products/Selector.js
@@ -21,7 +21,7 @@ var Selector = View.extend({
options.forEach(function(opt){
this.lookup[String(opt.id)] = opt
var t = this.template.replace(/{{id}}/, opt.id)
- .replace(/{{label}}/, opt.label)
+ .replace(/{{label}}/g, opt.label)
this.$options.append(t)
}.bind(this))
this.$el.show()
diff --git a/StoneIsland/platforms/android/assets/www/js/lib/view/Serializable.js b/StoneIsland/platforms/android/assets/www/js/lib/view/Serializable.js
index 4155f102..3181fddd 100755
--- a/StoneIsland/platforms/android/assets/www/js/lib/view/Serializable.js
+++ b/StoneIsland/platforms/android/assets/www/js/lib/view/Serializable.js
@@ -105,6 +105,7 @@ var SerializableView = View.extend({
console.log(errors)
var msgs = []
this.$('.error_hilite').removeClass('error_hilite')
+ this.$('.err').html('')
errors.forEach(function(e, i){
// if (i > 0) { return }
if (e[0]) {
@@ -112,13 +113,15 @@ var SerializableView = View.extend({
var el = $el[0]
if (el && el.nodeName === 'SELECT') {
$el.parent().addClass('error_hilite')
+ $el.parent().next('.err').html(e[1])
} else {
$el.addClass('error_hilite')
+ $el.next('.err').html(e[1])
}
}
- msgs.push(e[1])
+ // msgs.push(e[1])
}.bind(this))
- this.$msg.html(msgs.join("<br>"))
+ // this.$msg.html(msgs.join("<br>"))
this.$msg.addClass('alert-notice')
},
diff --git a/StoneIsland/platforms/android/assets/www/js/vendor/iscroll-5.1.3.js b/StoneIsland/platforms/android/assets/www/js/vendor/iscroll-5.1.3.js
new file mode 100755
index 00000000..be5e46e8
--- /dev/null
+++ b/StoneIsland/platforms/android/assets/www/js/vendor/iscroll-5.1.3.js
@@ -0,0 +1,2011 @@
+/*! iScroll v5.1.3 ~ (c) 2008-2014 Matteo Spinelli ~ http://cubiq.org/license */
+(function (window, document, Math) {
+var rAF = window.requestAnimationFrame ||
+ window.webkitRequestAnimationFrame ||
+ window.mozRequestAnimationFrame ||
+ window.oRequestAnimationFrame ||
+ window.msRequestAnimationFrame ||
+ function (callback) { window.setTimeout(callback, 1000 / 60); };
+
+var utils = (function () {
+ var me = {};
+
+ var _elementStyle = document.createElement('div').style;
+ var _vendor = (function () {
+ var vendors = ['t', 'webkitT', 'MozT', 'msT', 'OT'],
+ transform,
+ i = 0,
+ l = vendors.length;
+
+ for ( ; i < l; i++ ) {
+ transform = vendors[i] + 'ransform';
+ if ( transform in _elementStyle ) return vendors[i].substr(0, vendors[i].length-1);
+ }
+
+ return false;
+ })();
+
+ function _prefixStyle (style) {
+ if ( _vendor === false ) return false;
+ if ( _vendor === '' ) return style;
+ return _vendor + style.charAt(0).toUpperCase() + style.substr(1);
+ }
+
+ me.getTime = Date.now || function getTime () { return new Date().getTime(); };
+
+ me.extend = function (target, obj) {
+ for ( var i in obj ) {
+ target[i] = obj[i];
+ }
+ };
+
+ me.addEvent = function (el, type, fn, capture) {
+ el.addEventListener(type, fn, !!capture);
+ };
+
+ me.removeEvent = function (el, type, fn, capture) {
+ el.removeEventListener(type, fn, !!capture);
+ };
+
+ me.prefixPointerEvent = function (pointerEvent) {
+ return window.MSPointerEvent ?
+ 'MSPointer' + pointerEvent.charAt(9).toUpperCase() + pointerEvent.substr(10):
+ pointerEvent;
+ };
+
+ me.momentum = function (current, start, time, lowerMargin, wrapperSize, deceleration) {
+ var distance = current - start,
+ speed = Math.abs(distance) / time,
+ destination,
+ duration;
+
+ deceleration = deceleration === undefined ? 0.0006 : deceleration;
+
+ destination = current + ( speed * speed ) / ( 2 * deceleration ) * ( distance < 0 ? -1 : 1 );
+ duration = speed / deceleration;
+
+ if ( destination < lowerMargin ) {
+ destination = wrapperSize ? lowerMargin - ( wrapperSize / 2.5 * ( speed / 8 ) ) : lowerMargin;
+ distance = Math.abs(destination - current);
+ duration = distance / speed;
+ } else if ( destination > 0 ) {
+ destination = wrapperSize ? wrapperSize / 2.5 * ( speed / 8 ) : 0;
+ distance = Math.abs(current) + destination;
+ duration = distance / speed;
+ }
+
+ return {
+ destination: Math.round(destination),
+ duration: duration
+ };
+ };
+
+ var _transform = _prefixStyle('transform');
+
+ me.extend(me, {
+ hasTransform: _transform !== false,
+ hasPerspective: _prefixStyle('perspective') in _elementStyle,
+ hasTouch: 'ontouchstart' in window,
+ hasPointer: window.PointerEvent || window.MSPointerEvent, // IE10 is prefixed
+ hasTransition: _prefixStyle('transition') in _elementStyle
+ });
+
+ // This should find all Android browsers lower than build 535.19 (both stock browser and webview)
+ me.isBadAndroid = /Android /.test(window.navigator.appVersion) && !(/Chrome\/\d/.test(window.navigator.appVersion));
+
+ me.extend(me.style = {}, {
+ transform: _transform,
+ transitionTimingFunction: _prefixStyle('transitionTimingFunction'),
+ transitionDuration: _prefixStyle('transitionDuration'),
+ transitionDelay: _prefixStyle('transitionDelay'),
+ transformOrigin: _prefixStyle('transformOrigin')
+ });
+
+ me.hasClass = function (e, c) {
+ var re = new RegExp("(^|\\s)" + c + "(\\s|$)");
+ return re.test(e.className);
+ };
+
+ me.addClass = function (e, c) {
+ if ( me.hasClass(e, c) ) {
+ return;
+ }
+
+ var newclass = e.className.split(' ');
+ newclass.push(c);
+ e.className = newclass.join(' ');
+ };
+
+ me.removeClass = function (e, c) {
+ if ( !me.hasClass(e, c) ) {
+ return;
+ }
+
+ var re = new RegExp("(^|\\s)" + c + "(\\s|$)", 'g');
+ e.className = e.className.replace(re, ' ');
+ };
+
+ me.offset = function (el) {
+ var left = -el.offsetLeft,
+ top = -el.offsetTop;
+
+ // jshint -W084
+ while (el = el.offsetParent) {
+ left -= el.offsetLeft;
+ top -= el.offsetTop;
+ }
+ // jshint +W084
+
+ return {
+ left: left,
+ top: top
+ };
+ };
+
+ me.preventDefaultException = function (el, exceptions) {
+ for ( var i in exceptions ) {
+ if ( exceptions[i].test(el[i]) ) {
+ return true;
+ }
+ }
+
+ return false;
+ };
+
+ me.extend(me.eventType = {}, {
+ touchstart: 1,
+ touchmove: 1,
+ touchend: 1,
+
+ mousedown: 2,
+ mousemove: 2,
+ mouseup: 2,
+
+ pointerdown: 3,
+ pointermove: 3,
+ pointerup: 3,
+
+ MSPointerDown: 3,
+ MSPointerMove: 3,
+ MSPointerUp: 3
+ });
+
+ me.extend(me.ease = {}, {
+ quadratic: {
+ style: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',
+ fn: function (k) {
+ return k * ( 2 - k );
+ }
+ },
+ circular: {
+ style: 'cubic-bezier(0.1, 0.57, 0.1, 1)', // Not properly "circular" but this looks better, it should be (0.075, 0.82, 0.165, 1)
+ fn: function (k) {
+ return Math.sqrt( 1 - ( --k * k ) );
+ }
+ },
+ back: {
+ style: 'cubic-bezier(0.175, 0.885, 0.32, 1.275)',
+ fn: function (k) {
+ var b = 4;
+ return ( k = k - 1 ) * k * ( ( b + 1 ) * k + b ) + 1;
+ }
+ },
+ bounce: {
+ style: '',
+ fn: function (k) {
+ if ( ( k /= 1 ) < ( 1 / 2.75 ) ) {
+ return 7.5625 * k * k;
+ } else if ( k < ( 2 / 2.75 ) ) {
+ return 7.5625 * ( k -= ( 1.5 / 2.75 ) ) * k + 0.75;
+ } else if ( k < ( 2.5 / 2.75 ) ) {
+ return 7.5625 * ( k -= ( 2.25 / 2.75 ) ) * k + 0.9375;
+ } else {
+ return 7.5625 * ( k -= ( 2.625 / 2.75 ) ) * k + 0.984375;
+ }
+ }
+ },
+ elastic: {
+ style: '',
+ fn: function (k) {
+ var f = 0.22,
+ e = 0.4;
+
+ if ( k === 0 ) { return 0; }
+ if ( k == 1 ) { return 1; }
+
+ return ( e * Math.pow( 2, - 10 * k ) * Math.sin( ( k - f / 4 ) * ( 2 * Math.PI ) / f ) + 1 );
+ }
+ }
+ });
+
+ me.tap = function (e, eventName) {
+ var ev = document.createEvent('Event');
+ ev.initEvent(eventName, true, true);
+ ev.pageX = e.pageX;
+ ev.pageY = e.pageY;
+ e.target.dispatchEvent(ev);
+ };
+
+ me.click = function (e) {
+ var target = e.target,
+ ev;
+
+ if ( !(/(SELECT|INPUT|TEXTAREA)/i).test(target.tagName) ) {
+ ev = document.createEvent('MouseEvents');
+ ev.initMouseEvent('click', true, true, e.view, 1,
+ target.screenX, target.screenY, target.clientX, target.clientY,
+ e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,
+ 0, null);
+
+ ev._constructed = true;
+ target.dispatchEvent(ev);
+ }
+ };
+
+ return me;
+})();
+
+function IScroll (el, options) {
+ this.wrapper = typeof el == 'string' ? document.querySelector(el) : el;
+ this.scroller = this.wrapper.children[0];
+ this.scrollerStyle = this.scroller.style; // cache style for better performance
+
+ this.options = {
+
+ resizeScrollbars: true,
+
+ mouseWheelSpeed: 20,
+
+ snapThreshold: 0.334,
+
+// INSERT POINT: OPTIONS
+
+ startX: 0,
+ startY: 0,
+ scrollY: true,
+ directionLockThreshold: 5,
+ momentum: true,
+
+ bounce: true,
+ bounceTime: 600,
+ bounceEasing: '',
+
+ preventDefault: true,
+ preventDefaultException: { tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT)$/ },
+
+ HWCompositing: true,
+ useTransition: true,
+ useTransform: true
+ };
+
+ for ( var i in options ) {
+ this.options[i] = options[i];
+ }
+
+ // Normalize options
+ this.translateZ = this.options.HWCompositing && utils.hasPerspective ? ' translateZ(0)' : '';
+
+ this.options.useTransition = utils.hasTransition && this.options.useTransition;
+ this.options.useTransform = utils.hasTransform && this.options.useTransform;
+
+ this.options.eventPassthrough = this.options.eventPassthrough === true ? 'vertical' : this.options.eventPassthrough;
+ this.options.preventDefault = !this.options.eventPassthrough && this.options.preventDefault;
+
+ // If you want eventPassthrough I have to lock one of the axes
+ this.options.scrollY = this.options.eventPassthrough == 'vertical' ? false : this.options.scrollY;
+ this.options.scrollX = this.options.eventPassthrough == 'horizontal' ? false : this.options.scrollX;
+
+ // With eventPassthrough we also need lockDirection mechanism
+ this.options.freeScroll = this.options.freeScroll && !this.options.eventPassthrough;
+ this.options.directionLockThreshold = this.options.eventPassthrough ? 0 : this.options.directionLockThreshold;
+
+ this.options.bounceEasing = typeof this.options.bounceEasing == 'string' ? utils.ease[this.options.bounceEasing] || utils.ease.circular : this.options.bounceEasing;
+
+ this.options.resizePolling = this.options.resizePolling === undefined ? 60 : this.options.resizePolling;
+
+ if ( this.options.tap === true ) {
+ this.options.tap = 'tap';
+ }
+
+ if ( this.options.shrinkScrollbars == 'scale' ) {
+ this.options.useTransition = false;
+ }
+
+ this.options.invertWheelDirection = this.options.invertWheelDirection ? -1 : 1;
+
+// INSERT POINT: NORMALIZATION
+
+ // Some defaults
+ this.x = 0;
+ this.y = 0;
+ this.directionX = 0;
+ this.directionY = 0;
+ this._events = {};
+
+// INSERT POINT: DEFAULTS
+
+ this._init();
+ this.refresh();
+
+ this.scrollTo(this.options.startX, this.options.startY);
+ this.enable();
+}
+
+IScroll.prototype = {
+ version: '5.1.3',
+
+ _init: function () {
+ this._initEvents();
+
+ if ( this.options.scrollbars || this.options.indicators ) {
+ this._initIndicators();
+ }
+
+ if ( this.options.mouseWheel ) {
+ this._initWheel();
+ }
+
+ if ( this.options.snap ) {
+ this._initSnap();
+ }
+
+ if ( this.options.keyBindings ) {
+ this._initKeys();
+ }
+
+// INSERT POINT: _init
+
+ },
+
+ destroy: function () {
+ this._initEvents(true);
+
+ this._execEvent('destroy');
+ },
+
+ _transitionEnd: function (e) {
+ if ( e.target != this.scroller || !this.isInTransition ) {
+ return;
+ }
+
+ this._transitionTime();
+ if ( !this.resetPosition(this.options.bounceTime) ) {
+ this.isInTransition = false;
+ this._execEvent('scrollEnd');
+ }
+ },
+
+ _start: function (e) {
+ // React to left mouse button only
+ if ( utils.eventType[e.type] != 1 ) {
+ if ( e.button !== 0 ) {
+ return;
+ }
+ }
+
+ if ( !this.enabled || (this.initiated && utils.eventType[e.type] !== this.initiated) ) {
+ return;
+ }
+
+ if ( this.options.preventDefault && !utils.isBadAndroid && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) {
+ e.preventDefault();
+ }
+
+ var point = e.touches ? e.touches[0] : e,
+ pos;
+
+ this.initiated = utils.eventType[e.type];
+ this.moved = false;
+ this.distX = 0;
+ this.distY = 0;
+ this.directionX = 0;
+ this.directionY = 0;
+ this.directionLocked = 0;
+
+ this._transitionTime();
+
+ this.startTime = utils.getTime();
+
+ if ( this.options.useTransition && this.isInTransition ) {
+ this.isInTransition = false;
+ pos = this.getComputedPosition();
+ this._translate(Math.round(pos.x), Math.round(pos.y));
+ this._execEvent('scrollEnd');
+ } else if ( !this.options.useTransition && this.isAnimating ) {
+ this.isAnimating = false;
+ this._execEvent('scrollEnd');
+ }
+
+ this.startX = this.x;
+ this.startY = this.y;
+ this.absStartX = this.x;
+ this.absStartY = this.y;
+ this.pointX = point.pageX;
+ this.pointY = point.pageY;
+
+ this._execEvent('beforeScrollStart');
+ },
+
+ _move: function (e) {
+ if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) {
+ return;
+ }
+
+ if ( this.options.preventDefault ) { // increases performance on Android? TODO: check!
+ e.preventDefault();
+ }
+
+ var point = e.touches ? e.touches[0] : e,
+ deltaX = point.pageX - this.pointX,
+ deltaY = point.pageY - this.pointY,
+ timestamp = utils.getTime(),
+ newX, newY,
+ absDistX, absDistY;
+
+ this.pointX = point.pageX;
+ this.pointY = point.pageY;
+
+ this.distX += deltaX;
+ this.distY += deltaY;
+ absDistX = Math.abs(this.distX);
+ absDistY = Math.abs(this.distY);
+
+ // We need to move at least 10 pixels for the scrolling to initiate
+ if ( timestamp - this.endTime > 300 && (absDistX < 10 && absDistY < 10) ) {
+ return;
+ }
+
+ // If you are scrolling in one direction lock the other
+ if ( !this.directionLocked && !this.options.freeScroll ) {
+ if ( absDistX > absDistY + this.options.directionLockThreshold ) {
+ this.directionLocked = 'h'; // lock horizontally
+ } else if ( absDistY >= absDistX + this.options.directionLockThreshold ) {
+ this.directionLocked = 'v'; // lock vertically
+ } else {
+ this.directionLocked = 'n'; // no lock
+ }
+ }
+
+ if ( this.directionLocked == 'h' ) {
+ if ( this.options.eventPassthrough == 'vertical' ) {
+ e.preventDefault();
+ } else if ( this.options.eventPassthrough == 'horizontal' ) {
+ this.initiated = false;
+ return;
+ }
+
+ deltaY = 0;
+ } else if ( this.directionLocked == 'v' ) {
+ if ( this.options.eventPassthrough == 'horizontal' ) {
+ e.preventDefault();
+ } else if ( this.options.eventPassthrough == 'vertical' ) {
+ this.initiated = false;
+ return;
+ }
+
+ deltaX = 0;
+ }
+
+ deltaX = this.hasHorizontalScroll ? deltaX : 0;
+ deltaY = this.hasVerticalScroll ? deltaY : 0;
+
+ newX = this.x + deltaX;
+ newY = this.y + deltaY;
+
+ // Slow down if outside of the boundaries
+ if ( newX > 0 || newX < this.maxScrollX ) {
+ newX = this.options.bounce ? this.x + deltaX / 3 : newX > 0 ? 0 : this.maxScrollX;
+ }
+ if ( newY > 0 || newY < this.maxScrollY ) {
+ newY = this.options.bounce ? this.y + deltaY / 3 : newY > 0 ? 0 : this.maxScrollY;
+ }
+
+ this.directionX = deltaX > 0 ? -1 : deltaX < 0 ? 1 : 0;
+ this.directionY = deltaY > 0 ? -1 : deltaY < 0 ? 1 : 0;
+
+ if ( !this.moved ) {
+ this._execEvent('scrollStart');
+ }
+
+ this.moved = true;
+
+ this._translate(newX, newY);
+
+/* REPLACE START: _move */
+
+ if ( timestamp - this.startTime > 300 ) {
+ this.startTime = timestamp;
+ this.startX = this.x;
+ this.startY = this.y;
+ }
+
+/* REPLACE END: _move */
+
+ },
+
+ _end: function (e) {
+ if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) {
+ return;
+ }
+
+ if ( this.options.preventDefault && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) {
+ e.preventDefault();
+ }
+
+ var point = e.changedTouches ? e.changedTouches[0] : e,
+ momentumX,
+ momentumY,
+ duration = utils.getTime() - this.startTime,
+ newX = Math.round(this.x),
+ newY = Math.round(this.y),
+ distanceX = Math.abs(newX - this.startX),
+ distanceY = Math.abs(newY - this.startY),
+ time = 0,
+ easing = '';
+
+ this.isInTransition = 0;
+ this.initiated = 0;
+ this.endTime = utils.getTime();
+
+ // reset if we are outside of the boundaries
+ if ( this.resetPosition(this.options.bounceTime) ) {
+ return;
+ }
+
+ this.scrollTo(newX, newY); // ensures that the last position is rounded
+
+ // we scrolled less than 10 pixels
+ if ( !this.moved ) {
+ if ( this.options.tap ) {
+ utils.tap(e, this.options.tap);
+ }
+
+ if ( this.options.click ) {
+ utils.click(e);
+ }
+
+ this._execEvent('scrollCancel');
+ return;
+ }
+
+ if ( this._events.flick && duration < 200 && distanceX < 100 && distanceY < 100 ) {
+ this._execEvent('flick');
+ return;
+ }
+
+ // start momentum animation if needed
+ if ( this.options.momentum && duration < 300 ) {
+ momentumX = this.hasHorizontalScroll ? utils.momentum(this.x, this.startX, duration, this.maxScrollX, this.options.bounce ? this.wrapperWidth : 0, this.options.deceleration) : { destination: newX, duration: 0 };
+ momentumY = this.hasVerticalScroll ? utils.momentum(this.y, this.startY, duration, this.maxScrollY, this.options.bounce ? this.wrapperHeight : 0, this.options.deceleration) : { destination: newY, duration: 0 };
+ newX = momentumX.destination;
+ newY = momentumY.destination;
+ time = Math.max(momentumX.duration, momentumY.duration);
+ this.isInTransition = 1;
+ }
+
+
+ if ( this.options.snap ) {
+ var snap = this._nearestSnap(newX, newY);
+ this.currentPage = snap;
+ time = this.options.snapSpeed || Math.max(
+ Math.max(
+ Math.min(Math.abs(newX - snap.x), 1000),
+ Math.min(Math.abs(newY - snap.y), 1000)
+ ), 300);
+ newX = snap.x;
+ newY = snap.y;
+
+ this.directionX = 0;
+ this.directionY = 0;
+ easing = this.options.bounceEasing;
+ }
+
+// INSERT POINT: _end
+
+ if ( newX != this.x || newY != this.y ) {
+ // change easing function when scroller goes out of the boundaries
+ if ( newX > 0 || newX < this.maxScrollX || newY > 0 || newY < this.maxScrollY ) {
+ easing = utils.ease.quadratic;
+ }
+
+ this.scrollTo(newX, newY, time, easing);
+ return;
+ }
+
+ this._execEvent('scrollEnd');
+ },
+
+ _resize: function () {
+ var that = this;
+
+ clearTimeout(this.resizeTimeout);
+
+ this.resizeTimeout = setTimeout(function () {
+ that.refresh();
+ }, this.options.resizePolling);
+ },
+
+ resetPosition: function (time) {
+ var x = this.x,
+ y = this.y;
+
+ time = time || 0;
+
+ if ( !this.hasHorizontalScroll || this.x > 0 ) {
+ x = 0;
+ } else if ( this.x < this.maxScrollX ) {
+ x = this.maxScrollX;
+ }
+
+ if ( !this.hasVerticalScroll || this.y > 0 ) {
+ y = 0;
+ } else if ( this.y < this.maxScrollY ) {
+ y = this.maxScrollY;
+ }
+
+ if ( x == this.x && y == this.y ) {
+ return false;
+ }
+
+ this.scrollTo(x, y, time, this.options.bounceEasing);
+
+ return true;
+ },
+
+ disable: function () {
+ this.enabled = false;
+ },
+
+ enable: function () {
+ this.enabled = true;
+ },
+
+ refresh: function () {
+ var rf = this.wrapper.offsetHeight; // Force reflow
+
+ this.wrapperWidth = this.wrapper.clientWidth;
+ this.wrapperHeight = this.wrapper.clientHeight;
+
+/* REPLACE START: refresh */
+
+ this.scrollerWidth = this.scroller.offsetWidth;
+ this.scrollerHeight = this.scroller.offsetHeight;
+
+ this.maxScrollX = this.wrapperWidth - this.scrollerWidth;
+ this.maxScrollY = this.wrapperHeight - this.scrollerHeight;
+
+/* REPLACE END: refresh */
+
+ this.hasHorizontalScroll = this.options.scrollX && this.maxScrollX < 0;
+ this.hasVerticalScroll = this.options.scrollY && this.maxScrollY < 0;
+
+ if ( !this.hasHorizontalScroll ) {
+ this.maxScrollX = 0;
+ this.scrollerWidth = this.wrapperWidth;
+ }
+
+ if ( !this.hasVerticalScroll ) {
+ this.maxScrollY = 0;
+ this.scrollerHeight = this.wrapperHeight;
+ }
+
+ this.endTime = 0;
+ this.directionX = 0;
+ this.directionY = 0;
+
+ this.wrapperOffset = utils.offset(this.wrapper);
+
+ this._execEvent('refresh');
+
+ this.resetPosition();
+
+// INSERT POINT: _refresh
+
+ },
+
+ on: function (type, fn) {
+ if ( !this._events[type] ) {
+ this._events[type] = [];
+ }
+
+ this._events[type].push(fn);
+ },
+
+ off: function (type, fn) {
+ if ( !this._events[type] ) {
+ return;
+ }
+
+ var index = this._events[type].indexOf(fn);
+
+ if ( index > -1 ) {
+ this._events[type].splice(index, 1);
+ }
+ },
+
+ _execEvent: function (type) {
+ if ( !this._events[type] ) {
+ return;
+ }
+
+ var i = 0,
+ l = this._events[type].length;
+
+ if ( !l ) {
+ return;
+ }
+
+ for ( ; i < l; i++ ) {
+ this._events[type][i].apply(this, [].slice.call(arguments, 1));
+ }
+ },
+
+ scrollBy: function (x, y, time, easing) {
+ x = this.x + x;
+ y = this.y + y;
+ time = time || 0;
+
+ this.scrollTo(x, y, time, easing);
+ },
+
+ scrollTo: function (x, y, time, easing) {
+ easing = easing || utils.ease.circular;
+
+ this.isInTransition = this.options.useTransition && time > 0;
+
+ if ( !time || (this.options.useTransition && easing.style) ) {
+ this._transitionTimingFunction(easing.style);
+ this._transitionTime(time);
+ this._translate(x, y);
+ } else {
+ this._animate(x, y, time, easing.fn);
+ }
+ },
+
+ scrollToElement: function (el, time, offsetX, offsetY, easing) {
+ el = el.nodeType ? el : this.scroller.querySelector(el);
+
+ if ( !el ) {
+ return;
+ }
+
+ var pos = utils.offset(el);
+
+ pos.left -= this.wrapperOffset.left;
+ pos.top -= this.wrapperOffset.top;
+
+ // if offsetX/Y are true we center the element to the screen
+ if ( offsetX === true ) {
+ offsetX = Math.round(el.offsetWidth / 2 - this.wrapper.offsetWidth / 2);
+ }
+ if ( offsetY === true ) {
+ offsetY = Math.round(el.offsetHeight / 2 - this.wrapper.offsetHeight / 2);
+ }
+
+ pos.left -= offsetX || 0;
+ pos.top -= offsetY || 0;
+
+ pos.left = pos.left > 0 ? 0 : pos.left < this.maxScrollX ? this.maxScrollX : pos.left;
+ pos.top = pos.top > 0 ? 0 : pos.top < this.maxScrollY ? this.maxScrollY : pos.top;
+
+ time = time === undefined || time === null || time === 'auto' ? Math.max(Math.abs(this.x-pos.left), Math.abs(this.y-pos.top)) : time;
+
+ this.scrollTo(pos.left, pos.top, time, easing);
+ },
+
+ _transitionTime: function (time) {
+ time = time || 0;
+
+ this.scrollerStyle[utils.style.transitionDuration] = time + 'ms';
+
+ if ( !time && utils.isBadAndroid ) {
+ this.scrollerStyle[utils.style.transitionDuration] = '0.001s';
+ }
+
+
+ if ( this.indicators ) {
+ for ( var i = this.indicators.length; i--; ) {
+ this.indicators[i].transitionTime(time);
+ }
+ }
+
+
+// INSERT POINT: _transitionTime
+
+ },
+
+ _transitionTimingFunction: function (easing) {
+ this.scrollerStyle[utils.style.transitionTimingFunction] = easing;
+
+
+ if ( this.indicators ) {
+ for ( var i = this.indicators.length; i--; ) {
+ this.indicators[i].transitionTimingFunction(easing);
+ }
+ }
+
+
+// INSERT POINT: _transitionTimingFunction
+
+ },
+
+ _translate: function (x, y) {
+ if ( this.options.useTransform ) {
+
+/* REPLACE START: _translate */
+
+ this.scrollerStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.translateZ;
+
+/* REPLACE END: _translate */
+
+ } else {
+ x = Math.round(x);
+ y = Math.round(y);
+ this.scrollerStyle.left = x + 'px';
+ this.scrollerStyle.top = y + 'px';
+ }
+
+ this.x = x;
+ this.y = y;
+
+
+ if ( this.indicators ) {
+ for ( var i = this.indicators.length; i--; ) {
+ this.indicators[i].updatePosition();
+ }
+ }
+
+
+// INSERT POINT: _translate
+
+ },
+
+ _initEvents: function (remove) {
+ var eventType = remove ? utils.removeEvent : utils.addEvent,
+ target = this.options.bindToWrapper ? this.wrapper : window;
+
+ eventType(window, 'orientationchange', this);
+ eventType(window, 'resize', this);
+
+ if ( this.options.click ) {
+ eventType(this.wrapper, 'click', this, true);
+ }
+
+ if ( !this.options.disableMouse ) {
+ eventType(this.wrapper, 'mousedown', this);
+ eventType(target, 'mousemove', this);
+ eventType(target, 'mousecancel', this);
+ eventType(target, 'mouseup', this);
+ }
+
+ if ( utils.hasPointer && !this.options.disablePointer ) {
+ eventType(this.wrapper, utils.prefixPointerEvent('pointerdown'), this);
+ eventType(target, utils.prefixPointerEvent('pointermove'), this);
+ eventType(target, utils.prefixPointerEvent('pointercancel'), this);
+ eventType(target, utils.prefixPointerEvent('pointerup'), this);
+ }
+
+ if ( utils.hasTouch && !this.options.disableTouch ) {
+ eventType(this.wrapper, 'touchstart', this);
+ eventType(target, 'touchmove', this);
+ eventType(target, 'touchcancel', this);
+ eventType(target, 'touchend', this);
+ }
+
+ eventType(this.scroller, 'transitionend', this);
+ eventType(this.scroller, 'webkitTransitionEnd', this);
+ eventType(this.scroller, 'oTransitionEnd', this);
+ eventType(this.scroller, 'MSTransitionEnd', this);
+ },
+
+ getComputedPosition: function () {
+ var matrix = window.getComputedStyle(this.scroller, null),
+ x, y;
+
+ if ( this.options.useTransform ) {
+ matrix = matrix[utils.style.transform].split(')')[0].split(', ');
+ x = +(matrix[12] || matrix[4]);
+ y = +(matrix[13] || matrix[5]);
+ } else {
+ x = +matrix.left.replace(/[^-\d.]/g, '');
+ y = +matrix.top.replace(/[^-\d.]/g, '');
+ }
+
+ return { x: x, y: y };
+ },
+
+ _initIndicators: function () {
+ var interactive = this.options.interactiveScrollbars,
+ customStyle = typeof this.options.scrollbars != 'string',
+ indicators = [],
+ indicator;
+
+ var that = this;
+
+ this.indicators = [];
+
+ if ( this.options.scrollbars ) {
+ // Vertical scrollbar
+ if ( this.options.scrollY ) {
+ indicator = {
+ el: createDefaultScrollbar('v', interactive, this.options.scrollbars),
+ interactive: interactive,
+ defaultScrollbars: true,
+ customStyle: customStyle,
+ resize: this.options.resizeScrollbars,
+ shrink: this.options.shrinkScrollbars,
+ fade: this.options.fadeScrollbars,
+ listenX: false
+ };
+
+ this.wrapper.appendChild(indicator.el);
+ indicators.push(indicator);
+ }
+
+ // Horizontal scrollbar
+ if ( this.options.scrollX ) {
+ indicator = {
+ el: createDefaultScrollbar('h', interactive, this.options.scrollbars),
+ interactive: interactive,
+ defaultScrollbars: true,
+ customStyle: customStyle,
+ resize: this.options.resizeScrollbars,
+ shrink: this.options.shrinkScrollbars,
+ fade: this.options.fadeScrollbars,
+ listenY: false
+ };
+
+ this.wrapper.appendChild(indicator.el);
+ indicators.push(indicator);
+ }
+ }
+
+ if ( this.options.indicators ) {
+ // TODO: check concat compatibility
+ indicators = indicators.concat(this.options.indicators);
+ }
+
+ for ( var i = indicators.length; i--; ) {
+ this.indicators.push( new Indicator(this, indicators[i]) );
+ }
+
+ // TODO: check if we can use array.map (wide compatibility and performance issues)
+ function _indicatorsMap (fn) {
+ for ( var i = that.indicators.length; i--; ) {
+ fn.call(that.indicators[i]);
+ }
+ }
+
+ if ( this.options.fadeScrollbars ) {
+ this.on('scrollEnd', function () {
+ _indicatorsMap(function () {
+ this.fade();
+ });
+ });
+
+ this.on('scrollCancel', function () {
+ _indicatorsMap(function () {
+ this.fade();
+ });
+ });
+
+ this.on('scrollStart', function () {
+ _indicatorsMap(function () {
+ this.fade(1);
+ });
+ });
+
+ this.on('beforeScrollStart', function () {
+ _indicatorsMap(function () {
+ this.fade(1, true);
+ });
+ });
+ }
+
+
+ this.on('refresh', function () {
+ _indicatorsMap(function () {
+ this.refresh();
+ });
+ });
+
+ this.on('destroy', function () {
+ _indicatorsMap(function () {
+ this.destroy();
+ });
+
+ delete this.indicators;
+ });
+ },
+
+ _initWheel: function () {
+ utils.addEvent(this.wrapper, 'wheel', this);
+ utils.addEvent(this.wrapper, 'mousewheel', this);
+ utils.addEvent(this.wrapper, 'DOMMouseScroll', this);
+
+ this.on('destroy', function () {
+ utils.removeEvent(this.wrapper, 'wheel', this);
+ utils.removeEvent(this.wrapper, 'mousewheel', this);
+ utils.removeEvent(this.wrapper, 'DOMMouseScroll', this);
+ });
+ },
+
+ _wheel: function (e) {
+ if ( !this.enabled ) {
+ return;
+ }
+
+ e.preventDefault();
+ e.stopPropagation();
+
+ var wheelDeltaX, wheelDeltaY,
+ newX, newY,
+ that = this;
+
+ if ( this.wheelTimeout === undefined ) {
+ that._execEvent('scrollStart');
+ }
+
+ // Execute the scrollEnd event after 400ms the wheel stopped scrolling
+ clearTimeout(this.wheelTimeout);
+ this.wheelTimeout = setTimeout(function () {
+ that._execEvent('scrollEnd');
+ that.wheelTimeout = undefined;
+ }, 400);
+
+ if ( 'deltaX' in e ) {
+ if (e.deltaMode === 1) {
+ wheelDeltaX = -e.deltaX * this.options.mouseWheelSpeed;
+ wheelDeltaY = -e.deltaY * this.options.mouseWheelSpeed;
+ } else {
+ wheelDeltaX = -e.deltaX;
+ wheelDeltaY = -e.deltaY;
+ }
+ } else if ( 'wheelDeltaX' in e ) {
+ wheelDeltaX = e.wheelDeltaX / 120 * this.options.mouseWheelSpeed;
+ wheelDeltaY = e.wheelDeltaY / 120 * this.options.mouseWheelSpeed;
+ } else if ( 'wheelDelta' in e ) {
+ wheelDeltaX = wheelDeltaY = e.wheelDelta / 120 * this.options.mouseWheelSpeed;
+ } else if ( 'detail' in e ) {
+ wheelDeltaX = wheelDeltaY = -e.detail / 3 * this.options.mouseWheelSpeed;
+ } else {
+ return;
+ }
+
+ wheelDeltaX *= this.options.invertWheelDirection;
+ wheelDeltaY *= this.options.invertWheelDirection;
+
+ if ( !this.hasVerticalScroll ) {
+ wheelDeltaX = wheelDeltaY;
+ wheelDeltaY = 0;
+ }
+
+ if ( this.options.snap ) {
+ newX = this.currentPage.pageX;
+ newY = this.currentPage.pageY;
+
+ if ( wheelDeltaX > 0 ) {
+ newX--;
+ } else if ( wheelDeltaX < 0 ) {
+ newX++;
+ }
+
+ if ( wheelDeltaY > 0 ) {
+ newY--;
+ } else if ( wheelDeltaY < 0 ) {
+ newY++;
+ }
+
+ this.goToPage(newX, newY);
+
+ return;
+ }
+
+ newX = this.x + Math.round(this.hasHorizontalScroll ? wheelDeltaX : 0);
+ newY = this.y + Math.round(this.hasVerticalScroll ? wheelDeltaY : 0);
+
+ if ( newX > 0 ) {
+ newX = 0;
+ } else if ( newX < this.maxScrollX ) {
+ newX = this.maxScrollX;
+ }
+
+ if ( newY > 0 ) {
+ newY = 0;
+ } else if ( newY < this.maxScrollY ) {
+ newY = this.maxScrollY;
+ }
+
+ this.scrollTo(newX, newY, 0);
+
+// INSERT POINT: _wheel
+ },
+
+ _initSnap: function () {
+ this.currentPage = {};
+
+ if ( typeof this.options.snap == 'string' ) {
+ this.options.snap = this.scroller.querySelectorAll(this.options.snap);
+ }
+
+ this.on('refresh', function () {
+ var i = 0, l,
+ m = 0, n,
+ cx, cy,
+ x = 0, y,
+ stepX = this.options.snapStepX || this.wrapperWidth,
+ stepY = this.options.snapStepY || this.wrapperHeight,
+ el;
+
+ this.pages = [];
+
+ if ( !this.wrapperWidth || !this.wrapperHeight || !this.scrollerWidth || !this.scrollerHeight ) {
+ return;
+ }
+
+ if ( this.options.snap === true ) {
+ cx = Math.round( stepX / 2 );
+ cy = Math.round( stepY / 2 );
+
+ while ( x > -this.scrollerWidth ) {
+ this.pages[i] = [];
+ l = 0;
+ y = 0;
+
+ while ( y > -this.scrollerHeight ) {
+ this.pages[i][l] = {
+ x: Math.max(x, this.maxScrollX),
+ y: Math.max(y, this.maxScrollY),
+ width: stepX,
+ height: stepY,
+ cx: x - cx,
+ cy: y - cy
+ };
+
+ y -= stepY;
+ l++;
+ }
+
+ x -= stepX;
+ i++;
+ }
+ } else {
+ el = this.options.snap;
+ l = el.length;
+ n = -1;
+
+ for ( ; i < l; i++ ) {
+ if ( i === 0 || el[i].offsetLeft <= el[i-1].offsetLeft ) {
+ m = 0;
+ n++;
+ }
+
+ if ( !this.pages[m] ) {
+ this.pages[m] = [];
+ }
+
+ x = Math.max(-el[i].offsetLeft, this.maxScrollX);
+ y = Math.max(-el[i].offsetTop, this.maxScrollY);
+ cx = x - Math.round(el[i].offsetWidth / 2);
+ cy = y - Math.round(el[i].offsetHeight / 2);
+
+ this.pages[m][n] = {
+ x: x,
+ y: y,
+ width: el[i].offsetWidth,
+ height: el[i].offsetHeight,
+ cx: cx,
+ cy: cy
+ };
+
+ if ( x > this.maxScrollX ) {
+ m++;
+ }
+ }
+ }
+
+ this.goToPage(this.currentPage.pageX || 0, this.currentPage.pageY || 0, 0);
+
+ // Update snap threshold if needed
+ if ( this.options.snapThreshold % 1 === 0 ) {
+ this.snapThresholdX = this.options.snapThreshold;
+ this.snapThresholdY = this.options.snapThreshold;
+ } else {
+ this.snapThresholdX = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].width * this.options.snapThreshold);
+ this.snapThresholdY = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].height * this.options.snapThreshold);
+ }
+ });
+
+ this.on('flick', function () {
+ var time = this.options.snapSpeed || Math.max(
+ Math.max(
+ Math.min(Math.abs(this.x - this.startX), 1000),
+ Math.min(Math.abs(this.y - this.startY), 1000)
+ ), 300);
+
+ this.goToPage(
+ this.currentPage.pageX + this.directionX,
+ this.currentPage.pageY + this.directionY,
+ time
+ );
+ });
+ },
+
+ _nearestSnap: function (x, y) {
+ if ( !this.pages.length ) {
+ return { x: 0, y: 0, pageX: 0, pageY: 0 };
+ }
+
+ var i = 0,
+ l = this.pages.length,
+ m = 0;
+
+ // Check if we exceeded the snap threshold
+ if ( Math.abs(x - this.absStartX) < this.snapThresholdX &&
+ Math.abs(y - this.absStartY) < this.snapThresholdY ) {
+ return this.currentPage;
+ }
+
+ if ( x > 0 ) {
+ x = 0;
+ } else if ( x < this.maxScrollX ) {
+ x = this.maxScrollX;
+ }
+
+ if ( y > 0 ) {
+ y = 0;
+ } else if ( y < this.maxScrollY ) {
+ y = this.maxScrollY;
+ }
+
+ for ( ; i < l; i++ ) {
+ if ( x >= this.pages[i][0].cx ) {
+ x = this.pages[i][0].x;
+ break;
+ }
+ }
+
+ l = this.pages[i].length;
+
+ for ( ; m < l; m++ ) {
+ if ( y >= this.pages[0][m].cy ) {
+ y = this.pages[0][m].y;
+ break;
+ }
+ }
+
+ if ( i == this.currentPage.pageX ) {
+ i += this.directionX;
+
+ if ( i < 0 ) {
+ i = 0;
+ } else if ( i >= this.pages.length ) {
+ i = this.pages.length - 1;
+ }
+
+ x = this.pages[i][0].x;
+ }
+
+ if ( m == this.currentPage.pageY ) {
+ m += this.directionY;
+
+ if ( m < 0 ) {
+ m = 0;
+ } else if ( m >= this.pages[0].length ) {
+ m = this.pages[0].length - 1;
+ }
+
+ y = this.pages[0][m].y;
+ }
+
+ return {
+ x: x,
+ y: y,
+ pageX: i,
+ pageY: m
+ };
+ },
+
+ goToPage: function (x, y, time, easing) {
+ easing = easing || this.options.bounceEasing;
+
+ if ( x >= this.pages.length ) {
+ x = this.pages.length - 1;
+ } else if ( x < 0 ) {
+ x = 0;
+ }
+
+ if ( y >= this.pages[x].length ) {
+ y = this.pages[x].length - 1;
+ } else if ( y < 0 ) {
+ y = 0;
+ }
+
+ var posX = this.pages[x][y].x,
+ posY = this.pages[x][y].y;
+
+ time = time === undefined ? this.options.snapSpeed || Math.max(
+ Math.max(
+ Math.min(Math.abs(posX - this.x), 1000),
+ Math.min(Math.abs(posY - this.y), 1000)
+ ), 300) : time;
+
+ this.currentPage = {
+ x: posX,
+ y: posY,
+ pageX: x,
+ pageY: y
+ };
+
+ this.scrollTo(posX, posY, time, easing);
+ },
+
+ next: function (time, easing) {
+ var x = this.currentPage.pageX,
+ y = this.currentPage.pageY;
+
+ x++;
+
+ if ( x >= this.pages.length && this.hasVerticalScroll ) {
+ x = 0;
+ y++;
+ }
+
+ this.goToPage(x, y, time, easing);
+ },
+
+ prev: function (time, easing) {
+ var x = this.currentPage.pageX,
+ y = this.currentPage.pageY;
+
+ x--;
+
+ if ( x < 0 && this.hasVerticalScroll ) {
+ x = 0;
+ y--;
+ }
+
+ this.goToPage(x, y, time, easing);
+ },
+
+ _initKeys: function (e) {
+ // default key bindings
+ var keys = {
+ pageUp: 33,
+ pageDown: 34,
+ end: 35,
+ home: 36,
+ left: 37,
+ up: 38,
+ right: 39,
+ down: 40
+ };
+ var i;
+
+ // if you give me characters I give you keycode
+ if ( typeof this.options.keyBindings == 'object' ) {
+ for ( i in this.options.keyBindings ) {
+ if ( typeof this.options.keyBindings[i] == 'string' ) {
+ this.options.keyBindings[i] = this.options.keyBindings[i].toUpperCase().charCodeAt(0);
+ }
+ }
+ } else {
+ this.options.keyBindings = {};
+ }
+
+ for ( i in keys ) {
+ this.options.keyBindings[i] = this.options.keyBindings[i] || keys[i];
+ }
+
+ utils.addEvent(window, 'keydown', this);
+
+ this.on('destroy', function () {
+ utils.removeEvent(window, 'keydown', this);
+ });
+ },
+
+ _key: function (e) {
+ if ( !this.enabled ) {
+ return;
+ }
+
+ var snap = this.options.snap, // we are using this alot, better to cache it
+ newX = snap ? this.currentPage.pageX : this.x,
+ newY = snap ? this.currentPage.pageY : this.y,
+ now = utils.getTime(),
+ prevTime = this.keyTime || 0,
+ acceleration = 0.250,
+ pos;
+
+ if ( this.options.useTransition && this.isInTransition ) {
+ pos = this.getComputedPosition();
+
+ this._translate(Math.round(pos.x), Math.round(pos.y));
+ this.isInTransition = false;
+ }
+
+ this.keyAcceleration = now - prevTime < 200 ? Math.min(this.keyAcceleration + acceleration, 50) : 0;
+
+ switch ( e.keyCode ) {
+ case this.options.keyBindings.pageUp:
+ if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) {
+ newX += snap ? 1 : this.wrapperWidth;
+ } else {
+ newY += snap ? 1 : this.wrapperHeight;
+ }
+ break;
+ case this.options.keyBindings.pageDown:
+ if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) {
+ newX -= snap ? 1 : this.wrapperWidth;
+ } else {
+ newY -= snap ? 1 : this.wrapperHeight;
+ }
+ break;
+ case this.options.keyBindings.end:
+ newX = snap ? this.pages.length-1 : this.maxScrollX;
+ newY = snap ? this.pages[0].length-1 : this.maxScrollY;
+ break;
+ case this.options.keyBindings.home:
+ newX = 0;
+ newY = 0;
+ break;
+ case this.options.keyBindings.left:
+ newX += snap ? -1 : 5 + this.keyAcceleration>>0;
+ break;
+ case this.options.keyBindings.up:
+ newY += snap ? 1 : 5 + this.keyAcceleration>>0;
+ break;
+ case this.options.keyBindings.right:
+ newX -= snap ? -1 : 5 + this.keyAcceleration>>0;
+ break;
+ case this.options.keyBindings.down:
+ newY -= snap ? 1 : 5 + this.keyAcceleration>>0;
+ break;
+ default:
+ return;
+ }
+
+ if ( snap ) {
+ this.goToPage(newX, newY);
+ return;
+ }
+
+ if ( newX > 0 ) {
+ newX = 0;
+ this.keyAcceleration = 0;
+ } else if ( newX < this.maxScrollX ) {
+ newX = this.maxScrollX;
+ this.keyAcceleration = 0;
+ }
+
+ if ( newY > 0 ) {
+ newY = 0;
+ this.keyAcceleration = 0;
+ } else if ( newY < this.maxScrollY ) {
+ newY = this.maxScrollY;
+ this.keyAcceleration = 0;
+ }
+
+ this.scrollTo(newX, newY, 0);
+
+ this.keyTime = now;
+ },
+
+ _animate: function (destX, destY, duration, easingFn) {
+ var that = this,
+ startX = this.x,
+ startY = this.y,
+ startTime = utils.getTime(),
+ destTime = startTime + duration;
+
+ function step () {
+ var now = utils.getTime(),
+ newX, newY,
+ easing;
+
+ if ( now >= destTime ) {
+ that.isAnimating = false;
+ that._translate(destX, destY);
+
+ if ( !that.resetPosition(that.options.bounceTime) ) {
+ that._execEvent('scrollEnd');
+ }
+
+ return;
+ }
+
+ now = ( now - startTime ) / duration;
+ easing = easingFn(now);
+ newX = ( destX - startX ) * easing + startX;
+ newY = ( destY - startY ) * easing + startY;
+ that._translate(newX, newY);
+
+ if ( that.isAnimating ) {
+ rAF(step);
+ }
+ }
+
+ this.isAnimating = true;
+ step();
+ },
+ handleEvent: function (e) {
+ switch ( e.type ) {
+ case 'touchstart':
+ case 'pointerdown':
+ case 'MSPointerDown':
+ case 'mousedown':
+ this._start(e);
+ break;
+ case 'touchmove':
+ case 'pointermove':
+ case 'MSPointerMove':
+ case 'mousemove':
+ this._move(e);
+ break;
+ case 'touchend':
+ case 'pointerup':
+ case 'MSPointerUp':
+ case 'mouseup':
+ case 'touchcancel':
+ case 'pointercancel':
+ case 'MSPointerCancel':
+ case 'mousecancel':
+ this._end(e);
+ break;
+ case 'orientationchange':
+ case 'resize':
+ this._resize();
+ break;
+ case 'transitionend':
+ case 'webkitTransitionEnd':
+ case 'oTransitionEnd':
+ case 'MSTransitionEnd':
+ this._transitionEnd(e);
+ break;
+ case 'wheel':
+ case 'DOMMouseScroll':
+ case 'mousewheel':
+ this._wheel(e);
+ break;
+ case 'keydown':
+ this._key(e);
+ break;
+ case 'click':
+ if ( !e._constructed ) {
+ e.preventDefault();
+ e.stopPropagation();
+ }
+ break;
+ }
+ }
+};
+function createDefaultScrollbar (direction, interactive, type) {
+ var scrollbar = document.createElement('div'),
+ indicator = document.createElement('div');
+
+ if ( type === true ) {
+ scrollbar.style.cssText = 'position:absolute;z-index:9999';
+ indicator.style.cssText = '-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);border-radius:3px';
+ }
+
+ indicator.className = 'iScrollIndicator';
+
+ if ( direction == 'h' ) {
+ if ( type === true ) {
+ scrollbar.style.cssText += ';height:7px;left:2px;right:2px;bottom:0';
+ indicator.style.height = '100%';
+ }
+ scrollbar.className = 'iScrollHorizontalScrollbar';
+ } else {
+ if ( type === true ) {
+ scrollbar.style.cssText += ';width:7px;bottom:2px;top:2px;right:1px';
+ indicator.style.width = '100%';
+ }
+ scrollbar.className = 'iScrollVerticalScrollbar';
+ }
+
+ scrollbar.style.cssText += ';overflow:hidden';
+
+ if ( !interactive ) {
+ scrollbar.style.pointerEvents = 'none';
+ }
+
+ scrollbar.appendChild(indicator);
+
+ return scrollbar;
+}
+
+function Indicator (scroller, options) {
+ this.wrapper = typeof options.el == 'string' ? document.querySelector(options.el) : options.el;
+ this.wrapperStyle = this.wrapper.style;
+ this.indicator = this.wrapper.children[0];
+ this.indicatorStyle = this.indicator.style;
+ this.scroller = scroller;
+
+ this.options = {
+ listenX: true,
+ listenY: true,
+ interactive: false,
+ resize: true,
+ defaultScrollbars: false,
+ shrink: false,
+ fade: false,
+ speedRatioX: 0,
+ speedRatioY: 0
+ };
+
+ for ( var i in options ) {
+ this.options[i] = options[i];
+ }
+
+ this.sizeRatioX = 1;
+ this.sizeRatioY = 1;
+ this.maxPosX = 0;
+ this.maxPosY = 0;
+
+ if ( this.options.interactive ) {
+ if ( !this.options.disableTouch ) {
+ utils.addEvent(this.indicator, 'touchstart', this);
+ utils.addEvent(window, 'touchend', this);
+ }
+ if ( !this.options.disablePointer ) {
+ utils.addEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this);
+ utils.addEvent(window, utils.prefixPointerEvent('pointerup'), this);
+ }
+ if ( !this.options.disableMouse ) {
+ utils.addEvent(this.indicator, 'mousedown', this);
+ utils.addEvent(window, 'mouseup', this);
+ }
+ }
+
+ if ( this.options.fade ) {
+ this.wrapperStyle[utils.style.transform] = this.scroller.translateZ;
+ this.wrapperStyle[utils.style.transitionDuration] = utils.isBadAndroid ? '0.001s' : '0ms';
+ this.wrapperStyle.opacity = '0';
+ }
+}
+
+Indicator.prototype = {
+ handleEvent: function (e) {
+ switch ( e.type ) {
+ case 'touchstart':
+ case 'pointerdown':
+ case 'MSPointerDown':
+ case 'mousedown':
+ this._start(e);
+ break;
+ case 'touchmove':
+ case 'pointermove':
+ case 'MSPointerMove':
+ case 'mousemove':
+ this._move(e);
+ break;
+ case 'touchend':
+ case 'pointerup':
+ case 'MSPointerUp':
+ case 'mouseup':
+ case 'touchcancel':
+ case 'pointercancel':
+ case 'MSPointerCancel':
+ case 'mousecancel':
+ this._end(e);
+ break;
+ }
+ },
+
+ destroy: function () {
+ if ( this.options.interactive ) {
+ utils.removeEvent(this.indicator, 'touchstart', this);
+ utils.removeEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this);
+ utils.removeEvent(this.indicator, 'mousedown', this);
+
+ utils.removeEvent(window, 'touchmove', this);
+ utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this);
+ utils.removeEvent(window, 'mousemove', this);
+
+ utils.removeEvent(window, 'touchend', this);
+ utils.removeEvent(window, utils.prefixPointerEvent('pointerup'), this);
+ utils.removeEvent(window, 'mouseup', this);
+ }
+
+ if ( this.options.defaultScrollbars ) {
+ this.wrapper.parentNode.removeChild(this.wrapper);
+ }
+ },
+
+ _start: function (e) {
+ var point = e.touches ? e.touches[0] : e;
+
+ e.preventDefault();
+ e.stopPropagation();
+
+ this.transitionTime();
+
+ this.initiated = true;
+ this.moved = false;
+ this.lastPointX = point.pageX;
+ this.lastPointY = point.pageY;
+
+ this.startTime = utils.getTime();
+
+ if ( !this.options.disableTouch ) {
+ utils.addEvent(window, 'touchmove', this);
+ }
+ if ( !this.options.disablePointer ) {
+ utils.addEvent(window, utils.prefixPointerEvent('pointermove'), this);
+ }
+ if ( !this.options.disableMouse ) {
+ utils.addEvent(window, 'mousemove', this);
+ }
+
+ this.scroller._execEvent('beforeScrollStart');
+ },
+
+ _move: function (e) {
+ var point = e.touches ? e.touches[0] : e,
+ deltaX, deltaY,
+ newX, newY,
+ timestamp = utils.getTime();
+
+ if ( !this.moved ) {
+ this.scroller._execEvent('scrollStart');
+ }
+
+ this.moved = true;
+
+ deltaX = point.pageX - this.lastPointX;
+ this.lastPointX = point.pageX;
+
+ deltaY = point.pageY - this.lastPointY;
+ this.lastPointY = point.pageY;
+
+ newX = this.x + deltaX;
+ newY = this.y + deltaY;
+
+ this._pos(newX, newY);
+
+// INSERT POINT: indicator._move
+
+ e.preventDefault();
+ e.stopPropagation();
+ },
+
+ _end: function (e) {
+ if ( !this.initiated ) {
+ return;
+ }
+
+ this.initiated = false;
+
+ e.preventDefault();
+ e.stopPropagation();
+
+ utils.removeEvent(window, 'touchmove', this);
+ utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this);
+ utils.removeEvent(window, 'mousemove', this);
+
+ if ( this.scroller.options.snap ) {
+ var snap = this.scroller._nearestSnap(this.scroller.x, this.scroller.y);
+
+ var time = this.options.snapSpeed || Math.max(
+ Math.max(
+ Math.min(Math.abs(this.scroller.x - snap.x), 1000),
+ Math.min(Math.abs(this.scroller.y - snap.y), 1000)
+ ), 300);
+
+ if ( this.scroller.x != snap.x || this.scroller.y != snap.y ) {
+ this.scroller.directionX = 0;
+ this.scroller.directionY = 0;
+ this.scroller.currentPage = snap;
+ this.scroller.scrollTo(snap.x, snap.y, time, this.scroller.options.bounceEasing);
+ }
+ }
+
+ if ( this.moved ) {
+ this.scroller._execEvent('scrollEnd');
+ }
+ },
+
+ transitionTime: function (time) {
+ time = time || 0;
+ this.indicatorStyle[utils.style.transitionDuration] = time + 'ms';
+
+ if ( !time && utils.isBadAndroid ) {
+ this.indicatorStyle[utils.style.transitionDuration] = '0.001s';
+ }
+ },
+
+ transitionTimingFunction: function (easing) {
+ this.indicatorStyle[utils.style.transitionTimingFunction] = easing;
+ },
+
+ refresh: function () {
+ this.transitionTime();
+
+ if ( this.options.listenX && !this.options.listenY ) {
+ this.indicatorStyle.display = this.scroller.hasHorizontalScroll ? 'block' : 'none';
+ } else if ( this.options.listenY && !this.options.listenX ) {
+ this.indicatorStyle.display = this.scroller.hasVerticalScroll ? 'block' : 'none';
+ } else {
+ this.indicatorStyle.display = this.scroller.hasHorizontalScroll || this.scroller.hasVerticalScroll ? 'block' : 'none';
+ }
+
+ if ( this.scroller.hasHorizontalScroll && this.scroller.hasVerticalScroll ) {
+ utils.addClass(this.wrapper, 'iScrollBothScrollbars');
+ utils.removeClass(this.wrapper, 'iScrollLoneScrollbar');
+
+ if ( this.options.defaultScrollbars && this.options.customStyle ) {
+ if ( this.options.listenX ) {
+ this.wrapper.style.right = '8px';
+ } else {
+ this.wrapper.style.bottom = '8px';
+ }
+ }
+ } else {
+ utils.removeClass(this.wrapper, 'iScrollBothScrollbars');
+ utils.addClass(this.wrapper, 'iScrollLoneScrollbar');
+
+ if ( this.options.defaultScrollbars && this.options.customStyle ) {
+ if ( this.options.listenX ) {
+ this.wrapper.style.right = '2px';
+ } else {
+ this.wrapper.style.bottom = '2px';
+ }
+ }
+ }
+
+ var r = this.wrapper.offsetHeight; // force refresh
+
+ if ( this.options.listenX ) {
+ this.wrapperWidth = this.wrapper.clientWidth;
+ if ( this.options.resize ) {
+ this.indicatorWidth = Math.max(Math.round(this.wrapperWidth * this.wrapperWidth / (this.scroller.scrollerWidth || this.wrapperWidth || 1)), 8);
+ this.indicatorStyle.width = this.indicatorWidth + 'px';
+ } else {
+ this.indicatorWidth = this.indicator.clientWidth;
+ }
+
+ this.maxPosX = this.wrapperWidth - this.indicatorWidth;
+
+ if ( this.options.shrink == 'clip' ) {
+ this.minBoundaryX = -this.indicatorWidth + 8;
+ this.maxBoundaryX = this.wrapperWidth - 8;
+ } else {
+ this.minBoundaryX = 0;
+ this.maxBoundaryX = this.maxPosX;
+ }
+
+ this.sizeRatioX = this.options.speedRatioX || (this.scroller.maxScrollX && (this.maxPosX / this.scroller.maxScrollX));
+ }
+
+ if ( this.options.listenY ) {
+ this.wrapperHeight = this.wrapper.clientHeight;
+ if ( this.options.resize ) {
+ this.indicatorHeight = Math.max(Math.round(this.wrapperHeight * this.wrapperHeight / (this.scroller.scrollerHeight || this.wrapperHeight || 1)), 8);
+ this.indicatorStyle.height = this.indicatorHeight + 'px';
+ } else {
+ this.indicatorHeight = this.indicator.clientHeight;
+ }
+
+ this.maxPosY = this.wrapperHeight - this.indicatorHeight;
+
+ if ( this.options.shrink == 'clip' ) {
+ this.minBoundaryY = -this.indicatorHeight + 8;
+ this.maxBoundaryY = this.wrapperHeight - 8;
+ } else {
+ this.minBoundaryY = 0;
+ this.maxBoundaryY = this.maxPosY;
+ }
+
+ this.maxPosY = this.wrapperHeight - this.indicatorHeight;
+ this.sizeRatioY = this.options.speedRatioY || (this.scroller.maxScrollY && (this.maxPosY / this.scroller.maxScrollY));
+ }
+
+ this.updatePosition();
+ },
+
+ updatePosition: function () {
+ var x = this.options.listenX && Math.round(this.sizeRatioX * this.scroller.x) || 0,
+ y = this.options.listenY && Math.round(this.sizeRatioY * this.scroller.y) || 0;
+
+ if ( !this.options.ignoreBoundaries ) {
+ if ( x < this.minBoundaryX ) {
+ if ( this.options.shrink == 'scale' ) {
+ this.width = Math.max(this.indicatorWidth + x, 8);
+ this.indicatorStyle.width = this.width + 'px';
+ }
+ x = this.minBoundaryX;
+ } else if ( x > this.maxBoundaryX ) {
+ if ( this.options.shrink == 'scale' ) {
+ this.width = Math.max(this.indicatorWidth - (x - this.maxPosX), 8);
+ this.indicatorStyle.width = this.width + 'px';
+ x = this.maxPosX + this.indicatorWidth - this.width;
+ } else {
+ x = this.maxBoundaryX;
+ }
+ } else if ( this.options.shrink == 'scale' && this.width != this.indicatorWidth ) {
+ this.width = this.indicatorWidth;
+ this.indicatorStyle.width = this.width + 'px';
+ }
+
+ if ( y < this.minBoundaryY ) {
+ if ( this.options.shrink == 'scale' ) {
+ this.height = Math.max(this.indicatorHeight + y * 3, 8);
+ this.indicatorStyle.height = this.height + 'px';
+ }
+ y = this.minBoundaryY;
+ } else if ( y > this.maxBoundaryY ) {
+ if ( this.options.shrink == 'scale' ) {
+ this.height = Math.max(this.indicatorHeight - (y - this.maxPosY) * 3, 8);
+ this.indicatorStyle.height = this.height + 'px';
+ y = this.maxPosY + this.indicatorHeight - this.height;
+ } else {
+ y = this.maxBoundaryY;
+ }
+ } else if ( this.options.shrink == 'scale' && this.height != this.indicatorHeight ) {
+ this.height = this.indicatorHeight;
+ this.indicatorStyle.height = this.height + 'px';
+ }
+ }
+
+ this.x = x;
+ this.y = y;
+
+ if ( this.scroller.options.useTransform ) {
+ this.indicatorStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.scroller.translateZ;
+ } else {
+ this.indicatorStyle.left = x + 'px';
+ this.indicatorStyle.top = y + 'px';
+ }
+ },
+
+ _pos: function (x, y) {
+ if ( x < 0 ) {
+ x = 0;
+ } else if ( x > this.maxPosX ) {
+ x = this.maxPosX;
+ }
+
+ if ( y < 0 ) {
+ y = 0;
+ } else if ( y > this.maxPosY ) {
+ y = this.maxPosY;
+ }
+
+ x = this.options.listenX ? Math.round(x / this.sizeRatioX) : this.scroller.x;
+ y = this.options.listenY ? Math.round(y / this.sizeRatioY) : this.scroller.y;
+
+ this.scroller.scrollTo(x, y);
+ },
+
+ fade: function (val, hold) {
+ if ( hold && !this.visible ) {
+ return;
+ }
+
+ clearTimeout(this.fadeTimeout);
+ this.fadeTimeout = null;
+
+ var time = val ? 250 : 500,
+ delay = val ? 0 : 300;
+
+ val = val ? '1' : '0';
+
+ this.wrapperStyle[utils.style.transitionDuration] = time + 'ms';
+
+ this.fadeTimeout = setTimeout((function (val) {
+ this.wrapperStyle.opacity = val;
+ this.visible = +val;
+ }).bind(this, val), delay);
+ }
+};
+
+IScroll.utils = utils;
+
+if ( typeof module != 'undefined' && module.exports ) {
+ module.exports = IScroll;
+} else {
+ window.IScroll = IScroll;
+}
+
+})(window, document, Math); \ No newline at end of file
diff --git a/StoneIsland/platforms/android/assets/www/js/vendor/iscroll.js b/StoneIsland/platforms/android/assets/www/js/vendor/iscroll.js
index 8bd2b8da..09e07d69 100755..100644
--- a/StoneIsland/platforms/android/assets/www/js/vendor/iscroll.js
+++ b/StoneIsland/platforms/android/assets/www/js/vendor/iscroll.js
@@ -1,2011 +1,2170 @@
-/*! iScroll v5.1.3 ~ (c) 2008-2014 Matteo Spinelli ~ http://cubiq.org/license */
+/*! iScroll v5.2.0-snapshot ~ (c) 2008-2017 Matteo Spinelli ~ http://cubiq.org/license */
(function (window, document, Math) {
-var rAF = window.requestAnimationFrame ||
- window.webkitRequestAnimationFrame ||
- window.mozRequestAnimationFrame ||
- window.oRequestAnimationFrame ||
- window.msRequestAnimationFrame ||
- function (callback) { window.setTimeout(callback, 1000 / 60); };
+var rAF = window.requestAnimationFrame ||
+ window.webkitRequestAnimationFrame ||
+ window.mozRequestAnimationFrame ||
+ window.oRequestAnimationFrame ||
+ window.msRequestAnimationFrame ||
+ function (callback) { window.setTimeout(callback, 1000 / 60); };
var utils = (function () {
- var me = {};
+ var me = {};
- var _elementStyle = document.createElement('div').style;
- var _vendor = (function () {
- var vendors = ['t', 'webkitT', 'MozT', 'msT', 'OT'],
- transform,
- i = 0,
- l = vendors.length;
+ var _elementStyle = document.createElement('div').style;
+ var _vendor = (function () {
+ var vendors = ['t', 'webkitT', 'MozT', 'msT', 'OT'],
+ transform,
+ i = 0,
+ l = vendors.length;
- for ( ; i < l; i++ ) {
- transform = vendors[i] + 'ransform';
- if ( transform in _elementStyle ) return vendors[i].substr(0, vendors[i].length-1);
- }
+ for ( ; i < l; i++ ) {
+ transform = vendors[i] + 'ransform';
+ if ( transform in _elementStyle ) return vendors[i].substr(0, vendors[i].length-1);
+ }
- return false;
- })();
+ return false;
+ })();
- function _prefixStyle (style) {
- if ( _vendor === false ) return false;
- if ( _vendor === '' ) return style;
- return _vendor + style.charAt(0).toUpperCase() + style.substr(1);
- }
+ function _prefixStyle (style) {
+ if ( _vendor === false ) return false;
+ if ( _vendor === '' ) return style;
+ return _vendor + style.charAt(0).toUpperCase() + style.substr(1);
+ }
- me.getTime = Date.now || function getTime () { return new Date().getTime(); };
+ me.getTime = Date.now || function getTime () { return new Date().getTime(); };
- me.extend = function (target, obj) {
- for ( var i in obj ) {
- target[i] = obj[i];
- }
- };
+ me.extend = function (target, obj) {
+ for ( var i in obj ) {
+ target[i] = obj[i];
+ }
+ };
- me.addEvent = function (el, type, fn, capture) {
- el.addEventListener(type, fn, !!capture);
- };
+ me.addEvent = function (el, type, fn, capture) {
+ el.addEventListener(type, fn, !!capture);
+ };
- me.removeEvent = function (el, type, fn, capture) {
- el.removeEventListener(type, fn, !!capture);
- };
+ me.removeEvent = function (el, type, fn, capture) {
+ el.removeEventListener(type, fn, !!capture);
+ };
- me.prefixPointerEvent = function (pointerEvent) {
- return window.MSPointerEvent ?
- 'MSPointer' + pointerEvent.charAt(9).toUpperCase() + pointerEvent.substr(10):
- pointerEvent;
- };
+ me.prefixPointerEvent = function (pointerEvent) {
+ return window.MSPointerEvent ?
+ 'MSPointer' + pointerEvent.charAt(7).toUpperCase() + pointerEvent.substr(8):
+ pointerEvent;
+ };
- me.momentum = function (current, start, time, lowerMargin, wrapperSize, deceleration) {
- var distance = current - start,
- speed = Math.abs(distance) / time,
- destination,
- duration;
+ me.momentum = function (current, start, time, lowerMargin, wrapperSize, deceleration) {
+ var distance = current - start,
+ speed = Math.abs(distance) / time,
+ destination,
+ duration;
- deceleration = deceleration === undefined ? 0.0006 : deceleration;
+ deceleration = deceleration === undefined ? 0.0006 : deceleration;
- destination = current + ( speed * speed ) / ( 2 * deceleration ) * ( distance < 0 ? -1 : 1 );
- duration = speed / deceleration;
+ destination = current + ( speed * speed ) / ( 2 * deceleration ) * ( distance < 0 ? -1 : 1 );
+ duration = speed / deceleration;
- if ( destination < lowerMargin ) {
- destination = wrapperSize ? lowerMargin - ( wrapperSize / 2.5 * ( speed / 8 ) ) : lowerMargin;
- distance = Math.abs(destination - current);
- duration = distance / speed;
- } else if ( destination > 0 ) {
- destination = wrapperSize ? wrapperSize / 2.5 * ( speed / 8 ) : 0;
- distance = Math.abs(current) + destination;
- duration = distance / speed;
- }
+ if ( destination < lowerMargin ) {
+ destination = wrapperSize ? lowerMargin - ( wrapperSize / 2.5 * ( speed / 8 ) ) : lowerMargin;
+ distance = Math.abs(destination - current);
+ duration = distance / speed;
+ } else if ( destination > 0 ) {
+ destination = wrapperSize ? wrapperSize / 2.5 * ( speed / 8 ) : 0;
+ distance = Math.abs(current) + destination;
+ duration = distance / speed;
+ }
- return {
- destination: Math.round(destination),
- duration: duration
- };
- };
+ return {
+ destination: Math.round(destination),
+ duration: duration
+ };
+ };
- var _transform = _prefixStyle('transform');
+ var _transform = _prefixStyle('transform');
- me.extend(me, {
- hasTransform: _transform !== false,
- hasPerspective: _prefixStyle('perspective') in _elementStyle,
- hasTouch: 'ontouchstart' in window,
- hasPointer: window.PointerEvent || window.MSPointerEvent, // IE10 is prefixed
- hasTransition: _prefixStyle('transition') in _elementStyle
- });
+ me.extend(me, {
+ hasTransform: _transform !== false,
+ hasPerspective: _prefixStyle('perspective') in _elementStyle,
+ hasTouch: 'ontouchstart' in window,
+ hasPointer: !!(window.PointerEvent || window.MSPointerEvent), // IE10 is prefixed
+ hasTransition: _prefixStyle('transition') in _elementStyle
+ });
- // This should find all Android browsers lower than build 535.19 (both stock browser and webview)
- me.isBadAndroid = /Android /.test(window.navigator.appVersion) && !(/Chrome\/\d/.test(window.navigator.appVersion));
+ /*
+ This should find all Android browsers lower than build 535.19 (both stock browser and webview)
+ - galaxy S2 is ok
+ - 2.3.6 : `AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1`
+ - 4.0.4 : `AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30`
+ - galaxy S3 is badAndroid (stock brower, webview)
+ `AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30`
+ - galaxy S4 is badAndroid (stock brower, webview)
+ `AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30`
+ - galaxy S5 is OK
+ `AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.36 (Chrome/)`
+ - galaxy S6 is OK
+ `AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.36 (Chrome/)`
+ */
+ me.isBadAndroid = (function() {
+ var appVersion = window.navigator.appVersion;
+ // Android browser is not a chrome browser.
+ if (/Android/.test(appVersion) && !(/Chrome\/\d/.test(appVersion))) {
+ var safariVersion = appVersion.match(/Safari\/(\d+.\d)/);
+ if(safariVersion && typeof safariVersion === "object" && safariVersion.length >= 2) {
+ return parseFloat(safariVersion[1]) < 535.19;
+ } else {
+ return true;
+ }
+ } else {
+ return false;
+ }
+ })();
- me.extend(me.style = {}, {
- transform: _transform,
- transitionTimingFunction: _prefixStyle('transitionTimingFunction'),
- transitionDuration: _prefixStyle('transitionDuration'),
- transitionDelay: _prefixStyle('transitionDelay'),
- transformOrigin: _prefixStyle('transformOrigin')
- });
+ me.extend(me.style = {}, {
+ transform: _transform,
+ transitionTimingFunction: _prefixStyle('transitionTimingFunction'),
+ transitionDuration: _prefixStyle('transitionDuration'),
+ transitionDelay: _prefixStyle('transitionDelay'),
+ transformOrigin: _prefixStyle('transformOrigin'),
+ touchAction: _prefixStyle('touchAction')
+ });
- me.hasClass = function (e, c) {
- var re = new RegExp("(^|\\s)" + c + "(\\s|$)");
- return re.test(e.className);
- };
+ me.hasClass = function (e, c) {
+ var re = new RegExp("(^|\\s)" + c + "(\\s|$)");
+ return re.test(e.className);
+ };
- me.addClass = function (e, c) {
- if ( me.hasClass(e, c) ) {
- return;
- }
+ me.addClass = function (e, c) {
+ if ( me.hasClass(e, c) ) {
+ return;
+ }
- var newclass = e.className.split(' ');
- newclass.push(c);
- e.className = newclass.join(' ');
- };
+ var newclass = e.className.split(' ');
+ newclass.push(c);
+ e.className = newclass.join(' ');
+ };
- me.removeClass = function (e, c) {
- if ( !me.hasClass(e, c) ) {
- return;
- }
+ me.removeClass = function (e, c) {
+ if ( !me.hasClass(e, c) ) {
+ return;
+ }
- var re = new RegExp("(^|\\s)" + c + "(\\s|$)", 'g');
- e.className = e.className.replace(re, ' ');
- };
+ var re = new RegExp("(^|\\s)" + c + "(\\s|$)", 'g');
+ e.className = e.className.replace(re, ' ');
+ };
- me.offset = function (el) {
- var left = -el.offsetLeft,
- top = -el.offsetTop;
+ me.offset = function (el) {
+ var left = -el.offsetLeft,
+ top = -el.offsetTop;
- // jshint -W084
- while (el = el.offsetParent) {
- left -= el.offsetLeft;
- top -= el.offsetTop;
- }
- // jshint +W084
+ // jshint -W084
+ while (el = el.offsetParent) {
+ left -= el.offsetLeft;
+ top -= el.offsetTop;
+ }
+ // jshint +W084
- return {
- left: left,
- top: top
- };
- };
+ return {
+ left: left,
+ top: top
+ };
+ };
- me.preventDefaultException = function (el, exceptions) {
- for ( var i in exceptions ) {
- if ( exceptions[i].test(el[i]) ) {
- return true;
- }
- }
+ me.preventDefaultException = function (el, exceptions) {
+ for ( var i in exceptions ) {
+ if ( exceptions[i].test(el[i]) ) {
+ return true;
+ }
+ }
- return false;
- };
+ return false;
+ };
- me.extend(me.eventType = {}, {
- touchstart: 1,
- touchmove: 1,
- touchend: 1,
+ me.extend(me.eventType = {}, {
+ touchstart: 1,
+ touchmove: 1,
+ touchend: 1,
- mousedown: 2,
- mousemove: 2,
- mouseup: 2,
+ mousedown: 2,
+ mousemove: 2,
+ mouseup: 2,
- pointerdown: 3,
- pointermove: 3,
- pointerup: 3,
+ pointerdown: 3,
+ pointermove: 3,
+ pointerup: 3,
- MSPointerDown: 3,
- MSPointerMove: 3,
- MSPointerUp: 3
- });
+ MSPointerDown: 3,
+ MSPointerMove: 3,
+ MSPointerUp: 3
+ });
- me.extend(me.ease = {}, {
- quadratic: {
- style: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',
- fn: function (k) {
- return k * ( 2 - k );
- }
- },
- circular: {
- style: 'cubic-bezier(0.1, 0.57, 0.1, 1)', // Not properly "circular" but this looks better, it should be (0.075, 0.82, 0.165, 1)
- fn: function (k) {
- return Math.sqrt( 1 - ( --k * k ) );
- }
- },
- back: {
- style: 'cubic-bezier(0.175, 0.885, 0.32, 1.275)',
- fn: function (k) {
- var b = 4;
- return ( k = k - 1 ) * k * ( ( b + 1 ) * k + b ) + 1;
- }
- },
- bounce: {
- style: '',
- fn: function (k) {
- if ( ( k /= 1 ) < ( 1 / 2.75 ) ) {
- return 7.5625 * k * k;
- } else if ( k < ( 2 / 2.75 ) ) {
- return 7.5625 * ( k -= ( 1.5 / 2.75 ) ) * k + 0.75;
- } else if ( k < ( 2.5 / 2.75 ) ) {
- return 7.5625 * ( k -= ( 2.25 / 2.75 ) ) * k + 0.9375;
- } else {
- return 7.5625 * ( k -= ( 2.625 / 2.75 ) ) * k + 0.984375;
- }
- }
- },
- elastic: {
- style: '',
- fn: function (k) {
- var f = 0.22,
- e = 0.4;
+ me.extend(me.ease = {}, {
+ quadratic: {
+ style: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',
+ fn: function (k) {
+ return k * ( 2 - k );
+ }
+ },
+ circular: {
+ style: 'cubic-bezier(0.1, 0.57, 0.1, 1)', // Not properly "circular" but this looks better, it should be (0.075, 0.82, 0.165, 1)
+ fn: function (k) {
+ return Math.sqrt( 1 - ( --k * k ) );
+ }
+ },
+ back: {
+ style: 'cubic-bezier(0.175, 0.885, 0.32, 1.275)',
+ fn: function (k) {
+ var b = 4;
+ return ( k = k - 1 ) * k * ( ( b + 1 ) * k + b ) + 1;
+ }
+ },
+ bounce: {
+ style: '',
+ fn: function (k) {
+ if ( ( k /= 1 ) < ( 1 / 2.75 ) ) {
+ return 7.5625 * k * k;
+ } else if ( k < ( 2 / 2.75 ) ) {
+ return 7.5625 * ( k -= ( 1.5 / 2.75 ) ) * k + 0.75;
+ } else if ( k < ( 2.5 / 2.75 ) ) {
+ return 7.5625 * ( k -= ( 2.25 / 2.75 ) ) * k + 0.9375;
+ } else {
+ return 7.5625 * ( k -= ( 2.625 / 2.75 ) ) * k + 0.984375;
+ }
+ }
+ },
+ elastic: {
+ style: '',
+ fn: function (k) {
+ var f = 0.22,
+ e = 0.4;
- if ( k === 0 ) { return 0; }
- if ( k == 1 ) { return 1; }
+ if ( k === 0 ) { return 0; }
+ if ( k == 1 ) { return 1; }
- return ( e * Math.pow( 2, - 10 * k ) * Math.sin( ( k - f / 4 ) * ( 2 * Math.PI ) / f ) + 1 );
- }
- }
- });
+ return ( e * Math.pow( 2, - 10 * k ) * Math.sin( ( k - f / 4 ) * ( 2 * Math.PI ) / f ) + 1 );
+ }
+ }
+ });
- me.tap = function (e, eventName) {
- var ev = document.createEvent('Event');
- ev.initEvent(eventName, true, true);
- ev.pageX = e.pageX;
- ev.pageY = e.pageY;
- e.target.dispatchEvent(ev);
- };
+ me.tap = function (e, eventName) {
+ var ev = document.createEvent('Event');
+ ev.initEvent(eventName, true, true);
+ ev.pageX = e.pageX;
+ ev.pageY = e.pageY;
+ e.target.dispatchEvent(ev);
+ };
- me.click = function (e) {
- var target = e.target,
- ev;
+ me.click = function (e) {
+ var target = e.target,
+ ev;
- if ( !(/(SELECT|INPUT|TEXTAREA)/i).test(target.tagName) ) {
- ev = document.createEvent('MouseEvents');
- ev.initMouseEvent('click', true, true, e.view, 1,
- target.screenX, target.screenY, target.clientX, target.clientY,
- e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,
- 0, null);
+ if ( !(/(SELECT|INPUT|TEXTAREA)/i).test(target.tagName) ) {
+ // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/initMouseEvent
+ // initMouseEvent is deprecated.
+ ev = document.createEvent(window.MouseEvent ? 'MouseEvents' : 'Event');
+ ev.initEvent('click', true, true);
+ ev.view = e.view || window;
+ ev.detail = 1;
+ ev.screenX = target.screenX || 0;
+ ev.screenY = target.screenY || 0;
+ ev.clientX = target.clientX || 0;
+ ev.clientY = target.clientY || 0;
+ ev.ctrlKey = !!e.ctrlKey;
+ ev.altKey = !!e.altKey;
+ ev.shiftKey = !!e.shiftKey;
+ ev.metaKey = !!e.metaKey;
+ ev.button = 0;
+ ev.relatedTarget = null;
+ ev._constructed = true;
+ target.dispatchEvent(ev);
+ }
+ };
- ev._constructed = true;
- target.dispatchEvent(ev);
- }
- };
+ me.getTouchAction = function(eventPassthrough, addPinch) {
+ var touchAction = 'none';
+ if ( eventPassthrough === 'vertical' ) {
+ touchAction = 'pan-y';
+ } else if (eventPassthrough === 'horizontal' ) {
+ touchAction = 'pan-x';
+ }
+ if (addPinch && touchAction != 'none') {
+ // add pinch-zoom support if the browser supports it, but if not (eg. Chrome <55) do nothing
+ touchAction += ' pinch-zoom';
+ }
+ return touchAction;
+ };
- return me;
-})();
+ me.getRect = function(el) {
+ if (el instanceof SVGElement) {
+ var rect = el.getBoundingClientRect();
+ return {
+ top : rect.top,
+ left : rect.left,
+ width : rect.width,
+ height : rect.height
+ };
+ } else {
+ return {
+ top : el.offsetTop,
+ left : el.offsetLeft,
+ width : el.offsetWidth,
+ height : el.offsetHeight
+ };
+ }
+ };
+ return me;
+})();
function IScroll (el, options) {
- this.wrapper = typeof el == 'string' ? document.querySelector(el) : el;
- this.scroller = this.wrapper.children[0];
- this.scrollerStyle = this.scroller.style; // cache style for better performance
+ this.wrapper = typeof el == 'string' ? document.querySelector(el) : el;
+ this.scroller = this.wrapper.children[0];
+ this.scrollerStyle = this.scroller.style; // cache style for better performance
- this.options = {
+ this.options = {
- resizeScrollbars: true,
+ resizeScrollbars: true,
- mouseWheelSpeed: 20,
+ mouseWheelSpeed: 20,
- snapThreshold: 0.334,
+ snapThreshold: 0.334,
-// INSERT POINT: OPTIONS
+// INSERT POINT: OPTIONS
+ disablePointer : !utils.hasPointer,
+ disableTouch : utils.hasPointer || !utils.hasTouch,
+ disableMouse : utils.hasPointer || utils.hasTouch,
+ startX: 0,
+ startY: 0,
+ scrollY: true,
+ directionLockThreshold: 5,
+ momentum: true,
- startX: 0,
- startY: 0,
- scrollY: true,
- directionLockThreshold: 5,
- momentum: true,
+ bounce: true,
+ bounceTime: 600,
+ bounceEasing: '',
- bounce: true,
- bounceTime: 600,
- bounceEasing: '',
+ preventDefault: true,
+ preventDefaultException: { tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT)$/ },
- preventDefault: true,
- preventDefaultException: { tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT)$/ },
+ HWCompositing: true,
+ useTransition: true,
+ useTransform: true,
+ bindToWrapper: typeof window.onmousedown === "undefined"
+ };
- HWCompositing: true,
- useTransition: true,
- useTransform: true
- };
+ for ( var i in options ) {
+ this.options[i] = options[i];
+ }
- for ( var i in options ) {
- this.options[i] = options[i];
- }
+ // Normalize options
+ this.translateZ = this.options.HWCompositing && utils.hasPerspective ? ' translateZ(0)' : '';
- // Normalize options
- this.translateZ = this.options.HWCompositing && utils.hasPerspective ? ' translateZ(0)' : '';
+ this.options.useTransition = utils.hasTransition && this.options.useTransition;
+ this.options.useTransform = utils.hasTransform && this.options.useTransform;
- this.options.useTransition = utils.hasTransition && this.options.useTransition;
- this.options.useTransform = utils.hasTransform && this.options.useTransform;
+ this.options.eventPassthrough = this.options.eventPassthrough === true ? 'vertical' : this.options.eventPassthrough;
+ this.options.preventDefault = !this.options.eventPassthrough && this.options.preventDefault;
- this.options.eventPassthrough = this.options.eventPassthrough === true ? 'vertical' : this.options.eventPassthrough;
- this.options.preventDefault = !this.options.eventPassthrough && this.options.preventDefault;
+ // If you want eventPassthrough I have to lock one of the axes
+ this.options.scrollY = this.options.eventPassthrough == 'vertical' ? false : this.options.scrollY;
+ this.options.scrollX = this.options.eventPassthrough == 'horizontal' ? false : this.options.scrollX;
- // If you want eventPassthrough I have to lock one of the axes
- this.options.scrollY = this.options.eventPassthrough == 'vertical' ? false : this.options.scrollY;
- this.options.scrollX = this.options.eventPassthrough == 'horizontal' ? false : this.options.scrollX;
+ // With eventPassthrough we also need lockDirection mechanism
+ this.options.freeScroll = this.options.freeScroll && !this.options.eventPassthrough;
+ this.options.directionLockThreshold = this.options.eventPassthrough ? 0 : this.options.directionLockThreshold;
- // With eventPassthrough we also need lockDirection mechanism
- this.options.freeScroll = this.options.freeScroll && !this.options.eventPassthrough;
- this.options.directionLockThreshold = this.options.eventPassthrough ? 0 : this.options.directionLockThreshold;
+ this.options.bounceEasing = typeof this.options.bounceEasing == 'string' ? utils.ease[this.options.bounceEasing] || utils.ease.circular : this.options.bounceEasing;
- this.options.bounceEasing = typeof this.options.bounceEasing == 'string' ? utils.ease[this.options.bounceEasing] || utils.ease.circular : this.options.bounceEasing;
+ this.options.resizePolling = this.options.resizePolling === undefined ? 60 : this.options.resizePolling;
- this.options.resizePolling = this.options.resizePolling === undefined ? 60 : this.options.resizePolling;
+ if ( this.options.tap === true ) {
+ this.options.tap = 'tap';
+ }
- if ( this.options.tap === true ) {
- this.options.tap = 'tap';
- }
+ // https://github.com/cubiq/iscroll/issues/1029
+ if (!this.options.useTransition && !this.options.useTransform) {
+ if(!(/relative|absolute/i).test(this.scrollerStyle.position)) {
+ this.scrollerStyle.position = "relative";
+ }
+ }
- if ( this.options.shrinkScrollbars == 'scale' ) {
- this.options.useTransition = false;
- }
+ if ( this.options.shrinkScrollbars == 'scale' ) {
+ this.options.useTransition = false;
+ }
- this.options.invertWheelDirection = this.options.invertWheelDirection ? -1 : 1;
+ this.options.invertWheelDirection = this.options.invertWheelDirection ? -1 : 1;
// INSERT POINT: NORMALIZATION
- // Some defaults
- this.x = 0;
- this.y = 0;
- this.directionX = 0;
- this.directionY = 0;
- this._events = {};
+ // Some defaults
+ this.x = 0;
+ this.y = 0;
+ this.directionX = 0;
+ this.directionY = 0;
+ this._events = {};
// INSERT POINT: DEFAULTS
- this._init();
- this.refresh();
+ this._init();
+ this.refresh();
- this.scrollTo(this.options.startX, this.options.startY);
- this.enable();
+ this.scrollTo(this.options.startX, this.options.startY);
+ this.enable();
}
IScroll.prototype = {
- version: '5.1.3',
+ version: '5.2.0-snapshot',
- _init: function () {
- this._initEvents();
+ _init: function () {
+ this._initEvents();
- if ( this.options.scrollbars || this.options.indicators ) {
- this._initIndicators();
- }
+ if ( this.options.scrollbars || this.options.indicators ) {
+ this._initIndicators();
+ }
- if ( this.options.mouseWheel ) {
- this._initWheel();
- }
+ if ( this.options.mouseWheel ) {
+ this._initWheel();
+ }
- if ( this.options.snap ) {
- this._initSnap();
- }
+ if ( this.options.snap ) {
+ this._initSnap();
+ }
- if ( this.options.keyBindings ) {
- this._initKeys();
- }
+ if ( this.options.keyBindings ) {
+ this._initKeys();
+ }
// INSERT POINT: _init
- },
-
- destroy: function () {
- this._initEvents(true);
-
- this._execEvent('destroy');
- },
+ },
- _transitionEnd: function (e) {
- if ( e.target != this.scroller || !this.isInTransition ) {
- return;
- }
+ destroy: function () {
+ this._initEvents(true);
+ clearTimeout(this.resizeTimeout);
+ this.resizeTimeout = null;
+ this._execEvent('destroy');
+ },
- this._transitionTime();
- if ( !this.resetPosition(this.options.bounceTime) ) {
- this.isInTransition = false;
- this._execEvent('scrollEnd');
- }
- },
+ _transitionEnd: function (e) {
+ if ( e.target != this.scroller || !this.isInTransition ) {
+ return;
+ }
- _start: function (e) {
- // React to left mouse button only
- if ( utils.eventType[e.type] != 1 ) {
- if ( e.button !== 0 ) {
- return;
- }
- }
+ this._transitionTime();
+ if ( !this.resetPosition(this.options.bounceTime) ) {
+ this.isInTransition = false;
+ this._execEvent('scrollEnd');
+ }
+ },
- if ( !this.enabled || (this.initiated && utils.eventType[e.type] !== this.initiated) ) {
- return;
- }
+ _start: function (e) {
+ // React to left mouse button only
+ if ( utils.eventType[e.type] != 1 ) {
+ // for button property
+ // http://unixpapa.com/js/mouse.html
+ var button;
+ if (!e.which) {
+ /* IE case */
+ button = (e.button < 2) ? 0 :
+ ((e.button == 4) ? 1 : 2);
+ } else {
+ /* All others */
+ button = e.button;
+ }
+ if ( button !== 0 ) {
+ return;
+ }
+ }
- if ( this.options.preventDefault && !utils.isBadAndroid && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) {
- e.preventDefault();
- }
+ if ( !this.enabled || (this.initiated && utils.eventType[e.type] !== this.initiated) ) {
+ return;
+ }
- var point = e.touches ? e.touches[0] : e,
- pos;
+ if ( this.options.preventDefault && !utils.isBadAndroid && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) {
+ e.preventDefault();
+ }
- this.initiated = utils.eventType[e.type];
- this.moved = false;
- this.distX = 0;
- this.distY = 0;
- this.directionX = 0;
- this.directionY = 0;
- this.directionLocked = 0;
+ var point = e.touches ? e.touches[0] : e,
+ pos;
- this._transitionTime();
+ this.initiated = utils.eventType[e.type];
+ this.moved = false;
+ this.distX = 0;
+ this.distY = 0;
+ this.directionX = 0;
+ this.directionY = 0;
+ this.directionLocked = 0;
- this.startTime = utils.getTime();
+ this.startTime = utils.getTime();
- if ( this.options.useTransition && this.isInTransition ) {
- this.isInTransition = false;
- pos = this.getComputedPosition();
- this._translate(Math.round(pos.x), Math.round(pos.y));
- this._execEvent('scrollEnd');
- } else if ( !this.options.useTransition && this.isAnimating ) {
- this.isAnimating = false;
- this._execEvent('scrollEnd');
- }
+ if ( this.options.useTransition && this.isInTransition ) {
+ this._transitionTime();
+ this.isInTransition = false;
+ pos = this.getComputedPosition();
+ this._translate(Math.round(pos.x), Math.round(pos.y));
+ this._execEvent('scrollEnd');
+ } else if ( !this.options.useTransition && this.isAnimating ) {
+ this.isAnimating = false;
+ this._execEvent('scrollEnd');
+ }
- this.startX = this.x;
- this.startY = this.y;
- this.absStartX = this.x;
- this.absStartY = this.y;
- this.pointX = point.pageX;
- this.pointY = point.pageY;
+ this.startX = this.x;
+ this.startY = this.y;
+ this.absStartX = this.x;
+ this.absStartY = this.y;
+ this.pointX = point.pageX;
+ this.pointY = point.pageY;
- this._execEvent('beforeScrollStart');
- },
+ this._execEvent('beforeScrollStart');
+ },
- _move: function (e) {
- if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) {
- return;
- }
+ _move: function (e) {
+ if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) {
+ return;
+ }
- if ( this.options.preventDefault ) { // increases performance on Android? TODO: check!
- e.preventDefault();
- }
+ if ( this.options.preventDefault ) { // increases performance on Android? TODO: check!
+ e.preventDefault();
+ }
- var point = e.touches ? e.touches[0] : e,
- deltaX = point.pageX - this.pointX,
- deltaY = point.pageY - this.pointY,
- timestamp = utils.getTime(),
- newX, newY,
- absDistX, absDistY;
+ var point = e.touches ? e.touches[0] : e,
+ deltaX = point.pageX - this.pointX,
+ deltaY = point.pageY - this.pointY,
+ timestamp = utils.getTime(),
+ newX, newY,
+ absDistX, absDistY;
- this.pointX = point.pageX;
- this.pointY = point.pageY;
+ this.pointX = point.pageX;
+ this.pointY = point.pageY;
- this.distX += deltaX;
- this.distY += deltaY;
- absDistX = Math.abs(this.distX);
- absDistY = Math.abs(this.distY);
+ this.distX += deltaX;
+ this.distY += deltaY;
+ absDistX = Math.abs(this.distX);
+ absDistY = Math.abs(this.distY);
- // We need to move at least 10 pixels for the scrolling to initiate
- if ( timestamp - this.endTime > 300 && (absDistX < 10 && absDistY < 10) ) {
- return;
- }
+ // We need to move at least 10 pixels for the scrolling to initiate
+ if ( timestamp - this.endTime > 300 && (absDistX < 10 && absDistY < 10) ) {
+ return;
+ }
- // If you are scrolling in one direction lock the other
- if ( !this.directionLocked && !this.options.freeScroll ) {
- if ( absDistX > absDistY + this.options.directionLockThreshold ) {
- this.directionLocked = 'h'; // lock horizontally
- } else if ( absDistY >= absDistX + this.options.directionLockThreshold ) {
- this.directionLocked = 'v'; // lock vertically
- } else {
- this.directionLocked = 'n'; // no lock
- }
- }
+ // If you are scrolling in one direction lock the other
+ if ( !this.directionLocked && !this.options.freeScroll ) {
+ if ( absDistX > absDistY + this.options.directionLockThreshold ) {
+ this.directionLocked = 'h'; // lock horizontally
+ } else if ( absDistY >= absDistX + this.options.directionLockThreshold ) {
+ this.directionLocked = 'v'; // lock vertically
+ } else {
+ this.directionLocked = 'n'; // no lock
+ }
+ }
- if ( this.directionLocked == 'h' ) {
- if ( this.options.eventPassthrough == 'vertical' ) {
- e.preventDefault();
- } else if ( this.options.eventPassthrough == 'horizontal' ) {
- this.initiated = false;
- return;
- }
+ if ( this.directionLocked == 'h' ) {
+ if ( this.options.eventPassthrough == 'vertical' ) {
+ e.preventDefault();
+ } else if ( this.options.eventPassthrough == 'horizontal' ) {
+ this.initiated = false;
+ return;
+ }
- deltaY = 0;
- } else if ( this.directionLocked == 'v' ) {
- if ( this.options.eventPassthrough == 'horizontal' ) {
- e.preventDefault();
- } else if ( this.options.eventPassthrough == 'vertical' ) {
- this.initiated = false;
- return;
- }
+ deltaY = 0;
+ } else if ( this.directionLocked == 'v' ) {
+ if ( this.options.eventPassthrough == 'horizontal' ) {
+ e.preventDefault();
+ } else if ( this.options.eventPassthrough == 'vertical' ) {
+ this.initiated = false;
+ return;
+ }
- deltaX = 0;
- }
+ deltaX = 0;
+ }
- deltaX = this.hasHorizontalScroll ? deltaX : 0;
- deltaY = this.hasVerticalScroll ? deltaY : 0;
+ deltaX = this.hasHorizontalScroll ? deltaX : 0;
+ deltaY = this.hasVerticalScroll ? deltaY : 0;
- newX = this.x + deltaX;
- newY = this.y + deltaY;
+ newX = this.x + deltaX;
+ newY = this.y + deltaY;
- // Slow down if outside of the boundaries
- if ( newX > 0 || newX < this.maxScrollX ) {
- newX = this.options.bounce ? this.x + deltaX / 3 : newX > 0 ? 0 : this.maxScrollX;
- }
- if ( newY > 0 || newY < this.maxScrollY ) {
- newY = this.options.bounce ? this.y + deltaY / 3 : newY > 0 ? 0 : this.maxScrollY;
- }
+ // Slow down if outside of the boundaries
+ if ( newX > 0 || newX < this.maxScrollX ) {
+ newX = this.options.bounce ? this.x + deltaX / 3 : newX > 0 ? 0 : this.maxScrollX;
+ }
+ if ( newY > 0 || newY < this.maxScrollY ) {
+ newY = this.options.bounce ? this.y + deltaY / 3 : newY > 0 ? 0 : this.maxScrollY;
+ }
- this.directionX = deltaX > 0 ? -1 : deltaX < 0 ? 1 : 0;
- this.directionY = deltaY > 0 ? -1 : deltaY < 0 ? 1 : 0;
+ this.directionX = deltaX > 0 ? -1 : deltaX < 0 ? 1 : 0;
+ this.directionY = deltaY > 0 ? -1 : deltaY < 0 ? 1 : 0;
- if ( !this.moved ) {
- this._execEvent('scrollStart');
- }
+ if ( !this.moved ) {
+ this._execEvent('scrollStart');
+ }
- this.moved = true;
+ this.moved = true;
- this._translate(newX, newY);
+ this._translate(newX, newY);
/* REPLACE START: _move */
- if ( timestamp - this.startTime > 300 ) {
- this.startTime = timestamp;
- this.startX = this.x;
- this.startY = this.y;
- }
+ if ( timestamp - this.startTime > 300 ) {
+ this.startTime = timestamp;
+ this.startX = this.x;
+ this.startY = this.y;
+ }
/* REPLACE END: _move */
- },
+ },
- _end: function (e) {
- if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) {
- return;
- }
+ _end: function (e) {
+ if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) {
+ return;
+ }
- if ( this.options.preventDefault && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) {
- e.preventDefault();
- }
+ if ( this.options.preventDefault && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) {
+ e.preventDefault();
+ }
- var point = e.changedTouches ? e.changedTouches[0] : e,
- momentumX,
- momentumY,
- duration = utils.getTime() - this.startTime,
- newX = Math.round(this.x),
- newY = Math.round(this.y),
- distanceX = Math.abs(newX - this.startX),
- distanceY = Math.abs(newY - this.startY),
- time = 0,
- easing = '';
+ var point = e.changedTouches ? e.changedTouches[0] : e,
+ momentumX,
+ momentumY,
+ duration = utils.getTime() - this.startTime,
+ newX = Math.round(this.x),
+ newY = Math.round(this.y),
+ distanceX = Math.abs(newX - this.startX),
+ distanceY = Math.abs(newY - this.startY),
+ time = 0,
+ easing = '';
- this.isInTransition = 0;
- this.initiated = 0;
- this.endTime = utils.getTime();
+ this.isInTransition = 0;
+ this.initiated = 0;
+ this.endTime = utils.getTime();
- // reset if we are outside of the boundaries
- if ( this.resetPosition(this.options.bounceTime) ) {
- return;
- }
+ // reset if we are outside of the boundaries
+ if ( this.resetPosition(this.options.bounceTime) ) {
+ return;
+ }
- this.scrollTo(newX, newY); // ensures that the last position is rounded
+ this.scrollTo(newX, newY); // ensures that the last position is rounded
- // we scrolled less than 10 pixels
- if ( !this.moved ) {
- if ( this.options.tap ) {
- utils.tap(e, this.options.tap);
- }
+ // we scrolled less than 10 pixels
+ if ( !this.moved ) {
+ if ( this.options.tap ) {
+ utils.tap(e, this.options.tap);
+ }
- if ( this.options.click ) {
- utils.click(e);
- }
+ if ( this.options.click ) {
+ utils.click(e);
+ }
- this._execEvent('scrollCancel');
- return;
- }
+ this._execEvent('scrollCancel');
+ return;
+ }
- if ( this._events.flick && duration < 200 && distanceX < 100 && distanceY < 100 ) {
- this._execEvent('flick');
- return;
- }
+ if ( this._events.flick && duration < 200 && distanceX < 100 && distanceY < 100 ) {
+ this._execEvent('flick');
+ return;
+ }
- // start momentum animation if needed
- if ( this.options.momentum && duration < 300 ) {
- momentumX = this.hasHorizontalScroll ? utils.momentum(this.x, this.startX, duration, this.maxScrollX, this.options.bounce ? this.wrapperWidth : 0, this.options.deceleration) : { destination: newX, duration: 0 };
- momentumY = this.hasVerticalScroll ? utils.momentum(this.y, this.startY, duration, this.maxScrollY, this.options.bounce ? this.wrapperHeight : 0, this.options.deceleration) : { destination: newY, duration: 0 };
- newX = momentumX.destination;
- newY = momentumY.destination;
- time = Math.max(momentumX.duration, momentumY.duration);
- this.isInTransition = 1;
- }
+ // start momentum animation if needed
+ if ( this.options.momentum && duration < 300 ) {
+ momentumX = this.hasHorizontalScroll ? utils.momentum(this.x, this.startX, duration, this.maxScrollX, this.options.bounce ? this.wrapperWidth : 0, this.options.deceleration) : { destination: newX, duration: 0 };
+ momentumY = this.hasVerticalScroll ? utils.momentum(this.y, this.startY, duration, this.maxScrollY, this.options.bounce ? this.wrapperHeight : 0, this.options.deceleration) : { destination: newY, duration: 0 };
+ newX = momentumX.destination;
+ newY = momentumY.destination;
+ time = Math.max(momentumX.duration, momentumY.duration);
+ this.isInTransition = 1;
+ }
- if ( this.options.snap ) {
- var snap = this._nearestSnap(newX, newY);
- this.currentPage = snap;
- time = this.options.snapSpeed || Math.max(
- Math.max(
- Math.min(Math.abs(newX - snap.x), 1000),
- Math.min(Math.abs(newY - snap.y), 1000)
- ), 300);
- newX = snap.x;
- newY = snap.y;
+ if ( this.options.snap ) {
+ var snap = this._nearestSnap(newX, newY);
+ this.currentPage = snap;
+ time = this.options.snapSpeed || Math.max(
+ Math.max(
+ Math.min(Math.abs(newX - snap.x), 1000),
+ Math.min(Math.abs(newY - snap.y), 1000)
+ ), 300);
+ newX = snap.x;
+ newY = snap.y;
- this.directionX = 0;
- this.directionY = 0;
- easing = this.options.bounceEasing;
- }
+ this.directionX = 0;
+ this.directionY = 0;
+ easing = this.options.bounceEasing;
+ }
// INSERT POINT: _end
- if ( newX != this.x || newY != this.y ) {
- // change easing function when scroller goes out of the boundaries
- if ( newX > 0 || newX < this.maxScrollX || newY > 0 || newY < this.maxScrollY ) {
- easing = utils.ease.quadratic;
- }
+ if ( newX != this.x || newY != this.y ) {
+ // change easing function when scroller goes out of the boundaries
+ if ( newX > 0 || newX < this.maxScrollX || newY > 0 || newY < this.maxScrollY ) {
+ easing = utils.ease.quadratic;
+ }
- this.scrollTo(newX, newY, time, easing);
- return;
- }
+ this.scrollTo(newX, newY, time, easing);
+ return;
+ }
- this._execEvent('scrollEnd');
- },
+ this._execEvent('scrollEnd');
+ },
- _resize: function () {
- var that = this;
+ _resize: function () {
+ var that = this;
- clearTimeout(this.resizeTimeout);
+ clearTimeout(this.resizeTimeout);
- this.resizeTimeout = setTimeout(function () {
- that.refresh();
- }, this.options.resizePolling);
- },
+ this.resizeTimeout = setTimeout(function () {
+ that.refresh();
+ }, this.options.resizePolling);
+ },
- resetPosition: function (time) {
- var x = this.x,
- y = this.y;
+ resetPosition: function (time) {
+ var x = this.x,
+ y = this.y;
- time = time || 0;
+ time = time || 0;
- if ( !this.hasHorizontalScroll || this.x > 0 ) {
- x = 0;
- } else if ( this.x < this.maxScrollX ) {
- x = this.maxScrollX;
- }
+ if ( !this.hasHorizontalScroll || this.x > 0 ) {
+ x = 0;
+ } else if ( this.x < this.maxScrollX ) {
+ x = this.maxScrollX;
+ }
- if ( !this.hasVerticalScroll || this.y > 0 ) {
- y = 0;
- } else if ( this.y < this.maxScrollY ) {
- y = this.maxScrollY;
- }
+ if ( !this.hasVerticalScroll || this.y > 0 ) {
+ y = 0;
+ } else if ( this.y < this.maxScrollY ) {
+ y = this.maxScrollY;
+ }
- if ( x == this.x && y == this.y ) {
- return false;
- }
+ if ( x == this.x && y == this.y ) {
+ return false;
+ }
- this.scrollTo(x, y, time, this.options.bounceEasing);
+ this.scrollTo(x, y, time, this.options.bounceEasing);
- return true;
- },
+ return true;
+ },
- disable: function () {
- this.enabled = false;
- },
+ disable: function () {
+ this.enabled = false;
+ },
- enable: function () {
- this.enabled = true;
- },
+ enable: function () {
+ this.enabled = true;
+ },
- refresh: function () {
- var rf = this.wrapper.offsetHeight; // Force reflow
+ refresh: function () {
+ utils.getRect(this.wrapper); // Force reflow
- this.wrapperWidth = this.wrapper.clientWidth;
- this.wrapperHeight = this.wrapper.clientHeight;
+ this.wrapperWidth = this.wrapper.clientWidth;
+ this.wrapperHeight = this.wrapper.clientHeight;
+ var rect = utils.getRect(this.scroller);
/* REPLACE START: refresh */
- this.scrollerWidth = this.scroller.offsetWidth;
- this.scrollerHeight = this.scroller.offsetHeight;
+ this.scrollerWidth = rect.width;
+ this.scrollerHeight = rect.height;
- this.maxScrollX = this.wrapperWidth - this.scrollerWidth;
- this.maxScrollY = this.wrapperHeight - this.scrollerHeight;
+ this.maxScrollX = this.wrapperWidth - this.scrollerWidth;
+ this.maxScrollY = this.wrapperHeight - this.scrollerHeight;
/* REPLACE END: refresh */
- this.hasHorizontalScroll = this.options.scrollX && this.maxScrollX < 0;
- this.hasVerticalScroll = this.options.scrollY && this.maxScrollY < 0;
+ this.hasHorizontalScroll = this.options.scrollX && this.maxScrollX < 0;
+ this.hasVerticalScroll = this.options.scrollY && this.maxScrollY < 0;
+
+ if ( !this.hasHorizontalScroll ) {
+ this.maxScrollX = 0;
+ this.scrollerWidth = this.wrapperWidth;
+ }
- if ( !this.hasHorizontalScroll ) {
- this.maxScrollX = 0;
- this.scrollerWidth = this.wrapperWidth;
- }
+ if ( !this.hasVerticalScroll ) {
+ this.maxScrollY = 0;
+ this.scrollerHeight = this.wrapperHeight;
+ }
- if ( !this.hasVerticalScroll ) {
- this.maxScrollY = 0;
- this.scrollerHeight = this.wrapperHeight;
- }
+ this.endTime = 0;
+ this.directionX = 0;
+ this.directionY = 0;
+
+ if(utils.hasPointer && !this.options.disablePointer) {
+ // The wrapper should have `touchAction` property for using pointerEvent.
+ this.wrapper.style[utils.style.touchAction] = utils.getTouchAction(this.options.eventPassthrough, true);
- this.endTime = 0;
- this.directionX = 0;
- this.directionY = 0;
+ // case. not support 'pinch-zoom'
+ // https://github.com/cubiq/iscroll/issues/1118#issuecomment-270057583
+ if (!this.wrapper.style[utils.style.touchAction]) {
+ this.wrapper.style[utils.style.touchAction] = utils.getTouchAction(this.options.eventPassthrough, false);
+ }
+ }
+ this.wrapperOffset = utils.offset(this.wrapper);
- this.wrapperOffset = utils.offset(this.wrapper);
+ this._execEvent('refresh');
- this._execEvent('refresh');
-
- this.resetPosition();
+ this.resetPosition();
// INSERT POINT: _refresh
- },
-
- on: function (type, fn) {
- if ( !this._events[type] ) {
- this._events[type] = [];
- }
+ },
- this._events[type].push(fn);
- },
+ on: function (type, fn) {
+ if ( !this._events[type] ) {
+ this._events[type] = [];
+ }
- off: function (type, fn) {
- if ( !this._events[type] ) {
- return;
- }
+ this._events[type].push(fn);
+ },
- var index = this._events[type].indexOf(fn);
+ off: function (type, fn) {
+ if ( !this._events[type] ) {
+ return;
+ }
- if ( index > -1 ) {
- this._events[type].splice(index, 1);
- }
- },
+ var index = this._events[type].indexOf(fn);
- _execEvent: function (type) {
- if ( !this._events[type] ) {
- return;
- }
+ if ( index > -1 ) {
+ this._events[type].splice(index, 1);
+ }
+ },
- var i = 0,
- l = this._events[type].length;
+ _execEvent: function (type) {
+ if ( !this._events[type] ) {
+ return;
+ }
- if ( !l ) {
- return;
- }
+ var i = 0,
+ l = this._events[type].length;
- for ( ; i < l; i++ ) {
- this._events[type][i].apply(this, [].slice.call(arguments, 1));
- }
- },
+ if ( !l ) {
+ return;
+ }
- scrollBy: function (x, y, time, easing) {
- x = this.x + x;
- y = this.y + y;
- time = time || 0;
+ for ( ; i < l; i++ ) {
+ this._events[type][i].apply(this, [].slice.call(arguments, 1));
+ }
+ },
- this.scrollTo(x, y, time, easing);
- },
+ scrollBy: function (x, y, time, easing) {
+ x = this.x + x;
+ y = this.y + y;
+ time = time || 0;
- scrollTo: function (x, y, time, easing) {
- easing = easing || utils.ease.circular;
+ this.scrollTo(x, y, time, easing);
+ },
- this.isInTransition = this.options.useTransition && time > 0;
+ scrollTo: function (x, y, time, easing) {
+ easing = easing || utils.ease.circular;
- if ( !time || (this.options.useTransition && easing.style) ) {
- this._transitionTimingFunction(easing.style);
- this._transitionTime(time);
- this._translate(x, y);
- } else {
- this._animate(x, y, time, easing.fn);
- }
- },
+ this.isInTransition = this.options.useTransition && time > 0;
+ var transitionType = this.options.useTransition && easing.style;
+ if ( !time || transitionType ) {
+ if(transitionType) {
+ this._transitionTimingFunction(easing.style);
+ this._transitionTime(time);
+ }
+ this._translate(x, y);
+ } else {
+ this._animate(x, y, time, easing.fn);
+ }
+ },
- scrollToElement: function (el, time, offsetX, offsetY, easing) {
- el = el.nodeType ? el : this.scroller.querySelector(el);
+ scrollToElement: function (el, time, offsetX, offsetY, easing) {
+ el = el.nodeType ? el : this.scroller.querySelector(el);
- if ( !el ) {
- return;
- }
+ if ( !el ) {
+ return;
+ }
- var pos = utils.offset(el);
+ var pos = utils.offset(el);
- pos.left -= this.wrapperOffset.left;
- pos.top -= this.wrapperOffset.top;
+ pos.left -= this.wrapperOffset.left;
+ pos.top -= this.wrapperOffset.top;
- // if offsetX/Y are true we center the element to the screen
- if ( offsetX === true ) {
- offsetX = Math.round(el.offsetWidth / 2 - this.wrapper.offsetWidth / 2);
- }
- if ( offsetY === true ) {
- offsetY = Math.round(el.offsetHeight / 2 - this.wrapper.offsetHeight / 2);
- }
+ // if offsetX/Y are true we center the element to the screen
+ var elRect = utils.getRect(el);
+ var wrapperRect = utils.getRect(this.wrapper);
+ if ( offsetX === true ) {
+ offsetX = Math.round(elRect.width / 2 - wrapperRect.width / 2);
+ }
+ if ( offsetY === true ) {
+ offsetY = Math.round(elRect.height / 2 - wrapperRect.height / 2);
+ }
- pos.left -= offsetX || 0;
- pos.top -= offsetY || 0;
+ pos.left -= offsetX || 0;
+ pos.top -= offsetY || 0;
- pos.left = pos.left > 0 ? 0 : pos.left < this.maxScrollX ? this.maxScrollX : pos.left;
- pos.top = pos.top > 0 ? 0 : pos.top < this.maxScrollY ? this.maxScrollY : pos.top;
+ pos.left = pos.left > 0 ? 0 : pos.left < this.maxScrollX ? this.maxScrollX : pos.left;
+ pos.top = pos.top > 0 ? 0 : pos.top < this.maxScrollY ? this.maxScrollY : pos.top;
- time = time === undefined || time === null || time === 'auto' ? Math.max(Math.abs(this.x-pos.left), Math.abs(this.y-pos.top)) : time;
+ time = time === undefined || time === null || time === 'auto' ? Math.max(Math.abs(this.x-pos.left), Math.abs(this.y-pos.top)) : time;
- this.scrollTo(pos.left, pos.top, time, easing);
- },
+ this.scrollTo(pos.left, pos.top, time, easing);
+ },
- _transitionTime: function (time) {
- time = time || 0;
+ _transitionTime: function (time) {
+ if (!this.options.useTransition) {
+ return;
+ }
+ time = time || 0;
+ var durationProp = utils.style.transitionDuration;
+ if(!durationProp) {
+ return;
+ }
- this.scrollerStyle[utils.style.transitionDuration] = time + 'ms';
+ this.scrollerStyle[durationProp] = time + 'ms';
- if ( !time && utils.isBadAndroid ) {
- this.scrollerStyle[utils.style.transitionDuration] = '0.001s';
- }
+ if ( !time && utils.isBadAndroid ) {
+ this.scrollerStyle[durationProp] = '0.0001ms';
+ // remove 0.0001ms
+ var self = this;
+ rAF(function() {
+ if(self.scrollerStyle[durationProp] === '0.0001ms') {
+ self.scrollerStyle[durationProp] = '0s';
+ }
+ });
+ }
- if ( this.indicators ) {
- for ( var i = this.indicators.length; i--; ) {
- this.indicators[i].transitionTime(time);
- }
- }
+ if ( this.indicators ) {
+ for ( var i = this.indicators.length; i--; ) {
+ this.indicators[i].transitionTime(time);
+ }
+ }
// INSERT POINT: _transitionTime
- },
+ },
- _transitionTimingFunction: function (easing) {
- this.scrollerStyle[utils.style.transitionTimingFunction] = easing;
+ _transitionTimingFunction: function (easing) {
+ this.scrollerStyle[utils.style.transitionTimingFunction] = easing;
- if ( this.indicators ) {
- for ( var i = this.indicators.length; i--; ) {
- this.indicators[i].transitionTimingFunction(easing);
- }
- }
+ if ( this.indicators ) {
+ for ( var i = this.indicators.length; i--; ) {
+ this.indicators[i].transitionTimingFunction(easing);
+ }
+ }
// INSERT POINT: _transitionTimingFunction
- },
+ },
- _translate: function (x, y) {
- if ( this.options.useTransform ) {
+ _translate: function (x, y) {
+ if ( this.options.useTransform ) {
/* REPLACE START: _translate */
- this.scrollerStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.translateZ;
+ this.scrollerStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.translateZ;
/* REPLACE END: _translate */
- } else {
- x = Math.round(x);
- y = Math.round(y);
- this.scrollerStyle.left = x + 'px';
- this.scrollerStyle.top = y + 'px';
- }
+ } else {
+ x = Math.round(x);
+ y = Math.round(y);
+ this.scrollerStyle.left = x + 'px';
+ this.scrollerStyle.top = y + 'px';
+ }
- this.x = x;
- this.y = y;
+ this.x = x;
+ this.y = y;
- if ( this.indicators ) {
- for ( var i = this.indicators.length; i--; ) {
- this.indicators[i].updatePosition();
- }
- }
+ if ( this.indicators ) {
+ for ( var i = this.indicators.length; i--; ) {
+ this.indicators[i].updatePosition();
+ }
+ }
// INSERT POINT: _translate
- },
+ },
- _initEvents: function (remove) {
- var eventType = remove ? utils.removeEvent : utils.addEvent,
- target = this.options.bindToWrapper ? this.wrapper : window;
+ _initEvents: function (remove) {
+ var eventType = remove ? utils.removeEvent : utils.addEvent,
+ target = this.options.bindToWrapper ? this.wrapper : window;
- eventType(window, 'orientationchange', this);
- eventType(window, 'resize', this);
+ eventType(window, 'orientationchange', this);
+ eventType(window, 'resize', this);
- if ( this.options.click ) {
- eventType(this.wrapper, 'click', this, true);
- }
+ if ( this.options.click ) {
+ eventType(this.wrapper, 'click', this, true);
+ }
- if ( !this.options.disableMouse ) {
- eventType(this.wrapper, 'mousedown', this);
- eventType(target, 'mousemove', this);
- eventType(target, 'mousecancel', this);
- eventType(target, 'mouseup', this);
- }
+ if ( !this.options.disableMouse ) {
+ eventType(this.wrapper, 'mousedown', this);
+ eventType(target, 'mousemove', this);
+ eventType(target, 'mousecancel', this);
+ eventType(target, 'mouseup', this);
+ }
- if ( utils.hasPointer && !this.options.disablePointer ) {
- eventType(this.wrapper, utils.prefixPointerEvent('pointerdown'), this);
- eventType(target, utils.prefixPointerEvent('pointermove'), this);
- eventType(target, utils.prefixPointerEvent('pointercancel'), this);
- eventType(target, utils.prefixPointerEvent('pointerup'), this);
- }
+ if ( utils.hasPointer && !this.options.disablePointer ) {
+ eventType(this.wrapper, utils.prefixPointerEvent('pointerdown'), this);
+ eventType(target, utils.prefixPointerEvent('pointermove'), this);
+ eventType(target, utils.prefixPointerEvent('pointercancel'), this);
+ eventType(target, utils.prefixPointerEvent('pointerup'), this);
+ }
- if ( utils.hasTouch && !this.options.disableTouch ) {
- eventType(this.wrapper, 'touchstart', this);
- eventType(target, 'touchmove', this);
- eventType(target, 'touchcancel', this);
- eventType(target, 'touchend', this);
- }
+ if ( utils.hasTouch && !this.options.disableTouch ) {
+ eventType(this.wrapper, 'touchstart', this);
+ eventType(target, 'touchmove', this);
+ eventType(target, 'touchcancel', this);
+ eventType(target, 'touchend', this);
+ }
- eventType(this.scroller, 'transitionend', this);
- eventType(this.scroller, 'webkitTransitionEnd', this);
- eventType(this.scroller, 'oTransitionEnd', this);
- eventType(this.scroller, 'MSTransitionEnd', this);
- },
+ eventType(this.scroller, 'transitionend', this);
+ eventType(this.scroller, 'webkitTransitionEnd', this);
+ eventType(this.scroller, 'oTransitionEnd', this);
+ eventType(this.scroller, 'MSTransitionEnd', this);
+ },
- getComputedPosition: function () {
- var matrix = window.getComputedStyle(this.scroller, null),
- x, y;
+ getComputedPosition: function () {
+ var matrix = window.getComputedStyle(this.scroller, null),
+ x, y;
- if ( this.options.useTransform ) {
- matrix = matrix[utils.style.transform].split(')')[0].split(', ');
- x = +(matrix[12] || matrix[4]);
- y = +(matrix[13] || matrix[5]);
- } else {
- x = +matrix.left.replace(/[^-\d.]/g, '');
- y = +matrix.top.replace(/[^-\d.]/g, '');
- }
+ if ( this.options.useTransform ) {
+ matrix = matrix[utils.style.transform].split(')')[0].split(', ');
+ x = +(matrix[12] || matrix[4]);
+ y = +(matrix[13] || matrix[5]);
+ } else {
+ x = +matrix.left.replace(/[^-\d.]/g, '');
+ y = +matrix.top.replace(/[^-\d.]/g, '');
+ }
- return { x: x, y: y };
- },
+ return { x: x, y: y };
+ },
+ _initIndicators: function () {
+ var interactive = this.options.interactiveScrollbars,
+ customStyle = typeof this.options.scrollbars != 'string',
+ indicators = [],
+ indicator;
- _initIndicators: function () {
- var interactive = this.options.interactiveScrollbars,
- customStyle = typeof this.options.scrollbars != 'string',
- indicators = [],
- indicator;
+ var that = this;
- var that = this;
+ this.indicators = [];
- this.indicators = [];
+ if ( this.options.scrollbars ) {
+ // Vertical scrollbar
+ if ( this.options.scrollY ) {
+ indicator = {
+ el: createDefaultScrollbar('v', interactive, this.options.scrollbars),
+ interactive: interactive,
+ defaultScrollbars: true,
+ customStyle: customStyle,
+ resize: this.options.resizeScrollbars,
+ shrink: this.options.shrinkScrollbars,
+ fade: this.options.fadeScrollbars,
+ listenX: false
+ };
- if ( this.options.scrollbars ) {
- // Vertical scrollbar
- if ( this.options.scrollY ) {
- indicator = {
- el: createDefaultScrollbar('v', interactive, this.options.scrollbars),
- interactive: interactive,
- defaultScrollbars: true,
- customStyle: customStyle,
- resize: this.options.resizeScrollbars,
- shrink: this.options.shrinkScrollbars,
- fade: this.options.fadeScrollbars,
- listenX: false
- };
+ this.wrapper.appendChild(indicator.el);
+ indicators.push(indicator);
+ }
- this.wrapper.appendChild(indicator.el);
- indicators.push(indicator);
- }
+ // Horizontal scrollbar
+ if ( this.options.scrollX ) {
+ indicator = {
+ el: createDefaultScrollbar('h', interactive, this.options.scrollbars),
+ interactive: interactive,
+ defaultScrollbars: true,
+ customStyle: customStyle,
+ resize: this.options.resizeScrollbars,
+ shrink: this.options.shrinkScrollbars,
+ fade: this.options.fadeScrollbars,
+ listenY: false
+ };
- // Horizontal scrollbar
- if ( this.options.scrollX ) {
- indicator = {
- el: createDefaultScrollbar('h', interactive, this.options.scrollbars),
- interactive: interactive,
- defaultScrollbars: true,
- customStyle: customStyle,
- resize: this.options.resizeScrollbars,
- shrink: this.options.shrinkScrollbars,
- fade: this.options.fadeScrollbars,
- listenY: false
- };
+ this.wrapper.appendChild(indicator.el);
+ indicators.push(indicator);
+ }
+ }
- this.wrapper.appendChild(indicator.el);
- indicators.push(indicator);
- }
- }
+ if ( this.options.indicators ) {
+ // TODO: check concat compatibility
+ indicators = indicators.concat(this.options.indicators);
+ }
- if ( this.options.indicators ) {
- // TODO: check concat compatibility
- indicators = indicators.concat(this.options.indicators);
- }
+ for ( var i = indicators.length; i--; ) {
+ this.indicators.push( new Indicator(this, indicators[i]) );
+ }
- for ( var i = indicators.length; i--; ) {
- this.indicators.push( new Indicator(this, indicators[i]) );
- }
+ // TODO: check if we can use array.map (wide compatibility and performance issues)
+ function _indicatorsMap (fn) {
+ if (that.indicators) {
+ for ( var i = that.indicators.length; i--; ) {
+ fn.call(that.indicators[i]);
+ }
+ }
+ }
- // TODO: check if we can use array.map (wide compatibility and performance issues)
- function _indicatorsMap (fn) {
- for ( var i = that.indicators.length; i--; ) {
- fn.call(that.indicators[i]);
- }
- }
+ if ( this.options.fadeScrollbars ) {
+ this.on('scrollEnd', function () {
+ _indicatorsMap(function () {
+ this.fade();
+ });
+ });
- if ( this.options.fadeScrollbars ) {
- this.on('scrollEnd', function () {
- _indicatorsMap(function () {
- this.fade();
- });
- });
+ this.on('scrollCancel', function () {
+ _indicatorsMap(function () {
+ this.fade();
+ });
+ });
- this.on('scrollCancel', function () {
- _indicatorsMap(function () {
- this.fade();
- });
- });
+ this.on('scrollStart', function () {
+ _indicatorsMap(function () {
+ this.fade(1);
+ });
+ });
- this.on('scrollStart', function () {
- _indicatorsMap(function () {
- this.fade(1);
- });
- });
+ this.on('beforeScrollStart', function () {
+ _indicatorsMap(function () {
+ this.fade(1, true);
+ });
+ });
+ }
- this.on('beforeScrollStart', function () {
- _indicatorsMap(function () {
- this.fade(1, true);
- });
- });
- }
+ this.on('refresh', function () {
+ _indicatorsMap(function () {
+ this.refresh();
+ });
+ });
- this.on('refresh', function () {
- _indicatorsMap(function () {
- this.refresh();
- });
- });
+ this.on('destroy', function () {
+ _indicatorsMap(function () {
+ this.destroy();
+ });
- this.on('destroy', function () {
- _indicatorsMap(function () {
- this.destroy();
- });
+ delete this.indicators;
+ });
+ },
- delete this.indicators;
- });
- },
+ _initWheel: function () {
+ utils.addEvent(this.wrapper, 'wheel', this);
+ utils.addEvent(this.wrapper, 'mousewheel', this);
+ utils.addEvent(this.wrapper, 'DOMMouseScroll', this);
- _initWheel: function () {
- utils.addEvent(this.wrapper, 'wheel', this);
- utils.addEvent(this.wrapper, 'mousewheel', this);
- utils.addEvent(this.wrapper, 'DOMMouseScroll', this);
+ this.on('destroy', function () {
+ clearTimeout(this.wheelTimeout);
+ this.wheelTimeout = null;
+ utils.removeEvent(this.wrapper, 'wheel', this);
+ utils.removeEvent(this.wrapper, 'mousewheel', this);
+ utils.removeEvent(this.wrapper, 'DOMMouseScroll', this);
+ });
+ },
- this.on('destroy', function () {
- utils.removeEvent(this.wrapper, 'wheel', this);
- utils.removeEvent(this.wrapper, 'mousewheel', this);
- utils.removeEvent(this.wrapper, 'DOMMouseScroll', this);
- });
- },
+ _wheel: function (e) {
+ if ( !this.enabled ) {
+ return;
+ }
- _wheel: function (e) {
- if ( !this.enabled ) {
- return;
- }
+ e.preventDefault();
- e.preventDefault();
- e.stopPropagation();
+ var wheelDeltaX, wheelDeltaY,
+ newX, newY,
+ that = this;
- var wheelDeltaX, wheelDeltaY,
- newX, newY,
- that = this;
+ if ( this.wheelTimeout === undefined ) {
+ that._execEvent('scrollStart');
+ }
- if ( this.wheelTimeout === undefined ) {
- that._execEvent('scrollStart');
- }
+ // Execute the scrollEnd event after 400ms the wheel stopped scrolling
+ clearTimeout(this.wheelTimeout);
+ this.wheelTimeout = setTimeout(function () {
+ if(!that.options.snap) {
+ that._execEvent('scrollEnd');
+ }
+ that.wheelTimeout = undefined;
+ }, 400);
- // Execute the scrollEnd event after 400ms the wheel stopped scrolling
- clearTimeout(this.wheelTimeout);
- this.wheelTimeout = setTimeout(function () {
- that._execEvent('scrollEnd');
- that.wheelTimeout = undefined;
- }, 400);
+ if ( 'deltaX' in e ) {
+ if (e.deltaMode === 1) {
+ wheelDeltaX = -e.deltaX * this.options.mouseWheelSpeed;
+ wheelDeltaY = -e.deltaY * this.options.mouseWheelSpeed;
+ } else {
+ wheelDeltaX = -e.deltaX;
+ wheelDeltaY = -e.deltaY;
+ }
+ } else if ( 'wheelDeltaX' in e ) {
+ wheelDeltaX = e.wheelDeltaX / 120 * this.options.mouseWheelSpeed;
+ wheelDeltaY = e.wheelDeltaY / 120 * this.options.mouseWheelSpeed;
+ } else if ( 'wheelDelta' in e ) {
+ wheelDeltaX = wheelDeltaY = e.wheelDelta / 120 * this.options.mouseWheelSpeed;
+ } else if ( 'detail' in e ) {
+ wheelDeltaX = wheelDeltaY = -e.detail / 3 * this.options.mouseWheelSpeed;
+ } else {
+ return;
+ }
- if ( 'deltaX' in e ) {
- if (e.deltaMode === 1) {
- wheelDeltaX = -e.deltaX * this.options.mouseWheelSpeed;
- wheelDeltaY = -e.deltaY * this.options.mouseWheelSpeed;
- } else {
- wheelDeltaX = -e.deltaX;
- wheelDeltaY = -e.deltaY;
- }
- } else if ( 'wheelDeltaX' in e ) {
- wheelDeltaX = e.wheelDeltaX / 120 * this.options.mouseWheelSpeed;
- wheelDeltaY = e.wheelDeltaY / 120 * this.options.mouseWheelSpeed;
- } else if ( 'wheelDelta' in e ) {
- wheelDeltaX = wheelDeltaY = e.wheelDelta / 120 * this.options.mouseWheelSpeed;
- } else if ( 'detail' in e ) {
- wheelDeltaX = wheelDeltaY = -e.detail / 3 * this.options.mouseWheelSpeed;
- } else {
- return;
- }
+ wheelDeltaX *= this.options.invertWheelDirection;
+ wheelDeltaY *= this.options.invertWheelDirection;
- wheelDeltaX *= this.options.invertWheelDirection;
- wheelDeltaY *= this.options.invertWheelDirection;
+ if ( !this.hasVerticalScroll ) {
+ wheelDeltaX = wheelDeltaY;
+ wheelDeltaY = 0;
+ }
- if ( !this.hasVerticalScroll ) {
- wheelDeltaX = wheelDeltaY;
- wheelDeltaY = 0;
- }
+ if ( this.options.snap ) {
+ newX = this.currentPage.pageX;
+ newY = this.currentPage.pageY;
- if ( this.options.snap ) {
- newX = this.currentPage.pageX;
- newY = this.currentPage.pageY;
+ if ( wheelDeltaX > 0 ) {
+ newX--;
+ } else if ( wheelDeltaX < 0 ) {
+ newX++;
+ }
- if ( wheelDeltaX > 0 ) {
- newX--;
- } else if ( wheelDeltaX < 0 ) {
- newX++;
- }
+ if ( wheelDeltaY > 0 ) {
+ newY--;
+ } else if ( wheelDeltaY < 0 ) {
+ newY++;
+ }
- if ( wheelDeltaY > 0 ) {
- newY--;
- } else if ( wheelDeltaY < 0 ) {
- newY++;
- }
+ this.goToPage(newX, newY);
- this.goToPage(newX, newY);
+ return;
+ }
- return;
- }
+ newX = this.x + Math.round(this.hasHorizontalScroll ? wheelDeltaX : 0);
+ newY = this.y + Math.round(this.hasVerticalScroll ? wheelDeltaY : 0);
- newX = this.x + Math.round(this.hasHorizontalScroll ? wheelDeltaX : 0);
- newY = this.y + Math.round(this.hasVerticalScroll ? wheelDeltaY : 0);
+ this.directionX = wheelDeltaX > 0 ? -1 : wheelDeltaX < 0 ? 1 : 0;
+ this.directionY = wheelDeltaY > 0 ? -1 : wheelDeltaY < 0 ? 1 : 0;
- if ( newX > 0 ) {
- newX = 0;
- } else if ( newX < this.maxScrollX ) {
- newX = this.maxScrollX;
- }
+ if ( newX > 0 ) {
+ newX = 0;
+ } else if ( newX < this.maxScrollX ) {
+ newX = this.maxScrollX;
+ }
- if ( newY > 0 ) {
- newY = 0;
- } else if ( newY < this.maxScrollY ) {
- newY = this.maxScrollY;
- }
+ if ( newY > 0 ) {
+ newY = 0;
+ } else if ( newY < this.maxScrollY ) {
+ newY = this.maxScrollY;
+ }
- this.scrollTo(newX, newY, 0);
+ this.scrollTo(newX, newY, 0);
// INSERT POINT: _wheel
- },
+ },
- _initSnap: function () {
- this.currentPage = {};
+ _initSnap: function () {
+ this.currentPage = {};
- if ( typeof this.options.snap == 'string' ) {
- this.options.snap = this.scroller.querySelectorAll(this.options.snap);
- }
+ if ( typeof this.options.snap == 'string' ) {
+ this.options.snap = this.scroller.querySelectorAll(this.options.snap);
+ }
- this.on('refresh', function () {
- var i = 0, l,
- m = 0, n,
- cx, cy,
- x = 0, y,
- stepX = this.options.snapStepX || this.wrapperWidth,
- stepY = this.options.snapStepY || this.wrapperHeight,
- el;
+ this.on('refresh', function () {
+ var i = 0, l,
+ m = 0, n,
+ cx, cy,
+ x = 0, y,
+ stepX = this.options.snapStepX || this.wrapperWidth,
+ stepY = this.options.snapStepY || this.wrapperHeight,
+ el,
+ rect;
- this.pages = [];
+ this.pages = [];
- if ( !this.wrapperWidth || !this.wrapperHeight || !this.scrollerWidth || !this.scrollerHeight ) {
- return;
- }
+ if ( !this.wrapperWidth || !this.wrapperHeight || !this.scrollerWidth || !this.scrollerHeight ) {
+ return;
+ }
- if ( this.options.snap === true ) {
- cx = Math.round( stepX / 2 );
- cy = Math.round( stepY / 2 );
+ if ( this.options.snap === true ) {
+ cx = Math.round( stepX / 2 );
+ cy = Math.round( stepY / 2 );
- while ( x > -this.scrollerWidth ) {
- this.pages[i] = [];
- l = 0;
- y = 0;
+ while ( x > -this.scrollerWidth ) {
+ this.pages[i] = [];
+ l = 0;
+ y = 0;
- while ( y > -this.scrollerHeight ) {
- this.pages[i][l] = {
- x: Math.max(x, this.maxScrollX),
- y: Math.max(y, this.maxScrollY),
- width: stepX,
- height: stepY,
- cx: x - cx,
- cy: y - cy
- };
+ while ( y > -this.scrollerHeight ) {
+ this.pages[i][l] = {
+ x: Math.max(x, this.maxScrollX),
+ y: Math.max(y, this.maxScrollY),
+ width: stepX,
+ height: stepY,
+ cx: x - cx,
+ cy: y - cy
+ };
- y -= stepY;
- l++;
- }
+ y -= stepY;
+ l++;
+ }
- x -= stepX;
- i++;
- }
- } else {
- el = this.options.snap;
- l = el.length;
- n = -1;
+ x -= stepX;
+ i++;
+ }
+ } else {
+ el = this.options.snap;
+ l = el.length;
+ n = -1;
- for ( ; i < l; i++ ) {
- if ( i === 0 || el[i].offsetLeft <= el[i-1].offsetLeft ) {
- m = 0;
- n++;
- }
+ for ( ; i < l; i++ ) {
+ rect = utils.getRect(el[i]);
+ if ( i === 0 || rect.left <= utils.getRect(el[i-1]).left ) {
+ m = 0;
+ n++;
+ }
- if ( !this.pages[m] ) {
- this.pages[m] = [];
- }
+ if ( !this.pages[m] ) {
+ this.pages[m] = [];
+ }
- x = Math.max(-el[i].offsetLeft, this.maxScrollX);
- y = Math.max(-el[i].offsetTop, this.maxScrollY);
- cx = x - Math.round(el[i].offsetWidth / 2);
- cy = y - Math.round(el[i].offsetHeight / 2);
+ x = Math.max(-rect.left, this.maxScrollX);
+ y = Math.max(-rect.top, this.maxScrollY);
+ cx = x - Math.round(rect.width / 2);
+ cy = y - Math.round(rect.height / 2);
- this.pages[m][n] = {
- x: x,
- y: y,
- width: el[i].offsetWidth,
- height: el[i].offsetHeight,
- cx: cx,
- cy: cy
- };
+ this.pages[m][n] = {
+ x: x,
+ y: y,
+ width: rect.width,
+ height: rect.height,
+ cx: cx,
+ cy: cy
+ };
- if ( x > this.maxScrollX ) {
- m++;
- }
- }
- }
+ if ( x > this.maxScrollX ) {
+ m++;
+ }
+ }
+ }
- this.goToPage(this.currentPage.pageX || 0, this.currentPage.pageY || 0, 0);
+ this.goToPage(this.currentPage.pageX || 0, this.currentPage.pageY || 0, 0);
- // Update snap threshold if needed
- if ( this.options.snapThreshold % 1 === 0 ) {
- this.snapThresholdX = this.options.snapThreshold;
- this.snapThresholdY = this.options.snapThreshold;
- } else {
- this.snapThresholdX = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].width * this.options.snapThreshold);
- this.snapThresholdY = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].height * this.options.snapThreshold);
- }
- });
+ // Update snap threshold if needed
+ if ( this.options.snapThreshold % 1 === 0 ) {
+ this.snapThresholdX = this.options.snapThreshold;
+ this.snapThresholdY = this.options.snapThreshold;
+ } else {
+ this.snapThresholdX = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].width * this.options.snapThreshold);
+ this.snapThresholdY = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].height * this.options.snapThreshold);
+ }
+ });
- this.on('flick', function () {
- var time = this.options.snapSpeed || Math.max(
- Math.max(
- Math.min(Math.abs(this.x - this.startX), 1000),
- Math.min(Math.abs(this.y - this.startY), 1000)
- ), 300);
+ this.on('flick', function () {
+ var time = this.options.snapSpeed || Math.max(
+ Math.max(
+ Math.min(Math.abs(this.x - this.startX), 1000),
+ Math.min(Math.abs(this.y - this.startY), 1000)
+ ), 300);
- this.goToPage(
- this.currentPage.pageX + this.directionX,
- this.currentPage.pageY + this.directionY,
- time
- );
- });
- },
+ this.goToPage(
+ this.currentPage.pageX + this.directionX,
+ this.currentPage.pageY + this.directionY,
+ time
+ );
+ });
+ },
- _nearestSnap: function (x, y) {
- if ( !this.pages.length ) {
- return { x: 0, y: 0, pageX: 0, pageY: 0 };
- }
+ _nearestSnap: function (x, y) {
+ if ( !this.pages.length ) {
+ return { x: 0, y: 0, pageX: 0, pageY: 0 };
+ }
- var i = 0,
- l = this.pages.length,
- m = 0;
+ var i = 0,
+ l = this.pages.length,
+ m = 0;
- // Check if we exceeded the snap threshold
- if ( Math.abs(x - this.absStartX) < this.snapThresholdX &&
- Math.abs(y - this.absStartY) < this.snapThresholdY ) {
- return this.currentPage;
- }
+ // Check if we exceeded the snap threshold
+ if ( Math.abs(x - this.absStartX) < this.snapThresholdX &&
+ Math.abs(y - this.absStartY) < this.snapThresholdY ) {
+ return this.currentPage;
+ }
- if ( x > 0 ) {
- x = 0;
- } else if ( x < this.maxScrollX ) {
- x = this.maxScrollX;
- }
+ if ( x > 0 ) {
+ x = 0;
+ } else if ( x < this.maxScrollX ) {
+ x = this.maxScrollX;
+ }
- if ( y > 0 ) {
- y = 0;
- } else if ( y < this.maxScrollY ) {
- y = this.maxScrollY;
- }
+ if ( y > 0 ) {
+ y = 0;
+ } else if ( y < this.maxScrollY ) {
+ y = this.maxScrollY;
+ }
- for ( ; i < l; i++ ) {
- if ( x >= this.pages[i][0].cx ) {
- x = this.pages[i][0].x;
- break;
- }
- }
+ for ( ; i < l; i++ ) {
+ if ( x >= this.pages[i][0].cx ) {
+ x = this.pages[i][0].x;
+ break;
+ }
+ }
- l = this.pages[i].length;
+ l = this.pages[i].length;
- for ( ; m < l; m++ ) {
- if ( y >= this.pages[0][m].cy ) {
- y = this.pages[0][m].y;
- break;
- }
- }
+ for ( ; m < l; m++ ) {
+ if ( y >= this.pages[0][m].cy ) {
+ y = this.pages[0][m].y;
+ break;
+ }
+ }
- if ( i == this.currentPage.pageX ) {
- i += this.directionX;
+ if ( i == this.currentPage.pageX ) {
+ i += this.directionX;
- if ( i < 0 ) {
- i = 0;
- } else if ( i >= this.pages.length ) {
- i = this.pages.length - 1;
- }
+ if ( i < 0 ) {
+ i = 0;
+ } else if ( i >= this.pages.length ) {
+ i = this.pages.length - 1;
+ }
- x = this.pages[i][0].x;
- }
+ x = this.pages[i][0].x;
+ }
- if ( m == this.currentPage.pageY ) {
- m += this.directionY;
+ if ( m == this.currentPage.pageY ) {
+ m += this.directionY;
- if ( m < 0 ) {
- m = 0;
- } else if ( m >= this.pages[0].length ) {
- m = this.pages[0].length - 1;
- }
+ if ( m < 0 ) {
+ m = 0;
+ } else if ( m >= this.pages[0].length ) {
+ m = this.pages[0].length - 1;
+ }
- y = this.pages[0][m].y;
- }
+ y = this.pages[0][m].y;
+ }
- return {
- x: x,
- y: y,
- pageX: i,
- pageY: m
- };
- },
+ return {
+ x: x,
+ y: y,
+ pageX: i,
+ pageY: m
+ };
+ },
- goToPage: function (x, y, time, easing) {
- easing = easing || this.options.bounceEasing;
+ goToPage: function (x, y, time, easing) {
+ easing = easing || this.options.bounceEasing;
- if ( x >= this.pages.length ) {
- x = this.pages.length - 1;
- } else if ( x < 0 ) {
- x = 0;
- }
+ if ( x >= this.pages.length ) {
+ x = this.pages.length - 1;
+ } else if ( x < 0 ) {
+ x = 0;
+ }
- if ( y >= this.pages[x].length ) {
- y = this.pages[x].length - 1;
- } else if ( y < 0 ) {
- y = 0;
- }
+ if ( y >= this.pages[x].length ) {
+ y = this.pages[x].length - 1;
+ } else if ( y < 0 ) {
+ y = 0;
+ }
- var posX = this.pages[x][y].x,
- posY = this.pages[x][y].y;
+ var posX = this.pages[x][y].x,
+ posY = this.pages[x][y].y;
- time = time === undefined ? this.options.snapSpeed || Math.max(
- Math.max(
- Math.min(Math.abs(posX - this.x), 1000),
- Math.min(Math.abs(posY - this.y), 1000)
- ), 300) : time;
+ time = time === undefined ? this.options.snapSpeed || Math.max(
+ Math.max(
+ Math.min(Math.abs(posX - this.x), 1000),
+ Math.min(Math.abs(posY - this.y), 1000)
+ ), 300) : time;
- this.currentPage = {
- x: posX,
- y: posY,
- pageX: x,
- pageY: y
- };
+ this.currentPage = {
+ x: posX,
+ y: posY,
+ pageX: x,
+ pageY: y
+ };
- this.scrollTo(posX, posY, time, easing);
- },
+ this.scrollTo(posX, posY, time, easing);
+ },
- next: function (time, easing) {
- var x = this.currentPage.pageX,
- y = this.currentPage.pageY;
+ next: function (time, easing) {
+ var x = this.currentPage.pageX,
+ y = this.currentPage.pageY;
- x++;
+ x++;
- if ( x >= this.pages.length && this.hasVerticalScroll ) {
- x = 0;
- y++;
- }
+ if ( x >= this.pages.length && this.hasVerticalScroll ) {
+ x = 0;
+ y++;
+ }
- this.goToPage(x, y, time, easing);
- },
+ this.goToPage(x, y, time, easing);
+ },
- prev: function (time, easing) {
- var x = this.currentPage.pageX,
- y = this.currentPage.pageY;
+ prev: function (time, easing) {
+ var x = this.currentPage.pageX,
+ y = this.currentPage.pageY;
- x--;
+ x--;
- if ( x < 0 && this.hasVerticalScroll ) {
- x = 0;
- y--;
- }
+ if ( x < 0 && this.hasVerticalScroll ) {
+ x = 0;
+ y--;
+ }
- this.goToPage(x, y, time, easing);
- },
+ this.goToPage(x, y, time, easing);
+ },
- _initKeys: function (e) {
- // default key bindings
- var keys = {
- pageUp: 33,
- pageDown: 34,
- end: 35,
- home: 36,
- left: 37,
- up: 38,
- right: 39,
- down: 40
- };
- var i;
+ _initKeys: function (e) {
+ // default key bindings
+ var keys = {
+ pageUp: 33,
+ pageDown: 34,
+ end: 35,
+ home: 36,
+ left: 37,
+ up: 38,
+ right: 39,
+ down: 40
+ };
+ var i;
- // if you give me characters I give you keycode
- if ( typeof this.options.keyBindings == 'object' ) {
- for ( i in this.options.keyBindings ) {
- if ( typeof this.options.keyBindings[i] == 'string' ) {
- this.options.keyBindings[i] = this.options.keyBindings[i].toUpperCase().charCodeAt(0);
- }
- }
- } else {
- this.options.keyBindings = {};
- }
+ // if you give me characters I give you keycode
+ if ( typeof this.options.keyBindings == 'object' ) {
+ for ( i in this.options.keyBindings ) {
+ if ( typeof this.options.keyBindings[i] == 'string' ) {
+ this.options.keyBindings[i] = this.options.keyBindings[i].toUpperCase().charCodeAt(0);
+ }
+ }
+ } else {
+ this.options.keyBindings = {};
+ }
- for ( i in keys ) {
- this.options.keyBindings[i] = this.options.keyBindings[i] || keys[i];
- }
+ for ( i in keys ) {
+ this.options.keyBindings[i] = this.options.keyBindings[i] || keys[i];
+ }
- utils.addEvent(window, 'keydown', this);
+ utils.addEvent(window, 'keydown', this);
- this.on('destroy', function () {
- utils.removeEvent(window, 'keydown', this);
- });
- },
+ this.on('destroy', function () {
+ utils.removeEvent(window, 'keydown', this);
+ });
+ },
- _key: function (e) {
- if ( !this.enabled ) {
- return;
- }
+ _key: function (e) {
+ if ( !this.enabled ) {
+ return;
+ }
- var snap = this.options.snap, // we are using this alot, better to cache it
- newX = snap ? this.currentPage.pageX : this.x,
- newY = snap ? this.currentPage.pageY : this.y,
- now = utils.getTime(),
- prevTime = this.keyTime || 0,
- acceleration = 0.250,
- pos;
+ var snap = this.options.snap, // we are using this alot, better to cache it
+ newX = snap ? this.currentPage.pageX : this.x,
+ newY = snap ? this.currentPage.pageY : this.y,
+ now = utils.getTime(),
+ prevTime = this.keyTime || 0,
+ acceleration = 0.250,
+ pos;
- if ( this.options.useTransition && this.isInTransition ) {
- pos = this.getComputedPosition();
+ if ( this.options.useTransition && this.isInTransition ) {
+ pos = this.getComputedPosition();
- this._translate(Math.round(pos.x), Math.round(pos.y));
- this.isInTransition = false;
- }
+ this._translate(Math.round(pos.x), Math.round(pos.y));
+ this.isInTransition = false;
+ }
- this.keyAcceleration = now - prevTime < 200 ? Math.min(this.keyAcceleration + acceleration, 50) : 0;
+ this.keyAcceleration = now - prevTime < 200 ? Math.min(this.keyAcceleration + acceleration, 50) : 0;
- switch ( e.keyCode ) {
- case this.options.keyBindings.pageUp:
- if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) {
- newX += snap ? 1 : this.wrapperWidth;
- } else {
- newY += snap ? 1 : this.wrapperHeight;
- }
- break;
- case this.options.keyBindings.pageDown:
- if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) {
- newX -= snap ? 1 : this.wrapperWidth;
- } else {
- newY -= snap ? 1 : this.wrapperHeight;
- }
- break;
- case this.options.keyBindings.end:
- newX = snap ? this.pages.length-1 : this.maxScrollX;
- newY = snap ? this.pages[0].length-1 : this.maxScrollY;
- break;
- case this.options.keyBindings.home:
- newX = 0;
- newY = 0;
- break;
- case this.options.keyBindings.left:
- newX += snap ? -1 : 5 + this.keyAcceleration>>0;
- break;
- case this.options.keyBindings.up:
- newY += snap ? 1 : 5 + this.keyAcceleration>>0;
- break;
- case this.options.keyBindings.right:
- newX -= snap ? -1 : 5 + this.keyAcceleration>>0;
- break;
- case this.options.keyBindings.down:
- newY -= snap ? 1 : 5 + this.keyAcceleration>>0;
- break;
- default:
- return;
- }
+ switch ( e.keyCode ) {
+ case this.options.keyBindings.pageUp:
+ if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) {
+ newX += snap ? 1 : this.wrapperWidth;
+ } else {
+ newY += snap ? 1 : this.wrapperHeight;
+ }
+ break;
+ case this.options.keyBindings.pageDown:
+ if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) {
+ newX -= snap ? 1 : this.wrapperWidth;
+ } else {
+ newY -= snap ? 1 : this.wrapperHeight;
+ }
+ break;
+ case this.options.keyBindings.end:
+ newX = snap ? this.pages.length-1 : this.maxScrollX;
+ newY = snap ? this.pages[0].length-1 : this.maxScrollY;
+ break;
+ case this.options.keyBindings.home:
+ newX = 0;
+ newY = 0;
+ break;
+ case this.options.keyBindings.left:
+ newX += snap ? -1 : 5 + this.keyAcceleration>>0;
+ break;
+ case this.options.keyBindings.up:
+ newY += snap ? 1 : 5 + this.keyAcceleration>>0;
+ break;
+ case this.options.keyBindings.right:
+ newX -= snap ? -1 : 5 + this.keyAcceleration>>0;
+ break;
+ case this.options.keyBindings.down:
+ newY -= snap ? 1 : 5 + this.keyAcceleration>>0;
+ break;
+ default:
+ return;
+ }
- if ( snap ) {
- this.goToPage(newX, newY);
- return;
- }
+ if ( snap ) {
+ this.goToPage(newX, newY);
+ return;
+ }
- if ( newX > 0 ) {
- newX = 0;
- this.keyAcceleration = 0;
- } else if ( newX < this.maxScrollX ) {
- newX = this.maxScrollX;
- this.keyAcceleration = 0;
- }
+ if ( newX > 0 ) {
+ newX = 0;
+ this.keyAcceleration = 0;
+ } else if ( newX < this.maxScrollX ) {
+ newX = this.maxScrollX;
+ this.keyAcceleration = 0;
+ }
- if ( newY > 0 ) {
- newY = 0;
- this.keyAcceleration = 0;
- } else if ( newY < this.maxScrollY ) {
- newY = this.maxScrollY;
- this.keyAcceleration = 0;
- }
+ if ( newY > 0 ) {
+ newY = 0;
+ this.keyAcceleration = 0;
+ } else if ( newY < this.maxScrollY ) {
+ newY = this.maxScrollY;
+ this.keyAcceleration = 0;
+ }
- this.scrollTo(newX, newY, 0);
+ this.scrollTo(newX, newY, 0);
- this.keyTime = now;
- },
+ this.keyTime = now;
+ },
- _animate: function (destX, destY, duration, easingFn) {
- var that = this,
- startX = this.x,
- startY = this.y,
- startTime = utils.getTime(),
- destTime = startTime + duration;
+ _animate: function (destX, destY, duration, easingFn) {
+ var that = this,
+ startX = this.x,
+ startY = this.y,
+ startTime = utils.getTime(),
+ destTime = startTime + duration;
- function step () {
- var now = utils.getTime(),
- newX, newY,
- easing;
+ function step () {
+ var now = utils.getTime(),
+ newX, newY,
+ easing;
- if ( now >= destTime ) {
- that.isAnimating = false;
- that._translate(destX, destY);
+ if ( now >= destTime ) {
+ that.isAnimating = false;
+ that._translate(destX, destY);
- if ( !that.resetPosition(that.options.bounceTime) ) {
- that._execEvent('scrollEnd');
- }
+ if ( !that.resetPosition(that.options.bounceTime) ) {
+ that._execEvent('scrollEnd');
+ }
- return;
- }
+ return;
+ }
- now = ( now - startTime ) / duration;
- easing = easingFn(now);
- newX = ( destX - startX ) * easing + startX;
- newY = ( destY - startY ) * easing + startY;
- that._translate(newX, newY);
+ now = ( now - startTime ) / duration;
+ easing = easingFn(now);
+ newX = ( destX - startX ) * easing + startX;
+ newY = ( destY - startY ) * easing + startY;
+ that._translate(newX, newY);
- if ( that.isAnimating ) {
- rAF(step);
- }
- }
+ if ( that.isAnimating ) {
+ rAF(step);
+ }
+ }
- this.isAnimating = true;
- step();
- },
- handleEvent: function (e) {
- switch ( e.type ) {
- case 'touchstart':
- case 'pointerdown':
- case 'MSPointerDown':
- case 'mousedown':
- this._start(e);
- break;
- case 'touchmove':
- case 'pointermove':
- case 'MSPointerMove':
- case 'mousemove':
- this._move(e);
- break;
- case 'touchend':
- case 'pointerup':
- case 'MSPointerUp':
- case 'mouseup':
- case 'touchcancel':
- case 'pointercancel':
- case 'MSPointerCancel':
- case 'mousecancel':
- this._end(e);
- break;
- case 'orientationchange':
- case 'resize':
- this._resize();
- break;
- case 'transitionend':
- case 'webkitTransitionEnd':
- case 'oTransitionEnd':
- case 'MSTransitionEnd':
- this._transitionEnd(e);
- break;
- case 'wheel':
- case 'DOMMouseScroll':
- case 'mousewheel':
- this._wheel(e);
- break;
- case 'keydown':
- this._key(e);
- break;
- case 'click':
- if ( !e._constructed ) {
- e.preventDefault();
- e.stopPropagation();
- }
- break;
- }
- }
+ this.isAnimating = true;
+ step();
+ },
+ handleEvent: function (e) {
+ switch ( e.type ) {
+ case 'touchstart':
+ case 'pointerdown':
+ case 'MSPointerDown':
+ case 'mousedown':
+ this._start(e);
+ break;
+ case 'touchmove':
+ case 'pointermove':
+ case 'MSPointerMove':
+ case 'mousemove':
+ this._move(e);
+ break;
+ case 'touchend':
+ case 'pointerup':
+ case 'MSPointerUp':
+ case 'mouseup':
+ case 'touchcancel':
+ case 'pointercancel':
+ case 'MSPointerCancel':
+ case 'mousecancel':
+ this._end(e);
+ break;
+ case 'orientationchange':
+ case 'resize':
+ this._resize();
+ break;
+ case 'transitionend':
+ case 'webkitTransitionEnd':
+ case 'oTransitionEnd':
+ case 'MSTransitionEnd':
+ this._transitionEnd(e);
+ break;
+ case 'wheel':
+ case 'DOMMouseScroll':
+ case 'mousewheel':
+ this._wheel(e);
+ break;
+ case 'keydown':
+ this._key(e);
+ break;
+ case 'click':
+ if ( this.enabled && !e._constructed ) {
+ e.preventDefault();
+ e.stopPropagation();
+ }
+ break;
+ }
+ }
};
function createDefaultScrollbar (direction, interactive, type) {
- var scrollbar = document.createElement('div'),
- indicator = document.createElement('div');
+ var scrollbar = document.createElement('div'),
+ indicator = document.createElement('div');
- if ( type === true ) {
- scrollbar.style.cssText = 'position:absolute;z-index:9999';
- indicator.style.cssText = '-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);border-radius:3px';
- }
+ if ( type === true ) {
+ scrollbar.style.cssText = 'position:absolute;z-index:9999';
+ indicator.style.cssText = '-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);border-radius:3px';
+ }
- indicator.className = 'iScrollIndicator';
+ indicator.className = 'iScrollIndicator';
- if ( direction == 'h' ) {
- if ( type === true ) {
- scrollbar.style.cssText += ';height:7px;left:2px;right:2px;bottom:0';
- indicator.style.height = '100%';
- }
- scrollbar.className = 'iScrollHorizontalScrollbar';
- } else {
- if ( type === true ) {
- scrollbar.style.cssText += ';width:7px;bottom:2px;top:2px;right:1px';
- indicator.style.width = '100%';
- }
- scrollbar.className = 'iScrollVerticalScrollbar';
- }
+ if ( direction == 'h' ) {
+ if ( type === true ) {
+ scrollbar.style.cssText += ';height:7px;left:2px;right:2px;bottom:0';
+ indicator.style.height = '100%';
+ }
+ scrollbar.className = 'iScrollHorizontalScrollbar';
+ } else {
+ if ( type === true ) {
+ scrollbar.style.cssText += ';width:7px;bottom:2px;top:2px;right:1px';
+ indicator.style.width = '100%';
+ }
+ scrollbar.className = 'iScrollVerticalScrollbar';
+ }
- scrollbar.style.cssText += ';overflow:hidden';
+ scrollbar.style.cssText += ';overflow:hidden';
- if ( !interactive ) {
- scrollbar.style.pointerEvents = 'none';
- }
+ if ( !interactive ) {
+ scrollbar.style.pointerEvents = 'none';
+ }
- scrollbar.appendChild(indicator);
+ scrollbar.appendChild(indicator);
- return scrollbar;
+ return scrollbar;
}
function Indicator (scroller, options) {
- this.wrapper = typeof options.el == 'string' ? document.querySelector(options.el) : options.el;
- this.wrapperStyle = this.wrapper.style;
- this.indicator = this.wrapper.children[0];
- this.indicatorStyle = this.indicator.style;
- this.scroller = scroller;
+ this.wrapper = typeof options.el == 'string' ? document.querySelector(options.el) : options.el;
+ this.wrapperStyle = this.wrapper.style;
+ this.indicator = this.wrapper.children[0];
+ this.indicatorStyle = this.indicator.style;
+ this.scroller = scroller;
- this.options = {
- listenX: true,
- listenY: true,
- interactive: false,
- resize: true,
- defaultScrollbars: false,
- shrink: false,
- fade: false,
- speedRatioX: 0,
- speedRatioY: 0
- };
+ this.options = {
+ listenX: true,
+ listenY: true,
+ interactive: false,
+ resize: true,
+ defaultScrollbars: false,
+ shrink: false,
+ fade: false,
+ speedRatioX: 0,
+ speedRatioY: 0
+ };
- for ( var i in options ) {
- this.options[i] = options[i];
- }
+ for ( var i in options ) {
+ this.options[i] = options[i];
+ }
- this.sizeRatioX = 1;
- this.sizeRatioY = 1;
- this.maxPosX = 0;
- this.maxPosY = 0;
+ this.sizeRatioX = 1;
+ this.sizeRatioY = 1;
+ this.maxPosX = 0;
+ this.maxPosY = 0;
- if ( this.options.interactive ) {
- if ( !this.options.disableTouch ) {
- utils.addEvent(this.indicator, 'touchstart', this);
- utils.addEvent(window, 'touchend', this);
- }
- if ( !this.options.disablePointer ) {
- utils.addEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this);
- utils.addEvent(window, utils.prefixPointerEvent('pointerup'), this);
- }
- if ( !this.options.disableMouse ) {
- utils.addEvent(this.indicator, 'mousedown', this);
- utils.addEvent(window, 'mouseup', this);
- }
- }
+ if ( this.options.interactive ) {
+ if ( !this.options.disableTouch ) {
+ utils.addEvent(this.indicator, 'touchstart', this);
+ utils.addEvent(window, 'touchend', this);
+ }
+ if ( !this.options.disablePointer ) {
+ utils.addEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this);
+ utils.addEvent(window, utils.prefixPointerEvent('pointerup'), this);
+ }
+ if ( !this.options.disableMouse ) {
+ utils.addEvent(this.indicator, 'mousedown', this);
+ utils.addEvent(window, 'mouseup', this);
+ }
+ }
- if ( this.options.fade ) {
- this.wrapperStyle[utils.style.transform] = this.scroller.translateZ;
- this.wrapperStyle[utils.style.transitionDuration] = utils.isBadAndroid ? '0.001s' : '0ms';
- this.wrapperStyle.opacity = '0';
- }
+ if ( this.options.fade ) {
+ this.wrapperStyle[utils.style.transform] = this.scroller.translateZ;
+ var durationProp = utils.style.transitionDuration;
+ if(!durationProp) {
+ return;
+ }
+ this.wrapperStyle[durationProp] = utils.isBadAndroid ? '0.0001ms' : '0ms';
+ // remove 0.0001ms
+ var self = this;
+ if(utils.isBadAndroid) {
+ rAF(function() {
+ if(self.wrapperStyle[durationProp] === '0.0001ms') {
+ self.wrapperStyle[durationProp] = '0s';
+ }
+ });
+ }
+ this.wrapperStyle.opacity = '0';
+ }
}
Indicator.prototype = {
- handleEvent: function (e) {
- switch ( e.type ) {
- case 'touchstart':
- case 'pointerdown':
- case 'MSPointerDown':
- case 'mousedown':
- this._start(e);
- break;
- case 'touchmove':
- case 'pointermove':
- case 'MSPointerMove':
- case 'mousemove':
- this._move(e);
- break;
- case 'touchend':
- case 'pointerup':
- case 'MSPointerUp':
- case 'mouseup':
- case 'touchcancel':
- case 'pointercancel':
- case 'MSPointerCancel':
- case 'mousecancel':
- this._end(e);
- break;
- }
- },
+ handleEvent: function (e) {
+ switch ( e.type ) {
+ case 'touchstart':
+ case 'pointerdown':
+ case 'MSPointerDown':
+ case 'mousedown':
+ this._start(e);
+ break;
+ case 'touchmove':
+ case 'pointermove':
+ case 'MSPointerMove':
+ case 'mousemove':
+ this._move(e);
+ break;
+ case 'touchend':
+ case 'pointerup':
+ case 'MSPointerUp':
+ case 'mouseup':
+ case 'touchcancel':
+ case 'pointercancel':
+ case 'MSPointerCancel':
+ case 'mousecancel':
+ this._end(e);
+ break;
+ }
+ },
- destroy: function () {
- if ( this.options.interactive ) {
- utils.removeEvent(this.indicator, 'touchstart', this);
- utils.removeEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this);
- utils.removeEvent(this.indicator, 'mousedown', this);
+ destroy: function () {
+ if ( this.options.fadeScrollbars ) {
+ clearTimeout(this.fadeTimeout);
+ this.fadeTimeout = null;
+ }
+ if ( this.options.interactive ) {
+ utils.removeEvent(this.indicator, 'touchstart', this);
+ utils.removeEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this);
+ utils.removeEvent(this.indicator, 'mousedown', this);
- utils.removeEvent(window, 'touchmove', this);
- utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this);
- utils.removeEvent(window, 'mousemove', this);
+ utils.removeEvent(window, 'touchmove', this);
+ utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this);
+ utils.removeEvent(window, 'mousemove', this);
- utils.removeEvent(window, 'touchend', this);
- utils.removeEvent(window, utils.prefixPointerEvent('pointerup'), this);
- utils.removeEvent(window, 'mouseup', this);
- }
+ utils.removeEvent(window, 'touchend', this);
+ utils.removeEvent(window, utils.prefixPointerEvent('pointerup'), this);
+ utils.removeEvent(window, 'mouseup', this);
+ }
- if ( this.options.defaultScrollbars ) {
- this.wrapper.parentNode.removeChild(this.wrapper);
- }
- },
+ if ( this.options.defaultScrollbars && this.wrapper.parentNode ) {
+ this.wrapper.parentNode.removeChild(this.wrapper);
+ }
+ },
- _start: function (e) {
- var point = e.touches ? e.touches[0] : e;
+ _start: function (e) {
+ var point = e.touches ? e.touches[0] : e;
- e.preventDefault();
- e.stopPropagation();
+ e.preventDefault();
+ e.stopPropagation();
- this.transitionTime();
+ this.transitionTime();
- this.initiated = true;
- this.moved = false;
- this.lastPointX = point.pageX;
- this.lastPointY = point.pageY;
+ this.initiated = true;
+ this.moved = false;
+ this.lastPointX = point.pageX;
+ this.lastPointY = point.pageY;
- this.startTime = utils.getTime();
+ this.startTime = utils.getTime();
- if ( !this.options.disableTouch ) {
- utils.addEvent(window, 'touchmove', this);
- }
- if ( !this.options.disablePointer ) {
- utils.addEvent(window, utils.prefixPointerEvent('pointermove'), this);
- }
- if ( !this.options.disableMouse ) {
- utils.addEvent(window, 'mousemove', this);
- }
+ if ( !this.options.disableTouch ) {
+ utils.addEvent(window, 'touchmove', this);
+ }
+ if ( !this.options.disablePointer ) {
+ utils.addEvent(window, utils.prefixPointerEvent('pointermove'), this);
+ }
+ if ( !this.options.disableMouse ) {
+ utils.addEvent(window, 'mousemove', this);
+ }
- this.scroller._execEvent('beforeScrollStart');
- },
+ this.scroller._execEvent('beforeScrollStart');
+ },
- _move: function (e) {
- var point = e.touches ? e.touches[0] : e,
- deltaX, deltaY,
- newX, newY,
- timestamp = utils.getTime();
+ _move: function (e) {
+ var point = e.touches ? e.touches[0] : e,
+ deltaX, deltaY,
+ newX, newY,
+ timestamp = utils.getTime();
- if ( !this.moved ) {
- this.scroller._execEvent('scrollStart');
- }
+ if ( !this.moved ) {
+ this.scroller._execEvent('scrollStart');
+ }
- this.moved = true;
+ this.moved = true;
- deltaX = point.pageX - this.lastPointX;
- this.lastPointX = point.pageX;
+ deltaX = point.pageX - this.lastPointX;
+ this.lastPointX = point.pageX;
- deltaY = point.pageY - this.lastPointY;
- this.lastPointY = point.pageY;
+ deltaY = point.pageY - this.lastPointY;
+ this.lastPointY = point.pageY;
- newX = this.x + deltaX;
- newY = this.y + deltaY;
+ newX = this.x + deltaX;
+ newY = this.y + deltaY;
- this._pos(newX, newY);
+ this._pos(newX, newY);
// INSERT POINT: indicator._move
- e.preventDefault();
- e.stopPropagation();
- },
+ e.preventDefault();
+ e.stopPropagation();
+ },
+
+ _end: function (e) {
+ if ( !this.initiated ) {
+ return;
+ }
- _end: function (e) {
- if ( !this.initiated ) {
- return;
- }
+ this.initiated = false;
- this.initiated = false;
+ e.preventDefault();
+ e.stopPropagation();
- e.preventDefault();
- e.stopPropagation();
+ utils.removeEvent(window, 'touchmove', this);
+ utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this);
+ utils.removeEvent(window, 'mousemove', this);
- utils.removeEvent(window, 'touchmove', this);
- utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this);
- utils.removeEvent(window, 'mousemove', this);
+ if ( this.scroller.options.snap ) {
+ var snap = this.scroller._nearestSnap(this.scroller.x, this.scroller.y);
- if ( this.scroller.options.snap ) {
- var snap = this.scroller._nearestSnap(this.scroller.x, this.scroller.y);
+ var time = this.options.snapSpeed || Math.max(
+ Math.max(
+ Math.min(Math.abs(this.scroller.x - snap.x), 1000),
+ Math.min(Math.abs(this.scroller.y - snap.y), 1000)
+ ), 300);
- var time = this.options.snapSpeed || Math.max(
- Math.max(
- Math.min(Math.abs(this.scroller.x - snap.x), 1000),
- Math.min(Math.abs(this.scroller.y - snap.y), 1000)
- ), 300);
+ if ( this.scroller.x != snap.x || this.scroller.y != snap.y ) {
+ this.scroller.directionX = 0;
+ this.scroller.directionY = 0;
+ this.scroller.currentPage = snap;
+ this.scroller.scrollTo(snap.x, snap.y, time, this.scroller.options.bounceEasing);
+ }
+ }
- if ( this.scroller.x != snap.x || this.scroller.y != snap.y ) {
- this.scroller.directionX = 0;
- this.scroller.directionY = 0;
- this.scroller.currentPage = snap;
- this.scroller.scrollTo(snap.x, snap.y, time, this.scroller.options.bounceEasing);
- }
- }
+ if ( this.moved ) {
+ this.scroller._execEvent('scrollEnd');
+ }
+ },
- if ( this.moved ) {
- this.scroller._execEvent('scrollEnd');
- }
- },
+ transitionTime: function (time) {
+ time = time || 0;
+ var durationProp = utils.style.transitionDuration;
+ if(!durationProp) {
+ return;
+ }
- transitionTime: function (time) {
- time = time || 0;
- this.indicatorStyle[utils.style.transitionDuration] = time + 'ms';
+ this.indicatorStyle[durationProp] = time + 'ms';
- if ( !time && utils.isBadAndroid ) {
- this.indicatorStyle[utils.style.transitionDuration] = '0.001s';
- }
- },
+ if ( !time && utils.isBadAndroid ) {
+ this.indicatorStyle[durationProp] = '0.0001ms';
+ // remove 0.0001ms
+ var self = this;
+ rAF(function() {
+ if(self.indicatorStyle[durationProp] === '0.0001ms') {
+ self.indicatorStyle[durationProp] = '0s';
+ }
+ });
+ }
+ },
- transitionTimingFunction: function (easing) {
- this.indicatorStyle[utils.style.transitionTimingFunction] = easing;
- },
+ transitionTimingFunction: function (easing) {
+ this.indicatorStyle[utils.style.transitionTimingFunction] = easing;
+ },
- refresh: function () {
- this.transitionTime();
+ refresh: function () {
+ this.transitionTime();
- if ( this.options.listenX && !this.options.listenY ) {
- this.indicatorStyle.display = this.scroller.hasHorizontalScroll ? 'block' : 'none';
- } else if ( this.options.listenY && !this.options.listenX ) {
- this.indicatorStyle.display = this.scroller.hasVerticalScroll ? 'block' : 'none';
- } else {
- this.indicatorStyle.display = this.scroller.hasHorizontalScroll || this.scroller.hasVerticalScroll ? 'block' : 'none';
- }
+ if ( this.options.listenX && !this.options.listenY ) {
+ this.indicatorStyle.display = this.scroller.hasHorizontalScroll ? 'block' : 'none';
+ } else if ( this.options.listenY && !this.options.listenX ) {
+ this.indicatorStyle.display = this.scroller.hasVerticalScroll ? 'block' : 'none';
+ } else {
+ this.indicatorStyle.display = this.scroller.hasHorizontalScroll || this.scroller.hasVerticalScroll ? 'block' : 'none';
+ }
- if ( this.scroller.hasHorizontalScroll && this.scroller.hasVerticalScroll ) {
- utils.addClass(this.wrapper, 'iScrollBothScrollbars');
- utils.removeClass(this.wrapper, 'iScrollLoneScrollbar');
+ if ( this.scroller.hasHorizontalScroll && this.scroller.hasVerticalScroll ) {
+ utils.addClass(this.wrapper, 'iScrollBothScrollbars');
+ utils.removeClass(this.wrapper, 'iScrollLoneScrollbar');
- if ( this.options.defaultScrollbars && this.options.customStyle ) {
- if ( this.options.listenX ) {
- this.wrapper.style.right = '8px';
- } else {
- this.wrapper.style.bottom = '8px';
- }
- }
- } else {
- utils.removeClass(this.wrapper, 'iScrollBothScrollbars');
- utils.addClass(this.wrapper, 'iScrollLoneScrollbar');
+ if ( this.options.defaultScrollbars && this.options.customStyle ) {
+ if ( this.options.listenX ) {
+ this.wrapper.style.right = '8px';
+ } else {
+ this.wrapper.style.bottom = '8px';
+ }
+ }
+ } else {
+ utils.removeClass(this.wrapper, 'iScrollBothScrollbars');
+ utils.addClass(this.wrapper, 'iScrollLoneScrollbar');
- if ( this.options.defaultScrollbars && this.options.customStyle ) {
- if ( this.options.listenX ) {
- this.wrapper.style.right = '2px';
- } else {
- this.wrapper.style.bottom = '2px';
- }
- }
- }
+ if ( this.options.defaultScrollbars && this.options.customStyle ) {
+ if ( this.options.listenX ) {
+ this.wrapper.style.right = '2px';
+ } else {
+ this.wrapper.style.bottom = '2px';
+ }
+ }
+ }
- var r = this.wrapper.offsetHeight; // force refresh
+ utils.getRect(this.wrapper); // force refresh
- if ( this.options.listenX ) {
- this.wrapperWidth = this.wrapper.clientWidth;
- if ( this.options.resize ) {
- this.indicatorWidth = Math.max(Math.round(this.wrapperWidth * this.wrapperWidth / (this.scroller.scrollerWidth || this.wrapperWidth || 1)), 8);
- this.indicatorStyle.width = this.indicatorWidth + 'px';
- } else {
- this.indicatorWidth = this.indicator.clientWidth;
- }
+ if ( this.options.listenX ) {
+ this.wrapperWidth = this.wrapper.clientWidth;
+ if ( this.options.resize ) {
+ this.indicatorWidth = Math.max(Math.round(this.wrapperWidth * this.wrapperWidth / (this.scroller.scrollerWidth || this.wrapperWidth || 1)), 8);
+ this.indicatorStyle.width = this.indicatorWidth + 'px';
+ } else {
+ this.indicatorWidth = this.indicator.clientWidth;
+ }
- this.maxPosX = this.wrapperWidth - this.indicatorWidth;
+ this.maxPosX = this.wrapperWidth - this.indicatorWidth;
- if ( this.options.shrink == 'clip' ) {
- this.minBoundaryX = -this.indicatorWidth + 8;
- this.maxBoundaryX = this.wrapperWidth - 8;
- } else {
- this.minBoundaryX = 0;
- this.maxBoundaryX = this.maxPosX;
- }
+ if ( this.options.shrink == 'clip' ) {
+ this.minBoundaryX = -this.indicatorWidth + 8;
+ this.maxBoundaryX = this.wrapperWidth - 8;
+ } else {
+ this.minBoundaryX = 0;
+ this.maxBoundaryX = this.maxPosX;
+ }
- this.sizeRatioX = this.options.speedRatioX || (this.scroller.maxScrollX && (this.maxPosX / this.scroller.maxScrollX));
- }
+ this.sizeRatioX = this.options.speedRatioX || (this.scroller.maxScrollX && (this.maxPosX / this.scroller.maxScrollX));
+ }
- if ( this.options.listenY ) {
- this.wrapperHeight = this.wrapper.clientHeight;
- if ( this.options.resize ) {
- this.indicatorHeight = Math.max(Math.round(this.wrapperHeight * this.wrapperHeight / (this.scroller.scrollerHeight || this.wrapperHeight || 1)), 8);
- this.indicatorStyle.height = this.indicatorHeight + 'px';
- } else {
- this.indicatorHeight = this.indicator.clientHeight;
- }
+ if ( this.options.listenY ) {
+ this.wrapperHeight = this.wrapper.clientHeight;
+ if ( this.options.resize ) {
+ this.indicatorHeight = Math.max(Math.round(this.wrapperHeight * this.wrapperHeight / (this.scroller.scrollerHeight || this.wrapperHeight || 1)), 8);
+ this.indicatorStyle.height = this.indicatorHeight + 'px';
+ } else {
+ this.indicatorHeight = this.indicator.clientHeight;
+ }
- this.maxPosY = this.wrapperHeight - this.indicatorHeight;
+ this.maxPosY = this.wrapperHeight - this.indicatorHeight;
- if ( this.options.shrink == 'clip' ) {
- this.minBoundaryY = -this.indicatorHeight + 8;
- this.maxBoundaryY = this.wrapperHeight - 8;
- } else {
- this.minBoundaryY = 0;
- this.maxBoundaryY = this.maxPosY;
- }
+ if ( this.options.shrink == 'clip' ) {
+ this.minBoundaryY = -this.indicatorHeight + 8;
+ this.maxBoundaryY = this.wrapperHeight - 8;
+ } else {
+ this.minBoundaryY = 0;
+ this.maxBoundaryY = this.maxPosY;
+ }
- this.maxPosY = this.wrapperHeight - this.indicatorHeight;
- this.sizeRatioY = this.options.speedRatioY || (this.scroller.maxScrollY && (this.maxPosY / this.scroller.maxScrollY));
- }
+ this.maxPosY = this.wrapperHeight - this.indicatorHeight;
+ this.sizeRatioY = this.options.speedRatioY || (this.scroller.maxScrollY && (this.maxPosY / this.scroller.maxScrollY));
+ }
- this.updatePosition();
- },
+ this.updatePosition();
+ },
- updatePosition: function () {
- var x = this.options.listenX && Math.round(this.sizeRatioX * this.scroller.x) || 0,
- y = this.options.listenY && Math.round(this.sizeRatioY * this.scroller.y) || 0;
+ updatePosition: function () {
+ var x = this.options.listenX && Math.round(this.sizeRatioX * this.scroller.x) || 0,
+ y = this.options.listenY && Math.round(this.sizeRatioY * this.scroller.y) || 0;
- if ( !this.options.ignoreBoundaries ) {
- if ( x < this.minBoundaryX ) {
- if ( this.options.shrink == 'scale' ) {
- this.width = Math.max(this.indicatorWidth + x, 8);
- this.indicatorStyle.width = this.width + 'px';
- }
- x = this.minBoundaryX;
- } else if ( x > this.maxBoundaryX ) {
- if ( this.options.shrink == 'scale' ) {
- this.width = Math.max(this.indicatorWidth - (x - this.maxPosX), 8);
- this.indicatorStyle.width = this.width + 'px';
- x = this.maxPosX + this.indicatorWidth - this.width;
- } else {
- x = this.maxBoundaryX;
- }
- } else if ( this.options.shrink == 'scale' && this.width != this.indicatorWidth ) {
- this.width = this.indicatorWidth;
- this.indicatorStyle.width = this.width + 'px';
- }
+ if ( !this.options.ignoreBoundaries ) {
+ if ( x < this.minBoundaryX ) {
+ if ( this.options.shrink == 'scale' ) {
+ this.width = Math.max(this.indicatorWidth + x, 8);
+ this.indicatorStyle.width = this.width + 'px';
+ }
+ x = this.minBoundaryX;
+ } else if ( x > this.maxBoundaryX ) {
+ if ( this.options.shrink == 'scale' ) {
+ this.width = Math.max(this.indicatorWidth - (x - this.maxPosX), 8);
+ this.indicatorStyle.width = this.width + 'px';
+ x = this.maxPosX + this.indicatorWidth - this.width;
+ } else {
+ x = this.maxBoundaryX;
+ }
+ } else if ( this.options.shrink == 'scale' && this.width != this.indicatorWidth ) {
+ this.width = this.indicatorWidth;
+ this.indicatorStyle.width = this.width + 'px';
+ }
- if ( y < this.minBoundaryY ) {
- if ( this.options.shrink == 'scale' ) {
- this.height = Math.max(this.indicatorHeight + y * 3, 8);
- this.indicatorStyle.height = this.height + 'px';
- }
- y = this.minBoundaryY;
- } else if ( y > this.maxBoundaryY ) {
- if ( this.options.shrink == 'scale' ) {
- this.height = Math.max(this.indicatorHeight - (y - this.maxPosY) * 3, 8);
- this.indicatorStyle.height = this.height + 'px';
- y = this.maxPosY + this.indicatorHeight - this.height;
- } else {
- y = this.maxBoundaryY;
- }
- } else if ( this.options.shrink == 'scale' && this.height != this.indicatorHeight ) {
- this.height = this.indicatorHeight;
- this.indicatorStyle.height = this.height + 'px';
- }
- }
+ if ( y < this.minBoundaryY ) {
+ if ( this.options.shrink == 'scale' ) {
+ this.height = Math.max(this.indicatorHeight + y * 3, 8);
+ this.indicatorStyle.height = this.height + 'px';
+ }
+ y = this.minBoundaryY;
+ } else if ( y > this.maxBoundaryY ) {
+ if ( this.options.shrink == 'scale' ) {
+ this.height = Math.max(this.indicatorHeight - (y - this.maxPosY) * 3, 8);
+ this.indicatorStyle.height = this.height + 'px';
+ y = this.maxPosY + this.indicatorHeight - this.height;
+ } else {
+ y = this.maxBoundaryY;
+ }
+ } else if ( this.options.shrink == 'scale' && this.height != this.indicatorHeight ) {
+ this.height = this.indicatorHeight;
+ this.indicatorStyle.height = this.height + 'px';
+ }
+ }
- this.x = x;
- this.y = y;
+ this.x = x;
+ this.y = y;
- if ( this.scroller.options.useTransform ) {
- this.indicatorStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.scroller.translateZ;
- } else {
- this.indicatorStyle.left = x + 'px';
- this.indicatorStyle.top = y + 'px';
- }
- },
+ if ( this.scroller.options.useTransform ) {
+ this.indicatorStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.scroller.translateZ;
+ } else {
+ this.indicatorStyle.left = x + 'px';
+ this.indicatorStyle.top = y + 'px';
+ }
+ },
- _pos: function (x, y) {
- if ( x < 0 ) {
- x = 0;
- } else if ( x > this.maxPosX ) {
- x = this.maxPosX;
- }
+ _pos: function (x, y) {
+ if ( x < 0 ) {
+ x = 0;
+ } else if ( x > this.maxPosX ) {
+ x = this.maxPosX;
+ }
- if ( y < 0 ) {
- y = 0;
- } else if ( y > this.maxPosY ) {
- y = this.maxPosY;
- }
+ if ( y < 0 ) {
+ y = 0;
+ } else if ( y > this.maxPosY ) {
+ y = this.maxPosY;
+ }
- x = this.options.listenX ? Math.round(x / this.sizeRatioX) : this.scroller.x;
- y = this.options.listenY ? Math.round(y / this.sizeRatioY) : this.scroller.y;
+ x = this.options.listenX ? Math.round(x / this.sizeRatioX) : this.scroller.x;
+ y = this.options.listenY ? Math.round(y / this.sizeRatioY) : this.scroller.y;
- this.scroller.scrollTo(x, y);
- },
+ this.scroller.scrollTo(x, y);
+ },
- fade: function (val, hold) {
- if ( hold && !this.visible ) {
- return;
- }
+ fade: function (val, hold) {
+ if ( hold && !this.visible ) {
+ return;
+ }
- clearTimeout(this.fadeTimeout);
- this.fadeTimeout = null;
+ clearTimeout(this.fadeTimeout);
+ this.fadeTimeout = null;
- var time = val ? 250 : 500,
- delay = val ? 0 : 300;
+ var time = val ? 250 : 500,
+ delay = val ? 0 : 300;
- val = val ? '1' : '0';
+ val = val ? '1' : '0';
- this.wrapperStyle[utils.style.transitionDuration] = time + 'ms';
+ this.wrapperStyle[utils.style.transitionDuration] = time + 'ms';
- this.fadeTimeout = setTimeout((function (val) {
- this.wrapperStyle.opacity = val;
- this.visible = +val;
- }).bind(this, val), delay);
- }
+ this.fadeTimeout = setTimeout((function (val) {
+ this.wrapperStyle.opacity = val;
+ this.visible = +val;
+ }).bind(this, val), delay);
+ }
};
IScroll.utils = utils;
if ( typeof module != 'undefined' && module.exports ) {
- module.exports = IScroll;
+ module.exports = IScroll;
+} else if ( typeof define == 'function' && define.amd ) {
+ define( function () { return IScroll; } );
} else {
- window.IScroll = IScroll;
+ window.IScroll = IScroll;
}
})(window, document, Math); \ No newline at end of file
diff --git a/StoneIsland/platforms/android/assets/www/plugins/com.phonegap.plugin.mobile-accessibility/android/AndroidVox_v1.js b/StoneIsland/platforms/android/assets/www/plugins/com.phonegap.plugin.mobile-accessibility/android/AndroidVox_v1.js
new file mode 100644
index 00000000..8229b168
--- /dev/null
+++ b/StoneIsland/platforms/android/assets/www/plugins/com.phonegap.plugin.mobile-accessibility/android/AndroidVox_v1.js
@@ -0,0 +1,1778 @@
+// Copyright 2013 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+var goog=goog||{};goog.global=this;goog.exportPath_=function(a,b,c){a=a.split(".");c=c||goog.global;a[0]in c||!c.execScript||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)a.length||void 0===b?c=c[d]?c[d]:c[d]={}:c[d]=b};goog.define=function(a,b){var c=b;goog.exportPath_(a,c)};goog.DEBUG=!1;goog.LOCALE="en";goog.TRUSTED_SITE=!0;goog.provide=function(a){goog.exportPath_(a)};
+goog.setTestOnly=function(a){if(!goog.DEBUG)throw a=a||"",Error("Importing test-only code into non-debug environment"+a?": "+a:".");};goog.getObjectByName=function(a,b){for(var c=a.split("."),d=b||goog.global,e;e=c.shift();)if(goog.isDefAndNotNull(d[e]))d=d[e];else return null;return d};goog.globalize=function(a,b){var c=b||goog.global,d;for(d in a)c[d]=a[d]};
+goog.addDependency=function(a,b,c){if(goog.DEPENDENCIES_ENABLED){var d;a=a.replace(/\\/g,"/");for(var e=goog.dependencies_,f=0;d=b[f];f++)e.nameToPath[d]=a,a in e.pathToNames||(e.pathToNames[a]={}),e.pathToNames[a][d]=!0;for(d=0;b=c[d];d++)a in e.requires||(e.requires[a]={}),e.requires[a][b]=!0}};goog.useStrictRequires=!1;goog.ENABLE_DEBUG_LOADER=!0;goog.require=function(){};goog.basePath="";goog.nullFunction=function(){};goog.identityFunction=function(a){return a};
+goog.abstractMethod=function(){throw Error("unimplemented abstract method");};goog.addSingletonGetter=function(a){a.getInstance=function(){if(a.instance_)return a.instance_;goog.DEBUG&&(goog.instantiatedSingletons_[goog.instantiatedSingletons_.length]=a);return a.instance_=new a}};goog.instantiatedSingletons_=[];goog.DEPENDENCIES_ENABLED=!1;
+goog.DEPENDENCIES_ENABLED&&(goog.included_={},goog.dependencies_={pathToNames:{},nameToPath:{},requires:{},visited:{},written:{}},goog.inHtmlDocument_=function(){var a=goog.global.document;return"undefined"!=typeof a&&"write"in a},goog.findBasePath_=function(){if(goog.global.CLOSURE_BASE_PATH)goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_())for(var a=goog.global.document,a=a.getElementsByTagName("script"),b=a.length-1;0<=b;--b){var c=a[b].src,d=c.lastIndexOf("?"),d=-1==d?
+c.length:d;if("base.js"==c.substr(d-7,7)){goog.basePath=c.substr(0,d-7);break}}},goog.importScript_=function(a){var b=goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_;!goog.dependencies_.written[a]&&b(a)&&(goog.dependencies_.written[a]=!0)},goog.writeScriptTag_=function(a){if(goog.inHtmlDocument_()){var b=goog.global.document;if("complete"==b.readyState){if(b=/\bdeps.js$/.test(a))return!1;throw Error('Cannot write "'+a+'" after document load');}b.write('<script type="text/javascript" src="'+
+a+'">\x3c/script>');return!0}return!1},goog.writeScripts_=function(){function a(e){if(!(e in d.written)){if(!(e in d.visited)&&(d.visited[e]=!0,e in d.requires))for(var g in d.requires[e])if(!goog.isProvided_(g))if(g in d.nameToPath)a(d.nameToPath[g]);else throw Error("Undefined nameToPath for "+g);e in c||(c[e]=!0,b.push(e))}}var b=[],c={},d=goog.dependencies_,e;for(e in goog.included_)d.written[e]||a(e);for(e=0;e<b.length;e++)if(b[e])goog.importScript_(goog.basePath+b[e]);else throw Error("Undefined script input");
+},goog.getPathFromDeps_=function(a){return a in goog.dependencies_.nameToPath?goog.dependencies_.nameToPath[a]:null},goog.findBasePath_(),goog.global.CLOSURE_NO_DEPS||goog.importScript_(goog.basePath+"deps.js"));
+goog.typeOf=function(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";
+else if("function"==b&&"undefined"==typeof a.call)return"object";return b};goog.isDef=function(a){return void 0!==a};goog.isNull=function(a){return null===a};goog.isDefAndNotNull=function(a){return null!=a};goog.isArray=function(a){return"array"==goog.typeOf(a)};goog.isArrayLike=function(a){var b=goog.typeOf(a);return"array"==b||"object"==b&&"number"==typeof a.length};goog.isDateLike=function(a){return goog.isObject(a)&&"function"==typeof a.getFullYear};goog.isString=function(a){return"string"==typeof a};
+goog.isBoolean=function(a){return"boolean"==typeof a};goog.isNumber=function(a){return"number"==typeof a};goog.isFunction=function(a){return"function"==goog.typeOf(a)};goog.isObject=function(a){var b=typeof a;return"object"==b&&null!=a||"function"==b};goog.getUid=function(a){return a[goog.UID_PROPERTY_]||(a[goog.UID_PROPERTY_]=++goog.uidCounter_)};goog.hasUid=function(a){return!!a[goog.UID_PROPERTY_]};goog.removeUid=function(a){"removeAttribute"in a&&a.removeAttribute(goog.UID_PROPERTY_);try{delete a[goog.UID_PROPERTY_]}catch(b){}};
+goog.UID_PROPERTY_="closure_uid_"+(1E9*Math.random()>>>0);goog.uidCounter_=0;goog.getHashCode=goog.getUid;goog.removeHashCode=goog.removeUid;goog.cloneObject=function(a){var b=goog.typeOf(a);if("object"==b||"array"==b){if(a.clone)return a.clone();var b="array"==b?[]:{},c;for(c in a)b[c]=goog.cloneObject(a[c]);return b}return a};goog.bindNative_=function(a,b,c){return a.call.apply(a.bind,arguments)};
+goog.bindJs_=function(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}};goog.bind=function(a,b,c){Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?goog.bind=goog.bindNative_:goog.bind=goog.bindJs_;return goog.bind.apply(null,arguments)};
+goog.partial=function(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var b=c.slice();b.push.apply(b,arguments);return a.apply(this,b)}};goog.mixin=function(a,b){for(var c in b)a[c]=b[c]};goog.now=goog.TRUSTED_SITE&&Date.now||function(){return+new Date};
+goog.globalEval=function(a){if(goog.global.execScript)goog.global.execScript(a,"JavaScript");else if(goog.global.eval)if(null==goog.evalWorksForGlobals_&&(goog.global.eval("var _et_ = 1;"),"undefined"!=typeof goog.global._et_?(delete goog.global._et_,goog.evalWorksForGlobals_=!0):goog.evalWorksForGlobals_=!1),goog.evalWorksForGlobals_)goog.global.eval(a);else{var b=goog.global.document,c=b.createElement("script");c.type="text/javascript";c.defer=!1;c.appendChild(b.createTextNode(a));b.body.appendChild(c);
+b.body.removeChild(c)}else throw Error("goog.globalEval not available");};goog.evalWorksForGlobals_=null;goog.getCssName=function(a,b){var c=function(a){return goog.cssNameMapping_[a]||a},d=function(a){a=a.split("-");for(var b=[],d=0;d<a.length;d++)b.push(c(a[d]));return b.join("-")},d=goog.cssNameMapping_?"BY_WHOLE"==goog.cssNameMappingStyle_?c:d:function(a){return a};return b?a+"-"+d(b):d(a)};goog.setCssNameMapping=function(a,b){goog.cssNameMapping_=a;goog.cssNameMappingStyle_=b};
+goog.getMsg=function(a,b){var c=b||{},d;for(d in c){var e=(""+c[d]).replace(/\$/g,"$$$$");a=a.replace(RegExp("\\{\\$"+d+"\\}","gi"),e)}return a};goog.getMsgWithFallback=function(a){return a};goog.exportSymbol=function(a,b,c){goog.exportPath_(a,b,c)};goog.exportProperty=function(a,b,c){a[b]=c};goog.inherits=function(a,b){function c(){}c.prototype=b.prototype;a.superClass_=b.prototype;a.prototype=new c;a.prototype.constructor=a};
+goog.base=function(a,b,c){var d=arguments.callee.caller;if(goog.DEBUG&&!d)throw Error("arguments.caller not defined. goog.base() expects not to be running in strict mode. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");if(d.superClass_)return d.superClass_.constructor.apply(a,Array.prototype.slice.call(arguments,1));for(var e=Array.prototype.slice.call(arguments,2),f=!1,g=a.constructor;g;g=g.superClass_&&g.superClass_.constructor)if(g.prototype[b]===d)f=!0;else if(f)return g.prototype[b].apply(a,
+e);if(a[b]===d)return a.constructor.prototype[b].apply(a,e);throw Error("goog.base called from a method of one name to a method of a different name");};goog.scope=function(a){a.call(goog.global)};goog.MODIFY_FUNCTION_PROTOTYPES=!0;
+goog.MODIFY_FUNCTION_PROTOTYPES&&(Function.prototype.bind=Function.prototype.bind||function(a,b){if(1<arguments.length){var c=Array.prototype.slice.call(arguments,1);c.unshift(this,a);return goog.bind.apply(null,c)}return goog.bind(this,a)},Function.prototype.partial=function(a){var b=Array.prototype.slice.call(arguments);b.unshift(this,null);return goog.bind.apply(null,b)},Function.prototype.inherits=function(a){goog.inherits(this,a)},Function.prototype.mixin=function(a){goog.mixin(this.prototype,
+a)});var cvox={VERBOSITY_VERBOSE:0,VERBOSITY_BRIEF:1,ChromeVox:function(){}};cvox.ChromeVox.host=null;cvox.ChromeVox.msgs=null;cvox.ChromeVox.isActive=!0;cvox.ChromeVox.version=null;cvox.ChromeVox.earcons=null;cvox.ChromeVox.navigationManager=null;cvox.ChromeVox.serializer=null;cvox.ChromeVox.isStickyOn=!1;cvox.ChromeVox.keyPrefixOn=!1;cvox.ChromeVox.verbosity=cvox.VERBOSITY_VERBOSE;cvox.ChromeVox.typingEcho=0;cvox.ChromeVox.keyEcho={};cvox.ChromeVox.position={};cvox.ChromeVox.isChromeOS=-1!=navigator.userAgent.indexOf("CrOS");
+cvox.ChromeVox.isMac=-1!=navigator.platform.indexOf("Mac");cvox.ChromeVox.modKeyStr=cvox.ChromeVox.isChromeOS?"Shift+Search":cvox.ChromeVox.isMac?"Ctrl+Cmd":"Ctrl+Meta";cvox.ChromeVox.sequenceSwitchKeyCodes=[];cvox.ChromeVox.visitedUrls={};cvox.ChromeVox.markInUserCommand=function(){};cvox.ChromeVox.syncToNode=function(){};cvox.ChromeVox.speakNode=function(){};cvox.ChromeVox.executeUserCommand=function(){};cvox.ChromeVox.entireDocumentIsHidden=!1;
+cvox.ChromeVox.storeOn=function(a){a.isStickyOn=cvox.ChromeVox.isStickyOn;cvox.ChromeVox.navigationManager.storeOn(a)};cvox.ChromeVox.readFrom=function(a){cvox.ChromeVox.isStickyOn=a.isStickyOn;cvox.ChromeVox.navigationManager.readFrom(a)};cvox.Cursor=function(a,b,c){this.node=a;this.index=b;this.text=c};cvox.Cursor.prototype.clone=function(){return new cvox.Cursor(this.node,this.index,this.text)};cvox.Cursor.prototype.copyFrom=function(a){this.node=a.node;this.index=a.index;this.text=a.text};cvox.Cursor.prototype.equals=function(a){return this.node==a.node&&this.index==a.index&&this.text==a.text};goog.debug={};goog.debug.Error=function(a){Error.captureStackTrace?Error.captureStackTrace(this,goog.debug.Error):this.stack=Error().stack||"";a&&(this.message=String(a))};goog.inherits(goog.debug.Error,Error);goog.debug.Error.prototype.name="CustomError";goog.dom={};goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12};goog.string={};goog.string.Unicode={NBSP:"\u00a0"};goog.string.startsWith=function(a,b){return 0==a.lastIndexOf(b,0)};goog.string.endsWith=function(a,b){var c=a.length-b.length;return 0<=c&&a.indexOf(b,c)==c};goog.string.caseInsensitiveStartsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(0,b.length))};goog.string.caseInsensitiveEndsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(a.length-b.length,b.length))};
+goog.string.caseInsensitiveEquals=function(a,b){return a.toLowerCase()==b.toLowerCase()};goog.string.subs=function(a,b){for(var c=a.split("%s"),d="",e=Array.prototype.slice.call(arguments,1);e.length&&1<c.length;)d+=c.shift()+e.shift();return d+c.join("%s")};goog.string.collapseWhitespace=function(a){return a.replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")};goog.string.isEmpty=function(a){return/^[\s\xa0]*$/.test(a)};goog.string.isEmptySafe=function(a){return goog.string.isEmpty(goog.string.makeSafe(a))};
+goog.string.isBreakingWhitespace=function(a){return!/[^\t\n\r ]/.test(a)};goog.string.isAlpha=function(a){return!/[^a-zA-Z]/.test(a)};goog.string.isNumeric=function(a){return!/[^0-9]/.test(a)};goog.string.isAlphaNumeric=function(a){return!/[^a-zA-Z0-9]/.test(a)};goog.string.isSpace=function(a){return" "==a};goog.string.isUnicodeChar=function(a){return 1==a.length&&" "<=a&&"~">=a||"\u0080"<=a&&"\ufffd">=a};goog.string.stripNewlines=function(a){return a.replace(/(\r\n|\r|\n)+/g," ")};
+goog.string.canonicalizeNewlines=function(a){return a.replace(/(\r\n|\r|\n)/g,"\n")};goog.string.normalizeWhitespace=function(a){return a.replace(/\xa0|\s/g," ")};goog.string.normalizeSpaces=function(a){return a.replace(/\xa0|[ \t]+/g," ")};goog.string.collapseBreakingSpaces=function(a){return a.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")};goog.string.trim=function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")};
+goog.string.trimLeft=function(a){return a.replace(/^[\s\xa0]+/,"")};goog.string.trimRight=function(a){return a.replace(/[\s\xa0]+$/,"")};goog.string.caseInsensitiveCompare=function(a,b){var c=String(a).toLowerCase(),d=String(b).toLowerCase();return c<d?-1:c==d?0:1};goog.string.numerateCompareRegExp_=/(\.\d+)|(\d+)|(\D+)/g;
+goog.string.numerateCompare=function(a,b){if(a==b)return 0;if(!a)return-1;if(!b)return 1;for(var c=a.toLowerCase().match(goog.string.numerateCompareRegExp_),d=b.toLowerCase().match(goog.string.numerateCompareRegExp_),e=Math.min(c.length,d.length),f=0;f<e;f++){var g=c[f],h=d[f];if(g!=h)return c=parseInt(g,10),!isNaN(c)&&(d=parseInt(h,10),!isNaN(d)&&c-d)?c-d:g<h?-1:1}return c.length!=d.length?c.length-d.length:a<b?-1:1};goog.string.urlEncode=function(a){return encodeURIComponent(String(a))};
+goog.string.urlDecode=function(a){return decodeURIComponent(a.replace(/\+/g," "))};goog.string.newLineToBr=function(a,b){return a.replace(/(\r\n|\r|\n)/g,b?"<br />":"<br>")};
+goog.string.htmlEscape=function(a,b){if(b)return a.replace(goog.string.amperRe_,"&amp;").replace(goog.string.ltRe_,"&lt;").replace(goog.string.gtRe_,"&gt;").replace(goog.string.quotRe_,"&quot;");if(!goog.string.allRe_.test(a))return a;-1!=a.indexOf("&")&&(a=a.replace(goog.string.amperRe_,"&amp;"));-1!=a.indexOf("<")&&(a=a.replace(goog.string.ltRe_,"&lt;"));-1!=a.indexOf(">")&&(a=a.replace(goog.string.gtRe_,"&gt;"));-1!=a.indexOf('"')&&(a=a.replace(goog.string.quotRe_,"&quot;"));return a};
+goog.string.amperRe_=/&/g;goog.string.ltRe_=/</g;goog.string.gtRe_=/>/g;goog.string.quotRe_=/\"/g;goog.string.allRe_=/[&<>\"]/;goog.string.unescapeEntities=function(a){return goog.string.contains(a,"&")?"document"in goog.global?goog.string.unescapeEntitiesUsingDom_(a):goog.string.unescapePureXmlEntities_(a):a};goog.string.unescapeEntitiesWithDocument=function(a,b){return goog.string.contains(a,"&")?goog.string.unescapeEntitiesUsingDom_(a,b):a};
+goog.string.unescapeEntitiesUsingDom_=function(a,b){var c={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"'},d;d=b?b.createElement("div"):document.createElement("div");return a.replace(goog.string.HTML_ENTITY_PATTERN_,function(a,b){var g=c[a];if(g)return g;if("#"==b.charAt(0)){var h=Number("0"+b.substr(1));isNaN(h)||(g=String.fromCharCode(h))}g||(d.innerHTML=a+" ",g=d.firstChild.nodeValue.slice(0,-1));return c[a]=g})};
+goog.string.unescapePureXmlEntities_=function(a){return a.replace(/&([^;]+);/g,function(a,c){switch(c){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:if("#"==c.charAt(0)){var d=Number("0"+c.substr(1));if(!isNaN(d))return String.fromCharCode(d)}return a}})};goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g;goog.string.whitespaceEscape=function(a,b){return goog.string.newLineToBr(a.replace(/ /g," &#160;"),b)};
+goog.string.stripQuotes=function(a,b){for(var c=b.length,d=0;d<c;d++){var e=1==c?b:b.charAt(d);if(a.charAt(0)==e&&a.charAt(a.length-1)==e)return a.substring(1,a.length-1)}return a};goog.string.truncate=function(a,b,c){c&&(a=goog.string.unescapeEntities(a));a.length>b&&(a=a.substring(0,b-3)+"...");c&&(a=goog.string.htmlEscape(a));return a};
+goog.string.truncateMiddle=function(a,b,c,d){c&&(a=goog.string.unescapeEntities(a));if(d&&a.length>b){d>b&&(d=b);var e=a.length-d;b-=d;a=a.substring(0,b)+"..."+a.substring(e)}else a.length>b&&(e=Math.floor(b/2),d=a.length-e,e+=b%2,a=a.substring(0,e)+"..."+a.substring(d));c&&(a=goog.string.htmlEscape(a));return a};goog.string.specialEscapeChars_={"\x00":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\x0B",'"':'\\"',"\\":"\\\\"};goog.string.jsEscapeCache_={"'":"\\'"};
+goog.string.quote=function(a){a=String(a);if(a.quote)return a.quote();for(var b=['"'],c=0;c<a.length;c++){var d=a.charAt(c),e=d.charCodeAt(0);b[c+1]=goog.string.specialEscapeChars_[d]||(31<e&&127>e?d:goog.string.escapeChar(d))}b.push('"');return b.join("")};goog.string.escapeString=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=goog.string.escapeChar(a.charAt(c));return b.join("")};
+goog.string.escapeChar=function(a){if(a in goog.string.jsEscapeCache_)return goog.string.jsEscapeCache_[a];if(a in goog.string.specialEscapeChars_)return goog.string.jsEscapeCache_[a]=goog.string.specialEscapeChars_[a];var b=a,c=a.charCodeAt(0);if(31<c&&127>c)b=a;else{if(256>c){if(b="\\x",16>c||256<c)b+="0"}else b="\\u",4096>c&&(b+="0");b+=c.toString(16).toUpperCase()}return goog.string.jsEscapeCache_[a]=b};goog.string.toMap=function(a){for(var b={},c=0;c<a.length;c++)b[a.charAt(c)]=!0;return b};
+goog.string.contains=function(a,b){return-1!=a.indexOf(b)};goog.string.countOf=function(a,b){return a&&b?a.split(b).length-1:0};goog.string.removeAt=function(a,b,c){var d=a;0<=b&&b<a.length&&0<c&&(d=a.substr(0,b)+a.substr(b+c,a.length-b-c));return d};goog.string.remove=function(a,b){var c=RegExp(goog.string.regExpEscape(b),"");return a.replace(c,"")};goog.string.removeAll=function(a,b){var c=RegExp(goog.string.regExpEscape(b),"g");return a.replace(c,"")};
+goog.string.regExpEscape=function(a){return String(a).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};goog.string.repeat=function(a,b){return Array(b+1).join(a)};goog.string.padNumber=function(a,b,c){a=goog.isDef(c)?a.toFixed(c):String(a);c=a.indexOf(".");-1==c&&(c=a.length);return goog.string.repeat("0",Math.max(0,b-c))+a};goog.string.makeSafe=function(a){return null==a?"":String(a)};goog.string.buildString=function(a){return Array.prototype.join.call(arguments,"")};
+goog.string.getRandomString=function(){var a=2147483648;return Math.floor(Math.random()*a).toString(36)+Math.abs(Math.floor(Math.random()*a)^goog.now()).toString(36)};
+goog.string.compareVersions=function(a,b){for(var c=0,d=goog.string.trim(String(a)).split("."),e=goog.string.trim(String(b)).split("."),f=Math.max(d.length,e.length),g=0;0==c&&g<f;g++){var h=d[g]||"",k=e[g]||"",l=/(\d*)(\D*)/g,m=/(\d*)(\D*)/g;do{var p=l.exec(h)||["","",""],q=m.exec(k)||["","",""];if(0==p[0].length&&0==q[0].length)break;var c=0==p[1].length?0:parseInt(p[1],10),n=0==q[1].length?0:parseInt(q[1],10),c=goog.string.compareElements_(c,n)||goog.string.compareElements_(0==p[2].length,0==q[2].length)||
+goog.string.compareElements_(p[2],q[2])}while(0==c)}return c};goog.string.compareElements_=function(a,b){return a<b?-1:a>b?1:0};goog.string.HASHCODE_MAX_=4294967296;goog.string.hashCode=function(a){for(var b=0,c=0;c<a.length;++c)b=31*b+a.charCodeAt(c),b%=goog.string.HASHCODE_MAX_;return b};goog.string.uniqueStringCounter_=2147483648*Math.random()|0;goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++};
+goog.string.toNumber=function(a){var b=Number(a);return 0==b&&goog.string.isEmpty(a)?NaN:b};goog.string.isLowerCamelCase=function(a){return/^[a-z]+([A-Z][a-z]*)*$/.test(a)};goog.string.isUpperCamelCase=function(a){return/^([A-Z][a-z]*)+$/.test(a)};goog.string.toCamelCase=function(a){return String(a).replace(/\-([a-z])/g,function(a,c){return c.toUpperCase()})};goog.string.toSelectorCase=function(a){return String(a).replace(/([A-Z])/g,"-$1").toLowerCase()};
+goog.string.toTitleCase=function(a,b){var c=goog.isString(b)?goog.string.regExpEscape(b):"\\s",c=c?"|["+c+"]+":"",c=RegExp("(^"+c+")([a-z])","g");return a.replace(c,function(a,b,c){return b+c.toUpperCase()})};goog.string.parseInt=function(a){isFinite(a)&&(a=String(a));return goog.isString(a)?/^\s*-?0x/i.test(a)?parseInt(a,16):parseInt(a,10):NaN};goog.string.splitLimit=function(a,b,c){a=a.split(b);for(var d=[];0<c&&a.length;)d.push(a.shift()),c--;a.length&&d.push(a.join(b));return d};goog.asserts={};goog.asserts.ENABLE_ASSERTS=goog.DEBUG;goog.asserts.AssertionError=function(a,b){b.unshift(a);goog.debug.Error.call(this,goog.string.subs.apply(null,b));b.shift()};goog.inherits(goog.asserts.AssertionError,goog.debug.Error);goog.asserts.AssertionError.prototype.name="AssertionError";goog.asserts.doAssertFailure_=function(a,b,c,d){var e="Assertion failed";if(c)var e=e+(": "+c),f=d;else a&&(e+=": "+a,f=b);throw new goog.asserts.AssertionError(""+e,f||[]);};
+goog.asserts.assert=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!a&&goog.asserts.doAssertFailure_("",null,b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.fail=function(a,b){if(goog.asserts.ENABLE_ASSERTS)throw new goog.asserts.AssertionError("Failure"+(a?": "+a:""),Array.prototype.slice.call(arguments,1));};
+goog.asserts.assertNumber=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isNumber(a)&&goog.asserts.doAssertFailure_("Expected number but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertString=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isString(a)&&goog.asserts.doAssertFailure_("Expected string but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};
+goog.asserts.assertFunction=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isFunction(a)&&goog.asserts.doAssertFailure_("Expected function but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertObject=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isObject(a)&&goog.asserts.doAssertFailure_("Expected object but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};
+goog.asserts.assertArray=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isArray(a)&&goog.asserts.doAssertFailure_("Expected array but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertBoolean=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isBoolean(a)&&goog.asserts.doAssertFailure_("Expected boolean but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};
+goog.asserts.assertElement=function(a,b,c){!goog.asserts.ENABLE_ASSERTS||goog.isObject(a)&&a.nodeType==goog.dom.NodeType.ELEMENT||goog.asserts.doAssertFailure_("Expected Element but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertInstanceof=function(a,b,c,d){!goog.asserts.ENABLE_ASSERTS||a instanceof b||goog.asserts.doAssertFailure_("instanceof check failed.",null,c,Array.prototype.slice.call(arguments,3));return a};
+goog.asserts.assertObjectPrototypeIsIntact=function(){for(var a in Object.prototype)goog.asserts.fail(a+" should not be enumerable in Object.prototype.")};goog.array={};goog.NATIVE_ARRAY_PROTOTYPES=goog.TRUSTED_SITE;goog.array.peek=function(a){return a[a.length-1]};goog.array.ARRAY_PROTOTYPE_=Array.prototype;
+goog.array.indexOf=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.indexOf?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.indexOf.call(a,b,c)}:function(a,b,c){c=null==c?0:0>c?Math.max(0,a.length+c):c;if(goog.isString(a))return goog.isString(b)&&1==b.length?a.indexOf(b,c):-1;for(;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1};
+goog.array.lastIndexOf=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.lastIndexOf?function(a,b,c){goog.asserts.assert(null!=a.length);c=null==c?a.length-1:c;return goog.array.ARRAY_PROTOTYPE_.lastIndexOf.call(a,b,c)}:function(a,b,c){c=null==c?a.length-1:c;0>c&&(c=Math.max(0,a.length+c));if(goog.isString(a))return goog.isString(b)&&1==b.length?a.lastIndexOf(b,c):-1;for(;0<=c;c--)if(c in a&&a[c]===b)return c;return-1};
+goog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.forEach?function(a,b,c){goog.asserts.assert(null!=a.length);goog.array.ARRAY_PROTOTYPE_.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)f in e&&b.call(c,e[f],f,a)};goog.array.forEachRight=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,d=d-1;0<=d;--d)d in e&&b.call(c,e[d],d,a)};
+goog.array.filter=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.filter?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.filter.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=[],f=0,g=goog.isString(a)?a.split(""):a,h=0;h<d;h++)if(h in g){var k=g[h];b.call(c,k,h,a)&&(e[f++]=k)}return e};
+goog.array.map=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.map?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.map.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=Array(d),f=goog.isString(a)?a.split(""):a,g=0;g<d;g++)g in f&&(e[g]=b.call(c,f[g],g,a));return e};
+goog.array.reduce=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.reduce?function(a,b,c,d){goog.asserts.assert(null!=a.length);d&&(b=goog.bind(b,d));return goog.array.ARRAY_PROTOTYPE_.reduce.call(a,b,c)}:function(a,b,c,d){var e=c;goog.array.forEach(a,function(c,g){e=b.call(d,e,c,g,a)});return e};
+goog.array.reduceRight=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.reduceRight?function(a,b,c,d){goog.asserts.assert(null!=a.length);d&&(b=goog.bind(b,d));return goog.array.ARRAY_PROTOTYPE_.reduceRight.call(a,b,c)}:function(a,b,c,d){var e=c;goog.array.forEachRight(a,function(c,g){e=b.call(d,e,c,g,a)});return e};
+goog.array.some=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.some?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.some.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return!0;return!1};
+goog.array.every=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.every?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.every.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&!b.call(c,e[f],f,a))return!1;return!0};goog.array.count=function(a,b,c){var d=0;goog.array.forEach(a,function(a,f,g){b.call(c,a,f,g)&&++d},c);return d};
+goog.array.find=function(a,b,c){b=goog.array.findIndex(a,b,c);return 0>b?null:goog.isString(a)?a.charAt(b):a[b]};goog.array.findIndex=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return f;return-1};goog.array.findRight=function(a,b,c){b=goog.array.findIndexRight(a,b,c);return 0>b?null:goog.isString(a)?a.charAt(b):a[b]};
+goog.array.findIndexRight=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,d=d-1;0<=d;d--)if(d in e&&b.call(c,e[d],d,a))return d;return-1};goog.array.contains=function(a,b){return 0<=goog.array.indexOf(a,b)};goog.array.isEmpty=function(a){return 0==a.length};goog.array.clear=function(a){if(!goog.isArray(a))for(var b=a.length-1;0<=b;b--)delete a[b];a.length=0};goog.array.insert=function(a,b){goog.array.contains(a,b)||a.push(b)};
+goog.array.insertAt=function(a,b,c){goog.array.splice(a,c,0,b)};goog.array.insertArrayAt=function(a,b,c){goog.partial(goog.array.splice,a,c,0).apply(null,b)};goog.array.insertBefore=function(a,b,c){var d;2==arguments.length||0>(d=goog.array.indexOf(a,c))?a.push(b):goog.array.insertAt(a,b,d)};goog.array.remove=function(a,b){var c=goog.array.indexOf(a,b),d;(d=0<=c)&&goog.array.removeAt(a,c);return d};
+goog.array.removeAt=function(a,b){goog.asserts.assert(null!=a.length);return 1==goog.array.ARRAY_PROTOTYPE_.splice.call(a,b,1).length};goog.array.removeIf=function(a,b,c){b=goog.array.findIndex(a,b,c);return 0<=b?(goog.array.removeAt(a,b),!0):!1};goog.array.concat=function(a){return goog.array.ARRAY_PROTOTYPE_.concat.apply(goog.array.ARRAY_PROTOTYPE_,arguments)};goog.array.toArray=function(a){var b=a.length;if(0<b){for(var c=Array(b),d=0;d<b;d++)c[d]=a[d];return c}return[]};goog.array.clone=goog.array.toArray;
+goog.array.extend=function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c],e;if(goog.isArray(d)||(e=goog.isArrayLike(d))&&Object.prototype.hasOwnProperty.call(d,"callee"))a.push.apply(a,d);else if(e)for(var f=a.length,g=d.length,h=0;h<g;h++)a[f+h]=d[h];else a.push(d)}};goog.array.splice=function(a,b,c,d){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.splice.apply(a,goog.array.slice(arguments,1))};
+goog.array.slice=function(a,b,c){goog.asserts.assert(null!=a.length);return 2>=arguments.length?goog.array.ARRAY_PROTOTYPE_.slice.call(a,b):goog.array.ARRAY_PROTOTYPE_.slice.call(a,b,c)};goog.array.removeDuplicates=function(a,b,c){b=b||a;var d=function(){return goog.isObject(g)?"o"+goog.getUid(g):(typeof g).charAt(0)+g};c=c||d;for(var d={},e=0,f=0;f<a.length;){var g=a[f++],h=c(g);Object.prototype.hasOwnProperty.call(d,h)||(d[h]=!0,b[e++]=g)}b.length=e};
+goog.array.binarySearch=function(a,b,c){return goog.array.binarySearch_(a,c||goog.array.defaultCompare,!1,b)};goog.array.binarySelect=function(a,b,c){return goog.array.binarySearch_(a,b,!0,void 0,c)};goog.array.binarySearch_=function(a,b,c,d,e){for(var f=0,g=a.length,h;f<g;){var k=f+g>>1,l;l=c?b.call(e,a[k],k,a):b(d,a[k]);0<l?f=k+1:(g=k,h=!l)}return h?f:~f};goog.array.sort=function(a,b){goog.asserts.assert(null!=a.length);goog.array.ARRAY_PROTOTYPE_.sort.call(a,b||goog.array.defaultCompare)};
+goog.array.stableSort=function(a,b){function c(a,b){return e(a.value,b.value)||a.index-b.index}for(var d=0;d<a.length;d++)a[d]={index:d,value:a[d]};var e=b||goog.array.defaultCompare;goog.array.sort(a,c);for(d=0;d<a.length;d++)a[d]=a[d].value};goog.array.sortObjectsByKey=function(a,b,c){var d=c||goog.array.defaultCompare;goog.array.sort(a,function(a,c){return d(a[b],c[b])})};
+goog.array.isSorted=function(a,b,c){b=b||goog.array.defaultCompare;for(var d=1;d<a.length;d++){var e=b(a[d-1],a[d]);if(0<e||0==e&&c)return!1}return!0};goog.array.equals=function(a,b,c){if(!goog.isArrayLike(a)||!goog.isArrayLike(b)||a.length!=b.length)return!1;var d=a.length;c=c||goog.array.defaultCompareEquality;for(var e=0;e<d;e++)if(!c(a[e],b[e]))return!1;return!0};goog.array.compare=function(a,b,c){return goog.array.equals(a,b,c)};
+goog.array.compare3=function(a,b,c){c=c||goog.array.defaultCompare;for(var d=Math.min(a.length,b.length),e=0;e<d;e++){var f=c(a[e],b[e]);if(0!=f)return f}return goog.array.defaultCompare(a.length,b.length)};goog.array.defaultCompare=function(a,b){return a>b?1:a<b?-1:0};goog.array.defaultCompareEquality=function(a,b){return a===b};goog.array.binaryInsert=function(a,b,c){c=goog.array.binarySearch(a,b,c);return 0>c?(goog.array.insertAt(a,b,-(c+1)),!0):!1};
+goog.array.binaryRemove=function(a,b,c){b=goog.array.binarySearch(a,b,c);return 0<=b?goog.array.removeAt(a,b):!1};goog.array.bucket=function(a,b,c){for(var d={},e=0;e<a.length;e++){var f=a[e],g=b.call(c,f,e,a);goog.isDef(g)&&(g=d[g]||(d[g]=[]),g.push(f))}return d};goog.array.toObject=function(a,b,c){var d={};goog.array.forEach(a,function(e,f){d[b.call(c,e,f,a)]=e});return d};
+goog.array.range=function(a,b,c){var d=[],e=0,f=a;c=c||1;void 0!==b&&(e=a,f=b);if(0>c*(f-e))return[];if(0<c)for(a=e;a<f;a+=c)d.push(a);else for(a=e;a>f;a+=c)d.push(a);return d};goog.array.repeat=function(a,b){for(var c=[],d=0;d<b;d++)c[d]=a;return c};goog.array.flatten=function(a){for(var b=[],c=0;c<arguments.length;c++){var d=arguments[c];goog.isArray(d)?b.push.apply(b,goog.array.flatten.apply(null,d)):b.push(d)}return b};
+goog.array.rotate=function(a,b){goog.asserts.assert(null!=a.length);a.length&&(b%=a.length,0<b?goog.array.ARRAY_PROTOTYPE_.unshift.apply(a,a.splice(-b,b)):0>b&&goog.array.ARRAY_PROTOTYPE_.push.apply(a,a.splice(0,-b)));return a};goog.array.moveItem=function(a,b,c){goog.asserts.assert(0<=b&&b<a.length);goog.asserts.assert(0<=c&&c<a.length);b=goog.array.ARRAY_PROTOTYPE_.splice.call(a,b,1);goog.array.ARRAY_PROTOTYPE_.splice.call(a,c,0,b[0])};
+goog.array.zip=function(a){if(!arguments.length)return[];for(var b=[],c=0;;c++){for(var d=[],e=0;e<arguments.length;e++){var f=arguments[e];if(c>=f.length)return b;d.push(f[c])}b.push(d)}};goog.array.shuffle=function(a,b){for(var c=b||Math.random,d=a.length-1;0<d;d--){var e=Math.floor(c()*(d+1)),f=a[d];a[d]=a[e];a[e]=f}};goog.math={};goog.math.randomInt=function(a){return Math.floor(Math.random()*a)};goog.math.uniformRandom=function(a,b){return a+Math.random()*(b-a)};goog.math.clamp=function(a,b,c){return Math.min(Math.max(a,b),c)};goog.math.modulo=function(a,b){var c=a%b;return 0>c*b?c+b:c};goog.math.lerp=function(a,b,c){return a+c*(b-a)};goog.math.nearlyEquals=function(a,b,c){return Math.abs(a-b)<=(c||1E-6)};goog.math.standardAngle=function(a){return goog.math.modulo(a,360)};
+goog.math.toRadians=function(a){return a*Math.PI/180};goog.math.toDegrees=function(a){return 180*a/Math.PI};goog.math.angleDx=function(a,b){return b*Math.cos(goog.math.toRadians(a))};goog.math.angleDy=function(a,b){return b*Math.sin(goog.math.toRadians(a))};goog.math.angle=function(a,b,c,d){return goog.math.standardAngle(goog.math.toDegrees(Math.atan2(d-b,c-a)))};goog.math.angleDifference=function(a,b){var c=goog.math.standardAngle(b)-goog.math.standardAngle(a);180<c?c-=360:-180>=c&&(c=360+c);return c};
+goog.math.sign=function(a){return 0==a?0:0>a?-1:1};goog.math.longestCommonSubsequence=function(a,b,c,d){c=c||function(a,b){return a==b};d=d||function(b){return a[b]};for(var e=a.length,f=b.length,g=[],h=0;h<e+1;h++)g[h]=[],g[h][0]=0;for(var k=0;k<f+1;k++)g[0][k]=0;for(h=1;h<=e;h++)for(k=1;k<=f;k++)c(a[h-1],b[k-1])?g[h][k]=g[h-1][k-1]+1:g[h][k]=Math.max(g[h-1][k],g[h][k-1]);for(var l=[],h=e,k=f;0<h&&0<k;)c(a[h-1],b[k-1])?(l.unshift(d(h-1,k-1)),h--,k--):g[h-1][k]>g[h][k-1]?h--:k--;return l};
+goog.math.sum=function(a){return goog.array.reduce(arguments,function(a,c){return a+c},0)};goog.math.average=function(a){return goog.math.sum.apply(null,arguments)/arguments.length};goog.math.sampleVariance=function(a){var b=arguments.length;if(2>b)return 0;var c=goog.math.average.apply(null,arguments);return b=goog.math.sum.apply(null,goog.array.map(arguments,function(a){return Math.pow(a-c,2)}))/(b-1)};
+goog.math.standardDeviation=function(a){return Math.sqrt(goog.math.sampleVariance.apply(null,arguments))};goog.math.isInt=function(a){return isFinite(a)&&0==a%1};goog.math.isFiniteNumber=function(a){return isFinite(a)&&!isNaN(a)};goog.math.safeFloor=function(a,b){goog.asserts.assert(!goog.isDef(b)||0<b);return Math.floor(a+(b||2E-15))};goog.math.safeCeil=function(a,b){goog.asserts.assert(!goog.isDef(b)||0<b);return Math.ceil(a-(b||2E-15))};goog.i18n={};
+goog.i18n.CompactNumberFormatSymbols_af={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0m"},1E7:{other:"00\u00a0m"},1E8:{other:"000\u00a0m"},1E9:{other:"0\u00a0mjd"},1E10:{other:"00\u00a0mjd"},1E11:{other:"000\u00a0mjd"},1E12:{other:"0\u00a0bn"},1E13:{other:"00\u00a0bn"},1E14:{other:"000\u00a0bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 duisend"},1E4:{other:"00 duisend"},1E5:{other:"000 duisend"},1E6:{other:"0 miljoen"},1E7:{other:"00 miljoen"},1E8:{other:"000 miljoen"},
+1E9:{other:"0 miljard"},1E10:{other:"00 miljard"},1E11:{other:"000 miljard"},1E12:{other:"0 biljoen"},1E13:{other:"00 biljoen"},1E14:{other:"000 biljoen"}}};goog.i18n.CompactNumberFormatSymbols_af_ZA=goog.i18n.CompactNumberFormatSymbols_af;
+goog.i18n.CompactNumberFormatSymbols_am={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u123a"},1E4:{other:"00\u00a0\u123a"},1E5:{other:"000\u00a0\u123a"},1E6:{other:"0\u00a0\u121c\u1275\u122d"},1E7:{other:"00\u00a0\u121c\u1275\u122d"},1E8:{other:"000\u00a0\u121c\u1275\u122d"},1E9:{other:"0\u00a0\u1262"},1E10:{other:"00\u00a0\u1262"},1E11:{other:"000\u00a0\u1262"},1E12:{other:"0\u00a0\u1275"},1E13:{other:"00\u00a0\u1275"},1E14:{other:"000\u00a0\u1275"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u123a"},
+1E4:{other:"00 \u123a"},1E5:{other:"000 \u123a"},1E6:{other:"0 \u121a\u120a\u12ee\u1295"},1E7:{other:"00 \u121a\u120a\u12ee\u1295"},1E8:{other:"000 \u121a\u120a\u12ee\u1295"},1E9:{other:"0 \u1262\u120a\u12ee\u1295"},1E10:{other:"00 \u1262\u120a\u12ee\u1295"},1E11:{other:"000 \u1262\u120a\u12ee\u1295"},1E12:{other:"0 \u1275\u122a\u120a\u12ee\u1295"},1E13:{other:"00 \u1275\u122a\u120a\u12ee\u1295"},1E14:{other:"000 \u1275\u122a\u120a\u12ee\u1295"}}};goog.i18n.CompactNumberFormatSymbols_am_ET=goog.i18n.CompactNumberFormatSymbols_am;
+goog.i18n.CompactNumberFormatSymbols_ar={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0623\u0644\u0641"},1E4:{other:"00\u00a0\u0623\u0644\u0641"},1E5:{other:"000\u00a0\u0623\u0644\u0641"},1E6:{other:"0\u00a0\u0645\u0644\u064a\u0648"},1E7:{other:"00\u00a0\u0645\u0644\u064a\u0648"},1E8:{other:"000\u00a0\u0645\u0644\u064a\u0648"},1E9:{other:"0\u00a0\u0628\u0644\u064a\u0648"},1E10:{other:"00\u00a0\u0628\u0644\u064a\u0648"},1E11:{other:"000\u00a0\u0628\u0644\u064a\u0648"},1E12:{other:"0\u00a0\u062a\u0631\u0644\u064a\u0648"},
+1E13:{other:"00\u00a0\u062a\u0631\u0644\u064a\u0648"},1E14:{other:"000\u00a0\u062a\u0631\u0644\u064a\u0648"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0623\u0644\u0641"},1E4:{other:"00 \u0623\u0644\u0641"},1E5:{other:"000 \u0623\u0644\u0641"},1E6:{other:"0 \u0645\u0644\u064a\u0648\u0646"},1E7:{other:"00 \u0645\u0644\u064a\u0648\u0646"},1E8:{other:"000 \u0645\u0644\u064a\u0648\u0646"},1E9:{other:"0 \u0628\u0644\u064a\u0648\u0646"},1E10:{other:"00 \u0628\u0644\u064a\u0648\u0646"},1E11:{other:"000 \u0628\u0644\u064a\u0648\u0646"},
+1E12:{other:"0 \u062a\u0631\u064a\u0644\u064a\u0648\u0646"},1E13:{other:"00 \u062a\u0631\u064a\u0644\u064a\u0648\u0646"},1E14:{other:"000 \u062a\u0631\u064a\u0644\u064a\u0648\u0646"}}};goog.i18n.CompactNumberFormatSymbols_ar_001=goog.i18n.CompactNumberFormatSymbols_ar;goog.i18n.CompactNumberFormatSymbols_ar_EG=goog.i18n.CompactNumberFormatSymbols_ar;
+goog.i18n.CompactNumberFormatSymbols_bg={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0425"},1E4:{other:"00\u00a0\u0425"},1E5:{other:"000\u00a0\u0425"},1E6:{other:"0\u00a0\u041c"},1E7:{other:"00\u00a0\u041c"},1E8:{other:"000\u00a0\u041c"},1E9:{other:"0\u00a0\u0411"},1E10:{other:"00\u00a0\u0411"},1E11:{other:"000\u00a0\u0411"},1E12:{other:"0\u00a0\u0422"},1E13:{other:"00\u00a0\u0422"},1E14:{other:"000\u00a0\u0422"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0445\u0438\u043b\u044f\u0434\u0438"},
+1E4:{other:"00 \u0445\u0438\u043b\u044f\u0434\u0438"},1E5:{other:"000 \u0445\u0438\u043b\u044f\u0434\u0438"},1E6:{other:"0 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0438\u043b\u0438\u0430\u0440\u0434\u0430"},1E10:{other:"00 \u043c\u0438\u043b\u0438\u0430\u0440\u0434\u0430"},1E11:{other:"000 \u043c\u0438\u043b\u0438\u0430\u0440\u0434\u0430"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},
+1E13:{other:"00 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_bg_BG=goog.i18n.CompactNumberFormatSymbols_bg;
+goog.i18n.CompactNumberFormatSymbols_bn={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u09b9\u09be\u099c\u09be\u09b0"},1E4:{other:"00 \u09b9\u09be\u099c\u09be\u09b0"},1E5:{other:"000 \u09b9\u09be\u099c\u09be\u09b0"},1E6:{other:"0 \u09ae\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},
+1E7:{other:"00 \u09ae\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E8:{other:"000 \u09ae\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E9:{other:"0 \u09ac\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E10:{other:"00 \u09ac\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E11:{other:"000 \u09ac\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E12:{other:"0 \u099f\u09cd\u09b0\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E13:{other:"00 \u099f\u09cd\u09b0\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E14:{other:"000 \u099f\u09cd\u09b0\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"}}};
+goog.i18n.CompactNumberFormatSymbols_bn_BD=goog.i18n.CompactNumberFormatSymbols_bn;goog.i18n.CompactNumberFormatSymbols_br={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_br_FR=goog.i18n.CompactNumberFormatSymbols_br;
+goog.i18n.CompactNumberFormatSymbols_ca={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 milions"},1E7:{other:"00 milions"},
+1E8:{other:"000 milions"},1E9:{other:"0 miliards"},1E10:{other:"00 miliards"},1E11:{other:"000 miliards"},1E12:{other:"0 bilions"},1E13:{other:"00 bilions"},1E14:{other:"000 bilions"}}};goog.i18n.CompactNumberFormatSymbols_ca_AD=goog.i18n.CompactNumberFormatSymbols_ca;goog.i18n.CompactNumberFormatSymbols_ca_ES=goog.i18n.CompactNumberFormatSymbols_ca;
+goog.i18n.CompactNumberFormatSymbols_chr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_chr_US=goog.i18n.CompactNumberFormatSymbols_chr;
+goog.i18n.CompactNumberFormatSymbols_cs={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tis."},1E4:{other:"00\u00a0tis."},1E5:{other:"000\u00a0tis."},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"00 tis\u00edc"},1E5:{other:"000 tis\u00edc"},
+1E6:{other:"0 milion\u016f"},1E7:{other:"00 milion\u016f"},1E8:{other:"000 milion\u016f"},1E9:{other:"0 miliard"},1E10:{other:"00 miliard"},1E11:{other:"000 miliard"},1E12:{other:"0 bilion\u016f"},1E13:{other:"00 bilion\u016f"},1E14:{other:"000 bilion\u016f"}}};goog.i18n.CompactNumberFormatSymbols_cs_CZ=goog.i18n.CompactNumberFormatSymbols_cs;
+goog.i18n.CompactNumberFormatSymbols_cy={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 miliwn"},1E7:{other:"00 miliwn"},1E8:{other:"000 miliwn"},1E9:{other:"0 biliwn"},1E10:{other:"00 biliwn"},
+1E11:{other:"000 biliwn"},1E12:{other:"0 triliwn"},1E13:{other:"00 triliwn"},1E14:{other:"000 triliwn"}}};goog.i18n.CompactNumberFormatSymbols_cy_GB=goog.i18n.CompactNumberFormatSymbols_cy;
+goog.i18n.CompactNumberFormatSymbols_da={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mio"},1E7:{other:"00\u00a0mio"},1E8:{other:"000\u00a0mio"},1E9:{other:"0\u00a0mia"},1E10:{other:"00\u00a0mia"},1E11:{other:"000\u00a0mia"},1E12:{other:"0\u00a0bill"},1E13:{other:"00\u00a0bill"},1E14:{other:"000\u00a0bill"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusind"},1E4:{other:"00 tusind"},1E5:{other:"000 tusind"},1E6:{other:"0 millioner"},1E7:{other:"00 millioner"},
+1E8:{other:"000 millioner"},1E9:{other:"0 milliarder"},1E10:{other:"00 milliarder"},1E11:{other:"000 milliarder"},1E12:{other:"0 billioner"},1E13:{other:"00 billioner"},1E14:{other:"000 billioner"}}};goog.i18n.CompactNumberFormatSymbols_da_DK=goog.i18n.CompactNumberFormatSymbols_da;
+goog.i18n.CompactNumberFormatSymbols_de={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 Tausend"},1E4:{other:"00 Tausend"},1E5:{other:"000 Tausend"},1E6:{other:"0 Millionen"},1E7:{other:"00 Millionen"},
+1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};
+goog.i18n.CompactNumberFormatSymbols_de_AT={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 Tausend"},1E4:{other:"00 Tausend"},1E5:{other:"000 Tausend"},1E6:{other:"0 Millionen"},1E7:{other:"00 Millionen"},
+1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};goog.i18n.CompactNumberFormatSymbols_de_BE=goog.i18n.CompactNumberFormatSymbols_de;
+goog.i18n.CompactNumberFormatSymbols_de_CH={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 Tausend"},1E4:{other:"00 Tausend"},1E5:{other:"000 Tausend"},1E6:{other:"0 Millionen"},1E7:{other:"00 Millionen"},
+1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};goog.i18n.CompactNumberFormatSymbols_de_DE=goog.i18n.CompactNumberFormatSymbols_de;goog.i18n.CompactNumberFormatSymbols_de_LU=goog.i18n.CompactNumberFormatSymbols_de;
+goog.i18n.CompactNumberFormatSymbols_el={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u03c7\u03b9\u03bb."},1E4:{other:"00\u00a0\u03c7\u03b9\u03bb."},1E5:{other:"000\u00a0\u03c7\u03b9\u03bb."},1E6:{other:"0\u00a0\u03b5\u03ba."},1E7:{other:"00\u00a0\u03b5\u03ba."},1E8:{other:"000\u00a0\u03b5\u03ba."},1E9:{other:"0\u00a0\u03b4\u03b9\u03c2"},1E10:{other:"00\u00a0\u03b4\u03b9\u03c2"},1E11:{other:"000\u00a0\u03b4\u03b9\u03c2"},1E12:{other:"0\u00a0\u03c4\u03c1\u03b9\u03c2"},1E13:{other:"00\u00a0\u03c4\u03c1\u03b9\u03c2"},
+1E14:{other:"000\u00a0\u03c4\u03c1\u03b9\u03c2"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u03c7\u03b9\u03bb\u03b9\u03ac\u03b4\u03b5\u03c2"},1E4:{other:"00 \u03c7\u03b9\u03bb\u03b9\u03ac\u03b4\u03b5\u03c2"},1E5:{other:"000 \u03c7\u03b9\u03bb\u03b9\u03ac\u03b4\u03b5\u03c2"},1E6:{other:"0 \u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E7:{other:"00 \u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E8:{other:"000 \u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},
+1E9:{other:"0 \u03b4\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E10:{other:"00 \u03b4\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E11:{other:"000 \u03b4\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E12:{other:"0 \u03c4\u03c1\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E13:{other:"00 \u03c4\u03c1\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},
+1E14:{other:"000 \u03c4\u03c1\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"}}};goog.i18n.CompactNumberFormatSymbols_el_GR=goog.i18n.CompactNumberFormatSymbols_el;
+goog.i18n.CompactNumberFormatSymbols_en={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_AS=goog.i18n.CompactNumberFormatSymbols_en;
+goog.i18n.CompactNumberFormatSymbols_en_AU={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_Dsrt_US=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_FM=goog.i18n.CompactNumberFormatSymbols_en;
+goog.i18n.CompactNumberFormatSymbols_en_GB={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_GU=goog.i18n.CompactNumberFormatSymbols_en;
+goog.i18n.CompactNumberFormatSymbols_en_IE={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};
+goog.i18n.CompactNumberFormatSymbols_en_IN={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_MH=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_MP=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_PR=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_PW=goog.i18n.CompactNumberFormatSymbols_en;
+goog.i18n.CompactNumberFormatSymbols_en_SG={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_TC=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_UM=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_US=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_VG=goog.i18n.CompactNumberFormatSymbols_en;
+goog.i18n.CompactNumberFormatSymbols_en_VI=goog.i18n.CompactNumberFormatSymbols_en;
+goog.i18n.CompactNumberFormatSymbols_en_ZA={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};
+goog.i18n.CompactNumberFormatSymbols_es={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00\u00a0K\u00a0M"},1E11:{other:"000\u00a0K\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 millones"},
+1E7:{other:"00 millones"},1E8:{other:"000 millones"},1E9:{other:"0 millardos"},1E10:{other:"00 millardos"},1E11:{other:"000 millardos"},1E12:{other:"0 billones"},1E13:{other:"00 billones"},1E14:{other:"000 billones"}}};
+goog.i18n.CompactNumberFormatSymbols_es_419={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00k"},1E5:{other:"000k"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0k\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 millones"},1E7:{other:"00 millones"},1E8:{other:"000 millones"},
+1E9:{other:"0 millardos"},1E10:{other:"00 millardos"},1E11:{other:"000 millardos"},1E12:{other:"0 billones"},1E13:{other:"00 billones"},1E14:{other:"000 billones"}}};goog.i18n.CompactNumberFormatSymbols_es_EA=goog.i18n.CompactNumberFormatSymbols_es;goog.i18n.CompactNumberFormatSymbols_es_ES=goog.i18n.CompactNumberFormatSymbols_es;goog.i18n.CompactNumberFormatSymbols_es_IC=goog.i18n.CompactNumberFormatSymbols_es;
+goog.i18n.CompactNumberFormatSymbols_et={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tuh"},1E4:{other:"00\u00a0tuh"},1E5:{other:"000\u00a0tuh"},1E6:{other:"0\u00a0mln"},1E7:{other:"00\u00a0mln"},1E8:{other:"000\u00a0mln"},1E9:{other:"0\u00a0mld"},1E10:{other:"00\u00a0mld"},1E11:{other:"000\u00a0mld"},1E12:{other:"0\u00a0trl"},1E13:{other:"00\u00a0trl"},1E14:{other:"000\u00a0trl"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tuhat"},1E4:{other:"00 tuhat"},1E5:{other:"000 tuhat"},1E6:{other:"0 miljonit"},
+1E7:{other:"00 miljonit"},1E8:{other:"000 miljonit"},1E9:{other:"0 miljardit"},1E10:{other:"00 miljardit"},1E11:{other:"000 miljardit"},1E12:{other:"0 triljonit"},1E13:{other:"00 triljonit"},1E14:{other:"000 triljonit"}}};goog.i18n.CompactNumberFormatSymbols_et_EE=goog.i18n.CompactNumberFormatSymbols_et;
+goog.i18n.CompactNumberFormatSymbols_eu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0 milioi"},1E7:{other:"00 milioi"},1E8:{other:"000 milioi"},1E9:{other:"0000 milioi"},
+1E10:{other:"00000 milioi"},1E11:{other:"000000 milioi"},1E12:{other:"0 bilioi"},1E13:{other:"00 bilioi"},1E14:{other:"000 bilioi"}}};goog.i18n.CompactNumberFormatSymbols_eu_ES=goog.i18n.CompactNumberFormatSymbols_eu;
+goog.i18n.CompactNumberFormatSymbols_fa={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0647\u0632\u0627\u0631"},1E4:{other:"00 \u0647\u0632\u0627\u0631"},1E5:{other:"000 \u0647\u0632\u0627\u0631"},1E6:{other:"0 \u0645\u06cc\u0644\u06cc\u0648\u0646"},
+1E7:{other:"00 \u0645\u06cc\u0644\u06cc\u0648\u0646"},1E8:{other:"000 \u0645\u06cc\u0644\u06cc\u0648\u0646"},1E9:{other:"0 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E10:{other:"00 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E11:{other:"000 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E12:{other:"0 \u0647\u0632\u0627\u0631 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E13:{other:"00 \u0647\u0632\u0627\u0631 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E14:{other:"000 \u0647\u0632\u0627\u0631 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"}}};
+goog.i18n.CompactNumberFormatSymbols_fa_IR=goog.i18n.CompactNumberFormatSymbols_fa;
+goog.i18n.CompactNumberFormatSymbols_fi={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0t."},1E4:{other:"00\u00a0t."},1E5:{other:"000\u00a0t."},1E6:{other:"0\u00a0milj."},1E7:{other:"00\u00a0milj."},1E8:{other:"000\u00a0milj."},1E9:{other:"0\u00a0mrd."},1E10:{other:"00\u00a0mrd."},1E11:{other:"000\u00a0mrd."},1E12:{other:"0\u00a0bilj."},1E13:{other:"00\u00a0bilj."},1E14:{other:"000\u00a0bilj."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tuhatta"},1E4:{other:"00 tuhatta"},1E5:{other:"000 tuhatta"},
+1E6:{other:"0 miljoonaa"},1E7:{other:"00 miljoonaa"},1E8:{other:"000 miljoonaa"},1E9:{other:"0 miljardia"},1E10:{other:"00 miljardia"},1E11:{other:"000 miljardia"},1E12:{other:"0 biljoonaa"},1E13:{other:"00 biljoonaa"},1E14:{other:"000 biljoonaa"}}};goog.i18n.CompactNumberFormatSymbols_fi_FI=goog.i18n.CompactNumberFormatSymbols_fi;
+goog.i18n.CompactNumberFormatSymbols_fil={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 (na) libo"},1E4:{other:"00 (na) libo"},1E5:{other:"000 (na) libo"},1E6:{other:"0 (na) milyon"},1E7:{other:"00 (na) milyon"},1E8:{other:"000 (na) milyon"},1E9:{other:"0 (na) bilyon"},
+1E10:{other:"00 (na) bilyon"},1E11:{other:"000 (na) bilyon"},1E12:{other:"0 (na) trilyon"},1E13:{other:"00 (na) trilyon"},1E14:{other:"000 (na) trilyon"}}};goog.i18n.CompactNumberFormatSymbols_fil_PH=goog.i18n.CompactNumberFormatSymbols_fil;
+goog.i18n.CompactNumberFormatSymbols_fr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0Md"},1E10:{other:"00\u00a0Md"},1E11:{other:"000\u00a0Md"},1E12:{other:"0\u00a0Bn"},1E13:{other:"00\u00a0Bn"},1E14:{other:"000\u00a0Bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mille"},1E4:{other:"00 mille"},1E5:{other:"000 mille"},1E6:{other:"0 millions"},1E7:{other:"00 millions"},
+1E8:{other:"000 millions"},1E9:{other:"0 milliards"},1E10:{other:"00 milliards"},1E11:{other:"000 milliards"},1E12:{other:"0 billions"},1E13:{other:"00 billions"},1E14:{other:"000 billions"}}};goog.i18n.CompactNumberFormatSymbols_fr_BL=goog.i18n.CompactNumberFormatSymbols_fr;
+goog.i18n.CompactNumberFormatSymbols_fr_CA={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0Md"},1E10:{other:"00\u00a0Md"},1E11:{other:"000\u00a0Md"},1E12:{other:"0\u00a0Bn"},1E13:{other:"00\u00a0Bn"},1E14:{other:"000\u00a0Bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mille"},1E4:{other:"00 mille"},1E5:{other:"000 mille"},1E6:{other:"0 millions"},1E7:{other:"00 millions"},
+1E8:{other:"000 millions"},1E9:{other:"0 milliards"},1E10:{other:"00 milliards"},1E11:{other:"000 milliards"},1E12:{other:"0 billions"},1E13:{other:"00 billions"},1E14:{other:"000 billions"}}};goog.i18n.CompactNumberFormatSymbols_fr_FR=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_GF=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_GP=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_MC=goog.i18n.CompactNumberFormatSymbols_fr;
+goog.i18n.CompactNumberFormatSymbols_fr_MF=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_MQ=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_RE=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_YT=goog.i18n.CompactNumberFormatSymbols_fr;
+goog.i18n.CompactNumberFormatSymbols_gl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00k"},1E5:{other:"000k"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 mill\u00f3ns"},1E7:{other:"00 mill\u00f3ns"},
+1E8:{other:"000 mill\u00f3ns"},1E9:{other:"0 mil mill\u00f3ns"},1E10:{other:"00 mil mill\u00f3ns"},1E11:{other:"000 mil mill\u00f3ns"},1E12:{other:"0 bill\u00f3ns"},1E13:{other:"00 bill\u00f3ns"},1E14:{other:"000 bill\u00f3ns"}}};goog.i18n.CompactNumberFormatSymbols_gl_ES=goog.i18n.CompactNumberFormatSymbols_gl;
+goog.i18n.CompactNumberFormatSymbols_gsw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tsd"},1E4:{other:"00\u00a0tsd"},1E5:{other:"000\u00a0tsd"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tausend"},1E4:{other:"00 tausend"},1E5:{other:"000 tausend"},1E6:{other:"0 Millionen"},
+1E7:{other:"00 Millionen"},1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};goog.i18n.CompactNumberFormatSymbols_gsw_CH=goog.i18n.CompactNumberFormatSymbols_gsw;
+goog.i18n.CompactNumberFormatSymbols_gu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0ab9\u0a9c\u0abe\u0ab0"},1E4:{other:"00 \u0ab9\u0a9c\u0abe\u0ab0"},1E5:{other:"000 \u0ab9\u0a9c\u0abe\u0ab0"},1E6:{other:"0 \u0aae\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},
+1E7:{other:"00 \u0aae\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E8:{other:"000 \u0aae\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E9:{other:"0 \u0aac\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E10:{other:"00 \u0aac\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E11:{other:"000 \u0aac\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E12:{other:"0 \u0a9f\u0acd\u0ab0\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E13:{other:"00 \u0a9f\u0acd\u0ab0\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E14:{other:"000 \u0a9f\u0acd\u0ab0\u0abf\u0ab2\u0abf\u0aaf\u0aa8"}}};
+goog.i18n.CompactNumberFormatSymbols_gu_IN=goog.i18n.CompactNumberFormatSymbols_gu;goog.i18n.CompactNumberFormatSymbols_haw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_haw_US=goog.i18n.CompactNumberFormatSymbols_haw;
+goog.i18n.CompactNumberFormatSymbols_he={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"\u200f0\u00a0\u05d0\u05dc\u05e3"},1E4:{other:"\u200f00\u00a0\u05d0\u05dc\u05e3"},1E5:{other:"\u200f000\u00a0\u05d0\u05dc\u05e3"},1E6:{other:"\u200f0\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},
+1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"\u200f0 \u05d0\u05dc\u05e3"},1E4:{other:"\u200f00 \u05d0\u05dc\u05e3"},1E5:{other:"\u200f000 \u05d0\u05dc\u05e3"},1E6:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E10:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E11:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},
+1E12:{other:"\u200f0 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E13:{other:"\u200f00 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E14:{other:"\u200f000 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"}}};goog.i18n.CompactNumberFormatSymbols_he_IL=goog.i18n.CompactNumberFormatSymbols_he;
+goog.i18n.CompactNumberFormatSymbols_hi={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0L"},1E6:{other:"00L"},1E7:{other:"0Cr"},1E8:{other:"00Cr"},1E9:{other:"000Cr"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0939\u091c\u093c\u093e\u0930"},1E4:{other:"00 \u0939\u091c\u093c\u093e\u0930"},1E5:{other:"0 \u0932\u093e\u0916"},1E6:{other:"00 \u0932\u093e\u0916"},1E7:{other:"0 \u0915\u0930\u094b\u0921\u093c"},
+1E8:{other:"00 \u0915\u0930\u094b\u0921\u093c"},1E9:{other:"0 \u0905\u0930\u092c"},1E10:{other:"00 \u0905\u0930\u092c"},1E11:{other:"0 \u0916\u0930\u092c"},1E12:{other:"00 \u0916\u0930\u092c"},1E13:{other:"000 \u0916\u0930\u092c"},1E14:{other:"0000 \u0916\u0930\u092c"}}};goog.i18n.CompactNumberFormatSymbols_hi_IN=goog.i18n.CompactNumberFormatSymbols_hi;
+goog.i18n.CompactNumberFormatSymbols_hr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mlr."},1E10:{other:"00\u00a0mlr."},1E11:{other:"000\u00a0mlr."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0 milijuna"},1E7:{other:"00 milijuna"},1E8:{other:"000 milijuna"},
+1E9:{other:"0 milijarda"},1E10:{other:"00 milijarda"},1E11:{other:"000 milijarda"},1E12:{other:"0 bilijuna"},1E13:{other:"00 bilijuna"},1E14:{other:"000 bilijuna"}}};goog.i18n.CompactNumberFormatSymbols_hr_HR=goog.i18n.CompactNumberFormatSymbols_hr;
+goog.i18n.CompactNumberFormatSymbols_hu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0E"},1E4:{other:"00\u00a0E"},1E5:{other:"000\u00a0E"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ezer"},1E4:{other:"00 ezer"},1E5:{other:"000 ezer"},1E6:{other:"0 milli\u00f3"},1E7:{other:"00 milli\u00f3"},
+1E8:{other:"000 milli\u00f3"},1E9:{other:"0 milli\u00e1rd"},1E10:{other:"00 milli\u00e1rd"},1E11:{other:"000 milli\u00e1rd"},1E12:{other:"0 billi\u00f3"},1E13:{other:"00 billi\u00f3"},1E14:{other:"000 billi\u00f3"}}};goog.i18n.CompactNumberFormatSymbols_hu_HU=goog.i18n.CompactNumberFormatSymbols_hu;
+goog.i18n.CompactNumberFormatSymbols_id={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0rb"},1E5:{other:"000\u00a0rb"},1E6:{other:"0\u00a0jt"},1E7:{other:"00\u00a0jt"},1E8:{other:"000\u00a0jt"},1E9:{other:"0\u00a0M"},1E10:{other:"00\u00a0M"},1E11:{other:"000\u00a0M"},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ribu"},1E4:{other:"00 ribu"},1E5:{other:"000 ribu"},1E6:{other:"0 juta"},1E7:{other:"00 juta"},
+1E8:{other:"000 juta"},1E9:{other:"0 miliar"},1E10:{other:"00 miliar"},1E11:{other:"000 miliar"},1E12:{other:"0 triliun"},1E13:{other:"00 triliun"},1E14:{other:"000 triliun"}}};goog.i18n.CompactNumberFormatSymbols_id_ID=goog.i18n.CompactNumberFormatSymbols_id;
+goog.i18n.CompactNumberFormatSymbols_in={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0rb"},1E5:{other:"000\u00a0rb"},1E6:{other:"0\u00a0jt"},1E7:{other:"00\u00a0jt"},1E8:{other:"000\u00a0jt"},1E9:{other:"0\u00a0M"},1E10:{other:"00\u00a0M"},1E11:{other:"000\u00a0M"},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ribu"},1E4:{other:"00 ribu"},1E5:{other:"000 ribu"},1E6:{other:"0 juta"},1E7:{other:"00 juta"},
+1E8:{other:"000 juta"},1E9:{other:"0 miliar"},1E10:{other:"00 miliar"},1E11:{other:"000 miliar"},1E12:{other:"0 triliun"},1E13:{other:"00 triliun"},1E14:{other:"000 triliun"}}};
+goog.i18n.CompactNumberFormatSymbols_is={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u00fe."},1E4:{other:"00\u00a0\u00fe."},1E5:{other:"000\u00a0\u00fe."},1E6:{other:"0\u00a0m."},1E7:{other:"00\u00a0m."},1E8:{other:"000\u00a0m."},1E9:{other:"0\u00a0ma."},1E10:{other:"00\u00a0ma."},1E11:{other:"000\u00a0ma."},1E12:{other:"0\u00a0bn"},1E13:{other:"00\u00a0bn"},1E14:{other:"000\u00a0bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u00fe\u00fasund"},1E4:{other:"00 \u00fe\u00fasund"},1E5:{other:"000 \u00fe\u00fasund"},
+1E6:{other:"0 millj\u00f3nir"},1E7:{other:"00 millj\u00f3nir"},1E8:{other:"000 millj\u00f3nir"},1E9:{other:"0 milljar\u00f0ar"},1E10:{other:"00 milljar\u00f0ar"},1E11:{other:"000 milljar\u00f0ar"},1E12:{other:"0 billj\u00f3nir"},1E13:{other:"00 billj\u00f3nir"},1E14:{other:"000 billj\u00f3nir"}}};goog.i18n.CompactNumberFormatSymbols_is_IS=goog.i18n.CompactNumberFormatSymbols_is;
+goog.i18n.CompactNumberFormatSymbols_it={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mln"},1E7:{other:"00\u00a0Mln"},1E8:{other:"000\u00a0Mln"},1E9:{other:"0\u00a0Mld"},1E10:{other:"00\u00a0Mld"},1E11:{other:"000\u00a0Mld"},1E12:{other:"0\u00a0Bln"},1E13:{other:"00\u00a0Bln"},1E14:{other:"000\u00a0Bln"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 migliaia"},1E4:{other:"00 migliaia"},1E5:{other:"000 migliaia"},1E6:{other:"0 milioni"},1E7:{other:"00 milioni"},
+1E8:{other:"000 milioni"},1E9:{other:"0 miliardi"},1E10:{other:"00 miliardi"},1E11:{other:"000 miliardi"},1E12:{other:"0 bilioni"},1E13:{other:"00 bilioni"},1E14:{other:"000 bilioni"}}};goog.i18n.CompactNumberFormatSymbols_it_IT=goog.i18n.CompactNumberFormatSymbols_it;goog.i18n.CompactNumberFormatSymbols_it_SM=goog.i18n.CompactNumberFormatSymbols_it;
+goog.i18n.CompactNumberFormatSymbols_iw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"\u200f0\u00a0\u05d0\u05dc\u05e3"},1E4:{other:"\u200f00\u00a0\u05d0\u05dc\u05e3"},1E5:{other:"\u200f000\u00a0\u05d0\u05dc\u05e3"},1E6:{other:"\u200f0\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},
+1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"\u200f0 \u05d0\u05dc\u05e3"},1E4:{other:"\u200f00 \u05d0\u05dc\u05e3"},1E5:{other:"\u200f000 \u05d0\u05dc\u05e3"},1E6:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E10:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E11:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},
+1E12:{other:"\u200f0 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E13:{other:"\u200f00 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E14:{other:"\u200f000 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"}}};
+goog.i18n.CompactNumberFormatSymbols_ja={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u5343"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"},1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"},1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0\u5343"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"},
+1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"},1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}}};goog.i18n.CompactNumberFormatSymbols_ja_JP=goog.i18n.CompactNumberFormatSymbols_ja;
+goog.i18n.CompactNumberFormatSymbols_kn={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0cb8\u0cbe\u0cb5\u0cbf\u0cb0"},1E4:{other:"00 \u0cb8\u0cbe\u0cb5\u0cbf\u0cb0"},1E5:{other:"000 \u0cb8\u0cbe\u0cb5\u0cbf\u0cb0"},1E6:{other:"0 \u0cae\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},
+1E7:{other:"00 \u0cae\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E8:{other:"000 \u0cae\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E9:{other:"0 \u0cac\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E10:{other:"00 \u0cac\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E11:{other:"000 \u0cac\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E12:{other:"0 \u0c9f\u0ccd\u0cb0\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd\u200c"},1E13:{other:"00 \u0c9f\u0ccd\u0cb0\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd\u200c"},1E14:{other:"000 \u0c9f\u0ccd\u0cb0\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd\u200c"}}};
+goog.i18n.CompactNumberFormatSymbols_kn_IN=goog.i18n.CompactNumberFormatSymbols_kn;
+goog.i18n.CompactNumberFormatSymbols_ko={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0\ub9cc"},1E5:{other:"00\ub9cc"},1E6:{other:"000\ub9cc"},1E7:{other:"0000\ub9cc"},1E8:{other:"0\uc5b5"},1E9:{other:"00\uc5b5"},1E10:{other:"000\uc5b5"},1E11:{other:"0000\uc5b5"},1E12:{other:"0\uc870"},1E13:{other:"00\uc870"},1E14:{other:"000\uc870"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\ub9cc"},1E5:{other:"00\ub9cc"},1E6:{other:"000\ub9cc"},1E7:{other:"0000\ub9cc"},1E8:{other:"0\uc5b5"},
+1E9:{other:"00\uc5b5"},1E10:{other:"000\uc5b5"},1E11:{other:"0000\uc5b5"},1E12:{other:"0\uc870"},1E13:{other:"00\uc870"},1E14:{other:"000\uc870"}}};goog.i18n.CompactNumberFormatSymbols_ko_KR=goog.i18n.CompactNumberFormatSymbols_ko;
+goog.i18n.CompactNumberFormatSymbols_ln={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_ln_CD=goog.i18n.CompactNumberFormatSymbols_ln;
+goog.i18n.CompactNumberFormatSymbols_lt={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0G"},1E10:{other:"00\u00a0G"},1E11:{other:"000\u00a0G"},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 t\u016bkstan\u010di\u0173"},1E4:{other:"00 t\u016bkstan\u010di\u0173"},1E5:{other:"000 t\u016bkstan\u010di\u0173"},
+1E6:{other:"0 milijon\u0173"},1E7:{other:"00 milijon\u0173"},1E8:{other:"000 milijon\u0173"},1E9:{other:"0 milijard\u0173"},1E10:{other:"00 milijard\u0173"},1E11:{other:"000 milijard\u0173"},1E12:{other:"0 trilijon\u0173"},1E13:{other:"00 trilijon\u0173"},1E14:{other:"000 trilijon\u0173"}}};goog.i18n.CompactNumberFormatSymbols_lt_LT=goog.i18n.CompactNumberFormatSymbols_lt;
+goog.i18n.CompactNumberFormatSymbols_lv={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0t\u016bkst."},1E4:{other:"00\u00a0t\u016bkst."},1E5:{other:"000\u00a0t\u016bkst."},1E6:{other:"0\u00a0milj."},1E7:{other:"00\u00a0milj."},1E8:{other:"000\u00a0milj."},1E9:{other:"0\u00a0md"},1E10:{other:"00\u00a0md"},1E11:{other:"000\u00a0md"},1E12:{other:"0\u00a0trilj."},1E13:{other:"00\u00a0trilj."},1E14:{other:"000\u00a0trilj."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 t\u016bksto\u0161i"},1E4:{other:"00 t\u016bksto\u0161i"},
+1E5:{other:"000 t\u016bksto\u0161i"},1E6:{other:"0 miljoni"},1E7:{other:"00 miljoni"},1E8:{other:"000 miljoni"},1E9:{other:"0 miljardi"},1E10:{other:"00 miljardi"},1E11:{other:"000 miljardi"},1E12:{other:"0 trilj."},1E13:{other:"00 trilj."},1E14:{other:"000 trilj."}}};goog.i18n.CompactNumberFormatSymbols_lv_LV=goog.i18n.CompactNumberFormatSymbols_lv;
+goog.i18n.CompactNumberFormatSymbols_ml={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0d06\u0d2f\u0d3f\u0d30\u0d02"},1E4:{other:"00 \u0d06\u0d2f\u0d3f\u0d30\u0d02"},1E5:{other:"000 \u0d06\u0d2f\u0d3f\u0d30\u0d02"},1E6:{other:"0 \u0d26\u0d36\u0d32\u0d15\u0d4d\u0d37\u0d02"},
+1E7:{other:"00 \u0d26\u0d36\u0d32\u0d15\u0d4d\u0d37\u0d02"},1E8:{other:"000 \u0d26\u0d36\u0d32\u0d15\u0d4d\u0d37\u0d02"},1E9:{other:"0 \u0d32\u0d15\u0d4d\u0d37\u0d02 \u0d15\u0d4b\u0d1f\u0d3f"},1E10:{other:"00 \u0d32\u0d15\u0d4d\u0d37\u0d02 \u0d15\u0d4b\u0d1f\u0d3f"},1E11:{other:"000 \u0d32\u0d15\u0d4d\u0d37\u0d02 \u0d15\u0d4b\u0d1f\u0d3f"},1E12:{other:"0 \u0d1f\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u0d2f\u0d7a"},1E13:{other:"00 \u0d1f\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u0d2f\u0d7a"},1E14:{other:"000 \u0d1f\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u0d2f\u0d7a"}}};
+goog.i18n.CompactNumberFormatSymbols_ml_IN=goog.i18n.CompactNumberFormatSymbols_ml;
+goog.i18n.CompactNumberFormatSymbols_mr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0939\u091c\u093e\u0930"},1E4:{other:"00 \u0939\u091c\u093e\u0930"},1E5:{other:"000 \u0939\u091c\u093e\u0930"},1E6:{other:"0 \u0926\u0936\u0932\u0915\u094d\u0937"},
+1E7:{other:"00 \u0926\u0936\u0932\u0915\u094d\u0937"},1E8:{other:"000 \u0926\u0936\u0932\u0915\u094d\u0937"},1E9:{other:"0 \u092e\u0939\u093e\u092a\u0926\u094d\u092e"},1E10:{other:"00 \u092e\u0939\u093e\u092a\u0926\u094d\u092e"},1E11:{other:"000 \u092e\u0939\u093e\u092a\u0926\u094d\u092e"},1E12:{other:"0 \u0926\u0939\u093e \u0916\u0930\u092c"},1E13:{other:"00 \u0926\u0939\u093e \u0916\u0930\u092c"},1E14:{other:"000 \u0926\u0939\u093e \u0916\u0930\u092c"}}};
+goog.i18n.CompactNumberFormatSymbols_mr_IN=goog.i18n.CompactNumberFormatSymbols_mr;
+goog.i18n.CompactNumberFormatSymbols_ms={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0J"},1E7:{other:"00J"},1E8:{other:"000J"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ribu"},1E4:{other:"00 ribu"},1E5:{other:"000 ribu"},1E6:{other:"0 juta"},1E7:{other:"00 juta"},1E8:{other:"000 juta"},1E9:{other:"0 bilion"},1E10:{other:"00 bilion"},
+1E11:{other:"000 bilion"},1E12:{other:"0 trilion"},1E13:{other:"00 trilion"},1E14:{other:"000 trilion"}}};goog.i18n.CompactNumberFormatSymbols_ms_Latn_MY=goog.i18n.CompactNumberFormatSymbols_ms;goog.i18n.CompactNumberFormatSymbols_mt={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};
+goog.i18n.CompactNumberFormatSymbols_mt_MT=goog.i18n.CompactNumberFormatSymbols_mt;
+goog.i18n.CompactNumberFormatSymbols_nb={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mill"},1E7:{other:"00\u00a0mill"},1E8:{other:"000\u00a0mill"},1E9:{other:"0\u00a0mrd"},1E10:{other:"00\u00a0mrd"},1E11:{other:"000\u00a0mrd"},1E12:{other:"0\u00a0bill"},1E13:{other:"00\u00a0bill"},1E14:{other:"000\u00a0bill"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusen"},1E4:{other:"00 tusen"},1E5:{other:"000 tusen"},1E6:{other:"0 millioner"},1E7:{other:"00 millioner"},
+1E8:{other:"000 millioner"},1E9:{other:"0 milliarder"},1E10:{other:"00 milliarder"},1E11:{other:"000 milliarder"},1E12:{other:"0 billioner"},1E13:{other:"00 billioner"},1E14:{other:"000 billioner"}}};goog.i18n.CompactNumberFormatSymbols_nb_NO=goog.i18n.CompactNumberFormatSymbols_nb;
+goog.i18n.CompactNumberFormatSymbols_nl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0\u00a0mln."},1E7:{other:"00\u00a0mln."},1E8:{other:"000\u00a0mln."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0bln."},1E13:{other:"00\u00a0bln."},1E14:{other:"000\u00a0bln."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 duizend"},1E4:{other:"00 duizend"},1E5:{other:"000 duizend"},1E6:{other:"0 miljoen"},
+1E7:{other:"00 miljoen"},1E8:{other:"000 miljoen"},1E9:{other:"0 miljard"},1E10:{other:"00 miljard"},1E11:{other:"000 miljard"},1E12:{other:"0 biljoen"},1E13:{other:"00 biljoen"},1E14:{other:"000 biljoen"}}};goog.i18n.CompactNumberFormatSymbols_nl_NL=goog.i18n.CompactNumberFormatSymbols_nl;
+goog.i18n.CompactNumberFormatSymbols_no={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mill"},1E7:{other:"00\u00a0mill"},1E8:{other:"000\u00a0mill"},1E9:{other:"0\u00a0mrd"},1E10:{other:"00\u00a0mrd"},1E11:{other:"000\u00a0mrd"},1E12:{other:"0\u00a0bill"},1E13:{other:"00\u00a0bill"},1E14:{other:"000\u00a0bill"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusen"},1E4:{other:"00 tusen"},1E5:{other:"000 tusen"},1E6:{other:"0 millioner"},1E7:{other:"00 millioner"},
+1E8:{other:"000 millioner"},1E9:{other:"0 milliarder"},1E10:{other:"00 milliarder"},1E11:{other:"000 milliarder"},1E12:{other:"0 billioner"},1E13:{other:"00 billioner"},1E14:{other:"000 billioner"}}};goog.i18n.CompactNumberFormatSymbols_or={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};
+goog.i18n.CompactNumberFormatSymbols_or_IN=goog.i18n.CompactNumberFormatSymbols_or;
+goog.i18n.CompactNumberFormatSymbols_pl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tys."},1E4:{other:"00\u00a0tys."},1E5:{other:"000\u00a0tys."},1E6:{other:"0\u00a0mln"},1E7:{other:"00\u00a0mln"},1E8:{other:"000\u00a0mln"},1E9:{other:"0\u00a0mld"},1E10:{other:"00\u00a0mld"},1E11:{other:"000\u00a0mld"},1E12:{other:"0\u00a0bln"},1E13:{other:"00\u00a0bln"},1E14:{other:"000\u00a0bln"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tysi\u0105ca"},1E4:{other:"00 tysi\u0105ca"},1E5:{other:"000 tysi\u0105ca"},
+1E6:{other:"0 miliona"},1E7:{other:"00 miliona"},1E8:{other:"000 miliona"},1E9:{other:"0 miliarda"},1E10:{other:"00 miliarda"},1E11:{other:"000 miliarda"},1E12:{other:"0 biliona"},1E13:{other:"00 biliona"},1E14:{other:"000 biliona"}}};goog.i18n.CompactNumberFormatSymbols_pl_PL=goog.i18n.CompactNumberFormatSymbols_pl;
+goog.i18n.CompactNumberFormatSymbols_pt={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0mil"},1E4:{other:"00\u00a0mil"},1E5:{other:"000\u00a0mil"},1E6:{other:"0\u00a0mi"},1E7:{other:"00\u00a0mi"},1E8:{other:"000\u00a0mi"},1E9:{other:"0\u00a0bi"},1E10:{other:"00\u00a0bi"},1E11:{other:"000\u00a0bi"},1E12:{other:"0\u00a0tri"},1E13:{other:"00\u00a0tri"},1E14:{other:"000\u00a0tri"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 milh\u00f5es"},
+1E7:{other:"00 milh\u00f5es"},1E8:{other:"000 milh\u00f5es"},1E9:{other:"0 bilh\u00f5es"},1E10:{other:"00 bilh\u00f5es"},1E11:{other:"000 bilh\u00f5es"},1E12:{other:"0 trilh\u00f5es"},1E13:{other:"00 trilh\u00f5es"},1E14:{other:"000 trilh\u00f5es"}}};goog.i18n.CompactNumberFormatSymbols_pt_BR=goog.i18n.CompactNumberFormatSymbols_pt;
+goog.i18n.CompactNumberFormatSymbols_pt_PT={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0mil"},1E4:{other:"00\u00a0mil"},1E5:{other:"000\u00a0mil"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0MM"},1E10:{other:"00\u00a0MM"},1E11:{other:"000\u00a0MM"},1E12:{other:"0\u00a0Bi"},1E13:{other:"00\u00a0Bi"},1E14:{other:"000\u00a0Bi"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 milh\u00f5es"},
+1E7:{other:"00 milh\u00f5es"},1E8:{other:"000 milh\u00f5es"},1E9:{other:"0 mil milh\u00f5es"},1E10:{other:"00 mil milh\u00f5es"},1E11:{other:"000 mil milh\u00f5es"},1E12:{other:"0 bili\u00f5es"},1E13:{other:"00 bili\u00f5es"},1E14:{other:"000 bili\u00f5es"}}};
+goog.i18n.CompactNumberFormatSymbols_ro={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 de mii"},1E4:{other:"00 de mii"},1E5:{other:"000 de mii"},1E6:{other:"0 de milioane"},
+1E7:{other:"00 de milioane"},1E8:{other:"000 de milioane"},1E9:{other:"0 de miliarde"},1E10:{other:"00 de miliarde"},1E11:{other:"000 de miliarde"},1E12:{other:"0 de trilioane"},1E13:{other:"00 de trilioane"},1E14:{other:"000 de trilioane"}}};goog.i18n.CompactNumberFormatSymbols_ro_RO=goog.i18n.CompactNumberFormatSymbols_ro;
+goog.i18n.CompactNumberFormatSymbols_ru={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0442\u044b\u0441."},1E4:{other:"00\u00a0\u0442\u044b\u0441."},1E5:{other:"000\u00a0\u0442\u044b\u0441."},1E6:{other:"0\u00a0\u043c\u043b\u043d"},1E7:{other:"00\u00a0\u043c\u043b\u043d"},1E8:{other:"000\u00a0\u043c\u043b\u043d"},1E9:{other:"0\u00a0\u043c\u043b\u0440\u0434"},1E10:{other:"00\u00a0\u043c\u043b\u0440\u0434"},1E11:{other:"000\u00a0\u043c\u043b\u0440\u0434"},1E12:{other:"0\u00a0\u0442\u0440\u043b\u043d"},
+1E13:{other:"00\u00a0\u0442\u0440\u043b\u043d"},1E14:{other:"000\u00a0\u0442\u0440\u043b\u043d"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0442\u044b\u0441\u044f\u0447\u0438"},1E4:{other:"00 \u0442\u044b\u0441\u044f\u0447\u0438"},1E5:{other:"000 \u0442\u044b\u0441\u044f\u0447\u0438"},1E6:{other:"0 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430"},
+1E10:{other:"00 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430"},1E11:{other:"000 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E13:{other:"00 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_ru_RU=goog.i18n.CompactNumberFormatSymbols_ru;
+goog.i18n.CompactNumberFormatSymbols_sk={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tis."},1E4:{other:"00\u00a0tis."},1E5:{other:"000\u00a0tis."},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tis\u00edc"},1E4:{other:"00 tis\u00edc"},1E5:{other:"000 tis\u00edc"},
+1E6:{other:"0 mili\u00f3nov"},1E7:{other:"00 mili\u00f3nov"},1E8:{other:"000 mili\u00f3nov"},1E9:{other:"0 miliard"},1E10:{other:"00 mili\u00e1rd"},1E11:{other:"000 mili\u00e1rd"},1E12:{other:"0 bili\u00f3nov"},1E13:{other:"00 bili\u00f3nov"},1E14:{other:"000 bili\u00f3nov"}}};goog.i18n.CompactNumberFormatSymbols_sk_SK=goog.i18n.CompactNumberFormatSymbols_sk;
+goog.i18n.CompactNumberFormatSymbols_sl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tis."},1E4:{other:"00\u00a0tis."},1E5:{other:"000\u00a0tis."},1E6:{other:"0\u00a0mio."},1E7:{other:"00\u00a0mio."},1E8:{other:"000\u00a0mio."},1E9:{other:"0\u00a0mrd."},1E10:{other:"00\u00a0mrd."},1E11:{other:"000\u00a0mrd."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tiso\u010d"},1E4:{other:"00 tiso\u010d"},1E5:{other:"000 tiso\u010d"},
+1E6:{other:"0 milijonov"},1E7:{other:"00 milijonov"},1E8:{other:"000 milijonov"},1E9:{other:"0 milijard"},1E10:{other:"00 milijard"},1E11:{other:"000 milijard"},1E12:{other:"0 bilijonov"},1E13:{other:"00 bilijonov"},1E14:{other:"000 bilijonov"}}};goog.i18n.CompactNumberFormatSymbols_sl_SI=goog.i18n.CompactNumberFormatSymbols_sl;
+goog.i18n.CompactNumberFormatSymbols_sq={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_sq_AL=goog.i18n.CompactNumberFormatSymbols_sq;
+goog.i18n.CompactNumberFormatSymbols_sr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0\u0445\u0438\u0459"},1E5:{other:"000\u00a0\u0445\u0438\u0459"},1E6:{other:"0\u00a0\u043c\u0438\u043b"},1E7:{other:"00\u00a0\u043c\u0438\u043b"},1E8:{other:"000\u00a0\u043c\u0438\u043b"},1E9:{other:"0\u00a0\u043c\u043b\u0440\u0434"},1E10:{other:"00\u00a0\u043c\u043b\u0440\u0434"},1E11:{other:"000\u00a0\u043c\u043b\u0440\u0434"},1E12:{other:"0\u00a0\u0431\u0438\u043b"},1E13:{other:"00\u00a0\u0431\u0438\u043b"},
+1E14:{other:"000\u00a0\u0431\u0438\u043b"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0445\u0438\u0459\u0430\u0434\u0430"},1E4:{other:"00 \u0445\u0438\u0459\u0430\u0434\u0430"},1E5:{other:"000 \u0445\u0438\u0459\u0430\u0434\u0430"},1E6:{other:"0 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0438\u043b\u0438\u0458\u0430\u0440\u0434\u0438"},1E10:{other:"00 \u043c\u0438\u043b\u0438\u0458\u0430\u0440\u0434\u0438"},
+1E11:{other:"000 \u043c\u0438\u043b\u0438\u0458\u0430\u0440\u0434\u0438"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},1E13:{other:"00 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_RS=goog.i18n.CompactNumberFormatSymbols_sr;
+goog.i18n.CompactNumberFormatSymbols_sv={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tn"},1E4:{other:"00\u00a0tn"},1E5:{other:"000\u00a0tn"},1E6:{other:"0\u00a0mn"},1E7:{other:"00\u00a0mn"},1E8:{other:"000\u00a0mn"},1E9:{other:"0\u00a0md"},1E10:{other:"00\u00a0md"},1E11:{other:"000\u00a0md"},1E12:{other:"0\u00a0bn"},1E13:{other:"00\u00a0bn"},1E14:{other:"000\u00a0bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusen"},1E4:{other:"00 tusen"},1E5:{other:"000 tusen"},1E6:{other:"0 miljoner"},
+1E7:{other:"00 miljoner"},1E8:{other:"000 miljoner"},1E9:{other:"0 miljarder"},1E10:{other:"00 miljarder"},1E11:{other:"000 miljarder"},1E12:{other:"0 biljoner"},1E13:{other:"00 biljoner"},1E14:{other:"000 biljoner"}}};goog.i18n.CompactNumberFormatSymbols_sv_SE=goog.i18n.CompactNumberFormatSymbols_sv;
+goog.i18n.CompactNumberFormatSymbols_sw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"elfu\u00a00"},1E4:{other:"elfu\u00a000"},1E5:{other:"laki0"},1E6:{other:"M0"},1E7:{other:"M00"},1E8:{other:"M000"},1E9:{other:"B0"},1E10:{other:"B00"},1E11:{other:"B000"},1E12:{other:"T0"},1E13:{other:"T00"},1E14:{other:"T000"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"Elfu 0"},1E4:{other:"Elfu 00"},1E5:{other:"Elfu 000"},1E6:{other:"Milioni 0"},1E7:{other:"Milioni 00"},1E8:{other:"Milioni 000"},1E9:{other:"Bilioni 0"},
+1E10:{other:"Bilioni 00"},1E11:{other:"Bilioni 000"},1E12:{other:"Trilioni 0"},1E13:{other:"Trilioni 00"},1E14:{other:"Trilioni 000"}}};goog.i18n.CompactNumberFormatSymbols_sw_TZ=goog.i18n.CompactNumberFormatSymbols_sw;
+goog.i18n.CompactNumberFormatSymbols_ta={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0b86\u0baf\u0bbf\u0bb0\u0bae\u0bcd"},1E4:{other:"00 \u0b86\u0baf\u0bbf\u0bb0\u0bae\u0bcd"},1E5:{other:"000 \u0b86\u0baf\u0bbf\u0bb0\u0bae\u0bcd"},1E6:{other:"0 \u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},
+1E7:{other:"00 \u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E8:{other:"000 \u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E9:{other:"0 \u0baa\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E10:{other:"00 \u0baa\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E11:{other:"000 \u0baa\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E12:{other:"0 \u0b9f\u0bbf\u0bb0\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E13:{other:"00 \u0b9f\u0bbf\u0bb0\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},
+1E14:{other:"000 \u0b9f\u0bbf\u0bb0\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"}}};goog.i18n.CompactNumberFormatSymbols_ta_IN=goog.i18n.CompactNumberFormatSymbols_ta;
+goog.i18n.CompactNumberFormatSymbols_te={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0c35\u0c47\u0c32\u0c41"},1E4:{other:"00 \u0c35\u0c47\u0c32\u0c41"},1E5:{other:"000 \u0c35\u0c47\u0c32\u0c41"},1E6:{other:"0 \u0c2e\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},
+1E7:{other:"00 \u0c2e\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E8:{other:"000 \u0c2e\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E9:{other:"0 \u0c2c\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E10:{other:"00 \u0c2c\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E11:{other:"000 \u0c2c\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E12:{other:"0 \u0c1f\u0c4d\u0c30\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E13:{other:"00 \u0c1f\u0c4d\u0c30\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E14:{other:"000 \u0c1f\u0c4d\u0c30\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"}}};
+goog.i18n.CompactNumberFormatSymbols_te_IN=goog.i18n.CompactNumberFormatSymbols_te;
+goog.i18n.CompactNumberFormatSymbols_th={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0e1e."},1E4:{other:"0\u00a0\u0e21."},1E5:{other:"0\u00a0\u0e2a."},1E6:{other:"0\u00a0\u0e25."},1E7:{other:"00\u00a0\u0e25."},1E8:{other:"000\u00a0\u0e25."},1E9:{other:"0\u00a0\u0e1e.\u0e25."},1E10:{other:"0\u00a0\u0e21.\u0e25."},1E11:{other:"0\u00a0\u0e2a.\u0e25."},1E12:{other:"0\u00a0\u0e25.\u0e25."},1E13:{other:"00\u00a0\u0e25.\u0e25."},1E14:{other:"000\u00a0\u0e25.\u0e25."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0e1e\u0e31\u0e19"},
+1E4:{other:"0 \u0e2b\u0e21\u0e37\u0e48\u0e19"},1E5:{other:"0 \u0e41\u0e2a\u0e19"},1E6:{other:"0 \u0e25\u0e49\u0e32\u0e19"},1E7:{other:"00 \u0e25\u0e49\u0e32\u0e19"},1E8:{other:"000 \u0e25\u0e49\u0e32\u0e19"},1E9:{other:"0 \u0e1e\u0e31\u0e19\u0e25\u0e49\u0e32\u0e19"},1E10:{other:"0 \u0e2b\u0e21\u0e37\u0e48\u0e19\u0e25\u0e49\u0e32\u0e19"},1E11:{other:"0 \u0e41\u0e2a\u0e19\u0e25\u0e49\u0e32\u0e19"},1E12:{other:"0 \u0e25\u0e49\u0e32\u0e19\u0e25\u0e49\u0e32\u0e19"},1E13:{other:"00 \u0e25\u0e49\u0e32\u0e19\u0e25\u0e49\u0e32\u0e19"},
+1E14:{other:"000 \u0e25\u0e49\u0e32\u0e19\u0e25\u0e49\u0e32\u0e19"}}};goog.i18n.CompactNumberFormatSymbols_th_TH=goog.i18n.CompactNumberFormatSymbols_th;
+goog.i18n.CompactNumberFormatSymbols_tl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 (na) libo"},1E4:{other:"00 (na) libo"},1E5:{other:"000 (na) libo"},1E6:{other:"0 (na) milyon"},1E7:{other:"00 (na) milyon"},1E8:{other:"000 (na) milyon"},1E9:{other:"0 (na) bilyon"},
+1E10:{other:"00 (na) bilyon"},1E11:{other:"000 (na) bilyon"},1E12:{other:"0 (na) trilyon"},1E13:{other:"00 (na) trilyon"},1E14:{other:"000 (na) trilyon"}}};
+goog.i18n.CompactNumberFormatSymbols_tr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0B"},1E5:{other:"000\u00a0B"},1E6:{other:"0\u00a0Mn"},1E7:{other:"00\u00a0Mn"},1E8:{other:"000\u00a0Mn"},1E9:{other:"0\u00a0Mr"},1E10:{other:"00\u00a0Mr"},1E11:{other:"000\u00a0Mr"},1E12:{other:"0\u00a0Tn"},1E13:{other:"00\u00a0Tn"},1E14:{other:"000\u00a0Tn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 bin"},1E4:{other:"00 bin"},1E5:{other:"000 bin"},1E6:{other:"0 milyon"},1E7:{other:"00 milyon"},
+1E8:{other:"000 milyon"},1E9:{other:"0 milyar"},1E10:{other:"00 milyar"},1E11:{other:"000 milyar"},1E12:{other:"0 trilyon"},1E13:{other:"00 trilyon"},1E14:{other:"000 trilyon"}}};goog.i18n.CompactNumberFormatSymbols_tr_TR=goog.i18n.CompactNumberFormatSymbols_tr;
+goog.i18n.CompactNumberFormatSymbols_uk={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0442\u0438\u0441"},1E4:{other:"00\u00a0\u0442\u0438\u0441"},1E5:{other:"000\u00a0\u0442\u0438\u0441"},1E6:{other:"0\u00a0\u043c\u043b\u043d"},1E7:{other:"00\u00a0\u043c\u043b\u043d"},1E8:{other:"000\u00a0\u043c\u043b\u043d"},1E9:{other:"0\u00a0\u043c\u043b\u0440\u0434"},1E10:{other:"00\u00a0\u043c\u043b\u0440\u0434"},1E11:{other:"000\u00a0\u043c\u043b\u0440\u0434"},1E12:{other:"0\u00a0\u0442\u0440\u043b\u043d"},
+1E13:{other:"00\u00a0\u0442\u0440\u043b\u043d"},1E14:{other:"000\u00a0\u0442\u0440\u043b\u043d"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0442\u0438\u0441\u044f\u0447\u0456"},1E4:{other:"00 \u0442\u0438\u0441\u044f\u0447\u0456"},1E5:{other:"000 \u0442\u0438\u0441\u044f\u0447\u0456"},1E6:{other:"0 \u043c\u0456\u043b\u044c\u0439\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0456\u043b\u044c\u0439\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0456\u043b\u044c\u0439\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0456\u043b\u044c\u044f\u0440\u0434\u0430"},
+1E10:{other:"00 \u043c\u0456\u043b\u044c\u044f\u0440\u0434\u0430"},1E11:{other:"000 \u043c\u0456\u043b\u044c\u044f\u0440\u0434\u0430"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u044c\u0439\u043e\u043d\u0430"},1E13:{other:"00 \u0442\u0440\u0438\u043b\u044c\u0439\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u044c\u0439\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_uk_UA=goog.i18n.CompactNumberFormatSymbols_uk;
+goog.i18n.CompactNumberFormatSymbols_ur={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u06c1\u0632\u0627\u0631"},1E4:{other:"00\u00a0\u06c1\u0632\u0627\u0631"},1E5:{other:"0\u00a0\u0644\u0627\u06a9\u06be"},1E6:{other:"00\u00a0\u0644\u0627\u06a9\u06be"},1E7:{other:"0\u00a0\u06a9\u0631\u0648\u0691"},1E8:{other:"00\u00a0\u06a9\u0631\u0648\u0691"},1E9:{other:"0\u00a0\u0627\u0631\u0628"},1E10:{other:"00\u00a0\u0627\u0631\u0628"},1E11:{other:"0\u00a0\u06a9\u06be\u0631\u0628"},1E12:{other:"00\u00a0\u06a9\u06be\u0631\u0628"},
+1E13:{other:"000\u00a0\u06a9\u06be\u0631\u0628"},1E14:{other:"0000\u00a0\u06a9\u06be\u0631\u0628"}}};goog.i18n.CompactNumberFormatSymbols_ur_PK=goog.i18n.CompactNumberFormatSymbols_ur;
+goog.i18n.CompactNumberFormatSymbols_vi={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0N"},1E4:{other:"00\u00a0N"},1E5:{other:"000\u00a0N"},1E6:{other:"0\u00a0Tr"},1E7:{other:"00\u00a0Tr"},1E8:{other:"000\u00a0Tr"},1E9:{other:"0\u00a0T"},1E10:{other:"00\u00a0T"},1E11:{other:"000\u00a0T"},1E12:{other:"0\u00a0NT"},1E13:{other:"00\u00a0NT"},1E14:{other:"000\u00a0NT"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ngh\u00ecn"},1E4:{other:"00 ngh\u00ecn"},1E5:{other:"000 ngh\u00ecn"},1E6:{other:"0 tri\u1ec7u"},
+1E7:{other:"00 tri\u1ec7u"},1E8:{other:"000 tri\u1ec7u"},1E9:{other:"0 t\u1ef7"},1E10:{other:"00 t\u1ef7"},1E11:{other:"000 t\u1ef7"},1E12:{other:"0 ngh\u00ecn t\u1ef7"},1E13:{other:"00 ngh\u00ecn t\u1ef7"},1E14:{other:"000 ngh\u00ecn t\u1ef7"}}};goog.i18n.CompactNumberFormatSymbols_vi_VN=goog.i18n.CompactNumberFormatSymbols_vi;
+goog.i18n.CompactNumberFormatSymbols_zh={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"},1E8:{other:"0\u4ebf"},1E9:{other:"00\u4ebf"},1E10:{other:"000\u4ebf"},1E11:{other:"0000\u4ebf"},1E12:{other:"0\u4e07\u4ebf"},1E13:{other:"00\u4e07\u4ebf"},1E14:{other:"000\u4e07\u4ebf"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"},
+1E8:{other:"0\u4ebf"},1E9:{other:"00\u4ebf"},1E10:{other:"000\u4ebf"},1E11:{other:"0000\u4ebf"},1E12:{other:"0\u4e07\u4ebf"},1E13:{other:"00\u4e07\u4ebf"},1E14:{other:"000\u4e07\u4ebf"}}};goog.i18n.CompactNumberFormatSymbols_zh_CN=goog.i18n.CompactNumberFormatSymbols_zh;
+goog.i18n.CompactNumberFormatSymbols_zh_HK={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00\u5146"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u842c"},1E5:{other:"00\u842c"},1E6:{other:"000\u842c"},1E7:{other:"0000\u842c"},1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"},
+1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}}};goog.i18n.CompactNumberFormatSymbols_zh_Hans_CN=goog.i18n.CompactNumberFormatSymbols_zh;
+goog.i18n.CompactNumberFormatSymbols_zh_TW={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00\u5146"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u842c"},1E5:{other:"00\u842c"},1E6:{other:"000\u842c"},1E7:{other:"0000\u842c"},1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"},
+1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}}};
+goog.i18n.CompactNumberFormatSymbols_zu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 inkulungwane"},1E4:{other:"00 inkulungwane"},1E5:{other:"000 inkulungwane"},1E6:{other:"0 isigidi"},1E7:{other:"00 isigidi"},1E8:{other:"000 isigidi"},1E9:{other:"0 isigidi sezigidi"},
+1E10:{other:"00 isigidi sezigidi"},1E11:{other:"000 isigidi sezigidi"},1E12:{other:"0 isigidintathu"},1E13:{other:"00 isigidintathu"},1E14:{other:"000 isigidintathu"}}};goog.i18n.CompactNumberFormatSymbols_zu_ZA=goog.i18n.CompactNumberFormatSymbols_zu;goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;"af"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_af);
+if("af_ZA"==goog.LOCALE||"af-ZA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_af;"am"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_am);if("am_ET"==goog.LOCALE||"am-ET"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_am;"ar"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ar);
+if("ar_001"==goog.LOCALE||"ar-001"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ar;if("ar_EG"==goog.LOCALE||"ar-EG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ar;"bg"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bg);if("bg_BG"==goog.LOCALE||"bg-BG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bg;
+"bn"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bn);if("bn_BD"==goog.LOCALE||"bn-BD"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bn;"br"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_br);if("br_FR"==goog.LOCALE||"br-FR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_br;"ca"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ca);
+if("ca_AD"==goog.LOCALE||"ca-AD"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ca;if("ca_ES"==goog.LOCALE||"ca-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ca;"chr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_chr);if("chr_US"==goog.LOCALE||"chr-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_chr;
+"cs"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cs);if("cs_CZ"==goog.LOCALE||"cs-CZ"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cs;"cy"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cy);if("cy_GB"==goog.LOCALE||"cy-GB"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cy;"da"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_da);
+if("da_DK"==goog.LOCALE||"da-DK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_da;"de"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de);if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de_AT;if("de_BE"==goog.LOCALE||"de-BE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de;
+if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de_CH;if("de_DE"==goog.LOCALE||"de-DE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de;if("de_LU"==goog.LOCALE||"de-LU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de;"el"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_el);
+if("el_GR"==goog.LOCALE||"el-GR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_el;"en"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en);if("en_AS"==goog.LOCALE||"en-AS"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_AU;
+if("en_Dsrt_US"==goog.LOCALE||"en-Dsrt-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_FM"==goog.LOCALE||"en-FM"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_GB;if("en_GU"==goog.LOCALE||"en-GU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;
+if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_IE;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_IN;if("en_MH"==goog.LOCALE||"en-MH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_MP"==goog.LOCALE||"en-MP"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;
+if("en_PR"==goog.LOCALE||"en-PR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_PW"==goog.LOCALE||"en-PW"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_SG;if("en_TC"==goog.LOCALE||"en-TC"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;
+if("en_UM"==goog.LOCALE||"en-UM"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_VG"==goog.LOCALE||"en-VG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_VI"==goog.LOCALE||"en-VI"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;
+if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_ZA;"es"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es_419;if("es_EA"==goog.LOCALE||"es-EA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es;
+if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es;if("es_IC"==goog.LOCALE||"es-IC"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es;"et"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_et);if("et_EE"==goog.LOCALE||"et-EE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_et;
+"eu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_eu);if("eu_ES"==goog.LOCALE||"eu-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_eu;"fa"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fa);if("fa_IR"==goog.LOCALE||"fa-IR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fa;"fi"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fi);
+if("fi_FI"==goog.LOCALE||"fi-FI"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fi;"fil"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fil);if("fil_PH"==goog.LOCALE||"fil-PH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fil;"fr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr);
+if("fr_BL"==goog.LOCALE||"fr-BL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr_CA;if("fr_FR"==goog.LOCALE||"fr-FR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_GF"==goog.LOCALE||"fr-GF"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;
+if("fr_GP"==goog.LOCALE||"fr-GP"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_MC"==goog.LOCALE||"fr-MC"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_MF"==goog.LOCALE||"fr-MF"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_MQ"==goog.LOCALE||"fr-MQ"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;
+if("fr_RE"==goog.LOCALE||"fr-RE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_YT"==goog.LOCALE||"fr-YT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;"gl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gl);if("gl_ES"==goog.LOCALE||"gl-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gl;
+"gsw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gsw);if("gsw_CH"==goog.LOCALE||"gsw-CH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gsw;"gu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gu);if("gu_IN"==goog.LOCALE||"gu-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gu;
+"haw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_haw);if("haw_US"==goog.LOCALE||"haw-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_haw;"he"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_he);if("he_IL"==goog.LOCALE||"he-IL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_he;
+"hi"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hi);if("hi_IN"==goog.LOCALE||"hi-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hi;"hr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hr);if("hr_HR"==goog.LOCALE||"hr-HR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hr;"hu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hu);
+if("hu_HU"==goog.LOCALE||"hu-HU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hu;"id"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_id);if("id_ID"==goog.LOCALE||"id-ID"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_id;"in"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_in);"is"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_is);
+if("is_IS"==goog.LOCALE||"is-IS"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_is;"it"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_it);if("it_IT"==goog.LOCALE||"it-IT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_it;if("it_SM"==goog.LOCALE||"it-SM"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_it;
+"iw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_iw);"ja"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ja);if("ja_JP"==goog.LOCALE||"ja-JP"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ja;"kn"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_kn);if("kn_IN"==goog.LOCALE||"kn-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_kn;
+"ko"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ko);if("ko_KR"==goog.LOCALE||"ko-KR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ko;"ln"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ln);if("ln_CD"==goog.LOCALE||"ln-CD"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ln;"lt"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lt);
+if("lt_LT"==goog.LOCALE||"lt-LT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lt;"lv"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lv);if("lv_LV"==goog.LOCALE||"lv-LV"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lv;"ml"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ml);
+if("ml_IN"==goog.LOCALE||"ml-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ml;"mr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mr);if("mr_IN"==goog.LOCALE||"mr-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mr;"ms"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ms);
+if("ms_Latn_MY"==goog.LOCALE||"ms-Latn-MY"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ms;"mt"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mt);if("mt_MT"==goog.LOCALE||"mt-MT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mt;"nb"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nb);
+if("nb_NO"==goog.LOCALE||"nb-NO"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nb;"nl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nl);if("nl_NL"==goog.LOCALE||"nl-NL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nl;"no"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_no);"or"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_or);
+if("or_IN"==goog.LOCALE||"or-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_or;"pl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pl);if("pl_PL"==goog.LOCALE||"pl-PL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pl;"pt"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pt);
+if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pt;if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pt_PT;"ro"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ro);if("ro_RO"==goog.LOCALE||"ro-RO"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ro;
+"ru"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ru);if("ru_RU"==goog.LOCALE||"ru-RU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ru;"sk"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sk);if("sk_SK"==goog.LOCALE||"sk-SK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sk;"sl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sl);
+if("sl_SI"==goog.LOCALE||"sl-SI"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sl;"sq"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sq);if("sq_AL"==goog.LOCALE||"sq-AL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sq;"sr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sr);
+if("sr_Cyrl_RS"==goog.LOCALE||"sr-Cyrl-RS"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sr;"sv"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sv);if("sv_SE"==goog.LOCALE||"sv-SE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sv;"sw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sw);
+if("sw_TZ"==goog.LOCALE||"sw-TZ"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sw;"ta"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ta);if("ta_IN"==goog.LOCALE||"ta-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ta;"te"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_te);
+if("te_IN"==goog.LOCALE||"te-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_te;"th"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_th);if("th_TH"==goog.LOCALE||"th-TH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_th;"tl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_tl);"tr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_tr);
+if("tr_TR"==goog.LOCALE||"tr-TR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_tr;"uk"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_uk);if("uk_UA"==goog.LOCALE||"uk-UA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_uk;"ur"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ur);
+if("ur_PK"==goog.LOCALE||"ur-PK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ur;"vi"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_vi);if("vi_VN"==goog.LOCALE||"vi-VN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_vi;"zh"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh);
+if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh_HK;if("zh_Hans_CN"==goog.LOCALE||"zh-Hans-CN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh;if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh_TW;
+"zu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zu);if("zu_ZA"==goog.LOCALE||"zu-ZA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zu;goog.i18n.currency={};goog.i18n.currency.PRECISION_MASK_=7;goog.i18n.currency.POSITION_FLAG_=16;goog.i18n.currency.SPACE_FLAG_=32;goog.i18n.currency.tier2Enabled_=!1;goog.i18n.currency.addTier2Support=function(){if(!goog.i18n.currency.tier2Enabled_){for(var a in goog.i18n.currency.CurrencyInfoTier2)goog.i18n.currency.CurrencyInfo[a]=goog.i18n.currency.CurrencyInfoTier2[a];goog.i18n.currency.tier2Enabled_=!0}};
+goog.i18n.currency.getGlobalCurrencyPattern=function(a){var b=goog.i18n.currency.CurrencyInfo[a],c=b[0];return a==b[1]?goog.i18n.currency.getCurrencyPattern_(c,b[1]):a+" "+goog.i18n.currency.getCurrencyPattern_(c,b[1])};goog.i18n.currency.getGlobalCurrencySign=function(a){var b=goog.i18n.currency.CurrencyInfo[a];return a==b[1]?a:a+" "+b[1]};goog.i18n.currency.getLocalCurrencyPattern=function(a){a=goog.i18n.currency.CurrencyInfo[a];return goog.i18n.currency.getCurrencyPattern_(a[0],a[1])};
+goog.i18n.currency.getLocalCurrencySign=function(a){return goog.i18n.currency.CurrencyInfo[a][1]};goog.i18n.currency.getPortableCurrencyPattern=function(a){a=goog.i18n.currency.CurrencyInfo[a];return goog.i18n.currency.getCurrencyPattern_(a[0],a[2])};goog.i18n.currency.getPortableCurrencySign=function(a){return goog.i18n.currency.CurrencyInfo[a][2]};goog.i18n.currency.isPrefixSignPosition=function(a){return 0==(goog.i18n.currency.CurrencyInfo[a][0]&goog.i18n.currency.POSITION_FLAG_)};
+goog.i18n.currency.getCurrencyPattern_=function(a,b){var c=["#,##0"],d=a&goog.i18n.currency.PRECISION_MASK_;if(0<d){c.push(".");for(var e=0;e<d;e++)c.push("0")}0==(a&goog.i18n.currency.POSITION_FLAG_)?(c.unshift(a&goog.i18n.currency.SPACE_FLAG_?"' ":"'"),c.unshift(b),c.unshift("'")):c.push(a&goog.i18n.currency.SPACE_FLAG_?" '":"'",b,"'");return c.join("")};
+goog.i18n.currency.adjustPrecision=function(a,b){var c=["0"],d=goog.i18n.currency.CurrencyInfo[b],d=d[0]&goog.i18n.currency.PRECISION_MASK_;if(0<d){c.push(".");for(var e=0;e<d;e++)c.push("0")}return a.replace(/0.00/g,c.join(""))};
+goog.i18n.currency.CurrencyInfo={AED:[2,"dh","\u062f.\u0625.","DH"],ALL:[0,"Lek","Lek"],AUD:[2,"$","AU$"],BDT:[2,"\u09f3","Tk"],BGN:[2,"lev","lev"],BRL:[2,"R$","R$"],CAD:[2,"$","C$"],CDF:[2,"FrCD","CDF"],CHF:[2,"CHF","CHF"],CLP:[0,"$","CL$"],CNY:[2,"\u00a5","RMB\u00a5"],COP:[0,"$","COL$"],CRC:[0,"\u20a1","CR\u20a1"],CZK:[50,"K\u010d","K\u010d"],DKK:[18,"kr","kr"],DOP:[2,"$","RD$"],EGP:[2,"\u00a3","LE"],ETB:[2,"Birr","Birr"],EUR:[2,"\u20ac","\u20ac"],GBP:[2,"\u00a3","GB\u00a3"],HKD:[2,"$","HK$"],HRK:[2,
+"kn","kn"],HUF:[0,"Ft","Ft"],IDR:[0,"Rp","Rp"],ILS:[2,"\u20aa","IL\u20aa"],INR:[2,"\u20b9","Rs"],IRR:[0,"Rial","IRR"],ISK:[0,"kr","kr"],JMD:[2,"$","JA$"],JPY:[0,"\u00a5","JP\u00a5"],KRW:[0,"\u20a9","KR\u20a9"],LKR:[2,"Rs","SLRs"],LTL:[2,"Lt","Lt"],LVL:[2,"Ls","Ls"],MNT:[0,"\u20ae","MN\u20ae"],MXN:[2,"$","Mex$"],MYR:[2,"RM","RM"],NOK:[50,"kr","NOkr"],PAB:[2,"B/.","B/."],PEN:[2,"S/.","S/."],PHP:[2,"\u20b1","Php"],PKR:[0,"Rs","PKRs."],PLN:[50,"z\u0142","z\u0142"],RON:[2,"RON","RON"],RSD:[0,"din","RSD"],
+RUB:[50,"\u0440\u0443\u0431.","\u0440\u0443\u0431."],SAR:[2,"Rial","Rial"],SEK:[2,"kr","kr"],SGD:[2,"$","S$"],THB:[2,"\u0e3f","THB"],TRY:[2,"TL","YTL"],TWD:[2,"NT$","NT$"],TZS:[0,"TSh","TSh"],UAH:[2,"\u20b4","UAH"],USD:[2,"$","US$"],UYU:[2,"$","$U"],VND:[0,"\u20ab","VN\u20ab"],YER:[0,"Rial","Rial"],ZAR:[2,"R","ZAR"]};
+goog.i18n.currency.CurrencyInfoTier2={AFN:[48,"Af.","AFN"],AMD:[0,"Dram","dram"],AOA:[2,"Kz","Kz"],ARS:[2,"$","AR$"],AWG:[2,"Afl.","Afl."],AZN:[2,"man.","man."],BAM:[2,"KM","KM"],BBD:[2,"$","Bds$"],BHD:[3,"din","din"],BIF:[0,"FBu","FBu"],BMD:[2,"$","BD$"],BND:[2,"$","B$"],BOB:[2,"Bs","Bs"],BSD:[2,"$","BS$"],BTN:[2,"Nu.","Nu."],BWP:[2,"P","pula"],BYR:[0,"BYR","BYR"],BZD:[2,"$","BZ$"],CUC:[1,"$","CUC$"],CUP:[2,"$","CU$"],CVE:[2,"CVE","Esc"],DJF:[0,"Fdj","Fdj"],DZD:[2,"din","din"],ERN:[2,"Nfk","Nfk"],
+FJD:[2,"$","FJ$"],FKP:[2,"\u00a3","FK\u00a3"],GEL:[2,"GEL","GEL"],GHS:[2,"GHS","GHS"],GIP:[2,"\u00a3","GI\u00a3"],GMD:[2,"GMD","GMD"],GNF:[0,"FG","FG"],GTQ:[2,"Q","GTQ"],GYD:[0,"$","GY$"],HNL:[2,"L","HNL"],HTG:[2,"HTG","HTG"],IQD:[0,"din","IQD"],JOD:[3,"din","JOD"],KES:[2,"Ksh","Ksh"],KGS:[2,"KGS","KGS"],KHR:[2,"Riel","KHR"],KMF:[0,"CF","KMF"],KPW:[0,"\u20a9KP","KPW"],KWD:[3,"din","KWD"],KYD:[2,"$","KY$"],KZT:[2,"\u20b8","KZT"],LAK:[0,"\u20ad","\u20ad"],LBP:[0,"L\u00a3","LBP"],LRD:[2,"$","L$"],LSL:[2,
+"LSL","LSL"],LYD:[3,"din","LD"],MAD:[2,"dh","MAD"],MDL:[2,"MDL","MDL"],MGA:[0,"Ar","MGA"],MKD:[2,"din","MKD"],MMK:[0,"K","MMK"],MOP:[2,"MOP","MOP$"],MRO:[0,"MRO","MRO"],MUR:[0,"MURs","MURs"],MWK:[2,"MWK","MWK"],MZN:[2,"MTn","MTn"],NAD:[2,"$","N$"],NGN:[2,"\u20a6","NG\u20a6"],NIO:[2,"C$","C$"],NPR:[2,"Rs","NPRs"],NZD:[2,"$","NZ$"],OMR:[3,"Rial","OMR"],PGK:[2,"PGK","PGK"],PYG:[0,"Gs","PYG"],QAR:[2,"Rial","QR"],RWF:[0,"RF","RF"],SBD:[2,"$","SI$"],SCR:[2,"SCR","SCR"],SDG:[2,"SDG","SDG"],SHP:[2,"\u00a3",
+"SH\u00a3"],SLL:[0,"SLL","SLL"],SOS:[0,"SOS","SOS"],SRD:[2,"$","SR$"],STD:[0,"Db","Db"],SYP:[0,"\u00a3","SY\u00a3"],SZL:[2,"SZL","SZL"],TJS:[2,"Som","TJS"],TND:[3,"din","DT"],TOP:[2,"T$","T$"],TTD:[2,"$","TT$"],UGX:[0,"UGX","UGX"],UZS:[0,"so\u02bcm","UZS"],VEF:[2,"Bs","Bs"],VUV:[0,"VUV","VUV"],WST:[2,"WST","WST"],XAF:[0,"FCFA","FCFA"],XCD:[2,"$","EC$"],XOF:[0,"CFA","CFA"],XPF:[0,"FCFP","FCFP"],ZMK:[0,"ZMK","ZMK"]};goog.i18n.NumberFormatSymbols_af={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ZAR"};goog.i18n.NumberFormatSymbols_af_ZA=goog.i18n.NumberFormatSymbols_af;
+goog.i18n.NumberFormatSymbols_am={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ETB"};goog.i18n.NumberFormatSymbols_am_ET=goog.i18n.NumberFormatSymbols_am;
+goog.i18n.NumberFormatSymbols_ar={DECIMAL_SEP:"\u066b",GROUP_SEP:"\u066c",PERCENT:"\u066a",ZERO_DIGIT:"\u0660",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"\u0627\u0633",PERMILL:"\u0609",INFINITY:"\u221e",NAN:"\u0644\u064a\u0633\u00a0\u0631\u0642\u0645",DECIMAL_PATTERN:"#0.###;#0.###-",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#0.00;\u00a4\u00a0#0.00-",DEF_CURRENCY_CODE:"EGP"};goog.i18n.NumberFormatSymbols_ar_001=goog.i18n.NumberFormatSymbols_ar;
+goog.i18n.NumberFormatSymbols_ar_EG=goog.i18n.NumberFormatSymbols_ar;goog.i18n.NumberFormatSymbols_bg={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"BGN"};goog.i18n.NumberFormatSymbols_bg_BG=goog.i18n.NumberFormatSymbols_bg;
+goog.i18n.NumberFormatSymbols_bn={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"\u09e6",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u09b8\u0982\u0996\u09cd\u09af\u09be\u00a0\u09a8\u09be",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"#,##,##0.00\u00a4;(#,##,##0.00\u00a4)",DEF_CURRENCY_CODE:"BDT"};goog.i18n.NumberFormatSymbols_bn_BD=goog.i18n.NumberFormatSymbols_bn;
+goog.i18n.NumberFormatSymbols_br={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_br_FR=goog.i18n.NumberFormatSymbols_br;
+goog.i18n.NumberFormatSymbols_ca={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_ca_AD=goog.i18n.NumberFormatSymbols_ca;goog.i18n.NumberFormatSymbols_ca_ES=goog.i18n.NumberFormatSymbols_ca;
+goog.i18n.NumberFormatSymbols_chr={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"USD"};goog.i18n.NumberFormatSymbols_chr_US=goog.i18n.NumberFormatSymbols_chr;
+goog.i18n.NumberFormatSymbols_cs={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"CZK"};goog.i18n.NumberFormatSymbols_cs_CZ=goog.i18n.NumberFormatSymbols_cs;
+goog.i18n.NumberFormatSymbols_cy={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"GBP"};goog.i18n.NumberFormatSymbols_cy_GB=goog.i18n.NumberFormatSymbols_cy;
+goog.i18n.NumberFormatSymbols_da={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"DKK"};goog.i18n.NumberFormatSymbols_da_DK=goog.i18n.NumberFormatSymbols_da;
+goog.i18n.NumberFormatSymbols_de={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};
+goog.i18n.NumberFormatSymbols_de_AT={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_de_BE=goog.i18n.NumberFormatSymbols_de;
+goog.i18n.NumberFormatSymbols_de_CH={DECIMAL_SEP:".",GROUP_SEP:"'",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00;\u00a4-#,##0.00",DEF_CURRENCY_CODE:"CHF"};goog.i18n.NumberFormatSymbols_de_DE=goog.i18n.NumberFormatSymbols_de;goog.i18n.NumberFormatSymbols_de_LU=goog.i18n.NumberFormatSymbols_de;
+goog.i18n.NumberFormatSymbols_el={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"e",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"[#E0]",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_el_GR=goog.i18n.NumberFormatSymbols_el;
+goog.i18n.NumberFormatSymbols_en={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"USD"};goog.i18n.NumberFormatSymbols_en_AS=goog.i18n.NumberFormatSymbols_en;
+goog.i18n.NumberFormatSymbols_en_AU={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"AUD"};goog.i18n.NumberFormatSymbols_en_Dsrt_US=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_FM=goog.i18n.NumberFormatSymbols_en;
+goog.i18n.NumberFormatSymbols_en_GB={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"GBP"};goog.i18n.NumberFormatSymbols_en_GU=goog.i18n.NumberFormatSymbols_en;
+goog.i18n.NumberFormatSymbols_en_IE={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};
+goog.i18n.NumberFormatSymbols_en_IN={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_en_MH=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_MP=goog.i18n.NumberFormatSymbols_en;
+goog.i18n.NumberFormatSymbols_en_PR=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_PW=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_SG={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"SGD"};
+goog.i18n.NumberFormatSymbols_en_TC=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_UM=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_US=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_VG=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_VI=goog.i18n.NumberFormatSymbols_en;
+goog.i18n.NumberFormatSymbols_en_ZA={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ZAR"};
+goog.i18n.NumberFormatSymbols_es={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};
+goog.i18n.NumberFormatSymbols_es_419={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"MXN"};goog.i18n.NumberFormatSymbols_es_EA=goog.i18n.NumberFormatSymbols_es;goog.i18n.NumberFormatSymbols_es_ES=goog.i18n.NumberFormatSymbols_es;goog.i18n.NumberFormatSymbols_es_IC=goog.i18n.NumberFormatSymbols_es;
+goog.i18n.NumberFormatSymbols_et={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_et_EE=goog.i18n.NumberFormatSymbols_et;
+goog.i18n.NumberFormatSymbols_eu={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"%\u00a0#,##0",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_eu_ES=goog.i18n.NumberFormatSymbols_eu;
+goog.i18n.NumberFormatSymbols_fa={DECIMAL_SEP:"\u066b",GROUP_SEP:"\u066c",PERCENT:"\u066a",ZERO_DIGIT:"\u06f0",PLUS_SIGN:"+",MINUS_SIGN:"\u2212",EXP_SYMBOL:"\u00d7\u06f1\u06f0^",PERMILL:"\u0609",INFINITY:"\u221e",NAN:"\u0646\u0627\u0639\u062f\u062f",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u200e\u00a4#,##0.00;\u200e(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"IRR"};goog.i18n.NumberFormatSymbols_fa_IR=goog.i18n.NumberFormatSymbols_fa;
+goog.i18n.NumberFormatSymbols_fi={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"ep\u00e4luku",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_fi_FI=goog.i18n.NumberFormatSymbols_fi;
+goog.i18n.NumberFormatSymbols_fil={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"PHP"};goog.i18n.NumberFormatSymbols_fil_PH=goog.i18n.NumberFormatSymbols_fil;
+goog.i18n.NumberFormatSymbols_fr={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_fr_BL=goog.i18n.NumberFormatSymbols_fr;
+goog.i18n.NumberFormatSymbols_fr_CA={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"CAD"};goog.i18n.NumberFormatSymbols_fr_FR=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_GF=goog.i18n.NumberFormatSymbols_fr;
+goog.i18n.NumberFormatSymbols_fr_GP=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_MC=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_MF=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_MQ=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_RE=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_YT=goog.i18n.NumberFormatSymbols_fr;
+goog.i18n.NumberFormatSymbols_gl={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_gl_ES=goog.i18n.NumberFormatSymbols_gl;
+goog.i18n.NumberFormatSymbols_gsw={DECIMAL_SEP:".",GROUP_SEP:"\u2019",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"\u2212",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"CHF"};goog.i18n.NumberFormatSymbols_gsw_CH=goog.i18n.NumberFormatSymbols_gsw;
+goog.i18n.NumberFormatSymbols_gu={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_gu_IN=goog.i18n.NumberFormatSymbols_gu;
+goog.i18n.NumberFormatSymbols_haw={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"USD"};goog.i18n.NumberFormatSymbols_haw_US=goog.i18n.NumberFormatSymbols_haw;
+goog.i18n.NumberFormatSymbols_he={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"ILS"};goog.i18n.NumberFormatSymbols_he_IL=goog.i18n.NumberFormatSymbols_he;
+goog.i18n.NumberFormatSymbols_hi={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_hi_IN=goog.i18n.NumberFormatSymbols_hi;
+goog.i18n.NumberFormatSymbols_hr={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"HRK"};goog.i18n.NumberFormatSymbols_hr_HR=goog.i18n.NumberFormatSymbols_hr;
+goog.i18n.NumberFormatSymbols_hu={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"HUF"};goog.i18n.NumberFormatSymbols_hu_HU=goog.i18n.NumberFormatSymbols_hu;
+goog.i18n.NumberFormatSymbols_id={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"IDR"};goog.i18n.NumberFormatSymbols_id_ID=goog.i18n.NumberFormatSymbols_id;
+goog.i18n.NumberFormatSymbols_in={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"IDR"};
+goog.i18n.NumberFormatSymbols_is={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ISK"};goog.i18n.NumberFormatSymbols_is_IS=goog.i18n.NumberFormatSymbols_is;
+goog.i18n.NumberFormatSymbols_it={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_it_IT=goog.i18n.NumberFormatSymbols_it;goog.i18n.NumberFormatSymbols_it_SM=goog.i18n.NumberFormatSymbols_it;
+goog.i18n.NumberFormatSymbols_iw={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"ILS"};
+goog.i18n.NumberFormatSymbols_ja={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"JPY"};goog.i18n.NumberFormatSymbols_ja_JP=goog.i18n.NumberFormatSymbols_ja;
+goog.i18n.NumberFormatSymbols_kn={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"\u0c88",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_kn_IN=goog.i18n.NumberFormatSymbols_kn;
+goog.i18n.NumberFormatSymbols_ko={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"KRW"};goog.i18n.NumberFormatSymbols_ko_KR=goog.i18n.NumberFormatSymbols_ko;
+goog.i18n.NumberFormatSymbols_ln={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"CDF"};goog.i18n.NumberFormatSymbols_ln_CD=goog.i18n.NumberFormatSymbols_ln;
+goog.i18n.NumberFormatSymbols_lt={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"\u2013",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"LTL"};goog.i18n.NumberFormatSymbols_lt_LT=goog.i18n.NumberFormatSymbols_lt;
+goog.i18n.NumberFormatSymbols_lv={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"nav\u00a0skaitlis",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"LVL"};goog.i18n.NumberFormatSymbols_lv_LV=goog.i18n.NumberFormatSymbols_lv;
+goog.i18n.NumberFormatSymbols_ml={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"#,##,##0.00\u00a4",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_ml_IN=goog.i18n.NumberFormatSymbols_ml;
+goog.i18n.NumberFormatSymbols_mr={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"\u0966",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_mr_IN=goog.i18n.NumberFormatSymbols_mr;
+goog.i18n.NumberFormatSymbols_ms={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"MYR"};goog.i18n.NumberFormatSymbols_ms_Latn_MY=goog.i18n.NumberFormatSymbols_ms;
+goog.i18n.NumberFormatSymbols_mt={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_mt_MT=goog.i18n.NumberFormatSymbols_mt;
+goog.i18n.NumberFormatSymbols_nb={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"NOK"};goog.i18n.NumberFormatSymbols_nb_NO=goog.i18n.NumberFormatSymbols_nb;
+goog.i18n.NumberFormatSymbols_nl={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00;\u00a4\u00a0#,##0.00-",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_nl_NL=goog.i18n.NumberFormatSymbols_nl;
+goog.i18n.NumberFormatSymbols_no={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"NOK"};
+goog.i18n.NumberFormatSymbols_or={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_or_IN=goog.i18n.NumberFormatSymbols_or;
+goog.i18n.NumberFormatSymbols_pl={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"PLN"};goog.i18n.NumberFormatSymbols_pl_PL=goog.i18n.NumberFormatSymbols_pl;
+goog.i18n.NumberFormatSymbols_pt={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"BRL"};goog.i18n.NumberFormatSymbols_pt_BR=goog.i18n.NumberFormatSymbols_pt;
+goog.i18n.NumberFormatSymbols_pt_PT={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};
+goog.i18n.NumberFormatSymbols_ro={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"RON"};goog.i18n.NumberFormatSymbols_ro_RO=goog.i18n.NumberFormatSymbols_ro;
+goog.i18n.NumberFormatSymbols_ru={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u043d\u0435\u00a0\u0447\u0438\u0441\u043b\u043e",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"RUB"};goog.i18n.NumberFormatSymbols_ru_RU=goog.i18n.NumberFormatSymbols_ru;
+goog.i18n.NumberFormatSymbols_sk={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_sk_SK=goog.i18n.NumberFormatSymbols_sk;
+goog.i18n.NumberFormatSymbols_sl={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"e",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_sl_SI=goog.i18n.NumberFormatSymbols_sl;
+goog.i18n.NumberFormatSymbols_sq={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"ALL"};goog.i18n.NumberFormatSymbols_sq_AL=goog.i18n.NumberFormatSymbols_sq;
+goog.i18n.NumberFormatSymbols_sr={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"RSD"};goog.i18n.NumberFormatSymbols_sr_Cyrl_RS=goog.i18n.NumberFormatSymbols_sr;
+goog.i18n.NumberFormatSymbols_sv={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"\u2212",EXP_SYMBOL:"\u00d710^",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u00a4\u00a4\u00a4",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"SEK"};goog.i18n.NumberFormatSymbols_sv_SE=goog.i18n.NumberFormatSymbols_sv;
+goog.i18n.NumberFormatSymbols_sw={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"TZS"};goog.i18n.NumberFormatSymbols_sw_TZ=goog.i18n.NumberFormatSymbols_sw;
+goog.i18n.NumberFormatSymbols_ta={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_ta_IN=goog.i18n.NumberFormatSymbols_ta;
+goog.i18n.NumberFormatSymbols_te={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_te_IN=goog.i18n.NumberFormatSymbols_te;
+goog.i18n.NumberFormatSymbols_th={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"THB"};goog.i18n.NumberFormatSymbols_th_TH=goog.i18n.NumberFormatSymbols_th;
+goog.i18n.NumberFormatSymbols_tl={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"PHP"};
+goog.i18n.NumberFormatSymbols_tr={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"%#,##0",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"TRY"};goog.i18n.NumberFormatSymbols_tr_TR=goog.i18n.NumberFormatSymbols_tr;
+goog.i18n.NumberFormatSymbols_uk={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"\u0415",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u041d\u0435\u00a0\u0447\u0438\u0441\u043b\u043e",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"UAH"};goog.i18n.NumberFormatSymbols_uk_UA=goog.i18n.NumberFormatSymbols_uk;
+goog.i18n.NumberFormatSymbols_ur={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"PKR"};goog.i18n.NumberFormatSymbols_ur_PK=goog.i18n.NumberFormatSymbols_ur;
+goog.i18n.NumberFormatSymbols_vi={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"VND"};goog.i18n.NumberFormatSymbols_vi_VN=goog.i18n.NumberFormatSymbols_vi;
+goog.i18n.NumberFormatSymbols_zh={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"CNY"};goog.i18n.NumberFormatSymbols_zh_CN=goog.i18n.NumberFormatSymbols_zh;
+goog.i18n.NumberFormatSymbols_zh_HK={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u975e\u6578\u503c",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"HKD"};goog.i18n.NumberFormatSymbols_zh_Hans_CN=goog.i18n.NumberFormatSymbols_zh;
+goog.i18n.NumberFormatSymbols_zh_TW={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u975e\u6578\u503c",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"TWD"};
+goog.i18n.NumberFormatSymbols_zu={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"I-NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ZAR"};goog.i18n.NumberFormatSymbols_zu_ZA=goog.i18n.NumberFormatSymbols_zu;goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;
+"af"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_af);if("af_ZA"==goog.LOCALE||"af-ZA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_af;"am"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_am);if("am_ET"==goog.LOCALE||"am-ET"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_am;"ar"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ar);
+if("ar_001"==goog.LOCALE||"ar-001"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ar;if("ar_EG"==goog.LOCALE||"ar-EG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ar;"bg"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bg);if("bg_BG"==goog.LOCALE||"bg-BG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bg;"bn"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bn);
+if("bn_BD"==goog.LOCALE||"bn-BD"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bn;"br"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_br);if("br_FR"==goog.LOCALE||"br-FR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_br;"ca"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ca);if("ca_AD"==goog.LOCALE||"ca-AD"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ca;
+if("ca_ES"==goog.LOCALE||"ca-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ca;"chr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_chr);if("chr_US"==goog.LOCALE||"chr-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_chr;"cs"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cs);if("cs_CZ"==goog.LOCALE||"cs-CZ"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cs;
+"cy"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cy);if("cy_GB"==goog.LOCALE||"cy-GB"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cy;"da"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_da);if("da_DK"==goog.LOCALE||"da-DK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_da;"de"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de);
+if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de_AT;if("de_BE"==goog.LOCALE||"de-BE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de;if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de_CH;if("de_DE"==goog.LOCALE||"de-DE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de;
+if("de_LU"==goog.LOCALE||"de-LU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de;"el"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_el);if("el_GR"==goog.LOCALE||"el-GR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_el;"en"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en);if("en_AS"==goog.LOCALE||"en-AS"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;
+if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_AU;if("en_Dsrt_US"==goog.LOCALE||"en-Dsrt-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_FM"==goog.LOCALE||"en-FM"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_GB;
+if("en_GU"==goog.LOCALE||"en-GU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_IE;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_IN;if("en_MH"==goog.LOCALE||"en-MH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;
+if("en_MP"==goog.LOCALE||"en-MP"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_PR"==goog.LOCALE||"en-PR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_PW"==goog.LOCALE||"en-PW"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_SG;
+if("en_TC"==goog.LOCALE||"en-TC"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_UM"==goog.LOCALE||"en-UM"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_VG"==goog.LOCALE||"en-VG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;
+if("en_VI"==goog.LOCALE||"en-VI"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_ZA;"es"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es_419;if("es_EA"==goog.LOCALE||"es-EA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es;
+if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es;if("es_IC"==goog.LOCALE||"es-IC"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es;"et"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_et);if("et_EE"==goog.LOCALE||"et-EE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_et;"eu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_eu);
+if("eu_ES"==goog.LOCALE||"eu-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_eu;"fa"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fa);if("fa_IR"==goog.LOCALE||"fa-IR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fa;"fi"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fi);if("fi_FI"==goog.LOCALE||"fi-FI"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fi;
+"fil"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fil);if("fil_PH"==goog.LOCALE||"fil-PH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fil;"fr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr);if("fr_BL"==goog.LOCALE||"fr-BL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr_CA;
+if("fr_FR"==goog.LOCALE||"fr-FR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_GF"==goog.LOCALE||"fr-GF"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_GP"==goog.LOCALE||"fr-GP"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_MC"==goog.LOCALE||"fr-MC"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;
+if("fr_MF"==goog.LOCALE||"fr-MF"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_MQ"==goog.LOCALE||"fr-MQ"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_RE"==goog.LOCALE||"fr-RE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_YT"==goog.LOCALE||"fr-YT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;"gl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gl);
+if("gl_ES"==goog.LOCALE||"gl-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gl;"gsw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gsw);if("gsw_CH"==goog.LOCALE||"gsw-CH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gsw;"gu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gu);if("gu_IN"==goog.LOCALE||"gu-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gu;
+"haw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_haw);if("haw_US"==goog.LOCALE||"haw-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_haw;"he"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_he);if("he_IL"==goog.LOCALE||"he-IL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_he;"hi"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hi);
+if("hi_IN"==goog.LOCALE||"hi-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hi;"hr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hr);if("hr_HR"==goog.LOCALE||"hr-HR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hr;"hu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hu);if("hu_HU"==goog.LOCALE||"hu-HU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hu;
+"id"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_id);if("id_ID"==goog.LOCALE||"id-ID"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_id;"in"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_in);"is"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_is);if("is_IS"==goog.LOCALE||"is-IS"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_is;
+"it"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_it);if("it_IT"==goog.LOCALE||"it-IT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_it;if("it_SM"==goog.LOCALE||"it-SM"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_it;"iw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_iw);"ja"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ja);
+if("ja_JP"==goog.LOCALE||"ja-JP"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ja;"kn"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_kn);if("kn_IN"==goog.LOCALE||"kn-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_kn;"ko"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ko);if("ko_KR"==goog.LOCALE||"ko-KR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ko;
+"ln"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ln);if("ln_CD"==goog.LOCALE||"ln-CD"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ln;"lt"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lt);if("lt_LT"==goog.LOCALE||"lt-LT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lt;"lv"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lv);
+if("lv_LV"==goog.LOCALE||"lv-LV"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lv;"ml"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ml);if("ml_IN"==goog.LOCALE||"ml-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ml;"mr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mr);if("mr_IN"==goog.LOCALE||"mr-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mr;
+"ms"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ms);if("ms_Latn_MY"==goog.LOCALE||"ms-Latn-MY"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ms;"mt"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mt);if("mt_MT"==goog.LOCALE||"mt-MT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mt;"nb"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nb);
+if("nb_NO"==goog.LOCALE||"nb-NO"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nb;"nl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nl);if("nl_NL"==goog.LOCALE||"nl-NL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nl;"no"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_no);"or"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_or);
+if("or_IN"==goog.LOCALE||"or-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_or;"pl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pl);if("pl_PL"==goog.LOCALE||"pl-PL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pl;"pt"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pt);if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pt;
+if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pt_PT;"ro"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ro);if("ro_RO"==goog.LOCALE||"ro-RO"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ro;"ru"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ru);if("ru_RU"==goog.LOCALE||"ru-RU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ru;
+"sk"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sk);if("sk_SK"==goog.LOCALE||"sk-SK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sk;"sl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sl);if("sl_SI"==goog.LOCALE||"sl-SI"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sl;"sq"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sq);
+if("sq_AL"==goog.LOCALE||"sq-AL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sq;"sr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sr);if("sr_Cyrl_RS"==goog.LOCALE||"sr-Cyrl-RS"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sr;"sv"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sv);if("sv_SE"==goog.LOCALE||"sv-SE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sv;
+"sw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sw);if("sw_TZ"==goog.LOCALE||"sw-TZ"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sw;"ta"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ta);if("ta_IN"==goog.LOCALE||"ta-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ta;"te"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_te);
+if("te_IN"==goog.LOCALE||"te-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_te;"th"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_th);if("th_TH"==goog.LOCALE||"th-TH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_th;"tl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_tl);"tr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_tr);
+if("tr_TR"==goog.LOCALE||"tr-TR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_tr;"uk"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_uk);if("uk_UA"==goog.LOCALE||"uk-UA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_uk;"ur"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ur);if("ur_PK"==goog.LOCALE||"ur-PK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ur;
+"vi"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_vi);if("vi_VN"==goog.LOCALE||"vi-VN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_vi;"zh"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh);if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh_HK;
+if("zh_Hans_CN"==goog.LOCALE||"zh-Hans-CN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh;if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh_TW;"zu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zu);if("zu_ZA"==goog.LOCALE||"zu-ZA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zu;goog.i18n.NumberFormat=function(a,b,c){this.intlCurrencyCode_=b||goog.i18n.NumberFormatSymbols.DEF_CURRENCY_CODE;this.currencyStyle_=c||goog.i18n.NumberFormat.CurrencyStyle.LOCAL;this.maximumIntegerDigits_=40;this.minimumIntegerDigits_=1;this.significantDigits_=0;this.maximumFractionDigits_=3;this.minExponentDigits_=this.minimumFractionDigits_=0;this.showTrailingZeros_=this.useSignForPositiveExponent_=!1;this.positiveSuffix_=this.positivePrefix_="";this.negativePrefix_="-";this.negativeSuffix_="";
+this.multiplier_=1;this.groupingSize_=3;this.useExponentialNotation_=this.decimalSeparatorAlwaysShown_=!1;this.compactStyle_=goog.i18n.NumberFormat.CompactStyle.NONE;this.baseFormattingNumber_=null;"number"==typeof a?this.applyStandardPattern_(a):this.applyPattern_(a)};goog.i18n.NumberFormat.Format={DECIMAL:1,SCIENTIFIC:2,PERCENT:3,CURRENCY:4,COMPACT_SHORT:5,COMPACT_LONG:6};goog.i18n.NumberFormat.CurrencyStyle={LOCAL:0,PORTABLE:1,GLOBAL:2};goog.i18n.NumberFormat.CompactStyle={NONE:0,SHORT:1,LONG:2};
+goog.i18n.NumberFormat.enforceAsciiDigits_=!1;goog.i18n.NumberFormat.setEnforceAsciiDigits=function(a){goog.i18n.NumberFormat.enforceAsciiDigits_=a};goog.i18n.NumberFormat.isEnforceAsciiDigits=function(){return goog.i18n.NumberFormat.enforceAsciiDigits_};goog.i18n.NumberFormat.prototype.setMinimumFractionDigits=function(a){if(0<this.significantDigits_&&0<a)throw Error("Can't combine significant digits and minimum fraction digits");this.minimumFractionDigits_=a};
+goog.i18n.NumberFormat.prototype.setMaximumFractionDigits=function(a){this.maximumFractionDigits_=a};goog.i18n.NumberFormat.prototype.setSignificantDigits=function(a){if(0<this.minimumFractionDigits_&&0<=a)throw Error("Can't combine significant digits and minimum fraction digits");this.significantDigits_=a};
+goog.i18n.NumberFormat.prototype.applyPattern_=function(a){a.replace(/ /g,"\u00a0");var b=[0];this.positivePrefix_=this.parseAffix_(a,b);var c=b[0];this.parseTrunk_(a,b);c=b[0]-c;this.positiveSuffix_=this.parseAffix_(a,b);b[0]<a.length&&a.charAt(b[0])==goog.i18n.NumberFormat.PATTERN_SEPARATOR_?(b[0]++,this.negativePrefix_=this.parseAffix_(a,b),b[0]+=c,this.negativeSuffix_=this.parseAffix_(a,b)):(this.negativePrefix_=this.positivePrefix_+this.negativePrefix_,this.negativeSuffix_+=this.positiveSuffix_)};
+goog.i18n.NumberFormat.prototype.applyStandardPattern_=function(a){switch(a){case goog.i18n.NumberFormat.Format.DECIMAL:this.applyPattern_(goog.i18n.NumberFormatSymbols.DECIMAL_PATTERN);break;case goog.i18n.NumberFormat.Format.SCIENTIFIC:this.applyPattern_(goog.i18n.NumberFormatSymbols.SCIENTIFIC_PATTERN);break;case goog.i18n.NumberFormat.Format.PERCENT:this.applyPattern_(goog.i18n.NumberFormatSymbols.PERCENT_PATTERN);break;case goog.i18n.NumberFormat.Format.CURRENCY:this.applyPattern_(goog.i18n.currency.adjustPrecision(goog.i18n.NumberFormatSymbols.CURRENCY_PATTERN,
+this.intlCurrencyCode_));break;case goog.i18n.NumberFormat.Format.COMPACT_SHORT:this.applyCompactStyle_(goog.i18n.NumberFormat.CompactStyle.SHORT);break;case goog.i18n.NumberFormat.Format.COMPACT_LONG:this.applyCompactStyle_(goog.i18n.NumberFormat.CompactStyle.LONG);break;default:throw Error("Unsupported pattern type.");}};
+goog.i18n.NumberFormat.prototype.applyCompactStyle_=function(a){this.compactStyle_=a;this.applyPattern_(goog.i18n.NumberFormatSymbols.DECIMAL_PATTERN);this.setMinimumFractionDigits(0);this.setMaximumFractionDigits(2);this.setSignificantDigits(2)};
+goog.i18n.NumberFormat.prototype.parse=function(a,b){var c=b||[0];if(this.compactStyle_!=goog.i18n.NumberFormat.CompactStyle.NONE)throw Error("Parsing of compact numbers is unimplemented");var d=NaN;a=a.replace(/ /g,"\u00a0");var e=a.indexOf(this.positivePrefix_,c[0])==c[0],f=a.indexOf(this.negativePrefix_,c[0])==c[0];e&&f&&(this.positivePrefix_.length>this.negativePrefix_.length?f=!1:this.positivePrefix_.length<this.negativePrefix_.length&&(e=!1));e?c[0]+=this.positivePrefix_.length:f&&(c[0]+=this.negativePrefix_.length);
+a.indexOf(goog.i18n.NumberFormatSymbols.INFINITY,c[0])==c[0]?(c[0]+=goog.i18n.NumberFormatSymbols.INFINITY.length,d=Infinity):d=this.parseNumber_(a,c);if(e){if(a.indexOf(this.positiveSuffix_,c[0])!=c[0])return NaN;c[0]+=this.positiveSuffix_.length}else if(f){if(a.indexOf(this.negativeSuffix_,c[0])!=c[0])return NaN;c[0]+=this.negativeSuffix_.length}return f?-d:d};
+goog.i18n.NumberFormat.prototype.parseNumber_=function(a,b){var c=!1,d=!1,e=!1,f=1,g=goog.i18n.NumberFormatSymbols.DECIMAL_SEP,h=goog.i18n.NumberFormatSymbols.GROUP_SEP,k=goog.i18n.NumberFormatSymbols.EXP_SYMBOL;if(this.compactStyle_!=goog.i18n.NumberFormat.CompactStyle.NONE)throw Error("Parsing of compact style numbers is not implemented");for(var l="";b[0]<a.length;b[0]++){var m=a.charAt(b[0]),p=this.getDigit_(m);if(0<=p&&9>=p)l+=p,e=!0;else if(m==g.charAt(0)){if(c||d)break;l+=".";c=!0}else if(m==
+h.charAt(0)&&("\u00a0"!=h.charAt(0)||b[0]+1<a.length&&0<=this.getDigit_(a.charAt(b[0]+1)))){if(c||d)break}else if(m==k.charAt(0)){if(d)break;l+="E";d=!0}else if("+"==m||"-"==m)l+=m;else if(m==goog.i18n.NumberFormatSymbols.PERCENT.charAt(0)){if(1!=f)break;f=100;if(e){b[0]++;break}}else if(m==goog.i18n.NumberFormatSymbols.PERMILL.charAt(0)){if(1!=f)break;f=1E3;if(e){b[0]++;break}}else break}return parseFloat(l)/f};
+goog.i18n.NumberFormat.prototype.format=function(a){if(isNaN(a))return goog.i18n.NumberFormatSymbols.NAN;var b=[],c=goog.isNull(this.baseFormattingNumber_)?a:this.baseFormattingNumber_,c=this.getUnitAfterRounding_(c,a);a/=Math.pow(10,c.divisorBase);b.push(c.prefix);var d=0>a||0==a&&0>1/a;b.push(d?this.negativePrefix_:this.positivePrefix_);isFinite(a)?(a*=d?-1:1,a*=this.multiplier_,this.useExponentialNotation_?this.subformatExponential_(a,b):this.subformatFixed_(a,this.minimumIntegerDigits_,b)):b.push(goog.i18n.NumberFormatSymbols.INFINITY);
+b.push(d?this.negativeSuffix_:this.positiveSuffix_);b.push(c.suffix);return b.join("")};goog.i18n.NumberFormat.prototype.roundNumber_=function(a){var b=Math.pow(10,this.maximumFractionDigits_),c=0>=this.significantDigits_?Math.round(a*b):Math.floor(this.roundToSignificantDigits_(a*b,this.significantDigits_,this.maximumFractionDigits_));isFinite(c)?(a=Math.floor(c/b),b=Math.floor(c-a*b)):b=0;return{intValue:a,fracValue:b}};
+goog.i18n.NumberFormat.prototype.subformatFixed_=function(a,b,c){if(this.minimumFractionDigits_>this.maximumFractionDigits_)throw Error("Min value must be less than max value");a=this.roundNumber_(a);var d=Math.pow(10,this.maximumFractionDigits_),e=a.intValue,f=a.fracValue,g=0==e?0:this.intLog10_(e)+1,h=0<this.minimumFractionDigits_||0<f||this.showTrailingZeros_&&g<this.significantDigits_;a=this.minimumFractionDigits_;h&&(a=this.showTrailingZeros_&&0<this.significantDigits_?this.significantDigits_-
+g:this.minimumFractionDigits_);for(var k="",g=e;1E20<g;)k="0"+k,g=Math.round(g/10);var k=g+k,l=goog.i18n.NumberFormatSymbols.DECIMAL_SEP,m=goog.i18n.NumberFormatSymbols.GROUP_SEP,g=goog.i18n.NumberFormat.enforceAsciiDigits_?48:goog.i18n.NumberFormatSymbols.ZERO_DIGIT.charCodeAt(0),p=k.length;if(0<e||0<b){for(e=p;e<b;e++)c.push(String.fromCharCode(g));for(e=0;e<p;e++)c.push(String.fromCharCode(g+1*k.charAt(e))),1<p-e&&0<this.groupingSize_&&1==(p-e)%this.groupingSize_&&c.push(m)}else h||c.push(String.fromCharCode(g));
+(this.decimalSeparatorAlwaysShown_||h)&&c.push(l);b=""+(f+d);for(d=b.length;"0"==b.charAt(d-1)&&d>a+1;)d--;for(e=1;e<d;e++)c.push(String.fromCharCode(g+1*b.charAt(e)))};
+goog.i18n.NumberFormat.prototype.addExponentPart_=function(a,b){b.push(goog.i18n.NumberFormatSymbols.EXP_SYMBOL);0>a?(a=-a,b.push(goog.i18n.NumberFormatSymbols.MINUS_SIGN)):this.useSignForPositiveExponent_&&b.push(goog.i18n.NumberFormatSymbols.PLUS_SIGN);for(var c=""+a,d=goog.i18n.NumberFormat.enforceAsciiDigits_?"0":goog.i18n.NumberFormatSymbols.ZERO_DIGIT,e=c.length;e<this.minExponentDigits_;e++)b.push(d);b.push(c)};
+goog.i18n.NumberFormat.prototype.subformatExponential_=function(a,b){if(0==a)this.subformatFixed_(a,this.minimumIntegerDigits_,b),this.addExponentPart_(0,b);else{var c=goog.math.safeFloor(Math.log(a)/Math.log(10));a/=Math.pow(10,c);var d=this.minimumIntegerDigits_;if(1<this.maximumIntegerDigits_&&this.maximumIntegerDigits_>this.minimumIntegerDigits_){for(;0!=c%this.maximumIntegerDigits_;)a*=10,c--;d=1}else 1>this.minimumIntegerDigits_?(c++,a/=10):(c-=this.minimumIntegerDigits_-1,a*=Math.pow(10,this.minimumIntegerDigits_-
+1));this.subformatFixed_(a,d,b);this.addExponentPart_(c,b)}};goog.i18n.NumberFormat.prototype.getDigit_=function(a){a=a.charCodeAt(0);if(48<=a&&58>a)return a-48;var b=goog.i18n.NumberFormatSymbols.ZERO_DIGIT.charCodeAt(0);return b<=a&&a<b+10?a-b:-1};goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_="0";goog.i18n.NumberFormat.PATTERN_GROUPING_SEPARATOR_=",";goog.i18n.NumberFormat.PATTERN_DECIMAL_SEPARATOR_=".";goog.i18n.NumberFormat.PATTERN_PER_MILLE_="\u2030";goog.i18n.NumberFormat.PATTERN_PERCENT_="%";
+goog.i18n.NumberFormat.PATTERN_DIGIT_="#";goog.i18n.NumberFormat.PATTERN_SEPARATOR_=";";goog.i18n.NumberFormat.PATTERN_EXPONENT_="E";goog.i18n.NumberFormat.PATTERN_PLUS_="+";goog.i18n.NumberFormat.PATTERN_MINUS_="-";goog.i18n.NumberFormat.PATTERN_CURRENCY_SIGN_="\u00a4";goog.i18n.NumberFormat.QUOTE_="'";
+goog.i18n.NumberFormat.prototype.parseAffix_=function(a,b){for(var c="",d=!1,e=a.length;b[0]<e;b[0]++){var f=a.charAt(b[0]);if(f==goog.i18n.NumberFormat.QUOTE_)b[0]+1<e&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.QUOTE_?(b[0]++,c+="'"):d=!d;else if(d)c+=f;else switch(f){case goog.i18n.NumberFormat.PATTERN_DIGIT_:case goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_:case goog.i18n.NumberFormat.PATTERN_GROUPING_SEPARATOR_:case goog.i18n.NumberFormat.PATTERN_DECIMAL_SEPARATOR_:case goog.i18n.NumberFormat.PATTERN_SEPARATOR_:return c;
+case goog.i18n.NumberFormat.PATTERN_CURRENCY_SIGN_:if(b[0]+1<e&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.PATTERN_CURRENCY_SIGN_)b[0]++,c+=this.intlCurrencyCode_;else switch(this.currencyStyle_){case goog.i18n.NumberFormat.CurrencyStyle.LOCAL:c+=goog.i18n.currency.getLocalCurrencySign(this.intlCurrencyCode_);break;case goog.i18n.NumberFormat.CurrencyStyle.GLOBAL:c+=goog.i18n.currency.getGlobalCurrencySign(this.intlCurrencyCode_);break;case goog.i18n.NumberFormat.CurrencyStyle.PORTABLE:c+=goog.i18n.currency.getPortableCurrencySign(this.intlCurrencyCode_)}break;
+case goog.i18n.NumberFormat.PATTERN_PERCENT_:if(1!=this.multiplier_)throw Error("Too many percent/permill");this.multiplier_=100;c+=goog.i18n.NumberFormatSymbols.PERCENT;break;case goog.i18n.NumberFormat.PATTERN_PER_MILLE_:if(1!=this.multiplier_)throw Error("Too many percent/permill");this.multiplier_=1E3;c+=goog.i18n.NumberFormatSymbols.PERMILL;break;default:c+=f}}return c};
+goog.i18n.NumberFormat.prototype.parseTrunk_=function(a,b){for(var c=-1,d=0,e=0,f=0,g=-1,h=a.length,k=!0;b[0]<h&&k;b[0]++){var l=a.charAt(b[0]);switch(l){case goog.i18n.NumberFormat.PATTERN_DIGIT_:0<e?f++:d++;0<=g&&0>c&&g++;break;case goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_:if(0<f)throw Error('Unexpected "0" in pattern "'+a+'"');e++;0<=g&&0>c&&g++;break;case goog.i18n.NumberFormat.PATTERN_GROUPING_SEPARATOR_:g=0;break;case goog.i18n.NumberFormat.PATTERN_DECIMAL_SEPARATOR_:if(0<=c)throw Error('Multiple decimal separators in pattern "'+
+a+'"');c=d+e+f;break;case goog.i18n.NumberFormat.PATTERN_EXPONENT_:if(this.useExponentialNotation_)throw Error('Multiple exponential symbols in pattern "'+a+'"');this.useExponentialNotation_=!0;this.minExponentDigits_=0;b[0]+1<h&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.PATTERN_PLUS_&&(b[0]++,this.useSignForPositiveExponent_=!0);for(;b[0]+1<h&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_;)b[0]++,this.minExponentDigits_++;if(1>d+e||1>this.minExponentDigits_)throw Error('Malformed exponential pattern "'+
+a+'"');k=!1;break;default:b[0]--,k=!1}}0==e&&0<d&&0<=c&&(e=c,0==e&&e++,f=d-e,d=e-1,e=1);if(0>c&&0<f||0<=c&&(c<d||c>d+e)||0==g)throw Error('Malformed pattern "'+a+'"');f=d+e+f;this.maximumFractionDigits_=0<=c?f-c:0;0<=c&&(this.minimumFractionDigits_=d+e-c,0>this.minimumFractionDigits_&&(this.minimumFractionDigits_=0));e=0<=c?c:f;this.minimumIntegerDigits_=e-d;this.useExponentialNotation_&&(this.maximumIntegerDigits_=d+this.minimumIntegerDigits_,0==this.maximumFractionDigits_&&0==this.minimumIntegerDigits_&&
+(this.minimumIntegerDigits_=1));this.groupingSize_=Math.max(0,g);this.decimalSeparatorAlwaysShown_=0==c||c==f};goog.i18n.NumberFormat.NULL_UNIT_={prefix:"",suffix:"",divisorBase:0};
+goog.i18n.NumberFormat.prototype.getUnitFor_=function(a,b){var c=this.compactStyle_==goog.i18n.NumberFormat.CompactStyle.SHORT?goog.i18n.CompactNumberFormatSymbols.COMPACT_DECIMAL_SHORT_PATTERN:goog.i18n.CompactNumberFormatSymbols.COMPACT_DECIMAL_LONG_PATTERN;if(3>a)return goog.i18n.NumberFormat.NULL_UNIT_;a=Math.min(14,a);c=c[Math.pow(10,a)];if(!c)return goog.i18n.NumberFormat.NULL_UNIT_;c=c[b];return c&&"0"!=c?(c=/([^0]*)(0+)(.*)/.exec(c))?{prefix:c[1],suffix:c[3],divisorBase:a-(c[2].length-1)}:
+goog.i18n.NumberFormat.NULL_UNIT_:goog.i18n.NumberFormat.NULL_UNIT_};
+goog.i18n.NumberFormat.prototype.getUnitAfterRounding_=function(a,b){if(this.compactStyle_==goog.i18n.NumberFormat.CompactStyle.NONE)return goog.i18n.NumberFormat.NULL_UNIT_;a=Math.abs(a);b=Math.abs(b);var c=this.pluralForm_(a),d=1>=a?0:this.intLog10_(a),c=this.getUnitFor_(d,c).divisorBase,d=b/Math.pow(10,c),d=this.roundNumber_(d),e=a/Math.pow(10,c),e=this.roundNumber_(e),d=this.pluralForm_(d.intValue+d.fracValue);return this.getUnitFor_(c+this.intLog10_(e.intValue),d)};
+goog.i18n.NumberFormat.prototype.intLog10_=function(a){for(var b=0;1<=(a/=10);)b++;return b};goog.i18n.NumberFormat.prototype.roundToSignificantDigits_=function(a,b,c){if(!a)return a;var d=this.intLog10_(a);b=b-d-1;if(b<-c)return c=Math.pow(10,c),Math.round(a/c)*c;c=Math.pow(10,b);a=Math.round(a*c);return a/c};goog.i18n.NumberFormat.prototype.pluralForm_=function(){return"other"};goog.i18n.ordinalRules={};goog.i18n.ordinalRules.Keyword={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};goog.i18n.ordinalRules.defaultSelect_=function(){return goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.frSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.huSelect_=function(a){return 1==a||5==a?goog.i18n.ordinalRules.Keyword.ONE:goog.i18n.ordinalRules.Keyword.OTHER};
+goog.i18n.ordinalRules.svSelect_=function(a){return 1!=a%10&&2!=a%10||11==a%100||12==a%100?goog.i18n.ordinalRules.Keyword.OTHER:goog.i18n.ordinalRules.Keyword.ONE};goog.i18n.ordinalRules.enSelect_=function(a){return 1==a%10&&11!=a%100?goog.i18n.ordinalRules.Keyword.ONE:2==a%10&&12!=a%100?goog.i18n.ordinalRules.Keyword.TWO:3==a%10&&13!=a%100?goog.i18n.ordinalRules.Keyword.FEW:goog.i18n.ordinalRules.Keyword.OTHER};
+goog.i18n.ordinalRules.itSelect_=function(a){return 11==a||8==a||80==a||800==a?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.caSelect_=function(a){return 1==a||3==a?goog.i18n.ordinalRules.Keyword.ONE:2==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:goog.i18n.ordinalRules.Keyword.OTHER};
+goog.i18n.ordinalRules.mrSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:2==a||3==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.guSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:2==a||3==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:6==a?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER};
+goog.i18n.ordinalRules.bnSelect_=function(a){return 1==a||5==a||7==a||8==a||9==a||10==a?goog.i18n.ordinalRules.Keyword.ONE:2==a||3==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:6==a?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER};
+goog.i18n.ordinalRules.zuSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:a==(a|0)&&2<=a&&9>=a?goog.i18n.ordinalRules.Keyword.FEW:a==(a|0)&&(10<=a&&19>=a||100<=a&&199>=a||1E3<=a&&1999>=a)?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;"af"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"am"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"ar"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"bg"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"bn"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.bnSelect_);"br"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ca"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.caSelect_);"chr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"cs"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"cy"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"da"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"de"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;
+if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"el"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"en"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_);if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;
+if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;
+if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;"es"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"et"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"eu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"fa"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"fi"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"fil"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);"fr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);
+if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_;"gl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"gsw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"gu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.guSelect_);"haw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"he"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"hi"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.guSelect_);"hr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"hu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.huSelect_);"id"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"in"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"is"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"it"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.itSelect_);"iw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ja"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"kn"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ko"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"ln"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"lt"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"lv"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ml"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"mr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.mrSelect_);"ms"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);
+"mt"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"nb"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"nl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"no"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"or"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"pl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"pt"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"ro"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);"ru"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"sk"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sq"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sv"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.svSelect_);"sw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"ta"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"te"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"th"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"tl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"tr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"uk"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"ur"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"vi"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);"zh"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;
+if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"zu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.zuSelect_);goog.i18n.pluralRules={};goog.i18n.pluralRules.Keyword={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};goog.i18n.pluralRules.defaultSelect_=function(){return goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.arSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:a==(a|0)&&3<=a%100&&10>=a%100?goog.i18n.pluralRules.Keyword.FEW:a==(a|0)&&11<=a%100&&99>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.heSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:0!=a&&0==a%10?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.enSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.filSelect_=function(a){return 0==a||1==a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.frSelect_=function(a){return 0<=a&&2>=a&&2!=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.lvSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a%10&&11!=a%100?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.iuSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.gaSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:a==(a|0)&&3<=a&&6>=a?goog.i18n.pluralRules.Keyword.FEW:a==(a|0)&&7<=a&&10>=a?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.roSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:0==a||1!=a&&a==(a|0)&&1<=a%100&&19>=a%100?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.ltSelect_=function(a){return 1==a%10&&(11>a%100||19<a%100)?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a%10&&9>=a%10&&(11>a%100||19<a%100)?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.beSelect_=function(a){return 1==a%10&&11!=a%100?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a%10&&4>=a%10&&(12>a%100||14<a%100)?goog.i18n.pluralRules.Keyword.FEW:0==a%10||a==(a|0)&&5<=a%10&&9>=a%10||a==(a|0)&&11<=a%100&&14>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.csSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a&&4>=a?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.plSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a%10&&4>=a%10&&(12>a%100||14<a%100)?goog.i18n.pluralRules.Keyword.FEW:1!=a&&(0==a%10||1==a%10)||a==(a|0)&&5<=a%10&&9>=a%10||a==(a|0)&&12<=a%100&&14>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.slSelect_=function(a){return 1==a%100?goog.i18n.pluralRules.Keyword.ONE:2==a%100?goog.i18n.pluralRules.Keyword.TWO:3==a%100||4==a%100?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.mtSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:0==a||a==(a|0)&&2<=a%100&&10>=a%100?goog.i18n.pluralRules.Keyword.FEW:a==(a|0)&&11<=a%100&&19>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.mkSelect_=function(a){return 1==a%10&&11!=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.cySelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:3==a?goog.i18n.pluralRules.Keyword.FEW:6==a?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.lagSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:0<=a&&2>=a&&0!=a&&2!=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.shiSelect_=function(a){return 0<=a&&1>=a?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a&&10>=a?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.brSelect_=function(a){return 1==a%10&&11!=a%100&&71!=a%100&&91!=a%100?goog.i18n.pluralRules.Keyword.ONE:2==a%10&&12!=a%100&&72!=a%100&&92!=a%100?goog.i18n.pluralRules.Keyword.TWO:(3==a%10||4==a%10||9==a%10)&&(10>a%100||19<a%100)&&(70>a%100||79<a%100)&&(90>a%100||99<a%100)?goog.i18n.pluralRules.Keyword.FEW:0!=a&&0==a%1E6?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.kshSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.tzmSelect_=function(a){return 0==a||1==a||a==(a|0)&&11<=a&&99>=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.gvSelect_=function(a){return 1==a%10||2==a%10||0==a%20?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.gdSelect_=function(a){return 1==a||11==a?goog.i18n.pluralRules.Keyword.ONE:2==a||12==a?goog.i18n.pluralRules.Keyword.TWO:a==(a|0)&&(3<=a&&10>=a||13<=a&&19>=a)?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"af"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"am"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);
+"ar"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.arSelect_);"bg"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"bn"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"br"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.brSelect_);"ca"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"chr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);
+"cs"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.csSelect_);"cy"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.cySelect_);"da"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"de"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;
+if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"el"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"en"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;
+if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;
+if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"es"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"et"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);
+"eu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"fa"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"fi"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"fil"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);"fr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.frSelect_);if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.frSelect_;
+"gl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"gsw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"gu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"haw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"he"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.heSelect_);"hi"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);
+"hr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"hu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"id"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"in"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"is"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"it"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);
+"iw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.heSelect_);"ja"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"kn"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"ko"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"ln"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);"lt"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.ltSelect_);
+"lv"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.lvSelect_);"ml"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"mr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"ms"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"mt"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.mtSelect_);"nb"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);
+"nl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"no"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"or"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"pl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.plSelect_);"pt"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;
+if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"ro"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.roSelect_);"ru"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"sk"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.csSelect_);"sl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.slSelect_);"sq"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);
+"sr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"sv"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"sw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"ta"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"te"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"th"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);
+"tl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);"tr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"uk"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"ur"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"vi"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"zh"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);
+if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_;if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_;"zu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);goog.i18n.MessageFormat=function(a){this.literals_=[];this.parsedPattern_=[];this.numberFormatter_=new goog.i18n.NumberFormat(goog.i18n.NumberFormat.Format.DECIMAL);this.parsePattern_(a)};goog.i18n.MessageFormat.LITERAL_PLACEHOLDER_="\ufddf_";goog.i18n.MessageFormat.Element_={STRING:0,BLOCK:1};goog.i18n.MessageFormat.BlockType_={PLURAL:0,ORDINAL:1,SELECT:2,SIMPLE:3,STRING:4,UNKNOWN:5};goog.i18n.MessageFormat.OTHER_="other";goog.i18n.MessageFormat.REGEX_LITERAL_=/'([{}#].*?)'/g;
+goog.i18n.MessageFormat.REGEX_DOUBLE_APOSTROPHE_=/''/g;goog.i18n.MessageFormat.prototype.format=function(a){return this.format_(a,!1)};goog.i18n.MessageFormat.prototype.format_=function(a,b){if(0==this.parsedPattern_.length)return"";var c=[];this.formatBlock_(this.parsedPattern_,a,b,c);c=c.join("");for(b||goog.asserts.assert(-1==c.search("#"),"Not all # were replaced.");0<this.literals_.length;)c=c.replace(this.buildPlaceholder_(this.literals_),this.literals_.pop());return c};
+goog.i18n.MessageFormat.prototype.formatBlock_=function(a,b,c,d){for(var e=0;e<a.length;e++)switch(a[e].type){case goog.i18n.MessageFormat.BlockType_.STRING:d.push(a[e].value);break;case goog.i18n.MessageFormat.BlockType_.SIMPLE:var f=a[e].value;this.formatSimplePlaceholder_(f,b,d);break;case goog.i18n.MessageFormat.BlockType_.SELECT:f=a[e].value;this.formatSelectBlock_(f,b,c,d);break;case goog.i18n.MessageFormat.BlockType_.PLURAL:f=a[e].value;this.formatPluralOrdinalBlock_(f,b,goog.i18n.pluralRules.select,
+c,d);break;case goog.i18n.MessageFormat.BlockType_.ORDINAL:f=a[e].value;this.formatPluralOrdinalBlock_(f,b,goog.i18n.ordinalRules.select,c,d);break;default:goog.asserts.fail("Unrecognized block type.")}};goog.i18n.MessageFormat.prototype.formatSimplePlaceholder_=function(a,b,c){b=b[a];goog.isDef(b)?(this.literals_.push(b),c.push(this.buildPlaceholder_(this.literals_))):c.push("Undefined parameter - "+a)};
+goog.i18n.MessageFormat.prototype.formatSelectBlock_=function(a,b,c,d){var e=a.argumentIndex;goog.isDef(b[e])?(e=a[b[e]],goog.isDef(e)||(e=a[goog.i18n.MessageFormat.OTHER_],goog.asserts.assertArray(e,"Invalid option or missing other option for select block.")),this.formatBlock_(e,b,c,d)):d.push("Undefined parameter - "+e)};
+goog.i18n.MessageFormat.prototype.formatPluralOrdinalBlock_=function(a,b,c,d,e){var f=a.argumentIndex,g=a.argumentOffset,h=+b[f];isNaN(h)?e.push("Undefined or invalid parameter - "+f):(g=h-g,f=a[b[f]],goog.isDef(f)||(goog.asserts.assert(0<=g,"Argument index smaller than offset."),c=c(g),goog.asserts.assertString(c,"Invalid plural key."),f=a[c],goog.isDef(f)||(f=a[goog.i18n.MessageFormat.OTHER_]),goog.asserts.assertArray(f,"Invalid option or missing other option for plural block.")),a=[],this.formatBlock_(f,
+b,d,a),b=a.join(""),goog.asserts.assertString(b,"Empty block in plural."),d?e.push(b):(d=this.numberFormatter_.format(g),e.push(b.replace(/#/g,d))))};goog.i18n.MessageFormat.prototype.parsePattern_=function(a){a&&(a=this.insertPlaceholders_(a),this.parsedPattern_=this.parseBlock_(a))};
+goog.i18n.MessageFormat.prototype.insertPlaceholders_=function(a){var b=this.literals_,c=goog.bind(this.buildPlaceholder_,this);a=a.replace(goog.i18n.MessageFormat.REGEX_DOUBLE_APOSTROPHE_,function(){b.push("'");return c(b)});return a=a.replace(goog.i18n.MessageFormat.REGEX_LITERAL_,function(a,e){b.push(e);return c(b)})};
+goog.i18n.MessageFormat.prototype.extractParts_=function(a){var b=0,c=[],d=[],e=/[{}]/g;e.lastIndex=0;for(var f;f=e.exec(a);){var g=f.index;"}"==f[0]?(f=c.pop(),goog.asserts.assert(goog.isDef(f)&&"{"==f,"No matching { for }."),0==c.length&&(f={},f.type=goog.i18n.MessageFormat.Element_.BLOCK,f.value=a.substring(b,g),d.push(f),b=g+1)):(0==c.length&&(b=a.substring(b,g),""!=b&&d.push({type:goog.i18n.MessageFormat.Element_.STRING,value:b}),b=g+1),c.push("{"))}goog.asserts.assert(0==c.length,"There are mismatched { or } in the pattern.");
+b=a.substring(b);""!=b&&d.push({type:goog.i18n.MessageFormat.Element_.STRING,value:b});return d};goog.i18n.MessageFormat.PLURAL_BLOCK_RE_=/^\s*(\w+)\s*,\s*plural\s*,(?:\s*offset:(\d+))?/;goog.i18n.MessageFormat.ORDINAL_BLOCK_RE_=/^\s*(\w+)\s*,\s*selectordinal\s*,/;goog.i18n.MessageFormat.SELECT_BLOCK_RE_=/^\s*(\w+)\s*,\s*select\s*,/;
+goog.i18n.MessageFormat.prototype.parseBlockType_=function(a){return goog.i18n.MessageFormat.PLURAL_BLOCK_RE_.test(a)?goog.i18n.MessageFormat.BlockType_.PLURAL:goog.i18n.MessageFormat.ORDINAL_BLOCK_RE_.test(a)?goog.i18n.MessageFormat.BlockType_.ORDINAL:goog.i18n.MessageFormat.SELECT_BLOCK_RE_.test(a)?goog.i18n.MessageFormat.BlockType_.SELECT:/^\s*\w+\s*/.test(a)?goog.i18n.MessageFormat.BlockType_.SIMPLE:goog.i18n.MessageFormat.BlockType_.UNKNOWN};
+goog.i18n.MessageFormat.prototype.parseBlock_=function(a){var b=[];a=this.extractParts_(a);for(var c=0;c<a.length;c++){var d={};if(goog.i18n.MessageFormat.Element_.STRING==a[c].type)d.type=goog.i18n.MessageFormat.BlockType_.STRING,d.value=a[c].value;else if(goog.i18n.MessageFormat.Element_.BLOCK==a[c].type){var e=this.parseBlockType_(a[c].value);switch(e){case goog.i18n.MessageFormat.BlockType_.SELECT:d.type=goog.i18n.MessageFormat.BlockType_.SELECT;d.value=this.parseSelectBlock_(a[c].value);break;
+case goog.i18n.MessageFormat.BlockType_.PLURAL:d.type=goog.i18n.MessageFormat.BlockType_.PLURAL;d.value=this.parsePluralBlock_(a[c].value);break;case goog.i18n.MessageFormat.BlockType_.ORDINAL:d.type=goog.i18n.MessageFormat.BlockType_.ORDINAL;d.value=this.parseOrdinalBlock_(a[c].value);break;case goog.i18n.MessageFormat.BlockType_.SIMPLE:d.type=goog.i18n.MessageFormat.BlockType_.SIMPLE;d.value=a[c].value;break;default:goog.asserts.fail("Unknown block type.")}}else goog.asserts.fail("Unknown part of the pattern.");
+b.push(d)}return b};
+goog.i18n.MessageFormat.prototype.parseSelectBlock_=function(a){var b="",c=goog.i18n.MessageFormat.SELECT_BLOCK_RE_;a=a.replace(c,function(a,c){b=c;return""});c={};c.argumentIndex=b;a=this.extractParts_(a);for(var d=0;d<a.length;){var e=a[d].value;goog.asserts.assertString(e,"Missing select key element.");d++;goog.asserts.assert(d<a.length,"Missing or invalid select value element.");if(goog.i18n.MessageFormat.Element_.BLOCK==a[d].type)var f=this.parseBlock_(a[d].value);else goog.asserts.fail("Expected block type.");c[e.replace(/\s/g,
+"")]=f;d++}goog.asserts.assertArray(c[goog.i18n.MessageFormat.OTHER_],"Missing other key in select statement.");return c};
+goog.i18n.MessageFormat.prototype.parsePluralBlock_=function(a){var b="",c=0,d=goog.i18n.MessageFormat.PLURAL_BLOCK_RE_;a=a.replace(d,function(a,d,e){b=d;e&&(c=parseInt(e,10));return""});d={};d.argumentIndex=b;d.argumentOffset=c;a=this.extractParts_(a);for(var e=0;e<a.length;){var f=a[e].value;goog.asserts.assertString(f,"Missing plural key element.");e++;goog.asserts.assert(e<a.length,"Missing or invalid plural value element.");if(goog.i18n.MessageFormat.Element_.BLOCK==a[e].type)var g=this.parseBlock_(a[e].value);
+else goog.asserts.fail("Expected block type.");d[f.replace(/\s*(?:=)?(\w+)\s*/,"$1")]=g;e++}goog.asserts.assertArray(d[goog.i18n.MessageFormat.OTHER_],"Missing other key in plural statement.");return d};
+goog.i18n.MessageFormat.prototype.parseOrdinalBlock_=function(a){var b="",c=goog.i18n.MessageFormat.ORDINAL_BLOCK_RE_;a=a.replace(c,function(a,c){b=c;return""});c={};c.argumentIndex=b;c.argumentOffset=0;a=this.extractParts_(a);for(var d=0;d<a.length;){var e=a[d].value;goog.asserts.assertString(e,"Missing ordinal key element.");d++;goog.asserts.assert(d<a.length,"Missing or invalid ordinal value element.");if(goog.i18n.MessageFormat.Element_.BLOCK==a[d].type)var f=this.parseBlock_(a[d].value);else goog.asserts.fail("Expected block type.");
+c[e.replace(/\s*(?:=)?(\w+)\s*/,"$1")]=f;d++}goog.asserts.assertArray(c[goog.i18n.MessageFormat.OTHER_],"Missing other key in selectordinal statement.");return c};goog.i18n.MessageFormat.prototype.buildPlaceholder_=function(a){goog.asserts.assert(0<a.length,"Literal array is empty.");a=(a.length-1).toString(10);return goog.i18n.MessageFormat.LITERAL_PLACEHOLDER_+a+"_"};cvox.TtsCapturingEventListener=function(){};cvox.TtsInterface=function(){};cvox.TtsInterface.prototype.speak=function(){};cvox.TtsInterface.prototype.isSpeaking=function(){};cvox.TtsInterface.prototype.stop=function(){};cvox.TtsInterface.prototype.increaseOrDecreaseProperty=function(){};cvox.TtsInterface.prototype.getDefaultProperty=function(){};cvox.AbstractTts=function(){this.ttsProperties={};this.propertyDefault={rate:0.5,pitch:0.5,volume:0.5};this.propertyMin={rate:0,pitch:0,volume:0};this.propertyMax={rate:1,pitch:1,volume:1};this.propertyStep={rate:0.1,pitch:0.1,volume:0.1};if(void 0==cvox.AbstractTts.pronunciationDictionaryRegexp_){var a=[],b;for(b in cvox.AbstractTts.PRONUNCIATION_DICTIONARY)a.push(b);a="\\b("+a.join("|")+")\\b";cvox.AbstractTts.pronunciationDictionaryRegexp_=RegExp(a,"ig")}if(void 0==cvox.AbstractTts.substitutionDictionaryRegexp_){var a=
+[],c;for(c in cvox.AbstractTts.SUBSTITUTION_DICTIONARY)a.push(c);a="("+a.join("|")+")";cvox.AbstractTts.substitutionDictionaryRegexp_=RegExp(a,"ig")}};cvox.AbstractTts.prototype.speak=function(){return this};cvox.AbstractTts.prototype.isSpeaking=function(){return!1};cvox.AbstractTts.prototype.stop=function(){};
+cvox.AbstractTts.prototype.increaseOrDecreaseProperty=function(a,b){var c=this.propertyMin[a],d=this.propertyMax[a],e=this.propertyStep[a],f=this.ttsProperties[a],f=b?f+e:f-e;this.ttsProperties[a]=Math.max(Math.min(f,d),c)};
+cvox.AbstractTts.prototype.mergeProperties=function(a){var b={},c;if(this.ttsProperties)for(c in this.ttsProperties)b[c]=this.ttsProperties[c];if(a){c=cvox.AbstractTts;"number"==typeof a[c.VOLUME]&&(b[c.VOLUME]=a[c.VOLUME]);"number"==typeof a[c.PITCH]&&(b[c.PITCH]=a[c.PITCH]);"number"==typeof a[c.RATE]&&(b[c.RATE]=a[c.RATE]);"string"==typeof a[c.LANG]&&(b[c.LANG]=a[c.LANG]);var d=this,e=function(c,e){if("number"==typeof a[e]&&"number"==typeof b[c]){b[c]+=a[e];var h=d.propertyMin[c],k=d.propertyMax[c];
+b[c]>k?b[c]=k:b[c]<h&&(b[c]=h)}};e(c.VOLUME,c.RELATIVE_VOLUME);e(c.PITCH,c.RELATIVE_PITCH);e(c.RATE,c.RELATIVE_RATE)}return b};cvox.AbstractTts.RATE="rate";cvox.AbstractTts.PITCH="pitch";cvox.AbstractTts.VOLUME="volume";cvox.AbstractTts.LANG="lang";cvox.AbstractTts.RELATIVE_RATE="relativeRate";cvox.AbstractTts.RELATIVE_PITCH="relativePitch";cvox.AbstractTts.RELATIVE_VOLUME="relativeVolume";cvox.AbstractTts.COLOR="color";cvox.AbstractTts.FONT_WEIGHT="fontWeight";cvox.AbstractTts.PUNCTUATION_ECHO="punctuationEcho";
+cvox.AbstractTts.PAUSE="pause";cvox.AbstractTts.PERSONALITY_ANNOTATION={relativePitch:-0.25,color:"yellow",punctuationEcho:"none"};cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT={punctuationEcho:"none"};cvox.AbstractTts.PERSONALITY_ASIDE={relativePitch:-0.1,color:"#669"};cvox.AbstractTts.PERSONALITY_CAPITAL={relativePitch:0.6};cvox.AbstractTts.PERSONALITY_DELETED={punctuationEcho:"none",relativePitch:-0.6};cvox.AbstractTts.PERSONALITY_QUOTE={relativePitch:0.1,color:"#b6b",fontWeight:"bold"};
+cvox.AbstractTts.PERSONALITY_STRONG={relativePitch:0.1,color:"#b66",fontWeight:"bold"};cvox.AbstractTts.PERSONALITY_EMPHASIS={relativeVolume:0.1,relativeRate:-0.1,color:"#6bb",fontWeight:"bold"};cvox.AbstractTts.DEBUG=!0;cvox.AbstractTts.QUEUE_MODE_FLUSH=0;cvox.AbstractTts.QUEUE_MODE_QUEUE=1;
+cvox.AbstractTts.CHARACTER_DICTIONARY={" ":"space","`":"backtick","~":"tilde","!":"exclamation","@":"at","#":"pound",$:"dollar","%":"percent","^":"caret","&":"ampersand","*":"asterisk","(":"open_paren",")":"close_paren","-":"dash",_:"underscore","=":"equals","+":"plus","[":"left_bracket","]":"right_bracket","{":"left_brace","}":"right_brace","|":"pipe",";":"semicolon",":":"colon",",":"comma",".":"dot","<":"less_than",">":"greater_than","/":"slash","?":"question_mark",'"':"quote","'":"apostrophe",
+"\t":"tab","\r":"return","\n":"new line","\\":"backslash"};cvox.AbstractTts.PRONUNCIATION_DICTIONARY={admob:"ad-mob",adsense:"ad-sense",adwords:"ad-words",angularjs:"angular j s",bcc:"B C C",cc:"C C",chromevox:"chrome vox",cr48:"C R 48",ctrl:"control",doubleclick:"double-click",gmail:"gee mail",gtalk:"gee talk",http:"H T T P",https:"H T T P S",igoogle:"eye google",pagerank:"page-rank",username:"user-name",www:"W W W",youtube:"you tube"};
+cvox.AbstractTts.SUBSTITUTION_DICTIONARY={"://":"colon slash slash","\u00bc":"one fourth","\u00bd":"one half","\u200e":"left to right mark","\u2190":"left arrow","\u2191":"up arrow","\u2192":"right arrow","\u2193":"down arrow","\u21d0":"left double arrow","\u21d1":"up double arrow","\u21d2":"right double arrow","\u21d3":"down double arrow","\u21e6":"left arrow","\u21e7":"up arrow","\u21e8":"right arrow","\u21e9":"down arrow","\u2303":"control","\u2318":"command","\u2325":"option","\u25b2":"up triangle",
+"\u25b3":"up triangle","\u25b4":"up triangle","\u25b5":"up triangle","\u25b6":"right triangle","\u25b7":"right triangle","\u25b8":"right triangle","\u25b9":"right triangle","\u25ba":"right pointer","\u25bb":"right pointer","\u25bc":"down triangle","\u25bd":"down triangle","\u25be":"down triangle","\u25bf":"down triangle","\u25c0":"left triangle","\u25c1":"left triangle","\u25c2":"left triangle","\u25c3":"left triangle","\u25c4":"left pointer","\u25c5":"left pointer","\uf8ff":"apple"};
+cvox.AbstractTts.repetitionRegexp_=/([-\/\\|!@#$%^&*\(\)=_+\[\]\{\}.?;'":<>])\1{2,}/g;cvox.AbstractTts.repetitionReplace_=function(a){var b=a.length;return" "+(new goog.i18n.MessageFormat(cvox.ChromeVox.msgs.getMsg(cvox.AbstractTts.CHARACTER_DICTIONARY[a[0]]))).format({COUNT:b})+" "};cvox.AbstractTts.prototype.getDefaultProperty=function(a){return this.propertyDefault[a]};cvox.AbstractEarcons=function(){this.enabled=!0};cvox.AbstractEarcons.prototype.playEarcon=function(){};cvox.AbstractEarcons.prototype.playEarconByName=function(a){this.playEarcon(this.getEarconId(a))};cvox.AbstractEarcons.prototype.earconsAvailable=function(){return!0};
+cvox.AbstractEarcons.prototype.getEarconId=function(a){this.earconNamesToIds||(this.earconNamesToIds={},this.earconNamesToIds.ALERT_MODAL=cvox.AbstractEarcons.ALERT_MODAL,this.earconNamesToIds.ALERT_NONMODAL=cvox.AbstractEarcons.ALERT_NONMODAL,this.earconNamesToIds.BULLET=cvox.AbstractEarcons.BULLET,this.earconNamesToIds.BUSY_PROGRESS_LOOP=cvox.AbstractEarcons.BUSY_PROGRESS_LOOP,this.earconNamesToIds.BUSY_WORKING_LOOP=cvox.AbstractEarcons.BUSY_WORKING_LOOP,this.earconNamesToIds.BUTTON=cvox.AbstractEarcons.BUTTON,
+this.earconNamesToIds.CHECK_OFF=cvox.AbstractEarcons.CHECK_OFF,this.earconNamesToIds.CHECK_ON=cvox.AbstractEarcons.CHECK_ON,this.earconNamesToIds.CHROMEVOX_DISABLED=cvox.AbstractEarcons.CHROMEVOX_DISABLED,this.earconNamesToIds.CHROMEVOX_ENABLED=cvox.AbstractEarcons.CHROMEVOX_ENABLED,this.earconNamesToIds.COLLAPSED=cvox.AbstractEarcons.COLLAPSED,this.earconNamesToIds.EDITABLE_TEXT=cvox.AbstractEarcons.EDITABLE_TEXT,this.earconNamesToIds.ELLIPSIS=cvox.AbstractEarcons.ELLIPSIS,this.earconNamesToIds.EXPANDED=
+cvox.AbstractEarcons.EXPANDED,this.earconNamesToIds.FONT_CHANGE=cvox.AbstractEarcons.FONT_CHANGE,this.earconNamesToIds.INVALID_KEYPRESS=cvox.AbstractEarcons.INVALID_KEYPRESS,this.earconNamesToIds.LINK=cvox.AbstractEarcons.LINK,this.earconNamesToIds.LISTBOX=cvox.AbstractEarcons.LISTBOX,this.earconNamesToIds.LIST_ITEM=cvox.AbstractEarcons.LIST_ITEM,this.earconNamesToIds.LONG_DESC=cvox.AbstractEarcons.LONG_DESC,this.earconNamesToIds.NEW_MAIL=cvox.AbstractEarcons.NEW_MAIL,this.earconNamesToIds.OBJECT_CLOSE=
+cvox.AbstractEarcons.OBJECT_CLOSE,this.earconNamesToIds.OBJECT_DELETE=cvox.AbstractEarcons.OBJECT_DELETE,this.earconNamesToIds.OBJECT_DESELECT=cvox.AbstractEarcons.OBJECT_DESELECT,this.earconNamesToIds.OBJECT_ENTER=cvox.AbstractEarcons.OBJECT_ENTER,this.earconNamesToIds.OBJECT_EXIT=cvox.AbstractEarcons.OBJECT_EXIT,this.earconNamesToIds.OBJECT_OPEN=cvox.AbstractEarcons.OBJECT_OPEN,this.earconNamesToIds.OBJECT_SELECT=cvox.AbstractEarcons.OBJECT_SELECT,this.earconNamesToIds.PARAGRAPH_BREAK=cvox.AbstractEarcons.PARAGRAPH_BREAK,
+this.earconNamesToIds.SEARCH_HIT=cvox.AbstractEarcons.SEARCH_HIT,this.earconNamesToIds.SEARCH_MISS=cvox.AbstractEarcons.SEARCH_MISS,this.earconNamesToIds.SECTION=cvox.AbstractEarcons.SECTION,this.earconNamesToIds.SELECTION=cvox.AbstractEarcons.SELECTION,this.earconNamesToIds.SELECTION_REVERSE=cvox.AbstractEarcons.SELECTION_REVERSE,this.earconNamesToIds.SPECIAL_CONTENT=cvox.AbstractEarcons.SPECIAL_CONTENT,this.earconNamesToIds.TASK_SUCCESS=cvox.AbstractEarcons.TASK_SUCCESS,this.earconNamesToIds.WRAP=
+cvox.AbstractEarcons.WRAP,this.earconNamesToIds.WRAP_EDGE=cvox.AbstractEarcons.WRAP_EDGE);return this.earconNamesToIds[a]};cvox.AbstractEarcons.prototype.getEarconFilename=function(a){return cvox.AbstractEarcons.earconMap[a]};cvox.AbstractEarcons.prototype.toggle=function(){return this.enabled=!this.enabled};cvox.AbstractEarcons.ALERT_MODAL=0;cvox.AbstractEarcons.ALERT_NONMODAL=1;cvox.AbstractEarcons.BULLET=2;cvox.AbstractEarcons.BUSY_PROGRESS_LOOP=3;cvox.AbstractEarcons.BUSY_WORKING_LOOP=4;
+cvox.AbstractEarcons.BUTTON=5;cvox.AbstractEarcons.CHECK_OFF=6;cvox.AbstractEarcons.CHECK_ON=7;cvox.AbstractEarcons.CHROMEVOX_DISABLED=8;cvox.AbstractEarcons.CHROMEVOX_ENABLED=9;cvox.AbstractEarcons.COLLAPSED=10;cvox.AbstractEarcons.EDITABLE_TEXT=11;cvox.AbstractEarcons.ELLIPSIS=12;cvox.AbstractEarcons.EXPANDED=13;cvox.AbstractEarcons.FONT_CHANGE=14;cvox.AbstractEarcons.INVALID_KEYPRESS=15;cvox.AbstractEarcons.LINK=16;cvox.AbstractEarcons.LISTBOX=17;cvox.AbstractEarcons.LIST_ITEM=18;
+cvox.AbstractEarcons.LONG_DESC=19;cvox.AbstractEarcons.NEW_MAIL=20;cvox.AbstractEarcons.OBJECT_CLOSE=21;cvox.AbstractEarcons.OBJECT_DELETE=22;cvox.AbstractEarcons.OBJECT_DESELECT=23;cvox.AbstractEarcons.OBJECT_ENTER=24;cvox.AbstractEarcons.OBJECT_EXIT=25;cvox.AbstractEarcons.OBJECT_OPEN=26;cvox.AbstractEarcons.OBJECT_SELECT=27;cvox.AbstractEarcons.PARAGRAPH_BREAK=28;cvox.AbstractEarcons.SEARCH_HIT=29;cvox.AbstractEarcons.SEARCH_MISS=30;cvox.AbstractEarcons.SECTION=31;
+cvox.AbstractEarcons.SELECTION=32;cvox.AbstractEarcons.SELECTION_REVERSE=33;cvox.AbstractEarcons.SPECIAL_CONTENT=34;cvox.AbstractEarcons.TASK_SUCCESS=35;cvox.AbstractEarcons.WRAP=36;cvox.AbstractEarcons.WRAP_EDGE=37;cvox.AbstractEarcons.earconMap={};cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.ALERT_MODAL]="alert_modal.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.ALERT_NONMODAL]="alert_nonmodal.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BULLET]="bullet.ogg";
+cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BUSY_PROGRESS_LOOP]="busy_progress_loop.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BUSY_WORKING_LOOP]="busy_working_loop.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BUTTON]="button.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHECK_OFF]="check_off.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHECK_ON]="check_on.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHROMEVOX_DISABLED]="chromevox_disabled.ogg";
+cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHROMEVOX_ENABLED]="chromevox_enabled.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.COLLAPSED]="collapsed.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.EDITABLE_TEXT]="editable_text.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.ELLIPSIS]="ellipsis.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.EXPANDED]="expanded.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.FONT_CHANGE]="font_change.ogg";
+cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.INVALID_KEYPRESS]="invalid_keypress.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LINK]="link.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LISTBOX]="listbox.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LIST_ITEM]="bullet.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LONG_DESC]="long_desc.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.NEW_MAIL]="new_mail.ogg";
+cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_CLOSE]="object_close.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_DELETE]="object_delete.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_DESELECT]="object_deselect.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_ENTER]="object_enter.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_EXIT]="object_exit.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_OPEN]="object_open.ogg";
+cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_SELECT]="object_select.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.PARAGRAPH_BREAK]="paragraph_break.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SEARCH_HIT]="search_hit.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SEARCH_MISS]="search_miss.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SECTION]="section.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SELECTION]="selection.ogg";
+cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SELECTION_REVERSE]="selection_reverse.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SPECIAL_CONTENT]="special_content.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.TASK_SUCCESS]="task_success.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.WRAP]="wrap.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.WRAP_EDGE]="wrap_edge.ogg";cvox.NodeStateUtil={};cvox.NodeStateUtil.expand=function(a){try{return a.map(function(a){if(1>a.length)throw Error("cvox.NodeState must have at least one entry");var b=a.slice(1).map(function(a){return"number"==typeof a?cvox.ChromeVox.msgs.getNumber(a):a});return cvox.ChromeVox.msgs.getMsg(a[0],b)}).join(" ")}catch(b){throw Error("error: "+b+" state: "+a);}};cvox.AriaUtil=function(){};cvox.AriaUtil.NO_ROLE_NAME=" ";
+cvox.AriaUtil.WIDGET_ROLE_TO_NAME={alert:"aria_role_alert",alertdialog:"aria_role_alertdialog",button:"aria_role_button",checkbox:"aria_role_checkbox",columnheader:"aria_role_columnheader",combobox:"aria_role_combobox",dialog:"aria_role_dialog",grid:"aria_role_grid",gridcell:"aria_role_gridcell",link:"aria_role_link",listbox:"aria_role_listbox",log:"aria_role_log",marquee:"aria_role_marquee",menu:"aria_role_menu",menubar:"aria_role_menubar",menuitem:"aria_role_menuitem",menuitemcheckbox:"aria_role_menuitemcheckbox",
+menuitemradio:"aria_role_menuitemradio",option:cvox.AriaUtil.NO_ROLE_NAME,progressbar:"aria_role_progressbar",radio:"aria_role_radio",radiogroup:"aria_role_radiogroup",rowheader:"aria_role_rowheader",scrollbar:"aria_role_scrollbar",slider:"aria_role_slider",spinbutton:"aria_role_spinbutton",status:"aria_role_status",tab:"aria_role_tab",tabpanel:"aria_role_tabpanel",textbox:"aria_role_textbox",timer:"aria_role_timer",toolbar:"aria_role_toolbar",tooltip:"aria_role_tooltip",treeitem:"aria_role_treeitem"};
+cvox.AriaUtil.STRUCTURE_ROLE_TO_NAME={article:"aria_role_article",application:"aria_role_application",banner:"aria_role_banner",columnheader:"aria_role_columnheader",complementary:"aria_role_complementary",contentinfo:"aria_role_contentinfo",definition:"aria_role_definition",directory:"aria_role_directory",document:"aria_role_document",form:"aria_role_form",group:"aria_role_group",heading:"aria_role_heading",img:"aria_role_img",list:"aria_role_list",listitem:"aria_role_listitem",main:"aria_role_main",
+math:"aria_role_math",navigation:"aria_role_navigation",note:"aria_role_note",region:"aria_role_region",rowheader:"aria_role_rowheader",search:"aria_role_search",separator:"aria_role_separator"};
+cvox.AriaUtil.ATTRIBUTE_VALUE_TO_STATUS=[{name:"aria-autocomplete",values:{inline:"aria_autocomplete_inline",list:"aria_autocomplete_list",both:"aria_autocomplete_both"}},{name:"aria-checked",values:{"true":"aria_checked_true","false":"aria_checked_false",mixed:"aria_checked_mixed"}},{name:"aria-disabled",values:{"true":"aria_disabled_true"}},{name:"aria-expanded",values:{"true":"aria_expanded_true","false":"aria_expanded_false"}},{name:"aria-invalid",values:{"true":"aria_invalid_true",grammar:"aria_invalid_grammar",
+spelling:"aria_invalid_spelling"}},{name:"aria-multiline",values:{"true":"aria_multiline_true"}},{name:"aria-multiselectable",values:{"true":"aria_multiselectable_true"}},{name:"aria-pressed",values:{"true":"aria_pressed_true","false":"aria_pressed_false",mixed:"aria_pressed_mixed"}},{name:"aria-readonly",values:{"true":"aria_readonly_true"}},{name:"aria-required",values:{"true":"aria_required_true"}},{name:"aria-selected",values:{"true":"aria_selected_true","false":"aria_selected_false"}}];
+cvox.AriaUtil.isHiddenRecursive=function(a){if(cvox.AriaUtil.isHidden(a))return!0;for(a=a.parentElement;a;){if("true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden"))return!0;a=a.parentElement}return!1};cvox.AriaUtil.isHidden=function(a){return!a||a.getAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")?!0:!1};
+cvox.AriaUtil.isForcedVisibleRecursive=function(a){for(;a;){if(a.getAttribute&&a.hasAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden"))return"false"==a.getAttribute("aria-hidden");a=a.parentElement}return!1};cvox.AriaUtil.isLeafElement=function(a){var b=a.getAttribute("role");a=a.hasAttribute("aria-label")&&0<a.getAttribute("aria-label").length;return"img"==b||"progressbar"==b||a};
+cvox.AriaUtil.isDescendantOfRole=function(a,b){for(;a;){if(b&&a&&a.getAttribute("role")==b)return!0;a=a.parentNode}return!1};cvox.AriaUtil.getRoleNameMsgForRole_=function(a){return(a=cvox.AriaUtil.WIDGET_ROLE_TO_NAME[a])?a==cvox.AriaUtil.NO_ROLE_NAME?" ":a:null};cvox.AriaUtil.isButton=function(a){var b=cvox.AriaUtil.getRoleAttribute(a);return"button"==b||"BUTTON"==a.tagName?!0:"INPUT"==a.tagName?"submit"==a.type||"reset"==a.type||"button"==a.type:!1};
+cvox.AriaUtil.getRoleNameMsg=function(a){var b;if(a&&a.getAttribute){var c=cvox.AriaUtil.getRoleAttribute(a);if("true"==a.getAttribute("aria-haspopup")&&cvox.AriaUtil.isButton(a))return"aria_role_popup_button";c&&((b=cvox.AriaUtil.getRoleNameMsgForRole_(c))||(b=cvox.AriaUtil.STRUCTURE_ROLE_TO_NAME[c]));if("menuitem"==c){for(a=a.parentElement;a&&(!a.getAttribute||"menu"!=cvox.AriaUtil.getRoleAttribute(a)&&"menubar"!=cvox.AriaUtil.getRoleAttribute(a));)a=a.parentElement;a&&"menubar"==cvox.AriaUtil.getRoleAttribute(a)&&
+(b=cvox.AriaUtil.getRoleNameMsgForRole_("menu"))}}b||(b="");return b};cvox.AriaUtil.getRoleName=function(a){var b=cvox.AriaUtil.getRoleNameMsg(a),b=cvox.ChromeVox.msgs.getMsg(b),c=cvox.AriaUtil.getRoleAttribute(a);"heading"==c&&a.hasAttribute("aria-level")&&(b+=" "+a.getAttribute("aria-level"));return b?b:""};
+cvox.AriaUtil.getStateMsgs=function(a,b){var c=[];if(!a||!a.getAttribute)return c;for(var d=0,e;e=cvox.AriaUtil.ATTRIBUTE_VALUE_TO_STATUS[d];d++){var f=a.getAttribute(e.name);(e=e.values[f])&&c.push([e])}if("grid"==a.getAttribute("role"))return cvox.AriaUtil.getGridState_(a,a);e=cvox.AriaUtil.getRoleAttribute(a);"true"==a.getAttribute("aria-haspopup")&&("menuitem"==e?c.push(["has_submenu"]):cvox.AriaUtil.isButton(a)||c.push(["has_popup"]));if(d=a.getAttribute("aria-valuetext"))return c.push([d]),
+c;var d=a.getAttribute("aria-valuenow"),f=a.getAttribute("aria-valuemin"),g=a.getAttribute("aria-valuemax");if(null!=d&&null!=f&&null!=g&&("scrollbar"==e||"progressbar"==e)){var h=Math.round(d/(g-f)*100);c.push(["state_percent",h]);return c}null!=d&&c.push(["aria_value_now",d]);null!=f&&c.push(["aria_value_min",f]);null!=g&&c.push(["aria_value_max",g]);f=a;d=null;if(cvox.AriaUtil.isCompositeControl(f)&&b)d=cvox.AriaUtil.getActiveDescendant(f);else if(e=cvox.AriaUtil.getRoleAttribute(a),"option"==
+e||"menuitem"==e||"menuitemcheckbox"==e||"menuitemradio"==e||"radio"==e||"tab"==e||"treeitem"==e)for(d=a,f=a.parentElement;f&&!cvox.AriaUtil.isCompositeControl(f)&&(!(f=f.parentElement)||"treeitem"!=cvox.AriaUtil.getRoleAttribute(f)););if(f&&(cvox.AriaUtil.isCompositeControl(f)||"treeitem"==cvox.AriaUtil.getRoleAttribute(f))&&d){e=cvox.AriaUtil.getRoleAttribute(f);var k;switch(e){case "combobox":case "listbox":k=["option"];break;case "menu":k=["menuitem","menuitemcheck","menuitemradio"];break;case "radiogroup":k=
+["radio"];break;case "tablist":k=["tab"];break;case "tree":case "treegrid":case "treeitem":k=["treeitem"]}if(k){var l;e=parseInt(d.getAttribute("aria-setsize"),10);isNaN(e)||(h=e);e=parseInt(d.getAttribute("aria-posinset"),10);isNaN(e)||(l=e);if(void 0==h||void 0==l)if(k=cvox.AriaUtil.getNextLevel(f,k),void 0==h&&(h=k.length),void 0==l)for(e=0;e<k.length;e++)k[e]==d&&(l=e+1);l&&h&&c.push(["list_position",l,h])}}return c};
+cvox.AriaUtil.getGridState_=function(a,b){var c=cvox.AriaUtil.getActiveDescendant(b);if(c)for(var d='*[role~="row"]',d=b.querySelectorAll(d),e=0;e<d.length;e++)for(var f=d[e].querySelectorAll('*[role~="gridcell"]'),g=0;g<f.length;g++)if(f[g]==c)return[["aria_role_gridcell_pos",e+1,g+1]];return[]};cvox.AriaUtil.getActiveDescendantId_=function(a){return a.getAttribute?(a=a.getAttribute("aria-activedescendant"))?a:null:null};
+cvox.AriaUtil.getNextLevel=function(a,b){for(var c=[],d=a.childNodes,e=0;e<d.length;e++)if(!cvox.AriaUtil.isHidden(d[e])&&cvox.DomUtil.isVisible(d[e])){var f=cvox.AriaUtil.getNextLevelItems(d[e],b);0<f.length&&(c=c.concat(f))}return c};
+cvox.AriaUtil.getNextLevelItems=function(a,b){if(1!=a.nodeType)return[];if(-1!=b.indexOf(cvox.AriaUtil.getRoleAttribute(a)))return[a];var c=a.childNodes,d=c.length;if(0==d)return[];for(var e=[],f=0;f<d;f++){var g=cvox.AriaUtil.getNextLevelItems(c[f],b);0<g.length&&(e=e.concat(g))}return e};cvox.AriaUtil.getActiveDescendant=function(a){for(var b={},c=a;c;){var d=cvox.AriaUtil.getActiveDescendantId_(c);if(!d)break;if(d in b)return null;b[d]=!0;c=document.getElementById(d)}return c==a?null:c};
+cvox.AriaUtil.isControlWidget=function(a){if(a&&a.getAttribute)switch(a=cvox.AriaUtil.getRoleAttribute(a),a){case "button":case "checkbox":case "combobox":case "listbox":case "menu":case "menuitemcheckbox":case "menuitemradio":case "radio":case "slider":case "progressbar":case "scrollbar":case "spinbutton":case "tab":case "tablist":case "textbox":return!0}return!1};cvox.AriaUtil.isCompositeControl=function(a){if(a&&a.getAttribute)switch(a=cvox.AriaUtil.getRoleAttribute(a),a){case "combobox":case "grid":case "listbox":case "menu":case "menubar":case "radiogroup":case "tablist":case "tree":case "treegrid":return!0}return!1};
+cvox.AriaUtil.getAriaLive=function(a){if(!a.hasAttribute)return null;var b=a.getAttribute("aria-live");if("off"==b)return null;if(b)return b;a=cvox.AriaUtil.getRoleAttribute(a);switch(a){case "alert":return"assertive";case "log":case "status":return"polite";default:return null}};cvox.AriaUtil.getAriaAtomic=function(a){if(!a.hasAttribute)return!1;var b=a.getAttribute("aria-atomic");if(b)return"true"===b;a=cvox.AriaUtil.getRoleAttribute(a);return"alert"==a?!0:!1};
+cvox.AriaUtil.getAriaBusy=function(a){return a.hasAttribute?(a=a.getAttribute("aria-busy"))?"true"===a:!1:!1};cvox.AriaUtil.getAriaRelevant=function(a,b){if(!a.hasAttribute)return!1;var c;c=a.hasAttribute("aria-relevant")?a.getAttribute("aria-relevant"):"additions text";"all"==c&&(c="additions removals text");c=c.replace(/\s+/g," ").replace(/^\s+|\s+$/g,"").split(" ");return"all"==b?0<=c.indexOf("additions")&&0<=c.indexOf("text")&&0<=c.indexOf("removals"):0<=c.indexOf(b)};
+cvox.AriaUtil.getLiveRegions=function(a){var b=[];if(a.querySelectorAll){var c=a.querySelectorAll('[role="alert"], [role="log"], [role="marquee"], [role="status"], [role="timer"], [aria-live]');if(c)for(var d=0;d<c.length;d++)b.push(c[d])}for(;a;){if(cvox.AriaUtil.getAriaLive(a)){b.push(a);break}a=a.parentElement}return b};cvox.AriaUtil.isLandmark=function(a){if(!a||!a.getAttribute)return!1;a=cvox.AriaUtil.getRoleAttribute(a);switch(a){case "application":case "banner":case "complementary":case "contentinfo":case "form":case "main":case "navigation":case "search":return!0}return!1};
+cvox.AriaUtil.isGrid=function(a){if(!a||!a.getAttribute)return!1;a=cvox.AriaUtil.getRoleAttribute(a);switch(a){case "grid":case "treegrid":return!0}return!1};
+cvox.AriaUtil.getEarcon=function(a){if(!a||!a.getAttribute)return null;var b=cvox.AriaUtil.getRoleAttribute(a);switch(b){case "button":return cvox.AbstractEarcons.BUTTON;case "checkbox":case "radio":case "menuitemcheckbox":case "menuitemradio":return a=a.getAttribute("aria-checked"),"true"==a?cvox.AbstractEarcons.CHECK_ON:cvox.AbstractEarcons.CHECK_OFF;case "combobox":case "listbox":return cvox.AbstractEarcons.LISTBOX;case "textbox":return cvox.AbstractEarcons.EDITABLE_TEXT;case "listitem":return cvox.AbstractEarcons.BULLET;
+case "link":return cvox.AbstractEarcons.LINK}return null};cvox.AriaUtil.getRoleAttribute=function(a){if(!a.getAttribute)return"";var b=a.getAttribute("role");a.hasAttribute("chromevoxoriginalrole")&&(b=a.getAttribute("chromevoxoriginalrole"));return b};cvox.AriaUtil.isMath=function(a){if(!a||!a.getAttribute)return!1;a=cvox.AriaUtil.getRoleAttribute(a);return"math"==a};cvox.DomPredicates={};cvox.DomPredicates.checkboxPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"checkbox"==a[b].getAttribute("role")||"INPUT"==a[b].tagName&&"checkbox"==a[b].type)return a[b];return null};cvox.DomPredicates.radioPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"radio"==a[b].getAttribute("role")||"INPUT"==a[b].tagName&&"radio"==a[b].type)return a[b];return null};
+cvox.DomPredicates.sliderPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"slider"==a[b].getAttribute("role")||"INPUT"==a[b].tagName&&"range"==a[b].type)return a[b];return null};cvox.DomPredicates.graphicPredicate=function(a){for(var b=0;b<a.length;b++)if("IMG"==a[b].tagName||"INPUT"==a[b].tagName&&"img"==a[b].type)return a[b];return null};
+cvox.DomPredicates.buttonPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"button"==a[b].getAttribute("role")||"BUTTON"==a[b].tagName||"INPUT"==a[b].tagName&&"submit"==a[b].type||"INPUT"==a[b].tagName&&"button"==a[b].type||"INPUT"==a[b].tagName&&"reset"==a[b].type)return a[b];return null};cvox.DomPredicates.comboBoxPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"combobox"==a[b].getAttribute("role")||"SELECT"==a[b].tagName)return a[b];return null};
+cvox.DomPredicates.editTextPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"textbox"==a[b].getAttribute("role")||"TEXTAREA"==a[b].tagName||a[b].isContentEditable||"INPUT"==a[b].tagName&&cvox.DomUtil.isInputTypeText(a[b]))return a[b];return null};cvox.DomPredicates.headingPredicate=function(a){for(var b=0;b<a.length;b++){if(a[b].getAttribute&&"heading"==a[b].getAttribute("role"))return a[b];switch(a[b].tagName){case "H1":case "H2":case "H3":case "H4":case "H5":case "H6":return a[b]}}return null};
+cvox.DomPredicates.heading1Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H1")};cvox.DomPredicates.heading2Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H2")};cvox.DomPredicates.heading3Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H3")};cvox.DomPredicates.heading4Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H4")};cvox.DomPredicates.heading5Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H5")};
+cvox.DomPredicates.heading6Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H6")};cvox.DomPredicates.linkPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"link"==a[b].getAttribute("role")||"A"==a[b].tagName&&a[b].href)return a[b];return null};cvox.DomPredicates.tablePredicate=function(a){return(a=cvox.DomUtil.findTableNodeInList(a,{allowCaptions:!0}))&&!cvox.DomUtil.isLayoutTable(a)?a:null};
+cvox.DomPredicates.cellPredicate=function(a){for(var b=a.length-1;0<=b;--b){var c=a[b];if("TD"==c.tagName||"TH"==c.tagName||c.getAttribute&&"gridcell"==c.getAttribute("role"))return c}return null};cvox.DomPredicates.visitedLinkPredicate=function(a){for(var b=a.length-1;0<=b;--b)if(cvox.DomPredicates.linkPredicate([a[b]])&&cvox.ChromeVox.visitedUrls[a[b].href])return a[b]};
+cvox.DomPredicates.listPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"list"==a[b].getAttribute("role")||"UL"==a[b].tagName||"OL"==a[b].tagName)return a[b];return null};cvox.DomPredicates.listItemPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"listitem"==a[b].getAttribute("role")||"LI"==a[b].tagName)return a[b];return null};cvox.DomPredicates.blockquotePredicate=function(a){return cvox.DomPredicates.containsTagName_(a,"BLOCKQUOTE")};
+cvox.DomPredicates.formFieldPredicate=function(a){for(var b=0;b<a.length;b++)if(cvox.DomUtil.isControl(a[b]))return a[b];return null};cvox.DomPredicates.landmarkPredicate=function(a){for(var b=0;b<a.length;b++)if(cvox.AriaUtil.isLandmark(a[b]))return a[b];return null};cvox.DomPredicates.containsTagName_=function(a,b){for(var c=a.length;c--;)if(a[c].tagName==b)return a[c];return null};cvox.DomPredicates.mathPredicate=function(a){return cvox.DomUtil.findMathNodeInList(a)};
+cvox.DomPredicates.sectionPredicate=function(a){for(var b=0;b<a.length;b++){if(cvox.DomUtil.isSemanticElt(a[b])||cvox.AriaUtil.isLandmark(a[b])||a[b].getAttribute&&"heading"==a[b].getAttribute("role"))return a[b];switch(a[b].tagName){case "H1":case "H2":case "H3":case "H4":case "H5":case "H6":return a[b]}}return null};
+cvox.DomPredicates.controlPredicate=function(a){for(var b=0;b<a.length;b++)if(cvox.DomUtil.isControl(a[b])||a[b].getAttribute&&"link"==a[b].getAttribute("role")||"A"==a[b].tagName&&a[b].href)return a[b];return null};cvox.DomPredicates.captionPredicate=function(a){for(var b=0;b<a.length;b++)if("CAPTION"==a[b].tagName)return a[b];return null};
+cvox.DomPredicates.articlePredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"article"==a[b].getAttribute("role")||"ARTICLE"==a[b].tagName)return a[b];return null};cvox.DomPredicates.mediaPredicate=function(a){for(var b=0;b<a.length;b++)if("AUDIO"==a[b].tagName||"VIDEO"==a[b].tagName)return a[b];return null};cvox.DomPredicates.orderedListPredicate=function(a){for(var b=0;b<a.length;b++)if("OL"==a[b].tagName)return a[b];return null};cvox.XpathUtil=function(){};cvox.XpathUtil.nameSpaces_={xhtml:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML"};cvox.XpathUtil.resolveNameSpace=function(a){return cvox.XpathUtil.nameSpaces_[a]||null};cvox.XpathUtil.evalXPath=function(a,b){try{var c=b.ownerDocument.evaluate(a,b,cvox.XpathUtil.resolveNameSpace,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null)}catch(d){return[]}for(var e=[],f=c.iterateNext();f;f=c.iterateNext())e.push(f);return e};
+cvox.XpathUtil.getLeafNodes=function(a){try{var b=a.ownerDocument.evaluate(".//*[count(*)=0]",a,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null)}catch(c){return[]}a=[];for(var d=b.iterateNext();d;d=b.iterateNext())a.push(d);return a};cvox.XpathUtil.xpathSupported=function(){return"undefined"==typeof XPathResult?!1:!0};cvox.XpathUtil.evaluateBoolean=function(a,b){try{var c=b.ownerDocument.evaluate(a,b,cvox.XpathUtil.resolveNameSpace,XPathResult.BOOLEAN_TYPE,null)}catch(d){return!1}return c.booleanValue};
+cvox.XpathUtil.evaluateString=function(a,b){try{var c=b.ownerDocument.evaluate(a,b,cvox.XpathUtil.resolveNameSpace,XPathResult.STRING_TYPE,null)}catch(d){return""}return c.stringValue};cvox.DomUtil=function(){};
+cvox.DomUtil.INPUT_TYPE_TO_INFORMATION_TABLE_MSG={button:"input_type_button",checkbox:"input_type_checkbox",color:"input_type_color",datetime:"input_type_datetime","datetime-local":"input_type_datetime_local",date:"input_type_date",email:"input_type_email",file:"input_type_file",image:"input_type_image",month:"input_type_month",number:"input_type_number",password:"input_type_password",radio:"input_type_radio",range:"input_type_range",reset:"input_type_reset",search:"input_type_search",submit:"input_type_submit",
+tel:"input_type_tel",text:"input_type_text",url:"input_type_url",week:"input_type_week"};
+cvox.DomUtil.TAG_TO_INFORMATION_TABLE_VERBOSE_MSG={A:"tag_link",ARTICLE:"tag_article",ASIDE:"tag_aside",AUDIO:"tag_audio",BUTTON:"tag_button",FOOTER:"tag_footer",H1:"tag_h1",H2:"tag_h2",H3:"tag_h3",H4:"tag_h4",H5:"tag_h5",H6:"tag_h6",HEADER:"tag_header",HGROUP:"tag_hgroup",LI:"tag_li",MARK:"tag_mark",NAV:"tag_nav",OL:"tag_ol",SECTION:"tag_section",SELECT:"tag_select",TABLE:"tag_table",TEXTAREA:"tag_textarea",TIME:"tag_time",UL:"tag_ul",VIDEO:"tag_video"};
+cvox.DomUtil.TAG_TO_INFORMATION_TABLE_BRIEF_MSG={AUDIO:"tag_audio",BUTTON:"tag_button",SELECT:"tag_select",TABLE:"tag_table",TEXTAREA:"tag_textarea",VIDEO:"tag_video"};cvox.DomUtil.FORMATTING_TAGS="B BIG CITE CODE DFN EM I KBD SAMP SMALL SPAN STRIKE STRONG SUB SUP U VAR".split(" ");
+cvox.DomUtil.isVisible=function(a,b){b=b||{};"undefined"===typeof b.checkAncestors&&(b.checkAncestors=!0);"undefined"===typeof b.checkDescendants&&(b.checkDescendants=!0);if("IFRAME"==a.tagName&&!a.src)return!1;if(cvox.AriaUtil.isForcedVisibleRecursive(a))return!0;if(b.checkAncestors&&cvox.DomUtil.hasInvisibleAncestor_(a))return!1;var c=b.checkDescendants;return cvox.DomUtil.hasVisibleNodeSubtree_(a,c)?!0:!1};
+cvox.DomUtil.hasInvisibleAncestor_=function(a){for(;a=a.parentElement;){var b=document.defaultView.getComputedStyle(a,null);if(cvox.DomUtil.isInvisibleStyle(b,!0))return!0}return!1};
+cvox.DomUtil.hasVisibleNodeSubtree_=function(a,b){if(!(a instanceof Element)){var c=document.defaultView.getComputedStyle(a.parentElement,null);return c=!cvox.DomUtil.isInvisibleStyle(c)}var c=document.defaultView.getComputedStyle(a,null),d=!cvox.DomUtil.isInvisibleStyle(c);if(d)return!0;c=cvox.DomUtil.isInvisibleStyle(c,!0);if(!b||c)return!1;c=a.childNodes;for(d=0;d<c.length;d++){var e=c[d];if(cvox.DomUtil.hasVisibleNodeSubtree_(e,b))return!0}return!1};
+cvox.DomUtil.isInvisibleStyle=function(a,b){return a?"none"!=a.display&&0!=parseFloat(a.opacity)&&(b||"hidden"!=a.visibility&&"collapse"!=a.visibility)?!1:!0:!1};cvox.DomUtil.isDisabled=function(a){if(a.disabled)return!0;for(;a=a.parentElement;)if("FIELDSET"==a.tagName&&a.disabled)return!0;return!1};cvox.DomUtil.isSemanticElt=function(a){return a.tagName&&(a=a.tagName,"SECTION"==a||"NAV"==a||"ARTICLE"==a||"ASIDE"==a||"HGROUP"==a||"HEADER"==a||"FOOTER"==a||"TIME"==a||"MARK"==a)?!0:!1};
+cvox.DomUtil.isLeafNode=function(a,b){if(!(a instanceof Element))return null==a.firstChild;var c=a;if(!b&&!cvox.DomUtil.isVisible(c,{checkAncestors:!1})||!b&&cvox.AriaUtil.isHidden(c)||cvox.AriaUtil.isLeafElement(c))return!0;switch(c.tagName){case "OBJECT":case "EMBED":case "VIDEO":case "AUDIO":case "IFRAME":case "FRAME":return!0}return cvox.DomPredicates.linkPredicate([c])?!cvox.DomUtil.findNode(c,function(a){return!!cvox.DomPredicates.headingPredicate([a])}):cvox.DomUtil.isLeafLevelControl(c)||
+!c.firstChild||cvox.DomUtil.isMath(c)?!0:cvox.DomPredicates.headingPredicate([c])?!cvox.DomUtil.findNode(c,function(a){return!!cvox.DomPredicates.controlPredicate([a])}):!1};cvox.DomUtil.isDescendantOf=function(a,b,c){for(;a;){if(b&&c&&a.tagName&&a.tagName==b&&a.className&&a.className==c||b&&!c&&a.tagName&&a.tagName==b||!b&&c&&a.className&&a.className==c)return!0;a=a.parentNode}return!1};cvox.DomUtil.isDescendantOfNode=function(a,b){for(;a&&b;){if(a.isSameNode(b))return!0;a=a.parentNode}return!1};
+cvox.DomUtil.collapseWhitespace=function(a){return a.replace(/\s+/g," ").replace(/^\s+|\s+$/g,"")};
+cvox.DomUtil.getBaseLabel_=function(a,b,c){var d="";if(a.hasAttribute){if(a.hasAttribute("aria-labelledby"))for(var e=a.getAttribute("aria-labelledby").split(" "),f,g=0;f=e[g];g++)(f=document.getElementById(f))&&(d+=" "+cvox.DomUtil.getName(f,!0,c,!0));else if(a.hasAttribute("aria-label"))d=a.getAttribute("aria-label");else if(a.constructor==HTMLImageElement)d=cvox.DomUtil.getImageTitle(a);else if("FIELDSET"==a.tagName)for(e=a.getElementsByTagName("LEGEND"),d="",g=0;f=e[g];g++)d+=" "+cvox.DomUtil.getName(f,
+!0,c);0==d.length&&a&&a.id&&(a=document.querySelector('label[for="'+a.id+'"]'))&&(d=cvox.DomUtil.getName(a,b,c))}return cvox.DomUtil.collapseWhitespace(d)};cvox.DomUtil.getNearestAncestorLabel_=function(a){for(var b="";a&&"LABEL"!=a.tagName;)a=a.parentElement;a&&!a.hasAttribute("for")&&(b=cvox.DomUtil.getName(a,!0,!1));return b};
+cvox.DomUtil.getInputName_=function(a){var b="";"image"==a.type?b=cvox.DomUtil.getImageTitle(a):"submit"==a.type?b=a.hasAttribute("value")?a.getAttribute("value"):"Submit":"reset"==a.type?b=a.hasAttribute("value")?a.getAttribute("value"):"Reset":"button"==a.type&&a.hasAttribute("value")&&(b=a.getAttribute("value"));return b};
+cvox.DomUtil.getName=function(a,b,c,d){if(!a||!0==a.cvoxGetNameMarked)return"";a.cvoxGetNameMarked=!0;b=cvox.DomUtil.getName_(a,b,c,d);a.cvoxGetNameMarked=!1;a=cvox.DomUtil.getPrefixText(a);return a+b};cvox.DomUtil.hasChildrenBasedName_=function(a,b){return cvox.DomPredicates.linkPredicate([a])||cvox.DomPredicates.headingPredicate([a])||"BUTTON"==a.tagName||cvox.AriaUtil.isControlWidget(a)||!cvox.DomUtil.isLeafNode(a,b)?!0:!1};
+cvox.DomUtil.getName_=function(a,b,c,d){"undefined"===typeof b&&(b=!0);"undefined"===typeof c&&(c=!0);if(a.constructor==Text)return a.data;var e=cvox.DomUtil.getBaseLabel_(a,b,c);0==e.length&&cvox.DomUtil.isControl(a)&&(e=cvox.DomUtil.getNearestAncestorLabel_(a));0==e.length&&a.constructor==HTMLInputElement&&(e=cvox.DomUtil.getInputName_(a));return cvox.DomUtil.isInputTypeText(a)&&a.hasAttribute("placeholder")?(b=a.getAttribute("placeholder"),0<e.length?0<cvox.DomUtil.getValue(a).length?e:e+" with hint "+
+b:b):0<e.length?e:0==cvox.DomUtil.collapseWhitespace(a.textContent).length&&a.hasAttribute&&a.hasAttribute("title")?a.getAttribute("title"):!b||cvox.AriaUtil.isCompositeControl(a)?"":cvox.DomUtil.hasChildrenBasedName_(a,d)?cvox.DomUtil.getNameFromChildren(a,c,d):""};
+cvox.DomUtil.getNameFromChildren=function(a,b,c){void 0==b&&(b=!0);for(var d="",e="",f=0;f<a.childNodes.length;f++){var g=a.childNodes[f],e=a.childNodes[f-1]||g;if(b||!cvox.DomUtil.isControl(g)){var h=cvox.DomUtil.isVisible(g,{checkAncestors:!1});if(c||h&&!cvox.AriaUtil.isHidden(g))e="SPAN"==e.tagName||"SPAN"==g.tagName||"SPAN"==g.parentNode.tagName?"":" ",d+=e+cvox.DomUtil.getName(g,!0,b)}}return d};
+cvox.DomUtil.getPrefixText=function(a,b){b=b||0;for(var c=cvox.DomUtil.getAncestors(a),d="",e=c=cvox.DomPredicates.listItemPredicate(c);e&&e.firstChild;)e=e.firstChild;c&&c.parentNode&&0==b&&"OL"==c.parentNode.tagName&&a==e&&"none"!=document.defaultView.getComputedStyle(c.parentNode).listStyleType&&(d=cvox.DomUtil.toArray(c.parentNode.children).filter(function(a){return"LI"==a.tagName}),d=d.indexOf(c)+1,-1!=document.defaultView.getComputedStyle(c.parentNode).listStyleType.indexOf("latin")&&(d--,d=
+String.fromCharCode(65+d%26)),d+=". ");return d};
+cvox.DomUtil.getControlLabelHeuristics=function(a){if(a.hasAttribute&&(a.hasAttribute("aria-label")&&""==a.getAttribute("aria-label")||a.hasAttribute("aria-title")&&""==a.getAttribute("aria-title")))return"";for(var b=cvox.DomUtil.previousLeafNode(a),c=0;b&&(!cvox.DomUtil.hasContent(b)||cvox.DomUtil.isControl(b));)b=cvox.DomUtil.previousLeafNode(b),c++;for(var c=cvox.DomUtil.directedNextLeafNode(a),d=0;c&&(!cvox.DomUtil.hasContent(c)||cvox.DomUtil.isControl(c));)c=cvox.DomUtil.directedNextLeafNode(c),
+d++;if(b&&c){for(var d=a,e=0;d&&!cvox.DomUtil.isDescendantOfNode(b,d);)d=d.parentNode,e++;d=a;for(a=0;d&&!cvox.DomUtil.isDescendantOfNode(c,d);)d=d.parentNode,a++;b=a<e?c:b}else b=b||c;return b?cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(b)+" "+cvox.DomUtil.getName(b)):""};
+cvox.DomUtil.getValue=function(a){var b=cvox.AriaUtil.getActiveDescendant(a);if(b)return cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(b)+" "+cvox.DomUtil.getName(b));if(a.constructor==HTMLSelectElement){var b="",c=a.selectedOptions?a.selectedOptions[0]:null;a=a.selectedOptions?a.selectedOptions[a.selectedOptions.length-1]:null;c&&a&&c!=a?b=cvox.ChromeVox.msgs.getMsg("selected_options_value",[c.text,a.text]):c&&(b=c.text+"");return b}if(a.constructor==HTMLTextAreaElement)return a.value;if(a.constructor==
+HTMLInputElement)switch(a.type){case "hidden":case "image":case "submit":case "reset":case "button":case "checkbox":case "radio":return"";case "password":return a.value.replace(/./g,"dot ");default:return a.value}return a.isContentEditable?cvox.DomUtil.getNameFromChildren(a,!0):""};
+cvox.DomUtil.getImageTitle=function(a){a.hasAttribute("alt")?a=a.alt:a.hasAttribute("title")?a=a.title:(a=a.src,"data"!=a.substring(0,4)?(a=a.substring(a.lastIndexOf("/")+1,a.lastIndexOf(".")),a=1<=a.length&&16>=a.length?a+" Image":"Image"):a="Image");return a};
+cvox.DomUtil.hasContent=function(a){if(8==a.nodeType||cvox.DomUtil.isDescendantOf(a,"HEAD")||cvox.DomUtil.isDescendantOf(a,"SCRIPT")||cvox.DomUtil.isDescendantOf(a,"NOSCRIPT")||cvox.DomUtil.isDescendantOf(a,"NOEMBED")||cvox.DomUtil.isDescendantOf(a,"STYLE")||!cvox.DomUtil.isVisible(a)||cvox.AriaUtil.isHidden(a))return!1;if(cvox.DomUtil.isControl(a)||cvox.DomUtil.isDescendantOf(a,"VIDEO")||cvox.DomUtil.isDescendantOf(a,"AUDIO")||"IFRAME"==a.tagName&&a.src&&0!=a.src.indexOf("javascript:"))return!0;
+for(var b="button,input,select,textarea",c=a.parentElement;c&&"LABEL"!=c.tagName;)c=c.parentElement;if(c){var d=c.querySelector(b);if(c.hasAttribute("for")){if(c=c.getAttribute("for"),(c=document.getElementById(c))&&cvox.DomUtil.isControl(c)&&!d)return!1}else if(d)return!1}for(d=a.parentElement;d&&"LEGEND"!=d.tagName;)d=d.parentElement;if(d){for(c=d.parentElement;c&&"FIELDSET"!=c.tagName;)c=c.parentElement;d=c&&c.querySelector(b);if(c&&!d)return!1}if(cvox.DomPredicates.linkPredicate([a])||"TABLE"==
+a.tagName||cvox.DomUtil.isMath(a)||cvox.DomPredicates.headingPredicate([a]))return!0;b=cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getName(a);a=cvox.DomUtil.getState(a,!0);return b.match(/^\s+$/)&&""===a?!1:!0};cvox.DomUtil.getAncestors=function(a){for(var b=[];a;)b.push(a),a=a.parentNode;for(b.reverse();b.length&&!b[0].tagName&&!b[0].nodeValue;)b.shift();return b};cvox.DomUtil.compareAncestors=function(a,b){for(var c=0;a[c]&&b[c]&&a[c]==b[c];)c++;a[c]||b[c]||(c=-1);return c};
+cvox.DomUtil.getUniqueAncestors=function(a,b,c){a=cvox.DomUtil.getAncestors(a);b=cvox.DomUtil.getAncestors(b);a=cvox.DomUtil.compareAncestors(a,b);a=b.slice(a);return 0==a.length&&c?b:a};
+cvox.DomUtil.getRoleMsg=function(a,b){var c;c=cvox.AriaUtil.getRoleNameMsg(a);c||("INPUT"==a.tagName?c=cvox.DomUtil.INPUT_TYPE_TO_INFORMATION_TABLE_MSG[a.type]:"A"==a.tagName&&cvox.DomUtil.isInternalLink(a)?c="internal_link":"A"==a.tagName&&a.getAttribute("name")?c="":a.isContentEditable?c="input_type_text":cvox.DomUtil.isMath(a)?c="math_expr":"TABLE"==a.tagName&&cvox.DomUtil.isLayoutTable(a)?c="":b==cvox.VERBOSITY_BRIEF?c=cvox.DomUtil.TAG_TO_INFORMATION_TABLE_BRIEF_MSG[a.tagName]:(c=cvox.DomUtil.TAG_TO_INFORMATION_TABLE_VERBOSE_MSG[a.tagName],
+cvox.DomUtil.hasLongDesc(a)&&(c="image_with_long_desc"),!c&&a.onclick&&(c="clickable")));return c};cvox.DomUtil.getRole=function(a,b){var c=cvox.DomUtil.getRoleMsg(a,b)||"",d=c&&" "!=c?cvox.ChromeVox.msgs.getMsg(c):"";return d?d:c};cvox.DomUtil.getListLength=function(a){var b=0;for(a=a.firstChild;a;a=a.nextSibling)if("LI"==a.tagName||a.getAttribute&&"listitem"==a.getAttribute("role")){if(a.hasAttribute("aria-setsize")){var c=parseInt(a.getAttribute("aria-setsize"),10);if(!isNaN(c))return c}b++}return b};
+cvox.DomUtil.getStateMsgs=function(a,b){var c=cvox.AriaUtil.getActiveDescendant(a);if(c)return cvox.DomUtil.getStateMsgs(c,b);var c=[],d=a.getAttribute?a.getAttribute("role"):"";(c=cvox.AriaUtil.getStateMsgs(a,b))||(c=[]);"INPUT"==a.tagName?a.hasAttribute("aria-checked")||(d={"checkbox-true":"checkbox_checked_state","checkbox-false":"checkbox_unchecked_state","radio-true":"radio_selected_state","radio-false":"radio_unselected_state"},(d=d[a.type+"-"+!!a.checked])&&c.push([d])):"SELECT"==a.tagName?
+a.selectedOptions&&1>=a.selectedOptions.length?c.push(["list_position",cvox.ChromeVox.msgs.getNumber(a.selectedIndex+1),cvox.ChromeVox.msgs.getNumber(a.options.length)]):c.push(["selected_options_state",cvox.ChromeVox.msgs.getNumber(a.selectedOptions.length)]):"UL"!=a.tagName&&"OL"!=a.tagName&&"list"!=d||c.push(["list_with_items",cvox.ChromeVox.msgs.getNumber(cvox.DomUtil.getListLength(a))]);cvox.DomUtil.isDisabled(a)&&c.push(["aria_disabled_true"]);cvox.DomPredicates.linkPredicate([a])&&cvox.ChromeVox.visitedUrls[a.href]&&
+c.push(["visited_url"]);a.accessKey&&c.push(["access_key",a.accessKey]);return c};cvox.DomUtil.getState=function(a,b){return cvox.NodeStateUtil.expand(cvox.DomUtil.getStateMsgs(a,b))};cvox.DomUtil.isFocusable=function(a){return a&&"number"==typeof a.tabIndex&&("A"!=a.tagName||a.hasAttribute("href")||a.hasAttribute("tabindex"))?0<=a.tabIndex||a.hasAttribute&&a.hasAttribute("tabindex")&&"-1"==a.getAttribute("tabindex")?!0:!1:!1};
+cvox.DomUtil.findFocusableDescendant=function(a){return a&&(a=cvox.DomUtil.findNode(a,cvox.DomUtil.isFocusable))?a:null};cvox.DomUtil.countFocusableDescendants=function(a){return a?cvox.DomUtil.countNodes(a,cvox.DomUtil.isFocusable):0};cvox.DomUtil.isAttachedToDocument=function(a){for(;a;){if(a.tagName&&"HTML"==a.tagName)return!0;a=a.parentNode}return!1};
+cvox.DomUtil.clickElem=function(a,b,c,d){var e=cvox.AriaUtil.getActiveDescendant(a);e&&(a=e);if(c){c=null;a.onclick&&(c=a.onclick);!c&&1!=a.nodeType&&a.parentNode&&a.parentNode.onclick&&(c=a.parentNode.onclick);e=!0;if(c)try{e=c()}catch(f){}if(!e)return}c=document.createEvent("MouseEvents");d=d?"dblclick":"mousedown";c.initMouseEvent(d,!0,!0,document.defaultView,1,0,0,0,0,!1,!1,b,!1,0,null);c.fromCvox=!0;try{a.dispatchEvent(c)}catch(g){}c=document.createEvent("MouseEvents");c.initMouseEvent("mouseup",
+!0,!0,document.defaultView,1,0,0,0,0,!1,!1,b,!1,0,null);c.fromCvox=!0;try{a.dispatchEvent(c)}catch(h){}c=document.createEvent("MouseEvents");c.initMouseEvent("click",!0,!0,document.defaultView,1,0,0,0,0,!1,!1,b,!1,0,null);c.fromCvox=!0;try{a.dispatchEvent(c)}catch(k){}cvox.DomUtil.isInternalLink(a)&&cvox.DomUtil.syncInternalLink(a)};
+cvox.DomUtil.syncInternalLink=function(a){var b=a.href.split("#")[1];a=document.getElementById(b);a||(b=document.getElementsByName(b),0<b.length&&(a=b[0]));if(a){var b=a.parentNode,c=document.createElement("div");c.setAttribute("tabindex","-1");b.insertBefore(c,a);c.setAttribute("chromevoxignoreariahidden",1);c.focus();cvox.ChromeVox.syncToNode(a,!0)}};
+cvox.DomUtil.isInputTypeText=function(a){if(!a||a.constructor!=HTMLInputElement)return!1;switch(a.type){case "email":case "number":case "password":case "search":case "text":case "tel":case "url":case "":return!0;default:return!1}};cvox.DomUtil.isControl=function(a){if(cvox.AriaUtil.isControlWidget(a)&&cvox.DomUtil.isFocusable(a))return!0;if(a.tagName)switch(a.tagName){case "BUTTON":case "TEXTAREA":case "SELECT":return!0;case "INPUT":return"hidden"!=a.type}return a.isContentEditable?!0:!1};
+cvox.DomUtil.isLeafLevelControl=function(a){return cvox.DomUtil.isControl(a)?!(cvox.AriaUtil.isCompositeControl(a)&&cvox.DomUtil.findFocusableDescendant(a)):!1};cvox.DomUtil.getSurroundingControl=function(a){var b=null;if(!cvox.DomUtil.isControl(a)&&a.hasAttribute&&a.hasAttribute("role"))for(b=a.parentElement;b&&!cvox.AriaUtil.isCompositeControl(b);)b=b.parentElement;return b};
+cvox.DomUtil.directedNextLeafLikeNode=function(a,b,c){if(a!=document.body){for(;!cvox.DomUtil.directedNextSibling(a,b);){if(!a)return null;a=a.parentNode;if(a==document.body)return null}cvox.DomUtil.directedNextSibling(a,b)&&(a=cvox.DomUtil.directedNextSibling(a,b))}for(;cvox.DomUtil.directedFirstChild(a,b)&&!c(a);)a=cvox.DomUtil.directedFirstChild(a,b);return a==document.body?null:a};cvox.DomUtil.directedNextLeafNode=function(a,b){b=!!b;return cvox.DomUtil.directedNextLeafLikeNode(a,b,cvox.DomUtil.isLeafNode)};
+cvox.DomUtil.previousLeafNode=function(a){return cvox.DomUtil.directedNextLeafNode(a,!0)};cvox.DomUtil.directedFindFirstNode=function(a,b,c){for(a=cvox.DomUtil.directedFirstChild(a,b);a;){if(c(a))return a;var d=cvox.DomUtil.directedFindFirstNode(a,b,c);if(d)return d;a=cvox.DomUtil.directedNextSibling(a,b)}return null};cvox.DomUtil.directedFindDeepestNode=function(a,b,c){var d=cvox.DomUtil.directedFindFirstNode(a,b,c);return d?cvox.DomUtil.directedFindDeepestNode(d,b,c):c(a)?a:null};
+cvox.DomUtil.directedFindNextNode=function(a,b,c,d,e,f){e=!!e;f=!!f;if(!cvox.DomUtil.isDescendantOfNode(a,b)||a==b)return null;for(var g=cvox.DomUtil.directedNextSibling(a,c);g;){if(!f&&d(g))return g;var h=(f?cvox.DomUtil.directedFindDeepestNode:cvox.DomUtil.directedFindFirstNode)(g,c,d);if(h)return h;if(f&&d(g))return g;g=cvox.DomUtil.directedNextSibling(g,c)}a=a.parentNode;return e&&d(a)?a:cvox.DomUtil.directedFindNextNode(a,b,c,d,e,f)};
+cvox.DomUtil.getControlValueAndStateString=function(a){var b=cvox.DomUtil.getSurroundingControl(a);return b?cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getName(a)+" "+cvox.DomUtil.getState(a,!0)):cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getState(a,!0))};cvox.DomUtil.isInternalLink=function(a){return 1==a.nodeType&&(a=a.getAttribute("href"))&&-1!=a.indexOf("#")?(a=a.split("#")[0],""==a||a==window.location.pathname):!1};
+cvox.DomUtil.getLinkURL=function(a){if("A"==a.tagName){if(a.getAttribute("href"))return cvox.DomUtil.isInternalLink(a)?cvox.ChromeVox.msgs.getMsg("internal_link"):a.getAttribute("href")}else if(cvox.AriaUtil.getRoleName(a)==cvox.ChromeVox.msgs.getMsg("aria_role_link"))return cvox.ChromeVox.msgs.getMsg("unknown_link");return""};cvox.DomUtil.getContainingTable=function(a,b){var c=cvox.DomUtil.getAncestors(a);return cvox.DomUtil.findTableNodeInList(c,b)};
+cvox.DomUtil.findTableNodeInList=function(a,b){b=b||{allowCaptions:!1};for(var c=a.length-1,d;d=a[c];c--)if(d.constructor!=Text){if(!b.allowCaptions&&"CAPTION"==d.tagName)break;if("TABLE"==d.tagName||cvox.AriaUtil.isGrid(d))return d}return null};
+cvox.DomUtil.isLayoutTable=function(a){if(a.rows&&(1==a.rows.length||1==a.rows[0].childElementCount))return!0;if(cvox.AriaUtil.isGrid(a)||cvox.AriaUtil.isLandmark(a)||a.caption||a.summary||0<cvox.XpathUtil.evalXPath("tbody/tr/th",a).length&&0<cvox.XpathUtil.evalXPath("tbody/tr/td",a).length||0<cvox.XpathUtil.evalXPath("colgroup",a).length||0<cvox.XpathUtil.evalXPath("thead",a).length||0<cvox.XpathUtil.evalXPath("tfoot",a).length)return!1;if(0<cvox.XpathUtil.evalXPath("tbody/tr/td/embed",a).length||
+0<cvox.XpathUtil.evalXPath("tbody/tr/td/object",a).length||0<cvox.XpathUtil.evalXPath("tbody/tr/td/iframe",a).length||0<cvox.XpathUtil.evalXPath("tbody/tr/td/applet",a).length)return!0;var b=0;cvox.DomUtil.hasBorder(a)||b++;6>=a.rows.length&&b++;12>=cvox.DomUtil.countPreviousTags(a)&&b++;0<cvox.XpathUtil.evalXPath("tbody/tr/td/table",a).length&&b++;return 3<=b};cvox.DomUtil.countPreviousTags=function(a){var b=cvox.DomUtil.getAncestors(a);return b.length+cvox.DomUtil.countPreviousSiblings(a)};
+cvox.DomUtil.countPreviousSiblings=function(a){var b=0;for(a=a.previousSibling;null!=a;)a.constructor!=Text&&b++,a=a.previousSibling;return b};cvox.DomUtil.hasBorder=function(a){return a.frame?-1==a.frame.indexOf("void"):a.border?1==a.border.length?"0"!=a.border:0!=a.border.slice(0,-2):a.style.borderStyle&&"none"==a.style.borderStyle?!1:a.style.borderWidth?0!=a.style.borderWidth.slice(0,-2):a.style.borderColor?!0:!1};
+cvox.DomUtil.getFirstLeafNode=function(){for(var a=document.body;a&&a.firstChild;)a=a.firstChild;for(;a&&!cvox.DomUtil.hasContent(a);)a=cvox.DomUtil.directedNextLeafNode(a);return a};cvox.DomUtil.findNode=function(a,b){var c=[],d=cvox.DomUtil.findNodes_(a,b,c,!0,1E4);return d?c[0]:void 0};cvox.DomUtil.countNodes=function(a,b){var c=[];cvox.DomUtil.findNodes_(a,b,c,!1,1E4);return c.length};
+cvox.DomUtil.findNodes_=function(a,b,c,d,e){if(null!=a||0==e)for(a=a.firstChild;a;){if(b(a)&&(c.push(a),d))return!0;e-=1;if(cvox.DomUtil.findNodes_(a,b,c,d,e))return!0;a=a.nextSibling}return!1};cvox.DomUtil.toArray=function(a){for(var b=[],c=0;c<a.length;c++)b.push(a[c]);return b};
+cvox.DomUtil.shallowChildlessClone=function(a,b){if("#text"==a.nodeName)return document.createTextNode(a.nodeValue);if("#comment"==a.nodeName)return document.createComment(a.nodeValue);for(var c=document.createElement(a.nodeName),d=0;d<a.attributes.length;++d){var e=a.attributes[d];b&&b[e.nodeName]||c.setAttribute(e.nodeName,e.nodeValue)}return c};
+cvox.DomUtil.deepClone=function(a,b){for(var c=cvox.DomUtil.shallowChildlessClone(a,b),d=0;d<a.childNodes.length;++d)c.appendChild(cvox.DomUtil.deepClone(a.childNodes[d],b));return c};cvox.DomUtil.directedFirstChild=function(a,b){return b?a.lastChild:a.firstChild};cvox.DomUtil.directedNextSibling=function(a,b){return a?b?a.previousSibling:a.nextSibling:null};cvox.DomUtil.createSimpleClickFunction=function(a){var b=a.cloneNode(!0);return function(){cvox.DomUtil.clickElem(b,!1,!1)}};
+cvox.DomUtil.addNodeToHead=function(a,b){if(!b||!document.getElementById(b)){var c=document.head||document.body;c.appendChild(a)}};cvox.DomUtil.getContainingMath=function(a){a=cvox.DomUtil.getAncestors(a);return cvox.DomUtil.findMathNodeInList(a)};cvox.DomUtil.findMathNodeInList=function(a){for(var b=0,c;c=a[b];b++)if(cvox.DomUtil.isMath(c))return c;return null};cvox.DomUtil.isMath=function(a){return cvox.DomUtil.isMathml(a)||cvox.DomUtil.isMathJax(a)||cvox.DomUtil.isMathImg(a)||cvox.AriaUtil.isMath(a)};
+cvox.DomUtil.ALT_MATH_CLASSES={tex:["tex","latex"],asciimath:["numberedequation","inlineformula","displayformula"]};cvox.DomUtil.altMathQuerySelector=function(a){return(a=cvox.DomUtil.ALT_MATH_CLASSES[a])?a.map(function(a){return"img."+a}).join(", "):""};cvox.DomUtil.isMathImg=function(a){if(!a||!a.tagName||!a.className||"IMG"!=a.tagName)return!1;a=a.className.toLowerCase();return-1!=cvox.DomUtil.ALT_MATH_CLASSES.tex.indexOf(a)||-1!=cvox.DomUtil.ALT_MATH_CLASSES.asciimath.indexOf(a)};
+cvox.DomUtil.isMathml=function(a){return a&&a.tagName?"math"==a.tagName.toLowerCase():!1};cvox.DomUtil.isMathJax=function(a){function b(a,b){return"SPAN"==a.tagName&&a.className.split(" ").some(function(a){return a.toLowerCase()==b})}return a&&a.tagName&&a.className?b(a,"math")?(a=cvox.DomUtil.getAncestors(a),a.some(function(a){return b(a,"mathjax")})):!1:!1};cvox.DomUtil.getMathSpanId=function(a){if(a=document.getElementById(a+"-Frame"))if(a=a.querySelector("span.math"))return a.id};
+cvox.DomUtil.hasLongDesc=function(a){return a&&a.longDesc?!0:!1};cvox.DomUtil.getNodeTagName=function(a){return a.nodeType==Node.ELEMENT_NODE?a.tagName:""};cvox.DomUtil.purgeNodes=function(a){return cvox.DomUtil.toArray(a).filter(function(a){return a.nodeType!=Node.TEXT_NODE||!a.textContent.match(/^\s+$/)})};cvox.DomUtil.elementToPoint=function(a){if(!a)return{x:0,y:0};a.constructor==Text&&(a=a.parentNode);a=a.getBoundingClientRect();return{x:a.left+a.width/2,y:a.top+a.height/2}};cvox.SelectionUtil=function(){};cvox.SelectionUtil.cleanUpParagraphForward=function(a){for(;3==a.focusNode.nodeType;){var b=a.focusNode,c=a.focusOffset;a.modify("extend","forward","sentence");if(b==a.focusNode&&c==a.focusOffset)return!1}return!0};cvox.SelectionUtil.cleanUpParagraphBack=function(a){for(var b,c;3==a.focusNode.nodeType&&(b=a.focusNode,c=a.focusOffset,a.modify("extend","backward","sentence"),b!=a.focusNode||c!=a.focusOffset););return!0};
+cvox.SelectionUtil.cleanUpSentence=function(a){for(var b=!0;b;)if(3==a.focusNode.nodeType){var c=a.focusNode,d=a.focusOffset;if(0<a.rangeCount&&0<a.getRangeAt(0).endOffset)if("."==c.substringData(a.getRangeAt(0).endOffset-1,1))break;else if(" "==c.substringData(a.getRangeAt(0).endOffset-1,1))break;else{if(a.modify("extend","forward","sentence"),c==a.focusNode&&d==a.focusOffset)return!1}else break}else break;return!0};
+cvox.SelectionUtil.findSelPosition=function(a){if(0==a.rangeCount)return[0,0];var b=a.getRangeAt(0).getBoundingClientRect();if(!b)return[0,0];a=window.pageYOffset+b.top;b=window.pageXOffset+b.left;return[a,b]};cvox.SelectionUtil.findTopLeftPosition=function(a){var b=0,c=0;if(a.offsetParent)for(b=a.offsetLeft,c=a.offsetTop,a=a.offsetParent;null!==a;)b+=a.offsetLeft,c+=a.offsetTop,a=a.offsetParent;return[c,b]};
+cvox.SelectionUtil.isSelectionValid=function(a){var b=RegExp(/^\s+$/);return!(b.test(a.toString())||""==a.toString())};cvox.SelectionUtil.isRangeValid=function(a){a=a.cloneContents().textContent;var b=RegExp(/^\s+$/);return!(b.test(a)||""==a)};cvox.SelectionUtil.findPos_=function(a){var b=0,c=0;if(a.offsetParent){do b+=a.offsetLeft,c+=a.offsetTop;while(a=a.offsetParent)}return[b,c]};
+cvox.SelectionUtil.scrollElementsToView=function(a){for(;a&&!a.getBoundingClientRect;)a=a.parentElement;if(a){for(var b=a,c=b.parentElement;b!=document.body&&c;)b.scrollTop=b.offsetTop,b.scrollLeft=b.offsetLeft,b=c,c=b.parentElement;a=cvox.SelectionUtil.findPos_(a);window.scrollTo(a[0]-window.innerWidth/2,a[1]-window.innerHeight/2)}};
+cvox.SelectionUtil.scrollToSelection=function(a){if(0!=a.rangeCount){cvox.SelectionUtil.scrollElementsToView(a.focusNode);var b=cvox.SelectionUtil.findSelPosition(a);a=b[0];var b=b[1],c=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop,d=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,e=window.innerWidth||document.documentElement.innerWidth||document.body.clientWidth;b<e&&(b=0);c+d<a?(a-=d,window.scroll(b,a+100)):a<c&&window.scroll(b,
+a-100)}};cvox.SelectionUtil.isAllWs=function(a){return!/[^\t\n\r ]/.test(a.data)};cvox.SelectionUtil.isIgnorable=function(a){return 8==a.nodeType||3==a.nodeType&&cvox.SelectionUtil.isAllWs(a)};cvox.SelectionUtil.nodeBefore=function(a){for(;a=a.previousSibling;)if(!cvox.SelectionUtil.isIgnorable(a))return a;return null};cvox.SelectionUtil.nodeAfter=function(a){for(;a=a.nextSibling;)if(!cvox.SelectionUtil.isIgnorable(a))return a;return null};
+cvox.SelectionUtil.lastChildNode=function(a){for(a=a.lastChild;a;){if(!cvox.SelectionUtil.isIgnorable(a))return a;a=a.previousSibling}return null};cvox.SelectionUtil.firstChildNode=function(a){for(a=a.firstChild;a;){if(!cvox.SelectionUtil.isIgnorable(a))return a;a=a.nextSibling}return null};cvox.SelectionUtil.dataOf=function(a){a=a.data;a=a.replace(/[\t\n\r ]+/g," ");" "==a.charAt(0)&&(a=a.substring(1,a.length));" "==a.charAt(a.length-1)&&(a=a.substring(0,a.length-1));return a};
+cvox.SelectionUtil.hasContentWithTag=function(a,b){if(!a||!a.anchorNode||!a.focusNode)return!1;if(a.anchorNode.tagName&&a.anchorNode.tagName==b||a.focusNode.tagName&&a.focusNode.tagName==b||a.anchorNode.parentNode.tagName&&a.anchorNode.parentNode.tagName==b||a.focusNode.parentNode.tagName&&a.focusNode.parentNode.tagName==b)return!0;var c=a.getRangeAt(0).cloneContents(),d=document.createElement("span");d.appendChild(c);return 0<d.getElementsByTagName(b).length};
+cvox.SelectionUtil.selectText=function(a,b,c){var d=document.createRange();d.setStart(a,b);d.setEnd(a,c);a=window.getSelection();a.removeAllRanges();a.addRange(d)};cvox.SelectionUtil.selectAllTextInNode=function(a){var b=document.createRange();b.setStart(a,0);b.setEndAfter(a);a=window.getSelection();a.removeAllRanges();a.addRange(b)};
+cvox.SelectionUtil.collapseToStart=function(a){var b=window.getSelection(),c=b.anchorNode,d=b.anchorOffset;null==c&&(c=a,d=0);a=document.createRange();a.setStart(c,d);a.setEnd(c,d);b.removeAllRanges();b.addRange(a)};cvox.SelectionUtil.collapseToEnd=function(a){var b=window.getSelection(),c=b.focusNode,d=b.focusOffset;null==c&&(c=a,d=0);a=document.createRange();a.setStart(c,d);a.setEnd(c,d);b.removeAllRanges();b.addRange(a)};
+cvox.SelectionUtil.getText=function(){var a=window.getSelection();if(cvox.SelectionUtil.hasContentWithTag(a,"IMG")){var b="",a=a.getRangeAt(0).cloneContents(),c=document.createElement("span");c.appendChild(a);for(var a=cvox.XpathUtil.getLeafNodes(c),c=0,d;d=a[c];c++)b=b+" "+cvox.DomUtil.getName(d);return b}return this.getSelectionText_()};cvox.SelectionUtil.getSelectionText_=function(){return""+window.getSelection()};
+cvox.SelectionUtil.getRangeText=function(a){return a?a.cloneContents().textContent.replace(/\s+/g," "):""};cvox.TraverseUtil=function(){};cvox.TraverseUtil.getNodeText=function(a){return a.constructor==Text?a.data:""};cvox.TraverseUtil.treatAsLeafNode=function(a){return 0==a.childNodes.length||"SELECT"==a.nodeName||"listbox"==a.getAttribute("role")||"OBJECT"==a.nodeName};cvox.TraverseUtil.isWhitespace=function(a){return" "==a||"\n"==a||"\r"==a||"\t"==a};
+cvox.TraverseUtil.setSelection=function(a,b){var c=window.getSelection();c.removeAllRanges();var d=document.createRange();d.setStart(a.node,a.index);d.setEnd(b.node,b.index);c.addRange(d);return c};cvox.TraverseUtil.isHidden=function(a){if(a instanceof HTMLElement&&"true"==a.getAttribute("aria-hidden"))return!0;switch(a.tagName){case "SCRIPT":case "NOSCRIPT":return!0}return!1};
+cvox.TraverseUtil.forwardsChar=function(a,b,c){for(;;){var d=null;if(!cvox.TraverseUtil.treatAsLeafNode(a.node))for(var e=a.index;e<a.node.childNodes.length;e++){var f=a.node.childNodes[e];if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}}if(d)a.node=d,a.index=0,a.text=cvox.TraverseUtil.getNodeText(a.node),a.node instanceof HTMLElement&&b.push(a.node);else{if(a.index<a.text.length)return a.text[a.index++];for(;null!=
+a.node;){d=null;for(f=a.node.nextSibling;null!=f;f=f.nextSibling)if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}if(d){a.node instanceof HTMLElement&&c.push(a.node);a.node=d;a.text=cvox.TraverseUtil.getNodeText(d);a.index=0;a.node instanceof HTMLElement&&b.push(a.node);break}if(a.node.parentNode&&a.node.parentNode.constructor!=HTMLBodyElement)a.node instanceof HTMLElement&&c.push(a.node),a.node=a.node.parentNode,
+a.text=null,a.index=0;else return null}}}};
+cvox.TraverseUtil.backwardsChar=function(a,b,c){for(;;){var d=null;if(!cvox.TraverseUtil.treatAsLeafNode(a.node))for(var e=a.index-1;0<=e;e--){var f=a.node.childNodes[e];if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}}if(d)a.node=d,a.text=cvox.TraverseUtil.getNodeText(a.node),a.index=a.text.length?a.text.length:a.node.childNodes.length,a.node instanceof HTMLElement&&b.push(a.node);else{if(0<a.text.length&&0<a.index)return a.text[--a.index];
+for(;;){d=null;for(f=a.node.previousSibling;null!=f;f=f.previousSibling)if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}if(d){a.node instanceof HTMLElement&&c.push(a.node);a.node=d;a.text=cvox.TraverseUtil.getNodeText(d);a.index=a.text.length?a.text.length:a.node.childNodes.length;a.node instanceof HTMLElement&&b.push(a.node);break}if(a.node.parentNode&&a.node.parentNode.constructor!=HTMLBodyElement)a.node instanceof
+HTMLElement&&c.push(a.node),a.node=a.node.parentNode,a.text=null,a.index=0;else return null}}}};
+cvox.TraverseUtil.getNextChar=function(a,b,c,d,e){a.copyFrom(b);var f=cvox.TraverseUtil.forwardsChar(b,c,d);if(null==f)return null;for(var g=cvox.TraverseUtil.isWhitespace(f);cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(b.node);)if(f=cvox.TraverseUtil.forwardsChar(b,c,d),null==f)return null;if(e||!g)return a.copyFrom(b),a.index--,f;for(d=0;d<c.length;d++)if(cvox.TraverseUtil.isHidden(c[d]))return b.index--,a.copyFrom(b),a.index--," ";b.index--;return" "};
+cvox.TraverseUtil.getPreviousChar=function(a,b,c,d,e){b.copyFrom(a);var f=cvox.TraverseUtil.backwardsChar(a,c,d);if(null==f)return null;for(var g=cvox.TraverseUtil.isWhitespace(f);cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(a.node);)if(f=cvox.TraverseUtil.backwardsChar(a,c,d),null==f)return null;if(e||!g)return b.copyFrom(a),b.index++,f;for(d=0;d<c.length;d++)if(cvox.TraverseUtil.isHidden(c[d]))return a.index++,b.copyFrom(a),b.index++," ";a.index++;return" "};
+cvox.TraverseUtil.getNextWord=function(a,b,c,d){var e=b.clone(),f=cvox.TraverseUtil.forwardsChar(e,c,d);if(null==f)return null;for(;cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(e.node);)if(f=cvox.TraverseUtil.forwardsChar(e,c,d),null==f)return null;a.copyFrom(e);a.index--;b.copyFrom(e);a=f;c=[];d=[];f=cvox.TraverseUtil.forwardsChar(e,c,d);if(null==f)return a;for(;!cvox.TraverseUtil.isWhitespace(f)&&0==c.length&&0==d&&(a+=f,b.copyFrom(e),f=cvox.TraverseUtil.forwardsChar(e,c,d),null!=
+f););return a};
+cvox.TraverseUtil.getPreviousWord=function(a,b,c,d){var e=a.clone(),f=cvox.TraverseUtil.backwardsChar(e,c,d);if(null==f)return null;for(;cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(e.node);)if(f=cvox.TraverseUtil.backwardsChar(e,c,d),null==f)return null;b.copyFrom(e);b.index++;a.copyFrom(e);b=f;c=[];d=[];f=cvox.TraverseUtil.backwardsChar(e,c,d);if(null==f)return b;for(;!cvox.TraverseUtil.isWhitespace(f)&&0==c.length&&0==d.length&&(b=f+b,a.copyFrom(e),f=cvox.TraverseUtil.backwardsChar(e,c,
+d),null!=f););return b};cvox.TraverseUtil.includesBreakTagOrSkippedNode=function(a,b,c){for(var d=0;d<a.length;d++){if(cvox.TraverseUtil.isHidden(a[d]))return!0;var e=window.getComputedStyle(a[d],null);if(e&&"inline"!=e.display||c[a[d].tagName])return!0}for(d=0;d<b.length;d++)if((e=window.getComputedStyle(b[d],null))&&"inline"!=e.display||c[b[d].tagName])return!0;return!1};
+cvox.TraverseUtil.getNextSentence=function(a,b,c,d,e){return cvox.TraverseUtil.getNextString(a,b,c,d,function(a,b,c,d){return"."==a.substr(-1)?!0:cvox.TraverseUtil.includesBreakTagOrSkippedNode(c,d,e)})};cvox.TraverseUtil.getPreviousSentence=function(a,b,c,d,e){return cvox.TraverseUtil.getPreviousString(a,b,c,d,function(a,b,c,d){return"."==b.substr(-1)?!0:cvox.TraverseUtil.includesBreakTagOrSkippedNode(c,d,e)})};
+cvox.TraverseUtil.getNextLine=function(a,b,c,d,e){var f=document.createRange(),g=null,h=b.clone();return cvox.TraverseUtil.getNextString(a,b,c,d,function(c,d,m,p){f.setStart(a.node,a.index);f.setEnd(b.node,b.index);c=f.getBoundingClientRect();g||(g=c);if(c.bottom!=g.bottom&&!cvox.DomPredicates.linkPredicate(cvox.DomUtil.getAncestors(b.node)))return b.copyFrom(h),!0;g=c;h.copyFrom(b);return cvox.TraverseUtil.includesBreakTagOrSkippedNode(m,p,e)})};
+cvox.TraverseUtil.getPreviousLine=function(a,b,c,d,e){var f=document.createRange(),g=null,h=a.clone();return cvox.TraverseUtil.getPreviousString(a,b,c,d,function(c,d,m,p){f.setStart(a.node,a.index);f.setEnd(b.node,b.index);c=f.getBoundingClientRect();g||(g=c);if(c.top!=g.top&&!cvox.DomPredicates.linkPredicate(cvox.DomUtil.getAncestors(a.node)))return a.copyFrom(h),!0;g=c;h.copyFrom(a);return cvox.TraverseUtil.includesBreakTagOrSkippedNode(m,p,e)})};
+cvox.TraverseUtil.getNextParagraph=function(a,b,c,d){return cvox.TraverseUtil.getNextString(a,b,c,d,function(a,b,c,d){for(a=0;a<c.length;a++)if(cvox.TraverseUtil.isHidden(c[a])||(b=window.getComputedStyle(c[a],null))&&"inline"!=b.display)return!0;for(a=0;a<d.length;a++)if((b=window.getComputedStyle(d[a],null))&&"inline"!=b.display)return!0;return!1})};
+cvox.TraverseUtil.getPreviousParagraph=function(a,b,c,d){return cvox.TraverseUtil.getPreviousString(a,b,c,d,function(a,b,c,d){for(a=0;a<c.length;a++)if(cvox.TraverseUtil.isHidden(c[a])||(b=window.getComputedStyle(c[a],null))&&"inline"!=b.display)return!0;for(a=0;a<d.length;a++)if((b=window.getComputedStyle(d[a],null))&&"inline"!=b.display)return!0;return!1})};
+cvox.TraverseUtil.getNextString=function(a,b,c,d,e){c=b.clone();d=b.clone();var f=[],g=[],h="",k=cvox.TraverseUtil.getNextWord(c,d,f,g);if(null==k)return null;for(a.copyFrom(c);!(h&&e(h,k,f,g)||(h&&(h+=" "),h+=k,b.copyFrom(d),f=[],g=[],k=cvox.TraverseUtil.getNextWord(c,d,f,g),null==k)););return h};
+cvox.TraverseUtil.getPreviousString=function(a,b,c,d,e){c=a.clone();d=a.clone();var f=[],g=[],h="",k=cvox.TraverseUtil.getPreviousWord(c,d,f,g);if(null==k)return null;for(b.copyFrom(d);!(h&&e(h,k,f,g)||(h&&(h=" "+h),h=k+h,a.copyFrom(c),f=[],g=[],k=cvox.TraverseUtil.getPreviousWord(c,d,f,g),null==k)););return h};cvox.CursorSelection=function(a,b,c){this.start=a.clone();this.end=b.clone();void 0==c&&(c=!1);if((this.isReversed_=c)&&this.start.node.compareDocumentPosition(this.end.node)==cvox.CursorSelection.BEFORE||!this.isReversed_&&this.end.node.compareDocumentPosition(this.start.node)==cvox.CursorSelection.BEFORE)a=this.start,this.start=this.end,this.end=a};cvox.CursorSelection.BEFORE=4;
+cvox.CursorSelection.prototype.setReversed=function(a){if(a==this.isReversed_)return this;var b=this.start;this.start=this.end;this.end=b;this.isReversed_=a;return this};cvox.CursorSelection.prototype.isReversed=function(){return this.isReversed_};cvox.CursorSelection.prototype.absStart=function(){return this.isReversed_?this.end:this.start};cvox.CursorSelection.prototype.absEnd=function(){return this.isReversed_?this.start:this.end};
+cvox.CursorSelection.prototype.clone=function(){return new cvox.CursorSelection(this.start,this.end,this.isReversed_)};cvox.CursorSelection.prototype.select=function(){var a=window.getSelection();a.removeAllRanges();this.normalize();a.addRange(this.getRange())};cvox.CursorSelection.fromNode=function(a){if(!a)return null;var b=cvox.TraverseUtil.getNodeText(a);return new cvox.CursorSelection(new cvox.Cursor(a,0,b),new cvox.Cursor(a,0,b))};cvox.CursorSelection.fromBody=function(){return cvox.CursorSelection.fromNode(document.body)};
+cvox.CursorSelection.prototype.getText=function(){return this.start.equals(this.end)?cvox.TraverseUtil.getNodeText(this.start.node):cvox.SelectionUtil.getRangeText(this.getRange())};cvox.CursorSelection.prototype.getRange=function(){var a=document.createRange();this.isReversed_?(a.setStart(this.end.node,this.end.index),a.setEnd(this.start.node,this.start.index)):(a.setStart(this.start.node,this.start.index),a.setEnd(this.end.node,this.end.index));return a};
+cvox.CursorSelection.prototype.equals=function(a){return this.start.equals(a.start)&&this.end.equals(a.end)};cvox.CursorSelection.prototype.absEquals=function(a){return this.start.equals(a.start)&&this.end.equals(a.end)||this.end.equals(a.start)&&this.start.equals(a.end)};cvox.CursorSelection.prototype.directedBefore=function(a){var b=this.start.node.compareDocumentPosition(a.start.node)==cvox.CursorSelection.BEFORE;return this.start.node==a.start.node||(this.isReversed()?!b:b)};
+cvox.CursorSelection.prototype.normalize=function(){if(0==this.absEnd().index&&this.absEnd().node){var a=this.absEnd().node,b=document.createRange();b.selectNodeContents(a);this.absEnd().index=b.endOffset}return this};cvox.CursorSelection.prototype.collapse=function(){if(this.start.equals(this.end))return this;this.end.copyFrom(this.start);if(0==this.start.text.length)return this;this.isReversed()?0<this.end.index&&this.end.index--:this.end.index<this.end.text.length&&this.end.index++;return this};cvox.PlatformUtil={};cvox.PlatformFilter={NONE:0,WINDOWS:1,MAC:2,LINUX:4,WML:7,CHROMEOS:8,ANDROID:16};cvox.PlatformUtil.matchesPlatform=function(a){var b=navigator.userAgent;return void 0==a?!0:-1!=b.indexOf("Android")?0!=(a&cvox.PlatformFilter.ANDROID):-1!=b.indexOf("Win")?0!=(a&cvox.PlatformFilter.WINDOWS):-1!=b.indexOf("Mac")?0!=(a&cvox.PlatformFilter.MAC):-1!=b.indexOf("Linux")?0!=(a&cvox.PlatformFilter.LINUX):-1!=b.indexOf("CrOS")?0!=(a&cvox.PlatformFilter.CHROMEOS):!1};cvox.Spannable=function(a,b){this.string_=a||"";this.spans_=[];if(goog.isDef(b)){var c=this.string_.length;this.spans_.push({value:b,start:0,end:c})}};cvox.Spannable.prototype.toString=function(){return this.string_};cvox.Spannable.prototype.getLength=function(){return this.string_.length};cvox.Spannable.prototype.setSpan=function(a,b,c){this.removeSpan(a);if(0<=b&&b<=c&&c<=this.string_.length)this.spans_.push({value:a,start:b,end:c});else throw new RangeError("span out of range");};
+cvox.Spannable.prototype.removeSpan=function(a){for(var b=this.spans_.length-1;0<=b;b--)this.spans_[b].value===a&&this.spans_.splice(b,1)};cvox.Spannable.prototype.append=function(a){if(a instanceof cvox.Spannable){var b=a,c=this.getLength();this.string_+=b.string_;a.spans_.forEach(goog.bind(function(a){this.setSpan(a.value,a.start+c,a.end+c)},this))}else"string"===typeof a&&(this.string_+=a)};
+cvox.Spannable.prototype.getSpan=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.start<=a&&a<c.end)return c.value}};cvox.Spannable.prototype.getSpanInstanceOf=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.value instanceof a)return c.value}};cvox.Spannable.prototype.getSpans=function(a){for(var b=[],c=0;c<this.spans_.length;c++){var d=this.spans_[c];d.start<=a&&a<d.end&&b.push(d.value)}return b};
+cvox.Spannable.prototype.getSpanStart=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.value===a)return c.start}return null};cvox.Spannable.prototype.getSpanEnd=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.value===a)return c.end}return null};
+cvox.Spannable.prototype.substring=function(a,b){var c=goog.isDef(b)?b:this.string_.length;if(0>a||c>this.string_.length||a>c)throw new RangeError("substring indices out of range");for(var d=new cvox.Spannable(this.string_.substring(a,c)),e=0;e<this.spans_.length;e++){var f=this.spans_[e];if(f.start<=c&&f.end>=a){var g=Math.max(0,f.start-a),h=Math.min(c-a,f.end-a);d.spans_.push({value:f.value,start:g,end:h})}}return d};
+cvox.Spannable.prototype.trim=function(){if(/^\s*$/.test(this.string_))return this.substring(0,0);var a=this.string_.match(/^\s*/)[0].length,b=this.string_.match(/\s*$/).index;return this.substring(a,b)};cvox.NavBraille=function(a){this.text=a.text instanceof cvox.Spannable?a.text:new cvox.Spannable(a.text);this.startIndex=a.startIndex?a.startIndex:0;this.endIndex=a.endIndex?a.endIndex:0};cvox.NavBraille.fromText=function(a){return new cvox.NavBraille({text:a})};cvox.NavBraille.prototype.isEmpty=function(){return 0==this.text.getLength()};cvox.NavBraille.prototype.toString=function(){return'NavBraille(text="'+this.text.toString()+'" startIndex="'+this.startIndex+'" endIndex="'+this.endIndex+'")'};
+cvox.NavBraille.prototype.toJson=function(){return{text:this.text.toString(),startIndex:this.startIndex,endIndex:this.endIndex}};cvox.NavBraille.prototype.write=function(){cvox.PlatformUtil.matchesPlatform(cvox.PlatformFilter.CHROMEOS|cvox.PlatformFilter.ANDROID)&&cvox.ChromeVox.braille.write(this)};cvox.BrailleKeyCommand={PAN_LEFT:"pan_left",PAN_RIGHT:"pan_right",LINE_UP:"line_up",LINE_DOWN:"line_down",TOP:"top",BOTTOM:"bottom",ROUTING:"routing",SECONDARY_ROUTING:"secondary_routing",DOTS:"dots",STANDARD_KEY:"standard_key"};cvox.BrailleKeyEvent={};cvox.BrailleInterface=function(){};cvox.BrailleInterface.prototype.write=function(){};cvox.AbstractBraille=function(){};cvox.AbstractHost=function(){};cvox.AbstractHost.State={ACTIVE:0,INACTIVE:1,KILLED:2};cvox.AbstractHost.prototype.init=function(){};cvox.AbstractHost.prototype.reinit=function(){};cvox.AbstractHost.prototype.onPageLoad=function(){};cvox.AbstractHost.prototype.getApiSrc=function(){return""};cvox.AbstractHost.prototype.getFileSrc=function(){return""};cvox.AbstractHost.prototype.hasTtsCallback=function(){return!0};cvox.AbstractHost.prototype.ttsLoaded=function(){return!0};
+cvox.AbstractHost.prototype.mustRedispatchClickEvent=function(){return!1};cvox.AbstractHost.prototype.activateOrDeactivateChromeVox=function(a){this.onStateChanged_(a?cvox.AbstractHost.State.ACTIVE:cvox.AbstractHost.State.INACTIVE)};cvox.AbstractHost.prototype.killChromeVox=function(){this.onStateChanged_(cvox.AbstractHost.State.KILLED)};
+cvox.AbstractHost.prototype.onStateChanged_=function(a){var b=a==cvox.AbstractHost.State.ACTIVE;if(b!=cvox.ChromeVox.isActive)switch(cvox.ChromeVoxEventWatcher.cleanup(window),a){case cvox.AbstractHost.State.ACTIVE:cvox.ChromeVox.isActive=!0;cvox.ChromeVox.navigationManager.showOrHideIndicator(!0);cvox.ChromeVoxEventWatcher.init(window);document.activeElement?(a=document.hasFocus()&&!document.webkitHidden,cvox.ApiImplementation.syncToNode(document.activeElement,a)):cvox.ChromeVox.navigationManager.updateIndicator();
+break;case cvox.AbstractHost.State.INACTIVE:cvox.ChromeVox.isActive=!1;cvox.ChromeVox.navigationManager.showOrHideIndicator(!1);cvox.ChromeVoxEventWatcher.init(window);break;case cvox.AbstractHost.State.KILLED:cvox.ChromeVox.isActive=!1,cvox.ChromeVox.navigationManager.showOrHideIndicator(!1)}};cvox.MathJaxInterface=function(){};cvox.MathJaxInterface.prototype.isMathjaxActive=function(){};cvox.MathJaxInterface.prototype.getAllJax=function(){};cvox.MathJaxInterface.prototype.registerSignal=function(){};cvox.MathJaxInterface.prototype.injectScripts=function(){};cvox.MathJaxInterface.prototype.configMediaWiki=function(){};cvox.MathJaxInterface.prototype.getTex=function(){};cvox.MathJaxInterface.prototype.getAsciiMath=function(){};cvox.AbstractMathJax=function(){};cvox.AbstractMathJax.prototype.getAllTexs=function(a){for(var b=document.querySelectorAll(cvox.DomUtil.altMathQuerySelector("tex")),c=0,d;d=b[c];c++)this.getTex(a,d)};cvox.AbstractMathJax.prototype.getAllAsciiMaths=function(a){for(var b=document.querySelectorAll(cvox.DomUtil.altMathQuerySelector("asciimath")),c=0,d;d=b[c];c++)this.getAsciiMath(a,d)};
+cvox.AbstractMathJax.prototype.convertMarkupToDom=function(a,b,c){if(b){var d=new DOMParser;b=b.replace(/>\s+</g,"><");a(d.parseFromString(b,"text/xml").firstChild,c)}};cvox.AbstractMsgs=function(){};cvox.AbstractMsgs.prototype.getMsg=function(){};cvox.AbstractMsgs.prototype.getNumber=function(){};cvox.HostFactory=function(){};cvox.HostFactory.getHost=function(){return new cvox.HostFactory.hostConstructor};cvox.HostFactory.getTts=function(){return new cvox.HostFactory.ttsConstructor};cvox.HostFactory.getBraille=function(){return new cvox.HostFactory.brailleConstructor};cvox.HostFactory.getMsgs=function(){return new cvox.HostFactory.msgsConstructor};cvox.HostFactory.getEarcons=function(){return new cvox.HostFactory.earconsConstructor};cvox.HostFactory.getMathJax=function(){return new cvox.HostFactory.mathJaxConstructor};cvox.SpokenMessage=function(){this.raw=this.id=this.count=null};cvox.SpokenMessages={};cvox.SpokenMessages.messages=[];cvox.SpokenMessages.speakFlush=function(){cvox.SpokenMessages.speak(cvox.AbstractTts.QUEUE_MODE_FLUSH)};cvox.SpokenMessages.speakQueued=function(){cvox.SpokenMessages.speak(cvox.AbstractTts.QUEUE_MODE_QUEUE)};
+cvox.SpokenMessages.speak=function(a){for(var b=0;b<cvox.SpokenMessages.messages.length;++b){var c=cvox.SpokenMessages.messages[b];if(!c||!c.id&&!c.raw)throw"Invalid message received.";var d="";if(null!=c.count)if(0>=c.count)try{d+=cvox.ChromeVox.msgs.getMsg(c.id[0]+"_optional_default")}catch(e){continue}else d=1==c.count?d+cvox.ChromeVox.msgs.getMsg(c.id[0]+"_singular"):d+cvox.ChromeVox.msgs.getMsg(c.id[0]+"_plural",[c.count]);else d=c.raw?d+c.raw:d+cvox.ChromeVox.msgs.getMsg.apply(cvox.ChromeVox.msgs,
+c.id);cvox.ChromeVox.tts.speak(d,a,cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT);a=cvox.AbstractTts.QUEUE_MODE_QUEUE}cvox.SpokenMessages.messages=[]};cvox.SpokenMessages.currentMessage=function(){if(0==cvox.SpokenMessages.messages.length)throw"Invalid usage of SpokenMessages; start the chain using $m()";return cvox.SpokenMessages.messages[cvox.SpokenMessages.messages.length-1]};cvox.SpokenMessages.withCount=function(a){cvox.SpokenMessages.currentMessage().count=a;return cvox.SpokenMessages};
+cvox.SpokenMessages.andIndexTotal=function(a,b){var c=new cvox.SpokenMessage;c.raw=cvox.ChromeVox.msgs.getMsg("index_total",[a,b]);cvox.SpokenMessages.messages.push(c);return cvox.SpokenMessages};cvox.SpokenMessages.andEnd=function(){return cvox.SpokenMessages.andMessage("end")};cvox.SpokenMessages.andMessage=function(a){var b=new cvox.SpokenMessage;b.id="string"==typeof a?[a]:a;cvox.SpokenMessages.messages.push(b);return cvox.SpokenMessages};
+cvox.SpokenMessages.andRawMessage=function(a){var b=new cvox.SpokenMessage;b.raw=a;cvox.SpokenMessages.messages.push(b);return cvox.SpokenMessages};cvox.SpokenMessages.andPause=function(){return cvox.SpokenMessages.andMessage("pause")};cvox.$m=cvox.SpokenMessages.andMessage;cvox.CompositeTts=function(){this.ttsEngines_=[]};cvox.CompositeTts.prototype.add=function(a){this.ttsEngines_.push(a);return this};cvox.CompositeTts.prototype.speak=function(a,b,c){this.ttsEngines_.forEach(function(d){d.speak(a,b,c)})};cvox.CompositeTts.prototype.isSpeaking=function(){return this.ttsEngines_.some(function(a){return a.isSpeaking()})};cvox.CompositeTts.prototype.stop=function(){this.ttsEngines_.forEach(function(a){a.stop()})};
+cvox.CompositeTts.prototype.increaseOrDecreaseProperty=function(a,b){this.ttsEngines_.forEach(function(c){c.increaseOrDecreaseProperty(a,b)})};cvox.CompositeTts.prototype.getDefaultProperty=function(a){for(var b=0,c;c=this.ttsEngines_[b];b++)if(c=c.getDefaultProperty(a))return c};cvox.BuildInfo={};cvox.BuildInfo.build="1384906195.369502";cvox.ChromeVoxJSON||(cvox.ChromeVoxJSON={});
+window.JSON&&"[object JSON]"==window.JSON.toString()?cvox.ChromeVoxJSON=window.JSON:function(){function a(a){return 10>a?"0"+a:a}function b(a){e.lastIndex=0;return e.test(a)?'"'+a.replace(e,function(a){var b=h[a];return"string"===typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function c(a,d){var e,h,n,s,u=f,t,r=d[a];r&&"object"===typeof r&&"function"===typeof r.toJSON&&(r=r.toJSON(a));"function"===typeof k&&(r=k.call(d,a,r));switch(typeof r){case "string":return b(r);
+case "number":return isFinite(r)?String(r):"null";case "boolean":case "null":return String(r);case "object":if(!r)return"null";f+=g;t=[];if("[object Array]"===Object.prototype.toString.apply(r)){s=r.length;for(e=0;e<s;e+=1)t[e]=c(e,r)||"null";n=0===t.length?"[]":f?"[\n"+f+t.join(",\n"+f)+"\n"+u+"]":"["+t.join(",")+"]";f=u;return n}if(k&&"object"===typeof k)for(s=k.length,e=0;e<s;e+=1)h=k[e],"string"===typeof h&&(n=c(h,r))&&t.push(b(h)+(f?": ":":")+n);else for(h in r)Object.hasOwnProperty.call(r,h)&&
+(n=c(h,r))&&t.push(b(h)+(f?": ":":")+n);n=0===t.length?"{}":f?"{\n"+f+t.join(",\n"+f)+"\n"+u+"}":"{"+t.join(",")+"}";f=u;return n}}"function"!==typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+a(this.getUTCMonth()+1)+"-"+a(this.getUTCDate())+"T"+a(this.getUTCHours())+":"+a(this.getUTCMinutes())+":"+a(this.getUTCSeconds())+"Z":"null"},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()});
+var d=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof cvox.ChromeVoxJSON.stringify&&(cvox.ChromeVoxJSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&&
+(g=d);if((k=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})});"function"!==typeof cvox.ChromeVoxJSON.parse&&(cvox.ChromeVoxJSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=String(a);d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));
+if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})}();"undefined"!=typeof goog&&goog.provide&&(cvox.ApiUtil={});window.cvox||(window.cvox={});cvox.ApiUtils=function(){};cvox.ApiUtils.nextCvoxId_=1;
+cvox.ApiUtils.makeNodeReference=function(a){if(a.id&&document.getElementById(a.id)==a)return{id:a.id};if(a instanceof HTMLElement){var b=cvox.ApiUtils.nextCvoxId_;a.setAttribute("cvoxid",b);cvox.ApiUtils.nextCvoxId_=(cvox.ApiUtils.nextCvoxId_+1)%100;return{cvoxid:b}}if(a.parentElement){for(var c=a.parentElement,d=-1,b=0;b<c.childNodes.length;b++)if(c.childNodes[b]==a){d=b;break}if(0<=d)return b=cvox.ApiUtils.nextCvoxId_,c.setAttribute("cvoxid",b),cvox.ApiUtils.nextCvoxId_=(cvox.ApiUtils.nextCvoxId_+
+1)%100,{cvoxid:b,childIndex:d}}throw"Cannot reference node: "+a;};cvox.ApiUtils.getNodeFromRef=function(a){if(a.id)return document.getElementById(a.id);if(a.cvoxid){var b='*[cvoxid="'+a.cvoxid+'"]';(b=document.querySelector(b))&&b.removeAttribute&&b.removeAttribute("cvoxid");return null!=a.childIndex?b.childNodes[a.childIndex]:b}throw"Bad node reference: "+cvox.ChromeVoxJSON.stringify(a);};cvox.ScriptInstaller={};
+cvox.ScriptInstaller.installScript=function(a,b,c,d){if(document.querySelector("script["+b+"]")||!a)return!1;for(var e=0,f;f=a[e];e++){var g=new XMLHttpRequest,h=f+"?"+(new Date).getTime();g.onreadystatechange=function(){if(4==g.readyState){var a=g.responseText,a=a+("\n//# sourceURL="+f+"\n"),c=document.createElement("script");c.type="text/javascript";c.setAttribute(b,"1");c.textContent=a;d&&c.setAttribute("chromevoxScriptBase",d);cvox.DomUtil.addNodeToHead(c)}};try{g.open("GET",h,!1),g.send(null)}catch(k){return window.console.log("Warning: ChromeVox external script loading for "+
+document.location+" stopped after failing to install "+f),!1}}c&&c();return!0};cvox.ApiImplementation=function(){};cvox.ApiImplementation.init=function(a){window.addEventListener("message",cvox.ApiImplementation.portSetup,!0);var b=[];b.push(cvox.ChromeVox.host.getFileSrc("chromevox/injected/api_util.js"));b.push(cvox.ChromeVox.host.getApiSrc());b.push(cvox.ApiImplementation.siteSpecificScriptLoader);a=cvox.ScriptInstaller.installScript(b,"cvoxapi",a,cvox.ApiImplementation.siteSpecificScriptBase);a||(window.location.href="javascript:cvox.Api.internalEnable();")};
+cvox.ApiImplementation.portSetup=function(a){return"cvox.PortSetup"==a.data?(cvox.ApiImplementation.port=a.ports[0],cvox.ApiImplementation.port.onmessage=function(a){cvox.ApiImplementation.dispatchApiMessage(cvox.ChromeVoxJSON.parse(a.data))},a.stopPropagation(),!1):!0};
+cvox.ApiImplementation.dispatchApiMessage=function(a){var b;switch(a.cmd){case "speak":b=cvox.ApiImplementation.speak;break;case "speakNodeRef":b=cvox.ApiImplementation.speakNodeRef;break;case "stop":b=cvox.ApiImplementation.stop;break;case "playEarcon":b=cvox.ApiImplementation.playEarcon;break;case "syncToNodeRef":b=cvox.ApiImplementation.syncToNodeRef;break;case "clickNodeRef":b=cvox.ApiImplementation.clickNodeRef;break;case "getBuild":b=cvox.ApiImplementation.getBuild;break;case "getVersion":b=
+cvox.ApiImplementation.getVersion;break;case "getCurrentNode":b=cvox.ApiImplementation.getCurrentNode;break;case "getCvoxModKeys":b=cvox.ApiImplementation.getCvoxModKeys;break;case "isKeyShortcut":b=cvox.ApiImplementation.isKeyShortcut;break;case "setKeyEcho":b=cvox.ApiImplementation.setKeyEcho;break;case "Math.defineRule":b=cvox.ApiImplementation.Math.defineRule}if(!b)throw"Unknown API call: "+a.cmd;b.apply(cvox.ApiImplementation,a.args)};
+function setupEndCallback_(a,b){var c=function(){cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:b}))};a&&(a.endCallback=c)}cvox.ApiImplementation.speak=function(a,b,c,d){cvox.ChromeVox.isActive&&(d||(d={}),setupEndCallback_(d,a),cvox.ChromeVox.tts.speak(b,c,d))};cvox.ApiImplementation.speakNode=function(a,b,c){cvox.ChromeVox.isActive&&cvox.ChromeVox.tts.speak(cvox.DomUtil.getName(a),b,c)};
+cvox.ApiImplementation.speakNodeRef=function(a,b,c,d){b=cvox.ApiUtils.getNodeFromRef(b);d||(d={});setupEndCallback_(d,a);cvox.ApiImplementation.speakNode(b,c,d)};cvox.ApiImplementation.stop=function(){cvox.ChromeVox.isActive&&cvox.ChromeVox.tts.stop()};cvox.ApiImplementation.playEarcon=function(a){cvox.ChromeVox.isActive&&cvox.ChromeVox.earcons.playEarconByName(a)};cvox.ApiImplementation.syncToNodeRef=function(a,b){var c=cvox.ApiUtils.getNodeFromRef(a);cvox.ApiImplementation.syncToNode(c,b)};
+cvox.ApiImplementation.syncToNode=function(a,b,c){cvox.ChromeVox.isActive&&(void 0==c&&(c=cvox.AbstractTts.QUEUE_MODE_FLUSH),cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(a,!0),cvox.ChromeVox.navigationManager.updateIndicator(),void 0==b&&(b=!1),cvox.AriaUtil.isHiddenRecursive(a)&&(b=!1),b&&cvox.ChromeVox.navigationManager.speakDescriptionArray(cvox.ApiImplementation.getDesc_(a),c,null),cvox.ChromeVox.navigationManager.getBraille().write(),cvox.ChromeVox.navigationManager.updatePosition(a))};
+cvox.ApiImplementation.getCurrentNode=function(a){var b=cvox.ChromeVox.navigationManager.getCurrentNode();cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,currentNode:cvox.ApiUtils.makeNodeReference(b)}))};
+cvox.ApiImplementation.getDesc_=function(a){if(!a.hasAttribute("cvoxnodedesc"))return cvox.ChromeVox.navigationManager.getDescription();a=cvox.ChromeVoxJSON.parse(a.getAttribute("cvoxnodedesc"));for(var b=[],c=0;c<a.length;++c){var d=a[c];b.push(new cvox.NavDescription({context:d.context,text:d.text,userValue:d.userValue,annotation:d.annotation}))}return b};cvox.ApiImplementation.clickNodeRef=function(a,b){cvox.DomUtil.clickElem(cvox.ApiUtils.getNodeFromRef(a),b,!1)};
+cvox.ApiImplementation.getBuild=function(a){cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,build:cvox.BuildInfo.build}))};cvox.ApiImplementation.getVersion=function(a){var b=cvox.ChromeVox.version;null==b?window.setTimeout(function(){cvox.ApiImplementation.getVersion(a)},1E3):cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,version:b}))};
+cvox.ApiImplementation.getCvoxModKeys=function(a){cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,keyCodes:cvox.KeyUtil.cvoxModKeyCodes()}))};cvox.ApiImplementation.isKeyShortcut=function(a,b){var c=cvox.KeyUtil.keyEventToKeySequence(b);cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,isHandled:cvox.ChromeVoxKbHandler.handlerKeyMap.hasKey(c)}))};
+cvox.ApiImplementation.setKeyEcho=function(a){var b=cvox.ChromeVox.keyEcho;b[document.location.href]=a;JSON.stringify(b)};cvox.ApiImplementation.Math=function(){};cvox.ApiImplementation.Math.defineRule=function(a,b,c,d,e){var f=cvox.MathmlStore.getInstance(),g=Array.prototype.slice.call(arguments,4),g=[a,b,c,d].concat(g);f.defineRule.apply(f,g)};cvox.ConsoleTts=function(){this.enabled_=!1};goog.addSingletonGetter(cvox.ConsoleTts);cvox.ConsoleTts.prototype.speak=function(a,b,c){if(this.enabled_&&window.console){var d="Speak",d=b==cvox.AbstractTts.QUEUE_MODE_FLUSH?d+" (I)":d+" (Q)",d=d+(' "'+a+'"');window.console.log(d);c&&void 0!=c.startCallback&&window.console.log(" using startCallback");c&&void 0!=c.endCallback&&window.console.log(" using endCallback")}return this};cvox.ConsoleTts.prototype.isSpeaking=function(){return!1};
+cvox.ConsoleTts.prototype.stop=function(){this.enabled_&&window.console.log("Stop")};cvox.ConsoleTts.prototype.increaseOrDecreaseProperty=function(){};cvox.ConsoleTts.prototype.setEnabled=function(a){this.enabled_=a};cvox.ConsoleTts.prototype.getDefaultProperty=function(){};cvox.ChromeVoxHTMLDateWidget=function(a,b){var c=this;this.pos_=0;var d=2;if("month"==a.type||"week"==a.type)d=1;this.maxPos_=d;this.dateElem_=a;this.dateTts_=b;this.pDay_=this.pWeek_=this.pMonth_=this.pYear_=-1;this.keyListener_=function(a){c.eventHandler_(a)};this.blurListener_=function(){c.shutdown()};0==this.dateElem_.value.length&&this.forceInitTime_();for(d=0;d<this.maxPos_;d++){var e=document.createEvent("KeyboardEvent");e.initKeyboardEvent("keydown",!0,!0,window,"Left",0,!1,!1,!1,!1);this.dateElem_.dispatchEvent(e);
+e=document.createEvent("KeyboardEvent");e.initKeyboardEvent("keyup",!0,!0,window,"Left",0,!1,!1,!1,!1);this.dateElem_.dispatchEvent(e)}this.dateElem_.addEventListener("keydown",this.keyListener_,!1);this.dateElem_.addEventListener("keyup",this.keyListener_,!1);this.dateElem_.addEventListener("blur",this.blurListener_,!1);this.update_(!0)};
+cvox.ChromeVoxHTMLDateWidget.prototype.shutdown=function(){this.dateElem_.removeEventListener("blur",this.blurListener_,!1);this.dateElem_.removeEventListener("keydown",this.keyListener_,!1);this.dateElem_.removeEventListener("keyup",this.keyListener_,!1)};
+cvox.ChromeVoxHTMLDateWidget.prototype.forceInitTime_=function(){var a=new Date,b="",b=a.getFullYear()+"",c=a.getMonth()+1+"";2>c.length&&(c="0"+c);var d=a.getDate()+"";switch(this.dateElem_.type){case "month":b=b+"-"+c;break;case "week":a.setHours(0,0,0);a.setDate(a.getDate()+4-(a.getDay()||7));c=new Date(a.getFullYear(),0,1);a=Math.ceil(((a-c)/864E5+1)/7)+"";2>a.length&&(a="0"+a);a="W"+a;b=b+"-"+a;break;default:b=b+"-"+c+"-"+d}this.dateElem_.setAttribute("value",b)};
+cvox.ChromeVoxHTMLDateWidget.prototype.handlePosChange_=function(){this.pos_=Math.max(this.pos_,0);this.pos_=Math.min(this.pos_,this.maxPos_);switch(this.pos_){case 0:"week"==this.dateElem_.type?this.pWeek_=-1:this.pMonth_=-1;break;case 1:"date"==this.dateElem_.type?this.pDay_=-1:this.pYear_=-1;break;case 2:this.pYear_=-1}};
+cvox.ChromeVoxHTMLDateWidget.prototype.update_=function(a){var b=this.dateElem_.value.split("-");if(1>b.length)this.forceInitTime_();else{var c=-1,d=-1,e=-1,f=-1,c=parseInt(b[0],10);"week"==this.dateElem_.type?e=parseInt(b[1].replace("W",""),10):"date"==this.dateElem_.type?(d=parseInt(b[1],10),f=parseInt(b[2],10)):d=parseInt(b[1],10);b="";a&&(b=cvox.DomUtil.getName(this.dateElem_,!0,!0)+"\n");e!=this.pWeek_&&(b=b+cvox.ChromeVox.msgs.getMsg("datewidget_week")+e+"\n",this.pWeek_=e);if(d!=this.pMonth_){a=
+"";switch(d){case 1:a=cvox.ChromeVox.msgs.getMsg("datewidget_january");break;case 2:a=cvox.ChromeVox.msgs.getMsg("datewidget_february");break;case 3:a=cvox.ChromeVox.msgs.getMsg("datewidget_march");break;case 4:a=cvox.ChromeVox.msgs.getMsg("datewidget_april");break;case 5:a=cvox.ChromeVox.msgs.getMsg("datewidget_may");break;case 6:a=cvox.ChromeVox.msgs.getMsg("datewidget_june");break;case 7:a=cvox.ChromeVox.msgs.getMsg("datewidget_july");break;case 8:a=cvox.ChromeVox.msgs.getMsg("datewidget_august");
+break;case 9:a=cvox.ChromeVox.msgs.getMsg("datewidget_september");break;case 10:a=cvox.ChromeVox.msgs.getMsg("datewidget_october");break;case 11:a=cvox.ChromeVox.msgs.getMsg("datewidget_november");break;case 12:a=cvox.ChromeVox.msgs.getMsg("datewidget_december")}b=b+a+"\n";this.pMonth_=d}f!=this.pDay_&&(b=b+f+"\n",this.pDay_=f);c!=this.pYear_&&(b=b+c+"\n",this.pYear_=c);0<b.length&&this.dateTts_.speak(b,0,null)}};
+cvox.ChromeVoxHTMLDateWidget.prototype.eventHandler_=function(a){var b=!1;if("keydown"==a.type){if(9==a.keyCode&&!a.shiftKey||39==a.keyCode)this.pos_++,this.handlePosChange_(),b=!0;if(9==a.keyCode&&a.shiftKey||37==a.keyCode)this.pos_--,this.handlePosChange_(),b=!0}this.update_(b)};cvox.BrailleTextHandler=function(a){this.braille_=a};cvox.BrailleTextHandler.prototype.changed=function(a,b,c,d){var e;d?(e=cvox.NavBraille.fromText(a),e.startIndex=b,e.endIndex=c):cvox.ChromeVox.navigationManager&&(e=cvox.ChromeVox.navigationManager.getBraille());e&&this.braille_.write(e)};cvox.ContentEditableExtractor=function(){this.text_="";this.end_=this.start_=0;this.lines_={};this.characterToLineMap_=[]};
+cvox.ContentEditableExtractor.prototype.update=function(a){for(var b={0:{startIndex:0,endIndex:0}},c=new cvox.Cursor(a,0,""),d=c.clone(),e=document.createRange(),f,g=0,h=null,k="",l=0,m=-1,p=-1,q=window.getSelection(),n=new cvox.Cursor(q.baseNode,q.baseOffset,""),q=new cvox.Cursor(q.extentNode,q.extentOffset,""),s=!1,u=!1;;){f=[];var t=[],r=cvox.TraverseUtil.forwardsChar(d,f,t),v=!1;r||(v=!0);for(f=0;f<t.length&&!v;f++)t[f]==a&&(v=!0);if(v)break;e.setStart(c.node,c.index);e.setEnd(d.node,d.index);
+if((f=e.getBoundingClientRect())&&0!=f.width&&0!=f.height){null!==h&&f.bottom!=h&&0<l&&k.substr(-1).match(/\S/)&&r.match(/\S/)&&(k+="\n",l++);if(c.node!=d.node&&0<d.index&&(e.setStart(d.node,d.index-1),f=e.getBoundingClientRect(),!f||0==f.width||0==f.height))continue;!s&&-1==m&&d.node==n.node&&d.index>=n.index&&(d.index>n.index?m=l:s=!0);!u&&-1==p&&d.node==q.node&&d.index>=q.index&&(d.index>q.index?p=l:u=!0);null===h?h=f.bottom:f.bottom!=h&&(b[g].endIndex=l,g++,b[g]={startIndex:l,endIndex:l},h=f.bottom);
+k+=r;l++;c=d.clone();s&&(m=l,s=!1);u&&(p=l,u=!1)}}b[g].endIndex=l;a=[];for(f=0;f<=g;f++)for(c=b[f].startIndex;c<=b[f].endIndex;c++)a[c]=f;this.text_=k;this.characterToLineMap_=a;this.lines_=b;this.start_=0<=m?m:k.length;this.end_=0<=p?p:k.length};cvox.ContentEditableExtractor.prototype.getText=function(){return this.text_};cvox.ContentEditableExtractor.prototype.getStartIndex=function(){return this.start_};cvox.ContentEditableExtractor.prototype.getEndIndex=function(){return this.end_};
+cvox.ContentEditableExtractor.prototype.getLineIndex=function(a){return this.characterToLineMap_[a]};cvox.ContentEditableExtractor.prototype.getLineStart=function(a){return this.lines_[a].startIndex};cvox.ContentEditableExtractor.prototype.getLineEnd=function(a){return this.lines_[a].endIndex};cvox.EditableTextAreaShadow=function(){this.shadowElement_=document.createElement("div");this.lines_={};this.characterToLineMap_=[]};
+cvox.EditableTextAreaShadow.prototype.update=function(a){for(document.body.appendChild(this.shadowElement_);this.shadowElement_.childNodes.length;)this.shadowElement_.removeChild(this.shadowElement_.childNodes[0]);this.shadowElement_.style.cssText=window.getComputedStyle(a,null).cssText;this.shadowElement_.style.position="absolute";this.shadowElement_.style.top=-9999;this.shadowElement_.style.left=-9999;this.shadowElement_.setAttribute("aria-hidden","true");var b=a.value,c=document.createTextNode(b+
+".");this.shadowElement_.appendChild(c);a={0:{startIndex:0,endIndex:0}};for(var d=document.createRange(),e=0,f=0,g=0,h=null,k=!1,l;e<=b.length;){d.setStart(c,e);if(e+8>b.length||0<=b.substr(e,8).indexOf("\n"))k=!0;k?(e++,d.setEnd(c,e),l=d.getBoundingClientRect()):(d.setEnd(c,e+8),l=d.getBoundingClientRect(),l.bottom==h?e+=8:(l&&null!==h&&(k=!0),e++,d.setEnd(c,e),l=d.getBoundingClientRect()));0<e&&"\n"==b[e-1]?(a[g].endIndex=e-1,g++,a[g]={startIndex:e,endIndex:e},h=null,k=!1,f=e):l&&null===h?h=l.bottom:
+l&&l.bottom!=h&&(a[g].endIndex=f,g++,a[g]={startIndex:f,endIndex:f},h=l?l.bottom:null,k=!1);l&&(f=e)}a[g].endIndex=b.length;b=[];for(c=0;c<=g;c++)for(d=a[c].startIndex;d<=a[c].endIndex;d++)b[d]=c;this.characterToLineMap_=b;this.lines_=a;document.body.removeChild(this.shadowElement_)};cvox.EditableTextAreaShadow.prototype.getLineIndex=function(a){return this.characterToLineMap_[a]};cvox.EditableTextAreaShadow.prototype.getLineStart=function(a){return this.lines_[a].startIndex};
+cvox.EditableTextAreaShadow.prototype.getLineEnd=function(a){return this.lines_[a].endIndex};cvox.TextChangeEvent=function(a,b,c,d){this.value=a;this.start=b;this.end=c;this.triggeredByUser=d;this.start>this.end&&(a=this.end,this.end=this.start,this.start=a)};cvox.TypingEcho={CHARACTER:0,WORD:1,CHARACTER_AND_WORD:2,NONE:3,COUNT:4};cvox.TypingEcho.cycle=function(a){return(a+1)%cvox.TypingEcho.COUNT};cvox.TypingEcho.shouldSpeakChar=function(a){return a==cvox.TypingEcho.CHARACTER_AND_WORD||a==cvox.TypingEcho.CHARACTER};cvox.TextHandlerInterface=function(){};
+cvox.TextHandlerInterface.prototype.changed=function(){};cvox.ChromeVoxEditableTextBase=function(a,b,c,d,e){this.value=a;this.start=b;this.end=c;this.isPassword=d;this.tts=e;this.multiline=!1;this.brailleHandler_=cvox.ChromeVox.braille?new cvox.BrailleTextHandler(cvox.ChromeVox.braille):void 0};cvox.ChromeVoxEditableTextBase.useIBeamCursor=cvox.ChromeVox.isMac;cvox.ChromeVoxEditableTextBase.eventTypingEcho=!1;cvox.ChromeVoxEditableTextBase.prototype.maxShortPhraseLen=60;
+cvox.ChromeVoxEditableTextBase.prototype.isPassword=!1;cvox.ChromeVoxEditableTextBase.prototype.lastChangeDescribed=!1;cvox.ChromeVoxEditableTextBase.prototype.getValue=function(){var a="";if(this.multiline){if(a+="multiline editable text. ",this.start==this.end)var b=this.getLine(this.getLineIndex(this.start)),a=b?a+b:a+"blank"}else a=this.node?a+cvox.DomUtil.getValue(this.node):a+this.value,a=a<=this.maxShortPhraseLen?a+", editable text":a.substring(0,this.maxShortPhraseLen)+", editable text";return a};
+cvox.ChromeVoxEditableTextBase.prototype.getLineIndex=function(){return 0};cvox.ChromeVoxEditableTextBase.prototype.getLineStart=function(){return 0};cvox.ChromeVoxEditableTextBase.prototype.getLineEnd=function(){return this.value.length};cvox.ChromeVoxEditableTextBase.prototype.getLine=function(a){var b=this.getLineStart(a);a=this.getLineEnd(a);b=this.value.substr(b,a-b);return b.replace(/^\s+|\s+$/g,"")};cvox.ChromeVoxEditableTextBase.prototype.isWordBreakChar=function(a){return!!a.match(/^\W$/)};
+cvox.ChromeVoxEditableTextBase.prototype.isLastChar=function(a){return void 0==this.getLineIndex(a.start+1)};cvox.ChromeVoxEditableTextBase.prototype.speak=function(a,b,c){if(!this.node||document.activeElement==this.node){var d=cvox.AbstractTts.QUEUE_MODE_QUEUE;!0===b&&(d=cvox.AbstractTts.QUEUE_MODE_FLUSH);this.tts.speak(a,d,c||{})}};
+cvox.ChromeVoxEditableTextBase.prototype.changed=function(a){if(a.value!=this.value||a.start!=this.start||a.end!=this.end||this.isLastChar(a)){if(a.value==this.value?this.describeSelectionChanged(a):this.describeTextChanged(a),this.lastChangeDescribed=!0,this.value=a.value,this.start=a.start,this.end=a.end,this.brailleHandler_){var b=this.getLine(this.getLineIndex(a.start)),c=this.getLineStart(this.getLineIndex(a.start)),d=a.start-c;a=a.end-c;this.brailleHandler_.changed(b,d,a,this.multiline)}}else this.lastChangeDescribed=
+!1};
+cvox.ChromeVoxEditableTextBase.prototype.describeSelectionChanged=function(a){if(this.isPassword)this.speak((new goog.i18n.MessageFormat(cvox.ChromeVox.msgs.getMsg("dot"))).format({COUNT:1}),a.triggeredByUser);else if(a.start==a.end)if(this.start!=this.end)this.speak(cvox.ChromeVox.msgs.getMsg("Unselected"),a.triggeredByUser);else if(this.getLineIndex(this.start)!=this.getLineIndex(a.start)){var b=this.getLine(this.getLineIndex(a.start));""==b&&(b=cvox.ChromeVox.msgs.getMsg("text_box_blank"));this.speak(b,
+a.triggeredByUser)}else this.start==a.start+1||this.start==a.start-1?cvox.ChromeVoxEditableTextBase.useIBeamCursor?this.speak(this.value.substr(Math.min(this.start,a.start),1),a.triggeredByUser,{phoneticCharacters:a.triggeredByUser}):a.start==this.value.length?this.speak(cvox.ChromeVox.msgs.getMsg("end"),a.triggeredByUser):this.speak(this.value.substr(a.start,1),a.triggeredByUser,{phoneticCharacters:a.triggeredByUser}):this.speak(this.value.substr(Math.min(this.start,a.start),Math.abs(this.start-
+a.start)),a.triggeredByUser);else this.start+1==a.start&&this.end==this.value.length&&a.end==this.value.length?(this.speak(this.value.substr(this.start,1),a.triggeredByUser),this.speak(this.value.substr(a.start))):this.start==this.end?(this.speak(this.value.substr(a.start,a.end-a.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("selected"))):this.start==a.start&&this.end<a.end?(this.speak(this.value.substr(this.end,a.end-this.end),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("added_to_selection"))):
+this.start==a.start&&this.end>a.end?(this.speak(this.value.substr(a.end,this.end-a.end),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("removed_from_selection"))):this.end==a.end&&this.start>a.start?(this.speak(this.value.substr(a.start,this.start-a.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("added_to_selection"))):this.end==a.end&&this.start<a.start?(this.speak(this.value.substr(this.start,a.start-this.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("removed_from_selection"))):
+(this.speak(this.value.substr(a.start,a.end-a.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("selected")))};
+cvox.ChromeVoxEditableTextBase.prototype.describeTextChanged=function(a){var b={};a.value.length<this.value.length&&(b=cvox.AbstractTts.PERSONALITY_DELETED);if(this.isPassword)this.speak((new goog.i18n.MessageFormat(cvox.ChromeVox.msgs.getMsg("dot"))).format({COUNT:1}),a.triggeredByUser,b);else{var c=this.value,d=c.length,e=a.value.length,f="",g=a.value,h=a.end;a.start<h&&h==e&&(f=g.substr(a.start),g=g.substr(0,a.start),h=a.start);var k=this.start,l=d-this.end;if(e>=k+l+(h-a.start)&&g.substr(0,k)==
+c.substr(0,k)&&g.substr(e-l)==c.substr(this.end))this instanceof cvox.ChromeVoxEditableContentEditable&&!(e<d||this.isWordBreakChar(a.value[e-1]||""))||this.describeTextChangedHelper(a,k,l,f,b);else if(k=a.start,l=e-h,this.start==this.end&&a.start==h&&g.substr(0,k)==c.substr(0,k)&&g.substr(e-l)==c.substr(d-l))this.describeTextChangedHelper(a,k,l,f,b);else{g+=f;if(g.length==c.length+1||g.length+1==c.length){if(g.length>c.length){if(0==g.indexOf(c)){this.speak(g[g.length-1],a.triggeredByUser,b);return}if(1==
+g.indexOf(c)){this.speak(g[0],a.triggeredByUser,b);return}}if(g.length<c.length){if(0==c.indexOf(g)){this.speak(c[c.length-1],a.triggeredByUser,b);return}if(1==c.indexOf(g)){this.speak(c[0],a.triggeredByUser,b);return}}}if(this.multiline)a.value.length<this.value.length&&this.speak(cvox.ChromeVox.msgs.getMsg("text_deleted"),a.triggeredByUser,b);else if(e<=this.maxShortPhraseLen)this.describeTextChangedHelper(a,0,0,"",b);else{for(k=0;k<d&&k<e&&c[k]==g[k];)k++;for(;0<k&&!this.isWordBreakChar(c[k-1]);)k--;
+for(l=0;l<d-k&&l<e-k&&c[d-l-1]==g[e-l-1];)l++;for(;0<l&&!this.isWordBreakChar(c[d-l]);)l--;this.describeTextChangedHelper(a,k,l,"",b)}}}};
+cvox.ChromeVoxEditableTextBase.prototype.describeTextChangedHelper=function(a,b,c,d,e){var f=this.value.length,g=a.value.length,f=f-b-c,h=this.value.substr(b,f),k=g-b-c;c=a.value.substr(b,k);var l="",g=a.triggeredByUser;if(1<k)l=c;else if(1==k)if((cvox.ChromeVox.typingEcho==cvox.TypingEcho.WORD||cvox.ChromeVox.typingEcho==cvox.TypingEcho.CHARACTER_AND_WORD)&&this.isWordBreakChar(c)&&0<b&&!this.isWordBreakChar(a.value.substr(b-1,1))){for(f=b;0<f&&!this.isWordBreakChar(a.value[f-1]);)f--;f<b?l=a.value.substr(f,
+b+1-f):(l=c,g=!1)}else{if(cvox.ChromeVox.typingEcho==cvox.TypingEcho.CHARACTER||cvox.ChromeVox.typingEcho==cvox.TypingEcho.CHARACTER_AND_WORD)l=cvox.ChromeVoxEditableTextBase.eventTypingEcho?"":c}else 1<f&&!d?l=h+", deleted":1==f&&(l=h);d&&l?l+=", "+d:d&&(l=d);l&&this.speak(l,g,e)};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextCharacter=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousCharacter=function(){return!1};
+cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextWord=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousWord=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextLine=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousLine=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextParagraph=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousParagraph=function(){return!1};
+cvox.ChromeVoxEditableElement=function(a,b,c,d,e,f){cvox.ChromeVoxEditableTextBase.call(this,b,c,d,e,f);this.node=a;this.justSpokeDescription_=!1};goog.inherits(cvox.ChromeVoxEditableElement,cvox.ChromeVoxEditableTextBase);cvox.ChromeVoxEditableElement.prototype.changed=function(a){this.justSpokeDescription_&&this.value==a.value&&(this.value=a.value,this.start=a.start,this.end=a.end,this.justSpokeDescription_=!1);cvox.ChromeVoxEditableElement.superClass_.changed.call(this,a)};
+cvox.ChromeVoxEditableElement.prototype.getValue=function(){this.justSpokeDescription_=!0;return cvox.ChromeVoxEditableElement.superClass_.getValue.call(this)};cvox.ChromeVoxEditableElement.prototype.moveCursorToNextCharacter=function(){var a=this.node;a.selectionEnd++;a.selectionStart=a.selectionEnd;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableElement.prototype.moveCursorToPreviousCharacter=function(){var a=this.node;a.selectionStart--;a.selectionEnd=a.selectionStart;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableElement.prototype.moveCursorToNextWord=function(){var a=this.node,b=a.value.length,c=/\W+/gm,d=a.value.substring(a.selectionEnd),e=c.exec(d);null!==e&&0==e.index&&(e=c.exec(d));b=null===e?b:e.index+a.selectionEnd;a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableElement.prototype.moveCursorToPreviousWord=function(){for(var a=this.node,b=/\W+/gm,c=a.value.substring(0,a.selectionStart),d=0;null!==b.exec(c);)b.lastIndex<a.selectionStart&&(d=b.lastIndex);a.selectionStart=a.selectionEnd=d;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableElement.prototype.moveCursorToNextParagraph=function(){var a=this.node,b=a.value.length,c=a.selectionEnd>=b?b:a.value.indexOf("\n",a.selectionEnd);0>c&&(c=b);a.selectionStart=a.selectionEnd=c+1;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableElement.prototype.moveCursorToPreviousParagraph=function(){var a=this.node,b=0>=a.selectionStart?0:a.value.lastIndexOf("\n",a.selectionStart-2)+1;0>b&&(b=0);a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEditableHTMLInput=function(a,b){cvox.ChromeVoxEditableElement.call(this,a,a.value,a.selectionStart,a.selectionEnd,"password"===a.type,b)};goog.inherits(cvox.ChromeVoxEditableHTMLInput,cvox.ChromeVoxEditableElement);
+cvox.ChromeVoxEditableHTMLInput.prototype.update=function(a){var b=this.node.value;a=new cvox.TextChangeEvent(b,this.node.selectionStart,this.node.selectionEnd,a);this.changed(a)};cvox.ChromeVoxEditableTextArea=function(a,b){cvox.ChromeVoxEditableElement.call(this,a,a.value,a.selectionStart,a.selectionEnd,!1,b);this.multiline=!0;this.shadowIsCurrent_=!1};goog.inherits(cvox.ChromeVoxEditableTextArea,cvox.ChromeVoxEditableElement);
+cvox.ChromeVoxEditableTextArea.prototype.update=function(a){this.node.value!=this.value&&(this.shadowIsCurrent_=!1);a=new cvox.TextChangeEvent(this.node.value,this.node.selectionStart,this.node.selectionEnd,a);this.changed(a)};cvox.ChromeVoxEditableTextArea.prototype.getLineIndex=function(a){return this.getShadow().getLineIndex(a)};cvox.ChromeVoxEditableTextArea.prototype.getLineStart=function(a){return this.getShadow().getLineStart(a)};cvox.ChromeVoxEditableTextArea.prototype.getLineEnd=function(a){return this.getShadow().getLineEnd(a)};
+cvox.ChromeVoxEditableTextArea.prototype.getShadow=function(){var a=cvox.ChromeVoxEditableTextArea.shadow_;a||(a=cvox.ChromeVoxEditableTextArea.shadow_=new cvox.EditableTextAreaShadow);this.shadowIsCurrent_||(a.update(this.node),this.shadowIsCurrent_=!0);return a};
+cvox.ChromeVoxEditableTextArea.prototype.moveCursorToNextLine=function(){var a=this.node,b=a.value.length;if(a.selectionEnd>=b)return!1;var c=this.getShadow(),d=c.getLineIndex(a.selectionEnd),e=c.getLineStart(d),e=a.selectionEnd-e,f=0==b?0:c.getLineIndex(b-1),b=d>=f?b:Math.min(c.getLineStart(d+1)+e,c.getLineEnd(d+1));a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableTextArea.prototype.moveCursorToPreviousLine=function(){var a=this.node;if(0>=a.selectionStart)return!1;var b=this.getShadow(),c=b.getLineIndex(a.selectionStart),d=b.getLineStart(c),d=a.selectionStart-d,b=0>=c?0:Math.min(b.getLineStart(c-1)+d,b.getLineEnd(c-1));a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableContentEditable=function(a,b){cvox.ChromeVoxEditableElement.call(this,a,"",0,0,!1,b);this.extractorIsCurrent_=!1;var c=this.getExtractor();this.value=c.getText();this.start=c.getStartIndex();this.end=c.getEndIndex();this.multiline=!0};goog.inherits(cvox.ChromeVoxEditableContentEditable,cvox.ChromeVoxEditableElement);
+cvox.ChromeVoxEditableContentEditable.prototype.update=function(a){this.extractorIsCurrent_=!1;a=new cvox.TextChangeEvent(this.getExtractor().getText(),this.getExtractor().getStartIndex(),this.getExtractor().getEndIndex(),a);this.changed(a)};cvox.ChromeVoxEditableContentEditable.prototype.getLineIndex=function(a){return this.getExtractor().getLineIndex(a)};cvox.ChromeVoxEditableContentEditable.prototype.getLineStart=function(a){return this.getExtractor().getLineStart(a)};
+cvox.ChromeVoxEditableContentEditable.prototype.getLineEnd=function(a){return this.getExtractor().getLineEnd(a)};cvox.ChromeVoxEditableContentEditable.prototype.getExtractor=function(){var a=cvox.ChromeVoxEditableContentEditable.extractor_;a||(a=cvox.ChromeVoxEditableContentEditable.extractor_=new cvox.ContentEditableExtractor);this.extractorIsCurrent_||(a.update(this.node),this.extractorIsCurrent_=!0);return a};
+cvox.ChromeVoxEditableContentEditable.prototype.describeSelectionChanged=function(a){a.triggeredByUser&&(this.start==this.end&&a.start==a.end&&1!=Math.abs(this.start-a.start)&&this.isLastChar(a)?this.speak(cvox.ChromeVox.msgs.getMsg("text_box_blank"),!0):cvox.ChromeVoxEditableContentEditable.superClass_.describeSelectionChanged.call(this,a))};
+cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToNextCharacter=function(){window.getSelection().modify("move","forward","character");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToPreviousCharacter=function(){window.getSelection().modify("move","backward","character");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToNextParagraph=function(){window.getSelection().modify("move","forward","paragraph");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToPreviousParagraph=function(){window.getSelection().modify("move","backward","paragraph");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEventSuspender=function(){};cvox.ChromeVoxEventSuspender.suspendLevel_=0;cvox.ChromeVoxEventSuspender.enterSuspendEvents=function(){cvox.ChromeVoxEventSuspender.suspendLevel_+=1};cvox.ChromeVoxEventSuspender.exitSuspendEvents=function(){cvox.ChromeVoxEventSuspender.suspendLevel_-=1};cvox.ChromeVoxEventSuspender.areEventsSuspended=function(){return 0<cvox.ChromeVoxEventSuspender.suspendLevel_};
+cvox.ChromeVoxEventSuspender.withSuspendedEvents=function(a){return function(){cvox.ChromeVoxEventSuspender.enterSuspendEvents();var b=a.apply(this,arguments);cvox.ChromeVoxEventSuspender.exitSuspendEvents();return b}};cvox.ChromeVoxEventSuspender.makeSuspendableHandler=function(a,b){return function(){return cvox.ChromeVoxEventSuspender.areEventsSuspended()?b:a()}};cvox.Focuser={};
+cvox.Focuser.setFocus=function(a,b){var c=window.getSelection(),d;0<c.rangeCount&&(d=c.getRangeAt(0));document.activeElement&&!cvox.DomUtil.isDescendantOfNode(a,document.activeElement)&&document.activeElement.blur();a&&a.constructor==HTMLVideoElement&&(cvox.DomUtil.isFocusable(a)||a.setAttribute("tabIndex",0));if(b&&!cvox.DomUtil.isFocusable(a)){var e=cvox.DomUtil.findFocusableDescendant(a);e&&(a=e)}else for(;a&&!cvox.DomUtil.isFocusable(a);)a=a.parentNode;cvox.DomUtil.isFocusable(a)?"IFRAME"!=a.tagName&&
+(cvox.ChromeVoxEventSuspender.areEventsSuspended()?(cvox.Focuser.shouldEnterSuspendEvents_(a)&&cvox.ChromeVoxEventSuspender.enterSuspendEvents(),window.setTimeout(function(){a.focus();cvox.ChromeVoxEventSuspender.exitSuspendEvents()},0)):window.setTimeout(function(){a.focus()},0)):document.activeElement&&"BODY"!=document.activeElement.tagName&&document.activeElement.blur();cvox.DomUtil.isInputTypeText(a)?a.select():d&&(c.removeAllRanges(),c.addRange(d))};
+cvox.Focuser.shouldEnterSuspendEvents_=function(a){if(a.constructor&&a.constructor==HTMLVideoElement)return!1;if(a.hasAttribute)switch(a.getAttribute("type")){case "time":case "date":case "week":case "month":return!1}return!0};cvox.ChromeVoxHTMLMediaWidget=function(a){var b=this;this.mediaElem_=a;this.keyListener_=function(a){b.eventHandler_(a)};this.blurListener_=function(){b.shutdown()};this.mediaElem_.addEventListener("keydown",this.keyListener_,!1);this.mediaElem_.addEventListener("keyup",this.keyListener_,!1);this.mediaElem_.addEventListener("blur",this.blurListener_,!1)};
+cvox.ChromeVoxHTMLMediaWidget.prototype.shutdown=function(){this.mediaElem_.removeEventListener("blur",this.blurListener_,!1);this.mediaElem_.removeEventListener("keydown",this.keyListener_,!1);this.mediaElem_.removeEventListener("keyup",this.keyListener_,!1)};cvox.ChromeVoxHTMLMediaWidget.prototype.jumpToTime_=function(a){0>a&&(a=0);a>this.mediaElem_.duration&&(a=this.mediaElem_.duration);this.mediaElem_.currentTime=a};
+cvox.ChromeVoxHTMLMediaWidget.prototype.setVolume_=function(a){0>a&&(a=0);1<a&&(a=1);this.mediaElem_.volume=a};
+cvox.ChromeVoxHTMLMediaWidget.prototype.eventHandler_=function(a){"keydown"==a.type&&(13==a.keyCode||32==a.keyCode?this.mediaElem_.paused?this.mediaElem_.play():this.mediaElem_.pause():39==a.keyCode?this.jumpToTime_(this.mediaElem_.currentTime+this.mediaElem_.duration/10):37==a.keyCode?this.jumpToTime_(this.mediaElem_.currentTime-this.mediaElem_.duration/10):38==a.keyCode?this.setVolume_(this.mediaElem_.volume+0.1):40==a.keyCode&&this.setVolume_(this.mediaElem_.volume-0.1))};cvox.ChromeVoxHTMLTimeWidget=function(a,b){var c=this;this.timeElem_=a;this.timeTts_=b;this.pMinutes_=this.pHours_=-1;this.pMilliseconds_=this.pSeconds_=0;this.pAmpm_="";this.pos_=0;this.maxPos_=2;this.keyListener_=function(a){c.eventHandler_(a)};this.blurListener_=function(){c.shutdown()};if(this.timeElem_.hasAttribute("step")){var d=this.timeElem_.getAttribute("step");0<d&&(this.maxPos_=1<=d?3:4)}0==this.timeElem_.value.length&&this.forceInitTime_();for(d=0;d<this.maxPos_;d++){var e=document.createEvent("KeyboardEvent");
+e.initKeyboardEvent("keydown",!0,!0,window,"Left",0,!1,!1,!1,!1);this.timeElem_.dispatchEvent(e);e=document.createEvent("KeyboardEvent");e.initKeyboardEvent("keyup",!0,!0,window,"Left",0,!1,!1,!1,!1);this.timeElem_.dispatchEvent(e)}this.timeElem_.addEventListener("keydown",this.keyListener_,!1);this.timeElem_.addEventListener("keyup",this.keyListener_,!1);this.timeElem_.addEventListener("blur",this.blurListener_,!1);this.update_(!0)};
+cvox.ChromeVoxHTMLTimeWidget.prototype.shutdown=function(){this.timeElem_.removeEventListener("blur",this.blurListener_,!1);this.timeElem_.removeEventListener("keydown",this.keyListener_,!1);this.timeElem_.removeEventListener("keyup",this.keyListener_,!1)};cvox.ChromeVoxHTMLTimeWidget.prototype.forceInitTime_=function(){this.timeElem_.setAttribute("value","12:00")};
+cvox.ChromeVoxHTMLTimeWidget.prototype.handlePosChange_=function(){0>this.pos_&&(this.pos_=0);this.pos_>this.maxPos_&&(this.pos_=this.maxPos_);if(this.pos_==this.maxPos_)this.pAmpm_="";else switch(this.pos_){case 0:this.pHours_=-1;break;case 1:this.pMinutes_=-1;break;case 2:this.pSeconds_=-1;break;case 3:this.pMilliseconds_=-1}};
+cvox.ChromeVoxHTMLTimeWidget.prototype.update_=function(a){var b=this.timeElem_.value.split(":");if(1>b.length)this.forceInitTime_();else{var c=b[0],d=-1,e=0,f=0,g=cvox.ChromeVox.msgs.getMsg("timewidget_am");1<b.length&&(d=b[1]);2<b.length&&(b=b[2].split("."),e=b[0],1<b.length&&(f=b[1]));12<c&&(c-=12,g=cvox.ChromeVox.msgs.getMsg("timewidget_pm"));12==c&&(g=cvox.ChromeVox.msgs.getMsg("timewidget_pm"));0==c&&(c=12,g=cvox.ChromeVox.msgs.getMsg("timewidget_am"));b="";a&&(b=cvox.DomUtil.getName(this.timeElem_,
+!0,!0)+"\n");c!=this.pHours_&&(b=b+c+" "+cvox.ChromeVox.msgs.getMsg("timewidget_hours")+"\n",this.pHours_=c);d!=this.pMinutes_&&(b=b+d+" "+cvox.ChromeVox.msgs.getMsg("timewidget_minutes")+"\n",this.pMinutes_=d);e!=this.pSeconds_&&(b=b+e+" "+cvox.ChromeVox.msgs.getMsg("timewidget_seconds")+"\n",this.pSeconds_=e);f!=this.pMilliseconds_&&(b=b+f+" "+cvox.ChromeVox.msgs.getMsg("timewidget_milliseconds")+"\n",this.pMilliseconds_=f);g!=this.pAmpm_&&(b+=g,this.pAmpm_=g);0<b.length&&this.timeTts_.speak(b,
+0,null)}};cvox.ChromeVoxHTMLTimeWidget.prototype.eventHandler_=function(a){var b=!1;if("keydown"==a.type){if(9==a.keyCode&&!a.shiftKey||39==a.keyCode)this.pos_++,this.handlePosChange_(),b=!0;if(9==a.keyCode&&a.shiftKey||37==a.keyCode)this.pos_--,this.handlePosChange_(),b=!0}this.update_(b)};cvox.ActiveIndicator=function(){this.lastMoveTime_=0;this.zoom_=1;this.updateIndicatorTimeoutId_=this.lastClientRects_=this.lastSyncTarget_=this.container_=null;this.blurred_=!1;window.addEventListener("focus",goog.bind(function(){this.blurred_=!1;this.container_&&this.container_.classList.remove("cvox_indicator_window_not_focused")},this),!1);window.addEventListener("blur",goog.bind(function(){this.blurred_=!0;this.container_&&this.container_.classList.add("cvox_indicator_window_not_focused")},this),
+!1)};cvox.ActiveIndicator.STYLE=".cvox_indicator_container { position: absolute !important; left: 0 !important; top: 0 !important; z-index: 2147483647 !important; pointer-events: none !important;}.cvox_indicator_window_not_focused { visibility: hidden !important;}.cvox_indicator_pulsing { -webkit-animation: cvox_indicator_pulsing_animation 0s 2 alternate !important; -webkit-animation-timing-function: ease-in-out !important;}.cvox_indicator_region { opacity: 0 !important; -webkit-transition: opacity 1s !important;}.cvox_indicator_visible { opacity: 1 !important;}.cvox_indicator_container .cvox_indicator_region * { position:absolute !important; box-shadow: 0 0 4px 4px #f7983a !important; border-radius: 6px !important; -webkit-transition: none !important;}.cvox_indicator_animate_normal .cvox_indicator_region * { -webkit-transition: all 0.3s !important;}.cvox_indicator_animate_quick .cvox_indicator_region * { -webkit-transition: all 0.1s !important;}.cvox_indicator_top { border-radius: inherit inherit 0 0 !important;}.cvox_indicator_middle_nw { border-radius: inherit 0 0 0 !important;}.cvox_indicator_middle_ne { border-radius: 0 inherit 0 0 !important;}.cvox_indicator_middle_se { border-radius: 0 0 inherit 0 !important;}.cvox_indicator_middle_sw { border-radius: 0 0 0 inherit !important;}.cvox_indicator_bottom { border-radius: 0 0 inherit inherit !important;}@-webkit-keyframes cvox_indicator_pulsing_animation { 0% {opacity: 1.0} 50% {opacity: 0.5} 100% {opacity: 1.0}}";
+cvox.ActiveIndicator.QUICK_ANIM_DELAY_MS=100;cvox.ActiveIndicator.NORMAL_ANIM_DELAY_MS=300;cvox.ActiveIndicator.MARGIN=8;cvox.ActiveIndicator.prototype.removeFromDom=function(){this.container_&&this.container_.parentElement&&this.container_.parentElement.removeChild(this.container_)};cvox.ActiveIndicator.prototype.syncToNode=function(a){a&&(a==document.body?this.removeFromDom():this.syncToNodes([a]))};
+cvox.ActiveIndicator.prototype.syncToNodes=function(a){var b=this.clientRectsFromNodes_(a);this.moveIndicator_(b,cvox.ActiveIndicator.MARGIN);this.lastSyncTarget_=a;this.lastClientRects_=b;null!=this.updateIndicatorTimeoutId_&&(window.clearTimeout(this.updateIndicatorTimeoutId_),this.updateIndicatorTimeoutId_=null)};
+cvox.ActiveIndicator.prototype.syncToRange=function(a){var b=cvox.ActiveIndicator.MARGIN;a.startContainer==a.endContainer&&a.startOffset+1==a.endOffset&&(b=1);var c=a.getClientRects();this.moveIndicator_(c,b);this.lastSyncTarget_=a;this.lastClientRects_=c;null!=this.updateIndicatorTimeoutId_&&(window.clearTimeout(this.updateIndicatorTimeoutId_),this.updateIndicatorTimeoutId_=null)};
+cvox.ActiveIndicator.prototype.syncToCursorSelection=function(a){if(a.start.node==a.end.node&&a.start.index==a.end.index)this.syncToNode(a.start.node);else{var b=document.createRange();b.setStart(a.start.node,a.start.index);b.setEnd(a.end.node,a.end.index);this.syncToRange(b)}};cvox.ActiveIndicator.prototype.updateIndicatorIfChanged=function(){this.updateIndicatorTimeoutId_||(this.updateIndicatorTimeoutId_=window.setTimeout(goog.bind(function(){this.handleUpdateIndicatorIfChanged_()},this),100))};
+cvox.ActiveIndicator.prototype.handleUpdateIndicatorIfChanged_=function(){this.updateIndicatorTimeoutId_=null;if(this.lastSyncTarget_){var a;if((a=this.lastSyncTarget_ instanceof Array?this.clientRectsFromNodes_(this.lastSyncTarget_):this.lastSyncTarget_.getClientRects())&&0!=a.length){var b=!1;if(a.length!=this.lastClientRects_.length)b=!0;else for(var c=0;c<this.lastClientRects_.length;++c){var d=this.lastClientRects_[c],e=a[c];if(d.top!=e.top||d.right!=e.right||d.bottom!=e.bottom||d.left!=d.left){b=
+!0;break}}b&&(this.moveIndicator_(a,cvox.ActiveIndicator.MARGIN),this.lastClientRects_=a)}else this.syncToNode(document.body)}};cvox.ActiveIndicator.prototype.clientRectsFromNodes_=function(a){for(var b=[],c=0;c<a.length;++c){var d=a[c];if(d.constructor==Text){var e=document.createRange();e.selectNode(d);e=e.getClientRects()}else{for(;!d.getClientRects;)d=d.parentElement;e=d.getClientRects()}for(d=0;d<e.length;++d)b.push(e[d])}return b};
+cvox.ActiveIndicator.prototype.moveIndicator_=function(a,b){if(document.body.isContentEditable)this.removeFromDom();else{var c=a.length;if(0!=c){var d,e;"static"!=window.getComputedStyle(document.body,null).position?(d=-document.body.getBoundingClientRect().left,e=-document.body.getBoundingClientRect().top):"static"!=window.getComputedStyle(document.documentElement,null).position?(d=-document.documentElement.getBoundingClientRect().left,e=-document.documentElement.getBoundingClientRect().top):(d=
+window.pageXOffset,e=window.pageYOffset);for(var f=[],g=0;g<c;g++)f.push(this.inset_(a[g],d,e,-d,-e));if(!this.container_||!this.container_.parentElement){g=document.getElementsByClassName("cvox_indicator_container");for(c=0;d=g[c];c++)d.parentNode&&d.parentNode.removeChild(d);this.container_=this.createDiv_(document.body,"cvox_indicator_container",document.body.firstChild)}g=document.createElement("style");g.id="cvox_indicator_style";g.innerHTML=cvox.ActiveIndicator.STYLE;cvox.DomUtil.addNodeToHead(g,
+g.id);g=(new Date).getTime();c=g-this.lastMoveTime_;this.container_.className="cvox_indicator_container";document.hasFocus()&&!this.blurred_||this.container_.classList.add("cvox_indicator_window_not_focused");c>cvox.ActiveIndicator.NORMAL_ANIM_DELAY_MS?this.container_.classList.add("cvox_indicator_animate_normal"):c>cvox.ActiveIndicator.QUICK_ANIM_DELAY_MS&&this.container_.classList.add("cvox_indicator_animate_quick");this.lastMoveTime_=g;this.computeZoomLevel_();for(window.setTimeout(goog.bind(function(){this.container_.classList.add("cvox_indicator_pulsing")},
+this),0);1<this.container_.childElementCount;)this.container_.removeChild(this.container_.lastElementChild);d=[[f[0]]];e=[f[0]];for(g=1;g<f.length;g++){for(var h=!1,c=0;c<d.length&&!h;c++)this.intersects_(f[g],e[c])&&(d[c].push(f[g]),e[c]=this.union_(e[c],f[g]),h=!0);h||(d.push([f[g]]),e.push(f[g]))}do for(f=!1,g=0;g<d.length-1&&!f;g++)for(c=g+1;c<d.length&&!f;c++)this.intersects_(e[g],e[c])&&(d[g]=d[g].concat(d[c]),e[g]=this.union_(e[g],e[c]),d.splice(c,1),e.splice(c,1),f=!0);while(f);for(g=0;g<
+d.length;g++)d[g].sort(function(a,b){return a.top!=b.top?a.top-b.top:a.left-b.left});for(g=0;g<d.length;g++)f=null,0==g&&1==this.container_.childElementCount&&6==this.container_.children[0].childElementCount&&(f=this.container_.children[0]),this.updateIndicatorRegion_(d[g],f,b)}}};
+cvox.ActiveIndicator.prototype.updateIndicatorRegion_=function(a,b,c){if(b)var d=b.children[0],e=b.children[1],f=b.children[2],g=b.children[3],h=b.children[4],k=b.children[5];else b=this.createDiv_(this.container_,"cvox_indicator_region"),window.setTimeout(function(){b.classList.add("cvox_indicator_visible")},0),d=this.createDiv_(b,"cvox_indicator_top"),e=this.createDiv_(b,"cvox_indicator_middle_nw"),f=this.createDiv_(b,"cvox_indicator_middle_ne"),g=this.createDiv_(b,"cvox_indicator_middle_sw"),h=
+this.createDiv_(b,"cvox_indicator_middle_se"),k=this.createDiv_(b,"cvox_indicator_bottom");for(var l=a[0],m=Math.floor((l.top+l.bottom)/2),p=1,q=a.length;p<q&&a[p].top<m;)l=this.union_(l,a[p]),m=Math.floor((l.top+l.bottom)/2),p++;if(p==q)l=this.inset_(l,-c,-c,-c,-c),a=Math.floor((3*l.top+1*l.bottom)/4),c=Math.floor((2*l.top+2*l.bottom)/4),m=Math.floor((1*l.top+3*l.bottom)/4),this.setElementCoords_(d,l.left,l.top,l.right,a,!0,!0,!0,!1),this.setElementCoords_(e,l.left,a,l.left,c,!0,!0,!1,!1),this.setElementCoords_(g,
+l.left,c,l.left,m,!0,!1,!1,!0),this.setElementCoords_(f,l.right,a,l.right,c,!1,!0,!0,!1),this.setElementCoords_(h,l.right,c,l.right,m,!1,!1,!0,!0),this.setElementCoords_(k,l.left,m,l.right,l.bottom,!0,!1,!0,!0);else{for(var m=a[q-1],n=Math.floor((m.top+m.bottom)/2),q=q-2;0<=q&&a[q].bottom>n;)m=this.union_(m,a[q]),n=Math.floor((m.top+m.bottom)/2),q--;l=this.inset_(l,-c,-c,-c,c);m=this.inset_(m,-c,c,-c,-c);if(p>q)n=this.union_(l,m),n.top=l.bottom,n.bottom=m.top,n.height=Math.floor((n.top+n.bottom)/
+2);else{n=a[p];for(p+=1;p<=q;)n=this.union_(n,a[p]),p++;n=this.inset_(n,-c,-c,-c,-c);n.left=Math.min(n.left,l.left,m.left);n.right=Math.max(n.right,l.right,m.right);n.width=n.right-n.left}l.right>n.right-40&&(l.right=n.right,l.width=l.right-l.left);l.left<n.left+40&&(l.left=n.left,l.width=l.right-l.left);m.right>n.right-40&&(m.right=n.right,m.width=m.right-m.left);m.left<n.left+40&&(m.left=n.left,m.width=m.right-m.left);a=Math.floor((n.top+n.bottom)/2);this.setElementRect_(d,l,!0,!0,!0,!1);this.setElementRect_(k,
+m,!0,!1,!0,!0);this.setElementCoords_(e,n.left,l.bottom,l.left,a,!0,!0,!1,!1);this.setElementCoords_(f,l.right,l.bottom,n.right,a,!1,!0,!0,!1);this.setElementCoords_(g,n.left,a,m.left,m.top,!0,!1,!1,!0);this.setElementCoords_(h,m.right,a,n.right,m.top,!1,!1,!0,!0)}};cvox.ActiveIndicator.prototype.intersects_=function(a,b){var c=2*cvox.ActiveIndicator.MARGIN;return b.left<=a.right+c&&b.right>=a.left-c&&b.top<=a.bottom+c&&b.bottom>=a.top-c};
+cvox.ActiveIndicator.prototype.union_=function(a,b){var c={left:Math.min(a.left,b.left),top:Math.min(a.top,b.top),right:Math.max(a.right,b.right),bottom:Math.max(a.bottom,b.bottom)};c.width=c.right-c.left;c.height=c.bottom-c.top;return c};cvox.ActiveIndicator.prototype.inset_=function(a,b,c,d,e){a={left:a.left+b,top:a.top+c,right:a.right-d,bottom:a.bottom-e};a.width=a.right-a.left;a.height=a.bottom-a.top;return a};
+cvox.ActiveIndicator.prototype.createDiv_=function(a,b,c){var d=document.createElement("div");d.className=b;c?a.insertBefore(d,c):a.appendChild(d);return d};cvox.ActiveIndicator.prototype.fixZoom_=function(a){return(Math.round(a*this.zoom_)+0.1)/this.zoom_};cvox.ActiveIndicator.prototype.fixZoomSum_=function(a,b){var c=Math.round(a*this.zoom_),d=Math.round((a+b)*this.zoom_),c=d-c;return(c+0.1)/this.zoom_};
+cvox.ActiveIndicator.prototype.setElementCoords_=function(a,b,c,d,e,f,g,h,k){var l=d-b,m=e-c;d-=b;e-=c;var p=f?-20:0,q=g?-20:0,n=h?20:0,s=k?20:0;0==d&&(h?(b-=5,d+=5):f&&(d+=10),s=q=10,c-=10,e+=20);k||(e+=5);g||(c-=5,e+=5,q+=5,s+=5);n=0==n&&0==l?1:this.fixZoomSum_(b,n+l);s=this.fixZoomSum_(c,s+m);a.style.left=this.fixZoom_(b)+"px";a.style.top=this.fixZoom_(c)+"px";a.style.width=this.fixZoomSum_(b,d)+"px";a.style.height=this.fixZoomSum_(c,e)+"px";a.style.clip="rect("+[q,n,s,p].join("px ")+"px)"};
+cvox.ActiveIndicator.prototype.setElementRect_=function(a,b,c,d,e,f){this.setElementCoords_(a,b.left,b.top,b.right,b.bottom,c,d,e,f)};
+cvox.ActiveIndicator.prototype.computeZoomLevel_=function(){if(window.innerHeight!==this.innerHeight_||window.innerWidth!==this.innerWidth_){this.innerHeight_=window.innerHeight;this.innerWidth_=window.innerWidth;var a=document.createElement("div");a.innerHTML="X";a.setAttribute("style","font: 5000px/1em sans-serif !important; -webkit-text-size-adjust:none !important; visibility:hidden !important; left: -10000px !important; top: -10000px !important; position:absolute !important;");document.body.appendChild(a);
+var b=5E3/a.clientHeight,b=Math.round(500*b)/500;0.1<b&&10>b&&(this.zoom_=b);a.parentNode.removeChild(a)}};cvox.NodeBreadcrumb=function(){this.cvTagCounter_=0};goog.addSingletonGetter(cvox.NodeBreadcrumb);cvox.NodeBreadcrumb.TOUCHED_TAG="chromevoxtag";cvox.NodeBreadcrumb.NEEDED_TAG_="chromevoxneeded";
+cvox.NodeBreadcrumb.prototype.tagCurrentNode=function(){for(var a,b=cvox.ChromeVox.navigationManager.getCurrentNode();b&&!b.hasAttribute;)b=b.parentNode;b?b.hasAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG)?a=b.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG):(a=this.cvTagCounter_,b.setAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG,a),this.cvTagCounter_++):a=-1;return a};
+cvox.NodeBreadcrumb.prototype.smartStart_=function(a){for(var b=0;b<a.children.length;++b){var c=a.children[b];this.smartStart_(c);c.getAttribute&&!goog.isNull(c.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG))&&this.setNeeded_(c)}};cvox.NodeBreadcrumb.prototype.setNeeded_=function(a){a&&a.getAttribute&&goog.isNull(a.getAttribute(cvox.NodeBreadcrumb.NEEDED_TAG_))&&(a.setAttribute(cvox.NodeBreadcrumb.NEEDED_TAG_,!0),"body"!==a.nodeName&&this.setNeeded_(a.parentElement))};
+cvox.NodeBreadcrumb.prototype.smartClone_=function(a){var b={};b[cvox.NodeBreadcrumb.TOUCHED_TAG]=!0;b[cvox.NodeBreadcrumb.NEEDED_TAG_]=!0;if(a.getAttribute&&a.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG))return cvox.DomUtil.deepClone(a,b);for(var b=cvox.DomUtil.shallowChildlessClone(a,b),c=0;c<a.childNodes.length;++c){var d=a.childNodes[c];d.getAttribute&&!goog.isNull(d.getAttribute(cvox.NodeBreadcrumb.NEEDED_TAG_))&&b.appendChild(this.smartClone_(d))}return b};
+cvox.NodeBreadcrumb.prototype.dumpWalkedDom=function(){this.smartStart_(document.body);return this.smartClone_(document.body)};cvox.NodeBreadcrumb.getCurrentNodeTag=function(){for(var a=cvox.ChromeVox.navigationManager.getCurrentNode();a&&!a.hasAttribute;)a=a.parentNode;return a&&a.hasAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG)?a.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG):-1};cvox.HistoryEvent=function(a){this.spoken_=[];a?this.userCommand_=a.cmd:this.startTime_=(new Date).getTime()};cvox.HistoryEvent.prototype.withUserCommand=function(a){if(this.userCommand_)return window.console.error("Two user commands on "+a,this),this;this.userCommand_=a;return this};cvox.HistoryEvent.prototype.speak=function(a){this.spoken_.push(a);return this};
+cvox.HistoryEvent.prototype.done=function(){this.endTime_=(new Date).getTime();cvox.NodeBreadcrumb.getInstance().tagCurrentNode();window.console.log("User command done.",this);return this};cvox.HistoryEvent.prototype.outputObject=function(){return{start:this.startTime_,end:this.endTime_,cmd:this.userCommand_,spoken:this.spoken_}};
+cvox.HistoryEvent.prototype.outputHTML=function(){var a=document.createElement("div");a.className="cvoxHistoryEvent";var b=this.endTime_-this.startTime_;a.innerHTML=this.userCommand_+" ("+b+"ms)";for(b=0;b<this.spoken_.length;b++){var c=document.createElement("div");c.className="cvoxHistoryEventSpoken";c.innerHTML=this.spoken_[b].substr(0,20);20<this.spoken_[b].length&&(c.innerHTML+="...");a.appendChild(c)}return a};
+cvox.HistoryEvent.prototype.outputJs=function(){var a="this.waitForCalm(this.userCommand, '"+this.userCommand_+"')";return a=0<this.spoken_.length?a+("\n .waitForCalm(this.assertSpoken, '"+cvox.DomUtil.collapseWhitespace(this.spoken_.join(" "))+"');\n"):a+";\n"};cvox.History=function(){this.recording_=!1;this.events_=[];this.styleDiv_=this.listDiv_=this.mainDiv_=this.currentEvent_=null;this.nodeBreadcrumb_=cvox.NodeBreadcrumb.getInstance()};goog.addSingletonGetter(cvox.History);
+cvox.History.prototype.addListDiv_=function(){this.mainDiv_=document.createElement("div");this.mainDiv_.style.position="fixed";this.mainDiv_.style.bottom="0";this.mainDiv_.style.right="0";this.mainDiv_.style.zIndex="999";this.listDiv_=document.createElement("div");this.listDiv_.id="cvoxEventList";this.mainDiv_.appendChild(this.listDiv_);var a=document.createElement("div"),b=document.createElement("button");b.onclick=cvox.History.sendToFeedback;b.innerHTML="Create bug";a.appendChild(b);this.mainDiv_.appendChild(a);
+a=document.createElement("div");b=document.createElement("button");b.onclick=cvox.History.dumpJs;b.innerHTML="Dump test case";a.appendChild(b);this.mainDiv_.appendChild(a);document.body.appendChild(this.mainDiv_);this.styleDiv_=document.createElement("style");this.styleDiv_.innerHTML=".cvoxHistoryEventSpoken { color: gray; font-size: 75% }";document.body.appendChild(this.styleDiv_)};
+cvox.History.prototype.removeListDiv_=function(){document.body.removeChild(this.mainDiv_);document.body.removeChild(this.styleDiv_);this.styleDiv_=this.listDiv_=this.mainDiv_=null};
+cvox.History.prototype.addBigTextBox_=function(){function a(a,b){var c=document.createElement("button");c.onclick=b;c.innerHTML=a;d.appendChild(c)}var b=document.createElement("div");b.style.position="fixed";b.style.top="0";b.style.left="0";b.style.zIndex="999";var c=document.createElement("textarea");c.style.width="500px";c.style.height="500px";c.innerHTML=this.dumpJsOutput_();b.appendChild(c);var d=document.createElement("div");b.appendChild(d);a("Close dialog",function(){document.body.removeChild(b)});
+a("Remove fluff",goog.bind(function(){c.innerHTML=this.dumpJsOutput_(["stopSpeech","toggleKeyPrefix"])},this));document.body.appendChild(b)};cvox.History.prototype.startRecording=function(){this.recording_=!0;this.addListDiv_()};cvox.History.prototype.stopRecording=function(){this.recording_=!1;this.removeListDiv_();this.events_=[];this.currentEvent_=null};
+cvox.History.prototype.enterUserCommand=function(a){this.recording_&&(this.currentEvent_&&window.console.error("User command "+a+" overlaps current event",this.currentEvent_),this.currentEvent_=(new cvox.HistoryEvent).withUserCommand(a),this.events_.push(this.currentEvent_))};cvox.History.prototype.exitUserCommand=function(){this.recording_&&this.currentEvent_&&(this.currentEvent_.done(),this.listDiv_.appendChild(this.currentEvent_.outputHTML()),this.currentEvent_=null)};
+cvox.History.prototype.speak=function(a){if(!this.recording_)return this;if(!this.currentEvent_)return window.console.error("Speak called outside of a user command."),this;this.currentEvent_.speak(a);return this};cvox.History.prototype.isSpeaking=function(){return!1};cvox.History.prototype.stop=function(){};cvox.History.prototype.increaseOrDecreaseProperty=function(){};cvox.History.prototype.getDefaultProperty=function(){};
+cvox.History.dumpJs=function(){var a=cvox.History.getInstance();a.addBigTextBox_();window.console.log(a.dumpJsOutput_())};cvox.History.prototype.dumpJsOutput_=function(a){var b={};a&&a.forEach(function(a){b[a]=1});return["/*DOC: += ",this.nodeBreadcrumb_.dumpWalkedDom().innerHTML,"*/\n"].concat(this.events_.filter(function(a){return!(a.userCommand_ in b)}).map(function(a){return a.outputJs()})).join("")};
+cvox.History.sendToFeedback=function(){var a=cvox.History.getInstance(),a=a.events_.map(function(a){return a.outputObject()}),b=document.createElement("script");b.type="text/javascript";b.src="https://www.gstatic.com/feedback/api.js";var c=document.createElement("script");c.type="text/javascript";c.innerHTML="userfeedback.api.startFeedback({ productId: '76092' }, { cvoxHistory: "+cvox.ChromeVoxJSON.stringify(cvox.ChromeVoxJSON.stringify(a))+" });";b.onload=function(){document.body.appendChild(c)};
+document.body.appendChild(b)};cvox.KeySequence=function(a,b,c,d){this.doubleTap=!!d;this.cvoxModifier=void 0==b?this.isCVoxModifierActive(a):b;this.stickyMode=!!a.stickyMode;this.prefixKey=!!a.keyPrefix;this.skipStripping=!!c;if(this.stickyMode&&this.prefixKey)throw"Prefix key and sticky mode cannot both be enabled: "+a;a=this.resolveChromeOSSpecialKeys_(a);this.keys={ctrlKey:[],searchKeyHeld:[],altKey:[],altGraphKey:[],shiftKey:[],metaKey:[],keyCode:[]};this.extractKey_(a)};
+cvox.KeySequence.KEY_PRESS_CODE={39:222,44:188,45:189,46:190,47:191,59:186,91:219,92:220,93:221};cvox.KeySequence.doubleTapCache=[];cvox.KeySequence.prototype.addKeyEvent=function(a){if(1<this.keys.keyCode.length)return!1;this.extractKey_(a);return!0};cvox.KeySequence.prototype.equals=function(a){if(!this.checkKeyEquality_(a)||this.doubleTap!=a.doubleTap)return!1;if(this.cvoxModifier===a.cvoxModifier)return!0;a=this.cvoxModifier?a:this;return a.stickyMode||a.prefixKey};
+cvox.KeySequence.prototype.extractKey_=function(a){for(var b in this.keys)if("keyCode"==b){var c;"keypress"==a.type&&97<=a[b]&&122>=a[b]?c=a[b]-32:"keypress"==a.type&&(c=cvox.KeySequence.KEY_PRESS_CODE[a[b]]);this.keys[b].push(c||a[b])}else this.isKeyModifierActive(a,b)?this.keys[b].push(!0):this.keys[b].push(!1);this.cvoxModifier&&this.rationalizeKeys_()};
+cvox.KeySequence.prototype.rationalizeKeys_=function(){if(!this.skipStripping){var a=cvox.ChromeVox.modKeyStr.split(/\+/g),b=this.keys.keyCode.length-1;-1!=a.indexOf("Ctrl")&&(this.keys.ctrlKey[b]=!1);-1!=a.indexOf("Alt")&&(this.keys.altKey[b]=!1);-1!=a.indexOf("Shift")&&(this.keys.shiftKey[b]=!1);var c=this.getMetaKeyName_();if(-1!=a.indexOf(c))if("Search"==c)this.keys.searchKeyHeld[b]=!1;else if("Cmd"==c||"Win"==c)this.keys.metaKey[b]=!1}};
+cvox.KeySequence.prototype.getMetaKeyName_=function(){return cvox.ChromeVox.isChromeOS?"Search":cvox.ChromeVox.isMac?"Cmd":"Win"};cvox.KeySequence.prototype.checkKeyEquality_=function(a){for(var b in this.keys)for(var c=this.keys[b].length;c--;)if(this.keys[b][c]!==a.keys[b][c])return!1;return!0};cvox.KeySequence.prototype.length=function(){return this.keys.keyCode.length};cvox.KeySequence.prototype.isModifierKey=function(a){return 16==a||17==a||18==a||91==a||93==a};
+cvox.KeySequence.prototype.isCVoxModifierActive=function(a){var b=cvox.ChromeVox.modKeyStr.split(/\+/g);this.isKeyModifierActive(a,"ctrlKey")&&(b=b.filter(function(a){return"Ctrl"!=a}));this.isKeyModifierActive(a,"altKey")&&(b=b.filter(function(a){return"Alt"!=a}));this.isKeyModifierActive(a,"shiftKey")&&(b=b.filter(function(a){return"Shift"!=a}));if(this.isKeyModifierActive(a,"metaKey")||this.isKeyModifierActive(a,"searchKeyHeld"))var c=this.getMetaKeyName_(),b=b.filter(function(a){return a!=c});
+return 0==b.length};cvox.KeySequence.prototype.isKeyModifierActive=function(a,b){switch(b){case "ctrlKey":return a.ctrlKey||17==a.keyCode;case "altKey":return a.altKey||18==a.keyCode;case "shiftKey":return a.shiftKey||16==a.keyCode;case "metaKey":return a.metaKey||!cvox.ChromeVox.isChromeOS&&91==a.keyCode;case "searchKeyHeld":return cvox.ChromeVox.isChromeOS&&91==a.keyCode||a.searchKeyHeld}return!1};
+cvox.KeySequence.deserialize=function(a){var b={};b.stickyMode=void 0==a.stickyMode?!1:a.stickyMode;b.prefixKey=void 0==a.prefixKey?!1:a.prefixKey;var c=1<a.keys.keyCode.length,d={},e;for(e in a.keys)b[e]=a.keys[e][0],c&&(d[e]=a.keys[e][1]);e=new cvox.KeySequence(b,a.cvoxModifier,!0,a.doubleTap);c&&(cvox.ChromeVox.sequenceSwitchKeyCodes.push(new cvox.KeySequence(b,a.cvoxModifier)),e.addKeyEvent(d));a.doubleTap&&cvox.KeySequence.doubleTapCache.push(e);return e};
+cvox.KeySequence.fromStr=function(a){var b={},c={},d;d=-1==a.indexOf(">")?!1:!0;var e=!1;b.stickyMode=!1;b.prefixKey=!1;a=a.split("+");for(var f=0;f<a.length;f++)for(var g=a[f].split(">"),h=0;h<g.length;h++){if("#"==g[h].charAt(0)){var k=parseInt(g[h].substr(1),10);0<h?c.keyCode=k:b.keyCode=k}k=g[h];1==g[h].length?0<h?c.keyCode=g[h].charCodeAt(0):b.keyCode=g[h].charCodeAt(0):(0<h?cvox.KeySequence.setModifiersOnEvent_(k,c):cvox.KeySequence.setModifiersOnEvent_(k,b),"Cvox"==k&&(e=!0))}b=new cvox.KeySequence(b,
+e);d&&b.addKeyEvent(c);return b};cvox.KeySequence.setModifiersOnEvent_=function(a,b){"Ctrl"==a?(b.ctrlKey=!0,b.keyCode=17):"Alt"==a?(b.altKey=!0,b.keyCode=18):"Shift"==a?(b.shiftKey=!0,b.keyCode=16):"Search"==a?(b.searchKeyHeld=!0,b.keyCode=91):"Cmd"==a?(b.metaKey=!0,b.keyCode=91):"Win"==a?(b.metaKey=!0,b.keyCode=91):"Insert"==a&&(b.keyCode=45)};
+cvox.KeySequence.prototype.resolveChromeOSSpecialKeys_=function(a){if(!this.cvoxModifier||this.stickyMode||this.prefixKey||!cvox.ChromeVox.isChromeOS)return a;var b={},c;for(c in a)b[c]=a[c];switch(b.keyCode){case 33:b.keyCode=38;break;case 34:b.keyCode=40;break;case 35:b.keyCode=39;break;case 36:b.keyCode=37;break;case 45:b.keyCode=190;break;case 46:b.keyCode=8;break;case 112:b.keyCode=49;break;case 113:b.keyCode=50;break;case 114:b.keyCode=51;break;case 115:b.keyCode=52;break;case 116:b.keyCode=
+53;break;case 117:b.keyCode=54;break;case 118:b.keyCode=55;break;case 119:b.keyCode=56;break;case 120:b.keyCode=57;break;case 121:b.keyCode=48;break;case 122:b.keyCode=189;break;case 123:b.keyCode=187}return b};cvox.KeyUtil=function(){};cvox.KeyUtil.modeKeyPressTime=0;cvox.KeyUtil.sequencing=!1;cvox.KeyUtil.prevKeySequence=null;cvox.KeyUtil.stickyKeySequence=null;cvox.KeyUtil.maxSeqLength=2;
+cvox.KeyUtil.keyEventToKeySequence=function(a){var b=cvox.KeyUtil;b.prevKeySequence&&b.maxSeqLength==b.prevKeySequence.length()&&(b.sequencing=!1,b.prevKeySequence=null);var c=b.sequencing||a.keyPrefix||a.stickyMode,d=new cvox.KeySequence(a),e=d.cvoxModifier;if(c||e){if(!b.sequencing&&b.isSequenceSwitchKeyCode(d))return b.sequencing=!0,b.prevKeySequence=d;if(b.sequencing){if(b.prevKeySequence.addKeyEvent(a))return d=b.prevKeySequence,b.prevKeySequence=null,b.sequencing=!1,d;throw"Think sequencing is enabled, yet util.prevKeySequence alreadyhas two key codes"+
+b.prevKeySequence;}}else b.sequencing=!1;c=(new Date).getTime();if(cvox.KeyUtil.isDoubleTapKey(d)&&b.prevKeySequence&&d.equals(b.prevKeySequence)&&(e=b.modeKeyPressTime,0<e&&300>c-e))return d=b.prevKeySequence,d.doubleTap=!0,b.prevKeySequence=null,b.sequencing=!1,cvox.ChromeVox.isChromeOS&&a.keyCode==cvox.KeyUtil.getStickyKeyCode()&&(cvox.ChromeVox.searchKeyHeld=!1),d;b.prevKeySequence=d;b.modeKeyPressTime=c;return d};
+cvox.KeyUtil.keyCodeToString=function(a){return 17==a?"Ctrl":18==a?"Alt":16==a?"Shift":91==a||93==a?cvox.ChromeVox.isChromeOS?"Search":cvox.ChromeVox.isMac?"Cmd":"Win":45==a?"Insert":65<=a&&90>=a?String.fromCharCode(a):48<=a&&57>=a?String.fromCharCode(a):"#"+a};cvox.KeyUtil.modStringToKeyCode=function(a){switch(a){case "Ctrl":return 17;case "Alt":return 18;case "Shift":return 16;case "Cmd":case "Win":return 91}return-1};
+cvox.KeyUtil.cvoxModKeyCodes=function(){var a=cvox.ChromeVox.modKeyStr.split(/\+/g);return a=a.map(function(a){return cvox.KeyUtil.modStringToKeyCode(a)})};cvox.KeyUtil.isSequenceSwitchKeyCode=function(a){for(var b=0;b<cvox.ChromeVox.sequenceSwitchKeyCodes.length;b++){var c=cvox.ChromeVox.sequenceSwitchKeyCodes[b];if(c.equals(a))return!0}return!1};
+cvox.KeyUtil.getReadableNameForKeyCode=function(a){if(0==a)return"Power button";if(17==a)return"Control";if(18==a)return"Alt";if(16==a)return"Shift";if(9==a)return"Tab";if(91==a||93==a)return cvox.ChromeVox.isChromeOS?"Search":cvox.ChromeVox.isMac?"Cmd":"Win";if(8==a)return"Backspace";if(32==a)return"Space";if(35==a)return"end";if(36==a)return"home";if(37==a)return"Left arrow";if(38==a)return"Up arrow";if(39==a)return"Right arrow";if(40==a)return"Down arrow";if(45==a)return"Insert";if(13==a)return"Enter";
+if(27==a)return"Escape";if(112==a)return cvox.ChromeVox.isChromeOS?"Back":"F1";if(113==a)return cvox.ChromeVox.isChromeOS?"Forward":"F2";if(114==a)return cvox.ChromeVox.isChromeOS?"Refresh":"F3";if(115==a)return cvox.ChromeVox.isChromeOS?"Toggle full screen":"F4";if(116==a)return"F5";if(117==a)return"F6";if(118==a)return"F7";if(119==a)return"F8";if(120==a)return"F9";if(121==a)return"F10";if(122==a)return"F11";if(123==a)return"F12";if(186==a)return"Semicolon";if(187==a)return"Equal sign";if(188==a)return"Comma";
+if(189==a)return"Dash";if(190==a)return"Period";if(191==a)return"Forward slash";if(192==a)return"Grave accent";if(219==a)return"Open bracket";if(220==a)return"Back slash";if(221==a)return"Close bracket";if(222==a)return"Single quote";if(115==a)return"Toggle full screen";if(48<=a&&90>=a)return String.fromCharCode(a)};cvox.KeyUtil.getStickyKeyCode=function(){var a=45;if(cvox.ChromeVox.isChromeOS||cvox.ChromeVox.isMac)a=91;return a};
+cvox.KeyUtil.getStickyKeySequence=function(){if(null==cvox.KeyUtil.stickyKeySequence){var a=cvox.KeyUtil.getStickyKeyCode(),a={keyCode:a,stickyMode:!0},b=new cvox.KeySequence(a);b.addKeyEvent(a);cvox.KeyUtil.stickyKeySequence=b}return cvox.KeyUtil.stickyKeySequence};cvox.KeyUtil.getReadableNameForStr=function(){return null};
+cvox.KeyUtil.keySequenceToString=function(a,b,c){for(var d="",e=a.length(),f=0;f<e;f++){""==d||c?""!=d&&(d+="+"):d+=">";var g="",h;for(h in a.keys)if(a.keys[h][f]){var k="";switch(h){case "ctrlKey":k="Ctrl";break;case "searchKeyHeld":k=cvox.KeyUtil.getReadableNameForKeyCode(91);break;case "altKey":k="Alt";break;case "altGraphKey":k="AltGraph";break;case "shiftKey":k="Shift";break;case "metaKey":k=cvox.KeyUtil.getReadableNameForKeyCode(91);break;case "keyCode":var l=a.keys[h][f];a.isModifierKey(l)||
+c||(g=b?g+cvox.KeyUtil.getReadableNameForKeyCode(l):g+cvox.KeyUtil.keyCodeToString(l))}-1==d.indexOf(k)&&(g+=k+"+")}d+=g;"+"==d[d.length-1]&&(d=d.slice(0,-1))}a.cvoxModifier||a.prefixKey?d=""!=d?"Cvox+"+d:"Cvox":a.stickyMode&&(">"==d[d.length-1]&&(d=d.slice(0,-1)),d=d+"+"+d);return d};cvox.KeyUtil.isDoubleTapKey=function(a){var b=!1,c=a.doubleTap;a.doubleTap=!0;for(var d=0,e;e=cvox.KeySequence.doubleTapCache[d];d++)if(e.equals(a)){b=!0;break}a.doubleTap=c;return b};cvox.KeyMap=function(a){this.bindings_=a;this.commandToKey_={};this.buildCommandToKey_()};cvox.KeyMap.KEYMAP_PATH="chromevox/background/keymaps/";cvox.KeyMap.AVAILABLE_MAP_INFO={keymap_classic:{file:"classic_keymap.json"},keymap_flat:{file:"flat_keymap.json"},keymap_experimental:{file:"experimental.json"}};cvox.KeyMap.DEFAULT_KEYMAP=0;cvox.KeyMap.prototype.length=function(){return this.bindings_.length};cvox.KeyMap.prototype.keys=function(){return this.bindings_.map(function(a){return a.sequence})};
+cvox.KeyMap.prototype.bindings=function(){return this.bindings_};cvox.KeyMap.prototype.toJSON=function(){return JSON.stringify({bindings:this.bindings_})};cvox.KeyMap.prototype.hasKey=function(a){for(var b=0;b<this.bindings_.length;b++){var c=this.bindings_[b];if(c.sequence.equals(a))return!0}return!1};cvox.KeyMap.prototype.commandForKey=function(a){if(null!=a)for(var b=0;b<this.bindings_.length;b++){var c=this.bindings_[b];if(c.sequence.equals(a))return c.command}return null};
+cvox.KeyMap.fromDefaults=function(){return cvox.KeyMap.fromPath(cvox.KeyMap.KEYMAP_PATH+cvox.KeyMap.AVAILABLE_MAP_INFO.keymap_classic.file)};cvox.KeyMap.fromJSON=function(a){try{var b=JSON.parse(a).bindings,b=b.filter(function(a){return void 0===a.sequence.platformFilter||cvox.PlatformUtil.matchesPlatform(a.sequence.platformFilter)})}catch(c){return null}if("object"!=typeof b)return null;for(a=0;a<b.length;a++){if(void 0==b[a].command||void 0==b[a].sequence)return null;b[a].sequence=cvox.KeySequence.deserialize(b[a].sequence)}return new cvox.KeyMap(b)};
+cvox.KeyMap.fromLocalStorage=function(){return localStorage.keyBindings?cvox.KeyMap.fromJSON(localStorage.keyBindings):null};cvox.KeyMap.fromPath=function(a){return cvox.KeyMap.fromJSON(cvox.KeyMap.readJSON_(a))};cvox.KeyMap.fromCurrentKeyMap=function(){var a=localStorage.currentKeyMap;return a&&cvox.KeyMap.AVAILABLE_MAP_INFO[a]?cvox.KeyMap.fromPath(cvox.KeyMap.KEYMAP_PATH+cvox.KeyMap.AVAILABLE_MAP_INFO[a].file):cvox.KeyMap.fromDefaults()};
+cvox.KeyMap.readJSON_=function(a){var b=chrome.extension.getURL(a);if(!b)throw"Invalid path: "+a;a=new XMLHttpRequest;a.open("GET",b,!1);a.send();return a.responseText};cvox.KeyMap.prototype.buildCommandToKey_=function(){for(var a=0;a<this.bindings_.length;a++){var b=this.bindings_[a];void 0==this.commandToKey_[b.command]&&(this.commandToKey_[b.command]=b.sequence)}};cvox.CommandStore={};cvox.CommandStore.categories=function(){var a={},b;for(b in cvox.CommandStore.CMD_WHITELIST){var c=cvox.CommandStore.CMD_WHITELIST[b];c.category&&(a[c.category]=!0)}b=[];for(var d in a)b.push(d);return b};cvox.CommandStore.messageForCommand=function(a){return(cvox.CommandStore.CMD_WHITELIST[a]||{}).msgId};cvox.CommandStore.categoryForCommand=function(a){return(cvox.CommandStore.CMD_WHITELIST[a]||{}).category};
+cvox.CommandStore.commandsForCategory=function(a){var b=[],c;for(c in cvox.CommandStore.CMD_WHITELIST){var d=cvox.CommandStore.CMD_WHITELIST[c];a==d.category&&b.push(c)}return b};
+cvox.CommandStore.CMD_WHITELIST={toggleStickyMode:{announce:!1,msgId:"toggle_sticky_mode",disallowOOBE:!0,category:"modifier_keys"},toggleKeyPrefix:{announce:!1,skipInput:!0,msgId:"prefix_key",disallowOOBE:!0,category:"modifier_keys"},stopSpeech:{announce:!1,disallowContinuation:!0,doDefault:!0,msgId:"stop_speech_key",category:"controlling_speech"},toggleChromeVox:{announce:!1,platformFilter:cvox.PlatformFilter.WML,msgId:"toggle_chromevox_active",category:"controlling_speech"},decreaseTtsRate:{announce:!1,
+msgId:"decrease_tts_rate",category:"controlling_speech"},increaseTtsRate:{announce:!1,msgId:"increase_tts_rate",category:"controlling_speech"},decreaseTtsPitch:{announce:!1,msgId:"decrease_tts_pitch",category:"controlling_speech"},increaseTtsPitch:{announce:!1,msgId:"increase_tts_pitch",category:"controlling_speech"},decreaseTtsVolume:{announce:!1,msgId:"decrease_tts_volume",category:"controlling_speech"},increaseTtsVolume:{announce:!1,msgId:"increase_tts_volume",category:"controlling_speech"},cyclePunctuationEcho:{announce:!1,
+msgId:"cycle_punctuation_echo",category:"controlling_speech"},cycleTypingEcho:{announce:!1,msgId:"cycle_typing_echo",category:"controlling_speech"},toggleEarcons:{announce:!0,msgId:"toggle_earcons",category:"controlling_speech"},handleTab:{allowEvents:!0,msgId:"handle_tab_next",disallowContinuation:!0,category:"navigation"},handleTabPrev:{allowEvents:!0,msgId:"handle_tab_prev",disallowContinuation:!0,category:"navigation"},forward:{forward:!0,announce:!0,msgId:"forward",category:"navigation"},backward:{backward:!0,
+announce:!0,msgId:"backward",category:"navigation"},right:{forward:!0,announce:!0,msgId:"right",category:"navigation"},left:{backward:!0,announce:!0,msgId:"left",category:"navigation"},previousGranularity:{announce:!0,msgId:"previous_granularity",category:"navigation"},nextGranularity:{announce:!0,msgId:"next_granularity",category:"navigation"},previousCharacter:{backward:!0,announce:!0,msgId:"previous_character",skipInput:!0,category:"navigation"},nextCharacter:{forward:!0,announce:!0,msgId:"next_character",
+skipInput:!0,category:"navigation"},previousWord:{backward:!0,announce:!0,msgId:"previous_word",skipInput:!0,category:"navigation"},nextWord:{forward:!0,announce:!0,msgId:"next_word",skipInput:!0,category:"navigation"},previousLine:{backward:!0,announce:!0,msgId:"previous_line",category:"navigation"},nextLine:{forward:!0,announce:!0,msgId:"next_line",category:"navigation"},previousSentence:{backward:!0,announce:!0,msgId:"previous_sentence",skipInput:!0,category:"navigation"},nextSentence:{forward:!0,
+announce:!0,msgId:"next_sentence",skipInput:!0,category:"navigation"},previousObject:{backward:!0,announce:!0,msgId:"previous_object",skipInput:!0,category:"navigation"},nextObject:{forward:!0,announce:!0,msgId:"next_object",skipInput:!0,category:"navigation"},previousGroup:{backward:!0,announce:!0,msgId:"previous_group",skipInput:!0,category:"navigation"},nextGroup:{forward:!0,announce:!0,msgId:"next_group",skipInput:!0,category:"navigation"},jumpToTop:{forward:!0,announce:!0,msgId:"jump_to_top",
+category:"navigation"},jumpToBottom:{backward:!0,announce:!0,msgId:"jump_to_bottom",category:"navigation"},moveToStartOfLine:{forward:!0,announce:!0},moveToEndOfLine:{backward:!0,announce:!0},readFromHere:{forward:!0,announce:!1,msgId:"read_from_here",category:"navigation"},performDefaultAction:{disallowContinuation:!0,msgId:"perform_default_action",doDefault:!0,skipInput:!0,category:"navigation"},forceClickOnCurrentItem:{announce:!0,disallowContinuation:!0,allowEvents:!0,msgId:"force_click_on_current_item",
+category:"navigation"},forceDoubleClickOnCurrentItem:{announce:!0,allowEvents:!0,disallowContinuation:!0},readLinkURL:{announce:!1,msgId:"read_link_url",category:"information"},readCurrentTitle:{announce:!1,msgId:"read_current_title",category:"information"},readCurrentURL:{announce:!1,msgId:"read_current_url",category:"information"},fullyDescribe:{announce:!1,msgId:"fully_describe",category:"information"},speakTimeAndDate:{announce:!1,msgId:"speak_time_and_date",category:"information"},toggleSelection:{announce:!0,
+msgId:"toggle_selection",category:"information"},toggleSearchWidget:{announce:!1,disallowContinuation:!0,msgId:"toggle_search_widget",category:"information"},toggleKeyboardHelp:{announce:!1,disallowContinuation:!0,msgId:"show_power_key",category:"help_commands"},help:{announce:!1,msgId:"help",disallowOOBE:!0,disallowContinuation:!0,category:"help_commands"},contextMenu:{announce:!1,disallowContinuation:!0},showOptionsPage:{announce:!1,disallowContinuation:!0,msgId:"show_options_page",disallowOOBE:!0,
+category:"help_commands"},showKbExplorerPage:{announce:!1,disallowContinuation:!0,msgId:"show_kb_explorer_page",disallowOOBE:!0,category:"help_commands"},showFormsList:{announce:!1,disallowContinuation:!0,nodeList:"formField",msgId:"show_forms_list",category:"overview"},showHeadingsList:{announce:!1,nodeList:"heading",disallowContinuation:!0,msgId:"show_headings_list",category:"overview"},showLandmarksList:{announce:!1,nodeList:"landmark",disallowContinuation:!0,msgId:"show_landmarks_list",category:"overview"},
+showLinksList:{announce:!1,nodeList:"link",disallowContinuation:!0,msgId:"show_links_list",category:"overview"},showTablesList:{announce:!1,nodeList:"table",disallowContinuation:!0,msgId:"show_tables_list",category:"overview"},startHistoryRecording:{announce:!1},stopHistoryRecording:{announce:!1},enableConsoleTts:{announce:!1},autorunner:{announce:!1},nextArticle:{forward:!0,findNext:"article"},nextButton:{forward:!0,findNext:"button",msgId:"next_button",category:"jump_commands"},nextCheckbox:{forward:!0,
+findNext:"checkbox",msgId:"next_checkbox",category:"jump_commands"},nextComboBox:{forward:!0,findNext:"combobox",msgId:"next_combo_box",category:"jump_commands"},nextControl:{forward:!0,findNext:"control"},nextEditText:{forward:!0,findNext:"editText",msgId:"next_edit_text",category:"jump_commands"},nextFormField:{forward:!0,findNext:"formField",msgId:"next_form_field",category:"jump_commands"},nextGraphic:{forward:!0,findNext:"graphic",msgId:"next_graphic",category:"jump_commands"},nextHeading:{forward:!0,
+findNext:"heading",msgId:"next_heading",category:"jump_commands"},nextHeading1:{forward:!0,findNext:"heading1",msgId:"next_heading1",category:"jump_commands"},nextHeading2:{forward:!0,findNext:"heading2",msgId:"next_heading2",category:"jump_commands"},nextHeading3:{forward:!0,findNext:"heading3",msgId:"next_heading3",category:"jump_commands"},nextHeading4:{forward:!0,findNext:"heading4",msgId:"next_heading4",category:"jump_commands"},nextHeading5:{forward:!0,findNext:"heading5",msgId:"next_heading5",
+category:"jump_commands"},nextHeading6:{forward:!0,findNext:"heading6",msgId:"next_heading6",category:"jump_commands"},nextLandmark:{forward:!0,findNext:"landmark",msgId:"next_landmark",category:"jump_commands"},nextLink:{forward:!0,findNext:"link",msgId:"next_link",category:"jump_commands"},nextList:{forward:!0,findNext:"list",msgId:"next_list",category:"jump_commands"},nextListItem:{forward:!0,findNext:"listItem",msgId:"next_list_item",category:"jump_commands"},nextMath:{forward:!0,findNext:"math",
+msgId:"next_math",category:"jump_commands"},nextMedia:{forward:!0,findNext:"media",msgId:"next_media",category:"jump_commands"},nextRadio:{forward:!0,findNext:"radio",msgId:"next_radio",category:"jump_commands"},nextSection:{forward:!0,findNext:"section"},nextSlider:{forward:!0,findNext:"slider"},nextTable:{forward:!0,findNext:"table",msgId:"next_table",category:"jump_commands"},nextVisitedLink:{forward:!0,findNext:"visitedLink",msgId:"next_visited_link",category:"jump_commands"},previousArticle:{backward:!0,
+findNext:"article"},previousButton:{backward:!0,findNext:"button",msgId:"previous_button",category:"jump_commands"},previousCheckbox:{backward:!0,findNext:"checkbox",msgId:"previous_checkbox",category:"jump_commands"},previousComboBox:{backward:!0,findNext:"combobox",msgId:"previous_combo_box",category:"jump_commands"},previousControl:{backward:!0,findNext:"control"},previousEditText:{backward:!0,findNext:"editText",msgId:"previous_edit_text",category:"jump_commands"},previousFormField:{backward:!0,
+findNext:"formField",msgId:"previous_form_field",category:"jump_commands"},previousGraphic:{backward:!0,findNext:"graphic",msgId:"previous_graphic",category:"jump_commands"},previousHeading:{backward:!0,findNext:"heading",msgId:"previous_heading",category:"jump_commands"},previousHeading1:{backward:!0,findNext:"heading1",msgId:"previous_heading1",category:"jump_commands"},previousHeading2:{backward:!0,findNext:"heading2",msgId:"previous_heading2",category:"jump_commands"},previousHeading3:{backward:!0,
+findNext:"heading3",msgId:"previous_heading3",category:"jump_commands"},previousHeading4:{backward:!0,findNext:"heading4",msgId:"previous_heading4",category:"jump_commands"},previousHeading5:{backward:!0,findNext:"heading5",msgId:"previous_heading5",category:"jump_commands"},previousHeading6:{backward:!0,findNext:"heading6",msgId:"previous_heading6",category:"jump_commands"},previousLandmark:{backward:!0,findNext:"landmark",msgId:"previous_landmark",category:"jump_commands"},previousLink:{backward:!0,
+findNext:"link",msgId:"previous_link",category:"jump_commands"},previousList:{backward:!0,findNext:"list",msgId:"previous_list",category:"jump_commands"},previousListItem:{backward:!0,findNext:"listItem",msgId:"previous_list_item",category:"jump_commands"},previousMath:{backward:!0,findNext:"math",msgId:"previous_math",category:"jump_commands"},previousMedia:{backward:!0,findNext:"media",msgId:"previous_media",category:"jump_commands"},previousRadio:{backward:!0,findNext:"radio",msgId:"previous_radio",
+category:"jump_commands"},previousSection:{backward:!0,findNext:"section"},previousSlider:{backward:!0,findNext:"slider"},previousTable:{backward:!0,findNext:"table",msgId:"previous_table",category:"jump_commands"},previousVisitedLink:{backward:!0,findNext:"visitedLink",msgId:"previous_visited_link",category:"jump_commands"},announceHeaders:{announce:!1,msgId:"announce_headers",category:"tables"},speakTableLocation:{announce:!1,msgId:"speak_table_location",category:"tables"},goToFirstCell:{announce:!0,
+msgId:"skip_to_beginning",category:"tables"},goToLastCell:{announce:!0,msgId:"skip_to_end",category:"tables"},goToRowFirstCell:{announce:!0,msgId:"skip_to_row_beginning",category:"tables"},goToRowLastCell:{announce:!0,msgId:"skip_to_row_end",category:"tables"},goToColFirstCell:{announce:!0,msgId:"skip_to_col_beginning",category:"tables"},goToColLastCell:{announce:!0,msgId:"skip_to_col_end",category:"tables"},previousRow:{backward:!0,announce:!0,skipInput:!0},previousCol:{backward:!0,announce:!0,skipInput:!0},
+nextRow:{forward:!0,announce:!0,skipInput:!0},nextCol:{forward:!0,announce:!0,skipInput:!0},enterShifter:{announce:!0,msgId:"enter_content",category:"navigation"},exitShifter:{announce:!0,msgId:"exit_content",category:"navigation"},exitShifterContent:{announce:!0},openLongDesc:{announce:!1,msgId:"open_long_desc",category:"information"},pauseAllMedia:{announce:!1,msgId:"pause_all_media",category:"information"},toggleSemantics:{announce:!1,msgId:"toggle_semantics",category:"information"},routing:{announce:!0,
+msgId:"braille_routing",category:"braille"},pan_left:{backward:!0,announce:!0,msgId:"braille_pan_left",category:"braille"},pan_right:{forward:!0,announce:!0,msgId:"braille_pan_right",category:"braille"},line_up:{backward:!0,announce:!0,msgId:"braille_line_up",category:"braille"},line_down:{forward:!0,announce:!0,msgId:"braille_line_down",category:"braille"},top:{forward:!0,announce:!0,msgId:"braille_top",category:"braille"},bottom:{backward:!0,announce:!0,msgId:"braille_bottom",category:"braille"},
+debug:{announce:!1},nop:{announce:!1}};
+cvox.CommandStore.NODE_INFO_MAP={checkbox:{predicate:"checkboxPredicate",forwardError:"no_next_checkbox",backwardError:"no_previous_checkbox",typeMsg:"aria_role_checkbox"},radio:{predicate:"radioPredicate",forwardError:"no_next_radio_button",backwardError:"no_previous_radio_button",typeMsg:"aria_role_radio"},slider:{predicate:"sliderPredicate",forwardError:"no_next_slider",backwardError:"no_previous_slider",typeMsg:"aria_role_slider"},graphic:{predicate:"graphicPredicate",forwardError:"no_next_graphic",
+backwardError:"no_previous_graphic",typeMsg:"UNUSED"},article:{predicate:"articlePredicate",forwardError:"no_next_ARTICLE",backwardError:"no_previous_ARTICLE",typeMsg:"TAG_ARTICLE"},button:{predicate:"buttonPredicate",forwardError:"no_next_button",backwardError:"no_previous_button",typeMsg:"aria_role_button"},combobox:{predicate:"comboBoxPredicate",forwardError:"no_next_combo_box",backwardError:"no_previous_combo_box",typeMsg:"aria_role_combobox"},editText:{predicate:"editTextPredicate",forwardError:"no_next_edit_text",
+backwardError:"no_previous_edit_text",typeMsg:"input_type_text"},heading:{predicate:"headingPredicate",forwardError:"no_next_heading",backwardError:"no_previous_heading",typeMsg:"aria_role_heading"},heading1:{predicate:"heading1Predicate",forwardError:"no_next_heading_1",backwardError:"no_previous_heading_1"},heading2:{predicate:"heading2Predicate",forwardError:"no_next_heading_2",backwardError:"no_previous_heading_2"},heading3:{predicate:"heading3Predicate",forwardError:"no_next_heading_3",backwardError:"no_previous_heading_3"},
+heading4:{predicate:"heading4Predicate",forwardError:"no_next_heading_4",backwardError:"no_previous_heading_4"},heading5:{predicate:"heading5Predicate",forwardError:"no_next_heading_5",backwardError:"no_previous_heading_5"},heading6:{predicate:"heading6Predicate",forwardError:"no_next_heading_6",backwardError:"no_previous_heading_6"},link:{predicate:"linkPredicate",forwardError:"no_next_link",backwardError:"no_previous_link",typeMsg:"aria_role_link"},table:{predicate:"tablePredicate",forwardError:"no_next_table",
+backwardError:"no_previous_table",typeMsg:"table_strategy"},visitedLink:{predicate:"visitedLinkPredicate",forwardError:"no_next_visited_link",backwardError:"no_previous_visited_link",typeMsg:"tag_link"},list:{predicate:"listPredicate",forwardError:"no_next_list",backwardError:"no_previous_list",typeMsg:"aria_role_list"},listItem:{predicate:"listItemPredicate",forwardError:"no_next_list_item",backwardError:"no_previous_list_item",typeMsg:"aria_role_listitem"},formField:{predicate:"formFieldPredicate",
+forwardError:"no_next_form_field",backwardError:"no_previous_form_field",typeMsg:"aria_role_form"},landmark:{predicate:"landmarkPredicate",forwardError:"no_next_landmark",backwardError:"no_previous_landmark",typeMsg:"role_landmark"},math:{predicate:"mathPredicate",forwardError:"no_next_math",backwardError:"no_previous_math",typeMsg:"math_expr"},media:{predicate:"mediaPredicate",forwardError:"no_next_media_widget",backwardError:"no_previous_media_widget"},section:{predicate:"sectionPredicate",forwardError:"no_next_section",
+backwardError:"no_previous_section"},control:{predicate:"controlPredicate",forwardError:"no_next_control",backwardError:"no_previous_control"}};cvox.Widget=function(){this.active=!1;this.initialNode=null;cvox.Widget.ref_&&cvox.Widget.ref_.isActive()||(cvox.Widget.ref_=this)};cvox.Widget.prototype.isActive=function(){return this.active};
+cvox.Widget.prototype.show=function(){this.isActive()&&this.hide(!0);this.onKeyDown=goog.bind(this.onKeyDown,this);this.onKeyPress=goog.bind(this.onKeyPress,this);window.addEventListener("keydown",this.onKeyDown,!0);window.addEventListener("keypress",this.onKeyPress,!0);this.initialNode=cvox.ChromeVox.navigationManager.getCurrentNode();this.isStickyOn=cvox.ChromeVox.isStickyOn;this.getNameMsg()&&this.getHelpMsg()&&cvox.$m(this.getNameMsg()).andPause().andMessage(this.getHelpMsg()).speakFlush();cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.OBJECT_OPEN);
+this.active=!0};cvox.Widget.prototype.hide=function(a){window.removeEventListener("keypress",this.onKeyPress,!0);window.removeEventListener("keydown",this.onKeyDown,!0);cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.OBJECT_CLOSE);a||(this.initialNode=1==this.initialNode.nodeType?this.initialNode:this.initialNode.parentNode,cvox.ApiImplementation.syncToNode(this.initialNode,!0,cvox.AbstractTts.QUEUE_MODE_QUEUE));this.active=!1};
+cvox.Widget.prototype.toggle=function(){this.isActive()?this.hide():this.show()};cvox.Widget.prototype.onKeyDown=function(a){if(27==a.keyCode)return this.hide(),a.preventDefault(),!0;if(9==a.keyCode)return this.hide(),!0;17==a.keyCode&&cvox.ChromeVox.tts.stop();a.stopPropagation();return!0};cvox.Widget.prototype.onKeyPress=function(){return!1};cvox.Widget.isActive=function(){return cvox.Widget.ref_&&cvox.Widget.ref_.isActive()||!1};cvox.NavDescription=function(a){this.context=a.context?a.context:"";this.text=a.text?a.text:"";this.userValue=a.userValue?a.userValue:"";this.annotation=a.annotation?a.annotation:"";this.earcons=a.earcons?a.earcons:[];this.personality=a.personality};cvox.NavDescription.prototype.isEmpty=function(){return 0==this.context.length&&0==this.earcons.length&&0==this.text.length&&0==this.userValue.length&&0==this.annotation.length};
+cvox.NavDescription.prototype.toString=function(){return'NavDescription(context="'+this.context+'" text="'+this.text+'" userValue="'+this.userValue+'" annotation="'+this.annotation+'")'};cvox.NavDescription.prototype.pushEarcon=function(a){this.earcons.push(a)};
+cvox.NavDescription.prototype.speak=function(a,b,c){function d(){var a={},b=cvox.AbstractTts.PERSONALITY_ANNOTATION,c;for(c in b)a[c]=b[c];return a}var e=[];this.context&&(e.push([this.context,a,d()]),a=1);e.push([this.text,a,this.personality?this.personality:{}]);a=1;this.userValue&&e.push([this.userValue,a,{}]);this.annotation&&e.push([this.annotation,a,d()]);a=e.length;for(var f=0;f<a;f++)0==f&&b&&(e[f][2].startCallback=b),f==a-1&&c&&(e[f][2].endCallback=c),cvox.ChromeVox.tts.speak.apply(cvox.ChromeVox.tts,
+e[f])};cvox.NavDescription.prototype.equals=function(a){return this.context==a.context&&this.text==a.text&&this.userValue==a.userValue&&this.annotation==a.annotation};cvox.NavMathDescription=function(a){cvox.NavDescription.call(this,a);var b=this.personality?this.personality:{},c={};c.domain=a.domain?a.domain:"";c.style=a.style?a.style:"";b.math=c;this.personality=b};goog.inherits(cvox.NavMathDescription,cvox.NavDescription);cvox.SemanticUtil=function(){};cvox.SemanticUtil.objectsToKeys=function(a){a=Array.prototype.slice.call(arguments,0);var b=[];return b.concat.apply(b,a.map(Object.keys))};cvox.SemanticUtil.objectsToValues=function(a){a=Array.prototype.slice.call(arguments,0);var b=[],c=function(a){for(var c in a)b.push(a[c])};a.forEach(c);return b};
+cvox.SemanticUtil.unicodeToNumber=function(a){if(!a||2<a.length)return null;if(2==a.length){var b=a.charCodeAt(0);a=a.charCodeAt(1);return 55296<=b&&56319>=b&&!isNaN(a)?1024*(b-55296)+(a-56320)+65536:null}return a.charCodeAt(0)};cvox.SemanticUtil.numberToUnicode=function(a){if(65536<=a){var b=(a-65536)/1024+55296;a=(a-65536)%1024+56320;return String.fromCharCode(b,a)}return String.fromCharCode(a)};cvox.SemanticUtil.tagName=function(a){return a.tagName.toUpperCase()};cvox.SemanticUtil.IGNORETAGS="MERROR MPHANTOM MSPACE MACTION MALIGNGROUP MALIGNMARK MACTION".split(" ");
+cvox.SemanticUtil.EMPTYTAGS=["MATH","MROW","MPADDED","MSTYLE"];cvox.SemanticUtil.purgeNodes=function(a){for(var b=[],c=0,d;d=a[c];c++){var e=cvox.SemanticUtil.tagName(d);-1==cvox.SemanticUtil.IGNORETAGS.indexOf(e)&&(-1!=cvox.SemanticUtil.EMPTYTAGS.indexOf(e)&&0==d.childNodes.length||b.push(d))}return b};cvox.SemanticAttr=function(){this.generalPunctuations="!\"#%&'*,:;?@\\\u00a1\u00a7\u00b6\u00b7\u00bf\u2017\u2020\u2021\u2022\u2023\u2024\u2025\u2027\u2030\u2031\u2038\u203b\u203c\u203d\u203e\u2041\u2042\u2043\u2047\u2048\u2049\u204b\u204c\u204d\u204e\u204f\u2050\u2051\u2053\u2055\u2056\u2058\u2059\u205a\u205b\u205c\u205d\u205e\ufe10\ufe13\ufe14\ufe15\ufe16\ufe30\ufe45\ufe46\ufe49\ufe4a\ufe4b\ufe4c\ufe50\ufe54\ufe55\ufe56\ufe57\ufe5f\ufe60\ufe61\ufe68\ufe6a\ufe6b\uff01\uff02\uff03\uff05\uff06\uff07\uff0a\uff0c\uff0f\uff1a\uff1b\uff1f\uff20\uff3c".split("");
+this.invisibleComma_=cvox.SemanticUtil.numberToUnicode(8291);this.generalPunctuations.push(this.invisibleComma_);this.ellipses="\u2026\u22ee\u22ef\u22f0\u22f1\ufe19".split("");this.fullStops=[".","\ufe52","\uff0e"];this.dashes="\u2012\u2013\u2014\u2015\u301c\ufe31\ufe32\ufe58".split("");this.primes="\u2032\u2033\u2034\u2035\u2036\u2037\u2057".split("");this.openClosePairs={"(":")","[":"]","{":"}","\u2045":"\u2046","\u2329":"\u232a","\u2768":"\u2769","\u276a":"\u276b","\u276c":"\u276d","\u276e":"\u276f",
+"\u2770":"\u2771","\u2772":"\u2773","\u2774":"\u2775","\u27c5":"\u27c6","\u27e6":"\u27e7","\u27e8":"\u27e9","\u27ea":"\u27eb","\u27ec":"\u27ed","\u27ee":"\u27ef","\u2983":"\u2984","\u2985":"\u2986","\u2987":"\u2988","\u2989":"\u298a","\u298b":"\u298c","\u298d":"\u298e","\u298f":"\u2990","\u2991":"\u2992","\u2993":"\u2994","\u2995":"\u2996","\u2997":"\u2998","\u29d8":"\u29d9","\u29da":"\u29db","\u29fc":"\u29fd","\u2e22":"\u2e23","\u2e24":"\u2e25","\u2e26":"\u2e27","\u2e28":"\u2e29","\u3008":"\u3009",
+"\u300a":"\u300b","\u300c":"\u300d","\u300e":"\u300f","\u3010":"\u3011","\u3014":"\u3015","\u3016":"\u3017","\u3018":"\u3019","\u301a":"\u301b","\u301d":"\u301e","\ufd3e":"\ufd3f","\ufe17":"\ufe18","\ufe59":"\ufe5a","\ufe5b":"\ufe5c","\ufe5d":"\ufe5e","\uff08":"\uff09","\uff3b":"\uff3d","\uff5b":"\uff5d","\uff5f":"\uff60","\uff62":"\uff63","\u2308":"\u2309","\u230a":"\u230b","\u230c":"\u230d","\u230e":"\u230f","\u231c":"\u231d","\u231e":"\u231f","\u239b":"\u239e","\u239c":"\u239f","\u239d":"\u23a0",
+"\u23a1":"\u23a4","\u23a2":"\u23a5","\u23a3":"\u23a6","\u23a7":"\u23ab","\u23a8":"\u23ac","\u23a9":"\u23ad","\u23b0":"\u23b1","\u23b8":"\u23b9"};this.topBottomPairs={"\u23b4":"\u23b5","\u23dc":"\u23dd","\u23de":"\u23df","\u23e0":"\u23e1","\ufe35":"\ufe36","\ufe37":"\ufe38","\ufe39":"\ufe3a","\ufe3b":"\ufe3c","\ufe3d":"\ufe3e","\ufe3f":"\ufe40","\ufe41":"\ufe42","\ufe43":"\ufe44","\ufe47":"\ufe48"};this.leftFences=cvox.SemanticUtil.objectsToKeys(this.openClosePairs);this.rightFences=cvox.SemanticUtil.objectsToValues(this.openClosePairs);
+this.rightFences.push("\u301f");this.topFences=cvox.SemanticUtil.objectsToKeys(this.topBottomPairs);this.bottomFences=cvox.SemanticUtil.objectsToValues(this.topBottomPairs);this.neutralFences="|\u00a6\u2016\u2758\u2980\u2af4\uffe4\uff5c".split("");this.capitalLatin="ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");this.smallLatin="abcdefghijklmnopqrstuvwxyz\u0131\u0237".split("");this.capitalLatinFullWidth="\uff21\uff22\uff23\uff24\uff25\uff26\uff27\uff28\uff29\uff2a\uff2b\uff2c\uff2d\uff2e\uff2f\uff30\uff31\uff32\uff33\uff34\uff35\uff36\uff37\uff38\uff39\uff3a".split("");
+this.smallLatinFullWidth="\uff41\uff42\uff43\uff44\uff45\uff46\uff47\uff48\uff49\uff4a\uff4b\uff4c\uff4d\uff4e\uff4f\uff50\uff51\uff52\uff53\uff54\uff55\uff56\uff57\uff58\uff59\uff5a".split("");this.capitalLatinBold="\ud835\udc00 \ud835\udc01 \ud835\udc02 \ud835\udc03 \ud835\udc04 \ud835\udc05 \ud835\udc06 \ud835\udc07 \ud835\udc08 \ud835\udc09 \ud835\udc0a \ud835\udc0b \ud835\udc0c \ud835\udc0d \ud835\udc0e \ud835\udc0f \ud835\udc10 \ud835\udc11 \ud835\udc12 \ud835\udc13 \ud835\udc14 \ud835\udc15 \ud835\udc16 \ud835\udc17 \ud835\udc18 \ud835\udc19".split(" ");
+this.smallLatinBold="\ud835\udc1a \ud835\udc1b \ud835\udc1c \ud835\udc1d \ud835\udc1e \ud835\udc1f \ud835\udc20 \ud835\udc21 \ud835\udc22 \ud835\udc23 \ud835\udc24 \ud835\udc25 \ud835\udc26 \ud835\udc27 \ud835\udc28 \ud835\udc29 \ud835\udc2a \ud835\udc2b \ud835\udc2c \ud835\udc2d \ud835\udc2e \ud835\udc2f \ud835\udc30 \ud835\udc31 \ud835\udc32 \ud835\udc33".split(" ");this.capitalLatinItalic="\ud835\udc34 \ud835\udc35 \ud835\udc36 \ud835\udc37 \ud835\udc38 \ud835\udc39 \ud835\udc3a \ud835\udc3b \ud835\udc3c \ud835\udc3d \ud835\udc3e \ud835\udc3f \ud835\udc40 \ud835\udc41 \ud835\udc42 \ud835\udc43 \ud835\udc44 \ud835\udc45 \ud835\udc46 \ud835\udc47 \ud835\udc48 \ud835\udc49 \ud835\udc4a \ud835\udc4b \ud835\udc4c \ud835\udc4d".split(" ");
+this.smallLatinItalic="\ud835\udc4e \ud835\udc4f \ud835\udc50 \ud835\udc51 \ud835\udc52 \ud835\udc53 \ud835\udc54 \u210e \ud835\udc56 \ud835\udc57 \ud835\udc58 \ud835\udc59 \ud835\udc5a \ud835\udc5b \ud835\udc5c \ud835\udc5d \ud835\udc5e \ud835\udc5f \ud835\udc60 \ud835\udc61 \ud835\udc62 \ud835\udc63 \ud835\udc64 \ud835\udc65 \ud835\udc66 \ud835\udc67 \ud835\udea4 \ud835\udea5".split(" ");this.capitalLatinScript="\ud835\udc9c \u212c \ud835\udc9e \ud835\udc9f \u2130 \u2131 \ud835\udca2 \u210b \u2110 \ud835\udca5 \ud835\udca6 \u2112 \u2133 \ud835\udca9 \ud835\udcaa \ud835\udcab \ud835\udcac \u211b \ud835\udcae \ud835\udcaf \ud835\udcb0 \ud835\udcb1 \ud835\udcb2 \ud835\udcb3 \ud835\udcb4 \ud835\udcb5 \u2118".split(" ");
+this.smallLatinScript="\ud835\udcb6 \ud835\udcb7 \ud835\udcb8 \ud835\udcb9 \u212f \ud835\udcbb \u210a \ud835\udcbd \ud835\udcbe \ud835\udcbf \ud835\udcc0 \ud835\udcc1 \ud835\udcc2 \ud835\udcc3 \u2134 \ud835\udcc5 \ud835\udcc6 \ud835\udcc7 \ud835\udcc8 \ud835\udcc9 \ud835\udcca \ud835\udccb \ud835\udccc \ud835\udccd \ud835\udcce \ud835\udccf \u2113".split(" ");this.capitalLatinBoldScript="\ud835\udcd0 \ud835\udcd1 \ud835\udcd2 \ud835\udcd3 \ud835\udcd4 \ud835\udcd5 \ud835\udcd6 \ud835\udcd7 \ud835\udcd8 \ud835\udcd9 \ud835\udcda \ud835\udcdb \ud835\udcdc \ud835\udcdd \ud835\udcde \ud835\udcdf \ud835\udce0 \ud835\udce1 \ud835\udce2 \ud835\udce3 \ud835\udce4 \ud835\udce5 \ud835\udce6 \ud835\udce7 \ud835\udce8 \ud835\udce9".split(" ");
+this.smallLatinBoldScript="\ud835\udcea \ud835\udceb \ud835\udcec \ud835\udced \ud835\udcee \ud835\udcef \ud835\udcf0 \ud835\udcf1 \ud835\udcf2 \ud835\udcf3 \ud835\udcf4 \ud835\udcf5 \ud835\udcf6 \ud835\udcf7 \ud835\udcf8 \ud835\udcf9 \ud835\udcfa \ud835\udcfb \ud835\udcfc \ud835\udcfd \ud835\udcfe \ud835\udcff \ud835\udd00 \ud835\udd01 \ud835\udd02 \ud835\udd03".split(" ");this.capitalLatinFraktur="\ud835\udd04 \ud835\udd05 \u212d \ud835\udd07 \ud835\udd08 \ud835\udd09 \ud835\udd0a \u210c \u2111 \ud835\udd0d \ud835\udd0e \ud835\udd0f \ud835\udd10 \ud835\udd11 \ud835\udd12 \ud835\udd13 \ud835\udd14 \u211c \ud835\udd16 \ud835\udd17 \ud835\udd18 \ud835\udd19 \ud835\udd1a \ud835\udd1b \ud835\udd1c \u2128".split(" ");
+this.smallLatinFraktur="\ud835\udd1e \ud835\udd1f \ud835\udd20 \ud835\udd21 \ud835\udd22 \ud835\udd23 \ud835\udd24 \ud835\udd25 \ud835\udd26 \ud835\udd27 \ud835\udd28 \ud835\udd29 \ud835\udd2a \ud835\udd2b \ud835\udd2c \ud835\udd2d \ud835\udd2e \ud835\udd2f \ud835\udd30 \ud835\udd31 \ud835\udd32 \ud835\udd33 \ud835\udd34 \ud835\udd35 \ud835\udd36 \ud835\udd37".split(" ");this.capitalLatinDoubleStruck="\ud835\udd38 \ud835\udd39 \u2102 \ud835\udd3b \ud835\udd3c \ud835\udd3d \ud835\udd3e \u210d \ud835\udd40 \ud835\udd41 \ud835\udd42 \ud835\udd43 \ud835\udd44 \u2115 \ud835\udd46 \u2119 \u211a \u211d \ud835\udd4a \ud835\udd4b \ud835\udd4c \ud835\udd4d \ud835\udd4e \ud835\udd4f \ud835\udd50 \u2124".split(" ");
+this.smallLatinDoubleStruck="\ud835\udd52 \ud835\udd53 \ud835\udd54 \ud835\udd55 \ud835\udd56 \ud835\udd57 \ud835\udd58 \ud835\udd59 \ud835\udd5a \ud835\udd5b \ud835\udd5c \ud835\udd5d \ud835\udd5e \ud835\udd5f \ud835\udd60 \ud835\udd61 \ud835\udd62 \ud835\udd63 \ud835\udd64 \ud835\udd65 \ud835\udd66 \ud835\udd67 \ud835\udd68 \ud835\udd69 \ud835\udd6a \ud835\udd6b".split(" ");this.capitalLatinBoldFraktur="\ud835\udd6c \ud835\udd6d \ud835\udd6e \ud835\udd6f \ud835\udd70 \ud835\udd71 \ud835\udd72 \ud835\udd73 \ud835\udd74 \ud835\udd75 \ud835\udd76 \ud835\udd77 \ud835\udd78 \ud835\udd79 \ud835\udd7a \ud835\udd7b \ud835\udd7c \ud835\udd7d \ud835\udd7e \ud835\udd7f \ud835\udd80 \ud835\udd81 \ud835\udd82 \ud835\udd83 \ud835\udd84 \ud835\udd85".split(" ");
+this.smallLatinBoldFraktur="\ud835\udd86 \ud835\udd87 \ud835\udd88 \ud835\udd89 \ud835\udd8a \ud835\udd8b \ud835\udd8c \ud835\udd8d \ud835\udd8e \ud835\udd8f \ud835\udd90 \ud835\udd91 \ud835\udd92 \ud835\udd93 \ud835\udd94 \ud835\udd95 \ud835\udd96 \ud835\udd97 \ud835\udd98 \ud835\udd99 \ud835\udd9a \ud835\udd9b \ud835\udd9c \ud835\udd9d \ud835\udd9e \ud835\udd9f".split(" ");this.capitalLatinSansSerif="\ud835\udda0 \ud835\udda1 \ud835\udda2 \ud835\udda3 \ud835\udda4 \ud835\udda5 \ud835\udda6 \ud835\udda7 \ud835\udda8 \ud835\udda9 \ud835\uddaa \ud835\uddab \ud835\uddac \ud835\uddad \ud835\uddae \ud835\uddaf \ud835\uddb0 \ud835\uddb1 \ud835\uddb2 \ud835\uddb3 \ud835\uddb4 \ud835\uddb5 \ud835\uddb6 \ud835\uddb7 \ud835\uddb8 \ud835\uddb9".split(" ");
+this.smallLatinSansSerif="\ud835\uddba \ud835\uddbb \ud835\uddbc \ud835\uddbd \ud835\uddbe \ud835\uddbf \ud835\uddc0 \ud835\uddc1 \ud835\uddc2 \ud835\uddc3 \ud835\uddc4 \ud835\uddc5 \ud835\uddc6 \ud835\uddc7 \ud835\uddc8 \ud835\uddc9 \ud835\uddca \ud835\uddcb \ud835\uddcc \ud835\uddcd \ud835\uddce \ud835\uddcf \ud835\uddd0 \ud835\uddd1 \ud835\uddd2 \ud835\uddd3".split(" ");this.capitalLatinSansSerifBold="\ud835\uddd4 \ud835\uddd5 \ud835\uddd6 \ud835\uddd7 \ud835\uddd8 \ud835\uddd9 \ud835\uddda \ud835\udddb \ud835\udddc \ud835\udddd \ud835\uddde \ud835\udddf \ud835\udde0 \ud835\udde1 \ud835\udde2 \ud835\udde3 \ud835\udde4 \ud835\udde5 \ud835\udde6 \ud835\udde7 \ud835\udde8 \ud835\udde9 \ud835\uddea \ud835\uddeb \ud835\uddec \ud835\udded".split(" ");
+this.smallLatinSansSerifBold="\ud835\uddee \ud835\uddef \ud835\uddf0 \ud835\uddf1 \ud835\uddf2 \ud835\uddf3 \ud835\uddf4 \ud835\uddf5 \ud835\uddf6 \ud835\uddf7 \ud835\uddf8 \ud835\uddf9 \ud835\uddfa \ud835\uddfb \ud835\uddfc \ud835\uddfd \ud835\uddfe \ud835\uddff \ud835\ude00 \ud835\ude01 \ud835\ude02 \ud835\ude03 \ud835\ude04 \ud835\ude05 \ud835\ude06 \ud835\ude07".split(" ");this.capitalLatinSansSerifItalic="\ud835\ude08 \ud835\ude09 \ud835\ude0a \ud835\ude0b \ud835\ude0c \ud835\ude0d \ud835\ude0e \ud835\ude0f \ud835\ude10 \ud835\ude11 \ud835\ude12 \ud835\ude13 \ud835\ude14 \ud835\ude15 \ud835\ude16 \ud835\ude17 \ud835\ude18 \ud835\ude19 \ud835\ude1a \ud835\ude1b \ud835\ude1c \ud835\ude1d \ud835\ude1e \ud835\ude1f \ud835\ude20 \ud835\ude21".split(" ");
+this.smallLatinSansSerifItalic="\ud835\ude22 \ud835\ude23 \ud835\ude24 \ud835\ude25 \ud835\ude26 \ud835\ude27 \ud835\ude28 \ud835\ude29 \ud835\ude2a \ud835\ude2b \ud835\ude2c \ud835\ude2d \ud835\ude2e \ud835\ude2f \ud835\ude30 \ud835\ude31 \ud835\ude32 \ud835\ude33 \ud835\ude34 \ud835\ude35 \ud835\ude36 \ud835\ude37 \ud835\ude38 \ud835\ude39 \ud835\ude3a \ud835\ude3b".split(" ");this.capitalLatinMonospace="\ud835\ude70 \ud835\ude71 \ud835\ude72 \ud835\ude73 \ud835\ude74 \ud835\ude75 \ud835\ude76 \ud835\ude77 \ud835\ude78 \ud835\ude79 \ud835\ude7a \ud835\ude7b \ud835\ude7c \ud835\ude7d \ud835\ude7e \ud835\ude7f \ud835\ude80 \ud835\ude81 \ud835\ude82 \ud835\ude83 \ud835\ude84 \ud835\ude85 \ud835\ude86 \ud835\ude87 \ud835\ude88 \ud835\ude89".split(" ");
+this.smallLatinMonospace="\ud835\ude8a \ud835\ude8b \ud835\ude8c \ud835\ude8d \ud835\ude8e \ud835\ude8f \ud835\ude90 \ud835\ude91 \ud835\ude92 \ud835\ude93 \ud835\ude94 \ud835\ude95 \ud835\ude96 \ud835\ude97 \ud835\ude98 \ud835\ude99 \ud835\ude9a \ud835\ude9b \ud835\ude9c \ud835\ude9d \ud835\ude9e \ud835\ude9f \ud835\udea0 \ud835\udea1 \ud835\udea2 \ud835\udea3".split(" ");this.latinDoubleStruckItalic=["\u2145","\u2146","\u2147","\u2148","\u2149"];this.capitalGreek="\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039a\u039b\u039c\u039d\u039e\u039f\u03a0\u03a1\u03a3\u03a4\u03a5\u03a6\u03a7\u03a8\u03a9".split("");
+this.smallGreek="\u03b1\u03b2\u03b3\u03b4\u03b5\u03b6\u03b7\u03b8\u03b9\u03ba\u03bb\u03bc\u03bd\u03be\u03bf\u03c0\u03c1\u03c2\u03c3\u03c4\u03c5\u03c6\u03c7\u03c8\u03c9".split("");this.capitalGreekBold="\ud835\udea8 \ud835\udea9 \ud835\udeaa \ud835\udeab \ud835\udeac \ud835\udead \ud835\udeae \ud835\udeaf \ud835\udeb0 \ud835\udeb1 \ud835\udeb2 \ud835\udeb3 \ud835\udeb4 \ud835\udeb5 \ud835\udeb6 \ud835\udeb7 \ud835\udeb8 \ud835\udeba \ud835\udebb \ud835\udebc \ud835\udebd \ud835\udebe \ud835\udebf \ud835\udec0".split(" ");
+this.smallGreekBold="\ud835\udec2 \ud835\udec3 \ud835\udec4 \ud835\udec5 \ud835\udec6 \ud835\udec7 \ud835\udec8 \ud835\udec9 \ud835\udeca \ud835\udecb \ud835\udecc \ud835\udecd \ud835\udece \ud835\udecf \ud835\uded0 \ud835\uded1 \ud835\uded2 \ud835\uded3 \ud835\uded4 \ud835\uded5 \ud835\uded6 \ud835\uded7 \ud835\uded8 \ud835\uded9 \ud835\udeda".split(" ");this.capitalGreekItalic="\ud835\udee2 \ud835\udee3 \ud835\udee4 \ud835\udee5 \ud835\udee6 \ud835\udee7 \ud835\udee8 \ud835\udee9 \ud835\udeea \ud835\udeeb \ud835\udeec \ud835\udeed \ud835\udeee \ud835\udeef \ud835\udef0 \ud835\udef1 \ud835\udef2 \ud835\udef4 \ud835\udef5 \ud835\udef6 \ud835\udef7 \ud835\udef8 \ud835\udef9 \ud835\udefa".split(" ");
+this.smallGreekItalic="\ud835\udefc \ud835\udefd \ud835\udefe \ud835\udeff \ud835\udf00 \ud835\udf01 \ud835\udf02 \ud835\udf03 \ud835\udf04 \ud835\udf05 \ud835\udf06 \ud835\udf07 \ud835\udf08 \ud835\udf09 \ud835\udf0a \ud835\udf0b \ud835\udf0c \ud835\udf0d \ud835\udf0e \ud835\udf0f \ud835\udf10 \ud835\udf11 \ud835\udf12 \ud835\udf13 \ud835\udf14".split(" ");this.capitalGreekSansSerifBold="\ud835\udf56 \ud835\udf57 \ud835\udf58 \ud835\udf59 \ud835\udf5a \ud835\udf5b \ud835\udf5c \ud835\udf5d \ud835\udf5e \ud835\udf5f \ud835\udf60 \ud835\udf61 \ud835\udf62 \ud835\udf63 \ud835\udf64 \ud835\udf65 \ud835\udf66 \ud835\udf68 \ud835\udf69 \ud835\udf6a \ud835\udf6b \ud835\udf6c \ud835\udf6d \ud835\udf6e".split(" ");
+this.smallGreekSansSerifBold="\ud835\udf70 \ud835\udf71 \ud835\udf72 \ud835\udf73 \ud835\udf74 \ud835\udf75 \ud835\udf76 \ud835\udf77 \ud835\udf78 \ud835\udf79 \ud835\udf7a \ud835\udf7b \ud835\udf7c \ud835\udf7d \ud835\udf7e \ud835\udf7f \ud835\udf80 \ud835\udf81 \ud835\udf82 \ud835\udf83 \ud835\udf84 \ud835\udf85 \ud835\udf86 \ud835\udf87 \ud835\udf88".split(" ");this.greekDoubleStruck=["\u213c","\u213d","\u213e","\u213f"];this.hebrewLetters=["\u2135","\u2136","\u2137","\u2138"];this.additions="+\u00b1\u2213\u2214\u2227\u2228\u2229\u222a\u228c\u2293\u2294\u229d\u229e\u22a4\u22a5\u22ba\u22bb\u22bc\u22c4\u22ce\u22cf\u22d2\u22d3\u25b3\u25b7\u25bd\u25c1\u2a5e\u2295".split("");
+this.invisiblePlus_=cvox.SemanticUtil.numberToUnicode(8292);this.additions.push(this.invisiblePlus_);this.multiplications="\u2020\u2021\u2210\u2217\u2218\u2219\u2240\u229a\u229b\u22a0\u22a1\u22c5\u22c6\u22c7\u22c9\u22ca\u22cb\u22cc\u25cb".split("");this.invisibleTimes_=cvox.SemanticUtil.numberToUnicode(8290);this.multiplications.push(this.invisibleTimes_);this.subtractions="-\u2052\u207b\u208b\u2212\u2216\u2238\u2242\u2296\u229f\u2796\u2a29\u2a2a\u2a2b\u2a2c\u2a3a\u2a41\u2a6c\ufe63\uff0d\u2010\u2011".split("");
+this.divisions="/\u00f7\u2044\u2215\u2298\u27cc\u29bc\u2a38".split("");this.functionApplication_=cvox.SemanticUtil.numberToUnicode(8289);this.equalities="=~\u207c\u208c\u223c\u223d\u2243\u2245\u2248\u224a\u224b\u224c\u224d\u224e\u2251\u2252\u2253\u2254\u2255\u2256\u2257\u2258\u2259\u225a\u225b\u225c\u225d\u225e\u225f\u2261\u2263\u29e4\u2a66\u2a6e\u2a6f\u2a70\u2a71\u2a72\u2a73\u2a74\u2a75\u2a76\u2a77\u2a78\u22d5\u2a6d\u2a6a\u2a6b\u2a6c\ufe66\uff1d".split("");this.inequalities="<>\u2241\u2242\u2244\u2246\u2247\u2249\u224f\u2250\u2260\u2262\u2264\u2265\u2266\u2267\u2268\u2269\u226a\u226b\u226c\u226d\u226e\u226f\u2270\u2271\u2272\u2273\u2274\u2275\u2276\u2277\u2278\u2279\u227a\u227b\u227c\u227d\u227e\u227f\u2280\u2281\u22d6\u22d7\u22d8\u22d9\u22da\u22db\u22dc\u22dd\u22de\u22df\u22e0\u22e1\u22e2\u22e3\u22e4\u22e5\u22e6\u22e7\u22e8\u22e9\u2a79\u2a7a\u2a7b\u2a7c\u2a7d\u2a7e\u2a7f\u2a80\u2a81\u2a82\u2a83\u2a84\u2a85\u2a86\u2a87\u2a88\u2a89\u2a8a\u2a8b\u2a8c\u2a8d\u2a8e\u2a8f\u2a90\u2a91\u2a92\u2a93\u2a94\u2a95\u2a96\u2a97\u2a98\u2a99\u2a9a\u2a9b\u2a9c\u2a9d\u2a9e\u2a9f\u2aa0\u2aa1\u2aa2\u2aa3\u2aa4\u2aa5\u2aa6\u2aa7\u2aa8\u2aa9\u2aaa\u2aab\u2aac\u2aad\u2aae\u2aaf\u2ab0\u2ab1\u2ab2\u2ab3\u2ab4\u2ab5\u2ab6\u2ab7\u2ab8\u2ab9\u2aba\u2abb\u2abc\u2af7\u2af8\u2af9\u2afa\u29c0\u29c1\ufe64\ufe65\uff1c\uff1e".split("");
+this.relations=[];this.arrows="\u2190\u2191\u2192\u2193\u2194\u2195\u2196\u2197\u2198\u2199\u219a\u219b\u219c\u219d\u219e\u219f\u21a0\u21a1\u21a2\u21a3\u21a4\u21a5\u21a6\u21a7\u21a8\u21a9\u21aa\u21ab\u21ac\u21ad\u21ae\u21af\u21b0\u21b1\u21b2\u21b3\u21b4\u21b5\u21b6\u21b7\u21b8\u21b9\u21ba\u21bb\u21c4\u21c5\u21c6\u21c7\u21c8\u21c9\u21ca\u21cd\u21ce\u21cf\u21d0\u21d1\u21d2\u21d3\u21d4\u21d5\u21d6\u21d7\u21d8\u21d9\u21da\u21db\u21dc\u21dd\u21de\u21df\u21e0\u21e1\u21e2\u21e3\u21e4\u21e5\u21e6\u21e7\u21e8\u21e9\u21ea\u21eb\u21ec\u21ed\u21ee\u21ef\u21f0\u21f1\u21f2\u21f3\u21f4\u21f5\u21f6\u21f7\u21f8\u21f9\u21fa\u21fb\u21fc\u21fd\u21fe\u21ff\u2301\u2303\u2304\u2324\u238b\u2794\u2798\u2799\u279a\u279b\u279c\u279d\u279e\u279f\u27a0\u27a1\u27a2\u27a3\u27a4\u27a5\u27a6\u27a7\u27a8\u27a9\u27aa\u27ab\u27ac\u27ad\u27ae\u27af\u27b1\u27b2\u27b3\u27b4\u27b5\u27b6\u27b7\u27b8\u27b9\u27ba\u27bb\u27bc\u27bd\u27be\u27f0\u27f1\u27f2\u27f3\u27f4\u27f5\u27f6\u27f7\u27f8\u27f9\u27fa\u27fb\u27fc\u27fd\u27fe\u27ff\u2900\u2901\u2902\u2903\u2904\u2905\u2906\u2907\u2908\u2909\u290a\u290b\u290c\u290d\u290e\u290f\u2910\u2911\u2912\u2913\u2914\u2915\u2916\u2917\u2918\u2919\u291a\u291b\u291c\u291d\u291e\u291f\u2920\u2921\u2922\u2923\u2924\u2925\u2926\u2927\u2928\u2929\u292a\u292d\u292e\u292f\u2930\u2931\u2932\u2933\u2934\u2935\u2936\u2937\u2938\u2939\u293a\u293b\u293c\u293d\u293e\u293f\u2940\u2941\u2942\u2943\u2944\u2945\u2946\u2947\u2948\u2949\u2970\u2971\u2972\u2973\u2974\u2975\u2976\u2977\u2978\u2979\u297a\u297b\u29b3\u29b4\u29bd\u29ea\u29ec\u29ed\u2a17\u2b00\u2b01\u2b02\u2b03\u2b04\u2b05\u2b06\u2b07\u2b08\u2b09\u2b0a\u2b0b\u2b0c\u2b0d\u2b0e\u2b0f\u2b10\u2b11\u2b30\u2b31\u2b32\u2b33\u2b34\u2b35\u2b36\u2b37\u2b38\u2b39\u2b3a\u2b3b\u2b3c\u2b3d\u2b3e\u2b3f\u2b40\u2b41\u2b42\u2b43\u2b44\u2b45\u2b46\u2b47\u2b48\u2b49\u2b4a\u2b4b\u2b4c\uffe9\uffea\uffeb\uffec\u21bc\u21bd\u21be\u21bf\u21c0\u21c1\u21c2\u21c3\u21cb\u21cc\u294a\u294b\u294c\u294d\u294e\u294f\u2950\u2951\u2952\u2953\u2954\u2955\u2956\u2957\u2958\u2959\u295a\u295b\u295c\u295d\u295e\u295f\u2960\u2961\u2962\u2963\u2964\u2965\u2966\u2967\u2968\u2969\u296a\u296b\u296c\u296d\u296e\u296f\u297c\u297d\u297e\u297f".split("");
+this.sumOps="\u2140\u220f\u2210\u2211\u22c0\u22c1\u22c2\u22c3\u2a00\u2a01\u2a02\u2a03\u2a04\u2a05\u2a06\u2a07\u2a08\u2a09\u2a0a\u2a0b\u2afc\u2aff".split("");this.intOps="\u222b\u222c\u222d\u222e\u222f\u2230\u2231\u2232\u2233\u2a0c\u2a0d\u2a0e\u2a0f\u2a10\u2a11\u2a12\u2a13\u2a14\u2a15\u2a16\u2a17\u2a18\u2a19\u2a1a\u2a1b\u2a1c".split("");this.prefixOps=["\u2200","\u2203"];this.digitsNormal="0123456789".split("");this.digitsFullWidth="\uff10\uff11\uff12\uff13\uff14\uff15\uff16\uff17\uff18\uff19".split("");
+this.digitsBold="\ud835\udfce \ud835\udfcf \ud835\udfd0 \ud835\udfd1 \ud835\udfd2 \ud835\udfd3 \ud835\udfd4 \ud835\udfd5 \ud835\udfd6 \ud835\udfd7".split(" ");this.digitsDoubleStruck="\ud835\udfd8 \ud835\udfd9 \ud835\udfda \ud835\udfdb \ud835\udfdc \ud835\udfdd \ud835\udfde \ud835\udfdf \ud835\udfe0 \ud835\udfe1".split(" ");this.digitsSansSerif="\ud835\udfe2 \ud835\udfe3 \ud835\udfe4 \ud835\udfe5 \ud835\udfe6 \ud835\udfe7 \ud835\udfe8 \ud835\udfe9 \ud835\udfea \ud835\udfeb".split(" ");this.digitsSansSerifBold=
+"\ud835\udfec \ud835\udfed \ud835\udfee \ud835\udfef \ud835\udff0 \ud835\udff1 \ud835\udff2 \ud835\udff3 \ud835\udff4 \ud835\udff5".split(" ");this.digitsMonospace="\ud835\udff6 \ud835\udff7 \ud835\udff8 \ud835\udff9 \ud835\udffa \ud835\udffb \ud835\udffc \ud835\udffd \ud835\udffe \ud835\udfff".split(" ");this.digitsSuperscript="\u00b2\u00b3\u00b9\u2070\u2074\u2075\u2076\u2077\u2078\u2079".split("");this.digitsSubscript="\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089".split("");this.fractions=
+"\u00bc\u00bd\u00be\u2150\u2151\u2152\u2153\u2154\u2155\u2156\u2157\u2158\u2159\u215a\u215b\u215c\u215d\u215e\u215f\u2189".split("");this.enclosedNumbers="\u2460\u2461\u2462\u2463\u2464\u2465\u2466\u2467\u2468\u2469\u246a\u246b\u246c\u246d\u246e\u246f\u2470\u2471\u2472\u2473\u24ea\u24eb\u24ec\u24ed\u24ee\u24ef\u24f0\u24f1\u24f2\u24f3\u24f4\u24f5\u24f6\u24f7\u24f8\u24f9\u24fa\u24fb\u24fc\u24fd\u24fe\u24ff\u2776\u2777\u2778\u2779\u277a\u277b\u277c\u277d\u277e\u277f\u2780\u2781\u2782\u2783\u2784\u2785\u2786\u2787\u2788\u2789\u278a\u278b\u278c\u278d\u278e\u278f\u2790\u2791\u2792\u2793\u3248\u3249\u324a\u324b\u324c\u324d\u324e\u324f\u3251\u3252\u3253\u3254\u3255\u3256\u3257\u3258\u3259\u325a\u325b\u325c\u325d\u325e\u325f\u32b1\u32b2\u32b3\u32b4\u32b5\u32b6\u32b7\u32b8\u32b9\u32ba\u32bb\u32bc\u32bd\u32be\u32bf".split("");
+this.fencedNumbers="\u2474\u2475\u2476\u2477\u2478\u2479\u247a\u247b\u247c\u247d\u247e\u247f\u2480\u2481\u2482\u2483\u2484\u2485\u2486\u2487".split("");this.punctuatedNumbers="\u2488 \u2489 \u248a \u248b \u248c \u248d \u248e \u248f \u2490 \u2491 \u2492 \u2493 \u2494 \u2495 \u2496 \u2497 \u2498 \u2499 \u249a \u249b \ud83c\udd00 \ud83c\udd01 \ud83c\udd02 \ud83c\udd03 \ud83c\udd04 \ud83c\udd05 \ud83c\udd06 \ud83c\udd07 \ud83c\udd08 \ud83c\udd09 \ud83c\udd0a".split(" ");this.numbers=this.fractions.concat(this.digitsSuperscript,
+this.digitsSubscript,this.enclosedNumbers,this.fencedNumbers,this.punctuatedNumbers);this.trigonometricFunctions="cos cot csc sec sin tan arccos arccot arccsc arcsec arcsin arctan".split(" ");this.hyperbolicFunctions="cosh coth csch sech sinh tanh arcosh arcoth arcsch arsech arsinh artanh arccosh arccoth arccsch arcsech arcsinh arctanh".split(" ");this.algebraicFunctions="deg det dim hom ker Tr tr".split(" ");this.elementaryFunctions="log ln lg exp expt gcd gcd arg im re Pr".split(" ");this.prefixFunctions=
+this.trigonometricFunctions.concat(this.hyperbolicFunctions,this.algebraicFunctions,this.elementaryFunctions);this.limitFunctions="inf lim liminf limsup max min sup injlim projlim".split(" ");this.infixFunctions=["mod","rem"];this.symbolSetToSemantic_=[{set:this.generalPunctuations,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.UNKNOWN},{set:this.ellipses,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.ELLIPSIS},{set:this.fullStops,type:cvox.SemanticAttr.Type.PUNCTUATION,
+role:cvox.SemanticAttr.Role.FULLSTOP},{set:this.dashes,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.DASH},{set:this.primes,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.PRIME},{set:this.leftFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.OPEN},{set:this.rightFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.CLOSE},{set:this.topFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.TOP},{set:this.bottomFences,
+type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.BOTTOM},{set:this.neutralFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.NEUTRAL},{set:this.smallLatin,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.capitalLatin,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.smallLatinFullWidth,type:cvox.SemanticAttr.Type.IDENTIFIER,
+role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.capitalLatinFullWidth,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.smallLatinBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLD},{set:this.capitalLatinBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLD},
+{set:this.smallLatinItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.capitalLatinItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.smallLatinScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SCRIPT},{set:this.capitalLatinScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,
+font:cvox.SemanticAttr.Font.SCRIPT},{set:this.smallLatinBoldScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLDSCRIPT},{set:this.capitalLatinBoldScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLDSCRIPT},{set:this.smallLatinFraktur,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.FRAKTUR},{set:this.capitalLatinFraktur,
+type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.FRAKTUR},{set:this.smallLatinDoubleStruck,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.capitalLatinDoubleStruck,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.smallLatinBoldFraktur,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,
+font:cvox.SemanticAttr.Font.BOLDFRAKTUR},{set:this.capitalLatinBoldFraktur,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLDFRAKTUR},{set:this.smallLatinSansSerif,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIF},{set:this.capitalLatinSansSerif,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIF},{set:this.smallLatinSansSerifBold,
+type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.capitalLatinSansSerifBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.smallLatinSansSerifItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFITALIC},{set:this.capitalLatinSansSerifItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,
+role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFITALIC},{set:this.smallLatinMonospace,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.MONOSPACE},{set:this.capitalLatinMonospace,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.MONOSPACE},{set:this.latinDoubleStruckItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCKITALIC},
+{set:this.smallGreek,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.capitalGreek,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.smallGreekBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.BOLD},{set:this.capitalGreekBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,
+font:cvox.SemanticAttr.Font.BOLD},{set:this.smallGreekItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.capitalGreekItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.smallGreekSansSerifBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.capitalGreekSansSerifBold,
+type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.greekDoubleStruck,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.hebrewLetters,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.OTHERLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.digitsNormal,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,
+font:cvox.SemanticAttr.Font.NORMAL},{set:this.digitsFullWidth,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.digitsBold,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.BOLD},{set:this.digitsDoubleStruck,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.digitsSansSerif,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,
+font:cvox.SemanticAttr.Font.SANSSERIF},{set:this.digitsSansSerifBold,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.digitsMonospace,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.MONOSPACE},{set:this.numbers,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER},{set:this.additions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.ADDITION},
+{set:this.multiplications,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.MULTIPLICATION},{set:this.subtractions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.SUBTRACTION},{set:this.divisions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.DIVISION},{set:this.prefixOps,type:cvox.SemanticAttr.Type.PREFIXOP,role:cvox.SemanticAttr.Role.PREFIXFUNC},{set:this.equalities,type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.EQUALITY},{set:this.inequalities,
+type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.INEQUALITY},{set:this.relations,type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.UNKNOWN},{set:this.arrows,type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.ARROW},{set:this.sumOps,type:cvox.SemanticAttr.Type.LARGEOP,role:cvox.SemanticAttr.Role.SUM},{set:this.intOps,type:cvox.SemanticAttr.Type.LARGEOP,role:cvox.SemanticAttr.Role.INTEGRAL},{set:this.limitFunctions,type:cvox.SemanticAttr.Type.FUNCTION,role:cvox.SemanticAttr.Role.LIMFUNC},
+{set:this.prefixFunctions,type:cvox.SemanticAttr.Type.FUNCTION,role:cvox.SemanticAttr.Role.PREFIXFUNC},{set:this.infixFunctions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.MULTIPLICATION}]};goog.addSingletonGetter(cvox.SemanticAttr);
+cvox.SemanticAttr.Type={PUNCTUATION:"punctuation",FENCE:"fence",NUMBER:"number",IDENTIFIER:"identifier",TEXT:"text",OPERATOR:"operator",RELATION:"relation",LARGEOP:"largeop",FUNCTION:"function",ACCENT:"accent",FENCED:"fenced",FRACTION:"fraction",PUNCTUATED:"punctuated",RELSEQ:"relseq",MULTIREL:"multirel",INFIXOP:"infixop",PREFIXOP:"prefixop",POSTFIXOP:"postfixop",APPL:"appl",INTEGRAL:"integral",BIGOP:"bigop",SQRT:"sqrt",ROOT:"root",LIMUPPER:"limupper",LIMLOWER:"limlower",LIMBOTH:"limboth",SUBSCRIPT:"subscript",
+SUPERSCRIPT:"superscript",UNDERSCORE:"underscore",OVERSCORE:"overscore",TABLE:"table",MULTILINE:"multiline",MATRIX:"matrix",VECTOR:"vector",CASES:"cases",ROW:"row",LINE:"line",CELL:"cell",UNKNOWN:"unknown",EMPTY:"empty"};
+cvox.SemanticAttr.Role={ELLIPSIS:"ellipsis",FULLSTOP:"fullstop",DASH:"dash",PRIME:"prime",VBAR:"vbar",OPENFENCE:"openfence",CLOSEFENCE:"closefence",APPLICATION:"application",OPEN:"open",CLOSE:"close",TOP:"top",BOTTOM:"bottom",NEUTRAL:"neutral",LATINLETTER:"latinletter",GREEKLETTER:"greekletter",OTHERLETTER:"otherletter",INTEGER:"integer",FLOAT:"float",OTHERNUMBER:"othernumber",MULTIACCENT:"multiaccent",OVERACCENT:"overaccent",UNDERACCENT:"underaccent",LEFTRIGHT:"leftright",ABOVEBELOW:"abovebelow",
+SEQUENCE:"sequence",ENDPUNCT:"endpunct",STARTPUNCT:"startpunct",NEGATIVE:"negative",NEGATION:"negation",MULTIOP:"multiop",LIMFUNC:"limit function",INFIXFUNC:"infix function",PREFIXFUNC:"prefix function",POSTFIXFUNC:"postfix function",SUM:"sum",INTEGRAL:"integral",ADDITION:"addition",MULTIPLICATION:"multiplication",DIVISION:"division",SUBTRACTION:"subtraction",IMPLICIT:"implicit",EQUALITY:"equality",INEQUALITY:"inequality",ELEMENT:"element",BINREL:"binrel",ARROW:"arrow",MULTILINE:"multiline",MATRIX:"matrix",
+VECTOR:"vector",CASES:"cases",TABLE:"table",UNKNOWN:"unknown"};cvox.SemanticAttr.Font={BOLD:"bold",BOLDFRAKTUR:"bold-fraktur",BOLDITALIC:"bold-italic",BOLDSCRIPT:"bold-script",DOUBLESTRUCK:"double-struck",DOUBLESTRUCKITALIC:"double-struck-italic",FRAKTUR:"fraktur",ITALIC:"italic",MONOSPACE:"monospace",NORMAL:"normal",SCRIPT:"script",SANSSERIF:"sans-serif",SANSSERIFITALIC:"sans-serif-italic",SANSSERIFBOLD:"sans-serif-bold",SANSSERIFBOLDITALIC:"sans-serif-bold-italic",UNKNOWN:"unknown"};
+cvox.SemanticAttr.lookupMeaning=function(a){return cvox.SemanticAttr.getInstance().lookupMeaning_(a)};cvox.SemanticAttr.invisibleTimes=function(){return cvox.SemanticAttr.getInstance().invisibleTimes_};cvox.SemanticAttr.invisibleComma=function(){return cvox.SemanticAttr.getInstance().invisibleComma_};cvox.SemanticAttr.functionApplication=function(){return cvox.SemanticAttr.getInstance().functionApplication_};
+cvox.SemanticAttr.isMatchingFenceRole=function(a,b){return a==cvox.SemanticAttr.Role.OPEN&&b==cvox.SemanticAttr.Role.CLOSE||a==cvox.SemanticAttr.Role.NEUTRAL&&b==cvox.SemanticAttr.Role.NEUTRAL||a==cvox.SemanticAttr.Role.TOP&&b==cvox.SemanticAttr.Role.BOTTOM};cvox.SemanticAttr.isMatchingFence=function(a,b){return cvox.SemanticAttr.getInstance().isMatchingFence_(a,b)};cvox.SemanticAttr.isOpeningFence=function(a){return a==cvox.SemanticAttr.Role.OPEN||a==cvox.SemanticAttr.Role.NEUTRAL};
+cvox.SemanticAttr.isClosingFence=function(a){return a==cvox.SemanticAttr.Role.CLOSE||a==cvox.SemanticAttr.Role.NEUTRAL};cvox.SemanticAttr.isCharacterD=function(a){var b="d \u2146 \uff44 \ud835\udc1d \ud835\udc51 \ud835\udcb9 \ud835\udced \ud835\udd21 \ud835\udd55 \ud835\udd89 \ud835\uddbd \ud835\uddf1 \ud835\ude25 \ud835\ude8d".split(" ");return-1!=b.indexOf(a)};
+cvox.SemanticAttr.prototype.isMatchingFence_=function(a,b){return-1!=this.neutralFences.indexOf(a)?a==b:this.openClosePairs[a]==b||this.topBottomPairs[a]==b};
+cvox.SemanticAttr.prototype.lookupMeaning_=function(a){for(var b=0,c;c=this.symbolSetToSemantic_[b];b++)if(-1!=c.set.indexOf(a))return{role:c.role||cvox.SemanticAttr.Role.UNKNOWN,type:c.type||cvox.SemanticAttr.Type.UNKNOWN,font:c.font||cvox.SemanticAttr.Font.UNKNOWN};return{role:cvox.SemanticAttr.Role.UNKNOWN,type:cvox.SemanticAttr.Type.UNKNOWN,font:cvox.SemanticAttr.Font.UNKNOWN}};cvox.SemanticTree=function(a){this.idCounter_=0;this.mathml=a;this.root=this.parseMathml_(a)};cvox.SemanticTree.Node=function(a){this.id=a;this.mathml=[];this.parent=null;this.type=cvox.SemanticAttr.Type.UNKNOWN;this.role=cvox.SemanticAttr.Role.UNKNOWN;this.font=cvox.SemanticAttr.Font.UNKNOWN;this.childNodes=[];this.textContent="";this.contentNodes=[]};
+cvox.SemanticTree.Node.prototype.querySelectorAll=function(a){for(var b=[],c=0,d;d=this.childNodes[c];c++)b=b.concat(d.querySelectorAll(a));a(this)&&b.unshift(this);return b};cvox.SemanticTree.prototype.xml=function(a){var b=new DOMParser,b=b.parseFromString("<stree></stree>","text/xml");a=this.root.xml(b,a);b.childNodes[0].appendChild(a);return b.childNodes[0]};
+cvox.SemanticTree.Node.prototype.xml=function(a,b){var c=function(c,d){for(var g=d.map(function(c){return c.xml(a,b)}),h=a.createElement(c),k=0,l;l=g[k];k++)h.appendChild(l);return h},d=a.createElement(this.type);b||this.xmlAttributes_(d);d.textContent=this.textContent;0<this.contentNodes.length&&d.appendChild(c("content",this.contentNodes));0<this.childNodes.length&&d.appendChild(c("children",this.childNodes));return d};cvox.SemanticTree.prototype.toString=function(a){var b=new XMLSerializer;return b.serializeToString(this.xml(a))};
+cvox.SemanticTree.prototype.formatXml=function(a){a=this.toString(a);return cvox.SemanticTree.formatXml(a)};cvox.SemanticTree.formatXml=function(a){var b=/(>)(<)(\/*)/g;a=a.replace(b,"$1\r\n$2$3");b=/(>)(.+)(<c)/g;a=a.replace(b,"$1\r\n$2\r\n$3");var c="",d="";a.split("\r\n").forEach(function(a){a.match(/.+<\/\w[^>]*>$/)?c+=d+a+"\r\n":a.match(/^<\/\w/)?d&&(d=d.slice(2),c+=d+a+"\r\n"):a.match(/^<\w[^>]*[^\/]>.*$/)?(c+=d+a+"\r\n",d+=" "):c+=d+a+"\r\n"});return c};
+cvox.SemanticTree.Node.prototype.toString=function(a){var b=new XMLSerializer,c=new DOMParser,c=c.parseFromString("","text/xml");return b.serializeToString(this.xml(c,a))};cvox.SemanticTree.Node.prototype.xmlAttributes_=function(a){a.setAttribute("role",this.role);this.font!=cvox.SemanticAttr.Font.UNKNOWN&&a.setAttribute("font",this.font);a.setAttribute("id",this.id)};cvox.SemanticTree.prototype.createNode_=function(){return new cvox.SemanticTree.Node(this.idCounter_++)};
+cvox.SemanticTree.Node.prototype.updateContent_=function(a){a=a.trim();if(this.textContent!=a){var b=cvox.SemanticAttr.lookupMeaning(a);this.textContent=a;this.role=b.role;this.type=b.type;this.font=b.font}};cvox.SemanticTree.Node.prototype.addMathmlNodes_=function(a){for(var b=0,c;c=a[b];b++)-1==this.mathml.indexOf(c)&&this.mathml.push(c)};cvox.SemanticTree.Node.prototype.appendChild_=function(a){this.childNodes.push(a);this.addMathmlNodes_(a.mathml);a.parent=this};
+cvox.SemanticTree.Node.prototype.appendContentNode_=function(a){a&&(this.contentNodes.push(a),this.addMathmlNodes_(a.mathml),a.parent=this)};
+cvox.SemanticTree.prototype.parseMathml_=function(a){var b=cvox.DomUtil.toArray(a.children);switch(cvox.SemanticUtil.tagName(a)){case "MATH":case "MROW":case "MPADDED":case "MSTYLE":return b=cvox.SemanticUtil.purgeNodes(b),1==b.length?this.parseMathml_(b[0]):this.processRow_(this.parseMathmlChildren_(b));case "MFRAC":return a=this.makeBranchNode_(cvox.SemanticAttr.Type.FRACTION,[this.parseMathml_(b[0]),this.parseMathml_(b[1])],[]),a.role=cvox.SemanticAttr.Role.DIVISION,a;case "MSUB":case "MSUP":case "MSUBSUP":case "MOVER":case "MUNDER":case "MUNDEROVER":return this.makeLimitNode_(cvox.SemanticUtil.tagName(a),
+this.parseMathmlChildren_(b));case "MROOT":return this.makeBranchNode_(cvox.SemanticAttr.Type.ROOT,[this.parseMathml_(b[0]),this.parseMathml_(b[1])],[]);case "MSQRT":return b=this.parseMathmlChildren_(cvox.SemanticUtil.purgeNodes(b)),this.makeBranchNode_(cvox.SemanticAttr.Type.SQRT,[this.processRow_(b)],[]);case "MTABLE":return a=this.makeBranchNode_(cvox.SemanticAttr.Type.TABLE,this.parseMathmlChildren_(b),[]),cvox.SemanticTree.tableIsMultiline_(a)&&this.tableToMultiline_(a),a;case "MTR":return a=
+this.makeBranchNode_(cvox.SemanticAttr.Type.ROW,this.parseMathmlChildren_(b),[]),a.role=cvox.SemanticAttr.Role.TABLE,a;case "MTD":return b=this.parseMathmlChildren_(cvox.SemanticUtil.purgeNodes(b)),a=this.makeBranchNode_(cvox.SemanticAttr.Type.CELL,[this.processRow_(b)],[]),a.role=cvox.SemanticAttr.Role.TABLE,a;case "MTEXT":return a=this.makeLeafNode_(a),a.type=cvox.SemanticAttr.Type.TEXT,a;case "MI":return a=this.makeLeafNode_(a),a.type==cvox.SemanticAttr.Type.UNKNOWN&&(a.type=cvox.SemanticAttr.Type.IDENTIFIER),
+a;case "MN":return a=this.makeLeafNode_(a),a.type==cvox.SemanticAttr.Type.UNKNOWN&&(a.type=cvox.SemanticAttr.Type.NUMBER),a;case "MO":return a=this.makeLeafNode_(a),a.type==cvox.SemanticAttr.Type.UNKNOWN&&(a.type=cvox.SemanticAttr.Type.OPERATOR),a;default:return this.makeUnprocessed_(a)}};cvox.SemanticTree.prototype.parseMathmlChildren_=function(a){for(var b=[],c=0,d;d=a[c];c++)b.push(this.parseMathml_(d));return b};
+cvox.SemanticTree.prototype.makeUnprocessed_=function(a){var b=this.createNode_();b.mathml=[a];return b};cvox.SemanticTree.prototype.makeEmptyNode_=function(){var a=this.createNode_();a.type=cvox.SemanticAttr.Type.EMPTY;return a};cvox.SemanticTree.prototype.makeLeafNode_=function(a){var b=this.createNode_();b.mathml=[a];b.updateContent_(a.textContent);b.font=a.getAttribute("mathvariant")||b.font;return b};
+cvox.SemanticTree.prototype.makeBranchNode_=function(a,b,c,d){var e=this.createNode_();d&&e.updateContent_(d);e.type=a;e.childNodes=b;e.contentNodes=c;b.concat(c).forEach(function(a){a.parent=e;e.addMathmlNodes_(a.mathml)});return e};cvox.SemanticTree.prototype.makeImplicitNode_=function(a){if(1==a.length)return a[0];var b=this.createNode_();b.updateContent_(cvox.SemanticAttr.invisibleTimes());a=this.makeInfixNode_(a,b);a.role=cvox.SemanticAttr.Role.IMPLICIT;return a};
+cvox.SemanticTree.prototype.makeInfixNode_=function(a,b){return this.makeBranchNode_(cvox.SemanticAttr.Type.INFIXOP,a,[b],b.textContent)};cvox.SemanticTree.prototype.makeConcatNode_=function(a,b,c){if(0==b.length)return a;var d=b.map(function(a){return a.textContent}).join(" ");a=this.makeBranchNode_(c,[a],b,d);0<b.length&&(a.role=cvox.SemanticAttr.Role.MULTIOP);return a};
+cvox.SemanticTree.prototype.makePrefixNode_=function(a,b){for(var c=cvox.SemanticTree.partitionNodes_(b,cvox.SemanticTree.attrPred_("role","SUBTRACTION")),d=this.makeConcatNode_(a,c.comp.pop(),cvox.SemanticAttr.Type.PREFIXOP);0<c.rel.length;)d=this.makeConcatNode_(d,[c.rel.pop()],cvox.SemanticAttr.Type.PREFIXOP),d.role=cvox.SemanticAttr.Role.NEGATIVE,d=this.makeConcatNode_(d,c.comp.pop(),cvox.SemanticAttr.Type.PREFIXOP);return d};
+cvox.SemanticTree.prototype.makePostfixNode_=function(a,b){return this.makeConcatNode_(a,b,cvox.SemanticAttr.Type.POSTFIXOP)};cvox.SemanticTree.prototype.processRow_=function(a){if(0==a.length)return this.makeEmptyNode_();a=this.getFencesInRow_(a);a=this.processTablesInRow_(a);a=this.getPunctuationInRow_(a);a=this.getFunctionsInRow_(a);return this.processRelationsInRow_(a)};
+cvox.SemanticTree.prototype.processRelationsInRow_=function(a){var b=cvox.SemanticTree.partitionNodes_(a,cvox.SemanticTree.attrPred_("type","RELATION")),c=b.rel[0];if(!c)return this.processOperationsInRow_(a);if(1==a.length)return a[0];a=b.comp.map(goog.bind(this.processOperationsInRow_,this));return b.rel.every(function(a){return a.textContent==c.textContent})?this.makeBranchNode_(cvox.SemanticAttr.Type.RELSEQ,a,b.rel,c.textContent):this.makeBranchNode_(cvox.SemanticAttr.Type.MULTIREL,a,b.rel)};
+cvox.SemanticTree.prototype.processOperationsInRow_=function(a){if(0==a.length)return this.makeEmptyNode_();if(1==a.length)return a[0];for(var b=[];0<a.length&&a[0].type==cvox.SemanticAttr.Type.OPERATOR;)b.push(a.shift());if(0==a.length)return this.makePrefixNode_(b.pop(),b);if(1==a.length)return this.makePrefixNode_(a[0],b);a=cvox.SemanticTree.sliceNodes_(a,cvox.SemanticTree.attrPred_("type","OPERATOR"));b=this.makePrefixNode_(this.makeImplicitNode_(a.head),b);return a.div?this.makeOperationsTree_(a.tail,
+b,a.div):b};
+cvox.SemanticTree.prototype.makeOperationsTree_=function(a,b,c,d){d=d||[];if(0==a.length)return d.unshift(c),b.type==cvox.SemanticAttr.Type.INFIXOP?(d=this.makePostfixNode_(b.childNodes.pop(),d),b.appendChild_(d),b):this.makePostfixNode_(b,d);a=cvox.SemanticTree.sliceNodes_(a,cvox.SemanticTree.attrPred_("type","OPERATOR"));if(0==a.head.length)return d.push(a.div),this.makeOperationsTree_(a.tail,b,c,d);d=this.makePrefixNode_(this.makeImplicitNode_(a.head),d);b=this.appendOperand_(b,c,d);return a.div?
+this.makeOperationsTree_(a.tail,b,a.div,[]):b};cvox.SemanticTree.prototype.appendOperand_=function(a,b,c){return a.type!=cvox.SemanticAttr.Type.INFIXOP?this.makeInfixNode_([a,c],b):this.appendExistingOperator_(a,b,c)?a:b.role==cvox.SemanticAttr.Role.MULTIPLICATION?this.appendMultiplicativeOp_(a,b,c):this.appendAdditiveOp_(a,b,c)};
+cvox.SemanticTree.prototype.appendMultiplicativeOp_=function(a,b,c){for(var d=a,e=a.childNodes[a.childNodes.length-1];e&&e.type==cvox.SemanticAttr.Type.INFIXOP;)d=e,e=d.childNodes[a.childNodes.length-1];b=this.makeInfixNode_([d.childNodes.pop(),c],b);d.appendChild_(b);return a};cvox.SemanticTree.prototype.appendAdditiveOp_=function(a,b,c){return this.makeInfixNode_([a,c],b)};
+cvox.SemanticTree.prototype.appendExistingOperator_=function(a,b,c){if(!a||a.type!=cvox.SemanticAttr.Type.INFIXOP)return!1;if(a.textContent==b.textContent)return a.appendContentNode_(b),a.appendChild_(c),!0;this.appendExistingOperator_(a.childNodes[a.childNodes.length-1],b,c)};cvox.SemanticTree.prototype.getFencesInRow_=function(a){a=cvox.SemanticTree.partitionNodes_(a,cvox.SemanticTree.attrPred_("type","FENCE"));var b=a.comp.shift();return this.processFences_(a.rel,a.comp,[],[b])};
+cvox.SemanticTree.prototype.processFences_=function(a,b,c,d){if(0==a.length&&0==c.length)return d[0];var e=cvox.SemanticTree.attrPred_("role","OPEN");if(0==a.length){for(a=d.shift();0<c.length;){if(e(c[0]))b=c.shift(),cvox.SemanticTree.fenceToPunct_(b),a.push(b);else{c=cvox.SemanticTree.sliceNodes_(c,e);var f=c.head.length-1,g=this.processNeutralFences_(c.head,d.slice(0,f));d=d.slice(f);a.push.apply(a,g);c.div&&c.tail.unshift(c.div);c=c.tail}a.push.apply(a,d.shift())}return a}f=c[c.length-1];g=a[0].role;
+if(g==cvox.SemanticAttr.Role.OPEN||g==cvox.SemanticAttr.Role.NEUTRAL&&(!f||a[0].textContent!=f.textContent))return c.push(a.shift()),d.push(b.shift()),this.processFences_(a,b,c,d);if(f&&(g==cvox.SemanticAttr.Role.CLOSE&&f.role==cvox.SemanticAttr.Role.OPEN||g==cvox.SemanticAttr.Role.NEUTRAL&&a[0].textContent==f.textContent))return e=this.makeHorizontalFencedNode_(c.pop(),a.shift(),d.pop()),d.push(d.pop().concat([e],b.shift())),this.processFences_(a,b,c,d);if(f&&g==cvox.SemanticAttr.Role.CLOSE&&f.role==
+cvox.SemanticAttr.Role.NEUTRAL&&c.some(e))return c=cvox.SemanticTree.sliceNodes_(c,e,!0),e=d.pop(),f=d.length-c.tail.length+1,g=this.processNeutralFences_(c.tail,d.slice(f)),d=d.slice(0,f),e=this.makeHorizontalFencedNode_(c.div,a.shift(),d.pop().concat(g,e)),d.push(d.pop().concat([e],b.shift())),this.processFences_(a,b,c.head,d);e=a.shift();cvox.SemanticTree.fenceToPunct_(e);d.push(d.pop().concat([e],b.shift()));return this.processFences_(a,b,c,d)};
+cvox.SemanticTree.prototype.processNeutralFences_=function(a,b){if(0==a.length)return a;if(1==a.length)return cvox.SemanticTree.fenceToPunct_(a[0]),a;var c=a.shift(),d=cvox.SemanticTree.sliceNodes_(a,function(a){return a.textContent==c.textContent});if(!d.div){cvox.SemanticTree.fenceToPunct_(c);var e=b.shift();e.unshift(c);return e.concat(this.processNeutralFences_(a,b))}var f=this.combineFencedContent_(c,d.div,d.head,b);return 0<d.tail.length?(e=f.shift(),d=this.processNeutralFences_(d.tail,f),e.concat(d)):
+f[0]};cvox.SemanticTree.prototype.combineFencedContent_=function(a,b,c,d){if(0==c.length)return a=this.makeHorizontalFencedNode_(a,b,d.shift()),d.unshift(a),d;var e=d.shift(),f=c.length-1,g=d.slice(0,f);d=d.slice(f);f=d.shift();c=this.processNeutralFences_(c,g);e.push.apply(e,c);e.push.apply(e,f);a=this.makeHorizontalFencedNode_(a,b,e);0<d.length?d[0].unshift(a):d=[[a]];return d};
+cvox.SemanticTree.fenceToPunct_=function(a){a.type=cvox.SemanticAttr.Type.PUNCTUATION;switch(a.role){case cvox.SemanticAttr.Role.NEUTRAL:a.role=cvox.SemanticAttr.Role.VBAR;break;case cvox.SemanticAttr.Role.OPEN:a.role=cvox.SemanticAttr.Role.OPENFENCE;break;case cvox.SemanticAttr.Role.CLOSE:a.role=cvox.SemanticAttr.Role.CLOSEFENCE}};
+cvox.SemanticTree.prototype.makeHorizontalFencedNode_=function(a,b,c){c=this.processRow_(c);b=this.makeBranchNode_(cvox.SemanticAttr.Type.FENCED,[c],[a,b]);b.role=a.role==cvox.SemanticAttr.Role.OPEN?cvox.SemanticAttr.Role.LEFTRIGHT:a.role;return b};
+cvox.SemanticTree.prototype.getPunctuationInRow_=function(a){var b=cvox.SemanticTree.partitionNodes_(a,function(a){return cvox.SemanticTree.attrPred_("type","PUNCTUATION")(a)&&!cvox.SemanticTree.attrPred_("role","ELLIPSIS")(a)});if(0==b.rel.length)return a;a=[];var c=b.comp.shift();0<c.length&&a.push(this.processRow_(c));for(var d=0;0<b.comp.length;)a.push(b.rel[d++]),c=b.comp.shift(),0<c.length&&a.push(this.processRow_(c));return[this.makePunctuatedNode_(a,b.rel)]};
+cvox.SemanticTree.prototype.makePunctuatedNode_=function(a,b){var c=this.makeBranchNode_(cvox.SemanticAttr.Type.PUNCTUATED,a,b);c.role=1==b.length&&a[0].type==cvox.SemanticAttr.Type.PUNCTUATION?cvox.SemanticAttr.Role.STARTPUNCT:1==b.length&&a[a.length-1].type==cvox.SemanticAttr.Type.PUNCTUATION?cvox.SemanticAttr.Role.ENDPUNCT:cvox.SemanticAttr.Role.SEQUENCE;return c};
+cvox.SemanticTree.prototype.makeLimitNode_=function(a,b){var c=b[0],d=cvox.SemanticTree.attrPred_("type","FUNCTION")(c),d=cvox.SemanticTree.attrPred_("type","LARGEOP")(c)||cvox.SemanticTree.attrPred_("type","LIMBOTH")(c)||cvox.SemanticTree.attrPred_("type","LIMLOWER")(c)||cvox.SemanticTree.attrPred_("type","LIMUPPER")(c)||d&&cvox.SemanticTree.attrPred_("role","LIMFUNC")(c),e=cvox.SemanticAttr.Type.UNKNOWN;if(d)switch(a){case "MSUB":case "MUNDER":e=cvox.SemanticAttr.Type.LIMLOWER;break;case "MSUP":case "MOVER":e=
+cvox.SemanticAttr.Type.LIMUPPER;break;case "MSUBSUP":case "MUNDEROVER":e=cvox.SemanticAttr.Type.LIMBOTH}else switch(a){case "MSUB":e=cvox.SemanticAttr.Type.SUBSCRIPT;break;case "MSUP":e=cvox.SemanticAttr.Type.SUPERSCRIPT;break;case "MSUBSUP":d=this.makeBranchNode_(cvox.SemanticAttr.Type.SUBSCRIPT,[c,b[1]],[]);d.role=c.role;b=[d,b[2]];e=cvox.SemanticAttr.Type.SUPERSCRIPT;break;case "MOVER":e=cvox.SemanticAttr.Type.OVERSCORE;break;case "MUNDER":e=cvox.SemanticAttr.Type.UNDERSCORE;break;default:d=this.makeBranchNode_(cvox.SemanticAttr.Type.UNDERSCORE,
+[c,b[1]],[]),d.role=c.role,b=[d,b[2]],e=cvox.SemanticAttr.Type.OVERSCORE}d=this.makeBranchNode_(e,b,[]);d.role=c.role;return d};cvox.SemanticTree.prototype.getFunctionsInRow_=function(a,b){b=b||[];if(0==a.length)return b;var c=a.shift(),d=cvox.SemanticTree.classifyFunction_(c,a);if(!d)return b.push(c),this.getFunctionsInRow_(a,b);var e=this.getFunctionsInRow_(a,[]),c=this.getFunctionArgs_(c,e,d);return b.concat(c)};
+cvox.SemanticTree.classifyFunction_=function(a,b){if(a.type==cvox.SemanticAttr.Type.APPL||a.type==cvox.SemanticAttr.Type.BIGOP||a.type==cvox.SemanticAttr.Type.INTEGRAL)return"";if(b[0]&&b[0].textContent==cvox.SemanticAttr.functionApplication())return b.shift(),cvox.SemanticTree.propagatePrefixFunc_(a),"prefix";switch(a.role){case cvox.SemanticAttr.Role.INTEGRAL:return"integral";case cvox.SemanticAttr.Role.SUM:return"bigop";case cvox.SemanticAttr.Role.PREFIXFUNC:case cvox.SemanticAttr.Role.LIMFUNC:return"prefix";
+default:if(a.type==cvox.SemanticAttr.Type.IDENTIFIER)return"simple"}return""};cvox.SemanticTree.propagatePrefixFunc_=function(a){a&&(a.role=cvox.SemanticAttr.Role.PREFIXFUNC,cvox.SemanticTree.propagatePrefixFunc_(a.childNodes[0]))};
+cvox.SemanticTree.prototype.getFunctionArgs_=function(a,b,c){switch(c){case "integral":return b=this.getIntegralArgs_(b),c=this.processRow_(b.integrand),a=this.makeIntegralNode_(a,c,b.intvar),b.rest.unshift(a),b.rest;case "prefix":if(b[0]&&b[0].type==cvox.SemanticAttr.Type.FENCED)return a=this.makeFunctionNode_(a,b.shift()),b.unshift(a),b;case "bigop":b=cvox.SemanticTree.sliceNodes_(b,cvox.SemanticTree.prefixFunctionBoundary_);var d=this.processRow_(b.head);a="prefix"==c?this.makeFunctionNode_(a,
+d):this.makeBigOpNode_(a,d);b.div&&b.tail.unshift(b.div);b.tail.unshift(a);return b.tail;case "simple":if(0==b.length)return[a];c=b[0];if(c.type==cvox.SemanticAttr.Type.FENCED&&c.role!=cvox.SemanticAttr.Role.NEUTRAL&&this.simpleFunctionHeuristic_(c))return a=this.makeFunctionNode_(a,b.shift()),b.unshift(a),b;b.unshift(a);return b}};
+cvox.SemanticTree.prototype.getIntegralArgs_=function(a,b){b=b||[];if(0==a.length)return{integrand:b,intvar:null,rest:a};var c=a[0];if(cvox.SemanticTree.generalFunctionBoundary_(c))return{integrand:b,intvar:null,rest:a};if(cvox.SemanticTree.integralDxBoundarySingle_(c))return{integrand:b,intvar:c,rest:a.slice(1)};if(a[1]&&cvox.SemanticTree.integralDxBoundary_(c,a[1])){var d=this.createNode_();d.updateContent_(cvox.SemanticAttr.invisibleComma());c=this.makePunctuatedNode_([c,d,a[1]],[d]);c.role=cvox.SemanticAttr.Role.INTEGRAL;
+return{integrand:b,intvar:c,rest:a.slice(2)}}b.push(a.shift());return this.getIntegralArgs_(a,b)};cvox.SemanticTree.prototype.makeFunctionNode_=function(a,b){var c=this.createNode_();c.updateContent_(cvox.SemanticAttr.functionApplication());c.type=cvox.SemanticAttr.Type.PUNCTUATION;c.role=cvox.SemanticAttr.Role.APPLICATION;c=this.makeBranchNode_(cvox.SemanticAttr.Type.APPL,[a,b],[c]);c.role=a.role;return c};
+cvox.SemanticTree.prototype.makeBigOpNode_=function(a,b){var c=this.makeBranchNode_(cvox.SemanticAttr.Type.BIGOP,[a,b],[]);c.role=a.role;return c};cvox.SemanticTree.prototype.makeIntegralNode_=function(a,b,c){b=b||this.makeEmptyNode_();c=c||this.makeEmptyNode_();b=this.makeBranchNode_(cvox.SemanticAttr.Type.INTEGRAL,[a,b,c],[]);b.role=a.role;return b};
+cvox.SemanticTree.prototype.simpleFunctionHeuristic_=function(a){a=a.childNodes;if(0==a.length)return!0;if(1<a.length)return!1;a=a[0];return a.type!=cvox.SemanticAttr.Type.INFIXOP||a.role==cvox.SemanticAttr.Role.IMPLICIT&&!a.childNodes.some(cvox.SemanticTree.attrPred_("type","INFIXOP"))?!0:!1};cvox.SemanticTree.prefixFunctionBoundary_=function(a){return cvox.SemanticTree.attrPred_("type","OPERATOR")(a)||cvox.SemanticTree.generalFunctionBoundary_(a)};
+cvox.SemanticTree.integralDxBoundary_=function(a,b){return!!b&&cvox.SemanticTree.attrPred_("type","IDENTIFIER")(b)&&cvox.SemanticAttr.isCharacterD(a.textContent)};cvox.SemanticTree.integralDxBoundarySingle_=function(a){if(cvox.SemanticTree.attrPred_("type","IDENTIFIER")(a)){var b=a.textContent[0];return b&&a.textContent[1]&&cvox.SemanticAttr.isCharacterD(b)}return!1};
+cvox.SemanticTree.generalFunctionBoundary_=function(a){return cvox.SemanticTree.attrPred_("type","RELATION")(a)||cvox.SemanticTree.attrPred_("type","PUNCTUATION")(a)};
+cvox.SemanticTree.prototype.processTablesInRow_=function(a){a=cvox.SemanticTree.partitionNodes_(a,cvox.SemanticTree.tableIsMatrixOrVector_);for(var b=[],c=0,d;d=a.rel[c];c++)b=b.concat(a.comp.shift()),b.push(this.tableToMatrixOrVector_(d));b=b.concat(a.comp.shift());a=cvox.SemanticTree.partitionNodes_(b,cvox.SemanticTree.isTableOrMultiline_);b=[];for(c=0;d=a.rel[c];c++){var e=a.comp.shift();cvox.SemanticTree.tableIsCases_(d,e)&&this.tableToCases_(d,e.pop());b=b.concat(e);b.push(d)}return b.concat(a.comp.shift())};
+cvox.SemanticTree.isTableOrMultiline_=function(a){return!!a&&(cvox.SemanticTree.attrPred_("type","TABLE")(a)||cvox.SemanticTree.attrPred_("type","MULTILINE")(a))};cvox.SemanticTree.tableIsMatrixOrVector_=function(a){return!!a&&cvox.SemanticTree.attrPred_("type","FENCED")(a)&&cvox.SemanticTree.attrPred_("role","LEFTRIGHT")(a)&&1==a.childNodes.length&&cvox.SemanticTree.isTableOrMultiline_(a.childNodes[0])};
+cvox.SemanticTree.prototype.tableToMatrixOrVector_=function(a){var b=a.childNodes[0],c=cvox.SemanticTree.attrPred_("type","MULTILINE")(b)?"VECTOR":"MATRIX";b.type=cvox.SemanticAttr.Type[c];a.contentNodes.forEach(goog.bind(b.appendContentNode_,b));a=0;for(var d;d=b.childNodes[a];a++)cvox.SemanticTree.assignRoleToRow_(d,cvox.SemanticAttr.Role[c]);return b};cvox.SemanticTree.tableIsCases_=function(a,b){return 0<b.length&&cvox.SemanticTree.attrPred_("role","OPENFENCE")(b[b.length-1])};
+cvox.SemanticTree.prototype.tableToCases_=function(a,b){for(var c=0,d;d=a.childNodes[c];c++)cvox.SemanticTree.assignRoleToRow_(d,cvox.SemanticAttr.Role.CASES);a.type=cvox.SemanticAttr.Type.CASES;a.appendContentNode_(b);return a};cvox.SemanticTree.tableIsMultiline_=function(a){return a.childNodes.every(function(a){a=a.childNodes.length;return 1>=a})};
+cvox.SemanticTree.prototype.tableToMultiline_=function(a){a.type=cvox.SemanticAttr.Type.MULTILINE;for(var b=0,c;c=a.childNodes[b];b++)cvox.SemanticTree.rowToLine_(c,cvox.SemanticAttr.Role.MULTILINE)};cvox.SemanticTree.rowToLine_=function(a,b){b=b||cvox.SemanticAttr.Role.UNKNOWN;cvox.SemanticTree.attrPred_("type","ROW")(a)&&1==a.childNodes.length&&cvox.SemanticTree.attrPred_("type","CELL")(a.childNodes[0])&&(a.type=cvox.SemanticAttr.Type.LINE,a.role=b,a.childNodes=a.childNodes[0].childNodes)};
+cvox.SemanticTree.assignRoleToRow_=function(a,b){if(cvox.SemanticTree.attrPred_("type","LINE")(a))a.role=b;else if(cvox.SemanticTree.attrPred_("type","ROW")(a)){a.role=b;var c=cvox.SemanticTree.attrPred_("type","CELL");a.childNodes.forEach(function(a){c(a)&&(a.role=b)})}};
+cvox.SemanticTree.sliceNodes_=function(a,b,c){c&&a.reverse();for(var d=[],e=0,f;f=a[e];e++){if(b(f))return c?{head:a.slice(e+1).reverse(),div:f,tail:d.reverse()}:{head:d,div:f,tail:a.slice(e+1)};d.push(f)}return c?{head:[],div:null,tail:d.reverse()}:{head:d,div:null,tail:[]}};cvox.SemanticTree.partitionNodes_=function(a,b){var c=a,d=[],e=[];do{var f=cvox.SemanticTree.sliceNodes_(c,b);e.push(f.head);d.push(f.div);c=f.tail}while(f.div);d.pop();return{rel:d,comp:e}};
+cvox.SemanticTree.attrPred_=function(a,b){return function(c){var d;o:{switch(a){case "type":d=cvox.SemanticAttr.Type[b];break o;case "role":d=cvox.SemanticAttr.Role[b];break o;case "font":d=cvox.SemanticAttr.Font[b];break o}d=void 0}return c[a]==d}};cvox.TraverseMath=function(){this.activeNode=this.activeMath=null;this.allTexs_={};this.allMathjaxs_={};this.activeMathmlHost=null;this.domain="default";this.style="short";cvox.ChromeVox.mathJax&&(this.initializeMathjaxs(),this.initializeAltMaths())};goog.addSingletonGetter(cvox.TraverseMath);cvox.TraverseMath.setSemantic_=!1;cvox.TraverseMath.toggleSemantic=function(){return cvox.TraverseMath.setSemantic_=!cvox.TraverseMath.setSemantic_};
+cvox.TraverseMath.prototype.initialize=function(a){if(cvox.DomUtil.isMathImg(a)){if(!a.hasAttribute("cvoxid"))return;a=a.getAttribute("cvoxid");a=this.allTexs_[a]}cvox.DomUtil.isMathJax(a)&&(this.activeMathmlHost=this.allMathjaxs_[a.getAttribute("id")]);this.activeMath=this.activeMathmlHost||a;(this.activeNode=this.activeMathmlHost||a)&&cvox.TraverseMath.setSemantic_&&this.activeNode.nodeType==Node.ELEMENT_NODE&&(this.activeNode=(new cvox.SemanticTree(this.activeNode)).xml())};
+cvox.TraverseMath.prototype.addMathjax=function(a,b){var c=cvox.DomUtil.getMathSpanId(b);c?this.allMathjaxs_[c]=a:this.redoMathjaxs(a,b)};cvox.TraverseMath.prototype.redoMathjaxs=function(a,b){var c=goog.bind(function(){this.addMathjax(a,b)},this);setTimeout(c,500)};
+cvox.TraverseMath.prototype.initializeMathjaxs=function(){var a=goog.bind(function(a,c){this.addMathjax(a,c)},this);cvox.ChromeVox.mathJax.isMathjaxActive(function(b){b&&(cvox.ChromeVox.mathJax.getAllJax(a),cvox.ChromeVox.mathJax.registerSignal(a,"New Math"))})};
+cvox.TraverseMath.prototype.initializeAltMaths=function(){if(document.querySelector(cvox.DomUtil.altMathQuerySelector("tex")+", "+cvox.DomUtil.altMathQuerySelector("asciimath"))){var a=goog.bind(function(a,c){this.allTexs_[c]=a},this);cvox.ChromeVox.mathJax.injectScripts();cvox.ChromeVox.mathJax.isMathjaxActive(function(b){b&&(cvox.ChromeVox.mathJax.configMediaWiki(),cvox.ChromeVox.mathJax.getAllTexs(a),cvox.ChromeVox.mathJax.getAllAsciiMaths(a))})}};
+cvox.TraverseMath.prototype.nextSibling=function(a){if(!this.activeNode||!this.activeMath)return null;var b=this.activeNode,b=a?b.previousSibling:b.nextSibling;return b?this.activeNode=b:null};cvox.TraverseMath.prototype.nextParentChild=function(a){if(!this.activeNode||!this.activeMath||this.activeNode==this.activeMath&&a)return null;var b=this.activeNode,b=a?b.parentNode:b.firstChild;return b?this.activeNode=b:null};
+cvox.TraverseMath.prototype.getAttachedActiveNode=function(){var a=this.activeNode;if(!a||a.nodeType!=Node.ELEMENT_NODE)return null;a=a.getAttribute("spanID");return document.getElementById(a)};cvox.MathUtil={};cvox.MathUtil.isMathmlNodeOfClass_=function(a,b){return-1!=b.indexOf(a.tagName.toUpperCase())};cvox.MathUtil.isMathjaxNodeOfClass_=function(a,b){if("SPAN"==a.tagName){var c=a.className.split(" ");return c.some(function(a){return-1!=b.indexOf(a.toUpperCase())})}return!1};cvox.MathUtil.isMathNodeOfClass_=function(a,b){return a.nodeType==Node.ELEMENT_NODE&&(cvox.MathUtil.isMathmlNodeOfClass_(a,b)||cvox.MathUtil.isMathjaxNodeOfClass_(a,b))};cvox.MathUtil.TOKEN_LIST="MI MN MO MTEXT MSPACE MS".split(" ");
+cvox.MathUtil.isToken=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.TOKEN_LIST)};cvox.MathUtil.LAYOUT_LIST="MROW MFRAC MSQRT MROOT MSTYLE MERROR MPADDED MPHANTOM MFENCED MENCLOSE".split(" ");cvox.MathUtil.isLayout=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.LAYOUT_LIST)};cvox.MathUtil.SCRIPT_LIST="MSUB MSUP MSUBSUP MUNDER MOVER MUNDEROVER MMULTISCRIPTS MPRESCRIPTS".split(" ");
+cvox.MathUtil.isScript=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.SCRIPT_LIST)};cvox.MathUtil.TABLES_LIST="MTABLE MLABELEDTR MTR MTD MALIGNGROUP MALIGNMARK".split(" ");cvox.MathUtil.isTables=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.TABLES_LIST)};cvox.MathUtil.ELEMENTARY_LIST="MSTACK MLONGDIV MSGROUP MSROW MSCARRIES MSCARRY MSLINE".split(" ");cvox.MathUtil.isElementary=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.ELEMENTARY_LIST)};
+cvox.MathUtil.MATHML_TAG_LIST=[cvox.MathUtil.TOKEN_LIST,cvox.MathUtil.LAYOUT_LIST,cvox.MathUtil.SCRIPT_LIST,cvox.MathUtil.TABLES_LIST,cvox.MathUtil.ELEMENTARY_LIST].reduce(function(a,b){return a.concat(b)});cvox.MathUtil.isMathmlTag=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.MATHML_TAG_LIST)};cvox.MathUtil.WHITESPACE_LIST=["MSROW","MROW","MSPACE","MPHANTOM","MPADDED"];cvox.MathUtil.isWhitespace=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.WHITESPACE_LIST)};
+cvox.MathUtil.isNotWhitespace=function(a){return cvox.MathUtil.isMathmlTag(a)&&!cvox.MathUtil.isWhitespace(a)};cvox.MathUtil.union=function(a,b){return a.concat(b.filter(function(b){return 0>a.indexOf(b)}))};cvox.SpeechRule=function(a,b,c,d){this.name=a;this.dynamicCstr=b;this.precondition=c;this.action=d};cvox.SpeechRule.prototype.toString=function(){var a=[],b;for(b in this.dynamicCstr)a.push(this.dynamicCstr[b]);return this.name+" | "+a.join(".")+" | "+this.precondition.toString()+" ==> "+this.action.toString()};cvox.SpeechRule.Type={NODE:"NODE",MULTI:"MULTI",TEXT:"TEXT",PERSONALITY:"PERSONALITY"};
+cvox.SpeechRule.Type.fromString=function(a){switch(a){case "[n]":return cvox.SpeechRule.Type.NODE;case "[m]":return cvox.SpeechRule.Type.MULTI;case "[t]":return cvox.SpeechRule.Type.TEXT;case "[p]":return cvox.SpeechRule.Type.PERSONALITY;default:throw"Parse error: "+a;}};
+cvox.SpeechRule.Type.toString=function(a){switch(a){case cvox.SpeechRule.Type.NODE:return"[n]";case cvox.SpeechRule.Type.MULTI:return"[m]";case cvox.SpeechRule.Type.TEXT:return"[t]";case cvox.SpeechRule.Type.PERSONALITY:return"[p]";default:throw"Unknown type error: "+a;}};cvox.SpeechRule.Component=function(a){this.type=a.type;this.content=a.content};
+cvox.SpeechRule.Component.fromString=function(a){var b={};b.type=cvox.SpeechRule.Type.fromString(a.substring(0,3));a=a.slice(3).trimLeft();if(!a)throw new cvox.SpeechRule.OutputError("Missing content.");switch(b.type){case cvox.SpeechRule.Type.TEXT:if('"'==a[0]){var c=cvox.SpeechRule.splitString_(a,"\\(")[0].trim();if('"'!=c.slice(-1))throw new cvox.SpeechRule.OutputError("Invalid string syntax.");b.content=c;a=a.slice(c.length).trim();-1==a.indexOf("(")&&(a="");break}case cvox.SpeechRule.Type.NODE:case cvox.SpeechRule.Type.MULTI:c=
+a.indexOf(" (");if(-1==c){b.content=a.trim();a="";break}b.content=a.substring(0,c).trim();a=a.slice(c).trimLeft()}b=new cvox.SpeechRule.Component(b);a&&b.addAttributes(a);return b};cvox.SpeechRule.Component.prototype.toString=function(){var a="",a=a+cvox.SpeechRule.Type.toString(this.type),a=a+(this.content?" "+this.content:""),b=this.getAttributes();0<b.length&&(a+=" ("+b.join(", ")+")");return a};
+cvox.SpeechRule.Component.prototype.addAttribute=function(a){var b=a.indexOf(":");-1==b?this[a.trim()]="true":this[a.substring(0,b).trim()]=a.slice(b+1).trim()};cvox.SpeechRule.Component.prototype.addAttributes=function(a){if("("!=a[0]||")"!=a.slice(-1))throw new cvox.SpeechRule.OutputError("Invalid attribute expression: "+a);a=cvox.SpeechRule.splitString_(a.slice(1,-1),",");for(var b=0;b<a.length;b++)this.addAttribute(a[b])};
+cvox.SpeechRule.Component.prototype.getAttributes=function(){var a=[],b;for(b in this)"content"!=b&&"type"!=b&&"function"!=typeof this[b]&&a.push(b+":"+this[b]);return a};cvox.SpeechRule.Action=function(a){this.components=a};cvox.SpeechRule.Action.fromString=function(a){a=cvox.SpeechRule.splitString_(a,";").filter(function(a){return a.match(/\S/)}).map(function(a){return a.trim()});for(var b=[],c=0;c<a.length;c++){var d=cvox.SpeechRule.Component.fromString(a[c]);d&&b.push(d)}return new cvox.SpeechRule.Action(b)};
+cvox.SpeechRule.Action.prototype.toString=function(){var a=this.components.map(function(a){return a.toString()});return a.join("; ")};cvox.SpeechRule.Precondition=function(a,b){this.query=a;this.constraints=b||[]};cvox.SpeechRule.Precondition.prototype.toString=function(){var a=this.constraints.join(", ");return this.query+", "+a};
+cvox.SpeechRule.splitString_=function(a,b){for(var c=[],d="";""!=a;){var e=a.search(b);if(-1==e){if(0!=(a.match(/"/g)||[]).length%2)throw new cvox.SpeechRule.OutputError("Invalid string in expression: "+a);c.push(d+a);a=d=""}else if(0==(a.substring(0,e).match(/"/g)||[]).length%2)c.push(d+a.substring(0,e)),d="",a=a.substring(e+1);else{var f=a.substring(e).search('"');if(-1==f)throw new cvox.SpeechRule.OutputError("Invalid string in expression: "+a);d+=a.substring(0,e+f+1);a=a.substring(e+f+1)}}d&&
+c.push(d);return c};cvox.SpeechRule.DynamicCstrAttrib={STYLE:"style"};cvox.SpeechRule.OutputError=function(a){this.name="RuleError";this.message=a||""};goog.inherits(cvox.SpeechRule.OutputError,Error);cvox.SpeechRuleFunctions=function(){};cvox.SpeechRuleFunctions.Store_=function(a,b){this.prefix_=a;this.store_=b};cvox.SpeechRuleFunctions.Store_.prototype.add=function(a,b){this.checkCustomFunctionSyntax_(a)&&(this.store_[a]=b)};cvox.SpeechRuleFunctions.Store_.prototype.lookup=function(a){return this.store_[a]};cvox.SpeechRuleFunctions.CustomQueries=function(){var a={};cvox.SpeechRuleFunctions.Store_.call(this,"CQF",a)};goog.inherits(cvox.SpeechRuleFunctions.CustomQueries,cvox.SpeechRuleFunctions.Store_);
+cvox.SpeechRuleFunctions.CustomStrings=function(){var a={};cvox.SpeechRuleFunctions.Store_.call(this,"CSF",a)};goog.inherits(cvox.SpeechRuleFunctions.CustomStrings,cvox.SpeechRuleFunctions.Store_);cvox.SpeechRuleFunctions.ContextFunctions=function(){var a={};cvox.SpeechRuleFunctions.Store_.call(this,"CTXF",a)};goog.inherits(cvox.SpeechRuleFunctions.ContextFunctions,cvox.SpeechRuleFunctions.Store_);
+cvox.SpeechRuleFunctions.Store_.prototype.checkCustomFunctionSyntax_=function(a){var b=RegExp("^"+this.prefix_);return a.match(b)?!0:(console.log("FunctionError: Invalid function name. Expected prefix"+this.prefix_),!1)};cvox.BaseRuleStore=function(){this.customQueries=new cvox.SpeechRuleFunctions.CustomQueries;this.customStrings=new cvox.SpeechRuleFunctions.CustomStrings;this.contextFunctions=new cvox.SpeechRuleFunctions.ContextFunctions;this.speechRules_=[];this.dynamicCstrAttribs=[cvox.SpeechRule.DynamicCstrAttrib.STYLE];this.defaultTtsProps=[]};
+cvox.BaseRuleStore.prototype.lookupRule=function(a,b){if(!a||a.nodeType!=Node.ELEMENT_NODE&&a.nodeType!=Node.TEXT_NODE)return null;var c=this.speechRules_.filter(goog.bind(function(c){return this.testDynamicConstraints(b,c)&&this.testPrecondition_(a,c)},this));return 0<c.length?this.pickMostConstraint_(b,c):null};
+cvox.BaseRuleStore.prototype.defineRule=function(a,b,c,d,e){try{var f=cvox.SpeechRule.Action.fromString(c),g=Array.prototype.slice.call(arguments,4),h=new cvox.SpeechRule.Precondition(d,g),g={};g[cvox.SpeechRule.DynamicCstrAttrib.STYLE]=b;var k=new cvox.SpeechRule(a,g,h,f)}catch(l){if("RuleError"==l.name)return console.log("Rule Error ",d,"("+b+"):",l.message),null;throw l;}this.addRule(k);return k};cvox.BaseRuleStore.prototype.addRule=function(a){this.speechRules_.unshift(a)};
+cvox.BaseRuleStore.prototype.deleteRule=function(a){a=this.speechRules_.indexOf(a);-1!=a&&this.speechRules_.splice(a,1)};cvox.BaseRuleStore.prototype.findRule=function(a){for(var b=0,c;c=this.speechRules_[b];b++)if(a(c))return c;return null};cvox.BaseRuleStore.prototype.findAllRules=function(a){return this.speechRules_.filter(a)};cvox.BaseRuleStore.prototype.evaluateDefault=function(a){return[new cvox.NavDescription({text:a.textContent})]};
+cvox.BaseRuleStore.prototype.removeDuplicates=function(a){for(var b=this.speechRules_.length-1,c;c=this.speechRules_[b];b--)c!=a&&cvox.BaseRuleStore.compareDynamicConstraints_(c.dynamicCstr,a.dynamicCstr)&&cvox.BaseRuleStore.comparePreconditions_(c,a)&&this.speechRules_.splice(b,1)};cvox.BaseRuleStore.prototype.applyCustomQuery=function(a,b){var c=this.customQueries.lookup(b);return c?c(a):null};
+cvox.BaseRuleStore.prototype.applySelector=function(a,b){var c=this.applyCustomQuery(a,b);return c||cvox.XpathUtil.evalXPath(b,a)};cvox.BaseRuleStore.prototype.applyQuery=function(a,b){var c=this.applySelector(a,b);return 0<c.length?c[0]:null};cvox.BaseRuleStore.prototype.applyConstraint=function(a,b){var c=this.applyQuery(a,b);return!!c||cvox.XpathUtil.evaluateBoolean(b,a)};
+cvox.BaseRuleStore.prototype.testDynamicConstraints=function(a,b){var c=Object.keys(a);return c.every(function(c){return a[c]==b.dynamicCstr[c]||"default"==b.dynamicCstr[c]})};cvox.BaseRuleStore.prototype.getDynamicConstraintValues=function(){for(var a={},b=0,c;c=this.speechRules_[b];b++)for(var d in c.dynamicCstr){var e=[c.dynamicCstr[d]];a[d]=a[d]?cvox.MathUtil.union(a[d],e):e}return a};
+cvox.BaseRuleStore.prototype.countMatchingDynamicConstraintValues_=function(a,b){for(var c=0,d=0,e;e=this.dynamicCstrAttribs[d];d++)if(a[e]==b.dynamicCstr[e])c++;else break;return c};cvox.BaseRuleStore.prototype.pickMostConstraint_=function(a,b){b.sort(goog.bind(function(b,d){var e=this.countMatchingDynamicConstraintValues_(a,b),f=this.countMatchingDynamicConstraintValues_(a,d);return e>f?-1:f>e?1:d.precondition.constraints.length-b.precondition.constraints.length},this));return b[0]};
+cvox.BaseRuleStore.prototype.testPrecondition_=function(a,b){var c=b.precondition;return this.applyQuery(a,c.query)===a&&c.constraints.every(goog.bind(function(b){return this.applyConstraint(a,b)},this))};cvox.BaseRuleStore.compareDynamicConstraints_=function(a,b){if(Object.keys(a).length!=Object.keys(b).length)return!1;for(var c in a)if(!b[c]||a[c]!==b[c])return!1;return!0};
+cvox.BaseRuleStore.compareStaticConstraints_=function(a,b){if(a.length!=b.length)return!1;for(var c=0,d;d=a[c];c++)if(-1==b.indexOf(d))return!1;return!0};cvox.BaseRuleStore.comparePreconditions_=function(a,b){var c=a.precondition,d=b.precondition;return c.query!=d.query?!1:cvox.BaseRuleStore.compareStaticConstraints_(c.constraints,d.constraints)};cvox.MathStore=function(){cvox.BaseRuleStore.call(this);this.dynamicCstrAttribs=[cvox.SpeechRule.DynamicCstrAttrib.DOMAIN,cvox.SpeechRule.DynamicCstrAttrib.STYLE];this.defaultTtsProps=[cvox.AbstractTts.PITCH,cvox.AbstractTts.RATE]};goog.inherits(cvox.MathStore,cvox.BaseRuleStore);cvox.SpeechRule.DynamicCstrAttrib.DOMAIN="domain";
+cvox.MathStore.prototype.defineRule=function(a,b,c,d,e){var f=this.parseDynamicConstraint(b),g=Array.prototype.slice.call(arguments,4),g=cvox.MathStore.superClass_.defineRule.apply(this,[a,f[cvox.SpeechRule.DynamicCstrAttrib.STYLE],c,d].concat(g));g.dynamicCstr=f;this.removeDuplicates(g);return g};
+cvox.MathStore.prototype.parseDynamicConstraint=function(a){var b=a.split(".");if(!b[0]||!b[1])throw new cvox.SpeechRule.OutputError("Invalid domain assignment:"+a);return cvox.MathStore.createDynamicConstraint(b[0],b[1])};cvox.MathStore.createDynamicConstraint=function(a,b){var c={};c[cvox.SpeechRule.DynamicCstrAttrib.DOMAIN]=a;c[cvox.SpeechRule.DynamicCstrAttrib.STYLE]=b;return c};
+cvox.MathStore.prototype.defineRuleAlias=function(a,b,c){var d=this.findRule(function(b){return b.name==a});if(!d)throw new cvox.SpeechRule.OutputError("Rule with named "+a+" does not exist.");this.addAlias_(d,b,Array.prototype.slice.call(arguments,2))};cvox.MathStore.prototype.addAlias_=function(a,b,c){b=new cvox.SpeechRule.Precondition(b,c);b=new cvox.SpeechRule(a.name,a.dynamicCstr,b,a.action);b.name=a.name;this.addRule(b)};cvox.MathStore.prototype.evaluateDefault=function(a){return this.evaluateString_(a.textContent)};
+cvox.MathStore.prototype.evaluateString_=function(a){var b=[];if(a.match(/^\s+$/))return b;a=cvox.MathStore.removeEmpty_(a.replace(/\s/g," ").split(" "));for(var c=0,d;d=a[c];c++)if(1==d.length)b.push(this.evaluate_(d));else if(d.match(/^[a-zA-Z]+$/))b.push(this.evaluate_(d));else for(;d;){var e=d.match(/^\d+/),f=d.match(/^[a-zA-Z]+/);e?(b.push(this.evaluate_(e[0])),d=d.substring(e[0].length)):f?(b.push(this.evaluate_(f[0])),d=d.substring(f[0].length)):(e=d[0],e=e.charCodeAt(0),55296<=e&&56319>=e&&
+1<d.length&&!isNaN(d.charCodeAt(1))?(b.push(this.evaluate_(d.slice(0,2))),d=d.substring(2)):(b.push(this.evaluate_(d[0])),d=d.substring(1)))}return b};cvox.MathStore.prototype.evaluate_=function(a){return cvox.ChromeVox.host.mathMap?cvox.ChromeVox.host.mathMap.evaluate(a,cvox.TraverseMath.getInstance().domain,cvox.TraverseMath.getInstance().style):new cvox.NavMathDescription({text:a,domain:cvox.TraverseMath.getInstance().domain,style:cvox.TraverseMath.getInstance().style})};
+cvox.MathStore.removeEmpty_=function(a){return a.filter(function(a){return a})};cvox.MathmlStore=function(){cvox.MathStore.call(this)};goog.inherits(cvox.MathmlStore,cvox.MathStore);goog.addSingletonGetter(cvox.MathmlStore);cvox.MathmlStore.prototype.defineDefaultMathmlRule=function(a,b){this.defineRule(a,"default.default",b,"self::mathml:"+a)};cvox.SpeechRuleEngine=function(){this.activeStore_=null;this.dynamicCstr={};this.dynamicCstr[cvox.SpeechRule.DynamicCstrAttrib.STYLE]="short"};goog.addSingletonGetter(cvox.SpeechRuleEngine);cvox.SpeechRuleEngine.prototype.parameterize=function(a){try{a.initialize()}catch(b){if("StoreError"==b.name)console.log("Store Error:",b.message);else throw b;}this.activeStore_=a};cvox.SpeechRuleEngine.prototype.setDynamicConstraint=function(a){a&&(this.dynamicCstr=a)};
+cvox.SpeechRuleEngine.prototype.constructString=function(a,b){if(!b)return"";if('"'==b.charAt(0))return b.slice(1,-1);var c=this.activeStore_.customStrings.lookup(b);return c?c(a):cvox.XpathUtil.evaluateString(b,a)};cvox.SpeechRuleEngine.prototype.evaluateNode=function(a){return a?this.evaluateTree_(a):[]};
+cvox.SpeechRuleEngine.prototype.evaluateTree_=function(a){var b=this.activeStore_.lookupRule(a,this.dynamicCstr);if(!b)return this.activeStore_.evaluateDefault(a);for(var b=b.action.components,c=[],d=0,e;e=b[d];d++){var f=[],g=e.content||"";switch(e.type){case cvox.SpeechRule.Type.NODE:(g=this.activeStore_.applyQuery(a,g))&&(f=this.evaluateTree_(g));break;case cvox.SpeechRule.Type.MULTI:g=this.activeStore_.applySelector(a,g);0<g.length&&(f=this.evaluateNodeList_(g,e.sepFunc,this.constructString(a,
+e.separator),e.ctxtFunc,this.constructString(a,e.context)));break;case cvox.SpeechRule.Type.TEXT:(g=this.constructString(a,g))&&(f=[new cvox.NavDescription({text:g})]);break;default:f=[new cvox.NavDescription({text:g})]}f[0]&&e.context&&e.type!=cvox.SpeechRule.Type.MULTI&&(f[0].context=this.constructString(a,e.context)+(f[0].context||""));c=c.concat(this.addPersonality_(f,e))}return c};
+cvox.SpeechRuleEngine.prototype.evaluateNodeList_=function(a,b,c,d,e){if(a==[])return[];var f=c||"",g=e||"";c=(c=this.activeStore_.contextFunctions.lookup(d))?c(a,g):function(){return g};b=(b=this.activeStore_.contextFunctions.lookup(b))?b(a,f):function(){return f};d=[];e=0;for(var h;h=a[e];e++)h=this.evaluateTree_(h),0<h.length&&(h[0].context=c()+(h[0].context||""),d=d.concat(h),e<a.length-1&&(h=b())&&d.push(new cvox.NavDescription({text:h})));return d};
+cvox.SpeechRuleEngine.propMap={pitch:cvox.AbstractTts.RELATIVE_PITCH,rate:cvox.AbstractTts.RELATIVE_RATE,volume:cvox.AbstractTts.RELATIVE_VOLUME,pause:cvox.AbstractTts.PAUSE};cvox.SpeechRuleEngine.prototype.addPersonality_=function(a,b){var c={},d;for(d in cvox.SpeechRuleEngine.propMap){var e=parseFloat(b[d]);isNaN(e)||(c[cvox.SpeechRuleEngine.propMap[d]]=e)}a.forEach(goog.bind(function(a){this.addRelativePersonality_(a,c);this.resetPersonality_(a)},this));return a};
+cvox.SpeechRuleEngine.prototype.addRelativePersonality_=function(a,b){if(!a.personality)return a.personality=b,a;var c=a.personality,d;for(d in b)c[d]=c[d]&&"number"==typeof c[d]?c[d]+b[d]:b[d];return a};cvox.SpeechRuleEngine.prototype.resetPersonality_=function(a){if(this.activeStore_.defaultTtsProps)for(var b=0,c;c=this.activeStore_.defaultTtsProps[b];b++)a.personality[c]=cvox.ChromeVox.tts.getDefaultProperty(c)};cvox.SpeechRuleEngine.debugMode=!1;
+cvox.SpeechRuleEngine.outputDebug=function(a){if(cvox.SpeechRuleEngine.debugMode){var b=Array.prototype.slice.call(arguments,0);console.log.apply(console,["Speech Rule Engine Debugger:"].concat(b))}};cvox.SpeechRuleEngine.prototype.toString=function(){var a=this.activeStore_.findAllRules(function(){return!0});return a.map(function(a){return a.toString()}).join("\n")};
+cvox.SpeechRuleEngine.debugSpeechRule=function(a,b){var c=cvox.SpeechRuleEngine.getInstance().activeStore_;if(c){var d=a.precondition;cvox.SpeechRuleEngine.outputDebug(d.query,c.applyQuery(b,d.query));d.constraints.forEach(function(a){cvox.SpeechRuleEngine.outputDebug(a,c.applyConstraint(b,a))})}};
+cvox.SpeechRuleEngine.debugNamedSpeechRule=function(a,b){for(var c=cvox.SpeechRuleEngine.getInstance().activeStore_,c=c.findAllRules(function(b){return b.name==a}),d=0,e;e=c[d];d++)cvox.SpeechRuleEngine.outputDebug("Rule",a,"number",d),cvox.SpeechRuleEngine.debugSpeechRule(e,b)};cvox.AbstractWalker=function(){};cvox.AbstractWalker.prototype.begin=function(a){a=a||{reversed:!1};return this.sync(cvox.CursorSelection.fromBody().setReversed(a.reversed))};cvox.AbstractWalker.prototype.hasAction=function(a){return"function"==typeof this[a]};cvox.AbstractWalker.prototype.performAction=function(a,b){return this.hasAction(a)?this[a](b):null};cvox.AbstractNodeWalker=function(){this.wasBegin_=!1};goog.inherits(cvox.AbstractNodeWalker,cvox.AbstractWalker);cvox.AbstractNodeWalker.prototype.next=function(a){var b=a.isReversed();a=a.end.node||document.body;do if(a=cvox.DomUtil.directedNextLeafLikeNode(a,b,goog.bind(this.stopNodeDescent,this)),!a)return null;while(a&&!cvox.DomUtil.hasContent(a));return cvox.CursorSelection.fromNode(a).setReversed(b)};
+cvox.AbstractNodeWalker.prototype.sync=function(a){a=this.privateSync_(a);this.wasBegin_=!1;return a};
+cvox.AbstractNodeWalker.prototype.privateSync_=function(a){var b=a.isReversed();if(a.equals(cvox.CursorSelection.fromBody())){if(this.wasBegin_)return cvox.CursorSelection.fromBody().setReversed(b);this.wasBegin_=!0}for(a=a.start.node;a!=document.body&&a.parentNode&&this.stopNodeDescent(a.parentNode);)a=a.parentNode;for(;!this.stopNodeDescent(a);)a=cvox.DomUtil.directedFirstChild(a,b);var c=cvox.CursorSelection.fromNode(a);cvox.DomUtil.hasContent(a)||(c=this.next(cvox.CursorSelection.fromNode(a).setReversed(b)));
+return c?c.setReversed(b):this.begin({reversed:b})};cvox.BareObjectWalker=function(){cvox.AbstractNodeWalker.call(this)};goog.inherits(cvox.BareObjectWalker,cvox.AbstractNodeWalker);cvox.BareObjectWalker.prototype.stopNodeDescent=function(a){return cvox.DomUtil.isLeafNode(a)};cvox.AuralStyleConverter={};cvox.AuralStyleUtil={};
+cvox.AuralProperty={VOLUME:"VOLUME",SPEAK:"SPEAK",PAUSE_BEFORE:"PAUSE_BEFORE",PAUSE_AFTER:"PAUSE_AFTER",PAUSE:"PAUSE",CUE_BEFORE:"CUE_BEFORE",CUE_AFTER:"CUE_AFTER",CUE:"CUE",PLAY_DURING:"PLAY_DURING",AZIMUTH:"AZIMUTH",ELEVATION:"ELEVATION",SPEECH_RATE:"SPEECH_RATE",VOICE_FAMILY:"VOICE_FAMILY",PITCH:"PITCH",PITCH_RANGE:"PITCH_RANGE",STRESS:"STRESS",RICHNESS:"RICHNESS",SPEAK_PUNCTUATION:"SPEAK_PUNCTUATION",SPEAK_NUMERIAL:"SPEAK_NUMERIAL",SPEAK_HEADER:"SPEAK_HEADER",NONE:"NONE"};
+cvox.AuralStyleConverter.identity=function(a){return a};cvox.AuralStyleConverter.propertyTable={VOLUME:"volume",SPEAK:"no-op",PAUSE_BEFORE:"no-op",PAUSE_AFTER:"no-op",PAUSE:"no-op",CUE_BEFORE:"no-op",CUE_AFTER:"no-op",CUE:"no-op",PLAY_DURING:"no-op",AZIMUTH:"no-op",ELEVATION:"no-op",SPEECH_RATE:"relativeRate",VOICE_FAMILY:"no-op",PITCH:"relativePitch",PITCH_RANGE:"no-op",STRESS:"no-op",RICHNESS:"no-op",SPEAK_PUNCTUATION:"no-op",SPEAK_NUMERIAL:"no-op",SPEAK_HEADER:"no-op",NONE:"no-op"};
+cvox.AuralStyleConverter.valueTable={VOLUME:cvox.AuralStyleConverter.identity,SPEAK:cvox.AuralStyleConverter.identity,PAUSE_BEFORE:cvox.AuralStyleConverter.identity,PAUSE_AFTER:cvox.AuralStyleConverter.identity,PAUSE:cvox.AuralStyleConverter.identity,CUE_BEFORE:cvox.AuralStyleConverter.identity,CUE_AFTER:cvox.AuralStyleConverter.identity,CUE:cvox.AuralStyleConverter.identity,PLAY_DURING:cvox.AuralStyleConverter.identity,AZIMUTH:cvox.AuralStyleConverter.identity,ELEVATION:cvox.AuralStyleConverter.identity,
+SPEECH_RATE:cvox.AuralStyleConverter.identity,VOICE_FAMILY:cvox.AuralStyleConverter.identity,PITCH:cvox.AuralStyleConverter.identity,PITCH_RANGE:cvox.AuralStyleConverter.identity,STRESS:cvox.AuralStyleConverter.identity,RICHNESS:cvox.AuralStyleConverter.identity,SPEAK_PUNCTUATION:cvox.AuralStyleConverter.identity,SPEAK_NUMERIAL:cvox.AuralStyleConverter.identity,SPEAK_HEADER:cvox.AuralStyleConverter.identity,NONE:cvox.AuralStyleConverter.identity};
+cvox.AuralStyleConverter.convertRule=function(a,b){return{property:cvox.AuralStyleConverter.propertyTable[a],value:cvox.AuralStyleConverter.valueTable[a](b)}};cvox.AuralStyleConverter.convertStyle=function(a){var b={},c;for(c in a){var d=cvox.AuralStyleConverter.convertRule(c,a[c]);b[d.property]=d.value}return b};cvox.AuralStyleUtil.getStyleForNode=function(a){return(a=cvox.AuralStyleUtil.defaultStyles[a.tagName])?cvox.AuralStyleConverter.convertStyle(a):null};
+cvox.AuralStyleUtil.defaultStyles={ARTICLE:{PITCH:-0.1},ASIDE:{PITCH:-0.1},FOOTER:{PITCH:-0.1},H1:{PITCH:-0.3},H2:{PITCH:-0.25},H3:{PITCH:-0.2},H4:{PITCH:-0.15},H5:{PITCH:-0.1},H6:{PITCH:-0.05},HEADER:{PITCH:-0.1},HGROUP:{PITCH:-0.1},MARK:{PITCH:-0.1},NAV:{PITCH:-0.1},SECTION:{PITCH:-0.1},TIME:{PITCH:-0.1}};cvox.EarconUtil={};
+cvox.EarconUtil.getEarcon=function(a){var b=cvox.AriaUtil.getEarcon(a);if(null!=b)return b;switch(a.tagName){case "BUTTON":return cvox.AbstractEarcons.BUTTON;case "A":if(a.hasAttribute("href"))return cvox.AbstractEarcons.LINK;break;case "IMG":if(cvox.DomUtil.hasLongDesc(a))return cvox.AbstractEarcons.LONG_DESC;break;case "LI":return cvox.AbstractEarcons.LIST_ITEM;case "SELECT":return cvox.AbstractEarcons.LISTBOX;case "TEXTAREA":return cvox.AbstractEarcons.EDITABLE_TEXT;case "INPUT":switch(a.type){case "button":case "submit":case "reset":return cvox.AbstractEarcons.BUTTON;case "checkbox":case "radio":return a.checked?
+cvox.AbstractEarcons.CHECK_ON:cvox.AbstractEarcons.CHECK_OFF;default:if(cvox.DomUtil.isInputTypeText(a))return cvox.AbstractEarcons.EDITABLE_TEXT}}return null};cvox.DescriptionUtil={};cvox.DescriptionUtil.COLLECTION_NODE_TYPE={H1:!0,H2:!0,H3:!0,H4:!0,H5:!0,H6:!0};
+cvox.DescriptionUtil.getControlDescription=function(a,b){var c=[a];if(b&&0<b.length)c=b;else{var d=cvox.DomUtil.getSurroundingControl(a);d&&(c=[d,a])}c=cvox.DescriptionUtil.getDescriptionFromAncestors(c,!0,cvox.VERBOSITY_VERBOSE);if(d){var e=cvox.DomUtil.getName(d);0==e.length&&(e=cvox.DomUtil.getControlLabelHeuristics(d),0<e.length&&(c.context=e+" "+c.context))}else e=cvox.DomUtil.getName(a),0==e.length&&(e=cvox.DomUtil.getControlLabelHeuristics(a),0<e.length&&(c.text=cvox.DomUtil.collapseWhitespace(e))),
+d=cvox.DomUtil.getValue(a),0<d.length&&(c.userValue=cvox.DomUtil.collapseWhitespace(d));return c};
+cvox.DescriptionUtil.getDescriptionFromAncestors=function(a,b,c){"undefined"===typeof b&&(b=!0);var d=a.length,e="",f="",g="",h="",k=[],l=null;0<d&&(f=cvox.DomUtil.getName(a[d-1],b),g=cvox.DomUtil.getValue(a[d-1]));for(b=d-1;0<=b;b--){var m=a[b],p=m.getAttribute?m.getAttribute("role"):null;if("dialog"!=p&&"alertdialog"!=p){p=cvox.DomUtil.getRole(m,c);l||(l=cvox.AuralStyleUtil.getStyleForNode(m));if(b<d-1&&m.hasAttribute("role")){var q=cvox.DomUtil.getName(m,!1);q&&(p=q+" "+p)}0<p.length&&(0<e.length||
+0<h.length&&1<m.childElementCount?e=p+" "+cvox.DomUtil.getState(m,!1)+" "+e:h=0<h.length?h+(" "+p+" "+cvox.DomUtil.getState(m,!0)):p+" "+cvox.DomUtil.getState(m,!0));m=cvox.EarconUtil.getEarcon(m);null!=m&&-1==k.indexOf(m)&&k.push(m)}}return new cvox.NavDescription({context:cvox.DomUtil.collapseWhitespace(e),text:cvox.DomUtil.collapseWhitespace(f),userValue:cvox.DomUtil.collapseWhitespace(g),annotation:cvox.DomUtil.collapseWhitespace(h),earcons:k,personality:l})};
+cvox.DescriptionUtil.getDescriptionFromNavigation=function(a,b,c,d){if(!a||!b)return[];if(cvox.DomUtil.isMath(b)&&!cvox.AriaUtil.isMath(b))return cvox.DescriptionUtil.getMathDescription(b);if(cvox.DescriptionUtil.COLLECTION_NODE_TYPE[b.tagName])return cvox.DescriptionUtil.getCollectionDescription(cvox.CursorSelection.fromNode(a),cvox.CursorSelection.fromNode(b));var e=cvox.DomUtil.getUniqueAncestors(a,b,!0),e=cvox.DescriptionUtil.getDescriptionFromAncestors(e,c,d);a=cvox.DomUtil.getUniqueAncestors(b,
+a);cvox.DescriptionUtil.shouldDescribeExit_(a)&&(c=cvox.DescriptionUtil.getDescriptionFromAncestors(a,c,d),c.context&&!e.context&&(e.context=cvox.ChromeVox.msgs.getMsg("exited_container",[c.context])));return[e]};cvox.DescriptionUtil.getCollectionDescription=function(a,b){var c=cvox.DescriptionUtil.getRawDescriptions_(a,b);cvox.DescriptionUtil.insertCollectionDescription_(c);return c};cvox.DescriptionUtil.subWalker_=new cvox.BareObjectWalker;
+cvox.DescriptionUtil.getRawDescriptions_=function(a,b){var c=[];b=b.clone().setReversed(!1);var d=cvox.DescriptionUtil.subWalker_.sync(b).start.node,e=a.end.node,f=cvox.CursorSelection.fromNode(d);if(!f)return[];for(;cvox.DomUtil.isDescendantOfNode(d,b.start.node);){e=cvox.DomUtil.getUniqueAncestors(e,d);cvox.DomUtil.isMath(d)&&!cvox.AriaUtil.isMath(d)?c=c.concat(cvox.DescriptionUtil.getMathDescription(d)):(e=cvox.DescriptionUtil.getDescriptionFromAncestors(e,!0,cvox.ChromeVox.verbosity),c.push(e));
+f=cvox.DescriptionUtil.subWalker_.next(f);if(!f)break;e=d;d=f.start.node}return c};
+cvox.DescriptionUtil.getFullDescriptionsFromChildren=function(a,b){var c=[];if(!b)return c;var d;if(cvox.DomUtil.isLeafNode(b))return a?d=cvox.DomUtil.getUniqueAncestors(a,b):(d=[],d.push(b)),d=cvox.DescriptionUtil.getDescriptionFromAncestors(d,!0,cvox.ChromeVox.verbosity),c.push(d),c;d=b;var e=cvox.CursorSelection.fromNode(b);if(!e)return c;b=cvox.DescriptionUtil.subWalker_.sync(e).start.node;e=cvox.CursorSelection.fromNode(b);if(!e)return c;for(;cvox.DomUtil.isDescendantOfNode(b,d);){c=c.concat(cvox.DescriptionUtil.getFullDescriptionsFromChildren(a,
+b));e=cvox.DescriptionUtil.subWalker_.next(e);if(!e)break;a=b;b=e.start.node}return c};
+cvox.DescriptionUtil.insertCollectionDescription_=function(a){var b=cvox.DescriptionUtil.getAnnotations_(a);if(3<=a.length&&0==a[0].context.length&&1==b.length&&0<b[0].length&&cvox.DescriptionUtil.isAnnotationCollection_(b[0])){var b=b[0],c=a[0].context;a[0].context="";for(var d=0;d<a.length;d++)a[d].annotation="";a.splice(0,0,new cvox.NavDescription({context:c,text:"",annotation:cvox.ChromeVox.msgs.getMsg("collection",[b,cvox.ChromeVox.msgs.getNumber(a.length)])}))}};
+cvox.DescriptionUtil.getAnnotations_=function(a){for(var b=[],c=0;c<a.length;++c){var d=a[c];if(-1==b.indexOf(d.annotation)){var e=cvox.ChromeVox.msgs.getMsg("tag_link");-1!=d.annotation.toLowerCase().indexOf(e.toLowerCase())?-1==b.indexOf(e)&&b.push(e):b.push(d.annotation)}}return b};cvox.DescriptionUtil.isAnnotationCollection_=function(a){return a==cvox.ChromeVox.msgs.getMsg("tag_link")};cvox.DescriptionUtil.shouldDescribeExit_=function(a){return a.some(function(a){switch(a.tagName){case "TABLE":case "MATH":return!0}return cvox.AriaUtil.isLandmark(a)})};
+cvox.DescriptionUtil.getMathDescription=function(a){var b=cvox.SpeechRuleEngine.getInstance(),c=cvox.TraverseMath.getInstance();b.parameterize(cvox.MathmlStore.getInstance());c.initialize(a);a=b.evaluateNode(c.activeNode);if(a==[])return[new cvox.NavDescription({text:"empty math"})];cvox.ChromeVox.verbosity==cvox.VERBOSITY_VERBOSE&&(a[a.length-1].annotation="math");a[0].pushEarcon(cvox.AbstractEarcons.SPECIAL_CONTENT);return a};cvox.FindUtil={};cvox.FindUtil.objectWalker_=new cvox.BareObjectWalker;cvox.FindUtil.findNext=function(a,b,c){var d=a.isReversed();a=(new cvox.CursorSelection(a.absStart(),a.absStart())).setReversed(d);var e;if(e=b(cvox.DomUtil.getAncestors(a.start.node)))if(a=cvox.CursorSelection.fromNode(e).setReversed(d),c)return a;for(;a;){a=cvox.FindUtil.objectWalker_.next(a);c=null;if(!a||(c=b(cvox.DomUtil.getAncestors(a.start.node))))return c?cvox.CursorSelection.fromNode(c):null;if("IFRAME"==a.start.node.tagName)return a}return null};cvox.Interframe=function(){};cvox.Interframe.IF_MSG_PREFIX="cvox.INTERFRAME:";cvox.Interframe.SET_ID="cvox.INTERFRAME_SET_ID";cvox.Interframe.listeners=[];cvox.Interframe.allowAccessToIframeContentWindow=!0;
+cvox.Interframe.init=function(){cvox.Interframe.messageListener=function(a){if("string"===typeof a.data&&0==a.data.indexOf(cvox.Interframe.IF_MSG_PREFIX)){a=a.data.substr(cvox.Interframe.IF_MSG_PREFIX.length);a=cvox.ChromeVoxJSON.parse(a);a.command==cvox.Interframe.SET_ID&&(cvox.Interframe.id=a.id);for(var b=0,c;c=cvox.Interframe.listeners[b];b++)c(a)}return!1};window.addEventListener("message",cvox.Interframe.messageListener,!0)};
+cvox.Interframe.shutdown=function(){window.removeEventListener("message",cvox.Interframe.messageListener,!0)};cvox.Interframe.addListener=function(a){cvox.Interframe.listeners.push(a)};cvox.Interframe.sendMessageToWindow=function(a,b){var c=cvox.Interframe.IF_MSG_PREFIX+cvox.ChromeVoxJSON.stringify(a,null,null);b.postMessage(c,"*")};
+cvox.Interframe.sendMessageToIFrame=function(a,b){if(cvox.Interframe.allowAccessToIframeContentWindow&&b.contentWindow)cvox.Interframe.sendMessageToWindow(a,b.contentWindow);else{var c=cvox.Interframe.IF_MSG_PREFIX+cvox.ChromeVoxJSON.stringify(a,null,null),d=document.createElement("script");d.type="text/javascript";if(b.hasAttribute("id")&&document.getElementById(b.id)==b)d.innerHTML="document.getElementById(decodeURI('"+encodeURI(b.id)+"')).contentWindow.postMessage(decodeURI('"+encodeURI(c)+"'), '*');";
+else{var e="cvox_iframe"+a.id;""===b.className?b.className=e:-1==b.className.indexOf(e)&&(b.className+=" "+e);d.innerHTML="document.getElementsByClassName(decodeURI('"+encodeURI(e)+"'))[0].contentWindow.postMessage(decodeURI('"+encodeURI(c)+"'), '*');"}document.head.appendChild(d);window.setTimeout(function(){document.head.removeChild(d)},1E3)}};
+cvox.Interframe.sendMessageToParentWindow=function(a){cvox.Interframe.isIframe()&&(a.sourceId=cvox.Interframe.id,window.parent?cvox.Interframe.sendMessageToWindow(a,window.parent):(a=cvox.Interframe.IF_MSG_PREFIX+cvox.ChromeVoxJSON.stringify(a,null,null),window.location.href="javascript:window.parent.postMessage('"+encodeURI(a)+"', '*');"))};cvox.Interframe.sendIdToIFrame=function(a,b){var c={command:cvox.Interframe.SET_ID,id:a};cvox.Interframe.sendMessageToIFrame(c,b)};
+cvox.Interframe.isIframe=function(){return window!=window.parent};cvox.Interframe.init();cvox.PageSelection=function(a){this.sel_=a.clone();this.sel_.select();this.wasBegin_=!0};
+cvox.PageSelection.prototype.getDescription=function(a,b,c){var d=[];this.sel_.isReversed()!=c.isReversed()?(d=a.getDescription(c,b),d[0].annotation=cvox.ChromeVox.msgs.getMsg("describe_unselected"),d[0].pushEarcon(cvox.AbstractEarcons.SELECTION_REVERSE)):(d=a.getDescription(b,c),d[0].annotation=cvox.ChromeVox.msgs.getMsg("describe_selected"),d[0].pushEarcon(cvox.AbstractEarcons.SELECTION),!this.wasBegin_&&this.sel_.absEquals(c.clone().normalize())&&(a=a.getDescription(c,b),a[0].annotation=cvox.ChromeVox.msgs.getMsg("describe_unselected"),
+a[0].pushEarcon(cvox.AbstractEarcons.SELECTION_REVERSE),a[0].pushEarcon(cvox.AbstractEarcons.WRAP),d=a.concat(d)));return d};cvox.PageSelection.prototype.getFullDescription=function(){return[new cvox.NavDescription({text:window.getSelection().toString(),context:cvox.ChromeVox.msgs.getMsg("selection_is")})]};
+cvox.PageSelection.prototype.extend=function(a){this.sel_.directedBefore(a)?this.sel_.end=this.sel_.isReversed()==a.isReversed()?a.end.clone():a.start.clone():this.sel_=a.clone();this.sel_.select();this.wasBegin_=!1;return!this.sel_.absEquals(a)};cvox.BrailleUtil={};cvox.BrailleUtil.ITEM_SEPARATOR=" ";cvox.BrailleUtil.CONTAINER="tag_h1_brl tag_h2_brl tag_h3_brl tag_h4_brl tag_h5_brl tag_h6_brl".split(" ");
+cvox.BrailleUtil.TEMPLATE={base:"c n v r s",aria_role_button:"[n]",aria_role_textbox:"n: v r",input_type_button:"[n]",input_type_checkbox:"n (s)",input_type_email:"n: v r",input_type_number:"n: v r",input_type_password:"n: v r",input_type_search:"n: v r",input_type_submit:"[n]",input_type_text:"n: v r",input_type_tel:"n: v r",input_type_url:"n: v r",tag_button:"[n]",tag_textarea:"n: v r"};cvox.BrailleUtil.ValueSpan=function(a){this.offset=a};cvox.BrailleUtil.ValueSelectionSpan=function(){};
+cvox.BrailleUtil.getName=function(a){return a?cvox.DomUtil.getName(a).trim():""};cvox.BrailleUtil.getRoleMsg=function(a){if(!a)return"";(a=cvox.DomUtil.getRoleMsg(a,cvox.VERBOSITY_VERBOSE))&&(a=cvox.DomUtil.collapseWhitespace(a));a&&0<a.length&&cvox.ChromeVox.msgs.getMsg(a+"_brl")&&(a+="_brl");return a};cvox.BrailleUtil.getRole=function(a){return a?(a=cvox.BrailleUtil.getRoleMsg(a))?cvox.ChromeVox.msgs.getMsg(a):"":""};
+cvox.BrailleUtil.getState=function(a){return a?cvox.NodeStateUtil.expand(cvox.DomUtil.getStateMsgs(a,!0).map(function(a){cvox.ChromeVox.msgs.getMsg(a[0]+"_brl")&&(a[0]+="_brl");return a})):""};cvox.BrailleUtil.getContainer=function(a,b){if(!a||!b)return"";for(var c=cvox.DomUtil.getUniqueAncestors(a,b),d=0,e;e=c[d];d++)if((e=cvox.BrailleUtil.getRoleMsg(e))&&-1!=cvox.BrailleUtil.CONTAINER.indexOf(e))return cvox.ChromeVox.msgs.getMsg(e);return""};
+cvox.BrailleUtil.getValue=function(a){if(!a)return new cvox.Spannable;var b=new cvox.BrailleUtil.ValueSpan(0);if(cvox.DomUtil.isInputTypeText(a)){var c=a.value;"password"===a.type&&(c=c.replace(/./g,"*"));b=new cvox.Spannable(c,b);a===document.activeElement&&b.setSpan(new cvox.BrailleUtil.ValueSelectionSpan,a.selectionStart,a.selectionEnd);return b}if(a instanceof HTMLTextAreaElement){var d=new cvox.EditableTextAreaShadow;d.update(a);var e=d.getLineIndex(a.selectionEnd),c=d.getLineStart(e),d=d.getLineEnd(e),
+d=a.value.substring(c,d);b.offset=c;b=new cvox.Spannable(d,b);a===document.activeElement&&(d=Math.max(a.selectionStart-c,0),a=Math.min(a.selectionEnd-c,b.getLength()),b.setSpan(new cvox.BrailleUtil.ValueSelectionSpan,d,a));return b}return new cvox.Spannable(cvox.DomUtil.getValue(a),b)};
+cvox.BrailleUtil.getTemplated=function(a,b,c){c=c?c:{};for(var d=c.roleMsg||(b?cvox.DomUtil.getRoleMsg(b,cvox.VERBOSITY_VERBOSE):""),d=cvox.BrailleUtil.TEMPLATE[d]||cvox.BrailleUtil.TEMPLATE.base,e=new cvox.Spannable,f=function(d){switch(d){case "n":return c.name||cvox.BrailleUtil.getName(b);case "r":return c.role||cvox.BrailleUtil.getRole(b);case "s":return c.state||cvox.BrailleUtil.getState(b);case "c":return c.container||cvox.BrailleUtil.getContainer(a,b);case "v":return c.value?new cvox.Spannable(c.value,
+new cvox.BrailleUtil.ValueSpan(0)):cvox.BrailleUtil.getValue(b);default:return d}},g=0;g<d.length;g++){var h=f(d[g]);e.append(h);h.toString()||" "!=d[g+1]||g++}return e.trim()};cvox.MathmlStoreUtil={};cvox.MathmlStoreUtil.matchMathjaxToMathml=function(a){var b=cvox.TraverseMath.getInstance().activeMathmlHost;return b.querySelector("#"+a.id)};cvox.MathmlStoreUtil.retrieveMathjaxExtender=function(a){return(a=cvox.MathmlStoreUtil.matchMathjaxToMathml(a))?[a]:[]};cvox.MathmlStoreUtil.retrieveMathjaxLeaf=function(a){return(a=cvox.MathmlStoreUtil.matchMathjaxToMathml(a))?[a]:[]};
+cvox.MathmlStoreUtil.checkMathjaxTag=function(a,b){var c=cvox.MathmlStoreUtil.matchMathjaxToMathml(a);return c&&c.tagName.toUpperCase()==b?[c]:[]};cvox.MathmlStoreUtil.checkMathjaxMunder=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MUNDER")};cvox.MathmlStoreUtil.checkMathjaxMover=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MOVER")};cvox.MathmlStoreUtil.checkMathjaxMsub=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MSUB")};
+cvox.MathmlStoreUtil.checkMathjaxMsup=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MSUP")};cvox.MathmlStoreUtil.nextSeparatorFunction=function(a){if(a){if(a.match(/^\s+$/))return null;var b=a.replace(/\s/g,"").split("").filter(function(a){return a})}else b=[","];return function(){return 1<b.length?b.shift():b[0]}};cvox.MathmlStoreUtil.mfencedSeparators=function(a,b){var c=cvox.MathmlStoreUtil.nextSeparatorFunction(b);return function(){return c?c():""}};
+cvox.MathmlStoreUtil.contentIterator=function(a,b){var c=0<a.length?cvox.XpathUtil.evalXPath("../../content/*",a[0]):[];return function(){var a=c.shift();return b+(a?a.textContent:"")}};cvox.StoreUtil={};cvox.StoreUtil.nodeCounter=function(a,b){var c=a.length,d=0,e=b;b||(e="");return function(){d<c&&(d+=1);return e+" "+d}};cvox.MathmlStoreRules=function(){cvox.MathmlStoreRules.initCustomFunctions_();cvox.MathmlStoreRules.initDefaultRules_();cvox.MathmlStoreRules.initMathjaxRules_();cvox.MathmlStoreRules.initAliases_();cvox.MathmlStoreRules.initSpecializationRules_();cvox.MathmlStoreRules.initSemanticRules_()};goog.addSingletonGetter(cvox.MathmlStoreRules);cvox.MathmlStoreRules.mathStore=cvox.MathmlStore.getInstance();cvox.MathmlStoreRules.mathStore.initialize=cvox.MathmlStoreRules.getInstance;
+cvox.MathmlStoreRules.defineDefaultMathmlRule_=goog.bind(cvox.MathmlStoreRules.mathStore.defineDefaultMathmlRule,cvox.MathmlStoreRules.mathStore);cvox.MathmlStoreRules.defineRule_=goog.bind(cvox.MathmlStoreRules.mathStore.defineRule,cvox.MathmlStoreRules.mathStore);cvox.MathmlStoreRules.defineRuleAlias_=goog.bind(cvox.MathmlStoreRules.mathStore.defineRuleAlias,cvox.MathmlStoreRules.mathStore);
+cvox.MathmlStoreRules.addContextFunction_=goog.bind(cvox.MathmlStoreRules.mathStore.contextFunctions.add,cvox.MathmlStoreRules.mathStore.contextFunctions);cvox.MathmlStoreRules.addCustomQuery_=goog.bind(cvox.MathmlStoreRules.mathStore.customQueries.add,cvox.MathmlStoreRules.mathStore.customQueries);
+cvox.MathmlStoreRules.initCustomFunctions_=function(){(0,cvox.MathmlStoreRules.addContextFunction_)("CTXFnodeCounter",cvox.StoreUtil.nodeCounter);(0,cvox.MathmlStoreRules.addContextFunction_)("CTXFmfSeparators",cvox.MathmlStoreUtil.mfencedSeparators);(0,cvox.MathmlStoreRules.addContextFunction_)("CTXFcontentIterator",cvox.MathmlStoreUtil.contentIterator);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFextender",cvox.MathmlStoreUtil.retrieveMathjaxExtender);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmunder",
+cvox.MathmlStoreUtil.checkMathjaxMunder);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmover",cvox.MathmlStoreUtil.checkMathjaxMover);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmsub",cvox.MathmlStoreUtil.checkMathjaxMsub);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmsup",cvox.MathmlStoreUtil.checkMathjaxMsup);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFlookupleaf",cvox.MathmlStoreUtil.retrieveMathjaxLeaf)};
+cvox.MathmlStoreRules.initDefaultRules_=function(){(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("math","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mspace","[p] (pause:250)");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mstyle","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mpadded","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("merror","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mphantom","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mtext",
+"[t] text(); [p] (pause:200)");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mi","[n] text()");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mo","[n] text() (rate:-0.1)");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mn","[n] text()");(0,cvox.MathmlStoreRules.defineRule_)("mtext-variant","default.default",'[t] "begin"; [t] @mathvariant (pause:150);[t] text() (pause:150); [t] "end"; [t] @mathvariant (pause:200)',"self::mathml:mtext","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineRule_)("mi-variant",
+"default.default","[t] @mathvariant; [n] text()","self::mathml:mi","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mi-variant","self::mathml:mn","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineRule_)("mo-variant","default.default","[t] @mathvariant; [n] text() (rate:-0.1)","self::mathml:mo","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("ms",'[t] "string" (pitch:0.5, rate:0.5); [t] text()');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msup",
+'[n] ./*[1]; [t] "super";[n] ./*[2] (pitch:0.35); [p] (pause:300)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msubsup",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "super"; [n] ./*[3] (pitch:0.35); [p] (pause:300)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msub",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:300)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mover",'[n] ./*[2] (pitch:0.35); [p] (pause:200); [t] "over"; [n] ./*[1]; [p] (pause:400)');
+(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("munder",'[n] ./*[2] (pitch:-0.35); [t] "under"; [n] ./*[1]; [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("munderover",'[n] ./*[2] (pitch:-0.35); [t] "under and"; [n] ./*[3] (pitch:0.35); [t] "over"; [n] ./*[1]; [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mrow","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msqrt",'[t] "Square root of"; [m] ./* (rate:0.2); [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mroot",
+'[t] "root of order"; [n] ./*[2]; [t] "of";[n] ./*[1] (rate:0.2); [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mfrac",' [p] (pause:400); [n] ./*[1] (pitch:0.3); [t] "divided by"; [n] ./*[2] (pitch:-0.3); [p] (pause:400)');(0,cvox.MathmlStoreRules.defineRule_)("mfenced-single","default.default",'[t] @open (context:"opening"); [m] ./* (separator:@separators);[t] @close (context:"closing")',"self::mathml:mfenced","string-length(string(@separators))=1");(0,cvox.MathmlStoreRules.defineRule_)("mfenced-empty",
+"default.default",'[t] @open (context:"opening"); [m] ./*;[t] @close (context:"closing")',"self::mathml:mfenced","string-length(string(@separators))=1",'string(@separators)=" "');(0,cvox.MathmlStoreRules.defineRule_)("mfenced-comma","default.default",'[t] @open (context:"opening"); [m] ./* (separator:"comma");[t] @close (context:"closing")',"self::mathml:mfenced");(0,cvox.MathmlStoreRules.defineRule_)("mfenced-multi","default.default",'[t] @open (context:"opening"); [m] ./* (sepFunc:CTXFmfSeparators,separator:@separators); [t] @close (context:"closing")',
+"self::mathml:mfenced","string-length(string(@separators))>1");(0,cvox.MathmlStoreRules.defineRule_)("mtable","default.default",'[t] "matrix"; [m] ./* (ctxtFunc:CTXFnodeCounter,context:"row",pause:100)',"self::mathml:mtable");(0,cvox.MathmlStoreRules.defineRule_)("mtr","default.default",'[m] ./* (ctxtFunc:CTXFnodeCounter,context:"column",pause:100)',"self::mathml:mtr");(0,cvox.MathmlStoreRules.defineRule_)("mtd","default.default","[m] ./*","self::mathml:mtd");(0,cvox.MathmlStoreRules.defineRule_)("mtable",
+"default.superbrief",'[t] count(child::mathml:mtr); [t] "by";[t] count(child::mathml:mtr[1]/mathml:mtd); [t] "matrix";',"self::mathml:mtable");(0,cvox.MathmlStoreRules.defineRule_)("mtable","default.short",'[t] "matrix"; [m] ./*',"self::mathml:mtable");(0,cvox.MathmlStoreRules.defineRule_)("mtr","default.short","[m] ./*","self::mathml:mtr");(0,cvox.MathmlStoreRules.defineRule_)("mtd","default.short",'[t] "Element"; [t] count(./preceding-sibling::mathml:mtd)+1;[t] count(./parent::mathml:mtr/preceding-sibling::mathml:mtr)+1;[p] (pause:500); [m] ./*',
+"self::mathml:mtd");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-4","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);',"self::mathml:mmultiscripts");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-1","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);',
+"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-2","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);',"self::mathml:mmultiscripts","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-3",
+"default.default",'[n] ./*[1]; [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);',"self::mathml:mmultiscripts","./mathml:none=./*[5]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-4","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);',
+"self::mathml:mmultiscripts","./mathml:none=./*[6]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-2-1","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:300);',"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-1-1","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:300);',
+"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]","./mathml:none=./*[5]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-1-2","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);',"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]","./mathml:none=./*[6]")};
+cvox.MathmlStoreRules.initMathjaxRules_=function(){(0,cvox.MathmlStoreRules.defineRule_)("mj-math","default.default","[n] ./*[1]/*[1]/*[1]",'self::span[@class="math"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-leaf","default.default","[n] CQFlookupleaf",'self::span[@class="mi"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mo"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mn"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mtext"]');
+(0,cvox.MathmlStoreRules.defineRule_)("mj-mo-ext","default.default","[n] CQFextender",'self::span[@class="mo"]',"./*[1]/*[1]/text()","./*[1]/*[2]/text()");(0,cvox.MathmlStoreRules.defineRule_)("mj-texatom","default.default","[n] ./*[1]",'self::span[@class="texatom"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-msubsup","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub"; [n] ./*[1]/*[3]/*[1] (pitch:-0.35);[p] (pause:200); [t] "super"; [n] ./*[1]/*[2]/*[1] (pitch:0.35);[p] (pause:300)','self::span[@class="msubsup"]');
+(0,cvox.MathmlStoreRules.defineRule_)("mj-msub","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub";[n] ./*[1]/*[2]/*[1] (pitch:-0.35); [p] (pause:300)','self::span[@class="msub"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-msup","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "super";[n] ./*[1]/*[2]/*[1] (pitch:0.35); [p] (pause:300)','self::span[@class="msup"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-munderover","default.default",'[n] ./*[1]/*[2]/*[1] (pitch:0.35); [t] "under and";[n] ./*[1]/*[3]/*[1] (pitch:-0.35); [t] "over";[n] ./*[1]/*[1]/*[1]; [p] (pause:400)',
+'self::span[@class="munderover"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-munder","default.default",'[n] ./*[1]/*[2]/*[1] (pitch:0.35); [t] "under";[n] ./*[1]/*[1]/*[1]; [p] (pause:400)','self::span[@class="munder"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mover","default.default",'[n] ./*[1]/*[2]/*[1] (pitch:0.35); [t] "over";[n] ./*[1]/*[1]/*[1]; [p] (pause:400)','self::span[@class="mover"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mfrac","default.default",'[p] (pause:250); [n] ./*[1]/*[1]/*[1] (pitch:0.3); [p] (pause:250); [t] "divided by"; [n] ./*[1]/*[2]/*[1] (pitch:-0.3);[p] (pause:400)',
+'self::span[@class="mfrac"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-msqrt","default.default",'[t] "Square root of";[n] ./*[1]/*[1]/*[1] (rate:0.2); [p] (pause:400)','self::span[@class="msqrt"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mroot","default.default",'[t] "root of order"; [n] ./*[1]/*[4]/*[1]; [t] "of";[n] ./*[1]/*[1]/*[1] (rate:0.2); [p] (pause:400)','self::span[@class="mroot"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mfenced","default.default",'[t] "opening"; [n] ./*[1]; [m] ./*[position()>1 and position()<last()]; [t] "closing"; [n] ./*[last()]',
+'self::span[@class="mfenced"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mtable"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mmultiscripts"]')};
+cvox.MathmlStoreRules.initAliases_=function(){(0,cvox.MathmlStoreRules.defineRuleAlias_)("mspace",'self::span[@class="mspace"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mstyle",'self::span[@class="mstyle"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mpadded",'self::span[@class="mpadded"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("merror",'self::span[@class="merror"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mphantom",'self::span[@class="mphantom"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("ms",
+'self::span[@class="ms"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mrow",'self::span[@class="mrow"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-msub",'self::span[@class="msubsup"]',"CQFmathmlmsub");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-msup",'self::span[@class="msubsup"]',"CQFmathmlmsup");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-munder",'self::span[@class="munderover"]',"CQFmathmlmunder");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-mover",'self::span[@class="munderover"]',
+"CQFmathmlmover")};
+cvox.MathmlStoreRules.initSpecializationRules_=function(){(0,cvox.MathmlStoreRules.defineRule_)("square","default.default",'[n] ./*[1]; [t] "square" (pitch:0.35); [p] (pause:300)',"self::mathml:msup","./*[2][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("square","self::mathml:msup","./mathml:mrow=./*[2]","count(./*[2]/*)=1","./*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRule_)("cube","default.default",'[n] ./*[1]; [t] "cube" (pitch:0.35); [p] (pause:300)',"self::mathml:msup","./*[2][text()=3]");
+(0,cvox.MathmlStoreRules.defineRuleAlias_)("cube","self::mathml:msup","./mathml:mrow=./*[2]","count(./*[2]/*)=1","./*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRule_)("square-sub","default.default",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35);[p] (pause:300); [t] "square" (pitch:0.35); [p] (pause:400)',"self::mathml:msubsup","./*[3][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("square-sub","self::mathml:msubsup","./mathml:mrow=./*[3]","count(./*[3]/*)=1","./*[3]/*[1][text()=2]");
+(0,cvox.MathmlStoreRules.defineRule_)("cube-sub","default.default",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35);[p] (pause:300); [t] "cube" (pitch:0.35); [p] (pause:400)',"self::mathml:msubsup","./*[3][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("cube-sub","self::mathml:msubsup","./mathml:mrow=./*[3]","count(./*[3]/*)=1","./*[3]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRule_)("mj-square","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "square" (pitch:0.35); [p] (pause:300)','self::span[@class="msup"]',
+"./*[1]/*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square",'self::span[@class="msup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square",'self::span[@class="msubsup"]',"CQFmathmlmsup","./*[1]/*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square",'self::span[@class="msubsup"]',"CQFmathmlmsup",'./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',
+"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRule_)("mj-cube","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "cube" (pitch:0.35); [p] (pause:300)','self::span[@class="msup"]',"./*[1]/*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube",'self::span[@class="msup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube",
+'self::span[@class="msubsup"]',"CQFmathmlmsup","./*[1]/*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube",'self::span[@class="msubsup"]',"CQFmathmlmsup",'./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRule_)("mj-square-sub","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub"; [n] ./*[1]/*[3]/*[1] (pitch:-0.35); [p] (pause:300); [t] "square" (pitch:0.35); [p] (pause:400)','self::span[@class="msubsup"]',
+"./*[1]/*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square-sub",'self::span[@class="msubsup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRule_)("mj-cube-sub","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub"; [n] ./*[1]/*[3]/*[1] (pitch:-0.35); [p] (pause:300); [t] "cube" (pitch:0.35); [p] (pause:400)','self::span[@class="msubsup"]',"./*[1]/*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube-sub",
+'self::span[@class="msubsup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=3]")};
+cvox.MathmlStoreRules.initSemanticRules_=function(){(0,cvox.MathmlStoreRules.defineRule_)("stree","default.default","[n] ./*[1]","self::stree");(0,cvox.MathmlStoreRules.defineRule_)("multrel","default.default",'[t] "multirelation"; [m] children/* (sepFunc:CTXFcontentIterator)',"self::multirel");(0,cvox.MathmlStoreRules.defineRule_)("variable-equality","default.default",'[t] "equation sequence"; [m] ./children/* (context:"part",ctxtFunc:CTXFnodeCounter,separator:./text())','self::relseq[@role="equality"]',
+"count(./children/*)>2",'./children/punct[@role="ellipsis"]');(0,cvox.MathmlStoreRules.defineRule_)("multi-equality","default.default",'[t] "equation sequence"; [m] ./children/* (context:"part",ctxtFunc:CTXFnodeCounter,separator:./text())','self::relseq[@role="equality"]',"count(./children/*)>2");(0,cvox.MathmlStoreRules.defineRule_)("multi-equality","default.short",'[t] "equation sequence"; [m] ./children/* (separator:./text())','self::relseq[@role="equality"]',"count(./children/*)>2");(0,cvox.MathmlStoreRules.defineRule_)("equality",
+"default.default",'[t] "equation"; [t] "left hand side"; [n] children/*[1];[p] (pause:200); [n] text() (pause:200);[t] "right hand side"; [n] children/*[2]','self::relseq[@role="equality"]',"count(./children/*)=2");(0,cvox.MathmlStoreRules.defineRule_)("simple-equality","default.default","[n] children/*[1]; [p] (pause:200); [n] text() (pause:200);[n] children/*[2]",'self::relseq[@role="equality"]',"count(./children/*)=2","./children/identifier or ./children/number");(0,cvox.MathmlStoreRules.defineRule_)("simple-equality2",
+"default.default","[n] children/*[1]; [p] (pause:200); [n] text() (pause:200);[n] children/*[2]",'self::relseq[@role="equality"]',"count(./children/*)=2","./children/function or ./children/appl");(0,cvox.MathmlStoreRules.defineRule_)("multrel","default.default","[m] children/* (separator:./text())","self::relseq");(0,cvox.MathmlStoreRules.defineRule_)("binary-operation","default.default","[m] children/* (separator:text());","self::infixop");(0,cvox.MathmlStoreRules.defineRule_)("variable-addition",
+"default.default",'[t] "sum with variable number of summands";[p] (pause:400); [m] children/* (separator:./text())','self::infixop[@role="addition"]',"count(children/*)>2",'children/punct[@role="ellipsis"]');(0,cvox.MathmlStoreRules.defineRule_)("multi-addition","default.default",'[t] "sum with,"; [t] count(./children/*); [t] ", summands";[p] (pause:400); [m] ./children/* (separator:./text())','self::infixop[@role="addition"]',"count(./children/*)>2");(0,cvox.MathmlStoreRules.defineRule_)("prefix",
+"default.default",'[t] "prefix"; [n] text(); [t] "of" (pause 150);[n] children/*[1]',"self::prefixop");(0,cvox.MathmlStoreRules.defineRule_)("negative","default.default",'[t] "negative"; [n] children/*[1]',"self::prefixop",'self::prefixop[@role="negative"]');(0,cvox.MathmlStoreRules.defineRule_)("postfix","default.default",'[n] children/*[1]; [t] "postfix"; [n] text() (pause 300)',"self::postfixop");(0,cvox.MathmlStoreRules.defineRule_)("identifier","default.default","[n] text()","self::identifier");
+(0,cvox.MathmlStoreRules.defineRule_)("number","default.default","[n] text()","self::number");(0,cvox.MathmlStoreRules.defineRule_)("fraction","default.default",'[p] (pause:250); [n] children/*[1] (pitch:0.3); [p] (pause:250); [t] "divided by"; [n] children/*[2] (pitch:-0.3); [p] (pause:400)',"self::fraction");(0,cvox.MathmlStoreRules.defineRule_)("superscript","default.default",'[n] children/*[1]; [t] "super"; [n] children/*[2] (pitch:0.35);[p] (pause:300)',"self::superscript");(0,cvox.MathmlStoreRules.defineRule_)("subscript",
+"default.default",'[n] children/*[1]; [t] "sub"; [n] children/*[2] (pitch:-0.35);[p] (pause:300)',"self::subscript");(0,cvox.MathmlStoreRules.defineRule_)("ellipsis","default.default",'[p] (pause:200); [t] "dot dot dot"; [p] (pause:300)',"self::punct",'self::punct[@role="ellipsis"]');(0,cvox.MathmlStoreRules.defineRule_)("fence-single","default.default","[n] text()","self::punct",'self::punct[@role="openfence"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("fence-single","self::punct",'self::punct[@role="closefence"]');
+(0,cvox.MathmlStoreRules.defineRuleAlias_)("fence-single","self::punct",'self::punct[@role="vbar"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("fence-single","self::punct",'self::punct[@role="application"]');(0,cvox.MathmlStoreRules.defineRule_)("omit-punct","default.default","[p] (pause:200);","self::punct");(0,cvox.MathmlStoreRules.defineRule_)("omit-empty","default.default","","self::empty");(0,cvox.MathmlStoreRules.defineRule_)("fences-open-close","default.default",'[p] (pause:100); [t] "open"; [n] children/*[1]; [p] (pause:200);[t] "close"',
+'self::fenced[@role="leftright"]');(0,cvox.MathmlStoreRules.defineRule_)("fences-open-close-in-appl","default.default","[p] (pause:100); [n] children/*[1]; [p] (pause:200);",'self::fenced[@role="leftright"]',"./parent::children/parent::appl");(0,cvox.MathmlStoreRules.defineRule_)("fences-neutral","default.default",'[p] (pause:100); [t] "absolute value of"; [n] children/*[1];[p] (pause:350);',"self::fenced",'self::fenced[@role="neutral"]');(0,cvox.MathmlStoreRules.defineRule_)("omit-fences","default.default",
+"[p] (pause:500); [n] children/*[1]; [p] (pause:200);","self::fenced");(0,cvox.MathmlStoreRules.defineRule_)("matrix","default.default",'[t] "matrix"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"row",pause:100)',"self::matrix");(0,cvox.MathmlStoreRules.defineRule_)("matrix-row","default.default",'[m] children/* (ctxtFunc:CTXFnodeCounter,context:"column",pause:100)','self::row[@role="matrix"]');(0,cvox.MathmlStoreRules.defineRule_)("matrix-cell","default.default","[n] children/*[1]",'self::cell[@role="matrix"]');
+(0,cvox.MathmlStoreRules.defineRule_)("vector","default.default",'[t] "vector"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"element",pause:100)',"self::vector");(0,cvox.MathmlStoreRules.defineRule_)("cases","default.default",'[t] "case statement"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"case",pause:100)',"self::cases");(0,cvox.MathmlStoreRules.defineRule_)("cases-row","default.default","[m] children/*",'self::row[@role="cases"]');(0,cvox.MathmlStoreRules.defineRule_)("cases-cell",
+"default.default","[n] children/*[1]",'self::cell[@role="cases"]');(0,cvox.MathmlStoreRules.defineRule_)("row","default.default",'[m] ./* (ctxtFunc:CTXFnodeCounter,context:"column",pause:100)','self::row"');(0,cvox.MathmlStoreRules.defineRule_)("cases-end","default.default",'[t] "case statement"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"case",pause:100);[t] "end cases"',"self::cases","following-sibling::*");(0,cvox.MathmlStoreRules.defineRule_)("multiline","default.default",'[t] "multiline equation";[m] children/* (ctxtFunc:CTXFnodeCounter,context:"line",pause:100)',
+"self::multiline");(0,cvox.MathmlStoreRules.defineRule_)("line","default.default","[m] children/*","self::line");(0,cvox.MathmlStoreRules.defineRule_)("table","default.default",'[t] "multiline equation";[m] children/* (ctxtFunc:CTXFnodeCounter,context:"row",pause:200)',"self::table");(0,cvox.MathmlStoreRules.defineRule_)("table-row","default.default","[m] children/* (pause:100)",'self::row[@role="table"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("cases-cell",'self::cell[@role="table"]');(0,cvox.MathmlStoreRules.defineRule_)("end-punct",
+"default.default","[m] children/*; [p] (pause:300)","self::punctuated",'@role="endpunct"');(0,cvox.MathmlStoreRules.defineRule_)("start-punct","default.default","[n] content/*[1]; [p] (pause:200); [m] children/*","self::punctuated",'@role="startpunct"');(0,cvox.MathmlStoreRules.defineRule_)("integral-punct","default.default","[n] children/*[1] (rate:0.2); [n] children/*[3] (rate:0.2)","self::punctuated",'@role="integral"');(0,cvox.MathmlStoreRules.defineRule_)("punctuated","default.default","[m] children/* (pause:100)",
+"self::punctuated");(0,cvox.MathmlStoreRules.defineRule_)("function","default.default","[n] text()","self::function");(0,cvox.MathmlStoreRules.defineRule_)("appl","default.default","[n] children/*[1]; [n] content/*[1]; [n] children/*[2]","self::appl");(0,cvox.MathmlStoreRules.defineRule_)("limboth","default.default",'[n] children/*[1]; [t] "from"; [n] children/*[2]; [t] "to";[n] children/*[3]',"self::limboth");(0,cvox.MathmlStoreRules.defineRule_)("sum-only","default.default",'[n] children/*[1]; [p] (pause 100); [t] "over"; [n] children/*[2];[p] (pause 250);',
+"self::limboth",'self::limboth[@role="sum"]');(0,cvox.MathmlStoreRules.defineRule_)("limlower","default.default",'[n] children/*[1]; [t] "over"; [n] children/*[2];',"self::limlower");(0,cvox.MathmlStoreRules.defineRule_)("limupper","default.default",'[n] children/*[1]; [t] "under"; [n] children/*[2];',"self::limupper");(0,cvox.MathmlStoreRules.defineRule_)("largeop","default.default","[n] text()","self::largeop");(0,cvox.MathmlStoreRules.defineRule_)("bigop","default.default",'[n] children/*[1]; [p] (pause 100); [t] "over"; [n] children/*[2];[p] (pause 250);',
+"self::bigop");(0,cvox.MathmlStoreRules.defineRule_)("integral","default.default","[n] children/*[1]; [p] (pause 100); [n] children/*[2]; [p] (pause 200);[n] children/*[3] (rate:0.35);","self::integral");(0,cvox.MathmlStoreRules.defineRule_)("sqrt","default.default",'[t] "Square root of"; [n] children/*[1] (rate:0.2); [p] (pause:400)',"self::sqrt");(0,cvox.MathmlStoreRules.defineRule_)("square","default.default",'[n] children/*[1]; [t] "square" (pitch:0.35); [p] (pause:300)',"self::superscript","children/*[2][text()=2]");
+(0,cvox.MathmlStoreRules.defineRule_)("text-no-mult","default.default","[n] children/*[1]; [p] (pause:200); [n] children/*[2]","self::infixop","children/text")};cvox.AbstractShifter=function(){this.isSubnavigating_=!1};cvox.AbstractShifter.prototype.begin=function(a,b){return this.currentWalker_.begin(b)};cvox.AbstractShifter.prototype.makeLessGranular=function(){this.ensureNotSubnavigating()};cvox.AbstractShifter.prototype.makeMoreGranular=function(){this.ensureNotSubnavigating()};cvox.AbstractShifter.prototype.ensureSubnavigating=function(){!1==this.isSubnavigating_&&(this.makeMoreGranular(),this.isSubnavigating_=!0)};
+cvox.AbstractShifter.prototype.ensureNotSubnavigating=function(){!0==this.isSubnavigating_&&(this.isSubnavigating_=!1,this.makeLessGranular())};cvox.AbstractShifter.prototype.isSubnavigating=function(){return this.isSubnavigating_};cvox.AbstractShifter.prototype.hasAction=function(a){return this.currentWalker_.hasAction(a)};cvox.AbstractShifter.prototype.performAction=function(a,b){return this.currentWalker_.performAction(a,b)};cvox.MathShifter=function(a){cvox.AbstractShifter.call(this);this.level_=0;this.bumped_=this.direction_=!1;cvox.TraverseMath.getInstance().initialize(a.start.node)};goog.inherits(cvox.MathShifter,cvox.AbstractShifter);cvox.MathShifter.prototype.next=function(a){var b=a.isReversed();this.bumped_=!cvox.TraverseMath.getInstance().nextSibling(b);return(b=cvox.TraverseMath.getInstance().getAttachedActiveNode())?cvox.CursorSelection.fromNode(b):a};
+cvox.MathShifter.prototype.sync=function(a){var b=cvox.TraverseMath.getInstance().getAttachedActiveNode();return b?cvox.CursorSelection.fromNode(b):a};cvox.MathShifter.prototype.getName=function(){return cvox.ChromeVox.msgs.getMsg("math_shifter")};cvox.MathShifter.prototype.getDescription=function(){var a=cvox.SpeechRuleEngine.getInstance().evaluateNode(cvox.TraverseMath.getInstance().activeNode);this.bumped_&&0<a.length&&a[0].pushEarcon(cvox.AbstractEarcons.WRAP_EDGE);return a};
+cvox.MathShifter.prototype.getBraille=function(a,b){return new cvox.NavBraille({text:cvox.BrailleUtil.getTemplated(a.start.node,b.start.node)})};cvox.MathShifter.prototype.getGranularityMsg=function(){return this.direction_?"up to level "+this.level_:"down to level "+this.level_};cvox.MathShifter.prototype.makeLessGranular=function(){this.level_=0<this.level_?this.level_-1:0;this.direction_=!0;this.bumped_=!cvox.TraverseMath.getInstance().nextParentChild(!0)};
+cvox.MathShifter.prototype.makeMoreGranular=function(){this.direction_=!1;(this.bumped_=!cvox.TraverseMath.getInstance().nextParentChild(!1))||this.level_++};
+cvox.MathShifter.create=function(a){if(cvox.DomPredicates.mathPredicate(cvox.DomUtil.getAncestors(a.start.node))){var b=cvox.DomUtil.getContainingMath(a.end.node);cvox.TraverseMath.getInstance().initialize(b);cvox.SpeechRuleEngine.getInstance().parameterize(cvox.MathmlStore.getInstance());b=cvox.MathStore.createDynamicConstraint(cvox.TraverseMath.getInstance().domain,cvox.TraverseMath.getInstance().style);cvox.SpeechRuleEngine.getInstance().setDynamicConstraint(b);return new cvox.MathShifter(a)}return null};cvox.TableUtil={};cvox.TableUtil.checkIfHeader=function(a){return"TH"==a.tagName||a.hasAttribute("scope")||a.hasAttribute("role")&&("rowheader"==a.getAttribute("role")||"columnheader"==a.getAttribute("role"))};
+cvox.TableUtil.determineColGroups=function(a){var b=[];if(0==a.length)return b;for(var c=0;c<a.length;c++){var d=a[c],e=cvox.TableUtil.getColNodes(d);if(0<e.length)for(d=0;d<e.length;d++){var f=e[d];if(f.hasAttribute("span"))for(var f=parseInt(f.getAttribute("span"),10),g=0;g<f;g++)b.push(c);else b.push(c)}else if(d.hasAttribute("span"))for(f=parseInt(d.getAttribute("span"),10),g=0;g<f;g++)b.push(c);else b.push(c)}return b};cvox.TableUtil.pushIfNotContained=function(a,b){-1==a.indexOf(b)&&a.push(b)};
+cvox.TableUtil.getChildRows=function(a){return cvox.XpathUtil.evalXPath('child::tbody/tr | child::thead/tr | child::*[attribute::role="row"]',a)};cvox.TableUtil.getChildCells=function(a){return cvox.XpathUtil.evalXPath('child::td | child::th | child::*[attribute::role="gridcell"] |child::*[attribute::role="rowheader"] |child::*[attribute::role="columnheader"]',a)};cvox.TableUtil.getCellWithID=function(a,b){return cvox.XpathUtil.evalXPath("id('"+b+"')",a)};
+cvox.TableUtil.getColGroups=function(a){return cvox.XpathUtil.evalXPath("child::colgroup",a)};cvox.TableUtil.getColNodes=function(a){return cvox.XpathUtil.evalXPath("child::col",a)};function ShadowTableNode(){}ShadowTableNode.prototype.rowHeaderCells=[];ShadowTableNode.prototype.colHeaderCells=[];cvox.TraverseTable=function(a){this.activeTable_=null;this.shadowTable_=[];this.candidateHeaders_=[];this.idToShadowNode_=[];this.initialize(a)};cvox.TraverseTable.prototype.colCount=null;cvox.TraverseTable.prototype.rowCount=null;cvox.TraverseTable.prototype.tableRowHeaders=null;cvox.TraverseTable.prototype.tableColHeaders=null;
+cvox.TraverseTable.prototype.initialize=function(a){a&&a!=this.activeTable_&&(this.activeTable_=a,this.currentCellCursor=null,this.tableRowHeaders=[],this.tableColHeaders=[],this.buildShadowTable_(),this.colCount=this.shadowColCount_(),this.rowCount=this.countRows_(),this.findHeaderCells_(),this.activeTable_.addEventListener("DOMSubtreeModified",goog.bind(function(){this.buildShadowTable_();this.colCount=this.shadowColCount_();this.rowCount=this.countRows_();this.tableRowHeaders=[];this.tableColHeaders=
+[];this.findHeaderCells_();0==this.colCount&&0==this.rowCount||null!=this.getCell()||this.attachCursorToNearestCell_()},this),!1))};
+cvox.TraverseTable.prototype.findNearestCursor=function(a){for(;a.firstElementChild&&"TABLE"!=a.firstElementChild.tagName&&!cvox.AriaUtil.isGrid(a.firstElementChild);)a=a.firstElementChild;for(;!cvox.DomPredicates.cellPredicate(cvox.DomUtil.getAncestors(a));)if(a=cvox.DomUtil.directedNextLeafNode(a),!cvox.DomUtil.getContainingTable(a,{allowCaptions:!0}))return null;for(var b=0;b<this.rowCount;++b)for(var c=0;c<this.colCount;++c)if(this.shadowTable_[b][c]&&cvox.DomUtil.isDescendantOfNode(a,this.shadowTable_[b][c].activeCell))return[b,
+c];return null};cvox.TraverseTable.prototype.attachCursorToNearestCell_=function(){if(this.currentCellCursor){var a=this.currentCellCursor,b=this.shadowTable_[a[0]];if(b)this.currentCellCursor=[a[0],b.length-1];else if(b=this.shadowTable_.length,0==b)this.currentCellCursor=null;else{var c=this.shadowTable_[b-1][a[1]];c?this.currentCellCursor=[b-1,a[1]]:this.goToLastCell()}}else this.goToLastCell()};
+cvox.TraverseTable.prototype.buildShadowTable_=function(){this.shadowTable_=[];for(var a=cvox.TableUtil.getChildRows(this.activeTable_),b=null,c=null,d=cvox.TableUtil.getColGroups(this.activeTable_),d=cvox.TableUtil.determineColGroups(d),e=0;e<a.length;e++)this.shadowTable_.push([]);for(e=0;e<a.length;e++)for(var f=cvox.TableUtil.getChildCells(a[e]),g=0,h=0;g<f.length;)if(null==this.shadowTable_[e][h]){var k=f[g],l=1,m=1;k.hasAttribute("colspan")&&(l=parseInt(k.getAttribute("colspan"),10),isNaN(l)||
+0>=l)&&(l=1);k.hasAttribute("rowspan")&&(m=parseInt(k.getAttribute("rowspan"),10),isNaN(m)||0>=m)&&(m=1);for(var p=0;p<m;p++)for(var q=0;q<l;q++){var n=new ShadowTableNode;0==p&&0==q?(n.spanned=!1,n.rowSpan=!1,n.colSpan=!1):(n.spanned=!0,n.rowSpan=1<m,n.colSpan=1<l);n.i=e;n.j=h;n.activeCell=k;n.rowHeaderCells=[];n.colHeaderCells=[];n.isRowHeader=!1;n.isColHeader=!1;cvox.TableUtil.checkIfHeader(n.activeCell)?this.candidateHeaders_.push(n):n.activeCell.hasAttribute("headers")&&this.candidateHeaders_.push(n);
+null==b?(b=a[e].parentNode,c=0):a[e].parentNode!=b&&(b=a[e].parentNode,c+=1);n.rowGroup=c;n.colGroup=0<d.length?d[h]:0;n.spanned||null!=k.id&&(this.idToShadowNode_[k.id]=n);this.shadowTable_[e+p][h+q]=n}h+=l;g++}else h+=1;return this.shadowTable_};
+cvox.TraverseTable.prototype.findHeaderCells_=function(){for(var a=0;a<this.candidateHeaders_.length;a++){var b=this.candidateHeaders_[a],c=b.activeCell,d=null,e=null;if(!b.spanned){"TH"!=c.tagName||c.hasAttribute("scope")?c.hasAttribute("scope")?e=c.getAttribute("scope"):c.hasAttribute("role")&&"rowheader"==c.getAttribute("role")?e="row":c.hasAttribute("role")&&"columnheader"==c.getAttribute("role")&&(e="col"):(0<b.j?"TH"==this.shadowTable_[b.i][b.j-1].activeCell.tagName&&(d="col"):b.j<this.shadowTable_[b.i].length-
+1?"TH"==this.shadowTable_[b.i][b.j+1].activeCell.tagName&&(d="col"):d="col",null==d&&(0<b.i?"TH"==this.shadowTable_[b.i-1][b.j].activeCell.tagName&&(d="row"):b.i<this.shadowTable_.length-1?"TH"==this.shadowTable_[b.i+1][b.j].activeCell.tagName&&(d="row"):d="row"));if("row"==e||"row"==d){b.isRowHeader=!0;for(d=b.j;d<this.shadowTable_[b.i].length;d++)e=this.shadowTable_[b.i][d],e.rowHeaderCells.push(c);this.tableRowHeaders.push(c)}else if("col"==e||"col"==d){b.isColHeader=!0;for(e=b.i;e<this.shadowTable_.length;e++){d=
+this.shadowTable_[e][b.j];if(null==d)break;d.colHeaderCells.push(c)}this.tableColHeaders.push(c)}else if("rowgroup"==e){b.isRowHeader=!0;for(var f=b.rowGroup,d=b.j+1;d<this.shadowTable_[b.i].length;d++)this.shadowTable_[b.i][d].rowHeaderCells.push(c);for(e=b.i+1;e<this.shadowTable_.length&&this.shadowTable_[e][0].rowGroup==f;e++)for(d=0;d<this.shadowTable_[e].length;d++)this.shadowTable_[e][d].rowHeaderCells.push(c);this.tableRowHeaders.push(c)}else if("colgroup"==e){b.isColHeader=!0;f=b.colGroup;
+for(d=b.j+1;d<this.shadowTable_[b.i].length;d++)this.shadowTable_[b.i][d].colGroup==f&&this.shadowTable_[b.i][d].colHeaderCells.push(c);for(e=b.i+1;e<this.shadowTable_.length;e++)for(d=0;d<this.shadowTable_[e].length;d++)this.shadowTable_[e][d].colGroup==f&&this.shadowTable_[e][d].colHeaderCells.push(c);this.tableColHeaders.push(c)}c.hasAttribute("headers")&&this.findAttrbHeaders_(b);c.hasAttribute("aria-describedby")&&this.findAttrbDescribedBy_(b)}}};
+cvox.TraverseTable.prototype.findAttrbHeaders_=function(a){for(var b=a.activeCell,c=b.getAttribute("headers").split(" "),d=0;d<c.length;d++)for(var e=cvox.TableUtil.getCellWithID(this.activeTable_,c[d]),f=0;f<e.length&&e[f].id!=b.id;f++){var g=this.idToShadowNode_[e[f].id];if(!cvox.TableUtil.checkIfHeader(g.activeCell)){var h=Math.abs(g.i-a.i),k=Math.abs(g.j-a.j);0==h||h<k?(cvox.TableUtil.pushIfNotContained(a.rowHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableRowHeaders,g.activeCell)):
+(cvox.TableUtil.pushIfNotContained(a.colHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableColHeaders,g.activeCell))}}};
+cvox.TraverseTable.prototype.findAttrbDescribedBy_=function(a){for(var b=a.activeCell,c=b.getAttribute("aria-describedby").split(" "),d=0;d<c.length;d++)for(var e=cvox.TableUtil.getCellWithID(this.activeTable_,c[d]),f=0;f<e.length&&e[f].id!=b.id;f++){var g=this.idToShadowNode_[e[f].id];cvox.TableUtil.checkIfHeader(g.activeCell)||(g.activeCell.hasAttribute("role")&&"rowheader"==g.activeCell.getAttribute("role")?(cvox.TableUtil.pushIfNotContained(a.rowHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableRowHeaders,
+g.activeCell)):g.activeCell.hasAttribute("role")&&"columnheader"==g.activeCell.getAttribute("role")&&(cvox.TableUtil.pushIfNotContained(a.colHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableColHeaders,g.activeCell)))}};cvox.TraverseTable.prototype.getCell=function(){if(!this.currentCellCursor||!this.shadowTable_)return null;var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a&&a.activeCell};
+cvox.TraverseTable.prototype.getCellAt=function(a){return a[0]<this.rowCount&&0<=a[0]&&a[1]<this.colCount&&0<=a[1]&&(a=this.shadowTable_[a[0]][a[1]],null!=a)?a.activeCell:null};cvox.TraverseTable.prototype.getCellRowHeaders=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.rowHeaderCells};cvox.TraverseTable.prototype.getCellColHeaders=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.colHeaderCells};
+cvox.TraverseTable.prototype.isSpanned=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.spanned};cvox.TraverseTable.prototype.isRowHeader=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.isRowHeader};cvox.TraverseTable.prototype.isColHeader=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.isColHeader};
+cvox.TraverseTable.prototype.getCol=function(){for(var a=[],b=0;b<this.shadowTable_.length;b++)if(this.shadowTable_[b][this.currentCellCursor[1]]){var c=this.shadowTable_[b][this.currentCellCursor[1]];if(c.colSpan&&c.rowSpan){var d=a[a.length-1];d!=c.activeCell&&a.push(c.activeCell)}else!c.colSpan&&c.rowSpan||a.push(c.activeCell)}return a};cvox.TraverseTable.prototype.summaryText=function(){return this.activeTable_.hasAttribute("summary")?this.activeTable_.getAttribute("summary"):null};
+cvox.TraverseTable.prototype.shadowColCount_=function(){for(var a=0,b=0;b<this.shadowTable_.length;b++)this.shadowTable_[b].length>a&&(a=this.shadowTable_[b].length);return a};cvox.TraverseTable.prototype.countRows_=function(){var a=cvox.TableUtil.getChildRows(this.activeTable_);return a.length};cvox.TraverseTable.prototype.nextRow=function(){return this.currentCellCursor?this.goToRow(this.currentCellCursor[0]+1):this.goToRow(0)};
+cvox.TraverseTable.prototype.nextCol=function(){return this.currentCellCursor?this.goToCol(this.currentCellCursor[1]+1):this.goToCol(0)};cvox.TraverseTable.prototype.goToRow=function(a){return null!=this.shadowTable_[a]?(this.currentCellCursor=null==this.currentCellCursor?[a,0]:[a,this.currentCellCursor[1]],!0):!1};cvox.TraverseTable.prototype.goToCol=function(a){if(0>a||a>=this.colCount)return!1;this.currentCellCursor=null==this.currentCellCursor?[0,a]:[this.currentCellCursor[0],a];return!0};
+cvox.TraverseTable.prototype.goToCell=function(a){if(a[0]<this.rowCount&&0<=a[0]&&a[1]<this.colCount&&0<=a[1]){var b=this.shadowTable_[a[0]][a[1]];if(null!=b)return this.currentCellCursor=a,!0}return!1};cvox.TraverseTable.prototype.goToLastCell=function(){var a=this.shadowTable_.length;if(0==a)return!1;var b=this.shadowTable_[a-1],a=[a-1,b.length-1],b=this.shadowTable_[a[0]][a[1]];return null!=b?(this.currentCellCursor=a,!0):!1};
+cvox.TraverseTable.prototype.goToRowLastCell=function(){var a=this.currentCellCursor[0],a=[a,this.shadowTable_[a].length-1],b=this.shadowTable_[a[0]][a[1]];return null!=b?(this.currentCellCursor=a,!0):!1};cvox.TraverseTable.prototype.goToColLastCell=function(){var a=this.getCol(),a=[a.length-1,this.currentCellCursor[1]],b=this.shadowTable_[a[0]][a[1]];return null!=b?(this.currentCellCursor=a,!0):!1};cvox.TableWalker=function(){this.tt=new cvox.TraverseTable(null)};goog.inherits(cvox.TableWalker,cvox.AbstractWalker);cvox.TableWalker.prototype.next=function(a){return this.nextRow(a)};cvox.TableWalker.prototype.sync=function(a){return this.goTo_(a,goog.bind(function(a){return this.tt.goToCell(a)},this))};
+cvox.TableWalker.prototype.getDescription=function(a,b){var c=this.syncPosition_(b);if(!c)return[];this.tt.goToCell(c);c=cvox.DescriptionUtil.getCollectionDescription(a,b);0==c.length&&c.push(new cvox.NavDescription({annotation:cvox.ChromeVox.msgs.getMsg("empty_cell")}));return c};cvox.TableWalker.prototype.getBraille=function(a,b){new cvox.NavBraille({});var c=this.syncPosition_(b);if(c){var d=cvox.BrailleUtil.getTemplated(a.start.node,b.start.node);d.append(" "+ ++c[0]+"/"+ ++c[1])}return new cvox.NavBraille({text:d})};
+cvox.TableWalker.prototype.goToFirstCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToCell([0,0])},this))};cvox.TableWalker.prototype.goToLastCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToLastCell()},this))};cvox.TableWalker.prototype.goToRowFirstCell=function(a){return this.goTo_(a,goog.bind(function(a){return this.tt.goToCell([a[0],0])},this))};
+cvox.TableWalker.prototype.goToRowLastCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToRowLastCell()},this))};cvox.TableWalker.prototype.goToColFirstCell=function(a){return this.goTo_(a,goog.bind(function(a){return this.tt.goToCell([0,a[1]])},this))};cvox.TableWalker.prototype.goToColLastCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToColLastCell()},this))};
+cvox.TableWalker.prototype.nextRow=function(a){return this.goTo_(a,goog.bind(function(b){return this.tt.goToCell([b[0]+(a.isReversed()?-1:1),b[1]])},this))};cvox.TableWalker.prototype.nextCol=function(a){return this.goTo_(a,goog.bind(function(b){return this.tt.goToCell([b[0],b[1]+(a.isReversed()?-1:1)])},this))};cvox.TableWalker.prototype.announceHeaders=function(a){cvox.ChromeVox.tts.speak(this.getHeaderText_(a),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION);return a};
+cvox.TableWalker.prototype.speakTableLocation=function(a){cvox.ChromeVox.navigationManager.speakDescriptionArray(this.getLocationDescription_(a),cvox.AbstractTts.QUEUE_MODE_FLUSH,null);return a};cvox.TableWalker.prototype.exitShifterContent=function(a){a=this.getTableNode_(a);if(!a)return null;a=cvox.DomUtil.directedNextLeafNode(a,!1);return cvox.CursorSelection.fromNode(a)};
+cvox.TableWalker.prototype.getHeaderText_=function(a){this.tt.initialize(this.getTableNode_(a));return(a=this.tt.findNearestCursor(a.start.node))&&this.tt.goToCell(a)?this.getRowHeaderText_(a)+" "+this.getColHeaderText_(a):cvox.ChromeVox.msgs.getMsg("not_inside_table")};cvox.TableWalker.prototype.getLocationDescription_=function(a){a=this.getLocationInfo(a);return null==a?null:[new cvox.NavDescription({text:cvox.ChromeVox.msgs.getMsg("table_location",a)})]};
+cvox.TableWalker.prototype.getRowHeaderText_=function(a){var b="",c=this.tt.getCellRowHeaders();if(0==c.length)return c=this.tt.getCellAt([a[0],0]),b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c)+" "+cvox.DomUtil.getName(c)),cvox.ChromeVox.msgs.getMsg("row_header")+b;for(a=0;a<c.length;++a)b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c[a])+" "+cvox.DomUtil.getName(c[a]));return""==b?cvox.ChromeVox.msgs.getMsg("empty_row_header"):cvox.ChromeVox.msgs.getMsg("row_header")+b};
+cvox.TableWalker.prototype.getColHeaderText_=function(a){var b="",c=this.tt.getCellColHeaders();if(0==c.length)return c=this.tt.getCellAt([0,a[1]]),b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c)+" "+cvox.DomUtil.getName(c)),cvox.ChromeVox.msgs.getMsg("column_header")+b;for(a=0;a<c.length;++a)b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c[a])+" "+cvox.DomUtil.getName(c[a]));return""==b?cvox.ChromeVox.msgs.getMsg("empty_row_header"):cvox.ChromeVox.msgs.getMsg("column_header")+
+b};cvox.TableWalker.prototype.getLocationInfo=function(a){this.tt.initialize(this.getTableNode_(a));return(a=this.tt.findNearestCursor(a.start.node))?[a[0]+1,this.tt.rowCount,a[1]+1,this.tt.colCount].map(function(a){return cvox.ChromeVox.msgs.getNumber(a)}):null};
+cvox.TableWalker.prototype.goTo_=function(a,b){this.tt.initialize(this.getTableNode_(a));var c=this.tt.findNearestCursor(a.end.node);if(!c)return null;this.tt.goToCell(c);return b(c)?cvox.CursorSelection.fromNode(this.tt.getCell()).setReversed(a.isReversed()):null};cvox.TableWalker.prototype.getTableNode_=function(a){return cvox.DomUtil.getContainingTable(a.end.node)};cvox.TableWalker.prototype.syncPosition_=function(a){var b=this.getTableNode_(a);this.tt.initialize(b);return this.tt.findNearestCursor(a.end.node)};cvox.ColumnWalker=function(){cvox.TableWalker.call(this)};goog.inherits(cvox.ColumnWalker,cvox.TableWalker);cvox.ColumnWalker.prototype.next=function(a){return this.nextCol(a)};cvox.ColumnWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("column_granularity")};cvox.RowWalker=function(){cvox.TableWalker.call(this)};goog.inherits(cvox.RowWalker,cvox.TableWalker);cvox.RowWalker.prototype.next=function(a){return this.nextRow(a)};cvox.RowWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("row_granularity")};cvox.TableShifter=function(){this.rowWalker_=new cvox.RowWalker;this.columnWalker_=new cvox.ColumnWalker;this.currentWalker_=this.rowWalker_;this.bumpedEdge_=!1;this.begin_=!0;cvox.AbstractShifter.call(this)};goog.inherits(cvox.TableShifter,cvox.AbstractShifter);cvox.TableShifter.prototype.next=function(a){var b=this.currentWalker_.next(a);return b?b:(this.bumpedEdge_=!0,a)};
+cvox.TableShifter.prototype.sync=function(a){return"TABLE"==a.start.node.tagName?a.isReversed()?this.currentWalker_.goToLastCell(a):this.currentWalker_.goToFirstCell(a):this.currentWalker_.sync(a)};cvox.TableShifter.prototype.getName=function(){return cvox.ChromeVox.msgs.getMsg("table_shifter")};
+cvox.TableShifter.prototype.getDescription=function(a,b){var c=this.currentWalker_.getDescription(a,b);if(0<c.length&&(this.bumpedEdge_&&(c[0].pushEarcon(cvox.AbstractEarcons.WRAP_EDGE),this.bumpedEdge_=!1),this.begin_)){var d=this.currentWalker_.tt.summaryText(),e=this.currentWalker_.getLocationInfo(b);null!=e&&c.push(new cvox.NavDescription({context:cvox.ChromeVox.msgs.getMsg("table_location",e),text:"",annotation:d?d+" ":""}));this.currentWalker_.tt.isSpanned()&&c.push(new cvox.NavDescription({text:"",
+annotation:cvox.ChromeVox.msgs.getMsg("spanned")}));this.begin_=!1}return c};cvox.TableShifter.prototype.getBraille=function(a,b){return this.currentWalker_.getBraille(a,b)};cvox.TableShifter.prototype.getGranularityMsg=function(){return this.currentWalker_.getGranularityMsg()};cvox.TableShifter.prototype.makeLessGranular=function(){cvox.TableShifter.superClass_.makeLessGranular.call(this);this.currentWalker_=this.rowWalker_};
+cvox.TableShifter.prototype.makeMoreGranular=function(){cvox.TableShifter.superClass_.makeMoreGranular.call(this);this.currentWalker_=this.columnWalker_};cvox.TableShifter.create=function(a){a=cvox.DomUtil.getAncestors(a.start.node);return cvox.DomPredicates.tablePredicate(a)&&!cvox.DomPredicates.captionPredicate(a)?new cvox.TableShifter:null};cvox.NavigationHistory=function(){this.reset_()};cvox.NavigationHistory.MAX_HISTORY_LEN_=30;cvox.NavigationHistory.prototype.reset_=function(){var a=document.body;this.history_=[a];this.arrivedValid_=!0};cvox.NavigationHistory.prototype.update=function(a){var b=this.history_[0];a&&a!=b&&this.history_.unshift(a);this.history_.length>cvox.NavigationHistory.MAX_HISTORY_LEN_&&this.history_.pop();this.arrivedValid_=this.isValidNode_(a)};
+cvox.NavigationHistory.prototype.becomeInvalid=function(a){this.clean_();return this.arrivedValid_?!this.isValidNode_(a):(this.arrivedValid_=!0,!1)};cvox.NavigationHistory.prototype.revert=function(a){var b=document.activeElement;b!=document.body&&this.isValidNode_(b)&&this.update(b);if(a)for(;0<this.history_.length;){b=this.history_[0];if(a(b))break;this.history_.shift()}return{current:this.history_[0],previous:this.history_[1]}};
+cvox.NavigationHistory.prototype.clean_=function(){for(var a=!1,b=this.history_.length-1;0<=b;b--){var c=this.isValidNode_(this.history_[b]);c||(this.history_.splice(b,1),a=!0)}return a};cvox.NavigationHistory.prototype.isValidNode_=function(a){return cvox.DomUtil.isAttachedToDocument(a)&&cvox.DomUtil.isVisible(a)?!0:!1};cvox.TraverseContent=function(a){this.currentDomObj=null!=a?a:document.body;var b=document.createRange();try{b.selectNode(this.currentDomObj),this.startCursor_=new cvox.Cursor(b.startContainer,b.startOffset,cvox.TraverseUtil.getNodeText(b.startContainer)),this.endCursor_=new cvox.Cursor(b.endContainer,b.endOffset,cvox.TraverseUtil.getNodeText(b.endContainer))}catch(c){window.console.log("Error: Unselectable node:"),window.console.log(a)}};goog.addSingletonGetter(cvox.TraverseContent);
+cvox.TraverseContent.prototype.lastSelectionWasWhitespace=!1;cvox.TraverseContent.prototype.skipWhitespace=!1;cvox.TraverseContent.prototype.skipInvalidSelections=!0;cvox.TraverseContent.prototype.breakAtLinks=!0;cvox.TraverseContent.kCharacter="character";cvox.TraverseContent.kWord="word";cvox.TraverseContent.kSentence="sentence";cvox.TraverseContent.kLine="line";cvox.TraverseContent.kParagraph="paragraph";
+cvox.TraverseContent.kAllGrains=[cvox.TraverseContent.kParagraph,cvox.TraverseContent.kSentence,cvox.TraverseContent.kLine,cvox.TraverseContent.kWord,cvox.TraverseContent.kCharacter];cvox.TraverseContent.prototype.syncToCursorSelection=function(a){this.startCursor_=a.start.clone();this.endCursor_=a.end.clone()};cvox.TraverseContent.prototype.getCurrentCursorSelection=function(){return new cvox.CursorSelection(this.startCursor_,this.endCursor_)};
+cvox.TraverseContent.prototype.updateSelection=function(){cvox.TraverseUtil.setSelection(this.startCursor_,this.endCursor_);cvox.SelectionUtil.scrollToSelection(window.getSelection())};cvox.TraverseContent.prototype.getCurrentRange=function(){var a=document.createRange();try{a.setStart(this.startCursor_.node,this.startCursor_.index),a.setEnd(this.endCursor_.node,this.endCursor_.index)}catch(b){console.log("Invalid range ")}return a};cvox.TraverseContent.prototype.getCurrentText=function(){return cvox.SelectionUtil.getRangeText(this.getCurrentRange())};
+cvox.TraverseContent.prototype.collapseToEnd=function(){this.startCursor_=this.endCursor_.clone()};cvox.TraverseContent.prototype.collapseToStart=function(){this.endCursor_=this.startCursor_.clone()};
+cvox.TraverseContent.prototype.moveNext=function(a){var b=this.getBreakTags(),c=this.skipWhitespace,d=this.getCurrentRange();cvox.SelectionUtil.isRangeValid(d)||(c=!0);var e=[],f=[];do{a===cvox.TraverseContent.kSentence?d=cvox.TraverseUtil.getNextSentence(this.startCursor_,this.endCursor_,e,f,b):a===cvox.TraverseContent.kWord?d=cvox.TraverseUtil.getNextWord(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kCharacter?d=cvox.TraverseUtil.getNextChar(this.startCursor_,this.endCursor_,
+e,f,c):a===cvox.TraverseContent.kParagraph?d=cvox.TraverseUtil.getNextParagraph(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kLine?d=cvox.TraverseUtil.getNextLine(this.startCursor_,this.endCursor_,e,f,b):(window.console.log('Invalid selection granularity: "'+a+'"'),a=cvox.TraverseContent.kSentence,d=cvox.TraverseUtil.getNextSentence(this.startCursor_,this.endCursor_,e,f,b));if(null==d)return null;var d=this.getCurrentRange(),g=!d.getBoundingClientRect()}while(this.skipInvalidSelections&&
+g);if(cvox.SelectionUtil.isRangeValid(d))this.lastSelectionWasWhitespace=!1;else if(this.lastSelectionWasWhitespace||a!=cvox.TraverseContent.kCharacter)for(;!cvox.SelectionUtil.isRangeValid(this.getCurrentRange())&&null!=this.moveNext(a););else this.lastSelectionWasWhitespace=!0;return this.getCurrentText()};
+cvox.TraverseContent.prototype.movePrev=function(a){var b=this.getBreakTags(),c=this.skipWhitespace,d=this.getCurrentRange();cvox.SelectionUtil.isRangeValid(d)||(c=!0);var e=[],f=[];do{a===cvox.TraverseContent.kSentence?d=cvox.TraverseUtil.getPreviousSentence(this.startCursor_,this.endCursor_,e,f,b):a===cvox.TraverseContent.kWord?d=cvox.TraverseUtil.getPreviousWord(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kCharacter?d=cvox.TraverseUtil.getPreviousChar(this.startCursor_,this.endCursor_,
+e,f,c):a===cvox.TraverseContent.kParagraph?d=cvox.TraverseUtil.getPreviousParagraph(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kLine?d=cvox.TraverseUtil.getPreviousLine(this.startCursor_,this.endCursor_,e,f,b):(window.console.log('Invalid selection granularity: "'+a+'"'),a=cvox.TraverseContent.kSentence,d=cvox.TraverseUtil.getPreviousSentence(this.startCursor_,this.endCursor_,e,f,b));if(null==d)return null;var d=this.getCurrentRange(),g=!d.getBoundingClientRect()}while(this.skipInvalidSelections&&
+g);if(cvox.SelectionUtil.isRangeValid(d))this.lastSelectionWasWhitespace=!1;else if(this.lastSelectionWasWhitespace||a!=cvox.TraverseContent.kCharacter)for(;!cvox.SelectionUtil.isRangeValid(this.getCurrentRange())&&null!=this.movePrev(a););else this.lastSelectionWasWhitespace=!0;return this.getCurrentText()};cvox.TraverseContent.prototype.getBreakTags=function(){return{A:this.breakAtLinks,BR:!0,HR:!0}};
+cvox.TraverseContent.prototype.nextElement=function(a,b){null!=b&&(this.currentDomObj=b);var c=this.moveNext(a);return null==c||cvox.DomUtil.isDescendantOfNode(this.startCursor_.node,this.currentDomObj)&&cvox.DomUtil.isDescendantOfNode(this.endCursor_.node,this.currentDomObj)?c:null};
+cvox.TraverseContent.prototype.prevElement=function(a,b){null!=b&&(this.currentDomObj=b);var c=this.movePrev(a);return null==c||cvox.DomUtil.isDescendantOfNode(this.startCursor_.node,this.currentDomObj)&&cvox.DomUtil.isDescendantOfNode(this.endCursor_.node,this.currentDomObj)?c:null};cvox.TraverseContent.prototype.reset=function(){window.getSelection().removeAllRanges()};cvox.AbstractSelectionWalker=function(){this.objWalker_=new cvox.BareObjectWalker;this.tc_=cvox.TraverseContent.getInstance();this.grain=""};goog.inherits(cvox.AbstractSelectionWalker,cvox.AbstractWalker);
+cvox.AbstractSelectionWalker.prototype.next=function(a){var b=a.isReversed();this.tc_.syncToCursorSelection(a.clone().setReversed(!1));var c=b?this.tc_.prevElement(this.grain):this.tc_.nextElement(this.grain);if(null==c)return this.objWalker_.next(a);var c=this.tc_.getCurrentCursorSelection().setReversed(b),d=this.objWalker_.next(a),d=d?d.setReversed(b):null;return!d||"Text"==c.end.node.constructor.name&&"Text"==d.end.node.constructor.name||cvox.DomUtil.isDescendantOfNode(c.end.node,a.end.node)||
+cvox.DomUtil.isDescendantOfNode(c.end.node,d.end.node)?c:d};
+cvox.AbstractSelectionWalker.prototype.sync=function(a){var b=a.isReversed(),c=null;if(a.start.equals(a.end)&&"Text"!=a.start.node.constructor.name){for(c=a.start.node;c&&cvox.DomUtil.directedFirstChild(c,b)&&!cvox.TraverseUtil.treatAsLeafNode(c);){for(var d=cvox.DomUtil.directedFirstChild(c,b);d;)if(cvox.DomUtil.isVisible(d,{checkAncestors:!1,checkDescendants:!1})){c=d;break}else d=cvox.DomUtil.directedNextSibling(d,b);if(!d)break}c=cvox.CursorSelection.fromNode(c)}else c=a.clone(),b?c.start=c.end:
+c.end=c.start;c=this.next(c.setReversed(!1));d=(d=this.objWalker_.sync(a))?d.setReversed(b):null;if(!c)return d;c.setReversed(b);return!d||"Text"==c.end.node.constructor.name&&"Text"==d.end.node.constructor.name||cvox.DomUtil.isDescendantOfNode(c.end.node,a.end.node)||cvox.DomUtil.isDescendantOfNode(c.end.node,d.end.node)?c:d};
+cvox.AbstractSelectionWalker.prototype.getDescription=function(a,b){var c=cvox.DescriptionUtil.getDescriptionFromAncestors(cvox.DomUtil.getUniqueAncestors(a.end.node,b.start.node),!0,cvox.ChromeVox.verbosity);c.text=b.getText()||c.text;return[c]};cvox.AbstractSelectionWalker.prototype.getBraille=function(a,b){var c=b.absStart().node,d=cvox.TraverseUtil.getNodeText(c),e=new cvox.Spannable(d);e.setSpan(c,0,d.length);return new cvox.NavBraille({text:e,startIndex:b.absStart().index,endIndex:b.absEnd().index})};cvox.CharacterWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kCharacter};goog.inherits(cvox.CharacterWalker,cvox.AbstractSelectionWalker);cvox.CharacterWalker.prototype.getDescription=function(a,b){var c=cvox.CharacterWalker.superClass_.getDescription.call(this,a,b);c.forEach(function(a){a.personality||(a.personality={});a.personality.phoneticCharacters=!0});return c};cvox.CharacterWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("character_granularity")};cvox.GroupUtil={};cvox.GroupUtil.MAX_CHARCOUNT_=1500;cvox.GroupUtil.BREAKOUT_SELECTOR_='blockquote,button,code,form,frame,h1,h2,h3,h4,h5,h6,hr,iframe,input,object,ol,p,pre,select,table,tr,ul,math,span.math,[role~="alert alertdialog button checkbox combobox dialog log marquee menubar progressbar radio radiogroup scrollbar slider spinbutton status tab tabpanel textbox toolbar tooltip treeitem article document group heading img list math region row separator"]';
+cvox.GroupUtil.isLeafNode=function(a){if("LABEL"==a.tagName)return cvox.DomUtil.isLeafNode(a);if(cvox.DomUtil.isLeafNode(a))return!0;if(!cvox.DomUtil.isSemanticElt(a))for(var b=a.querySelectorAll(cvox.GroupUtil.BREAKOUT_SELECTOR_),c=0;c<b.length;++c)if(cvox.DomUtil.hasContent(b[c]))return!1;if(cvox.AriaUtil.isCompositeControl(a)&&!cvox.DomUtil.isFocusable(a))return!1;a=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getName(a));return a.length>cvox.GroupUtil.MAX_CHARCOUNT_||
+""===a.replace(/\s/g,"")?!1:!0};cvox.GroupWalker=function(){cvox.AbstractNodeWalker.call(this)};goog.inherits(cvox.GroupWalker,cvox.AbstractNodeWalker);cvox.GroupWalker.prototype.getDescription=function(a,b){return cvox.DescriptionUtil.getCollectionDescription(a,b)};cvox.GroupWalker.prototype.getBraille=function(){throw"getBraille is unsupported";};cvox.GroupWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("group_strategy")};cvox.GroupWalker.prototype.stopNodeDescent=function(a){return cvox.GroupUtil.isLeafNode(a)};cvox.StructuralLineWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kLine};goog.inherits(cvox.StructuralLineWalker,cvox.AbstractSelectionWalker);cvox.StructuralLineWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("structural_line")};
+cvox.StructuralLineWalker.prototype.getDescription=function(a,b){var c=cvox.StructuralLineWalker.superClass_.getDescription.call(this,a,b);c[0].text=cvox.DomUtil.getPrefixText(b.absStart().node,b.absStart().index)+c[0].text;return c};
+cvox.StructuralLineWalker.prototype.getBraille=function(a,b){var c=cvox.StructuralLineWalker.superClass_.getBraille.call(this,a,b),d=this.objWalker_.sync(b).absStart().node,e=a.absEnd().node,f=void 0;b.start.equals(b.end)||cvox.DomPredicates.editTextPredicate([d])||(f=cvox.DomUtil.getPrefixText(b.absStart().node,b.absStart().index),f+=b.getText());e=cvox.BrailleUtil.getTemplated(e,d,{name:f});e.setSpan(d,0,e.getLength());c.text=e;c.startIndex=0;c.endIndex=0;return c};cvox.LayoutLineWalker=function(){this.subWalker_=new cvox.StructuralLineWalker};goog.inherits(cvox.LayoutLineWalker,cvox.AbstractWalker);cvox.LayoutLineWalker.prototype.next=function(a){var b=new cvox.CursorSelection(a.end,a.end,a.isReversed()),c=this.subWalker_.sync(b);if(!c)return null;b=this.subWalker_.next(b);if(!b)return null;b.setReversed(a.isReversed());return this.extend_(b).setReversed(!1)};
+cvox.LayoutLineWalker.prototype.sync=function(a){var b=this.subWalker_.sync(a);if(!b)return null;var c=this.extend_(b),b=this.extend_(b.setReversed(!b.isReversed()));return new cvox.CursorSelection(b.end,c.end,a.isReversed())};
+cvox.LayoutLineWalker.prototype.getDescription=function(a,b){var c=[],d=a,e=b.clone().setReversed(!1),f=new cvox.CursorSelection(e.start,e.start),f=this.subWalker_.sync(f);if(!f)return[];if(e.start.node==e.end.node)return this.subWalker_.getDescription(a,b);for(;f&&!f.end.equals(e.end);)c.push.apply(c,this.subWalker_.getDescription(d,f)),d=f,f=this.subWalker_.next(f);f&&c.push.apply(c,this.subWalker_.getDescription(d,f));return c};
+cvox.LayoutLineWalker.prototype.getBraille=function(a,b){var c=new cvox.NavBraille({}),d=this.subWalker_.sync(b.clone().setReversed(!1)),e=this.sync(b).setReversed(!1);if(!e||!d)return c;var f=new cvox.CursorSelection(e.start,e.start),f=this.subWalker_.sync(f);if(!f)return c;for(;f&&!f.end.equals(e.end);)this.appendBraille_(a,d,f,c),a=f,f=this.subWalker_.next(f);f&&this.appendBraille_(a,d,f,c);return c};cvox.LayoutLineWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("layout_line")};
+cvox.LayoutLineWalker.prototype.isVisualLineBreak_=function(a,b){if(this.wantsOwnLine_(a.end.node)||this.wantsOwnLine_(b.start.node))return!0;var c=a.getRange().getBoundingClientRect(),d=b.getRange().getBoundingClientRect();0==c.width&&0==c.height&&a.end.node.nodeType==Node.ELEMENT_NODE&&(c=a.end.node.getBoundingClientRect());0==d.width&&0==d.height&&b.start.node.nodeType==Node.ELEMENT_NODE&&(d=b.start.node.getBoundingClientRect());return c.bottom!=d.bottom};
+cvox.LayoutLineWalker.prototype.wantsOwnLine_=function(a){return a instanceof HTMLTextAreaElement||a.parentNode instanceof HTMLTextAreaElement};cvox.LayoutLineWalker.prototype.extend_=function(a){var b=a,c=a;do b=c,c=this.subWalker_.next(b);while(c&&!this.isVisualLineBreak_(b,c));return new cvox.CursorSelection(a.start,b.end,a.isReversed())};
+cvox.LayoutLineWalker.prototype.appendBraille_=function(a,b,c,d){a=this.subWalker_.getBraille(a,c).text;var e=a.getSpanInstanceOf(cvox.BrailleUtil.ValueSelectionSpan);0<d.text.getLength()&&d.text.append(cvox.BrailleUtil.ITEM_SEPARATOR);for(var f=c.start.node;f.parentNode&&cvox.DomUtil.isLeafNode(f.parentNode);)f=f.parentNode;var g=d.text.getLength(),h=g+a.getLength();d.text.append(a.toString());d.text.setSpan(f,g,h);b&&c.absEquals(b)&&(e?(d.startIndex=g+a.getSpanStart(e),d.endIndex=g+a.getSpanEnd(e)):
+(d.startIndex=g,d.endIndex=g+1))};cvox.ObjectWalker=function(){cvox.AbstractNodeWalker.call(this)};goog.inherits(cvox.ObjectWalker,cvox.AbstractNodeWalker);cvox.ObjectWalker.prototype.stopNodeDescent=function(a){return cvox.DomUtil.isLeafNode(a)};cvox.AbstractNodeWalker.prototype.getDescription=function(a,b){return cvox.DescriptionUtil.getDescriptionFromNavigation(a.end.node,b.start.node,!0,cvox.ChromeVox.verbosity)};cvox.ObjectWalker.prototype.getBraille=function(){throw"getBraille is unsupported";};
+cvox.ObjectWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("object_strategy")};cvox.SentenceWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kSentence};goog.inherits(cvox.SentenceWalker,cvox.AbstractSelectionWalker);cvox.SentenceWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("sentence_granularity")};cvox.WordWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kWord};goog.inherits(cvox.WordWalker,cvox.AbstractSelectionWalker);cvox.WordWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("word_granularity")};cvox.NavigationShifter=function(){this.reset_();cvox.AbstractShifter.call(this)};goog.inherits(cvox.NavigationShifter,cvox.AbstractShifter);cvox.NavigationShifter.GRANULARITIES={CHARACTER:0,WORD:1,LINE:2,SENTENCE:3,OBJECT:4,GROUP:5};cvox.NavigationShifter.prototype.storeOn=function(a){a.granularity=this.getGranularity()};cvox.NavigationShifter.prototype.readFrom=function(a){this.setGranularity(a.granularity)};
+cvox.NavigationShifter.prototype.next=function(a){a=this.currentWalker_.next(a);this.currentWalkerIndex_<=cvox.NavigationShifter.GRANULARITIES.LINE&&a&&(cvox.TraverseContent.getInstance().syncToCursorSelection(a.clone().setReversed(!1)),cvox.TraverseContent.getInstance().updateSelection());return a};cvox.NavigationShifter.prototype.sync=function(a){return this.currentWalker_.sync(a)};cvox.NavigationShifter.prototype.getName=function(){return cvox.ChromeVox.msgs.getMsg("navigation_shifter")};
+cvox.NavigationShifter.prototype.getDescription=function(a,b){return this.currentWalker_.getDescription(a,b)};cvox.NavigationShifter.prototype.getBraille=function(a,b){return this.lineWalker_.getBraille(a,b)};cvox.NavigationShifter.prototype.getGranularityMsg=function(){return this.currentWalker_.getGranularityMsg()};
+cvox.NavigationShifter.prototype.makeMoreGranular=function(){cvox.NavigationShifter.superClass_.makeMoreGranular.call(this);this.currentWalkerIndex_=Math.max(this.currentWalkerIndex_-1,0);cvox.NavigationShifter.allowSentence||this.currentWalkerIndex_!=cvox.NavigationShifter.GRANULARITIES.SENTENCE||this.currentWalkerIndex_--;this.currentWalker_=this.walkers_[this.currentWalkerIndex_]};
+cvox.NavigationShifter.prototype.makeLessGranular=function(){cvox.NavigationShifter.superClass_.makeLessGranular.call(this);this.currentWalkerIndex_=Math.min(this.currentWalkerIndex_+1,this.walkers_.length-1);cvox.NavigationShifter.allowSentence||this.currentWalkerIndex_!=cvox.NavigationShifter.GRANULARITIES.SENTENCE||this.currentWalkerIndex_++;this.currentWalker_=this.walkers_[this.currentWalkerIndex_]};
+cvox.NavigationShifter.prototype.setGranularity=function(a){this.ensureNotSubnavigating();this.currentWalkerIndex_=a;this.currentWalker_=this.walkers_[this.currentWalkerIndex_]};cvox.NavigationShifter.prototype.getGranularity=function(){var a=this.isSubnavigating();this.ensureNotSubnavigating();var b=this.currentWalkerIndex_;a&&this.ensureSubnavigating();return b};
+cvox.NavigationShifter.prototype.hasAction=function(a){return"toggleLineType"==a?!0:cvox.NavigationShifter.superClass_.hasAction.call(this,a)};cvox.NavigationShifter.create=function(){return new cvox.NavigationShifter};
+cvox.NavigationShifter.prototype.reset_=function(){this.groupWalker_=new cvox.GroupWalker;this.objectWalker_=new cvox.ObjectWalker;this.sentenceWalker_=new cvox.SentenceWalker;this.lineWalker_=new cvox.LayoutLineWalker;this.wordWalker_=new cvox.WordWalker;this.characterWalker_=new cvox.CharacterWalker;this.walkers_=[this.characterWalker_,this.wordWalker_,this.lineWalker_,this.sentenceWalker_,this.objectWalker_,this.groupWalker_];this.currentWalkerIndex_=this.walkers_.indexOf(this.groupWalker_);this.currentWalker_=
+this.walkers_[this.currentWalkerIndex_]};cvox.NavigationShifter.allowSentence=!1;cvox.NavigationSpeaker=function(){this.stopReading=!1;this.id_=1};
+cvox.NavigationSpeaker.prototype.speakDescriptionArray=function(a,b,c){a=this.reorderAnnotations(a);this.stopReading=!1;this.id_=(this.id_+1)%1E4;var d=this,e=function(b,g,h){var k=a[b];if(k&&!d.stopReading&&d.id_==h){var l=function(){for(var a=0;a<k.earcons.length;a++)cvox.ChromeVox.earcons.playEarcon(k.earcons[a])},m=function(){e(b+1,cvox.AbstractTts.QUEUE_MODE_QUEUE,h)},p=function(){k.personality&&k.personality[cvox.AbstractTts.PAUSE]&&"number"==typeof k.personality[cvox.AbstractTts.PAUSE]?setTimeout(m,
+k.personality[cvox.AbstractTts.PAUSE]):m();b==a.length-1&&c&&c()};k.isEmpty()?(l(),p()):(k.speak(g,l,p),cvox.ChromeVox.host.hasTtsCallback()||(l(),p()))}};e(0,b,this.id_);0==a.length&&c&&c()};cvox.NavigationSpeaker.structuredElement=function(a){switch(a){case "table":case "Math":return!0}return!1};
+cvox.NavigationSpeaker.prototype.reorderAnnotations=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c];cvox.NavigationSpeaker.structuredElement(d.annotation)&&(b.push(new cvox.NavDescription({text:"",annotation:d.annotation})),d.annotation="");b.push(d)}return b};cvox.NavigationManager=function(){this.addInterframeListener_();this.reset()};cvox.NavigationManager.prototype.storeOn=function(a){a.reversed=this.isReversed();a.keepReading=this.keepReading_;a.findNext=this.predicate_;this.shifter_.storeOn(a)};cvox.NavigationManager.prototype.readFrom=function(a){this.curSel_.setReversed(a.reversed);this.shifter_.readFrom(a);a.keepReading&&this.startReading(cvox.AbstractTts.QUEUE_MODE_FLUSH)};
+cvox.NavigationManager.prototype.reset=function(){this.navSpeaker_=new cvox.NavigationSpeaker;this.shifterTypes_=[cvox.NavigationShifter,cvox.TableShifter,cvox.MathShifter];this.shifterStack_=[];this.shifter_=new cvox.NavigationShifter;this.curSel_=document.activeElement!=document.body?cvox.CursorSelection.fromNode(document.activeElement):this.shifter_.begin(this.curSel_,{reversed:!1});this.prevSel_=this.curSel_.clone();this.ignoreIframesNoMatterWhat_=this.exitedShifter_=this.enteredShifter_=this.pageEndAnnounced_=
+this.pageEnd_=this.keepReading_=this.recovered_=this.skipped_=!1;this.pageSel_=null;this.predicate_="";this.saveSel_=null;this.activeIndicator&&this.activeIndicator.removeFromDom();this.activeIndicator=new cvox.ActiveIndicator;this.navigationHistory_=new cvox.NavigationHistory;this.focusRecovery_="chrome:"!=window.location.protocol;this.iframeIdMap={};this.nextIframeId=1;document.activeElement!=document.body&&this.sync();cvox.TraverseMath.getInstance()};
+cvox.NavigationManager.prototype.resolve=function(a){if(!this.getFocusRecovery())return!0;var b=this.getCurrentNode();if(!this.navigationHistory_.becomeInvalid(b)||this.hasNext_())return!0;b=this.navigationHistory_.revert(a);if(!b.current)return!0;a=cvox.CursorSelection.fromNode(b.current);b=cvox.CursorSelection.fromNode(b.previous);a=a||cvox.CursorSelection.fromBody();b=b||cvox.CursorSelection.fromBody();a.setReversed(this.isReversed());this.updateSel(a,b);this.recovered_=!0;return!1};
+cvox.NavigationManager.prototype.getFocusRecovery=function(){return this.focusRecovery_};cvox.NavigationManager.prototype.setFocusRecovery=function(a){this.focusRecovery_=a};cvox.NavigationManager.prototype.next_=function(a){return this.tryBoundaries_(this.shifter_.next(this.curSel_),a)?(this.pageSel_&&this.pageSel_.extend(this.curSel_),!0):!1};
+cvox.NavigationManager.prototype.hasNext_=function(){if(0<this.shifterStack_.length)return!0;var a=this.curSel_.clone(),b=!1,c=new cvox.NavigationShifter;c.setGranularity(this.shifter_.getGranularity());c.sync(a);c.next(a)&&(b=!0);return b};
+cvox.NavigationManager.prototype.findNext=function(a,b,c){this.predicate_=b||"";this.resolve();this.shifter_=this.shifterStack_[0]||this.shifter_;this.shifterStack_=[];a=cvox.FindUtil.findNext(this.curSel_,a,c);this.ignoreIframesNoMatterWhat_||this.tryIframe_(a&&a.start.node);a&&this.updateSelToArbitraryNode(a.start.node);this.predicate_="";return a};cvox.NavigationManager.prototype.sync=function(){this.resolve();var a=this.shifter_.sync(this.curSel_);a&&(this.curSel_=a)};
+cvox.NavigationManager.prototype.syncAll=function(a){this.sync();this.setFocus(a);this.updateIndicator()};cvox.NavigationManager.prototype.clearPageSel=function(a){var b=!!this.pageSel_;b&&a&&(a=cvox.ChromeVox.msgs.getMsg("clear_page_selection"),cvox.ChromeVox.tts.speak(a,cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION));this.pageSel_=null;return b};
+cvox.NavigationManager.prototype.togglePageSel=function(){this.pageSel_=this.pageSel_?null:new cvox.PageSelection(this.curSel_.setReversed(!1));return!!this.pageSel_};
+cvox.NavigationManager.prototype.getDescription=function(){if(this.getCurrentNode().hasAttribute&&this.getCurrentNode().hasAttribute("cvoxnodedesc")){for(var a=cvox.ChromeVoxJSON.parse(this.getCurrentNode().getAttribute("cvoxnodedesc")),b=[],c=0;c<a.length;++c){var d=a[c];b.push(new cvox.NavDescription({context:d.context,text:d.text,userValue:d.userValue,annotation:d.annotation}))}return b}var e=this.pageSel_?this.pageSel_.getDescription(this.shifter_,this.prevSel_,this.curSel_):this.shifter_.getDescription(this.prevSel_,
+this.curSel_),a=[];this.skipped_&&(a.push(cvox.AbstractEarcons.PARAGRAPH_BREAK),this.skipped_=!1);this.recovered_&&(a.push(cvox.AbstractEarcons.FONT_CHANGE),this.recovered_=!1);this.pageEnd_&&(a.push(cvox.AbstractEarcons.WRAP),this.pageEnd_=!1);this.enteredShifter_&&(a.push(cvox.AbstractEarcons.OBJECT_ENTER),this.enteredShifter_=!1);this.exitedShifter_&&(a.push(cvox.AbstractEarcons.OBJECT_EXIT),this.exitedShifter_=!1);0<a.length&&0<e.length&&a.forEach(function(a){e[0].pushEarcon(a)});return e};
+cvox.NavigationManager.prototype.getBraille=function(){return cvox.PlatformUtil.matchesPlatform(cvox.PlatformFilter.ANDROID|cvox.PlatformFilter.CHROMEOS)?this.shifter_.getBraille(this.prevSel_,this.curSel_):new cvox.NavBraille({})};
+cvox.NavigationManager.prototype.performAction=function(a){switch(a){case "enterShifter":case "enterShifterSilently":for(var b=this.shifterTypes_.length-1,c;c=this.shifterTypes_[b];b--)if((c=c.create(this.curSel_))&&c.getName()!=this.shifter_.getName()){this.shifterStack_.push(this.shifter_);this.shifter_=c;this.sync();this.enteredShifter_="enterShifterSilently"!=a;break}else if(c&&this.shifter_.getName()==c.getName())break;break;case "exitShifter":if(0==this.shifterStack_.length)return!1;this.shifter_=
+this.shifterStack_.pop();this.sync();this.exitedShifter_=!0;break;case "exitShifterContent":if(0==this.shifterStack_.length)return!1;this.updateSel(this.shifter_.performAction(a,this.curSel_));this.shifter_=this.shifterStack_.pop()||this.shifter_;this.sync();this.exitedShifter_=!0;break;default:return this.shifter_.hasAction(a)?this.updateSel(this.shifter_.performAction(a,this.curSel_)):!1}return!0};cvox.NavigationManager.prototype.getGranularityMsg=function(){return this.shifter_.getGranularityMsg()};
+cvox.NavigationManager.prototype.makeMoreGranular=function(a){this.shifter_.makeMoreGranular();this.sync();this.persistGranularity_(a)};cvox.NavigationManager.prototype.makeLessGranular=function(a){this.shifter_.makeLessGranular();this.sync();this.persistGranularity_(a)};cvox.NavigationManager.prototype.setGranularity=function(a,b,c){!b&&0<this.shifterStack_.length||(this.shifter_=this.shifterStack_.shift()||this.shifter_,this.shifter_.setGranularity(a),this.persistGranularity_(c))};
+cvox.NavigationManager.prototype.getGranularity=function(){var a=this.shifterStack_[0]||this.shifter_;return a.getGranularity()};cvox.NavigationManager.prototype.ensureSubnavigating=function(){this.shifter_.isSubnavigating()||(this.shifter_.ensureSubnavigating(),this.sync())};cvox.NavigationManager.prototype.ensureNotSubnavigating=function(){this.shifter_.isSubnavigating()&&(this.shifter_.ensureNotSubnavigating(),this.sync())};
+cvox.NavigationManager.prototype.speakDescriptionArray=function(a,b,c,d){d&&a.every(function(a){a.personality||(a.personality=d)});this.navSpeaker_.speakDescriptionArray(a,b,c)};cvox.NavigationManager.prototype.updatePosition=function(a){var b=cvox.ChromeVox.position;b[document.location.href]=cvox.DomUtil.elementToPoint(a);JSON.stringify(b)};
+cvox.NavigationManager.prototype.finishNavCommand=function(a,b,c,d){if(this.pageEnd_&&!this.pageEndAnnounced_)this.pageEndAnnounced_=!0,cvox.ChromeVox.tts.stop(),cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),cvox.ChromeVox.verbosity===cvox.VERBOSITY_VERBOSE&&(a=cvox.ChromeVox.msgs.getMsg("wrapped_to_top"),this.isReversed()&&(a=cvox.ChromeVox.msgs.getMsg("wrapped_to_bottom")),cvox.ChromeVox.tts.speak(a,cvox.AbstractTts.QUEUE_MODE_QUEUE,cvox.AbstractTts.PERSONALITY_ANNOTATION));else{if(this.enteredShifter_||
+this.exitedShifter_)a=cvox.ChromeVox.msgs.getMsg("enter_content_say",[this.shifter_.getName()]);var e=cvox.ChromeVox.navigationManager.getDescription();(b=void 0===b?!0:b)&&this.setFocus();this.updateIndicator();b=c||cvox.AbstractTts.QUEUE_MODE_FLUSH;a&&(cvox.ChromeVox.tts.speak(a,b,cvox.AbstractTts.PERSONALITY_ANNOTATION),b=cvox.AbstractTts.QUEUE_MODE_QUEUE);this.speakDescriptionArray(e,b,d||null);this.getBraille().write();this.updatePosition(this.getCurrentNode())}};
+cvox.NavigationManager.prototype.navigate=function(a,b){this.pageEndAnnounced_=!1;if(this.pageEnd_)return this.pageEnd_=!1,this.syncToBeginning(a),!0;if(!this.resolve())return!1;this.ensureNotSubnavigating();void 0!==b&&(b!==this.getGranularity()||0<this.shifterStack_.length)&&(this.setGranularity(b,!0),this.sync());return this.next_(!a)};cvox.NavigationManager.prototype.subnavigate=function(){this.pageEndAnnounced_=!1;this.resolve()&&(this.ensureSubnavigating(),this.next_(!0))};
+cvox.NavigationManager.prototype.skip=function(){if(!this.keepReading_)return!1;cvox.ChromeVox.host.hasTtsCallback()&&(this.skipped_=!0,this.setReversed(!1),this.startCallbackReading_(cvox.AbstractTts.QUEUE_MODE_FLUSH));return!0};cvox.NavigationManager.prototype.startReading=function(a){this.keepReading_=!0;cvox.ChromeVox.host.hasTtsCallback()?this.startCallbackReading_(a):this.startNonCallbackReading_(a);this.prevStickyState_=cvox.ChromeVox.isStickyOn};
+cvox.NavigationManager.prototype.stopReading=function(a){this.keepReading_=!1;this.navSpeaker_.stopReading=!0;a&&cvox.ChromeVox.tts.stop();void 0!=this.prevStickyState_&&(this.prevStickyState_=void 0)};cvox.NavigationManager.prototype.isReading=function(){return this.keepReading_};
+cvox.NavigationManager.prototype.startCallbackReading_=cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(a){this.finishNavCommand("",!0,a,goog.bind(function(){this.next_(!0)&&this.keepReading_&&this.startCallbackReading_(cvox.AbstractTts.QUEUE_MODE_QUEUE)},this))});
+cvox.NavigationManager.prototype.startNonCallbackReading_=cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(a){this.keepReading_&&(cvox.ChromeVox.tts.isSpeaking()||(this.finishNavCommand("",!0,a,null),this.next_(!0)||(this.keepReading_=!1)),window.setTimeout(goog.bind(this.startNonCallbackReading_,this),1E3))});
+cvox.NavigationManager.prototype.getFullDescription=function(){return this.pageSel_?this.pageSel_.getFullDescription():[cvox.DescriptionUtil.getDescriptionFromAncestors(cvox.DomUtil.getAncestors(this.curSel_.start.node),!0,cvox.ChromeVox.verbosity)]};cvox.NavigationManager.prototype.setFocus=function(a){this.pageSel_||a&&this.curSel_.start.node.constructor==Text||cvox.Focuser.setFocus(this.curSel_.start.node)};cvox.NavigationManager.prototype.getCurrentNode=function(){return this.curSel_.absStart().node};
+cvox.NavigationManager.prototype.addInterframeListener_=function(){var a=this;cvox.Interframe.addListener(function(b){if("enterIframe"==b.command||"exitIframe"==b.command)cvox.ChromeVox.serializer.readFrom(b),a.keepReading_||cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(){window.focus();if(b.findNext){var c=b.findNext,d=cvox.DomPredicates[c],c=a.findNext(d,c,!0);if(d&&(!c||"IFRAME"==c.start.node.tagName))return}else if("exitIframe"==b.command)d=b.sourceId,d=a.iframeIdMap[d],c=b.reversed,
+d&&a.updateSel(cvox.CursorSelection.fromNode(d)),a.setReversed(c),a.sync(),a.navigate();else if(a.syncToBeginning(),!cvox.DomUtil.hasContent(document.body)){a.tryIframe_(null);return}a.finishNavCommand("",!0)})()})};cvox.NavigationManager.prototype.updateIndicator=function(){this.activeIndicator.syncToCursorSelection(this.curSel_)};cvox.NavigationManager.prototype.updateIndicatorIfChanged=function(){this.activeIndicator.updateIndicatorIfChanged()};
+cvox.NavigationManager.prototype.showOrHideIndicator=function(a){a||this.activeIndicator.removeFromDom()};cvox.NavigationManager.prototype.collapseSelection=function(){this.curSel_.collapse()};cvox.NavigationManager.prototype.updateSelToArbitraryNode=function(a,b){a?(this.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0),this.updateSel(cvox.CursorSelection.fromNode(a)),b||this.sync()):this.syncToBeginning()};
+cvox.NavigationManager.prototype.updateSel=function(a,b){a&&(this.prevSel_=b||this.curSel_,this.curSel_=a);var c=this.getCurrentNode();this.navigationHistory_.update(c);return!!a};cvox.NavigationManager.prototype.setReversed=function(a){this.curSel_.setReversed(a)};cvox.NavigationManager.prototype.isReversed=function(){return this.curSel_.isReversed()};
+cvox.NavigationManager.prototype.tryBoundaries_=function(a,b){b=!!b&&!this.ignoreIframesNoMatterWhat_||!1;this.pageEnd_=!1;if(b&&this.tryIframe_(a&&a.start.node))return!0;if(a)return this.updateSel(a),!0;if(0<this.shifterStack_.length)return!0;this.syncToBeginning(!b);this.clearPageSel(!0);this.stopReading(!0);this.pageEnd_=!0;return!1};
+cvox.NavigationManager.prototype.tryIframe_=function(a){if(null==a&&cvox.Interframe.isIframe()){var b={command:"exitIframe",reversed:this.isReversed(),granularity:this.getGranularity()};cvox.ChromeVox.serializer.storeOn(b);cvox.Interframe.sendMessageToParentWindow(b);return!0}if(null==a||"IFRAME"!=a.tagName||!a.src)return!1;var c=void 0;for(b in this.iframeIdMap)if(this.iframeIdMap[b]==a){c=b;break}void 0==c&&(c=this.nextIframeId,this.nextIframeId++,this.iframeIdMap[c]=a,cvox.Interframe.sendIdToIFrame(c,
+a));b={command:"enterIframe",id:c};cvox.ChromeVox.serializer.storeOn(b);cvox.Interframe.sendMessageToIFrame(b,a);return!0};cvox.NavigationManager.prototype.syncToBeginning=function(a){var b=this.shifter_.begin(this.curSel_,{reversed:this.curSel_.isReversed()});!a&&this.tryIframe_(b&&b.start.node)||this.updateSel(b)};cvox.NavigationManager.prototype.ignoreIframesNoMatterWhat=function(){this.ignoreIframesNoMatterWhat_=!0};cvox.NavigationManager.prototype.saveSel=function(){this.saveSel_=this.curSel_};
+cvox.NavigationManager.prototype.restoreSel=function(){this.curSel_=this.saveSel_||this.curSel_};cvox.NavigationManager.prototype.persistGranularity_=function(a){(a=void 0===a?!1:a)&&this.getGranularity()};cvox.SearchWidget=function(){this.txtNode_=this.containerNode_=null;this.PROMPT_="Search:";this.hasMatch_=this.caseSensitive_=!1;cvox.Widget.call(this)};goog.inherits(cvox.SearchWidget,cvox.Widget);goog.addSingletonGetter(cvox.SearchWidget);
+cvox.SearchWidget.prototype.show=function(){cvox.SearchWidget.superClass_.show.call(this);this.active=!0;this.hasMatch_=!1;cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0,!1);cvox.ChromeVox.navigationManager.setReversed(!1);this.focusRecovery_=cvox.ChromeVox.navigationManager.getFocusRecovery();cvox.ChromeVox.navigationManager.setFocusRecovery(!1);var a=this.createContainerNode_();this.containerNode_=a;var b=this.createOverlayNode_();a.appendChild(b);
+var c=document.createElement("span");c.innerHTML=this.PROMPT_;b.appendChild(c);this.txtNode_=this.createTextAreaNode_();b.appendChild(this.txtNode_);document.body.appendChild(a);this.txtNode_.focus();window.setTimeout(function(){a.style.opacity="1.0"},0)};
+cvox.SearchWidget.prototype.hide=function(a){if(this.isActive()){var b=this.containerNode_;b.style.opacity="0.0";window.setTimeout(function(){document.body.removeChild(b)},1E3);this.txtNode_=null;cvox.SearchWidget.containerNode=null;cvox.ChromeVox.navigationManager.setFocusRecovery(this.focusRecovery_);this.active=!1}cvox.$m("choice_widget_exited").andPause().andMessage(this.getNameMsg()).speakFlush();this.hasMatch_&&a||cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(this.initialNode);cvox.ChromeVoxEventSuspender.withSuspendedEvents(goog.bind(cvox.ChromeVox.navigationManager.syncAll,
+cvox.ChromeVox.navigationManager))(!0);cvox.ChromeVox.navigationManager.speakDescriptionArray(cvox.ChromeVox.navigationManager.getDescription(),cvox.AbstractTts.QUEUE_MODE_QUEUE,null,cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT);a=this.textFromCurrentDescription_();cvox.ChromeVox.braille.write(new cvox.NavBraille({text:a,startIndex:0,endIndex:0}));cvox.SearchWidget.superClass_.hide.call(this,!0)};cvox.SearchWidget.prototype.getNameMsg=function(){return["search_widget_intro"]};
+cvox.SearchWidget.prototype.getHelpMsg=function(){return"search_widget_intro_help"};
+cvox.SearchWidget.prototype.onKeyDown=function(a){if(!this.isActive())return!1;var b=this.txtNode_.value;if(8==a.keyCode)0<b.length?(b=b.substring(0,b.length-1),this.txtNode_.value=b,this.beginSearch_(b)):(cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(this.initialNode),cvox.ChromeVox.navigationManager.syncAll());else if(40==a.keyCode)this.next_(b,!1);else if(38==a.keyCode)this.next_(b,!0);else if(13==a.keyCode)this.hide(!0);else if(27==a.keyCode)this.hide(!1);else if(a.ctrlKey&&67==a.keyCode)this.toggleCaseSensitivity_();
+else return cvox.SearchWidget.superClass_.onKeyDown.call(this,a);a.preventDefault();a.stopPropagation();return!0};cvox.SearchWidget.prototype.onKeyPress=function(a){if(!this.isActive())return!1;this.txtNode_.value+=String.fromCharCode(a.charCode);var b=this.txtNode_.value;this.beginSearch_(b);a.preventDefault();a.stopPropagation();return!0};cvox.SearchWidget.prototype.onNavigate=function(){};cvox.SearchWidget.prototype.getPredicate=function(){return null};
+cvox.SearchWidget.prototype.nextResult=function(a){if(!this.isActive())return null;var b=this.txtNode_.value;return this.next_(b,a)};cvox.SearchWidget.prototype.createContainerNode_=function(){var a=document.createElement("div");a.id="cvox-search";a.style.position="fixed";a.style.top="50%";a.style.left="50%";a.style["-webkit-transition"]="all 0.3s ease-in";a.style.opacity="0.0";a.style["z-index"]="2147483647";a.setAttribute("aria-hidden","true");return a};
+cvox.SearchWidget.prototype.createOverlayNode_=function(){var a=document.createElement("div");a.style.position="relative";a.style.left="-50%";a.style.top="-40px";a.style["line-height"]="1.2em";a.style["font-size"]="20px";a.style.padding="30px";a.style["min-width"]="150px";a.style.color="#fff";a.style["background-color"]="rgba(0, 0, 0, 0.7)";a.style["border-radius"]="10px";return a};
+cvox.SearchWidget.prototype.createTextAreaNode_=function(){var a=document.createElement("textarea");a.setAttribute("aria-hidden","true");a.setAttribute("rows","1");a.style.color="#fff";a.style["background-color"]="rgba(0, 0, 0, 0.7)";a.style["vertical-align"]="middle";a.addEventListener("textInput",this.handleSearchChanged_,!1);return a};
+cvox.SearchWidget.prototype.toggleCaseSensitivity_=function(){this.caseSensitive_?(cvox.SearchWidget.caseSensitive_=!1,cvox.ChromeVox.tts.speak("Ignoring case.",0,null)):(this.caseSensitive_=!0,cvox.ChromeVox.tts.speak("Case sensitive.",0,null))};
+cvox.SearchWidget.prototype.getNextResult_=function(a){var b=cvox.ChromeVox.navigationManager.isReversed();this.caseSensitive_||(a=a.toLowerCase());cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0,!1);do{if(this.getPredicate()){var c=this.getPredicate()(cvox.DomUtil.getAncestors(cvox.ChromeVox.navigationManager.getCurrentNode()));if(!c)continue}for(var c=cvox.ChromeVox.navigationManager.getDescription(),d=0;d<c.length;d++){var e=this.caseSensitive_?c[d].text:
+c[d].text.toLowerCase(),f=e.indexOf(a);-1!=f&&e.length>a.length&&(c[d].text=cvox.DomUtil.collapseWhitespace(e.substring(0,f))+", "+a+", "+e.substring(f+a.length),c[d].text=cvox.DomUtil.collapseWhitespace(c[d].text));if(-1!=f)return c}cvox.ChromeVox.navigationManager.setReversed(b)}while(cvox.ChromeVox.navigationManager.navigate(!0,cvox.NavigationShifter.GRANULARITIES.OBJECT))};cvox.SearchWidget.prototype.beginSearch_=function(a){var b=this.getNextResult_(a);this.outputSearchResult_(b,a);this.onNavigate()};
+cvox.SearchWidget.prototype.next_=function(a,b){cvox.ChromeVox.navigationManager.setReversed(!!b);var c=!1;this.getPredicate()?(c=cvox.ChromeVox.navigationManager.findNext(this.getPredicate()),cvox.ChromeVox.navigationManager.setReversed(!!b),c||(cvox.ChromeVox.navigationManager.syncToBeginning(),cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),c=!0)):c=cvox.ChromeVox.navigationManager.navigate(!0);c=c?this.getNextResult_(a):null;this.outputSearchResult_(c,a);this.onNavigate();return c};
+cvox.SearchWidget.prototype.outputSearchResult_=function(a,b){cvox.ChromeVox.tts.stop();a?(this.hasMatch_=!0,cvox.ChromeVoxEventSuspender.withSuspendedEvents(goog.bind(cvox.ChromeVox.navigationManager.syncAll,cvox.ChromeVox.navigationManager))(!0),cvox.ChromeVox.navigationManager.speakDescriptionArray(a,cvox.AbstractTts.QUEUE_MODE_FLUSH,null,cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT),cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("search_help_item"),cvox.AbstractTts.QUEUE_MODE_QUEUE,cvox.AbstractTts.PERSONALITY_ANNOTATION),
+this.outputSearchResultToBraille_(b)):(cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),this.hasMatch_=!1)};
+cvox.SearchWidget.prototype.outputSearchResultToBraille_=function(a){if(cvox.ChromeVox.braille){var b=this.textFromCurrentDescription_(),c=this.caseSensitive_?b:b.toLowerCase();a=this.caseSensitive_?a:a.toLowerCase();c=c.indexOf(a);if(-1==c)console.log("Search string not in result when preparing for Braille.");else{var d=b.length,b=cvox.ChromeVox.msgs.getMsg("mark_as_search_result_brl",[b]),e=b.length,c=c+(e-d);cvox.ChromeVox.braille.write(new cvox.NavBraille({text:b,startIndex:c+a.length,endIndex:c+
+a.length}))}}};cvox.SearchWidget.prototype.textFromCurrentDescription_=function(){for(var a=cvox.ChromeVox.navigationManager.getDescription(),b="",c=0;c<a.length;c++)b+=a[c].text+" ";return b};cvox.SearchWidget.prototype.handleSearchChanged_=function(a){a=a.target.value+a.data;cvox.SearchWidget.prototype.beginSearch_(a)};cvox.OverlayWidget=function(a){cvox.SearchWidget.call(this);this.snippet_=a};goog.inherits(cvox.OverlayWidget,cvox.SearchWidget);
+cvox.OverlayWidget.prototype.show=function(){cvox.OverlayWidget.superClass_.show.call(this);var a=document.createElement("DIV");a.innerHTML=this.snippet_;var b=cvox.DomUtil.elementToPoint(cvox.ChromeVox.navigationManager.getCurrentNode());a.style.position="absolute";a.style.left=b.x;a.style.top=b.y;document.body.appendChild(a);cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(a);this.host_=a};cvox.OverlayWidget.prototype.hide=function(){this.host_.remove();cvox.OverlayWidget.superClass_.hide.call(this)};
+cvox.OverlayWidget.prototype.onKeyDown=function(a){cvox.OverlayWidget.superClass_.onKeyDown.call(this,a);if(13==a.keyCode||27==a.keyCode)return!0;a=cvox.ChromeVox.navigationManager.isReversed();cvox.DomUtil.isDescendantOfNode(cvox.ChromeVox.navigationManager.getCurrentNode(),this.host_)||(a?cvox.ChromeVox.navigationManager.syncToBeginning():cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(this.host_),this.onNavigate(),cvox.ChromeVox.navigationManager.speakDescriptionArray(cvox.ChromeVox.navigationManager.getDescription(),
+0,null))};cvox.KeyboardHelpWidget=function(){cvox.OverlayWidget.call(this,"");this.container_=document.createElement("div");var a=cvox.ChromeVoxKbHandler.handlerKeyMap;a.bindings().forEach(goog.bind(function(a){var c=a.command;a=a.sequence;var d=c;try{var e=cvox.CommandStore.messageForCommand(c);if(!e)return;d=cvox.ChromeVox.msgs.getMsg(e)}catch(f){}e=document.createElement("p");e.id=c;e.setAttribute("role","menuitem");e.textContent=d+" - "+cvox.KeyUtil.keySequenceToString(a,!0);this.container_.appendChild(e)},
+this))};goog.inherits(cvox.KeyboardHelpWidget,cvox.OverlayWidget);goog.addSingletonGetter(cvox.KeyboardHelpWidget);cvox.KeyboardHelpWidget.prototype.show=function(){cvox.KeyboardHelpWidget.superClass_.show.call(this);this.host_.appendChild(this.container_)};cvox.KeyboardHelpWidget.prototype.getNameMsg=function(){return["keyboard_help_intro"]};
+cvox.KeyboardHelpWidget.prototype.onKeyDown=function(a){if(13==a.keyCode){var b=cvox.ChromeVox.navigationManager.getCurrentNode().parentNode.id;this.hide();cvox.ChromeVoxEventSuspender.withSuspendedEvents(cvox.ChromeVoxUserCommands.commands[b])();a.preventDefault();a.stopPropagation();return!0}return cvox.KeyboardHelpWidget.superClass_.onKeyDown.call(this,a)};goog.object={};goog.object.forEach=function(a,b,c){for(var d in a)b.call(c,a[d],d,a)};goog.object.filter=function(a,b,c){var d={},e;for(e in a)b.call(c,a[e],e,a)&&(d[e]=a[e]);return d};goog.object.map=function(a,b,c){var d={},e;for(e in a)d[e]=b.call(c,a[e],e,a);return d};goog.object.some=function(a,b,c){for(var d in a)if(b.call(c,a[d],d,a))return!0;return!1};goog.object.every=function(a,b,c){for(var d in a)if(!b.call(c,a[d],d,a))return!1;return!0};
+goog.object.getCount=function(a){var b=0,c;for(c in a)b++;return b};goog.object.getAnyKey=function(a){for(var b in a)return b};goog.object.getAnyValue=function(a){for(var b in a)return a[b]};goog.object.contains=function(a,b){return goog.object.containsValue(a,b)};goog.object.getValues=function(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b};goog.object.getKeys=function(a){var b=[],c=0,d;for(d in a)b[c++]=d;return b};
+goog.object.getValueByKeys=function(a,b){for(var c=goog.isArrayLike(b),d=c?b:arguments,c=c?0:1;c<d.length&&(a=a[d[c]],goog.isDef(a));c++);return a};goog.object.containsKey=function(a,b){return b in a};goog.object.containsValue=function(a,b){for(var c in a)if(a[c]==b)return!0;return!1};goog.object.findKey=function(a,b,c){for(var d in a)if(b.call(c,a[d],d,a))return d};goog.object.findValue=function(a,b,c){return(b=goog.object.findKey(a,b,c))&&a[b]};
+goog.object.isEmpty=function(a){for(var b in a)return!1;return!0};goog.object.clear=function(a){for(var b in a)delete a[b]};goog.object.remove=function(a,b){var c;(c=b in a)&&delete a[b];return c};goog.object.add=function(a,b,c){if(b in a)throw Error('The object already contains the key "'+b+'"');goog.object.set(a,b,c)};goog.object.get=function(a,b,c){return b in a?a[b]:c};goog.object.set=function(a,b,c){a[b]=c};goog.object.setIfUndefined=function(a,b,c){return b in a?a[b]:a[b]=c};
+goog.object.clone=function(a){var b={},c;for(c in a)b[c]=a[c];return b};goog.object.unsafeClone=function(a){var b=goog.typeOf(a);if("object"==b||"array"==b){if(a.clone)return a.clone();var b="array"==b?[]:{},c;for(c in a)b[c]=goog.object.unsafeClone(a[c]);return b}return a};goog.object.transpose=function(a){var b={},c;for(c in a)b[a[c]]=c;return b};goog.object.PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
+goog.object.extend=function(a,b){for(var c,d,e=1;e<arguments.length;e++){d=arguments[e];for(c in d)a[c]=d[c];for(var f=0;f<goog.object.PROTOTYPE_FIELDS_.length;f++)c=goog.object.PROTOTYPE_FIELDS_[f],Object.prototype.hasOwnProperty.call(d,c)&&(a[c]=d[c])}};
+goog.object.create=function(a){var b=arguments.length;if(1==b&&goog.isArray(arguments[0]))return goog.object.create.apply(null,arguments[0]);if(b%2)throw Error("Uneven number of arguments");for(var c={},d=0;d<b;d+=2)c[arguments[d]]=arguments[d+1];return c};goog.object.createSet=function(a){var b=arguments.length;if(1==b&&goog.isArray(arguments[0]))return goog.object.createSet.apply(null,arguments[0]);for(var c={},d=0;d<b;d++)c[arguments[d]]=!0;return c};
+goog.object.createImmutableView=function(a){var b=a;Object.isFrozen&&!Object.isFrozen(a)&&(b=Object.create(a),Object.freeze(b));return b};goog.object.isImmutableView=function(a){return!!Object.isFrozen&&Object.isFrozen(a)};cvox.UserEventDetail=function(a){this.command=this.category="";-1!=cvox.UserEventDetail.JUMP_COMMANDS.indexOf(a.command)&&(this.command=a.command,this.category=cvox.UserEventDetail.Category.JUMP);this.customCommand="";a.customCommand&&(this.customCommand=a.customCommand,this.category=cvox.UserEventDetail.Category.CUSTOM);this.status=cvox.UserEventDetail.Status.PENDING;switch(a.status){case cvox.UserEventDetail.Status.SUCCESS:this.status=cvox.UserEventDetail.Status.SUCCESS;break;case cvox.UserEventDetail.Status.FAILURE:this.status=
+cvox.UserEventDetail.Status.FAILURE}this.resultNode=null;a.resultNode&&cvox.DomUtil.isAttachedToDocument(a.resultNode)&&(this.resultNode=a.resultNode)};cvox.UserEventDetail.Category={JUMP:"ATJumpEvent",CUSTOM:"ATCustomEvent"};cvox.UserEventDetail.Status={PENDING:"PENDING",SUCCESS:"SUCCESS",FAILURE:"FAILURE"};cvox.UserEventDetail.JUMP_COMMANDS="nextCheckbox previousCheckbox nextRadio previousRadio nextSlider previousSlider nextGraphic previousGraphic nextButton previousButton nextComboBox previousComboBox nextEditText previousEditText nextHeading previousHeading nextHeading1 previousHeading1 nextHeading2 previousHeading2 nextHeading3 previousHeading3 nextHeading4 previousHeading4 nextHeading5 previousHeading5 nextHeading6 previousHeading6 nextLink previousLink nextMath previousMath nextTable previousTable nextList previousList nextListItem previousListItem nextFormField previousFormField nextLandmark previousLandmark nextSection previousSection nextControl previousControl".split(" ");
+cvox.UserEventDetail.prototype.createEventObject=function(){var a=document.createEvent("CustomEvent");a.initCustomEvent(this.category,!0,!0,this);return a};var extractMenuList_=function(a){for(;a!==document;){var b=a.getAttribute("contextMenuActions");if(b)return JSON.parse(b);a=a.parentNode}return null},getCurrentElement_=function(){for(var a=cvox.ChromeVox.navigationManager.getCurrentNode();a.nodeType!==Node.ELEMENT_NODE;)a=a.parentNode;return a};
+cvox.ContextMenuWidget=function(){cvox.OverlayWidget.call(this,"");this.container_=document.createElement("div");this.triggerElement_=getCurrentElement_();(this.menuList=extractMenuList_(this.triggerElement_))?this.menuList.forEach(goog.bind(function(a){if(a.desc||a.cmd){var b=a.desc;a=a.cmd;var c=document.createElement("p");c.id=a;c.textContent=b;c.setAttribute("role","menuitem");this.container_.appendChild(c)}},this)):console.log("No context menu found.")};goog.inherits(cvox.ContextMenuWidget,cvox.OverlayWidget);
+cvox.ContextMenuWidget.prototype.show=function(){this.menuList&&(cvox.ContextMenuWidget.superClass_.show.call(this),this.host_.appendChild(this.container_))};cvox.ContextMenuWidget.prototype.getNameMsg=function(){return["context_menu_intro"]};
+cvox.ContextMenuWidget.prototype.onKeyDown=function(a){if(13==a.keyCode){var b=cvox.ChromeVox.navigationManager.getCurrentNode(),b=b.parentNode.id,b=new cvox.UserEventDetail({customCommand:b}),b=b.createEventObject();this.triggerElement_.dispatchEvent(b);this.hide();a.preventDefault();a.stopPropagation();return!0}return cvox.ContextMenuWidget.superClass_.onKeyDown.call(this,a)};cvox.NodeSearchWidget=function(a,b){this.typeMsg_=a;this.predicate_=b;cvox.SearchWidget.call(this)};goog.inherits(cvox.NodeSearchWidget,cvox.SearchWidget);cvox.NodeSearchWidget.prototype.getNameMsg=function(){return["choice_widget_name",[cvox.ChromeVox.msgs.getMsg(this.typeMsg_)]]};cvox.NodeSearchWidget.prototype.getHelpMsg=function(){return"choice_widget_help"};cvox.NodeSearchWidget.prototype.getPredicate=function(){return this.predicate_};
+cvox.NodeSearchWidget.create=function(a,b){return new cvox.NodeSearchWidget(a,b)};cvox.SelectWidget=function(a){cvox.OverlayWidget.call(this,"");this.selectNode_=a};goog.inherits(cvox.SelectWidget,cvox.OverlayWidget);
+cvox.SelectWidget.prototype.show=function(){cvox.SelectWidget.superClass_.show.call(this);var a=document.createElement("div");a.setAttribute("role","menu");for(var b=0,c=null;c=this.selectNode_.options[b];b++){var d=document.createElement("p");d.innerHTML=c.innerHTML;d.id=b;d.setAttribute("role","menuitem");a.appendChild(d)}this.host_.appendChild(a);b=this.selectNode_.selectedIndex;"number"==typeof b&&cvox.ChromeVox.syncToNode(a.children[b],!0)};
+cvox.SelectWidget.prototype.hide=function(){var a=document.createEvent("Event");a.initEvent("change",!1,!1);this.selectNode_.dispatchEvent(a);cvox.SelectWidget.superClass_.hide.call(this,!0)};cvox.SelectWidget.prototype.onNavigate=function(){var a=this;cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(){var b=cvox.ChromeVox.navigationManager.getCurrentNode().parentNode.id;a.selectNode_.selectedIndex=b})()};cvox.SelectWidget.prototype.getNameMsg=function(){return["aria_role_menu"]};cvox.FocusUtil=function(){};cvox.FocusUtil.INPUT_TYPE_ACCEPTS_SELECTION_TABLE={hidden:!1,text:!0,search:!0,tel:!0,url:!0,email:!0,password:!0,datetime:!1,date:!1,month:!1,week:!1,time:!1,"datetime-local":!1,number:!1,range:!1,color:!1,checkbox:!1,radio:!1,file:!1,submit:!1,image:!1,reset:!1,button:!1};
+cvox.FocusUtil.isFocusInTextInputField=function(){var a=document.activeElement;return a?a.isContentEditable||"textbox"==a.getAttribute("role")?!0:"true"==a.getAttribute("readOnly")?!1:"TEXTAREA"===a.tagName||"SELECT"===a.tagName?!0:"INPUT"===a.tagName?a.hasAttribute("type")?(a=a.getAttribute("type").toLowerCase(),cvox.FocusUtil.INPUT_TYPE_ACCEPTS_SELECTION_TABLE[a]):!0:!1:!1};cvox.SpokenListBuilder=function(){this.list_=[]};cvox.SpokenListBuilder.prototype.flush=function(a){this.list_.push([a,cvox.AbstractTts.QUEUE_MODE_FLUSH]);return this};cvox.SpokenListBuilder.prototype.build=function(){return this.list_};cvox.RunnerInterface=function(){};cvox.RunnerInterface.prototype.setFocus=function(){};cvox.AbstractTestCase=function(){};cvox.TestTts=function(){cvox.AbstractTts.call(this);this.utterances_=[]};goog.inherits(cvox.TestTts,cvox.AbstractTts);cvox.TestTts.prototype.sentinelText_="@@@STOP@@@";cvox.TestTts.prototype.speak=function(a,b,c){this.utterances_.push({text:a,queueMode:b});c&&void 0!=c.endCallback&&(a=this.utterances_.length,this.utterances_[a-1].text!=this.sentinelText_&&c.endCallback())};cvox.HostFactory.ttsConstructor=cvox.TestTts;cvox.AutoRunner=function(){new cvox.TestTts};cvox.AutoRunner.TestSummary=function(a,b,c,d){this.tag=a;this.status=c;this.scope=d};cvox.AutoRunner.PASS="pass";cvox.AutoRunner.FAIL="fail";cvox.AutoRunner.prototype.setFocus=function(a){document.getElementById(a).focus();return this};cvox.ChromeVoxUserCommands={};cvox.ChromeVoxUserCommands.init_=function(){if(!cvox.ChromeVoxUserCommands.commands){cvox.ChromeVoxUserCommands.commands={};for(var a in cvox.CommandStore.CMD_WHITELIST)cvox.ChromeVoxUserCommands.commands[a]=cvox.ChromeVoxUserCommands.createCommand_(a)}};cvox.ChromeVoxUserCommands.wasMouseClicked=!1;cvox.ChromeVoxUserCommands.enableCommandDispatchingToPage=!0;
+cvox.ChromeVoxUserCommands.handleTabAction_=function(){cvox.ChromeVox.tts.stop();if(!cvox.ChromeVox.navigationManager.resolve(cvox.DomUtil.isFocusable))return cvox.ChromeVox.navigationManager.setFocus(),!1;var a=cvox.ChromeVoxUserCommands.isFocusedOnLinkControl_();if(a)return!0;var b=a=null,b=window.getSelection();cvox.ChromeVoxUserCommands.wasMouseClicked?cvox.ChromeVoxUserCommands.wasMouseClicked=!1:b=null;null==b||null==b.anchorNode||null==b.focusNode?(a=cvox.ChromeVox.navigationManager.getCurrentNode(),
+b=cvox.ChromeVox.navigationManager.getCurrentNode()):(a=b.anchorNode,b=b.focusNode);if(null==a||null==b)return!0;if(cvox.DomUtil.isFocusable(a))return a.focus(),!0;if(cvox.DomUtil.isFocusable(b))return b.focus(),!0;if(cvox.DomUtil.isFocusable(a.parentNode))return a.parentNode.focus(),!0;if(cvox.DomUtil.isFocusable(b.parentNode))return b.parentNode.focus(),!0;b=cvox.ChromeVoxUserCommands.createTabDummySpan_();a.parentNode.insertBefore(b,a);b.focus();return!0};
+cvox.ChromeVoxUserCommands.isFocusedOnLinkControl_=function(){var a="A";return document.activeElement.tagName==a||cvox.DomUtil.isControl(document.activeElement)?!0:!1};cvox.ChromeVoxUserCommands.removeTabDummySpan=function(){var a=document.getElementById("ChromeVoxTabDummySpan");a&&document.activeElement!=a&&a.parentNode.removeChild(a)};cvox.ChromeVoxUserCommands.createTabDummySpan_=function(){var a=document.createElement("span");a.id="ChromeVoxTabDummySpan";a.tabIndex=-1;return a};
+cvox.ChromeVoxUserCommands.createCommand_=function(a){return goog.bind(function(b){b=cvox.ChromeVoxUserCommands.lookupCommand_(a,b);return cvox.ChromeVoxUserCommands.dispatchCommand_(b)},cvox.ChromeVoxUserCommands)};
+cvox.ChromeVoxUserCommands.dispatchCommand_=function(a){if(cvox.Widget.isActive()||!cvox.PlatformUtil.matchesPlatform(a.platformFilter)||a.skipInput&&cvox.FocusUtil.isFocusInTextInputField())return!0;if(cvox.ChromeVoxUserCommands.enableCommandDispatchingToPage&&-1!=cvox.UserEventDetail.JUMP_COMMANDS.indexOf(a.command)){a=new cvox.UserEventDetail({command:a.command});a=a.createEventObject();var b=cvox.ChromeVox.navigationManager.getCurrentNode();b||(b=document.body);b.dispatchEvent(a);return!1}return cvox.ChromeVoxUserCommands.doCommand_(a)};
+cvox.ChromeVoxUserCommands.doCommand_=function(a){if(cvox.Widget.isActive()||!cvox.PlatformUtil.matchesPlatform(a.platformFilter)||a.skipInput&&cvox.FocusUtil.isFocusInTextInputField()||a.disallowOOBE&&document.URL.match(/^chrome:\/\/oobe/i))return!0;var b=a.command;a.allowEvents||cvox.ChromeVoxEventSuspender.enterSuspendEvents();a.disallowContinuation&&cvox.ChromeVox.navigationManager.stopReading(!0);a.forward?cvox.ChromeVox.navigationManager.setReversed(!1):a.backward&&cvox.ChromeVox.navigationManager.setReversed(!0);
+a.findNext&&(b="find",a.announce=!0);var c="",d="",e=!1;switch(b){case "handleTab":case "handleTabPrev":e=cvox.ChromeVoxUserCommands.handleTabAction_();break;case "forward":case "backward":e=!cvox.ChromeVox.navigationManager.navigate();break;case "right":case "left":cvox.ChromeVox.navigationManager.subnavigate();break;case "find":if(!a.findNext)throw"Invalid find command.";var f=cvox.CommandStore.NODE_INFO_MAP[a.findNext],g=f.predicate,h=cvox.DomPredicates[g],k="",l="";a.forward?(l=cvox.ChromeVox.msgs.getMsg("wrapped_to_top"),
+k=cvox.ChromeVox.msgs.getMsg(f.forwardError)):a.backward&&(l=cvox.ChromeVox.msgs.getMsg("wrapped_to_bottom"),k=cvox.ChromeVox.msgs.getMsg(f.backwardError));var f=null,m=a.status||cvox.UserEventDetail.Status.PENDING,p=a.resultNode||null;switch(m){case cvox.UserEventDetail.Status.SUCCESS:p&&cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(p,!0);break;case cvox.UserEventDetail.Status.FAILURE:d=k;break;default:f=cvox.ChromeVox.navigationManager.findNext(h,g),f||(cvox.ChromeVox.navigationManager.saveSel(),
+d=l,cvox.ChromeVox.navigationManager.syncToBeginning(),cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),f=cvox.ChromeVox.navigationManager.findNext(h,g,!0),f||(d=k,cvox.ChromeVox.navigationManager.restoreSel()))}f&&"IFRAME"==f.start.node.tagName&&(a.announce=!1);break;case "previousGranularity":cvox.ChromeVox.navigationManager.makeLessGranular(!0);d=cvox.ChromeVox.navigationManager.getGranularityMsg();break;case "nextGranularity":cvox.ChromeVox.navigationManager.makeMoreGranular(!0);d=
+cvox.ChromeVox.navigationManager.getGranularityMsg();break;case "previousCharacter":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.CHARACTER);break;case "nextCharacter":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.CHARACTER);break;case "previousWord":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.WORD);break;case "nextWord":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.WORD);
+break;case "previousSentence":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.SENTENCE);break;case "nextSentence":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.SENTENCE);break;case "previousLine":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.LINE);break;case "nextLine":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.LINE);break;case "previousObject":cvox.ChromeVox.navigationManager.navigate(!1,
+cvox.NavigationShifter.GRANULARITIES.OBJECT);break;case "nextObject":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.OBJECT);break;case "previousGroup":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.GROUP);break;case "nextGroup":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.GROUP);break;case "previousRow":case "previousCol":b="previousRow"==b?"nextRow":"nextCol";case "nextRow":case "nextCol":cvox.ChromeVox.navigationManager.performAction("enterShifterSilently");
+cvox.ChromeVox.navigationManager.performAction(b);break;case "moveToStartOfLine":case "moveToEndOfLine":cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.LINE);cvox.ChromeVox.navigationManager.sync();cvox.ChromeVox.navigationManager.collapseSelection();break;case "readFromHere":cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0,!0);cvox.ChromeVox.navigationManager.startReading(cvox.AbstractTts.QUEUE_MODE_FLUSH);break;case "cycleTypingEcho":break;
+case "jumpToTop":case cvox.BrailleKeyCommand.TOP:cvox.ChromeVox.navigationManager.syncToBeginning();break;case "jumpToBottom":case cvox.BrailleKeyCommand.BOTTOM:cvox.ChromeVox.navigationManager.syncToBeginning();break;case "stopSpeech":cvox.ChromeVox.navigationManager.stopReading(!0);break;case "toggleKeyboardHelp":cvox.KeyboardHelpWidget.getInstance().toggle();break;case "help":cvox.ChromeVox.tts.stop();break;case "contextMenu":g=cvox.ChromeVox.navigationManager.getCurrentNode();"SELECT"!=g.tagName||
+g.multiple?(g=new cvox.ContextMenuWidget,g.toggle()):(new cvox.SelectWidget(g)).show();break;case "showBookmarkManager":break;case "showOptionsPage":cvox.ChromeVox.tts.stop();break;case "showKbExplorerPage":cvox.ChromeVox.tts.stop();break;case "readLinkURL":g=document.activeElement;h=window.getSelection().anchorNode;k="";"A"==g.tagName?k=cvox.DomUtil.getLinkURL(g):h&&(k=cvox.DomUtil.getLinkURL(h.parentNode));""!=k?cvox.ChromeVox.tts.speak(k):cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("no_url_found"));
+break;case "readCurrentTitle":cvox.ChromeVox.tts.speak(document.title);break;case "readCurrentURL":cvox.ChromeVox.tts.speak(document.URL);break;case "performDefaultAction":cvox.DomPredicates.linkPredicate([document.activeElement])&&(a.announce=!0,cvox.DomUtil.isInternalLink(document.activeElement)&&(cvox.DomUtil.syncInternalLink(document.activeElement),cvox.ChromeVox.navigationManager.sync()));break;case "forceClickOnCurrentItem":d=cvox.ChromeVox.msgs.getMsg("element_clicked");g=cvox.ChromeVox.navigationManager.getCurrentNode();
+cvox.DomUtil.clickElem(g,!1,!1);break;case "forceDoubleClickOnCurrentItem":d=cvox.ChromeVox.msgs.getMsg("element_double_clicked");g=cvox.ChromeVox.navigationManager.getCurrentNode();cvox.DomUtil.clickElem(g,!1,!1,!0);break;case "toggleChromeVox":break;case "fullyDescribe":g=cvox.ChromeVox.navigationManager.getFullDescription();cvox.ChromeVox.navigationManager.speakDescriptionArray(g,cvox.AbstractTts.QUEUE_MODE_FLUSH,null);break;case "speakTimeAndDate":g=new Date;cvox.ChromeVox.tts.speak(g.toLocaleTimeString()+
+", "+g.toLocaleDateString());break;case "toggleSelection":d=cvox.ChromeVox.navigationManager.togglePageSel();d=cvox.ChromeVox.msgs.getMsg(d?"begin_selection":"end_selection");break;case "startHistoryRecording":cvox.History.getInstance().startRecording();break;case "stopHistoryRecording":cvox.History.getInstance().stopRecording();break;case "enableConsoleTts":cvox.ConsoleTts.getInstance().setEnabled(!0);break;case "goToFirstCell":case "goToLastCell":case "goToRowFirstCell":case "goToRowLastCell":case "goToColFirstCell":case "goToColLastCell":case "announceHeaders":case "speakTableLocation":case "exitShifterContent":cvox.DomPredicates.tablePredicate(cvox.DomUtil.getAncestors(cvox.ChromeVox.navigationManager.getCurrentNode()))&&
+cvox.ChromeVox.navigationManager.performAction(b)||(c="not_inside_table");break;case "enterShifter":case "exitShifter":cvox.ChromeVox.navigationManager.performAction(b);break;case "decreaseTtsRate":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.RATE,!1);break;case "increaseTtsRate":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.RATE,!0);break;case "decreaseTtsPitch":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.PITCH,!1);break;case "increaseTtsPitch":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.PITCH,
+!0);break;case "decreaseTtsVolume":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.VOLUME,!1);break;case "increaseTtsVolume":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.VOLUME,!0);break;case "cyclePunctuationEcho":break;case "toggleStickyMode":break;case "toggleKeyPrefix":cvox.ChromeVox.keyPrefixOn=!cvox.ChromeVox.keyPrefixOn;break;case "toggleSearchWidget":cvox.SearchWidget.getInstance().toggle();break;case "toggleEarcons":d=cvox.ChromeVox.earcons.toggle()?cvox.ChromeVox.msgs.getMsg("earcons_on"):
+cvox.ChromeVox.msgs.getMsg("earcons_off");break;case "showHeadingsList":case "showLinksList":case "showFormsList":case "showTablesList":case "showLandmarksList":if(!a.nodeList)break;g=cvox.CommandStore.NODE_INFO_MAP[a.nodeList];cvox.NodeSearchWidget.create(g.typeMsg,cvox.DomPredicates[g.predicate]).show();break;case "openLongDesc":g=cvox.ChromeVox.navigationManager.getCurrentNode();cvox.DomUtil.hasLongDesc(g)||cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("no_long_desc"),cvox.AbstractTts.QUEUE_MODE_FLUSH,
+cvox.AbstractTts.PERSONALITY_ANNOTATION);break;case "pauseAllMedia":k=document.getElementsByTagName("VIDEO");for(g=0;h=k[g];g++)h.pause();k=document.getElementsByTagName("AUDIO");for(g=0;h=k[g];g++)h.pause();break;case "toggleSemantics":cvox.TraverseMath.toggleSemantic()?cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("semantics_on")):cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("semantics_off"));break;case cvox.BrailleKeyCommand.ROUTING:g=cvox.ChromeVox.navigationManager.getBraille();
+g=g.text.getSpans(a.displayPosition||0);g=g.filter(function(a){return a instanceof Node})[0];cvox.DomUtil.clickElem(g||cvox.ChromeVox.navigationManager.getCurrentNode(),!1,!0);break;case cvox.BrailleKeyCommand.PAN_LEFT:case cvox.BrailleKeyCommand.LINE_UP:case cvox.BrailleKeyCommand.PAN_RIGHT:case cvox.BrailleKeyCommand.LINE_DOWN:cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.LINE);break;case "debug":break;case "nop":break;default:throw"Command behavior not defined: "+
+b;}""!=c?cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg(c),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION):cvox.ChromeVox.navigationManager.isReading()?a.disallowContinuation?cvox.ChromeVox.navigationManager.stopReading(!0):"readFromHere"!=b&&cvox.ChromeVox.navigationManager.skip():a.announce&&cvox.ChromeVox.navigationManager.finishNavCommand(d);a.allowEvents||cvox.ChromeVoxEventSuspender.exitSuspendEvents();return!!a.doDefault||e};
+cvox.ChromeVoxUserCommands.handleChromeVoxUserEvent=function(a){a=new cvox.UserEventDetail(a.detail);a.command&&cvox.ChromeVoxUserCommands.doCommand_(cvox.ChromeVoxUserCommands.lookupCommand_(a.command,a))};cvox.ChromeVoxUserCommands.lookupCommand_=function(a,b){var c=cvox.CommandStore.CMD_WHITELIST[a];if(!c)throw"Invalid command: "+a;c=goog.object.clone(c);c.command=a;b&&goog.object.extend(c,b);return c};cvox.ChromeVoxUserCommands.init_();cvox.ChromeVoxKbHandler={};cvox.ChromeVoxKbHandler.loadKeyToFunctionsTable=function(a){window.JSON&&(cvox.ChromeVoxKbHandler.handlerKeyMap=cvox.KeyMap.fromJSON(a))};cvox.ChromeVoxKbHandler.sortKeyToFunctionsTable_=function(a){function b(a,b){return a[0].length<b[0].length?-1:b[0].length<a[0].length?1:a[0].localeCompare(b[0])}var c=[],d;for(d in a)c.push([d,a[d]]);c.sort(b);return c};
+cvox.ChromeVoxKbHandler.basicKeyDownActionsListener=function(a){var b=cvox.KeyUtil.keyEventToKeySequence(a);a=void 0!=cvox.ChromeVoxKbHandler.handlerKeyMap?cvox.ChromeVoxKbHandler.handlerKeyMap.commandForKey(b):null;if(!a)return!cvox.KeyUtil.sequencing;if(!cvox.ChromeVox.isActive&&"toggleChromeVox"!=a)return!0;var c=!0,d=cvox.ChromeVoxUserCommands.commands[a];d?(b=cvox.History.getInstance(),b.enterUserCommand(a),c=d(),b.exitUserCommand(a)):b.cvoxModifier&&(c=!1);cvox.ChromeVox.entireDocumentIsHidden&&
+(c=!0);return c};cvox.LiveRegions=function(){};cvox.LiveRegions.pageLoadTime=null;cvox.LiveRegions.INITIAL_SILENCE_MS=2E3;cvox.LiveRegions.lastAnnouncedMap={};cvox.LiveRegions.MAX_DISCARD_DUPS_MS=2E3;cvox.LiveRegions.lastAnnouncedTime=null;cvox.LiveRegions.nodesAlreadyHandled=[];
+cvox.LiveRegions.init=function(a,b,c){void 0==b&&(b=cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.LiveRegions.pageLoadTime=a;if(c||!document.hasFocus())return!1;var d=!1;a=cvox.AriaUtil.getLiveRegions(document.body);for(c=0;c<a.length;c++)cvox.LiveRegions.handleOneChangedNode(a[c],a[c],!1,!1,function(a,c){a||b!=cvox.AbstractTts.QUEUE_MODE_FLUSH||(b=cvox.AbstractTts.QUEUE_MODE_QUEUE);var g=new cvox.NavigationSpeaker;g.speakDescriptionArray(c,b,null);d=!0});cvox.Interframe.addListener(function(a){if("speakLiveRegion"==
+a.command)for(var b=document.getElementsByTagName("iframe"),c=0,d;d=b[c];c++)if(d.src==a.src){if(!cvox.DomUtil.isVisible(d))break;d=JSON.parse(a.content);for(var k=[],l=0,m;m=d[l];l++)k.push(new cvox.NavDescription(m));(new cvox.NavigationSpeaker).speakDescriptionArray(k,a.queueMode,null)}});return d};
+cvox.LiveRegions.processMutations=function(a,b){cvox.LiveRegions.nodesAlreadyHandled=[];a.forEach(function(a){if(!a.target.hasAttribute||!a.target.hasAttribute("cvoxIgnore")){if(a.addedNodes)for(var d=0;d<a.addedNodes.length;d++)a.addedNodes[d].hasAttribute&&a.addedNodes[d].hasAttribute("cvoxIgnore")||cvox.LiveRegions.handleOneChangedNode(a.addedNodes[d],a.target,!1,!0,b);if(a.removedNodes)for(d=0;d<a.removedNodes.length;d++)a.removedNodes[d].hasAttribute&&a.removedNodes[d].hasAttribute("cvoxIgnore")||
+cvox.LiveRegions.handleOneChangedNode(a.removedNodes[d],a.target,!0,!1,b);"characterData"==a.type&&cvox.LiveRegions.handleOneChangedNode(a.target,a.target,!1,!1,b);if("class"==a.attributeName||"style"==a.attributeName||"hidden"==a.attributeName){var e=a.attributeName,d=a.target,f=!cvox.DomUtil.isVisible(d),g=document.createElement("div");g.setAttribute("cvoxIgnore","1");g.setAttribute("class",d.getAttribute("class"));g.setAttribute("style",d.getAttribute("style"));g.setAttribute("hidden",d.getAttribute("hidden"));
+g.setAttribute(e,a.oldValue);e=!0;d.parentElement?(d.parentElement.appendChild(g),e=!cvox.DomUtil.isVisible(g),d.parentElement.removeChild(g)):e=!cvox.DomUtil.isVisible(g);!0===e&&!1===f?cvox.LiveRegions.handleOneChangedNode(a.target,a.target,!1,!0,b):!1===e&&!0===f&&cvox.LiveRegions.handleOneChangedNode(a.target,a.target,!0,!1,b)}}});cvox.LiveRegions.nodesAlreadyHandled.length=0};
+cvox.LiveRegions.handleOneChangedNode=function(a,b,c,d,e){var f=c?b:a;f instanceof Element||(f=f.parentElement);for(;f&&!cvox.AriaUtil.getAriaLive(f);)f=f.parentElement;if(!f){if(d&&a!=document.body)for(a=cvox.AriaUtil.getLiveRegions(a),d=0;d<a.length;d++)cvox.LiveRegions.handleOneChangedNode(a[d],b,c,!1,e)}else if(!(0<=cvox.LiveRegions.nodesAlreadyHandled.indexOf(a)||(cvox.LiveRegions.nodesAlreadyHandled.push(a),cvox.AriaUtil.getAriaBusy(f)))){if(c){if(!cvox.AriaUtil.getAriaRelevant(f,"removals"))return}else if(!cvox.AriaUtil.getAriaRelevant(f,
+"additions"))return;cvox.LiveRegions.announceChange(a,f,c,e)}};
+cvox.LiveRegions.announceChange=function(a,b,c,d){var e=new Date-cvox.LiveRegions.pageLoadTime;if(!("alert"!=cvox.AriaUtil.getRoleAttribute(b)&&e<cvox.LiveRegions.INITIAL_SILENCE_MS)&&cvox.DomUtil.isVisible(b)){if(a!=b)for(var f=a.parentElement;f;){(cvox.AriaUtil.getAriaAtomic(f)||cvox.AriaUtil.isLeafElement(f)||cvox.AriaUtil.isControlWidget(f))&&!cvox.AriaUtil.isCompositeControl(f)&&(a=f);if(f==b)break;f=f.parentElement}a=cvox.LiveRegions.getNavDescriptionsRecursive(a);if(0!=a.length){c&&(a=[new cvox.NavDescription({context:cvox.ChromeVox.msgs.getMsg("live_regions_removed"),
+text:""})].concat(a));if("alert"==cvox.AriaUtil.getRoleAttribute(b)&&e<cvox.LiveRegions.INITIAL_SILENCE_MS){c="";for(e=0;e<a.length;e++)c+=a[e].text,c+=a[e].userValue;if(""==cvox.DomUtil.collapseWhitespace(c))return}c=new Date;for(var g in cvox.LiveRegions.lastAnnouncedMap)c-cvox.LiveRegions.lastAnnouncedMap[g]>cvox.LiveRegions.MAX_DISCARD_DUPS_MS&&delete cvox.LiveRegions.lastAnnouncedMap[g];g=a.reduce(function(a,b){return a+"|"+b.text},"");cvox.LiveRegions.lastAnnouncedMap[g]||(cvox.LiveRegions.lastAnnouncedMap[g]=
+c,b="assertive"==cvox.AriaUtil.getAriaLive(b),cvox.Interframe.isIframe()&&!document.hasFocus()?cvox.Interframe.sendMessageToParentWindow({command:"speakLiveRegion",content:JSON.stringify(a),queueMode:b?0:1,src:window.location.href}):d(b,a))}}};
+cvox.LiveRegions.getNavDescriptionsRecursive=function(a){return cvox.AriaUtil.getAriaAtomic(a)||cvox.DomUtil.isLeafNode(a)?(a=cvox.DescriptionUtil.getDescriptionFromAncestors([a],!0,cvox.ChromeVox.verbosity),a.isEmpty()?[]:[a]):cvox.DescriptionUtil.getFullDescriptionsFromChildren(null,a)};cvox.LiveRegionsDeprecated=function(){};cvox.LiveRegionsDeprecated.trackedRegions=[];cvox.LiveRegionsDeprecated.previousRegionValue=[];cvox.LiveRegionsDeprecated.pageLoadTime=null;cvox.LiveRegionsDeprecated.INITIAL_SILENCE_MS=2E3;
+cvox.LiveRegionsDeprecated.init=function(a,b,c){void 0==b&&(b=cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.LiveRegionsDeprecated.pageLoadTime=a;a=!1;for(var d=cvox.AriaUtil.getLiveRegions(document.body),e=0;e<d.length;e++)cvox.LiveRegionsDeprecated.updateLiveRegion(d[e],b,c)&&(a=!0,b=cvox.AbstractTts.QUEUE_MODE_QUEUE);return a};
+cvox.LiveRegionsDeprecated.updateLiveRegion=function(a,b,c){if(cvox.AriaUtil.getAriaBusy(a)||!cvox.DomUtil.isVisible(a))return!1;var d=cvox.LiveRegionsDeprecated.trackedRegions.indexOf(a),e;0<=d?e=cvox.LiveRegionsDeprecated.previousRegionValue[d]:(d=cvox.LiveRegionsDeprecated.trackedRegions.length,e=[],cvox.LiveRegionsDeprecated.trackedRegions.push(a),cvox.LiveRegionsDeprecated.previousRegionValue.push([]));var f=cvox.LiveRegionsDeprecated.buildCurrentLiveRegionValue(a),g=new Date-cvox.LiveRegionsDeprecated.pageLoadTime;
+if("alert"!=cvox.AriaUtil.getRoleAttribute(a)&&g<cvox.LiveRegionsDeprecated.INITIAL_SILENCE_MS)return cvox.LiveRegionsDeprecated.previousRegionValue[d]=f,!1;if("alert"==cvox.AriaUtil.getRoleAttribute(a)&&g<cvox.LiveRegionsDeprecated.INITIAL_SILENCE_MS){for(var h="",g=0;g<f.length;g++)h+=f[g].text,h+=f[g].userValue;if(""==cvox.DomUtil.collapseWhitespace(h))return cvox.LiveRegionsDeprecated.previousRegionValue[d]=f,!1}for(var k={},g=0;g<e.length;g++)k[e[g].toString()]=!0;for(var l={},g=0;g<f.length;g++)l[f[g].toString()]=
+!0;h=[];if(cvox.AriaUtil.getAriaRelevant(a,"additions"))for(g=0;g<f.length;g++)k[f[g].toString()]||h.push(f[g]);k=[];if(cvox.AriaUtil.getAriaRelevant(a,"removals"))for(g=0;g<e.length;g++)l[e[g].toString()]||k.push(e[g]);e=[];e=0==h.length&&0<k.length?[new cvox.NavDescription({context:cvox.ChromeVox.msgs.getMsg("live_regions_removed"),text:""})].concat(k):h;cvox.LiveRegionsDeprecated.previousRegionValue[d]=f;if(c||0==e.length)return!1;a=cvox.AriaUtil.getAriaLive(a);"polite"==a&&(b=cvox.AbstractTts.QUEUE_MODE_QUEUE);
+for(g=0;g<e.length;g++)e[g].speak(b),b=cvox.AbstractTts.QUEUE_MODE_QUEUE;return!0};
+cvox.LiveRegionsDeprecated.buildCurrentLiveRegionValue=function(a){if(cvox.AriaUtil.getAriaAtomic(a)||cvox.DomUtil.isLeafNode(a)){var b=cvox.DescriptionUtil.getDescriptionFromAncestors([a],!0,cvox.ChromeVox.verbosity);return b.isEmpty()?[]:[b]}var c=[],b=cvox.DescriptionUtil.getDescriptionFromAncestors([a],!1,cvox.ChromeVox.verbosity);b.isEmpty()||c.push(b);for(b=0;b<a.childNodes.length;b++){var d=a.childNodes[b];cvox.DomUtil.isVisible(d,{checkAncestors:!1})&&!cvox.AriaUtil.isHidden(d)&&(d=cvox.LiveRegionsDeprecated.buildCurrentLiveRegionValue(d),
+c=c.concat(d))}return c};cvox.ChromeVoxEventWatcherUtil={};cvox.ChromeVoxEventWatcher=function(){};cvox.ChromeVoxEventWatcher.MAX_WAIT_TIME_MS_=50;cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_=10;cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_DURATION_=1E3;cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_COUNT_LIMIT_=3;cvox.ChromeVoxEventWatcher.MAX_LIVE_REGIONS_=5;cvox.ChromeVoxEventWatcher.shouldEchoKeys=!0;cvox.ChromeVoxEventWatcher.processing_=!1;
+cvox.ChromeVoxEventWatcher.init=function(a){cvox.ChromeVoxEventWatcher.lastFocusedNode=null;cvox.ChromeVoxEventWatcher.announcedMouseOverNode=null;cvox.ChromeVoxEventWatcher.pendingMouseOverNode=null;cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null;cvox.ChromeVoxEventWatcher.lastFocusedNodeValue=null;cvox.ChromeVoxEventWatcher.eventToEat=null;cvox.ChromeVoxEventWatcher.currentTextControl=null;cvox.ChromeVoxEventWatcher.currentTextHandler=null;cvox.ChromeVoxEventWatcher.lastKeypressTime=0;cvox.ChromeVoxEventWatcher.listeners_=
+[];cvox.ChromeVoxEventWatcher.mutationObserver_=null;cvox.ChromeVoxEventWatcher.focusFollowsMouse=!1;cvox.ChromeVoxEventWatcher.mouseoverDelayMs=500;cvox.ChromeVoxEventWatcher.events_=[];cvox.ChromeVoxEventWatcher.lastEventTime=0;cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime=-1;cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!1;cvox.ChromeVoxEventWatcher.readyCallbacks_=[];cvox.ChromeVox.searchKeyHeld=!1;cvox.ChromeVoxEventWatcher.textMutationObserver_=null;cvox.ChromeVoxEventWatcher.addEventListeners_(a);
+cvox.ChromeVoxEventWatcher.lastSubtreeModifiedEventBurstTime_=0;cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_=0};cvox.ChromeVoxEventWatcher.storeOn=function(a){a.searchKeyHeld=cvox.ChromeVox.searchKeyHeld};cvox.ChromeVoxEventWatcher.readFrom=function(a){cvox.ChromeVox.searchKeyHeld=a.searchKeyHeld};
+cvox.ChromeVoxEventWatcher.addEvent=function(a){if(!cvox.ChromeVox.isActive||document.webkitHidden)return!1;cvox.ChromeVoxEventWatcher.events_.push(a);cvox.ChromeVoxEventWatcher.lastEventTime=(new Date).getTime();-1==cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime&&(cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime=(new Date).getTime());cvox.ChromeVoxEventWatcher.queueProcessingScheduled_||(cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!0,window.setTimeout(cvox.ChromeVoxEventWatcher.processQueue_,
+cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_))};cvox.ChromeVoxEventWatcher.addReadyCallback=function(a){cvox.ChromeVoxEventWatcher.readyCallbacks_.push(a);cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_()};cvox.ChromeVoxEventWatcher.hasPendingEvents_=function(){return-1!=cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime||cvox.ChromeVoxEventWatcher.queueProcessingScheduled_};cvox.ChromeVoxEventWatcher.readyCallbackRunning_=!1;
+cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_=function(){cvox.ChromeVoxEventWatcher.readyCallbackRunning_||(cvox.ChromeVoxEventWatcher.readyCallbackRunning_=!0,window.setTimeout(function(){cvox.ChromeVoxEventWatcher.readyCallbackRunning_=!1;!cvox.ChromeVoxEventWatcher.hasPendingEvents_()&&!cvox.ChromeVoxEventWatcher.queueProcessingScheduled_&&0<cvox.ChromeVoxEventWatcher.readyCallbacks_.length&&(cvox.ChromeVoxEventWatcher.readyCallbacks_.shift()(),cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_())},
+5))};
+cvox.ChromeVoxEventWatcher.addEventListeners_=function(a){cvox.ChromeVoxEventWatcher.addEventListener_(a,"keydown",cvox.ChromeVoxEventWatcher.keyDownEventWatcher,!0);if(cvox.ChromeVox.isActive&&!cvox.ChromeVox.entireDocumentIsHidden)if(cvox.ChromeVoxEventWatcher.addEventListener_(a,"keypress",cvox.ChromeVoxEventWatcher.keyPressEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"keyup",cvox.ChromeVoxEventWatcher.keyUpEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,cvox.UserEventDetail.Category.JUMP,
+cvox.ChromeVoxUserCommands.handleChromeVoxUserEvent,!1),cvox.ChromeVoxEventWatcher.addEventListener_(a,"focus",cvox.ChromeVoxEventWatcher.focusEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"blur",cvox.ChromeVoxEventWatcher.blurEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"change",cvox.ChromeVoxEventWatcher.changeEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"copy",cvox.ChromeVoxEventWatcher.clipboardEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,
+"cut",cvox.ChromeVoxEventWatcher.clipboardEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"paste",cvox.ChromeVoxEventWatcher.clipboardEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"select",cvox.ChromeVoxEventWatcher.selectEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"webkitvisibilitychange",cvox.ChromeVoxEventWatcher.visibilityChangeWatcher,!0),cvox.ChromeVoxEventWatcher.events_=[],cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!1,cvox.ChromeVoxEventWatcher.addEventListener_(a,
+"mouseover",cvox.ChromeVoxEventWatcher.mouseOverEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"mouseout",cvox.ChromeVoxEventWatcher.mouseOutEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"click",cvox.ChromeVoxEventWatcher.mouseClickEventWatcher,!0),"undefined"!=typeof WebKitMutationObserver){cvox.ChromeVoxEventWatcher.mutationObserver_=new WebKitMutationObserver(cvox.ChromeVoxEventWatcher.mutationHandler);var b=null;a.documentElement?b=a.documentElement:a.document&&
+a.document.documentElement&&(b=a.document.documentElement);b&&cvox.ChromeVoxEventWatcher.mutationObserver_.observe(b,{childList:!0,attributes:!0,characterData:!0,subtree:!0,attributeOldValue:!0,characterDataOldValue:!0})}else cvox.ChromeVoxEventWatcher.addEventListener_(a,"DOMSubtreeModified",cvox.ChromeVoxEventWatcher.subtreeModifiedEventWatcher,!0)};
+cvox.ChromeVoxEventWatcher.cleanup=function(a){for(var b=0;b<cvox.ChromeVoxEventWatcher.listeners_.length;b++){var c=cvox.ChromeVoxEventWatcher.listeners_[b];a.removeEventListener(c.type,c.listener,c.useCapture)}cvox.ChromeVoxEventWatcher.listeners_=[];cvox.ChromeVoxEventWatcher.currentDateHandler&&cvox.ChromeVoxEventWatcher.currentDateHandler.shutdown();cvox.ChromeVoxEventWatcher.currentTimeHandler&&cvox.ChromeVoxEventWatcher.currentTimeHandler.shutdown();cvox.ChromeVoxEventWatcher.currentMediaHandler&&
+cvox.ChromeVoxEventWatcher.currentMediaHandler.shutdown();cvox.ChromeVoxEventWatcher.mutationObserver_&&cvox.ChromeVoxEventWatcher.mutationObserver_.disconnect();cvox.ChromeVoxEventWatcher.mutationObserver_=null};cvox.ChromeVoxEventWatcher.addEventListener_=function(a,b,c,d){cvox.ChromeVoxEventWatcher.listeners_.push({type:b,listener:c,useCapture:d});a.addEventListener(b,c,d)};cvox.ChromeVoxEventWatcher.getLastFocusedNode=function(){return cvox.ChromeVoxEventWatcher.lastFocusedNode};
+cvox.ChromeVoxEventWatcher.setLastFocusedNode_=function(a){cvox.ChromeVoxEventWatcher.lastFocusedNode=a;cvox.ChromeVoxEventWatcher.lastFocusedNodeValue=a?cvox.DomUtil.getControlValueAndStateString(a):null};
+cvox.ChromeVoxEventWatcher.mutationHandler=function(a){if(cvox.ChromeVoxEventSuspender.areEventsSuspended())return!0;cvox.ChromeVox.navigationManager.updateIndicatorIfChanged();cvox.LiveRegions.processMutations(a,function(a,c){var d=new window.Event("LiveRegion");d.navDescriptions=c;d.assertive=a;cvox.ChromeVoxEventWatcher.addEvent(d);return!0})};
+cvox.ChromeVoxEventWatcher.mouseClickEventWatcher=function(a){cvox.PlatformUtil.matchesPlatform(cvox.PlatformFilter.WML)&&!a.fromCvox&&cvox.ApiImplementation.syncToNode(a.target,!0);return cvox.ChromeVox.host.mustRedispatchClickEvent()&&!a.fromCvox?(cvox.ChromeVoxUserCommands.wasMouseClicked=!0,a.stopPropagation(),a.preventDefault(),cvox.Focuser.setFocus(cvox.ChromeVox.navigationManager.getCurrentNode()),cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("element_clicked"),cvox.AbstractTts.QUEUE_MODE_FLUSH,
+cvox.AbstractTts.PERSONALITY_ANNOTATION),a=cvox.ChromeVox.navigationManager.getCurrentNode(),cvox.DomUtil.clickElem(a,!1,!0),!1):cvox.ChromeVoxUserCommands.wasMouseClicked=!0};
+cvox.ChromeVoxEventWatcher.mouseOverEventWatcher=function(a){if(!cvox.ChromeVoxEventWatcher.focusFollowsMouse||cvox.DomUtil.isDescendantOfNode(cvox.ChromeVoxEventWatcher.announcedMouseOverNode,a.target)||a.target==cvox.ChromeVoxEventWatcher.pendingMouseOverNode)return!0;cvox.ChromeVoxEventWatcher.pendingMouseOverNode=a.target;cvox.ChromeVoxEventWatcher.mouseOverTimeoutId&&(window.clearTimeout(cvox.ChromeVoxEventWatcher.mouseOverTimeoutId),cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null);if(a.target.tagName&&
+"BODY"==a.target.tagName)return cvox.ChromeVoxEventWatcher.pendingMouseOverNode=null,cvox.ChromeVoxEventWatcher.announcedMouseOverNode=null,!0;cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=window.setTimeout(function(){cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null;if(a.target==cvox.ChromeVoxEventWatcher.pendingMouseOverNode){cvox.ChromeVox.navigationManager.stopReading(!0);var b=a.target;cvox.Focuser.setFocus(b);cvox.ApiImplementation.syncToNode(b,!0,cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.ChromeVoxEventWatcher.announcedMouseOverNode=
+b}},cvox.ChromeVoxEventWatcher.mouseoverDelayMs);return!0};cvox.ChromeVoxEventWatcher.mouseOutEventWatcher=function(a){a.target==cvox.ChromeVoxEventWatcher.pendingMouseOverNode&&(cvox.ChromeVoxEventWatcher.pendingMouseOverNode=null,cvox.ChromeVoxEventWatcher.mouseOverTimeoutId&&(window.clearTimeout(cvox.ChromeVoxEventWatcher.mouseOverTimeoutId),cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null));return!0};
+cvox.ChromeVoxEventWatcher.focusEventWatcher=function(a){cvox.ChromeVoxUserCommands.removeTabDummySpan();cvox.ChromeVoxEventSuspender.areEventsSuspended()?a.target&&a.target.nodeType==Node.ELEMENT_NODE&&cvox.ChromeVoxEventWatcher.setLastFocusedNode_(a.target):cvox.ChromeVoxEventWatcher.addEvent(a);return!0};
+cvox.ChromeVoxEventWatcher.focusHandler=function(a){if(a.target&&a.target.hasAttribute&&"true"==a.target.getAttribute("aria-hidden")&&"true"!=a.target.getAttribute("chromevoxignoreariahidden"))cvox.ChromeVoxEventWatcher.setLastFocusedNode_(null),cvox.ChromeVoxEventWatcher.setUpTextHandler();else if(a.target&&a.target!=window){var b=a.target,c=cvox.DomUtil.getSurroundingControl(b);if(c&&c==cvox.ChromeVoxEventWatcher.lastFocusedNode)cvox.ChromeVoxEventWatcher.handleControlChanged(b);else{c?cvox.ChromeVoxEventWatcher.setLastFocusedNode_(c):
+cvox.ChromeVoxEventWatcher.setLastFocusedNode_(b);c=cvox.ChromeVoxEventWatcher.queueMode_();if(cvox.ChromeVoxEventWatcher.getInitialVisibility()||cvox.ChromeVoxEventWatcher.handleDialogFocus(b))c=cvox.AbstractTts.QUEUE_MODE_QUEUE;cvox.ChromeVox.navigationManager.clearPageSel(!0)&&(c=cvox.AbstractTts.QUEUE_MODE_QUEUE);cvox.ApiImplementation.syncToNode(b,!document.webkitHidden,c);if(a.target.constructor==HTMLVideoElement||a.target.constructor==HTMLAudioElement)cvox.ChromeVoxEventWatcher.setUpMediaHandler_();
+else{if(a.target.hasAttribute)switch(a=a.target.getAttribute("type"),a){case "time":cvox.ChromeVoxEventWatcher.setUpTimeHandler_();return;case "date":case "month":case "week":cvox.ChromeVoxEventWatcher.setUpDateHandler_();return}cvox.ChromeVoxEventWatcher.setUpTextHandler()}}}else cvox.ChromeVoxEventWatcher.setLastFocusedNode_(null)};
+cvox.ChromeVoxEventWatcher.blurEventWatcher=function(a){window.setTimeout(function(){document.activeElement||(cvox.ChromeVoxEventWatcher.setLastFocusedNode_(null),cvox.ChromeVoxEventWatcher.addEvent(a))},0);return!0};
+cvox.ChromeVoxEventWatcher.keyDownEventWatcher=function(a){cvox.ChromeVox.isChromeOS&&91==a.keyCode&&(cvox.ChromeVox.searchKeyHeld=!0);a.searchKeyHeld=cvox.ChromeVox.searchKeyHeld&&cvox.ChromeVox.isActive;a.stickyMode=cvox.ChromeVox.isStickyOn&&cvox.ChromeVox.isActive;a.keyPrefix=cvox.ChromeVox.keyPrefixOn&&cvox.ChromeVox.isActive;cvox.ChromeVox.keyPrefixOn=!1;cvox.ChromeVoxEventWatcher.eventToEat=null;if(!cvox.ChromeVoxKbHandler.basicKeyDownActionsListener(a)||cvox.ChromeVoxEventWatcher.handleControlAction(a))return a.preventDefault(),
+a.stopPropagation(),cvox.ChromeVoxEventWatcher.eventToEat=a,!1;cvox.ChromeVoxEventWatcher.addEvent(a);return!0};cvox.ChromeVoxEventWatcher.keyUpEventWatcher=function(a){91==a.keyCode&&(cvox.ChromeVox.searchKeyHeld=!1);return cvox.ChromeVoxEventWatcher.eventToEat&&a.keyCode==cvox.ChromeVoxEventWatcher.eventToEat.keyCode?(a.stopPropagation(),a.preventDefault(),!1):!0};
+cvox.ChromeVoxEventWatcher.keyPressEventWatcher=function(a){var b=document.location.href,c=cvox.TypingEcho.shouldSpeakChar(cvox.ChromeVox.typingEcho);"undefined"!==typeof cvox.ChromeVox.keyEcho[b]&&(c=cvox.ChromeVox.keyEcho[b]);cvox.ChromeVoxEditableTextBase.eventTypingEcho&&c&&cvox.DomPredicates.editTextPredicate([document.activeElement])&&"password"!==document.activeElement.type&&(b=(new Date).getTime(),150<b-cvox.ChromeVoxEventWatcher.lastKeypressTime&&cvox.ChromeVox.tts.stop(),cvox.ChromeVoxEventWatcher.lastKeypressTime=
+b,cvox.ChromeVox.tts.speak(String.fromCharCode(a.charCode),1,{relativeRate:2}));cvox.ChromeVoxEventWatcher.addEvent(a);return cvox.ChromeVoxEventWatcher.eventToEat&&a.keyCode==cvox.ChromeVoxEventWatcher.eventToEat.keyCode?(a.preventDefault(),a.stopPropagation(),!1):!0};cvox.ChromeVoxEventWatcher.changeEventWatcher=function(a){cvox.ChromeVoxEventWatcher.addEvent(a);return!0};
+cvox.ChromeVoxEventWatcher.clipboardEventWatcher=function(a){cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg(a.type).toLowerCase());var b="";switch(a.type){case "paste":b=a.clipboardData.getData("text");break;case "copy":case "cut":b=window.getSelection().toString()}cvox.ChromeVox.tts.speak(b,cvox.AbstractTts.QUEUE_MODE_QUEUE);cvox.ChromeVox.navigationManager.clearPageSel();return!0};
+cvox.ChromeVoxEventWatcher.changeHandler=function(a){cvox.ChromeVoxEventWatcher.setUpTextHandler()||document.activeElement==a.target&&cvox.ChromeVoxEventWatcher.handleControlChanged(document.activeElement)};cvox.ChromeVoxEventWatcher.selectEventWatcher=function(a){cvox.ChromeVoxEventWatcher.addEvent(a);return!0};cvox.ChromeVoxEventWatcher.subtreeModifiedEventWatcher=function(a){if(!a||!a.target)return!0;cvox.ChromeVoxEventWatcher.addEvent(a);return!0};
+cvox.ChromeVoxEventWatcher.visibilityChangeWatcher=function(){cvox.ChromeVoxEventWatcher.initialVisibility=!document.webkitHidden;document.webkitHidden&&cvox.ChromeVox.navigationManager.stopReading(!0)};cvox.ChromeVoxEventWatcher.getInitialVisibility=function(){var a=cvox.ChromeVoxEventWatcher.initialVisibility;cvox.ChromeVoxEventWatcher.initialVisibility=!1;return a};
+cvox.ChromeVoxEventWatcher.speakLiveRegion_=function(a,b){var c=cvox.ChromeVoxEventWatcher.queueMode_();a||c!=cvox.AbstractTts.QUEUE_MODE_FLUSH||(c=cvox.AbstractTts.QUEUE_MODE_QUEUE);var d=new cvox.NavigationSpeaker;d.speakDescriptionArray(b,c,null)};
+cvox.ChromeVoxEventWatcher.subtreeModifiedHandler=function(a){var b=(new Date).getTime();if(cvox.ChromeVoxEventWatcher.lastSubtreeModifiedEventBurstTime_+cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_DURATION_>b){if(cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_++,cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_>cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_COUNT_LIMIT_)return}else cvox.ChromeVoxEventWatcher.lastSubtreeModifiedEventBurstTime_=b,cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_=
+1;if(a&&a.target)for(a=a.target,a=cvox.AriaUtil.getLiveRegions(a),b=0;b<a.length&&b<cvox.ChromeVoxEventWatcher.MAX_LIVE_REGIONS_;b++)cvox.LiveRegionsDeprecated.updateLiveRegion(a[b],cvox.ChromeVoxEventWatcher.queueMode_(),!1)};
+cvox.ChromeVoxEventWatcher.setUpTextHandler=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);if(a!=cvox.ChromeVoxEventWatcher.currentTextControl){cvox.ChromeVoxEventWatcher.currentTextControl&&(cvox.ChromeVoxEventWatcher.currentTextControl.removeEventListener("input",cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),cvox.ChromeVoxEventWatcher.currentTextControl.removeEventListener("click",
+cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),cvox.ChromeVoxEventWatcher.textMutationObserver_&&(cvox.ChromeVoxEventWatcher.textMutationObserver_.disconnect(),cvox.ChromeVoxEventWatcher.textMutationObserver_=null));cvox.ChromeVoxEventWatcher.currentTextControl=null;cvox.ChromeVoxEventWatcher.currentTextHandler=null;if(null==a)return!1;if(a.constructor==HTMLInputElement&&cvox.DomUtil.isInputTypeText(a)&&cvox.ChromeVoxEventWatcher.shouldEchoKeys)cvox.ChromeVoxEventWatcher.currentTextControl=a,cvox.ChromeVoxEventWatcher.currentTextHandler=
+new cvox.ChromeVoxEditableHTMLInput(a,cvox.ChromeVox.tts);else if(a.constructor==HTMLTextAreaElement&&cvox.ChromeVoxEventWatcher.shouldEchoKeys)cvox.ChromeVoxEventWatcher.currentTextControl=a,cvox.ChromeVoxEventWatcher.currentTextHandler=new cvox.ChromeVoxEditableTextArea(a,cvox.ChromeVox.tts);else if(a.isContentEditable||"textbox"==a.getAttribute("role"))cvox.ChromeVoxEventWatcher.currentTextControl=a,cvox.ChromeVoxEventWatcher.currentTextHandler=new cvox.ChromeVoxEditableContentEditable(a,cvox.ChromeVox.tts);
+cvox.ChromeVoxEventWatcher.currentTextControl&&(cvox.ChromeVoxEventWatcher.currentTextControl.addEventListener("input",cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),cvox.ChromeVoxEventWatcher.currentTextControl.addEventListener("click",cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),window.WebKitMutationObserver&&(cvox.ChromeVoxEventWatcher.textMutationObserver_=new WebKitMutationObserver(cvox.ChromeVoxEventWatcher.onTextMutation),cvox.ChromeVoxEventWatcher.textMutationObserver_.observe(cvox.ChromeVoxEventWatcher.currentTextControl,
+{childList:!0,attributes:!0,subtree:!0,attributeOldValue:!1,characterDataOldValue:!1})),cvox.ChromeVoxEventSuspender.areEventsSuspended()||cvox.ChromeVox.navigationManager.updateSel(cvox.CursorSelection.fromNode(cvox.ChromeVoxEventWatcher.currentTextControl)));return null!=cvox.ChromeVoxEventWatcher.currentTextHandler}};cvox.ChromeVoxEventWatcher.handleTextChanged=function(a){if(cvox.ChromeVoxEventWatcher.currentTextHandler){var b=cvox.ChromeVoxEventWatcher.currentTextHandler;b.update(a);return!0}return!1};
+cvox.ChromeVoxEventWatcher.onTextMutation=function(){cvox.ChromeVoxEventWatcher.currentTextHandler&&window.setTimeout(function(){cvox.ChromeVoxEventWatcher.handleTextChanged(!1)},cvox.ChromeVoxEventWatcher.MAX_WAIT_TIME_MS_)};
+cvox.ChromeVoxEventWatcher.handleControlChanged=function(a){var b=cvox.DomUtil.getControlValueAndStateString(a),c=cvox.DomUtil.getSurroundingControl(a),d=!1;if(a!=cvox.ChromeVoxEventWatcher.lastFocusedNode&&(null==c||c!=cvox.ChromeVoxEventWatcher.lastFocusedNode))cvox.ChromeVoxEventWatcher.setLastFocusedNode_(a);else if(b==cvox.ChromeVoxEventWatcher.lastFocusedNodeValue)return;cvox.ChromeVoxEventWatcher.lastFocusedNodeValue=b;if(cvox.DomPredicates.checkboxPredicate([a])||cvox.DomPredicates.radioPredicate([a]))d=
+!0,a.checked?cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.CHECK_ON):cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.CHECK_OFF);"SELECT"==a.tagName&&(d=!0);if("INPUT"==a.tagName)switch(a.type){case "color":case "datetime":case "datetime-local":case "range":d=!0}a.hasAttribute&&a.hasAttribute("role")&&(d=!0);c&&c!=a&&document.activeElement==a?(cvox.ApiImplementation.syncToNode(a,!0,cvox.AbstractTts.QUEUE_MODE_FLUSH),d=!1):cvox.AriaUtil.getActiveDescendant(a)&&(cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(cvox.AriaUtil.getActiveDescendant(a),
+!0),d=!0);d&&!cvox.ChromeVoxEventSuspender.areEventsSuspended()&&(cvox.ChromeVox.tts.speak(b,cvox.ChromeVoxEventWatcher.queueMode_(),null),cvox.NavBraille.fromText(b).write())};
+cvox.ChromeVoxEventWatcher.handleControlAction=function(a){if(!cvox.ChromeVox.isActive)return!1;var b=a.target;if("SELECT"==b.tagName&&1>=b.size&&(13==a.keyCode||32==a.keyCode))return a.preventDefault(),a.stopPropagation(),!0;if("INPUT"==b.tagName&&"range"==b.type){var c=parseFloat(b.value),d;b.step&&0<b.step?d=b.step:b.min&&b.max?(d=b.max-b.min,d=2<d&&31>d?1:(b.max-b.min)/10):d=1;if(37==a.keyCode||38==a.keyCode)c-=d;else if(39==a.keyCode||40==a.keyCode)c+=d;b.max&&c>b.max&&(c=b.max);b.min&&c<b.min&&
+(c=b.min);b.value=c}return!1};
+cvox.ChromeVoxEventWatcher.handleDialogFocus=function(a){for(;a;){if(a.hasAttribute){var b=a.getAttribute("role");if("dialog"==b||"alertdialog"==b)break}a=a.parentElement}if(a==cvox.ChromeVox.navigationManager.currentDialog)return!1;if(cvox.ChromeVox.navigationManager.currentDialog&&!a){if(!cvox.DomUtil.isDescendantOfNode(document.activeElement,cvox.ChromeVox.navigationManager.currentDialog))return cvox.ChromeVox.navigationManager.currentDialog=null,cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("exiting_dialog"),cvox.AbstractTts.QUEUE_MODE_FLUSH,
+cvox.AbstractTts.PERSONALITY_ANNOTATION),!0}else if(a)return cvox.ChromeVox.navigationManager.currentDialog=a,cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("entering_dialog"),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION),a=cvox.DescriptionUtil.getFullDescriptionsFromChildren(null,a),b=new cvox.NavigationSpeaker,b.speakDescriptionArray(a,cvox.AbstractTts.QUEUE_MODE_QUEUE,null),!0;return!1};
+cvox.ChromeVoxEventWatcherUtil.shouldWaitToProcess=function(a,b,c){a=c-a;b=c-b;return a<cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_&&b<cvox.ChromeVoxEventWatcher.MAX_WAIT_TIME_MS_};cvox.ChromeVoxEventWatcher.queueMode_=function(){return cvox.ChromeVoxEventWatcher.processing_?cvox.AbstractTts.QUEUE_MODE_QUEUE:cvox.AbstractTts.QUEUE_MODE_FLUSH};
+cvox.ChromeVoxEventWatcher.processQueue_=function(){if(0!=cvox.ChromeVoxEventWatcher.events_.length){var a=cvox.ChromeVoxEventWatcher.events_,b=-1,c=0,d,e;for(e=0;d=a[e];e++)"focus"==d.type&&(b=e,c=d.timeStamp);cvox.ChromeVoxEventWatcher.events_=[];for(e=0;d=a[e];e++){var f=a[e-1]||{};!(e>=b||"LiveRegion"==d.type||"DOMSubtreeModified"==d.type)||"focus"==f.type&&"change"==d.type||cvox.ChromeVoxEventWatcher.events_.push(d)}cvox.ChromeVoxEventWatcher.events_.sort(function(a,b){return"LiveRegion"!=b.type&&
+"LiveRegion"==a.type||"DOMSubtreeModified"!=b.type&&"DOMSubtreeModified"==a.type?1:-1});a=(new Date).getTime();if(0<=b&&cvox.ChromeVoxEventWatcherUtil.shouldWaitToProcess(c,cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime,a))window.setTimeout(cvox.ChromeVoxEventWatcher.processQueue_,cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_);else{for(e=0;d=cvox.ChromeVoxEventWatcher.events_[e];e++)cvox.ChromeVoxEventWatcher.handleEvent_(d),cvox.ChromeVoxEventWatcher.processing_=!0;cvox.ChromeVoxEventWatcher.processing_=
+!1;cvox.ChromeVoxEventWatcher.events_=[];cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime=-1;cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!1;cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_()}}};
+cvox.ChromeVoxEventWatcher.handleEvent_=function(a){switch(a.type){case "keydown":cvox.ChromeVoxEventWatcher.setUpTextHandler();if(cvox.ChromeVoxEventWatcher.currentTextControl&&(cvox.ChromeVoxEventWatcher.handleTextChanged(!0),(a=cvox.ChromeVoxEventWatcher.currentTextHandler)&&a.lastChangeDescribed))break;cvox.ChromeVoxEventWatcher.handleControlChanged(document.activeElement);break;case "keypress":cvox.ChromeVoxEventWatcher.setUpTextHandler();break;case "focus":cvox.ChromeVoxEventWatcher.focusHandler(a);
+break;case "blur":cvox.ChromeVoxEventWatcher.setUpTextHandler();break;case "change":cvox.ChromeVoxEventWatcher.changeHandler(a);break;case "select":cvox.ChromeVoxEventWatcher.setUpTextHandler();break;case "LiveRegion":cvox.ChromeVoxEventWatcher.speakLiveRegion_(a.assertive,a.navDescriptions);break;case "DOMSubtreeModified":cvox.ChromeVoxEventWatcher.subtreeModifiedHandler(a)}};
+cvox.ChromeVoxEventWatcher.setUpTimeHandler_=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);cvox.ChromeVoxEventWatcher.currentTimeHandler=a.constructor==HTMLInputElement&&a.type&&"time"==a.type?new cvox.ChromeVoxHTMLTimeWidget(a,cvox.ChromeVox.tts):null;return null!=cvox.ChromeVoxEventWatcher.currentTimeHandler};
+cvox.ChromeVoxEventWatcher.setUpMediaHandler_=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);cvox.ChromeVoxEventWatcher.currentMediaHandler=a.constructor==HTMLVideoElement||a.constructor==HTMLAudioElement?new cvox.ChromeVoxHTMLMediaWidget(a,cvox.ChromeVox.tts):null;return null!=cvox.ChromeVoxEventWatcher.currentMediaHandler};
+cvox.ChromeVoxEventWatcher.setUpDateHandler_=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);cvox.ChromeVoxEventWatcher.currentDateHandler=a.constructor!=HTMLInputElement||!a.type||"date"!=a.type&&"month"!=a.type&&"week"!=a.type?null:new cvox.ChromeVoxHTMLDateWidget(a,cvox.ChromeVox.tts);return null!=cvox.ChromeVoxEventWatcher.currentDateHandler};cvox.Serializer=function(){};cvox.Serializer.prototype.storeOn=function(a){cvox.ChromeVox.storeOn(a);cvox.ChromeVoxEventWatcher.storeOn(a)};cvox.Serializer.prototype.readFrom=function(a){cvox.ChromeVox.readFrom(a);cvox.ChromeVoxEventWatcher.readFrom(a)};cvox.InitGlobals=function(){};
+cvox.InitGlobals.initGlobals=function(){cvox.ChromeVox.host||(cvox.ChromeVox.host=cvox.HostFactory.getHost());cvox.ChromeVox.tts=(new cvox.CompositeTts).add(cvox.HostFactory.getTts()).add(cvox.History.getInstance()).add(cvox.ConsoleTts.getInstance());cvox.ChromeVox.braille||(cvox.ChromeVox.braille=cvox.HostFactory.getBraille());cvox.ChromeVox.mathJax=cvox.HostFactory.getMathJax();cvox.ChromeVox.earcons=cvox.HostFactory.getEarcons();cvox.ChromeVox.msgs=cvox.HostFactory.getMsgs();cvox.ChromeVox.isActive=
+!0;cvox.ChromeVox.navigationManager=new cvox.NavigationManager;cvox.ChromeVox.navigationManager.updateIndicator();cvox.ChromeVox.syncToNode=cvox.ApiImplementation.syncToNode;cvox.ChromeVox.speakNode=cvox.ApiImplementation.speakNode;cvox.ChromeVox.serializer=new cvox.Serializer;cvox.ChromeVox.host.init();cvox.ChromeVoxEventWatcher.init(window);cvox.ChromeVox.executeUserCommand=function(a){cvox.ChromeVoxUserCommands.commands[a]()};cvox.ChromeVox.host.onPageLoad()};cvox.ChromeVoxInit={};cvox.ChromeVox.initTimeout_=100;cvox.ChromeVox.recallInit_=function(a){window.console.log(a+" Will try again in "+cvox.ChromeVox.initTimeout_+"ms");window.setTimeout(cvox.ChromeVox.initDocument,cvox.ChromeVox.initTimeout_);cvox.ChromeVox.initTimeout_*=2};
+cvox.ChromeVox.initDocument=function(){document.body?(cvox.ChromeVox.host=cvox.HostFactory.getHost(),cvox.ChromeVox.host.ttsLoaded()?(window.console.log("Starting ChromeVox."),cvox.InitGlobals.initGlobals(),window.disableChromeVox=function(){cvox.ChromeVox.host.killChromeVox()}):cvox.ChromeVox.recallInit_("ChromeVox not starting; waiting for TTS. "+document.location.href+".")):cvox.ChromeVox.recallInit_("ChromeVox not starting on unloaded page: "+document.location.href+".")};
+cvox.ChromeVox.reinit=function(){cvox.ChromeVox.host.reinit();cvox.ChromeVox.initDocument()};cvox.AndroidBraille=function(){};goog.inherits(cvox.AndroidBraille,cvox.AbstractBraille);cvox.AndroidBraille.prototype.write=function(a){accessibility.braille&&accessibility.braille(JSON.stringify(a.toJson()))};cvox.HostFactory.brailleConstructor=cvox.AndroidBraille;cvox.AndroidEarcons=function(){cvox.AbstractEarcons.call(this);this.audioMap={}};goog.inherits(cvox.AndroidEarcons,cvox.AbstractEarcons);cvox.AndroidEarcons.BASE_URL="https://ssl.gstatic.com/accessibility/javascript/android/earcons/";
+cvox.AndroidEarcons.prototype.playEarcon=function(a){if(this.earconsAvailable()){cvox.AndroidEarcons.superClass_.playEarcon.call(this,a);this.currentAudio=this.audioMap[a];this.currentAudio||(this.currentAudio=new Audio(cvox.AndroidEarcons.BASE_URL+this.getEarconFilename(a)),this.audioMap[a]=this.currentAudio);try{this.currentAudio.currentTime=0}catch(b){}this.currentAudio.paused&&this.currentAudio.play()}};
+cvox.AndroidEarcons.prototype.earconsAvailable=function(){return-1==navigator.userAgent.indexOf("Chrome")?!1:!0};cvox.HostFactory.earconsConstructor=cvox.AndroidEarcons;"undefined"!=typeof goog&&goog.provide&&(cvox.Api={},cvox.Api.Math={});
+(function(){function a(){d&&(d.port1.close(),d.port2.close(),d=null);d=new MessageChannel;window.postMessage("cvox.PortSetup",[d.port2],"*");d.port1.onmessage=function(a){"cvox.Disconnect"==a.data&&(d=null);try{var b=JSON.parse(a.data);b.id&&g[b.id]&&(g[b.id](b),delete g[b.id])}catch(c){}}}function b(a,b){var c=f;f++;void 0===a.args&&(a.args=[]);a.args=[c].concat(a.args);g[c]=b;d.port1.postMessage(JSON.stringify(a))}function c(a,c){var d=null;c&&c.endCallback&&(d=c.endCallback);b(a,d)}var d,e=!1,
+f=1,g={};window.cvox||(window.cvox={});var h=window.cvox,k=null;"undefined"!=typeof h.ApiImplementation&&(k=h.ApiImplementation);h.Api=function(){};h.Api.internalEnable=function(){e=!0;k||a();var b=document.createEvent("UIEvents");b.initEvent("chromeVoxLoaded",!0,!1);document.dispatchEvent(b)};h.Api.internalDisable=function(){e=!1;d=null;var a=document.createEvent("UIEvents");a.initEvent("chromeVoxUnloaded",!0,!1);document.dispatchEvent(a)};h.Api.isChromeVoxActive=function(){return k?e:!!d};h.Api.speak=
+function(a,b,d){h.Api.isChromeVoxActive()&&(k?k.speak(a,b,d):(a={cmd:"speak",args:[a,b,d]},c(a,d)))};h.Api.speakNode=function(a,b,d){h.Api.isChromeVoxActive()&&(k?k.speak(h.DomUtil.getName(a),b,d):(a={cmd:"speakNodeRef",args:[h.ApiUtils.makeNodeReference(a),b,d]},c(a,d)))};h.Api.stop=function(){if(h.Api.isChromeVoxActive())if(k)k.stop();else{var a={cmd:"stop"};d.port1.postMessage(JSON.stringify(a))}};h.Api.playEarcon=function(a){h.Api.isChromeVoxActive()&&(k?k.playEarcon(a):(a={cmd:"playEarcon",args:[a]},
+d.port1.postMessage(JSON.stringify(a))))};h.Api.syncToNode=function(a,b){if(h.Api.isChromeVoxActive()&&a)if(k)k.syncToNode(a,b);else{var c={cmd:"syncToNodeRef",args:[h.ApiUtils.makeNodeReference(a),b]};d.port1.postMessage(JSON.stringify(c))}};h.Api.getCurrentNode=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.ChromeVox.navigationManager.getCurrentNode()):b({cmd:"getCurrentNode"},function(b){a(h.ApiUtils.getNodeFromRef(b.currentNode))}))};h.Api.setSpeechForNode=function(a,b){h.Api.isChromeVoxActive()&&
+a&&b&&a.setAttribute("cvoxnodedesc",JSON.stringify(b))};h.Api.click=function(a,b){if(h.Api.isChromeVoxActive()&&a)if(k)h.DomUtil.clickElem(a,b,!0);else{var c={cmd:"clickNodeRef",args:[h.ApiUtils.makeNodeReference(a),b]};d.port1.postMessage(JSON.stringify(c))}};h.Api.getBuild=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.BuildInfo.build):b({cmd:"getBuild"},function(b){a(b.build)}))};h.Api.getVersion=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.ChromeVox.version+""):b({cmd:"getVersion"},function(b){a(b.version)}))};
+h.Api.getCvoxModifierKeys=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.KeyUtil.cvoxModKeyCodes()):b({cmd:"getCvoxModKeys"},function(b){a(b.keyCodes)}))};h.Api.isKeyShortcut=function(a,c){if(c)if(h.Api.isChromeVoxActive()){var d=[37,39];if(!d.indexOf(a.keyCode)||a.altKey||a.shiftKey||a.ctrlKey||a.metaKey)if(k){var e=h.KeyUtil.keyEventToKeySequence(a);c(h.ChromeVoxKbHandler.handlerKeyMap.hasKey(e))}else{var d={},f=["target","srcElement","currentTarget","view"];for(e in a)-1===f.indexOf(e)&&(d[e]=
+a[e]);e={cmd:"isKeyShortcut",args:[d]};b(e,function(a){c(a.isHandled)})}else c(!1)}else c(!1)};h.Api.setKeyEcho=function(a){h.Api.isChromeVoxActive()&&(k?k.setKeyEcho(a):(a={cmd:"setKeyEcho",args:[a]},d.port1.postMessage(JSON.stringify(a))))};h.Api.Math=function(){};h.Api.Math.defineRule=function(a,b,c,e,f){if(h.Api.isChromeVoxActive()){var g=Array.prototype.slice.call(arguments,4),g=[a,b,c,e].concat(g);k?k.Math.defineRule.apply(k.Math,g):(g={cmd:"Math.defineRule",args:g},d.port1.postMessage(JSON.stringify(g)))}};
+h.Api.internalEnable();h.NodeDescription=function(a,b,c,d){this.context=a?a:"";this.text=b?b:"";this.userValue=c?c:"";this.annotation=d?d:""}})();cvox.InitialSpeech={};window.INJECTED_AFTER_LOAD||(window.INJECTED_AFTER_LOAD=!1);
+cvox.InitialSpeech.speak=function(){var a=window.INJECTED_AFTER_LOAD;if(!cvox.ChromeVox.isActive||document.webkitHidden)a=!0;window.top==window&&document.title&&!a&&cvox.ChromeVox.tts.speak(document.title,cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.LiveRegions.init(new Date,cvox.AbstractTts.QUEUE_MODE_QUEUE,a);document.hasFocus()&&document.activeElement==document.body&&cvox.ChromeVox.navigationManager.syncToBeginning();if(cvox.ChromeVox.position[document.location.href]){var b=cvox.ChromeVox.position[document.location.href];
+cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(document.elementFromPoint(b.x,b.y))}document.hasFocus()&&(a||cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(){cvox.ChromeVox.navigationManager.finishNavCommand("",!0,cvox.AbstractTts.QUEUE_MODE_QUEUE)})())};cvox.AndroidKeyMap=function(){};
+cvox.AndroidKeyMap.getStringifiedKeyMap=function(){return cvox.ChromeVoxJSON.stringify({'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[17]}}':"stopSpeech",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[9]}}':"handleTab",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[9]}}':"handleTabPrev",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[38]}}':"backward",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[40]}}':"forward",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[37]}}':"previousGranularity",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[39]}}':"nextGranularity",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[13]}}':"forceClickOnCurrentItem",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[40]}}':"readFromHere",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[85]}}':"readLinkURL",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[75]}}':"fullyDescribe",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[189]}}':"decreaseTtsPitch",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[187]}}':"increaseTtsPitch",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[219]}}':"decreaseTtsRate",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[221]}}':"increaseTtsRate",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[81]}}':"cyclePunctuationLevel",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[49]}}':"nextHeading1",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[49]}}':"previousHeading1",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[50]}}':"nextHeading2",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[50]}}':"previousHeading2",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[51]}}':"nextHeading3",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[51]}}':"previousHeading3",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[52]}}':"nextHeading4",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[52]}}':"previousHeading4",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[53]}}':"nextHeading5",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[53]}}':"previousHeading5",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[54]}}':"nextHeading6",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[54]}}':"previousHeading6",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[67]}}':"nextComboBox",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[67]}}':"previousComboBox",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[69]}}':"nextEditText",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[69]}}':"previousEditText",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[70]}}':"nextFormField",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[70]}}':"previousFormField",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[71]}}':"nextGraphic",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[71]}}':"previousGraphic",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[72]}}':"nextHeading",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[72]}}':"previousHeading",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[73]}}':"nextListItem",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[73]}}':"previousListItem",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[76]}}':"nextLink",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[76]}}':"previousLink",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[79]}}':"nextList",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[79]}}':"previousList",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[82]}}':"nextRadio",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[82]}}':"previousRadio",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[84]}}':"nextTable",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[84]}}':"previousTable",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[66]}}':"nextButton",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[66]}}':"previousButton",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[88]}}':"nextCheckbox",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[88]}}':"previousCheckbox",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[186]}}':"nextLandmark",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[186]}}':"previousLandmark"})};cvox.MathSimpleStore=function(){cvox.MathStore.call(this)};goog.inherits(cvox.MathSimpleStore,cvox.MathStore);cvox.MathSimpleStore.prototype.defineRulesFromMappings=function(a,b,c){for(var d in c)for(var e in c[d]){var f=c[d][e],g='self::text() = "'+b+'"';this.defineRule(a,d+"."+e,'[t] "'+f+'"',"self::text()",g)}};cvox.MathCompoundStore=function(){this.subStores_={}};goog.addSingletonGetter(cvox.MathCompoundStore);
+cvox.MathCompoundStore.prototype.defineRules=function(a,b,c){var d=new cvox.MathSimpleStore;d.defineRulesFromMappings(a,b,c);this.subStores_[b]=d};cvox.MathCompoundStore.prototype.addSymbolRules=function(a){var b=cvox.MathSimpleStore.parseUnicode_(a.key);this.defineRules(a.key,b,a.mappings)};cvox.MathCompoundStore.prototype.addFunctionRules=function(a){var b=a.names;a=a.mappings;for(var c=0,d;d=b[c];c++)this.defineRules(d,d,a)};
+cvox.MathCompoundStore.prototype.lookupRule=function(a,b){var c=this.subStores_[a.textContent];if(c)return c.lookupRule(a,b)};cvox.MathCompoundStore.prototype.lookupString=function(a,b){var c=document.createTextNode(a);return(c=this.lookupRule(c,b))?c.action.components.map(function(a){return a.content.slice(1,-1)}).join(" "):""};
+cvox.MathCompoundStore.prototype.getDynamicConstraintValues=function(){var a={},b;for(b in this.subStores_){var c=this.subStores_[b].getDynamicConstraintValues(),d;for(d in c){var e=a[d];a[d]=e?cvox.MathUtil.union(e,c[d]):c[d]}}return a};cvox.MathSimpleStore.parseUnicode_=function(a){var b=parseInt(a,16);if(65536>b)return String.fromCharCode(b);b-=65536;a=(b>>10)+55296;b=(b&1023)+56320;return String.fromCharCode(a,b)};cvox.AndroidMathMap=function(){this.store_=cvox.MathCompoundStore.getInstance();cvox.AndroidMathMap.FUNCTION_MAPPINGS_.forEach(goog.bind(this.store_.addFunctionRules,this.store_));cvox.AndroidMathMap.SYMBOL_MAPPINGS_.forEach(goog.bind(this.store_.addSymbolRules,this.store_));this.store_.getDynamicConstraintValues()};
+cvox.AndroidMathMap.prototype.evaluate=function(a,b,c){var d="";b=cvox.MathStore.createDynamicConstraint(b,c);d=this.store_.lookupString(a,b);return new cvox.NavDescription({text:d?d:a})};
+cvox.AndroidMathMap.SYMBOL_MAPPINGS_=[{category:"Po",mappings:{"default":{"default":"exclamation mark"}},key:"0021"},{category:"Po",mappings:{"default":{"default":"quotation mark"}},key:"0022"},{category:"Po",mappings:{"default":{"default":"number sign",alternative:"hash","short":"number"}},key:"0023"},{category:"Sc",mappings:{"default":{"default":"dollar sign","short":"dollar"}},key:"0024"},{category:"Po",mappings:{"default":{"default":"percent sign","short":"percent"}},key:"0025"},{category:"Po",
+mappings:{"default":{"default":"ampersand"}},key:"0026"},{category:"Po",mappings:{"default":{"default":"apostrophe",alternative:"apostrophe quote"}},key:"0027"},{category:"Po",mappings:{"default":{"default":"asterisk"}},key:"002A"},{category:"Sm",mappings:{"default":{"default":"plus sign","short":"plus"}},key:"002B"},{category:"Po",mappings:{"default":{"default":"comma"}},key:"002C"},{category:"Pd",mappings:{"default":{"default":"hyphen minus","short":"minus"}},key:"002D"},{category:"Po",mappings:{"default":{"default":"full stop",
+alternative:"period"}},key:"002E"},{category:"Po",mappings:{"default":{"default":"solidus",alternative:"slash"}},key:"002F"},{category:"Po",mappings:{"default":{"default":"colon"}},key:"003A"},{category:"Po",mappings:{"default":{"default":"semicolon"}},key:"003B"},{category:"Sm",mappings:{"default":{"default":"less than sign","short":"less than"}},key:"003C"},{category:"Sm",mappings:{"default":{"default":"equals sign","short":"equals"}},key:"003D"},{category:"Sm",mappings:{"default":{"default":"greater than sign",
+"short":"greater than"}},key:"003E"},{category:"Po",mappings:{"default":{"default":"question mark"}},key:"003F"},{category:"Po",mappings:{"default":{"default":"commercial at","short":"at"}},key:"0040"},{category:"Po",mappings:{"default":{"default":"reverse solidus",alternative:"backslash"}},key:"005C"},{category:"Sk",mappings:{"default":{"default":"circumflex accent",alternative:"spacing circumflex","short":"hat"}},key:"005E"},{category:"Pc",mappings:{"default":{"default":"low line",alternative:"spacing underscore"}},
+key:"005F"},{category:"Sk",mappings:{"default":{"default":"grave accent",alternative:"spacing grave","short":"grave"}},key:"0060"},{category:"Sm",mappings:{"default":{"default":"vertical line",alternative:"vertical bar"}},key:"007C"},{category:"Sm",mappings:{"default":{"default":"tilde"}},key:"007E"},{category:"Po",mappings:{"default":{"default":"inverted exclamation mark"}},key:"00A1"},{category:"Sc",mappings:{"default":{"default":"cent sign","short":"cent"}},key:"00A2"},{category:"Sc",mappings:{"default":{"default":"pound sign",
+"short":"pound"}},key:"00A3"},{category:"Sc",mappings:{"default":{"default":"currency sign","short":"currency"}},key:"00A4"},{category:"Sc",mappings:{"default":{"default":"yen sign","short":"yen"}},key:"00A5"},{category:"So",mappings:{"default":{"default":"broken bar",alternative:"broken vertical bar"}},key:"00A6"},{category:"Po",mappings:{"default":{"default":"section sign","short":"section"}},key:"00A7"},{category:"Sk",mappings:{"default":{"default":"diaeresis",alternative:"spacing diaeresis","short":"double dot"}},
+key:"00A8"},{category:"So",mappings:{"default":{"default":"copyright sign","short":"copyright"}},key:"00A9"},{category:"Lo",mappings:{"default":{"default":"feminine ordinal indicator"}},key:"00AA"},{category:"Pi",mappings:{"default":{"default":"left pointing double angle quotation mark",alternative:"left pointing guillemet"}},key:"00AB"},{category:"Sm",mappings:{"default":{"default":"not sign","short":"not"}},key:"00AC"},{category:"So",mappings:{"default":{"default":"registered sign",alternative:"registered trade mark sign",
+"short":"registered"}},key:"00AE"},{category:"Sk",mappings:{"default":{"default":"macron",alternative:"spacing macron"}},key:"00AF"},{category:"So",mappings:{"default":{"default":"degree sign","short":"degree"}},key:"00B0"},{category:"Sm",mappings:{"default":{"default":"plus minus sign",alternative:"plus or minus sign","short":"plus minus"}},key:"00B1"},{category:"Sk",mappings:{"default":{"default":"acute accent",alternative:"spacing acute","short":"acute"}},key:"00B4"},{category:"Ll",mappings:{"default":{"default":"micro sign",
+"short":"micro"}},key:"00B5"},{category:"Po",mappings:{"default":{"default":"pilcrow sign",alternative:"paragraph sign","short":"pilcrow"}},key:"00B6"},{category:"Po",mappings:{"default":{"default":"middle dot"}},key:"00B7"},{category:"Sk",mappings:{"default":{"default":"cedilla",alternative:"spacing cedilla"}},key:"00B8"},{category:"Lo",mappings:{"default":{"default":"masculine ordinal indicator"}},key:"00BA"},{category:"Pf",mappings:{"default":{"default":"right pointing double angle quotation mark",
+alternative:"right pointing guillemet"}},key:"00BB"},{category:"Po",mappings:{"default":{"default":"inverted question mark"}},key:"00BF"},{category:"Sm",mappings:{"default":{"default":"multiplication sign","short":"multiplication"}},key:"00D7"},{category:"Sm",mappings:{"default":{"default":"division sign","short":"division"}},key:"00F7"},{category:"Sk",mappings:{"default":{"default":"breve",alternative:"spacing breve"}},key:"02D8"},{category:"Sk",mappings:{"default":{"default":"dot above",alternative:"spacing dot above"}},
+key:"02D9"},{category:"Sk",mappings:{"default":{"default":"ring above",alternative:"spacing ring above"}},key:"02DA"},{category:"Sk",mappings:{"default":{"default":"ogonek",alternative:"spacing ogonek"}},key:"02DB"},{category:"Sk",mappings:{"default":{"default":"small tilde",alternative:"spacing tilde"}},key:"02DC"},{category:"Sk",mappings:{"default":{"default":"double acute accent",alternative:"spacing double acute"}},key:"02DD"},{category:"Pd",mappings:{"default":{"default":"hyphen"}},key:"2010"},
+{category:"Pd",mappings:{"default":{"default":"non breaking hyphen"}},key:"2011"},{category:"Pd",mappings:{"default":{"default":"figure dash"}},key:"2012"},{category:"Pd",mappings:{"default":{"default":"en dash"}},key:"2013"},{category:"Pd",mappings:{"default":{"default":"em dash"}},key:"2014"},{category:"Pd",mappings:{"default":{"default":"horizontal bar",alternative:"quotation dash"}},key:"2015"},{category:"Po",mappings:{"default":{"default":"double vertical line",alternative:"double vertical bar"}},
+key:"2016"},{category:"Po",mappings:{"default":{"default":"double low line",alternative:"spacing double underscore"}},key:"2017"},{category:"Pi",mappings:{"default":{"default":"left single quotation mark",alternative:"single turned comma quotation mark"}},key:"2018"},{category:"Pf",mappings:{"default":{"default":"right single quotation mark",alternative:"single comma quotation mark"}},key:"2019"},{category:"Ps",mappings:{"default":{"default":"single low 9 quotation mark",alternative:"low single comma quotation mark"}},
+key:"201A"},{category:"Pi",mappings:{"default":{"default":"single high reversed 9 quotation mark",alternative:"single reversed comma quotation mark"}},key:"201B"},{category:"Pi",mappings:{"default":{"default":"left double quotation mark",alternative:"double turned comma quotation mark"}},key:"201C"},{category:"Pf",mappings:{"default":{"default":"right double quotation mark",alternative:"double comma quotation mark"}},key:"201D"},{category:"Ps",mappings:{"default":{"default":"double low 9 quotation mark",
+alternative:"low double comma quotation mark"}},key:"201E"},{category:"Pi",mappings:{"default":{"default":"double high reversed 9 quotation mark",alternative:"double reversed comma quotation mark"}},key:"201F"},{category:"Po",mappings:{"default":{"default":"dagger"}},key:"2020"},{category:"Po",mappings:{"default":{"default":"double dagger"}},key:"2021"},{category:"Po",mappings:{"default":{"default":"bullet"}},key:"2022"},{category:"Po",mappings:{"default":{"default":"triangular bullet"}},key:"2023"},
+{category:"Po",mappings:{"default":{"default":"one dot leader"}},key:"2024"},{category:"Po",mappings:{"default":{"default":"two dot leader"}},key:"2025"},{category:"Po",mappings:{"default":{"default":"horizontal ellipsis"}},key:"2026"},{category:"Po",mappings:{"default":{"default":"hyphenation point"}},key:"2027"},{category:"Po",mappings:{"default":{"default":"per mille sign","short":"per mille"}},key:"2030"},{category:"Po",mappings:{"default":{"default":"per ten thousand sign","short":"per ten thousand"}},
+key:"2031"},{category:"Po",mappings:{"default":{"default":"prime"}},key:"2032"},{category:"Po",mappings:{"default":{"default":"double prime"}},key:"2033"},{category:"Po",mappings:{"default":{"default":"triple prime"}},key:"2034"},{category:"Po",mappings:{"default":{"default":"reversed prime"}},key:"2035"},{category:"Po",mappings:{"default":{"default":"reversed double prime"}},key:"2036"},{category:"Po",mappings:{"default":{"default":"reversed triple prime"}},key:"2037"},{category:"Po",mappings:{"default":{"default":"caret"}},
+key:"2038"},{category:"Pi",mappings:{"default":{"default":"single left pointing angle quotation mark",alternative:"left pointing single guillemet"}},key:"2039"},{category:"Pf",mappings:{"default":{"default":"single right pointing angle quotation mark",alternative:"right pointing single guillemet"}},key:"203A"},{category:"Po",mappings:{"default":{"default":"reference mark"}},key:"203B"},{category:"Po",mappings:{"default":{"default":"double exclamation mark"}},key:"203C"},{category:"Po",mappings:{"default":{"default":"interrobang"}},
+key:"203D"},{category:"Po",mappings:{"default":{"default":"overline",alternative:"spacing overscore"}},key:"203E"},{category:"Pc",mappings:{"default":{"default":"undertie"}},key:"203F"},{category:"Pc",mappings:{"default":{"default":"character tie"}},key:"2040"},{category:"Po",mappings:{"default":{"default":"caret insertion point"}},key:"2041"},{category:"Po",mappings:{"default":{"default":"asterism"}},key:"2042"},{category:"Po",mappings:{"default":{"default":"hyphen bullet"}},key:"2043"},{category:"Sm",
+mappings:{"default":{"default":"fraction slash"}},key:"2044"},{category:"Po",mappings:{"default":{"default":"double question mark"}},key:"2047"},{category:"Po",mappings:{"default":{"default":"question exclamation mark"}},key:"2048"},{category:"Po",mappings:{"default":{"default":"exclamation question mark"}},key:"2049"},{category:"Po",mappings:{"default":{"default":"reversed pilcrow sign","short":"reversed pilcrow"}},key:"204B"},{category:"Po",mappings:{"default":{"default":"black leftwards bullet"}},
+key:"204C"},{category:"Po",mappings:{"default":{"default":"black rightwards bullet"}},key:"204D"},{category:"Po",mappings:{"default":{"default":"low asterisk"}},key:"204E"},{category:"Po",mappings:{"default":{"default":"reversed semicolon"}},key:"204F"},{category:"Po",mappings:{"default":{"default":"close up"}},key:"2050"},{category:"Po",mappings:{"default":{"default":"two asterisks aligned vertically"}},key:"2051"},{category:"Sm",mappings:{"default":{"default":"commercial minus sign","short":"commercial minus"}},
+key:"2052"},{category:"Po",mappings:{"default":{"default":"swung dash"}},key:"2053"},{category:"Pc",mappings:{"default":{"default":"inverted undertie"}},key:"2054"},{category:"Po",mappings:{"default":{"default":"flower punctuation mark"}},key:"2055"},{category:"Po",mappings:{"default":{"default":"three dot punctuation"}},key:"2056"},{category:"Po",mappings:{"default":{"default":"quadruple prime"}},key:"2057"},{category:"Po",mappings:{"default":{"default":"four dot punctuation"}},key:"2058"},{category:"Po",
+mappings:{"default":{"default":"five dot punctuation"}},key:"2059"},{category:"Po",mappings:{"default":{"default":"two dot punctuation"}},key:"205A"},{category:"Po",mappings:{"default":{"default":"four dot mark"}},key:"205B"},{category:"Po",mappings:{"default":{"default":"dotted cross"}},key:"205C"},{category:"Po",mappings:{"default":{"default":"tricolon"}},key:"205D"},{category:"Po",mappings:{"default":{"default":"vertical four dots"}},key:"205E"},{category:"Sm",mappings:{"default":{"default":"superscript plus sign",
+"short":"superscript plus"}},key:"207A"},{category:"Sm",mappings:{"default":{"default":"superscript minus",alternative:"superscript hyphen minus"}},key:"207B"},{category:"Sm",mappings:{"default":{"default":"superscript equals sign","short":"superscript equals"}},key:"207C"},{category:"Ps",mappings:{"default":{"default":"superscript left parenthesis",alternative:"superscript opening parenthesis"}},key:"207D"},{category:"Pe",mappings:{"default":{"default":"superscript right parenthesis",alternative:"superscript closing parenthesis"}},
+key:"207E"},{category:"Sm",mappings:{"default":{"default":"subscript plus sign","short":"subscript plus"}},key:"208A"},{category:"Sm",mappings:{"default":{"default":"subscript minus",alternative:"subscript hyphen minus"}},key:"208B"},{category:"Sm",mappings:{"default":{"default":"subscript equals sign","short":"subscript equals"}},key:"208C"},{category:"Ps",mappings:{"default":{"default":"subscript left parenthesis",alternative:"subscript opening parenthesis"}},key:"208D"},{category:"Pe",mappings:{"default":{"default":"subscript right parenthesis",
+alternative:"subscript closing parenthesis"}},key:"208E"},{category:"So",mappings:{"default":{"default":"property line"}},key:"214A"},{category:"Sm",mappings:{"default":{"default":"turned ampersand"}},key:"214B"},{category:"So",mappings:{"default":{"default":"per sign","short":"per"}},key:"214C"},{category:"So",mappings:{"default":{"default":"aktieselskab"}},key:"214D"},{category:"Ll",mappings:{"default":{"default":"turned small f"}},key:"214E"},{category:"Sm",mappings:{"default":{"default":"for all"}},
+key:"2200"},{category:"Sm",mappings:{"default":{"default":"complement"}},key:"2201"},{category:"Sm",mappings:{"default":{"default":"partial differential"}},key:"2202"},{category:"Sm",mappings:{"default":{"default":"there exists"}},key:"2203"},{category:"Sm",mappings:{"default":{"default":"there does not exist"}},key:"2204"},{category:"Sm",mappings:{"default":{"default":"empty set"}},key:"2205"},{category:"Sm",mappings:{"default":{"default":"increment"}},key:"2206"},{category:"Sm",mappings:{"default":{"default":"nabla"}},
+key:"2207"},{category:"Sm",mappings:{"default":{"default":"element of"}},key:"2208"},{category:"Sm",mappings:{"default":{"default":"not an element of"}},key:"2209"},{category:"Sm",mappings:{"default":{"default":"small element of"}},key:"220A"},{category:"Sm",mappings:{"default":{"default":"contains as member"}},key:"220B"},{category:"Sm",mappings:{"default":{"default":"does not contain as member"}},key:"220C"},{category:"Sm",mappings:{"default":{"default":"small contains as member"}},key:"220D"},
+{category:"Sm",mappings:{"default":{"default":"end of proof"}},key:"220E"},{category:"Sm",mappings:{"default":{"default":"n ary product"}},key:"220F"},{category:"Sm",mappings:{"default":{"default":"n ary coproduct"}},key:"2210"},{category:"Sm",mappings:{"default":{"default":"n ary summation"}},key:"2211"},{category:"Sm",mappings:{"default":{"default":"minus sign","short":"minus"}},key:"2212"},{category:"Sm",mappings:{"default":{"default":"minus or plus sign","short":"minus or plus"}},key:"2213"},
+{category:"Sm",mappings:{"default":{"default":"dot plus"}},key:"2214"},{category:"Sm",mappings:{"default":{"default":"division slash"}},key:"2215"},{category:"Sm",mappings:{"default":{"default":"set minus"}},key:"2216"},{category:"Sm",mappings:{"default":{"default":"asterisk operator"}},key:"2217"},{category:"Sm",mappings:{"default":{"default":"ring operator"}},key:"2218"},{category:"Sm",mappings:{"default":{"default":"bullet operator"}},key:"2219"},{category:"Sm",mappings:{"default":{"default":"square root"}},
+key:"221A"},{category:"Sm",mappings:{"default":{"default":"cube root"}},key:"221B"},{category:"Sm",mappings:{"default":{"default":"fourth root"}},key:"221C"},{category:"Sm",mappings:{"default":{"default":"proportional to"}},key:"221D"},{category:"Sm",mappings:{"default":{"default":"infinity"}},key:"221E"},{category:"Sm",mappings:{"default":{"default":"right angle"}},key:"221F"},{category:"Sm",mappings:{"default":{"default":"angle"}},key:"2220"},{category:"Sm",mappings:{"default":{"default":"measured angle"}},
+key:"2221"},{category:"Sm",mappings:{"default":{"default":"spherical angle"}},key:"2222"},{category:"Sm",mappings:{"default":{"default":"divides","short":"bar"}},key:"2223"},{category:"Sm",mappings:{"default":{"default":"does not divide"}},key:"2224"},{category:"Sm",mappings:{"default":{"default":"parallel to"}},key:"2225"},{category:"Sm",mappings:{"default":{"default":"not parallel to"}},key:"2226"},{category:"Sm",mappings:{"default":{"default":"logical and"}},key:"2227"},{category:"Sm",mappings:{"default":{"default":"logical or"}},
+key:"2228"},{category:"Sm",mappings:{"default":{"default":"intersection"}},key:"2229"},{category:"Sm",mappings:{"default":{"default":"union"}},key:"222A"},{category:"Sm",mappings:{"default":{"default":"integral"}},key:"222B"},{category:"Sm",mappings:{"default":{"default":"double integral"}},key:"222C"},{category:"Sm",mappings:{"default":{"default":"triple integral"}},key:"222D"},{category:"Sm",mappings:{"default":{"default":"contour integral"}},key:"222E"},{category:"Sm",mappings:{"default":{"default":"surface integral"}},
+key:"222F"},{category:"Sm",mappings:{"default":{"default":"volume integral"}},key:"2230"},{category:"Sm",mappings:{"default":{"default":"clockwise integral"}},key:"2231"},{category:"Sm",mappings:{"default":{"default":"clockwise contour integral"}},key:"2232"},{category:"Sm",mappings:{"default":{"default":"anticlockwise contour integral"}},key:"2233"},{category:"Sm",mappings:{"default":{"default":"therefore"}},key:"2234"},{category:"Sm",mappings:{"default":{"default":"because"}},key:"2235"},{category:"Sm",
+mappings:{"default":{"default":"ratio"}},key:"2236"},{category:"Sm",mappings:{"default":{"default":"proportion"}},key:"2237"},{category:"Sm",mappings:{"default":{"default":"dot minus"}},key:"2238"},{category:"Sm",mappings:{"default":{"default":"excess"}},key:"2239"},{category:"Sm",mappings:{"default":{"default":"geometric proportion"}},key:"223A"},{category:"Sm",mappings:{"default":{"default":"homothetic"}},key:"223B"},{category:"Sm",mappings:{"default":{"default":"tilde operator"}},key:"223C"},{category:"Sm",
+mappings:{"default":{"default":"reversed tilde"}},key:"223D"},{category:"Sm",mappings:{"default":{"default":"inverted lazy s"}},key:"223E"},{category:"Sm",mappings:{"default":{"default":"sine wave"}},key:"223F"},{category:"Sm",mappings:{"default":{"default":"wreath product"}},key:"2240"},{category:"Sm",mappings:{"default":{"default":"not tilde"}},key:"2241"},{category:"Sm",mappings:{"default":{"default":"minus tilde"}},key:"2242"},{category:"Sm",mappings:{"default":{"default":"asymptotically equal to"}},
+key:"2243"},{category:"Sm",mappings:{"default":{"default":"not asymptotically equal to"}},key:"2244"},{category:"Sm",mappings:{"default":{"default":"approximately equal to"}},key:"2245"},{category:"Sm",mappings:{"default":{"default":"approximately but not actually equal to"}},key:"2246"},{category:"Sm",mappings:{"default":{"default":"neither approximately nor actually equal to"}},key:"2247"},{category:"Sm",mappings:{"default":{"default":"almost equal to"}},key:"2248"},{category:"Sm",mappings:{"default":{"default":"not almost equal to"}},
+key:"2249"},{category:"Sm",mappings:{"default":{"default":"almost equal or equal to"}},key:"224A"},{category:"Sm",mappings:{"default":{"default":"triple tilde"}},key:"224B"},{category:"Sm",mappings:{"default":{"default":"all equal to"}},key:"224C"},{category:"Sm",mappings:{"default":{"default":"equivalent to"}},key:"224D"},{category:"Sm",mappings:{"default":{"default":"geometrically equivalent to"}},key:"224E"},{category:"Sm",mappings:{"default":{"default":"difference between"}},key:"224F"},{category:"Sm",
+mappings:{"default":{"default":"approaches the limit"}},key:"2250"},{category:"Sm",mappings:{"default":{"default":"geometrically equal to"}},key:"2251"},{category:"Sm",mappings:{"default":{"default":"approximately equal to or the image of"}},key:"2252"},{category:"Sm",mappings:{"default":{"default":"image of or approximately equal to"}},key:"2253"},{category:"Sm",mappings:{"default":{"default":"colon equals",alternative:"colon equal"}},key:"2254"},{category:"Sm",mappings:{"default":{"default":"equals colon",
+alternative:"equal colon"}},key:"2255"},{category:"Sm",mappings:{"default":{"default":"ring in equal to"}},key:"2256"},{category:"Sm",mappings:{"default":{"default":"ring equal to"}},key:"2257"},{category:"Sm",mappings:{"default":{"default":"corresponds to"}},key:"2258"},{category:"Sm",mappings:{"default":{"default":"estimates"}},key:"2259"},{category:"Sm",mappings:{"default":{"default":"equiangular to"}},key:"225A"},{category:"Sm",mappings:{"default":{"default":"star equals"}},key:"225B"},{category:"Sm",
+mappings:{"default":{"default":"delta equal to"}},key:"225C"},{category:"Sm",mappings:{"default":{"default":"equal to by definition"}},key:"225D"},{category:"Sm",mappings:{"default":{"default":"measured by"}},key:"225E"},{category:"Sm",mappings:{"default":{"default":"questioned equal to"}},key:"225F"},{category:"Sm",mappings:{"default":{"default":"not equal to"}},key:"2260"},{category:"Sm",mappings:{"default":{"default":"identical to"}},key:"2261"},{category:"Sm",mappings:{"default":{"default":"not identical to"}},
+key:"2262"},{category:"Sm",mappings:{"default":{"default":"strictly equivalent to"}},key:"2263"},{category:"Sm",mappings:{"default":{"default":"less than or equal to",alternative:"less than or equal to"}},key:"2264"},{category:"Sm",mappings:{"default":{"default":"greater than or equal to",alternative:"greater than or equal to"}},key:"2265"},{category:"Sm",mappings:{"default":{"default":"less than over equal to",alternative:"less than over equal to"}},key:"2266"},{category:"Sm",mappings:{"default":{"default":"greater than over equal to",
+alternative:"greater than over equal to"}},key:"2267"},{category:"Sm",mappings:{"default":{"default":"less than but not equal to",alternative:"less than but not equal to"}},key:"2268"},{category:"Sm",mappings:{"default":{"default":"greater than but not equal to",alternative:"greater than but not equal to"}},key:"2269"},{category:"Sm",mappings:{"default":{"default":"much less than",alternative:"much less than"}},key:"226A"},{category:"Sm",mappings:{"default":{"default":"much greater than",alternative:"much greater than"}},
+key:"226B"},{category:"Sm",mappings:{"default":{"default":"between"}},key:"226C"},{category:"Sm",mappings:{"default":{"default":"not equivalent to"}},key:"226D"},{category:"Sm",mappings:{"default":{"default":"not less than",alternative:"not less than"}},key:"226E"},{category:"Sm",mappings:{"default":{"default":"not greater than",alternative:"not greater than"}},key:"226F"},{category:"Sm",mappings:{"default":{"default":"neither less than nor equal to",alternative:"neither less than nor equal to"}},
+key:"2270"},{category:"Sm",mappings:{"default":{"default":"neither greater than nor equal to",alternative:"neither greater than nor equal to"}},key:"2271"},{category:"Sm",mappings:{"default":{"default":"less than or equivalent to",alternative:"less than or equivalent to"}},key:"2272"},{category:"Sm",mappings:{"default":{"default":"greater than or equivalent to",alternative:"greater than or equivalent to"}},key:"2273"},{category:"Sm",mappings:{"default":{"default":"neither less than nor equivalent to",
+alternative:"neither less than nor equivalent to"}},key:"2274"},{category:"Sm",mappings:{"default":{"default":"neither greater than nor equivalent to",alternative:"neither greater than nor equivalent to"}},key:"2275"},{category:"Sm",mappings:{"default":{"default":"less than or greater than",alternative:"less than or greater than"}},key:"2276"},{category:"Sm",mappings:{"default":{"default":"greater than or less than",alternative:"greater than or less than"}},key:"2277"},{category:"Sm",mappings:{"default":{"default":"neither less than nor greater than",
+alternative:"neither less than nor greater than"}},key:"2278"},{category:"Sm",mappings:{"default":{"default":"neither greater than nor less than",alternative:"neither greater than nor less than"}},key:"2279"},{category:"Sm",mappings:{"default":{"default":"precedes"}},key:"227A"},{category:"Sm",mappings:{"default":{"default":"succeeds"}},key:"227B"},{category:"Sm",mappings:{"default":{"default":"precedes or equal to"}},key:"227C"},{category:"Sm",mappings:{"default":{"default":"succeeds or equal to"}},
+key:"227D"},{category:"Sm",mappings:{"default":{"default":"precedes or equivalent to"}},key:"227E"},{category:"Sm",mappings:{"default":{"default":"succeeds or equivalent to"}},key:"227F"},{category:"Sm",mappings:{"default":{"default":"does not precede"}},key:"2280"},{category:"Sm",mappings:{"default":{"default":"does not succeed"}},key:"2281"},{category:"Sm",mappings:{"default":{"default":"subset of"}},key:"2282"},{category:"Sm",mappings:{"default":{"default":"superset of"}},key:"2283"},{category:"Sm",
+mappings:{"default":{"default":"not a subset of"}},key:"2284"},{category:"Sm",mappings:{"default":{"default":"not a superset of"}},key:"2285"},{category:"Sm",mappings:{"default":{"default":"subset of or equal to"}},key:"2286"},{category:"Sm",mappings:{"default":{"default":"superset of or equal to"}},key:"2287"},{category:"Sm",mappings:{"default":{"default":"neither a subset of nor equal to"}},key:"2288"},{category:"Sm",mappings:{"default":{"default":"neither a superset of nor equal to"}},key:"2289"},
+{category:"Sm",mappings:{"default":{"default":"subset of with not equal to",alternative:"subset of or not equal to","short":"subset of or not equal to"}},key:"228A"},{category:"Sm",mappings:{"default":{"default":"superset of with not equal to",alternative:"superset of or not equal to","short":"superset of or not equal to"}},key:"228B"},{category:"Sm",mappings:{"default":{"default":"multiset"}},key:"228C"},{category:"Sm",mappings:{"default":{"default":"multiset multiplication"}},key:"228D"},{category:"Sm",
+mappings:{"default":{"default":"multiset union"}},key:"228E"},{category:"Sm",mappings:{"default":{"default":"square image of"}},key:"228F"},{category:"Sm",mappings:{"default":{"default":"square original of"}},key:"2290"},{category:"Sm",mappings:{"default":{"default":"square image of or equal to"}},key:"2291"},{category:"Sm",mappings:{"default":{"default":"square original of or equal to"}},key:"2292"},{category:"Sm",mappings:{"default":{"default":"square cap"}},key:"2293"},{category:"Sm",mappings:{"default":{"default":"square cup"}},
+key:"2294"},{category:"Sm",mappings:{"default":{"default":"circled plus"}},key:"2295"},{category:"Sm",mappings:{"default":{"default":"circled minus"}},key:"2296"},{category:"Sm",mappings:{"default":{"default":"circled times"}},key:"2297"},{category:"Sm",mappings:{"default":{"default":"circled division slash"}},key:"2298"},{category:"Sm",mappings:{"default":{"default":"circled dot operator"}},key:"2299"},{category:"Sm",mappings:{"default":{"default":"circled ring operator"}},key:"229A"},{category:"Sm",
+mappings:{"default":{"default":"circled asterisk operator"}},key:"229B"},{category:"Sm",mappings:{"default":{"default":"circled equals"}},key:"229C"},{category:"Sm",mappings:{"default":{"default":"circled dash"}},key:"229D"},{category:"Sm",mappings:{"default":{"default":"squared plus"}},key:"229E"},{category:"Sm",mappings:{"default":{"default":"squared minus"}},key:"229F"},{category:"Sm",mappings:{"default":{"default":"squared times"}},key:"22A0"},{category:"Sm",mappings:{"default":{"default":"squared dot operator"}},
+key:"22A1"},{category:"Sm",mappings:{"default":{"default":"right tack"}},key:"22A2"},{category:"Sm",mappings:{"default":{"default":"left tack"}},key:"22A3"},{category:"Sm",mappings:{"default":{"default":"down tack"}},key:"22A4"},{category:"Sm",mappings:{"default":{"default":"up tack"}},key:"22A5"},{category:"Sm",mappings:{"default":{"default":"assertion"}},key:"22A6"},{category:"Sm",mappings:{"default":{"default":"models"}},key:"22A7"},{category:"Sm",mappings:{"default":{"default":"true"}},key:"22A8"},
+{category:"Sm",mappings:{"default":{"default":"forces"}},key:"22A9"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar right turnstile"}},key:"22AA"},{category:"Sm",mappings:{"default":{"default":"double vertical bar double right turnstile"}},key:"22AB"},{category:"Sm",mappings:{"default":{"default":"does not prove"}},key:"22AC"},{category:"Sm",mappings:{"default":{"default":"not true"}},key:"22AD"},{category:"Sm",mappings:{"default":{"default":"does not force"}},key:"22AE"},{category:"Sm",
+mappings:{"default":{"default":"negated double vertical bar double right turnstile"}},key:"22AF"},{category:"Sm",mappings:{"default":{"default":"precedes under relation"}},key:"22B0"},{category:"Sm",mappings:{"default":{"default":"succeeds under relation"}},key:"22B1"},{category:"Sm",mappings:{"default":{"default":"normal subgroup of"}},key:"22B2"},{category:"Sm",mappings:{"default":{"default":"contains as normal subgroup"}},key:"22B3"},{category:"Sm",mappings:{"default":{"default":"normal subgroup of or equal to"}},
+key:"22B4"},{category:"Sm",mappings:{"default":{"default":"contains as normal subgroup or equal to"}},key:"22B5"},{category:"Sm",mappings:{"default":{"default":"original of"}},key:"22B6"},{category:"Sm",mappings:{"default":{"default":"image of"}},key:"22B7"},{category:"Sm",mappings:{"default":{"default":"multimap"}},key:"22B8"},{category:"Sm",mappings:{"default":{"default":"hermitian conjugate matrix"}},key:"22B9"},{category:"Sm",mappings:{"default":{"default":"intercalate"}},key:"22BA"},{category:"Sm",
+mappings:{"default":{"default":"xor"}},key:"22BB"},{category:"Sm",mappings:{"default":{"default":"nand"}},key:"22BC"},{category:"Sm",mappings:{"default":{"default":"nor"}},key:"22BD"},{category:"Sm",mappings:{"default":{"default":"right triangle"}},key:"22BF"},{category:"Sm",mappings:{"default":{"default":"n ary logical and"}},key:"22C0"},{category:"Sm",mappings:{"default":{"default":"n ary logical or"}},key:"22C1"},{category:"Sm",mappings:{"default":{"default":"n ary intersection"}},key:"22C2"},
+{category:"Sm",mappings:{"default":{"default":"n ary union"}},key:"22C3"},{category:"Sm",mappings:{"default":{"default":"diamond operator"}},key:"22C4"},{category:"Sm",mappings:{"default":{"default":"dot operator"}},key:"22C5"},{category:"Sm",mappings:{"default":{"default":"star operator"}},key:"22C6"},{category:"Sm",mappings:{"default":{"default":"division times"}},key:"22C7"},{category:"Sm",mappings:{"default":{"default":"bowtie"}},key:"22C8"},{category:"Sm",mappings:{"default":{"default":"left normal factor semidirect product"}},
+key:"22C9"},{category:"Sm",mappings:{"default":{"default":"right normal factor semidirect product"}},key:"22CA"},{category:"Sm",mappings:{"default":{"default":"left semidirect product"}},key:"22CB"},{category:"Sm",mappings:{"default":{"default":"right semidirect product"}},key:"22CC"},{category:"Sm",mappings:{"default":{"default":"reversed tilde equals"}},key:"22CD"},{category:"Sm",mappings:{"default":{"default":"curly logical or"}},key:"22CE"},{category:"Sm",mappings:{"default":{"default":"curly logical and"}},
+key:"22CF"},{category:"Sm",mappings:{"default":{"default":"double subset"}},key:"22D0"},{category:"Sm",mappings:{"default":{"default":"double superset"}},key:"22D1"},{category:"Sm",mappings:{"default":{"default":"double intersection"}},key:"22D2"},{category:"Sm",mappings:{"default":{"default":"double union"}},key:"22D3"},{category:"Sm",mappings:{"default":{"default":"pitchfork"}},key:"22D4"},{category:"Sm",mappings:{"default":{"default":"equal and parallel to"}},key:"22D5"},{category:"Sm",mappings:{"default":{"default":"less than with dot",
+alternative:"less than with dot","short":"less than dot"}},key:"22D6"},{category:"Sm",mappings:{"default":{"default":"greater than with dot",alternative:"greater than with dot","short":"greater than dot"}},key:"22D7"},{category:"Sm",mappings:{"default":{"default":"very much less than",alternative:"very much less than"}},key:"22D8"},{category:"Sm",mappings:{"default":{"default":"very much greater than",alternative:"very much greater than"}},key:"22D9"},{category:"Sm",mappings:{"default":{"default":"less than equal to or greater than",
+alternative:"less than equal to or greater than"}},key:"22DA"},{category:"Sm",mappings:{"default":{"default":"greater than equal to or less than",alternative:"greater than equal to or less than"}},key:"22DB"},{category:"Sm",mappings:{"default":{"default":"equal to or less than",alternative:"equal to or less than"}},key:"22DC"},{category:"Sm",mappings:{"default":{"default":"equal to or greater than",alternative:"equal to or greater than"}},key:"22DD"},{category:"Sm",mappings:{"default":{"default":"equal to or precedes"}},
+key:"22DE"},{category:"Sm",mappings:{"default":{"default":"equal to or succeeds"}},key:"22DF"},{category:"Sm",mappings:{"default":{"default":"does not precede or equal"}},key:"22E0"},{category:"Sm",mappings:{"default":{"default":"does not succeed or equal"}},key:"22E1"},{category:"Sm",mappings:{"default":{"default":"not square image of or equal to"}},key:"22E2"},{category:"Sm",mappings:{"default":{"default":"not square original of or equal to"}},key:"22E3"},{category:"Sm",mappings:{"default":{"default":"square image of or not equal to"}},
+key:"22E4"},{category:"Sm",mappings:{"default":{"default":"square original of or not equal to"}},key:"22E5"},{category:"Sm",mappings:{"default":{"default":"less than but not equivalent to",alternative:"less than but not equivalent to"}},key:"22E6"},{category:"Sm",mappings:{"default":{"default":"greater than but not equivalent to",alternative:"greater than but not equivalent to"}},key:"22E7"},{category:"Sm",mappings:{"default":{"default":"precedes but not equivalent to"}},key:"22E8"},{category:"Sm",
+mappings:{"default":{"default":"succeeds but not equivalent to"}},key:"22E9"},{category:"Sm",mappings:{"default":{"default":"not normal subgroup of"}},key:"22EA"},{category:"Sm",mappings:{"default":{"default":"does not contain as normal subgroup"}},key:"22EB"},{category:"Sm",mappings:{"default":{"default":"not normal subgroup of or equal to"}},key:"22EC"},{category:"Sm",mappings:{"default":{"default":"does not contain as normal subgroup or equal"}},key:"22ED"},{category:"Sm",mappings:{"default":{"default":"vertical ellipsis",
+"short":"dot dot dot"}},key:"22EE"},{category:"Sm",mappings:{"default":{"default":"midline horizontal ellipsis","short":"dot dot dot"}},key:"22EF"},{category:"Sm",mappings:{"default":{"default":"up right diagonal ellipsis","short":"diagonal dot dot dot"}},key:"22F0"},{category:"Sm",mappings:{"default":{"default":"down right diagonal ellipsis","short":"diagonal dot dot dot"}},key:"22F1"},{category:"Sm",mappings:{"default":{"default":"element of with long horizontal stroke"}},key:"22F2"},{category:"Sm",
+mappings:{"default":{"default":"element of with vertical bar at end of horizontal stroke"}},key:"22F3"},{category:"Sm",mappings:{"default":{"default":"small element of with vertical bar at end of horizontal stroke"}},key:"22F4"},{category:"Sm",mappings:{"default":{"default":"element of with dot above"}},key:"22F5"},{category:"Sm",mappings:{"default":{"default":"element of with overbar"}},key:"22F6"},{category:"Sm",mappings:{"default":{"default":"small element of with overbar"}},key:"22F7"},{category:"Sm",
+mappings:{"default":{"default":"element of with underbar"}},key:"22F8"},{category:"Sm",mappings:{"default":{"default":"element of with two horizontal strokes"}},key:"22F9"},{category:"Sm",mappings:{"default":{"default":"contains with long horizontal stroke"}},key:"22FA"},{category:"Sm",mappings:{"default":{"default":"contains with vertical bar at end of horizontal stroke"}},key:"22FB"},{category:"Sm",mappings:{"default":{"default":"small contains with vertical bar at end of horizontal stroke"}},key:"22FC"},
+{category:"Sm",mappings:{"default":{"default":"contains with overbar"}},key:"22FD"},{category:"Sm",mappings:{"default":{"default":"small contains with overbar"}},key:"22FE"},{category:"Sm",mappings:{"default":{"default":"z notation bag membership"}},key:"22FF"},{category:"So",mappings:{"default":{"default":"diameter sign","short":"diameter"}},key:"2300"},{category:"So",mappings:{"default":{"default":"house"}},key:"2302"},{category:"So",mappings:{"default":{"default":"projective"}},key:"2305"},{category:"So",
+mappings:{"default":{"default":"perspective"}},key:"2306"},{category:"So",mappings:{"default":{"default":"wavy line"}},key:"2307"},{category:"So",mappings:{"default":{"default":"reversed not sign","short":"reversed not"}},key:"2310"},{category:"So",mappings:{"default":{"default":"square lozenge"}},key:"2311"},{category:"So",mappings:{"default":{"default":"arc"}},key:"2312"},{category:"So",mappings:{"default":{"default":"segment"}},key:"2313"},{category:"So",mappings:{"default":{"default":"sector"}},
+key:"2314"},{category:"So",mappings:{"default":{"default":"heavy plus sign",alternative:"heavy plus","short":"bold plus"}},key:"2795"},{category:"So",mappings:{"default":{"default":"heavy minus sign",alternative:"heavy minus","short":"bold minus"}},key:"2796"},{category:"So",mappings:{"default":{"default":"heavy division sign",alternative:"heavy division","short":"bold division"}},key:"2797"},{category:"So",mappings:{"default":{"default":"curly loop"}},key:"27B0"},{category:"So",mappings:{"default":{"default":"double curly loop"}},
+key:"27BF"},{category:"Sm",mappings:{"default":{"default":"white triangle containing small white triangle"}},key:"27C1"},{category:"Sm",mappings:{"default":{"default":"perpendicular"}},key:"27C2"},{category:"Sm",mappings:{"default":{"default":"open subset"}},key:"27C3"},{category:"Sm",mappings:{"default":{"default":"open superset"}},key:"27C4"},{category:"Sm",mappings:{"default":{"default":"or with dot inside"}},key:"27C7"},{category:"Sm",mappings:{"default":{"default":"reverse solidus preceding subset"}},
+key:"27C8"},{category:"Sm",mappings:{"default":{"default":"superset preceding solidus"}},key:"27C9"},{category:"Sm",mappings:{"default":{"default":"vertical bar with horizontal stroke"}},key:"27CA"},{category:"Sm",mappings:{"default":{"default":"mathematical rising diagonal"}},key:"27CB"},{category:"Sm",mappings:{"default":{"default":"long division"}},key:"27CC"},{category:"Sm",mappings:{"default":{"default":"mathematical falling diagonal"}},key:"27CD"},{category:"Sm",mappings:{"default":{"default":"squared logical and"}},
+key:"27CE"},{category:"Sm",mappings:{"default":{"default":"squared logical or"}},key:"27CF"},{category:"Sm",mappings:{"default":{"default":"white diamond with centered dot"}},key:"27D0"},{category:"Sm",mappings:{"default":{"default":"and with dot"}},key:"27D1"},{category:"Sm",mappings:{"default":{"default":"element of opening upwards"}},key:"27D2"},{category:"Sm",mappings:{"default":{"default":"lower right corner with dot"}},key:"27D3"},{category:"Sm",mappings:{"default":{"default":"upper left corner with dot"}},
+key:"27D4"},{category:"Sm",mappings:{"default":{"default":"left outer join"}},key:"27D5"},{category:"Sm",mappings:{"default":{"default":"right outer join"}},key:"27D6"},{category:"Sm",mappings:{"default":{"default":"full outer join"}},key:"27D7"},{category:"Sm",mappings:{"default":{"default":"large up tack"}},key:"27D8"},{category:"Sm",mappings:{"default":{"default":"large down tack"}},key:"27D9"},{category:"Sm",mappings:{"default":{"default":"left and right double turnstile"}},key:"27DA"},{category:"Sm",
+mappings:{"default":{"default":"left and right tack"}},key:"27DB"},{category:"Sm",mappings:{"default":{"default":"left multimap"}},key:"27DC"},{category:"Sm",mappings:{"default":{"default":"long right tack"}},key:"27DD"},{category:"Sm",mappings:{"default":{"default":"long left tack"}},key:"27DE"},{category:"Sm",mappings:{"default":{"default":"up tack with circle above"}},key:"27DF"},{category:"Sm",mappings:{"default":{"default":"lozenge divided by horizontal rule"}},key:"27E0"},{category:"Sm",mappings:{"default":{"default":"white concave sided diamond"}},
+key:"27E1"},{category:"Sm",mappings:{"default":{"default":"white concave sided diamond with leftwards tick"}},key:"27E2"},{category:"Sm",mappings:{"default":{"default":"white concave sided diamond with rightwards tick"}},key:"27E3"},{category:"Sm",mappings:{"default":{"default":"white square with leftwards tick"}},key:"27E4"},{category:"Sm",mappings:{"default":{"default":"white square with rightwards tick"}},key:"27E5"},{category:"Sm",mappings:{"default":{"default":"rising diagonal crossing falling diagonal"}},
+key:"292B"},{category:"Sm",mappings:{"default":{"default":"falling diagonal crossing rising diagonal"}},key:"292C"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar delimiter"}},key:"2980"},{category:"Sm",mappings:{"default":{"default":"z notation spot"}},key:"2981"},{category:"Sm",mappings:{"default":{"default":"z notation type colon"}},key:"2982"},{category:"Sm",mappings:{"default":{"default":"dotted fence"}},key:"2999"},{category:"Sm",mappings:{"default":{"default":"vertical zigzag line"}},
+key:"299A"},{category:"Sm",mappings:{"default":{"default":"reversed empty set"}},key:"29B0"},{category:"Sm",mappings:{"default":{"default":"empty set with overbar"}},key:"29B1"},{category:"Sm",mappings:{"default":{"default":"empty set with small circle above"}},key:"29B2"},{category:"Sm",mappings:{"default":{"default":"circle with horizontal bar"}},key:"29B5"},{category:"Sm",mappings:{"default":{"default":"circled vertical bar"}},key:"29B6"},{category:"Sm",mappings:{"default":{"default":"circled parallel"}},
+key:"29B7"},{category:"Sm",mappings:{"default":{"default":"circled reverse solidus"}},key:"29B8"},{category:"Sm",mappings:{"default":{"default":"circled perpendicular"}},key:"29B9"},{category:"Sm",mappings:{"default":{"default":"circle divided by horizontal bar and top half divided by vertical bar"}},key:"29BA"},{category:"Sm",mappings:{"default":{"default":"circle with superimposed x"}},key:"29BB"},{category:"Sm",mappings:{"default":{"default":"circled anticlockwise rotated division sign","short":"circled anticlockwise rotated division"}},
+key:"29BC"},{category:"Sm",mappings:{"default":{"default":"circled white bullet"}},key:"29BE"},{category:"Sm",mappings:{"default":{"default":"circled bullet"}},key:"29BF"},{category:"Sm",mappings:{"default":{"default":"circled less than"}},key:"29C0"},{category:"Sm",mappings:{"default":{"default":"circled greater than"}},key:"29C1"},{category:"Sm",mappings:{"default":{"default":"circle with small circle to the right"}},key:"29C2"},{category:"Sm",mappings:{"default":{"default":"circle with two horizontal strokes to the right"}},
+key:"29C3"},{category:"Sm",mappings:{"default":{"default":"squared rising diagonal slash"}},key:"29C4"},{category:"Sm",mappings:{"default":{"default":"squared falling diagonal slash"}},key:"29C5"},{category:"Sm",mappings:{"default":{"default":"squared asterisk"}},key:"29C6"},{category:"Sm",mappings:{"default":{"default":"squared small circle"}},key:"29C7"},{category:"Sm",mappings:{"default":{"default":"squared square"}},key:"29C8"},{category:"Sm",mappings:{"default":{"default":"two joined squares"}},
+key:"29C9"},{category:"Sm",mappings:{"default":{"default":"triangle with dot above"}},key:"29CA"},{category:"Sm",mappings:{"default":{"default":"triangle with underbar"}},key:"29CB"},{category:"Sm",mappings:{"default":{"default":"s in triangle"}},key:"29CC"},{category:"Sm",mappings:{"default":{"default":"triangle with serifs at bottom"}},key:"29CD"},{category:"Sm",mappings:{"default":{"default":"right triangle above left triangle"}},key:"29CE"},{category:"Sm",mappings:{"default":{"default":"left triangle beside vertical bar"}},
+key:"29CF"},{category:"Sm",mappings:{"default":{"default":"vertical bar beside right triangle"}},key:"29D0"},{category:"Sm",mappings:{"default":{"default":"bowtie with left half black"}},key:"29D1"},{category:"Sm",mappings:{"default":{"default":"bowtie with right half black"}},key:"29D2"},{category:"Sm",mappings:{"default":{"default":"black bowtie"}},key:"29D3"},{category:"Sm",mappings:{"default":{"default":"times with left half black"}},key:"29D4"},{category:"Sm",mappings:{"default":{"default":"times with right half black"}},
+key:"29D5"},{category:"Sm",mappings:{"default":{"default":"white hourglass"}},key:"29D6"},{category:"Sm",mappings:{"default":{"default":"black hourglass"}},key:"29D7"},{category:"Sm",mappings:{"default":{"default":"incomplete infinity"}},key:"29DC"},{category:"Sm",mappings:{"default":{"default":"tie over infinity"}},key:"29DD"},{category:"Sm",mappings:{"default":{"default":"infinity negated with vertical bar"}},key:"29DE"},{category:"Sm",mappings:{"default":{"default":"double ended multimap"}},key:"29DF"},
+{category:"Sm",mappings:{"default":{"default":"square with contoured outline"}},key:"29E0"},{category:"Sm",mappings:{"default":{"default":"increases as"}},key:"29E1"},{category:"Sm",mappings:{"default":{"default":"shuffle product"}},key:"29E2"},{category:"Sm",mappings:{"default":{"default":"equals sign and slanted parallel"}},key:"29E3"},{category:"Sm",mappings:{"default":{"default":"equals sign and slanted parallel with tilde above"}},key:"29E4"},{category:"Sm",mappings:{"default":{"default":"identical to and slanted parallel"}},
+key:"29E5"},{category:"Sm",mappings:{"default":{"default":"gleich stark"}},key:"29E6"},{category:"Sm",mappings:{"default":{"default":"thermodynamic"}},key:"29E7"},{category:"Sm",mappings:{"default":{"default":"down pointing triangle with left half black"}},key:"29E8"},{category:"Sm",mappings:{"default":{"default":"down pointing triangle with right half black"}},key:"29E9"},{category:"Sm",mappings:{"default":{"default":"black lozenge"}},key:"29EB"},{category:"Sm",mappings:{"default":{"default":"error barred white square"}},
+key:"29EE"},{category:"Sm",mappings:{"default":{"default":"error barred black square"}},key:"29EF"},{category:"Sm",mappings:{"default":{"default":"error barred white diamond"}},key:"29F0"},{category:"Sm",mappings:{"default":{"default":"error barred black diamond"}},key:"29F1"},{category:"Sm",mappings:{"default":{"default":"error barred white circle"}},key:"29F2"},{category:"Sm",mappings:{"default":{"default":"error barred black circle"}},key:"29F3"},{category:"Sm",mappings:{"default":{"default":"rule delayed"}},
+key:"29F4"},{category:"Sm",mappings:{"default":{"default":"reverse solidus operator"}},key:"29F5"},{category:"Sm",mappings:{"default":{"default":"solidus with overbar"}},key:"29F6"},{category:"Sm",mappings:{"default":{"default":"reverse solidus with horizontal stroke"}},key:"29F7"},{category:"Sm",mappings:{"default":{"default":"big solidus"}},key:"29F8"},{category:"Sm",mappings:{"default":{"default":"big reverse solidus"}},key:"29F9"},{category:"Sm",mappings:{"default":{"default":"double plus"}},
+key:"29FA"},{category:"Sm",mappings:{"default":{"default":"triple plus"}},key:"29FB"},{category:"Sm",mappings:{"default":{"default":"tiny"}},key:"29FE"},{category:"Sm",mappings:{"default":{"default":"miny"}},key:"29FF"},{category:"Sm",mappings:{"default":{"default":"n ary circled dot operator"}},key:"2A00"},{category:"Sm",mappings:{"default":{"default":"n ary circled plus operator"}},key:"2A01"},{category:"Sm",mappings:{"default":{"default":"n ary circled times operator"}},key:"2A02"},{category:"Sm",
+mappings:{"default":{"default":"n ary union operator with dot"}},key:"2A03"},{category:"Sm",mappings:{"default":{"default":"n ary union operator with plus"}},key:"2A04"},{category:"Sm",mappings:{"default":{"default":"n ary square intersection operator"}},key:"2A05"},{category:"Sm",mappings:{"default":{"default":"n ary square union operator"}},key:"2A06"},{category:"Sm",mappings:{"default":{"default":"two logical and operator"}},key:"2A07"},{category:"Sm",mappings:{"default":{"default":"two logical or operator"}},
+key:"2A08"},{category:"Sm",mappings:{"default":{"default":"n ary times operator"}},key:"2A09"},{category:"Sm",mappings:{"default":{"default":"modulo two sum"}},key:"2A0A"},{category:"Sm",mappings:{"default":{"default":"summation with integral"}},key:"2A0B"},{category:"Sm",mappings:{"default":{"default":"quadruple integral operator"}},key:"2A0C"},{category:"Sm",mappings:{"default":{"default":"finite part integral"}},key:"2A0D"},{category:"Sm",mappings:{"default":{"default":"integral with double stroke"}},
+key:"2A0E"},{category:"Sm",mappings:{"default":{"default":"integral average with slash"}},key:"2A0F"},{category:"Sm",mappings:{"default":{"default":"circulation function"}},key:"2A10"},{category:"Sm",mappings:{"default":{"default":"anticlockwise integration"}},key:"2A11"},{category:"Sm",mappings:{"default":{"default":"line integration with rectangular path around pole"}},key:"2A12"},{category:"Sm",mappings:{"default":{"default":"line integration with semicircular path around pole"}},key:"2A13"},{category:"Sm",
+mappings:{"default":{"default":"line integration not including the pole"}},key:"2A14"},{category:"Sm",mappings:{"default":{"default":"integral around a point operator"}},key:"2A15"},{category:"Sm",mappings:{"default":{"default":"quaternion integral operator"}},key:"2A16"},{category:"Sm",mappings:{"default":{"default":"integral with times sign","short":"integral with times"}},key:"2A18"},{category:"Sm",mappings:{"default":{"default":"integral with intersection"}},key:"2A19"},{category:"Sm",mappings:{"default":{"default":"integral with union"}},
+key:"2A1A"},{category:"Sm",mappings:{"default":{"default":"integral with overbar"}},key:"2A1B"},{category:"Sm",mappings:{"default":{"default":"integral with underbar"}},key:"2A1C"},{category:"Sm",mappings:{"default":{"default":"join"}},key:"2A1D"},{category:"Sm",mappings:{"default":{"default":"large left triangle operator"}},key:"2A1E"},{category:"Sm",mappings:{"default":{"default":"z notation schema composition"}},key:"2A1F"},{category:"Sm",mappings:{"default":{"default":"z notation schema piping"}},
+key:"2A20"},{category:"Sm",mappings:{"default":{"default":"z notation schema projection"}},key:"2A21"},{category:"Sm",mappings:{"default":{"default":"plus sign with small circle above","short":"plus with circle above"}},key:"2A22"},{category:"Sm",mappings:{"default":{"default":"plus sign with circumflex accent above","short":"plus hat"}},key:"2A23"},{category:"Sm",mappings:{"default":{"default":"plus sign with tilde above","short":"plus tilde"}},key:"2A24"},{category:"Sm",mappings:{"default":{"default":"plus sign with dot below",
+"short":"plus underdot"}},key:"2A25"},{category:"Sm",mappings:{"default":{"default":"plus sign with tilde below"}},key:"2A26"},{category:"Sm",mappings:{"default":{"default":"plus sign with subscript two"}},key:"2A27"},{category:"Sm",mappings:{"default":{"default":"plus sign with black triangle"}},key:"2A28"},{category:"Sm",mappings:{"default":{"default":"minus sign with comma above"}},key:"2A29"},{category:"Sm",mappings:{"default":{"default":"minus sign with dot below"}},key:"2A2A"},{category:"Sm",
+mappings:{"default":{"default":"minus sign with falling dots"}},key:"2A2B"},{category:"Sm",mappings:{"default":{"default":"minus sign with rising dots"}},key:"2A2C"},{category:"Sm",mappings:{"default":{"default":"plus sign in left half circle"}},key:"2A2D"},{category:"Sm",mappings:{"default":{"default":"plus sign in right half circle"}},key:"2A2E"},{category:"Sm",mappings:{"default":{"default":"vector or cross product"}},key:"2A2F"},{category:"Sm",mappings:{"default":{"default":"multiplication sign with dot above"}},
+key:"2A30"},{category:"Sm",mappings:{"default":{"default":"multiplication sign with underbar"}},key:"2A31"},{category:"Sm",mappings:{"default":{"default":"semidirect product with bottom closed"}},key:"2A32"},{category:"Sm",mappings:{"default":{"default":"smash product"}},key:"2A33"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in left half circle"}},key:"2A34"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in right half circle"}},key:"2A35"},{category:"Sm",
+mappings:{"default":{"default":"circled multiplication sign with circumflex accent"}},key:"2A36"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in double circle"}},key:"2A37"},{category:"Sm",mappings:{"default":{"default":"circled division sign","short":"circled division"}},key:"2A38"},{category:"Sm",mappings:{"default":{"default":"plus sign in triangle"}},key:"2A39"},{category:"Sm",mappings:{"default":{"default":"minus sign in triangle"}},key:"2A3A"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in triangle"}},
+key:"2A3B"},{category:"Sm",mappings:{"default":{"default":"interior product"}},key:"2A3C"},{category:"Sm",mappings:{"default":{"default":"righthand interior product"}},key:"2A3D"},{category:"Sm",mappings:{"default":{"default":"z notation relational composition"}},key:"2A3E"},{category:"Sm",mappings:{"default":{"default":"amalgamation or coproduct"}},key:"2A3F"},{category:"Sm",mappings:{"default":{"default":"intersection with dot"}},key:"2A40"},{category:"Sm",mappings:{"default":{"default":"union with minus sign",
+"short":"union with minus"}},key:"2A41"},{category:"Sm",mappings:{"default":{"default":"union with overbar"}},key:"2A42"},{category:"Sm",mappings:{"default":{"default":"intersection with overbar"}},key:"2A43"},{category:"Sm",mappings:{"default":{"default":"intersection with logical and"}},key:"2A44"},{category:"Sm",mappings:{"default":{"default":"union with logical or"}},key:"2A45"},{category:"Sm",mappings:{"default":{"default":"union above intersection"}},key:"2A46"},{category:"Sm",mappings:{"default":{"default":"intersection above union"}},
+key:"2A47"},{category:"Sm",mappings:{"default":{"default":"union above bar above intersection"}},key:"2A48"},{category:"Sm",mappings:{"default":{"default":"intersection above bar above union"}},key:"2A49"},{category:"Sm",mappings:{"default":{"default":"union beside and joined with union"}},key:"2A4A"},{category:"Sm",mappings:{"default":{"default":"intersection beside and joined with intersection"}},key:"2A4B"},{category:"Sm",mappings:{"default":{"default":"closed union with serifs"}},key:"2A4C"},
+{category:"Sm",mappings:{"default":{"default":"closed intersection with serifs"}},key:"2A4D"},{category:"Sm",mappings:{"default":{"default":"double square intersection"}},key:"2A4E"},{category:"Sm",mappings:{"default":{"default":"double square union"}},key:"2A4F"},{category:"Sm",mappings:{"default":{"default":"closed union with serifs and smash product"}},key:"2A50"},{category:"Sm",mappings:{"default":{"default":"logical and with dot above"}},key:"2A51"},{category:"Sm",mappings:{"default":{"default":"logical or with dot above"}},
+key:"2A52"},{category:"Sm",mappings:{"default":{"default":"double logical and"}},key:"2A53"},{category:"Sm",mappings:{"default":{"default":"double logical or"}},key:"2A54"},{category:"Sm",mappings:{"default":{"default":"two intersecting logical and"}},key:"2A55"},{category:"Sm",mappings:{"default":{"default":"two intersecting logical or"}},key:"2A56"},{category:"Sm",mappings:{"default":{"default":"sloping large or"}},key:"2A57"},{category:"Sm",mappings:{"default":{"default":"sloping large and"}},
+key:"2A58"},{category:"Sm",mappings:{"default":{"default":"logical or overlapping logical and"}},key:"2A59"},{category:"Sm",mappings:{"default":{"default":"logical and with middle stem"}},key:"2A5A"},{category:"Sm",mappings:{"default":{"default":"logical or with middle stem"}},key:"2A5B"},{category:"Sm",mappings:{"default":{"default":"logical and with horizontal dash"}},key:"2A5C"},{category:"Sm",mappings:{"default":{"default":"logical or with horizontal dash"}},key:"2A5D"},{category:"Sm",mappings:{"default":{"default":"logical and with double overbar"}},
+key:"2A5E"},{category:"Sm",mappings:{"default":{"default":"logical and with underbar"}},key:"2A5F"},{category:"Sm",mappings:{"default":{"default":"logical and with double underbar"}},key:"2A60"},{category:"Sm",mappings:{"default":{"default":"small vee with underbar"}},key:"2A61"},{category:"Sm",mappings:{"default":{"default":"logical or with double overbar"}},key:"2A62"},{category:"Sm",mappings:{"default":{"default":"logical or with double underbar"}},key:"2A63"},{category:"Sm",mappings:{"default":{"default":"z notation domain antirestriction"}},
+key:"2A64"},{category:"Sm",mappings:{"default":{"default":"z notation range antirestriction"}},key:"2A65"},{category:"Sm",mappings:{"default":{"default":"equals sign with dot below"}},key:"2A66"},{category:"Sm",mappings:{"default":{"default":"identical with dot above"}},key:"2A67"},{category:"Sm",mappings:{"default":{"default":"triple horizontal bar with double vertical stroke"}},key:"2A68"},{category:"Sm",mappings:{"default":{"default":"triple horizontal bar with triple vertical stroke"}},key:"2A69"},
+{category:"Sm",mappings:{"default":{"default":"tilde operator with dot above"}},key:"2A6A"},{category:"Sm",mappings:{"default":{"default":"tilde operator with rising dots"}},key:"2A6B"},{category:"Sm",mappings:{"default":{"default":"similar minus similar"}},key:"2A6C"},{category:"Sm",mappings:{"default":{"default":"congruent with dot above"}},key:"2A6D"},{category:"Sm",mappings:{"default":{"default":"equals with asterisk"}},key:"2A6E"},{category:"Sm",mappings:{"default":{"default":"almost equal to with circumflex accent",
+"short":"almost equal hat"}},key:"2A6F"},{category:"Sm",mappings:{"default":{"default":"approximately equal or equal to"}},key:"2A70"},{category:"Sm",mappings:{"default":{"default":"equals sign above plus sign","short":"equals above plus"}},key:"2A71"},{category:"Sm",mappings:{"default":{"default":"plus sign above equals sign","short":"plus above equals"}},key:"2A72"},{category:"Sm",mappings:{"default":{"default":"equals sign above tilde operator","short":"equals above tilde operator"}},key:"2A73"},
+{category:"Sm",mappings:{"default":{"default":"double colon equal"}},key:"2A74"},{category:"Sm",mappings:{"default":{"default":"two consecutive equals signs","short":"two consecutive equals"}},key:"2A75"},{category:"Sm",mappings:{"default":{"default":"three consecutive equals signs","short":"three consecutive equals"}},key:"2A76"},{category:"Sm",mappings:{"default":{"default":"equals sign with two dots above and two dots below"}},key:"2A77"},{category:"Sm",mappings:{"default":{"default":"equivalent with four dots above"}},
+key:"2A78"},{category:"Sm",mappings:{"default":{"default":"less than with circle inside"}},key:"2A79"},{category:"Sm",mappings:{"default":{"default":"greater than with circle inside"}},key:"2A7A"},{category:"Sm",mappings:{"default":{"default":"less than with question mark above"}},key:"2A7B"},{category:"Sm",mappings:{"default":{"default":"greater than with question mark above"}},key:"2A7C"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to"}},key:"2A7D"},{category:"Sm",
+mappings:{"default":{"default":"greater than or slanted equal to"}},key:"2A7E"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to with dot inside"}},key:"2A7F"},{category:"Sm",mappings:{"default":{"default":"greater than or slanted equal to with dot inside"}},key:"2A80"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to with dot above"}},key:"2A81"},{category:"Sm",mappings:{"default":{"default":"greater than or slanted equal to with dot above"}},
+key:"2A82"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to with dot above right"}},key:"2A83"},{category:"Sm",mappings:{"default":{"default":"greater than or slanted equal to with dot above left"}},key:"2A84"},{category:"Sm",mappings:{"default":{"default":"less than or approximate"}},key:"2A85"},{category:"Sm",mappings:{"default":{"default":"greater than or approximate"}},key:"2A86"},{category:"Sm",mappings:{"default":{"default":"less than and single line not equal to"}},
+key:"2A87"},{category:"Sm",mappings:{"default":{"default":"greater than and single line not equal to"}},key:"2A88"},{category:"Sm",mappings:{"default":{"default":"less than and not approximate"}},key:"2A89"},{category:"Sm",mappings:{"default":{"default":"greater than and not approximate"}},key:"2A8A"},{category:"Sm",mappings:{"default":{"default":"less than above double line equal above greater than"}},key:"2A8B"},{category:"Sm",mappings:{"default":{"default":"greater than above double line equal above less than"}},
+key:"2A8C"},{category:"Sm",mappings:{"default":{"default":"less than above similar or equal"}},key:"2A8D"},{category:"Sm",mappings:{"default":{"default":"greater than above similar or equal"}},key:"2A8E"},{category:"Sm",mappings:{"default":{"default":"less than above similar above greater than"}},key:"2A8F"},{category:"Sm",mappings:{"default":{"default":"greater than above similar above less than"}},key:"2A90"},{category:"Sm",mappings:{"default":{"default":"less than above greater than above double line equal"}},
+key:"2A91"},{category:"Sm",mappings:{"default":{"default":"greater than above less than above double line equal"}},key:"2A92"},{category:"Sm",mappings:{"default":{"default":"less than above slanted equal above greater than above slanted equal"}},key:"2A93"},{category:"Sm",mappings:{"default":{"default":"greater than above slanted equal above less than above slanted equal"}},key:"2A94"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or less than"}},key:"2A95"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or greater than"}},
+key:"2A96"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or less than with dot inside"}},key:"2A97"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or greater than with dot inside"}},key:"2A98"},{category:"Sm",mappings:{"default":{"default":"double line equal to or less than"}},key:"2A99"},{category:"Sm",mappings:{"default":{"default":"double line equal to or greater than"}},key:"2A9A"},{category:"Sm",mappings:{"default":{"default":"double line slanted equal to or less than"}},
+key:"2A9B"},{category:"Sm",mappings:{"default":{"default":"double line slanted equal to or greater than"}},key:"2A9C"},{category:"Sm",mappings:{"default":{"default":"similar or less than"}},key:"2A9D"},{category:"Sm",mappings:{"default":{"default":"similar or greater than"}},key:"2A9E"},{category:"Sm",mappings:{"default":{"default":"similar above less than above equals sign"}},key:"2A9F"},{category:"Sm",mappings:{"default":{"default":"similar above greater than above equals sign"}},key:"2AA0"},{category:"Sm",
+mappings:{"default":{"default":"double nested less than"}},key:"2AA1"},{category:"Sm",mappings:{"default":{"default":"double nested greater than"}},key:"2AA2"},{category:"Sm",mappings:{"default":{"default":"double nested less than with underbar"}},key:"2AA3"},{category:"Sm",mappings:{"default":{"default":"greater than overlapping less than"}},key:"2AA4"},{category:"Sm",mappings:{"default":{"default":"greater than beside less than"}},key:"2AA5"},{category:"Sm",mappings:{"default":{"default":"less than closed by curve"}},
+key:"2AA6"},{category:"Sm",mappings:{"default":{"default":"greater than closed by curve"}},key:"2AA7"},{category:"Sm",mappings:{"default":{"default":"less than closed by curve above slanted equal"}},key:"2AA8"},{category:"Sm",mappings:{"default":{"default":"greater than closed by curve above slanted equal"}},key:"2AA9"},{category:"Sm",mappings:{"default":{"default":"smaller than"}},key:"2AAA"},{category:"Sm",mappings:{"default":{"default":"larger than"}},key:"2AAB"},{category:"Sm",mappings:{"default":{"default":"smaller than or equal to"}},
+key:"2AAC"},{category:"Sm",mappings:{"default":{"default":"larger than or equal to"}},key:"2AAD"},{category:"Sm",mappings:{"default":{"default":"equals sign with bumpy above"}},key:"2AAE"},{category:"Sm",mappings:{"default":{"default":"precedes above single line equals sign"}},key:"2AAF"},{category:"Sm",mappings:{"default":{"default":"succeeds above single line equals sign"}},key:"2AB0"},{category:"Sm",mappings:{"default":{"default":"precedes above single line not equal to"}},key:"2AB1"},{category:"Sm",
+mappings:{"default":{"default":"succeeds above single line not equal to"}},key:"2AB2"},{category:"Sm",mappings:{"default":{"default":"precedes above equals sign"}},key:"2AB3"},{category:"Sm",mappings:{"default":{"default":"succeeds above equals sign"}},key:"2AB4"},{category:"Sm",mappings:{"default":{"default":"precedes above not equal to"}},key:"2AB5"},{category:"Sm",mappings:{"default":{"default":"succeeds above not equal to"}},key:"2AB6"},{category:"Sm",mappings:{"default":{"default":"precedes above almost equal to"}},
+key:"2AB7"},{category:"Sm",mappings:{"default":{"default":"succeeds above almost equal to"}},key:"2AB8"},{category:"Sm",mappings:{"default":{"default":"precedes above not almost equal to"}},key:"2AB9"},{category:"Sm",mappings:{"default":{"default":"succeeds above not almost equal to"}},key:"2ABA"},{category:"Sm",mappings:{"default":{"default":"double precedes"}},key:"2ABB"},{category:"Sm",mappings:{"default":{"default":"double succeeds"}},key:"2ABC"},{category:"Sm",mappings:{"default":{"default":"subset with dot"}},
+key:"2ABD"},{category:"Sm",mappings:{"default":{"default":"superset with dot"}},key:"2ABE"},{category:"Sm",mappings:{"default":{"default":"subset with plus sign below"}},key:"2ABF"},{category:"Sm",mappings:{"default":{"default":"superset with plus sign below"}},key:"2AC0"},{category:"Sm",mappings:{"default":{"default":"subset with multiplication sign below"}},key:"2AC1"},{category:"Sm",mappings:{"default":{"default":"superset with multiplication sign below"}},key:"2AC2"},{category:"Sm",mappings:{"default":{"default":"subset of or equal to with dot above"}},
+key:"2AC3"},{category:"Sm",mappings:{"default":{"default":"superset of or equal to with dot above"}},key:"2AC4"},{category:"Sm",mappings:{"default":{"default":"subset of above equals sign"}},key:"2AC5"},{category:"Sm",mappings:{"default":{"default":"superset of above equals sign"}},key:"2AC6"},{category:"Sm",mappings:{"default":{"default":"subset of above tilde operator"}},key:"2AC7"},{category:"Sm",mappings:{"default":{"default":"superset of above tilde operator"}},key:"2AC8"},{category:"Sm",mappings:{"default":{"default":"subset of above almost equal to"}},
+key:"2AC9"},{category:"Sm",mappings:{"default":{"default":"superset of above almost equal to"}},key:"2ACA"},{category:"Sm",mappings:{"default":{"default":"subset of above not equal to"}},key:"2ACB"},{category:"Sm",mappings:{"default":{"default":"superset of above not equal to"}},key:"2ACC"},{category:"Sm",mappings:{"default":{"default":"square left open box operator"}},key:"2ACD"},{category:"Sm",mappings:{"default":{"default":"square right open box operator"}},key:"2ACE"},{category:"Sm",mappings:{"default":{"default":"closed subset"}},
+key:"2ACF"},{category:"Sm",mappings:{"default":{"default":"closed superset"}},key:"2AD0"},{category:"Sm",mappings:{"default":{"default":"closed subset or equal to"}},key:"2AD1"},{category:"Sm",mappings:{"default":{"default":"closed superset or equal to"}},key:"2AD2"},{category:"Sm",mappings:{"default":{"default":"subset above superset"}},key:"2AD3"},{category:"Sm",mappings:{"default":{"default":"superset above subset"}},key:"2AD4"},{category:"Sm",mappings:{"default":{"default":"subset above subset"}},
+key:"2AD5"},{category:"Sm",mappings:{"default":{"default":"superset above superset"}},key:"2AD6"},{category:"Sm",mappings:{"default":{"default":"superset beside subset"}},key:"2AD7"},{category:"Sm",mappings:{"default":{"default":"superset beside and joined by dash with subset"}},key:"2AD8"},{category:"Sm",mappings:{"default":{"default":"element of opening downwards"}},key:"2AD9"},{category:"Sm",mappings:{"default":{"default":"pitchfork with tee top"}},key:"2ADA"},{category:"Sm",mappings:{"default":{"default":"transversal intersection"}},
+key:"2ADB"},{category:"Sm",mappings:{"default":{"default":"forking"}},key:"2ADC"},{category:"Sm",mappings:{"default":{"default":"nonforking"}},key:"2ADD"},{category:"Sm",mappings:{"default":{"default":"short left tack"}},key:"2ADE"},{category:"Sm",mappings:{"default":{"default":"short down tack"}},key:"2ADF"},{category:"Sm",mappings:{"default":{"default":"short up tack"}},key:"2AE0"},{category:"Sm",mappings:{"default":{"default":"perpendicular with s"}},key:"2AE1"},{category:"Sm",mappings:{"default":{"default":"vertical bar triple right turnstile"}},
+key:"2AE2"},{category:"Sm",mappings:{"default":{"default":"double vertical bar left turnstile"}},key:"2AE3"},{category:"Sm",mappings:{"default":{"default":"vertical bar double left turnstile"}},key:"2AE4"},{category:"Sm",mappings:{"default":{"default":"double vertical bar double left turnstile"}},key:"2AE5"},{category:"Sm",mappings:{"default":{"default":"long dash from left member of double vertical"}},key:"2AE6"},{category:"Sm",mappings:{"default":{"default":"short down tack with overbar"}},key:"2AE7"},
+{category:"Sm",mappings:{"default":{"default":"short up tack with underbar"}},key:"2AE8"},{category:"Sm",mappings:{"default":{"default":"short up tack above short down tack"}},key:"2AE9"},{category:"Sm",mappings:{"default":{"default":"double down tack"}},key:"2AEA"},{category:"Sm",mappings:{"default":{"default":"double up tack"}},key:"2AEB"},{category:"Sm",mappings:{"default":{"default":"double stroke not sign"}},key:"2AEC"},{category:"Sm",mappings:{"default":{"default":"reversed double stroke not sign"}},
+key:"2AED"},{category:"Sm",mappings:{"default":{"default":"does not divide with reversed negation slash"}},key:"2AEE"},{category:"Sm",mappings:{"default":{"default":"vertical line with circle above"}},key:"2AEF"},{category:"Sm",mappings:{"default":{"default":"vertical line with circle below"}},key:"2AF0"},{category:"Sm",mappings:{"default":{"default":"down tack with circle below"}},key:"2AF1"},{category:"Sm",mappings:{"default":{"default":"parallel with horizontal stroke"}},key:"2AF2"},{category:"Sm",
+mappings:{"default":{"default":"parallel with tilde operator"}},key:"2AF3"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar binary relation"}},key:"2AF4"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar with horizontal stroke"}},key:"2AF5"},{category:"Sm",mappings:{"default":{"default":"triple colon operator"}},key:"2AF6"},{category:"Sm",mappings:{"default":{"default":"triple nested less than"}},key:"2AF7"},{category:"Sm",mappings:{"default":{"default":"triple nested greater than"}},
+key:"2AF8"},{category:"Sm",mappings:{"default":{"default":"double line slanted less than or equal to"}},key:"2AF9"},{category:"Sm",mappings:{"default":{"default":"double line slanted greater than or equal to"}},key:"2AFA"},{category:"Sm",mappings:{"default":{"default":"triple solidus binary relation"}},key:"2AFB"},{category:"Sm",mappings:{"default":{"default":"large triple vertical bar operator"}},key:"2AFC"},{category:"Sm",mappings:{"default":{"default":"double solidus operator"}},key:"2AFD"},{category:"Sm",
+mappings:{"default":{"default":"white vertical bar"}},key:"2AFE"},{category:"Sm",mappings:{"default":{"default":"n ary white vertical bar"}},key:"2AFF"},{category:"Pd",mappings:{"default":{"default":"wave dash"}},key:"301C"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical comma"}},key:"FE10"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical colon"}},key:"FE13"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical semicolon"}},
+key:"FE14"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical exclamation mark"}},key:"FE15"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical question mark"}},key:"FE16"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical horizontal ellipsis"}},key:"FE19"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical two dot leader",alternative:"glyph for vertical two dot leader"}},key:"FE30"},{category:"Pd",
+mappings:{"default":{"default":"presentation form for vertical em dash",alternative:"glyph for vertical em dash"}},key:"FE31"},{category:"Pd",mappings:{"default":{"default":"presentation form for vertical en dash",alternative:"glyph for vertical en dash"}},key:"FE32"},{category:"Pc",mappings:{"default":{"default":"presentation form for vertical low line",alternative:"glyph for vertical spacing underscore"}},key:"FE33"},{category:"Pc",mappings:{"default":{"default":"presentation form for vertical wavy low line",
+alternative:"glyph for vertical spacing wavy underscore"}},key:"FE34"},{category:"Po",mappings:{"default":{"default":"sesame dot"}},key:"FE45"},{category:"Po",mappings:{"default":{"default":"white sesame dot"}},key:"FE46"},{category:"Po",mappings:{"default":{"default":"dashed overline",alternative:"spacing dashed overscore"}},key:"FE49"},{category:"Po",mappings:{"default":{"default":"centerline overline",alternative:"spacing centerline overscore"}},key:"FE4A"},{category:"Po",mappings:{"default":{"default":"wavy overline",
+alternative:"spacing wavy overscore"}},key:"FE4B"},{category:"Po",mappings:{"default":{"default":"double wavy overline",alternative:"spacing double wavy overscore"}},key:"FE4C"},{category:"Pc",mappings:{"default":{"default":"dashed low line",alternative:"spacing dashed underscore"}},key:"FE4D"},{category:"Pc",mappings:{"default":{"default":"centerline low line",alternative:"spacing centerline underscore"}},key:"FE4E"},{category:"Pc",mappings:{"default":{"default":"wavy low line",alternative:"spacing wavy underscore"}},
+key:"FE4F"},{category:"Po",mappings:{"default":{"default":"small comma"}},key:"FE50"},{category:"Po",mappings:{"default":{"default":"small full stop",alternative:"small period"}},key:"FE52"},{category:"Po",mappings:{"default":{"default":"small semicolon"}},key:"FE54"},{category:"Po",mappings:{"default":{"default":"small colon"}},key:"FE55"},{category:"Po",mappings:{"default":{"default":"small question mark"}},key:"FE56"},{category:"Po",mappings:{"default":{"default":"small exclamation mark"}},key:"FE57"},
+{category:"Pd",mappings:{"default":{"default":"small em dash"}},key:"FE58"},{category:"Po",mappings:{"default":{"default":"small number sign"}},key:"FE5F"},{category:"Po",mappings:{"default":{"default":"small ampersand"}},key:"FE60"},{category:"Po",mappings:{"default":{"default":"small asterisk"}},key:"FE61"},{category:"Sm",mappings:{"default":{"default":"small plus sign"}},key:"FE62"},{category:"Pd",mappings:{"default":{"default":"small hyphen minus"}},key:"FE63"},{category:"Sm",mappings:{"default":{"default":"small less than sign"}},
+key:"FE64"},{category:"Sm",mappings:{"default":{"default":"small greater than sign"}},key:"FE65"},{category:"Sm",mappings:{"default":{"default":"small equals sign"}},key:"FE66"},{category:"Po",mappings:{"default":{"default":"small reverse solidus",alternative:"small backslash"}},key:"FE68"},{category:"Sc",mappings:{"default":{"default":"small dollar sign"}},key:"FE69"},{category:"Po",mappings:{"default":{"default":"small percent sign"}},key:"FE6A"},{category:"Po",mappings:{"default":{"default":"small commercial at"}},
+key:"FE6B"},{category:"Po",mappings:{"default":{"default":"fullwidth exclamation mark"}},key:"FF01"},{category:"Po",mappings:{"default":{"default":"fullwidth quotation mark"}},key:"FF02"},{category:"Po",mappings:{"default":{"default":"fullwidth number sign"}},key:"FF03"},{category:"Sc",mappings:{"default":{"default":"fullwidth dollar sign"}},key:"FF04"},{category:"Po",mappings:{"default":{"default":"fullwidth percent sign"}},key:"FF05"},{category:"Po",mappings:{"default":{"default":"fullwidth ampersand"}},
+key:"FF06"},{category:"Po",mappings:{"default":{"default":"fullwidth apostrophe"}},key:"FF07"},{category:"Po",mappings:{"default":{"default":"fullwidth asterisk"}},key:"FF0A"},{category:"Sm",mappings:{"default":{"default":"fullwidth plus sign"}},key:"FF0B"},{category:"Po",mappings:{"default":{"default":"fullwidth comma"}},key:"FF0C"},{category:"Pd",mappings:{"default":{"default":"fullwidth hyphen minus"}},key:"FF0D"},{category:"Po",mappings:{"default":{"default":"fullwidth full stop",alternative:"fullwidth period"}},
+key:"FF0E"},{category:"Po",mappings:{"default":{"default":"fullwidth solidus",alternative:"fullwidth slash"}},key:"FF0F"},{category:"Po",mappings:{"default":{"default":"fullwidth colon"}},key:"FF1A"},{category:"Po",mappings:{"default":{"default":"fullwidth semicolon"}},key:"FF1B"},{category:"Sm",mappings:{"default":{"default":"fullwidth less than sign"}},key:"FF1C"},{category:"Sm",mappings:{"default":{"default":"fullwidth equals sign"}},key:"FF1D"},{category:"Sm",mappings:{"default":{"default":"fullwidth greater than sign"}},
+key:"FF1E"},{category:"Po",mappings:{"default":{"default":"fullwidth question mark"}},key:"FF1F"},{category:"Po",mappings:{"default":{"default":"fullwidth commercial at"}},key:"FF20"},{category:"Po",mappings:{"default":{"default":"fullwidth reverse solidus",alternative:"fullwidth backslash"}},key:"FF3C"},{category:"Sk",mappings:{"default":{"default":"fullwidth circumflex accent",alternative:"fullwidth spacing circumflex"}},key:"FF3E"},{category:"Pc",mappings:{"default":{"default":"fullwidth low line",
+alternative:"fullwidth spacing underscore"}},key:"FF3F"},{category:"Sk",mappings:{"default":{"default":"fullwidth grave accent",alternative:"fullwidth spacing grave"}},key:"FF40"},{category:"Sm",mappings:{"default":{"default":"fullwidth vertical line",alternative:"fullwidth vertical bar"}},key:"FF5C"},{category:"Sm",mappings:{"default":{"default":"fullwidth tilde",alternative:"fullwidth spacing tilde"}},key:"FF5E"},{category:"Sc",mappings:{"default":{"default":"fullwidth cent sign"}},key:"FFE0"},
+{category:"Sc",mappings:{"default":{"default":"fullwidth pound sign"}},key:"FFE1"},{category:"Sm",mappings:{"default":{"default":"fullwidth not sign"}},key:"FFE2"},{category:"Sk",mappings:{"default":{"default":"fullwidth macron",alternative:"fullwidth spacing macron"}},key:"FFE3"},{category:"So",mappings:{"default":{"default":"fullwidth broken bar",alternative:"fullwidth broken vertical bar"}},key:"FFE4"},{category:"Sc",mappings:{"default":{"default":"fullwidth yen sign"}},key:"FFE5"},{category:"Sc",
+mappings:{"default":{"default":"fullwidth won sign"}},key:"FFE6"},{category:"So",mappings:{"default":{"default":"halfwidth forms light vertical"}},key:"FFE8"},{category:"So",mappings:{"default":{"default":"halfwidth black square"}},key:"FFED"},{category:"So",mappings:{"default":{"default":"halfwidth white circle"}},key:"FFEE"},{category:"Ll",names:[],key:"03B1",mappings:{"default":{"default":"greek small letter alpha","short":"alpha"}}},{category:"Ll",names:[],key:"03B2",mappings:{"default":{"default":"greek small letter beta",
+"short":"beta"}}},{category:"Ll",names:[],key:"03B3",mappings:{"default":{"default":"greek small letter gamma","short":"gamma"}}},{category:"Ll",names:[],key:"03B4",mappings:{"default":{"default":"greek small letter delta","short":"delta"}}},{category:"Ll",names:[],key:"03B5",mappings:{"default":{"default":"greek small letter epsilon","short":"epsilon"}}},{category:"Ll",names:[],key:"03B6",mappings:{"default":{"default":"greek small letter zeta","short":"zeta"}}},{category:"Ll",names:[],key:"03B7",
+mappings:{"default":{"default":"greek small letter eta","short":"eta"}}},{category:"Ll",names:[],key:"03B8",mappings:{"default":{"default":"greek small letter theta","short":"theta"}}},{category:"Ll",names:[],key:"03B9",mappings:{"default":{"default":"greek small letter iota","short":"iota"}}},{category:"Ll",names:[],key:"03BA",mappings:{"default":{"default":"greek small letter kappa","short":"kappa"}}},{category:"Ll",names:[],key:"03BB",mappings:{"default":{"default":"greek small letter lamda",alternative:"greek small letter lambda",
+"short":"lamda"}}},{category:"Ll",names:[],key:"03BC",mappings:{"default":{"default":"greek small letter mu","short":"mu"}}},{category:"Ll",names:[],key:"03BD",mappings:{"default":{"default":"greek small letter nu","short":"nu"}}},{category:"Ll",names:[],key:"03BE",mappings:{"default":{"default":"greek small letter xi","short":"xi"}}},{category:"Ll",names:[],key:"03BF",mappings:{"default":{"default":"greek small letter omicron","short":"omicron"}}},{category:"Ll",names:[],key:"03C0",mappings:{"default":{"default":"greek small letter pi",
+"short":"pi"}}},{category:"Ll",names:[],key:"03C1",mappings:{"default":{"default":"greek small letter rho","short":"rho"}}},{category:"Ll",names:[],key:"03C2",mappings:{"default":{"default":"greek small letter final sigma","short":"final sigma"}}},{category:"Ll",names:[],key:"03C3",mappings:{"default":{"default":"greek small letter sigma","short":"sigma"}}},{category:"Ll",names:[],key:"03C4",mappings:{"default":{"default":"greek small letter tau","short":"tau"}}},{category:"Ll",names:[],key:"03C5",
+mappings:{"default":{"default":"greek small letter upsilon","short":"upsilon"}}},{category:"Ll",names:[],key:"03C6",mappings:{"default":{"default":"greek small letter phi","short":"phi"}}},{category:"Ll",names:[],key:"03C7",mappings:{"default":{"default":"greek small letter chi","short":"chi"}}},{category:"Ll",names:[],key:"03C8",mappings:{"default":{"default":"greek small letter psi","short":"psi"}}},{category:"Ll",names:[],key:"03C9",mappings:{"default":{"default":"greek small letter omega","short":"omega"}}},
+{category:"Ll",mappings:{"default":{"default":"greek beta symbol",alternative:"greek small letter curled beta","short":"beta"}},key:"03D0"},{category:"Ll",mappings:{"default":{"default":"greek theta symbol",alternative:"greek small letter script theta","short":"theta"}},key:"03D1"},{category:"Ll",mappings:{"default":{"default":"greek phi symbol",alternative:"greek small letter script phi","short":"phi"}},key:"03D5"},{category:"Ll",mappings:{"default":{"default":"greek pi symbol",alternative:"greek small letter omega pi",
+"short":"pi"}},key:"03D6"},{category:"Ll",mappings:{"default":{"default":"greek kai symbol","short":"kai"}},key:"03D7"},{category:"Ll",mappings:{"default":{"default":"greek kappa symbol",alternative:"greek small letter script kappa","short":"kappa"}},key:"03F0"},{category:"Ll",mappings:{"default":{"default":"greek rho symbol",alternative:"greek small letter tailed rho","short":"rho"}},key:"03F1"},{category:"Ll",mappings:{"default":{"default":"greek lunate epsilon symbol","short":"epsilon"}},key:"03F5"},
+{category:"Sm",mappings:{"default":{"default":"greek reversed lunate epsilon symbol","short":"reversed epsilon"}},key:"03F6"},{category:"Lu",names:[],key:"0391",mappings:{"default":{"default":"greek capital letter alpha","short":"cap alpha"}}},{category:"Lu",names:[],key:"0392",mappings:{"default":{"default":"greek capital letter beta","short":"cap beta"}}},{category:"Lu",names:[],key:"0393",mappings:{"default":{"default":"greek capital letter gamma","short":"cap gamma"}}},{category:"Lu",names:[],
+key:"0394",mappings:{"default":{"default":"greek capital letter delta","short":"cap delta"}}},{category:"Lu",names:[],key:"0395",mappings:{"default":{"default":"greek capital letter epsilon","short":"cap epsilon"}}},{category:"Lu",names:[],key:"0396",mappings:{"default":{"default":"greek capital letter zeta","short":"cap zeta"}}},{category:"Lu",names:[],key:"0397",mappings:{"default":{"default":"greek capital letter eta","short":"cap eta"}}},{category:"Lu",names:[],key:"0398",mappings:{"default":{"default":"greek capital letter theta",
+"short":"cap theta"}}},{category:"Lu",names:[],key:"0399",mappings:{"default":{"default":"greek capital letter iota","short":"cap iota"}}},{category:"Lu",names:[],key:"039A",mappings:{"default":{"default":"greek capital letter kappa","short":"cap kappa"}}},{category:"Lu",names:[],key:"039B",mappings:{"default":{"default":"greek capital letter lamda",alternative:"greek capital letter lambda","short":"cap lamda"}}},{category:"Lu",names:[],key:"039C",mappings:{"default":{"default":"greek capital letter mu",
+"short":"cap mu"}}},{category:"Lu",names:[],key:"039D",mappings:{"default":{"default":"greek capital letter nu","short":"cap nu"}}},{category:"Lu",names:[],key:"039E",mappings:{"default":{"default":"greek capital letter xi","short":"cap xi"}}},{category:"Lu",names:[],key:"039F",mappings:{"default":{"default":"greek capital letter omicron","short":"cap omicron"}}},{category:"Lu",names:[],key:"03A0",mappings:{"default":{"default":"greek capital letter pi","short":"cap pi"}}},{category:"Lu",names:[],
+key:"03A1",mappings:{"default":{"default":"greek capital letter rho","short":"cap rho"}}},{category:"Lu",names:[],key:"03A3",mappings:{"default":{"default":"greek capital letter sigma","short":"cap sigma"}}},{category:"Lu",names:[],key:"03A4",mappings:{"default":{"default":"greek capital letter tau","short":"cap tau"}}},{category:"Lu",names:[],key:"03A5",mappings:{"default":{"default":"greek capital letter upsilon","short":"cap upsilon"}}},{category:"Lu",names:[],key:"03A6",mappings:{"default":{"default":"greek capital letter phi",
+"short":"cap phi"}}},{category:"Lu",names:[],key:"03A7",mappings:{"default":{"default":"greek capital letter chi","short":"cap chi"}}},{category:"Lu",names:[],key:"03A8",mappings:{"default":{"default":"greek capital letter psi","short":"cap psi"}}},{category:"Lu",names:[],key:"03A9",mappings:{"default":{"default":"greek capital letter omega","short":"cap omega"}}},{category:"Lu",mappings:{"default":{"default":"greek capital theta symbol","short":"cap theta"}},key:"03F4"},{category:"Ps",mappings:{"default":{"default":"left parenthesis",
+alternative:"opening parenthesis"}},key:"0028"},{category:"Pe",mappings:{"default":{"default":"right parenthesis",alternative:"closing parenthesis"}},key:"0029"},{category:"Ps",mappings:{"default":{"default":"left square bracket",alternative:"opening square bracket"}},key:"005B"},{category:"Pe",mappings:{"default":{"default":"right square bracket",alternative:"closing square bracket"}},key:"005D"},{category:"Ps",mappings:{"default":{"default":"left curly bracket",alternative:"opening curly bracket"}},
+key:"007B"},{category:"Pe",mappings:{"default":{"default":"right curly bracket",alternative:"closing curly bracket"}},key:"007D"},{category:"Ps",mappings:{"default":{"default":"left square bracket with quill"}},key:"2045"},{category:"Pe",mappings:{"default":{"default":"right square bracket with quill"}},key:"2046"},{category:"Sm",mappings:{"default":{"default":"left ceiling"}},key:"2308"},{category:"Sm",mappings:{"default":{"default":"right ceiling"}},key:"2309"},{category:"Sm",mappings:{"default":{"default":"left floor"}},
+key:"230A"},{category:"Sm",mappings:{"default":{"default":"right floor"}},key:"230B"},{category:"So",mappings:{"default":{"default":"bottom right crop"}},key:"230C"},{category:"So",mappings:{"default":{"default":"bottom left crop"}},key:"230D"},{category:"So",mappings:{"default":{"default":"top right crop"}},key:"230E"},{category:"So",mappings:{"default":{"default":"top left crop"}},key:"230F"},{category:"So",mappings:{"default":{"default":"top left corner"}},key:"231C"},{category:"So",mappings:{"default":{"default":"top right corner"}},
+key:"231D"},{category:"So",mappings:{"default":{"default":"bottom left corner"}},key:"231E"},{category:"So",mappings:{"default":{"default":"bottom right corner"}},key:"231F"},{category:"Sm",mappings:{"default":{"default":"top half integral"}},key:"2320"},{category:"Sm",mappings:{"default":{"default":"bottom half integral"}},key:"2321"},{category:"Ps",mappings:{"default":{"default":"left pointing angle bracket",alternative:"bra"}},key:"2329"},{category:"Pe",mappings:{"default":{"default":"right pointing angle bracket",
+alternative:"ket"}},key:"232A"},{category:"Sm",mappings:{"default":{"default":"left parenthesis upper hook"}},key:"239B"},{category:"Sm",mappings:{"default":{"default":"left parenthesis extension"}},key:"239C"},{category:"Sm",mappings:{"default":{"default":"left parenthesis lower hook"}},key:"239D"},{category:"Sm",mappings:{"default":{"default":"right parenthesis upper hook"}},key:"239E"},{category:"Sm",mappings:{"default":{"default":"right parenthesis extension"}},key:"239F"},{category:"Sm",mappings:{"default":{"default":"right parenthesis lower hook"}},
+key:"23A0"},{category:"Sm",mappings:{"default":{"default":"left square bracket upper corner"}},key:"23A1"},{category:"Sm",mappings:{"default":{"default":"left square bracket extension"}},key:"23A2"},{category:"Sm",mappings:{"default":{"default":"left square bracket lower corner"}},key:"23A3"},{category:"Sm",mappings:{"default":{"default":"right square bracket upper corner"}},key:"23A4"},{category:"Sm",mappings:{"default":{"default":"right square bracket extension"}},key:"23A5"},{category:"Sm",mappings:{"default":{"default":"right square bracket lower corner"}},
+key:"23A6"},{category:"Sm",mappings:{"default":{"default":"left curly bracket upper hook"}},key:"23A7"},{category:"Sm",mappings:{"default":{"default":"left curly bracket middle piece"}},key:"23A8"},{category:"Sm",mappings:{"default":{"default":"left curly bracket lower hook"}},key:"23A9"},{category:"Sm",mappings:{"default":{"default":"curly bracket extension"}},key:"23AA"},{category:"Sm",mappings:{"default":{"default":"right curly bracket upper hook"}},key:"23AB"},{category:"Sm",mappings:{"default":{"default":"right curly bracket middle piece"}},
+key:"23AC"},{category:"Sm",mappings:{"default":{"default":"right curly bracket lower hook"}},key:"23AD"},{category:"Sm",mappings:{"default":{"default":"integral extension"}},key:"23AE"},{category:"Sm",mappings:{"default":{"default":"horizontal line extension"}},key:"23AF"},{category:"Sm",mappings:{"default":{"default":"upper left or lower right curly bracket section"}},key:"23B0"},{category:"Sm",mappings:{"default":{"default":"upper right or lower left curly bracket section"}},key:"23B1"},{category:"Sm",
+mappings:{"default":{"default":"summation top"}},key:"23B2"},{category:"Sm",mappings:{"default":{"default":"summation bottom"}},key:"23B3"},{category:"So",mappings:{"default":{"default":"top square bracket"}},key:"23B4"},{category:"So",mappings:{"default":{"default":"bottom square bracket"}},key:"23B5"},{category:"So",mappings:{"default":{"default":"bottom square bracket over top square bracket"}},key:"23B6"},{category:"So",mappings:{"default":{"default":"radical symbol bottom"}},key:"23B7"},{category:"So",
+mappings:{"default":{"default":"left vertical box line"}},key:"23B8"},{category:"So",mappings:{"default":{"default":"right vertical box line"}},key:"23B9"},{category:"Sm",mappings:{"default":{"default":"top parenthesis"}},key:"23DC"},{category:"Sm",mappings:{"default":{"default":"bottom parenthesis"}},key:"23DD"},{category:"Sm",mappings:{"default":{"default":"top curly bracket"}},key:"23DE"},{category:"Sm",mappings:{"default":{"default":"bottom curly bracket"}},key:"23DF"},{category:"Sm",mappings:{"default":{"default":"top tortoise shell bracket"}},
+key:"23E0"},{category:"Sm",mappings:{"default":{"default":"bottom tortoise shell bracket"}},key:"23E1"},{category:"Ps",mappings:{"default":{"default":"medium left parenthesis ornament"}},key:"2768"},{category:"Pe",mappings:{"default":{"default":"medium right parenthesis ornament"}},key:"2769"},{category:"Ps",mappings:{"default":{"default":"medium flattened left parenthesis ornament"}},key:"276A"},{category:"Pe",mappings:{"default":{"default":"medium flattened right parenthesis ornament"}},key:"276B"},
+{category:"Ps",mappings:{"default":{"default":"medium left pointing angle bracket ornament"}},key:"276C"},{category:"Pe",mappings:{"default":{"default":"medium right pointing angle bracket ornament"}},key:"276D"},{category:"Ps",mappings:{"default":{"default":"heavy left pointing angle quotation mark ornament"}},key:"276E"},{category:"Pe",mappings:{"default":{"default":"heavy right pointing angle quotation mark ornament"}},key:"276F"},{category:"Ps",mappings:{"default":{"default":"heavy left pointing angle bracket ornament"}},
+key:"2770"},{category:"Pe",mappings:{"default":{"default":"heavy right pointing angle bracket ornament"}},key:"2771"},{category:"Ps",mappings:{"default":{"default":"light left tortoise shell bracket ornament"}},key:"2772"},{category:"Pe",mappings:{"default":{"default":"light right tortoise shell bracket ornament"}},key:"2773"},{category:"Ps",mappings:{"default":{"default":"medium left curly bracket ornament"}},key:"2774"},{category:"Pe",mappings:{"default":{"default":"medium right curly bracket ornament"}},
+key:"2775"},{category:"Ps",mappings:{"default":{"default":"left s shaped bag delimiter"}},key:"27C5"},{category:"Pe",mappings:{"default":{"default":"right s shaped bag delimiter"}},key:"27C6"},{category:"Ps",mappings:{"default":{"default":"mathematical left white square bracket"}},key:"27E6"},{category:"Pe",mappings:{"default":{"default":"mathematical right white square bracket"}},key:"27E7"},{category:"Ps",mappings:{"default":{"default":"mathematical left angle bracket"}},key:"27E8"},{category:"Pe",
+mappings:{"default":{"default":"mathematical right angle bracket"}},key:"27E9"},{category:"Ps",mappings:{"default":{"default":"mathematical left double angle bracket"}},key:"27EA"},{category:"Pe",mappings:{"default":{"default":"mathematical right double angle bracket"}},key:"27EB"},{category:"Ps",mappings:{"default":{"default":"mathematical left white tortoise shell bracket"}},key:"27EC"},{category:"Pe",mappings:{"default":{"default":"mathematical right white tortoise shell bracket"}},key:"27ED"},
+{category:"Ps",mappings:{"default":{"default":"mathematical left flattened parenthesis"}},key:"27EE"},{category:"Pe",mappings:{"default":{"default":"mathematical right flattened parenthesis"}},key:"27EF"},{category:"Ps",mappings:{"default":{"default":"left white curly bracket"}},key:"2983"},{category:"Pe",mappings:{"default":{"default":"right white curly bracket"}},key:"2984"},{category:"Ps",mappings:{"default":{"default":"left white parenthesis"}},key:"2985"},{category:"Pe",mappings:{"default":{"default":"right white parenthesis"}},
+key:"2986"},{category:"Ps",mappings:{"default":{"default":"z notation left image bracket"}},key:"2987"},{category:"Pe",mappings:{"default":{"default":"z notation right image bracket"}},key:"2988"},{category:"Ps",mappings:{"default":{"default":"z notation left binding bracket"}},key:"2989"},{category:"Pe",mappings:{"default":{"default":"z notation right binding bracket"}},key:"298A"},{category:"Ps",mappings:{"default":{"default":"left square bracket with underbar"}},key:"298B"},{category:"Pe",mappings:{"default":{"default":"right square bracket with underbar"}},
+key:"298C"},{category:"Ps",mappings:{"default":{"default":"left square bracket with tick in top corner"}},key:"298D"},{category:"Pe",mappings:{"default":{"default":"right square bracket with tick in bottom corner"}},key:"298E"},{category:"Ps",mappings:{"default":{"default":"left square bracket with tick in bottom corner"}},key:"298F"},{category:"Pe",mappings:{"default":{"default":"right square bracket with tick in top corner"}},key:"2990"},{category:"Ps",mappings:{"default":{"default":"left angle bracket with dot"}},
+key:"2991"},{category:"Pe",mappings:{"default":{"default":"right angle bracket with dot"}},key:"2992"},{category:"Ps",mappings:{"default":{"default":"left arc less than bracket"}},key:"2993"},{category:"Pe",mappings:{"default":{"default":"right arc greater than bracket"}},key:"2994"},{category:"Ps",mappings:{"default":{"default":"double left arc greater than bracket"}},key:"2995"},{category:"Pe",mappings:{"default":{"default":"double right arc less than bracket"}},key:"2996"},{category:"Ps",mappings:{"default":{"default":"left black tortoise shell bracket"}},
+key:"2997"},{category:"Pe",mappings:{"default":{"default":"right black tortoise shell bracket"}},key:"2998"},{category:"Ps",mappings:{"default":{"default":"left wiggly fence"}},key:"29D8"},{category:"Pe",mappings:{"default":{"default":"right wiggly fence"}},key:"29D9"},{category:"Ps",mappings:{"default":{"default":"left double wiggly fence"}},key:"29DA"},{category:"Pe",mappings:{"default":{"default":"right double wiggly fence"}},key:"29DB"},{category:"Ps",mappings:{"default":{"default":"left pointing curved angle bracket"}},
+key:"29FC"},{category:"Pe",mappings:{"default":{"default":"right pointing curved angle bracket"}},key:"29FD"},{category:"Ps",mappings:{"default":{"default":"top left half bracket"}},key:"2E22"},{category:"Pe",mappings:{"default":{"default":"top right half bracket"}},key:"2E23"},{category:"Ps",mappings:{"default":{"default":"bottom left half bracket"}},key:"2E24"},{category:"Pe",mappings:{"default":{"default":"bottom right half bracket"}},key:"2E25"},{category:"Ps",mappings:{"default":{"default":"left sideways u bracket"}},
+key:"2E26"},{category:"Pe",mappings:{"default":{"default":"right sideways u bracket"}},key:"2E27"},{category:"Ps",mappings:{"default":{"default":"left double parenthesis"}},key:"2E28"},{category:"Pe",mappings:{"default":{"default":"right double parenthesis"}},key:"2E29"},{category:"Ps",mappings:{"default":{"default":"left angle bracket",alternative:"opening angle bracket"}},key:"3008"},{category:"Pe",mappings:{"default":{"default":"right angle bracket",alternative:"closing angle bracket"}},key:"3009"},
+{category:"Ps",mappings:{"default":{"default":"left double angle bracket",alternative:"opening double angle bracket"}},key:"300A"},{category:"Pe",mappings:{"default":{"default":"right double angle bracket",alternative:"closing double angle bracket"}},key:"300B"},{category:"Ps",mappings:{"default":{"default":"left corner bracket",alternative:"opening corner bracket"}},key:"300C"},{category:"Pe",mappings:{"default":{"default":"right corner bracket",alternative:"closing corner bracket"}},key:"300D"},
+{category:"Ps",mappings:{"default":{"default":"left white corner bracket",alternative:"opening white corner bracket"}},key:"300E"},{category:"Pe",mappings:{"default":{"default":"right white corner bracket",alternative:"closing white corner bracket"}},key:"300F"},{category:"Ps",mappings:{"default":{"default":"left black lenticular bracket",alternative:"opening black lenticular bracket"}},key:"3010"},{category:"Pe",mappings:{"default":{"default":"right black lenticular bracket",alternative:"closing black lenticular bracket"}},
+key:"3011"},{category:"Ps",mappings:{"default":{"default":"left tortoise shell bracket",alternative:"opening tortoise shell bracket"}},key:"3014"},{category:"Pe",mappings:{"default":{"default":"right tortoise shell bracket",alternative:"closing tortoise shell bracket"}},key:"3015"},{category:"Ps",mappings:{"default":{"default":"left white lenticular bracket",alternative:"opening white lenticular bracket"}},key:"3016"},{category:"Pe",mappings:{"default":{"default":"right white lenticular bracket",
+alternative:"closing white lenticular bracket"}},key:"3017"},{category:"Ps",mappings:{"default":{"default":"left white tortoise shell bracket",alternative:"opening white tortoise shell bracket"}},key:"3018"},{category:"Pe",mappings:{"default":{"default":"right white tortoise shell bracket",alternative:"closing white tortoise shell bracket"}},key:"3019"},{category:"Ps",mappings:{"default":{"default":"left white square bracket",alternative:"opening white square bracket"}},key:"301A"},{category:"Pe",
+mappings:{"default":{"default":"right white square bracket",alternative:"closing white square bracket"}},key:"301B"},{category:"Ps",mappings:{"default":{"default":"reversed double prime quotation mark"}},key:"301D"},{category:"Pe",mappings:{"default":{"default":"double prime quotation mark"}},key:"301E"},{category:"Pe",mappings:{"default":{"default":"low double prime quotation mark"}},key:"301F"},{category:"Ps",mappings:{"default":{"default":"ornate left parenthesis"}},key:"FD3E"},{category:"Pe",
+mappings:{"default":{"default":"ornate right parenthesis"}},key:"FD3F"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left white lenticular bracket"}},key:"FE17"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right white lenticular bracket"}},key:"FE18"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left parenthesis",alternative:"glyph for vertical opening parenthesis"}},key:"FE35"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right parenthesis",
+alternative:"glyph for vertical closing parenthesis"}},key:"FE36"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left curly bracket",alternative:"glyph for vertical opening curly bracket"}},key:"FE37"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right curly bracket",alternative:"glyph for vertical closing curly bracket"}},key:"FE38"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left tortoise shell bracket",
+alternative:"glyph for vertical opening tortoise shell bracket"}},key:"FE39"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right tortoise shell bracket",alternative:"glyph for vertical closing tortoise shell bracket"}},key:"FE3A"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left black lenticular bracket",alternative:"glyph for vertical opening black lenticular bracket"}},key:"FE3B"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right black lenticular bracket",
+alternative:"glyph for vertical closing black lenticular bracket"}},key:"FE3C"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left double angle bracket",alternative:"glyph for vertical opening double angle bracket"}},key:"FE3D"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right double angle bracket",alternative:"glyph for vertical closing double angle bracket"}},key:"FE3E"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left angle bracket",
+alternative:"glyph for vertical opening angle bracket"}},key:"FE3F"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right angle bracket",alternative:"glyph for vertical closing angle bracket"}},key:"FE40"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left corner bracket",alternative:"glyph for vertical opening corner bracket"}},key:"FE41"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right corner bracket",
+alternative:"glyph for vertical closing corner bracket"}},key:"FE42"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left white corner bracket",alternative:"glyph for vertical opening white corner bracket"}},key:"FE43"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right white corner bracket",alternative:"glyph for vertical closing white corner bracket"}},key:"FE44"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left square bracket"}},
+key:"FE47"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right square bracket"}},key:"FE48"},{category:"Ps",mappings:{"default":{"default":"small left parenthesis",alternative:"small opening parenthesis"}},key:"FE59"},{category:"Pe",mappings:{"default":{"default":"small right parenthesis",alternative:"small closing parenthesis"}},key:"FE5A"},{category:"Ps",mappings:{"default":{"default":"small left curly bracket",alternative:"small opening curly bracket"}},key:"FE5B"},
+{category:"Pe",mappings:{"default":{"default":"small right curly bracket",alternative:"small closing curly bracket"}},key:"FE5C"},{category:"Ps",mappings:{"default":{"default":"small left tortoise shell bracket",alternative:"small opening tortoise shell bracket"}},key:"FE5D"},{category:"Pe",mappings:{"default":{"default":"small right tortoise shell bracket",alternative:"small closing tortoise shell bracket"}},key:"FE5E"},{category:"Ps",mappings:{"default":{"default":"fullwidth left parenthesis",alternative:"fullwidth opening parenthesis"}},
+key:"FF08"},{category:"Pe",mappings:{"default":{"default":"fullwidth right parenthesis",alternative:"fullwidth closing parenthesis"}},key:"FF09"},{category:"Ps",mappings:{"default":{"default":"fullwidth left square bracket",alternative:"fullwidth opening square bracket"}},key:"FF3B"},{category:"Pe",mappings:{"default":{"default":"fullwidth right square bracket",alternative:"fullwidth closing square bracket"}},key:"FF3D"},{category:"Ps",mappings:{"default":{"default":"fullwidth left curly bracket",
+alternative:"fullwidth opening curly bracket"}},key:"FF5B"},{category:"Pe",mappings:{"default":{"default":"fullwidth right curly bracket",alternative:"fullwidth closing curly bracket"}},key:"FF5D"},{category:"Ps",mappings:{"default":{"default":"fullwidth left white parenthesis"}},key:"FF5F"},{category:"Pe",mappings:{"default":{"default":"fullwidth right white parenthesis"}},key:"FF60"},{category:"Ps",mappings:{"default":{"default":"halfwidth left corner bracket",alternative:"halfwidth opening corner bracket"}},
+key:"FF62"},{category:"Pe",mappings:{"default":{"default":"halfwidth right corner bracket",alternative:"halfwidth closing corner bracket"}},key:"FF63"}];
+cvox.AndroidMathMap.FUNCTION_MAPPINGS_=[{category:"Elementary",mappings:{"default":{"default":"logarithm",alternative:"logarithm function","short":"log"}},key:"log",names:["log"]},{category:"Elementary",mappings:{"default":{"default":"natural logarithm",alternative:"natural logarithm function","short":"natural log"}},key:"ln",names:["ln"]},{category:"Elementary",mappings:{"default":{"default":"logarithm base 10","short":"log base 10"}},key:"lg",names:["lg"]},{category:"Elementary",mappings:{"default":{"default":"exponential",
+alternative:"exponential function","short":"exp"}},key:"exp",names:["exp","expt"]},{category:"Elementary",mappings:{"default":{"default":"greatest common divisor","short":"gcd"}},key:"gcd",names:["gcd"]},{category:"Elementary",mappings:{"default":{"default":"least common multiple","short":"lcm"}},key:"gcd",names:["gcd"]},{category:"Complex",mappings:{"default":{"default":"argument","short":"arg"}},key:"arg",names:["arg"]},{category:"Complex",mappings:{"default":{"default":"imaginary part","short":"imaginary"}},
+key:"im",names:["im"]},{category:"Complex",mappings:{"default":{"default":"real part","short":"real"}},key:"re",names:["re"]},{category:"Limits",mappings:{"default":{"default":"infimum","short":"inf"}},key:"inf",names:["inf"]},{category:"Limits",mappings:{"default":{"default":"limit","short":"lim"}},key:"lim",names:["lim"]},{category:"Limits",mappings:{"default":{"default":"infimum default",alternative:"inferior limit","short":"liminf"}},key:"liminf",names:["lim inf"]},{category:"Limits",mappings:{"default":{"default":"supremum limit",
+alternative:"superior limit","short":"limsup"}},key:"limsup",names:["lim sup"]},{category:"Limits",mappings:{"default":{"default":"maximum","short":"max"}},key:"max",names:["max"]},{category:"Limits",mappings:{"default":{"default":"minimum","short":"min"}},key:"min",names:["min"]},{category:"Limits",mappings:{"default":{"default":"supremum","short":"sup"}},key:"sup",names:["sup"]},{category:"Limits",mappings:{"default":{"default":"injective limit",alternative:"direct limit","short":"colimit"}},key:"injlim",
+names:["injlim","inj lim"]},{category:"Limits",mappings:{"default":{"default":"projective limit",alternative:"inverse limit","short":"limit"}},key:"projlim",names:["projlim","proj lim"]},{category:"Elementary",mappings:{"default":{"default":"modulo","short":"mod"}},key:"mod",names:["mod"]},{category:"Probability",mappings:{"default":{"default":"probability"}},key:"Pr",names:["Pr"]},{category:"Trigonometric",mappings:{"default":{"default":"cosine function","short":"cosine"}},key:"cos",names:["cos",
+"cosine"]},{category:"Trigonometric",mappings:{"default":{"default":"cotangent function","short":"cotangent"}},key:"cot",names:["cot"]},{category:"Trigonometric",mappings:{"default":{"default":"cosecant function","short":"cosecant"}},key:"csc",names:["csc"]},{category:"Trigonometric",mappings:{"default":{"default":"secant function","short":"secant"}},key:"sec",names:["sec"]},{category:"Trigonometric",mappings:{"default":{"default":"sine function",alternative:"sine function","short":"sine"}},key:"sin",
+names:["sin","sine"]},{category:"Trigonometric",mappings:{"default":{"default":"tangent function","short":"tangent"}},key:"tan",names:["tan"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse cosine function",alternative:"arc cosine function","short":"arc cosine"}},key:"arccos",names:["arccos"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse cotangent function",alternative:"arc cotangent function","short":"arc cotangent"}},key:"arccot",names:["arccot"]},{category:"Cyclometric",
+mappings:{"default":{"default":"inverse cosecant function",alternative:"arc cosecant function","short":"arc cosecant"}},key:"arccsc",names:["arccsc"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse secant function",alternative:"arc secant function","short":"arc secant"}},key:"arcsec",names:["arcsec"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse sine function",alternative:"arc sine function","short":"arc sine"}},key:"arcsin",names:["arcsin"]},{category:"Cyclometric",
+mappings:{"default":{"default":"inverse tangent function",alternative:"arc tangent function","short":"arc tangent"}},key:"arctan",names:["arctan"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic cosine function","short":"hyperbolic cosine"}},key:"cosh",names:["cosh"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic cotangent function","short":"hyperbolic cotangent"}},key:"coth",names:["coth"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic cosecant function",
+"short":"hyperbolic cosecant"}},key:"csch",names:["csch"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic secant function","short":"hyperbolic secant"}},key:"sech",names:["sech"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic sine function","short":"hyperbolic sine"}},key:"sinh",names:["sinh"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic tangent function","short":"hyperbolic tangent"}},key:"tanh",names:["tanh"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic cosine function",
+alternative:"area hyperbolic cosine function","short":"area hyperbolic cosine"}},key:"arcosh",names:["arcosh","arccosh"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic cotangent function",alternative:"area hyperbolic cotangent function","short":"area hyperbolic cotangent"}},key:"arcoth",names:["arcoth","arccoth"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic cosecant function",alternative:"area hyperbolic cosecant function","short":"area hyperbolic cosecant"}},
+key:"arcsch",names:["arcsch","arccsch"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic secant function",alternative:"area hyperbolic secant function","short":"area hyperbolic secant"}},key:"arsech",names:["arsech","arcsech"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic sine function",alternative:"area hyperbolic sine function","short":"area hyperbolic sine"}},key:"arsinh",names:["arsinh","arcsinh"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic tangent function",
+alternative:"area hyperbolic tangent function","short":"area hyperbolic tangent"}},key:"artanh",names:["artanh","arctanh"]},{category:"Algebra",mappings:{"default":{"default":"degree"}},key:"deg",names:["deg"]},{category:"Algebra",mappings:{"default":{"default":"determinant","short":"det"}},key:"det",names:["det"]},{category:"Algebra",mappings:{"default":{"default":"dimension"}},key:"dim",names:["dim"]},{category:"Algebra",mappings:{"default":{"default":"homomorphism","short":"hom"}},key:"hom",names:["hom",
+"Hom"]},{category:"Algebra",mappings:{"default":{"default":"kernel"}},key:"ker",names:["ker"]},{category:"Algebra",mappings:{"default":{"default":"trace"}},key:"Tr",names:["Tr","tr"]}];cvox.AndroidVox=function(){cvox.ChromeVox.navigationManager.ignoreIframesNoMatterWhat()};goog.exportSymbol("cvox.AndroidVox",cvox.AndroidVox);
+cvox.AndroidVox.performAction=function(a){var b=JSON.parse(a);a=b.action;var c=b.granularity,b=b.element,d=cvox.SearchWidget.getInstance().isActive();16==c&&512==a&&(cvox.ChromeVox.navigationManager.setReversed(!1),cvox.ChromeVox.navigationManager.syncToBeginning(),cvox.ChromeVox.navigationManager.updateIndicator());if(16==c)return cvox.ChromeVoxUserCommands.commands.readFromHere(),!0;cvox.ChromeVoxUserCommands.commands.stopSpeech();if(256==a||512==a)d||cvox.ChromeVoxEventWatcher.setUpTextHandler();
+var e=cvox.ChromeVoxEventWatcher.currentTextHandler;e||document.activeElement==document.body||console.log("no text handler, but there is an active element",document.activeElement);if(e&&1==c){if(256==a)return e.moveCursorToNextCharacter();if(512==a)return e.moveCursorToPreviousCharacter()}else if(e&&2==c){if(256==a)return e.moveCursorToNextWord();if(512==a)return e.moveCursorToPreviousWord()}else if(e&&8==c){if(256==a)return e.moveCursorToNextParagraph();if(512==a)return e.moveCursorToPreviousParagraph()}else if(e&&
+4==c){var f=!1;256==a?f=e.moveCursorToNextLine():512==a&&(f=e.moveCursorToPreviousLine());if(f)return!0}switch(c){case -1:return cvox.ChromeVox.navigationManager.finishNavCommand(""),!0;case -2:return cvox.ChromeVoxUserCommands.commands.readCurrentTitle(),!0;case -3:return!0;case -4:return 512==a?cvox.ChromeVoxUserCommands.commands.exitShifter():cvox.ChromeVoxUserCommands.commands.enterShifter(),!0;case -5:return cvox.SearchWidget.getInstance().toggle(),!0}if(-275999999<=c&&-275E6>=c){cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("element_clicked"),
+cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION);a=cvox.ChromeVox.navigationManager.getBraille();b=-275E6-c;if(c=a.text.getSpan(b))a=b-a.text.getSpanStart(c),cvox.AndroidVox.performClickAction(c,a);return!0}if(0>c)return!1;e=[];e[8]=cvox.NavigationShifter.GRANULARITIES.GROUP;e[4]=cvox.NavigationShifter.GRANULARITIES.LINE;e[2]=cvox.NavigationShifter.GRANULARITIES.WORD;e[1]=cvox.NavigationShifter.GRANULARITIES.CHARACTER;d||(c=c?e[c]:cvox.NavigationShifter.GRANULARITIES.OBJECT,
+cvox.ChromeVox.navigationManager.setGranularity(c));c=!1;switch(a){case 16:if(d)break;cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("element_clicked"),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION);(c=cvox.ChromeVox.navigationManager.getCurrentNode())&&cvox.AndroidVox.performClickAction(c);c=!0;break;case 1024:switch(b){case "SECTION":c=!cvox.ChromeVoxUserCommands.commands.nextSection();break;case "LIST":c=!cvox.ChromeVoxUserCommands.commands.nextList();break;case "CONTROL":c=
+!cvox.ChromeVoxUserCommands.commands.nextControl()}if(c)break;case 256:d?(cvox.SearchWidget.getInstance().nextResult(!1),c=!0):c=!cvox.ChromeVoxUserCommands.commands.forward();break;case 2048:switch(b){case "SECTION":c=!cvox.ChromeVoxUserCommands.commands.previousSection();break;case "LIST":c=!cvox.ChromeVoxUserCommands.commands.previousList();break;case "CONTROL":c=!cvox.ChromeVoxUserCommands.commands.previousControl()}if(c)break;case 512:d?(cvox.SearchWidget.getInstance().nextResult(!0),c=!0):c=
+!cvox.ChromeVoxUserCommands.commands.backward()}return c};goog.exportSymbol("cvox.AndroidVox.performAction",cvox.AndroidVox.performAction);
+cvox.AndroidVox.performClickAction=function(a,b){cvox.ChromeVox.navigationManager.getCurrentNode()!=a&&cvox.ApiImplementation.syncToNode(a,!1);cvox.Focuser.setFocus(a);var c=cvox.DomUtil.isInputTypeText(a)||a instanceof HTMLTextAreaElement;if(goog.isDef(b)&&c){var d=cvox.BrailleUtil.getTemplated(null,a),c=d.getSpanInstanceOf(cvox.BrailleUtil.ValueSpan),e=d.getSpanStart(c),d=d.getSpanEnd(c);e<=b&&b<=d&&(c=b-e+c.offset,a.selectionStart=a.selectionEnd=c,cvox.ChromeVoxEventWatcher.handleTextChanged(!0))}cvox.DomUtil.clickElem(a,
+!1,!0)};cvox.AndroidHost=function(){};goog.inherits(cvox.AndroidHost,cvox.AbstractHost);
+cvox.AndroidHost.prototype.init=function(){cvox.ChromeVox.version="AndroidVox";var a=cvox.AndroidKeyMap.getStringifiedKeyMap();cvox.ChromeVoxKbHandler.loadKeyToFunctionsTable(a);cvox.ApiImplementation.siteSpecificScriptLoader="";cvox.ApiImplementation.siteSpecificScriptBase="";cvox.ApiImplementation.init();cvox.ChromeVox.earcons.earconsAvailable()&&(cvox.ChromeVox.verbosity=cvox.VERBOSITY_BRIEF);new cvox.AndroidMathMap;cvox.InitialSpeech.speak()};cvox.AndroidHost.prototype.reinit=function(){};
+cvox.AndroidHost.prototype.onPageLoad=function(){cvox.ChromeVoxEventWatcher.focusFollowsMouse=!0;cvox.ChromeVoxEventWatcher.mouseoverDelayMs=0};cvox.AndroidHost.prototype.ttsLoaded=function(){return"undefined"!=typeof accessibility};cvox.AndroidHost.prototype.getApiSrc=function(){return""};cvox.AndroidHost.prototype.hasTtsCallback=function(){return!1};cvox.AndroidHost.prototype.mustRedispatchClickEvent=function(){return!0};
+cvox.AndroidHost.prototype.activateOrDeactivateChromeVox=function(a){cvox.ChromeVox.tts.stop();cvox.AndroidHost.superClass_.activateOrDeactivateChromeVox.call(this,a);this.onPageLoad()};goog.exportSymbol("cvox.AndroidHost.prototype.activateOrDeactivateChromeVox",cvox.AndroidHost.prototype.activateOrDeactivateChromeVox);cvox.HostFactory.hostConstructor=cvox.AndroidHost;window.cvox||(window.cvox={});cvox.MathJaxExternalUtil=function(){};cvox.MathJaxExternalUtil.mmlAttr=function(){return""};
+cvox.MathJaxExternalUtil.mfenced=function(a){null==a&&(a="");var b=[a+'<mrow mfenced="true"'+this.toMathMLattributes()+">"],c=a+" ";this.data.open&&b.push(this.data.open.toMathML(c));null!=this.data[0]&&b.push(this.data[0].toMathML(c));for(var d=1,e=this.data.length;d<e;d++)this.data[d]&&(this.data["sep"+d]&&b.push(this.data["sep"+d].toMathML(c)),b.push(this.data[d].toMathML(c)));this.data.close&&b.push(this.data.close.toMathML(c));b.push(a+"</mrow>");return b.join("\n")};
+cvox.MathJaxExternalUtil.getMathml=function(a,b){var c=MathJax.ElementJax.mml.mbase.prototype,d=MathJax.ElementJax.mml.mfenced.prototype;this.mmlAttr=c.toMathMLattributes;var e=d.toMathML;try{c.toMathMLattributes=cvox.MathJaxExternalUtil.mbase;d.toMathML=cvox.MathJaxExternalUtil.mfenced;var f=a.root.toMathML("");c.toMathMLattributes=this.mmlAttr;d.toMathML=e;MathJax.Callback(b)(f)}catch(g){c.toMathMLattributes=this.mmlAttr;d.toMathML=e;if(!g.restart)throw g;return MathJax.Callback.After([cvox.MathJaxExternalUtil.getMathml,
+a,b],g.restart)}};cvox.MathJaxExternalUtil.mbase=function(){var a=cvox.MathJaxExternalUtil.mmlAttr.call(this);if(null!=this.spanID)var b=(this.id||"MathJax-Span-"+this.spanID)+MathJax.OutputJax["HTML-CSS"].idPostfix,a=a+(' spanID="'+b+'"');null!=this.texClass&&(a+=' texClass="'+this.texClass+'"');return a};cvox.MathJaxExternalUtil.isActive=function(){return"undefined"!=typeof MathJax&&"undefined"!=typeof MathJax.Hub&&"undefined"!=typeof MathJax.ElementJax&&"undefined"!=typeof MathJax.InputJax};
+cvox.MathJaxExternalUtil.getMathjaxCallback_=function(a,b){cvox.MathJaxExternalUtil.getMathml(b,function(c){b.root.inputID&&a(c,b.root.inputID)})};cvox.MathJaxExternalUtil.registerSignal=function(a,b){MathJax.Hub.Register.MessageHook(b,function(b){b=MathJax.Hub.getJaxFor(b[1]);cvox.MathJaxExternalUtil.getMathjaxCallback_(a,b)})};cvox.MathJaxExternalUtil.getAllJax=function(a){var b=MathJax.Hub.getAllJax();b&&b.forEach(function(b){b.root.spanID&&cvox.MathJaxExternalUtil.getMathjaxCallback_(a,b)})};
+cvox.MathJaxExternalUtil.injectConfigScript=function(){var a=document.createElement("script");a.setAttribute("type","text/x-mathjax-config");a.textContent='MathJax.Hub.Config({\n jax: ["input/AsciiMath", "input/TeX"],\n extensions: ["toMathML.js"],\n skipStartupTypeset: true,\n messageStyle: "none",\n TeX: {extensions: ["AMSmath.js","AMSsymbols.js"]}\n});\nMathJax.Hub.Queue(\n function() {MathJax.Hub.inputJax["math/asciimath"].Process();\n MathJax.Hub.inputJax["math/tex"].Process()}\n);\n//\n// Prevent these from being loaded\n//\nif (!MathJax.Extension.MathMenu) {MathJax.Extension.MathMenu = {}};\nif (!MathJax.Extension.MathZoom) {MathJax.Extension.MathZoom = {}};';
+document.activeElement.appendChild(a)};cvox.MathJaxExternalUtil.injectLoadScript=function(){var a=document.createElement("script");a.setAttribute("type","text/javascript");a.setAttribute("src","http://cdn.mathjax.org/mathjax/latest/MathJax.js");document.activeElement.appendChild(a)};
+cvox.MathJaxExternalUtil.configMediaWiki=function(){mediaWiki&&MathJax.Hub.Register.StartupHook("TeX Jax Ready",function(){var a=MathJax.ElementJax.mml;MathJax.Hub.Insert(MathJax.InputJax.TeX.Definitions,{mathchar0mi:{thetasym:"03B8",koppa:"03DF",stigma:"03DB",varstigma:"03DB",coppa:"03D9",varcoppa:"03D9",sampi:"03E1",C:["0043",{mathvariant:a.VARIANT.DOUBLESTRUCK}],cnums:["0043",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Complex:["0043",{mathvariant:a.VARIANT.DOUBLESTRUCK}],H:["210D",{mathvariant:a.VARIANT.DOUBLESTRUCK}],
+N:["004E",{mathvariant:a.VARIANT.DOUBLESTRUCK}],natnums:["004E",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Q:["0051",{mathvariant:a.VARIANT.DOUBLESTRUCK}],R:["0052",{mathvariant:a.VARIANT.DOUBLESTRUCK}],reals:["0052",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Reals:["0052",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Z:["005A",{mathvariant:a.VARIANT.DOUBLESTRUCK}],sect:"00A7",P:"00B6",AA:["00C5",{mathvariant:a.VARIANT.NORMAL}],alef:["2135",{mathvariant:a.VARIANT.NORMAL}],alefsym:["2135",{mathvariant:a.VARIANT.NORMAL}],
+weierp:["2118",{mathvariant:a.VARIANT.NORMAL}],real:["211C",{mathvariant:a.VARIANT.NORMAL}],part:["2202",{mathvariant:a.VARIANT.NORMAL}],infin:["221E",{mathvariant:a.VARIANT.NORMAL}],empty:["2205",{mathvariant:a.VARIANT.NORMAL}],O:["2205",{mathvariant:a.VARIANT.NORMAL}],ang:["2220",{mathvariant:a.VARIANT.NORMAL}],exist:["2203",{mathvariant:a.VARIANT.NORMAL}],clubs:["2663",{mathvariant:a.VARIANT.NORMAL}],diamonds:["2662",{mathvariant:a.VARIANT.NORMAL}],hearts:["2661",{mathvariant:a.VARIANT.NORMAL}],
+spades:["2660",{mathvariant:a.VARIANT.NORMAL}],textvisiblespace:"2423",geneuro:"20AC",euro:"20AC"},mathchar0mo:{and:"2227",or:"2228",bull:"2219",plusmn:"00B1",sdot:"22C5",Dagger:"2021",sup:"2283",sub:"2282",supe:"2287",sube:"2286",isin:"2208",hAar:"21D4",hArr:"21D4",Harr:"21D4",Lrarr:"21D4",lrArr:"21D4",lArr:"21D0",Larr:"21D0",rArr:"21D2",Rarr:"21D2",harr:"2194",lrarr:"2194",larr:"2190",gets:"2190",rarr:"2192",oiint:["222F",{texClass:a.TEXCLASS.OP}],oiiint:["2230",{texClass:a.TEXCLASS.OP}]},mathchar7:{Alpha:"0391",
+Beta:"0392",Epsilon:"0395",Zeta:"0396",Eta:"0397",Iota:"0399",Kappa:"039A",Mu:"039C",Nu:"039D",Omicron:"039F",Rho:"03A1",Tau:"03A4",Chi:"03A7",Koppa:"03DE",Stigma:"03DA",Digamma:"03DC",Coppa:"03D8",Sampi:"03E0"},delimiter:{"\\uarr":"2191","\\darr":"2193","\\Uarr":"21D1","\\uArr":"21D1","\\Darr":"21D3","\\dArr":"21D3","\\rang":"27E9","\\lang":"27E8"},macros:{sgn:"NamedFn",arccot:"NamedFn",arcsec:"NamedFn",arccsc:"NamedFn",sen:"NamedFn",image:["Macro","\\Im"],bold:["Macro","\\mathbf{#1}",1],pagecolor:["Macro",
+"",1],emph:["Macro","\\textit{#1}",1],textsf:["Macro","\\mathord{\\sf{\\text{#1}}}",1],texttt:["Macro","\\mathord{\\tt{\\text{#1}}}",1],vline:["Macro","\\smash{\\large\\lvert}",0]}})})};
+cvox.MathJaxExternalUtil.convertToMml=function(a,b,c,d,e,f){var g=MathJax.HTML.Element("script",{type:c},[b]),g={math:b,script:g};MathJax.InputJax[d].prefilterHooks.Execute(g);var h;try{h=f(g.math)}catch(k){if(k[e])h=MathJax.ElementJax.mml.merror(k.message.replace(/\n.*/,""));else{if(k.restart)return MathJax.Callback.After([cvox.MathJaxExternalUtil.convertToMml,a,b,c,d,e,f],k.restart);throw k;}}h=h.inferred?MathJax.ElementJax.mml.apply(MathJax.ElementJax,h.data):MathJax.ElementJax.mml(h);h.root.display=
+"block";g.math=h;g.script.MathJax={};MathJax.InputJax[d].postfilterHooks.Execute(g);return cvox.MathJaxExternalUtil.getMathml(g.math,a)};cvox.MathJaxExternalUtil.texToMml=function(a,b){cvox.MathJaxExternalUtil.convertToMml(a,b,"math/tex;mode=display","TeX","texError",function(a){return MathJax.InputJax.TeX.Parse(a).mml()})};cvox.MathJaxExternalUtil.asciiMathToMml=function(a,b){cvox.MathJaxExternalUtil.convertToMml(a,b,"math/asciimath","AsciiMath","asciimathError",MathJax.InputJax.AsciiMath.AM.parseMath)};cvox.AndroidMathJax=function(){this.altMathNodeId_=0};goog.inherits(cvox.AndroidMathJax,cvox.AbstractMathJax);cvox.AndroidMathJax.prototype.getMathmlToDomCallback_=function(a){return goog.bind(function(b,c){return this.convertMarkupToDom(a,b,c)},this)};cvox.AndroidMathJax.prototype.isMathjaxActive=function(a){var b=0,c=function(){b++;cvox.MathJaxExternalUtil.isActive()?a(!0):5>b&&setTimeout(c,1E3)};c()};cvox.AndroidMathJax.prototype.getAllJax=function(a){cvox.MathJaxExternalUtil.getAllJax(this.getMathmlToDomCallback_(a))};
+cvox.AndroidMathJax.prototype.registerSignal=function(a,b){cvox.MathJaxExternalUtil.registerSignal(this.getMathmlToDomCallback_(a),b)};cvox.AndroidMathJax.prototype.injectScripts=function(){cvox.MathJaxExternalUtil.injectConfigScript();cvox.MathJaxExternalUtil.injectLoadScript()};cvox.AndroidMathJax.prototype.configMediaWiki=function(){cvox.MathJaxExternalUtil.configMediaWiki()};
+cvox.AndroidMathJax.prototype.getTex=function(a,b){var c=b.alt||b.title;if(c){var d="cvoxId-"+this.altMathNodeId_++;b.setAttribute("cvoxId",d);cvox.MathJaxExternalUtil.texToMml(goog.bind(function(b){this.convertMarkupToDom(a,b,d)},this),c)}};cvox.AndroidMathJax.prototype.getAsciiMath=function(a,b){var c=b.alt||b.title;if(c){var d="cvoxId-"+this.altMathNodeId_++;b.setAttribute("cvoxId",d);cvox.MathJaxExternalUtil.asciiMathToMml(goog.bind(function(b){this.convertMarkupToDom(a,b,d)},this),c)}};
+cvox.HostFactory.mathJaxConstructor=cvox.AndroidMathJax;cvox.AndroidTts=function(){cvox.AbstractTts.call(this);this.ttsProperties.rate=0.5;this.ttsProperties.pitch=0.5;this.ttsProperties.volume=1};goog.inherits(cvox.AndroidTts,cvox.AbstractTts);cvox.AndroidTts.prototype.speak=function(a,b,c){cvox.AndroidTts.superClass_.speak.call(this,a,b,c);c=this.mergeProperties(c);accessibility.speak(a,b,c);return this};cvox.AndroidTts.prototype.isSpeaking=function(){cvox.AndroidTts.superClass_.isSpeaking.call(this);return accessibility.isSpeaking()};
+cvox.AndroidTts.prototype.stop=function(){cvox.AndroidTts.superClass_.stop.call(this);accessibility.stop()};cvox.HostFactory.ttsConstructor=cvox.AndroidTts;cvox.TestMessages={locale:{message:"en"},chromevox_name:{message:"ChromeVox"},chromevox_description:{message:"ChromeVox - Giving Voice to Chrome"},chromevox_stop_speech_key:{message:"Stop speech"},chromevox_toggle_sticky_mode:{message:"Enable/Disable sticky mode"},chromevox_prefix_key:{message:"Prefix key"},chromevox_handle_tab_next:{message:"Jump to next focusable item"},chromevox_handle_tab_prev:{message:"Jump to previous focusable item"},chromevox_backward:{message:"Navigate backward"},chromevox_forward:{message:"Navigate forward"},
+chromevox_left:{message:"Move left"},chromevox_right:{message:"Move right"},chromevox_skip_backward:{message:"Skip backward during continuous reading"},chromevox_skip_forward:{message:"Skip forward during continuous reading"},chromevox_previous_granularity:{message:"Decrease navigation granularity"},chromevox_next_granularity:{message:"Increase navigation granularity"},chromevox_act_on_current_item:{message:"Take action on current item"},chromevox_force_click_on_current_item:{message:"Click on current item"},
+chromevox_read_link_url:{message:"Announce the URL behind a link"},chromevox_read_current_title:{message:"Announce the title of the current page"},chromevox_read_current_url:{message:"Announce the URL of the current page"},chromevox_read_from_here:{message:"Start reading from current location"},chromevox_show_power_key:{message:"Open ChromeVox keyboard help"},chromevox_hide_power_key:{message:"Hide ChromeVox help"},chromevox_power_key_help:{message:"Press up or down to review commands, press enter to activate"},
+chromevox_help:{message:"Open ChromeVox tutorial"},chromevox_toggle_search_widget:{message:"Toggle search widget"},chromevox_show_options_page:{message:"Open options page"},chromevox_show_kb_explorer_page:{message:"Open keyboard explorer"},chromevox_decrease_tts_rate:{message:"Decrease rate of speech"},chromevox_increase_tts_rate:{message:"Increase rate of speech"},chromevox_decrease_tts_pitch:{message:"Decrease pitch"},chromevox_increase_tts_pitch:{message:"Increase pitch"},chromevox_decrease_tts_volume:{message:"Decrease speech volume"},
+chromevox_increase_tts_volume:{message:"Increase speech volume"},chromevox_show_forms_list:{message:"Show forms list"},chromevox_show_headings_list:{message:"Show headings list"},chromevox_show_links_list:{message:"Show links list"},chromevox_show_tables_list:{message:"Show tables list"},chromevox_show_landmarks_list:{message:"Show landmarks list"},chromevox_previous_row:{message:"Previous table row"},chromevox_next_row:{message:"Next table row"},chromevox_previous_col:{message:"Previous table column"},
+chromevox_next_col:{message:"Next table column"},chromevox_announce_headers:{message:"Announce the headers of the current cell"},chromevox_speak_table_location:{message:"Announce current cell coordinates"},chromevox_guess_row_header:{message:"Make a guess at the row header of the current cell"},chromevox_guess_col_header:{message:"Make a guess at the column header of the current cell"},chromevox_skip_to_beginning:{message:"Go to beginning of table"},chromevox_skip_to_end:{message:"Go to end of table"},
+chromevox_skip_to_row_beginning:{message:"Go to beginning of the current row"},chromevox_skip_to_row_end:{message:"Go to end of the current row"},chromevox_skip_to_col_beginning:{message:"Go to beginning of the current column"},chromevox_skip_to_col_end:{message:"Go to end of the current column"},chromevox_next_heading1:{message:"Next level 1 heading"},chromevox_previous_heading1:{message:"Previous level 1 heading"},chromevox_next_heading2:{message:"Next level 2 heading"},chromevox_previous_heading2:{message:"Previous level 2 heading"},
+chromevox_next_heading3:{message:"Next level 3 heading"},chromevox_previous_heading3:{message:"Previous level 3 heading"},chromevox_next_heading4:{message:"Next level 4 heading"},chromevox_previous_heading4:{message:"Previous level 4 heading"},chromevox_next_heading5:{message:"Next level 5 heading"},chromevox_previous_heading5:{message:"Previous level 5 heading"},chromevox_next_heading6:{message:"Next level 6 heading"},chromevox_previous_heading6:{message:"Previous level 6 heading"},chromevox_next_combo_box:{message:"Next combo box"},
+chromevox_previous_combo_box:{message:"Previous combo box"},chromevox_next_edit_text:{message:"Next editable text area"},chromevox_previous_edit_text:{message:"Previous editable text area"},chromevox_next_form_field:{message:"Next form field"},chromevox_previous_form_field:{message:"Previous form field"},chromevox_next_graphic:{message:"Next graphic"},chromevox_previous_graphic:{message:"Previous graphic"},chromevox_next_heading:{message:"Next heading"},chromevox_previous_heading:{message:"Previous heading"},
+chromevox_next_list_item:{message:"Next list item"},chromevox_previous_list_item:{message:"Previous list item"},chromevox_next_jump:{message:"Next jump"},chromevox_previous_jump:{message:"Previous jump"},chromevox_next_link:{message:"Next link"},chromevox_previous_link:{message:"Previous link"},chromevox_next_list:{message:"Next list"},chromevox_previous_list:{message:"Previous list"},chromevox_next_math:{message:"Next math"},chromevox_previous_math:{message:"Previous math"},chromevox_next_media:{message:"Next media"},
+chromevox_previous_media:{message:"Previous media"},chromevox_next_blockquote:{message:"Next block quote"},chromevox_previous_blockquote:{message:"Previous block quote"},chromevox_next_radio:{message:"Next radio button"},chromevox_previous_radio:{message:"Previous radio button"},chromevox_next_slider:{message:"Next slider"},chromevox_previous_slider:{message:"Previous slider"},chromevox_next_table:{message:"Next table"},chromevox_next_visited_link:{message:"Next visited link"},chromevox_previous_table:{message:"Previous table"},
+chromevox_previous_visited_link:{message:"Previous visited link"},chromevox_next_button:{message:"Next button"},chromevox_previous_button:{message:"Previous button"},chromevox_next_checkbox:{message:"Next checkbox"},chromevox_previous_checkbox:{message:"Previous checkbox"},chromevox_next_landmark:{message:"Next landmark"},chromevox_previous_landmark:{message:"Previous landmark"},chromevox_benchmark:{message:"Debug benchmark"},chromevox_announce_position:{message:"Announces a brief description of the current position"},
+chromevox_fully_describe:{message:"Announces a complete description of the current position"},chromevox_options_page_title:{message:"ChromeVox Options"},chromevox_options_page_summary:{message:"Use the options below to customize ChromeVox. Changes take effect immediately."},chromevox_options_mouse_focus_follows:{message:"Use the mouse to change focus."},chromevox_options_site_specific_enhancements:{message:"Enhance specific sites (like Google Search)."},chromevox_options_verbosity_verbose:{message:"Enable verbose descriptions."},
+chromevox_options_cursor_between_characters:{message:"Place cursor between characters when editing text (like Mac OS X)."},chromevox_options_magnifier_show_checkbox:{message:"Show a magnified view of the page content."},chromevox_options_voices:{message:"Voices"},chromevox_options_voices_description:{message:"Change the current voice by selecting an option from the list below."},chromevox_options_braille:{message:"Braille"},chromevox_options_braille_table_type_6:{message:"Switch to 8 dot braille"},
+chromevox_options_braille_table_type_8:{message:"Switch to 6 dot braille"},chromevox_options_braille_description_6:{message:"Change the current 6 dot braille table by selecting an option from the list below."},chromevox_options_braille_locale_grade:{message:"$1, Grade $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_options_braille_description_8:{message:"Change the current 8 dot braille table by selecting an option from the list below."},chromevox_options_keyboard_shortcuts:{message:"Keyboard shortcuts"},
+chromevox_options_keymap_description:{message:"Change the current keymap by selecting an option from the list below."},chromevox_options_select_keys:{message:"Reset current keymap"},chromevox_options_shortcuts_description:{message:"Customize keyboard shortcuts for frequently used commands by typing them into the corresponding fields below."},chromevox_options_modifier_keys:{message:"Modifier keys"},chromevox_options_cvox_modifier_key:{message:"ChromeVox modifier key"},chromevox_kbexplorer_title:{message:"ChromeOS Keyboard Explorer"},
+chromevox_kbexplorer_instructions:{message:"Press any key to learn its name. Ctrl+W will close the keyboard explorer."},chromevox_chrome_system_need_restart:{message:"System was updated. Restart is recommended."},chromevox_chrome_brightness_changed:{message:"Brightness $1 percent",placeholders:{1:{content:"$1"}}},chromevox_chrome_tab_created:{message:"tab created"},chromevox_chrome_tab_selected:{message:"$1, tab",placeholders:{1:{content:"$1"}}},chromevox_chrome_normal_window_selected:{message:"window $1 tab",
+placeholders:{1:{content:"$1"}}},chromevox_chrome_incognito_window_selected:{message:"incognito window $1 tab",placeholders:{1:{content:"$1"}}},chromevox_chrome_menu_opened:{message:"$1 menu opened",placeholders:{1:{content:"$1"}}},chromevox_describe_checkbox_checked:{message:"$1 checkbox checked",placeholders:{1:{content:"$1"}}},chromevox_checkbox_checked_state:{message:"checked"},chromevox_checkbox_checked_state_brl:{message:"x"},chromevox_describe_checkbox_unchecked:{message:"$1, checkbox not checked",
+placeholders:{1:{content:"$1"}}},chromevox_checkbox_unchecked_state:{message:"not checked"},chromevox_checkbox_unchecked_state_brl:{message:" "},chromevox_describe_radio_selected:{message:"$1, radio button selected",placeholders:{1:{content:"$1"}}},chromevox_radio_selected_state:{message:"selected"},chromevox_radio_selected_state_brl:{message:"x"},chromevox_describe_radio_unselected:{message:"$1, radio button unselected",placeholders:{1:{content:"$1"}}},chromevox_radio_unselected_state:{message:"unselected"},
+chromevox_radio_unselected_state_brl:{message:" "},chromevox_describe_menu:{message:"$1, menu",placeholders:{1:{content:"$1"}}},chromevox_describe_menu_item:{message:"$1, menu item",placeholders:{1:{content:"$1"}}},chromevox_describe_menu_item_with_submenu:{message:"$1, menu item, with submenu",placeholders:{1:{content:"$1"}}},chromevox_describe_window:{message:"$1, window",placeholders:{1:{content:"$1"}}},chromevox_describe_textbox:{message:"$1, $2, text box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},
+chromevox_describe_unnamed_textbox:{message:"$1, text box",placeholders:{1:{content:"$1"}}},chromevox_describe_password:{message:"$1, $2, password text box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_unnamed_password:{message:"$1, password text box",placeholders:{1:{content:"$1"}}},chromevox_describe_button:{message:"$1, button",placeholders:{1:{content:"$1"}}},chromevox_describe_combobox:{message:"$1, $2, combo box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_unnamed_combobox:{message:"$1, combo box",
+placeholders:{1:{content:"$1"}}},chromevox_describe_listbox:{message:"$1, $2, list box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_unnamed_listbox:{message:"$1, list box",placeholders:{1:{content:"$1"}}},chromevox_describe_link:{message:"$1, link",placeholders:{1:{content:"$1"}}},chromevox_describe_tab:{message:"$1, tab",placeholders:{1:{content:"$1"}}},chromevox_describe_slider:{message:"$1, $2, slider",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_selected:{message:", selected"},
+chromevox_describe_unselected:{message:", unselected"},chromevox_describe_index:{message:" $1 of $2 ",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_announce_rate:{message:"Rate $1 percent",placeholders:{1:{content:"$1"}}},chromevox_announce_pitch:{message:"Pitch $1 percent",placeholders:{1:{content:"$1"}}},chromevox_announce_volume:{message:"Volume $1 percent",placeholders:{1:{content:"$1"}}},chromevox_exiting_dialog:{message:"Exited dialog."},chromevox_exited_container:{message:"Exited $1.",
+placeholders:{1:{content:"$1"}}},chromevox_entering_dialog:{message:"Entered dialog"},chromevox_live_regions_removed:{message:"removed:"},chromevox_sticky_mode_enabled:{message:"Sticky mode enabled"},chromevox_sticky_mode_disabled:{message:"Sticky mode disabled"},chromevox_keyboard_help_intro:{message:"Keyboard Help"},chromevox_context_menu_intro:{message:"Context Menu"},chromevox_choice_widget_name:{message:"$1 list.",placeholders:{1:{content:"$1"}}},chromevox_choice_widget_help:{message:"Use up and down arrow keys to browse, or type to search."},
+chromevox_choice_widget_exited:{message:"Exited"},chromevox_choice_widget_type_generic:{message:" "},chromevox_end_of_cell:{message:"End of cell."},chromevox_no_url_found:{message:"No URL found"},chromevox_leaving_table:{message:"Leaving table."},chromevox_leaving_grid:{message:"Leaving grid."},chromevox_inside_table:{message:"Inside table"},chromevox_no_tables:{message:"No table found."},chromevox_not_inside_table:{message:"Not inside table."},chromevox_no_cell_below:{message:"No cell below."},chromevox_no_cell_above:{message:"No cell above."},
+chromevox_no_cell_right:{message:"No cell right."},chromevox_no_cell_left:{message:"No cell left."},chromevox_empty_cell:{message:"Empty cell."},chromevox_spanned:{message:"Spanned."},chromevox_row_header:{message:"Row header:"},chromevox_empty_row_header:{message:"Empty row header"},chromevox_column_header:{message:"Column header:"},chromevox_empty_column_header:{message:"Empty column header"},chromevox_no_headers:{message:"No headers"},chromevox_empty_headers:{message:"Empty headers"},chromevox_table_location:{message:"Row $1 of $2, Column $3 of $4",
+placeholders:{1:{content:"$1"},2:{content:"$2"},3:{content:"$3"},4:{content:"$4"}}},chromevox_no_next_checkbox:{message:"No next checkbox."},chromevox_no_previous_checkbox:{message:"No previous checkbox."},chromevox_no_next_edit_text:{message:"No next editable text field."},chromevox_no_previous_edit_text:{message:"No previous editable text field."},chromevox_no_next_heading:{message:"No next heading."},chromevox_no_previous_heading:{message:"No previous heading."},chromevox_no_next_heading_1:{message:"No next level 1 heading."},
+chromevox_no_previous_heading_1:{message:"No previous level 1 heading."},chromevox_no_next_heading_2:{message:"No next level 2 heading."},chromevox_no_previous_heading_2:{message:"No previous level 2 heading."},chromevox_no_next_heading_3:{message:"No next level 3 heading."},chromevox_no_previous_heading_3:{message:"No previous level 3 heading."},chromevox_no_next_heading_4:{message:"No next level 4 heading."},chromevox_no_previous_heading_4:{message:"No previous level 4 heading."},chromevox_no_next_heading_5:{message:"No next level 5 heading."},
+chromevox_no_previous_heading_5:{message:"No previous level 5 heading."},chromevox_no_next_heading_6:{message:"No next level 6 heading."},chromevox_no_previous_heading_6:{message:"No previous level 6 heading."},chromevox_no_next_not_link:{message:"No next item that isn't a link."},chromevox_no_previous_not_link:{message:"No previous item that isn't a link."},chromevox_no_next_anchor:{message:"No next anchor."},chromevox_no_previous_anchor:{message:"No previous anchor."},chromevox_no_next_link:{message:"No next link."},
+chromevox_no_previous_link:{message:"No previous link."},chromevox_no_next_table:{message:"No next table."},chromevox_no_previous_table:{message:"No previous table."},chromevox_no_next_visited_link:{message:"No next visited link."},chromevox_no_previous_visited_link:{message:"No previous visited link."},chromevox_no_next_math:{message:"No next math expression."},chromevox_no_previous_math:{message:"No previous math expression."},chromevox_no_next_media_widget:{message:"No next media widget."},chromevox_no_previous_media_widget:{message:"No previous media widget."},
+chromevox_no_next_list:{message:"No next list."},chromevox_no_previous_list:{message:"No previous list."},chromevox_no_next_list_item:{message:"No next list item."},chromevox_no_previous_list_item:{message:"No previous list item."},chromevox_no_next_blockquote:{message:"No next blockquote."},chromevox_no_previous_blockquote:{message:"No previous blockquote."},chromevox_no_next_form_field:{message:"No next form field."},chromevox_no_previous_form_field:{message:"No previous form field."},chromevox_no_next_jump:{message:"No next jump point."},
+chromevox_no_previous_jump:{message:"No previous jump point."},chromevox_no_next_landmark:{message:"No next ARIA landmark."},chromevox_no_previous_landmark:{message:"No previous ARIA landmark."},chromevox_no_next_combo_box:{message:"No next combo box."},chromevox_no_previous_combo_box:{message:"No previous combo box."},chromevox_no_next_button:{message:"No next button."},chromevox_no_previous_button:{message:"No previous button."},chromevox_no_next_graphic:{message:"No next graphic."},chromevox_no_previous_graphic:{message:"No previous graphic."},
+chromevox_no_next_slider:{message:"No next slider."},chromevox_no_previous_slider:{message:"No previous slider."},chromevox_no_next_radio_button:{message:"No next radio button."},chromevox_no_previous_radio_button:{message:"No previous radio button."},chromevox_no_next_section:{message:"No next section."},chromevox_no_previous_section:{message:"No previous section."},chromevox_no_next_control:{message:"No next control."},chromevox_no_previous_control:{message:"No previous control."},chromevox_element_clicked:{message:"Clicked"},
+chromevox_element_double_clicked:{message:"double clicked"},chromevox_powerkey_no_headings:{message:"No headings."},chromevox_powerkey_no_links:{message:"No links."},chromevox_powerkey_no_forms:{message:"No forms."},chromevox_powerkey_no_tables:{message:"No tables."},chromevox_powerkey_no_landmarks:{message:"No ARIA landmarks."},chromevox_powerkey_no_jumps:{message:"No jumps."},chromevox_list_position:{message:"$1 of $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_list_position_brl:{message:"$1/$2",
+placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_aria_has_submenu:{message:"has submenu"},chromevox_aria_has_submenu_brl:{message:"+submnu"},chromevox_aria_has_popup:{message:"has pop up"},chromevox_aria_has_popup_brl:{message:"+popup"},chromevox_aria_value_min:{message:"Min $1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_min_brl:{message:"min:$1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_max:{message:"Max $1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_max_brl:{message:"max:$1",
+placeholders:{1:{content:"$1"}}},chromevox_aria_value_now:{message:"$1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_now_brl:{message:"$1",placeholders:{1:{content:"$1"}}},chromevox_aria_role_alert:{message:"Alert"},chromevox_aria_role_alert_brl:{message:"alrt"},chromevox_aria_role_alertdialog:{message:"Alert dialog"},chromevox_aria_role_alertdialog_brl:{message:"alrt dlg"},chromevox_aria_role_button:{message:"Button"},chromevox_aria_role_button_brl:{message:"btn"},chromevox_aria_role_checkbox:{message:"Check box"},
+chromevox_aria_role_checkbox_brl:{message:"chx"},chromevox_aria_role_combobox:{message:"Combo box"},chromevox_aria_role_combobox_brl:{message:"cbx"},chromevox_aria_role_dialog:{message:"Dialog"},chromevox_aria_role_dialog_brl:{message:"dlg"},chromevox_aria_role_grid:{message:"Grid"},chromevox_aria_role_grid_brl:{message:"grd"},chromevox_aria_role_gridcell:{message:"Cell"},chromevox_aria_role_gridcell_brl:{message:"cl"},chromevox_aria_role_gridcell_pos:{message:"row $1 column $2",placeholders:{1:{content:"$1"},
+2:{content:"$2"}}},chromevox_aria_role_link:{message:"Link"},chromevox_aria_role_link_brl:{message:"lnk"},chromevox_aria_role_link_singular:{message:"1 link"},chromevox_aria_role_link_plural:{message:"$1 links",placeholders:{1:{content:"$1"}}},chromevox_aria_role_listbox:{message:"List box"},chromevox_aria_role_listbox_brl:{message:"lstbx"},chromevox_aria_role_log:{message:"Log"},chromevox_aria_role_log_brl:{message:"log"},chromevox_aria_role_marquee:{message:"Marquee"},chromevox_aria_role_marquee_brl:{message:"maqe"},
+chromevox_aria_role_menu:{message:"Menu"},chromevox_aria_role_menu_brl:{message:"mnu"},chromevox_aria_role_menubar:{message:"Menu bar"},chromevox_aria_role_menubar_brl:{message:"mnu br"},chromevox_aria_role_menuitem:{message:"Menu item"},chromevox_aria_role_menuitem_brl:{message:"mnu itm"},chromevox_aria_role_menuitemcheckbox:{message:"Menu item check box"},chromevox_aria_role_menuitemcheckbox_brl:{message:"mnu itm chx"},chromevox_aria_role_menuitemradio:{message:"Menu item radio button"},chromevox_aria_role_menuitemradio_brl:{message:"mnu itm rd"},
+chromevox_aria_role_option:{message:" "},chromevox_aria_role_option_brl:{message:" "},chromevox_aria_role_popup_button:{message:"Pop-up button"},chromevox_aria_role_popup_button_brl:{message:"pup btn"},chromevox_aria_role_progressbar:{message:"Progress bar"},chromevox_aria_role_progressbar_brl:{message:"prog br"},chromevox_aria_role_radio:{message:"Radio button"},chromevox_aria_role_radio_brl:{message:"rd"},chromevox_aria_role_radiogroup:{message:"Radio button group"},chromevox_aria_role_radiogroup_brl:{message:"rd grp"},
+chromevox_aria_role_scrollbar:{message:"Scroll bar"},chromevox_aria_role_scrollbar_brl:{message:"scr br"},chromevox_aria_role_slider:{message:"Slider"},chromevox_aria_role_slider_brl:{message:"slr"},chromevox_aria_role_spinbutton:{message:"Spin button"},chromevox_aria_role_spinbutton_brl:{message:"spn btn"},chromevox_aria_role_status:{message:"Status"},chromevox_aria_role_status_brl:{message:"sts"},chromevox_aria_role_tab:{message:"Tab"},chromevox_aria_role_tab_brl:{message:"tab"},chromevox_aria_role_tabpanel:{message:"Tab panel"},
+chromevox_aria_role_tabpanel_brl:{message:"tab pnl"},chromevox_aria_role_textbox:{message:"Text box"},chromevox_aria_role_textbox_brl:{message:"txtbx"},chromevox_aria_role_timer:{message:"Timer"},chromevox_aria_role_timer_brl:{message:"tmr"},chromevox_aria_role_toolbar:{message:"Tool bar"},chromevox_aria_role_toolbar_brl:{message:"tl br"},chromevox_aria_role_tooltip:{message:"Tool tip"},chromevox_aria_role_tooltip_brl:{message:"tl tp"},chromevox_aria_role_treeitem:{message:"Tree item"},chromevox_aria_role_treeitem_brl:{message:"tr itm"},
+chromevox_aria_role_article:{message:"Article"},chromevox_aria_role_article_brl:{message:"acl"},chromevox_aria_role_application:{message:"Application"},chromevox_aria_role_application_brl:{message:"app"},chromevox_aria_role_banner:{message:"Banner"},chromevox_aria_role_banner_brl:{message:"bnr"},chromevox_aria_role_columnheader:{message:"Column header"},chromevox_aria_role_columnheader_brl:{message:"clm hd"},chromevox_aria_role_complementary:{message:"Complementary"},chromevox_aria_role_complementary_brl:{message:"cmpy"},
+chromevox_aria_role_contentinfo:{message:"Content info"},chromevox_aria_role_contentinfo_brl:{message:"cnt in"},chromevox_aria_role_definition:{message:"Definition"},chromevox_aria_role_definition_brl:{message:"def"},chromevox_aria_role_directory:{message:"Directory"},chromevox_aria_role_directory_brl:{message:"dir"},chromevox_aria_role_document:{message:"Document"},chromevox_aria_role_document_brl:{message:"doc"},chromevox_aria_role_form:{message:"Form"},chromevox_aria_role_form_brl:{message:"frm"},
+chromevox_aria_role_form_singular:{message:"1 form"},chromevox_aria_role_form_plural:{message:"$1 forms",placeholders:{1:{content:"$1"}}},chromevox_aria_role_group:{message:"Group"},chromevox_aria_role_group_brl:{message:"grp"},chromevox_aria_role_heading:{message:"Heading"},chromevox_aria_role_heading_brl:{message:"hd"},chromevox_aria_role_img:{message:"Image"},chromevox_aria_role_img_brl:{message:"img"},chromevox_aria_role_list:{message:"List"},chromevox_aria_role_list_brl:{message:"lst"},chromevox_aria_role_listitem:{message:"List item"},
+chromevox_aria_role_listitem_brl:{message:"lstitm"},chromevox_aria_role_main:{message:"Main"},chromevox_aria_role_main_brl:{message:"main"},chromevox_aria_role_math:{message:"Math"},chromevox_aria_role_math_brl:{message:"math"},chromevox_aria_role_navigation:{message:"Navigation"},chromevox_aria_role_navigation_brl:{message:"nav"},chromevox_aria_role_note:{message:"Note"},chromevox_aria_role_note_brl:{message:"note"},chromevox_aria_role_region:{message:"Region"},chromevox_aria_role_region_brl:{message:"rgn"},
+chromevox_aria_role_rowheader:{message:"Row header"},chromevox_aria_role_rowheader_brl:{message:"rw hd"},chromevox_aria_role_search:{message:"Search"},chromevox_aria_role_search_brl:{message:"srch"},chromevox_aria_role_separator:{message:"Separator"},chromevox_aria_role_separator_brl:{message:"sprtr"},chromevox_aria_autocomplete_inline:{message:"Autocompletion inline"},chromevox_aria_autocomplete_inline_brl:{message:"autocomplete"},chromevox_aria_autocomplete_list:{message:"Autocompletion list"},
+chromevox_aria_autocomplete_list_brl:{message:"autocomplete lst"},chromevox_aria_autocomplete_both:{message:"Autocompletion inline and list"},chromevox_aria_autocomplete_both_brl:{message:"autocomplete lst"},chromevox_aria_checked_true:{message:"Checked"},chromevox_aria_checked_true_brl:{message:"x"},chromevox_aria_checked_false:{message:"Not checked"},chromevox_aria_checked_false_brl:{message:" "},chromevox_aria_checked_mixed:{message:"Partially checked"},chromevox_aria_checked_mixed_brl:{message:"/x"},
+chromevox_aria_disabled_true:{message:"Disabled"},chromevox_aria_disabled_true_brl:{message:"="},chromevox_aria_expanded_true:{message:"Expanded"},chromevox_aria_expanded_true_brl:{message:">"},chromevox_aria_expanded_false:{message:"Collapsed"},chromevox_aria_expanded_false_brl:{message:"<"},chromevox_aria_invalid_true:{message:"Invalid input"},chromevox_aria_invalid_true_brl:{message:"!"},chromevox_aria_invalid_grammar:{message:"Grammatical mistake detected"},chromevox_aria_invalid_grammar_brl:{message:"Grammatical mistake detected"},
+chromevox_aria_invalid_spelling:{message:"Spelling mistake detected"},chromevox_aria_invalid_spelling_brl:{message:"misspelled"},chromevox_aria_multiline_true:{message:"Multi line"},chromevox_aria_multiline_true_brl:{message:"mult ln"},chromevox_aria_multiselectable_true:{message:"Multi select"},chromevox_aria_multiselectable_true_brl:{message:"mult sel"},chromevox_aria_pressed_true:{message:"Pressed"},chromevox_aria_pressed_true_brl:{message:"x"},chromevox_aria_pressed_false:{message:"Not pressed"},
+chromevox_aria_pressed_false_brl:{message:" "},chromevox_aria_pressed_mixed:{message:"Partially pressed"},chromevox_aria_pressed_mixed_brl:{message:"/x"},chromevox_aria_readonly_true:{message:"Read only"},chromevox_aria_readonly_true_brl:{message:"rdonly"},chromevox_aria_required_true:{message:"Required"},chromevox_aria_required_true_brl:{message:"req"},chromevox_aria_selected_true:{message:"Selected"},chromevox_aria_selected_true_brl:{message:"x"},chromevox_aria_selected_false:{message:"Not selected"},
+chromevox_aria_selected_false_brl:{message:" "},chromevox_tag_link:{message:"Link"},chromevox_tag_link_brl:{message:"lnk"},chromevox_tag_button:{message:"Button"},chromevox_tag_button_brl:{message:"btn"},chromevox_tag_h1:{message:"Heading 1"},chromevox_tag_h1_brl:{message:"h1"},chromevox_tag_h2:{message:"Heading 2"},chromevox_tag_h2_brl:{message:"h2"},chromevox_tag_h3:{message:"Heading 3"},chromevox_tag_h3_brl:{message:"h3"},chromevox_tag_h4:{message:"Heading 4"},chromevox_tag_h4_brl:{message:"h4"},
+chromevox_tag_h5:{message:"Heading 5"},chromevox_tag_h5_brl:{message:"h5"},chromevox_tag_h6:{message:"Heading 6"},chromevox_tag_h6_brl:{message:"h6"},chromevox_tag_li:{message:"List item"},chromevox_tag_li_brl:{message:"lstitm"},chromevox_tag_ol:{message:"Ordered List"},chromevox_tag_ol_brl:{message:"lst"},chromevox_tag_select:{message:"Combo box"},chromevox_tag_select_brl:{message:"cbx"},chromevox_tag_textarea:{message:"Text area"},chromevox_tag_textarea_brl:{message:"txta"},chromevox_tag_table:{message:"table"},
+chromevox_tag_table_brl:{message:"tbl"},chromevox_tag_ul:{message:"List"},chromevox_tag_ul_brl:{message:"lst"},chromevox_tag_section:{message:"Section"},chromevox_tag_section_brl:{message:"stn"},chromevox_tag_nav:{message:"Navigation"},chromevox_tag_nav_brl:{message:"nav"},chromevox_tag_article:{message:"Article"},chromevox_tag_article_brl:{message:"article"},chromevox_tag_aside:{message:"Aside"},chromevox_tag_aside_brl:{message:"aside"},chromevox_tag_hgroup:{message:"Heading group"},chromevox_tag_hgroup_brl:{message:"hgrp"},
+chromevox_tag_header:{message:"Header"},chromevox_tag_header_brl:{message:"hdr"},chromevox_tag_footer:{message:"Footer"},chromevox_tag_footer_brl:{message:"ftr"},chromevox_tag_time:{message:"Time"},chromevox_tag_time_brl:{message:" "},chromevox_tag_mark:{message:"Mark"},chromevox_tag_mark_brl:{message:"mark"},chromevox_tag_video:{message:"Video"},chromevox_tag_video_brl:{message:"video"},chromevox_tag_audio:{message:"Audio"},chromevox_tag_audio_brl:{message:"audio"},chromevox_input_type_button:{message:"Button"},
+chromevox_input_type_button_brl:{message:"btn"},chromevox_input_type_checkbox:{message:"Check box"},chromevox_input_type_checkbox_brl:{message:"chx"},chromevox_input_type_color:{message:"Color picker"},chromevox_input_type_color_brl:{message:"color picker"},chromevox_input_type_datetime:{message:"Date time control"},chromevox_input_type_datetime_brl:{message:"date time"},chromevox_input_type_datetime_local:{message:"Date time control"},chromevox_input_type_datetime_local_brl:{message:"date time"},
+chromevox_input_type_date:{message:"Date control"},chromevox_input_type_date_brl:{message:"date"},chromevox_input_type_email:{message:"Edit text, email entry"},chromevox_input_type_email_brl:{message:"edtxt email"},chromevox_input_type_file:{message:"File selection"},chromevox_input_type_file_brl:{message:"file"},chromevox_input_type_image:{message:"Button"},chromevox_input_type_image_brl:{message:"btn"},chromevox_input_type_month:{message:"Month control"},chromevox_input_type_month_brl:{message:"month"},
+chromevox_input_type_number:{message:"Edit text numeric only"},chromevox_input_type_number_brl:{message:"edtxt#"},chromevox_input_type_password:{message:"Password edit text"},chromevox_input_type_password_brl:{message:"pwd edtxt"},chromevox_input_type_radio:{message:"Radio button"},chromevox_input_type_radio_brl:{message:"rd btn"},chromevox_input_type_range:{message:"Slider"},chromevox_input_type_range_brl:{message:"slr"},chromevox_input_type_reset:{message:"Reset"},chromevox_input_type_reset_brl:{message:"reset"},
+chromevox_input_type_search:{message:"Edit text, search entry"},chromevox_input_type_search_brl:{message:"search edtxt"},chromevox_input_type_submit:{message:"Button"},chromevox_input_type_submit_brl:{message:"btn"},chromevox_input_type_tel:{message:"Edit text, number entry"},chromevox_input_type_tel_brl:{message:"tele# edtxt"},chromevox_input_type_text:{message:"Edit text"},chromevox_input_type_text_brl:{message:"edtxt"},chromevox_input_type_url:{message:"Edit text, URL entry"},chromevox_input_type_url_brl:{message:"url edtxt"},
+chromevox_input_type_week:{message:"Week of the year control"},chromevox_input_type_week_brl:{message:"week"},chromevox_internal_link:{message:"Internal link"},chromevox_internal_link_brl:{message:"int lnk"},chromevox_text_box_blank:{message:"Blank"},chromevox_list_with_items:{message:"with $1 items",placeholders:{1:{content:"$1"}}},chromevox_list_with_items_brl:{message:"+$1",placeholders:{1:{content:"$1"}}},chromevox_state_percent:{message:"$1%",placeholders:{1:{content:"$1"}}},chromevox_state_percent_brl:{message:"$1%",
+placeholders:{1:{content:"$1"}}},chromevox_has_submenu:{message:"with submenu"},chromevox_has_submenu_brl:{message:"+submnu"},chromevox_has_popup:{message:"has popup"},chromevox_has_popup_brl:{message:"has popup"},chromevox_collection:{message:"$1 collection with $2 items",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_enter_key:{message:"Enter"},chromevox_space_key:{message:"Space"},chromevox_backspace_key:{message:"Backspace"},chromevox_tab_key:{message:"Tab"},chromevox_left_key:{message:"Left"},
+chromevox_up_key:{message:"Up"},chromevox_right_key:{message:"Right"},chromevox_down_key:{message:"Down"},chromevox_unknown_link:{message:"Unknown link"},chromevox_toggle_chromevox_active:{message:"Toggle ChromeVox active or inactive."},chromevox_chromevox_inactive:{message:"ChromeVox is now inactive."},chromevox_pause:{message:", "},chromevox_end:{message:". "},chromevox_previous_different_element:{message:"Previous different element."},chromevox_next_different_element:{message:"Next different element."},
+chromevox_previous_similar_element:{message:"Previous similar element."},chromevox_next_similar_element:{message:"Next similar element."},chromevox_no_more_similar_elements:{message:"No more similar elements."},chromevox_no_more_different_elements:{message:"No more different elements."},chromevox_index_total:{message:"$1 of $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_enter_css_space:{message:"Enter group exploration"},chromevox_enter_group_exploration:{message:"Exploring groups"},
+chromevox_pdf_header:{message:'This page contains the text automatically extracted from the PDF file <b>$1</b>. <a href="$2">Click here for the original.</a>',placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_object_strategy:{message:"Object"},chromevox_group_strategy:{message:"Group"},chromevox_table_strategy:{message:"Table"},chromevox_row_granularity:{message:"Row"},chromevox_column_granularity:{message:"Column"},chromevox_mathml_tree_granularity:{message:"Math ML Tree"},chromevox_mathml_layout_granularity:{message:"Math ML Layout"},
+chromevox_mathml_token_granularity:{message:"Math ML Token"},chromevox_mathml_leaf_granularity:{message:"Math ML Leaf"},chromevox_visual_strategy:{message:"Visual"},chromevox_custom_strategy:{message:"Custom"},chromevox_line_granularity:{message:"Line"},chromevox_sentence_granularity:{message:"Sentence"},chromevox_word_granularity:{message:"Word"},chromevox_character_granularity:{message:"Character"},chromevox_search_widget_intro:{message:"Find in page."},chromevox_search_widget_intro_help:{message:"Enter a search query."},
+chromevox_search_widget_outro:{message:"Exited find in page."},chromevox_search_widget_no_results:{message:"No more results."},chromevox_modifier_keys:{message:"Modifier Keys"},chromevox_navigation:{message:"ChromeVox Navigation"},chromevox_information:{message:"Information"},chromevox_help_commands:{message:"Help Commands"},chromevox_controlling_speech:{message:"Controlling Speech"},chromevox_overview:{message:"Overview"},chromevox_tables:{message:"Tables"},chromevox_jump_commands:{message:"Jump Commands"},
+chromevox_braille:{message:"Braille"},chromevox_developer:{message:"Developer"},chromevox_keymap_classic:{message:"Classic keymap"},chromevox_keymap_flat:{message:"Flat keymap"},chromevox_keymap_experimental:{message:"Experimental keymap"},chromevox_enable_tts_log:{message:"Enable TTS logging"},chromevox_begin_selection:{message:"Start selection"},chromevox_end_selection:{message:"End selection"},chromevox_selection_is:{message:"Selection is "},chromevox_toggle_selection:{message:"Start or end selection."},
+chromevox_copy:{message:"copy."},chromevox_cut:{message:"cut."},chromevox_paste:{message:"paste."},chromevox_selected:{message:"selected"},chromevox_unselected:{message:"unselected"},chromevox_added_to_selection:{message:"added to selection"},chromevox_removed_from_selection:{message:"removed from selection"},chromevox_then:{message:"then"},chromevox_followed_by:{message:"followed by"},chromevox_modifier_key:{message:"ChromeVox modifier"},chromevox_key_conflict:{message:"$1 is already assigned to a command.",
+placeholders:{1:{content:"$1"}}},chromevox_math_expr:{message:"Math"},chromevox_math_expr_brl:{message:"Math"},chromevox_not_inside_math:{message:"Not inside math"},chromevox_timewidget_ampm:{message:"AM PM"},chromevox_timewidget_hours:{message:"hours"},chromevox_timewidget_minutes:{message:"minutes"},chromevox_timewidget_seconds:{message:"seconds"},chromevox_timewidget_milliseconds:{message:"milliseconds"},chromevox_timewidget_am:{message:"AM"},chromevox_timewidget_pm:{message:"PM"},chromevox_datewidget_week:{message:"week"},
+chromevox_datewidget_january:{message:"January"},chromevox_datewidget_february:{message:"February"},chromevox_datewidget_march:{message:"March"},chromevox_datewidget_april:{message:"April"},chromevox_datewidget_may:{message:"May"},chromevox_datewidget_june:{message:"June"},chromevox_datewidget_july:{message:"July"},chromevox_datewidget_august:{message:"August"},chromevox_datewidget_september:{message:"September"},chromevox_datewidget_october:{message:"October"},chromevox_datewidget_november:{message:"November"},
+chromevox_datewidget_december:{message:"December"},chromevox_no_punctuation:{message:"No punctuation"},chromevox_some_punctuation:{message:"Some punctuation"},chromevox_all_punctuation:{message:"All punctuation"},chromevox_search_help_item:{message:"Press enter to accept or escape to cancel, down for next and up for previous."},chromevox_clickable:{message:"clickable"},chromevox_clickable_brl:{message:"clickable"},chromevox_previous_character:{message:"Previous Character"},chromevox_next_character:{message:"Next Character"},
+chromevox_previous_word:{message:"Previous Word"},chromevox_next_word:{message:"Next Word"},chromevox_previous_sentence:{message:"Previous Sentence"},chromevox_next_sentence:{message:"Next Sentence"},chromevox_previous_line:{message:"Previous Line"},chromevox_next_line:{message:"Next Line"},chromevox_previous_object:{message:"Previous Object"},chromevox_next_object:{message:"Next Object"},chromevox_previous_group:{message:"Previous Group"},chromevox_next_group:{message:"Next Group"},chromevox_role_landmark:{message:"Landmark"},
+chromevox_modifier_entry_error:{message:"No modifier pressed; please press and hold one or more modifiers; lift your fingers once done and you will hear the keys set. Tab to exit."},chromevox_modifier_entry_set:{message:"$1 is now the new ChromeVox modifier.",placeholders:{1:{content:"$1"}}},chromevox_keymap_reset:{message:"$1 has been reset.",placeholders:{1:{content:"$1"}}},chromevox_keymap_switch:{message:"Switched to $1.",placeholders:{1:{content:"$1"}}},chromevox_jump_to_top:{message:"Jump to the top of the page"},
+chromevox_jump_to_bottom:{message:"Jump to the bottom of the page"},chromevox_wrapped_to_top:{message:"Wrapped to top"},chromevox_wrapped_to_bottom:{message:"Wrapped to bottom"},chromevox_cycle_punctuation_echo:{message:"Cycle punctuation echo"},chromevox_cycle_typing_echo:{message:"Cycle typing echo"},chromevox_pause_all_media:{message:"Pauses all currently playing media widgets"},chromevox_open_long_desc:{message:"Open long description in a new tab"},chromevox_no_long_desc:{message:"No long description"},
+chromevox_image_with_long_desc:{message:"Image with long description"},chromevox_selected_options_value:{message:"$1 to $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_selected_options_value_brl:{message:"$1-$2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_selected_options_state:{message:"selected $1 items",placeholders:{1:{content:"$1"}}},chromevox_selected_options_state_brl:{message:"sld $1",placeholders:{1:{content:"$1"}}},chromevox_clear_page_selection:{message:"cleared selection"},
+chromevox_character_echo:{message:"character echo"},chromevox_word_echo:{message:"word echo"},chromevox_character_and_word_echo:{message:"character and word echo"},chromevox_none_echo:{message:"no typing echo"},chromevox_enter_content:{message:"enter structured content, such as tables"},chromevox_exit_content:{message:"exit structured content, such as tables"},chromevox_enter_content_say:{message:"entered $1",placeholders:{1:{content:"$1"}}},chromevox_structural_line:{message:"structural line"},chromevox_layout_line:{message:"line"},
+chromevox_toggle_line_type:{message:"Toggle line type between structural or layout"},chromevox_table_shifter:{message:"table"},chromevox_navigation_shifter:{message:"default navigation"},chromevox_math_shifter:{message:"math"},chromevox_toggle_semantics:{message:"Toggle interpretation of math expressions between structural and semantic"},chromevox_semantics_on:{message:"Semantics on"},chromevox_semantics_off:{message:"Semantics off"},chromevox_phonetic_map:{message:'{"a": "alpha", "b": "bravo", "c": "charlie", "d": "delta", "e": "echo", "f": "foxtrot", "g": "golf", "h": "hotel", "i": "india", "j": "juliet","k": "kilo", "l": "lima", "m": "mike", "n": "november", "o": "oscar","p": "papa", "q": "quebec", "r": "romeo", "s": "sierra", "t": "tango", "u": "uniform", "v": "victor", "w": "whiskey","x": "xray", "y": "yankee", "z": "zulu"}'},
+chromevox_page_has_one_alert_singular:{message:"This page has 1 alert"},chromevox_page_has_alerts_plural:{message:"This page has $1 alerts",placeholders:{1:{content:"$1"}}},chromevox_review_alerts:{message:"Press Alt+Shift+A to review alerts"},chromevox_no_next_article:{message:"No next article."},chromevox_no_previous_article:{message:"No previous article."},chromevox_chromevox_intro:{message:"ChromeVox spoken feedback is ready"},chromevox_intro_brl:{message:"ChromeVox ready"},chromevox_earcons_on:{message:"Earcons on"},
+chromevox_earcons_off:{message:"Earcons off"},chromevox_toggle_earcons:{message:"Turn sound feedback (earcons) on or off."},chromevox_speak_time_and_date:{message:"Speak the current time and date."},chromevox_mark_as_search_result_brl:{message:"S:$1",placeholders:{1:{content:"$1"}}},chromevox_text_deleted:{message:"Deleted"},chromevox_perform_default_action:{message:"Perform default action"},chromevox_visited_url:{message:"visited"},chromevox_visited_url_brl:{message:"visited"},chromevox_exclamation:{message:"{COUNT, plural, =1 {exclamation point}other {# exclamation points}}"},
+chromevox_space:{message:"{COUNT, plural, =1 {space}other {# spaces}}"},chromevox_backtick:{message:"{COUNT, plural, =1 {backtick}other {# backticks}}"},chromevox_tilde:{message:"{COUNT, plural, =1 {TILDE}other {# tildes}}"},chromevox_at:{message:"{COUNT, plural, =1 {at}other {# at signs}}"},chromevox_pound:{message:"{COUNT, plural, =1 {pound}other {# pound signs}}"},chromevox_dollar:{message:"{COUNT, plural, =1 {dollar}other {# dollar signs}}"},chromevox_percent:{message:"{COUNT, plural, =1 {percent}other {# percent signs}}"},
+chromevox_caret:{message:"{COUNT, plural, =1 {caret}other {# carets}}"},chromevox_ampersand:{message:"{COUNT, plural, =1 {ampersand}other {# ampersands}}"},chromevox_asterisk:{message:"{COUNT, plural, =1 {asterisk}other {# asterisks}}"},chromevox_open_paren:{message:"{COUNT, plural, =1 {open paren}other {# open parens}}"},chromevox_close_paren:{message:"{COUNT, plural, =1 {close paren}other {# close parens}}"},chromevox_dash:{message:"{COUNT, plural, =1 {dash}other {# dashes}}"},chromevox_underscore:{message:"{COUNT, plural, =1 {underscore}other {# underscores}}"},
+chromevox_equals:{message:"{COUNT, plural, =1 {equal}other {# equal signs}}"},chromevox_plus:{message:"{COUNT, plural, =1 {plus}other {# plus signs}}"},chromevox_left_bracket:{message:"{COUNT, plural, =1 {left bracket}other {# left brackets}}"},chromevox_right_bracket:{message:"{COUNT, plural, =1 {right bracket}other {# right brackets}}"},chromevox_left_brace:{message:"{COUNT, plural, =1 {left brace}other {# left braces}}"},chromevox_right_brace:{message:"{COUNT, plural, =1 {right brace}other {# right braces}}"},
+chromevox_pipe:{message:"{COUNT, plural, =1 {pipe}other {# vertical pipes}}"},chromevox_semicolon:{message:"{COUNT, plural, =1 {semicolon}other {# semicolons}}"},chromevox_colon:{message:"{COUNT, plural, =1 {colon}other {# colons}}"},chromevox_comma:{message:"{COUNT, plural, =1 {comma}other {# commas}}"},chromevox_dot:{message:"{COUNT, plural, =1 {dot}=3 {ellipsis}other {# dots}}"},chromevox_less_than:{message:"{COUNT, plural, =1 {less than}other {# less than signs}}"},chromevox_greater_than:{message:"{COUNT, plural, =1 {greater than}other {# greater than signs}}"},
+chromevox_slash:{message:"{COUNT, plural, =1 {slash}other {# slashes}}"},chromevox_question_mark:{message:"{COUNT, plural, =1 {question mark}other {# question marks}}"},chromevox_quote:{message:"{COUNT, plural, =1 {quote}other {# quotes}}"},chromevox_apostrophe:{message:"{COUNT, plural, =1 {apostrophe}other {# apostrophes}}"},chromevox_tab:{message:"{COUNT, plural, =1 {tab}other {# tabs}}"},chromevox_backslash:{message:"{COUNT, plural, =1 {backslash}other {# backslashes}}"},chromevox_braille_routing:{message:"Click the item under a routing key"},
+chromevox_braille_pan_left:{message:"Pan backward"},chromevox_braille_pan_right:{message:"Pan bforward"},chromevox_braille_line_up:{message:"Braille previous Line"},chromevox_braille_line_down:{message:"Braille next Line"},chromevox_braille_top:{message:"Move braille display to top of page"},chromevox_braille_bottom:{message:"Move braille display to bottom of page"},chromevox_access_key:{message:"has access key, $1",placeholders:{1:{content:"$1"}}},chromevox_locale_dict:{message:'{"ar": "Arabic","bg": "Bulgarian","ca": "Catalan","hr": "Croatian","cs": "Czech","da": "Danish","nl": "Dutch","en_CA": "English (Canada)","en_GB": "English (United Kingdom)","en_US": "English (United States)","et": "Estonian","fr": "French","fr_CA": "French (Canada)","fr_FR": "French (France)","fi": "Finnish","de": "German","de_CH": "German (Switzerland)","de_DE": "German (Germany)","el": "Greek","hi": "Hindi","hu": "Hungarian","is": "Icelandic","it": "Italian","lv": "Latvian","lt": "Lithuanian","nb": "Norwegian Bokm\u00e5l","pl": "Polish","pt": "Portuguese","ro": "Romanian","ru": "Russian","sr": "Serbian","sk": "Slovak","sl": "Slovenian","es": "Spanish","sv": "Swedish","tr": "Turkish","vi": "Vietnamese","zh": "Chinese","zh_TW": "Chinese (Traditional Han)"}'}};cvox.TestMsgs=function(){};goog.inherits(cvox.TestMsgs,cvox.AbstractMsgs);cvox.TestMsgs.prototype.getMsg=function(a,b){if(!a){var c=Error();c.message="Message id required";throw c;}c=cvox.TestMessages["chromevox_"+a];if(void 0==c)throw c=Error(),c.message="missing-msg: "+a,c;var d=c.message;if(b)for(var e=0;e<b.length;e++){var f=c.placeholders[e+1];if(!f)throw c=Error(),c.message="Bad placeholder "+e+" for message id "+a,c;f=c.placeholders[e+1].content;d=d.replace(f,b[e])}return d};
+cvox.TestMsgs.prototype.getNumber=function(a){return""+a};cvox.HostFactory.msgsConstructor=cvox.TestMsgs;cvox.ChromeVox.initDocument();
diff --git a/StoneIsland/platforms/android/assets/www/plugins/com.phonegap.plugin.mobile-accessibility/android/chromeandroidvox.js b/StoneIsland/platforms/android/assets/www/plugins/com.phonegap.plugin.mobile-accessibility/android/chromeandroidvox.js
new file mode 100644
index 00000000..8229b168
--- /dev/null
+++ b/StoneIsland/platforms/android/assets/www/plugins/com.phonegap.plugin.mobile-accessibility/android/chromeandroidvox.js
@@ -0,0 +1,1778 @@
+// Copyright 2013 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+var goog=goog||{};goog.global=this;goog.exportPath_=function(a,b,c){a=a.split(".");c=c||goog.global;a[0]in c||!c.execScript||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)a.length||void 0===b?c=c[d]?c[d]:c[d]={}:c[d]=b};goog.define=function(a,b){var c=b;goog.exportPath_(a,c)};goog.DEBUG=!1;goog.LOCALE="en";goog.TRUSTED_SITE=!0;goog.provide=function(a){goog.exportPath_(a)};
+goog.setTestOnly=function(a){if(!goog.DEBUG)throw a=a||"",Error("Importing test-only code into non-debug environment"+a?": "+a:".");};goog.getObjectByName=function(a,b){for(var c=a.split("."),d=b||goog.global,e;e=c.shift();)if(goog.isDefAndNotNull(d[e]))d=d[e];else return null;return d};goog.globalize=function(a,b){var c=b||goog.global,d;for(d in a)c[d]=a[d]};
+goog.addDependency=function(a,b,c){if(goog.DEPENDENCIES_ENABLED){var d;a=a.replace(/\\/g,"/");for(var e=goog.dependencies_,f=0;d=b[f];f++)e.nameToPath[d]=a,a in e.pathToNames||(e.pathToNames[a]={}),e.pathToNames[a][d]=!0;for(d=0;b=c[d];d++)a in e.requires||(e.requires[a]={}),e.requires[a][b]=!0}};goog.useStrictRequires=!1;goog.ENABLE_DEBUG_LOADER=!0;goog.require=function(){};goog.basePath="";goog.nullFunction=function(){};goog.identityFunction=function(a){return a};
+goog.abstractMethod=function(){throw Error("unimplemented abstract method");};goog.addSingletonGetter=function(a){a.getInstance=function(){if(a.instance_)return a.instance_;goog.DEBUG&&(goog.instantiatedSingletons_[goog.instantiatedSingletons_.length]=a);return a.instance_=new a}};goog.instantiatedSingletons_=[];goog.DEPENDENCIES_ENABLED=!1;
+goog.DEPENDENCIES_ENABLED&&(goog.included_={},goog.dependencies_={pathToNames:{},nameToPath:{},requires:{},visited:{},written:{}},goog.inHtmlDocument_=function(){var a=goog.global.document;return"undefined"!=typeof a&&"write"in a},goog.findBasePath_=function(){if(goog.global.CLOSURE_BASE_PATH)goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_())for(var a=goog.global.document,a=a.getElementsByTagName("script"),b=a.length-1;0<=b;--b){var c=a[b].src,d=c.lastIndexOf("?"),d=-1==d?
+c.length:d;if("base.js"==c.substr(d-7,7)){goog.basePath=c.substr(0,d-7);break}}},goog.importScript_=function(a){var b=goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_;!goog.dependencies_.written[a]&&b(a)&&(goog.dependencies_.written[a]=!0)},goog.writeScriptTag_=function(a){if(goog.inHtmlDocument_()){var b=goog.global.document;if("complete"==b.readyState){if(b=/\bdeps.js$/.test(a))return!1;throw Error('Cannot write "'+a+'" after document load');}b.write('<script type="text/javascript" src="'+
+a+'">\x3c/script>');return!0}return!1},goog.writeScripts_=function(){function a(e){if(!(e in d.written)){if(!(e in d.visited)&&(d.visited[e]=!0,e in d.requires))for(var g in d.requires[e])if(!goog.isProvided_(g))if(g in d.nameToPath)a(d.nameToPath[g]);else throw Error("Undefined nameToPath for "+g);e in c||(c[e]=!0,b.push(e))}}var b=[],c={},d=goog.dependencies_,e;for(e in goog.included_)d.written[e]||a(e);for(e=0;e<b.length;e++)if(b[e])goog.importScript_(goog.basePath+b[e]);else throw Error("Undefined script input");
+},goog.getPathFromDeps_=function(a){return a in goog.dependencies_.nameToPath?goog.dependencies_.nameToPath[a]:null},goog.findBasePath_(),goog.global.CLOSURE_NO_DEPS||goog.importScript_(goog.basePath+"deps.js"));
+goog.typeOf=function(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";
+else if("function"==b&&"undefined"==typeof a.call)return"object";return b};goog.isDef=function(a){return void 0!==a};goog.isNull=function(a){return null===a};goog.isDefAndNotNull=function(a){return null!=a};goog.isArray=function(a){return"array"==goog.typeOf(a)};goog.isArrayLike=function(a){var b=goog.typeOf(a);return"array"==b||"object"==b&&"number"==typeof a.length};goog.isDateLike=function(a){return goog.isObject(a)&&"function"==typeof a.getFullYear};goog.isString=function(a){return"string"==typeof a};
+goog.isBoolean=function(a){return"boolean"==typeof a};goog.isNumber=function(a){return"number"==typeof a};goog.isFunction=function(a){return"function"==goog.typeOf(a)};goog.isObject=function(a){var b=typeof a;return"object"==b&&null!=a||"function"==b};goog.getUid=function(a){return a[goog.UID_PROPERTY_]||(a[goog.UID_PROPERTY_]=++goog.uidCounter_)};goog.hasUid=function(a){return!!a[goog.UID_PROPERTY_]};goog.removeUid=function(a){"removeAttribute"in a&&a.removeAttribute(goog.UID_PROPERTY_);try{delete a[goog.UID_PROPERTY_]}catch(b){}};
+goog.UID_PROPERTY_="closure_uid_"+(1E9*Math.random()>>>0);goog.uidCounter_=0;goog.getHashCode=goog.getUid;goog.removeHashCode=goog.removeUid;goog.cloneObject=function(a){var b=goog.typeOf(a);if("object"==b||"array"==b){if(a.clone)return a.clone();var b="array"==b?[]:{},c;for(c in a)b[c]=goog.cloneObject(a[c]);return b}return a};goog.bindNative_=function(a,b,c){return a.call.apply(a.bind,arguments)};
+goog.bindJs_=function(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}};goog.bind=function(a,b,c){Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?goog.bind=goog.bindNative_:goog.bind=goog.bindJs_;return goog.bind.apply(null,arguments)};
+goog.partial=function(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var b=c.slice();b.push.apply(b,arguments);return a.apply(this,b)}};goog.mixin=function(a,b){for(var c in b)a[c]=b[c]};goog.now=goog.TRUSTED_SITE&&Date.now||function(){return+new Date};
+goog.globalEval=function(a){if(goog.global.execScript)goog.global.execScript(a,"JavaScript");else if(goog.global.eval)if(null==goog.evalWorksForGlobals_&&(goog.global.eval("var _et_ = 1;"),"undefined"!=typeof goog.global._et_?(delete goog.global._et_,goog.evalWorksForGlobals_=!0):goog.evalWorksForGlobals_=!1),goog.evalWorksForGlobals_)goog.global.eval(a);else{var b=goog.global.document,c=b.createElement("script");c.type="text/javascript";c.defer=!1;c.appendChild(b.createTextNode(a));b.body.appendChild(c);
+b.body.removeChild(c)}else throw Error("goog.globalEval not available");};goog.evalWorksForGlobals_=null;goog.getCssName=function(a,b){var c=function(a){return goog.cssNameMapping_[a]||a},d=function(a){a=a.split("-");for(var b=[],d=0;d<a.length;d++)b.push(c(a[d]));return b.join("-")},d=goog.cssNameMapping_?"BY_WHOLE"==goog.cssNameMappingStyle_?c:d:function(a){return a};return b?a+"-"+d(b):d(a)};goog.setCssNameMapping=function(a,b){goog.cssNameMapping_=a;goog.cssNameMappingStyle_=b};
+goog.getMsg=function(a,b){var c=b||{},d;for(d in c){var e=(""+c[d]).replace(/\$/g,"$$$$");a=a.replace(RegExp("\\{\\$"+d+"\\}","gi"),e)}return a};goog.getMsgWithFallback=function(a){return a};goog.exportSymbol=function(a,b,c){goog.exportPath_(a,b,c)};goog.exportProperty=function(a,b,c){a[b]=c};goog.inherits=function(a,b){function c(){}c.prototype=b.prototype;a.superClass_=b.prototype;a.prototype=new c;a.prototype.constructor=a};
+goog.base=function(a,b,c){var d=arguments.callee.caller;if(goog.DEBUG&&!d)throw Error("arguments.caller not defined. goog.base() expects not to be running in strict mode. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");if(d.superClass_)return d.superClass_.constructor.apply(a,Array.prototype.slice.call(arguments,1));for(var e=Array.prototype.slice.call(arguments,2),f=!1,g=a.constructor;g;g=g.superClass_&&g.superClass_.constructor)if(g.prototype[b]===d)f=!0;else if(f)return g.prototype[b].apply(a,
+e);if(a[b]===d)return a.constructor.prototype[b].apply(a,e);throw Error("goog.base called from a method of one name to a method of a different name");};goog.scope=function(a){a.call(goog.global)};goog.MODIFY_FUNCTION_PROTOTYPES=!0;
+goog.MODIFY_FUNCTION_PROTOTYPES&&(Function.prototype.bind=Function.prototype.bind||function(a,b){if(1<arguments.length){var c=Array.prototype.slice.call(arguments,1);c.unshift(this,a);return goog.bind.apply(null,c)}return goog.bind(this,a)},Function.prototype.partial=function(a){var b=Array.prototype.slice.call(arguments);b.unshift(this,null);return goog.bind.apply(null,b)},Function.prototype.inherits=function(a){goog.inherits(this,a)},Function.prototype.mixin=function(a){goog.mixin(this.prototype,
+a)});var cvox={VERBOSITY_VERBOSE:0,VERBOSITY_BRIEF:1,ChromeVox:function(){}};cvox.ChromeVox.host=null;cvox.ChromeVox.msgs=null;cvox.ChromeVox.isActive=!0;cvox.ChromeVox.version=null;cvox.ChromeVox.earcons=null;cvox.ChromeVox.navigationManager=null;cvox.ChromeVox.serializer=null;cvox.ChromeVox.isStickyOn=!1;cvox.ChromeVox.keyPrefixOn=!1;cvox.ChromeVox.verbosity=cvox.VERBOSITY_VERBOSE;cvox.ChromeVox.typingEcho=0;cvox.ChromeVox.keyEcho={};cvox.ChromeVox.position={};cvox.ChromeVox.isChromeOS=-1!=navigator.userAgent.indexOf("CrOS");
+cvox.ChromeVox.isMac=-1!=navigator.platform.indexOf("Mac");cvox.ChromeVox.modKeyStr=cvox.ChromeVox.isChromeOS?"Shift+Search":cvox.ChromeVox.isMac?"Ctrl+Cmd":"Ctrl+Meta";cvox.ChromeVox.sequenceSwitchKeyCodes=[];cvox.ChromeVox.visitedUrls={};cvox.ChromeVox.markInUserCommand=function(){};cvox.ChromeVox.syncToNode=function(){};cvox.ChromeVox.speakNode=function(){};cvox.ChromeVox.executeUserCommand=function(){};cvox.ChromeVox.entireDocumentIsHidden=!1;
+cvox.ChromeVox.storeOn=function(a){a.isStickyOn=cvox.ChromeVox.isStickyOn;cvox.ChromeVox.navigationManager.storeOn(a)};cvox.ChromeVox.readFrom=function(a){cvox.ChromeVox.isStickyOn=a.isStickyOn;cvox.ChromeVox.navigationManager.readFrom(a)};cvox.Cursor=function(a,b,c){this.node=a;this.index=b;this.text=c};cvox.Cursor.prototype.clone=function(){return new cvox.Cursor(this.node,this.index,this.text)};cvox.Cursor.prototype.copyFrom=function(a){this.node=a.node;this.index=a.index;this.text=a.text};cvox.Cursor.prototype.equals=function(a){return this.node==a.node&&this.index==a.index&&this.text==a.text};goog.debug={};goog.debug.Error=function(a){Error.captureStackTrace?Error.captureStackTrace(this,goog.debug.Error):this.stack=Error().stack||"";a&&(this.message=String(a))};goog.inherits(goog.debug.Error,Error);goog.debug.Error.prototype.name="CustomError";goog.dom={};goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12};goog.string={};goog.string.Unicode={NBSP:"\u00a0"};goog.string.startsWith=function(a,b){return 0==a.lastIndexOf(b,0)};goog.string.endsWith=function(a,b){var c=a.length-b.length;return 0<=c&&a.indexOf(b,c)==c};goog.string.caseInsensitiveStartsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(0,b.length))};goog.string.caseInsensitiveEndsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(a.length-b.length,b.length))};
+goog.string.caseInsensitiveEquals=function(a,b){return a.toLowerCase()==b.toLowerCase()};goog.string.subs=function(a,b){for(var c=a.split("%s"),d="",e=Array.prototype.slice.call(arguments,1);e.length&&1<c.length;)d+=c.shift()+e.shift();return d+c.join("%s")};goog.string.collapseWhitespace=function(a){return a.replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")};goog.string.isEmpty=function(a){return/^[\s\xa0]*$/.test(a)};goog.string.isEmptySafe=function(a){return goog.string.isEmpty(goog.string.makeSafe(a))};
+goog.string.isBreakingWhitespace=function(a){return!/[^\t\n\r ]/.test(a)};goog.string.isAlpha=function(a){return!/[^a-zA-Z]/.test(a)};goog.string.isNumeric=function(a){return!/[^0-9]/.test(a)};goog.string.isAlphaNumeric=function(a){return!/[^a-zA-Z0-9]/.test(a)};goog.string.isSpace=function(a){return" "==a};goog.string.isUnicodeChar=function(a){return 1==a.length&&" "<=a&&"~">=a||"\u0080"<=a&&"\ufffd">=a};goog.string.stripNewlines=function(a){return a.replace(/(\r\n|\r|\n)+/g," ")};
+goog.string.canonicalizeNewlines=function(a){return a.replace(/(\r\n|\r|\n)/g,"\n")};goog.string.normalizeWhitespace=function(a){return a.replace(/\xa0|\s/g," ")};goog.string.normalizeSpaces=function(a){return a.replace(/\xa0|[ \t]+/g," ")};goog.string.collapseBreakingSpaces=function(a){return a.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")};goog.string.trim=function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")};
+goog.string.trimLeft=function(a){return a.replace(/^[\s\xa0]+/,"")};goog.string.trimRight=function(a){return a.replace(/[\s\xa0]+$/,"")};goog.string.caseInsensitiveCompare=function(a,b){var c=String(a).toLowerCase(),d=String(b).toLowerCase();return c<d?-1:c==d?0:1};goog.string.numerateCompareRegExp_=/(\.\d+)|(\d+)|(\D+)/g;
+goog.string.numerateCompare=function(a,b){if(a==b)return 0;if(!a)return-1;if(!b)return 1;for(var c=a.toLowerCase().match(goog.string.numerateCompareRegExp_),d=b.toLowerCase().match(goog.string.numerateCompareRegExp_),e=Math.min(c.length,d.length),f=0;f<e;f++){var g=c[f],h=d[f];if(g!=h)return c=parseInt(g,10),!isNaN(c)&&(d=parseInt(h,10),!isNaN(d)&&c-d)?c-d:g<h?-1:1}return c.length!=d.length?c.length-d.length:a<b?-1:1};goog.string.urlEncode=function(a){return encodeURIComponent(String(a))};
+goog.string.urlDecode=function(a){return decodeURIComponent(a.replace(/\+/g," "))};goog.string.newLineToBr=function(a,b){return a.replace(/(\r\n|\r|\n)/g,b?"<br />":"<br>")};
+goog.string.htmlEscape=function(a,b){if(b)return a.replace(goog.string.amperRe_,"&amp;").replace(goog.string.ltRe_,"&lt;").replace(goog.string.gtRe_,"&gt;").replace(goog.string.quotRe_,"&quot;");if(!goog.string.allRe_.test(a))return a;-1!=a.indexOf("&")&&(a=a.replace(goog.string.amperRe_,"&amp;"));-1!=a.indexOf("<")&&(a=a.replace(goog.string.ltRe_,"&lt;"));-1!=a.indexOf(">")&&(a=a.replace(goog.string.gtRe_,"&gt;"));-1!=a.indexOf('"')&&(a=a.replace(goog.string.quotRe_,"&quot;"));return a};
+goog.string.amperRe_=/&/g;goog.string.ltRe_=/</g;goog.string.gtRe_=/>/g;goog.string.quotRe_=/\"/g;goog.string.allRe_=/[&<>\"]/;goog.string.unescapeEntities=function(a){return goog.string.contains(a,"&")?"document"in goog.global?goog.string.unescapeEntitiesUsingDom_(a):goog.string.unescapePureXmlEntities_(a):a};goog.string.unescapeEntitiesWithDocument=function(a,b){return goog.string.contains(a,"&")?goog.string.unescapeEntitiesUsingDom_(a,b):a};
+goog.string.unescapeEntitiesUsingDom_=function(a,b){var c={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"'},d;d=b?b.createElement("div"):document.createElement("div");return a.replace(goog.string.HTML_ENTITY_PATTERN_,function(a,b){var g=c[a];if(g)return g;if("#"==b.charAt(0)){var h=Number("0"+b.substr(1));isNaN(h)||(g=String.fromCharCode(h))}g||(d.innerHTML=a+" ",g=d.firstChild.nodeValue.slice(0,-1));return c[a]=g})};
+goog.string.unescapePureXmlEntities_=function(a){return a.replace(/&([^;]+);/g,function(a,c){switch(c){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:if("#"==c.charAt(0)){var d=Number("0"+c.substr(1));if(!isNaN(d))return String.fromCharCode(d)}return a}})};goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g;goog.string.whitespaceEscape=function(a,b){return goog.string.newLineToBr(a.replace(/ /g," &#160;"),b)};
+goog.string.stripQuotes=function(a,b){for(var c=b.length,d=0;d<c;d++){var e=1==c?b:b.charAt(d);if(a.charAt(0)==e&&a.charAt(a.length-1)==e)return a.substring(1,a.length-1)}return a};goog.string.truncate=function(a,b,c){c&&(a=goog.string.unescapeEntities(a));a.length>b&&(a=a.substring(0,b-3)+"...");c&&(a=goog.string.htmlEscape(a));return a};
+goog.string.truncateMiddle=function(a,b,c,d){c&&(a=goog.string.unescapeEntities(a));if(d&&a.length>b){d>b&&(d=b);var e=a.length-d;b-=d;a=a.substring(0,b)+"..."+a.substring(e)}else a.length>b&&(e=Math.floor(b/2),d=a.length-e,e+=b%2,a=a.substring(0,e)+"..."+a.substring(d));c&&(a=goog.string.htmlEscape(a));return a};goog.string.specialEscapeChars_={"\x00":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\x0B",'"':'\\"',"\\":"\\\\"};goog.string.jsEscapeCache_={"'":"\\'"};
+goog.string.quote=function(a){a=String(a);if(a.quote)return a.quote();for(var b=['"'],c=0;c<a.length;c++){var d=a.charAt(c),e=d.charCodeAt(0);b[c+1]=goog.string.specialEscapeChars_[d]||(31<e&&127>e?d:goog.string.escapeChar(d))}b.push('"');return b.join("")};goog.string.escapeString=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=goog.string.escapeChar(a.charAt(c));return b.join("")};
+goog.string.escapeChar=function(a){if(a in goog.string.jsEscapeCache_)return goog.string.jsEscapeCache_[a];if(a in goog.string.specialEscapeChars_)return goog.string.jsEscapeCache_[a]=goog.string.specialEscapeChars_[a];var b=a,c=a.charCodeAt(0);if(31<c&&127>c)b=a;else{if(256>c){if(b="\\x",16>c||256<c)b+="0"}else b="\\u",4096>c&&(b+="0");b+=c.toString(16).toUpperCase()}return goog.string.jsEscapeCache_[a]=b};goog.string.toMap=function(a){for(var b={},c=0;c<a.length;c++)b[a.charAt(c)]=!0;return b};
+goog.string.contains=function(a,b){return-1!=a.indexOf(b)};goog.string.countOf=function(a,b){return a&&b?a.split(b).length-1:0};goog.string.removeAt=function(a,b,c){var d=a;0<=b&&b<a.length&&0<c&&(d=a.substr(0,b)+a.substr(b+c,a.length-b-c));return d};goog.string.remove=function(a,b){var c=RegExp(goog.string.regExpEscape(b),"");return a.replace(c,"")};goog.string.removeAll=function(a,b){var c=RegExp(goog.string.regExpEscape(b),"g");return a.replace(c,"")};
+goog.string.regExpEscape=function(a){return String(a).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};goog.string.repeat=function(a,b){return Array(b+1).join(a)};goog.string.padNumber=function(a,b,c){a=goog.isDef(c)?a.toFixed(c):String(a);c=a.indexOf(".");-1==c&&(c=a.length);return goog.string.repeat("0",Math.max(0,b-c))+a};goog.string.makeSafe=function(a){return null==a?"":String(a)};goog.string.buildString=function(a){return Array.prototype.join.call(arguments,"")};
+goog.string.getRandomString=function(){var a=2147483648;return Math.floor(Math.random()*a).toString(36)+Math.abs(Math.floor(Math.random()*a)^goog.now()).toString(36)};
+goog.string.compareVersions=function(a,b){for(var c=0,d=goog.string.trim(String(a)).split("."),e=goog.string.trim(String(b)).split("."),f=Math.max(d.length,e.length),g=0;0==c&&g<f;g++){var h=d[g]||"",k=e[g]||"",l=/(\d*)(\D*)/g,m=/(\d*)(\D*)/g;do{var p=l.exec(h)||["","",""],q=m.exec(k)||["","",""];if(0==p[0].length&&0==q[0].length)break;var c=0==p[1].length?0:parseInt(p[1],10),n=0==q[1].length?0:parseInt(q[1],10),c=goog.string.compareElements_(c,n)||goog.string.compareElements_(0==p[2].length,0==q[2].length)||
+goog.string.compareElements_(p[2],q[2])}while(0==c)}return c};goog.string.compareElements_=function(a,b){return a<b?-1:a>b?1:0};goog.string.HASHCODE_MAX_=4294967296;goog.string.hashCode=function(a){for(var b=0,c=0;c<a.length;++c)b=31*b+a.charCodeAt(c),b%=goog.string.HASHCODE_MAX_;return b};goog.string.uniqueStringCounter_=2147483648*Math.random()|0;goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++};
+goog.string.toNumber=function(a){var b=Number(a);return 0==b&&goog.string.isEmpty(a)?NaN:b};goog.string.isLowerCamelCase=function(a){return/^[a-z]+([A-Z][a-z]*)*$/.test(a)};goog.string.isUpperCamelCase=function(a){return/^([A-Z][a-z]*)+$/.test(a)};goog.string.toCamelCase=function(a){return String(a).replace(/\-([a-z])/g,function(a,c){return c.toUpperCase()})};goog.string.toSelectorCase=function(a){return String(a).replace(/([A-Z])/g,"-$1").toLowerCase()};
+goog.string.toTitleCase=function(a,b){var c=goog.isString(b)?goog.string.regExpEscape(b):"\\s",c=c?"|["+c+"]+":"",c=RegExp("(^"+c+")([a-z])","g");return a.replace(c,function(a,b,c){return b+c.toUpperCase()})};goog.string.parseInt=function(a){isFinite(a)&&(a=String(a));return goog.isString(a)?/^\s*-?0x/i.test(a)?parseInt(a,16):parseInt(a,10):NaN};goog.string.splitLimit=function(a,b,c){a=a.split(b);for(var d=[];0<c&&a.length;)d.push(a.shift()),c--;a.length&&d.push(a.join(b));return d};goog.asserts={};goog.asserts.ENABLE_ASSERTS=goog.DEBUG;goog.asserts.AssertionError=function(a,b){b.unshift(a);goog.debug.Error.call(this,goog.string.subs.apply(null,b));b.shift()};goog.inherits(goog.asserts.AssertionError,goog.debug.Error);goog.asserts.AssertionError.prototype.name="AssertionError";goog.asserts.doAssertFailure_=function(a,b,c,d){var e="Assertion failed";if(c)var e=e+(": "+c),f=d;else a&&(e+=": "+a,f=b);throw new goog.asserts.AssertionError(""+e,f||[]);};
+goog.asserts.assert=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!a&&goog.asserts.doAssertFailure_("",null,b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.fail=function(a,b){if(goog.asserts.ENABLE_ASSERTS)throw new goog.asserts.AssertionError("Failure"+(a?": "+a:""),Array.prototype.slice.call(arguments,1));};
+goog.asserts.assertNumber=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isNumber(a)&&goog.asserts.doAssertFailure_("Expected number but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertString=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isString(a)&&goog.asserts.doAssertFailure_("Expected string but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};
+goog.asserts.assertFunction=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isFunction(a)&&goog.asserts.doAssertFailure_("Expected function but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertObject=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isObject(a)&&goog.asserts.doAssertFailure_("Expected object but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};
+goog.asserts.assertArray=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isArray(a)&&goog.asserts.doAssertFailure_("Expected array but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertBoolean=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isBoolean(a)&&goog.asserts.doAssertFailure_("Expected boolean but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};
+goog.asserts.assertElement=function(a,b,c){!goog.asserts.ENABLE_ASSERTS||goog.isObject(a)&&a.nodeType==goog.dom.NodeType.ELEMENT||goog.asserts.doAssertFailure_("Expected Element but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertInstanceof=function(a,b,c,d){!goog.asserts.ENABLE_ASSERTS||a instanceof b||goog.asserts.doAssertFailure_("instanceof check failed.",null,c,Array.prototype.slice.call(arguments,3));return a};
+goog.asserts.assertObjectPrototypeIsIntact=function(){for(var a in Object.prototype)goog.asserts.fail(a+" should not be enumerable in Object.prototype.")};goog.array={};goog.NATIVE_ARRAY_PROTOTYPES=goog.TRUSTED_SITE;goog.array.peek=function(a){return a[a.length-1]};goog.array.ARRAY_PROTOTYPE_=Array.prototype;
+goog.array.indexOf=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.indexOf?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.indexOf.call(a,b,c)}:function(a,b,c){c=null==c?0:0>c?Math.max(0,a.length+c):c;if(goog.isString(a))return goog.isString(b)&&1==b.length?a.indexOf(b,c):-1;for(;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1};
+goog.array.lastIndexOf=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.lastIndexOf?function(a,b,c){goog.asserts.assert(null!=a.length);c=null==c?a.length-1:c;return goog.array.ARRAY_PROTOTYPE_.lastIndexOf.call(a,b,c)}:function(a,b,c){c=null==c?a.length-1:c;0>c&&(c=Math.max(0,a.length+c));if(goog.isString(a))return goog.isString(b)&&1==b.length?a.lastIndexOf(b,c):-1;for(;0<=c;c--)if(c in a&&a[c]===b)return c;return-1};
+goog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.forEach?function(a,b,c){goog.asserts.assert(null!=a.length);goog.array.ARRAY_PROTOTYPE_.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)f in e&&b.call(c,e[f],f,a)};goog.array.forEachRight=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,d=d-1;0<=d;--d)d in e&&b.call(c,e[d],d,a)};
+goog.array.filter=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.filter?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.filter.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=[],f=0,g=goog.isString(a)?a.split(""):a,h=0;h<d;h++)if(h in g){var k=g[h];b.call(c,k,h,a)&&(e[f++]=k)}return e};
+goog.array.map=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.map?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.map.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=Array(d),f=goog.isString(a)?a.split(""):a,g=0;g<d;g++)g in f&&(e[g]=b.call(c,f[g],g,a));return e};
+goog.array.reduce=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.reduce?function(a,b,c,d){goog.asserts.assert(null!=a.length);d&&(b=goog.bind(b,d));return goog.array.ARRAY_PROTOTYPE_.reduce.call(a,b,c)}:function(a,b,c,d){var e=c;goog.array.forEach(a,function(c,g){e=b.call(d,e,c,g,a)});return e};
+goog.array.reduceRight=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.reduceRight?function(a,b,c,d){goog.asserts.assert(null!=a.length);d&&(b=goog.bind(b,d));return goog.array.ARRAY_PROTOTYPE_.reduceRight.call(a,b,c)}:function(a,b,c,d){var e=c;goog.array.forEachRight(a,function(c,g){e=b.call(d,e,c,g,a)});return e};
+goog.array.some=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.some?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.some.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return!0;return!1};
+goog.array.every=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.every?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.every.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&!b.call(c,e[f],f,a))return!1;return!0};goog.array.count=function(a,b,c){var d=0;goog.array.forEach(a,function(a,f,g){b.call(c,a,f,g)&&++d},c);return d};
+goog.array.find=function(a,b,c){b=goog.array.findIndex(a,b,c);return 0>b?null:goog.isString(a)?a.charAt(b):a[b]};goog.array.findIndex=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return f;return-1};goog.array.findRight=function(a,b,c){b=goog.array.findIndexRight(a,b,c);return 0>b?null:goog.isString(a)?a.charAt(b):a[b]};
+goog.array.findIndexRight=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,d=d-1;0<=d;d--)if(d in e&&b.call(c,e[d],d,a))return d;return-1};goog.array.contains=function(a,b){return 0<=goog.array.indexOf(a,b)};goog.array.isEmpty=function(a){return 0==a.length};goog.array.clear=function(a){if(!goog.isArray(a))for(var b=a.length-1;0<=b;b--)delete a[b];a.length=0};goog.array.insert=function(a,b){goog.array.contains(a,b)||a.push(b)};
+goog.array.insertAt=function(a,b,c){goog.array.splice(a,c,0,b)};goog.array.insertArrayAt=function(a,b,c){goog.partial(goog.array.splice,a,c,0).apply(null,b)};goog.array.insertBefore=function(a,b,c){var d;2==arguments.length||0>(d=goog.array.indexOf(a,c))?a.push(b):goog.array.insertAt(a,b,d)};goog.array.remove=function(a,b){var c=goog.array.indexOf(a,b),d;(d=0<=c)&&goog.array.removeAt(a,c);return d};
+goog.array.removeAt=function(a,b){goog.asserts.assert(null!=a.length);return 1==goog.array.ARRAY_PROTOTYPE_.splice.call(a,b,1).length};goog.array.removeIf=function(a,b,c){b=goog.array.findIndex(a,b,c);return 0<=b?(goog.array.removeAt(a,b),!0):!1};goog.array.concat=function(a){return goog.array.ARRAY_PROTOTYPE_.concat.apply(goog.array.ARRAY_PROTOTYPE_,arguments)};goog.array.toArray=function(a){var b=a.length;if(0<b){for(var c=Array(b),d=0;d<b;d++)c[d]=a[d];return c}return[]};goog.array.clone=goog.array.toArray;
+goog.array.extend=function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c],e;if(goog.isArray(d)||(e=goog.isArrayLike(d))&&Object.prototype.hasOwnProperty.call(d,"callee"))a.push.apply(a,d);else if(e)for(var f=a.length,g=d.length,h=0;h<g;h++)a[f+h]=d[h];else a.push(d)}};goog.array.splice=function(a,b,c,d){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.splice.apply(a,goog.array.slice(arguments,1))};
+goog.array.slice=function(a,b,c){goog.asserts.assert(null!=a.length);return 2>=arguments.length?goog.array.ARRAY_PROTOTYPE_.slice.call(a,b):goog.array.ARRAY_PROTOTYPE_.slice.call(a,b,c)};goog.array.removeDuplicates=function(a,b,c){b=b||a;var d=function(){return goog.isObject(g)?"o"+goog.getUid(g):(typeof g).charAt(0)+g};c=c||d;for(var d={},e=0,f=0;f<a.length;){var g=a[f++],h=c(g);Object.prototype.hasOwnProperty.call(d,h)||(d[h]=!0,b[e++]=g)}b.length=e};
+goog.array.binarySearch=function(a,b,c){return goog.array.binarySearch_(a,c||goog.array.defaultCompare,!1,b)};goog.array.binarySelect=function(a,b,c){return goog.array.binarySearch_(a,b,!0,void 0,c)};goog.array.binarySearch_=function(a,b,c,d,e){for(var f=0,g=a.length,h;f<g;){var k=f+g>>1,l;l=c?b.call(e,a[k],k,a):b(d,a[k]);0<l?f=k+1:(g=k,h=!l)}return h?f:~f};goog.array.sort=function(a,b){goog.asserts.assert(null!=a.length);goog.array.ARRAY_PROTOTYPE_.sort.call(a,b||goog.array.defaultCompare)};
+goog.array.stableSort=function(a,b){function c(a,b){return e(a.value,b.value)||a.index-b.index}for(var d=0;d<a.length;d++)a[d]={index:d,value:a[d]};var e=b||goog.array.defaultCompare;goog.array.sort(a,c);for(d=0;d<a.length;d++)a[d]=a[d].value};goog.array.sortObjectsByKey=function(a,b,c){var d=c||goog.array.defaultCompare;goog.array.sort(a,function(a,c){return d(a[b],c[b])})};
+goog.array.isSorted=function(a,b,c){b=b||goog.array.defaultCompare;for(var d=1;d<a.length;d++){var e=b(a[d-1],a[d]);if(0<e||0==e&&c)return!1}return!0};goog.array.equals=function(a,b,c){if(!goog.isArrayLike(a)||!goog.isArrayLike(b)||a.length!=b.length)return!1;var d=a.length;c=c||goog.array.defaultCompareEquality;for(var e=0;e<d;e++)if(!c(a[e],b[e]))return!1;return!0};goog.array.compare=function(a,b,c){return goog.array.equals(a,b,c)};
+goog.array.compare3=function(a,b,c){c=c||goog.array.defaultCompare;for(var d=Math.min(a.length,b.length),e=0;e<d;e++){var f=c(a[e],b[e]);if(0!=f)return f}return goog.array.defaultCompare(a.length,b.length)};goog.array.defaultCompare=function(a,b){return a>b?1:a<b?-1:0};goog.array.defaultCompareEquality=function(a,b){return a===b};goog.array.binaryInsert=function(a,b,c){c=goog.array.binarySearch(a,b,c);return 0>c?(goog.array.insertAt(a,b,-(c+1)),!0):!1};
+goog.array.binaryRemove=function(a,b,c){b=goog.array.binarySearch(a,b,c);return 0<=b?goog.array.removeAt(a,b):!1};goog.array.bucket=function(a,b,c){for(var d={},e=0;e<a.length;e++){var f=a[e],g=b.call(c,f,e,a);goog.isDef(g)&&(g=d[g]||(d[g]=[]),g.push(f))}return d};goog.array.toObject=function(a,b,c){var d={};goog.array.forEach(a,function(e,f){d[b.call(c,e,f,a)]=e});return d};
+goog.array.range=function(a,b,c){var d=[],e=0,f=a;c=c||1;void 0!==b&&(e=a,f=b);if(0>c*(f-e))return[];if(0<c)for(a=e;a<f;a+=c)d.push(a);else for(a=e;a>f;a+=c)d.push(a);return d};goog.array.repeat=function(a,b){for(var c=[],d=0;d<b;d++)c[d]=a;return c};goog.array.flatten=function(a){for(var b=[],c=0;c<arguments.length;c++){var d=arguments[c];goog.isArray(d)?b.push.apply(b,goog.array.flatten.apply(null,d)):b.push(d)}return b};
+goog.array.rotate=function(a,b){goog.asserts.assert(null!=a.length);a.length&&(b%=a.length,0<b?goog.array.ARRAY_PROTOTYPE_.unshift.apply(a,a.splice(-b,b)):0>b&&goog.array.ARRAY_PROTOTYPE_.push.apply(a,a.splice(0,-b)));return a};goog.array.moveItem=function(a,b,c){goog.asserts.assert(0<=b&&b<a.length);goog.asserts.assert(0<=c&&c<a.length);b=goog.array.ARRAY_PROTOTYPE_.splice.call(a,b,1);goog.array.ARRAY_PROTOTYPE_.splice.call(a,c,0,b[0])};
+goog.array.zip=function(a){if(!arguments.length)return[];for(var b=[],c=0;;c++){for(var d=[],e=0;e<arguments.length;e++){var f=arguments[e];if(c>=f.length)return b;d.push(f[c])}b.push(d)}};goog.array.shuffle=function(a,b){for(var c=b||Math.random,d=a.length-1;0<d;d--){var e=Math.floor(c()*(d+1)),f=a[d];a[d]=a[e];a[e]=f}};goog.math={};goog.math.randomInt=function(a){return Math.floor(Math.random()*a)};goog.math.uniformRandom=function(a,b){return a+Math.random()*(b-a)};goog.math.clamp=function(a,b,c){return Math.min(Math.max(a,b),c)};goog.math.modulo=function(a,b){var c=a%b;return 0>c*b?c+b:c};goog.math.lerp=function(a,b,c){return a+c*(b-a)};goog.math.nearlyEquals=function(a,b,c){return Math.abs(a-b)<=(c||1E-6)};goog.math.standardAngle=function(a){return goog.math.modulo(a,360)};
+goog.math.toRadians=function(a){return a*Math.PI/180};goog.math.toDegrees=function(a){return 180*a/Math.PI};goog.math.angleDx=function(a,b){return b*Math.cos(goog.math.toRadians(a))};goog.math.angleDy=function(a,b){return b*Math.sin(goog.math.toRadians(a))};goog.math.angle=function(a,b,c,d){return goog.math.standardAngle(goog.math.toDegrees(Math.atan2(d-b,c-a)))};goog.math.angleDifference=function(a,b){var c=goog.math.standardAngle(b)-goog.math.standardAngle(a);180<c?c-=360:-180>=c&&(c=360+c);return c};
+goog.math.sign=function(a){return 0==a?0:0>a?-1:1};goog.math.longestCommonSubsequence=function(a,b,c,d){c=c||function(a,b){return a==b};d=d||function(b){return a[b]};for(var e=a.length,f=b.length,g=[],h=0;h<e+1;h++)g[h]=[],g[h][0]=0;for(var k=0;k<f+1;k++)g[0][k]=0;for(h=1;h<=e;h++)for(k=1;k<=f;k++)c(a[h-1],b[k-1])?g[h][k]=g[h-1][k-1]+1:g[h][k]=Math.max(g[h-1][k],g[h][k-1]);for(var l=[],h=e,k=f;0<h&&0<k;)c(a[h-1],b[k-1])?(l.unshift(d(h-1,k-1)),h--,k--):g[h-1][k]>g[h][k-1]?h--:k--;return l};
+goog.math.sum=function(a){return goog.array.reduce(arguments,function(a,c){return a+c},0)};goog.math.average=function(a){return goog.math.sum.apply(null,arguments)/arguments.length};goog.math.sampleVariance=function(a){var b=arguments.length;if(2>b)return 0;var c=goog.math.average.apply(null,arguments);return b=goog.math.sum.apply(null,goog.array.map(arguments,function(a){return Math.pow(a-c,2)}))/(b-1)};
+goog.math.standardDeviation=function(a){return Math.sqrt(goog.math.sampleVariance.apply(null,arguments))};goog.math.isInt=function(a){return isFinite(a)&&0==a%1};goog.math.isFiniteNumber=function(a){return isFinite(a)&&!isNaN(a)};goog.math.safeFloor=function(a,b){goog.asserts.assert(!goog.isDef(b)||0<b);return Math.floor(a+(b||2E-15))};goog.math.safeCeil=function(a,b){goog.asserts.assert(!goog.isDef(b)||0<b);return Math.ceil(a-(b||2E-15))};goog.i18n={};
+goog.i18n.CompactNumberFormatSymbols_af={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0m"},1E7:{other:"00\u00a0m"},1E8:{other:"000\u00a0m"},1E9:{other:"0\u00a0mjd"},1E10:{other:"00\u00a0mjd"},1E11:{other:"000\u00a0mjd"},1E12:{other:"0\u00a0bn"},1E13:{other:"00\u00a0bn"},1E14:{other:"000\u00a0bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 duisend"},1E4:{other:"00 duisend"},1E5:{other:"000 duisend"},1E6:{other:"0 miljoen"},1E7:{other:"00 miljoen"},1E8:{other:"000 miljoen"},
+1E9:{other:"0 miljard"},1E10:{other:"00 miljard"},1E11:{other:"000 miljard"},1E12:{other:"0 biljoen"},1E13:{other:"00 biljoen"},1E14:{other:"000 biljoen"}}};goog.i18n.CompactNumberFormatSymbols_af_ZA=goog.i18n.CompactNumberFormatSymbols_af;
+goog.i18n.CompactNumberFormatSymbols_am={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u123a"},1E4:{other:"00\u00a0\u123a"},1E5:{other:"000\u00a0\u123a"},1E6:{other:"0\u00a0\u121c\u1275\u122d"},1E7:{other:"00\u00a0\u121c\u1275\u122d"},1E8:{other:"000\u00a0\u121c\u1275\u122d"},1E9:{other:"0\u00a0\u1262"},1E10:{other:"00\u00a0\u1262"},1E11:{other:"000\u00a0\u1262"},1E12:{other:"0\u00a0\u1275"},1E13:{other:"00\u00a0\u1275"},1E14:{other:"000\u00a0\u1275"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u123a"},
+1E4:{other:"00 \u123a"},1E5:{other:"000 \u123a"},1E6:{other:"0 \u121a\u120a\u12ee\u1295"},1E7:{other:"00 \u121a\u120a\u12ee\u1295"},1E8:{other:"000 \u121a\u120a\u12ee\u1295"},1E9:{other:"0 \u1262\u120a\u12ee\u1295"},1E10:{other:"00 \u1262\u120a\u12ee\u1295"},1E11:{other:"000 \u1262\u120a\u12ee\u1295"},1E12:{other:"0 \u1275\u122a\u120a\u12ee\u1295"},1E13:{other:"00 \u1275\u122a\u120a\u12ee\u1295"},1E14:{other:"000 \u1275\u122a\u120a\u12ee\u1295"}}};goog.i18n.CompactNumberFormatSymbols_am_ET=goog.i18n.CompactNumberFormatSymbols_am;
+goog.i18n.CompactNumberFormatSymbols_ar={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0623\u0644\u0641"},1E4:{other:"00\u00a0\u0623\u0644\u0641"},1E5:{other:"000\u00a0\u0623\u0644\u0641"},1E6:{other:"0\u00a0\u0645\u0644\u064a\u0648"},1E7:{other:"00\u00a0\u0645\u0644\u064a\u0648"},1E8:{other:"000\u00a0\u0645\u0644\u064a\u0648"},1E9:{other:"0\u00a0\u0628\u0644\u064a\u0648"},1E10:{other:"00\u00a0\u0628\u0644\u064a\u0648"},1E11:{other:"000\u00a0\u0628\u0644\u064a\u0648"},1E12:{other:"0\u00a0\u062a\u0631\u0644\u064a\u0648"},
+1E13:{other:"00\u00a0\u062a\u0631\u0644\u064a\u0648"},1E14:{other:"000\u00a0\u062a\u0631\u0644\u064a\u0648"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0623\u0644\u0641"},1E4:{other:"00 \u0623\u0644\u0641"},1E5:{other:"000 \u0623\u0644\u0641"},1E6:{other:"0 \u0645\u0644\u064a\u0648\u0646"},1E7:{other:"00 \u0645\u0644\u064a\u0648\u0646"},1E8:{other:"000 \u0645\u0644\u064a\u0648\u0646"},1E9:{other:"0 \u0628\u0644\u064a\u0648\u0646"},1E10:{other:"00 \u0628\u0644\u064a\u0648\u0646"},1E11:{other:"000 \u0628\u0644\u064a\u0648\u0646"},
+1E12:{other:"0 \u062a\u0631\u064a\u0644\u064a\u0648\u0646"},1E13:{other:"00 \u062a\u0631\u064a\u0644\u064a\u0648\u0646"},1E14:{other:"000 \u062a\u0631\u064a\u0644\u064a\u0648\u0646"}}};goog.i18n.CompactNumberFormatSymbols_ar_001=goog.i18n.CompactNumberFormatSymbols_ar;goog.i18n.CompactNumberFormatSymbols_ar_EG=goog.i18n.CompactNumberFormatSymbols_ar;
+goog.i18n.CompactNumberFormatSymbols_bg={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0425"},1E4:{other:"00\u00a0\u0425"},1E5:{other:"000\u00a0\u0425"},1E6:{other:"0\u00a0\u041c"},1E7:{other:"00\u00a0\u041c"},1E8:{other:"000\u00a0\u041c"},1E9:{other:"0\u00a0\u0411"},1E10:{other:"00\u00a0\u0411"},1E11:{other:"000\u00a0\u0411"},1E12:{other:"0\u00a0\u0422"},1E13:{other:"00\u00a0\u0422"},1E14:{other:"000\u00a0\u0422"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0445\u0438\u043b\u044f\u0434\u0438"},
+1E4:{other:"00 \u0445\u0438\u043b\u044f\u0434\u0438"},1E5:{other:"000 \u0445\u0438\u043b\u044f\u0434\u0438"},1E6:{other:"0 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0438\u043b\u0438\u0430\u0440\u0434\u0430"},1E10:{other:"00 \u043c\u0438\u043b\u0438\u0430\u0440\u0434\u0430"},1E11:{other:"000 \u043c\u0438\u043b\u0438\u0430\u0440\u0434\u0430"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},
+1E13:{other:"00 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_bg_BG=goog.i18n.CompactNumberFormatSymbols_bg;
+goog.i18n.CompactNumberFormatSymbols_bn={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u09b9\u09be\u099c\u09be\u09b0"},1E4:{other:"00 \u09b9\u09be\u099c\u09be\u09b0"},1E5:{other:"000 \u09b9\u09be\u099c\u09be\u09b0"},1E6:{other:"0 \u09ae\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},
+1E7:{other:"00 \u09ae\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E8:{other:"000 \u09ae\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E9:{other:"0 \u09ac\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E10:{other:"00 \u09ac\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E11:{other:"000 \u09ac\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E12:{other:"0 \u099f\u09cd\u09b0\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E13:{other:"00 \u099f\u09cd\u09b0\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E14:{other:"000 \u099f\u09cd\u09b0\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"}}};
+goog.i18n.CompactNumberFormatSymbols_bn_BD=goog.i18n.CompactNumberFormatSymbols_bn;goog.i18n.CompactNumberFormatSymbols_br={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_br_FR=goog.i18n.CompactNumberFormatSymbols_br;
+goog.i18n.CompactNumberFormatSymbols_ca={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 milions"},1E7:{other:"00 milions"},
+1E8:{other:"000 milions"},1E9:{other:"0 miliards"},1E10:{other:"00 miliards"},1E11:{other:"000 miliards"},1E12:{other:"0 bilions"},1E13:{other:"00 bilions"},1E14:{other:"000 bilions"}}};goog.i18n.CompactNumberFormatSymbols_ca_AD=goog.i18n.CompactNumberFormatSymbols_ca;goog.i18n.CompactNumberFormatSymbols_ca_ES=goog.i18n.CompactNumberFormatSymbols_ca;
+goog.i18n.CompactNumberFormatSymbols_chr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_chr_US=goog.i18n.CompactNumberFormatSymbols_chr;
+goog.i18n.CompactNumberFormatSymbols_cs={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tis."},1E4:{other:"00\u00a0tis."},1E5:{other:"000\u00a0tis."},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"00 tis\u00edc"},1E5:{other:"000 tis\u00edc"},
+1E6:{other:"0 milion\u016f"},1E7:{other:"00 milion\u016f"},1E8:{other:"000 milion\u016f"},1E9:{other:"0 miliard"},1E10:{other:"00 miliard"},1E11:{other:"000 miliard"},1E12:{other:"0 bilion\u016f"},1E13:{other:"00 bilion\u016f"},1E14:{other:"000 bilion\u016f"}}};goog.i18n.CompactNumberFormatSymbols_cs_CZ=goog.i18n.CompactNumberFormatSymbols_cs;
+goog.i18n.CompactNumberFormatSymbols_cy={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 miliwn"},1E7:{other:"00 miliwn"},1E8:{other:"000 miliwn"},1E9:{other:"0 biliwn"},1E10:{other:"00 biliwn"},
+1E11:{other:"000 biliwn"},1E12:{other:"0 triliwn"},1E13:{other:"00 triliwn"},1E14:{other:"000 triliwn"}}};goog.i18n.CompactNumberFormatSymbols_cy_GB=goog.i18n.CompactNumberFormatSymbols_cy;
+goog.i18n.CompactNumberFormatSymbols_da={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mio"},1E7:{other:"00\u00a0mio"},1E8:{other:"000\u00a0mio"},1E9:{other:"0\u00a0mia"},1E10:{other:"00\u00a0mia"},1E11:{other:"000\u00a0mia"},1E12:{other:"0\u00a0bill"},1E13:{other:"00\u00a0bill"},1E14:{other:"000\u00a0bill"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusind"},1E4:{other:"00 tusind"},1E5:{other:"000 tusind"},1E6:{other:"0 millioner"},1E7:{other:"00 millioner"},
+1E8:{other:"000 millioner"},1E9:{other:"0 milliarder"},1E10:{other:"00 milliarder"},1E11:{other:"000 milliarder"},1E12:{other:"0 billioner"},1E13:{other:"00 billioner"},1E14:{other:"000 billioner"}}};goog.i18n.CompactNumberFormatSymbols_da_DK=goog.i18n.CompactNumberFormatSymbols_da;
+goog.i18n.CompactNumberFormatSymbols_de={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 Tausend"},1E4:{other:"00 Tausend"},1E5:{other:"000 Tausend"},1E6:{other:"0 Millionen"},1E7:{other:"00 Millionen"},
+1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};
+goog.i18n.CompactNumberFormatSymbols_de_AT={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 Tausend"},1E4:{other:"00 Tausend"},1E5:{other:"000 Tausend"},1E6:{other:"0 Millionen"},1E7:{other:"00 Millionen"},
+1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};goog.i18n.CompactNumberFormatSymbols_de_BE=goog.i18n.CompactNumberFormatSymbols_de;
+goog.i18n.CompactNumberFormatSymbols_de_CH={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 Tausend"},1E4:{other:"00 Tausend"},1E5:{other:"000 Tausend"},1E6:{other:"0 Millionen"},1E7:{other:"00 Millionen"},
+1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};goog.i18n.CompactNumberFormatSymbols_de_DE=goog.i18n.CompactNumberFormatSymbols_de;goog.i18n.CompactNumberFormatSymbols_de_LU=goog.i18n.CompactNumberFormatSymbols_de;
+goog.i18n.CompactNumberFormatSymbols_el={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u03c7\u03b9\u03bb."},1E4:{other:"00\u00a0\u03c7\u03b9\u03bb."},1E5:{other:"000\u00a0\u03c7\u03b9\u03bb."},1E6:{other:"0\u00a0\u03b5\u03ba."},1E7:{other:"00\u00a0\u03b5\u03ba."},1E8:{other:"000\u00a0\u03b5\u03ba."},1E9:{other:"0\u00a0\u03b4\u03b9\u03c2"},1E10:{other:"00\u00a0\u03b4\u03b9\u03c2"},1E11:{other:"000\u00a0\u03b4\u03b9\u03c2"},1E12:{other:"0\u00a0\u03c4\u03c1\u03b9\u03c2"},1E13:{other:"00\u00a0\u03c4\u03c1\u03b9\u03c2"},
+1E14:{other:"000\u00a0\u03c4\u03c1\u03b9\u03c2"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u03c7\u03b9\u03bb\u03b9\u03ac\u03b4\u03b5\u03c2"},1E4:{other:"00 \u03c7\u03b9\u03bb\u03b9\u03ac\u03b4\u03b5\u03c2"},1E5:{other:"000 \u03c7\u03b9\u03bb\u03b9\u03ac\u03b4\u03b5\u03c2"},1E6:{other:"0 \u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E7:{other:"00 \u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E8:{other:"000 \u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},
+1E9:{other:"0 \u03b4\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E10:{other:"00 \u03b4\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E11:{other:"000 \u03b4\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E12:{other:"0 \u03c4\u03c1\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E13:{other:"00 \u03c4\u03c1\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},
+1E14:{other:"000 \u03c4\u03c1\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"}}};goog.i18n.CompactNumberFormatSymbols_el_GR=goog.i18n.CompactNumberFormatSymbols_el;
+goog.i18n.CompactNumberFormatSymbols_en={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_AS=goog.i18n.CompactNumberFormatSymbols_en;
+goog.i18n.CompactNumberFormatSymbols_en_AU={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_Dsrt_US=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_FM=goog.i18n.CompactNumberFormatSymbols_en;
+goog.i18n.CompactNumberFormatSymbols_en_GB={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_GU=goog.i18n.CompactNumberFormatSymbols_en;
+goog.i18n.CompactNumberFormatSymbols_en_IE={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};
+goog.i18n.CompactNumberFormatSymbols_en_IN={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_MH=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_MP=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_PR=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_PW=goog.i18n.CompactNumberFormatSymbols_en;
+goog.i18n.CompactNumberFormatSymbols_en_SG={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_TC=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_UM=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_US=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_VG=goog.i18n.CompactNumberFormatSymbols_en;
+goog.i18n.CompactNumberFormatSymbols_en_VI=goog.i18n.CompactNumberFormatSymbols_en;
+goog.i18n.CompactNumberFormatSymbols_en_ZA={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};
+goog.i18n.CompactNumberFormatSymbols_es={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00\u00a0K\u00a0M"},1E11:{other:"000\u00a0K\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 millones"},
+1E7:{other:"00 millones"},1E8:{other:"000 millones"},1E9:{other:"0 millardos"},1E10:{other:"00 millardos"},1E11:{other:"000 millardos"},1E12:{other:"0 billones"},1E13:{other:"00 billones"},1E14:{other:"000 billones"}}};
+goog.i18n.CompactNumberFormatSymbols_es_419={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00k"},1E5:{other:"000k"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0k\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 millones"},1E7:{other:"00 millones"},1E8:{other:"000 millones"},
+1E9:{other:"0 millardos"},1E10:{other:"00 millardos"},1E11:{other:"000 millardos"},1E12:{other:"0 billones"},1E13:{other:"00 billones"},1E14:{other:"000 billones"}}};goog.i18n.CompactNumberFormatSymbols_es_EA=goog.i18n.CompactNumberFormatSymbols_es;goog.i18n.CompactNumberFormatSymbols_es_ES=goog.i18n.CompactNumberFormatSymbols_es;goog.i18n.CompactNumberFormatSymbols_es_IC=goog.i18n.CompactNumberFormatSymbols_es;
+goog.i18n.CompactNumberFormatSymbols_et={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tuh"},1E4:{other:"00\u00a0tuh"},1E5:{other:"000\u00a0tuh"},1E6:{other:"0\u00a0mln"},1E7:{other:"00\u00a0mln"},1E8:{other:"000\u00a0mln"},1E9:{other:"0\u00a0mld"},1E10:{other:"00\u00a0mld"},1E11:{other:"000\u00a0mld"},1E12:{other:"0\u00a0trl"},1E13:{other:"00\u00a0trl"},1E14:{other:"000\u00a0trl"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tuhat"},1E4:{other:"00 tuhat"},1E5:{other:"000 tuhat"},1E6:{other:"0 miljonit"},
+1E7:{other:"00 miljonit"},1E8:{other:"000 miljonit"},1E9:{other:"0 miljardit"},1E10:{other:"00 miljardit"},1E11:{other:"000 miljardit"},1E12:{other:"0 triljonit"},1E13:{other:"00 triljonit"},1E14:{other:"000 triljonit"}}};goog.i18n.CompactNumberFormatSymbols_et_EE=goog.i18n.CompactNumberFormatSymbols_et;
+goog.i18n.CompactNumberFormatSymbols_eu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0 milioi"},1E7:{other:"00 milioi"},1E8:{other:"000 milioi"},1E9:{other:"0000 milioi"},
+1E10:{other:"00000 milioi"},1E11:{other:"000000 milioi"},1E12:{other:"0 bilioi"},1E13:{other:"00 bilioi"},1E14:{other:"000 bilioi"}}};goog.i18n.CompactNumberFormatSymbols_eu_ES=goog.i18n.CompactNumberFormatSymbols_eu;
+goog.i18n.CompactNumberFormatSymbols_fa={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0647\u0632\u0627\u0631"},1E4:{other:"00 \u0647\u0632\u0627\u0631"},1E5:{other:"000 \u0647\u0632\u0627\u0631"},1E6:{other:"0 \u0645\u06cc\u0644\u06cc\u0648\u0646"},
+1E7:{other:"00 \u0645\u06cc\u0644\u06cc\u0648\u0646"},1E8:{other:"000 \u0645\u06cc\u0644\u06cc\u0648\u0646"},1E9:{other:"0 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E10:{other:"00 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E11:{other:"000 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E12:{other:"0 \u0647\u0632\u0627\u0631 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E13:{other:"00 \u0647\u0632\u0627\u0631 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E14:{other:"000 \u0647\u0632\u0627\u0631 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"}}};
+goog.i18n.CompactNumberFormatSymbols_fa_IR=goog.i18n.CompactNumberFormatSymbols_fa;
+goog.i18n.CompactNumberFormatSymbols_fi={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0t."},1E4:{other:"00\u00a0t."},1E5:{other:"000\u00a0t."},1E6:{other:"0\u00a0milj."},1E7:{other:"00\u00a0milj."},1E8:{other:"000\u00a0milj."},1E9:{other:"0\u00a0mrd."},1E10:{other:"00\u00a0mrd."},1E11:{other:"000\u00a0mrd."},1E12:{other:"0\u00a0bilj."},1E13:{other:"00\u00a0bilj."},1E14:{other:"000\u00a0bilj."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tuhatta"},1E4:{other:"00 tuhatta"},1E5:{other:"000 tuhatta"},
+1E6:{other:"0 miljoonaa"},1E7:{other:"00 miljoonaa"},1E8:{other:"000 miljoonaa"},1E9:{other:"0 miljardia"},1E10:{other:"00 miljardia"},1E11:{other:"000 miljardia"},1E12:{other:"0 biljoonaa"},1E13:{other:"00 biljoonaa"},1E14:{other:"000 biljoonaa"}}};goog.i18n.CompactNumberFormatSymbols_fi_FI=goog.i18n.CompactNumberFormatSymbols_fi;
+goog.i18n.CompactNumberFormatSymbols_fil={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 (na) libo"},1E4:{other:"00 (na) libo"},1E5:{other:"000 (na) libo"},1E6:{other:"0 (na) milyon"},1E7:{other:"00 (na) milyon"},1E8:{other:"000 (na) milyon"},1E9:{other:"0 (na) bilyon"},
+1E10:{other:"00 (na) bilyon"},1E11:{other:"000 (na) bilyon"},1E12:{other:"0 (na) trilyon"},1E13:{other:"00 (na) trilyon"},1E14:{other:"000 (na) trilyon"}}};goog.i18n.CompactNumberFormatSymbols_fil_PH=goog.i18n.CompactNumberFormatSymbols_fil;
+goog.i18n.CompactNumberFormatSymbols_fr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0Md"},1E10:{other:"00\u00a0Md"},1E11:{other:"000\u00a0Md"},1E12:{other:"0\u00a0Bn"},1E13:{other:"00\u00a0Bn"},1E14:{other:"000\u00a0Bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mille"},1E4:{other:"00 mille"},1E5:{other:"000 mille"},1E6:{other:"0 millions"},1E7:{other:"00 millions"},
+1E8:{other:"000 millions"},1E9:{other:"0 milliards"},1E10:{other:"00 milliards"},1E11:{other:"000 milliards"},1E12:{other:"0 billions"},1E13:{other:"00 billions"},1E14:{other:"000 billions"}}};goog.i18n.CompactNumberFormatSymbols_fr_BL=goog.i18n.CompactNumberFormatSymbols_fr;
+goog.i18n.CompactNumberFormatSymbols_fr_CA={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0Md"},1E10:{other:"00\u00a0Md"},1E11:{other:"000\u00a0Md"},1E12:{other:"0\u00a0Bn"},1E13:{other:"00\u00a0Bn"},1E14:{other:"000\u00a0Bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mille"},1E4:{other:"00 mille"},1E5:{other:"000 mille"},1E6:{other:"0 millions"},1E7:{other:"00 millions"},
+1E8:{other:"000 millions"},1E9:{other:"0 milliards"},1E10:{other:"00 milliards"},1E11:{other:"000 milliards"},1E12:{other:"0 billions"},1E13:{other:"00 billions"},1E14:{other:"000 billions"}}};goog.i18n.CompactNumberFormatSymbols_fr_FR=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_GF=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_GP=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_MC=goog.i18n.CompactNumberFormatSymbols_fr;
+goog.i18n.CompactNumberFormatSymbols_fr_MF=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_MQ=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_RE=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_YT=goog.i18n.CompactNumberFormatSymbols_fr;
+goog.i18n.CompactNumberFormatSymbols_gl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00k"},1E5:{other:"000k"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 mill\u00f3ns"},1E7:{other:"00 mill\u00f3ns"},
+1E8:{other:"000 mill\u00f3ns"},1E9:{other:"0 mil mill\u00f3ns"},1E10:{other:"00 mil mill\u00f3ns"},1E11:{other:"000 mil mill\u00f3ns"},1E12:{other:"0 bill\u00f3ns"},1E13:{other:"00 bill\u00f3ns"},1E14:{other:"000 bill\u00f3ns"}}};goog.i18n.CompactNumberFormatSymbols_gl_ES=goog.i18n.CompactNumberFormatSymbols_gl;
+goog.i18n.CompactNumberFormatSymbols_gsw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tsd"},1E4:{other:"00\u00a0tsd"},1E5:{other:"000\u00a0tsd"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tausend"},1E4:{other:"00 tausend"},1E5:{other:"000 tausend"},1E6:{other:"0 Millionen"},
+1E7:{other:"00 Millionen"},1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};goog.i18n.CompactNumberFormatSymbols_gsw_CH=goog.i18n.CompactNumberFormatSymbols_gsw;
+goog.i18n.CompactNumberFormatSymbols_gu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0ab9\u0a9c\u0abe\u0ab0"},1E4:{other:"00 \u0ab9\u0a9c\u0abe\u0ab0"},1E5:{other:"000 \u0ab9\u0a9c\u0abe\u0ab0"},1E6:{other:"0 \u0aae\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},
+1E7:{other:"00 \u0aae\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E8:{other:"000 \u0aae\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E9:{other:"0 \u0aac\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E10:{other:"00 \u0aac\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E11:{other:"000 \u0aac\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E12:{other:"0 \u0a9f\u0acd\u0ab0\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E13:{other:"00 \u0a9f\u0acd\u0ab0\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E14:{other:"000 \u0a9f\u0acd\u0ab0\u0abf\u0ab2\u0abf\u0aaf\u0aa8"}}};
+goog.i18n.CompactNumberFormatSymbols_gu_IN=goog.i18n.CompactNumberFormatSymbols_gu;goog.i18n.CompactNumberFormatSymbols_haw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_haw_US=goog.i18n.CompactNumberFormatSymbols_haw;
+goog.i18n.CompactNumberFormatSymbols_he={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"\u200f0\u00a0\u05d0\u05dc\u05e3"},1E4:{other:"\u200f00\u00a0\u05d0\u05dc\u05e3"},1E5:{other:"\u200f000\u00a0\u05d0\u05dc\u05e3"},1E6:{other:"\u200f0\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},
+1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"\u200f0 \u05d0\u05dc\u05e3"},1E4:{other:"\u200f00 \u05d0\u05dc\u05e3"},1E5:{other:"\u200f000 \u05d0\u05dc\u05e3"},1E6:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E10:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E11:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},
+1E12:{other:"\u200f0 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E13:{other:"\u200f00 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E14:{other:"\u200f000 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"}}};goog.i18n.CompactNumberFormatSymbols_he_IL=goog.i18n.CompactNumberFormatSymbols_he;
+goog.i18n.CompactNumberFormatSymbols_hi={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0L"},1E6:{other:"00L"},1E7:{other:"0Cr"},1E8:{other:"00Cr"},1E9:{other:"000Cr"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0939\u091c\u093c\u093e\u0930"},1E4:{other:"00 \u0939\u091c\u093c\u093e\u0930"},1E5:{other:"0 \u0932\u093e\u0916"},1E6:{other:"00 \u0932\u093e\u0916"},1E7:{other:"0 \u0915\u0930\u094b\u0921\u093c"},
+1E8:{other:"00 \u0915\u0930\u094b\u0921\u093c"},1E9:{other:"0 \u0905\u0930\u092c"},1E10:{other:"00 \u0905\u0930\u092c"},1E11:{other:"0 \u0916\u0930\u092c"},1E12:{other:"00 \u0916\u0930\u092c"},1E13:{other:"000 \u0916\u0930\u092c"},1E14:{other:"0000 \u0916\u0930\u092c"}}};goog.i18n.CompactNumberFormatSymbols_hi_IN=goog.i18n.CompactNumberFormatSymbols_hi;
+goog.i18n.CompactNumberFormatSymbols_hr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mlr."},1E10:{other:"00\u00a0mlr."},1E11:{other:"000\u00a0mlr."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0 milijuna"},1E7:{other:"00 milijuna"},1E8:{other:"000 milijuna"},
+1E9:{other:"0 milijarda"},1E10:{other:"00 milijarda"},1E11:{other:"000 milijarda"},1E12:{other:"0 bilijuna"},1E13:{other:"00 bilijuna"},1E14:{other:"000 bilijuna"}}};goog.i18n.CompactNumberFormatSymbols_hr_HR=goog.i18n.CompactNumberFormatSymbols_hr;
+goog.i18n.CompactNumberFormatSymbols_hu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0E"},1E4:{other:"00\u00a0E"},1E5:{other:"000\u00a0E"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ezer"},1E4:{other:"00 ezer"},1E5:{other:"000 ezer"},1E6:{other:"0 milli\u00f3"},1E7:{other:"00 milli\u00f3"},
+1E8:{other:"000 milli\u00f3"},1E9:{other:"0 milli\u00e1rd"},1E10:{other:"00 milli\u00e1rd"},1E11:{other:"000 milli\u00e1rd"},1E12:{other:"0 billi\u00f3"},1E13:{other:"00 billi\u00f3"},1E14:{other:"000 billi\u00f3"}}};goog.i18n.CompactNumberFormatSymbols_hu_HU=goog.i18n.CompactNumberFormatSymbols_hu;
+goog.i18n.CompactNumberFormatSymbols_id={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0rb"},1E5:{other:"000\u00a0rb"},1E6:{other:"0\u00a0jt"},1E7:{other:"00\u00a0jt"},1E8:{other:"000\u00a0jt"},1E9:{other:"0\u00a0M"},1E10:{other:"00\u00a0M"},1E11:{other:"000\u00a0M"},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ribu"},1E4:{other:"00 ribu"},1E5:{other:"000 ribu"},1E6:{other:"0 juta"},1E7:{other:"00 juta"},
+1E8:{other:"000 juta"},1E9:{other:"0 miliar"},1E10:{other:"00 miliar"},1E11:{other:"000 miliar"},1E12:{other:"0 triliun"},1E13:{other:"00 triliun"},1E14:{other:"000 triliun"}}};goog.i18n.CompactNumberFormatSymbols_id_ID=goog.i18n.CompactNumberFormatSymbols_id;
+goog.i18n.CompactNumberFormatSymbols_in={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0rb"},1E5:{other:"000\u00a0rb"},1E6:{other:"0\u00a0jt"},1E7:{other:"00\u00a0jt"},1E8:{other:"000\u00a0jt"},1E9:{other:"0\u00a0M"},1E10:{other:"00\u00a0M"},1E11:{other:"000\u00a0M"},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ribu"},1E4:{other:"00 ribu"},1E5:{other:"000 ribu"},1E6:{other:"0 juta"},1E7:{other:"00 juta"},
+1E8:{other:"000 juta"},1E9:{other:"0 miliar"},1E10:{other:"00 miliar"},1E11:{other:"000 miliar"},1E12:{other:"0 triliun"},1E13:{other:"00 triliun"},1E14:{other:"000 triliun"}}};
+goog.i18n.CompactNumberFormatSymbols_is={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u00fe."},1E4:{other:"00\u00a0\u00fe."},1E5:{other:"000\u00a0\u00fe."},1E6:{other:"0\u00a0m."},1E7:{other:"00\u00a0m."},1E8:{other:"000\u00a0m."},1E9:{other:"0\u00a0ma."},1E10:{other:"00\u00a0ma."},1E11:{other:"000\u00a0ma."},1E12:{other:"0\u00a0bn"},1E13:{other:"00\u00a0bn"},1E14:{other:"000\u00a0bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u00fe\u00fasund"},1E4:{other:"00 \u00fe\u00fasund"},1E5:{other:"000 \u00fe\u00fasund"},
+1E6:{other:"0 millj\u00f3nir"},1E7:{other:"00 millj\u00f3nir"},1E8:{other:"000 millj\u00f3nir"},1E9:{other:"0 milljar\u00f0ar"},1E10:{other:"00 milljar\u00f0ar"},1E11:{other:"000 milljar\u00f0ar"},1E12:{other:"0 billj\u00f3nir"},1E13:{other:"00 billj\u00f3nir"},1E14:{other:"000 billj\u00f3nir"}}};goog.i18n.CompactNumberFormatSymbols_is_IS=goog.i18n.CompactNumberFormatSymbols_is;
+goog.i18n.CompactNumberFormatSymbols_it={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mln"},1E7:{other:"00\u00a0Mln"},1E8:{other:"000\u00a0Mln"},1E9:{other:"0\u00a0Mld"},1E10:{other:"00\u00a0Mld"},1E11:{other:"000\u00a0Mld"},1E12:{other:"0\u00a0Bln"},1E13:{other:"00\u00a0Bln"},1E14:{other:"000\u00a0Bln"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 migliaia"},1E4:{other:"00 migliaia"},1E5:{other:"000 migliaia"},1E6:{other:"0 milioni"},1E7:{other:"00 milioni"},
+1E8:{other:"000 milioni"},1E9:{other:"0 miliardi"},1E10:{other:"00 miliardi"},1E11:{other:"000 miliardi"},1E12:{other:"0 bilioni"},1E13:{other:"00 bilioni"},1E14:{other:"000 bilioni"}}};goog.i18n.CompactNumberFormatSymbols_it_IT=goog.i18n.CompactNumberFormatSymbols_it;goog.i18n.CompactNumberFormatSymbols_it_SM=goog.i18n.CompactNumberFormatSymbols_it;
+goog.i18n.CompactNumberFormatSymbols_iw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"\u200f0\u00a0\u05d0\u05dc\u05e3"},1E4:{other:"\u200f00\u00a0\u05d0\u05dc\u05e3"},1E5:{other:"\u200f000\u00a0\u05d0\u05dc\u05e3"},1E6:{other:"\u200f0\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},
+1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"\u200f0 \u05d0\u05dc\u05e3"},1E4:{other:"\u200f00 \u05d0\u05dc\u05e3"},1E5:{other:"\u200f000 \u05d0\u05dc\u05e3"},1E6:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E10:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E11:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},
+1E12:{other:"\u200f0 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E13:{other:"\u200f00 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E14:{other:"\u200f000 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"}}};
+goog.i18n.CompactNumberFormatSymbols_ja={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u5343"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"},1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"},1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0\u5343"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"},
+1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"},1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}}};goog.i18n.CompactNumberFormatSymbols_ja_JP=goog.i18n.CompactNumberFormatSymbols_ja;
+goog.i18n.CompactNumberFormatSymbols_kn={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0cb8\u0cbe\u0cb5\u0cbf\u0cb0"},1E4:{other:"00 \u0cb8\u0cbe\u0cb5\u0cbf\u0cb0"},1E5:{other:"000 \u0cb8\u0cbe\u0cb5\u0cbf\u0cb0"},1E6:{other:"0 \u0cae\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},
+1E7:{other:"00 \u0cae\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E8:{other:"000 \u0cae\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E9:{other:"0 \u0cac\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E10:{other:"00 \u0cac\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E11:{other:"000 \u0cac\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E12:{other:"0 \u0c9f\u0ccd\u0cb0\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd\u200c"},1E13:{other:"00 \u0c9f\u0ccd\u0cb0\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd\u200c"},1E14:{other:"000 \u0c9f\u0ccd\u0cb0\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd\u200c"}}};
+goog.i18n.CompactNumberFormatSymbols_kn_IN=goog.i18n.CompactNumberFormatSymbols_kn;
+goog.i18n.CompactNumberFormatSymbols_ko={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0\ub9cc"},1E5:{other:"00\ub9cc"},1E6:{other:"000\ub9cc"},1E7:{other:"0000\ub9cc"},1E8:{other:"0\uc5b5"},1E9:{other:"00\uc5b5"},1E10:{other:"000\uc5b5"},1E11:{other:"0000\uc5b5"},1E12:{other:"0\uc870"},1E13:{other:"00\uc870"},1E14:{other:"000\uc870"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\ub9cc"},1E5:{other:"00\ub9cc"},1E6:{other:"000\ub9cc"},1E7:{other:"0000\ub9cc"},1E8:{other:"0\uc5b5"},
+1E9:{other:"00\uc5b5"},1E10:{other:"000\uc5b5"},1E11:{other:"0000\uc5b5"},1E12:{other:"0\uc870"},1E13:{other:"00\uc870"},1E14:{other:"000\uc870"}}};goog.i18n.CompactNumberFormatSymbols_ko_KR=goog.i18n.CompactNumberFormatSymbols_ko;
+goog.i18n.CompactNumberFormatSymbols_ln={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_ln_CD=goog.i18n.CompactNumberFormatSymbols_ln;
+goog.i18n.CompactNumberFormatSymbols_lt={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0G"},1E10:{other:"00\u00a0G"},1E11:{other:"000\u00a0G"},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 t\u016bkstan\u010di\u0173"},1E4:{other:"00 t\u016bkstan\u010di\u0173"},1E5:{other:"000 t\u016bkstan\u010di\u0173"},
+1E6:{other:"0 milijon\u0173"},1E7:{other:"00 milijon\u0173"},1E8:{other:"000 milijon\u0173"},1E9:{other:"0 milijard\u0173"},1E10:{other:"00 milijard\u0173"},1E11:{other:"000 milijard\u0173"},1E12:{other:"0 trilijon\u0173"},1E13:{other:"00 trilijon\u0173"},1E14:{other:"000 trilijon\u0173"}}};goog.i18n.CompactNumberFormatSymbols_lt_LT=goog.i18n.CompactNumberFormatSymbols_lt;
+goog.i18n.CompactNumberFormatSymbols_lv={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0t\u016bkst."},1E4:{other:"00\u00a0t\u016bkst."},1E5:{other:"000\u00a0t\u016bkst."},1E6:{other:"0\u00a0milj."},1E7:{other:"00\u00a0milj."},1E8:{other:"000\u00a0milj."},1E9:{other:"0\u00a0md"},1E10:{other:"00\u00a0md"},1E11:{other:"000\u00a0md"},1E12:{other:"0\u00a0trilj."},1E13:{other:"00\u00a0trilj."},1E14:{other:"000\u00a0trilj."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 t\u016bksto\u0161i"},1E4:{other:"00 t\u016bksto\u0161i"},
+1E5:{other:"000 t\u016bksto\u0161i"},1E6:{other:"0 miljoni"},1E7:{other:"00 miljoni"},1E8:{other:"000 miljoni"},1E9:{other:"0 miljardi"},1E10:{other:"00 miljardi"},1E11:{other:"000 miljardi"},1E12:{other:"0 trilj."},1E13:{other:"00 trilj."},1E14:{other:"000 trilj."}}};goog.i18n.CompactNumberFormatSymbols_lv_LV=goog.i18n.CompactNumberFormatSymbols_lv;
+goog.i18n.CompactNumberFormatSymbols_ml={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0d06\u0d2f\u0d3f\u0d30\u0d02"},1E4:{other:"00 \u0d06\u0d2f\u0d3f\u0d30\u0d02"},1E5:{other:"000 \u0d06\u0d2f\u0d3f\u0d30\u0d02"},1E6:{other:"0 \u0d26\u0d36\u0d32\u0d15\u0d4d\u0d37\u0d02"},
+1E7:{other:"00 \u0d26\u0d36\u0d32\u0d15\u0d4d\u0d37\u0d02"},1E8:{other:"000 \u0d26\u0d36\u0d32\u0d15\u0d4d\u0d37\u0d02"},1E9:{other:"0 \u0d32\u0d15\u0d4d\u0d37\u0d02 \u0d15\u0d4b\u0d1f\u0d3f"},1E10:{other:"00 \u0d32\u0d15\u0d4d\u0d37\u0d02 \u0d15\u0d4b\u0d1f\u0d3f"},1E11:{other:"000 \u0d32\u0d15\u0d4d\u0d37\u0d02 \u0d15\u0d4b\u0d1f\u0d3f"},1E12:{other:"0 \u0d1f\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u0d2f\u0d7a"},1E13:{other:"00 \u0d1f\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u0d2f\u0d7a"},1E14:{other:"000 \u0d1f\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u0d2f\u0d7a"}}};
+goog.i18n.CompactNumberFormatSymbols_ml_IN=goog.i18n.CompactNumberFormatSymbols_ml;
+goog.i18n.CompactNumberFormatSymbols_mr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0939\u091c\u093e\u0930"},1E4:{other:"00 \u0939\u091c\u093e\u0930"},1E5:{other:"000 \u0939\u091c\u093e\u0930"},1E6:{other:"0 \u0926\u0936\u0932\u0915\u094d\u0937"},
+1E7:{other:"00 \u0926\u0936\u0932\u0915\u094d\u0937"},1E8:{other:"000 \u0926\u0936\u0932\u0915\u094d\u0937"},1E9:{other:"0 \u092e\u0939\u093e\u092a\u0926\u094d\u092e"},1E10:{other:"00 \u092e\u0939\u093e\u092a\u0926\u094d\u092e"},1E11:{other:"000 \u092e\u0939\u093e\u092a\u0926\u094d\u092e"},1E12:{other:"0 \u0926\u0939\u093e \u0916\u0930\u092c"},1E13:{other:"00 \u0926\u0939\u093e \u0916\u0930\u092c"},1E14:{other:"000 \u0926\u0939\u093e \u0916\u0930\u092c"}}};
+goog.i18n.CompactNumberFormatSymbols_mr_IN=goog.i18n.CompactNumberFormatSymbols_mr;
+goog.i18n.CompactNumberFormatSymbols_ms={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0J"},1E7:{other:"00J"},1E8:{other:"000J"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ribu"},1E4:{other:"00 ribu"},1E5:{other:"000 ribu"},1E6:{other:"0 juta"},1E7:{other:"00 juta"},1E8:{other:"000 juta"},1E9:{other:"0 bilion"},1E10:{other:"00 bilion"},
+1E11:{other:"000 bilion"},1E12:{other:"0 trilion"},1E13:{other:"00 trilion"},1E14:{other:"000 trilion"}}};goog.i18n.CompactNumberFormatSymbols_ms_Latn_MY=goog.i18n.CompactNumberFormatSymbols_ms;goog.i18n.CompactNumberFormatSymbols_mt={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};
+goog.i18n.CompactNumberFormatSymbols_mt_MT=goog.i18n.CompactNumberFormatSymbols_mt;
+goog.i18n.CompactNumberFormatSymbols_nb={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mill"},1E7:{other:"00\u00a0mill"},1E8:{other:"000\u00a0mill"},1E9:{other:"0\u00a0mrd"},1E10:{other:"00\u00a0mrd"},1E11:{other:"000\u00a0mrd"},1E12:{other:"0\u00a0bill"},1E13:{other:"00\u00a0bill"},1E14:{other:"000\u00a0bill"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusen"},1E4:{other:"00 tusen"},1E5:{other:"000 tusen"},1E6:{other:"0 millioner"},1E7:{other:"00 millioner"},
+1E8:{other:"000 millioner"},1E9:{other:"0 milliarder"},1E10:{other:"00 milliarder"},1E11:{other:"000 milliarder"},1E12:{other:"0 billioner"},1E13:{other:"00 billioner"},1E14:{other:"000 billioner"}}};goog.i18n.CompactNumberFormatSymbols_nb_NO=goog.i18n.CompactNumberFormatSymbols_nb;
+goog.i18n.CompactNumberFormatSymbols_nl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0\u00a0mln."},1E7:{other:"00\u00a0mln."},1E8:{other:"000\u00a0mln."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0bln."},1E13:{other:"00\u00a0bln."},1E14:{other:"000\u00a0bln."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 duizend"},1E4:{other:"00 duizend"},1E5:{other:"000 duizend"},1E6:{other:"0 miljoen"},
+1E7:{other:"00 miljoen"},1E8:{other:"000 miljoen"},1E9:{other:"0 miljard"},1E10:{other:"00 miljard"},1E11:{other:"000 miljard"},1E12:{other:"0 biljoen"},1E13:{other:"00 biljoen"},1E14:{other:"000 biljoen"}}};goog.i18n.CompactNumberFormatSymbols_nl_NL=goog.i18n.CompactNumberFormatSymbols_nl;
+goog.i18n.CompactNumberFormatSymbols_no={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mill"},1E7:{other:"00\u00a0mill"},1E8:{other:"000\u00a0mill"},1E9:{other:"0\u00a0mrd"},1E10:{other:"00\u00a0mrd"},1E11:{other:"000\u00a0mrd"},1E12:{other:"0\u00a0bill"},1E13:{other:"00\u00a0bill"},1E14:{other:"000\u00a0bill"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusen"},1E4:{other:"00 tusen"},1E5:{other:"000 tusen"},1E6:{other:"0 millioner"},1E7:{other:"00 millioner"},
+1E8:{other:"000 millioner"},1E9:{other:"0 milliarder"},1E10:{other:"00 milliarder"},1E11:{other:"000 milliarder"},1E12:{other:"0 billioner"},1E13:{other:"00 billioner"},1E14:{other:"000 billioner"}}};goog.i18n.CompactNumberFormatSymbols_or={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};
+goog.i18n.CompactNumberFormatSymbols_or_IN=goog.i18n.CompactNumberFormatSymbols_or;
+goog.i18n.CompactNumberFormatSymbols_pl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tys."},1E4:{other:"00\u00a0tys."},1E5:{other:"000\u00a0tys."},1E6:{other:"0\u00a0mln"},1E7:{other:"00\u00a0mln"},1E8:{other:"000\u00a0mln"},1E9:{other:"0\u00a0mld"},1E10:{other:"00\u00a0mld"},1E11:{other:"000\u00a0mld"},1E12:{other:"0\u00a0bln"},1E13:{other:"00\u00a0bln"},1E14:{other:"000\u00a0bln"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tysi\u0105ca"},1E4:{other:"00 tysi\u0105ca"},1E5:{other:"000 tysi\u0105ca"},
+1E6:{other:"0 miliona"},1E7:{other:"00 miliona"},1E8:{other:"000 miliona"},1E9:{other:"0 miliarda"},1E10:{other:"00 miliarda"},1E11:{other:"000 miliarda"},1E12:{other:"0 biliona"},1E13:{other:"00 biliona"},1E14:{other:"000 biliona"}}};goog.i18n.CompactNumberFormatSymbols_pl_PL=goog.i18n.CompactNumberFormatSymbols_pl;
+goog.i18n.CompactNumberFormatSymbols_pt={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0mil"},1E4:{other:"00\u00a0mil"},1E5:{other:"000\u00a0mil"},1E6:{other:"0\u00a0mi"},1E7:{other:"00\u00a0mi"},1E8:{other:"000\u00a0mi"},1E9:{other:"0\u00a0bi"},1E10:{other:"00\u00a0bi"},1E11:{other:"000\u00a0bi"},1E12:{other:"0\u00a0tri"},1E13:{other:"00\u00a0tri"},1E14:{other:"000\u00a0tri"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 milh\u00f5es"},
+1E7:{other:"00 milh\u00f5es"},1E8:{other:"000 milh\u00f5es"},1E9:{other:"0 bilh\u00f5es"},1E10:{other:"00 bilh\u00f5es"},1E11:{other:"000 bilh\u00f5es"},1E12:{other:"0 trilh\u00f5es"},1E13:{other:"00 trilh\u00f5es"},1E14:{other:"000 trilh\u00f5es"}}};goog.i18n.CompactNumberFormatSymbols_pt_BR=goog.i18n.CompactNumberFormatSymbols_pt;
+goog.i18n.CompactNumberFormatSymbols_pt_PT={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0mil"},1E4:{other:"00\u00a0mil"},1E5:{other:"000\u00a0mil"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0MM"},1E10:{other:"00\u00a0MM"},1E11:{other:"000\u00a0MM"},1E12:{other:"0\u00a0Bi"},1E13:{other:"00\u00a0Bi"},1E14:{other:"000\u00a0Bi"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 milh\u00f5es"},
+1E7:{other:"00 milh\u00f5es"},1E8:{other:"000 milh\u00f5es"},1E9:{other:"0 mil milh\u00f5es"},1E10:{other:"00 mil milh\u00f5es"},1E11:{other:"000 mil milh\u00f5es"},1E12:{other:"0 bili\u00f5es"},1E13:{other:"00 bili\u00f5es"},1E14:{other:"000 bili\u00f5es"}}};
+goog.i18n.CompactNumberFormatSymbols_ro={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 de mii"},1E4:{other:"00 de mii"},1E5:{other:"000 de mii"},1E6:{other:"0 de milioane"},
+1E7:{other:"00 de milioane"},1E8:{other:"000 de milioane"},1E9:{other:"0 de miliarde"},1E10:{other:"00 de miliarde"},1E11:{other:"000 de miliarde"},1E12:{other:"0 de trilioane"},1E13:{other:"00 de trilioane"},1E14:{other:"000 de trilioane"}}};goog.i18n.CompactNumberFormatSymbols_ro_RO=goog.i18n.CompactNumberFormatSymbols_ro;
+goog.i18n.CompactNumberFormatSymbols_ru={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0442\u044b\u0441."},1E4:{other:"00\u00a0\u0442\u044b\u0441."},1E5:{other:"000\u00a0\u0442\u044b\u0441."},1E6:{other:"0\u00a0\u043c\u043b\u043d"},1E7:{other:"00\u00a0\u043c\u043b\u043d"},1E8:{other:"000\u00a0\u043c\u043b\u043d"},1E9:{other:"0\u00a0\u043c\u043b\u0440\u0434"},1E10:{other:"00\u00a0\u043c\u043b\u0440\u0434"},1E11:{other:"000\u00a0\u043c\u043b\u0440\u0434"},1E12:{other:"0\u00a0\u0442\u0440\u043b\u043d"},
+1E13:{other:"00\u00a0\u0442\u0440\u043b\u043d"},1E14:{other:"000\u00a0\u0442\u0440\u043b\u043d"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0442\u044b\u0441\u044f\u0447\u0438"},1E4:{other:"00 \u0442\u044b\u0441\u044f\u0447\u0438"},1E5:{other:"000 \u0442\u044b\u0441\u044f\u0447\u0438"},1E6:{other:"0 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430"},
+1E10:{other:"00 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430"},1E11:{other:"000 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E13:{other:"00 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_ru_RU=goog.i18n.CompactNumberFormatSymbols_ru;
+goog.i18n.CompactNumberFormatSymbols_sk={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tis."},1E4:{other:"00\u00a0tis."},1E5:{other:"000\u00a0tis."},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tis\u00edc"},1E4:{other:"00 tis\u00edc"},1E5:{other:"000 tis\u00edc"},
+1E6:{other:"0 mili\u00f3nov"},1E7:{other:"00 mili\u00f3nov"},1E8:{other:"000 mili\u00f3nov"},1E9:{other:"0 miliard"},1E10:{other:"00 mili\u00e1rd"},1E11:{other:"000 mili\u00e1rd"},1E12:{other:"0 bili\u00f3nov"},1E13:{other:"00 bili\u00f3nov"},1E14:{other:"000 bili\u00f3nov"}}};goog.i18n.CompactNumberFormatSymbols_sk_SK=goog.i18n.CompactNumberFormatSymbols_sk;
+goog.i18n.CompactNumberFormatSymbols_sl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tis."},1E4:{other:"00\u00a0tis."},1E5:{other:"000\u00a0tis."},1E6:{other:"0\u00a0mio."},1E7:{other:"00\u00a0mio."},1E8:{other:"000\u00a0mio."},1E9:{other:"0\u00a0mrd."},1E10:{other:"00\u00a0mrd."},1E11:{other:"000\u00a0mrd."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tiso\u010d"},1E4:{other:"00 tiso\u010d"},1E5:{other:"000 tiso\u010d"},
+1E6:{other:"0 milijonov"},1E7:{other:"00 milijonov"},1E8:{other:"000 milijonov"},1E9:{other:"0 milijard"},1E10:{other:"00 milijard"},1E11:{other:"000 milijard"},1E12:{other:"0 bilijonov"},1E13:{other:"00 bilijonov"},1E14:{other:"000 bilijonov"}}};goog.i18n.CompactNumberFormatSymbols_sl_SI=goog.i18n.CompactNumberFormatSymbols_sl;
+goog.i18n.CompactNumberFormatSymbols_sq={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_sq_AL=goog.i18n.CompactNumberFormatSymbols_sq;
+goog.i18n.CompactNumberFormatSymbols_sr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0\u0445\u0438\u0459"},1E5:{other:"000\u00a0\u0445\u0438\u0459"},1E6:{other:"0\u00a0\u043c\u0438\u043b"},1E7:{other:"00\u00a0\u043c\u0438\u043b"},1E8:{other:"000\u00a0\u043c\u0438\u043b"},1E9:{other:"0\u00a0\u043c\u043b\u0440\u0434"},1E10:{other:"00\u00a0\u043c\u043b\u0440\u0434"},1E11:{other:"000\u00a0\u043c\u043b\u0440\u0434"},1E12:{other:"0\u00a0\u0431\u0438\u043b"},1E13:{other:"00\u00a0\u0431\u0438\u043b"},
+1E14:{other:"000\u00a0\u0431\u0438\u043b"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0445\u0438\u0459\u0430\u0434\u0430"},1E4:{other:"00 \u0445\u0438\u0459\u0430\u0434\u0430"},1E5:{other:"000 \u0445\u0438\u0459\u0430\u0434\u0430"},1E6:{other:"0 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0438\u043b\u0438\u0458\u0430\u0440\u0434\u0438"},1E10:{other:"00 \u043c\u0438\u043b\u0438\u0458\u0430\u0440\u0434\u0438"},
+1E11:{other:"000 \u043c\u0438\u043b\u0438\u0458\u0430\u0440\u0434\u0438"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},1E13:{other:"00 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_RS=goog.i18n.CompactNumberFormatSymbols_sr;
+goog.i18n.CompactNumberFormatSymbols_sv={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tn"},1E4:{other:"00\u00a0tn"},1E5:{other:"000\u00a0tn"},1E6:{other:"0\u00a0mn"},1E7:{other:"00\u00a0mn"},1E8:{other:"000\u00a0mn"},1E9:{other:"0\u00a0md"},1E10:{other:"00\u00a0md"},1E11:{other:"000\u00a0md"},1E12:{other:"0\u00a0bn"},1E13:{other:"00\u00a0bn"},1E14:{other:"000\u00a0bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusen"},1E4:{other:"00 tusen"},1E5:{other:"000 tusen"},1E6:{other:"0 miljoner"},
+1E7:{other:"00 miljoner"},1E8:{other:"000 miljoner"},1E9:{other:"0 miljarder"},1E10:{other:"00 miljarder"},1E11:{other:"000 miljarder"},1E12:{other:"0 biljoner"},1E13:{other:"00 biljoner"},1E14:{other:"000 biljoner"}}};goog.i18n.CompactNumberFormatSymbols_sv_SE=goog.i18n.CompactNumberFormatSymbols_sv;
+goog.i18n.CompactNumberFormatSymbols_sw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"elfu\u00a00"},1E4:{other:"elfu\u00a000"},1E5:{other:"laki0"},1E6:{other:"M0"},1E7:{other:"M00"},1E8:{other:"M000"},1E9:{other:"B0"},1E10:{other:"B00"},1E11:{other:"B000"},1E12:{other:"T0"},1E13:{other:"T00"},1E14:{other:"T000"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"Elfu 0"},1E4:{other:"Elfu 00"},1E5:{other:"Elfu 000"},1E6:{other:"Milioni 0"},1E7:{other:"Milioni 00"},1E8:{other:"Milioni 000"},1E9:{other:"Bilioni 0"},
+1E10:{other:"Bilioni 00"},1E11:{other:"Bilioni 000"},1E12:{other:"Trilioni 0"},1E13:{other:"Trilioni 00"},1E14:{other:"Trilioni 000"}}};goog.i18n.CompactNumberFormatSymbols_sw_TZ=goog.i18n.CompactNumberFormatSymbols_sw;
+goog.i18n.CompactNumberFormatSymbols_ta={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0b86\u0baf\u0bbf\u0bb0\u0bae\u0bcd"},1E4:{other:"00 \u0b86\u0baf\u0bbf\u0bb0\u0bae\u0bcd"},1E5:{other:"000 \u0b86\u0baf\u0bbf\u0bb0\u0bae\u0bcd"},1E6:{other:"0 \u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},
+1E7:{other:"00 \u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E8:{other:"000 \u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E9:{other:"0 \u0baa\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E10:{other:"00 \u0baa\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E11:{other:"000 \u0baa\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E12:{other:"0 \u0b9f\u0bbf\u0bb0\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E13:{other:"00 \u0b9f\u0bbf\u0bb0\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},
+1E14:{other:"000 \u0b9f\u0bbf\u0bb0\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"}}};goog.i18n.CompactNumberFormatSymbols_ta_IN=goog.i18n.CompactNumberFormatSymbols_ta;
+goog.i18n.CompactNumberFormatSymbols_te={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0c35\u0c47\u0c32\u0c41"},1E4:{other:"00 \u0c35\u0c47\u0c32\u0c41"},1E5:{other:"000 \u0c35\u0c47\u0c32\u0c41"},1E6:{other:"0 \u0c2e\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},
+1E7:{other:"00 \u0c2e\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E8:{other:"000 \u0c2e\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E9:{other:"0 \u0c2c\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E10:{other:"00 \u0c2c\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E11:{other:"000 \u0c2c\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E12:{other:"0 \u0c1f\u0c4d\u0c30\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E13:{other:"00 \u0c1f\u0c4d\u0c30\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E14:{other:"000 \u0c1f\u0c4d\u0c30\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"}}};
+goog.i18n.CompactNumberFormatSymbols_te_IN=goog.i18n.CompactNumberFormatSymbols_te;
+goog.i18n.CompactNumberFormatSymbols_th={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0e1e."},1E4:{other:"0\u00a0\u0e21."},1E5:{other:"0\u00a0\u0e2a."},1E6:{other:"0\u00a0\u0e25."},1E7:{other:"00\u00a0\u0e25."},1E8:{other:"000\u00a0\u0e25."},1E9:{other:"0\u00a0\u0e1e.\u0e25."},1E10:{other:"0\u00a0\u0e21.\u0e25."},1E11:{other:"0\u00a0\u0e2a.\u0e25."},1E12:{other:"0\u00a0\u0e25.\u0e25."},1E13:{other:"00\u00a0\u0e25.\u0e25."},1E14:{other:"000\u00a0\u0e25.\u0e25."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0e1e\u0e31\u0e19"},
+1E4:{other:"0 \u0e2b\u0e21\u0e37\u0e48\u0e19"},1E5:{other:"0 \u0e41\u0e2a\u0e19"},1E6:{other:"0 \u0e25\u0e49\u0e32\u0e19"},1E7:{other:"00 \u0e25\u0e49\u0e32\u0e19"},1E8:{other:"000 \u0e25\u0e49\u0e32\u0e19"},1E9:{other:"0 \u0e1e\u0e31\u0e19\u0e25\u0e49\u0e32\u0e19"},1E10:{other:"0 \u0e2b\u0e21\u0e37\u0e48\u0e19\u0e25\u0e49\u0e32\u0e19"},1E11:{other:"0 \u0e41\u0e2a\u0e19\u0e25\u0e49\u0e32\u0e19"},1E12:{other:"0 \u0e25\u0e49\u0e32\u0e19\u0e25\u0e49\u0e32\u0e19"},1E13:{other:"00 \u0e25\u0e49\u0e32\u0e19\u0e25\u0e49\u0e32\u0e19"},
+1E14:{other:"000 \u0e25\u0e49\u0e32\u0e19\u0e25\u0e49\u0e32\u0e19"}}};goog.i18n.CompactNumberFormatSymbols_th_TH=goog.i18n.CompactNumberFormatSymbols_th;
+goog.i18n.CompactNumberFormatSymbols_tl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 (na) libo"},1E4:{other:"00 (na) libo"},1E5:{other:"000 (na) libo"},1E6:{other:"0 (na) milyon"},1E7:{other:"00 (na) milyon"},1E8:{other:"000 (na) milyon"},1E9:{other:"0 (na) bilyon"},
+1E10:{other:"00 (na) bilyon"},1E11:{other:"000 (na) bilyon"},1E12:{other:"0 (na) trilyon"},1E13:{other:"00 (na) trilyon"},1E14:{other:"000 (na) trilyon"}}};
+goog.i18n.CompactNumberFormatSymbols_tr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0B"},1E5:{other:"000\u00a0B"},1E6:{other:"0\u00a0Mn"},1E7:{other:"00\u00a0Mn"},1E8:{other:"000\u00a0Mn"},1E9:{other:"0\u00a0Mr"},1E10:{other:"00\u00a0Mr"},1E11:{other:"000\u00a0Mr"},1E12:{other:"0\u00a0Tn"},1E13:{other:"00\u00a0Tn"},1E14:{other:"000\u00a0Tn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 bin"},1E4:{other:"00 bin"},1E5:{other:"000 bin"},1E6:{other:"0 milyon"},1E7:{other:"00 milyon"},
+1E8:{other:"000 milyon"},1E9:{other:"0 milyar"},1E10:{other:"00 milyar"},1E11:{other:"000 milyar"},1E12:{other:"0 trilyon"},1E13:{other:"00 trilyon"},1E14:{other:"000 trilyon"}}};goog.i18n.CompactNumberFormatSymbols_tr_TR=goog.i18n.CompactNumberFormatSymbols_tr;
+goog.i18n.CompactNumberFormatSymbols_uk={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0442\u0438\u0441"},1E4:{other:"00\u00a0\u0442\u0438\u0441"},1E5:{other:"000\u00a0\u0442\u0438\u0441"},1E6:{other:"0\u00a0\u043c\u043b\u043d"},1E7:{other:"00\u00a0\u043c\u043b\u043d"},1E8:{other:"000\u00a0\u043c\u043b\u043d"},1E9:{other:"0\u00a0\u043c\u043b\u0440\u0434"},1E10:{other:"00\u00a0\u043c\u043b\u0440\u0434"},1E11:{other:"000\u00a0\u043c\u043b\u0440\u0434"},1E12:{other:"0\u00a0\u0442\u0440\u043b\u043d"},
+1E13:{other:"00\u00a0\u0442\u0440\u043b\u043d"},1E14:{other:"000\u00a0\u0442\u0440\u043b\u043d"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0442\u0438\u0441\u044f\u0447\u0456"},1E4:{other:"00 \u0442\u0438\u0441\u044f\u0447\u0456"},1E5:{other:"000 \u0442\u0438\u0441\u044f\u0447\u0456"},1E6:{other:"0 \u043c\u0456\u043b\u044c\u0439\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0456\u043b\u044c\u0439\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0456\u043b\u044c\u0439\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0456\u043b\u044c\u044f\u0440\u0434\u0430"},
+1E10:{other:"00 \u043c\u0456\u043b\u044c\u044f\u0440\u0434\u0430"},1E11:{other:"000 \u043c\u0456\u043b\u044c\u044f\u0440\u0434\u0430"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u044c\u0439\u043e\u043d\u0430"},1E13:{other:"00 \u0442\u0440\u0438\u043b\u044c\u0439\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u044c\u0439\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_uk_UA=goog.i18n.CompactNumberFormatSymbols_uk;
+goog.i18n.CompactNumberFormatSymbols_ur={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u06c1\u0632\u0627\u0631"},1E4:{other:"00\u00a0\u06c1\u0632\u0627\u0631"},1E5:{other:"0\u00a0\u0644\u0627\u06a9\u06be"},1E6:{other:"00\u00a0\u0644\u0627\u06a9\u06be"},1E7:{other:"0\u00a0\u06a9\u0631\u0648\u0691"},1E8:{other:"00\u00a0\u06a9\u0631\u0648\u0691"},1E9:{other:"0\u00a0\u0627\u0631\u0628"},1E10:{other:"00\u00a0\u0627\u0631\u0628"},1E11:{other:"0\u00a0\u06a9\u06be\u0631\u0628"},1E12:{other:"00\u00a0\u06a9\u06be\u0631\u0628"},
+1E13:{other:"000\u00a0\u06a9\u06be\u0631\u0628"},1E14:{other:"0000\u00a0\u06a9\u06be\u0631\u0628"}}};goog.i18n.CompactNumberFormatSymbols_ur_PK=goog.i18n.CompactNumberFormatSymbols_ur;
+goog.i18n.CompactNumberFormatSymbols_vi={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0N"},1E4:{other:"00\u00a0N"},1E5:{other:"000\u00a0N"},1E6:{other:"0\u00a0Tr"},1E7:{other:"00\u00a0Tr"},1E8:{other:"000\u00a0Tr"},1E9:{other:"0\u00a0T"},1E10:{other:"00\u00a0T"},1E11:{other:"000\u00a0T"},1E12:{other:"0\u00a0NT"},1E13:{other:"00\u00a0NT"},1E14:{other:"000\u00a0NT"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ngh\u00ecn"},1E4:{other:"00 ngh\u00ecn"},1E5:{other:"000 ngh\u00ecn"},1E6:{other:"0 tri\u1ec7u"},
+1E7:{other:"00 tri\u1ec7u"},1E8:{other:"000 tri\u1ec7u"},1E9:{other:"0 t\u1ef7"},1E10:{other:"00 t\u1ef7"},1E11:{other:"000 t\u1ef7"},1E12:{other:"0 ngh\u00ecn t\u1ef7"},1E13:{other:"00 ngh\u00ecn t\u1ef7"},1E14:{other:"000 ngh\u00ecn t\u1ef7"}}};goog.i18n.CompactNumberFormatSymbols_vi_VN=goog.i18n.CompactNumberFormatSymbols_vi;
+goog.i18n.CompactNumberFormatSymbols_zh={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"},1E8:{other:"0\u4ebf"},1E9:{other:"00\u4ebf"},1E10:{other:"000\u4ebf"},1E11:{other:"0000\u4ebf"},1E12:{other:"0\u4e07\u4ebf"},1E13:{other:"00\u4e07\u4ebf"},1E14:{other:"000\u4e07\u4ebf"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"},
+1E8:{other:"0\u4ebf"},1E9:{other:"00\u4ebf"},1E10:{other:"000\u4ebf"},1E11:{other:"0000\u4ebf"},1E12:{other:"0\u4e07\u4ebf"},1E13:{other:"00\u4e07\u4ebf"},1E14:{other:"000\u4e07\u4ebf"}}};goog.i18n.CompactNumberFormatSymbols_zh_CN=goog.i18n.CompactNumberFormatSymbols_zh;
+goog.i18n.CompactNumberFormatSymbols_zh_HK={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00\u5146"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u842c"},1E5:{other:"00\u842c"},1E6:{other:"000\u842c"},1E7:{other:"0000\u842c"},1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"},
+1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}}};goog.i18n.CompactNumberFormatSymbols_zh_Hans_CN=goog.i18n.CompactNumberFormatSymbols_zh;
+goog.i18n.CompactNumberFormatSymbols_zh_TW={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00\u5146"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u842c"},1E5:{other:"00\u842c"},1E6:{other:"000\u842c"},1E7:{other:"0000\u842c"},1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"},
+1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}}};
+goog.i18n.CompactNumberFormatSymbols_zu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 inkulungwane"},1E4:{other:"00 inkulungwane"},1E5:{other:"000 inkulungwane"},1E6:{other:"0 isigidi"},1E7:{other:"00 isigidi"},1E8:{other:"000 isigidi"},1E9:{other:"0 isigidi sezigidi"},
+1E10:{other:"00 isigidi sezigidi"},1E11:{other:"000 isigidi sezigidi"},1E12:{other:"0 isigidintathu"},1E13:{other:"00 isigidintathu"},1E14:{other:"000 isigidintathu"}}};goog.i18n.CompactNumberFormatSymbols_zu_ZA=goog.i18n.CompactNumberFormatSymbols_zu;goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;"af"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_af);
+if("af_ZA"==goog.LOCALE||"af-ZA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_af;"am"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_am);if("am_ET"==goog.LOCALE||"am-ET"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_am;"ar"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ar);
+if("ar_001"==goog.LOCALE||"ar-001"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ar;if("ar_EG"==goog.LOCALE||"ar-EG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ar;"bg"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bg);if("bg_BG"==goog.LOCALE||"bg-BG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bg;
+"bn"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bn);if("bn_BD"==goog.LOCALE||"bn-BD"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bn;"br"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_br);if("br_FR"==goog.LOCALE||"br-FR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_br;"ca"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ca);
+if("ca_AD"==goog.LOCALE||"ca-AD"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ca;if("ca_ES"==goog.LOCALE||"ca-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ca;"chr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_chr);if("chr_US"==goog.LOCALE||"chr-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_chr;
+"cs"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cs);if("cs_CZ"==goog.LOCALE||"cs-CZ"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cs;"cy"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cy);if("cy_GB"==goog.LOCALE||"cy-GB"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cy;"da"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_da);
+if("da_DK"==goog.LOCALE||"da-DK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_da;"de"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de);if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de_AT;if("de_BE"==goog.LOCALE||"de-BE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de;
+if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de_CH;if("de_DE"==goog.LOCALE||"de-DE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de;if("de_LU"==goog.LOCALE||"de-LU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de;"el"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_el);
+if("el_GR"==goog.LOCALE||"el-GR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_el;"en"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en);if("en_AS"==goog.LOCALE||"en-AS"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_AU;
+if("en_Dsrt_US"==goog.LOCALE||"en-Dsrt-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_FM"==goog.LOCALE||"en-FM"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_GB;if("en_GU"==goog.LOCALE||"en-GU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;
+if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_IE;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_IN;if("en_MH"==goog.LOCALE||"en-MH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_MP"==goog.LOCALE||"en-MP"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;
+if("en_PR"==goog.LOCALE||"en-PR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_PW"==goog.LOCALE||"en-PW"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_SG;if("en_TC"==goog.LOCALE||"en-TC"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;
+if("en_UM"==goog.LOCALE||"en-UM"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_VG"==goog.LOCALE||"en-VG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_VI"==goog.LOCALE||"en-VI"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;
+if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_ZA;"es"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es_419;if("es_EA"==goog.LOCALE||"es-EA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es;
+if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es;if("es_IC"==goog.LOCALE||"es-IC"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es;"et"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_et);if("et_EE"==goog.LOCALE||"et-EE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_et;
+"eu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_eu);if("eu_ES"==goog.LOCALE||"eu-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_eu;"fa"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fa);if("fa_IR"==goog.LOCALE||"fa-IR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fa;"fi"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fi);
+if("fi_FI"==goog.LOCALE||"fi-FI"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fi;"fil"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fil);if("fil_PH"==goog.LOCALE||"fil-PH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fil;"fr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr);
+if("fr_BL"==goog.LOCALE||"fr-BL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr_CA;if("fr_FR"==goog.LOCALE||"fr-FR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_GF"==goog.LOCALE||"fr-GF"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;
+if("fr_GP"==goog.LOCALE||"fr-GP"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_MC"==goog.LOCALE||"fr-MC"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_MF"==goog.LOCALE||"fr-MF"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_MQ"==goog.LOCALE||"fr-MQ"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;
+if("fr_RE"==goog.LOCALE||"fr-RE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_YT"==goog.LOCALE||"fr-YT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;"gl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gl);if("gl_ES"==goog.LOCALE||"gl-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gl;
+"gsw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gsw);if("gsw_CH"==goog.LOCALE||"gsw-CH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gsw;"gu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gu);if("gu_IN"==goog.LOCALE||"gu-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gu;
+"haw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_haw);if("haw_US"==goog.LOCALE||"haw-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_haw;"he"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_he);if("he_IL"==goog.LOCALE||"he-IL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_he;
+"hi"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hi);if("hi_IN"==goog.LOCALE||"hi-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hi;"hr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hr);if("hr_HR"==goog.LOCALE||"hr-HR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hr;"hu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hu);
+if("hu_HU"==goog.LOCALE||"hu-HU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hu;"id"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_id);if("id_ID"==goog.LOCALE||"id-ID"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_id;"in"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_in);"is"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_is);
+if("is_IS"==goog.LOCALE||"is-IS"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_is;"it"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_it);if("it_IT"==goog.LOCALE||"it-IT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_it;if("it_SM"==goog.LOCALE||"it-SM"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_it;
+"iw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_iw);"ja"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ja);if("ja_JP"==goog.LOCALE||"ja-JP"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ja;"kn"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_kn);if("kn_IN"==goog.LOCALE||"kn-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_kn;
+"ko"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ko);if("ko_KR"==goog.LOCALE||"ko-KR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ko;"ln"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ln);if("ln_CD"==goog.LOCALE||"ln-CD"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ln;"lt"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lt);
+if("lt_LT"==goog.LOCALE||"lt-LT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lt;"lv"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lv);if("lv_LV"==goog.LOCALE||"lv-LV"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lv;"ml"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ml);
+if("ml_IN"==goog.LOCALE||"ml-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ml;"mr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mr);if("mr_IN"==goog.LOCALE||"mr-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mr;"ms"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ms);
+if("ms_Latn_MY"==goog.LOCALE||"ms-Latn-MY"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ms;"mt"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mt);if("mt_MT"==goog.LOCALE||"mt-MT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mt;"nb"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nb);
+if("nb_NO"==goog.LOCALE||"nb-NO"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nb;"nl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nl);if("nl_NL"==goog.LOCALE||"nl-NL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nl;"no"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_no);"or"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_or);
+if("or_IN"==goog.LOCALE||"or-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_or;"pl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pl);if("pl_PL"==goog.LOCALE||"pl-PL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pl;"pt"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pt);
+if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pt;if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pt_PT;"ro"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ro);if("ro_RO"==goog.LOCALE||"ro-RO"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ro;
+"ru"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ru);if("ru_RU"==goog.LOCALE||"ru-RU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ru;"sk"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sk);if("sk_SK"==goog.LOCALE||"sk-SK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sk;"sl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sl);
+if("sl_SI"==goog.LOCALE||"sl-SI"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sl;"sq"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sq);if("sq_AL"==goog.LOCALE||"sq-AL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sq;"sr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sr);
+if("sr_Cyrl_RS"==goog.LOCALE||"sr-Cyrl-RS"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sr;"sv"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sv);if("sv_SE"==goog.LOCALE||"sv-SE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sv;"sw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sw);
+if("sw_TZ"==goog.LOCALE||"sw-TZ"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sw;"ta"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ta);if("ta_IN"==goog.LOCALE||"ta-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ta;"te"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_te);
+if("te_IN"==goog.LOCALE||"te-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_te;"th"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_th);if("th_TH"==goog.LOCALE||"th-TH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_th;"tl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_tl);"tr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_tr);
+if("tr_TR"==goog.LOCALE||"tr-TR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_tr;"uk"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_uk);if("uk_UA"==goog.LOCALE||"uk-UA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_uk;"ur"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ur);
+if("ur_PK"==goog.LOCALE||"ur-PK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ur;"vi"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_vi);if("vi_VN"==goog.LOCALE||"vi-VN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_vi;"zh"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh);
+if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh_HK;if("zh_Hans_CN"==goog.LOCALE||"zh-Hans-CN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh;if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh_TW;
+"zu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zu);if("zu_ZA"==goog.LOCALE||"zu-ZA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zu;goog.i18n.currency={};goog.i18n.currency.PRECISION_MASK_=7;goog.i18n.currency.POSITION_FLAG_=16;goog.i18n.currency.SPACE_FLAG_=32;goog.i18n.currency.tier2Enabled_=!1;goog.i18n.currency.addTier2Support=function(){if(!goog.i18n.currency.tier2Enabled_){for(var a in goog.i18n.currency.CurrencyInfoTier2)goog.i18n.currency.CurrencyInfo[a]=goog.i18n.currency.CurrencyInfoTier2[a];goog.i18n.currency.tier2Enabled_=!0}};
+goog.i18n.currency.getGlobalCurrencyPattern=function(a){var b=goog.i18n.currency.CurrencyInfo[a],c=b[0];return a==b[1]?goog.i18n.currency.getCurrencyPattern_(c,b[1]):a+" "+goog.i18n.currency.getCurrencyPattern_(c,b[1])};goog.i18n.currency.getGlobalCurrencySign=function(a){var b=goog.i18n.currency.CurrencyInfo[a];return a==b[1]?a:a+" "+b[1]};goog.i18n.currency.getLocalCurrencyPattern=function(a){a=goog.i18n.currency.CurrencyInfo[a];return goog.i18n.currency.getCurrencyPattern_(a[0],a[1])};
+goog.i18n.currency.getLocalCurrencySign=function(a){return goog.i18n.currency.CurrencyInfo[a][1]};goog.i18n.currency.getPortableCurrencyPattern=function(a){a=goog.i18n.currency.CurrencyInfo[a];return goog.i18n.currency.getCurrencyPattern_(a[0],a[2])};goog.i18n.currency.getPortableCurrencySign=function(a){return goog.i18n.currency.CurrencyInfo[a][2]};goog.i18n.currency.isPrefixSignPosition=function(a){return 0==(goog.i18n.currency.CurrencyInfo[a][0]&goog.i18n.currency.POSITION_FLAG_)};
+goog.i18n.currency.getCurrencyPattern_=function(a,b){var c=["#,##0"],d=a&goog.i18n.currency.PRECISION_MASK_;if(0<d){c.push(".");for(var e=0;e<d;e++)c.push("0")}0==(a&goog.i18n.currency.POSITION_FLAG_)?(c.unshift(a&goog.i18n.currency.SPACE_FLAG_?"' ":"'"),c.unshift(b),c.unshift("'")):c.push(a&goog.i18n.currency.SPACE_FLAG_?" '":"'",b,"'");return c.join("")};
+goog.i18n.currency.adjustPrecision=function(a,b){var c=["0"],d=goog.i18n.currency.CurrencyInfo[b],d=d[0]&goog.i18n.currency.PRECISION_MASK_;if(0<d){c.push(".");for(var e=0;e<d;e++)c.push("0")}return a.replace(/0.00/g,c.join(""))};
+goog.i18n.currency.CurrencyInfo={AED:[2,"dh","\u062f.\u0625.","DH"],ALL:[0,"Lek","Lek"],AUD:[2,"$","AU$"],BDT:[2,"\u09f3","Tk"],BGN:[2,"lev","lev"],BRL:[2,"R$","R$"],CAD:[2,"$","C$"],CDF:[2,"FrCD","CDF"],CHF:[2,"CHF","CHF"],CLP:[0,"$","CL$"],CNY:[2,"\u00a5","RMB\u00a5"],COP:[0,"$","COL$"],CRC:[0,"\u20a1","CR\u20a1"],CZK:[50,"K\u010d","K\u010d"],DKK:[18,"kr","kr"],DOP:[2,"$","RD$"],EGP:[2,"\u00a3","LE"],ETB:[2,"Birr","Birr"],EUR:[2,"\u20ac","\u20ac"],GBP:[2,"\u00a3","GB\u00a3"],HKD:[2,"$","HK$"],HRK:[2,
+"kn","kn"],HUF:[0,"Ft","Ft"],IDR:[0,"Rp","Rp"],ILS:[2,"\u20aa","IL\u20aa"],INR:[2,"\u20b9","Rs"],IRR:[0,"Rial","IRR"],ISK:[0,"kr","kr"],JMD:[2,"$","JA$"],JPY:[0,"\u00a5","JP\u00a5"],KRW:[0,"\u20a9","KR\u20a9"],LKR:[2,"Rs","SLRs"],LTL:[2,"Lt","Lt"],LVL:[2,"Ls","Ls"],MNT:[0,"\u20ae","MN\u20ae"],MXN:[2,"$","Mex$"],MYR:[2,"RM","RM"],NOK:[50,"kr","NOkr"],PAB:[2,"B/.","B/."],PEN:[2,"S/.","S/."],PHP:[2,"\u20b1","Php"],PKR:[0,"Rs","PKRs."],PLN:[50,"z\u0142","z\u0142"],RON:[2,"RON","RON"],RSD:[0,"din","RSD"],
+RUB:[50,"\u0440\u0443\u0431.","\u0440\u0443\u0431."],SAR:[2,"Rial","Rial"],SEK:[2,"kr","kr"],SGD:[2,"$","S$"],THB:[2,"\u0e3f","THB"],TRY:[2,"TL","YTL"],TWD:[2,"NT$","NT$"],TZS:[0,"TSh","TSh"],UAH:[2,"\u20b4","UAH"],USD:[2,"$","US$"],UYU:[2,"$","$U"],VND:[0,"\u20ab","VN\u20ab"],YER:[0,"Rial","Rial"],ZAR:[2,"R","ZAR"]};
+goog.i18n.currency.CurrencyInfoTier2={AFN:[48,"Af.","AFN"],AMD:[0,"Dram","dram"],AOA:[2,"Kz","Kz"],ARS:[2,"$","AR$"],AWG:[2,"Afl.","Afl."],AZN:[2,"man.","man."],BAM:[2,"KM","KM"],BBD:[2,"$","Bds$"],BHD:[3,"din","din"],BIF:[0,"FBu","FBu"],BMD:[2,"$","BD$"],BND:[2,"$","B$"],BOB:[2,"Bs","Bs"],BSD:[2,"$","BS$"],BTN:[2,"Nu.","Nu."],BWP:[2,"P","pula"],BYR:[0,"BYR","BYR"],BZD:[2,"$","BZ$"],CUC:[1,"$","CUC$"],CUP:[2,"$","CU$"],CVE:[2,"CVE","Esc"],DJF:[0,"Fdj","Fdj"],DZD:[2,"din","din"],ERN:[2,"Nfk","Nfk"],
+FJD:[2,"$","FJ$"],FKP:[2,"\u00a3","FK\u00a3"],GEL:[2,"GEL","GEL"],GHS:[2,"GHS","GHS"],GIP:[2,"\u00a3","GI\u00a3"],GMD:[2,"GMD","GMD"],GNF:[0,"FG","FG"],GTQ:[2,"Q","GTQ"],GYD:[0,"$","GY$"],HNL:[2,"L","HNL"],HTG:[2,"HTG","HTG"],IQD:[0,"din","IQD"],JOD:[3,"din","JOD"],KES:[2,"Ksh","Ksh"],KGS:[2,"KGS","KGS"],KHR:[2,"Riel","KHR"],KMF:[0,"CF","KMF"],KPW:[0,"\u20a9KP","KPW"],KWD:[3,"din","KWD"],KYD:[2,"$","KY$"],KZT:[2,"\u20b8","KZT"],LAK:[0,"\u20ad","\u20ad"],LBP:[0,"L\u00a3","LBP"],LRD:[2,"$","L$"],LSL:[2,
+"LSL","LSL"],LYD:[3,"din","LD"],MAD:[2,"dh","MAD"],MDL:[2,"MDL","MDL"],MGA:[0,"Ar","MGA"],MKD:[2,"din","MKD"],MMK:[0,"K","MMK"],MOP:[2,"MOP","MOP$"],MRO:[0,"MRO","MRO"],MUR:[0,"MURs","MURs"],MWK:[2,"MWK","MWK"],MZN:[2,"MTn","MTn"],NAD:[2,"$","N$"],NGN:[2,"\u20a6","NG\u20a6"],NIO:[2,"C$","C$"],NPR:[2,"Rs","NPRs"],NZD:[2,"$","NZ$"],OMR:[3,"Rial","OMR"],PGK:[2,"PGK","PGK"],PYG:[0,"Gs","PYG"],QAR:[2,"Rial","QR"],RWF:[0,"RF","RF"],SBD:[2,"$","SI$"],SCR:[2,"SCR","SCR"],SDG:[2,"SDG","SDG"],SHP:[2,"\u00a3",
+"SH\u00a3"],SLL:[0,"SLL","SLL"],SOS:[0,"SOS","SOS"],SRD:[2,"$","SR$"],STD:[0,"Db","Db"],SYP:[0,"\u00a3","SY\u00a3"],SZL:[2,"SZL","SZL"],TJS:[2,"Som","TJS"],TND:[3,"din","DT"],TOP:[2,"T$","T$"],TTD:[2,"$","TT$"],UGX:[0,"UGX","UGX"],UZS:[0,"so\u02bcm","UZS"],VEF:[2,"Bs","Bs"],VUV:[0,"VUV","VUV"],WST:[2,"WST","WST"],XAF:[0,"FCFA","FCFA"],XCD:[2,"$","EC$"],XOF:[0,"CFA","CFA"],XPF:[0,"FCFP","FCFP"],ZMK:[0,"ZMK","ZMK"]};goog.i18n.NumberFormatSymbols_af={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ZAR"};goog.i18n.NumberFormatSymbols_af_ZA=goog.i18n.NumberFormatSymbols_af;
+goog.i18n.NumberFormatSymbols_am={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ETB"};goog.i18n.NumberFormatSymbols_am_ET=goog.i18n.NumberFormatSymbols_am;
+goog.i18n.NumberFormatSymbols_ar={DECIMAL_SEP:"\u066b",GROUP_SEP:"\u066c",PERCENT:"\u066a",ZERO_DIGIT:"\u0660",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"\u0627\u0633",PERMILL:"\u0609",INFINITY:"\u221e",NAN:"\u0644\u064a\u0633\u00a0\u0631\u0642\u0645",DECIMAL_PATTERN:"#0.###;#0.###-",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#0.00;\u00a4\u00a0#0.00-",DEF_CURRENCY_CODE:"EGP"};goog.i18n.NumberFormatSymbols_ar_001=goog.i18n.NumberFormatSymbols_ar;
+goog.i18n.NumberFormatSymbols_ar_EG=goog.i18n.NumberFormatSymbols_ar;goog.i18n.NumberFormatSymbols_bg={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"BGN"};goog.i18n.NumberFormatSymbols_bg_BG=goog.i18n.NumberFormatSymbols_bg;
+goog.i18n.NumberFormatSymbols_bn={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"\u09e6",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u09b8\u0982\u0996\u09cd\u09af\u09be\u00a0\u09a8\u09be",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"#,##,##0.00\u00a4;(#,##,##0.00\u00a4)",DEF_CURRENCY_CODE:"BDT"};goog.i18n.NumberFormatSymbols_bn_BD=goog.i18n.NumberFormatSymbols_bn;
+goog.i18n.NumberFormatSymbols_br={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_br_FR=goog.i18n.NumberFormatSymbols_br;
+goog.i18n.NumberFormatSymbols_ca={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_ca_AD=goog.i18n.NumberFormatSymbols_ca;goog.i18n.NumberFormatSymbols_ca_ES=goog.i18n.NumberFormatSymbols_ca;
+goog.i18n.NumberFormatSymbols_chr={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"USD"};goog.i18n.NumberFormatSymbols_chr_US=goog.i18n.NumberFormatSymbols_chr;
+goog.i18n.NumberFormatSymbols_cs={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"CZK"};goog.i18n.NumberFormatSymbols_cs_CZ=goog.i18n.NumberFormatSymbols_cs;
+goog.i18n.NumberFormatSymbols_cy={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"GBP"};goog.i18n.NumberFormatSymbols_cy_GB=goog.i18n.NumberFormatSymbols_cy;
+goog.i18n.NumberFormatSymbols_da={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"DKK"};goog.i18n.NumberFormatSymbols_da_DK=goog.i18n.NumberFormatSymbols_da;
+goog.i18n.NumberFormatSymbols_de={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};
+goog.i18n.NumberFormatSymbols_de_AT={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_de_BE=goog.i18n.NumberFormatSymbols_de;
+goog.i18n.NumberFormatSymbols_de_CH={DECIMAL_SEP:".",GROUP_SEP:"'",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00;\u00a4-#,##0.00",DEF_CURRENCY_CODE:"CHF"};goog.i18n.NumberFormatSymbols_de_DE=goog.i18n.NumberFormatSymbols_de;goog.i18n.NumberFormatSymbols_de_LU=goog.i18n.NumberFormatSymbols_de;
+goog.i18n.NumberFormatSymbols_el={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"e",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"[#E0]",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_el_GR=goog.i18n.NumberFormatSymbols_el;
+goog.i18n.NumberFormatSymbols_en={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"USD"};goog.i18n.NumberFormatSymbols_en_AS=goog.i18n.NumberFormatSymbols_en;
+goog.i18n.NumberFormatSymbols_en_AU={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"AUD"};goog.i18n.NumberFormatSymbols_en_Dsrt_US=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_FM=goog.i18n.NumberFormatSymbols_en;
+goog.i18n.NumberFormatSymbols_en_GB={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"GBP"};goog.i18n.NumberFormatSymbols_en_GU=goog.i18n.NumberFormatSymbols_en;
+goog.i18n.NumberFormatSymbols_en_IE={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};
+goog.i18n.NumberFormatSymbols_en_IN={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_en_MH=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_MP=goog.i18n.NumberFormatSymbols_en;
+goog.i18n.NumberFormatSymbols_en_PR=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_PW=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_SG={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"SGD"};
+goog.i18n.NumberFormatSymbols_en_TC=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_UM=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_US=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_VG=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_VI=goog.i18n.NumberFormatSymbols_en;
+goog.i18n.NumberFormatSymbols_en_ZA={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ZAR"};
+goog.i18n.NumberFormatSymbols_es={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};
+goog.i18n.NumberFormatSymbols_es_419={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"MXN"};goog.i18n.NumberFormatSymbols_es_EA=goog.i18n.NumberFormatSymbols_es;goog.i18n.NumberFormatSymbols_es_ES=goog.i18n.NumberFormatSymbols_es;goog.i18n.NumberFormatSymbols_es_IC=goog.i18n.NumberFormatSymbols_es;
+goog.i18n.NumberFormatSymbols_et={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_et_EE=goog.i18n.NumberFormatSymbols_et;
+goog.i18n.NumberFormatSymbols_eu={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"%\u00a0#,##0",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_eu_ES=goog.i18n.NumberFormatSymbols_eu;
+goog.i18n.NumberFormatSymbols_fa={DECIMAL_SEP:"\u066b",GROUP_SEP:"\u066c",PERCENT:"\u066a",ZERO_DIGIT:"\u06f0",PLUS_SIGN:"+",MINUS_SIGN:"\u2212",EXP_SYMBOL:"\u00d7\u06f1\u06f0^",PERMILL:"\u0609",INFINITY:"\u221e",NAN:"\u0646\u0627\u0639\u062f\u062f",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u200e\u00a4#,##0.00;\u200e(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"IRR"};goog.i18n.NumberFormatSymbols_fa_IR=goog.i18n.NumberFormatSymbols_fa;
+goog.i18n.NumberFormatSymbols_fi={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"ep\u00e4luku",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_fi_FI=goog.i18n.NumberFormatSymbols_fi;
+goog.i18n.NumberFormatSymbols_fil={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"PHP"};goog.i18n.NumberFormatSymbols_fil_PH=goog.i18n.NumberFormatSymbols_fil;
+goog.i18n.NumberFormatSymbols_fr={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_fr_BL=goog.i18n.NumberFormatSymbols_fr;
+goog.i18n.NumberFormatSymbols_fr_CA={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"CAD"};goog.i18n.NumberFormatSymbols_fr_FR=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_GF=goog.i18n.NumberFormatSymbols_fr;
+goog.i18n.NumberFormatSymbols_fr_GP=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_MC=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_MF=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_MQ=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_RE=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_YT=goog.i18n.NumberFormatSymbols_fr;
+goog.i18n.NumberFormatSymbols_gl={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_gl_ES=goog.i18n.NumberFormatSymbols_gl;
+goog.i18n.NumberFormatSymbols_gsw={DECIMAL_SEP:".",GROUP_SEP:"\u2019",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"\u2212",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"CHF"};goog.i18n.NumberFormatSymbols_gsw_CH=goog.i18n.NumberFormatSymbols_gsw;
+goog.i18n.NumberFormatSymbols_gu={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_gu_IN=goog.i18n.NumberFormatSymbols_gu;
+goog.i18n.NumberFormatSymbols_haw={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"USD"};goog.i18n.NumberFormatSymbols_haw_US=goog.i18n.NumberFormatSymbols_haw;
+goog.i18n.NumberFormatSymbols_he={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"ILS"};goog.i18n.NumberFormatSymbols_he_IL=goog.i18n.NumberFormatSymbols_he;
+goog.i18n.NumberFormatSymbols_hi={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_hi_IN=goog.i18n.NumberFormatSymbols_hi;
+goog.i18n.NumberFormatSymbols_hr={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"HRK"};goog.i18n.NumberFormatSymbols_hr_HR=goog.i18n.NumberFormatSymbols_hr;
+goog.i18n.NumberFormatSymbols_hu={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"HUF"};goog.i18n.NumberFormatSymbols_hu_HU=goog.i18n.NumberFormatSymbols_hu;
+goog.i18n.NumberFormatSymbols_id={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"IDR"};goog.i18n.NumberFormatSymbols_id_ID=goog.i18n.NumberFormatSymbols_id;
+goog.i18n.NumberFormatSymbols_in={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"IDR"};
+goog.i18n.NumberFormatSymbols_is={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ISK"};goog.i18n.NumberFormatSymbols_is_IS=goog.i18n.NumberFormatSymbols_is;
+goog.i18n.NumberFormatSymbols_it={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_it_IT=goog.i18n.NumberFormatSymbols_it;goog.i18n.NumberFormatSymbols_it_SM=goog.i18n.NumberFormatSymbols_it;
+goog.i18n.NumberFormatSymbols_iw={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"ILS"};
+goog.i18n.NumberFormatSymbols_ja={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"JPY"};goog.i18n.NumberFormatSymbols_ja_JP=goog.i18n.NumberFormatSymbols_ja;
+goog.i18n.NumberFormatSymbols_kn={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"\u0c88",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_kn_IN=goog.i18n.NumberFormatSymbols_kn;
+goog.i18n.NumberFormatSymbols_ko={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"KRW"};goog.i18n.NumberFormatSymbols_ko_KR=goog.i18n.NumberFormatSymbols_ko;
+goog.i18n.NumberFormatSymbols_ln={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"CDF"};goog.i18n.NumberFormatSymbols_ln_CD=goog.i18n.NumberFormatSymbols_ln;
+goog.i18n.NumberFormatSymbols_lt={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"\u2013",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"LTL"};goog.i18n.NumberFormatSymbols_lt_LT=goog.i18n.NumberFormatSymbols_lt;
+goog.i18n.NumberFormatSymbols_lv={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"nav\u00a0skaitlis",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"LVL"};goog.i18n.NumberFormatSymbols_lv_LV=goog.i18n.NumberFormatSymbols_lv;
+goog.i18n.NumberFormatSymbols_ml={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"#,##,##0.00\u00a4",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_ml_IN=goog.i18n.NumberFormatSymbols_ml;
+goog.i18n.NumberFormatSymbols_mr={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"\u0966",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_mr_IN=goog.i18n.NumberFormatSymbols_mr;
+goog.i18n.NumberFormatSymbols_ms={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"MYR"};goog.i18n.NumberFormatSymbols_ms_Latn_MY=goog.i18n.NumberFormatSymbols_ms;
+goog.i18n.NumberFormatSymbols_mt={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_mt_MT=goog.i18n.NumberFormatSymbols_mt;
+goog.i18n.NumberFormatSymbols_nb={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"NOK"};goog.i18n.NumberFormatSymbols_nb_NO=goog.i18n.NumberFormatSymbols_nb;
+goog.i18n.NumberFormatSymbols_nl={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00;\u00a4\u00a0#,##0.00-",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_nl_NL=goog.i18n.NumberFormatSymbols_nl;
+goog.i18n.NumberFormatSymbols_no={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"NOK"};
+goog.i18n.NumberFormatSymbols_or={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_or_IN=goog.i18n.NumberFormatSymbols_or;
+goog.i18n.NumberFormatSymbols_pl={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"PLN"};goog.i18n.NumberFormatSymbols_pl_PL=goog.i18n.NumberFormatSymbols_pl;
+goog.i18n.NumberFormatSymbols_pt={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"BRL"};goog.i18n.NumberFormatSymbols_pt_BR=goog.i18n.NumberFormatSymbols_pt;
+goog.i18n.NumberFormatSymbols_pt_PT={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};
+goog.i18n.NumberFormatSymbols_ro={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"RON"};goog.i18n.NumberFormatSymbols_ro_RO=goog.i18n.NumberFormatSymbols_ro;
+goog.i18n.NumberFormatSymbols_ru={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u043d\u0435\u00a0\u0447\u0438\u0441\u043b\u043e",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"RUB"};goog.i18n.NumberFormatSymbols_ru_RU=goog.i18n.NumberFormatSymbols_ru;
+goog.i18n.NumberFormatSymbols_sk={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_sk_SK=goog.i18n.NumberFormatSymbols_sk;
+goog.i18n.NumberFormatSymbols_sl={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"e",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_sl_SI=goog.i18n.NumberFormatSymbols_sl;
+goog.i18n.NumberFormatSymbols_sq={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"ALL"};goog.i18n.NumberFormatSymbols_sq_AL=goog.i18n.NumberFormatSymbols_sq;
+goog.i18n.NumberFormatSymbols_sr={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"RSD"};goog.i18n.NumberFormatSymbols_sr_Cyrl_RS=goog.i18n.NumberFormatSymbols_sr;
+goog.i18n.NumberFormatSymbols_sv={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"\u2212",EXP_SYMBOL:"\u00d710^",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u00a4\u00a4\u00a4",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"SEK"};goog.i18n.NumberFormatSymbols_sv_SE=goog.i18n.NumberFormatSymbols_sv;
+goog.i18n.NumberFormatSymbols_sw={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"TZS"};goog.i18n.NumberFormatSymbols_sw_TZ=goog.i18n.NumberFormatSymbols_sw;
+goog.i18n.NumberFormatSymbols_ta={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_ta_IN=goog.i18n.NumberFormatSymbols_ta;
+goog.i18n.NumberFormatSymbols_te={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_te_IN=goog.i18n.NumberFormatSymbols_te;
+goog.i18n.NumberFormatSymbols_th={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"THB"};goog.i18n.NumberFormatSymbols_th_TH=goog.i18n.NumberFormatSymbols_th;
+goog.i18n.NumberFormatSymbols_tl={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"PHP"};
+goog.i18n.NumberFormatSymbols_tr={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"%#,##0",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"TRY"};goog.i18n.NumberFormatSymbols_tr_TR=goog.i18n.NumberFormatSymbols_tr;
+goog.i18n.NumberFormatSymbols_uk={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"\u0415",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u041d\u0435\u00a0\u0447\u0438\u0441\u043b\u043e",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"UAH"};goog.i18n.NumberFormatSymbols_uk_UA=goog.i18n.NumberFormatSymbols_uk;
+goog.i18n.NumberFormatSymbols_ur={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"PKR"};goog.i18n.NumberFormatSymbols_ur_PK=goog.i18n.NumberFormatSymbols_ur;
+goog.i18n.NumberFormatSymbols_vi={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"VND"};goog.i18n.NumberFormatSymbols_vi_VN=goog.i18n.NumberFormatSymbols_vi;
+goog.i18n.NumberFormatSymbols_zh={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"CNY"};goog.i18n.NumberFormatSymbols_zh_CN=goog.i18n.NumberFormatSymbols_zh;
+goog.i18n.NumberFormatSymbols_zh_HK={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u975e\u6578\u503c",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"HKD"};goog.i18n.NumberFormatSymbols_zh_Hans_CN=goog.i18n.NumberFormatSymbols_zh;
+goog.i18n.NumberFormatSymbols_zh_TW={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u975e\u6578\u503c",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"TWD"};
+goog.i18n.NumberFormatSymbols_zu={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"I-NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ZAR"};goog.i18n.NumberFormatSymbols_zu_ZA=goog.i18n.NumberFormatSymbols_zu;goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;
+"af"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_af);if("af_ZA"==goog.LOCALE||"af-ZA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_af;"am"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_am);if("am_ET"==goog.LOCALE||"am-ET"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_am;"ar"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ar);
+if("ar_001"==goog.LOCALE||"ar-001"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ar;if("ar_EG"==goog.LOCALE||"ar-EG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ar;"bg"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bg);if("bg_BG"==goog.LOCALE||"bg-BG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bg;"bn"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bn);
+if("bn_BD"==goog.LOCALE||"bn-BD"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bn;"br"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_br);if("br_FR"==goog.LOCALE||"br-FR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_br;"ca"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ca);if("ca_AD"==goog.LOCALE||"ca-AD"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ca;
+if("ca_ES"==goog.LOCALE||"ca-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ca;"chr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_chr);if("chr_US"==goog.LOCALE||"chr-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_chr;"cs"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cs);if("cs_CZ"==goog.LOCALE||"cs-CZ"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cs;
+"cy"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cy);if("cy_GB"==goog.LOCALE||"cy-GB"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cy;"da"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_da);if("da_DK"==goog.LOCALE||"da-DK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_da;"de"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de);
+if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de_AT;if("de_BE"==goog.LOCALE||"de-BE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de;if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de_CH;if("de_DE"==goog.LOCALE||"de-DE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de;
+if("de_LU"==goog.LOCALE||"de-LU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de;"el"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_el);if("el_GR"==goog.LOCALE||"el-GR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_el;"en"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en);if("en_AS"==goog.LOCALE||"en-AS"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;
+if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_AU;if("en_Dsrt_US"==goog.LOCALE||"en-Dsrt-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_FM"==goog.LOCALE||"en-FM"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_GB;
+if("en_GU"==goog.LOCALE||"en-GU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_IE;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_IN;if("en_MH"==goog.LOCALE||"en-MH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;
+if("en_MP"==goog.LOCALE||"en-MP"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_PR"==goog.LOCALE||"en-PR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_PW"==goog.LOCALE||"en-PW"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_SG;
+if("en_TC"==goog.LOCALE||"en-TC"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_UM"==goog.LOCALE||"en-UM"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_VG"==goog.LOCALE||"en-VG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;
+if("en_VI"==goog.LOCALE||"en-VI"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_ZA;"es"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es_419;if("es_EA"==goog.LOCALE||"es-EA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es;
+if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es;if("es_IC"==goog.LOCALE||"es-IC"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es;"et"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_et);if("et_EE"==goog.LOCALE||"et-EE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_et;"eu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_eu);
+if("eu_ES"==goog.LOCALE||"eu-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_eu;"fa"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fa);if("fa_IR"==goog.LOCALE||"fa-IR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fa;"fi"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fi);if("fi_FI"==goog.LOCALE||"fi-FI"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fi;
+"fil"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fil);if("fil_PH"==goog.LOCALE||"fil-PH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fil;"fr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr);if("fr_BL"==goog.LOCALE||"fr-BL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr_CA;
+if("fr_FR"==goog.LOCALE||"fr-FR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_GF"==goog.LOCALE||"fr-GF"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_GP"==goog.LOCALE||"fr-GP"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_MC"==goog.LOCALE||"fr-MC"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;
+if("fr_MF"==goog.LOCALE||"fr-MF"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_MQ"==goog.LOCALE||"fr-MQ"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_RE"==goog.LOCALE||"fr-RE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_YT"==goog.LOCALE||"fr-YT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;"gl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gl);
+if("gl_ES"==goog.LOCALE||"gl-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gl;"gsw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gsw);if("gsw_CH"==goog.LOCALE||"gsw-CH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gsw;"gu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gu);if("gu_IN"==goog.LOCALE||"gu-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gu;
+"haw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_haw);if("haw_US"==goog.LOCALE||"haw-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_haw;"he"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_he);if("he_IL"==goog.LOCALE||"he-IL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_he;"hi"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hi);
+if("hi_IN"==goog.LOCALE||"hi-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hi;"hr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hr);if("hr_HR"==goog.LOCALE||"hr-HR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hr;"hu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hu);if("hu_HU"==goog.LOCALE||"hu-HU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hu;
+"id"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_id);if("id_ID"==goog.LOCALE||"id-ID"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_id;"in"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_in);"is"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_is);if("is_IS"==goog.LOCALE||"is-IS"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_is;
+"it"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_it);if("it_IT"==goog.LOCALE||"it-IT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_it;if("it_SM"==goog.LOCALE||"it-SM"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_it;"iw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_iw);"ja"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ja);
+if("ja_JP"==goog.LOCALE||"ja-JP"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ja;"kn"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_kn);if("kn_IN"==goog.LOCALE||"kn-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_kn;"ko"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ko);if("ko_KR"==goog.LOCALE||"ko-KR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ko;
+"ln"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ln);if("ln_CD"==goog.LOCALE||"ln-CD"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ln;"lt"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lt);if("lt_LT"==goog.LOCALE||"lt-LT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lt;"lv"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lv);
+if("lv_LV"==goog.LOCALE||"lv-LV"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lv;"ml"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ml);if("ml_IN"==goog.LOCALE||"ml-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ml;"mr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mr);if("mr_IN"==goog.LOCALE||"mr-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mr;
+"ms"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ms);if("ms_Latn_MY"==goog.LOCALE||"ms-Latn-MY"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ms;"mt"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mt);if("mt_MT"==goog.LOCALE||"mt-MT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mt;"nb"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nb);
+if("nb_NO"==goog.LOCALE||"nb-NO"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nb;"nl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nl);if("nl_NL"==goog.LOCALE||"nl-NL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nl;"no"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_no);"or"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_or);
+if("or_IN"==goog.LOCALE||"or-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_or;"pl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pl);if("pl_PL"==goog.LOCALE||"pl-PL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pl;"pt"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pt);if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pt;
+if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pt_PT;"ro"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ro);if("ro_RO"==goog.LOCALE||"ro-RO"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ro;"ru"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ru);if("ru_RU"==goog.LOCALE||"ru-RU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ru;
+"sk"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sk);if("sk_SK"==goog.LOCALE||"sk-SK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sk;"sl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sl);if("sl_SI"==goog.LOCALE||"sl-SI"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sl;"sq"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sq);
+if("sq_AL"==goog.LOCALE||"sq-AL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sq;"sr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sr);if("sr_Cyrl_RS"==goog.LOCALE||"sr-Cyrl-RS"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sr;"sv"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sv);if("sv_SE"==goog.LOCALE||"sv-SE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sv;
+"sw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sw);if("sw_TZ"==goog.LOCALE||"sw-TZ"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sw;"ta"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ta);if("ta_IN"==goog.LOCALE||"ta-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ta;"te"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_te);
+if("te_IN"==goog.LOCALE||"te-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_te;"th"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_th);if("th_TH"==goog.LOCALE||"th-TH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_th;"tl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_tl);"tr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_tr);
+if("tr_TR"==goog.LOCALE||"tr-TR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_tr;"uk"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_uk);if("uk_UA"==goog.LOCALE||"uk-UA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_uk;"ur"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ur);if("ur_PK"==goog.LOCALE||"ur-PK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ur;
+"vi"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_vi);if("vi_VN"==goog.LOCALE||"vi-VN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_vi;"zh"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh);if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh_HK;
+if("zh_Hans_CN"==goog.LOCALE||"zh-Hans-CN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh;if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh_TW;"zu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zu);if("zu_ZA"==goog.LOCALE||"zu-ZA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zu;goog.i18n.NumberFormat=function(a,b,c){this.intlCurrencyCode_=b||goog.i18n.NumberFormatSymbols.DEF_CURRENCY_CODE;this.currencyStyle_=c||goog.i18n.NumberFormat.CurrencyStyle.LOCAL;this.maximumIntegerDigits_=40;this.minimumIntegerDigits_=1;this.significantDigits_=0;this.maximumFractionDigits_=3;this.minExponentDigits_=this.minimumFractionDigits_=0;this.showTrailingZeros_=this.useSignForPositiveExponent_=!1;this.positiveSuffix_=this.positivePrefix_="";this.negativePrefix_="-";this.negativeSuffix_="";
+this.multiplier_=1;this.groupingSize_=3;this.useExponentialNotation_=this.decimalSeparatorAlwaysShown_=!1;this.compactStyle_=goog.i18n.NumberFormat.CompactStyle.NONE;this.baseFormattingNumber_=null;"number"==typeof a?this.applyStandardPattern_(a):this.applyPattern_(a)};goog.i18n.NumberFormat.Format={DECIMAL:1,SCIENTIFIC:2,PERCENT:3,CURRENCY:4,COMPACT_SHORT:5,COMPACT_LONG:6};goog.i18n.NumberFormat.CurrencyStyle={LOCAL:0,PORTABLE:1,GLOBAL:2};goog.i18n.NumberFormat.CompactStyle={NONE:0,SHORT:1,LONG:2};
+goog.i18n.NumberFormat.enforceAsciiDigits_=!1;goog.i18n.NumberFormat.setEnforceAsciiDigits=function(a){goog.i18n.NumberFormat.enforceAsciiDigits_=a};goog.i18n.NumberFormat.isEnforceAsciiDigits=function(){return goog.i18n.NumberFormat.enforceAsciiDigits_};goog.i18n.NumberFormat.prototype.setMinimumFractionDigits=function(a){if(0<this.significantDigits_&&0<a)throw Error("Can't combine significant digits and minimum fraction digits");this.minimumFractionDigits_=a};
+goog.i18n.NumberFormat.prototype.setMaximumFractionDigits=function(a){this.maximumFractionDigits_=a};goog.i18n.NumberFormat.prototype.setSignificantDigits=function(a){if(0<this.minimumFractionDigits_&&0<=a)throw Error("Can't combine significant digits and minimum fraction digits");this.significantDigits_=a};
+goog.i18n.NumberFormat.prototype.applyPattern_=function(a){a.replace(/ /g,"\u00a0");var b=[0];this.positivePrefix_=this.parseAffix_(a,b);var c=b[0];this.parseTrunk_(a,b);c=b[0]-c;this.positiveSuffix_=this.parseAffix_(a,b);b[0]<a.length&&a.charAt(b[0])==goog.i18n.NumberFormat.PATTERN_SEPARATOR_?(b[0]++,this.negativePrefix_=this.parseAffix_(a,b),b[0]+=c,this.negativeSuffix_=this.parseAffix_(a,b)):(this.negativePrefix_=this.positivePrefix_+this.negativePrefix_,this.negativeSuffix_+=this.positiveSuffix_)};
+goog.i18n.NumberFormat.prototype.applyStandardPattern_=function(a){switch(a){case goog.i18n.NumberFormat.Format.DECIMAL:this.applyPattern_(goog.i18n.NumberFormatSymbols.DECIMAL_PATTERN);break;case goog.i18n.NumberFormat.Format.SCIENTIFIC:this.applyPattern_(goog.i18n.NumberFormatSymbols.SCIENTIFIC_PATTERN);break;case goog.i18n.NumberFormat.Format.PERCENT:this.applyPattern_(goog.i18n.NumberFormatSymbols.PERCENT_PATTERN);break;case goog.i18n.NumberFormat.Format.CURRENCY:this.applyPattern_(goog.i18n.currency.adjustPrecision(goog.i18n.NumberFormatSymbols.CURRENCY_PATTERN,
+this.intlCurrencyCode_));break;case goog.i18n.NumberFormat.Format.COMPACT_SHORT:this.applyCompactStyle_(goog.i18n.NumberFormat.CompactStyle.SHORT);break;case goog.i18n.NumberFormat.Format.COMPACT_LONG:this.applyCompactStyle_(goog.i18n.NumberFormat.CompactStyle.LONG);break;default:throw Error("Unsupported pattern type.");}};
+goog.i18n.NumberFormat.prototype.applyCompactStyle_=function(a){this.compactStyle_=a;this.applyPattern_(goog.i18n.NumberFormatSymbols.DECIMAL_PATTERN);this.setMinimumFractionDigits(0);this.setMaximumFractionDigits(2);this.setSignificantDigits(2)};
+goog.i18n.NumberFormat.prototype.parse=function(a,b){var c=b||[0];if(this.compactStyle_!=goog.i18n.NumberFormat.CompactStyle.NONE)throw Error("Parsing of compact numbers is unimplemented");var d=NaN;a=a.replace(/ /g,"\u00a0");var e=a.indexOf(this.positivePrefix_,c[0])==c[0],f=a.indexOf(this.negativePrefix_,c[0])==c[0];e&&f&&(this.positivePrefix_.length>this.negativePrefix_.length?f=!1:this.positivePrefix_.length<this.negativePrefix_.length&&(e=!1));e?c[0]+=this.positivePrefix_.length:f&&(c[0]+=this.negativePrefix_.length);
+a.indexOf(goog.i18n.NumberFormatSymbols.INFINITY,c[0])==c[0]?(c[0]+=goog.i18n.NumberFormatSymbols.INFINITY.length,d=Infinity):d=this.parseNumber_(a,c);if(e){if(a.indexOf(this.positiveSuffix_,c[0])!=c[0])return NaN;c[0]+=this.positiveSuffix_.length}else if(f){if(a.indexOf(this.negativeSuffix_,c[0])!=c[0])return NaN;c[0]+=this.negativeSuffix_.length}return f?-d:d};
+goog.i18n.NumberFormat.prototype.parseNumber_=function(a,b){var c=!1,d=!1,e=!1,f=1,g=goog.i18n.NumberFormatSymbols.DECIMAL_SEP,h=goog.i18n.NumberFormatSymbols.GROUP_SEP,k=goog.i18n.NumberFormatSymbols.EXP_SYMBOL;if(this.compactStyle_!=goog.i18n.NumberFormat.CompactStyle.NONE)throw Error("Parsing of compact style numbers is not implemented");for(var l="";b[0]<a.length;b[0]++){var m=a.charAt(b[0]),p=this.getDigit_(m);if(0<=p&&9>=p)l+=p,e=!0;else if(m==g.charAt(0)){if(c||d)break;l+=".";c=!0}else if(m==
+h.charAt(0)&&("\u00a0"!=h.charAt(0)||b[0]+1<a.length&&0<=this.getDigit_(a.charAt(b[0]+1)))){if(c||d)break}else if(m==k.charAt(0)){if(d)break;l+="E";d=!0}else if("+"==m||"-"==m)l+=m;else if(m==goog.i18n.NumberFormatSymbols.PERCENT.charAt(0)){if(1!=f)break;f=100;if(e){b[0]++;break}}else if(m==goog.i18n.NumberFormatSymbols.PERMILL.charAt(0)){if(1!=f)break;f=1E3;if(e){b[0]++;break}}else break}return parseFloat(l)/f};
+goog.i18n.NumberFormat.prototype.format=function(a){if(isNaN(a))return goog.i18n.NumberFormatSymbols.NAN;var b=[],c=goog.isNull(this.baseFormattingNumber_)?a:this.baseFormattingNumber_,c=this.getUnitAfterRounding_(c,a);a/=Math.pow(10,c.divisorBase);b.push(c.prefix);var d=0>a||0==a&&0>1/a;b.push(d?this.negativePrefix_:this.positivePrefix_);isFinite(a)?(a*=d?-1:1,a*=this.multiplier_,this.useExponentialNotation_?this.subformatExponential_(a,b):this.subformatFixed_(a,this.minimumIntegerDigits_,b)):b.push(goog.i18n.NumberFormatSymbols.INFINITY);
+b.push(d?this.negativeSuffix_:this.positiveSuffix_);b.push(c.suffix);return b.join("")};goog.i18n.NumberFormat.prototype.roundNumber_=function(a){var b=Math.pow(10,this.maximumFractionDigits_),c=0>=this.significantDigits_?Math.round(a*b):Math.floor(this.roundToSignificantDigits_(a*b,this.significantDigits_,this.maximumFractionDigits_));isFinite(c)?(a=Math.floor(c/b),b=Math.floor(c-a*b)):b=0;return{intValue:a,fracValue:b}};
+goog.i18n.NumberFormat.prototype.subformatFixed_=function(a,b,c){if(this.minimumFractionDigits_>this.maximumFractionDigits_)throw Error("Min value must be less than max value");a=this.roundNumber_(a);var d=Math.pow(10,this.maximumFractionDigits_),e=a.intValue,f=a.fracValue,g=0==e?0:this.intLog10_(e)+1,h=0<this.minimumFractionDigits_||0<f||this.showTrailingZeros_&&g<this.significantDigits_;a=this.minimumFractionDigits_;h&&(a=this.showTrailingZeros_&&0<this.significantDigits_?this.significantDigits_-
+g:this.minimumFractionDigits_);for(var k="",g=e;1E20<g;)k="0"+k,g=Math.round(g/10);var k=g+k,l=goog.i18n.NumberFormatSymbols.DECIMAL_SEP,m=goog.i18n.NumberFormatSymbols.GROUP_SEP,g=goog.i18n.NumberFormat.enforceAsciiDigits_?48:goog.i18n.NumberFormatSymbols.ZERO_DIGIT.charCodeAt(0),p=k.length;if(0<e||0<b){for(e=p;e<b;e++)c.push(String.fromCharCode(g));for(e=0;e<p;e++)c.push(String.fromCharCode(g+1*k.charAt(e))),1<p-e&&0<this.groupingSize_&&1==(p-e)%this.groupingSize_&&c.push(m)}else h||c.push(String.fromCharCode(g));
+(this.decimalSeparatorAlwaysShown_||h)&&c.push(l);b=""+(f+d);for(d=b.length;"0"==b.charAt(d-1)&&d>a+1;)d--;for(e=1;e<d;e++)c.push(String.fromCharCode(g+1*b.charAt(e)))};
+goog.i18n.NumberFormat.prototype.addExponentPart_=function(a,b){b.push(goog.i18n.NumberFormatSymbols.EXP_SYMBOL);0>a?(a=-a,b.push(goog.i18n.NumberFormatSymbols.MINUS_SIGN)):this.useSignForPositiveExponent_&&b.push(goog.i18n.NumberFormatSymbols.PLUS_SIGN);for(var c=""+a,d=goog.i18n.NumberFormat.enforceAsciiDigits_?"0":goog.i18n.NumberFormatSymbols.ZERO_DIGIT,e=c.length;e<this.minExponentDigits_;e++)b.push(d);b.push(c)};
+goog.i18n.NumberFormat.prototype.subformatExponential_=function(a,b){if(0==a)this.subformatFixed_(a,this.minimumIntegerDigits_,b),this.addExponentPart_(0,b);else{var c=goog.math.safeFloor(Math.log(a)/Math.log(10));a/=Math.pow(10,c);var d=this.minimumIntegerDigits_;if(1<this.maximumIntegerDigits_&&this.maximumIntegerDigits_>this.minimumIntegerDigits_){for(;0!=c%this.maximumIntegerDigits_;)a*=10,c--;d=1}else 1>this.minimumIntegerDigits_?(c++,a/=10):(c-=this.minimumIntegerDigits_-1,a*=Math.pow(10,this.minimumIntegerDigits_-
+1));this.subformatFixed_(a,d,b);this.addExponentPart_(c,b)}};goog.i18n.NumberFormat.prototype.getDigit_=function(a){a=a.charCodeAt(0);if(48<=a&&58>a)return a-48;var b=goog.i18n.NumberFormatSymbols.ZERO_DIGIT.charCodeAt(0);return b<=a&&a<b+10?a-b:-1};goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_="0";goog.i18n.NumberFormat.PATTERN_GROUPING_SEPARATOR_=",";goog.i18n.NumberFormat.PATTERN_DECIMAL_SEPARATOR_=".";goog.i18n.NumberFormat.PATTERN_PER_MILLE_="\u2030";goog.i18n.NumberFormat.PATTERN_PERCENT_="%";
+goog.i18n.NumberFormat.PATTERN_DIGIT_="#";goog.i18n.NumberFormat.PATTERN_SEPARATOR_=";";goog.i18n.NumberFormat.PATTERN_EXPONENT_="E";goog.i18n.NumberFormat.PATTERN_PLUS_="+";goog.i18n.NumberFormat.PATTERN_MINUS_="-";goog.i18n.NumberFormat.PATTERN_CURRENCY_SIGN_="\u00a4";goog.i18n.NumberFormat.QUOTE_="'";
+goog.i18n.NumberFormat.prototype.parseAffix_=function(a,b){for(var c="",d=!1,e=a.length;b[0]<e;b[0]++){var f=a.charAt(b[0]);if(f==goog.i18n.NumberFormat.QUOTE_)b[0]+1<e&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.QUOTE_?(b[0]++,c+="'"):d=!d;else if(d)c+=f;else switch(f){case goog.i18n.NumberFormat.PATTERN_DIGIT_:case goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_:case goog.i18n.NumberFormat.PATTERN_GROUPING_SEPARATOR_:case goog.i18n.NumberFormat.PATTERN_DECIMAL_SEPARATOR_:case goog.i18n.NumberFormat.PATTERN_SEPARATOR_:return c;
+case goog.i18n.NumberFormat.PATTERN_CURRENCY_SIGN_:if(b[0]+1<e&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.PATTERN_CURRENCY_SIGN_)b[0]++,c+=this.intlCurrencyCode_;else switch(this.currencyStyle_){case goog.i18n.NumberFormat.CurrencyStyle.LOCAL:c+=goog.i18n.currency.getLocalCurrencySign(this.intlCurrencyCode_);break;case goog.i18n.NumberFormat.CurrencyStyle.GLOBAL:c+=goog.i18n.currency.getGlobalCurrencySign(this.intlCurrencyCode_);break;case goog.i18n.NumberFormat.CurrencyStyle.PORTABLE:c+=goog.i18n.currency.getPortableCurrencySign(this.intlCurrencyCode_)}break;
+case goog.i18n.NumberFormat.PATTERN_PERCENT_:if(1!=this.multiplier_)throw Error("Too many percent/permill");this.multiplier_=100;c+=goog.i18n.NumberFormatSymbols.PERCENT;break;case goog.i18n.NumberFormat.PATTERN_PER_MILLE_:if(1!=this.multiplier_)throw Error("Too many percent/permill");this.multiplier_=1E3;c+=goog.i18n.NumberFormatSymbols.PERMILL;break;default:c+=f}}return c};
+goog.i18n.NumberFormat.prototype.parseTrunk_=function(a,b){for(var c=-1,d=0,e=0,f=0,g=-1,h=a.length,k=!0;b[0]<h&&k;b[0]++){var l=a.charAt(b[0]);switch(l){case goog.i18n.NumberFormat.PATTERN_DIGIT_:0<e?f++:d++;0<=g&&0>c&&g++;break;case goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_:if(0<f)throw Error('Unexpected "0" in pattern "'+a+'"');e++;0<=g&&0>c&&g++;break;case goog.i18n.NumberFormat.PATTERN_GROUPING_SEPARATOR_:g=0;break;case goog.i18n.NumberFormat.PATTERN_DECIMAL_SEPARATOR_:if(0<=c)throw Error('Multiple decimal separators in pattern "'+
+a+'"');c=d+e+f;break;case goog.i18n.NumberFormat.PATTERN_EXPONENT_:if(this.useExponentialNotation_)throw Error('Multiple exponential symbols in pattern "'+a+'"');this.useExponentialNotation_=!0;this.minExponentDigits_=0;b[0]+1<h&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.PATTERN_PLUS_&&(b[0]++,this.useSignForPositiveExponent_=!0);for(;b[0]+1<h&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_;)b[0]++,this.minExponentDigits_++;if(1>d+e||1>this.minExponentDigits_)throw Error('Malformed exponential pattern "'+
+a+'"');k=!1;break;default:b[0]--,k=!1}}0==e&&0<d&&0<=c&&(e=c,0==e&&e++,f=d-e,d=e-1,e=1);if(0>c&&0<f||0<=c&&(c<d||c>d+e)||0==g)throw Error('Malformed pattern "'+a+'"');f=d+e+f;this.maximumFractionDigits_=0<=c?f-c:0;0<=c&&(this.minimumFractionDigits_=d+e-c,0>this.minimumFractionDigits_&&(this.minimumFractionDigits_=0));e=0<=c?c:f;this.minimumIntegerDigits_=e-d;this.useExponentialNotation_&&(this.maximumIntegerDigits_=d+this.minimumIntegerDigits_,0==this.maximumFractionDigits_&&0==this.minimumIntegerDigits_&&
+(this.minimumIntegerDigits_=1));this.groupingSize_=Math.max(0,g);this.decimalSeparatorAlwaysShown_=0==c||c==f};goog.i18n.NumberFormat.NULL_UNIT_={prefix:"",suffix:"",divisorBase:0};
+goog.i18n.NumberFormat.prototype.getUnitFor_=function(a,b){var c=this.compactStyle_==goog.i18n.NumberFormat.CompactStyle.SHORT?goog.i18n.CompactNumberFormatSymbols.COMPACT_DECIMAL_SHORT_PATTERN:goog.i18n.CompactNumberFormatSymbols.COMPACT_DECIMAL_LONG_PATTERN;if(3>a)return goog.i18n.NumberFormat.NULL_UNIT_;a=Math.min(14,a);c=c[Math.pow(10,a)];if(!c)return goog.i18n.NumberFormat.NULL_UNIT_;c=c[b];return c&&"0"!=c?(c=/([^0]*)(0+)(.*)/.exec(c))?{prefix:c[1],suffix:c[3],divisorBase:a-(c[2].length-1)}:
+goog.i18n.NumberFormat.NULL_UNIT_:goog.i18n.NumberFormat.NULL_UNIT_};
+goog.i18n.NumberFormat.prototype.getUnitAfterRounding_=function(a,b){if(this.compactStyle_==goog.i18n.NumberFormat.CompactStyle.NONE)return goog.i18n.NumberFormat.NULL_UNIT_;a=Math.abs(a);b=Math.abs(b);var c=this.pluralForm_(a),d=1>=a?0:this.intLog10_(a),c=this.getUnitFor_(d,c).divisorBase,d=b/Math.pow(10,c),d=this.roundNumber_(d),e=a/Math.pow(10,c),e=this.roundNumber_(e),d=this.pluralForm_(d.intValue+d.fracValue);return this.getUnitFor_(c+this.intLog10_(e.intValue),d)};
+goog.i18n.NumberFormat.prototype.intLog10_=function(a){for(var b=0;1<=(a/=10);)b++;return b};goog.i18n.NumberFormat.prototype.roundToSignificantDigits_=function(a,b,c){if(!a)return a;var d=this.intLog10_(a);b=b-d-1;if(b<-c)return c=Math.pow(10,c),Math.round(a/c)*c;c=Math.pow(10,b);a=Math.round(a*c);return a/c};goog.i18n.NumberFormat.prototype.pluralForm_=function(){return"other"};goog.i18n.ordinalRules={};goog.i18n.ordinalRules.Keyword={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};goog.i18n.ordinalRules.defaultSelect_=function(){return goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.frSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.huSelect_=function(a){return 1==a||5==a?goog.i18n.ordinalRules.Keyword.ONE:goog.i18n.ordinalRules.Keyword.OTHER};
+goog.i18n.ordinalRules.svSelect_=function(a){return 1!=a%10&&2!=a%10||11==a%100||12==a%100?goog.i18n.ordinalRules.Keyword.OTHER:goog.i18n.ordinalRules.Keyword.ONE};goog.i18n.ordinalRules.enSelect_=function(a){return 1==a%10&&11!=a%100?goog.i18n.ordinalRules.Keyword.ONE:2==a%10&&12!=a%100?goog.i18n.ordinalRules.Keyword.TWO:3==a%10&&13!=a%100?goog.i18n.ordinalRules.Keyword.FEW:goog.i18n.ordinalRules.Keyword.OTHER};
+goog.i18n.ordinalRules.itSelect_=function(a){return 11==a||8==a||80==a||800==a?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.caSelect_=function(a){return 1==a||3==a?goog.i18n.ordinalRules.Keyword.ONE:2==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:goog.i18n.ordinalRules.Keyword.OTHER};
+goog.i18n.ordinalRules.mrSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:2==a||3==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.guSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:2==a||3==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:6==a?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER};
+goog.i18n.ordinalRules.bnSelect_=function(a){return 1==a||5==a||7==a||8==a||9==a||10==a?goog.i18n.ordinalRules.Keyword.ONE:2==a||3==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:6==a?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER};
+goog.i18n.ordinalRules.zuSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:a==(a|0)&&2<=a&&9>=a?goog.i18n.ordinalRules.Keyword.FEW:a==(a|0)&&(10<=a&&19>=a||100<=a&&199>=a||1E3<=a&&1999>=a)?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;"af"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"am"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"ar"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"bg"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"bn"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.bnSelect_);"br"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ca"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.caSelect_);"chr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"cs"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"cy"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"da"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"de"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;
+if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"el"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"en"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_);if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;
+if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;
+if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;"es"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"et"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"eu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"fa"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"fi"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"fil"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);"fr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);
+if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_;"gl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"gsw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"gu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.guSelect_);"haw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"he"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"hi"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.guSelect_);"hr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"hu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.huSelect_);"id"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"in"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"is"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"it"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.itSelect_);"iw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ja"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"kn"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ko"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"ln"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"lt"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"lv"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ml"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"mr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.mrSelect_);"ms"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);
+"mt"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"nb"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"nl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"no"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"or"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"pl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"pt"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"ro"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);"ru"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"sk"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sq"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sv"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.svSelect_);"sw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"ta"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"te"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"th"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"tl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"tr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"uk"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"ur"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"vi"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);"zh"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;
+if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"zu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.zuSelect_);goog.i18n.pluralRules={};goog.i18n.pluralRules.Keyword={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};goog.i18n.pluralRules.defaultSelect_=function(){return goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.arSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:a==(a|0)&&3<=a%100&&10>=a%100?goog.i18n.pluralRules.Keyword.FEW:a==(a|0)&&11<=a%100&&99>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.heSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:0!=a&&0==a%10?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.enSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.filSelect_=function(a){return 0==a||1==a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.frSelect_=function(a){return 0<=a&&2>=a&&2!=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.lvSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a%10&&11!=a%100?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.iuSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.gaSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:a==(a|0)&&3<=a&&6>=a?goog.i18n.pluralRules.Keyword.FEW:a==(a|0)&&7<=a&&10>=a?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.roSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:0==a||1!=a&&a==(a|0)&&1<=a%100&&19>=a%100?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.ltSelect_=function(a){return 1==a%10&&(11>a%100||19<a%100)?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a%10&&9>=a%10&&(11>a%100||19<a%100)?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.beSelect_=function(a){return 1==a%10&&11!=a%100?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a%10&&4>=a%10&&(12>a%100||14<a%100)?goog.i18n.pluralRules.Keyword.FEW:0==a%10||a==(a|0)&&5<=a%10&&9>=a%10||a==(a|0)&&11<=a%100&&14>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.csSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a&&4>=a?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.plSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a%10&&4>=a%10&&(12>a%100||14<a%100)?goog.i18n.pluralRules.Keyword.FEW:1!=a&&(0==a%10||1==a%10)||a==(a|0)&&5<=a%10&&9>=a%10||a==(a|0)&&12<=a%100&&14>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.slSelect_=function(a){return 1==a%100?goog.i18n.pluralRules.Keyword.ONE:2==a%100?goog.i18n.pluralRules.Keyword.TWO:3==a%100||4==a%100?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.mtSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:0==a||a==(a|0)&&2<=a%100&&10>=a%100?goog.i18n.pluralRules.Keyword.FEW:a==(a|0)&&11<=a%100&&19>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.mkSelect_=function(a){return 1==a%10&&11!=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.cySelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:3==a?goog.i18n.pluralRules.Keyword.FEW:6==a?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.lagSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:0<=a&&2>=a&&0!=a&&2!=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.shiSelect_=function(a){return 0<=a&&1>=a?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a&&10>=a?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.brSelect_=function(a){return 1==a%10&&11!=a%100&&71!=a%100&&91!=a%100?goog.i18n.pluralRules.Keyword.ONE:2==a%10&&12!=a%100&&72!=a%100&&92!=a%100?goog.i18n.pluralRules.Keyword.TWO:(3==a%10||4==a%10||9==a%10)&&(10>a%100||19<a%100)&&(70>a%100||79<a%100)&&(90>a%100||99<a%100)?goog.i18n.pluralRules.Keyword.FEW:0!=a&&0==a%1E6?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.kshSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.tzmSelect_=function(a){return 0==a||1==a||a==(a|0)&&11<=a&&99>=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.gvSelect_=function(a){return 1==a%10||2==a%10||0==a%20?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.gdSelect_=function(a){return 1==a||11==a?goog.i18n.pluralRules.Keyword.ONE:2==a||12==a?goog.i18n.pluralRules.Keyword.TWO:a==(a|0)&&(3<=a&&10>=a||13<=a&&19>=a)?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"af"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"am"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);
+"ar"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.arSelect_);"bg"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"bn"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"br"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.brSelect_);"ca"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"chr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);
+"cs"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.csSelect_);"cy"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.cySelect_);"da"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"de"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;
+if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"el"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"en"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;
+if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;
+if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"es"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"et"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);
+"eu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"fa"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"fi"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"fil"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);"fr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.frSelect_);if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.frSelect_;
+"gl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"gsw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"gu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"haw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"he"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.heSelect_);"hi"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);
+"hr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"hu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"id"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"in"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"is"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"it"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);
+"iw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.heSelect_);"ja"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"kn"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"ko"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"ln"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);"lt"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.ltSelect_);
+"lv"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.lvSelect_);"ml"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"mr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"ms"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"mt"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.mtSelect_);"nb"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);
+"nl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"no"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"or"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"pl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.plSelect_);"pt"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;
+if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"ro"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.roSelect_);"ru"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"sk"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.csSelect_);"sl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.slSelect_);"sq"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);
+"sr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"sv"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"sw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"ta"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"te"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"th"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);
+"tl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);"tr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"uk"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"ur"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"vi"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"zh"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);
+if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_;if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_;"zu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);goog.i18n.MessageFormat=function(a){this.literals_=[];this.parsedPattern_=[];this.numberFormatter_=new goog.i18n.NumberFormat(goog.i18n.NumberFormat.Format.DECIMAL);this.parsePattern_(a)};goog.i18n.MessageFormat.LITERAL_PLACEHOLDER_="\ufddf_";goog.i18n.MessageFormat.Element_={STRING:0,BLOCK:1};goog.i18n.MessageFormat.BlockType_={PLURAL:0,ORDINAL:1,SELECT:2,SIMPLE:3,STRING:4,UNKNOWN:5};goog.i18n.MessageFormat.OTHER_="other";goog.i18n.MessageFormat.REGEX_LITERAL_=/'([{}#].*?)'/g;
+goog.i18n.MessageFormat.REGEX_DOUBLE_APOSTROPHE_=/''/g;goog.i18n.MessageFormat.prototype.format=function(a){return this.format_(a,!1)};goog.i18n.MessageFormat.prototype.format_=function(a,b){if(0==this.parsedPattern_.length)return"";var c=[];this.formatBlock_(this.parsedPattern_,a,b,c);c=c.join("");for(b||goog.asserts.assert(-1==c.search("#"),"Not all # were replaced.");0<this.literals_.length;)c=c.replace(this.buildPlaceholder_(this.literals_),this.literals_.pop());return c};
+goog.i18n.MessageFormat.prototype.formatBlock_=function(a,b,c,d){for(var e=0;e<a.length;e++)switch(a[e].type){case goog.i18n.MessageFormat.BlockType_.STRING:d.push(a[e].value);break;case goog.i18n.MessageFormat.BlockType_.SIMPLE:var f=a[e].value;this.formatSimplePlaceholder_(f,b,d);break;case goog.i18n.MessageFormat.BlockType_.SELECT:f=a[e].value;this.formatSelectBlock_(f,b,c,d);break;case goog.i18n.MessageFormat.BlockType_.PLURAL:f=a[e].value;this.formatPluralOrdinalBlock_(f,b,goog.i18n.pluralRules.select,
+c,d);break;case goog.i18n.MessageFormat.BlockType_.ORDINAL:f=a[e].value;this.formatPluralOrdinalBlock_(f,b,goog.i18n.ordinalRules.select,c,d);break;default:goog.asserts.fail("Unrecognized block type.")}};goog.i18n.MessageFormat.prototype.formatSimplePlaceholder_=function(a,b,c){b=b[a];goog.isDef(b)?(this.literals_.push(b),c.push(this.buildPlaceholder_(this.literals_))):c.push("Undefined parameter - "+a)};
+goog.i18n.MessageFormat.prototype.formatSelectBlock_=function(a,b,c,d){var e=a.argumentIndex;goog.isDef(b[e])?(e=a[b[e]],goog.isDef(e)||(e=a[goog.i18n.MessageFormat.OTHER_],goog.asserts.assertArray(e,"Invalid option or missing other option for select block.")),this.formatBlock_(e,b,c,d)):d.push("Undefined parameter - "+e)};
+goog.i18n.MessageFormat.prototype.formatPluralOrdinalBlock_=function(a,b,c,d,e){var f=a.argumentIndex,g=a.argumentOffset,h=+b[f];isNaN(h)?e.push("Undefined or invalid parameter - "+f):(g=h-g,f=a[b[f]],goog.isDef(f)||(goog.asserts.assert(0<=g,"Argument index smaller than offset."),c=c(g),goog.asserts.assertString(c,"Invalid plural key."),f=a[c],goog.isDef(f)||(f=a[goog.i18n.MessageFormat.OTHER_]),goog.asserts.assertArray(f,"Invalid option or missing other option for plural block.")),a=[],this.formatBlock_(f,
+b,d,a),b=a.join(""),goog.asserts.assertString(b,"Empty block in plural."),d?e.push(b):(d=this.numberFormatter_.format(g),e.push(b.replace(/#/g,d))))};goog.i18n.MessageFormat.prototype.parsePattern_=function(a){a&&(a=this.insertPlaceholders_(a),this.parsedPattern_=this.parseBlock_(a))};
+goog.i18n.MessageFormat.prototype.insertPlaceholders_=function(a){var b=this.literals_,c=goog.bind(this.buildPlaceholder_,this);a=a.replace(goog.i18n.MessageFormat.REGEX_DOUBLE_APOSTROPHE_,function(){b.push("'");return c(b)});return a=a.replace(goog.i18n.MessageFormat.REGEX_LITERAL_,function(a,e){b.push(e);return c(b)})};
+goog.i18n.MessageFormat.prototype.extractParts_=function(a){var b=0,c=[],d=[],e=/[{}]/g;e.lastIndex=0;for(var f;f=e.exec(a);){var g=f.index;"}"==f[0]?(f=c.pop(),goog.asserts.assert(goog.isDef(f)&&"{"==f,"No matching { for }."),0==c.length&&(f={},f.type=goog.i18n.MessageFormat.Element_.BLOCK,f.value=a.substring(b,g),d.push(f),b=g+1)):(0==c.length&&(b=a.substring(b,g),""!=b&&d.push({type:goog.i18n.MessageFormat.Element_.STRING,value:b}),b=g+1),c.push("{"))}goog.asserts.assert(0==c.length,"There are mismatched { or } in the pattern.");
+b=a.substring(b);""!=b&&d.push({type:goog.i18n.MessageFormat.Element_.STRING,value:b});return d};goog.i18n.MessageFormat.PLURAL_BLOCK_RE_=/^\s*(\w+)\s*,\s*plural\s*,(?:\s*offset:(\d+))?/;goog.i18n.MessageFormat.ORDINAL_BLOCK_RE_=/^\s*(\w+)\s*,\s*selectordinal\s*,/;goog.i18n.MessageFormat.SELECT_BLOCK_RE_=/^\s*(\w+)\s*,\s*select\s*,/;
+goog.i18n.MessageFormat.prototype.parseBlockType_=function(a){return goog.i18n.MessageFormat.PLURAL_BLOCK_RE_.test(a)?goog.i18n.MessageFormat.BlockType_.PLURAL:goog.i18n.MessageFormat.ORDINAL_BLOCK_RE_.test(a)?goog.i18n.MessageFormat.BlockType_.ORDINAL:goog.i18n.MessageFormat.SELECT_BLOCK_RE_.test(a)?goog.i18n.MessageFormat.BlockType_.SELECT:/^\s*\w+\s*/.test(a)?goog.i18n.MessageFormat.BlockType_.SIMPLE:goog.i18n.MessageFormat.BlockType_.UNKNOWN};
+goog.i18n.MessageFormat.prototype.parseBlock_=function(a){var b=[];a=this.extractParts_(a);for(var c=0;c<a.length;c++){var d={};if(goog.i18n.MessageFormat.Element_.STRING==a[c].type)d.type=goog.i18n.MessageFormat.BlockType_.STRING,d.value=a[c].value;else if(goog.i18n.MessageFormat.Element_.BLOCK==a[c].type){var e=this.parseBlockType_(a[c].value);switch(e){case goog.i18n.MessageFormat.BlockType_.SELECT:d.type=goog.i18n.MessageFormat.BlockType_.SELECT;d.value=this.parseSelectBlock_(a[c].value);break;
+case goog.i18n.MessageFormat.BlockType_.PLURAL:d.type=goog.i18n.MessageFormat.BlockType_.PLURAL;d.value=this.parsePluralBlock_(a[c].value);break;case goog.i18n.MessageFormat.BlockType_.ORDINAL:d.type=goog.i18n.MessageFormat.BlockType_.ORDINAL;d.value=this.parseOrdinalBlock_(a[c].value);break;case goog.i18n.MessageFormat.BlockType_.SIMPLE:d.type=goog.i18n.MessageFormat.BlockType_.SIMPLE;d.value=a[c].value;break;default:goog.asserts.fail("Unknown block type.")}}else goog.asserts.fail("Unknown part of the pattern.");
+b.push(d)}return b};
+goog.i18n.MessageFormat.prototype.parseSelectBlock_=function(a){var b="",c=goog.i18n.MessageFormat.SELECT_BLOCK_RE_;a=a.replace(c,function(a,c){b=c;return""});c={};c.argumentIndex=b;a=this.extractParts_(a);for(var d=0;d<a.length;){var e=a[d].value;goog.asserts.assertString(e,"Missing select key element.");d++;goog.asserts.assert(d<a.length,"Missing or invalid select value element.");if(goog.i18n.MessageFormat.Element_.BLOCK==a[d].type)var f=this.parseBlock_(a[d].value);else goog.asserts.fail("Expected block type.");c[e.replace(/\s/g,
+"")]=f;d++}goog.asserts.assertArray(c[goog.i18n.MessageFormat.OTHER_],"Missing other key in select statement.");return c};
+goog.i18n.MessageFormat.prototype.parsePluralBlock_=function(a){var b="",c=0,d=goog.i18n.MessageFormat.PLURAL_BLOCK_RE_;a=a.replace(d,function(a,d,e){b=d;e&&(c=parseInt(e,10));return""});d={};d.argumentIndex=b;d.argumentOffset=c;a=this.extractParts_(a);for(var e=0;e<a.length;){var f=a[e].value;goog.asserts.assertString(f,"Missing plural key element.");e++;goog.asserts.assert(e<a.length,"Missing or invalid plural value element.");if(goog.i18n.MessageFormat.Element_.BLOCK==a[e].type)var g=this.parseBlock_(a[e].value);
+else goog.asserts.fail("Expected block type.");d[f.replace(/\s*(?:=)?(\w+)\s*/,"$1")]=g;e++}goog.asserts.assertArray(d[goog.i18n.MessageFormat.OTHER_],"Missing other key in plural statement.");return d};
+goog.i18n.MessageFormat.prototype.parseOrdinalBlock_=function(a){var b="",c=goog.i18n.MessageFormat.ORDINAL_BLOCK_RE_;a=a.replace(c,function(a,c){b=c;return""});c={};c.argumentIndex=b;c.argumentOffset=0;a=this.extractParts_(a);for(var d=0;d<a.length;){var e=a[d].value;goog.asserts.assertString(e,"Missing ordinal key element.");d++;goog.asserts.assert(d<a.length,"Missing or invalid ordinal value element.");if(goog.i18n.MessageFormat.Element_.BLOCK==a[d].type)var f=this.parseBlock_(a[d].value);else goog.asserts.fail("Expected block type.");
+c[e.replace(/\s*(?:=)?(\w+)\s*/,"$1")]=f;d++}goog.asserts.assertArray(c[goog.i18n.MessageFormat.OTHER_],"Missing other key in selectordinal statement.");return c};goog.i18n.MessageFormat.prototype.buildPlaceholder_=function(a){goog.asserts.assert(0<a.length,"Literal array is empty.");a=(a.length-1).toString(10);return goog.i18n.MessageFormat.LITERAL_PLACEHOLDER_+a+"_"};cvox.TtsCapturingEventListener=function(){};cvox.TtsInterface=function(){};cvox.TtsInterface.prototype.speak=function(){};cvox.TtsInterface.prototype.isSpeaking=function(){};cvox.TtsInterface.prototype.stop=function(){};cvox.TtsInterface.prototype.increaseOrDecreaseProperty=function(){};cvox.TtsInterface.prototype.getDefaultProperty=function(){};cvox.AbstractTts=function(){this.ttsProperties={};this.propertyDefault={rate:0.5,pitch:0.5,volume:0.5};this.propertyMin={rate:0,pitch:0,volume:0};this.propertyMax={rate:1,pitch:1,volume:1};this.propertyStep={rate:0.1,pitch:0.1,volume:0.1};if(void 0==cvox.AbstractTts.pronunciationDictionaryRegexp_){var a=[],b;for(b in cvox.AbstractTts.PRONUNCIATION_DICTIONARY)a.push(b);a="\\b("+a.join("|")+")\\b";cvox.AbstractTts.pronunciationDictionaryRegexp_=RegExp(a,"ig")}if(void 0==cvox.AbstractTts.substitutionDictionaryRegexp_){var a=
+[],c;for(c in cvox.AbstractTts.SUBSTITUTION_DICTIONARY)a.push(c);a="("+a.join("|")+")";cvox.AbstractTts.substitutionDictionaryRegexp_=RegExp(a,"ig")}};cvox.AbstractTts.prototype.speak=function(){return this};cvox.AbstractTts.prototype.isSpeaking=function(){return!1};cvox.AbstractTts.prototype.stop=function(){};
+cvox.AbstractTts.prototype.increaseOrDecreaseProperty=function(a,b){var c=this.propertyMin[a],d=this.propertyMax[a],e=this.propertyStep[a],f=this.ttsProperties[a],f=b?f+e:f-e;this.ttsProperties[a]=Math.max(Math.min(f,d),c)};
+cvox.AbstractTts.prototype.mergeProperties=function(a){var b={},c;if(this.ttsProperties)for(c in this.ttsProperties)b[c]=this.ttsProperties[c];if(a){c=cvox.AbstractTts;"number"==typeof a[c.VOLUME]&&(b[c.VOLUME]=a[c.VOLUME]);"number"==typeof a[c.PITCH]&&(b[c.PITCH]=a[c.PITCH]);"number"==typeof a[c.RATE]&&(b[c.RATE]=a[c.RATE]);"string"==typeof a[c.LANG]&&(b[c.LANG]=a[c.LANG]);var d=this,e=function(c,e){if("number"==typeof a[e]&&"number"==typeof b[c]){b[c]+=a[e];var h=d.propertyMin[c],k=d.propertyMax[c];
+b[c]>k?b[c]=k:b[c]<h&&(b[c]=h)}};e(c.VOLUME,c.RELATIVE_VOLUME);e(c.PITCH,c.RELATIVE_PITCH);e(c.RATE,c.RELATIVE_RATE)}return b};cvox.AbstractTts.RATE="rate";cvox.AbstractTts.PITCH="pitch";cvox.AbstractTts.VOLUME="volume";cvox.AbstractTts.LANG="lang";cvox.AbstractTts.RELATIVE_RATE="relativeRate";cvox.AbstractTts.RELATIVE_PITCH="relativePitch";cvox.AbstractTts.RELATIVE_VOLUME="relativeVolume";cvox.AbstractTts.COLOR="color";cvox.AbstractTts.FONT_WEIGHT="fontWeight";cvox.AbstractTts.PUNCTUATION_ECHO="punctuationEcho";
+cvox.AbstractTts.PAUSE="pause";cvox.AbstractTts.PERSONALITY_ANNOTATION={relativePitch:-0.25,color:"yellow",punctuationEcho:"none"};cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT={punctuationEcho:"none"};cvox.AbstractTts.PERSONALITY_ASIDE={relativePitch:-0.1,color:"#669"};cvox.AbstractTts.PERSONALITY_CAPITAL={relativePitch:0.6};cvox.AbstractTts.PERSONALITY_DELETED={punctuationEcho:"none",relativePitch:-0.6};cvox.AbstractTts.PERSONALITY_QUOTE={relativePitch:0.1,color:"#b6b",fontWeight:"bold"};
+cvox.AbstractTts.PERSONALITY_STRONG={relativePitch:0.1,color:"#b66",fontWeight:"bold"};cvox.AbstractTts.PERSONALITY_EMPHASIS={relativeVolume:0.1,relativeRate:-0.1,color:"#6bb",fontWeight:"bold"};cvox.AbstractTts.DEBUG=!0;cvox.AbstractTts.QUEUE_MODE_FLUSH=0;cvox.AbstractTts.QUEUE_MODE_QUEUE=1;
+cvox.AbstractTts.CHARACTER_DICTIONARY={" ":"space","`":"backtick","~":"tilde","!":"exclamation","@":"at","#":"pound",$:"dollar","%":"percent","^":"caret","&":"ampersand","*":"asterisk","(":"open_paren",")":"close_paren","-":"dash",_:"underscore","=":"equals","+":"plus","[":"left_bracket","]":"right_bracket","{":"left_brace","}":"right_brace","|":"pipe",";":"semicolon",":":"colon",",":"comma",".":"dot","<":"less_than",">":"greater_than","/":"slash","?":"question_mark",'"':"quote","'":"apostrophe",
+"\t":"tab","\r":"return","\n":"new line","\\":"backslash"};cvox.AbstractTts.PRONUNCIATION_DICTIONARY={admob:"ad-mob",adsense:"ad-sense",adwords:"ad-words",angularjs:"angular j s",bcc:"B C C",cc:"C C",chromevox:"chrome vox",cr48:"C R 48",ctrl:"control",doubleclick:"double-click",gmail:"gee mail",gtalk:"gee talk",http:"H T T P",https:"H T T P S",igoogle:"eye google",pagerank:"page-rank",username:"user-name",www:"W W W",youtube:"you tube"};
+cvox.AbstractTts.SUBSTITUTION_DICTIONARY={"://":"colon slash slash","\u00bc":"one fourth","\u00bd":"one half","\u200e":"left to right mark","\u2190":"left arrow","\u2191":"up arrow","\u2192":"right arrow","\u2193":"down arrow","\u21d0":"left double arrow","\u21d1":"up double arrow","\u21d2":"right double arrow","\u21d3":"down double arrow","\u21e6":"left arrow","\u21e7":"up arrow","\u21e8":"right arrow","\u21e9":"down arrow","\u2303":"control","\u2318":"command","\u2325":"option","\u25b2":"up triangle",
+"\u25b3":"up triangle","\u25b4":"up triangle","\u25b5":"up triangle","\u25b6":"right triangle","\u25b7":"right triangle","\u25b8":"right triangle","\u25b9":"right triangle","\u25ba":"right pointer","\u25bb":"right pointer","\u25bc":"down triangle","\u25bd":"down triangle","\u25be":"down triangle","\u25bf":"down triangle","\u25c0":"left triangle","\u25c1":"left triangle","\u25c2":"left triangle","\u25c3":"left triangle","\u25c4":"left pointer","\u25c5":"left pointer","\uf8ff":"apple"};
+cvox.AbstractTts.repetitionRegexp_=/([-\/\\|!@#$%^&*\(\)=_+\[\]\{\}.?;'":<>])\1{2,}/g;cvox.AbstractTts.repetitionReplace_=function(a){var b=a.length;return" "+(new goog.i18n.MessageFormat(cvox.ChromeVox.msgs.getMsg(cvox.AbstractTts.CHARACTER_DICTIONARY[a[0]]))).format({COUNT:b})+" "};cvox.AbstractTts.prototype.getDefaultProperty=function(a){return this.propertyDefault[a]};cvox.AbstractEarcons=function(){this.enabled=!0};cvox.AbstractEarcons.prototype.playEarcon=function(){};cvox.AbstractEarcons.prototype.playEarconByName=function(a){this.playEarcon(this.getEarconId(a))};cvox.AbstractEarcons.prototype.earconsAvailable=function(){return!0};
+cvox.AbstractEarcons.prototype.getEarconId=function(a){this.earconNamesToIds||(this.earconNamesToIds={},this.earconNamesToIds.ALERT_MODAL=cvox.AbstractEarcons.ALERT_MODAL,this.earconNamesToIds.ALERT_NONMODAL=cvox.AbstractEarcons.ALERT_NONMODAL,this.earconNamesToIds.BULLET=cvox.AbstractEarcons.BULLET,this.earconNamesToIds.BUSY_PROGRESS_LOOP=cvox.AbstractEarcons.BUSY_PROGRESS_LOOP,this.earconNamesToIds.BUSY_WORKING_LOOP=cvox.AbstractEarcons.BUSY_WORKING_LOOP,this.earconNamesToIds.BUTTON=cvox.AbstractEarcons.BUTTON,
+this.earconNamesToIds.CHECK_OFF=cvox.AbstractEarcons.CHECK_OFF,this.earconNamesToIds.CHECK_ON=cvox.AbstractEarcons.CHECK_ON,this.earconNamesToIds.CHROMEVOX_DISABLED=cvox.AbstractEarcons.CHROMEVOX_DISABLED,this.earconNamesToIds.CHROMEVOX_ENABLED=cvox.AbstractEarcons.CHROMEVOX_ENABLED,this.earconNamesToIds.COLLAPSED=cvox.AbstractEarcons.COLLAPSED,this.earconNamesToIds.EDITABLE_TEXT=cvox.AbstractEarcons.EDITABLE_TEXT,this.earconNamesToIds.ELLIPSIS=cvox.AbstractEarcons.ELLIPSIS,this.earconNamesToIds.EXPANDED=
+cvox.AbstractEarcons.EXPANDED,this.earconNamesToIds.FONT_CHANGE=cvox.AbstractEarcons.FONT_CHANGE,this.earconNamesToIds.INVALID_KEYPRESS=cvox.AbstractEarcons.INVALID_KEYPRESS,this.earconNamesToIds.LINK=cvox.AbstractEarcons.LINK,this.earconNamesToIds.LISTBOX=cvox.AbstractEarcons.LISTBOX,this.earconNamesToIds.LIST_ITEM=cvox.AbstractEarcons.LIST_ITEM,this.earconNamesToIds.LONG_DESC=cvox.AbstractEarcons.LONG_DESC,this.earconNamesToIds.NEW_MAIL=cvox.AbstractEarcons.NEW_MAIL,this.earconNamesToIds.OBJECT_CLOSE=
+cvox.AbstractEarcons.OBJECT_CLOSE,this.earconNamesToIds.OBJECT_DELETE=cvox.AbstractEarcons.OBJECT_DELETE,this.earconNamesToIds.OBJECT_DESELECT=cvox.AbstractEarcons.OBJECT_DESELECT,this.earconNamesToIds.OBJECT_ENTER=cvox.AbstractEarcons.OBJECT_ENTER,this.earconNamesToIds.OBJECT_EXIT=cvox.AbstractEarcons.OBJECT_EXIT,this.earconNamesToIds.OBJECT_OPEN=cvox.AbstractEarcons.OBJECT_OPEN,this.earconNamesToIds.OBJECT_SELECT=cvox.AbstractEarcons.OBJECT_SELECT,this.earconNamesToIds.PARAGRAPH_BREAK=cvox.AbstractEarcons.PARAGRAPH_BREAK,
+this.earconNamesToIds.SEARCH_HIT=cvox.AbstractEarcons.SEARCH_HIT,this.earconNamesToIds.SEARCH_MISS=cvox.AbstractEarcons.SEARCH_MISS,this.earconNamesToIds.SECTION=cvox.AbstractEarcons.SECTION,this.earconNamesToIds.SELECTION=cvox.AbstractEarcons.SELECTION,this.earconNamesToIds.SELECTION_REVERSE=cvox.AbstractEarcons.SELECTION_REVERSE,this.earconNamesToIds.SPECIAL_CONTENT=cvox.AbstractEarcons.SPECIAL_CONTENT,this.earconNamesToIds.TASK_SUCCESS=cvox.AbstractEarcons.TASK_SUCCESS,this.earconNamesToIds.WRAP=
+cvox.AbstractEarcons.WRAP,this.earconNamesToIds.WRAP_EDGE=cvox.AbstractEarcons.WRAP_EDGE);return this.earconNamesToIds[a]};cvox.AbstractEarcons.prototype.getEarconFilename=function(a){return cvox.AbstractEarcons.earconMap[a]};cvox.AbstractEarcons.prototype.toggle=function(){return this.enabled=!this.enabled};cvox.AbstractEarcons.ALERT_MODAL=0;cvox.AbstractEarcons.ALERT_NONMODAL=1;cvox.AbstractEarcons.BULLET=2;cvox.AbstractEarcons.BUSY_PROGRESS_LOOP=3;cvox.AbstractEarcons.BUSY_WORKING_LOOP=4;
+cvox.AbstractEarcons.BUTTON=5;cvox.AbstractEarcons.CHECK_OFF=6;cvox.AbstractEarcons.CHECK_ON=7;cvox.AbstractEarcons.CHROMEVOX_DISABLED=8;cvox.AbstractEarcons.CHROMEVOX_ENABLED=9;cvox.AbstractEarcons.COLLAPSED=10;cvox.AbstractEarcons.EDITABLE_TEXT=11;cvox.AbstractEarcons.ELLIPSIS=12;cvox.AbstractEarcons.EXPANDED=13;cvox.AbstractEarcons.FONT_CHANGE=14;cvox.AbstractEarcons.INVALID_KEYPRESS=15;cvox.AbstractEarcons.LINK=16;cvox.AbstractEarcons.LISTBOX=17;cvox.AbstractEarcons.LIST_ITEM=18;
+cvox.AbstractEarcons.LONG_DESC=19;cvox.AbstractEarcons.NEW_MAIL=20;cvox.AbstractEarcons.OBJECT_CLOSE=21;cvox.AbstractEarcons.OBJECT_DELETE=22;cvox.AbstractEarcons.OBJECT_DESELECT=23;cvox.AbstractEarcons.OBJECT_ENTER=24;cvox.AbstractEarcons.OBJECT_EXIT=25;cvox.AbstractEarcons.OBJECT_OPEN=26;cvox.AbstractEarcons.OBJECT_SELECT=27;cvox.AbstractEarcons.PARAGRAPH_BREAK=28;cvox.AbstractEarcons.SEARCH_HIT=29;cvox.AbstractEarcons.SEARCH_MISS=30;cvox.AbstractEarcons.SECTION=31;
+cvox.AbstractEarcons.SELECTION=32;cvox.AbstractEarcons.SELECTION_REVERSE=33;cvox.AbstractEarcons.SPECIAL_CONTENT=34;cvox.AbstractEarcons.TASK_SUCCESS=35;cvox.AbstractEarcons.WRAP=36;cvox.AbstractEarcons.WRAP_EDGE=37;cvox.AbstractEarcons.earconMap={};cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.ALERT_MODAL]="alert_modal.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.ALERT_NONMODAL]="alert_nonmodal.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BULLET]="bullet.ogg";
+cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BUSY_PROGRESS_LOOP]="busy_progress_loop.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BUSY_WORKING_LOOP]="busy_working_loop.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BUTTON]="button.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHECK_OFF]="check_off.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHECK_ON]="check_on.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHROMEVOX_DISABLED]="chromevox_disabled.ogg";
+cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHROMEVOX_ENABLED]="chromevox_enabled.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.COLLAPSED]="collapsed.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.EDITABLE_TEXT]="editable_text.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.ELLIPSIS]="ellipsis.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.EXPANDED]="expanded.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.FONT_CHANGE]="font_change.ogg";
+cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.INVALID_KEYPRESS]="invalid_keypress.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LINK]="link.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LISTBOX]="listbox.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LIST_ITEM]="bullet.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LONG_DESC]="long_desc.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.NEW_MAIL]="new_mail.ogg";
+cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_CLOSE]="object_close.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_DELETE]="object_delete.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_DESELECT]="object_deselect.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_ENTER]="object_enter.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_EXIT]="object_exit.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_OPEN]="object_open.ogg";
+cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_SELECT]="object_select.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.PARAGRAPH_BREAK]="paragraph_break.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SEARCH_HIT]="search_hit.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SEARCH_MISS]="search_miss.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SECTION]="section.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SELECTION]="selection.ogg";
+cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SELECTION_REVERSE]="selection_reverse.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SPECIAL_CONTENT]="special_content.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.TASK_SUCCESS]="task_success.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.WRAP]="wrap.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.WRAP_EDGE]="wrap_edge.ogg";cvox.NodeStateUtil={};cvox.NodeStateUtil.expand=function(a){try{return a.map(function(a){if(1>a.length)throw Error("cvox.NodeState must have at least one entry");var b=a.slice(1).map(function(a){return"number"==typeof a?cvox.ChromeVox.msgs.getNumber(a):a});return cvox.ChromeVox.msgs.getMsg(a[0],b)}).join(" ")}catch(b){throw Error("error: "+b+" state: "+a);}};cvox.AriaUtil=function(){};cvox.AriaUtil.NO_ROLE_NAME=" ";
+cvox.AriaUtil.WIDGET_ROLE_TO_NAME={alert:"aria_role_alert",alertdialog:"aria_role_alertdialog",button:"aria_role_button",checkbox:"aria_role_checkbox",columnheader:"aria_role_columnheader",combobox:"aria_role_combobox",dialog:"aria_role_dialog",grid:"aria_role_grid",gridcell:"aria_role_gridcell",link:"aria_role_link",listbox:"aria_role_listbox",log:"aria_role_log",marquee:"aria_role_marquee",menu:"aria_role_menu",menubar:"aria_role_menubar",menuitem:"aria_role_menuitem",menuitemcheckbox:"aria_role_menuitemcheckbox",
+menuitemradio:"aria_role_menuitemradio",option:cvox.AriaUtil.NO_ROLE_NAME,progressbar:"aria_role_progressbar",radio:"aria_role_radio",radiogroup:"aria_role_radiogroup",rowheader:"aria_role_rowheader",scrollbar:"aria_role_scrollbar",slider:"aria_role_slider",spinbutton:"aria_role_spinbutton",status:"aria_role_status",tab:"aria_role_tab",tabpanel:"aria_role_tabpanel",textbox:"aria_role_textbox",timer:"aria_role_timer",toolbar:"aria_role_toolbar",tooltip:"aria_role_tooltip",treeitem:"aria_role_treeitem"};
+cvox.AriaUtil.STRUCTURE_ROLE_TO_NAME={article:"aria_role_article",application:"aria_role_application",banner:"aria_role_banner",columnheader:"aria_role_columnheader",complementary:"aria_role_complementary",contentinfo:"aria_role_contentinfo",definition:"aria_role_definition",directory:"aria_role_directory",document:"aria_role_document",form:"aria_role_form",group:"aria_role_group",heading:"aria_role_heading",img:"aria_role_img",list:"aria_role_list",listitem:"aria_role_listitem",main:"aria_role_main",
+math:"aria_role_math",navigation:"aria_role_navigation",note:"aria_role_note",region:"aria_role_region",rowheader:"aria_role_rowheader",search:"aria_role_search",separator:"aria_role_separator"};
+cvox.AriaUtil.ATTRIBUTE_VALUE_TO_STATUS=[{name:"aria-autocomplete",values:{inline:"aria_autocomplete_inline",list:"aria_autocomplete_list",both:"aria_autocomplete_both"}},{name:"aria-checked",values:{"true":"aria_checked_true","false":"aria_checked_false",mixed:"aria_checked_mixed"}},{name:"aria-disabled",values:{"true":"aria_disabled_true"}},{name:"aria-expanded",values:{"true":"aria_expanded_true","false":"aria_expanded_false"}},{name:"aria-invalid",values:{"true":"aria_invalid_true",grammar:"aria_invalid_grammar",
+spelling:"aria_invalid_spelling"}},{name:"aria-multiline",values:{"true":"aria_multiline_true"}},{name:"aria-multiselectable",values:{"true":"aria_multiselectable_true"}},{name:"aria-pressed",values:{"true":"aria_pressed_true","false":"aria_pressed_false",mixed:"aria_pressed_mixed"}},{name:"aria-readonly",values:{"true":"aria_readonly_true"}},{name:"aria-required",values:{"true":"aria_required_true"}},{name:"aria-selected",values:{"true":"aria_selected_true","false":"aria_selected_false"}}];
+cvox.AriaUtil.isHiddenRecursive=function(a){if(cvox.AriaUtil.isHidden(a))return!0;for(a=a.parentElement;a;){if("true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden"))return!0;a=a.parentElement}return!1};cvox.AriaUtil.isHidden=function(a){return!a||a.getAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")?!0:!1};
+cvox.AriaUtil.isForcedVisibleRecursive=function(a){for(;a;){if(a.getAttribute&&a.hasAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden"))return"false"==a.getAttribute("aria-hidden");a=a.parentElement}return!1};cvox.AriaUtil.isLeafElement=function(a){var b=a.getAttribute("role");a=a.hasAttribute("aria-label")&&0<a.getAttribute("aria-label").length;return"img"==b||"progressbar"==b||a};
+cvox.AriaUtil.isDescendantOfRole=function(a,b){for(;a;){if(b&&a&&a.getAttribute("role")==b)return!0;a=a.parentNode}return!1};cvox.AriaUtil.getRoleNameMsgForRole_=function(a){return(a=cvox.AriaUtil.WIDGET_ROLE_TO_NAME[a])?a==cvox.AriaUtil.NO_ROLE_NAME?" ":a:null};cvox.AriaUtil.isButton=function(a){var b=cvox.AriaUtil.getRoleAttribute(a);return"button"==b||"BUTTON"==a.tagName?!0:"INPUT"==a.tagName?"submit"==a.type||"reset"==a.type||"button"==a.type:!1};
+cvox.AriaUtil.getRoleNameMsg=function(a){var b;if(a&&a.getAttribute){var c=cvox.AriaUtil.getRoleAttribute(a);if("true"==a.getAttribute("aria-haspopup")&&cvox.AriaUtil.isButton(a))return"aria_role_popup_button";c&&((b=cvox.AriaUtil.getRoleNameMsgForRole_(c))||(b=cvox.AriaUtil.STRUCTURE_ROLE_TO_NAME[c]));if("menuitem"==c){for(a=a.parentElement;a&&(!a.getAttribute||"menu"!=cvox.AriaUtil.getRoleAttribute(a)&&"menubar"!=cvox.AriaUtil.getRoleAttribute(a));)a=a.parentElement;a&&"menubar"==cvox.AriaUtil.getRoleAttribute(a)&&
+(b=cvox.AriaUtil.getRoleNameMsgForRole_("menu"))}}b||(b="");return b};cvox.AriaUtil.getRoleName=function(a){var b=cvox.AriaUtil.getRoleNameMsg(a),b=cvox.ChromeVox.msgs.getMsg(b),c=cvox.AriaUtil.getRoleAttribute(a);"heading"==c&&a.hasAttribute("aria-level")&&(b+=" "+a.getAttribute("aria-level"));return b?b:""};
+cvox.AriaUtil.getStateMsgs=function(a,b){var c=[];if(!a||!a.getAttribute)return c;for(var d=0,e;e=cvox.AriaUtil.ATTRIBUTE_VALUE_TO_STATUS[d];d++){var f=a.getAttribute(e.name);(e=e.values[f])&&c.push([e])}if("grid"==a.getAttribute("role"))return cvox.AriaUtil.getGridState_(a,a);e=cvox.AriaUtil.getRoleAttribute(a);"true"==a.getAttribute("aria-haspopup")&&("menuitem"==e?c.push(["has_submenu"]):cvox.AriaUtil.isButton(a)||c.push(["has_popup"]));if(d=a.getAttribute("aria-valuetext"))return c.push([d]),
+c;var d=a.getAttribute("aria-valuenow"),f=a.getAttribute("aria-valuemin"),g=a.getAttribute("aria-valuemax");if(null!=d&&null!=f&&null!=g&&("scrollbar"==e||"progressbar"==e)){var h=Math.round(d/(g-f)*100);c.push(["state_percent",h]);return c}null!=d&&c.push(["aria_value_now",d]);null!=f&&c.push(["aria_value_min",f]);null!=g&&c.push(["aria_value_max",g]);f=a;d=null;if(cvox.AriaUtil.isCompositeControl(f)&&b)d=cvox.AriaUtil.getActiveDescendant(f);else if(e=cvox.AriaUtil.getRoleAttribute(a),"option"==
+e||"menuitem"==e||"menuitemcheckbox"==e||"menuitemradio"==e||"radio"==e||"tab"==e||"treeitem"==e)for(d=a,f=a.parentElement;f&&!cvox.AriaUtil.isCompositeControl(f)&&(!(f=f.parentElement)||"treeitem"!=cvox.AriaUtil.getRoleAttribute(f)););if(f&&(cvox.AriaUtil.isCompositeControl(f)||"treeitem"==cvox.AriaUtil.getRoleAttribute(f))&&d){e=cvox.AriaUtil.getRoleAttribute(f);var k;switch(e){case "combobox":case "listbox":k=["option"];break;case "menu":k=["menuitem","menuitemcheck","menuitemradio"];break;case "radiogroup":k=
+["radio"];break;case "tablist":k=["tab"];break;case "tree":case "treegrid":case "treeitem":k=["treeitem"]}if(k){var l;e=parseInt(d.getAttribute("aria-setsize"),10);isNaN(e)||(h=e);e=parseInt(d.getAttribute("aria-posinset"),10);isNaN(e)||(l=e);if(void 0==h||void 0==l)if(k=cvox.AriaUtil.getNextLevel(f,k),void 0==h&&(h=k.length),void 0==l)for(e=0;e<k.length;e++)k[e]==d&&(l=e+1);l&&h&&c.push(["list_position",l,h])}}return c};
+cvox.AriaUtil.getGridState_=function(a,b){var c=cvox.AriaUtil.getActiveDescendant(b);if(c)for(var d='*[role~="row"]',d=b.querySelectorAll(d),e=0;e<d.length;e++)for(var f=d[e].querySelectorAll('*[role~="gridcell"]'),g=0;g<f.length;g++)if(f[g]==c)return[["aria_role_gridcell_pos",e+1,g+1]];return[]};cvox.AriaUtil.getActiveDescendantId_=function(a){return a.getAttribute?(a=a.getAttribute("aria-activedescendant"))?a:null:null};
+cvox.AriaUtil.getNextLevel=function(a,b){for(var c=[],d=a.childNodes,e=0;e<d.length;e++)if(!cvox.AriaUtil.isHidden(d[e])&&cvox.DomUtil.isVisible(d[e])){var f=cvox.AriaUtil.getNextLevelItems(d[e],b);0<f.length&&(c=c.concat(f))}return c};
+cvox.AriaUtil.getNextLevelItems=function(a,b){if(1!=a.nodeType)return[];if(-1!=b.indexOf(cvox.AriaUtil.getRoleAttribute(a)))return[a];var c=a.childNodes,d=c.length;if(0==d)return[];for(var e=[],f=0;f<d;f++){var g=cvox.AriaUtil.getNextLevelItems(c[f],b);0<g.length&&(e=e.concat(g))}return e};cvox.AriaUtil.getActiveDescendant=function(a){for(var b={},c=a;c;){var d=cvox.AriaUtil.getActiveDescendantId_(c);if(!d)break;if(d in b)return null;b[d]=!0;c=document.getElementById(d)}return c==a?null:c};
+cvox.AriaUtil.isControlWidget=function(a){if(a&&a.getAttribute)switch(a=cvox.AriaUtil.getRoleAttribute(a),a){case "button":case "checkbox":case "combobox":case "listbox":case "menu":case "menuitemcheckbox":case "menuitemradio":case "radio":case "slider":case "progressbar":case "scrollbar":case "spinbutton":case "tab":case "tablist":case "textbox":return!0}return!1};cvox.AriaUtil.isCompositeControl=function(a){if(a&&a.getAttribute)switch(a=cvox.AriaUtil.getRoleAttribute(a),a){case "combobox":case "grid":case "listbox":case "menu":case "menubar":case "radiogroup":case "tablist":case "tree":case "treegrid":return!0}return!1};
+cvox.AriaUtil.getAriaLive=function(a){if(!a.hasAttribute)return null;var b=a.getAttribute("aria-live");if("off"==b)return null;if(b)return b;a=cvox.AriaUtil.getRoleAttribute(a);switch(a){case "alert":return"assertive";case "log":case "status":return"polite";default:return null}};cvox.AriaUtil.getAriaAtomic=function(a){if(!a.hasAttribute)return!1;var b=a.getAttribute("aria-atomic");if(b)return"true"===b;a=cvox.AriaUtil.getRoleAttribute(a);return"alert"==a?!0:!1};
+cvox.AriaUtil.getAriaBusy=function(a){return a.hasAttribute?(a=a.getAttribute("aria-busy"))?"true"===a:!1:!1};cvox.AriaUtil.getAriaRelevant=function(a,b){if(!a.hasAttribute)return!1;var c;c=a.hasAttribute("aria-relevant")?a.getAttribute("aria-relevant"):"additions text";"all"==c&&(c="additions removals text");c=c.replace(/\s+/g," ").replace(/^\s+|\s+$/g,"").split(" ");return"all"==b?0<=c.indexOf("additions")&&0<=c.indexOf("text")&&0<=c.indexOf("removals"):0<=c.indexOf(b)};
+cvox.AriaUtil.getLiveRegions=function(a){var b=[];if(a.querySelectorAll){var c=a.querySelectorAll('[role="alert"], [role="log"], [role="marquee"], [role="status"], [role="timer"], [aria-live]');if(c)for(var d=0;d<c.length;d++)b.push(c[d])}for(;a;){if(cvox.AriaUtil.getAriaLive(a)){b.push(a);break}a=a.parentElement}return b};cvox.AriaUtil.isLandmark=function(a){if(!a||!a.getAttribute)return!1;a=cvox.AriaUtil.getRoleAttribute(a);switch(a){case "application":case "banner":case "complementary":case "contentinfo":case "form":case "main":case "navigation":case "search":return!0}return!1};
+cvox.AriaUtil.isGrid=function(a){if(!a||!a.getAttribute)return!1;a=cvox.AriaUtil.getRoleAttribute(a);switch(a){case "grid":case "treegrid":return!0}return!1};
+cvox.AriaUtil.getEarcon=function(a){if(!a||!a.getAttribute)return null;var b=cvox.AriaUtil.getRoleAttribute(a);switch(b){case "button":return cvox.AbstractEarcons.BUTTON;case "checkbox":case "radio":case "menuitemcheckbox":case "menuitemradio":return a=a.getAttribute("aria-checked"),"true"==a?cvox.AbstractEarcons.CHECK_ON:cvox.AbstractEarcons.CHECK_OFF;case "combobox":case "listbox":return cvox.AbstractEarcons.LISTBOX;case "textbox":return cvox.AbstractEarcons.EDITABLE_TEXT;case "listitem":return cvox.AbstractEarcons.BULLET;
+case "link":return cvox.AbstractEarcons.LINK}return null};cvox.AriaUtil.getRoleAttribute=function(a){if(!a.getAttribute)return"";var b=a.getAttribute("role");a.hasAttribute("chromevoxoriginalrole")&&(b=a.getAttribute("chromevoxoriginalrole"));return b};cvox.AriaUtil.isMath=function(a){if(!a||!a.getAttribute)return!1;a=cvox.AriaUtil.getRoleAttribute(a);return"math"==a};cvox.DomPredicates={};cvox.DomPredicates.checkboxPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"checkbox"==a[b].getAttribute("role")||"INPUT"==a[b].tagName&&"checkbox"==a[b].type)return a[b];return null};cvox.DomPredicates.radioPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"radio"==a[b].getAttribute("role")||"INPUT"==a[b].tagName&&"radio"==a[b].type)return a[b];return null};
+cvox.DomPredicates.sliderPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"slider"==a[b].getAttribute("role")||"INPUT"==a[b].tagName&&"range"==a[b].type)return a[b];return null};cvox.DomPredicates.graphicPredicate=function(a){for(var b=0;b<a.length;b++)if("IMG"==a[b].tagName||"INPUT"==a[b].tagName&&"img"==a[b].type)return a[b];return null};
+cvox.DomPredicates.buttonPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"button"==a[b].getAttribute("role")||"BUTTON"==a[b].tagName||"INPUT"==a[b].tagName&&"submit"==a[b].type||"INPUT"==a[b].tagName&&"button"==a[b].type||"INPUT"==a[b].tagName&&"reset"==a[b].type)return a[b];return null};cvox.DomPredicates.comboBoxPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"combobox"==a[b].getAttribute("role")||"SELECT"==a[b].tagName)return a[b];return null};
+cvox.DomPredicates.editTextPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"textbox"==a[b].getAttribute("role")||"TEXTAREA"==a[b].tagName||a[b].isContentEditable||"INPUT"==a[b].tagName&&cvox.DomUtil.isInputTypeText(a[b]))return a[b];return null};cvox.DomPredicates.headingPredicate=function(a){for(var b=0;b<a.length;b++){if(a[b].getAttribute&&"heading"==a[b].getAttribute("role"))return a[b];switch(a[b].tagName){case "H1":case "H2":case "H3":case "H4":case "H5":case "H6":return a[b]}}return null};
+cvox.DomPredicates.heading1Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H1")};cvox.DomPredicates.heading2Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H2")};cvox.DomPredicates.heading3Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H3")};cvox.DomPredicates.heading4Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H4")};cvox.DomPredicates.heading5Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H5")};
+cvox.DomPredicates.heading6Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H6")};cvox.DomPredicates.linkPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"link"==a[b].getAttribute("role")||"A"==a[b].tagName&&a[b].href)return a[b];return null};cvox.DomPredicates.tablePredicate=function(a){return(a=cvox.DomUtil.findTableNodeInList(a,{allowCaptions:!0}))&&!cvox.DomUtil.isLayoutTable(a)?a:null};
+cvox.DomPredicates.cellPredicate=function(a){for(var b=a.length-1;0<=b;--b){var c=a[b];if("TD"==c.tagName||"TH"==c.tagName||c.getAttribute&&"gridcell"==c.getAttribute("role"))return c}return null};cvox.DomPredicates.visitedLinkPredicate=function(a){for(var b=a.length-1;0<=b;--b)if(cvox.DomPredicates.linkPredicate([a[b]])&&cvox.ChromeVox.visitedUrls[a[b].href])return a[b]};
+cvox.DomPredicates.listPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"list"==a[b].getAttribute("role")||"UL"==a[b].tagName||"OL"==a[b].tagName)return a[b];return null};cvox.DomPredicates.listItemPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"listitem"==a[b].getAttribute("role")||"LI"==a[b].tagName)return a[b];return null};cvox.DomPredicates.blockquotePredicate=function(a){return cvox.DomPredicates.containsTagName_(a,"BLOCKQUOTE")};
+cvox.DomPredicates.formFieldPredicate=function(a){for(var b=0;b<a.length;b++)if(cvox.DomUtil.isControl(a[b]))return a[b];return null};cvox.DomPredicates.landmarkPredicate=function(a){for(var b=0;b<a.length;b++)if(cvox.AriaUtil.isLandmark(a[b]))return a[b];return null};cvox.DomPredicates.containsTagName_=function(a,b){for(var c=a.length;c--;)if(a[c].tagName==b)return a[c];return null};cvox.DomPredicates.mathPredicate=function(a){return cvox.DomUtil.findMathNodeInList(a)};
+cvox.DomPredicates.sectionPredicate=function(a){for(var b=0;b<a.length;b++){if(cvox.DomUtil.isSemanticElt(a[b])||cvox.AriaUtil.isLandmark(a[b])||a[b].getAttribute&&"heading"==a[b].getAttribute("role"))return a[b];switch(a[b].tagName){case "H1":case "H2":case "H3":case "H4":case "H5":case "H6":return a[b]}}return null};
+cvox.DomPredicates.controlPredicate=function(a){for(var b=0;b<a.length;b++)if(cvox.DomUtil.isControl(a[b])||a[b].getAttribute&&"link"==a[b].getAttribute("role")||"A"==a[b].tagName&&a[b].href)return a[b];return null};cvox.DomPredicates.captionPredicate=function(a){for(var b=0;b<a.length;b++)if("CAPTION"==a[b].tagName)return a[b];return null};
+cvox.DomPredicates.articlePredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"article"==a[b].getAttribute("role")||"ARTICLE"==a[b].tagName)return a[b];return null};cvox.DomPredicates.mediaPredicate=function(a){for(var b=0;b<a.length;b++)if("AUDIO"==a[b].tagName||"VIDEO"==a[b].tagName)return a[b];return null};cvox.DomPredicates.orderedListPredicate=function(a){for(var b=0;b<a.length;b++)if("OL"==a[b].tagName)return a[b];return null};cvox.XpathUtil=function(){};cvox.XpathUtil.nameSpaces_={xhtml:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML"};cvox.XpathUtil.resolveNameSpace=function(a){return cvox.XpathUtil.nameSpaces_[a]||null};cvox.XpathUtil.evalXPath=function(a,b){try{var c=b.ownerDocument.evaluate(a,b,cvox.XpathUtil.resolveNameSpace,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null)}catch(d){return[]}for(var e=[],f=c.iterateNext();f;f=c.iterateNext())e.push(f);return e};
+cvox.XpathUtil.getLeafNodes=function(a){try{var b=a.ownerDocument.evaluate(".//*[count(*)=0]",a,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null)}catch(c){return[]}a=[];for(var d=b.iterateNext();d;d=b.iterateNext())a.push(d);return a};cvox.XpathUtil.xpathSupported=function(){return"undefined"==typeof XPathResult?!1:!0};cvox.XpathUtil.evaluateBoolean=function(a,b){try{var c=b.ownerDocument.evaluate(a,b,cvox.XpathUtil.resolveNameSpace,XPathResult.BOOLEAN_TYPE,null)}catch(d){return!1}return c.booleanValue};
+cvox.XpathUtil.evaluateString=function(a,b){try{var c=b.ownerDocument.evaluate(a,b,cvox.XpathUtil.resolveNameSpace,XPathResult.STRING_TYPE,null)}catch(d){return""}return c.stringValue};cvox.DomUtil=function(){};
+cvox.DomUtil.INPUT_TYPE_TO_INFORMATION_TABLE_MSG={button:"input_type_button",checkbox:"input_type_checkbox",color:"input_type_color",datetime:"input_type_datetime","datetime-local":"input_type_datetime_local",date:"input_type_date",email:"input_type_email",file:"input_type_file",image:"input_type_image",month:"input_type_month",number:"input_type_number",password:"input_type_password",radio:"input_type_radio",range:"input_type_range",reset:"input_type_reset",search:"input_type_search",submit:"input_type_submit",
+tel:"input_type_tel",text:"input_type_text",url:"input_type_url",week:"input_type_week"};
+cvox.DomUtil.TAG_TO_INFORMATION_TABLE_VERBOSE_MSG={A:"tag_link",ARTICLE:"tag_article",ASIDE:"tag_aside",AUDIO:"tag_audio",BUTTON:"tag_button",FOOTER:"tag_footer",H1:"tag_h1",H2:"tag_h2",H3:"tag_h3",H4:"tag_h4",H5:"tag_h5",H6:"tag_h6",HEADER:"tag_header",HGROUP:"tag_hgroup",LI:"tag_li",MARK:"tag_mark",NAV:"tag_nav",OL:"tag_ol",SECTION:"tag_section",SELECT:"tag_select",TABLE:"tag_table",TEXTAREA:"tag_textarea",TIME:"tag_time",UL:"tag_ul",VIDEO:"tag_video"};
+cvox.DomUtil.TAG_TO_INFORMATION_TABLE_BRIEF_MSG={AUDIO:"tag_audio",BUTTON:"tag_button",SELECT:"tag_select",TABLE:"tag_table",TEXTAREA:"tag_textarea",VIDEO:"tag_video"};cvox.DomUtil.FORMATTING_TAGS="B BIG CITE CODE DFN EM I KBD SAMP SMALL SPAN STRIKE STRONG SUB SUP U VAR".split(" ");
+cvox.DomUtil.isVisible=function(a,b){b=b||{};"undefined"===typeof b.checkAncestors&&(b.checkAncestors=!0);"undefined"===typeof b.checkDescendants&&(b.checkDescendants=!0);if("IFRAME"==a.tagName&&!a.src)return!1;if(cvox.AriaUtil.isForcedVisibleRecursive(a))return!0;if(b.checkAncestors&&cvox.DomUtil.hasInvisibleAncestor_(a))return!1;var c=b.checkDescendants;return cvox.DomUtil.hasVisibleNodeSubtree_(a,c)?!0:!1};
+cvox.DomUtil.hasInvisibleAncestor_=function(a){for(;a=a.parentElement;){var b=document.defaultView.getComputedStyle(a,null);if(cvox.DomUtil.isInvisibleStyle(b,!0))return!0}return!1};
+cvox.DomUtil.hasVisibleNodeSubtree_=function(a,b){if(!(a instanceof Element)){var c=document.defaultView.getComputedStyle(a.parentElement,null);return c=!cvox.DomUtil.isInvisibleStyle(c)}var c=document.defaultView.getComputedStyle(a,null),d=!cvox.DomUtil.isInvisibleStyle(c);if(d)return!0;c=cvox.DomUtil.isInvisibleStyle(c,!0);if(!b||c)return!1;c=a.childNodes;for(d=0;d<c.length;d++){var e=c[d];if(cvox.DomUtil.hasVisibleNodeSubtree_(e,b))return!0}return!1};
+cvox.DomUtil.isInvisibleStyle=function(a,b){return a?"none"!=a.display&&0!=parseFloat(a.opacity)&&(b||"hidden"!=a.visibility&&"collapse"!=a.visibility)?!1:!0:!1};cvox.DomUtil.isDisabled=function(a){if(a.disabled)return!0;for(;a=a.parentElement;)if("FIELDSET"==a.tagName&&a.disabled)return!0;return!1};cvox.DomUtil.isSemanticElt=function(a){return a.tagName&&(a=a.tagName,"SECTION"==a||"NAV"==a||"ARTICLE"==a||"ASIDE"==a||"HGROUP"==a||"HEADER"==a||"FOOTER"==a||"TIME"==a||"MARK"==a)?!0:!1};
+cvox.DomUtil.isLeafNode=function(a,b){if(!(a instanceof Element))return null==a.firstChild;var c=a;if(!b&&!cvox.DomUtil.isVisible(c,{checkAncestors:!1})||!b&&cvox.AriaUtil.isHidden(c)||cvox.AriaUtil.isLeafElement(c))return!0;switch(c.tagName){case "OBJECT":case "EMBED":case "VIDEO":case "AUDIO":case "IFRAME":case "FRAME":return!0}return cvox.DomPredicates.linkPredicate([c])?!cvox.DomUtil.findNode(c,function(a){return!!cvox.DomPredicates.headingPredicate([a])}):cvox.DomUtil.isLeafLevelControl(c)||
+!c.firstChild||cvox.DomUtil.isMath(c)?!0:cvox.DomPredicates.headingPredicate([c])?!cvox.DomUtil.findNode(c,function(a){return!!cvox.DomPredicates.controlPredicate([a])}):!1};cvox.DomUtil.isDescendantOf=function(a,b,c){for(;a;){if(b&&c&&a.tagName&&a.tagName==b&&a.className&&a.className==c||b&&!c&&a.tagName&&a.tagName==b||!b&&c&&a.className&&a.className==c)return!0;a=a.parentNode}return!1};cvox.DomUtil.isDescendantOfNode=function(a,b){for(;a&&b;){if(a.isSameNode(b))return!0;a=a.parentNode}return!1};
+cvox.DomUtil.collapseWhitespace=function(a){return a.replace(/\s+/g," ").replace(/^\s+|\s+$/g,"")};
+cvox.DomUtil.getBaseLabel_=function(a,b,c){var d="";if(a.hasAttribute){if(a.hasAttribute("aria-labelledby"))for(var e=a.getAttribute("aria-labelledby").split(" "),f,g=0;f=e[g];g++)(f=document.getElementById(f))&&(d+=" "+cvox.DomUtil.getName(f,!0,c,!0));else if(a.hasAttribute("aria-label"))d=a.getAttribute("aria-label");else if(a.constructor==HTMLImageElement)d=cvox.DomUtil.getImageTitle(a);else if("FIELDSET"==a.tagName)for(e=a.getElementsByTagName("LEGEND"),d="",g=0;f=e[g];g++)d+=" "+cvox.DomUtil.getName(f,
+!0,c);0==d.length&&a&&a.id&&(a=document.querySelector('label[for="'+a.id+'"]'))&&(d=cvox.DomUtil.getName(a,b,c))}return cvox.DomUtil.collapseWhitespace(d)};cvox.DomUtil.getNearestAncestorLabel_=function(a){for(var b="";a&&"LABEL"!=a.tagName;)a=a.parentElement;a&&!a.hasAttribute("for")&&(b=cvox.DomUtil.getName(a,!0,!1));return b};
+cvox.DomUtil.getInputName_=function(a){var b="";"image"==a.type?b=cvox.DomUtil.getImageTitle(a):"submit"==a.type?b=a.hasAttribute("value")?a.getAttribute("value"):"Submit":"reset"==a.type?b=a.hasAttribute("value")?a.getAttribute("value"):"Reset":"button"==a.type&&a.hasAttribute("value")&&(b=a.getAttribute("value"));return b};
+cvox.DomUtil.getName=function(a,b,c,d){if(!a||!0==a.cvoxGetNameMarked)return"";a.cvoxGetNameMarked=!0;b=cvox.DomUtil.getName_(a,b,c,d);a.cvoxGetNameMarked=!1;a=cvox.DomUtil.getPrefixText(a);return a+b};cvox.DomUtil.hasChildrenBasedName_=function(a,b){return cvox.DomPredicates.linkPredicate([a])||cvox.DomPredicates.headingPredicate([a])||"BUTTON"==a.tagName||cvox.AriaUtil.isControlWidget(a)||!cvox.DomUtil.isLeafNode(a,b)?!0:!1};
+cvox.DomUtil.getName_=function(a,b,c,d){"undefined"===typeof b&&(b=!0);"undefined"===typeof c&&(c=!0);if(a.constructor==Text)return a.data;var e=cvox.DomUtil.getBaseLabel_(a,b,c);0==e.length&&cvox.DomUtil.isControl(a)&&(e=cvox.DomUtil.getNearestAncestorLabel_(a));0==e.length&&a.constructor==HTMLInputElement&&(e=cvox.DomUtil.getInputName_(a));return cvox.DomUtil.isInputTypeText(a)&&a.hasAttribute("placeholder")?(b=a.getAttribute("placeholder"),0<e.length?0<cvox.DomUtil.getValue(a).length?e:e+" with hint "+
+b:b):0<e.length?e:0==cvox.DomUtil.collapseWhitespace(a.textContent).length&&a.hasAttribute&&a.hasAttribute("title")?a.getAttribute("title"):!b||cvox.AriaUtil.isCompositeControl(a)?"":cvox.DomUtil.hasChildrenBasedName_(a,d)?cvox.DomUtil.getNameFromChildren(a,c,d):""};
+cvox.DomUtil.getNameFromChildren=function(a,b,c){void 0==b&&(b=!0);for(var d="",e="",f=0;f<a.childNodes.length;f++){var g=a.childNodes[f],e=a.childNodes[f-1]||g;if(b||!cvox.DomUtil.isControl(g)){var h=cvox.DomUtil.isVisible(g,{checkAncestors:!1});if(c||h&&!cvox.AriaUtil.isHidden(g))e="SPAN"==e.tagName||"SPAN"==g.tagName||"SPAN"==g.parentNode.tagName?"":" ",d+=e+cvox.DomUtil.getName(g,!0,b)}}return d};
+cvox.DomUtil.getPrefixText=function(a,b){b=b||0;for(var c=cvox.DomUtil.getAncestors(a),d="",e=c=cvox.DomPredicates.listItemPredicate(c);e&&e.firstChild;)e=e.firstChild;c&&c.parentNode&&0==b&&"OL"==c.parentNode.tagName&&a==e&&"none"!=document.defaultView.getComputedStyle(c.parentNode).listStyleType&&(d=cvox.DomUtil.toArray(c.parentNode.children).filter(function(a){return"LI"==a.tagName}),d=d.indexOf(c)+1,-1!=document.defaultView.getComputedStyle(c.parentNode).listStyleType.indexOf("latin")&&(d--,d=
+String.fromCharCode(65+d%26)),d+=". ");return d};
+cvox.DomUtil.getControlLabelHeuristics=function(a){if(a.hasAttribute&&(a.hasAttribute("aria-label")&&""==a.getAttribute("aria-label")||a.hasAttribute("aria-title")&&""==a.getAttribute("aria-title")))return"";for(var b=cvox.DomUtil.previousLeafNode(a),c=0;b&&(!cvox.DomUtil.hasContent(b)||cvox.DomUtil.isControl(b));)b=cvox.DomUtil.previousLeafNode(b),c++;for(var c=cvox.DomUtil.directedNextLeafNode(a),d=0;c&&(!cvox.DomUtil.hasContent(c)||cvox.DomUtil.isControl(c));)c=cvox.DomUtil.directedNextLeafNode(c),
+d++;if(b&&c){for(var d=a,e=0;d&&!cvox.DomUtil.isDescendantOfNode(b,d);)d=d.parentNode,e++;d=a;for(a=0;d&&!cvox.DomUtil.isDescendantOfNode(c,d);)d=d.parentNode,a++;b=a<e?c:b}else b=b||c;return b?cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(b)+" "+cvox.DomUtil.getName(b)):""};
+cvox.DomUtil.getValue=function(a){var b=cvox.AriaUtil.getActiveDescendant(a);if(b)return cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(b)+" "+cvox.DomUtil.getName(b));if(a.constructor==HTMLSelectElement){var b="",c=a.selectedOptions?a.selectedOptions[0]:null;a=a.selectedOptions?a.selectedOptions[a.selectedOptions.length-1]:null;c&&a&&c!=a?b=cvox.ChromeVox.msgs.getMsg("selected_options_value",[c.text,a.text]):c&&(b=c.text+"");return b}if(a.constructor==HTMLTextAreaElement)return a.value;if(a.constructor==
+HTMLInputElement)switch(a.type){case "hidden":case "image":case "submit":case "reset":case "button":case "checkbox":case "radio":return"";case "password":return a.value.replace(/./g,"dot ");default:return a.value}return a.isContentEditable?cvox.DomUtil.getNameFromChildren(a,!0):""};
+cvox.DomUtil.getImageTitle=function(a){a.hasAttribute("alt")?a=a.alt:a.hasAttribute("title")?a=a.title:(a=a.src,"data"!=a.substring(0,4)?(a=a.substring(a.lastIndexOf("/")+1,a.lastIndexOf(".")),a=1<=a.length&&16>=a.length?a+" Image":"Image"):a="Image");return a};
+cvox.DomUtil.hasContent=function(a){if(8==a.nodeType||cvox.DomUtil.isDescendantOf(a,"HEAD")||cvox.DomUtil.isDescendantOf(a,"SCRIPT")||cvox.DomUtil.isDescendantOf(a,"NOSCRIPT")||cvox.DomUtil.isDescendantOf(a,"NOEMBED")||cvox.DomUtil.isDescendantOf(a,"STYLE")||!cvox.DomUtil.isVisible(a)||cvox.AriaUtil.isHidden(a))return!1;if(cvox.DomUtil.isControl(a)||cvox.DomUtil.isDescendantOf(a,"VIDEO")||cvox.DomUtil.isDescendantOf(a,"AUDIO")||"IFRAME"==a.tagName&&a.src&&0!=a.src.indexOf("javascript:"))return!0;
+for(var b="button,input,select,textarea",c=a.parentElement;c&&"LABEL"!=c.tagName;)c=c.parentElement;if(c){var d=c.querySelector(b);if(c.hasAttribute("for")){if(c=c.getAttribute("for"),(c=document.getElementById(c))&&cvox.DomUtil.isControl(c)&&!d)return!1}else if(d)return!1}for(d=a.parentElement;d&&"LEGEND"!=d.tagName;)d=d.parentElement;if(d){for(c=d.parentElement;c&&"FIELDSET"!=c.tagName;)c=c.parentElement;d=c&&c.querySelector(b);if(c&&!d)return!1}if(cvox.DomPredicates.linkPredicate([a])||"TABLE"==
+a.tagName||cvox.DomUtil.isMath(a)||cvox.DomPredicates.headingPredicate([a]))return!0;b=cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getName(a);a=cvox.DomUtil.getState(a,!0);return b.match(/^\s+$/)&&""===a?!1:!0};cvox.DomUtil.getAncestors=function(a){for(var b=[];a;)b.push(a),a=a.parentNode;for(b.reverse();b.length&&!b[0].tagName&&!b[0].nodeValue;)b.shift();return b};cvox.DomUtil.compareAncestors=function(a,b){for(var c=0;a[c]&&b[c]&&a[c]==b[c];)c++;a[c]||b[c]||(c=-1);return c};
+cvox.DomUtil.getUniqueAncestors=function(a,b,c){a=cvox.DomUtil.getAncestors(a);b=cvox.DomUtil.getAncestors(b);a=cvox.DomUtil.compareAncestors(a,b);a=b.slice(a);return 0==a.length&&c?b:a};
+cvox.DomUtil.getRoleMsg=function(a,b){var c;c=cvox.AriaUtil.getRoleNameMsg(a);c||("INPUT"==a.tagName?c=cvox.DomUtil.INPUT_TYPE_TO_INFORMATION_TABLE_MSG[a.type]:"A"==a.tagName&&cvox.DomUtil.isInternalLink(a)?c="internal_link":"A"==a.tagName&&a.getAttribute("name")?c="":a.isContentEditable?c="input_type_text":cvox.DomUtil.isMath(a)?c="math_expr":"TABLE"==a.tagName&&cvox.DomUtil.isLayoutTable(a)?c="":b==cvox.VERBOSITY_BRIEF?c=cvox.DomUtil.TAG_TO_INFORMATION_TABLE_BRIEF_MSG[a.tagName]:(c=cvox.DomUtil.TAG_TO_INFORMATION_TABLE_VERBOSE_MSG[a.tagName],
+cvox.DomUtil.hasLongDesc(a)&&(c="image_with_long_desc"),!c&&a.onclick&&(c="clickable")));return c};cvox.DomUtil.getRole=function(a,b){var c=cvox.DomUtil.getRoleMsg(a,b)||"",d=c&&" "!=c?cvox.ChromeVox.msgs.getMsg(c):"";return d?d:c};cvox.DomUtil.getListLength=function(a){var b=0;for(a=a.firstChild;a;a=a.nextSibling)if("LI"==a.tagName||a.getAttribute&&"listitem"==a.getAttribute("role")){if(a.hasAttribute("aria-setsize")){var c=parseInt(a.getAttribute("aria-setsize"),10);if(!isNaN(c))return c}b++}return b};
+cvox.DomUtil.getStateMsgs=function(a,b){var c=cvox.AriaUtil.getActiveDescendant(a);if(c)return cvox.DomUtil.getStateMsgs(c,b);var c=[],d=a.getAttribute?a.getAttribute("role"):"";(c=cvox.AriaUtil.getStateMsgs(a,b))||(c=[]);"INPUT"==a.tagName?a.hasAttribute("aria-checked")||(d={"checkbox-true":"checkbox_checked_state","checkbox-false":"checkbox_unchecked_state","radio-true":"radio_selected_state","radio-false":"radio_unselected_state"},(d=d[a.type+"-"+!!a.checked])&&c.push([d])):"SELECT"==a.tagName?
+a.selectedOptions&&1>=a.selectedOptions.length?c.push(["list_position",cvox.ChromeVox.msgs.getNumber(a.selectedIndex+1),cvox.ChromeVox.msgs.getNumber(a.options.length)]):c.push(["selected_options_state",cvox.ChromeVox.msgs.getNumber(a.selectedOptions.length)]):"UL"!=a.tagName&&"OL"!=a.tagName&&"list"!=d||c.push(["list_with_items",cvox.ChromeVox.msgs.getNumber(cvox.DomUtil.getListLength(a))]);cvox.DomUtil.isDisabled(a)&&c.push(["aria_disabled_true"]);cvox.DomPredicates.linkPredicate([a])&&cvox.ChromeVox.visitedUrls[a.href]&&
+c.push(["visited_url"]);a.accessKey&&c.push(["access_key",a.accessKey]);return c};cvox.DomUtil.getState=function(a,b){return cvox.NodeStateUtil.expand(cvox.DomUtil.getStateMsgs(a,b))};cvox.DomUtil.isFocusable=function(a){return a&&"number"==typeof a.tabIndex&&("A"!=a.tagName||a.hasAttribute("href")||a.hasAttribute("tabindex"))?0<=a.tabIndex||a.hasAttribute&&a.hasAttribute("tabindex")&&"-1"==a.getAttribute("tabindex")?!0:!1:!1};
+cvox.DomUtil.findFocusableDescendant=function(a){return a&&(a=cvox.DomUtil.findNode(a,cvox.DomUtil.isFocusable))?a:null};cvox.DomUtil.countFocusableDescendants=function(a){return a?cvox.DomUtil.countNodes(a,cvox.DomUtil.isFocusable):0};cvox.DomUtil.isAttachedToDocument=function(a){for(;a;){if(a.tagName&&"HTML"==a.tagName)return!0;a=a.parentNode}return!1};
+cvox.DomUtil.clickElem=function(a,b,c,d){var e=cvox.AriaUtil.getActiveDescendant(a);e&&(a=e);if(c){c=null;a.onclick&&(c=a.onclick);!c&&1!=a.nodeType&&a.parentNode&&a.parentNode.onclick&&(c=a.parentNode.onclick);e=!0;if(c)try{e=c()}catch(f){}if(!e)return}c=document.createEvent("MouseEvents");d=d?"dblclick":"mousedown";c.initMouseEvent(d,!0,!0,document.defaultView,1,0,0,0,0,!1,!1,b,!1,0,null);c.fromCvox=!0;try{a.dispatchEvent(c)}catch(g){}c=document.createEvent("MouseEvents");c.initMouseEvent("mouseup",
+!0,!0,document.defaultView,1,0,0,0,0,!1,!1,b,!1,0,null);c.fromCvox=!0;try{a.dispatchEvent(c)}catch(h){}c=document.createEvent("MouseEvents");c.initMouseEvent("click",!0,!0,document.defaultView,1,0,0,0,0,!1,!1,b,!1,0,null);c.fromCvox=!0;try{a.dispatchEvent(c)}catch(k){}cvox.DomUtil.isInternalLink(a)&&cvox.DomUtil.syncInternalLink(a)};
+cvox.DomUtil.syncInternalLink=function(a){var b=a.href.split("#")[1];a=document.getElementById(b);a||(b=document.getElementsByName(b),0<b.length&&(a=b[0]));if(a){var b=a.parentNode,c=document.createElement("div");c.setAttribute("tabindex","-1");b.insertBefore(c,a);c.setAttribute("chromevoxignoreariahidden",1);c.focus();cvox.ChromeVox.syncToNode(a,!0)}};
+cvox.DomUtil.isInputTypeText=function(a){if(!a||a.constructor!=HTMLInputElement)return!1;switch(a.type){case "email":case "number":case "password":case "search":case "text":case "tel":case "url":case "":return!0;default:return!1}};cvox.DomUtil.isControl=function(a){if(cvox.AriaUtil.isControlWidget(a)&&cvox.DomUtil.isFocusable(a))return!0;if(a.tagName)switch(a.tagName){case "BUTTON":case "TEXTAREA":case "SELECT":return!0;case "INPUT":return"hidden"!=a.type}return a.isContentEditable?!0:!1};
+cvox.DomUtil.isLeafLevelControl=function(a){return cvox.DomUtil.isControl(a)?!(cvox.AriaUtil.isCompositeControl(a)&&cvox.DomUtil.findFocusableDescendant(a)):!1};cvox.DomUtil.getSurroundingControl=function(a){var b=null;if(!cvox.DomUtil.isControl(a)&&a.hasAttribute&&a.hasAttribute("role"))for(b=a.parentElement;b&&!cvox.AriaUtil.isCompositeControl(b);)b=b.parentElement;return b};
+cvox.DomUtil.directedNextLeafLikeNode=function(a,b,c){if(a!=document.body){for(;!cvox.DomUtil.directedNextSibling(a,b);){if(!a)return null;a=a.parentNode;if(a==document.body)return null}cvox.DomUtil.directedNextSibling(a,b)&&(a=cvox.DomUtil.directedNextSibling(a,b))}for(;cvox.DomUtil.directedFirstChild(a,b)&&!c(a);)a=cvox.DomUtil.directedFirstChild(a,b);return a==document.body?null:a};cvox.DomUtil.directedNextLeafNode=function(a,b){b=!!b;return cvox.DomUtil.directedNextLeafLikeNode(a,b,cvox.DomUtil.isLeafNode)};
+cvox.DomUtil.previousLeafNode=function(a){return cvox.DomUtil.directedNextLeafNode(a,!0)};cvox.DomUtil.directedFindFirstNode=function(a,b,c){for(a=cvox.DomUtil.directedFirstChild(a,b);a;){if(c(a))return a;var d=cvox.DomUtil.directedFindFirstNode(a,b,c);if(d)return d;a=cvox.DomUtil.directedNextSibling(a,b)}return null};cvox.DomUtil.directedFindDeepestNode=function(a,b,c){var d=cvox.DomUtil.directedFindFirstNode(a,b,c);return d?cvox.DomUtil.directedFindDeepestNode(d,b,c):c(a)?a:null};
+cvox.DomUtil.directedFindNextNode=function(a,b,c,d,e,f){e=!!e;f=!!f;if(!cvox.DomUtil.isDescendantOfNode(a,b)||a==b)return null;for(var g=cvox.DomUtil.directedNextSibling(a,c);g;){if(!f&&d(g))return g;var h=(f?cvox.DomUtil.directedFindDeepestNode:cvox.DomUtil.directedFindFirstNode)(g,c,d);if(h)return h;if(f&&d(g))return g;g=cvox.DomUtil.directedNextSibling(g,c)}a=a.parentNode;return e&&d(a)?a:cvox.DomUtil.directedFindNextNode(a,b,c,d,e,f)};
+cvox.DomUtil.getControlValueAndStateString=function(a){var b=cvox.DomUtil.getSurroundingControl(a);return b?cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getName(a)+" "+cvox.DomUtil.getState(a,!0)):cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getState(a,!0))};cvox.DomUtil.isInternalLink=function(a){return 1==a.nodeType&&(a=a.getAttribute("href"))&&-1!=a.indexOf("#")?(a=a.split("#")[0],""==a||a==window.location.pathname):!1};
+cvox.DomUtil.getLinkURL=function(a){if("A"==a.tagName){if(a.getAttribute("href"))return cvox.DomUtil.isInternalLink(a)?cvox.ChromeVox.msgs.getMsg("internal_link"):a.getAttribute("href")}else if(cvox.AriaUtil.getRoleName(a)==cvox.ChromeVox.msgs.getMsg("aria_role_link"))return cvox.ChromeVox.msgs.getMsg("unknown_link");return""};cvox.DomUtil.getContainingTable=function(a,b){var c=cvox.DomUtil.getAncestors(a);return cvox.DomUtil.findTableNodeInList(c,b)};
+cvox.DomUtil.findTableNodeInList=function(a,b){b=b||{allowCaptions:!1};for(var c=a.length-1,d;d=a[c];c--)if(d.constructor!=Text){if(!b.allowCaptions&&"CAPTION"==d.tagName)break;if("TABLE"==d.tagName||cvox.AriaUtil.isGrid(d))return d}return null};
+cvox.DomUtil.isLayoutTable=function(a){if(a.rows&&(1==a.rows.length||1==a.rows[0].childElementCount))return!0;if(cvox.AriaUtil.isGrid(a)||cvox.AriaUtil.isLandmark(a)||a.caption||a.summary||0<cvox.XpathUtil.evalXPath("tbody/tr/th",a).length&&0<cvox.XpathUtil.evalXPath("tbody/tr/td",a).length||0<cvox.XpathUtil.evalXPath("colgroup",a).length||0<cvox.XpathUtil.evalXPath("thead",a).length||0<cvox.XpathUtil.evalXPath("tfoot",a).length)return!1;if(0<cvox.XpathUtil.evalXPath("tbody/tr/td/embed",a).length||
+0<cvox.XpathUtil.evalXPath("tbody/tr/td/object",a).length||0<cvox.XpathUtil.evalXPath("tbody/tr/td/iframe",a).length||0<cvox.XpathUtil.evalXPath("tbody/tr/td/applet",a).length)return!0;var b=0;cvox.DomUtil.hasBorder(a)||b++;6>=a.rows.length&&b++;12>=cvox.DomUtil.countPreviousTags(a)&&b++;0<cvox.XpathUtil.evalXPath("tbody/tr/td/table",a).length&&b++;return 3<=b};cvox.DomUtil.countPreviousTags=function(a){var b=cvox.DomUtil.getAncestors(a);return b.length+cvox.DomUtil.countPreviousSiblings(a)};
+cvox.DomUtil.countPreviousSiblings=function(a){var b=0;for(a=a.previousSibling;null!=a;)a.constructor!=Text&&b++,a=a.previousSibling;return b};cvox.DomUtil.hasBorder=function(a){return a.frame?-1==a.frame.indexOf("void"):a.border?1==a.border.length?"0"!=a.border:0!=a.border.slice(0,-2):a.style.borderStyle&&"none"==a.style.borderStyle?!1:a.style.borderWidth?0!=a.style.borderWidth.slice(0,-2):a.style.borderColor?!0:!1};
+cvox.DomUtil.getFirstLeafNode=function(){for(var a=document.body;a&&a.firstChild;)a=a.firstChild;for(;a&&!cvox.DomUtil.hasContent(a);)a=cvox.DomUtil.directedNextLeafNode(a);return a};cvox.DomUtil.findNode=function(a,b){var c=[],d=cvox.DomUtil.findNodes_(a,b,c,!0,1E4);return d?c[0]:void 0};cvox.DomUtil.countNodes=function(a,b){var c=[];cvox.DomUtil.findNodes_(a,b,c,!1,1E4);return c.length};
+cvox.DomUtil.findNodes_=function(a,b,c,d,e){if(null!=a||0==e)for(a=a.firstChild;a;){if(b(a)&&(c.push(a),d))return!0;e-=1;if(cvox.DomUtil.findNodes_(a,b,c,d,e))return!0;a=a.nextSibling}return!1};cvox.DomUtil.toArray=function(a){for(var b=[],c=0;c<a.length;c++)b.push(a[c]);return b};
+cvox.DomUtil.shallowChildlessClone=function(a,b){if("#text"==a.nodeName)return document.createTextNode(a.nodeValue);if("#comment"==a.nodeName)return document.createComment(a.nodeValue);for(var c=document.createElement(a.nodeName),d=0;d<a.attributes.length;++d){var e=a.attributes[d];b&&b[e.nodeName]||c.setAttribute(e.nodeName,e.nodeValue)}return c};
+cvox.DomUtil.deepClone=function(a,b){for(var c=cvox.DomUtil.shallowChildlessClone(a,b),d=0;d<a.childNodes.length;++d)c.appendChild(cvox.DomUtil.deepClone(a.childNodes[d],b));return c};cvox.DomUtil.directedFirstChild=function(a,b){return b?a.lastChild:a.firstChild};cvox.DomUtil.directedNextSibling=function(a,b){return a?b?a.previousSibling:a.nextSibling:null};cvox.DomUtil.createSimpleClickFunction=function(a){var b=a.cloneNode(!0);return function(){cvox.DomUtil.clickElem(b,!1,!1)}};
+cvox.DomUtil.addNodeToHead=function(a,b){if(!b||!document.getElementById(b)){var c=document.head||document.body;c.appendChild(a)}};cvox.DomUtil.getContainingMath=function(a){a=cvox.DomUtil.getAncestors(a);return cvox.DomUtil.findMathNodeInList(a)};cvox.DomUtil.findMathNodeInList=function(a){for(var b=0,c;c=a[b];b++)if(cvox.DomUtil.isMath(c))return c;return null};cvox.DomUtil.isMath=function(a){return cvox.DomUtil.isMathml(a)||cvox.DomUtil.isMathJax(a)||cvox.DomUtil.isMathImg(a)||cvox.AriaUtil.isMath(a)};
+cvox.DomUtil.ALT_MATH_CLASSES={tex:["tex","latex"],asciimath:["numberedequation","inlineformula","displayformula"]};cvox.DomUtil.altMathQuerySelector=function(a){return(a=cvox.DomUtil.ALT_MATH_CLASSES[a])?a.map(function(a){return"img."+a}).join(", "):""};cvox.DomUtil.isMathImg=function(a){if(!a||!a.tagName||!a.className||"IMG"!=a.tagName)return!1;a=a.className.toLowerCase();return-1!=cvox.DomUtil.ALT_MATH_CLASSES.tex.indexOf(a)||-1!=cvox.DomUtil.ALT_MATH_CLASSES.asciimath.indexOf(a)};
+cvox.DomUtil.isMathml=function(a){return a&&a.tagName?"math"==a.tagName.toLowerCase():!1};cvox.DomUtil.isMathJax=function(a){function b(a,b){return"SPAN"==a.tagName&&a.className.split(" ").some(function(a){return a.toLowerCase()==b})}return a&&a.tagName&&a.className?b(a,"math")?(a=cvox.DomUtil.getAncestors(a),a.some(function(a){return b(a,"mathjax")})):!1:!1};cvox.DomUtil.getMathSpanId=function(a){if(a=document.getElementById(a+"-Frame"))if(a=a.querySelector("span.math"))return a.id};
+cvox.DomUtil.hasLongDesc=function(a){return a&&a.longDesc?!0:!1};cvox.DomUtil.getNodeTagName=function(a){return a.nodeType==Node.ELEMENT_NODE?a.tagName:""};cvox.DomUtil.purgeNodes=function(a){return cvox.DomUtil.toArray(a).filter(function(a){return a.nodeType!=Node.TEXT_NODE||!a.textContent.match(/^\s+$/)})};cvox.DomUtil.elementToPoint=function(a){if(!a)return{x:0,y:0};a.constructor==Text&&(a=a.parentNode);a=a.getBoundingClientRect();return{x:a.left+a.width/2,y:a.top+a.height/2}};cvox.SelectionUtil=function(){};cvox.SelectionUtil.cleanUpParagraphForward=function(a){for(;3==a.focusNode.nodeType;){var b=a.focusNode,c=a.focusOffset;a.modify("extend","forward","sentence");if(b==a.focusNode&&c==a.focusOffset)return!1}return!0};cvox.SelectionUtil.cleanUpParagraphBack=function(a){for(var b,c;3==a.focusNode.nodeType&&(b=a.focusNode,c=a.focusOffset,a.modify("extend","backward","sentence"),b!=a.focusNode||c!=a.focusOffset););return!0};
+cvox.SelectionUtil.cleanUpSentence=function(a){for(var b=!0;b;)if(3==a.focusNode.nodeType){var c=a.focusNode,d=a.focusOffset;if(0<a.rangeCount&&0<a.getRangeAt(0).endOffset)if("."==c.substringData(a.getRangeAt(0).endOffset-1,1))break;else if(" "==c.substringData(a.getRangeAt(0).endOffset-1,1))break;else{if(a.modify("extend","forward","sentence"),c==a.focusNode&&d==a.focusOffset)return!1}else break}else break;return!0};
+cvox.SelectionUtil.findSelPosition=function(a){if(0==a.rangeCount)return[0,0];var b=a.getRangeAt(0).getBoundingClientRect();if(!b)return[0,0];a=window.pageYOffset+b.top;b=window.pageXOffset+b.left;return[a,b]};cvox.SelectionUtil.findTopLeftPosition=function(a){var b=0,c=0;if(a.offsetParent)for(b=a.offsetLeft,c=a.offsetTop,a=a.offsetParent;null!==a;)b+=a.offsetLeft,c+=a.offsetTop,a=a.offsetParent;return[c,b]};
+cvox.SelectionUtil.isSelectionValid=function(a){var b=RegExp(/^\s+$/);return!(b.test(a.toString())||""==a.toString())};cvox.SelectionUtil.isRangeValid=function(a){a=a.cloneContents().textContent;var b=RegExp(/^\s+$/);return!(b.test(a)||""==a)};cvox.SelectionUtil.findPos_=function(a){var b=0,c=0;if(a.offsetParent){do b+=a.offsetLeft,c+=a.offsetTop;while(a=a.offsetParent)}return[b,c]};
+cvox.SelectionUtil.scrollElementsToView=function(a){for(;a&&!a.getBoundingClientRect;)a=a.parentElement;if(a){for(var b=a,c=b.parentElement;b!=document.body&&c;)b.scrollTop=b.offsetTop,b.scrollLeft=b.offsetLeft,b=c,c=b.parentElement;a=cvox.SelectionUtil.findPos_(a);window.scrollTo(a[0]-window.innerWidth/2,a[1]-window.innerHeight/2)}};
+cvox.SelectionUtil.scrollToSelection=function(a){if(0!=a.rangeCount){cvox.SelectionUtil.scrollElementsToView(a.focusNode);var b=cvox.SelectionUtil.findSelPosition(a);a=b[0];var b=b[1],c=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop,d=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,e=window.innerWidth||document.documentElement.innerWidth||document.body.clientWidth;b<e&&(b=0);c+d<a?(a-=d,window.scroll(b,a+100)):a<c&&window.scroll(b,
+a-100)}};cvox.SelectionUtil.isAllWs=function(a){return!/[^\t\n\r ]/.test(a.data)};cvox.SelectionUtil.isIgnorable=function(a){return 8==a.nodeType||3==a.nodeType&&cvox.SelectionUtil.isAllWs(a)};cvox.SelectionUtil.nodeBefore=function(a){for(;a=a.previousSibling;)if(!cvox.SelectionUtil.isIgnorable(a))return a;return null};cvox.SelectionUtil.nodeAfter=function(a){for(;a=a.nextSibling;)if(!cvox.SelectionUtil.isIgnorable(a))return a;return null};
+cvox.SelectionUtil.lastChildNode=function(a){for(a=a.lastChild;a;){if(!cvox.SelectionUtil.isIgnorable(a))return a;a=a.previousSibling}return null};cvox.SelectionUtil.firstChildNode=function(a){for(a=a.firstChild;a;){if(!cvox.SelectionUtil.isIgnorable(a))return a;a=a.nextSibling}return null};cvox.SelectionUtil.dataOf=function(a){a=a.data;a=a.replace(/[\t\n\r ]+/g," ");" "==a.charAt(0)&&(a=a.substring(1,a.length));" "==a.charAt(a.length-1)&&(a=a.substring(0,a.length-1));return a};
+cvox.SelectionUtil.hasContentWithTag=function(a,b){if(!a||!a.anchorNode||!a.focusNode)return!1;if(a.anchorNode.tagName&&a.anchorNode.tagName==b||a.focusNode.tagName&&a.focusNode.tagName==b||a.anchorNode.parentNode.tagName&&a.anchorNode.parentNode.tagName==b||a.focusNode.parentNode.tagName&&a.focusNode.parentNode.tagName==b)return!0;var c=a.getRangeAt(0).cloneContents(),d=document.createElement("span");d.appendChild(c);return 0<d.getElementsByTagName(b).length};
+cvox.SelectionUtil.selectText=function(a,b,c){var d=document.createRange();d.setStart(a,b);d.setEnd(a,c);a=window.getSelection();a.removeAllRanges();a.addRange(d)};cvox.SelectionUtil.selectAllTextInNode=function(a){var b=document.createRange();b.setStart(a,0);b.setEndAfter(a);a=window.getSelection();a.removeAllRanges();a.addRange(b)};
+cvox.SelectionUtil.collapseToStart=function(a){var b=window.getSelection(),c=b.anchorNode,d=b.anchorOffset;null==c&&(c=a,d=0);a=document.createRange();a.setStart(c,d);a.setEnd(c,d);b.removeAllRanges();b.addRange(a)};cvox.SelectionUtil.collapseToEnd=function(a){var b=window.getSelection(),c=b.focusNode,d=b.focusOffset;null==c&&(c=a,d=0);a=document.createRange();a.setStart(c,d);a.setEnd(c,d);b.removeAllRanges();b.addRange(a)};
+cvox.SelectionUtil.getText=function(){var a=window.getSelection();if(cvox.SelectionUtil.hasContentWithTag(a,"IMG")){var b="",a=a.getRangeAt(0).cloneContents(),c=document.createElement("span");c.appendChild(a);for(var a=cvox.XpathUtil.getLeafNodes(c),c=0,d;d=a[c];c++)b=b+" "+cvox.DomUtil.getName(d);return b}return this.getSelectionText_()};cvox.SelectionUtil.getSelectionText_=function(){return""+window.getSelection()};
+cvox.SelectionUtil.getRangeText=function(a){return a?a.cloneContents().textContent.replace(/\s+/g," "):""};cvox.TraverseUtil=function(){};cvox.TraverseUtil.getNodeText=function(a){return a.constructor==Text?a.data:""};cvox.TraverseUtil.treatAsLeafNode=function(a){return 0==a.childNodes.length||"SELECT"==a.nodeName||"listbox"==a.getAttribute("role")||"OBJECT"==a.nodeName};cvox.TraverseUtil.isWhitespace=function(a){return" "==a||"\n"==a||"\r"==a||"\t"==a};
+cvox.TraverseUtil.setSelection=function(a,b){var c=window.getSelection();c.removeAllRanges();var d=document.createRange();d.setStart(a.node,a.index);d.setEnd(b.node,b.index);c.addRange(d);return c};cvox.TraverseUtil.isHidden=function(a){if(a instanceof HTMLElement&&"true"==a.getAttribute("aria-hidden"))return!0;switch(a.tagName){case "SCRIPT":case "NOSCRIPT":return!0}return!1};
+cvox.TraverseUtil.forwardsChar=function(a,b,c){for(;;){var d=null;if(!cvox.TraverseUtil.treatAsLeafNode(a.node))for(var e=a.index;e<a.node.childNodes.length;e++){var f=a.node.childNodes[e];if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}}if(d)a.node=d,a.index=0,a.text=cvox.TraverseUtil.getNodeText(a.node),a.node instanceof HTMLElement&&b.push(a.node);else{if(a.index<a.text.length)return a.text[a.index++];for(;null!=
+a.node;){d=null;for(f=a.node.nextSibling;null!=f;f=f.nextSibling)if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}if(d){a.node instanceof HTMLElement&&c.push(a.node);a.node=d;a.text=cvox.TraverseUtil.getNodeText(d);a.index=0;a.node instanceof HTMLElement&&b.push(a.node);break}if(a.node.parentNode&&a.node.parentNode.constructor!=HTMLBodyElement)a.node instanceof HTMLElement&&c.push(a.node),a.node=a.node.parentNode,
+a.text=null,a.index=0;else return null}}}};
+cvox.TraverseUtil.backwardsChar=function(a,b,c){for(;;){var d=null;if(!cvox.TraverseUtil.treatAsLeafNode(a.node))for(var e=a.index-1;0<=e;e--){var f=a.node.childNodes[e];if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}}if(d)a.node=d,a.text=cvox.TraverseUtil.getNodeText(a.node),a.index=a.text.length?a.text.length:a.node.childNodes.length,a.node instanceof HTMLElement&&b.push(a.node);else{if(0<a.text.length&&0<a.index)return a.text[--a.index];
+for(;;){d=null;for(f=a.node.previousSibling;null!=f;f=f.previousSibling)if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}if(d){a.node instanceof HTMLElement&&c.push(a.node);a.node=d;a.text=cvox.TraverseUtil.getNodeText(d);a.index=a.text.length?a.text.length:a.node.childNodes.length;a.node instanceof HTMLElement&&b.push(a.node);break}if(a.node.parentNode&&a.node.parentNode.constructor!=HTMLBodyElement)a.node instanceof
+HTMLElement&&c.push(a.node),a.node=a.node.parentNode,a.text=null,a.index=0;else return null}}}};
+cvox.TraverseUtil.getNextChar=function(a,b,c,d,e){a.copyFrom(b);var f=cvox.TraverseUtil.forwardsChar(b,c,d);if(null==f)return null;for(var g=cvox.TraverseUtil.isWhitespace(f);cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(b.node);)if(f=cvox.TraverseUtil.forwardsChar(b,c,d),null==f)return null;if(e||!g)return a.copyFrom(b),a.index--,f;for(d=0;d<c.length;d++)if(cvox.TraverseUtil.isHidden(c[d]))return b.index--,a.copyFrom(b),a.index--," ";b.index--;return" "};
+cvox.TraverseUtil.getPreviousChar=function(a,b,c,d,e){b.copyFrom(a);var f=cvox.TraverseUtil.backwardsChar(a,c,d);if(null==f)return null;for(var g=cvox.TraverseUtil.isWhitespace(f);cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(a.node);)if(f=cvox.TraverseUtil.backwardsChar(a,c,d),null==f)return null;if(e||!g)return b.copyFrom(a),b.index++,f;for(d=0;d<c.length;d++)if(cvox.TraverseUtil.isHidden(c[d]))return a.index++,b.copyFrom(a),b.index++," ";a.index++;return" "};
+cvox.TraverseUtil.getNextWord=function(a,b,c,d){var e=b.clone(),f=cvox.TraverseUtil.forwardsChar(e,c,d);if(null==f)return null;for(;cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(e.node);)if(f=cvox.TraverseUtil.forwardsChar(e,c,d),null==f)return null;a.copyFrom(e);a.index--;b.copyFrom(e);a=f;c=[];d=[];f=cvox.TraverseUtil.forwardsChar(e,c,d);if(null==f)return a;for(;!cvox.TraverseUtil.isWhitespace(f)&&0==c.length&&0==d&&(a+=f,b.copyFrom(e),f=cvox.TraverseUtil.forwardsChar(e,c,d),null!=
+f););return a};
+cvox.TraverseUtil.getPreviousWord=function(a,b,c,d){var e=a.clone(),f=cvox.TraverseUtil.backwardsChar(e,c,d);if(null==f)return null;for(;cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(e.node);)if(f=cvox.TraverseUtil.backwardsChar(e,c,d),null==f)return null;b.copyFrom(e);b.index++;a.copyFrom(e);b=f;c=[];d=[];f=cvox.TraverseUtil.backwardsChar(e,c,d);if(null==f)return b;for(;!cvox.TraverseUtil.isWhitespace(f)&&0==c.length&&0==d.length&&(b=f+b,a.copyFrom(e),f=cvox.TraverseUtil.backwardsChar(e,c,
+d),null!=f););return b};cvox.TraverseUtil.includesBreakTagOrSkippedNode=function(a,b,c){for(var d=0;d<a.length;d++){if(cvox.TraverseUtil.isHidden(a[d]))return!0;var e=window.getComputedStyle(a[d],null);if(e&&"inline"!=e.display||c[a[d].tagName])return!0}for(d=0;d<b.length;d++)if((e=window.getComputedStyle(b[d],null))&&"inline"!=e.display||c[b[d].tagName])return!0;return!1};
+cvox.TraverseUtil.getNextSentence=function(a,b,c,d,e){return cvox.TraverseUtil.getNextString(a,b,c,d,function(a,b,c,d){return"."==a.substr(-1)?!0:cvox.TraverseUtil.includesBreakTagOrSkippedNode(c,d,e)})};cvox.TraverseUtil.getPreviousSentence=function(a,b,c,d,e){return cvox.TraverseUtil.getPreviousString(a,b,c,d,function(a,b,c,d){return"."==b.substr(-1)?!0:cvox.TraverseUtil.includesBreakTagOrSkippedNode(c,d,e)})};
+cvox.TraverseUtil.getNextLine=function(a,b,c,d,e){var f=document.createRange(),g=null,h=b.clone();return cvox.TraverseUtil.getNextString(a,b,c,d,function(c,d,m,p){f.setStart(a.node,a.index);f.setEnd(b.node,b.index);c=f.getBoundingClientRect();g||(g=c);if(c.bottom!=g.bottom&&!cvox.DomPredicates.linkPredicate(cvox.DomUtil.getAncestors(b.node)))return b.copyFrom(h),!0;g=c;h.copyFrom(b);return cvox.TraverseUtil.includesBreakTagOrSkippedNode(m,p,e)})};
+cvox.TraverseUtil.getPreviousLine=function(a,b,c,d,e){var f=document.createRange(),g=null,h=a.clone();return cvox.TraverseUtil.getPreviousString(a,b,c,d,function(c,d,m,p){f.setStart(a.node,a.index);f.setEnd(b.node,b.index);c=f.getBoundingClientRect();g||(g=c);if(c.top!=g.top&&!cvox.DomPredicates.linkPredicate(cvox.DomUtil.getAncestors(a.node)))return a.copyFrom(h),!0;g=c;h.copyFrom(a);return cvox.TraverseUtil.includesBreakTagOrSkippedNode(m,p,e)})};
+cvox.TraverseUtil.getNextParagraph=function(a,b,c,d){return cvox.TraverseUtil.getNextString(a,b,c,d,function(a,b,c,d){for(a=0;a<c.length;a++)if(cvox.TraverseUtil.isHidden(c[a])||(b=window.getComputedStyle(c[a],null))&&"inline"!=b.display)return!0;for(a=0;a<d.length;a++)if((b=window.getComputedStyle(d[a],null))&&"inline"!=b.display)return!0;return!1})};
+cvox.TraverseUtil.getPreviousParagraph=function(a,b,c,d){return cvox.TraverseUtil.getPreviousString(a,b,c,d,function(a,b,c,d){for(a=0;a<c.length;a++)if(cvox.TraverseUtil.isHidden(c[a])||(b=window.getComputedStyle(c[a],null))&&"inline"!=b.display)return!0;for(a=0;a<d.length;a++)if((b=window.getComputedStyle(d[a],null))&&"inline"!=b.display)return!0;return!1})};
+cvox.TraverseUtil.getNextString=function(a,b,c,d,e){c=b.clone();d=b.clone();var f=[],g=[],h="",k=cvox.TraverseUtil.getNextWord(c,d,f,g);if(null==k)return null;for(a.copyFrom(c);!(h&&e(h,k,f,g)||(h&&(h+=" "),h+=k,b.copyFrom(d),f=[],g=[],k=cvox.TraverseUtil.getNextWord(c,d,f,g),null==k)););return h};
+cvox.TraverseUtil.getPreviousString=function(a,b,c,d,e){c=a.clone();d=a.clone();var f=[],g=[],h="",k=cvox.TraverseUtil.getPreviousWord(c,d,f,g);if(null==k)return null;for(b.copyFrom(d);!(h&&e(h,k,f,g)||(h&&(h=" "+h),h=k+h,a.copyFrom(c),f=[],g=[],k=cvox.TraverseUtil.getPreviousWord(c,d,f,g),null==k)););return h};cvox.CursorSelection=function(a,b,c){this.start=a.clone();this.end=b.clone();void 0==c&&(c=!1);if((this.isReversed_=c)&&this.start.node.compareDocumentPosition(this.end.node)==cvox.CursorSelection.BEFORE||!this.isReversed_&&this.end.node.compareDocumentPosition(this.start.node)==cvox.CursorSelection.BEFORE)a=this.start,this.start=this.end,this.end=a};cvox.CursorSelection.BEFORE=4;
+cvox.CursorSelection.prototype.setReversed=function(a){if(a==this.isReversed_)return this;var b=this.start;this.start=this.end;this.end=b;this.isReversed_=a;return this};cvox.CursorSelection.prototype.isReversed=function(){return this.isReversed_};cvox.CursorSelection.prototype.absStart=function(){return this.isReversed_?this.end:this.start};cvox.CursorSelection.prototype.absEnd=function(){return this.isReversed_?this.start:this.end};
+cvox.CursorSelection.prototype.clone=function(){return new cvox.CursorSelection(this.start,this.end,this.isReversed_)};cvox.CursorSelection.prototype.select=function(){var a=window.getSelection();a.removeAllRanges();this.normalize();a.addRange(this.getRange())};cvox.CursorSelection.fromNode=function(a){if(!a)return null;var b=cvox.TraverseUtil.getNodeText(a);return new cvox.CursorSelection(new cvox.Cursor(a,0,b),new cvox.Cursor(a,0,b))};cvox.CursorSelection.fromBody=function(){return cvox.CursorSelection.fromNode(document.body)};
+cvox.CursorSelection.prototype.getText=function(){return this.start.equals(this.end)?cvox.TraverseUtil.getNodeText(this.start.node):cvox.SelectionUtil.getRangeText(this.getRange())};cvox.CursorSelection.prototype.getRange=function(){var a=document.createRange();this.isReversed_?(a.setStart(this.end.node,this.end.index),a.setEnd(this.start.node,this.start.index)):(a.setStart(this.start.node,this.start.index),a.setEnd(this.end.node,this.end.index));return a};
+cvox.CursorSelection.prototype.equals=function(a){return this.start.equals(a.start)&&this.end.equals(a.end)};cvox.CursorSelection.prototype.absEquals=function(a){return this.start.equals(a.start)&&this.end.equals(a.end)||this.end.equals(a.start)&&this.start.equals(a.end)};cvox.CursorSelection.prototype.directedBefore=function(a){var b=this.start.node.compareDocumentPosition(a.start.node)==cvox.CursorSelection.BEFORE;return this.start.node==a.start.node||(this.isReversed()?!b:b)};
+cvox.CursorSelection.prototype.normalize=function(){if(0==this.absEnd().index&&this.absEnd().node){var a=this.absEnd().node,b=document.createRange();b.selectNodeContents(a);this.absEnd().index=b.endOffset}return this};cvox.CursorSelection.prototype.collapse=function(){if(this.start.equals(this.end))return this;this.end.copyFrom(this.start);if(0==this.start.text.length)return this;this.isReversed()?0<this.end.index&&this.end.index--:this.end.index<this.end.text.length&&this.end.index++;return this};cvox.PlatformUtil={};cvox.PlatformFilter={NONE:0,WINDOWS:1,MAC:2,LINUX:4,WML:7,CHROMEOS:8,ANDROID:16};cvox.PlatformUtil.matchesPlatform=function(a){var b=navigator.userAgent;return void 0==a?!0:-1!=b.indexOf("Android")?0!=(a&cvox.PlatformFilter.ANDROID):-1!=b.indexOf("Win")?0!=(a&cvox.PlatformFilter.WINDOWS):-1!=b.indexOf("Mac")?0!=(a&cvox.PlatformFilter.MAC):-1!=b.indexOf("Linux")?0!=(a&cvox.PlatformFilter.LINUX):-1!=b.indexOf("CrOS")?0!=(a&cvox.PlatformFilter.CHROMEOS):!1};cvox.Spannable=function(a,b){this.string_=a||"";this.spans_=[];if(goog.isDef(b)){var c=this.string_.length;this.spans_.push({value:b,start:0,end:c})}};cvox.Spannable.prototype.toString=function(){return this.string_};cvox.Spannable.prototype.getLength=function(){return this.string_.length};cvox.Spannable.prototype.setSpan=function(a,b,c){this.removeSpan(a);if(0<=b&&b<=c&&c<=this.string_.length)this.spans_.push({value:a,start:b,end:c});else throw new RangeError("span out of range");};
+cvox.Spannable.prototype.removeSpan=function(a){for(var b=this.spans_.length-1;0<=b;b--)this.spans_[b].value===a&&this.spans_.splice(b,1)};cvox.Spannable.prototype.append=function(a){if(a instanceof cvox.Spannable){var b=a,c=this.getLength();this.string_+=b.string_;a.spans_.forEach(goog.bind(function(a){this.setSpan(a.value,a.start+c,a.end+c)},this))}else"string"===typeof a&&(this.string_+=a)};
+cvox.Spannable.prototype.getSpan=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.start<=a&&a<c.end)return c.value}};cvox.Spannable.prototype.getSpanInstanceOf=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.value instanceof a)return c.value}};cvox.Spannable.prototype.getSpans=function(a){for(var b=[],c=0;c<this.spans_.length;c++){var d=this.spans_[c];d.start<=a&&a<d.end&&b.push(d.value)}return b};
+cvox.Spannable.prototype.getSpanStart=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.value===a)return c.start}return null};cvox.Spannable.prototype.getSpanEnd=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.value===a)return c.end}return null};
+cvox.Spannable.prototype.substring=function(a,b){var c=goog.isDef(b)?b:this.string_.length;if(0>a||c>this.string_.length||a>c)throw new RangeError("substring indices out of range");for(var d=new cvox.Spannable(this.string_.substring(a,c)),e=0;e<this.spans_.length;e++){var f=this.spans_[e];if(f.start<=c&&f.end>=a){var g=Math.max(0,f.start-a),h=Math.min(c-a,f.end-a);d.spans_.push({value:f.value,start:g,end:h})}}return d};
+cvox.Spannable.prototype.trim=function(){if(/^\s*$/.test(this.string_))return this.substring(0,0);var a=this.string_.match(/^\s*/)[0].length,b=this.string_.match(/\s*$/).index;return this.substring(a,b)};cvox.NavBraille=function(a){this.text=a.text instanceof cvox.Spannable?a.text:new cvox.Spannable(a.text);this.startIndex=a.startIndex?a.startIndex:0;this.endIndex=a.endIndex?a.endIndex:0};cvox.NavBraille.fromText=function(a){return new cvox.NavBraille({text:a})};cvox.NavBraille.prototype.isEmpty=function(){return 0==this.text.getLength()};cvox.NavBraille.prototype.toString=function(){return'NavBraille(text="'+this.text.toString()+'" startIndex="'+this.startIndex+'" endIndex="'+this.endIndex+'")'};
+cvox.NavBraille.prototype.toJson=function(){return{text:this.text.toString(),startIndex:this.startIndex,endIndex:this.endIndex}};cvox.NavBraille.prototype.write=function(){cvox.PlatformUtil.matchesPlatform(cvox.PlatformFilter.CHROMEOS|cvox.PlatformFilter.ANDROID)&&cvox.ChromeVox.braille.write(this)};cvox.BrailleKeyCommand={PAN_LEFT:"pan_left",PAN_RIGHT:"pan_right",LINE_UP:"line_up",LINE_DOWN:"line_down",TOP:"top",BOTTOM:"bottom",ROUTING:"routing",SECONDARY_ROUTING:"secondary_routing",DOTS:"dots",STANDARD_KEY:"standard_key"};cvox.BrailleKeyEvent={};cvox.BrailleInterface=function(){};cvox.BrailleInterface.prototype.write=function(){};cvox.AbstractBraille=function(){};cvox.AbstractHost=function(){};cvox.AbstractHost.State={ACTIVE:0,INACTIVE:1,KILLED:2};cvox.AbstractHost.prototype.init=function(){};cvox.AbstractHost.prototype.reinit=function(){};cvox.AbstractHost.prototype.onPageLoad=function(){};cvox.AbstractHost.prototype.getApiSrc=function(){return""};cvox.AbstractHost.prototype.getFileSrc=function(){return""};cvox.AbstractHost.prototype.hasTtsCallback=function(){return!0};cvox.AbstractHost.prototype.ttsLoaded=function(){return!0};
+cvox.AbstractHost.prototype.mustRedispatchClickEvent=function(){return!1};cvox.AbstractHost.prototype.activateOrDeactivateChromeVox=function(a){this.onStateChanged_(a?cvox.AbstractHost.State.ACTIVE:cvox.AbstractHost.State.INACTIVE)};cvox.AbstractHost.prototype.killChromeVox=function(){this.onStateChanged_(cvox.AbstractHost.State.KILLED)};
+cvox.AbstractHost.prototype.onStateChanged_=function(a){var b=a==cvox.AbstractHost.State.ACTIVE;if(b!=cvox.ChromeVox.isActive)switch(cvox.ChromeVoxEventWatcher.cleanup(window),a){case cvox.AbstractHost.State.ACTIVE:cvox.ChromeVox.isActive=!0;cvox.ChromeVox.navigationManager.showOrHideIndicator(!0);cvox.ChromeVoxEventWatcher.init(window);document.activeElement?(a=document.hasFocus()&&!document.webkitHidden,cvox.ApiImplementation.syncToNode(document.activeElement,a)):cvox.ChromeVox.navigationManager.updateIndicator();
+break;case cvox.AbstractHost.State.INACTIVE:cvox.ChromeVox.isActive=!1;cvox.ChromeVox.navigationManager.showOrHideIndicator(!1);cvox.ChromeVoxEventWatcher.init(window);break;case cvox.AbstractHost.State.KILLED:cvox.ChromeVox.isActive=!1,cvox.ChromeVox.navigationManager.showOrHideIndicator(!1)}};cvox.MathJaxInterface=function(){};cvox.MathJaxInterface.prototype.isMathjaxActive=function(){};cvox.MathJaxInterface.prototype.getAllJax=function(){};cvox.MathJaxInterface.prototype.registerSignal=function(){};cvox.MathJaxInterface.prototype.injectScripts=function(){};cvox.MathJaxInterface.prototype.configMediaWiki=function(){};cvox.MathJaxInterface.prototype.getTex=function(){};cvox.MathJaxInterface.prototype.getAsciiMath=function(){};cvox.AbstractMathJax=function(){};cvox.AbstractMathJax.prototype.getAllTexs=function(a){for(var b=document.querySelectorAll(cvox.DomUtil.altMathQuerySelector("tex")),c=0,d;d=b[c];c++)this.getTex(a,d)};cvox.AbstractMathJax.prototype.getAllAsciiMaths=function(a){for(var b=document.querySelectorAll(cvox.DomUtil.altMathQuerySelector("asciimath")),c=0,d;d=b[c];c++)this.getAsciiMath(a,d)};
+cvox.AbstractMathJax.prototype.convertMarkupToDom=function(a,b,c){if(b){var d=new DOMParser;b=b.replace(/>\s+</g,"><");a(d.parseFromString(b,"text/xml").firstChild,c)}};cvox.AbstractMsgs=function(){};cvox.AbstractMsgs.prototype.getMsg=function(){};cvox.AbstractMsgs.prototype.getNumber=function(){};cvox.HostFactory=function(){};cvox.HostFactory.getHost=function(){return new cvox.HostFactory.hostConstructor};cvox.HostFactory.getTts=function(){return new cvox.HostFactory.ttsConstructor};cvox.HostFactory.getBraille=function(){return new cvox.HostFactory.brailleConstructor};cvox.HostFactory.getMsgs=function(){return new cvox.HostFactory.msgsConstructor};cvox.HostFactory.getEarcons=function(){return new cvox.HostFactory.earconsConstructor};cvox.HostFactory.getMathJax=function(){return new cvox.HostFactory.mathJaxConstructor};cvox.SpokenMessage=function(){this.raw=this.id=this.count=null};cvox.SpokenMessages={};cvox.SpokenMessages.messages=[];cvox.SpokenMessages.speakFlush=function(){cvox.SpokenMessages.speak(cvox.AbstractTts.QUEUE_MODE_FLUSH)};cvox.SpokenMessages.speakQueued=function(){cvox.SpokenMessages.speak(cvox.AbstractTts.QUEUE_MODE_QUEUE)};
+cvox.SpokenMessages.speak=function(a){for(var b=0;b<cvox.SpokenMessages.messages.length;++b){var c=cvox.SpokenMessages.messages[b];if(!c||!c.id&&!c.raw)throw"Invalid message received.";var d="";if(null!=c.count)if(0>=c.count)try{d+=cvox.ChromeVox.msgs.getMsg(c.id[0]+"_optional_default")}catch(e){continue}else d=1==c.count?d+cvox.ChromeVox.msgs.getMsg(c.id[0]+"_singular"):d+cvox.ChromeVox.msgs.getMsg(c.id[0]+"_plural",[c.count]);else d=c.raw?d+c.raw:d+cvox.ChromeVox.msgs.getMsg.apply(cvox.ChromeVox.msgs,
+c.id);cvox.ChromeVox.tts.speak(d,a,cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT);a=cvox.AbstractTts.QUEUE_MODE_QUEUE}cvox.SpokenMessages.messages=[]};cvox.SpokenMessages.currentMessage=function(){if(0==cvox.SpokenMessages.messages.length)throw"Invalid usage of SpokenMessages; start the chain using $m()";return cvox.SpokenMessages.messages[cvox.SpokenMessages.messages.length-1]};cvox.SpokenMessages.withCount=function(a){cvox.SpokenMessages.currentMessage().count=a;return cvox.SpokenMessages};
+cvox.SpokenMessages.andIndexTotal=function(a,b){var c=new cvox.SpokenMessage;c.raw=cvox.ChromeVox.msgs.getMsg("index_total",[a,b]);cvox.SpokenMessages.messages.push(c);return cvox.SpokenMessages};cvox.SpokenMessages.andEnd=function(){return cvox.SpokenMessages.andMessage("end")};cvox.SpokenMessages.andMessage=function(a){var b=new cvox.SpokenMessage;b.id="string"==typeof a?[a]:a;cvox.SpokenMessages.messages.push(b);return cvox.SpokenMessages};
+cvox.SpokenMessages.andRawMessage=function(a){var b=new cvox.SpokenMessage;b.raw=a;cvox.SpokenMessages.messages.push(b);return cvox.SpokenMessages};cvox.SpokenMessages.andPause=function(){return cvox.SpokenMessages.andMessage("pause")};cvox.$m=cvox.SpokenMessages.andMessage;cvox.CompositeTts=function(){this.ttsEngines_=[]};cvox.CompositeTts.prototype.add=function(a){this.ttsEngines_.push(a);return this};cvox.CompositeTts.prototype.speak=function(a,b,c){this.ttsEngines_.forEach(function(d){d.speak(a,b,c)})};cvox.CompositeTts.prototype.isSpeaking=function(){return this.ttsEngines_.some(function(a){return a.isSpeaking()})};cvox.CompositeTts.prototype.stop=function(){this.ttsEngines_.forEach(function(a){a.stop()})};
+cvox.CompositeTts.prototype.increaseOrDecreaseProperty=function(a,b){this.ttsEngines_.forEach(function(c){c.increaseOrDecreaseProperty(a,b)})};cvox.CompositeTts.prototype.getDefaultProperty=function(a){for(var b=0,c;c=this.ttsEngines_[b];b++)if(c=c.getDefaultProperty(a))return c};cvox.BuildInfo={};cvox.BuildInfo.build="1384906195.369502";cvox.ChromeVoxJSON||(cvox.ChromeVoxJSON={});
+window.JSON&&"[object JSON]"==window.JSON.toString()?cvox.ChromeVoxJSON=window.JSON:function(){function a(a){return 10>a?"0"+a:a}function b(a){e.lastIndex=0;return e.test(a)?'"'+a.replace(e,function(a){var b=h[a];return"string"===typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function c(a,d){var e,h,n,s,u=f,t,r=d[a];r&&"object"===typeof r&&"function"===typeof r.toJSON&&(r=r.toJSON(a));"function"===typeof k&&(r=k.call(d,a,r));switch(typeof r){case "string":return b(r);
+case "number":return isFinite(r)?String(r):"null";case "boolean":case "null":return String(r);case "object":if(!r)return"null";f+=g;t=[];if("[object Array]"===Object.prototype.toString.apply(r)){s=r.length;for(e=0;e<s;e+=1)t[e]=c(e,r)||"null";n=0===t.length?"[]":f?"[\n"+f+t.join(",\n"+f)+"\n"+u+"]":"["+t.join(",")+"]";f=u;return n}if(k&&"object"===typeof k)for(s=k.length,e=0;e<s;e+=1)h=k[e],"string"===typeof h&&(n=c(h,r))&&t.push(b(h)+(f?": ":":")+n);else for(h in r)Object.hasOwnProperty.call(r,h)&&
+(n=c(h,r))&&t.push(b(h)+(f?": ":":")+n);n=0===t.length?"{}":f?"{\n"+f+t.join(",\n"+f)+"\n"+u+"}":"{"+t.join(",")+"}";f=u;return n}}"function"!==typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+a(this.getUTCMonth()+1)+"-"+a(this.getUTCDate())+"T"+a(this.getUTCHours())+":"+a(this.getUTCMinutes())+":"+a(this.getUTCSeconds())+"Z":"null"},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()});
+var d=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof cvox.ChromeVoxJSON.stringify&&(cvox.ChromeVoxJSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&&
+(g=d);if((k=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})});"function"!==typeof cvox.ChromeVoxJSON.parse&&(cvox.ChromeVoxJSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=String(a);d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));
+if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})}();"undefined"!=typeof goog&&goog.provide&&(cvox.ApiUtil={});window.cvox||(window.cvox={});cvox.ApiUtils=function(){};cvox.ApiUtils.nextCvoxId_=1;
+cvox.ApiUtils.makeNodeReference=function(a){if(a.id&&document.getElementById(a.id)==a)return{id:a.id};if(a instanceof HTMLElement){var b=cvox.ApiUtils.nextCvoxId_;a.setAttribute("cvoxid",b);cvox.ApiUtils.nextCvoxId_=(cvox.ApiUtils.nextCvoxId_+1)%100;return{cvoxid:b}}if(a.parentElement){for(var c=a.parentElement,d=-1,b=0;b<c.childNodes.length;b++)if(c.childNodes[b]==a){d=b;break}if(0<=d)return b=cvox.ApiUtils.nextCvoxId_,c.setAttribute("cvoxid",b),cvox.ApiUtils.nextCvoxId_=(cvox.ApiUtils.nextCvoxId_+
+1)%100,{cvoxid:b,childIndex:d}}throw"Cannot reference node: "+a;};cvox.ApiUtils.getNodeFromRef=function(a){if(a.id)return document.getElementById(a.id);if(a.cvoxid){var b='*[cvoxid="'+a.cvoxid+'"]';(b=document.querySelector(b))&&b.removeAttribute&&b.removeAttribute("cvoxid");return null!=a.childIndex?b.childNodes[a.childIndex]:b}throw"Bad node reference: "+cvox.ChromeVoxJSON.stringify(a);};cvox.ScriptInstaller={};
+cvox.ScriptInstaller.installScript=function(a,b,c,d){if(document.querySelector("script["+b+"]")||!a)return!1;for(var e=0,f;f=a[e];e++){var g=new XMLHttpRequest,h=f+"?"+(new Date).getTime();g.onreadystatechange=function(){if(4==g.readyState){var a=g.responseText,a=a+("\n//# sourceURL="+f+"\n"),c=document.createElement("script");c.type="text/javascript";c.setAttribute(b,"1");c.textContent=a;d&&c.setAttribute("chromevoxScriptBase",d);cvox.DomUtil.addNodeToHead(c)}};try{g.open("GET",h,!1),g.send(null)}catch(k){return window.console.log("Warning: ChromeVox external script loading for "+
+document.location+" stopped after failing to install "+f),!1}}c&&c();return!0};cvox.ApiImplementation=function(){};cvox.ApiImplementation.init=function(a){window.addEventListener("message",cvox.ApiImplementation.portSetup,!0);var b=[];b.push(cvox.ChromeVox.host.getFileSrc("chromevox/injected/api_util.js"));b.push(cvox.ChromeVox.host.getApiSrc());b.push(cvox.ApiImplementation.siteSpecificScriptLoader);a=cvox.ScriptInstaller.installScript(b,"cvoxapi",a,cvox.ApiImplementation.siteSpecificScriptBase);a||(window.location.href="javascript:cvox.Api.internalEnable();")};
+cvox.ApiImplementation.portSetup=function(a){return"cvox.PortSetup"==a.data?(cvox.ApiImplementation.port=a.ports[0],cvox.ApiImplementation.port.onmessage=function(a){cvox.ApiImplementation.dispatchApiMessage(cvox.ChromeVoxJSON.parse(a.data))},a.stopPropagation(),!1):!0};
+cvox.ApiImplementation.dispatchApiMessage=function(a){var b;switch(a.cmd){case "speak":b=cvox.ApiImplementation.speak;break;case "speakNodeRef":b=cvox.ApiImplementation.speakNodeRef;break;case "stop":b=cvox.ApiImplementation.stop;break;case "playEarcon":b=cvox.ApiImplementation.playEarcon;break;case "syncToNodeRef":b=cvox.ApiImplementation.syncToNodeRef;break;case "clickNodeRef":b=cvox.ApiImplementation.clickNodeRef;break;case "getBuild":b=cvox.ApiImplementation.getBuild;break;case "getVersion":b=
+cvox.ApiImplementation.getVersion;break;case "getCurrentNode":b=cvox.ApiImplementation.getCurrentNode;break;case "getCvoxModKeys":b=cvox.ApiImplementation.getCvoxModKeys;break;case "isKeyShortcut":b=cvox.ApiImplementation.isKeyShortcut;break;case "setKeyEcho":b=cvox.ApiImplementation.setKeyEcho;break;case "Math.defineRule":b=cvox.ApiImplementation.Math.defineRule}if(!b)throw"Unknown API call: "+a.cmd;b.apply(cvox.ApiImplementation,a.args)};
+function setupEndCallback_(a,b){var c=function(){cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:b}))};a&&(a.endCallback=c)}cvox.ApiImplementation.speak=function(a,b,c,d){cvox.ChromeVox.isActive&&(d||(d={}),setupEndCallback_(d,a),cvox.ChromeVox.tts.speak(b,c,d))};cvox.ApiImplementation.speakNode=function(a,b,c){cvox.ChromeVox.isActive&&cvox.ChromeVox.tts.speak(cvox.DomUtil.getName(a),b,c)};
+cvox.ApiImplementation.speakNodeRef=function(a,b,c,d){b=cvox.ApiUtils.getNodeFromRef(b);d||(d={});setupEndCallback_(d,a);cvox.ApiImplementation.speakNode(b,c,d)};cvox.ApiImplementation.stop=function(){cvox.ChromeVox.isActive&&cvox.ChromeVox.tts.stop()};cvox.ApiImplementation.playEarcon=function(a){cvox.ChromeVox.isActive&&cvox.ChromeVox.earcons.playEarconByName(a)};cvox.ApiImplementation.syncToNodeRef=function(a,b){var c=cvox.ApiUtils.getNodeFromRef(a);cvox.ApiImplementation.syncToNode(c,b)};
+cvox.ApiImplementation.syncToNode=function(a,b,c){cvox.ChromeVox.isActive&&(void 0==c&&(c=cvox.AbstractTts.QUEUE_MODE_FLUSH),cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(a,!0),cvox.ChromeVox.navigationManager.updateIndicator(),void 0==b&&(b=!1),cvox.AriaUtil.isHiddenRecursive(a)&&(b=!1),b&&cvox.ChromeVox.navigationManager.speakDescriptionArray(cvox.ApiImplementation.getDesc_(a),c,null),cvox.ChromeVox.navigationManager.getBraille().write(),cvox.ChromeVox.navigationManager.updatePosition(a))};
+cvox.ApiImplementation.getCurrentNode=function(a){var b=cvox.ChromeVox.navigationManager.getCurrentNode();cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,currentNode:cvox.ApiUtils.makeNodeReference(b)}))};
+cvox.ApiImplementation.getDesc_=function(a){if(!a.hasAttribute("cvoxnodedesc"))return cvox.ChromeVox.navigationManager.getDescription();a=cvox.ChromeVoxJSON.parse(a.getAttribute("cvoxnodedesc"));for(var b=[],c=0;c<a.length;++c){var d=a[c];b.push(new cvox.NavDescription({context:d.context,text:d.text,userValue:d.userValue,annotation:d.annotation}))}return b};cvox.ApiImplementation.clickNodeRef=function(a,b){cvox.DomUtil.clickElem(cvox.ApiUtils.getNodeFromRef(a),b,!1)};
+cvox.ApiImplementation.getBuild=function(a){cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,build:cvox.BuildInfo.build}))};cvox.ApiImplementation.getVersion=function(a){var b=cvox.ChromeVox.version;null==b?window.setTimeout(function(){cvox.ApiImplementation.getVersion(a)},1E3):cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,version:b}))};
+cvox.ApiImplementation.getCvoxModKeys=function(a){cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,keyCodes:cvox.KeyUtil.cvoxModKeyCodes()}))};cvox.ApiImplementation.isKeyShortcut=function(a,b){var c=cvox.KeyUtil.keyEventToKeySequence(b);cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,isHandled:cvox.ChromeVoxKbHandler.handlerKeyMap.hasKey(c)}))};
+cvox.ApiImplementation.setKeyEcho=function(a){var b=cvox.ChromeVox.keyEcho;b[document.location.href]=a;JSON.stringify(b)};cvox.ApiImplementation.Math=function(){};cvox.ApiImplementation.Math.defineRule=function(a,b,c,d,e){var f=cvox.MathmlStore.getInstance(),g=Array.prototype.slice.call(arguments,4),g=[a,b,c,d].concat(g);f.defineRule.apply(f,g)};cvox.ConsoleTts=function(){this.enabled_=!1};goog.addSingletonGetter(cvox.ConsoleTts);cvox.ConsoleTts.prototype.speak=function(a,b,c){if(this.enabled_&&window.console){var d="Speak",d=b==cvox.AbstractTts.QUEUE_MODE_FLUSH?d+" (I)":d+" (Q)",d=d+(' "'+a+'"');window.console.log(d);c&&void 0!=c.startCallback&&window.console.log(" using startCallback");c&&void 0!=c.endCallback&&window.console.log(" using endCallback")}return this};cvox.ConsoleTts.prototype.isSpeaking=function(){return!1};
+cvox.ConsoleTts.prototype.stop=function(){this.enabled_&&window.console.log("Stop")};cvox.ConsoleTts.prototype.increaseOrDecreaseProperty=function(){};cvox.ConsoleTts.prototype.setEnabled=function(a){this.enabled_=a};cvox.ConsoleTts.prototype.getDefaultProperty=function(){};cvox.ChromeVoxHTMLDateWidget=function(a,b){var c=this;this.pos_=0;var d=2;if("month"==a.type||"week"==a.type)d=1;this.maxPos_=d;this.dateElem_=a;this.dateTts_=b;this.pDay_=this.pWeek_=this.pMonth_=this.pYear_=-1;this.keyListener_=function(a){c.eventHandler_(a)};this.blurListener_=function(){c.shutdown()};0==this.dateElem_.value.length&&this.forceInitTime_();for(d=0;d<this.maxPos_;d++){var e=document.createEvent("KeyboardEvent");e.initKeyboardEvent("keydown",!0,!0,window,"Left",0,!1,!1,!1,!1);this.dateElem_.dispatchEvent(e);
+e=document.createEvent("KeyboardEvent");e.initKeyboardEvent("keyup",!0,!0,window,"Left",0,!1,!1,!1,!1);this.dateElem_.dispatchEvent(e)}this.dateElem_.addEventListener("keydown",this.keyListener_,!1);this.dateElem_.addEventListener("keyup",this.keyListener_,!1);this.dateElem_.addEventListener("blur",this.blurListener_,!1);this.update_(!0)};
+cvox.ChromeVoxHTMLDateWidget.prototype.shutdown=function(){this.dateElem_.removeEventListener("blur",this.blurListener_,!1);this.dateElem_.removeEventListener("keydown",this.keyListener_,!1);this.dateElem_.removeEventListener("keyup",this.keyListener_,!1)};
+cvox.ChromeVoxHTMLDateWidget.prototype.forceInitTime_=function(){var a=new Date,b="",b=a.getFullYear()+"",c=a.getMonth()+1+"";2>c.length&&(c="0"+c);var d=a.getDate()+"";switch(this.dateElem_.type){case "month":b=b+"-"+c;break;case "week":a.setHours(0,0,0);a.setDate(a.getDate()+4-(a.getDay()||7));c=new Date(a.getFullYear(),0,1);a=Math.ceil(((a-c)/864E5+1)/7)+"";2>a.length&&(a="0"+a);a="W"+a;b=b+"-"+a;break;default:b=b+"-"+c+"-"+d}this.dateElem_.setAttribute("value",b)};
+cvox.ChromeVoxHTMLDateWidget.prototype.handlePosChange_=function(){this.pos_=Math.max(this.pos_,0);this.pos_=Math.min(this.pos_,this.maxPos_);switch(this.pos_){case 0:"week"==this.dateElem_.type?this.pWeek_=-1:this.pMonth_=-1;break;case 1:"date"==this.dateElem_.type?this.pDay_=-1:this.pYear_=-1;break;case 2:this.pYear_=-1}};
+cvox.ChromeVoxHTMLDateWidget.prototype.update_=function(a){var b=this.dateElem_.value.split("-");if(1>b.length)this.forceInitTime_();else{var c=-1,d=-1,e=-1,f=-1,c=parseInt(b[0],10);"week"==this.dateElem_.type?e=parseInt(b[1].replace("W",""),10):"date"==this.dateElem_.type?(d=parseInt(b[1],10),f=parseInt(b[2],10)):d=parseInt(b[1],10);b="";a&&(b=cvox.DomUtil.getName(this.dateElem_,!0,!0)+"\n");e!=this.pWeek_&&(b=b+cvox.ChromeVox.msgs.getMsg("datewidget_week")+e+"\n",this.pWeek_=e);if(d!=this.pMonth_){a=
+"";switch(d){case 1:a=cvox.ChromeVox.msgs.getMsg("datewidget_january");break;case 2:a=cvox.ChromeVox.msgs.getMsg("datewidget_february");break;case 3:a=cvox.ChromeVox.msgs.getMsg("datewidget_march");break;case 4:a=cvox.ChromeVox.msgs.getMsg("datewidget_april");break;case 5:a=cvox.ChromeVox.msgs.getMsg("datewidget_may");break;case 6:a=cvox.ChromeVox.msgs.getMsg("datewidget_june");break;case 7:a=cvox.ChromeVox.msgs.getMsg("datewidget_july");break;case 8:a=cvox.ChromeVox.msgs.getMsg("datewidget_august");
+break;case 9:a=cvox.ChromeVox.msgs.getMsg("datewidget_september");break;case 10:a=cvox.ChromeVox.msgs.getMsg("datewidget_october");break;case 11:a=cvox.ChromeVox.msgs.getMsg("datewidget_november");break;case 12:a=cvox.ChromeVox.msgs.getMsg("datewidget_december")}b=b+a+"\n";this.pMonth_=d}f!=this.pDay_&&(b=b+f+"\n",this.pDay_=f);c!=this.pYear_&&(b=b+c+"\n",this.pYear_=c);0<b.length&&this.dateTts_.speak(b,0,null)}};
+cvox.ChromeVoxHTMLDateWidget.prototype.eventHandler_=function(a){var b=!1;if("keydown"==a.type){if(9==a.keyCode&&!a.shiftKey||39==a.keyCode)this.pos_++,this.handlePosChange_(),b=!0;if(9==a.keyCode&&a.shiftKey||37==a.keyCode)this.pos_--,this.handlePosChange_(),b=!0}this.update_(b)};cvox.BrailleTextHandler=function(a){this.braille_=a};cvox.BrailleTextHandler.prototype.changed=function(a,b,c,d){var e;d?(e=cvox.NavBraille.fromText(a),e.startIndex=b,e.endIndex=c):cvox.ChromeVox.navigationManager&&(e=cvox.ChromeVox.navigationManager.getBraille());e&&this.braille_.write(e)};cvox.ContentEditableExtractor=function(){this.text_="";this.end_=this.start_=0;this.lines_={};this.characterToLineMap_=[]};
+cvox.ContentEditableExtractor.prototype.update=function(a){for(var b={0:{startIndex:0,endIndex:0}},c=new cvox.Cursor(a,0,""),d=c.clone(),e=document.createRange(),f,g=0,h=null,k="",l=0,m=-1,p=-1,q=window.getSelection(),n=new cvox.Cursor(q.baseNode,q.baseOffset,""),q=new cvox.Cursor(q.extentNode,q.extentOffset,""),s=!1,u=!1;;){f=[];var t=[],r=cvox.TraverseUtil.forwardsChar(d,f,t),v=!1;r||(v=!0);for(f=0;f<t.length&&!v;f++)t[f]==a&&(v=!0);if(v)break;e.setStart(c.node,c.index);e.setEnd(d.node,d.index);
+if((f=e.getBoundingClientRect())&&0!=f.width&&0!=f.height){null!==h&&f.bottom!=h&&0<l&&k.substr(-1).match(/\S/)&&r.match(/\S/)&&(k+="\n",l++);if(c.node!=d.node&&0<d.index&&(e.setStart(d.node,d.index-1),f=e.getBoundingClientRect(),!f||0==f.width||0==f.height))continue;!s&&-1==m&&d.node==n.node&&d.index>=n.index&&(d.index>n.index?m=l:s=!0);!u&&-1==p&&d.node==q.node&&d.index>=q.index&&(d.index>q.index?p=l:u=!0);null===h?h=f.bottom:f.bottom!=h&&(b[g].endIndex=l,g++,b[g]={startIndex:l,endIndex:l},h=f.bottom);
+k+=r;l++;c=d.clone();s&&(m=l,s=!1);u&&(p=l,u=!1)}}b[g].endIndex=l;a=[];for(f=0;f<=g;f++)for(c=b[f].startIndex;c<=b[f].endIndex;c++)a[c]=f;this.text_=k;this.characterToLineMap_=a;this.lines_=b;this.start_=0<=m?m:k.length;this.end_=0<=p?p:k.length};cvox.ContentEditableExtractor.prototype.getText=function(){return this.text_};cvox.ContentEditableExtractor.prototype.getStartIndex=function(){return this.start_};cvox.ContentEditableExtractor.prototype.getEndIndex=function(){return this.end_};
+cvox.ContentEditableExtractor.prototype.getLineIndex=function(a){return this.characterToLineMap_[a]};cvox.ContentEditableExtractor.prototype.getLineStart=function(a){return this.lines_[a].startIndex};cvox.ContentEditableExtractor.prototype.getLineEnd=function(a){return this.lines_[a].endIndex};cvox.EditableTextAreaShadow=function(){this.shadowElement_=document.createElement("div");this.lines_={};this.characterToLineMap_=[]};
+cvox.EditableTextAreaShadow.prototype.update=function(a){for(document.body.appendChild(this.shadowElement_);this.shadowElement_.childNodes.length;)this.shadowElement_.removeChild(this.shadowElement_.childNodes[0]);this.shadowElement_.style.cssText=window.getComputedStyle(a,null).cssText;this.shadowElement_.style.position="absolute";this.shadowElement_.style.top=-9999;this.shadowElement_.style.left=-9999;this.shadowElement_.setAttribute("aria-hidden","true");var b=a.value,c=document.createTextNode(b+
+".");this.shadowElement_.appendChild(c);a={0:{startIndex:0,endIndex:0}};for(var d=document.createRange(),e=0,f=0,g=0,h=null,k=!1,l;e<=b.length;){d.setStart(c,e);if(e+8>b.length||0<=b.substr(e,8).indexOf("\n"))k=!0;k?(e++,d.setEnd(c,e),l=d.getBoundingClientRect()):(d.setEnd(c,e+8),l=d.getBoundingClientRect(),l.bottom==h?e+=8:(l&&null!==h&&(k=!0),e++,d.setEnd(c,e),l=d.getBoundingClientRect()));0<e&&"\n"==b[e-1]?(a[g].endIndex=e-1,g++,a[g]={startIndex:e,endIndex:e},h=null,k=!1,f=e):l&&null===h?h=l.bottom:
+l&&l.bottom!=h&&(a[g].endIndex=f,g++,a[g]={startIndex:f,endIndex:f},h=l?l.bottom:null,k=!1);l&&(f=e)}a[g].endIndex=b.length;b=[];for(c=0;c<=g;c++)for(d=a[c].startIndex;d<=a[c].endIndex;d++)b[d]=c;this.characterToLineMap_=b;this.lines_=a;document.body.removeChild(this.shadowElement_)};cvox.EditableTextAreaShadow.prototype.getLineIndex=function(a){return this.characterToLineMap_[a]};cvox.EditableTextAreaShadow.prototype.getLineStart=function(a){return this.lines_[a].startIndex};
+cvox.EditableTextAreaShadow.prototype.getLineEnd=function(a){return this.lines_[a].endIndex};cvox.TextChangeEvent=function(a,b,c,d){this.value=a;this.start=b;this.end=c;this.triggeredByUser=d;this.start>this.end&&(a=this.end,this.end=this.start,this.start=a)};cvox.TypingEcho={CHARACTER:0,WORD:1,CHARACTER_AND_WORD:2,NONE:3,COUNT:4};cvox.TypingEcho.cycle=function(a){return(a+1)%cvox.TypingEcho.COUNT};cvox.TypingEcho.shouldSpeakChar=function(a){return a==cvox.TypingEcho.CHARACTER_AND_WORD||a==cvox.TypingEcho.CHARACTER};cvox.TextHandlerInterface=function(){};
+cvox.TextHandlerInterface.prototype.changed=function(){};cvox.ChromeVoxEditableTextBase=function(a,b,c,d,e){this.value=a;this.start=b;this.end=c;this.isPassword=d;this.tts=e;this.multiline=!1;this.brailleHandler_=cvox.ChromeVox.braille?new cvox.BrailleTextHandler(cvox.ChromeVox.braille):void 0};cvox.ChromeVoxEditableTextBase.useIBeamCursor=cvox.ChromeVox.isMac;cvox.ChromeVoxEditableTextBase.eventTypingEcho=!1;cvox.ChromeVoxEditableTextBase.prototype.maxShortPhraseLen=60;
+cvox.ChromeVoxEditableTextBase.prototype.isPassword=!1;cvox.ChromeVoxEditableTextBase.prototype.lastChangeDescribed=!1;cvox.ChromeVoxEditableTextBase.prototype.getValue=function(){var a="";if(this.multiline){if(a+="multiline editable text. ",this.start==this.end)var b=this.getLine(this.getLineIndex(this.start)),a=b?a+b:a+"blank"}else a=this.node?a+cvox.DomUtil.getValue(this.node):a+this.value,a=a<=this.maxShortPhraseLen?a+", editable text":a.substring(0,this.maxShortPhraseLen)+", editable text";return a};
+cvox.ChromeVoxEditableTextBase.prototype.getLineIndex=function(){return 0};cvox.ChromeVoxEditableTextBase.prototype.getLineStart=function(){return 0};cvox.ChromeVoxEditableTextBase.prototype.getLineEnd=function(){return this.value.length};cvox.ChromeVoxEditableTextBase.prototype.getLine=function(a){var b=this.getLineStart(a);a=this.getLineEnd(a);b=this.value.substr(b,a-b);return b.replace(/^\s+|\s+$/g,"")};cvox.ChromeVoxEditableTextBase.prototype.isWordBreakChar=function(a){return!!a.match(/^\W$/)};
+cvox.ChromeVoxEditableTextBase.prototype.isLastChar=function(a){return void 0==this.getLineIndex(a.start+1)};cvox.ChromeVoxEditableTextBase.prototype.speak=function(a,b,c){if(!this.node||document.activeElement==this.node){var d=cvox.AbstractTts.QUEUE_MODE_QUEUE;!0===b&&(d=cvox.AbstractTts.QUEUE_MODE_FLUSH);this.tts.speak(a,d,c||{})}};
+cvox.ChromeVoxEditableTextBase.prototype.changed=function(a){if(a.value!=this.value||a.start!=this.start||a.end!=this.end||this.isLastChar(a)){if(a.value==this.value?this.describeSelectionChanged(a):this.describeTextChanged(a),this.lastChangeDescribed=!0,this.value=a.value,this.start=a.start,this.end=a.end,this.brailleHandler_){var b=this.getLine(this.getLineIndex(a.start)),c=this.getLineStart(this.getLineIndex(a.start)),d=a.start-c;a=a.end-c;this.brailleHandler_.changed(b,d,a,this.multiline)}}else this.lastChangeDescribed=
+!1};
+cvox.ChromeVoxEditableTextBase.prototype.describeSelectionChanged=function(a){if(this.isPassword)this.speak((new goog.i18n.MessageFormat(cvox.ChromeVox.msgs.getMsg("dot"))).format({COUNT:1}),a.triggeredByUser);else if(a.start==a.end)if(this.start!=this.end)this.speak(cvox.ChromeVox.msgs.getMsg("Unselected"),a.triggeredByUser);else if(this.getLineIndex(this.start)!=this.getLineIndex(a.start)){var b=this.getLine(this.getLineIndex(a.start));""==b&&(b=cvox.ChromeVox.msgs.getMsg("text_box_blank"));this.speak(b,
+a.triggeredByUser)}else this.start==a.start+1||this.start==a.start-1?cvox.ChromeVoxEditableTextBase.useIBeamCursor?this.speak(this.value.substr(Math.min(this.start,a.start),1),a.triggeredByUser,{phoneticCharacters:a.triggeredByUser}):a.start==this.value.length?this.speak(cvox.ChromeVox.msgs.getMsg("end"),a.triggeredByUser):this.speak(this.value.substr(a.start,1),a.triggeredByUser,{phoneticCharacters:a.triggeredByUser}):this.speak(this.value.substr(Math.min(this.start,a.start),Math.abs(this.start-
+a.start)),a.triggeredByUser);else this.start+1==a.start&&this.end==this.value.length&&a.end==this.value.length?(this.speak(this.value.substr(this.start,1),a.triggeredByUser),this.speak(this.value.substr(a.start))):this.start==this.end?(this.speak(this.value.substr(a.start,a.end-a.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("selected"))):this.start==a.start&&this.end<a.end?(this.speak(this.value.substr(this.end,a.end-this.end),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("added_to_selection"))):
+this.start==a.start&&this.end>a.end?(this.speak(this.value.substr(a.end,this.end-a.end),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("removed_from_selection"))):this.end==a.end&&this.start>a.start?(this.speak(this.value.substr(a.start,this.start-a.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("added_to_selection"))):this.end==a.end&&this.start<a.start?(this.speak(this.value.substr(this.start,a.start-this.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("removed_from_selection"))):
+(this.speak(this.value.substr(a.start,a.end-a.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("selected")))};
+cvox.ChromeVoxEditableTextBase.prototype.describeTextChanged=function(a){var b={};a.value.length<this.value.length&&(b=cvox.AbstractTts.PERSONALITY_DELETED);if(this.isPassword)this.speak((new goog.i18n.MessageFormat(cvox.ChromeVox.msgs.getMsg("dot"))).format({COUNT:1}),a.triggeredByUser,b);else{var c=this.value,d=c.length,e=a.value.length,f="",g=a.value,h=a.end;a.start<h&&h==e&&(f=g.substr(a.start),g=g.substr(0,a.start),h=a.start);var k=this.start,l=d-this.end;if(e>=k+l+(h-a.start)&&g.substr(0,k)==
+c.substr(0,k)&&g.substr(e-l)==c.substr(this.end))this instanceof cvox.ChromeVoxEditableContentEditable&&!(e<d||this.isWordBreakChar(a.value[e-1]||""))||this.describeTextChangedHelper(a,k,l,f,b);else if(k=a.start,l=e-h,this.start==this.end&&a.start==h&&g.substr(0,k)==c.substr(0,k)&&g.substr(e-l)==c.substr(d-l))this.describeTextChangedHelper(a,k,l,f,b);else{g+=f;if(g.length==c.length+1||g.length+1==c.length){if(g.length>c.length){if(0==g.indexOf(c)){this.speak(g[g.length-1],a.triggeredByUser,b);return}if(1==
+g.indexOf(c)){this.speak(g[0],a.triggeredByUser,b);return}}if(g.length<c.length){if(0==c.indexOf(g)){this.speak(c[c.length-1],a.triggeredByUser,b);return}if(1==c.indexOf(g)){this.speak(c[0],a.triggeredByUser,b);return}}}if(this.multiline)a.value.length<this.value.length&&this.speak(cvox.ChromeVox.msgs.getMsg("text_deleted"),a.triggeredByUser,b);else if(e<=this.maxShortPhraseLen)this.describeTextChangedHelper(a,0,0,"",b);else{for(k=0;k<d&&k<e&&c[k]==g[k];)k++;for(;0<k&&!this.isWordBreakChar(c[k-1]);)k--;
+for(l=0;l<d-k&&l<e-k&&c[d-l-1]==g[e-l-1];)l++;for(;0<l&&!this.isWordBreakChar(c[d-l]);)l--;this.describeTextChangedHelper(a,k,l,"",b)}}}};
+cvox.ChromeVoxEditableTextBase.prototype.describeTextChangedHelper=function(a,b,c,d,e){var f=this.value.length,g=a.value.length,f=f-b-c,h=this.value.substr(b,f),k=g-b-c;c=a.value.substr(b,k);var l="",g=a.triggeredByUser;if(1<k)l=c;else if(1==k)if((cvox.ChromeVox.typingEcho==cvox.TypingEcho.WORD||cvox.ChromeVox.typingEcho==cvox.TypingEcho.CHARACTER_AND_WORD)&&this.isWordBreakChar(c)&&0<b&&!this.isWordBreakChar(a.value.substr(b-1,1))){for(f=b;0<f&&!this.isWordBreakChar(a.value[f-1]);)f--;f<b?l=a.value.substr(f,
+b+1-f):(l=c,g=!1)}else{if(cvox.ChromeVox.typingEcho==cvox.TypingEcho.CHARACTER||cvox.ChromeVox.typingEcho==cvox.TypingEcho.CHARACTER_AND_WORD)l=cvox.ChromeVoxEditableTextBase.eventTypingEcho?"":c}else 1<f&&!d?l=h+", deleted":1==f&&(l=h);d&&l?l+=", "+d:d&&(l=d);l&&this.speak(l,g,e)};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextCharacter=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousCharacter=function(){return!1};
+cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextWord=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousWord=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextLine=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousLine=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextParagraph=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousParagraph=function(){return!1};
+cvox.ChromeVoxEditableElement=function(a,b,c,d,e,f){cvox.ChromeVoxEditableTextBase.call(this,b,c,d,e,f);this.node=a;this.justSpokeDescription_=!1};goog.inherits(cvox.ChromeVoxEditableElement,cvox.ChromeVoxEditableTextBase);cvox.ChromeVoxEditableElement.prototype.changed=function(a){this.justSpokeDescription_&&this.value==a.value&&(this.value=a.value,this.start=a.start,this.end=a.end,this.justSpokeDescription_=!1);cvox.ChromeVoxEditableElement.superClass_.changed.call(this,a)};
+cvox.ChromeVoxEditableElement.prototype.getValue=function(){this.justSpokeDescription_=!0;return cvox.ChromeVoxEditableElement.superClass_.getValue.call(this)};cvox.ChromeVoxEditableElement.prototype.moveCursorToNextCharacter=function(){var a=this.node;a.selectionEnd++;a.selectionStart=a.selectionEnd;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableElement.prototype.moveCursorToPreviousCharacter=function(){var a=this.node;a.selectionStart--;a.selectionEnd=a.selectionStart;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableElement.prototype.moveCursorToNextWord=function(){var a=this.node,b=a.value.length,c=/\W+/gm,d=a.value.substring(a.selectionEnd),e=c.exec(d);null!==e&&0==e.index&&(e=c.exec(d));b=null===e?b:e.index+a.selectionEnd;a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableElement.prototype.moveCursorToPreviousWord=function(){for(var a=this.node,b=/\W+/gm,c=a.value.substring(0,a.selectionStart),d=0;null!==b.exec(c);)b.lastIndex<a.selectionStart&&(d=b.lastIndex);a.selectionStart=a.selectionEnd=d;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableElement.prototype.moveCursorToNextParagraph=function(){var a=this.node,b=a.value.length,c=a.selectionEnd>=b?b:a.value.indexOf("\n",a.selectionEnd);0>c&&(c=b);a.selectionStart=a.selectionEnd=c+1;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableElement.prototype.moveCursorToPreviousParagraph=function(){var a=this.node,b=0>=a.selectionStart?0:a.value.lastIndexOf("\n",a.selectionStart-2)+1;0>b&&(b=0);a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEditableHTMLInput=function(a,b){cvox.ChromeVoxEditableElement.call(this,a,a.value,a.selectionStart,a.selectionEnd,"password"===a.type,b)};goog.inherits(cvox.ChromeVoxEditableHTMLInput,cvox.ChromeVoxEditableElement);
+cvox.ChromeVoxEditableHTMLInput.prototype.update=function(a){var b=this.node.value;a=new cvox.TextChangeEvent(b,this.node.selectionStart,this.node.selectionEnd,a);this.changed(a)};cvox.ChromeVoxEditableTextArea=function(a,b){cvox.ChromeVoxEditableElement.call(this,a,a.value,a.selectionStart,a.selectionEnd,!1,b);this.multiline=!0;this.shadowIsCurrent_=!1};goog.inherits(cvox.ChromeVoxEditableTextArea,cvox.ChromeVoxEditableElement);
+cvox.ChromeVoxEditableTextArea.prototype.update=function(a){this.node.value!=this.value&&(this.shadowIsCurrent_=!1);a=new cvox.TextChangeEvent(this.node.value,this.node.selectionStart,this.node.selectionEnd,a);this.changed(a)};cvox.ChromeVoxEditableTextArea.prototype.getLineIndex=function(a){return this.getShadow().getLineIndex(a)};cvox.ChromeVoxEditableTextArea.prototype.getLineStart=function(a){return this.getShadow().getLineStart(a)};cvox.ChromeVoxEditableTextArea.prototype.getLineEnd=function(a){return this.getShadow().getLineEnd(a)};
+cvox.ChromeVoxEditableTextArea.prototype.getShadow=function(){var a=cvox.ChromeVoxEditableTextArea.shadow_;a||(a=cvox.ChromeVoxEditableTextArea.shadow_=new cvox.EditableTextAreaShadow);this.shadowIsCurrent_||(a.update(this.node),this.shadowIsCurrent_=!0);return a};
+cvox.ChromeVoxEditableTextArea.prototype.moveCursorToNextLine=function(){var a=this.node,b=a.value.length;if(a.selectionEnd>=b)return!1;var c=this.getShadow(),d=c.getLineIndex(a.selectionEnd),e=c.getLineStart(d),e=a.selectionEnd-e,f=0==b?0:c.getLineIndex(b-1),b=d>=f?b:Math.min(c.getLineStart(d+1)+e,c.getLineEnd(d+1));a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableTextArea.prototype.moveCursorToPreviousLine=function(){var a=this.node;if(0>=a.selectionStart)return!1;var b=this.getShadow(),c=b.getLineIndex(a.selectionStart),d=b.getLineStart(c),d=a.selectionStart-d,b=0>=c?0:Math.min(b.getLineStart(c-1)+d,b.getLineEnd(c-1));a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableContentEditable=function(a,b){cvox.ChromeVoxEditableElement.call(this,a,"",0,0,!1,b);this.extractorIsCurrent_=!1;var c=this.getExtractor();this.value=c.getText();this.start=c.getStartIndex();this.end=c.getEndIndex();this.multiline=!0};goog.inherits(cvox.ChromeVoxEditableContentEditable,cvox.ChromeVoxEditableElement);
+cvox.ChromeVoxEditableContentEditable.prototype.update=function(a){this.extractorIsCurrent_=!1;a=new cvox.TextChangeEvent(this.getExtractor().getText(),this.getExtractor().getStartIndex(),this.getExtractor().getEndIndex(),a);this.changed(a)};cvox.ChromeVoxEditableContentEditable.prototype.getLineIndex=function(a){return this.getExtractor().getLineIndex(a)};cvox.ChromeVoxEditableContentEditable.prototype.getLineStart=function(a){return this.getExtractor().getLineStart(a)};
+cvox.ChromeVoxEditableContentEditable.prototype.getLineEnd=function(a){return this.getExtractor().getLineEnd(a)};cvox.ChromeVoxEditableContentEditable.prototype.getExtractor=function(){var a=cvox.ChromeVoxEditableContentEditable.extractor_;a||(a=cvox.ChromeVoxEditableContentEditable.extractor_=new cvox.ContentEditableExtractor);this.extractorIsCurrent_||(a.update(this.node),this.extractorIsCurrent_=!0);return a};
+cvox.ChromeVoxEditableContentEditable.prototype.describeSelectionChanged=function(a){a.triggeredByUser&&(this.start==this.end&&a.start==a.end&&1!=Math.abs(this.start-a.start)&&this.isLastChar(a)?this.speak(cvox.ChromeVox.msgs.getMsg("text_box_blank"),!0):cvox.ChromeVoxEditableContentEditable.superClass_.describeSelectionChanged.call(this,a))};
+cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToNextCharacter=function(){window.getSelection().modify("move","forward","character");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToPreviousCharacter=function(){window.getSelection().modify("move","backward","character");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToNextParagraph=function(){window.getSelection().modify("move","forward","paragraph");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToPreviousParagraph=function(){window.getSelection().modify("move","backward","paragraph");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEventSuspender=function(){};cvox.ChromeVoxEventSuspender.suspendLevel_=0;cvox.ChromeVoxEventSuspender.enterSuspendEvents=function(){cvox.ChromeVoxEventSuspender.suspendLevel_+=1};cvox.ChromeVoxEventSuspender.exitSuspendEvents=function(){cvox.ChromeVoxEventSuspender.suspendLevel_-=1};cvox.ChromeVoxEventSuspender.areEventsSuspended=function(){return 0<cvox.ChromeVoxEventSuspender.suspendLevel_};
+cvox.ChromeVoxEventSuspender.withSuspendedEvents=function(a){return function(){cvox.ChromeVoxEventSuspender.enterSuspendEvents();var b=a.apply(this,arguments);cvox.ChromeVoxEventSuspender.exitSuspendEvents();return b}};cvox.ChromeVoxEventSuspender.makeSuspendableHandler=function(a,b){return function(){return cvox.ChromeVoxEventSuspender.areEventsSuspended()?b:a()}};cvox.Focuser={};
+cvox.Focuser.setFocus=function(a,b){var c=window.getSelection(),d;0<c.rangeCount&&(d=c.getRangeAt(0));document.activeElement&&!cvox.DomUtil.isDescendantOfNode(a,document.activeElement)&&document.activeElement.blur();a&&a.constructor==HTMLVideoElement&&(cvox.DomUtil.isFocusable(a)||a.setAttribute("tabIndex",0));if(b&&!cvox.DomUtil.isFocusable(a)){var e=cvox.DomUtil.findFocusableDescendant(a);e&&(a=e)}else for(;a&&!cvox.DomUtil.isFocusable(a);)a=a.parentNode;cvox.DomUtil.isFocusable(a)?"IFRAME"!=a.tagName&&
+(cvox.ChromeVoxEventSuspender.areEventsSuspended()?(cvox.Focuser.shouldEnterSuspendEvents_(a)&&cvox.ChromeVoxEventSuspender.enterSuspendEvents(),window.setTimeout(function(){a.focus();cvox.ChromeVoxEventSuspender.exitSuspendEvents()},0)):window.setTimeout(function(){a.focus()},0)):document.activeElement&&"BODY"!=document.activeElement.tagName&&document.activeElement.blur();cvox.DomUtil.isInputTypeText(a)?a.select():d&&(c.removeAllRanges(),c.addRange(d))};
+cvox.Focuser.shouldEnterSuspendEvents_=function(a){if(a.constructor&&a.constructor==HTMLVideoElement)return!1;if(a.hasAttribute)switch(a.getAttribute("type")){case "time":case "date":case "week":case "month":return!1}return!0};cvox.ChromeVoxHTMLMediaWidget=function(a){var b=this;this.mediaElem_=a;this.keyListener_=function(a){b.eventHandler_(a)};this.blurListener_=function(){b.shutdown()};this.mediaElem_.addEventListener("keydown",this.keyListener_,!1);this.mediaElem_.addEventListener("keyup",this.keyListener_,!1);this.mediaElem_.addEventListener("blur",this.blurListener_,!1)};
+cvox.ChromeVoxHTMLMediaWidget.prototype.shutdown=function(){this.mediaElem_.removeEventListener("blur",this.blurListener_,!1);this.mediaElem_.removeEventListener("keydown",this.keyListener_,!1);this.mediaElem_.removeEventListener("keyup",this.keyListener_,!1)};cvox.ChromeVoxHTMLMediaWidget.prototype.jumpToTime_=function(a){0>a&&(a=0);a>this.mediaElem_.duration&&(a=this.mediaElem_.duration);this.mediaElem_.currentTime=a};
+cvox.ChromeVoxHTMLMediaWidget.prototype.setVolume_=function(a){0>a&&(a=0);1<a&&(a=1);this.mediaElem_.volume=a};
+cvox.ChromeVoxHTMLMediaWidget.prototype.eventHandler_=function(a){"keydown"==a.type&&(13==a.keyCode||32==a.keyCode?this.mediaElem_.paused?this.mediaElem_.play():this.mediaElem_.pause():39==a.keyCode?this.jumpToTime_(this.mediaElem_.currentTime+this.mediaElem_.duration/10):37==a.keyCode?this.jumpToTime_(this.mediaElem_.currentTime-this.mediaElem_.duration/10):38==a.keyCode?this.setVolume_(this.mediaElem_.volume+0.1):40==a.keyCode&&this.setVolume_(this.mediaElem_.volume-0.1))};cvox.ChromeVoxHTMLTimeWidget=function(a,b){var c=this;this.timeElem_=a;this.timeTts_=b;this.pMinutes_=this.pHours_=-1;this.pMilliseconds_=this.pSeconds_=0;this.pAmpm_="";this.pos_=0;this.maxPos_=2;this.keyListener_=function(a){c.eventHandler_(a)};this.blurListener_=function(){c.shutdown()};if(this.timeElem_.hasAttribute("step")){var d=this.timeElem_.getAttribute("step");0<d&&(this.maxPos_=1<=d?3:4)}0==this.timeElem_.value.length&&this.forceInitTime_();for(d=0;d<this.maxPos_;d++){var e=document.createEvent("KeyboardEvent");
+e.initKeyboardEvent("keydown",!0,!0,window,"Left",0,!1,!1,!1,!1);this.timeElem_.dispatchEvent(e);e=document.createEvent("KeyboardEvent");e.initKeyboardEvent("keyup",!0,!0,window,"Left",0,!1,!1,!1,!1);this.timeElem_.dispatchEvent(e)}this.timeElem_.addEventListener("keydown",this.keyListener_,!1);this.timeElem_.addEventListener("keyup",this.keyListener_,!1);this.timeElem_.addEventListener("blur",this.blurListener_,!1);this.update_(!0)};
+cvox.ChromeVoxHTMLTimeWidget.prototype.shutdown=function(){this.timeElem_.removeEventListener("blur",this.blurListener_,!1);this.timeElem_.removeEventListener("keydown",this.keyListener_,!1);this.timeElem_.removeEventListener("keyup",this.keyListener_,!1)};cvox.ChromeVoxHTMLTimeWidget.prototype.forceInitTime_=function(){this.timeElem_.setAttribute("value","12:00")};
+cvox.ChromeVoxHTMLTimeWidget.prototype.handlePosChange_=function(){0>this.pos_&&(this.pos_=0);this.pos_>this.maxPos_&&(this.pos_=this.maxPos_);if(this.pos_==this.maxPos_)this.pAmpm_="";else switch(this.pos_){case 0:this.pHours_=-1;break;case 1:this.pMinutes_=-1;break;case 2:this.pSeconds_=-1;break;case 3:this.pMilliseconds_=-1}};
+cvox.ChromeVoxHTMLTimeWidget.prototype.update_=function(a){var b=this.timeElem_.value.split(":");if(1>b.length)this.forceInitTime_();else{var c=b[0],d=-1,e=0,f=0,g=cvox.ChromeVox.msgs.getMsg("timewidget_am");1<b.length&&(d=b[1]);2<b.length&&(b=b[2].split("."),e=b[0],1<b.length&&(f=b[1]));12<c&&(c-=12,g=cvox.ChromeVox.msgs.getMsg("timewidget_pm"));12==c&&(g=cvox.ChromeVox.msgs.getMsg("timewidget_pm"));0==c&&(c=12,g=cvox.ChromeVox.msgs.getMsg("timewidget_am"));b="";a&&(b=cvox.DomUtil.getName(this.timeElem_,
+!0,!0)+"\n");c!=this.pHours_&&(b=b+c+" "+cvox.ChromeVox.msgs.getMsg("timewidget_hours")+"\n",this.pHours_=c);d!=this.pMinutes_&&(b=b+d+" "+cvox.ChromeVox.msgs.getMsg("timewidget_minutes")+"\n",this.pMinutes_=d);e!=this.pSeconds_&&(b=b+e+" "+cvox.ChromeVox.msgs.getMsg("timewidget_seconds")+"\n",this.pSeconds_=e);f!=this.pMilliseconds_&&(b=b+f+" "+cvox.ChromeVox.msgs.getMsg("timewidget_milliseconds")+"\n",this.pMilliseconds_=f);g!=this.pAmpm_&&(b+=g,this.pAmpm_=g);0<b.length&&this.timeTts_.speak(b,
+0,null)}};cvox.ChromeVoxHTMLTimeWidget.prototype.eventHandler_=function(a){var b=!1;if("keydown"==a.type){if(9==a.keyCode&&!a.shiftKey||39==a.keyCode)this.pos_++,this.handlePosChange_(),b=!0;if(9==a.keyCode&&a.shiftKey||37==a.keyCode)this.pos_--,this.handlePosChange_(),b=!0}this.update_(b)};cvox.ActiveIndicator=function(){this.lastMoveTime_=0;this.zoom_=1;this.updateIndicatorTimeoutId_=this.lastClientRects_=this.lastSyncTarget_=this.container_=null;this.blurred_=!1;window.addEventListener("focus",goog.bind(function(){this.blurred_=!1;this.container_&&this.container_.classList.remove("cvox_indicator_window_not_focused")},this),!1);window.addEventListener("blur",goog.bind(function(){this.blurred_=!0;this.container_&&this.container_.classList.add("cvox_indicator_window_not_focused")},this),
+!1)};cvox.ActiveIndicator.STYLE=".cvox_indicator_container { position: absolute !important; left: 0 !important; top: 0 !important; z-index: 2147483647 !important; pointer-events: none !important;}.cvox_indicator_window_not_focused { visibility: hidden !important;}.cvox_indicator_pulsing { -webkit-animation: cvox_indicator_pulsing_animation 0s 2 alternate !important; -webkit-animation-timing-function: ease-in-out !important;}.cvox_indicator_region { opacity: 0 !important; -webkit-transition: opacity 1s !important;}.cvox_indicator_visible { opacity: 1 !important;}.cvox_indicator_container .cvox_indicator_region * { position:absolute !important; box-shadow: 0 0 4px 4px #f7983a !important; border-radius: 6px !important; -webkit-transition: none !important;}.cvox_indicator_animate_normal .cvox_indicator_region * { -webkit-transition: all 0.3s !important;}.cvox_indicator_animate_quick .cvox_indicator_region * { -webkit-transition: all 0.1s !important;}.cvox_indicator_top { border-radius: inherit inherit 0 0 !important;}.cvox_indicator_middle_nw { border-radius: inherit 0 0 0 !important;}.cvox_indicator_middle_ne { border-radius: 0 inherit 0 0 !important;}.cvox_indicator_middle_se { border-radius: 0 0 inherit 0 !important;}.cvox_indicator_middle_sw { border-radius: 0 0 0 inherit !important;}.cvox_indicator_bottom { border-radius: 0 0 inherit inherit !important;}@-webkit-keyframes cvox_indicator_pulsing_animation { 0% {opacity: 1.0} 50% {opacity: 0.5} 100% {opacity: 1.0}}";
+cvox.ActiveIndicator.QUICK_ANIM_DELAY_MS=100;cvox.ActiveIndicator.NORMAL_ANIM_DELAY_MS=300;cvox.ActiveIndicator.MARGIN=8;cvox.ActiveIndicator.prototype.removeFromDom=function(){this.container_&&this.container_.parentElement&&this.container_.parentElement.removeChild(this.container_)};cvox.ActiveIndicator.prototype.syncToNode=function(a){a&&(a==document.body?this.removeFromDom():this.syncToNodes([a]))};
+cvox.ActiveIndicator.prototype.syncToNodes=function(a){var b=this.clientRectsFromNodes_(a);this.moveIndicator_(b,cvox.ActiveIndicator.MARGIN);this.lastSyncTarget_=a;this.lastClientRects_=b;null!=this.updateIndicatorTimeoutId_&&(window.clearTimeout(this.updateIndicatorTimeoutId_),this.updateIndicatorTimeoutId_=null)};
+cvox.ActiveIndicator.prototype.syncToRange=function(a){var b=cvox.ActiveIndicator.MARGIN;a.startContainer==a.endContainer&&a.startOffset+1==a.endOffset&&(b=1);var c=a.getClientRects();this.moveIndicator_(c,b);this.lastSyncTarget_=a;this.lastClientRects_=c;null!=this.updateIndicatorTimeoutId_&&(window.clearTimeout(this.updateIndicatorTimeoutId_),this.updateIndicatorTimeoutId_=null)};
+cvox.ActiveIndicator.prototype.syncToCursorSelection=function(a){if(a.start.node==a.end.node&&a.start.index==a.end.index)this.syncToNode(a.start.node);else{var b=document.createRange();b.setStart(a.start.node,a.start.index);b.setEnd(a.end.node,a.end.index);this.syncToRange(b)}};cvox.ActiveIndicator.prototype.updateIndicatorIfChanged=function(){this.updateIndicatorTimeoutId_||(this.updateIndicatorTimeoutId_=window.setTimeout(goog.bind(function(){this.handleUpdateIndicatorIfChanged_()},this),100))};
+cvox.ActiveIndicator.prototype.handleUpdateIndicatorIfChanged_=function(){this.updateIndicatorTimeoutId_=null;if(this.lastSyncTarget_){var a;if((a=this.lastSyncTarget_ instanceof Array?this.clientRectsFromNodes_(this.lastSyncTarget_):this.lastSyncTarget_.getClientRects())&&0!=a.length){var b=!1;if(a.length!=this.lastClientRects_.length)b=!0;else for(var c=0;c<this.lastClientRects_.length;++c){var d=this.lastClientRects_[c],e=a[c];if(d.top!=e.top||d.right!=e.right||d.bottom!=e.bottom||d.left!=d.left){b=
+!0;break}}b&&(this.moveIndicator_(a,cvox.ActiveIndicator.MARGIN),this.lastClientRects_=a)}else this.syncToNode(document.body)}};cvox.ActiveIndicator.prototype.clientRectsFromNodes_=function(a){for(var b=[],c=0;c<a.length;++c){var d=a[c];if(d.constructor==Text){var e=document.createRange();e.selectNode(d);e=e.getClientRects()}else{for(;!d.getClientRects;)d=d.parentElement;e=d.getClientRects()}for(d=0;d<e.length;++d)b.push(e[d])}return b};
+cvox.ActiveIndicator.prototype.moveIndicator_=function(a,b){if(document.body.isContentEditable)this.removeFromDom();else{var c=a.length;if(0!=c){var d,e;"static"!=window.getComputedStyle(document.body,null).position?(d=-document.body.getBoundingClientRect().left,e=-document.body.getBoundingClientRect().top):"static"!=window.getComputedStyle(document.documentElement,null).position?(d=-document.documentElement.getBoundingClientRect().left,e=-document.documentElement.getBoundingClientRect().top):(d=
+window.pageXOffset,e=window.pageYOffset);for(var f=[],g=0;g<c;g++)f.push(this.inset_(a[g],d,e,-d,-e));if(!this.container_||!this.container_.parentElement){g=document.getElementsByClassName("cvox_indicator_container");for(c=0;d=g[c];c++)d.parentNode&&d.parentNode.removeChild(d);this.container_=this.createDiv_(document.body,"cvox_indicator_container",document.body.firstChild)}g=document.createElement("style");g.id="cvox_indicator_style";g.innerHTML=cvox.ActiveIndicator.STYLE;cvox.DomUtil.addNodeToHead(g,
+g.id);g=(new Date).getTime();c=g-this.lastMoveTime_;this.container_.className="cvox_indicator_container";document.hasFocus()&&!this.blurred_||this.container_.classList.add("cvox_indicator_window_not_focused");c>cvox.ActiveIndicator.NORMAL_ANIM_DELAY_MS?this.container_.classList.add("cvox_indicator_animate_normal"):c>cvox.ActiveIndicator.QUICK_ANIM_DELAY_MS&&this.container_.classList.add("cvox_indicator_animate_quick");this.lastMoveTime_=g;this.computeZoomLevel_();for(window.setTimeout(goog.bind(function(){this.container_.classList.add("cvox_indicator_pulsing")},
+this),0);1<this.container_.childElementCount;)this.container_.removeChild(this.container_.lastElementChild);d=[[f[0]]];e=[f[0]];for(g=1;g<f.length;g++){for(var h=!1,c=0;c<d.length&&!h;c++)this.intersects_(f[g],e[c])&&(d[c].push(f[g]),e[c]=this.union_(e[c],f[g]),h=!0);h||(d.push([f[g]]),e.push(f[g]))}do for(f=!1,g=0;g<d.length-1&&!f;g++)for(c=g+1;c<d.length&&!f;c++)this.intersects_(e[g],e[c])&&(d[g]=d[g].concat(d[c]),e[g]=this.union_(e[g],e[c]),d.splice(c,1),e.splice(c,1),f=!0);while(f);for(g=0;g<
+d.length;g++)d[g].sort(function(a,b){return a.top!=b.top?a.top-b.top:a.left-b.left});for(g=0;g<d.length;g++)f=null,0==g&&1==this.container_.childElementCount&&6==this.container_.children[0].childElementCount&&(f=this.container_.children[0]),this.updateIndicatorRegion_(d[g],f,b)}}};
+cvox.ActiveIndicator.prototype.updateIndicatorRegion_=function(a,b,c){if(b)var d=b.children[0],e=b.children[1],f=b.children[2],g=b.children[3],h=b.children[4],k=b.children[5];else b=this.createDiv_(this.container_,"cvox_indicator_region"),window.setTimeout(function(){b.classList.add("cvox_indicator_visible")},0),d=this.createDiv_(b,"cvox_indicator_top"),e=this.createDiv_(b,"cvox_indicator_middle_nw"),f=this.createDiv_(b,"cvox_indicator_middle_ne"),g=this.createDiv_(b,"cvox_indicator_middle_sw"),h=
+this.createDiv_(b,"cvox_indicator_middle_se"),k=this.createDiv_(b,"cvox_indicator_bottom");for(var l=a[0],m=Math.floor((l.top+l.bottom)/2),p=1,q=a.length;p<q&&a[p].top<m;)l=this.union_(l,a[p]),m=Math.floor((l.top+l.bottom)/2),p++;if(p==q)l=this.inset_(l,-c,-c,-c,-c),a=Math.floor((3*l.top+1*l.bottom)/4),c=Math.floor((2*l.top+2*l.bottom)/4),m=Math.floor((1*l.top+3*l.bottom)/4),this.setElementCoords_(d,l.left,l.top,l.right,a,!0,!0,!0,!1),this.setElementCoords_(e,l.left,a,l.left,c,!0,!0,!1,!1),this.setElementCoords_(g,
+l.left,c,l.left,m,!0,!1,!1,!0),this.setElementCoords_(f,l.right,a,l.right,c,!1,!0,!0,!1),this.setElementCoords_(h,l.right,c,l.right,m,!1,!1,!0,!0),this.setElementCoords_(k,l.left,m,l.right,l.bottom,!0,!1,!0,!0);else{for(var m=a[q-1],n=Math.floor((m.top+m.bottom)/2),q=q-2;0<=q&&a[q].bottom>n;)m=this.union_(m,a[q]),n=Math.floor((m.top+m.bottom)/2),q--;l=this.inset_(l,-c,-c,-c,c);m=this.inset_(m,-c,c,-c,-c);if(p>q)n=this.union_(l,m),n.top=l.bottom,n.bottom=m.top,n.height=Math.floor((n.top+n.bottom)/
+2);else{n=a[p];for(p+=1;p<=q;)n=this.union_(n,a[p]),p++;n=this.inset_(n,-c,-c,-c,-c);n.left=Math.min(n.left,l.left,m.left);n.right=Math.max(n.right,l.right,m.right);n.width=n.right-n.left}l.right>n.right-40&&(l.right=n.right,l.width=l.right-l.left);l.left<n.left+40&&(l.left=n.left,l.width=l.right-l.left);m.right>n.right-40&&(m.right=n.right,m.width=m.right-m.left);m.left<n.left+40&&(m.left=n.left,m.width=m.right-m.left);a=Math.floor((n.top+n.bottom)/2);this.setElementRect_(d,l,!0,!0,!0,!1);this.setElementRect_(k,
+m,!0,!1,!0,!0);this.setElementCoords_(e,n.left,l.bottom,l.left,a,!0,!0,!1,!1);this.setElementCoords_(f,l.right,l.bottom,n.right,a,!1,!0,!0,!1);this.setElementCoords_(g,n.left,a,m.left,m.top,!0,!1,!1,!0);this.setElementCoords_(h,m.right,a,n.right,m.top,!1,!1,!0,!0)}};cvox.ActiveIndicator.prototype.intersects_=function(a,b){var c=2*cvox.ActiveIndicator.MARGIN;return b.left<=a.right+c&&b.right>=a.left-c&&b.top<=a.bottom+c&&b.bottom>=a.top-c};
+cvox.ActiveIndicator.prototype.union_=function(a,b){var c={left:Math.min(a.left,b.left),top:Math.min(a.top,b.top),right:Math.max(a.right,b.right),bottom:Math.max(a.bottom,b.bottom)};c.width=c.right-c.left;c.height=c.bottom-c.top;return c};cvox.ActiveIndicator.prototype.inset_=function(a,b,c,d,e){a={left:a.left+b,top:a.top+c,right:a.right-d,bottom:a.bottom-e};a.width=a.right-a.left;a.height=a.bottom-a.top;return a};
+cvox.ActiveIndicator.prototype.createDiv_=function(a,b,c){var d=document.createElement("div");d.className=b;c?a.insertBefore(d,c):a.appendChild(d);return d};cvox.ActiveIndicator.prototype.fixZoom_=function(a){return(Math.round(a*this.zoom_)+0.1)/this.zoom_};cvox.ActiveIndicator.prototype.fixZoomSum_=function(a,b){var c=Math.round(a*this.zoom_),d=Math.round((a+b)*this.zoom_),c=d-c;return(c+0.1)/this.zoom_};
+cvox.ActiveIndicator.prototype.setElementCoords_=function(a,b,c,d,e,f,g,h,k){var l=d-b,m=e-c;d-=b;e-=c;var p=f?-20:0,q=g?-20:0,n=h?20:0,s=k?20:0;0==d&&(h?(b-=5,d+=5):f&&(d+=10),s=q=10,c-=10,e+=20);k||(e+=5);g||(c-=5,e+=5,q+=5,s+=5);n=0==n&&0==l?1:this.fixZoomSum_(b,n+l);s=this.fixZoomSum_(c,s+m);a.style.left=this.fixZoom_(b)+"px";a.style.top=this.fixZoom_(c)+"px";a.style.width=this.fixZoomSum_(b,d)+"px";a.style.height=this.fixZoomSum_(c,e)+"px";a.style.clip="rect("+[q,n,s,p].join("px ")+"px)"};
+cvox.ActiveIndicator.prototype.setElementRect_=function(a,b,c,d,e,f){this.setElementCoords_(a,b.left,b.top,b.right,b.bottom,c,d,e,f)};
+cvox.ActiveIndicator.prototype.computeZoomLevel_=function(){if(window.innerHeight!==this.innerHeight_||window.innerWidth!==this.innerWidth_){this.innerHeight_=window.innerHeight;this.innerWidth_=window.innerWidth;var a=document.createElement("div");a.innerHTML="X";a.setAttribute("style","font: 5000px/1em sans-serif !important; -webkit-text-size-adjust:none !important; visibility:hidden !important; left: -10000px !important; top: -10000px !important; position:absolute !important;");document.body.appendChild(a);
+var b=5E3/a.clientHeight,b=Math.round(500*b)/500;0.1<b&&10>b&&(this.zoom_=b);a.parentNode.removeChild(a)}};cvox.NodeBreadcrumb=function(){this.cvTagCounter_=0};goog.addSingletonGetter(cvox.NodeBreadcrumb);cvox.NodeBreadcrumb.TOUCHED_TAG="chromevoxtag";cvox.NodeBreadcrumb.NEEDED_TAG_="chromevoxneeded";
+cvox.NodeBreadcrumb.prototype.tagCurrentNode=function(){for(var a,b=cvox.ChromeVox.navigationManager.getCurrentNode();b&&!b.hasAttribute;)b=b.parentNode;b?b.hasAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG)?a=b.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG):(a=this.cvTagCounter_,b.setAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG,a),this.cvTagCounter_++):a=-1;return a};
+cvox.NodeBreadcrumb.prototype.smartStart_=function(a){for(var b=0;b<a.children.length;++b){var c=a.children[b];this.smartStart_(c);c.getAttribute&&!goog.isNull(c.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG))&&this.setNeeded_(c)}};cvox.NodeBreadcrumb.prototype.setNeeded_=function(a){a&&a.getAttribute&&goog.isNull(a.getAttribute(cvox.NodeBreadcrumb.NEEDED_TAG_))&&(a.setAttribute(cvox.NodeBreadcrumb.NEEDED_TAG_,!0),"body"!==a.nodeName&&this.setNeeded_(a.parentElement))};
+cvox.NodeBreadcrumb.prototype.smartClone_=function(a){var b={};b[cvox.NodeBreadcrumb.TOUCHED_TAG]=!0;b[cvox.NodeBreadcrumb.NEEDED_TAG_]=!0;if(a.getAttribute&&a.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG))return cvox.DomUtil.deepClone(a,b);for(var b=cvox.DomUtil.shallowChildlessClone(a,b),c=0;c<a.childNodes.length;++c){var d=a.childNodes[c];d.getAttribute&&!goog.isNull(d.getAttribute(cvox.NodeBreadcrumb.NEEDED_TAG_))&&b.appendChild(this.smartClone_(d))}return b};
+cvox.NodeBreadcrumb.prototype.dumpWalkedDom=function(){this.smartStart_(document.body);return this.smartClone_(document.body)};cvox.NodeBreadcrumb.getCurrentNodeTag=function(){for(var a=cvox.ChromeVox.navigationManager.getCurrentNode();a&&!a.hasAttribute;)a=a.parentNode;return a&&a.hasAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG)?a.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG):-1};cvox.HistoryEvent=function(a){this.spoken_=[];a?this.userCommand_=a.cmd:this.startTime_=(new Date).getTime()};cvox.HistoryEvent.prototype.withUserCommand=function(a){if(this.userCommand_)return window.console.error("Two user commands on "+a,this),this;this.userCommand_=a;return this};cvox.HistoryEvent.prototype.speak=function(a){this.spoken_.push(a);return this};
+cvox.HistoryEvent.prototype.done=function(){this.endTime_=(new Date).getTime();cvox.NodeBreadcrumb.getInstance().tagCurrentNode();window.console.log("User command done.",this);return this};cvox.HistoryEvent.prototype.outputObject=function(){return{start:this.startTime_,end:this.endTime_,cmd:this.userCommand_,spoken:this.spoken_}};
+cvox.HistoryEvent.prototype.outputHTML=function(){var a=document.createElement("div");a.className="cvoxHistoryEvent";var b=this.endTime_-this.startTime_;a.innerHTML=this.userCommand_+" ("+b+"ms)";for(b=0;b<this.spoken_.length;b++){var c=document.createElement("div");c.className="cvoxHistoryEventSpoken";c.innerHTML=this.spoken_[b].substr(0,20);20<this.spoken_[b].length&&(c.innerHTML+="...");a.appendChild(c)}return a};
+cvox.HistoryEvent.prototype.outputJs=function(){var a="this.waitForCalm(this.userCommand, '"+this.userCommand_+"')";return a=0<this.spoken_.length?a+("\n .waitForCalm(this.assertSpoken, '"+cvox.DomUtil.collapseWhitespace(this.spoken_.join(" "))+"');\n"):a+";\n"};cvox.History=function(){this.recording_=!1;this.events_=[];this.styleDiv_=this.listDiv_=this.mainDiv_=this.currentEvent_=null;this.nodeBreadcrumb_=cvox.NodeBreadcrumb.getInstance()};goog.addSingletonGetter(cvox.History);
+cvox.History.prototype.addListDiv_=function(){this.mainDiv_=document.createElement("div");this.mainDiv_.style.position="fixed";this.mainDiv_.style.bottom="0";this.mainDiv_.style.right="0";this.mainDiv_.style.zIndex="999";this.listDiv_=document.createElement("div");this.listDiv_.id="cvoxEventList";this.mainDiv_.appendChild(this.listDiv_);var a=document.createElement("div"),b=document.createElement("button");b.onclick=cvox.History.sendToFeedback;b.innerHTML="Create bug";a.appendChild(b);this.mainDiv_.appendChild(a);
+a=document.createElement("div");b=document.createElement("button");b.onclick=cvox.History.dumpJs;b.innerHTML="Dump test case";a.appendChild(b);this.mainDiv_.appendChild(a);document.body.appendChild(this.mainDiv_);this.styleDiv_=document.createElement("style");this.styleDiv_.innerHTML=".cvoxHistoryEventSpoken { color: gray; font-size: 75% }";document.body.appendChild(this.styleDiv_)};
+cvox.History.prototype.removeListDiv_=function(){document.body.removeChild(this.mainDiv_);document.body.removeChild(this.styleDiv_);this.styleDiv_=this.listDiv_=this.mainDiv_=null};
+cvox.History.prototype.addBigTextBox_=function(){function a(a,b){var c=document.createElement("button");c.onclick=b;c.innerHTML=a;d.appendChild(c)}var b=document.createElement("div");b.style.position="fixed";b.style.top="0";b.style.left="0";b.style.zIndex="999";var c=document.createElement("textarea");c.style.width="500px";c.style.height="500px";c.innerHTML=this.dumpJsOutput_();b.appendChild(c);var d=document.createElement("div");b.appendChild(d);a("Close dialog",function(){document.body.removeChild(b)});
+a("Remove fluff",goog.bind(function(){c.innerHTML=this.dumpJsOutput_(["stopSpeech","toggleKeyPrefix"])},this));document.body.appendChild(b)};cvox.History.prototype.startRecording=function(){this.recording_=!0;this.addListDiv_()};cvox.History.prototype.stopRecording=function(){this.recording_=!1;this.removeListDiv_();this.events_=[];this.currentEvent_=null};
+cvox.History.prototype.enterUserCommand=function(a){this.recording_&&(this.currentEvent_&&window.console.error("User command "+a+" overlaps current event",this.currentEvent_),this.currentEvent_=(new cvox.HistoryEvent).withUserCommand(a),this.events_.push(this.currentEvent_))};cvox.History.prototype.exitUserCommand=function(){this.recording_&&this.currentEvent_&&(this.currentEvent_.done(),this.listDiv_.appendChild(this.currentEvent_.outputHTML()),this.currentEvent_=null)};
+cvox.History.prototype.speak=function(a){if(!this.recording_)return this;if(!this.currentEvent_)return window.console.error("Speak called outside of a user command."),this;this.currentEvent_.speak(a);return this};cvox.History.prototype.isSpeaking=function(){return!1};cvox.History.prototype.stop=function(){};cvox.History.prototype.increaseOrDecreaseProperty=function(){};cvox.History.prototype.getDefaultProperty=function(){};
+cvox.History.dumpJs=function(){var a=cvox.History.getInstance();a.addBigTextBox_();window.console.log(a.dumpJsOutput_())};cvox.History.prototype.dumpJsOutput_=function(a){var b={};a&&a.forEach(function(a){b[a]=1});return["/*DOC: += ",this.nodeBreadcrumb_.dumpWalkedDom().innerHTML,"*/\n"].concat(this.events_.filter(function(a){return!(a.userCommand_ in b)}).map(function(a){return a.outputJs()})).join("")};
+cvox.History.sendToFeedback=function(){var a=cvox.History.getInstance(),a=a.events_.map(function(a){return a.outputObject()}),b=document.createElement("script");b.type="text/javascript";b.src="https://www.gstatic.com/feedback/api.js";var c=document.createElement("script");c.type="text/javascript";c.innerHTML="userfeedback.api.startFeedback({ productId: '76092' }, { cvoxHistory: "+cvox.ChromeVoxJSON.stringify(cvox.ChromeVoxJSON.stringify(a))+" });";b.onload=function(){document.body.appendChild(c)};
+document.body.appendChild(b)};cvox.KeySequence=function(a,b,c,d){this.doubleTap=!!d;this.cvoxModifier=void 0==b?this.isCVoxModifierActive(a):b;this.stickyMode=!!a.stickyMode;this.prefixKey=!!a.keyPrefix;this.skipStripping=!!c;if(this.stickyMode&&this.prefixKey)throw"Prefix key and sticky mode cannot both be enabled: "+a;a=this.resolveChromeOSSpecialKeys_(a);this.keys={ctrlKey:[],searchKeyHeld:[],altKey:[],altGraphKey:[],shiftKey:[],metaKey:[],keyCode:[]};this.extractKey_(a)};
+cvox.KeySequence.KEY_PRESS_CODE={39:222,44:188,45:189,46:190,47:191,59:186,91:219,92:220,93:221};cvox.KeySequence.doubleTapCache=[];cvox.KeySequence.prototype.addKeyEvent=function(a){if(1<this.keys.keyCode.length)return!1;this.extractKey_(a);return!0};cvox.KeySequence.prototype.equals=function(a){if(!this.checkKeyEquality_(a)||this.doubleTap!=a.doubleTap)return!1;if(this.cvoxModifier===a.cvoxModifier)return!0;a=this.cvoxModifier?a:this;return a.stickyMode||a.prefixKey};
+cvox.KeySequence.prototype.extractKey_=function(a){for(var b in this.keys)if("keyCode"==b){var c;"keypress"==a.type&&97<=a[b]&&122>=a[b]?c=a[b]-32:"keypress"==a.type&&(c=cvox.KeySequence.KEY_PRESS_CODE[a[b]]);this.keys[b].push(c||a[b])}else this.isKeyModifierActive(a,b)?this.keys[b].push(!0):this.keys[b].push(!1);this.cvoxModifier&&this.rationalizeKeys_()};
+cvox.KeySequence.prototype.rationalizeKeys_=function(){if(!this.skipStripping){var a=cvox.ChromeVox.modKeyStr.split(/\+/g),b=this.keys.keyCode.length-1;-1!=a.indexOf("Ctrl")&&(this.keys.ctrlKey[b]=!1);-1!=a.indexOf("Alt")&&(this.keys.altKey[b]=!1);-1!=a.indexOf("Shift")&&(this.keys.shiftKey[b]=!1);var c=this.getMetaKeyName_();if(-1!=a.indexOf(c))if("Search"==c)this.keys.searchKeyHeld[b]=!1;else if("Cmd"==c||"Win"==c)this.keys.metaKey[b]=!1}};
+cvox.KeySequence.prototype.getMetaKeyName_=function(){return cvox.ChromeVox.isChromeOS?"Search":cvox.ChromeVox.isMac?"Cmd":"Win"};cvox.KeySequence.prototype.checkKeyEquality_=function(a){for(var b in this.keys)for(var c=this.keys[b].length;c--;)if(this.keys[b][c]!==a.keys[b][c])return!1;return!0};cvox.KeySequence.prototype.length=function(){return this.keys.keyCode.length};cvox.KeySequence.prototype.isModifierKey=function(a){return 16==a||17==a||18==a||91==a||93==a};
+cvox.KeySequence.prototype.isCVoxModifierActive=function(a){var b=cvox.ChromeVox.modKeyStr.split(/\+/g);this.isKeyModifierActive(a,"ctrlKey")&&(b=b.filter(function(a){return"Ctrl"!=a}));this.isKeyModifierActive(a,"altKey")&&(b=b.filter(function(a){return"Alt"!=a}));this.isKeyModifierActive(a,"shiftKey")&&(b=b.filter(function(a){return"Shift"!=a}));if(this.isKeyModifierActive(a,"metaKey")||this.isKeyModifierActive(a,"searchKeyHeld"))var c=this.getMetaKeyName_(),b=b.filter(function(a){return a!=c});
+return 0==b.length};cvox.KeySequence.prototype.isKeyModifierActive=function(a,b){switch(b){case "ctrlKey":return a.ctrlKey||17==a.keyCode;case "altKey":return a.altKey||18==a.keyCode;case "shiftKey":return a.shiftKey||16==a.keyCode;case "metaKey":return a.metaKey||!cvox.ChromeVox.isChromeOS&&91==a.keyCode;case "searchKeyHeld":return cvox.ChromeVox.isChromeOS&&91==a.keyCode||a.searchKeyHeld}return!1};
+cvox.KeySequence.deserialize=function(a){var b={};b.stickyMode=void 0==a.stickyMode?!1:a.stickyMode;b.prefixKey=void 0==a.prefixKey?!1:a.prefixKey;var c=1<a.keys.keyCode.length,d={},e;for(e in a.keys)b[e]=a.keys[e][0],c&&(d[e]=a.keys[e][1]);e=new cvox.KeySequence(b,a.cvoxModifier,!0,a.doubleTap);c&&(cvox.ChromeVox.sequenceSwitchKeyCodes.push(new cvox.KeySequence(b,a.cvoxModifier)),e.addKeyEvent(d));a.doubleTap&&cvox.KeySequence.doubleTapCache.push(e);return e};
+cvox.KeySequence.fromStr=function(a){var b={},c={},d;d=-1==a.indexOf(">")?!1:!0;var e=!1;b.stickyMode=!1;b.prefixKey=!1;a=a.split("+");for(var f=0;f<a.length;f++)for(var g=a[f].split(">"),h=0;h<g.length;h++){if("#"==g[h].charAt(0)){var k=parseInt(g[h].substr(1),10);0<h?c.keyCode=k:b.keyCode=k}k=g[h];1==g[h].length?0<h?c.keyCode=g[h].charCodeAt(0):b.keyCode=g[h].charCodeAt(0):(0<h?cvox.KeySequence.setModifiersOnEvent_(k,c):cvox.KeySequence.setModifiersOnEvent_(k,b),"Cvox"==k&&(e=!0))}b=new cvox.KeySequence(b,
+e);d&&b.addKeyEvent(c);return b};cvox.KeySequence.setModifiersOnEvent_=function(a,b){"Ctrl"==a?(b.ctrlKey=!0,b.keyCode=17):"Alt"==a?(b.altKey=!0,b.keyCode=18):"Shift"==a?(b.shiftKey=!0,b.keyCode=16):"Search"==a?(b.searchKeyHeld=!0,b.keyCode=91):"Cmd"==a?(b.metaKey=!0,b.keyCode=91):"Win"==a?(b.metaKey=!0,b.keyCode=91):"Insert"==a&&(b.keyCode=45)};
+cvox.KeySequence.prototype.resolveChromeOSSpecialKeys_=function(a){if(!this.cvoxModifier||this.stickyMode||this.prefixKey||!cvox.ChromeVox.isChromeOS)return a;var b={},c;for(c in a)b[c]=a[c];switch(b.keyCode){case 33:b.keyCode=38;break;case 34:b.keyCode=40;break;case 35:b.keyCode=39;break;case 36:b.keyCode=37;break;case 45:b.keyCode=190;break;case 46:b.keyCode=8;break;case 112:b.keyCode=49;break;case 113:b.keyCode=50;break;case 114:b.keyCode=51;break;case 115:b.keyCode=52;break;case 116:b.keyCode=
+53;break;case 117:b.keyCode=54;break;case 118:b.keyCode=55;break;case 119:b.keyCode=56;break;case 120:b.keyCode=57;break;case 121:b.keyCode=48;break;case 122:b.keyCode=189;break;case 123:b.keyCode=187}return b};cvox.KeyUtil=function(){};cvox.KeyUtil.modeKeyPressTime=0;cvox.KeyUtil.sequencing=!1;cvox.KeyUtil.prevKeySequence=null;cvox.KeyUtil.stickyKeySequence=null;cvox.KeyUtil.maxSeqLength=2;
+cvox.KeyUtil.keyEventToKeySequence=function(a){var b=cvox.KeyUtil;b.prevKeySequence&&b.maxSeqLength==b.prevKeySequence.length()&&(b.sequencing=!1,b.prevKeySequence=null);var c=b.sequencing||a.keyPrefix||a.stickyMode,d=new cvox.KeySequence(a),e=d.cvoxModifier;if(c||e){if(!b.sequencing&&b.isSequenceSwitchKeyCode(d))return b.sequencing=!0,b.prevKeySequence=d;if(b.sequencing){if(b.prevKeySequence.addKeyEvent(a))return d=b.prevKeySequence,b.prevKeySequence=null,b.sequencing=!1,d;throw"Think sequencing is enabled, yet util.prevKeySequence alreadyhas two key codes"+
+b.prevKeySequence;}}else b.sequencing=!1;c=(new Date).getTime();if(cvox.KeyUtil.isDoubleTapKey(d)&&b.prevKeySequence&&d.equals(b.prevKeySequence)&&(e=b.modeKeyPressTime,0<e&&300>c-e))return d=b.prevKeySequence,d.doubleTap=!0,b.prevKeySequence=null,b.sequencing=!1,cvox.ChromeVox.isChromeOS&&a.keyCode==cvox.KeyUtil.getStickyKeyCode()&&(cvox.ChromeVox.searchKeyHeld=!1),d;b.prevKeySequence=d;b.modeKeyPressTime=c;return d};
+cvox.KeyUtil.keyCodeToString=function(a){return 17==a?"Ctrl":18==a?"Alt":16==a?"Shift":91==a||93==a?cvox.ChromeVox.isChromeOS?"Search":cvox.ChromeVox.isMac?"Cmd":"Win":45==a?"Insert":65<=a&&90>=a?String.fromCharCode(a):48<=a&&57>=a?String.fromCharCode(a):"#"+a};cvox.KeyUtil.modStringToKeyCode=function(a){switch(a){case "Ctrl":return 17;case "Alt":return 18;case "Shift":return 16;case "Cmd":case "Win":return 91}return-1};
+cvox.KeyUtil.cvoxModKeyCodes=function(){var a=cvox.ChromeVox.modKeyStr.split(/\+/g);return a=a.map(function(a){return cvox.KeyUtil.modStringToKeyCode(a)})};cvox.KeyUtil.isSequenceSwitchKeyCode=function(a){for(var b=0;b<cvox.ChromeVox.sequenceSwitchKeyCodes.length;b++){var c=cvox.ChromeVox.sequenceSwitchKeyCodes[b];if(c.equals(a))return!0}return!1};
+cvox.KeyUtil.getReadableNameForKeyCode=function(a){if(0==a)return"Power button";if(17==a)return"Control";if(18==a)return"Alt";if(16==a)return"Shift";if(9==a)return"Tab";if(91==a||93==a)return cvox.ChromeVox.isChromeOS?"Search":cvox.ChromeVox.isMac?"Cmd":"Win";if(8==a)return"Backspace";if(32==a)return"Space";if(35==a)return"end";if(36==a)return"home";if(37==a)return"Left arrow";if(38==a)return"Up arrow";if(39==a)return"Right arrow";if(40==a)return"Down arrow";if(45==a)return"Insert";if(13==a)return"Enter";
+if(27==a)return"Escape";if(112==a)return cvox.ChromeVox.isChromeOS?"Back":"F1";if(113==a)return cvox.ChromeVox.isChromeOS?"Forward":"F2";if(114==a)return cvox.ChromeVox.isChromeOS?"Refresh":"F3";if(115==a)return cvox.ChromeVox.isChromeOS?"Toggle full screen":"F4";if(116==a)return"F5";if(117==a)return"F6";if(118==a)return"F7";if(119==a)return"F8";if(120==a)return"F9";if(121==a)return"F10";if(122==a)return"F11";if(123==a)return"F12";if(186==a)return"Semicolon";if(187==a)return"Equal sign";if(188==a)return"Comma";
+if(189==a)return"Dash";if(190==a)return"Period";if(191==a)return"Forward slash";if(192==a)return"Grave accent";if(219==a)return"Open bracket";if(220==a)return"Back slash";if(221==a)return"Close bracket";if(222==a)return"Single quote";if(115==a)return"Toggle full screen";if(48<=a&&90>=a)return String.fromCharCode(a)};cvox.KeyUtil.getStickyKeyCode=function(){var a=45;if(cvox.ChromeVox.isChromeOS||cvox.ChromeVox.isMac)a=91;return a};
+cvox.KeyUtil.getStickyKeySequence=function(){if(null==cvox.KeyUtil.stickyKeySequence){var a=cvox.KeyUtil.getStickyKeyCode(),a={keyCode:a,stickyMode:!0},b=new cvox.KeySequence(a);b.addKeyEvent(a);cvox.KeyUtil.stickyKeySequence=b}return cvox.KeyUtil.stickyKeySequence};cvox.KeyUtil.getReadableNameForStr=function(){return null};
+cvox.KeyUtil.keySequenceToString=function(a,b,c){for(var d="",e=a.length(),f=0;f<e;f++){""==d||c?""!=d&&(d+="+"):d+=">";var g="",h;for(h in a.keys)if(a.keys[h][f]){var k="";switch(h){case "ctrlKey":k="Ctrl";break;case "searchKeyHeld":k=cvox.KeyUtil.getReadableNameForKeyCode(91);break;case "altKey":k="Alt";break;case "altGraphKey":k="AltGraph";break;case "shiftKey":k="Shift";break;case "metaKey":k=cvox.KeyUtil.getReadableNameForKeyCode(91);break;case "keyCode":var l=a.keys[h][f];a.isModifierKey(l)||
+c||(g=b?g+cvox.KeyUtil.getReadableNameForKeyCode(l):g+cvox.KeyUtil.keyCodeToString(l))}-1==d.indexOf(k)&&(g+=k+"+")}d+=g;"+"==d[d.length-1]&&(d=d.slice(0,-1))}a.cvoxModifier||a.prefixKey?d=""!=d?"Cvox+"+d:"Cvox":a.stickyMode&&(">"==d[d.length-1]&&(d=d.slice(0,-1)),d=d+"+"+d);return d};cvox.KeyUtil.isDoubleTapKey=function(a){var b=!1,c=a.doubleTap;a.doubleTap=!0;for(var d=0,e;e=cvox.KeySequence.doubleTapCache[d];d++)if(e.equals(a)){b=!0;break}a.doubleTap=c;return b};cvox.KeyMap=function(a){this.bindings_=a;this.commandToKey_={};this.buildCommandToKey_()};cvox.KeyMap.KEYMAP_PATH="chromevox/background/keymaps/";cvox.KeyMap.AVAILABLE_MAP_INFO={keymap_classic:{file:"classic_keymap.json"},keymap_flat:{file:"flat_keymap.json"},keymap_experimental:{file:"experimental.json"}};cvox.KeyMap.DEFAULT_KEYMAP=0;cvox.KeyMap.prototype.length=function(){return this.bindings_.length};cvox.KeyMap.prototype.keys=function(){return this.bindings_.map(function(a){return a.sequence})};
+cvox.KeyMap.prototype.bindings=function(){return this.bindings_};cvox.KeyMap.prototype.toJSON=function(){return JSON.stringify({bindings:this.bindings_})};cvox.KeyMap.prototype.hasKey=function(a){for(var b=0;b<this.bindings_.length;b++){var c=this.bindings_[b];if(c.sequence.equals(a))return!0}return!1};cvox.KeyMap.prototype.commandForKey=function(a){if(null!=a)for(var b=0;b<this.bindings_.length;b++){var c=this.bindings_[b];if(c.sequence.equals(a))return c.command}return null};
+cvox.KeyMap.fromDefaults=function(){return cvox.KeyMap.fromPath(cvox.KeyMap.KEYMAP_PATH+cvox.KeyMap.AVAILABLE_MAP_INFO.keymap_classic.file)};cvox.KeyMap.fromJSON=function(a){try{var b=JSON.parse(a).bindings,b=b.filter(function(a){return void 0===a.sequence.platformFilter||cvox.PlatformUtil.matchesPlatform(a.sequence.platformFilter)})}catch(c){return null}if("object"!=typeof b)return null;for(a=0;a<b.length;a++){if(void 0==b[a].command||void 0==b[a].sequence)return null;b[a].sequence=cvox.KeySequence.deserialize(b[a].sequence)}return new cvox.KeyMap(b)};
+cvox.KeyMap.fromLocalStorage=function(){return localStorage.keyBindings?cvox.KeyMap.fromJSON(localStorage.keyBindings):null};cvox.KeyMap.fromPath=function(a){return cvox.KeyMap.fromJSON(cvox.KeyMap.readJSON_(a))};cvox.KeyMap.fromCurrentKeyMap=function(){var a=localStorage.currentKeyMap;return a&&cvox.KeyMap.AVAILABLE_MAP_INFO[a]?cvox.KeyMap.fromPath(cvox.KeyMap.KEYMAP_PATH+cvox.KeyMap.AVAILABLE_MAP_INFO[a].file):cvox.KeyMap.fromDefaults()};
+cvox.KeyMap.readJSON_=function(a){var b=chrome.extension.getURL(a);if(!b)throw"Invalid path: "+a;a=new XMLHttpRequest;a.open("GET",b,!1);a.send();return a.responseText};cvox.KeyMap.prototype.buildCommandToKey_=function(){for(var a=0;a<this.bindings_.length;a++){var b=this.bindings_[a];void 0==this.commandToKey_[b.command]&&(this.commandToKey_[b.command]=b.sequence)}};cvox.CommandStore={};cvox.CommandStore.categories=function(){var a={},b;for(b in cvox.CommandStore.CMD_WHITELIST){var c=cvox.CommandStore.CMD_WHITELIST[b];c.category&&(a[c.category]=!0)}b=[];for(var d in a)b.push(d);return b};cvox.CommandStore.messageForCommand=function(a){return(cvox.CommandStore.CMD_WHITELIST[a]||{}).msgId};cvox.CommandStore.categoryForCommand=function(a){return(cvox.CommandStore.CMD_WHITELIST[a]||{}).category};
+cvox.CommandStore.commandsForCategory=function(a){var b=[],c;for(c in cvox.CommandStore.CMD_WHITELIST){var d=cvox.CommandStore.CMD_WHITELIST[c];a==d.category&&b.push(c)}return b};
+cvox.CommandStore.CMD_WHITELIST={toggleStickyMode:{announce:!1,msgId:"toggle_sticky_mode",disallowOOBE:!0,category:"modifier_keys"},toggleKeyPrefix:{announce:!1,skipInput:!0,msgId:"prefix_key",disallowOOBE:!0,category:"modifier_keys"},stopSpeech:{announce:!1,disallowContinuation:!0,doDefault:!0,msgId:"stop_speech_key",category:"controlling_speech"},toggleChromeVox:{announce:!1,platformFilter:cvox.PlatformFilter.WML,msgId:"toggle_chromevox_active",category:"controlling_speech"},decreaseTtsRate:{announce:!1,
+msgId:"decrease_tts_rate",category:"controlling_speech"},increaseTtsRate:{announce:!1,msgId:"increase_tts_rate",category:"controlling_speech"},decreaseTtsPitch:{announce:!1,msgId:"decrease_tts_pitch",category:"controlling_speech"},increaseTtsPitch:{announce:!1,msgId:"increase_tts_pitch",category:"controlling_speech"},decreaseTtsVolume:{announce:!1,msgId:"decrease_tts_volume",category:"controlling_speech"},increaseTtsVolume:{announce:!1,msgId:"increase_tts_volume",category:"controlling_speech"},cyclePunctuationEcho:{announce:!1,
+msgId:"cycle_punctuation_echo",category:"controlling_speech"},cycleTypingEcho:{announce:!1,msgId:"cycle_typing_echo",category:"controlling_speech"},toggleEarcons:{announce:!0,msgId:"toggle_earcons",category:"controlling_speech"},handleTab:{allowEvents:!0,msgId:"handle_tab_next",disallowContinuation:!0,category:"navigation"},handleTabPrev:{allowEvents:!0,msgId:"handle_tab_prev",disallowContinuation:!0,category:"navigation"},forward:{forward:!0,announce:!0,msgId:"forward",category:"navigation"},backward:{backward:!0,
+announce:!0,msgId:"backward",category:"navigation"},right:{forward:!0,announce:!0,msgId:"right",category:"navigation"},left:{backward:!0,announce:!0,msgId:"left",category:"navigation"},previousGranularity:{announce:!0,msgId:"previous_granularity",category:"navigation"},nextGranularity:{announce:!0,msgId:"next_granularity",category:"navigation"},previousCharacter:{backward:!0,announce:!0,msgId:"previous_character",skipInput:!0,category:"navigation"},nextCharacter:{forward:!0,announce:!0,msgId:"next_character",
+skipInput:!0,category:"navigation"},previousWord:{backward:!0,announce:!0,msgId:"previous_word",skipInput:!0,category:"navigation"},nextWord:{forward:!0,announce:!0,msgId:"next_word",skipInput:!0,category:"navigation"},previousLine:{backward:!0,announce:!0,msgId:"previous_line",category:"navigation"},nextLine:{forward:!0,announce:!0,msgId:"next_line",category:"navigation"},previousSentence:{backward:!0,announce:!0,msgId:"previous_sentence",skipInput:!0,category:"navigation"},nextSentence:{forward:!0,
+announce:!0,msgId:"next_sentence",skipInput:!0,category:"navigation"},previousObject:{backward:!0,announce:!0,msgId:"previous_object",skipInput:!0,category:"navigation"},nextObject:{forward:!0,announce:!0,msgId:"next_object",skipInput:!0,category:"navigation"},previousGroup:{backward:!0,announce:!0,msgId:"previous_group",skipInput:!0,category:"navigation"},nextGroup:{forward:!0,announce:!0,msgId:"next_group",skipInput:!0,category:"navigation"},jumpToTop:{forward:!0,announce:!0,msgId:"jump_to_top",
+category:"navigation"},jumpToBottom:{backward:!0,announce:!0,msgId:"jump_to_bottom",category:"navigation"},moveToStartOfLine:{forward:!0,announce:!0},moveToEndOfLine:{backward:!0,announce:!0},readFromHere:{forward:!0,announce:!1,msgId:"read_from_here",category:"navigation"},performDefaultAction:{disallowContinuation:!0,msgId:"perform_default_action",doDefault:!0,skipInput:!0,category:"navigation"},forceClickOnCurrentItem:{announce:!0,disallowContinuation:!0,allowEvents:!0,msgId:"force_click_on_current_item",
+category:"navigation"},forceDoubleClickOnCurrentItem:{announce:!0,allowEvents:!0,disallowContinuation:!0},readLinkURL:{announce:!1,msgId:"read_link_url",category:"information"},readCurrentTitle:{announce:!1,msgId:"read_current_title",category:"information"},readCurrentURL:{announce:!1,msgId:"read_current_url",category:"information"},fullyDescribe:{announce:!1,msgId:"fully_describe",category:"information"},speakTimeAndDate:{announce:!1,msgId:"speak_time_and_date",category:"information"},toggleSelection:{announce:!0,
+msgId:"toggle_selection",category:"information"},toggleSearchWidget:{announce:!1,disallowContinuation:!0,msgId:"toggle_search_widget",category:"information"},toggleKeyboardHelp:{announce:!1,disallowContinuation:!0,msgId:"show_power_key",category:"help_commands"},help:{announce:!1,msgId:"help",disallowOOBE:!0,disallowContinuation:!0,category:"help_commands"},contextMenu:{announce:!1,disallowContinuation:!0},showOptionsPage:{announce:!1,disallowContinuation:!0,msgId:"show_options_page",disallowOOBE:!0,
+category:"help_commands"},showKbExplorerPage:{announce:!1,disallowContinuation:!0,msgId:"show_kb_explorer_page",disallowOOBE:!0,category:"help_commands"},showFormsList:{announce:!1,disallowContinuation:!0,nodeList:"formField",msgId:"show_forms_list",category:"overview"},showHeadingsList:{announce:!1,nodeList:"heading",disallowContinuation:!0,msgId:"show_headings_list",category:"overview"},showLandmarksList:{announce:!1,nodeList:"landmark",disallowContinuation:!0,msgId:"show_landmarks_list",category:"overview"},
+showLinksList:{announce:!1,nodeList:"link",disallowContinuation:!0,msgId:"show_links_list",category:"overview"},showTablesList:{announce:!1,nodeList:"table",disallowContinuation:!0,msgId:"show_tables_list",category:"overview"},startHistoryRecording:{announce:!1},stopHistoryRecording:{announce:!1},enableConsoleTts:{announce:!1},autorunner:{announce:!1},nextArticle:{forward:!0,findNext:"article"},nextButton:{forward:!0,findNext:"button",msgId:"next_button",category:"jump_commands"},nextCheckbox:{forward:!0,
+findNext:"checkbox",msgId:"next_checkbox",category:"jump_commands"},nextComboBox:{forward:!0,findNext:"combobox",msgId:"next_combo_box",category:"jump_commands"},nextControl:{forward:!0,findNext:"control"},nextEditText:{forward:!0,findNext:"editText",msgId:"next_edit_text",category:"jump_commands"},nextFormField:{forward:!0,findNext:"formField",msgId:"next_form_field",category:"jump_commands"},nextGraphic:{forward:!0,findNext:"graphic",msgId:"next_graphic",category:"jump_commands"},nextHeading:{forward:!0,
+findNext:"heading",msgId:"next_heading",category:"jump_commands"},nextHeading1:{forward:!0,findNext:"heading1",msgId:"next_heading1",category:"jump_commands"},nextHeading2:{forward:!0,findNext:"heading2",msgId:"next_heading2",category:"jump_commands"},nextHeading3:{forward:!0,findNext:"heading3",msgId:"next_heading3",category:"jump_commands"},nextHeading4:{forward:!0,findNext:"heading4",msgId:"next_heading4",category:"jump_commands"},nextHeading5:{forward:!0,findNext:"heading5",msgId:"next_heading5",
+category:"jump_commands"},nextHeading6:{forward:!0,findNext:"heading6",msgId:"next_heading6",category:"jump_commands"},nextLandmark:{forward:!0,findNext:"landmark",msgId:"next_landmark",category:"jump_commands"},nextLink:{forward:!0,findNext:"link",msgId:"next_link",category:"jump_commands"},nextList:{forward:!0,findNext:"list",msgId:"next_list",category:"jump_commands"},nextListItem:{forward:!0,findNext:"listItem",msgId:"next_list_item",category:"jump_commands"},nextMath:{forward:!0,findNext:"math",
+msgId:"next_math",category:"jump_commands"},nextMedia:{forward:!0,findNext:"media",msgId:"next_media",category:"jump_commands"},nextRadio:{forward:!0,findNext:"radio",msgId:"next_radio",category:"jump_commands"},nextSection:{forward:!0,findNext:"section"},nextSlider:{forward:!0,findNext:"slider"},nextTable:{forward:!0,findNext:"table",msgId:"next_table",category:"jump_commands"},nextVisitedLink:{forward:!0,findNext:"visitedLink",msgId:"next_visited_link",category:"jump_commands"},previousArticle:{backward:!0,
+findNext:"article"},previousButton:{backward:!0,findNext:"button",msgId:"previous_button",category:"jump_commands"},previousCheckbox:{backward:!0,findNext:"checkbox",msgId:"previous_checkbox",category:"jump_commands"},previousComboBox:{backward:!0,findNext:"combobox",msgId:"previous_combo_box",category:"jump_commands"},previousControl:{backward:!0,findNext:"control"},previousEditText:{backward:!0,findNext:"editText",msgId:"previous_edit_text",category:"jump_commands"},previousFormField:{backward:!0,
+findNext:"formField",msgId:"previous_form_field",category:"jump_commands"},previousGraphic:{backward:!0,findNext:"graphic",msgId:"previous_graphic",category:"jump_commands"},previousHeading:{backward:!0,findNext:"heading",msgId:"previous_heading",category:"jump_commands"},previousHeading1:{backward:!0,findNext:"heading1",msgId:"previous_heading1",category:"jump_commands"},previousHeading2:{backward:!0,findNext:"heading2",msgId:"previous_heading2",category:"jump_commands"},previousHeading3:{backward:!0,
+findNext:"heading3",msgId:"previous_heading3",category:"jump_commands"},previousHeading4:{backward:!0,findNext:"heading4",msgId:"previous_heading4",category:"jump_commands"},previousHeading5:{backward:!0,findNext:"heading5",msgId:"previous_heading5",category:"jump_commands"},previousHeading6:{backward:!0,findNext:"heading6",msgId:"previous_heading6",category:"jump_commands"},previousLandmark:{backward:!0,findNext:"landmark",msgId:"previous_landmark",category:"jump_commands"},previousLink:{backward:!0,
+findNext:"link",msgId:"previous_link",category:"jump_commands"},previousList:{backward:!0,findNext:"list",msgId:"previous_list",category:"jump_commands"},previousListItem:{backward:!0,findNext:"listItem",msgId:"previous_list_item",category:"jump_commands"},previousMath:{backward:!0,findNext:"math",msgId:"previous_math",category:"jump_commands"},previousMedia:{backward:!0,findNext:"media",msgId:"previous_media",category:"jump_commands"},previousRadio:{backward:!0,findNext:"radio",msgId:"previous_radio",
+category:"jump_commands"},previousSection:{backward:!0,findNext:"section"},previousSlider:{backward:!0,findNext:"slider"},previousTable:{backward:!0,findNext:"table",msgId:"previous_table",category:"jump_commands"},previousVisitedLink:{backward:!0,findNext:"visitedLink",msgId:"previous_visited_link",category:"jump_commands"},announceHeaders:{announce:!1,msgId:"announce_headers",category:"tables"},speakTableLocation:{announce:!1,msgId:"speak_table_location",category:"tables"},goToFirstCell:{announce:!0,
+msgId:"skip_to_beginning",category:"tables"},goToLastCell:{announce:!0,msgId:"skip_to_end",category:"tables"},goToRowFirstCell:{announce:!0,msgId:"skip_to_row_beginning",category:"tables"},goToRowLastCell:{announce:!0,msgId:"skip_to_row_end",category:"tables"},goToColFirstCell:{announce:!0,msgId:"skip_to_col_beginning",category:"tables"},goToColLastCell:{announce:!0,msgId:"skip_to_col_end",category:"tables"},previousRow:{backward:!0,announce:!0,skipInput:!0},previousCol:{backward:!0,announce:!0,skipInput:!0},
+nextRow:{forward:!0,announce:!0,skipInput:!0},nextCol:{forward:!0,announce:!0,skipInput:!0},enterShifter:{announce:!0,msgId:"enter_content",category:"navigation"},exitShifter:{announce:!0,msgId:"exit_content",category:"navigation"},exitShifterContent:{announce:!0},openLongDesc:{announce:!1,msgId:"open_long_desc",category:"information"},pauseAllMedia:{announce:!1,msgId:"pause_all_media",category:"information"},toggleSemantics:{announce:!1,msgId:"toggle_semantics",category:"information"},routing:{announce:!0,
+msgId:"braille_routing",category:"braille"},pan_left:{backward:!0,announce:!0,msgId:"braille_pan_left",category:"braille"},pan_right:{forward:!0,announce:!0,msgId:"braille_pan_right",category:"braille"},line_up:{backward:!0,announce:!0,msgId:"braille_line_up",category:"braille"},line_down:{forward:!0,announce:!0,msgId:"braille_line_down",category:"braille"},top:{forward:!0,announce:!0,msgId:"braille_top",category:"braille"},bottom:{backward:!0,announce:!0,msgId:"braille_bottom",category:"braille"},
+debug:{announce:!1},nop:{announce:!1}};
+cvox.CommandStore.NODE_INFO_MAP={checkbox:{predicate:"checkboxPredicate",forwardError:"no_next_checkbox",backwardError:"no_previous_checkbox",typeMsg:"aria_role_checkbox"},radio:{predicate:"radioPredicate",forwardError:"no_next_radio_button",backwardError:"no_previous_radio_button",typeMsg:"aria_role_radio"},slider:{predicate:"sliderPredicate",forwardError:"no_next_slider",backwardError:"no_previous_slider",typeMsg:"aria_role_slider"},graphic:{predicate:"graphicPredicate",forwardError:"no_next_graphic",
+backwardError:"no_previous_graphic",typeMsg:"UNUSED"},article:{predicate:"articlePredicate",forwardError:"no_next_ARTICLE",backwardError:"no_previous_ARTICLE",typeMsg:"TAG_ARTICLE"},button:{predicate:"buttonPredicate",forwardError:"no_next_button",backwardError:"no_previous_button",typeMsg:"aria_role_button"},combobox:{predicate:"comboBoxPredicate",forwardError:"no_next_combo_box",backwardError:"no_previous_combo_box",typeMsg:"aria_role_combobox"},editText:{predicate:"editTextPredicate",forwardError:"no_next_edit_text",
+backwardError:"no_previous_edit_text",typeMsg:"input_type_text"},heading:{predicate:"headingPredicate",forwardError:"no_next_heading",backwardError:"no_previous_heading",typeMsg:"aria_role_heading"},heading1:{predicate:"heading1Predicate",forwardError:"no_next_heading_1",backwardError:"no_previous_heading_1"},heading2:{predicate:"heading2Predicate",forwardError:"no_next_heading_2",backwardError:"no_previous_heading_2"},heading3:{predicate:"heading3Predicate",forwardError:"no_next_heading_3",backwardError:"no_previous_heading_3"},
+heading4:{predicate:"heading4Predicate",forwardError:"no_next_heading_4",backwardError:"no_previous_heading_4"},heading5:{predicate:"heading5Predicate",forwardError:"no_next_heading_5",backwardError:"no_previous_heading_5"},heading6:{predicate:"heading6Predicate",forwardError:"no_next_heading_6",backwardError:"no_previous_heading_6"},link:{predicate:"linkPredicate",forwardError:"no_next_link",backwardError:"no_previous_link",typeMsg:"aria_role_link"},table:{predicate:"tablePredicate",forwardError:"no_next_table",
+backwardError:"no_previous_table",typeMsg:"table_strategy"},visitedLink:{predicate:"visitedLinkPredicate",forwardError:"no_next_visited_link",backwardError:"no_previous_visited_link",typeMsg:"tag_link"},list:{predicate:"listPredicate",forwardError:"no_next_list",backwardError:"no_previous_list",typeMsg:"aria_role_list"},listItem:{predicate:"listItemPredicate",forwardError:"no_next_list_item",backwardError:"no_previous_list_item",typeMsg:"aria_role_listitem"},formField:{predicate:"formFieldPredicate",
+forwardError:"no_next_form_field",backwardError:"no_previous_form_field",typeMsg:"aria_role_form"},landmark:{predicate:"landmarkPredicate",forwardError:"no_next_landmark",backwardError:"no_previous_landmark",typeMsg:"role_landmark"},math:{predicate:"mathPredicate",forwardError:"no_next_math",backwardError:"no_previous_math",typeMsg:"math_expr"},media:{predicate:"mediaPredicate",forwardError:"no_next_media_widget",backwardError:"no_previous_media_widget"},section:{predicate:"sectionPredicate",forwardError:"no_next_section",
+backwardError:"no_previous_section"},control:{predicate:"controlPredicate",forwardError:"no_next_control",backwardError:"no_previous_control"}};cvox.Widget=function(){this.active=!1;this.initialNode=null;cvox.Widget.ref_&&cvox.Widget.ref_.isActive()||(cvox.Widget.ref_=this)};cvox.Widget.prototype.isActive=function(){return this.active};
+cvox.Widget.prototype.show=function(){this.isActive()&&this.hide(!0);this.onKeyDown=goog.bind(this.onKeyDown,this);this.onKeyPress=goog.bind(this.onKeyPress,this);window.addEventListener("keydown",this.onKeyDown,!0);window.addEventListener("keypress",this.onKeyPress,!0);this.initialNode=cvox.ChromeVox.navigationManager.getCurrentNode();this.isStickyOn=cvox.ChromeVox.isStickyOn;this.getNameMsg()&&this.getHelpMsg()&&cvox.$m(this.getNameMsg()).andPause().andMessage(this.getHelpMsg()).speakFlush();cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.OBJECT_OPEN);
+this.active=!0};cvox.Widget.prototype.hide=function(a){window.removeEventListener("keypress",this.onKeyPress,!0);window.removeEventListener("keydown",this.onKeyDown,!0);cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.OBJECT_CLOSE);a||(this.initialNode=1==this.initialNode.nodeType?this.initialNode:this.initialNode.parentNode,cvox.ApiImplementation.syncToNode(this.initialNode,!0,cvox.AbstractTts.QUEUE_MODE_QUEUE));this.active=!1};
+cvox.Widget.prototype.toggle=function(){this.isActive()?this.hide():this.show()};cvox.Widget.prototype.onKeyDown=function(a){if(27==a.keyCode)return this.hide(),a.preventDefault(),!0;if(9==a.keyCode)return this.hide(),!0;17==a.keyCode&&cvox.ChromeVox.tts.stop();a.stopPropagation();return!0};cvox.Widget.prototype.onKeyPress=function(){return!1};cvox.Widget.isActive=function(){return cvox.Widget.ref_&&cvox.Widget.ref_.isActive()||!1};cvox.NavDescription=function(a){this.context=a.context?a.context:"";this.text=a.text?a.text:"";this.userValue=a.userValue?a.userValue:"";this.annotation=a.annotation?a.annotation:"";this.earcons=a.earcons?a.earcons:[];this.personality=a.personality};cvox.NavDescription.prototype.isEmpty=function(){return 0==this.context.length&&0==this.earcons.length&&0==this.text.length&&0==this.userValue.length&&0==this.annotation.length};
+cvox.NavDescription.prototype.toString=function(){return'NavDescription(context="'+this.context+'" text="'+this.text+'" userValue="'+this.userValue+'" annotation="'+this.annotation+'")'};cvox.NavDescription.prototype.pushEarcon=function(a){this.earcons.push(a)};
+cvox.NavDescription.prototype.speak=function(a,b,c){function d(){var a={},b=cvox.AbstractTts.PERSONALITY_ANNOTATION,c;for(c in b)a[c]=b[c];return a}var e=[];this.context&&(e.push([this.context,a,d()]),a=1);e.push([this.text,a,this.personality?this.personality:{}]);a=1;this.userValue&&e.push([this.userValue,a,{}]);this.annotation&&e.push([this.annotation,a,d()]);a=e.length;for(var f=0;f<a;f++)0==f&&b&&(e[f][2].startCallback=b),f==a-1&&c&&(e[f][2].endCallback=c),cvox.ChromeVox.tts.speak.apply(cvox.ChromeVox.tts,
+e[f])};cvox.NavDescription.prototype.equals=function(a){return this.context==a.context&&this.text==a.text&&this.userValue==a.userValue&&this.annotation==a.annotation};cvox.NavMathDescription=function(a){cvox.NavDescription.call(this,a);var b=this.personality?this.personality:{},c={};c.domain=a.domain?a.domain:"";c.style=a.style?a.style:"";b.math=c;this.personality=b};goog.inherits(cvox.NavMathDescription,cvox.NavDescription);cvox.SemanticUtil=function(){};cvox.SemanticUtil.objectsToKeys=function(a){a=Array.prototype.slice.call(arguments,0);var b=[];return b.concat.apply(b,a.map(Object.keys))};cvox.SemanticUtil.objectsToValues=function(a){a=Array.prototype.slice.call(arguments,0);var b=[],c=function(a){for(var c in a)b.push(a[c])};a.forEach(c);return b};
+cvox.SemanticUtil.unicodeToNumber=function(a){if(!a||2<a.length)return null;if(2==a.length){var b=a.charCodeAt(0);a=a.charCodeAt(1);return 55296<=b&&56319>=b&&!isNaN(a)?1024*(b-55296)+(a-56320)+65536:null}return a.charCodeAt(0)};cvox.SemanticUtil.numberToUnicode=function(a){if(65536<=a){var b=(a-65536)/1024+55296;a=(a-65536)%1024+56320;return String.fromCharCode(b,a)}return String.fromCharCode(a)};cvox.SemanticUtil.tagName=function(a){return a.tagName.toUpperCase()};cvox.SemanticUtil.IGNORETAGS="MERROR MPHANTOM MSPACE MACTION MALIGNGROUP MALIGNMARK MACTION".split(" ");
+cvox.SemanticUtil.EMPTYTAGS=["MATH","MROW","MPADDED","MSTYLE"];cvox.SemanticUtil.purgeNodes=function(a){for(var b=[],c=0,d;d=a[c];c++){var e=cvox.SemanticUtil.tagName(d);-1==cvox.SemanticUtil.IGNORETAGS.indexOf(e)&&(-1!=cvox.SemanticUtil.EMPTYTAGS.indexOf(e)&&0==d.childNodes.length||b.push(d))}return b};cvox.SemanticAttr=function(){this.generalPunctuations="!\"#%&'*,:;?@\\\u00a1\u00a7\u00b6\u00b7\u00bf\u2017\u2020\u2021\u2022\u2023\u2024\u2025\u2027\u2030\u2031\u2038\u203b\u203c\u203d\u203e\u2041\u2042\u2043\u2047\u2048\u2049\u204b\u204c\u204d\u204e\u204f\u2050\u2051\u2053\u2055\u2056\u2058\u2059\u205a\u205b\u205c\u205d\u205e\ufe10\ufe13\ufe14\ufe15\ufe16\ufe30\ufe45\ufe46\ufe49\ufe4a\ufe4b\ufe4c\ufe50\ufe54\ufe55\ufe56\ufe57\ufe5f\ufe60\ufe61\ufe68\ufe6a\ufe6b\uff01\uff02\uff03\uff05\uff06\uff07\uff0a\uff0c\uff0f\uff1a\uff1b\uff1f\uff20\uff3c".split("");
+this.invisibleComma_=cvox.SemanticUtil.numberToUnicode(8291);this.generalPunctuations.push(this.invisibleComma_);this.ellipses="\u2026\u22ee\u22ef\u22f0\u22f1\ufe19".split("");this.fullStops=[".","\ufe52","\uff0e"];this.dashes="\u2012\u2013\u2014\u2015\u301c\ufe31\ufe32\ufe58".split("");this.primes="\u2032\u2033\u2034\u2035\u2036\u2037\u2057".split("");this.openClosePairs={"(":")","[":"]","{":"}","\u2045":"\u2046","\u2329":"\u232a","\u2768":"\u2769","\u276a":"\u276b","\u276c":"\u276d","\u276e":"\u276f",
+"\u2770":"\u2771","\u2772":"\u2773","\u2774":"\u2775","\u27c5":"\u27c6","\u27e6":"\u27e7","\u27e8":"\u27e9","\u27ea":"\u27eb","\u27ec":"\u27ed","\u27ee":"\u27ef","\u2983":"\u2984","\u2985":"\u2986","\u2987":"\u2988","\u2989":"\u298a","\u298b":"\u298c","\u298d":"\u298e","\u298f":"\u2990","\u2991":"\u2992","\u2993":"\u2994","\u2995":"\u2996","\u2997":"\u2998","\u29d8":"\u29d9","\u29da":"\u29db","\u29fc":"\u29fd","\u2e22":"\u2e23","\u2e24":"\u2e25","\u2e26":"\u2e27","\u2e28":"\u2e29","\u3008":"\u3009",
+"\u300a":"\u300b","\u300c":"\u300d","\u300e":"\u300f","\u3010":"\u3011","\u3014":"\u3015","\u3016":"\u3017","\u3018":"\u3019","\u301a":"\u301b","\u301d":"\u301e","\ufd3e":"\ufd3f","\ufe17":"\ufe18","\ufe59":"\ufe5a","\ufe5b":"\ufe5c","\ufe5d":"\ufe5e","\uff08":"\uff09","\uff3b":"\uff3d","\uff5b":"\uff5d","\uff5f":"\uff60","\uff62":"\uff63","\u2308":"\u2309","\u230a":"\u230b","\u230c":"\u230d","\u230e":"\u230f","\u231c":"\u231d","\u231e":"\u231f","\u239b":"\u239e","\u239c":"\u239f","\u239d":"\u23a0",
+"\u23a1":"\u23a4","\u23a2":"\u23a5","\u23a3":"\u23a6","\u23a7":"\u23ab","\u23a8":"\u23ac","\u23a9":"\u23ad","\u23b0":"\u23b1","\u23b8":"\u23b9"};this.topBottomPairs={"\u23b4":"\u23b5","\u23dc":"\u23dd","\u23de":"\u23df","\u23e0":"\u23e1","\ufe35":"\ufe36","\ufe37":"\ufe38","\ufe39":"\ufe3a","\ufe3b":"\ufe3c","\ufe3d":"\ufe3e","\ufe3f":"\ufe40","\ufe41":"\ufe42","\ufe43":"\ufe44","\ufe47":"\ufe48"};this.leftFences=cvox.SemanticUtil.objectsToKeys(this.openClosePairs);this.rightFences=cvox.SemanticUtil.objectsToValues(this.openClosePairs);
+this.rightFences.push("\u301f");this.topFences=cvox.SemanticUtil.objectsToKeys(this.topBottomPairs);this.bottomFences=cvox.SemanticUtil.objectsToValues(this.topBottomPairs);this.neutralFences="|\u00a6\u2016\u2758\u2980\u2af4\uffe4\uff5c".split("");this.capitalLatin="ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");this.smallLatin="abcdefghijklmnopqrstuvwxyz\u0131\u0237".split("");this.capitalLatinFullWidth="\uff21\uff22\uff23\uff24\uff25\uff26\uff27\uff28\uff29\uff2a\uff2b\uff2c\uff2d\uff2e\uff2f\uff30\uff31\uff32\uff33\uff34\uff35\uff36\uff37\uff38\uff39\uff3a".split("");
+this.smallLatinFullWidth="\uff41\uff42\uff43\uff44\uff45\uff46\uff47\uff48\uff49\uff4a\uff4b\uff4c\uff4d\uff4e\uff4f\uff50\uff51\uff52\uff53\uff54\uff55\uff56\uff57\uff58\uff59\uff5a".split("");this.capitalLatinBold="\ud835\udc00 \ud835\udc01 \ud835\udc02 \ud835\udc03 \ud835\udc04 \ud835\udc05 \ud835\udc06 \ud835\udc07 \ud835\udc08 \ud835\udc09 \ud835\udc0a \ud835\udc0b \ud835\udc0c \ud835\udc0d \ud835\udc0e \ud835\udc0f \ud835\udc10 \ud835\udc11 \ud835\udc12 \ud835\udc13 \ud835\udc14 \ud835\udc15 \ud835\udc16 \ud835\udc17 \ud835\udc18 \ud835\udc19".split(" ");
+this.smallLatinBold="\ud835\udc1a \ud835\udc1b \ud835\udc1c \ud835\udc1d \ud835\udc1e \ud835\udc1f \ud835\udc20 \ud835\udc21 \ud835\udc22 \ud835\udc23 \ud835\udc24 \ud835\udc25 \ud835\udc26 \ud835\udc27 \ud835\udc28 \ud835\udc29 \ud835\udc2a \ud835\udc2b \ud835\udc2c \ud835\udc2d \ud835\udc2e \ud835\udc2f \ud835\udc30 \ud835\udc31 \ud835\udc32 \ud835\udc33".split(" ");this.capitalLatinItalic="\ud835\udc34 \ud835\udc35 \ud835\udc36 \ud835\udc37 \ud835\udc38 \ud835\udc39 \ud835\udc3a \ud835\udc3b \ud835\udc3c \ud835\udc3d \ud835\udc3e \ud835\udc3f \ud835\udc40 \ud835\udc41 \ud835\udc42 \ud835\udc43 \ud835\udc44 \ud835\udc45 \ud835\udc46 \ud835\udc47 \ud835\udc48 \ud835\udc49 \ud835\udc4a \ud835\udc4b \ud835\udc4c \ud835\udc4d".split(" ");
+this.smallLatinItalic="\ud835\udc4e \ud835\udc4f \ud835\udc50 \ud835\udc51 \ud835\udc52 \ud835\udc53 \ud835\udc54 \u210e \ud835\udc56 \ud835\udc57 \ud835\udc58 \ud835\udc59 \ud835\udc5a \ud835\udc5b \ud835\udc5c \ud835\udc5d \ud835\udc5e \ud835\udc5f \ud835\udc60 \ud835\udc61 \ud835\udc62 \ud835\udc63 \ud835\udc64 \ud835\udc65 \ud835\udc66 \ud835\udc67 \ud835\udea4 \ud835\udea5".split(" ");this.capitalLatinScript="\ud835\udc9c \u212c \ud835\udc9e \ud835\udc9f \u2130 \u2131 \ud835\udca2 \u210b \u2110 \ud835\udca5 \ud835\udca6 \u2112 \u2133 \ud835\udca9 \ud835\udcaa \ud835\udcab \ud835\udcac \u211b \ud835\udcae \ud835\udcaf \ud835\udcb0 \ud835\udcb1 \ud835\udcb2 \ud835\udcb3 \ud835\udcb4 \ud835\udcb5 \u2118".split(" ");
+this.smallLatinScript="\ud835\udcb6 \ud835\udcb7 \ud835\udcb8 \ud835\udcb9 \u212f \ud835\udcbb \u210a \ud835\udcbd \ud835\udcbe \ud835\udcbf \ud835\udcc0 \ud835\udcc1 \ud835\udcc2 \ud835\udcc3 \u2134 \ud835\udcc5 \ud835\udcc6 \ud835\udcc7 \ud835\udcc8 \ud835\udcc9 \ud835\udcca \ud835\udccb \ud835\udccc \ud835\udccd \ud835\udcce \ud835\udccf \u2113".split(" ");this.capitalLatinBoldScript="\ud835\udcd0 \ud835\udcd1 \ud835\udcd2 \ud835\udcd3 \ud835\udcd4 \ud835\udcd5 \ud835\udcd6 \ud835\udcd7 \ud835\udcd8 \ud835\udcd9 \ud835\udcda \ud835\udcdb \ud835\udcdc \ud835\udcdd \ud835\udcde \ud835\udcdf \ud835\udce0 \ud835\udce1 \ud835\udce2 \ud835\udce3 \ud835\udce4 \ud835\udce5 \ud835\udce6 \ud835\udce7 \ud835\udce8 \ud835\udce9".split(" ");
+this.smallLatinBoldScript="\ud835\udcea \ud835\udceb \ud835\udcec \ud835\udced \ud835\udcee \ud835\udcef \ud835\udcf0 \ud835\udcf1 \ud835\udcf2 \ud835\udcf3 \ud835\udcf4 \ud835\udcf5 \ud835\udcf6 \ud835\udcf7 \ud835\udcf8 \ud835\udcf9 \ud835\udcfa \ud835\udcfb \ud835\udcfc \ud835\udcfd \ud835\udcfe \ud835\udcff \ud835\udd00 \ud835\udd01 \ud835\udd02 \ud835\udd03".split(" ");this.capitalLatinFraktur="\ud835\udd04 \ud835\udd05 \u212d \ud835\udd07 \ud835\udd08 \ud835\udd09 \ud835\udd0a \u210c \u2111 \ud835\udd0d \ud835\udd0e \ud835\udd0f \ud835\udd10 \ud835\udd11 \ud835\udd12 \ud835\udd13 \ud835\udd14 \u211c \ud835\udd16 \ud835\udd17 \ud835\udd18 \ud835\udd19 \ud835\udd1a \ud835\udd1b \ud835\udd1c \u2128".split(" ");
+this.smallLatinFraktur="\ud835\udd1e \ud835\udd1f \ud835\udd20 \ud835\udd21 \ud835\udd22 \ud835\udd23 \ud835\udd24 \ud835\udd25 \ud835\udd26 \ud835\udd27 \ud835\udd28 \ud835\udd29 \ud835\udd2a \ud835\udd2b \ud835\udd2c \ud835\udd2d \ud835\udd2e \ud835\udd2f \ud835\udd30 \ud835\udd31 \ud835\udd32 \ud835\udd33 \ud835\udd34 \ud835\udd35 \ud835\udd36 \ud835\udd37".split(" ");this.capitalLatinDoubleStruck="\ud835\udd38 \ud835\udd39 \u2102 \ud835\udd3b \ud835\udd3c \ud835\udd3d \ud835\udd3e \u210d \ud835\udd40 \ud835\udd41 \ud835\udd42 \ud835\udd43 \ud835\udd44 \u2115 \ud835\udd46 \u2119 \u211a \u211d \ud835\udd4a \ud835\udd4b \ud835\udd4c \ud835\udd4d \ud835\udd4e \ud835\udd4f \ud835\udd50 \u2124".split(" ");
+this.smallLatinDoubleStruck="\ud835\udd52 \ud835\udd53 \ud835\udd54 \ud835\udd55 \ud835\udd56 \ud835\udd57 \ud835\udd58 \ud835\udd59 \ud835\udd5a \ud835\udd5b \ud835\udd5c \ud835\udd5d \ud835\udd5e \ud835\udd5f \ud835\udd60 \ud835\udd61 \ud835\udd62 \ud835\udd63 \ud835\udd64 \ud835\udd65 \ud835\udd66 \ud835\udd67 \ud835\udd68 \ud835\udd69 \ud835\udd6a \ud835\udd6b".split(" ");this.capitalLatinBoldFraktur="\ud835\udd6c \ud835\udd6d \ud835\udd6e \ud835\udd6f \ud835\udd70 \ud835\udd71 \ud835\udd72 \ud835\udd73 \ud835\udd74 \ud835\udd75 \ud835\udd76 \ud835\udd77 \ud835\udd78 \ud835\udd79 \ud835\udd7a \ud835\udd7b \ud835\udd7c \ud835\udd7d \ud835\udd7e \ud835\udd7f \ud835\udd80 \ud835\udd81 \ud835\udd82 \ud835\udd83 \ud835\udd84 \ud835\udd85".split(" ");
+this.smallLatinBoldFraktur="\ud835\udd86 \ud835\udd87 \ud835\udd88 \ud835\udd89 \ud835\udd8a \ud835\udd8b \ud835\udd8c \ud835\udd8d \ud835\udd8e \ud835\udd8f \ud835\udd90 \ud835\udd91 \ud835\udd92 \ud835\udd93 \ud835\udd94 \ud835\udd95 \ud835\udd96 \ud835\udd97 \ud835\udd98 \ud835\udd99 \ud835\udd9a \ud835\udd9b \ud835\udd9c \ud835\udd9d \ud835\udd9e \ud835\udd9f".split(" ");this.capitalLatinSansSerif="\ud835\udda0 \ud835\udda1 \ud835\udda2 \ud835\udda3 \ud835\udda4 \ud835\udda5 \ud835\udda6 \ud835\udda7 \ud835\udda8 \ud835\udda9 \ud835\uddaa \ud835\uddab \ud835\uddac \ud835\uddad \ud835\uddae \ud835\uddaf \ud835\uddb0 \ud835\uddb1 \ud835\uddb2 \ud835\uddb3 \ud835\uddb4 \ud835\uddb5 \ud835\uddb6 \ud835\uddb7 \ud835\uddb8 \ud835\uddb9".split(" ");
+this.smallLatinSansSerif="\ud835\uddba \ud835\uddbb \ud835\uddbc \ud835\uddbd \ud835\uddbe \ud835\uddbf \ud835\uddc0 \ud835\uddc1 \ud835\uddc2 \ud835\uddc3 \ud835\uddc4 \ud835\uddc5 \ud835\uddc6 \ud835\uddc7 \ud835\uddc8 \ud835\uddc9 \ud835\uddca \ud835\uddcb \ud835\uddcc \ud835\uddcd \ud835\uddce \ud835\uddcf \ud835\uddd0 \ud835\uddd1 \ud835\uddd2 \ud835\uddd3".split(" ");this.capitalLatinSansSerifBold="\ud835\uddd4 \ud835\uddd5 \ud835\uddd6 \ud835\uddd7 \ud835\uddd8 \ud835\uddd9 \ud835\uddda \ud835\udddb \ud835\udddc \ud835\udddd \ud835\uddde \ud835\udddf \ud835\udde0 \ud835\udde1 \ud835\udde2 \ud835\udde3 \ud835\udde4 \ud835\udde5 \ud835\udde6 \ud835\udde7 \ud835\udde8 \ud835\udde9 \ud835\uddea \ud835\uddeb \ud835\uddec \ud835\udded".split(" ");
+this.smallLatinSansSerifBold="\ud835\uddee \ud835\uddef \ud835\uddf0 \ud835\uddf1 \ud835\uddf2 \ud835\uddf3 \ud835\uddf4 \ud835\uddf5 \ud835\uddf6 \ud835\uddf7 \ud835\uddf8 \ud835\uddf9 \ud835\uddfa \ud835\uddfb \ud835\uddfc \ud835\uddfd \ud835\uddfe \ud835\uddff \ud835\ude00 \ud835\ude01 \ud835\ude02 \ud835\ude03 \ud835\ude04 \ud835\ude05 \ud835\ude06 \ud835\ude07".split(" ");this.capitalLatinSansSerifItalic="\ud835\ude08 \ud835\ude09 \ud835\ude0a \ud835\ude0b \ud835\ude0c \ud835\ude0d \ud835\ude0e \ud835\ude0f \ud835\ude10 \ud835\ude11 \ud835\ude12 \ud835\ude13 \ud835\ude14 \ud835\ude15 \ud835\ude16 \ud835\ude17 \ud835\ude18 \ud835\ude19 \ud835\ude1a \ud835\ude1b \ud835\ude1c \ud835\ude1d \ud835\ude1e \ud835\ude1f \ud835\ude20 \ud835\ude21".split(" ");
+this.smallLatinSansSerifItalic="\ud835\ude22 \ud835\ude23 \ud835\ude24 \ud835\ude25 \ud835\ude26 \ud835\ude27 \ud835\ude28 \ud835\ude29 \ud835\ude2a \ud835\ude2b \ud835\ude2c \ud835\ude2d \ud835\ude2e \ud835\ude2f \ud835\ude30 \ud835\ude31 \ud835\ude32 \ud835\ude33 \ud835\ude34 \ud835\ude35 \ud835\ude36 \ud835\ude37 \ud835\ude38 \ud835\ude39 \ud835\ude3a \ud835\ude3b".split(" ");this.capitalLatinMonospace="\ud835\ude70 \ud835\ude71 \ud835\ude72 \ud835\ude73 \ud835\ude74 \ud835\ude75 \ud835\ude76 \ud835\ude77 \ud835\ude78 \ud835\ude79 \ud835\ude7a \ud835\ude7b \ud835\ude7c \ud835\ude7d \ud835\ude7e \ud835\ude7f \ud835\ude80 \ud835\ude81 \ud835\ude82 \ud835\ude83 \ud835\ude84 \ud835\ude85 \ud835\ude86 \ud835\ude87 \ud835\ude88 \ud835\ude89".split(" ");
+this.smallLatinMonospace="\ud835\ude8a \ud835\ude8b \ud835\ude8c \ud835\ude8d \ud835\ude8e \ud835\ude8f \ud835\ude90 \ud835\ude91 \ud835\ude92 \ud835\ude93 \ud835\ude94 \ud835\ude95 \ud835\ude96 \ud835\ude97 \ud835\ude98 \ud835\ude99 \ud835\ude9a \ud835\ude9b \ud835\ude9c \ud835\ude9d \ud835\ude9e \ud835\ude9f \ud835\udea0 \ud835\udea1 \ud835\udea2 \ud835\udea3".split(" ");this.latinDoubleStruckItalic=["\u2145","\u2146","\u2147","\u2148","\u2149"];this.capitalGreek="\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039a\u039b\u039c\u039d\u039e\u039f\u03a0\u03a1\u03a3\u03a4\u03a5\u03a6\u03a7\u03a8\u03a9".split("");
+this.smallGreek="\u03b1\u03b2\u03b3\u03b4\u03b5\u03b6\u03b7\u03b8\u03b9\u03ba\u03bb\u03bc\u03bd\u03be\u03bf\u03c0\u03c1\u03c2\u03c3\u03c4\u03c5\u03c6\u03c7\u03c8\u03c9".split("");this.capitalGreekBold="\ud835\udea8 \ud835\udea9 \ud835\udeaa \ud835\udeab \ud835\udeac \ud835\udead \ud835\udeae \ud835\udeaf \ud835\udeb0 \ud835\udeb1 \ud835\udeb2 \ud835\udeb3 \ud835\udeb4 \ud835\udeb5 \ud835\udeb6 \ud835\udeb7 \ud835\udeb8 \ud835\udeba \ud835\udebb \ud835\udebc \ud835\udebd \ud835\udebe \ud835\udebf \ud835\udec0".split(" ");
+this.smallGreekBold="\ud835\udec2 \ud835\udec3 \ud835\udec4 \ud835\udec5 \ud835\udec6 \ud835\udec7 \ud835\udec8 \ud835\udec9 \ud835\udeca \ud835\udecb \ud835\udecc \ud835\udecd \ud835\udece \ud835\udecf \ud835\uded0 \ud835\uded1 \ud835\uded2 \ud835\uded3 \ud835\uded4 \ud835\uded5 \ud835\uded6 \ud835\uded7 \ud835\uded8 \ud835\uded9 \ud835\udeda".split(" ");this.capitalGreekItalic="\ud835\udee2 \ud835\udee3 \ud835\udee4 \ud835\udee5 \ud835\udee6 \ud835\udee7 \ud835\udee8 \ud835\udee9 \ud835\udeea \ud835\udeeb \ud835\udeec \ud835\udeed \ud835\udeee \ud835\udeef \ud835\udef0 \ud835\udef1 \ud835\udef2 \ud835\udef4 \ud835\udef5 \ud835\udef6 \ud835\udef7 \ud835\udef8 \ud835\udef9 \ud835\udefa".split(" ");
+this.smallGreekItalic="\ud835\udefc \ud835\udefd \ud835\udefe \ud835\udeff \ud835\udf00 \ud835\udf01 \ud835\udf02 \ud835\udf03 \ud835\udf04 \ud835\udf05 \ud835\udf06 \ud835\udf07 \ud835\udf08 \ud835\udf09 \ud835\udf0a \ud835\udf0b \ud835\udf0c \ud835\udf0d \ud835\udf0e \ud835\udf0f \ud835\udf10 \ud835\udf11 \ud835\udf12 \ud835\udf13 \ud835\udf14".split(" ");this.capitalGreekSansSerifBold="\ud835\udf56 \ud835\udf57 \ud835\udf58 \ud835\udf59 \ud835\udf5a \ud835\udf5b \ud835\udf5c \ud835\udf5d \ud835\udf5e \ud835\udf5f \ud835\udf60 \ud835\udf61 \ud835\udf62 \ud835\udf63 \ud835\udf64 \ud835\udf65 \ud835\udf66 \ud835\udf68 \ud835\udf69 \ud835\udf6a \ud835\udf6b \ud835\udf6c \ud835\udf6d \ud835\udf6e".split(" ");
+this.smallGreekSansSerifBold="\ud835\udf70 \ud835\udf71 \ud835\udf72 \ud835\udf73 \ud835\udf74 \ud835\udf75 \ud835\udf76 \ud835\udf77 \ud835\udf78 \ud835\udf79 \ud835\udf7a \ud835\udf7b \ud835\udf7c \ud835\udf7d \ud835\udf7e \ud835\udf7f \ud835\udf80 \ud835\udf81 \ud835\udf82 \ud835\udf83 \ud835\udf84 \ud835\udf85 \ud835\udf86 \ud835\udf87 \ud835\udf88".split(" ");this.greekDoubleStruck=["\u213c","\u213d","\u213e","\u213f"];this.hebrewLetters=["\u2135","\u2136","\u2137","\u2138"];this.additions="+\u00b1\u2213\u2214\u2227\u2228\u2229\u222a\u228c\u2293\u2294\u229d\u229e\u22a4\u22a5\u22ba\u22bb\u22bc\u22c4\u22ce\u22cf\u22d2\u22d3\u25b3\u25b7\u25bd\u25c1\u2a5e\u2295".split("");
+this.invisiblePlus_=cvox.SemanticUtil.numberToUnicode(8292);this.additions.push(this.invisiblePlus_);this.multiplications="\u2020\u2021\u2210\u2217\u2218\u2219\u2240\u229a\u229b\u22a0\u22a1\u22c5\u22c6\u22c7\u22c9\u22ca\u22cb\u22cc\u25cb".split("");this.invisibleTimes_=cvox.SemanticUtil.numberToUnicode(8290);this.multiplications.push(this.invisibleTimes_);this.subtractions="-\u2052\u207b\u208b\u2212\u2216\u2238\u2242\u2296\u229f\u2796\u2a29\u2a2a\u2a2b\u2a2c\u2a3a\u2a41\u2a6c\ufe63\uff0d\u2010\u2011".split("");
+this.divisions="/\u00f7\u2044\u2215\u2298\u27cc\u29bc\u2a38".split("");this.functionApplication_=cvox.SemanticUtil.numberToUnicode(8289);this.equalities="=~\u207c\u208c\u223c\u223d\u2243\u2245\u2248\u224a\u224b\u224c\u224d\u224e\u2251\u2252\u2253\u2254\u2255\u2256\u2257\u2258\u2259\u225a\u225b\u225c\u225d\u225e\u225f\u2261\u2263\u29e4\u2a66\u2a6e\u2a6f\u2a70\u2a71\u2a72\u2a73\u2a74\u2a75\u2a76\u2a77\u2a78\u22d5\u2a6d\u2a6a\u2a6b\u2a6c\ufe66\uff1d".split("");this.inequalities="<>\u2241\u2242\u2244\u2246\u2247\u2249\u224f\u2250\u2260\u2262\u2264\u2265\u2266\u2267\u2268\u2269\u226a\u226b\u226c\u226d\u226e\u226f\u2270\u2271\u2272\u2273\u2274\u2275\u2276\u2277\u2278\u2279\u227a\u227b\u227c\u227d\u227e\u227f\u2280\u2281\u22d6\u22d7\u22d8\u22d9\u22da\u22db\u22dc\u22dd\u22de\u22df\u22e0\u22e1\u22e2\u22e3\u22e4\u22e5\u22e6\u22e7\u22e8\u22e9\u2a79\u2a7a\u2a7b\u2a7c\u2a7d\u2a7e\u2a7f\u2a80\u2a81\u2a82\u2a83\u2a84\u2a85\u2a86\u2a87\u2a88\u2a89\u2a8a\u2a8b\u2a8c\u2a8d\u2a8e\u2a8f\u2a90\u2a91\u2a92\u2a93\u2a94\u2a95\u2a96\u2a97\u2a98\u2a99\u2a9a\u2a9b\u2a9c\u2a9d\u2a9e\u2a9f\u2aa0\u2aa1\u2aa2\u2aa3\u2aa4\u2aa5\u2aa6\u2aa7\u2aa8\u2aa9\u2aaa\u2aab\u2aac\u2aad\u2aae\u2aaf\u2ab0\u2ab1\u2ab2\u2ab3\u2ab4\u2ab5\u2ab6\u2ab7\u2ab8\u2ab9\u2aba\u2abb\u2abc\u2af7\u2af8\u2af9\u2afa\u29c0\u29c1\ufe64\ufe65\uff1c\uff1e".split("");
+this.relations=[];this.arrows="\u2190\u2191\u2192\u2193\u2194\u2195\u2196\u2197\u2198\u2199\u219a\u219b\u219c\u219d\u219e\u219f\u21a0\u21a1\u21a2\u21a3\u21a4\u21a5\u21a6\u21a7\u21a8\u21a9\u21aa\u21ab\u21ac\u21ad\u21ae\u21af\u21b0\u21b1\u21b2\u21b3\u21b4\u21b5\u21b6\u21b7\u21b8\u21b9\u21ba\u21bb\u21c4\u21c5\u21c6\u21c7\u21c8\u21c9\u21ca\u21cd\u21ce\u21cf\u21d0\u21d1\u21d2\u21d3\u21d4\u21d5\u21d6\u21d7\u21d8\u21d9\u21da\u21db\u21dc\u21dd\u21de\u21df\u21e0\u21e1\u21e2\u21e3\u21e4\u21e5\u21e6\u21e7\u21e8\u21e9\u21ea\u21eb\u21ec\u21ed\u21ee\u21ef\u21f0\u21f1\u21f2\u21f3\u21f4\u21f5\u21f6\u21f7\u21f8\u21f9\u21fa\u21fb\u21fc\u21fd\u21fe\u21ff\u2301\u2303\u2304\u2324\u238b\u2794\u2798\u2799\u279a\u279b\u279c\u279d\u279e\u279f\u27a0\u27a1\u27a2\u27a3\u27a4\u27a5\u27a6\u27a7\u27a8\u27a9\u27aa\u27ab\u27ac\u27ad\u27ae\u27af\u27b1\u27b2\u27b3\u27b4\u27b5\u27b6\u27b7\u27b8\u27b9\u27ba\u27bb\u27bc\u27bd\u27be\u27f0\u27f1\u27f2\u27f3\u27f4\u27f5\u27f6\u27f7\u27f8\u27f9\u27fa\u27fb\u27fc\u27fd\u27fe\u27ff\u2900\u2901\u2902\u2903\u2904\u2905\u2906\u2907\u2908\u2909\u290a\u290b\u290c\u290d\u290e\u290f\u2910\u2911\u2912\u2913\u2914\u2915\u2916\u2917\u2918\u2919\u291a\u291b\u291c\u291d\u291e\u291f\u2920\u2921\u2922\u2923\u2924\u2925\u2926\u2927\u2928\u2929\u292a\u292d\u292e\u292f\u2930\u2931\u2932\u2933\u2934\u2935\u2936\u2937\u2938\u2939\u293a\u293b\u293c\u293d\u293e\u293f\u2940\u2941\u2942\u2943\u2944\u2945\u2946\u2947\u2948\u2949\u2970\u2971\u2972\u2973\u2974\u2975\u2976\u2977\u2978\u2979\u297a\u297b\u29b3\u29b4\u29bd\u29ea\u29ec\u29ed\u2a17\u2b00\u2b01\u2b02\u2b03\u2b04\u2b05\u2b06\u2b07\u2b08\u2b09\u2b0a\u2b0b\u2b0c\u2b0d\u2b0e\u2b0f\u2b10\u2b11\u2b30\u2b31\u2b32\u2b33\u2b34\u2b35\u2b36\u2b37\u2b38\u2b39\u2b3a\u2b3b\u2b3c\u2b3d\u2b3e\u2b3f\u2b40\u2b41\u2b42\u2b43\u2b44\u2b45\u2b46\u2b47\u2b48\u2b49\u2b4a\u2b4b\u2b4c\uffe9\uffea\uffeb\uffec\u21bc\u21bd\u21be\u21bf\u21c0\u21c1\u21c2\u21c3\u21cb\u21cc\u294a\u294b\u294c\u294d\u294e\u294f\u2950\u2951\u2952\u2953\u2954\u2955\u2956\u2957\u2958\u2959\u295a\u295b\u295c\u295d\u295e\u295f\u2960\u2961\u2962\u2963\u2964\u2965\u2966\u2967\u2968\u2969\u296a\u296b\u296c\u296d\u296e\u296f\u297c\u297d\u297e\u297f".split("");
+this.sumOps="\u2140\u220f\u2210\u2211\u22c0\u22c1\u22c2\u22c3\u2a00\u2a01\u2a02\u2a03\u2a04\u2a05\u2a06\u2a07\u2a08\u2a09\u2a0a\u2a0b\u2afc\u2aff".split("");this.intOps="\u222b\u222c\u222d\u222e\u222f\u2230\u2231\u2232\u2233\u2a0c\u2a0d\u2a0e\u2a0f\u2a10\u2a11\u2a12\u2a13\u2a14\u2a15\u2a16\u2a17\u2a18\u2a19\u2a1a\u2a1b\u2a1c".split("");this.prefixOps=["\u2200","\u2203"];this.digitsNormal="0123456789".split("");this.digitsFullWidth="\uff10\uff11\uff12\uff13\uff14\uff15\uff16\uff17\uff18\uff19".split("");
+this.digitsBold="\ud835\udfce \ud835\udfcf \ud835\udfd0 \ud835\udfd1 \ud835\udfd2 \ud835\udfd3 \ud835\udfd4 \ud835\udfd5 \ud835\udfd6 \ud835\udfd7".split(" ");this.digitsDoubleStruck="\ud835\udfd8 \ud835\udfd9 \ud835\udfda \ud835\udfdb \ud835\udfdc \ud835\udfdd \ud835\udfde \ud835\udfdf \ud835\udfe0 \ud835\udfe1".split(" ");this.digitsSansSerif="\ud835\udfe2 \ud835\udfe3 \ud835\udfe4 \ud835\udfe5 \ud835\udfe6 \ud835\udfe7 \ud835\udfe8 \ud835\udfe9 \ud835\udfea \ud835\udfeb".split(" ");this.digitsSansSerifBold=
+"\ud835\udfec \ud835\udfed \ud835\udfee \ud835\udfef \ud835\udff0 \ud835\udff1 \ud835\udff2 \ud835\udff3 \ud835\udff4 \ud835\udff5".split(" ");this.digitsMonospace="\ud835\udff6 \ud835\udff7 \ud835\udff8 \ud835\udff9 \ud835\udffa \ud835\udffb \ud835\udffc \ud835\udffd \ud835\udffe \ud835\udfff".split(" ");this.digitsSuperscript="\u00b2\u00b3\u00b9\u2070\u2074\u2075\u2076\u2077\u2078\u2079".split("");this.digitsSubscript="\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089".split("");this.fractions=
+"\u00bc\u00bd\u00be\u2150\u2151\u2152\u2153\u2154\u2155\u2156\u2157\u2158\u2159\u215a\u215b\u215c\u215d\u215e\u215f\u2189".split("");this.enclosedNumbers="\u2460\u2461\u2462\u2463\u2464\u2465\u2466\u2467\u2468\u2469\u246a\u246b\u246c\u246d\u246e\u246f\u2470\u2471\u2472\u2473\u24ea\u24eb\u24ec\u24ed\u24ee\u24ef\u24f0\u24f1\u24f2\u24f3\u24f4\u24f5\u24f6\u24f7\u24f8\u24f9\u24fa\u24fb\u24fc\u24fd\u24fe\u24ff\u2776\u2777\u2778\u2779\u277a\u277b\u277c\u277d\u277e\u277f\u2780\u2781\u2782\u2783\u2784\u2785\u2786\u2787\u2788\u2789\u278a\u278b\u278c\u278d\u278e\u278f\u2790\u2791\u2792\u2793\u3248\u3249\u324a\u324b\u324c\u324d\u324e\u324f\u3251\u3252\u3253\u3254\u3255\u3256\u3257\u3258\u3259\u325a\u325b\u325c\u325d\u325e\u325f\u32b1\u32b2\u32b3\u32b4\u32b5\u32b6\u32b7\u32b8\u32b9\u32ba\u32bb\u32bc\u32bd\u32be\u32bf".split("");
+this.fencedNumbers="\u2474\u2475\u2476\u2477\u2478\u2479\u247a\u247b\u247c\u247d\u247e\u247f\u2480\u2481\u2482\u2483\u2484\u2485\u2486\u2487".split("");this.punctuatedNumbers="\u2488 \u2489 \u248a \u248b \u248c \u248d \u248e \u248f \u2490 \u2491 \u2492 \u2493 \u2494 \u2495 \u2496 \u2497 \u2498 \u2499 \u249a \u249b \ud83c\udd00 \ud83c\udd01 \ud83c\udd02 \ud83c\udd03 \ud83c\udd04 \ud83c\udd05 \ud83c\udd06 \ud83c\udd07 \ud83c\udd08 \ud83c\udd09 \ud83c\udd0a".split(" ");this.numbers=this.fractions.concat(this.digitsSuperscript,
+this.digitsSubscript,this.enclosedNumbers,this.fencedNumbers,this.punctuatedNumbers);this.trigonometricFunctions="cos cot csc sec sin tan arccos arccot arccsc arcsec arcsin arctan".split(" ");this.hyperbolicFunctions="cosh coth csch sech sinh tanh arcosh arcoth arcsch arsech arsinh artanh arccosh arccoth arccsch arcsech arcsinh arctanh".split(" ");this.algebraicFunctions="deg det dim hom ker Tr tr".split(" ");this.elementaryFunctions="log ln lg exp expt gcd gcd arg im re Pr".split(" ");this.prefixFunctions=
+this.trigonometricFunctions.concat(this.hyperbolicFunctions,this.algebraicFunctions,this.elementaryFunctions);this.limitFunctions="inf lim liminf limsup max min sup injlim projlim".split(" ");this.infixFunctions=["mod","rem"];this.symbolSetToSemantic_=[{set:this.generalPunctuations,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.UNKNOWN},{set:this.ellipses,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.ELLIPSIS},{set:this.fullStops,type:cvox.SemanticAttr.Type.PUNCTUATION,
+role:cvox.SemanticAttr.Role.FULLSTOP},{set:this.dashes,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.DASH},{set:this.primes,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.PRIME},{set:this.leftFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.OPEN},{set:this.rightFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.CLOSE},{set:this.topFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.TOP},{set:this.bottomFences,
+type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.BOTTOM},{set:this.neutralFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.NEUTRAL},{set:this.smallLatin,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.capitalLatin,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.smallLatinFullWidth,type:cvox.SemanticAttr.Type.IDENTIFIER,
+role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.capitalLatinFullWidth,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.smallLatinBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLD},{set:this.capitalLatinBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLD},
+{set:this.smallLatinItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.capitalLatinItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.smallLatinScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SCRIPT},{set:this.capitalLatinScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,
+font:cvox.SemanticAttr.Font.SCRIPT},{set:this.smallLatinBoldScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLDSCRIPT},{set:this.capitalLatinBoldScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLDSCRIPT},{set:this.smallLatinFraktur,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.FRAKTUR},{set:this.capitalLatinFraktur,
+type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.FRAKTUR},{set:this.smallLatinDoubleStruck,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.capitalLatinDoubleStruck,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.smallLatinBoldFraktur,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,
+font:cvox.SemanticAttr.Font.BOLDFRAKTUR},{set:this.capitalLatinBoldFraktur,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLDFRAKTUR},{set:this.smallLatinSansSerif,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIF},{set:this.capitalLatinSansSerif,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIF},{set:this.smallLatinSansSerifBold,
+type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.capitalLatinSansSerifBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.smallLatinSansSerifItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFITALIC},{set:this.capitalLatinSansSerifItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,
+role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFITALIC},{set:this.smallLatinMonospace,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.MONOSPACE},{set:this.capitalLatinMonospace,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.MONOSPACE},{set:this.latinDoubleStruckItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCKITALIC},
+{set:this.smallGreek,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.capitalGreek,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.smallGreekBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.BOLD},{set:this.capitalGreekBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,
+font:cvox.SemanticAttr.Font.BOLD},{set:this.smallGreekItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.capitalGreekItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.smallGreekSansSerifBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.capitalGreekSansSerifBold,
+type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.greekDoubleStruck,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.hebrewLetters,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.OTHERLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.digitsNormal,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,
+font:cvox.SemanticAttr.Font.NORMAL},{set:this.digitsFullWidth,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.digitsBold,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.BOLD},{set:this.digitsDoubleStruck,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.digitsSansSerif,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,
+font:cvox.SemanticAttr.Font.SANSSERIF},{set:this.digitsSansSerifBold,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.digitsMonospace,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.MONOSPACE},{set:this.numbers,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER},{set:this.additions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.ADDITION},
+{set:this.multiplications,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.MULTIPLICATION},{set:this.subtractions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.SUBTRACTION},{set:this.divisions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.DIVISION},{set:this.prefixOps,type:cvox.SemanticAttr.Type.PREFIXOP,role:cvox.SemanticAttr.Role.PREFIXFUNC},{set:this.equalities,type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.EQUALITY},{set:this.inequalities,
+type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.INEQUALITY},{set:this.relations,type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.UNKNOWN},{set:this.arrows,type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.ARROW},{set:this.sumOps,type:cvox.SemanticAttr.Type.LARGEOP,role:cvox.SemanticAttr.Role.SUM},{set:this.intOps,type:cvox.SemanticAttr.Type.LARGEOP,role:cvox.SemanticAttr.Role.INTEGRAL},{set:this.limitFunctions,type:cvox.SemanticAttr.Type.FUNCTION,role:cvox.SemanticAttr.Role.LIMFUNC},
+{set:this.prefixFunctions,type:cvox.SemanticAttr.Type.FUNCTION,role:cvox.SemanticAttr.Role.PREFIXFUNC},{set:this.infixFunctions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.MULTIPLICATION}]};goog.addSingletonGetter(cvox.SemanticAttr);
+cvox.SemanticAttr.Type={PUNCTUATION:"punctuation",FENCE:"fence",NUMBER:"number",IDENTIFIER:"identifier",TEXT:"text",OPERATOR:"operator",RELATION:"relation",LARGEOP:"largeop",FUNCTION:"function",ACCENT:"accent",FENCED:"fenced",FRACTION:"fraction",PUNCTUATED:"punctuated",RELSEQ:"relseq",MULTIREL:"multirel",INFIXOP:"infixop",PREFIXOP:"prefixop",POSTFIXOP:"postfixop",APPL:"appl",INTEGRAL:"integral",BIGOP:"bigop",SQRT:"sqrt",ROOT:"root",LIMUPPER:"limupper",LIMLOWER:"limlower",LIMBOTH:"limboth",SUBSCRIPT:"subscript",
+SUPERSCRIPT:"superscript",UNDERSCORE:"underscore",OVERSCORE:"overscore",TABLE:"table",MULTILINE:"multiline",MATRIX:"matrix",VECTOR:"vector",CASES:"cases",ROW:"row",LINE:"line",CELL:"cell",UNKNOWN:"unknown",EMPTY:"empty"};
+cvox.SemanticAttr.Role={ELLIPSIS:"ellipsis",FULLSTOP:"fullstop",DASH:"dash",PRIME:"prime",VBAR:"vbar",OPENFENCE:"openfence",CLOSEFENCE:"closefence",APPLICATION:"application",OPEN:"open",CLOSE:"close",TOP:"top",BOTTOM:"bottom",NEUTRAL:"neutral",LATINLETTER:"latinletter",GREEKLETTER:"greekletter",OTHERLETTER:"otherletter",INTEGER:"integer",FLOAT:"float",OTHERNUMBER:"othernumber",MULTIACCENT:"multiaccent",OVERACCENT:"overaccent",UNDERACCENT:"underaccent",LEFTRIGHT:"leftright",ABOVEBELOW:"abovebelow",
+SEQUENCE:"sequence",ENDPUNCT:"endpunct",STARTPUNCT:"startpunct",NEGATIVE:"negative",NEGATION:"negation",MULTIOP:"multiop",LIMFUNC:"limit function",INFIXFUNC:"infix function",PREFIXFUNC:"prefix function",POSTFIXFUNC:"postfix function",SUM:"sum",INTEGRAL:"integral",ADDITION:"addition",MULTIPLICATION:"multiplication",DIVISION:"division",SUBTRACTION:"subtraction",IMPLICIT:"implicit",EQUALITY:"equality",INEQUALITY:"inequality",ELEMENT:"element",BINREL:"binrel",ARROW:"arrow",MULTILINE:"multiline",MATRIX:"matrix",
+VECTOR:"vector",CASES:"cases",TABLE:"table",UNKNOWN:"unknown"};cvox.SemanticAttr.Font={BOLD:"bold",BOLDFRAKTUR:"bold-fraktur",BOLDITALIC:"bold-italic",BOLDSCRIPT:"bold-script",DOUBLESTRUCK:"double-struck",DOUBLESTRUCKITALIC:"double-struck-italic",FRAKTUR:"fraktur",ITALIC:"italic",MONOSPACE:"monospace",NORMAL:"normal",SCRIPT:"script",SANSSERIF:"sans-serif",SANSSERIFITALIC:"sans-serif-italic",SANSSERIFBOLD:"sans-serif-bold",SANSSERIFBOLDITALIC:"sans-serif-bold-italic",UNKNOWN:"unknown"};
+cvox.SemanticAttr.lookupMeaning=function(a){return cvox.SemanticAttr.getInstance().lookupMeaning_(a)};cvox.SemanticAttr.invisibleTimes=function(){return cvox.SemanticAttr.getInstance().invisibleTimes_};cvox.SemanticAttr.invisibleComma=function(){return cvox.SemanticAttr.getInstance().invisibleComma_};cvox.SemanticAttr.functionApplication=function(){return cvox.SemanticAttr.getInstance().functionApplication_};
+cvox.SemanticAttr.isMatchingFenceRole=function(a,b){return a==cvox.SemanticAttr.Role.OPEN&&b==cvox.SemanticAttr.Role.CLOSE||a==cvox.SemanticAttr.Role.NEUTRAL&&b==cvox.SemanticAttr.Role.NEUTRAL||a==cvox.SemanticAttr.Role.TOP&&b==cvox.SemanticAttr.Role.BOTTOM};cvox.SemanticAttr.isMatchingFence=function(a,b){return cvox.SemanticAttr.getInstance().isMatchingFence_(a,b)};cvox.SemanticAttr.isOpeningFence=function(a){return a==cvox.SemanticAttr.Role.OPEN||a==cvox.SemanticAttr.Role.NEUTRAL};
+cvox.SemanticAttr.isClosingFence=function(a){return a==cvox.SemanticAttr.Role.CLOSE||a==cvox.SemanticAttr.Role.NEUTRAL};cvox.SemanticAttr.isCharacterD=function(a){var b="d \u2146 \uff44 \ud835\udc1d \ud835\udc51 \ud835\udcb9 \ud835\udced \ud835\udd21 \ud835\udd55 \ud835\udd89 \ud835\uddbd \ud835\uddf1 \ud835\ude25 \ud835\ude8d".split(" ");return-1!=b.indexOf(a)};
+cvox.SemanticAttr.prototype.isMatchingFence_=function(a,b){return-1!=this.neutralFences.indexOf(a)?a==b:this.openClosePairs[a]==b||this.topBottomPairs[a]==b};
+cvox.SemanticAttr.prototype.lookupMeaning_=function(a){for(var b=0,c;c=this.symbolSetToSemantic_[b];b++)if(-1!=c.set.indexOf(a))return{role:c.role||cvox.SemanticAttr.Role.UNKNOWN,type:c.type||cvox.SemanticAttr.Type.UNKNOWN,font:c.font||cvox.SemanticAttr.Font.UNKNOWN};return{role:cvox.SemanticAttr.Role.UNKNOWN,type:cvox.SemanticAttr.Type.UNKNOWN,font:cvox.SemanticAttr.Font.UNKNOWN}};cvox.SemanticTree=function(a){this.idCounter_=0;this.mathml=a;this.root=this.parseMathml_(a)};cvox.SemanticTree.Node=function(a){this.id=a;this.mathml=[];this.parent=null;this.type=cvox.SemanticAttr.Type.UNKNOWN;this.role=cvox.SemanticAttr.Role.UNKNOWN;this.font=cvox.SemanticAttr.Font.UNKNOWN;this.childNodes=[];this.textContent="";this.contentNodes=[]};
+cvox.SemanticTree.Node.prototype.querySelectorAll=function(a){for(var b=[],c=0,d;d=this.childNodes[c];c++)b=b.concat(d.querySelectorAll(a));a(this)&&b.unshift(this);return b};cvox.SemanticTree.prototype.xml=function(a){var b=new DOMParser,b=b.parseFromString("<stree></stree>","text/xml");a=this.root.xml(b,a);b.childNodes[0].appendChild(a);return b.childNodes[0]};
+cvox.SemanticTree.Node.prototype.xml=function(a,b){var c=function(c,d){for(var g=d.map(function(c){return c.xml(a,b)}),h=a.createElement(c),k=0,l;l=g[k];k++)h.appendChild(l);return h},d=a.createElement(this.type);b||this.xmlAttributes_(d);d.textContent=this.textContent;0<this.contentNodes.length&&d.appendChild(c("content",this.contentNodes));0<this.childNodes.length&&d.appendChild(c("children",this.childNodes));return d};cvox.SemanticTree.prototype.toString=function(a){var b=new XMLSerializer;return b.serializeToString(this.xml(a))};
+cvox.SemanticTree.prototype.formatXml=function(a){a=this.toString(a);return cvox.SemanticTree.formatXml(a)};cvox.SemanticTree.formatXml=function(a){var b=/(>)(<)(\/*)/g;a=a.replace(b,"$1\r\n$2$3");b=/(>)(.+)(<c)/g;a=a.replace(b,"$1\r\n$2\r\n$3");var c="",d="";a.split("\r\n").forEach(function(a){a.match(/.+<\/\w[^>]*>$/)?c+=d+a+"\r\n":a.match(/^<\/\w/)?d&&(d=d.slice(2),c+=d+a+"\r\n"):a.match(/^<\w[^>]*[^\/]>.*$/)?(c+=d+a+"\r\n",d+=" "):c+=d+a+"\r\n"});return c};
+cvox.SemanticTree.Node.prototype.toString=function(a){var b=new XMLSerializer,c=new DOMParser,c=c.parseFromString("","text/xml");return b.serializeToString(this.xml(c,a))};cvox.SemanticTree.Node.prototype.xmlAttributes_=function(a){a.setAttribute("role",this.role);this.font!=cvox.SemanticAttr.Font.UNKNOWN&&a.setAttribute("font",this.font);a.setAttribute("id",this.id)};cvox.SemanticTree.prototype.createNode_=function(){return new cvox.SemanticTree.Node(this.idCounter_++)};
+cvox.SemanticTree.Node.prototype.updateContent_=function(a){a=a.trim();if(this.textContent!=a){var b=cvox.SemanticAttr.lookupMeaning(a);this.textContent=a;this.role=b.role;this.type=b.type;this.font=b.font}};cvox.SemanticTree.Node.prototype.addMathmlNodes_=function(a){for(var b=0,c;c=a[b];b++)-1==this.mathml.indexOf(c)&&this.mathml.push(c)};cvox.SemanticTree.Node.prototype.appendChild_=function(a){this.childNodes.push(a);this.addMathmlNodes_(a.mathml);a.parent=this};
+cvox.SemanticTree.Node.prototype.appendContentNode_=function(a){a&&(this.contentNodes.push(a),this.addMathmlNodes_(a.mathml),a.parent=this)};
+cvox.SemanticTree.prototype.parseMathml_=function(a){var b=cvox.DomUtil.toArray(a.children);switch(cvox.SemanticUtil.tagName(a)){case "MATH":case "MROW":case "MPADDED":case "MSTYLE":return b=cvox.SemanticUtil.purgeNodes(b),1==b.length?this.parseMathml_(b[0]):this.processRow_(this.parseMathmlChildren_(b));case "MFRAC":return a=this.makeBranchNode_(cvox.SemanticAttr.Type.FRACTION,[this.parseMathml_(b[0]),this.parseMathml_(b[1])],[]),a.role=cvox.SemanticAttr.Role.DIVISION,a;case "MSUB":case "MSUP":case "MSUBSUP":case "MOVER":case "MUNDER":case "MUNDEROVER":return this.makeLimitNode_(cvox.SemanticUtil.tagName(a),
+this.parseMathmlChildren_(b));case "MROOT":return this.makeBranchNode_(cvox.SemanticAttr.Type.ROOT,[this.parseMathml_(b[0]),this.parseMathml_(b[1])],[]);case "MSQRT":return b=this.parseMathmlChildren_(cvox.SemanticUtil.purgeNodes(b)),this.makeBranchNode_(cvox.SemanticAttr.Type.SQRT,[this.processRow_(b)],[]);case "MTABLE":return a=this.makeBranchNode_(cvox.SemanticAttr.Type.TABLE,this.parseMathmlChildren_(b),[]),cvox.SemanticTree.tableIsMultiline_(a)&&this.tableToMultiline_(a),a;case "MTR":return a=
+this.makeBranchNode_(cvox.SemanticAttr.Type.ROW,this.parseMathmlChildren_(b),[]),a.role=cvox.SemanticAttr.Role.TABLE,a;case "MTD":return b=this.parseMathmlChildren_(cvox.SemanticUtil.purgeNodes(b)),a=this.makeBranchNode_(cvox.SemanticAttr.Type.CELL,[this.processRow_(b)],[]),a.role=cvox.SemanticAttr.Role.TABLE,a;case "MTEXT":return a=this.makeLeafNode_(a),a.type=cvox.SemanticAttr.Type.TEXT,a;case "MI":return a=this.makeLeafNode_(a),a.type==cvox.SemanticAttr.Type.UNKNOWN&&(a.type=cvox.SemanticAttr.Type.IDENTIFIER),
+a;case "MN":return a=this.makeLeafNode_(a),a.type==cvox.SemanticAttr.Type.UNKNOWN&&(a.type=cvox.SemanticAttr.Type.NUMBER),a;case "MO":return a=this.makeLeafNode_(a),a.type==cvox.SemanticAttr.Type.UNKNOWN&&(a.type=cvox.SemanticAttr.Type.OPERATOR),a;default:return this.makeUnprocessed_(a)}};cvox.SemanticTree.prototype.parseMathmlChildren_=function(a){for(var b=[],c=0,d;d=a[c];c++)b.push(this.parseMathml_(d));return b};
+cvox.SemanticTree.prototype.makeUnprocessed_=function(a){var b=this.createNode_();b.mathml=[a];return b};cvox.SemanticTree.prototype.makeEmptyNode_=function(){var a=this.createNode_();a.type=cvox.SemanticAttr.Type.EMPTY;return a};cvox.SemanticTree.prototype.makeLeafNode_=function(a){var b=this.createNode_();b.mathml=[a];b.updateContent_(a.textContent);b.font=a.getAttribute("mathvariant")||b.font;return b};
+cvox.SemanticTree.prototype.makeBranchNode_=function(a,b,c,d){var e=this.createNode_();d&&e.updateContent_(d);e.type=a;e.childNodes=b;e.contentNodes=c;b.concat(c).forEach(function(a){a.parent=e;e.addMathmlNodes_(a.mathml)});return e};cvox.SemanticTree.prototype.makeImplicitNode_=function(a){if(1==a.length)return a[0];var b=this.createNode_();b.updateContent_(cvox.SemanticAttr.invisibleTimes());a=this.makeInfixNode_(a,b);a.role=cvox.SemanticAttr.Role.IMPLICIT;return a};
+cvox.SemanticTree.prototype.makeInfixNode_=function(a,b){return this.makeBranchNode_(cvox.SemanticAttr.Type.INFIXOP,a,[b],b.textContent)};cvox.SemanticTree.prototype.makeConcatNode_=function(a,b,c){if(0==b.length)return a;var d=b.map(function(a){return a.textContent}).join(" ");a=this.makeBranchNode_(c,[a],b,d);0<b.length&&(a.role=cvox.SemanticAttr.Role.MULTIOP);return a};
+cvox.SemanticTree.prototype.makePrefixNode_=function(a,b){for(var c=cvox.SemanticTree.partitionNodes_(b,cvox.SemanticTree.attrPred_("role","SUBTRACTION")),d=this.makeConcatNode_(a,c.comp.pop(),cvox.SemanticAttr.Type.PREFIXOP);0<c.rel.length;)d=this.makeConcatNode_(d,[c.rel.pop()],cvox.SemanticAttr.Type.PREFIXOP),d.role=cvox.SemanticAttr.Role.NEGATIVE,d=this.makeConcatNode_(d,c.comp.pop(),cvox.SemanticAttr.Type.PREFIXOP);return d};
+cvox.SemanticTree.prototype.makePostfixNode_=function(a,b){return this.makeConcatNode_(a,b,cvox.SemanticAttr.Type.POSTFIXOP)};cvox.SemanticTree.prototype.processRow_=function(a){if(0==a.length)return this.makeEmptyNode_();a=this.getFencesInRow_(a);a=this.processTablesInRow_(a);a=this.getPunctuationInRow_(a);a=this.getFunctionsInRow_(a);return this.processRelationsInRow_(a)};
+cvox.SemanticTree.prototype.processRelationsInRow_=function(a){var b=cvox.SemanticTree.partitionNodes_(a,cvox.SemanticTree.attrPred_("type","RELATION")),c=b.rel[0];if(!c)return this.processOperationsInRow_(a);if(1==a.length)return a[0];a=b.comp.map(goog.bind(this.processOperationsInRow_,this));return b.rel.every(function(a){return a.textContent==c.textContent})?this.makeBranchNode_(cvox.SemanticAttr.Type.RELSEQ,a,b.rel,c.textContent):this.makeBranchNode_(cvox.SemanticAttr.Type.MULTIREL,a,b.rel)};
+cvox.SemanticTree.prototype.processOperationsInRow_=function(a){if(0==a.length)return this.makeEmptyNode_();if(1==a.length)return a[0];for(var b=[];0<a.length&&a[0].type==cvox.SemanticAttr.Type.OPERATOR;)b.push(a.shift());if(0==a.length)return this.makePrefixNode_(b.pop(),b);if(1==a.length)return this.makePrefixNode_(a[0],b);a=cvox.SemanticTree.sliceNodes_(a,cvox.SemanticTree.attrPred_("type","OPERATOR"));b=this.makePrefixNode_(this.makeImplicitNode_(a.head),b);return a.div?this.makeOperationsTree_(a.tail,
+b,a.div):b};
+cvox.SemanticTree.prototype.makeOperationsTree_=function(a,b,c,d){d=d||[];if(0==a.length)return d.unshift(c),b.type==cvox.SemanticAttr.Type.INFIXOP?(d=this.makePostfixNode_(b.childNodes.pop(),d),b.appendChild_(d),b):this.makePostfixNode_(b,d);a=cvox.SemanticTree.sliceNodes_(a,cvox.SemanticTree.attrPred_("type","OPERATOR"));if(0==a.head.length)return d.push(a.div),this.makeOperationsTree_(a.tail,b,c,d);d=this.makePrefixNode_(this.makeImplicitNode_(a.head),d);b=this.appendOperand_(b,c,d);return a.div?
+this.makeOperationsTree_(a.tail,b,a.div,[]):b};cvox.SemanticTree.prototype.appendOperand_=function(a,b,c){return a.type!=cvox.SemanticAttr.Type.INFIXOP?this.makeInfixNode_([a,c],b):this.appendExistingOperator_(a,b,c)?a:b.role==cvox.SemanticAttr.Role.MULTIPLICATION?this.appendMultiplicativeOp_(a,b,c):this.appendAdditiveOp_(a,b,c)};
+cvox.SemanticTree.prototype.appendMultiplicativeOp_=function(a,b,c){for(var d=a,e=a.childNodes[a.childNodes.length-1];e&&e.type==cvox.SemanticAttr.Type.INFIXOP;)d=e,e=d.childNodes[a.childNodes.length-1];b=this.makeInfixNode_([d.childNodes.pop(),c],b);d.appendChild_(b);return a};cvox.SemanticTree.prototype.appendAdditiveOp_=function(a,b,c){return this.makeInfixNode_([a,c],b)};
+cvox.SemanticTree.prototype.appendExistingOperator_=function(a,b,c){if(!a||a.type!=cvox.SemanticAttr.Type.INFIXOP)return!1;if(a.textContent==b.textContent)return a.appendContentNode_(b),a.appendChild_(c),!0;this.appendExistingOperator_(a.childNodes[a.childNodes.length-1],b,c)};cvox.SemanticTree.prototype.getFencesInRow_=function(a){a=cvox.SemanticTree.partitionNodes_(a,cvox.SemanticTree.attrPred_("type","FENCE"));var b=a.comp.shift();return this.processFences_(a.rel,a.comp,[],[b])};
+cvox.SemanticTree.prototype.processFences_=function(a,b,c,d){if(0==a.length&&0==c.length)return d[0];var e=cvox.SemanticTree.attrPred_("role","OPEN");if(0==a.length){for(a=d.shift();0<c.length;){if(e(c[0]))b=c.shift(),cvox.SemanticTree.fenceToPunct_(b),a.push(b);else{c=cvox.SemanticTree.sliceNodes_(c,e);var f=c.head.length-1,g=this.processNeutralFences_(c.head,d.slice(0,f));d=d.slice(f);a.push.apply(a,g);c.div&&c.tail.unshift(c.div);c=c.tail}a.push.apply(a,d.shift())}return a}f=c[c.length-1];g=a[0].role;
+if(g==cvox.SemanticAttr.Role.OPEN||g==cvox.SemanticAttr.Role.NEUTRAL&&(!f||a[0].textContent!=f.textContent))return c.push(a.shift()),d.push(b.shift()),this.processFences_(a,b,c,d);if(f&&(g==cvox.SemanticAttr.Role.CLOSE&&f.role==cvox.SemanticAttr.Role.OPEN||g==cvox.SemanticAttr.Role.NEUTRAL&&a[0].textContent==f.textContent))return e=this.makeHorizontalFencedNode_(c.pop(),a.shift(),d.pop()),d.push(d.pop().concat([e],b.shift())),this.processFences_(a,b,c,d);if(f&&g==cvox.SemanticAttr.Role.CLOSE&&f.role==
+cvox.SemanticAttr.Role.NEUTRAL&&c.some(e))return c=cvox.SemanticTree.sliceNodes_(c,e,!0),e=d.pop(),f=d.length-c.tail.length+1,g=this.processNeutralFences_(c.tail,d.slice(f)),d=d.slice(0,f),e=this.makeHorizontalFencedNode_(c.div,a.shift(),d.pop().concat(g,e)),d.push(d.pop().concat([e],b.shift())),this.processFences_(a,b,c.head,d);e=a.shift();cvox.SemanticTree.fenceToPunct_(e);d.push(d.pop().concat([e],b.shift()));return this.processFences_(a,b,c,d)};
+cvox.SemanticTree.prototype.processNeutralFences_=function(a,b){if(0==a.length)return a;if(1==a.length)return cvox.SemanticTree.fenceToPunct_(a[0]),a;var c=a.shift(),d=cvox.SemanticTree.sliceNodes_(a,function(a){return a.textContent==c.textContent});if(!d.div){cvox.SemanticTree.fenceToPunct_(c);var e=b.shift();e.unshift(c);return e.concat(this.processNeutralFences_(a,b))}var f=this.combineFencedContent_(c,d.div,d.head,b);return 0<d.tail.length?(e=f.shift(),d=this.processNeutralFences_(d.tail,f),e.concat(d)):
+f[0]};cvox.SemanticTree.prototype.combineFencedContent_=function(a,b,c,d){if(0==c.length)return a=this.makeHorizontalFencedNode_(a,b,d.shift()),d.unshift(a),d;var e=d.shift(),f=c.length-1,g=d.slice(0,f);d=d.slice(f);f=d.shift();c=this.processNeutralFences_(c,g);e.push.apply(e,c);e.push.apply(e,f);a=this.makeHorizontalFencedNode_(a,b,e);0<d.length?d[0].unshift(a):d=[[a]];return d};
+cvox.SemanticTree.fenceToPunct_=function(a){a.type=cvox.SemanticAttr.Type.PUNCTUATION;switch(a.role){case cvox.SemanticAttr.Role.NEUTRAL:a.role=cvox.SemanticAttr.Role.VBAR;break;case cvox.SemanticAttr.Role.OPEN:a.role=cvox.SemanticAttr.Role.OPENFENCE;break;case cvox.SemanticAttr.Role.CLOSE:a.role=cvox.SemanticAttr.Role.CLOSEFENCE}};
+cvox.SemanticTree.prototype.makeHorizontalFencedNode_=function(a,b,c){c=this.processRow_(c);b=this.makeBranchNode_(cvox.SemanticAttr.Type.FENCED,[c],[a,b]);b.role=a.role==cvox.SemanticAttr.Role.OPEN?cvox.SemanticAttr.Role.LEFTRIGHT:a.role;return b};
+cvox.SemanticTree.prototype.getPunctuationInRow_=function(a){var b=cvox.SemanticTree.partitionNodes_(a,function(a){return cvox.SemanticTree.attrPred_("type","PUNCTUATION")(a)&&!cvox.SemanticTree.attrPred_("role","ELLIPSIS")(a)});if(0==b.rel.length)return a;a=[];var c=b.comp.shift();0<c.length&&a.push(this.processRow_(c));for(var d=0;0<b.comp.length;)a.push(b.rel[d++]),c=b.comp.shift(),0<c.length&&a.push(this.processRow_(c));return[this.makePunctuatedNode_(a,b.rel)]};
+cvox.SemanticTree.prototype.makePunctuatedNode_=function(a,b){var c=this.makeBranchNode_(cvox.SemanticAttr.Type.PUNCTUATED,a,b);c.role=1==b.length&&a[0].type==cvox.SemanticAttr.Type.PUNCTUATION?cvox.SemanticAttr.Role.STARTPUNCT:1==b.length&&a[a.length-1].type==cvox.SemanticAttr.Type.PUNCTUATION?cvox.SemanticAttr.Role.ENDPUNCT:cvox.SemanticAttr.Role.SEQUENCE;return c};
+cvox.SemanticTree.prototype.makeLimitNode_=function(a,b){var c=b[0],d=cvox.SemanticTree.attrPred_("type","FUNCTION")(c),d=cvox.SemanticTree.attrPred_("type","LARGEOP")(c)||cvox.SemanticTree.attrPred_("type","LIMBOTH")(c)||cvox.SemanticTree.attrPred_("type","LIMLOWER")(c)||cvox.SemanticTree.attrPred_("type","LIMUPPER")(c)||d&&cvox.SemanticTree.attrPred_("role","LIMFUNC")(c),e=cvox.SemanticAttr.Type.UNKNOWN;if(d)switch(a){case "MSUB":case "MUNDER":e=cvox.SemanticAttr.Type.LIMLOWER;break;case "MSUP":case "MOVER":e=
+cvox.SemanticAttr.Type.LIMUPPER;break;case "MSUBSUP":case "MUNDEROVER":e=cvox.SemanticAttr.Type.LIMBOTH}else switch(a){case "MSUB":e=cvox.SemanticAttr.Type.SUBSCRIPT;break;case "MSUP":e=cvox.SemanticAttr.Type.SUPERSCRIPT;break;case "MSUBSUP":d=this.makeBranchNode_(cvox.SemanticAttr.Type.SUBSCRIPT,[c,b[1]],[]);d.role=c.role;b=[d,b[2]];e=cvox.SemanticAttr.Type.SUPERSCRIPT;break;case "MOVER":e=cvox.SemanticAttr.Type.OVERSCORE;break;case "MUNDER":e=cvox.SemanticAttr.Type.UNDERSCORE;break;default:d=this.makeBranchNode_(cvox.SemanticAttr.Type.UNDERSCORE,
+[c,b[1]],[]),d.role=c.role,b=[d,b[2]],e=cvox.SemanticAttr.Type.OVERSCORE}d=this.makeBranchNode_(e,b,[]);d.role=c.role;return d};cvox.SemanticTree.prototype.getFunctionsInRow_=function(a,b){b=b||[];if(0==a.length)return b;var c=a.shift(),d=cvox.SemanticTree.classifyFunction_(c,a);if(!d)return b.push(c),this.getFunctionsInRow_(a,b);var e=this.getFunctionsInRow_(a,[]),c=this.getFunctionArgs_(c,e,d);return b.concat(c)};
+cvox.SemanticTree.classifyFunction_=function(a,b){if(a.type==cvox.SemanticAttr.Type.APPL||a.type==cvox.SemanticAttr.Type.BIGOP||a.type==cvox.SemanticAttr.Type.INTEGRAL)return"";if(b[0]&&b[0].textContent==cvox.SemanticAttr.functionApplication())return b.shift(),cvox.SemanticTree.propagatePrefixFunc_(a),"prefix";switch(a.role){case cvox.SemanticAttr.Role.INTEGRAL:return"integral";case cvox.SemanticAttr.Role.SUM:return"bigop";case cvox.SemanticAttr.Role.PREFIXFUNC:case cvox.SemanticAttr.Role.LIMFUNC:return"prefix";
+default:if(a.type==cvox.SemanticAttr.Type.IDENTIFIER)return"simple"}return""};cvox.SemanticTree.propagatePrefixFunc_=function(a){a&&(a.role=cvox.SemanticAttr.Role.PREFIXFUNC,cvox.SemanticTree.propagatePrefixFunc_(a.childNodes[0]))};
+cvox.SemanticTree.prototype.getFunctionArgs_=function(a,b,c){switch(c){case "integral":return b=this.getIntegralArgs_(b),c=this.processRow_(b.integrand),a=this.makeIntegralNode_(a,c,b.intvar),b.rest.unshift(a),b.rest;case "prefix":if(b[0]&&b[0].type==cvox.SemanticAttr.Type.FENCED)return a=this.makeFunctionNode_(a,b.shift()),b.unshift(a),b;case "bigop":b=cvox.SemanticTree.sliceNodes_(b,cvox.SemanticTree.prefixFunctionBoundary_);var d=this.processRow_(b.head);a="prefix"==c?this.makeFunctionNode_(a,
+d):this.makeBigOpNode_(a,d);b.div&&b.tail.unshift(b.div);b.tail.unshift(a);return b.tail;case "simple":if(0==b.length)return[a];c=b[0];if(c.type==cvox.SemanticAttr.Type.FENCED&&c.role!=cvox.SemanticAttr.Role.NEUTRAL&&this.simpleFunctionHeuristic_(c))return a=this.makeFunctionNode_(a,b.shift()),b.unshift(a),b;b.unshift(a);return b}};
+cvox.SemanticTree.prototype.getIntegralArgs_=function(a,b){b=b||[];if(0==a.length)return{integrand:b,intvar:null,rest:a};var c=a[0];if(cvox.SemanticTree.generalFunctionBoundary_(c))return{integrand:b,intvar:null,rest:a};if(cvox.SemanticTree.integralDxBoundarySingle_(c))return{integrand:b,intvar:c,rest:a.slice(1)};if(a[1]&&cvox.SemanticTree.integralDxBoundary_(c,a[1])){var d=this.createNode_();d.updateContent_(cvox.SemanticAttr.invisibleComma());c=this.makePunctuatedNode_([c,d,a[1]],[d]);c.role=cvox.SemanticAttr.Role.INTEGRAL;
+return{integrand:b,intvar:c,rest:a.slice(2)}}b.push(a.shift());return this.getIntegralArgs_(a,b)};cvox.SemanticTree.prototype.makeFunctionNode_=function(a,b){var c=this.createNode_();c.updateContent_(cvox.SemanticAttr.functionApplication());c.type=cvox.SemanticAttr.Type.PUNCTUATION;c.role=cvox.SemanticAttr.Role.APPLICATION;c=this.makeBranchNode_(cvox.SemanticAttr.Type.APPL,[a,b],[c]);c.role=a.role;return c};
+cvox.SemanticTree.prototype.makeBigOpNode_=function(a,b){var c=this.makeBranchNode_(cvox.SemanticAttr.Type.BIGOP,[a,b],[]);c.role=a.role;return c};cvox.SemanticTree.prototype.makeIntegralNode_=function(a,b,c){b=b||this.makeEmptyNode_();c=c||this.makeEmptyNode_();b=this.makeBranchNode_(cvox.SemanticAttr.Type.INTEGRAL,[a,b,c],[]);b.role=a.role;return b};
+cvox.SemanticTree.prototype.simpleFunctionHeuristic_=function(a){a=a.childNodes;if(0==a.length)return!0;if(1<a.length)return!1;a=a[0];return a.type!=cvox.SemanticAttr.Type.INFIXOP||a.role==cvox.SemanticAttr.Role.IMPLICIT&&!a.childNodes.some(cvox.SemanticTree.attrPred_("type","INFIXOP"))?!0:!1};cvox.SemanticTree.prefixFunctionBoundary_=function(a){return cvox.SemanticTree.attrPred_("type","OPERATOR")(a)||cvox.SemanticTree.generalFunctionBoundary_(a)};
+cvox.SemanticTree.integralDxBoundary_=function(a,b){return!!b&&cvox.SemanticTree.attrPred_("type","IDENTIFIER")(b)&&cvox.SemanticAttr.isCharacterD(a.textContent)};cvox.SemanticTree.integralDxBoundarySingle_=function(a){if(cvox.SemanticTree.attrPred_("type","IDENTIFIER")(a)){var b=a.textContent[0];return b&&a.textContent[1]&&cvox.SemanticAttr.isCharacterD(b)}return!1};
+cvox.SemanticTree.generalFunctionBoundary_=function(a){return cvox.SemanticTree.attrPred_("type","RELATION")(a)||cvox.SemanticTree.attrPred_("type","PUNCTUATION")(a)};
+cvox.SemanticTree.prototype.processTablesInRow_=function(a){a=cvox.SemanticTree.partitionNodes_(a,cvox.SemanticTree.tableIsMatrixOrVector_);for(var b=[],c=0,d;d=a.rel[c];c++)b=b.concat(a.comp.shift()),b.push(this.tableToMatrixOrVector_(d));b=b.concat(a.comp.shift());a=cvox.SemanticTree.partitionNodes_(b,cvox.SemanticTree.isTableOrMultiline_);b=[];for(c=0;d=a.rel[c];c++){var e=a.comp.shift();cvox.SemanticTree.tableIsCases_(d,e)&&this.tableToCases_(d,e.pop());b=b.concat(e);b.push(d)}return b.concat(a.comp.shift())};
+cvox.SemanticTree.isTableOrMultiline_=function(a){return!!a&&(cvox.SemanticTree.attrPred_("type","TABLE")(a)||cvox.SemanticTree.attrPred_("type","MULTILINE")(a))};cvox.SemanticTree.tableIsMatrixOrVector_=function(a){return!!a&&cvox.SemanticTree.attrPred_("type","FENCED")(a)&&cvox.SemanticTree.attrPred_("role","LEFTRIGHT")(a)&&1==a.childNodes.length&&cvox.SemanticTree.isTableOrMultiline_(a.childNodes[0])};
+cvox.SemanticTree.prototype.tableToMatrixOrVector_=function(a){var b=a.childNodes[0],c=cvox.SemanticTree.attrPred_("type","MULTILINE")(b)?"VECTOR":"MATRIX";b.type=cvox.SemanticAttr.Type[c];a.contentNodes.forEach(goog.bind(b.appendContentNode_,b));a=0;for(var d;d=b.childNodes[a];a++)cvox.SemanticTree.assignRoleToRow_(d,cvox.SemanticAttr.Role[c]);return b};cvox.SemanticTree.tableIsCases_=function(a,b){return 0<b.length&&cvox.SemanticTree.attrPred_("role","OPENFENCE")(b[b.length-1])};
+cvox.SemanticTree.prototype.tableToCases_=function(a,b){for(var c=0,d;d=a.childNodes[c];c++)cvox.SemanticTree.assignRoleToRow_(d,cvox.SemanticAttr.Role.CASES);a.type=cvox.SemanticAttr.Type.CASES;a.appendContentNode_(b);return a};cvox.SemanticTree.tableIsMultiline_=function(a){return a.childNodes.every(function(a){a=a.childNodes.length;return 1>=a})};
+cvox.SemanticTree.prototype.tableToMultiline_=function(a){a.type=cvox.SemanticAttr.Type.MULTILINE;for(var b=0,c;c=a.childNodes[b];b++)cvox.SemanticTree.rowToLine_(c,cvox.SemanticAttr.Role.MULTILINE)};cvox.SemanticTree.rowToLine_=function(a,b){b=b||cvox.SemanticAttr.Role.UNKNOWN;cvox.SemanticTree.attrPred_("type","ROW")(a)&&1==a.childNodes.length&&cvox.SemanticTree.attrPred_("type","CELL")(a.childNodes[0])&&(a.type=cvox.SemanticAttr.Type.LINE,a.role=b,a.childNodes=a.childNodes[0].childNodes)};
+cvox.SemanticTree.assignRoleToRow_=function(a,b){if(cvox.SemanticTree.attrPred_("type","LINE")(a))a.role=b;else if(cvox.SemanticTree.attrPred_("type","ROW")(a)){a.role=b;var c=cvox.SemanticTree.attrPred_("type","CELL");a.childNodes.forEach(function(a){c(a)&&(a.role=b)})}};
+cvox.SemanticTree.sliceNodes_=function(a,b,c){c&&a.reverse();for(var d=[],e=0,f;f=a[e];e++){if(b(f))return c?{head:a.slice(e+1).reverse(),div:f,tail:d.reverse()}:{head:d,div:f,tail:a.slice(e+1)};d.push(f)}return c?{head:[],div:null,tail:d.reverse()}:{head:d,div:null,tail:[]}};cvox.SemanticTree.partitionNodes_=function(a,b){var c=a,d=[],e=[];do{var f=cvox.SemanticTree.sliceNodes_(c,b);e.push(f.head);d.push(f.div);c=f.tail}while(f.div);d.pop();return{rel:d,comp:e}};
+cvox.SemanticTree.attrPred_=function(a,b){return function(c){var d;o:{switch(a){case "type":d=cvox.SemanticAttr.Type[b];break o;case "role":d=cvox.SemanticAttr.Role[b];break o;case "font":d=cvox.SemanticAttr.Font[b];break o}d=void 0}return c[a]==d}};cvox.TraverseMath=function(){this.activeNode=this.activeMath=null;this.allTexs_={};this.allMathjaxs_={};this.activeMathmlHost=null;this.domain="default";this.style="short";cvox.ChromeVox.mathJax&&(this.initializeMathjaxs(),this.initializeAltMaths())};goog.addSingletonGetter(cvox.TraverseMath);cvox.TraverseMath.setSemantic_=!1;cvox.TraverseMath.toggleSemantic=function(){return cvox.TraverseMath.setSemantic_=!cvox.TraverseMath.setSemantic_};
+cvox.TraverseMath.prototype.initialize=function(a){if(cvox.DomUtil.isMathImg(a)){if(!a.hasAttribute("cvoxid"))return;a=a.getAttribute("cvoxid");a=this.allTexs_[a]}cvox.DomUtil.isMathJax(a)&&(this.activeMathmlHost=this.allMathjaxs_[a.getAttribute("id")]);this.activeMath=this.activeMathmlHost||a;(this.activeNode=this.activeMathmlHost||a)&&cvox.TraverseMath.setSemantic_&&this.activeNode.nodeType==Node.ELEMENT_NODE&&(this.activeNode=(new cvox.SemanticTree(this.activeNode)).xml())};
+cvox.TraverseMath.prototype.addMathjax=function(a,b){var c=cvox.DomUtil.getMathSpanId(b);c?this.allMathjaxs_[c]=a:this.redoMathjaxs(a,b)};cvox.TraverseMath.prototype.redoMathjaxs=function(a,b){var c=goog.bind(function(){this.addMathjax(a,b)},this);setTimeout(c,500)};
+cvox.TraverseMath.prototype.initializeMathjaxs=function(){var a=goog.bind(function(a,c){this.addMathjax(a,c)},this);cvox.ChromeVox.mathJax.isMathjaxActive(function(b){b&&(cvox.ChromeVox.mathJax.getAllJax(a),cvox.ChromeVox.mathJax.registerSignal(a,"New Math"))})};
+cvox.TraverseMath.prototype.initializeAltMaths=function(){if(document.querySelector(cvox.DomUtil.altMathQuerySelector("tex")+", "+cvox.DomUtil.altMathQuerySelector("asciimath"))){var a=goog.bind(function(a,c){this.allTexs_[c]=a},this);cvox.ChromeVox.mathJax.injectScripts();cvox.ChromeVox.mathJax.isMathjaxActive(function(b){b&&(cvox.ChromeVox.mathJax.configMediaWiki(),cvox.ChromeVox.mathJax.getAllTexs(a),cvox.ChromeVox.mathJax.getAllAsciiMaths(a))})}};
+cvox.TraverseMath.prototype.nextSibling=function(a){if(!this.activeNode||!this.activeMath)return null;var b=this.activeNode,b=a?b.previousSibling:b.nextSibling;return b?this.activeNode=b:null};cvox.TraverseMath.prototype.nextParentChild=function(a){if(!this.activeNode||!this.activeMath||this.activeNode==this.activeMath&&a)return null;var b=this.activeNode,b=a?b.parentNode:b.firstChild;return b?this.activeNode=b:null};
+cvox.TraverseMath.prototype.getAttachedActiveNode=function(){var a=this.activeNode;if(!a||a.nodeType!=Node.ELEMENT_NODE)return null;a=a.getAttribute("spanID");return document.getElementById(a)};cvox.MathUtil={};cvox.MathUtil.isMathmlNodeOfClass_=function(a,b){return-1!=b.indexOf(a.tagName.toUpperCase())};cvox.MathUtil.isMathjaxNodeOfClass_=function(a,b){if("SPAN"==a.tagName){var c=a.className.split(" ");return c.some(function(a){return-1!=b.indexOf(a.toUpperCase())})}return!1};cvox.MathUtil.isMathNodeOfClass_=function(a,b){return a.nodeType==Node.ELEMENT_NODE&&(cvox.MathUtil.isMathmlNodeOfClass_(a,b)||cvox.MathUtil.isMathjaxNodeOfClass_(a,b))};cvox.MathUtil.TOKEN_LIST="MI MN MO MTEXT MSPACE MS".split(" ");
+cvox.MathUtil.isToken=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.TOKEN_LIST)};cvox.MathUtil.LAYOUT_LIST="MROW MFRAC MSQRT MROOT MSTYLE MERROR MPADDED MPHANTOM MFENCED MENCLOSE".split(" ");cvox.MathUtil.isLayout=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.LAYOUT_LIST)};cvox.MathUtil.SCRIPT_LIST="MSUB MSUP MSUBSUP MUNDER MOVER MUNDEROVER MMULTISCRIPTS MPRESCRIPTS".split(" ");
+cvox.MathUtil.isScript=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.SCRIPT_LIST)};cvox.MathUtil.TABLES_LIST="MTABLE MLABELEDTR MTR MTD MALIGNGROUP MALIGNMARK".split(" ");cvox.MathUtil.isTables=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.TABLES_LIST)};cvox.MathUtil.ELEMENTARY_LIST="MSTACK MLONGDIV MSGROUP MSROW MSCARRIES MSCARRY MSLINE".split(" ");cvox.MathUtil.isElementary=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.ELEMENTARY_LIST)};
+cvox.MathUtil.MATHML_TAG_LIST=[cvox.MathUtil.TOKEN_LIST,cvox.MathUtil.LAYOUT_LIST,cvox.MathUtil.SCRIPT_LIST,cvox.MathUtil.TABLES_LIST,cvox.MathUtil.ELEMENTARY_LIST].reduce(function(a,b){return a.concat(b)});cvox.MathUtil.isMathmlTag=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.MATHML_TAG_LIST)};cvox.MathUtil.WHITESPACE_LIST=["MSROW","MROW","MSPACE","MPHANTOM","MPADDED"];cvox.MathUtil.isWhitespace=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.WHITESPACE_LIST)};
+cvox.MathUtil.isNotWhitespace=function(a){return cvox.MathUtil.isMathmlTag(a)&&!cvox.MathUtil.isWhitespace(a)};cvox.MathUtil.union=function(a,b){return a.concat(b.filter(function(b){return 0>a.indexOf(b)}))};cvox.SpeechRule=function(a,b,c,d){this.name=a;this.dynamicCstr=b;this.precondition=c;this.action=d};cvox.SpeechRule.prototype.toString=function(){var a=[],b;for(b in this.dynamicCstr)a.push(this.dynamicCstr[b]);return this.name+" | "+a.join(".")+" | "+this.precondition.toString()+" ==> "+this.action.toString()};cvox.SpeechRule.Type={NODE:"NODE",MULTI:"MULTI",TEXT:"TEXT",PERSONALITY:"PERSONALITY"};
+cvox.SpeechRule.Type.fromString=function(a){switch(a){case "[n]":return cvox.SpeechRule.Type.NODE;case "[m]":return cvox.SpeechRule.Type.MULTI;case "[t]":return cvox.SpeechRule.Type.TEXT;case "[p]":return cvox.SpeechRule.Type.PERSONALITY;default:throw"Parse error: "+a;}};
+cvox.SpeechRule.Type.toString=function(a){switch(a){case cvox.SpeechRule.Type.NODE:return"[n]";case cvox.SpeechRule.Type.MULTI:return"[m]";case cvox.SpeechRule.Type.TEXT:return"[t]";case cvox.SpeechRule.Type.PERSONALITY:return"[p]";default:throw"Unknown type error: "+a;}};cvox.SpeechRule.Component=function(a){this.type=a.type;this.content=a.content};
+cvox.SpeechRule.Component.fromString=function(a){var b={};b.type=cvox.SpeechRule.Type.fromString(a.substring(0,3));a=a.slice(3).trimLeft();if(!a)throw new cvox.SpeechRule.OutputError("Missing content.");switch(b.type){case cvox.SpeechRule.Type.TEXT:if('"'==a[0]){var c=cvox.SpeechRule.splitString_(a,"\\(")[0].trim();if('"'!=c.slice(-1))throw new cvox.SpeechRule.OutputError("Invalid string syntax.");b.content=c;a=a.slice(c.length).trim();-1==a.indexOf("(")&&(a="");break}case cvox.SpeechRule.Type.NODE:case cvox.SpeechRule.Type.MULTI:c=
+a.indexOf(" (");if(-1==c){b.content=a.trim();a="";break}b.content=a.substring(0,c).trim();a=a.slice(c).trimLeft()}b=new cvox.SpeechRule.Component(b);a&&b.addAttributes(a);return b};cvox.SpeechRule.Component.prototype.toString=function(){var a="",a=a+cvox.SpeechRule.Type.toString(this.type),a=a+(this.content?" "+this.content:""),b=this.getAttributes();0<b.length&&(a+=" ("+b.join(", ")+")");return a};
+cvox.SpeechRule.Component.prototype.addAttribute=function(a){var b=a.indexOf(":");-1==b?this[a.trim()]="true":this[a.substring(0,b).trim()]=a.slice(b+1).trim()};cvox.SpeechRule.Component.prototype.addAttributes=function(a){if("("!=a[0]||")"!=a.slice(-1))throw new cvox.SpeechRule.OutputError("Invalid attribute expression: "+a);a=cvox.SpeechRule.splitString_(a.slice(1,-1),",");for(var b=0;b<a.length;b++)this.addAttribute(a[b])};
+cvox.SpeechRule.Component.prototype.getAttributes=function(){var a=[],b;for(b in this)"content"!=b&&"type"!=b&&"function"!=typeof this[b]&&a.push(b+":"+this[b]);return a};cvox.SpeechRule.Action=function(a){this.components=a};cvox.SpeechRule.Action.fromString=function(a){a=cvox.SpeechRule.splitString_(a,";").filter(function(a){return a.match(/\S/)}).map(function(a){return a.trim()});for(var b=[],c=0;c<a.length;c++){var d=cvox.SpeechRule.Component.fromString(a[c]);d&&b.push(d)}return new cvox.SpeechRule.Action(b)};
+cvox.SpeechRule.Action.prototype.toString=function(){var a=this.components.map(function(a){return a.toString()});return a.join("; ")};cvox.SpeechRule.Precondition=function(a,b){this.query=a;this.constraints=b||[]};cvox.SpeechRule.Precondition.prototype.toString=function(){var a=this.constraints.join(", ");return this.query+", "+a};
+cvox.SpeechRule.splitString_=function(a,b){for(var c=[],d="";""!=a;){var e=a.search(b);if(-1==e){if(0!=(a.match(/"/g)||[]).length%2)throw new cvox.SpeechRule.OutputError("Invalid string in expression: "+a);c.push(d+a);a=d=""}else if(0==(a.substring(0,e).match(/"/g)||[]).length%2)c.push(d+a.substring(0,e)),d="",a=a.substring(e+1);else{var f=a.substring(e).search('"');if(-1==f)throw new cvox.SpeechRule.OutputError("Invalid string in expression: "+a);d+=a.substring(0,e+f+1);a=a.substring(e+f+1)}}d&&
+c.push(d);return c};cvox.SpeechRule.DynamicCstrAttrib={STYLE:"style"};cvox.SpeechRule.OutputError=function(a){this.name="RuleError";this.message=a||""};goog.inherits(cvox.SpeechRule.OutputError,Error);cvox.SpeechRuleFunctions=function(){};cvox.SpeechRuleFunctions.Store_=function(a,b){this.prefix_=a;this.store_=b};cvox.SpeechRuleFunctions.Store_.prototype.add=function(a,b){this.checkCustomFunctionSyntax_(a)&&(this.store_[a]=b)};cvox.SpeechRuleFunctions.Store_.prototype.lookup=function(a){return this.store_[a]};cvox.SpeechRuleFunctions.CustomQueries=function(){var a={};cvox.SpeechRuleFunctions.Store_.call(this,"CQF",a)};goog.inherits(cvox.SpeechRuleFunctions.CustomQueries,cvox.SpeechRuleFunctions.Store_);
+cvox.SpeechRuleFunctions.CustomStrings=function(){var a={};cvox.SpeechRuleFunctions.Store_.call(this,"CSF",a)};goog.inherits(cvox.SpeechRuleFunctions.CustomStrings,cvox.SpeechRuleFunctions.Store_);cvox.SpeechRuleFunctions.ContextFunctions=function(){var a={};cvox.SpeechRuleFunctions.Store_.call(this,"CTXF",a)};goog.inherits(cvox.SpeechRuleFunctions.ContextFunctions,cvox.SpeechRuleFunctions.Store_);
+cvox.SpeechRuleFunctions.Store_.prototype.checkCustomFunctionSyntax_=function(a){var b=RegExp("^"+this.prefix_);return a.match(b)?!0:(console.log("FunctionError: Invalid function name. Expected prefix"+this.prefix_),!1)};cvox.BaseRuleStore=function(){this.customQueries=new cvox.SpeechRuleFunctions.CustomQueries;this.customStrings=new cvox.SpeechRuleFunctions.CustomStrings;this.contextFunctions=new cvox.SpeechRuleFunctions.ContextFunctions;this.speechRules_=[];this.dynamicCstrAttribs=[cvox.SpeechRule.DynamicCstrAttrib.STYLE];this.defaultTtsProps=[]};
+cvox.BaseRuleStore.prototype.lookupRule=function(a,b){if(!a||a.nodeType!=Node.ELEMENT_NODE&&a.nodeType!=Node.TEXT_NODE)return null;var c=this.speechRules_.filter(goog.bind(function(c){return this.testDynamicConstraints(b,c)&&this.testPrecondition_(a,c)},this));return 0<c.length?this.pickMostConstraint_(b,c):null};
+cvox.BaseRuleStore.prototype.defineRule=function(a,b,c,d,e){try{var f=cvox.SpeechRule.Action.fromString(c),g=Array.prototype.slice.call(arguments,4),h=new cvox.SpeechRule.Precondition(d,g),g={};g[cvox.SpeechRule.DynamicCstrAttrib.STYLE]=b;var k=new cvox.SpeechRule(a,g,h,f)}catch(l){if("RuleError"==l.name)return console.log("Rule Error ",d,"("+b+"):",l.message),null;throw l;}this.addRule(k);return k};cvox.BaseRuleStore.prototype.addRule=function(a){this.speechRules_.unshift(a)};
+cvox.BaseRuleStore.prototype.deleteRule=function(a){a=this.speechRules_.indexOf(a);-1!=a&&this.speechRules_.splice(a,1)};cvox.BaseRuleStore.prototype.findRule=function(a){for(var b=0,c;c=this.speechRules_[b];b++)if(a(c))return c;return null};cvox.BaseRuleStore.prototype.findAllRules=function(a){return this.speechRules_.filter(a)};cvox.BaseRuleStore.prototype.evaluateDefault=function(a){return[new cvox.NavDescription({text:a.textContent})]};
+cvox.BaseRuleStore.prototype.removeDuplicates=function(a){for(var b=this.speechRules_.length-1,c;c=this.speechRules_[b];b--)c!=a&&cvox.BaseRuleStore.compareDynamicConstraints_(c.dynamicCstr,a.dynamicCstr)&&cvox.BaseRuleStore.comparePreconditions_(c,a)&&this.speechRules_.splice(b,1)};cvox.BaseRuleStore.prototype.applyCustomQuery=function(a,b){var c=this.customQueries.lookup(b);return c?c(a):null};
+cvox.BaseRuleStore.prototype.applySelector=function(a,b){var c=this.applyCustomQuery(a,b);return c||cvox.XpathUtil.evalXPath(b,a)};cvox.BaseRuleStore.prototype.applyQuery=function(a,b){var c=this.applySelector(a,b);return 0<c.length?c[0]:null};cvox.BaseRuleStore.prototype.applyConstraint=function(a,b){var c=this.applyQuery(a,b);return!!c||cvox.XpathUtil.evaluateBoolean(b,a)};
+cvox.BaseRuleStore.prototype.testDynamicConstraints=function(a,b){var c=Object.keys(a);return c.every(function(c){return a[c]==b.dynamicCstr[c]||"default"==b.dynamicCstr[c]})};cvox.BaseRuleStore.prototype.getDynamicConstraintValues=function(){for(var a={},b=0,c;c=this.speechRules_[b];b++)for(var d in c.dynamicCstr){var e=[c.dynamicCstr[d]];a[d]=a[d]?cvox.MathUtil.union(a[d],e):e}return a};
+cvox.BaseRuleStore.prototype.countMatchingDynamicConstraintValues_=function(a,b){for(var c=0,d=0,e;e=this.dynamicCstrAttribs[d];d++)if(a[e]==b.dynamicCstr[e])c++;else break;return c};cvox.BaseRuleStore.prototype.pickMostConstraint_=function(a,b){b.sort(goog.bind(function(b,d){var e=this.countMatchingDynamicConstraintValues_(a,b),f=this.countMatchingDynamicConstraintValues_(a,d);return e>f?-1:f>e?1:d.precondition.constraints.length-b.precondition.constraints.length},this));return b[0]};
+cvox.BaseRuleStore.prototype.testPrecondition_=function(a,b){var c=b.precondition;return this.applyQuery(a,c.query)===a&&c.constraints.every(goog.bind(function(b){return this.applyConstraint(a,b)},this))};cvox.BaseRuleStore.compareDynamicConstraints_=function(a,b){if(Object.keys(a).length!=Object.keys(b).length)return!1;for(var c in a)if(!b[c]||a[c]!==b[c])return!1;return!0};
+cvox.BaseRuleStore.compareStaticConstraints_=function(a,b){if(a.length!=b.length)return!1;for(var c=0,d;d=a[c];c++)if(-1==b.indexOf(d))return!1;return!0};cvox.BaseRuleStore.comparePreconditions_=function(a,b){var c=a.precondition,d=b.precondition;return c.query!=d.query?!1:cvox.BaseRuleStore.compareStaticConstraints_(c.constraints,d.constraints)};cvox.MathStore=function(){cvox.BaseRuleStore.call(this);this.dynamicCstrAttribs=[cvox.SpeechRule.DynamicCstrAttrib.DOMAIN,cvox.SpeechRule.DynamicCstrAttrib.STYLE];this.defaultTtsProps=[cvox.AbstractTts.PITCH,cvox.AbstractTts.RATE]};goog.inherits(cvox.MathStore,cvox.BaseRuleStore);cvox.SpeechRule.DynamicCstrAttrib.DOMAIN="domain";
+cvox.MathStore.prototype.defineRule=function(a,b,c,d,e){var f=this.parseDynamicConstraint(b),g=Array.prototype.slice.call(arguments,4),g=cvox.MathStore.superClass_.defineRule.apply(this,[a,f[cvox.SpeechRule.DynamicCstrAttrib.STYLE],c,d].concat(g));g.dynamicCstr=f;this.removeDuplicates(g);return g};
+cvox.MathStore.prototype.parseDynamicConstraint=function(a){var b=a.split(".");if(!b[0]||!b[1])throw new cvox.SpeechRule.OutputError("Invalid domain assignment:"+a);return cvox.MathStore.createDynamicConstraint(b[0],b[1])};cvox.MathStore.createDynamicConstraint=function(a,b){var c={};c[cvox.SpeechRule.DynamicCstrAttrib.DOMAIN]=a;c[cvox.SpeechRule.DynamicCstrAttrib.STYLE]=b;return c};
+cvox.MathStore.prototype.defineRuleAlias=function(a,b,c){var d=this.findRule(function(b){return b.name==a});if(!d)throw new cvox.SpeechRule.OutputError("Rule with named "+a+" does not exist.");this.addAlias_(d,b,Array.prototype.slice.call(arguments,2))};cvox.MathStore.prototype.addAlias_=function(a,b,c){b=new cvox.SpeechRule.Precondition(b,c);b=new cvox.SpeechRule(a.name,a.dynamicCstr,b,a.action);b.name=a.name;this.addRule(b)};cvox.MathStore.prototype.evaluateDefault=function(a){return this.evaluateString_(a.textContent)};
+cvox.MathStore.prototype.evaluateString_=function(a){var b=[];if(a.match(/^\s+$/))return b;a=cvox.MathStore.removeEmpty_(a.replace(/\s/g," ").split(" "));for(var c=0,d;d=a[c];c++)if(1==d.length)b.push(this.evaluate_(d));else if(d.match(/^[a-zA-Z]+$/))b.push(this.evaluate_(d));else for(;d;){var e=d.match(/^\d+/),f=d.match(/^[a-zA-Z]+/);e?(b.push(this.evaluate_(e[0])),d=d.substring(e[0].length)):f?(b.push(this.evaluate_(f[0])),d=d.substring(f[0].length)):(e=d[0],e=e.charCodeAt(0),55296<=e&&56319>=e&&
+1<d.length&&!isNaN(d.charCodeAt(1))?(b.push(this.evaluate_(d.slice(0,2))),d=d.substring(2)):(b.push(this.evaluate_(d[0])),d=d.substring(1)))}return b};cvox.MathStore.prototype.evaluate_=function(a){return cvox.ChromeVox.host.mathMap?cvox.ChromeVox.host.mathMap.evaluate(a,cvox.TraverseMath.getInstance().domain,cvox.TraverseMath.getInstance().style):new cvox.NavMathDescription({text:a,domain:cvox.TraverseMath.getInstance().domain,style:cvox.TraverseMath.getInstance().style})};
+cvox.MathStore.removeEmpty_=function(a){return a.filter(function(a){return a})};cvox.MathmlStore=function(){cvox.MathStore.call(this)};goog.inherits(cvox.MathmlStore,cvox.MathStore);goog.addSingletonGetter(cvox.MathmlStore);cvox.MathmlStore.prototype.defineDefaultMathmlRule=function(a,b){this.defineRule(a,"default.default",b,"self::mathml:"+a)};cvox.SpeechRuleEngine=function(){this.activeStore_=null;this.dynamicCstr={};this.dynamicCstr[cvox.SpeechRule.DynamicCstrAttrib.STYLE]="short"};goog.addSingletonGetter(cvox.SpeechRuleEngine);cvox.SpeechRuleEngine.prototype.parameterize=function(a){try{a.initialize()}catch(b){if("StoreError"==b.name)console.log("Store Error:",b.message);else throw b;}this.activeStore_=a};cvox.SpeechRuleEngine.prototype.setDynamicConstraint=function(a){a&&(this.dynamicCstr=a)};
+cvox.SpeechRuleEngine.prototype.constructString=function(a,b){if(!b)return"";if('"'==b.charAt(0))return b.slice(1,-1);var c=this.activeStore_.customStrings.lookup(b);return c?c(a):cvox.XpathUtil.evaluateString(b,a)};cvox.SpeechRuleEngine.prototype.evaluateNode=function(a){return a?this.evaluateTree_(a):[]};
+cvox.SpeechRuleEngine.prototype.evaluateTree_=function(a){var b=this.activeStore_.lookupRule(a,this.dynamicCstr);if(!b)return this.activeStore_.evaluateDefault(a);for(var b=b.action.components,c=[],d=0,e;e=b[d];d++){var f=[],g=e.content||"";switch(e.type){case cvox.SpeechRule.Type.NODE:(g=this.activeStore_.applyQuery(a,g))&&(f=this.evaluateTree_(g));break;case cvox.SpeechRule.Type.MULTI:g=this.activeStore_.applySelector(a,g);0<g.length&&(f=this.evaluateNodeList_(g,e.sepFunc,this.constructString(a,
+e.separator),e.ctxtFunc,this.constructString(a,e.context)));break;case cvox.SpeechRule.Type.TEXT:(g=this.constructString(a,g))&&(f=[new cvox.NavDescription({text:g})]);break;default:f=[new cvox.NavDescription({text:g})]}f[0]&&e.context&&e.type!=cvox.SpeechRule.Type.MULTI&&(f[0].context=this.constructString(a,e.context)+(f[0].context||""));c=c.concat(this.addPersonality_(f,e))}return c};
+cvox.SpeechRuleEngine.prototype.evaluateNodeList_=function(a,b,c,d,e){if(a==[])return[];var f=c||"",g=e||"";c=(c=this.activeStore_.contextFunctions.lookup(d))?c(a,g):function(){return g};b=(b=this.activeStore_.contextFunctions.lookup(b))?b(a,f):function(){return f};d=[];e=0;for(var h;h=a[e];e++)h=this.evaluateTree_(h),0<h.length&&(h[0].context=c()+(h[0].context||""),d=d.concat(h),e<a.length-1&&(h=b())&&d.push(new cvox.NavDescription({text:h})));return d};
+cvox.SpeechRuleEngine.propMap={pitch:cvox.AbstractTts.RELATIVE_PITCH,rate:cvox.AbstractTts.RELATIVE_RATE,volume:cvox.AbstractTts.RELATIVE_VOLUME,pause:cvox.AbstractTts.PAUSE};cvox.SpeechRuleEngine.prototype.addPersonality_=function(a,b){var c={},d;for(d in cvox.SpeechRuleEngine.propMap){var e=parseFloat(b[d]);isNaN(e)||(c[cvox.SpeechRuleEngine.propMap[d]]=e)}a.forEach(goog.bind(function(a){this.addRelativePersonality_(a,c);this.resetPersonality_(a)},this));return a};
+cvox.SpeechRuleEngine.prototype.addRelativePersonality_=function(a,b){if(!a.personality)return a.personality=b,a;var c=a.personality,d;for(d in b)c[d]=c[d]&&"number"==typeof c[d]?c[d]+b[d]:b[d];return a};cvox.SpeechRuleEngine.prototype.resetPersonality_=function(a){if(this.activeStore_.defaultTtsProps)for(var b=0,c;c=this.activeStore_.defaultTtsProps[b];b++)a.personality[c]=cvox.ChromeVox.tts.getDefaultProperty(c)};cvox.SpeechRuleEngine.debugMode=!1;
+cvox.SpeechRuleEngine.outputDebug=function(a){if(cvox.SpeechRuleEngine.debugMode){var b=Array.prototype.slice.call(arguments,0);console.log.apply(console,["Speech Rule Engine Debugger:"].concat(b))}};cvox.SpeechRuleEngine.prototype.toString=function(){var a=this.activeStore_.findAllRules(function(){return!0});return a.map(function(a){return a.toString()}).join("\n")};
+cvox.SpeechRuleEngine.debugSpeechRule=function(a,b){var c=cvox.SpeechRuleEngine.getInstance().activeStore_;if(c){var d=a.precondition;cvox.SpeechRuleEngine.outputDebug(d.query,c.applyQuery(b,d.query));d.constraints.forEach(function(a){cvox.SpeechRuleEngine.outputDebug(a,c.applyConstraint(b,a))})}};
+cvox.SpeechRuleEngine.debugNamedSpeechRule=function(a,b){for(var c=cvox.SpeechRuleEngine.getInstance().activeStore_,c=c.findAllRules(function(b){return b.name==a}),d=0,e;e=c[d];d++)cvox.SpeechRuleEngine.outputDebug("Rule",a,"number",d),cvox.SpeechRuleEngine.debugSpeechRule(e,b)};cvox.AbstractWalker=function(){};cvox.AbstractWalker.prototype.begin=function(a){a=a||{reversed:!1};return this.sync(cvox.CursorSelection.fromBody().setReversed(a.reversed))};cvox.AbstractWalker.prototype.hasAction=function(a){return"function"==typeof this[a]};cvox.AbstractWalker.prototype.performAction=function(a,b){return this.hasAction(a)?this[a](b):null};cvox.AbstractNodeWalker=function(){this.wasBegin_=!1};goog.inherits(cvox.AbstractNodeWalker,cvox.AbstractWalker);cvox.AbstractNodeWalker.prototype.next=function(a){var b=a.isReversed();a=a.end.node||document.body;do if(a=cvox.DomUtil.directedNextLeafLikeNode(a,b,goog.bind(this.stopNodeDescent,this)),!a)return null;while(a&&!cvox.DomUtil.hasContent(a));return cvox.CursorSelection.fromNode(a).setReversed(b)};
+cvox.AbstractNodeWalker.prototype.sync=function(a){a=this.privateSync_(a);this.wasBegin_=!1;return a};
+cvox.AbstractNodeWalker.prototype.privateSync_=function(a){var b=a.isReversed();if(a.equals(cvox.CursorSelection.fromBody())){if(this.wasBegin_)return cvox.CursorSelection.fromBody().setReversed(b);this.wasBegin_=!0}for(a=a.start.node;a!=document.body&&a.parentNode&&this.stopNodeDescent(a.parentNode);)a=a.parentNode;for(;!this.stopNodeDescent(a);)a=cvox.DomUtil.directedFirstChild(a,b);var c=cvox.CursorSelection.fromNode(a);cvox.DomUtil.hasContent(a)||(c=this.next(cvox.CursorSelection.fromNode(a).setReversed(b)));
+return c?c.setReversed(b):this.begin({reversed:b})};cvox.BareObjectWalker=function(){cvox.AbstractNodeWalker.call(this)};goog.inherits(cvox.BareObjectWalker,cvox.AbstractNodeWalker);cvox.BareObjectWalker.prototype.stopNodeDescent=function(a){return cvox.DomUtil.isLeafNode(a)};cvox.AuralStyleConverter={};cvox.AuralStyleUtil={};
+cvox.AuralProperty={VOLUME:"VOLUME",SPEAK:"SPEAK",PAUSE_BEFORE:"PAUSE_BEFORE",PAUSE_AFTER:"PAUSE_AFTER",PAUSE:"PAUSE",CUE_BEFORE:"CUE_BEFORE",CUE_AFTER:"CUE_AFTER",CUE:"CUE",PLAY_DURING:"PLAY_DURING",AZIMUTH:"AZIMUTH",ELEVATION:"ELEVATION",SPEECH_RATE:"SPEECH_RATE",VOICE_FAMILY:"VOICE_FAMILY",PITCH:"PITCH",PITCH_RANGE:"PITCH_RANGE",STRESS:"STRESS",RICHNESS:"RICHNESS",SPEAK_PUNCTUATION:"SPEAK_PUNCTUATION",SPEAK_NUMERIAL:"SPEAK_NUMERIAL",SPEAK_HEADER:"SPEAK_HEADER",NONE:"NONE"};
+cvox.AuralStyleConverter.identity=function(a){return a};cvox.AuralStyleConverter.propertyTable={VOLUME:"volume",SPEAK:"no-op",PAUSE_BEFORE:"no-op",PAUSE_AFTER:"no-op",PAUSE:"no-op",CUE_BEFORE:"no-op",CUE_AFTER:"no-op",CUE:"no-op",PLAY_DURING:"no-op",AZIMUTH:"no-op",ELEVATION:"no-op",SPEECH_RATE:"relativeRate",VOICE_FAMILY:"no-op",PITCH:"relativePitch",PITCH_RANGE:"no-op",STRESS:"no-op",RICHNESS:"no-op",SPEAK_PUNCTUATION:"no-op",SPEAK_NUMERIAL:"no-op",SPEAK_HEADER:"no-op",NONE:"no-op"};
+cvox.AuralStyleConverter.valueTable={VOLUME:cvox.AuralStyleConverter.identity,SPEAK:cvox.AuralStyleConverter.identity,PAUSE_BEFORE:cvox.AuralStyleConverter.identity,PAUSE_AFTER:cvox.AuralStyleConverter.identity,PAUSE:cvox.AuralStyleConverter.identity,CUE_BEFORE:cvox.AuralStyleConverter.identity,CUE_AFTER:cvox.AuralStyleConverter.identity,CUE:cvox.AuralStyleConverter.identity,PLAY_DURING:cvox.AuralStyleConverter.identity,AZIMUTH:cvox.AuralStyleConverter.identity,ELEVATION:cvox.AuralStyleConverter.identity,
+SPEECH_RATE:cvox.AuralStyleConverter.identity,VOICE_FAMILY:cvox.AuralStyleConverter.identity,PITCH:cvox.AuralStyleConverter.identity,PITCH_RANGE:cvox.AuralStyleConverter.identity,STRESS:cvox.AuralStyleConverter.identity,RICHNESS:cvox.AuralStyleConverter.identity,SPEAK_PUNCTUATION:cvox.AuralStyleConverter.identity,SPEAK_NUMERIAL:cvox.AuralStyleConverter.identity,SPEAK_HEADER:cvox.AuralStyleConverter.identity,NONE:cvox.AuralStyleConverter.identity};
+cvox.AuralStyleConverter.convertRule=function(a,b){return{property:cvox.AuralStyleConverter.propertyTable[a],value:cvox.AuralStyleConverter.valueTable[a](b)}};cvox.AuralStyleConverter.convertStyle=function(a){var b={},c;for(c in a){var d=cvox.AuralStyleConverter.convertRule(c,a[c]);b[d.property]=d.value}return b};cvox.AuralStyleUtil.getStyleForNode=function(a){return(a=cvox.AuralStyleUtil.defaultStyles[a.tagName])?cvox.AuralStyleConverter.convertStyle(a):null};
+cvox.AuralStyleUtil.defaultStyles={ARTICLE:{PITCH:-0.1},ASIDE:{PITCH:-0.1},FOOTER:{PITCH:-0.1},H1:{PITCH:-0.3},H2:{PITCH:-0.25},H3:{PITCH:-0.2},H4:{PITCH:-0.15},H5:{PITCH:-0.1},H6:{PITCH:-0.05},HEADER:{PITCH:-0.1},HGROUP:{PITCH:-0.1},MARK:{PITCH:-0.1},NAV:{PITCH:-0.1},SECTION:{PITCH:-0.1},TIME:{PITCH:-0.1}};cvox.EarconUtil={};
+cvox.EarconUtil.getEarcon=function(a){var b=cvox.AriaUtil.getEarcon(a);if(null!=b)return b;switch(a.tagName){case "BUTTON":return cvox.AbstractEarcons.BUTTON;case "A":if(a.hasAttribute("href"))return cvox.AbstractEarcons.LINK;break;case "IMG":if(cvox.DomUtil.hasLongDesc(a))return cvox.AbstractEarcons.LONG_DESC;break;case "LI":return cvox.AbstractEarcons.LIST_ITEM;case "SELECT":return cvox.AbstractEarcons.LISTBOX;case "TEXTAREA":return cvox.AbstractEarcons.EDITABLE_TEXT;case "INPUT":switch(a.type){case "button":case "submit":case "reset":return cvox.AbstractEarcons.BUTTON;case "checkbox":case "radio":return a.checked?
+cvox.AbstractEarcons.CHECK_ON:cvox.AbstractEarcons.CHECK_OFF;default:if(cvox.DomUtil.isInputTypeText(a))return cvox.AbstractEarcons.EDITABLE_TEXT}}return null};cvox.DescriptionUtil={};cvox.DescriptionUtil.COLLECTION_NODE_TYPE={H1:!0,H2:!0,H3:!0,H4:!0,H5:!0,H6:!0};
+cvox.DescriptionUtil.getControlDescription=function(a,b){var c=[a];if(b&&0<b.length)c=b;else{var d=cvox.DomUtil.getSurroundingControl(a);d&&(c=[d,a])}c=cvox.DescriptionUtil.getDescriptionFromAncestors(c,!0,cvox.VERBOSITY_VERBOSE);if(d){var e=cvox.DomUtil.getName(d);0==e.length&&(e=cvox.DomUtil.getControlLabelHeuristics(d),0<e.length&&(c.context=e+" "+c.context))}else e=cvox.DomUtil.getName(a),0==e.length&&(e=cvox.DomUtil.getControlLabelHeuristics(a),0<e.length&&(c.text=cvox.DomUtil.collapseWhitespace(e))),
+d=cvox.DomUtil.getValue(a),0<d.length&&(c.userValue=cvox.DomUtil.collapseWhitespace(d));return c};
+cvox.DescriptionUtil.getDescriptionFromAncestors=function(a,b,c){"undefined"===typeof b&&(b=!0);var d=a.length,e="",f="",g="",h="",k=[],l=null;0<d&&(f=cvox.DomUtil.getName(a[d-1],b),g=cvox.DomUtil.getValue(a[d-1]));for(b=d-1;0<=b;b--){var m=a[b],p=m.getAttribute?m.getAttribute("role"):null;if("dialog"!=p&&"alertdialog"!=p){p=cvox.DomUtil.getRole(m,c);l||(l=cvox.AuralStyleUtil.getStyleForNode(m));if(b<d-1&&m.hasAttribute("role")){var q=cvox.DomUtil.getName(m,!1);q&&(p=q+" "+p)}0<p.length&&(0<e.length||
+0<h.length&&1<m.childElementCount?e=p+" "+cvox.DomUtil.getState(m,!1)+" "+e:h=0<h.length?h+(" "+p+" "+cvox.DomUtil.getState(m,!0)):p+" "+cvox.DomUtil.getState(m,!0));m=cvox.EarconUtil.getEarcon(m);null!=m&&-1==k.indexOf(m)&&k.push(m)}}return new cvox.NavDescription({context:cvox.DomUtil.collapseWhitespace(e),text:cvox.DomUtil.collapseWhitespace(f),userValue:cvox.DomUtil.collapseWhitespace(g),annotation:cvox.DomUtil.collapseWhitespace(h),earcons:k,personality:l})};
+cvox.DescriptionUtil.getDescriptionFromNavigation=function(a,b,c,d){if(!a||!b)return[];if(cvox.DomUtil.isMath(b)&&!cvox.AriaUtil.isMath(b))return cvox.DescriptionUtil.getMathDescription(b);if(cvox.DescriptionUtil.COLLECTION_NODE_TYPE[b.tagName])return cvox.DescriptionUtil.getCollectionDescription(cvox.CursorSelection.fromNode(a),cvox.CursorSelection.fromNode(b));var e=cvox.DomUtil.getUniqueAncestors(a,b,!0),e=cvox.DescriptionUtil.getDescriptionFromAncestors(e,c,d);a=cvox.DomUtil.getUniqueAncestors(b,
+a);cvox.DescriptionUtil.shouldDescribeExit_(a)&&(c=cvox.DescriptionUtil.getDescriptionFromAncestors(a,c,d),c.context&&!e.context&&(e.context=cvox.ChromeVox.msgs.getMsg("exited_container",[c.context])));return[e]};cvox.DescriptionUtil.getCollectionDescription=function(a,b){var c=cvox.DescriptionUtil.getRawDescriptions_(a,b);cvox.DescriptionUtil.insertCollectionDescription_(c);return c};cvox.DescriptionUtil.subWalker_=new cvox.BareObjectWalker;
+cvox.DescriptionUtil.getRawDescriptions_=function(a,b){var c=[];b=b.clone().setReversed(!1);var d=cvox.DescriptionUtil.subWalker_.sync(b).start.node,e=a.end.node,f=cvox.CursorSelection.fromNode(d);if(!f)return[];for(;cvox.DomUtil.isDescendantOfNode(d,b.start.node);){e=cvox.DomUtil.getUniqueAncestors(e,d);cvox.DomUtil.isMath(d)&&!cvox.AriaUtil.isMath(d)?c=c.concat(cvox.DescriptionUtil.getMathDescription(d)):(e=cvox.DescriptionUtil.getDescriptionFromAncestors(e,!0,cvox.ChromeVox.verbosity),c.push(e));
+f=cvox.DescriptionUtil.subWalker_.next(f);if(!f)break;e=d;d=f.start.node}return c};
+cvox.DescriptionUtil.getFullDescriptionsFromChildren=function(a,b){var c=[];if(!b)return c;var d;if(cvox.DomUtil.isLeafNode(b))return a?d=cvox.DomUtil.getUniqueAncestors(a,b):(d=[],d.push(b)),d=cvox.DescriptionUtil.getDescriptionFromAncestors(d,!0,cvox.ChromeVox.verbosity),c.push(d),c;d=b;var e=cvox.CursorSelection.fromNode(b);if(!e)return c;b=cvox.DescriptionUtil.subWalker_.sync(e).start.node;e=cvox.CursorSelection.fromNode(b);if(!e)return c;for(;cvox.DomUtil.isDescendantOfNode(b,d);){c=c.concat(cvox.DescriptionUtil.getFullDescriptionsFromChildren(a,
+b));e=cvox.DescriptionUtil.subWalker_.next(e);if(!e)break;a=b;b=e.start.node}return c};
+cvox.DescriptionUtil.insertCollectionDescription_=function(a){var b=cvox.DescriptionUtil.getAnnotations_(a);if(3<=a.length&&0==a[0].context.length&&1==b.length&&0<b[0].length&&cvox.DescriptionUtil.isAnnotationCollection_(b[0])){var b=b[0],c=a[0].context;a[0].context="";for(var d=0;d<a.length;d++)a[d].annotation="";a.splice(0,0,new cvox.NavDescription({context:c,text:"",annotation:cvox.ChromeVox.msgs.getMsg("collection",[b,cvox.ChromeVox.msgs.getNumber(a.length)])}))}};
+cvox.DescriptionUtil.getAnnotations_=function(a){for(var b=[],c=0;c<a.length;++c){var d=a[c];if(-1==b.indexOf(d.annotation)){var e=cvox.ChromeVox.msgs.getMsg("tag_link");-1!=d.annotation.toLowerCase().indexOf(e.toLowerCase())?-1==b.indexOf(e)&&b.push(e):b.push(d.annotation)}}return b};cvox.DescriptionUtil.isAnnotationCollection_=function(a){return a==cvox.ChromeVox.msgs.getMsg("tag_link")};cvox.DescriptionUtil.shouldDescribeExit_=function(a){return a.some(function(a){switch(a.tagName){case "TABLE":case "MATH":return!0}return cvox.AriaUtil.isLandmark(a)})};
+cvox.DescriptionUtil.getMathDescription=function(a){var b=cvox.SpeechRuleEngine.getInstance(),c=cvox.TraverseMath.getInstance();b.parameterize(cvox.MathmlStore.getInstance());c.initialize(a);a=b.evaluateNode(c.activeNode);if(a==[])return[new cvox.NavDescription({text:"empty math"})];cvox.ChromeVox.verbosity==cvox.VERBOSITY_VERBOSE&&(a[a.length-1].annotation="math");a[0].pushEarcon(cvox.AbstractEarcons.SPECIAL_CONTENT);return a};cvox.FindUtil={};cvox.FindUtil.objectWalker_=new cvox.BareObjectWalker;cvox.FindUtil.findNext=function(a,b,c){var d=a.isReversed();a=(new cvox.CursorSelection(a.absStart(),a.absStart())).setReversed(d);var e;if(e=b(cvox.DomUtil.getAncestors(a.start.node)))if(a=cvox.CursorSelection.fromNode(e).setReversed(d),c)return a;for(;a;){a=cvox.FindUtil.objectWalker_.next(a);c=null;if(!a||(c=b(cvox.DomUtil.getAncestors(a.start.node))))return c?cvox.CursorSelection.fromNode(c):null;if("IFRAME"==a.start.node.tagName)return a}return null};cvox.Interframe=function(){};cvox.Interframe.IF_MSG_PREFIX="cvox.INTERFRAME:";cvox.Interframe.SET_ID="cvox.INTERFRAME_SET_ID";cvox.Interframe.listeners=[];cvox.Interframe.allowAccessToIframeContentWindow=!0;
+cvox.Interframe.init=function(){cvox.Interframe.messageListener=function(a){if("string"===typeof a.data&&0==a.data.indexOf(cvox.Interframe.IF_MSG_PREFIX)){a=a.data.substr(cvox.Interframe.IF_MSG_PREFIX.length);a=cvox.ChromeVoxJSON.parse(a);a.command==cvox.Interframe.SET_ID&&(cvox.Interframe.id=a.id);for(var b=0,c;c=cvox.Interframe.listeners[b];b++)c(a)}return!1};window.addEventListener("message",cvox.Interframe.messageListener,!0)};
+cvox.Interframe.shutdown=function(){window.removeEventListener("message",cvox.Interframe.messageListener,!0)};cvox.Interframe.addListener=function(a){cvox.Interframe.listeners.push(a)};cvox.Interframe.sendMessageToWindow=function(a,b){var c=cvox.Interframe.IF_MSG_PREFIX+cvox.ChromeVoxJSON.stringify(a,null,null);b.postMessage(c,"*")};
+cvox.Interframe.sendMessageToIFrame=function(a,b){if(cvox.Interframe.allowAccessToIframeContentWindow&&b.contentWindow)cvox.Interframe.sendMessageToWindow(a,b.contentWindow);else{var c=cvox.Interframe.IF_MSG_PREFIX+cvox.ChromeVoxJSON.stringify(a,null,null),d=document.createElement("script");d.type="text/javascript";if(b.hasAttribute("id")&&document.getElementById(b.id)==b)d.innerHTML="document.getElementById(decodeURI('"+encodeURI(b.id)+"')).contentWindow.postMessage(decodeURI('"+encodeURI(c)+"'), '*');";
+else{var e="cvox_iframe"+a.id;""===b.className?b.className=e:-1==b.className.indexOf(e)&&(b.className+=" "+e);d.innerHTML="document.getElementsByClassName(decodeURI('"+encodeURI(e)+"'))[0].contentWindow.postMessage(decodeURI('"+encodeURI(c)+"'), '*');"}document.head.appendChild(d);window.setTimeout(function(){document.head.removeChild(d)},1E3)}};
+cvox.Interframe.sendMessageToParentWindow=function(a){cvox.Interframe.isIframe()&&(a.sourceId=cvox.Interframe.id,window.parent?cvox.Interframe.sendMessageToWindow(a,window.parent):(a=cvox.Interframe.IF_MSG_PREFIX+cvox.ChromeVoxJSON.stringify(a,null,null),window.location.href="javascript:window.parent.postMessage('"+encodeURI(a)+"', '*');"))};cvox.Interframe.sendIdToIFrame=function(a,b){var c={command:cvox.Interframe.SET_ID,id:a};cvox.Interframe.sendMessageToIFrame(c,b)};
+cvox.Interframe.isIframe=function(){return window!=window.parent};cvox.Interframe.init();cvox.PageSelection=function(a){this.sel_=a.clone();this.sel_.select();this.wasBegin_=!0};
+cvox.PageSelection.prototype.getDescription=function(a,b,c){var d=[];this.sel_.isReversed()!=c.isReversed()?(d=a.getDescription(c,b),d[0].annotation=cvox.ChromeVox.msgs.getMsg("describe_unselected"),d[0].pushEarcon(cvox.AbstractEarcons.SELECTION_REVERSE)):(d=a.getDescription(b,c),d[0].annotation=cvox.ChromeVox.msgs.getMsg("describe_selected"),d[0].pushEarcon(cvox.AbstractEarcons.SELECTION),!this.wasBegin_&&this.sel_.absEquals(c.clone().normalize())&&(a=a.getDescription(c,b),a[0].annotation=cvox.ChromeVox.msgs.getMsg("describe_unselected"),
+a[0].pushEarcon(cvox.AbstractEarcons.SELECTION_REVERSE),a[0].pushEarcon(cvox.AbstractEarcons.WRAP),d=a.concat(d)));return d};cvox.PageSelection.prototype.getFullDescription=function(){return[new cvox.NavDescription({text:window.getSelection().toString(),context:cvox.ChromeVox.msgs.getMsg("selection_is")})]};
+cvox.PageSelection.prototype.extend=function(a){this.sel_.directedBefore(a)?this.sel_.end=this.sel_.isReversed()==a.isReversed()?a.end.clone():a.start.clone():this.sel_=a.clone();this.sel_.select();this.wasBegin_=!1;return!this.sel_.absEquals(a)};cvox.BrailleUtil={};cvox.BrailleUtil.ITEM_SEPARATOR=" ";cvox.BrailleUtil.CONTAINER="tag_h1_brl tag_h2_brl tag_h3_brl tag_h4_brl tag_h5_brl tag_h6_brl".split(" ");
+cvox.BrailleUtil.TEMPLATE={base:"c n v r s",aria_role_button:"[n]",aria_role_textbox:"n: v r",input_type_button:"[n]",input_type_checkbox:"n (s)",input_type_email:"n: v r",input_type_number:"n: v r",input_type_password:"n: v r",input_type_search:"n: v r",input_type_submit:"[n]",input_type_text:"n: v r",input_type_tel:"n: v r",input_type_url:"n: v r",tag_button:"[n]",tag_textarea:"n: v r"};cvox.BrailleUtil.ValueSpan=function(a){this.offset=a};cvox.BrailleUtil.ValueSelectionSpan=function(){};
+cvox.BrailleUtil.getName=function(a){return a?cvox.DomUtil.getName(a).trim():""};cvox.BrailleUtil.getRoleMsg=function(a){if(!a)return"";(a=cvox.DomUtil.getRoleMsg(a,cvox.VERBOSITY_VERBOSE))&&(a=cvox.DomUtil.collapseWhitespace(a));a&&0<a.length&&cvox.ChromeVox.msgs.getMsg(a+"_brl")&&(a+="_brl");return a};cvox.BrailleUtil.getRole=function(a){return a?(a=cvox.BrailleUtil.getRoleMsg(a))?cvox.ChromeVox.msgs.getMsg(a):"":""};
+cvox.BrailleUtil.getState=function(a){return a?cvox.NodeStateUtil.expand(cvox.DomUtil.getStateMsgs(a,!0).map(function(a){cvox.ChromeVox.msgs.getMsg(a[0]+"_brl")&&(a[0]+="_brl");return a})):""};cvox.BrailleUtil.getContainer=function(a,b){if(!a||!b)return"";for(var c=cvox.DomUtil.getUniqueAncestors(a,b),d=0,e;e=c[d];d++)if((e=cvox.BrailleUtil.getRoleMsg(e))&&-1!=cvox.BrailleUtil.CONTAINER.indexOf(e))return cvox.ChromeVox.msgs.getMsg(e);return""};
+cvox.BrailleUtil.getValue=function(a){if(!a)return new cvox.Spannable;var b=new cvox.BrailleUtil.ValueSpan(0);if(cvox.DomUtil.isInputTypeText(a)){var c=a.value;"password"===a.type&&(c=c.replace(/./g,"*"));b=new cvox.Spannable(c,b);a===document.activeElement&&b.setSpan(new cvox.BrailleUtil.ValueSelectionSpan,a.selectionStart,a.selectionEnd);return b}if(a instanceof HTMLTextAreaElement){var d=new cvox.EditableTextAreaShadow;d.update(a);var e=d.getLineIndex(a.selectionEnd),c=d.getLineStart(e),d=d.getLineEnd(e),
+d=a.value.substring(c,d);b.offset=c;b=new cvox.Spannable(d,b);a===document.activeElement&&(d=Math.max(a.selectionStart-c,0),a=Math.min(a.selectionEnd-c,b.getLength()),b.setSpan(new cvox.BrailleUtil.ValueSelectionSpan,d,a));return b}return new cvox.Spannable(cvox.DomUtil.getValue(a),b)};
+cvox.BrailleUtil.getTemplated=function(a,b,c){c=c?c:{};for(var d=c.roleMsg||(b?cvox.DomUtil.getRoleMsg(b,cvox.VERBOSITY_VERBOSE):""),d=cvox.BrailleUtil.TEMPLATE[d]||cvox.BrailleUtil.TEMPLATE.base,e=new cvox.Spannable,f=function(d){switch(d){case "n":return c.name||cvox.BrailleUtil.getName(b);case "r":return c.role||cvox.BrailleUtil.getRole(b);case "s":return c.state||cvox.BrailleUtil.getState(b);case "c":return c.container||cvox.BrailleUtil.getContainer(a,b);case "v":return c.value?new cvox.Spannable(c.value,
+new cvox.BrailleUtil.ValueSpan(0)):cvox.BrailleUtil.getValue(b);default:return d}},g=0;g<d.length;g++){var h=f(d[g]);e.append(h);h.toString()||" "!=d[g+1]||g++}return e.trim()};cvox.MathmlStoreUtil={};cvox.MathmlStoreUtil.matchMathjaxToMathml=function(a){var b=cvox.TraverseMath.getInstance().activeMathmlHost;return b.querySelector("#"+a.id)};cvox.MathmlStoreUtil.retrieveMathjaxExtender=function(a){return(a=cvox.MathmlStoreUtil.matchMathjaxToMathml(a))?[a]:[]};cvox.MathmlStoreUtil.retrieveMathjaxLeaf=function(a){return(a=cvox.MathmlStoreUtil.matchMathjaxToMathml(a))?[a]:[]};
+cvox.MathmlStoreUtil.checkMathjaxTag=function(a,b){var c=cvox.MathmlStoreUtil.matchMathjaxToMathml(a);return c&&c.tagName.toUpperCase()==b?[c]:[]};cvox.MathmlStoreUtil.checkMathjaxMunder=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MUNDER")};cvox.MathmlStoreUtil.checkMathjaxMover=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MOVER")};cvox.MathmlStoreUtil.checkMathjaxMsub=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MSUB")};
+cvox.MathmlStoreUtil.checkMathjaxMsup=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MSUP")};cvox.MathmlStoreUtil.nextSeparatorFunction=function(a){if(a){if(a.match(/^\s+$/))return null;var b=a.replace(/\s/g,"").split("").filter(function(a){return a})}else b=[","];return function(){return 1<b.length?b.shift():b[0]}};cvox.MathmlStoreUtil.mfencedSeparators=function(a,b){var c=cvox.MathmlStoreUtil.nextSeparatorFunction(b);return function(){return c?c():""}};
+cvox.MathmlStoreUtil.contentIterator=function(a,b){var c=0<a.length?cvox.XpathUtil.evalXPath("../../content/*",a[0]):[];return function(){var a=c.shift();return b+(a?a.textContent:"")}};cvox.StoreUtil={};cvox.StoreUtil.nodeCounter=function(a,b){var c=a.length,d=0,e=b;b||(e="");return function(){d<c&&(d+=1);return e+" "+d}};cvox.MathmlStoreRules=function(){cvox.MathmlStoreRules.initCustomFunctions_();cvox.MathmlStoreRules.initDefaultRules_();cvox.MathmlStoreRules.initMathjaxRules_();cvox.MathmlStoreRules.initAliases_();cvox.MathmlStoreRules.initSpecializationRules_();cvox.MathmlStoreRules.initSemanticRules_()};goog.addSingletonGetter(cvox.MathmlStoreRules);cvox.MathmlStoreRules.mathStore=cvox.MathmlStore.getInstance();cvox.MathmlStoreRules.mathStore.initialize=cvox.MathmlStoreRules.getInstance;
+cvox.MathmlStoreRules.defineDefaultMathmlRule_=goog.bind(cvox.MathmlStoreRules.mathStore.defineDefaultMathmlRule,cvox.MathmlStoreRules.mathStore);cvox.MathmlStoreRules.defineRule_=goog.bind(cvox.MathmlStoreRules.mathStore.defineRule,cvox.MathmlStoreRules.mathStore);cvox.MathmlStoreRules.defineRuleAlias_=goog.bind(cvox.MathmlStoreRules.mathStore.defineRuleAlias,cvox.MathmlStoreRules.mathStore);
+cvox.MathmlStoreRules.addContextFunction_=goog.bind(cvox.MathmlStoreRules.mathStore.contextFunctions.add,cvox.MathmlStoreRules.mathStore.contextFunctions);cvox.MathmlStoreRules.addCustomQuery_=goog.bind(cvox.MathmlStoreRules.mathStore.customQueries.add,cvox.MathmlStoreRules.mathStore.customQueries);
+cvox.MathmlStoreRules.initCustomFunctions_=function(){(0,cvox.MathmlStoreRules.addContextFunction_)("CTXFnodeCounter",cvox.StoreUtil.nodeCounter);(0,cvox.MathmlStoreRules.addContextFunction_)("CTXFmfSeparators",cvox.MathmlStoreUtil.mfencedSeparators);(0,cvox.MathmlStoreRules.addContextFunction_)("CTXFcontentIterator",cvox.MathmlStoreUtil.contentIterator);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFextender",cvox.MathmlStoreUtil.retrieveMathjaxExtender);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmunder",
+cvox.MathmlStoreUtil.checkMathjaxMunder);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmover",cvox.MathmlStoreUtil.checkMathjaxMover);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmsub",cvox.MathmlStoreUtil.checkMathjaxMsub);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmsup",cvox.MathmlStoreUtil.checkMathjaxMsup);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFlookupleaf",cvox.MathmlStoreUtil.retrieveMathjaxLeaf)};
+cvox.MathmlStoreRules.initDefaultRules_=function(){(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("math","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mspace","[p] (pause:250)");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mstyle","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mpadded","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("merror","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mphantom","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mtext",
+"[t] text(); [p] (pause:200)");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mi","[n] text()");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mo","[n] text() (rate:-0.1)");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mn","[n] text()");(0,cvox.MathmlStoreRules.defineRule_)("mtext-variant","default.default",'[t] "begin"; [t] @mathvariant (pause:150);[t] text() (pause:150); [t] "end"; [t] @mathvariant (pause:200)',"self::mathml:mtext","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineRule_)("mi-variant",
+"default.default","[t] @mathvariant; [n] text()","self::mathml:mi","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mi-variant","self::mathml:mn","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineRule_)("mo-variant","default.default","[t] @mathvariant; [n] text() (rate:-0.1)","self::mathml:mo","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("ms",'[t] "string" (pitch:0.5, rate:0.5); [t] text()');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msup",
+'[n] ./*[1]; [t] "super";[n] ./*[2] (pitch:0.35); [p] (pause:300)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msubsup",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "super"; [n] ./*[3] (pitch:0.35); [p] (pause:300)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msub",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:300)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mover",'[n] ./*[2] (pitch:0.35); [p] (pause:200); [t] "over"; [n] ./*[1]; [p] (pause:400)');
+(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("munder",'[n] ./*[2] (pitch:-0.35); [t] "under"; [n] ./*[1]; [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("munderover",'[n] ./*[2] (pitch:-0.35); [t] "under and"; [n] ./*[3] (pitch:0.35); [t] "over"; [n] ./*[1]; [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mrow","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msqrt",'[t] "Square root of"; [m] ./* (rate:0.2); [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mroot",
+'[t] "root of order"; [n] ./*[2]; [t] "of";[n] ./*[1] (rate:0.2); [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mfrac",' [p] (pause:400); [n] ./*[1] (pitch:0.3); [t] "divided by"; [n] ./*[2] (pitch:-0.3); [p] (pause:400)');(0,cvox.MathmlStoreRules.defineRule_)("mfenced-single","default.default",'[t] @open (context:"opening"); [m] ./* (separator:@separators);[t] @close (context:"closing")',"self::mathml:mfenced","string-length(string(@separators))=1");(0,cvox.MathmlStoreRules.defineRule_)("mfenced-empty",
+"default.default",'[t] @open (context:"opening"); [m] ./*;[t] @close (context:"closing")',"self::mathml:mfenced","string-length(string(@separators))=1",'string(@separators)=" "');(0,cvox.MathmlStoreRules.defineRule_)("mfenced-comma","default.default",'[t] @open (context:"opening"); [m] ./* (separator:"comma");[t] @close (context:"closing")',"self::mathml:mfenced");(0,cvox.MathmlStoreRules.defineRule_)("mfenced-multi","default.default",'[t] @open (context:"opening"); [m] ./* (sepFunc:CTXFmfSeparators,separator:@separators); [t] @close (context:"closing")',
+"self::mathml:mfenced","string-length(string(@separators))>1");(0,cvox.MathmlStoreRules.defineRule_)("mtable","default.default",'[t] "matrix"; [m] ./* (ctxtFunc:CTXFnodeCounter,context:"row",pause:100)',"self::mathml:mtable");(0,cvox.MathmlStoreRules.defineRule_)("mtr","default.default",'[m] ./* (ctxtFunc:CTXFnodeCounter,context:"column",pause:100)',"self::mathml:mtr");(0,cvox.MathmlStoreRules.defineRule_)("mtd","default.default","[m] ./*","self::mathml:mtd");(0,cvox.MathmlStoreRules.defineRule_)("mtable",
+"default.superbrief",'[t] count(child::mathml:mtr); [t] "by";[t] count(child::mathml:mtr[1]/mathml:mtd); [t] "matrix";',"self::mathml:mtable");(0,cvox.MathmlStoreRules.defineRule_)("mtable","default.short",'[t] "matrix"; [m] ./*',"self::mathml:mtable");(0,cvox.MathmlStoreRules.defineRule_)("mtr","default.short","[m] ./*","self::mathml:mtr");(0,cvox.MathmlStoreRules.defineRule_)("mtd","default.short",'[t] "Element"; [t] count(./preceding-sibling::mathml:mtd)+1;[t] count(./parent::mathml:mtr/preceding-sibling::mathml:mtr)+1;[p] (pause:500); [m] ./*',
+"self::mathml:mtd");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-4","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);',"self::mathml:mmultiscripts");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-1","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);',
+"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-2","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);',"self::mathml:mmultiscripts","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-3",
+"default.default",'[n] ./*[1]; [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);',"self::mathml:mmultiscripts","./mathml:none=./*[5]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-4","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);',
+"self::mathml:mmultiscripts","./mathml:none=./*[6]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-2-1","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:300);',"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-1-1","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:300);',
+"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]","./mathml:none=./*[5]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-1-2","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);',"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]","./mathml:none=./*[6]")};
+cvox.MathmlStoreRules.initMathjaxRules_=function(){(0,cvox.MathmlStoreRules.defineRule_)("mj-math","default.default","[n] ./*[1]/*[1]/*[1]",'self::span[@class="math"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-leaf","default.default","[n] CQFlookupleaf",'self::span[@class="mi"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mo"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mn"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mtext"]');
+(0,cvox.MathmlStoreRules.defineRule_)("mj-mo-ext","default.default","[n] CQFextender",'self::span[@class="mo"]',"./*[1]/*[1]/text()","./*[1]/*[2]/text()");(0,cvox.MathmlStoreRules.defineRule_)("mj-texatom","default.default","[n] ./*[1]",'self::span[@class="texatom"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-msubsup","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub"; [n] ./*[1]/*[3]/*[1] (pitch:-0.35);[p] (pause:200); [t] "super"; [n] ./*[1]/*[2]/*[1] (pitch:0.35);[p] (pause:300)','self::span[@class="msubsup"]');
+(0,cvox.MathmlStoreRules.defineRule_)("mj-msub","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub";[n] ./*[1]/*[2]/*[1] (pitch:-0.35); [p] (pause:300)','self::span[@class="msub"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-msup","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "super";[n] ./*[1]/*[2]/*[1] (pitch:0.35); [p] (pause:300)','self::span[@class="msup"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-munderover","default.default",'[n] ./*[1]/*[2]/*[1] (pitch:0.35); [t] "under and";[n] ./*[1]/*[3]/*[1] (pitch:-0.35); [t] "over";[n] ./*[1]/*[1]/*[1]; [p] (pause:400)',
+'self::span[@class="munderover"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-munder","default.default",'[n] ./*[1]/*[2]/*[1] (pitch:0.35); [t] "under";[n] ./*[1]/*[1]/*[1]; [p] (pause:400)','self::span[@class="munder"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mover","default.default",'[n] ./*[1]/*[2]/*[1] (pitch:0.35); [t] "over";[n] ./*[1]/*[1]/*[1]; [p] (pause:400)','self::span[@class="mover"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mfrac","default.default",'[p] (pause:250); [n] ./*[1]/*[1]/*[1] (pitch:0.3); [p] (pause:250); [t] "divided by"; [n] ./*[1]/*[2]/*[1] (pitch:-0.3);[p] (pause:400)',
+'self::span[@class="mfrac"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-msqrt","default.default",'[t] "Square root of";[n] ./*[1]/*[1]/*[1] (rate:0.2); [p] (pause:400)','self::span[@class="msqrt"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mroot","default.default",'[t] "root of order"; [n] ./*[1]/*[4]/*[1]; [t] "of";[n] ./*[1]/*[1]/*[1] (rate:0.2); [p] (pause:400)','self::span[@class="mroot"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mfenced","default.default",'[t] "opening"; [n] ./*[1]; [m] ./*[position()>1 and position()<last()]; [t] "closing"; [n] ./*[last()]',
+'self::span[@class="mfenced"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mtable"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mmultiscripts"]')};
+cvox.MathmlStoreRules.initAliases_=function(){(0,cvox.MathmlStoreRules.defineRuleAlias_)("mspace",'self::span[@class="mspace"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mstyle",'self::span[@class="mstyle"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mpadded",'self::span[@class="mpadded"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("merror",'self::span[@class="merror"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mphantom",'self::span[@class="mphantom"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("ms",
+'self::span[@class="ms"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mrow",'self::span[@class="mrow"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-msub",'self::span[@class="msubsup"]',"CQFmathmlmsub");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-msup",'self::span[@class="msubsup"]',"CQFmathmlmsup");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-munder",'self::span[@class="munderover"]',"CQFmathmlmunder");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-mover",'self::span[@class="munderover"]',
+"CQFmathmlmover")};
+cvox.MathmlStoreRules.initSpecializationRules_=function(){(0,cvox.MathmlStoreRules.defineRule_)("square","default.default",'[n] ./*[1]; [t] "square" (pitch:0.35); [p] (pause:300)',"self::mathml:msup","./*[2][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("square","self::mathml:msup","./mathml:mrow=./*[2]","count(./*[2]/*)=1","./*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRule_)("cube","default.default",'[n] ./*[1]; [t] "cube" (pitch:0.35); [p] (pause:300)',"self::mathml:msup","./*[2][text()=3]");
+(0,cvox.MathmlStoreRules.defineRuleAlias_)("cube","self::mathml:msup","./mathml:mrow=./*[2]","count(./*[2]/*)=1","./*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRule_)("square-sub","default.default",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35);[p] (pause:300); [t] "square" (pitch:0.35); [p] (pause:400)',"self::mathml:msubsup","./*[3][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("square-sub","self::mathml:msubsup","./mathml:mrow=./*[3]","count(./*[3]/*)=1","./*[3]/*[1][text()=2]");
+(0,cvox.MathmlStoreRules.defineRule_)("cube-sub","default.default",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35);[p] (pause:300); [t] "cube" (pitch:0.35); [p] (pause:400)',"self::mathml:msubsup","./*[3][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("cube-sub","self::mathml:msubsup","./mathml:mrow=./*[3]","count(./*[3]/*)=1","./*[3]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRule_)("mj-square","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "square" (pitch:0.35); [p] (pause:300)','self::span[@class="msup"]',
+"./*[1]/*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square",'self::span[@class="msup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square",'self::span[@class="msubsup"]',"CQFmathmlmsup","./*[1]/*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square",'self::span[@class="msubsup"]',"CQFmathmlmsup",'./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',
+"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRule_)("mj-cube","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "cube" (pitch:0.35); [p] (pause:300)','self::span[@class="msup"]',"./*[1]/*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube",'self::span[@class="msup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube",
+'self::span[@class="msubsup"]',"CQFmathmlmsup","./*[1]/*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube",'self::span[@class="msubsup"]',"CQFmathmlmsup",'./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRule_)("mj-square-sub","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub"; [n] ./*[1]/*[3]/*[1] (pitch:-0.35); [p] (pause:300); [t] "square" (pitch:0.35); [p] (pause:400)','self::span[@class="msubsup"]',
+"./*[1]/*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square-sub",'self::span[@class="msubsup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRule_)("mj-cube-sub","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub"; [n] ./*[1]/*[3]/*[1] (pitch:-0.35); [p] (pause:300); [t] "cube" (pitch:0.35); [p] (pause:400)','self::span[@class="msubsup"]',"./*[1]/*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube-sub",
+'self::span[@class="msubsup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=3]")};
+cvox.MathmlStoreRules.initSemanticRules_=function(){(0,cvox.MathmlStoreRules.defineRule_)("stree","default.default","[n] ./*[1]","self::stree");(0,cvox.MathmlStoreRules.defineRule_)("multrel","default.default",'[t] "multirelation"; [m] children/* (sepFunc:CTXFcontentIterator)',"self::multirel");(0,cvox.MathmlStoreRules.defineRule_)("variable-equality","default.default",'[t] "equation sequence"; [m] ./children/* (context:"part",ctxtFunc:CTXFnodeCounter,separator:./text())','self::relseq[@role="equality"]',
+"count(./children/*)>2",'./children/punct[@role="ellipsis"]');(0,cvox.MathmlStoreRules.defineRule_)("multi-equality","default.default",'[t] "equation sequence"; [m] ./children/* (context:"part",ctxtFunc:CTXFnodeCounter,separator:./text())','self::relseq[@role="equality"]',"count(./children/*)>2");(0,cvox.MathmlStoreRules.defineRule_)("multi-equality","default.short",'[t] "equation sequence"; [m] ./children/* (separator:./text())','self::relseq[@role="equality"]',"count(./children/*)>2");(0,cvox.MathmlStoreRules.defineRule_)("equality",
+"default.default",'[t] "equation"; [t] "left hand side"; [n] children/*[1];[p] (pause:200); [n] text() (pause:200);[t] "right hand side"; [n] children/*[2]','self::relseq[@role="equality"]',"count(./children/*)=2");(0,cvox.MathmlStoreRules.defineRule_)("simple-equality","default.default","[n] children/*[1]; [p] (pause:200); [n] text() (pause:200);[n] children/*[2]",'self::relseq[@role="equality"]',"count(./children/*)=2","./children/identifier or ./children/number");(0,cvox.MathmlStoreRules.defineRule_)("simple-equality2",
+"default.default","[n] children/*[1]; [p] (pause:200); [n] text() (pause:200);[n] children/*[2]",'self::relseq[@role="equality"]',"count(./children/*)=2","./children/function or ./children/appl");(0,cvox.MathmlStoreRules.defineRule_)("multrel","default.default","[m] children/* (separator:./text())","self::relseq");(0,cvox.MathmlStoreRules.defineRule_)("binary-operation","default.default","[m] children/* (separator:text());","self::infixop");(0,cvox.MathmlStoreRules.defineRule_)("variable-addition",
+"default.default",'[t] "sum with variable number of summands";[p] (pause:400); [m] children/* (separator:./text())','self::infixop[@role="addition"]',"count(children/*)>2",'children/punct[@role="ellipsis"]');(0,cvox.MathmlStoreRules.defineRule_)("multi-addition","default.default",'[t] "sum with,"; [t] count(./children/*); [t] ", summands";[p] (pause:400); [m] ./children/* (separator:./text())','self::infixop[@role="addition"]',"count(./children/*)>2");(0,cvox.MathmlStoreRules.defineRule_)("prefix",
+"default.default",'[t] "prefix"; [n] text(); [t] "of" (pause 150);[n] children/*[1]',"self::prefixop");(0,cvox.MathmlStoreRules.defineRule_)("negative","default.default",'[t] "negative"; [n] children/*[1]',"self::prefixop",'self::prefixop[@role="negative"]');(0,cvox.MathmlStoreRules.defineRule_)("postfix","default.default",'[n] children/*[1]; [t] "postfix"; [n] text() (pause 300)',"self::postfixop");(0,cvox.MathmlStoreRules.defineRule_)("identifier","default.default","[n] text()","self::identifier");
+(0,cvox.MathmlStoreRules.defineRule_)("number","default.default","[n] text()","self::number");(0,cvox.MathmlStoreRules.defineRule_)("fraction","default.default",'[p] (pause:250); [n] children/*[1] (pitch:0.3); [p] (pause:250); [t] "divided by"; [n] children/*[2] (pitch:-0.3); [p] (pause:400)',"self::fraction");(0,cvox.MathmlStoreRules.defineRule_)("superscript","default.default",'[n] children/*[1]; [t] "super"; [n] children/*[2] (pitch:0.35);[p] (pause:300)',"self::superscript");(0,cvox.MathmlStoreRules.defineRule_)("subscript",
+"default.default",'[n] children/*[1]; [t] "sub"; [n] children/*[2] (pitch:-0.35);[p] (pause:300)',"self::subscript");(0,cvox.MathmlStoreRules.defineRule_)("ellipsis","default.default",'[p] (pause:200); [t] "dot dot dot"; [p] (pause:300)',"self::punct",'self::punct[@role="ellipsis"]');(0,cvox.MathmlStoreRules.defineRule_)("fence-single","default.default","[n] text()","self::punct",'self::punct[@role="openfence"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("fence-single","self::punct",'self::punct[@role="closefence"]');
+(0,cvox.MathmlStoreRules.defineRuleAlias_)("fence-single","self::punct",'self::punct[@role="vbar"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("fence-single","self::punct",'self::punct[@role="application"]');(0,cvox.MathmlStoreRules.defineRule_)("omit-punct","default.default","[p] (pause:200);","self::punct");(0,cvox.MathmlStoreRules.defineRule_)("omit-empty","default.default","","self::empty");(0,cvox.MathmlStoreRules.defineRule_)("fences-open-close","default.default",'[p] (pause:100); [t] "open"; [n] children/*[1]; [p] (pause:200);[t] "close"',
+'self::fenced[@role="leftright"]');(0,cvox.MathmlStoreRules.defineRule_)("fences-open-close-in-appl","default.default","[p] (pause:100); [n] children/*[1]; [p] (pause:200);",'self::fenced[@role="leftright"]',"./parent::children/parent::appl");(0,cvox.MathmlStoreRules.defineRule_)("fences-neutral","default.default",'[p] (pause:100); [t] "absolute value of"; [n] children/*[1];[p] (pause:350);',"self::fenced",'self::fenced[@role="neutral"]');(0,cvox.MathmlStoreRules.defineRule_)("omit-fences","default.default",
+"[p] (pause:500); [n] children/*[1]; [p] (pause:200);","self::fenced");(0,cvox.MathmlStoreRules.defineRule_)("matrix","default.default",'[t] "matrix"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"row",pause:100)',"self::matrix");(0,cvox.MathmlStoreRules.defineRule_)("matrix-row","default.default",'[m] children/* (ctxtFunc:CTXFnodeCounter,context:"column",pause:100)','self::row[@role="matrix"]');(0,cvox.MathmlStoreRules.defineRule_)("matrix-cell","default.default","[n] children/*[1]",'self::cell[@role="matrix"]');
+(0,cvox.MathmlStoreRules.defineRule_)("vector","default.default",'[t] "vector"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"element",pause:100)',"self::vector");(0,cvox.MathmlStoreRules.defineRule_)("cases","default.default",'[t] "case statement"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"case",pause:100)',"self::cases");(0,cvox.MathmlStoreRules.defineRule_)("cases-row","default.default","[m] children/*",'self::row[@role="cases"]');(0,cvox.MathmlStoreRules.defineRule_)("cases-cell",
+"default.default","[n] children/*[1]",'self::cell[@role="cases"]');(0,cvox.MathmlStoreRules.defineRule_)("row","default.default",'[m] ./* (ctxtFunc:CTXFnodeCounter,context:"column",pause:100)','self::row"');(0,cvox.MathmlStoreRules.defineRule_)("cases-end","default.default",'[t] "case statement"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"case",pause:100);[t] "end cases"',"self::cases","following-sibling::*");(0,cvox.MathmlStoreRules.defineRule_)("multiline","default.default",'[t] "multiline equation";[m] children/* (ctxtFunc:CTXFnodeCounter,context:"line",pause:100)',
+"self::multiline");(0,cvox.MathmlStoreRules.defineRule_)("line","default.default","[m] children/*","self::line");(0,cvox.MathmlStoreRules.defineRule_)("table","default.default",'[t] "multiline equation";[m] children/* (ctxtFunc:CTXFnodeCounter,context:"row",pause:200)',"self::table");(0,cvox.MathmlStoreRules.defineRule_)("table-row","default.default","[m] children/* (pause:100)",'self::row[@role="table"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("cases-cell",'self::cell[@role="table"]');(0,cvox.MathmlStoreRules.defineRule_)("end-punct",
+"default.default","[m] children/*; [p] (pause:300)","self::punctuated",'@role="endpunct"');(0,cvox.MathmlStoreRules.defineRule_)("start-punct","default.default","[n] content/*[1]; [p] (pause:200); [m] children/*","self::punctuated",'@role="startpunct"');(0,cvox.MathmlStoreRules.defineRule_)("integral-punct","default.default","[n] children/*[1] (rate:0.2); [n] children/*[3] (rate:0.2)","self::punctuated",'@role="integral"');(0,cvox.MathmlStoreRules.defineRule_)("punctuated","default.default","[m] children/* (pause:100)",
+"self::punctuated");(0,cvox.MathmlStoreRules.defineRule_)("function","default.default","[n] text()","self::function");(0,cvox.MathmlStoreRules.defineRule_)("appl","default.default","[n] children/*[1]; [n] content/*[1]; [n] children/*[2]","self::appl");(0,cvox.MathmlStoreRules.defineRule_)("limboth","default.default",'[n] children/*[1]; [t] "from"; [n] children/*[2]; [t] "to";[n] children/*[3]',"self::limboth");(0,cvox.MathmlStoreRules.defineRule_)("sum-only","default.default",'[n] children/*[1]; [p] (pause 100); [t] "over"; [n] children/*[2];[p] (pause 250);',
+"self::limboth",'self::limboth[@role="sum"]');(0,cvox.MathmlStoreRules.defineRule_)("limlower","default.default",'[n] children/*[1]; [t] "over"; [n] children/*[2];',"self::limlower");(0,cvox.MathmlStoreRules.defineRule_)("limupper","default.default",'[n] children/*[1]; [t] "under"; [n] children/*[2];',"self::limupper");(0,cvox.MathmlStoreRules.defineRule_)("largeop","default.default","[n] text()","self::largeop");(0,cvox.MathmlStoreRules.defineRule_)("bigop","default.default",'[n] children/*[1]; [p] (pause 100); [t] "over"; [n] children/*[2];[p] (pause 250);',
+"self::bigop");(0,cvox.MathmlStoreRules.defineRule_)("integral","default.default","[n] children/*[1]; [p] (pause 100); [n] children/*[2]; [p] (pause 200);[n] children/*[3] (rate:0.35);","self::integral");(0,cvox.MathmlStoreRules.defineRule_)("sqrt","default.default",'[t] "Square root of"; [n] children/*[1] (rate:0.2); [p] (pause:400)',"self::sqrt");(0,cvox.MathmlStoreRules.defineRule_)("square","default.default",'[n] children/*[1]; [t] "square" (pitch:0.35); [p] (pause:300)',"self::superscript","children/*[2][text()=2]");
+(0,cvox.MathmlStoreRules.defineRule_)("text-no-mult","default.default","[n] children/*[1]; [p] (pause:200); [n] children/*[2]","self::infixop","children/text")};cvox.AbstractShifter=function(){this.isSubnavigating_=!1};cvox.AbstractShifter.prototype.begin=function(a,b){return this.currentWalker_.begin(b)};cvox.AbstractShifter.prototype.makeLessGranular=function(){this.ensureNotSubnavigating()};cvox.AbstractShifter.prototype.makeMoreGranular=function(){this.ensureNotSubnavigating()};cvox.AbstractShifter.prototype.ensureSubnavigating=function(){!1==this.isSubnavigating_&&(this.makeMoreGranular(),this.isSubnavigating_=!0)};
+cvox.AbstractShifter.prototype.ensureNotSubnavigating=function(){!0==this.isSubnavigating_&&(this.isSubnavigating_=!1,this.makeLessGranular())};cvox.AbstractShifter.prototype.isSubnavigating=function(){return this.isSubnavigating_};cvox.AbstractShifter.prototype.hasAction=function(a){return this.currentWalker_.hasAction(a)};cvox.AbstractShifter.prototype.performAction=function(a,b){return this.currentWalker_.performAction(a,b)};cvox.MathShifter=function(a){cvox.AbstractShifter.call(this);this.level_=0;this.bumped_=this.direction_=!1;cvox.TraverseMath.getInstance().initialize(a.start.node)};goog.inherits(cvox.MathShifter,cvox.AbstractShifter);cvox.MathShifter.prototype.next=function(a){var b=a.isReversed();this.bumped_=!cvox.TraverseMath.getInstance().nextSibling(b);return(b=cvox.TraverseMath.getInstance().getAttachedActiveNode())?cvox.CursorSelection.fromNode(b):a};
+cvox.MathShifter.prototype.sync=function(a){var b=cvox.TraverseMath.getInstance().getAttachedActiveNode();return b?cvox.CursorSelection.fromNode(b):a};cvox.MathShifter.prototype.getName=function(){return cvox.ChromeVox.msgs.getMsg("math_shifter")};cvox.MathShifter.prototype.getDescription=function(){var a=cvox.SpeechRuleEngine.getInstance().evaluateNode(cvox.TraverseMath.getInstance().activeNode);this.bumped_&&0<a.length&&a[0].pushEarcon(cvox.AbstractEarcons.WRAP_EDGE);return a};
+cvox.MathShifter.prototype.getBraille=function(a,b){return new cvox.NavBraille({text:cvox.BrailleUtil.getTemplated(a.start.node,b.start.node)})};cvox.MathShifter.prototype.getGranularityMsg=function(){return this.direction_?"up to level "+this.level_:"down to level "+this.level_};cvox.MathShifter.prototype.makeLessGranular=function(){this.level_=0<this.level_?this.level_-1:0;this.direction_=!0;this.bumped_=!cvox.TraverseMath.getInstance().nextParentChild(!0)};
+cvox.MathShifter.prototype.makeMoreGranular=function(){this.direction_=!1;(this.bumped_=!cvox.TraverseMath.getInstance().nextParentChild(!1))||this.level_++};
+cvox.MathShifter.create=function(a){if(cvox.DomPredicates.mathPredicate(cvox.DomUtil.getAncestors(a.start.node))){var b=cvox.DomUtil.getContainingMath(a.end.node);cvox.TraverseMath.getInstance().initialize(b);cvox.SpeechRuleEngine.getInstance().parameterize(cvox.MathmlStore.getInstance());b=cvox.MathStore.createDynamicConstraint(cvox.TraverseMath.getInstance().domain,cvox.TraverseMath.getInstance().style);cvox.SpeechRuleEngine.getInstance().setDynamicConstraint(b);return new cvox.MathShifter(a)}return null};cvox.TableUtil={};cvox.TableUtil.checkIfHeader=function(a){return"TH"==a.tagName||a.hasAttribute("scope")||a.hasAttribute("role")&&("rowheader"==a.getAttribute("role")||"columnheader"==a.getAttribute("role"))};
+cvox.TableUtil.determineColGroups=function(a){var b=[];if(0==a.length)return b;for(var c=0;c<a.length;c++){var d=a[c],e=cvox.TableUtil.getColNodes(d);if(0<e.length)for(d=0;d<e.length;d++){var f=e[d];if(f.hasAttribute("span"))for(var f=parseInt(f.getAttribute("span"),10),g=0;g<f;g++)b.push(c);else b.push(c)}else if(d.hasAttribute("span"))for(f=parseInt(d.getAttribute("span"),10),g=0;g<f;g++)b.push(c);else b.push(c)}return b};cvox.TableUtil.pushIfNotContained=function(a,b){-1==a.indexOf(b)&&a.push(b)};
+cvox.TableUtil.getChildRows=function(a){return cvox.XpathUtil.evalXPath('child::tbody/tr | child::thead/tr | child::*[attribute::role="row"]',a)};cvox.TableUtil.getChildCells=function(a){return cvox.XpathUtil.evalXPath('child::td | child::th | child::*[attribute::role="gridcell"] |child::*[attribute::role="rowheader"] |child::*[attribute::role="columnheader"]',a)};cvox.TableUtil.getCellWithID=function(a,b){return cvox.XpathUtil.evalXPath("id('"+b+"')",a)};
+cvox.TableUtil.getColGroups=function(a){return cvox.XpathUtil.evalXPath("child::colgroup",a)};cvox.TableUtil.getColNodes=function(a){return cvox.XpathUtil.evalXPath("child::col",a)};function ShadowTableNode(){}ShadowTableNode.prototype.rowHeaderCells=[];ShadowTableNode.prototype.colHeaderCells=[];cvox.TraverseTable=function(a){this.activeTable_=null;this.shadowTable_=[];this.candidateHeaders_=[];this.idToShadowNode_=[];this.initialize(a)};cvox.TraverseTable.prototype.colCount=null;cvox.TraverseTable.prototype.rowCount=null;cvox.TraverseTable.prototype.tableRowHeaders=null;cvox.TraverseTable.prototype.tableColHeaders=null;
+cvox.TraverseTable.prototype.initialize=function(a){a&&a!=this.activeTable_&&(this.activeTable_=a,this.currentCellCursor=null,this.tableRowHeaders=[],this.tableColHeaders=[],this.buildShadowTable_(),this.colCount=this.shadowColCount_(),this.rowCount=this.countRows_(),this.findHeaderCells_(),this.activeTable_.addEventListener("DOMSubtreeModified",goog.bind(function(){this.buildShadowTable_();this.colCount=this.shadowColCount_();this.rowCount=this.countRows_();this.tableRowHeaders=[];this.tableColHeaders=
+[];this.findHeaderCells_();0==this.colCount&&0==this.rowCount||null!=this.getCell()||this.attachCursorToNearestCell_()},this),!1))};
+cvox.TraverseTable.prototype.findNearestCursor=function(a){for(;a.firstElementChild&&"TABLE"!=a.firstElementChild.tagName&&!cvox.AriaUtil.isGrid(a.firstElementChild);)a=a.firstElementChild;for(;!cvox.DomPredicates.cellPredicate(cvox.DomUtil.getAncestors(a));)if(a=cvox.DomUtil.directedNextLeafNode(a),!cvox.DomUtil.getContainingTable(a,{allowCaptions:!0}))return null;for(var b=0;b<this.rowCount;++b)for(var c=0;c<this.colCount;++c)if(this.shadowTable_[b][c]&&cvox.DomUtil.isDescendantOfNode(a,this.shadowTable_[b][c].activeCell))return[b,
+c];return null};cvox.TraverseTable.prototype.attachCursorToNearestCell_=function(){if(this.currentCellCursor){var a=this.currentCellCursor,b=this.shadowTable_[a[0]];if(b)this.currentCellCursor=[a[0],b.length-1];else if(b=this.shadowTable_.length,0==b)this.currentCellCursor=null;else{var c=this.shadowTable_[b-1][a[1]];c?this.currentCellCursor=[b-1,a[1]]:this.goToLastCell()}}else this.goToLastCell()};
+cvox.TraverseTable.prototype.buildShadowTable_=function(){this.shadowTable_=[];for(var a=cvox.TableUtil.getChildRows(this.activeTable_),b=null,c=null,d=cvox.TableUtil.getColGroups(this.activeTable_),d=cvox.TableUtil.determineColGroups(d),e=0;e<a.length;e++)this.shadowTable_.push([]);for(e=0;e<a.length;e++)for(var f=cvox.TableUtil.getChildCells(a[e]),g=0,h=0;g<f.length;)if(null==this.shadowTable_[e][h]){var k=f[g],l=1,m=1;k.hasAttribute("colspan")&&(l=parseInt(k.getAttribute("colspan"),10),isNaN(l)||
+0>=l)&&(l=1);k.hasAttribute("rowspan")&&(m=parseInt(k.getAttribute("rowspan"),10),isNaN(m)||0>=m)&&(m=1);for(var p=0;p<m;p++)for(var q=0;q<l;q++){var n=new ShadowTableNode;0==p&&0==q?(n.spanned=!1,n.rowSpan=!1,n.colSpan=!1):(n.spanned=!0,n.rowSpan=1<m,n.colSpan=1<l);n.i=e;n.j=h;n.activeCell=k;n.rowHeaderCells=[];n.colHeaderCells=[];n.isRowHeader=!1;n.isColHeader=!1;cvox.TableUtil.checkIfHeader(n.activeCell)?this.candidateHeaders_.push(n):n.activeCell.hasAttribute("headers")&&this.candidateHeaders_.push(n);
+null==b?(b=a[e].parentNode,c=0):a[e].parentNode!=b&&(b=a[e].parentNode,c+=1);n.rowGroup=c;n.colGroup=0<d.length?d[h]:0;n.spanned||null!=k.id&&(this.idToShadowNode_[k.id]=n);this.shadowTable_[e+p][h+q]=n}h+=l;g++}else h+=1;return this.shadowTable_};
+cvox.TraverseTable.prototype.findHeaderCells_=function(){for(var a=0;a<this.candidateHeaders_.length;a++){var b=this.candidateHeaders_[a],c=b.activeCell,d=null,e=null;if(!b.spanned){"TH"!=c.tagName||c.hasAttribute("scope")?c.hasAttribute("scope")?e=c.getAttribute("scope"):c.hasAttribute("role")&&"rowheader"==c.getAttribute("role")?e="row":c.hasAttribute("role")&&"columnheader"==c.getAttribute("role")&&(e="col"):(0<b.j?"TH"==this.shadowTable_[b.i][b.j-1].activeCell.tagName&&(d="col"):b.j<this.shadowTable_[b.i].length-
+1?"TH"==this.shadowTable_[b.i][b.j+1].activeCell.tagName&&(d="col"):d="col",null==d&&(0<b.i?"TH"==this.shadowTable_[b.i-1][b.j].activeCell.tagName&&(d="row"):b.i<this.shadowTable_.length-1?"TH"==this.shadowTable_[b.i+1][b.j].activeCell.tagName&&(d="row"):d="row"));if("row"==e||"row"==d){b.isRowHeader=!0;for(d=b.j;d<this.shadowTable_[b.i].length;d++)e=this.shadowTable_[b.i][d],e.rowHeaderCells.push(c);this.tableRowHeaders.push(c)}else if("col"==e||"col"==d){b.isColHeader=!0;for(e=b.i;e<this.shadowTable_.length;e++){d=
+this.shadowTable_[e][b.j];if(null==d)break;d.colHeaderCells.push(c)}this.tableColHeaders.push(c)}else if("rowgroup"==e){b.isRowHeader=!0;for(var f=b.rowGroup,d=b.j+1;d<this.shadowTable_[b.i].length;d++)this.shadowTable_[b.i][d].rowHeaderCells.push(c);for(e=b.i+1;e<this.shadowTable_.length&&this.shadowTable_[e][0].rowGroup==f;e++)for(d=0;d<this.shadowTable_[e].length;d++)this.shadowTable_[e][d].rowHeaderCells.push(c);this.tableRowHeaders.push(c)}else if("colgroup"==e){b.isColHeader=!0;f=b.colGroup;
+for(d=b.j+1;d<this.shadowTable_[b.i].length;d++)this.shadowTable_[b.i][d].colGroup==f&&this.shadowTable_[b.i][d].colHeaderCells.push(c);for(e=b.i+1;e<this.shadowTable_.length;e++)for(d=0;d<this.shadowTable_[e].length;d++)this.shadowTable_[e][d].colGroup==f&&this.shadowTable_[e][d].colHeaderCells.push(c);this.tableColHeaders.push(c)}c.hasAttribute("headers")&&this.findAttrbHeaders_(b);c.hasAttribute("aria-describedby")&&this.findAttrbDescribedBy_(b)}}};
+cvox.TraverseTable.prototype.findAttrbHeaders_=function(a){for(var b=a.activeCell,c=b.getAttribute("headers").split(" "),d=0;d<c.length;d++)for(var e=cvox.TableUtil.getCellWithID(this.activeTable_,c[d]),f=0;f<e.length&&e[f].id!=b.id;f++){var g=this.idToShadowNode_[e[f].id];if(!cvox.TableUtil.checkIfHeader(g.activeCell)){var h=Math.abs(g.i-a.i),k=Math.abs(g.j-a.j);0==h||h<k?(cvox.TableUtil.pushIfNotContained(a.rowHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableRowHeaders,g.activeCell)):
+(cvox.TableUtil.pushIfNotContained(a.colHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableColHeaders,g.activeCell))}}};
+cvox.TraverseTable.prototype.findAttrbDescribedBy_=function(a){for(var b=a.activeCell,c=b.getAttribute("aria-describedby").split(" "),d=0;d<c.length;d++)for(var e=cvox.TableUtil.getCellWithID(this.activeTable_,c[d]),f=0;f<e.length&&e[f].id!=b.id;f++){var g=this.idToShadowNode_[e[f].id];cvox.TableUtil.checkIfHeader(g.activeCell)||(g.activeCell.hasAttribute("role")&&"rowheader"==g.activeCell.getAttribute("role")?(cvox.TableUtil.pushIfNotContained(a.rowHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableRowHeaders,
+g.activeCell)):g.activeCell.hasAttribute("role")&&"columnheader"==g.activeCell.getAttribute("role")&&(cvox.TableUtil.pushIfNotContained(a.colHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableColHeaders,g.activeCell)))}};cvox.TraverseTable.prototype.getCell=function(){if(!this.currentCellCursor||!this.shadowTable_)return null;var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a&&a.activeCell};
+cvox.TraverseTable.prototype.getCellAt=function(a){return a[0]<this.rowCount&&0<=a[0]&&a[1]<this.colCount&&0<=a[1]&&(a=this.shadowTable_[a[0]][a[1]],null!=a)?a.activeCell:null};cvox.TraverseTable.prototype.getCellRowHeaders=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.rowHeaderCells};cvox.TraverseTable.prototype.getCellColHeaders=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.colHeaderCells};
+cvox.TraverseTable.prototype.isSpanned=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.spanned};cvox.TraverseTable.prototype.isRowHeader=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.isRowHeader};cvox.TraverseTable.prototype.isColHeader=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.isColHeader};
+cvox.TraverseTable.prototype.getCol=function(){for(var a=[],b=0;b<this.shadowTable_.length;b++)if(this.shadowTable_[b][this.currentCellCursor[1]]){var c=this.shadowTable_[b][this.currentCellCursor[1]];if(c.colSpan&&c.rowSpan){var d=a[a.length-1];d!=c.activeCell&&a.push(c.activeCell)}else!c.colSpan&&c.rowSpan||a.push(c.activeCell)}return a};cvox.TraverseTable.prototype.summaryText=function(){return this.activeTable_.hasAttribute("summary")?this.activeTable_.getAttribute("summary"):null};
+cvox.TraverseTable.prototype.shadowColCount_=function(){for(var a=0,b=0;b<this.shadowTable_.length;b++)this.shadowTable_[b].length>a&&(a=this.shadowTable_[b].length);return a};cvox.TraverseTable.prototype.countRows_=function(){var a=cvox.TableUtil.getChildRows(this.activeTable_);return a.length};cvox.TraverseTable.prototype.nextRow=function(){return this.currentCellCursor?this.goToRow(this.currentCellCursor[0]+1):this.goToRow(0)};
+cvox.TraverseTable.prototype.nextCol=function(){return this.currentCellCursor?this.goToCol(this.currentCellCursor[1]+1):this.goToCol(0)};cvox.TraverseTable.prototype.goToRow=function(a){return null!=this.shadowTable_[a]?(this.currentCellCursor=null==this.currentCellCursor?[a,0]:[a,this.currentCellCursor[1]],!0):!1};cvox.TraverseTable.prototype.goToCol=function(a){if(0>a||a>=this.colCount)return!1;this.currentCellCursor=null==this.currentCellCursor?[0,a]:[this.currentCellCursor[0],a];return!0};
+cvox.TraverseTable.prototype.goToCell=function(a){if(a[0]<this.rowCount&&0<=a[0]&&a[1]<this.colCount&&0<=a[1]){var b=this.shadowTable_[a[0]][a[1]];if(null!=b)return this.currentCellCursor=a,!0}return!1};cvox.TraverseTable.prototype.goToLastCell=function(){var a=this.shadowTable_.length;if(0==a)return!1;var b=this.shadowTable_[a-1],a=[a-1,b.length-1],b=this.shadowTable_[a[0]][a[1]];return null!=b?(this.currentCellCursor=a,!0):!1};
+cvox.TraverseTable.prototype.goToRowLastCell=function(){var a=this.currentCellCursor[0],a=[a,this.shadowTable_[a].length-1],b=this.shadowTable_[a[0]][a[1]];return null!=b?(this.currentCellCursor=a,!0):!1};cvox.TraverseTable.prototype.goToColLastCell=function(){var a=this.getCol(),a=[a.length-1,this.currentCellCursor[1]],b=this.shadowTable_[a[0]][a[1]];return null!=b?(this.currentCellCursor=a,!0):!1};cvox.TableWalker=function(){this.tt=new cvox.TraverseTable(null)};goog.inherits(cvox.TableWalker,cvox.AbstractWalker);cvox.TableWalker.prototype.next=function(a){return this.nextRow(a)};cvox.TableWalker.prototype.sync=function(a){return this.goTo_(a,goog.bind(function(a){return this.tt.goToCell(a)},this))};
+cvox.TableWalker.prototype.getDescription=function(a,b){var c=this.syncPosition_(b);if(!c)return[];this.tt.goToCell(c);c=cvox.DescriptionUtil.getCollectionDescription(a,b);0==c.length&&c.push(new cvox.NavDescription({annotation:cvox.ChromeVox.msgs.getMsg("empty_cell")}));return c};cvox.TableWalker.prototype.getBraille=function(a,b){new cvox.NavBraille({});var c=this.syncPosition_(b);if(c){var d=cvox.BrailleUtil.getTemplated(a.start.node,b.start.node);d.append(" "+ ++c[0]+"/"+ ++c[1])}return new cvox.NavBraille({text:d})};
+cvox.TableWalker.prototype.goToFirstCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToCell([0,0])},this))};cvox.TableWalker.prototype.goToLastCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToLastCell()},this))};cvox.TableWalker.prototype.goToRowFirstCell=function(a){return this.goTo_(a,goog.bind(function(a){return this.tt.goToCell([a[0],0])},this))};
+cvox.TableWalker.prototype.goToRowLastCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToRowLastCell()},this))};cvox.TableWalker.prototype.goToColFirstCell=function(a){return this.goTo_(a,goog.bind(function(a){return this.tt.goToCell([0,a[1]])},this))};cvox.TableWalker.prototype.goToColLastCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToColLastCell()},this))};
+cvox.TableWalker.prototype.nextRow=function(a){return this.goTo_(a,goog.bind(function(b){return this.tt.goToCell([b[0]+(a.isReversed()?-1:1),b[1]])},this))};cvox.TableWalker.prototype.nextCol=function(a){return this.goTo_(a,goog.bind(function(b){return this.tt.goToCell([b[0],b[1]+(a.isReversed()?-1:1)])},this))};cvox.TableWalker.prototype.announceHeaders=function(a){cvox.ChromeVox.tts.speak(this.getHeaderText_(a),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION);return a};
+cvox.TableWalker.prototype.speakTableLocation=function(a){cvox.ChromeVox.navigationManager.speakDescriptionArray(this.getLocationDescription_(a),cvox.AbstractTts.QUEUE_MODE_FLUSH,null);return a};cvox.TableWalker.prototype.exitShifterContent=function(a){a=this.getTableNode_(a);if(!a)return null;a=cvox.DomUtil.directedNextLeafNode(a,!1);return cvox.CursorSelection.fromNode(a)};
+cvox.TableWalker.prototype.getHeaderText_=function(a){this.tt.initialize(this.getTableNode_(a));return(a=this.tt.findNearestCursor(a.start.node))&&this.tt.goToCell(a)?this.getRowHeaderText_(a)+" "+this.getColHeaderText_(a):cvox.ChromeVox.msgs.getMsg("not_inside_table")};cvox.TableWalker.prototype.getLocationDescription_=function(a){a=this.getLocationInfo(a);return null==a?null:[new cvox.NavDescription({text:cvox.ChromeVox.msgs.getMsg("table_location",a)})]};
+cvox.TableWalker.prototype.getRowHeaderText_=function(a){var b="",c=this.tt.getCellRowHeaders();if(0==c.length)return c=this.tt.getCellAt([a[0],0]),b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c)+" "+cvox.DomUtil.getName(c)),cvox.ChromeVox.msgs.getMsg("row_header")+b;for(a=0;a<c.length;++a)b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c[a])+" "+cvox.DomUtil.getName(c[a]));return""==b?cvox.ChromeVox.msgs.getMsg("empty_row_header"):cvox.ChromeVox.msgs.getMsg("row_header")+b};
+cvox.TableWalker.prototype.getColHeaderText_=function(a){var b="",c=this.tt.getCellColHeaders();if(0==c.length)return c=this.tt.getCellAt([0,a[1]]),b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c)+" "+cvox.DomUtil.getName(c)),cvox.ChromeVox.msgs.getMsg("column_header")+b;for(a=0;a<c.length;++a)b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c[a])+" "+cvox.DomUtil.getName(c[a]));return""==b?cvox.ChromeVox.msgs.getMsg("empty_row_header"):cvox.ChromeVox.msgs.getMsg("column_header")+
+b};cvox.TableWalker.prototype.getLocationInfo=function(a){this.tt.initialize(this.getTableNode_(a));return(a=this.tt.findNearestCursor(a.start.node))?[a[0]+1,this.tt.rowCount,a[1]+1,this.tt.colCount].map(function(a){return cvox.ChromeVox.msgs.getNumber(a)}):null};
+cvox.TableWalker.prototype.goTo_=function(a,b){this.tt.initialize(this.getTableNode_(a));var c=this.tt.findNearestCursor(a.end.node);if(!c)return null;this.tt.goToCell(c);return b(c)?cvox.CursorSelection.fromNode(this.tt.getCell()).setReversed(a.isReversed()):null};cvox.TableWalker.prototype.getTableNode_=function(a){return cvox.DomUtil.getContainingTable(a.end.node)};cvox.TableWalker.prototype.syncPosition_=function(a){var b=this.getTableNode_(a);this.tt.initialize(b);return this.tt.findNearestCursor(a.end.node)};cvox.ColumnWalker=function(){cvox.TableWalker.call(this)};goog.inherits(cvox.ColumnWalker,cvox.TableWalker);cvox.ColumnWalker.prototype.next=function(a){return this.nextCol(a)};cvox.ColumnWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("column_granularity")};cvox.RowWalker=function(){cvox.TableWalker.call(this)};goog.inherits(cvox.RowWalker,cvox.TableWalker);cvox.RowWalker.prototype.next=function(a){return this.nextRow(a)};cvox.RowWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("row_granularity")};cvox.TableShifter=function(){this.rowWalker_=new cvox.RowWalker;this.columnWalker_=new cvox.ColumnWalker;this.currentWalker_=this.rowWalker_;this.bumpedEdge_=!1;this.begin_=!0;cvox.AbstractShifter.call(this)};goog.inherits(cvox.TableShifter,cvox.AbstractShifter);cvox.TableShifter.prototype.next=function(a){var b=this.currentWalker_.next(a);return b?b:(this.bumpedEdge_=!0,a)};
+cvox.TableShifter.prototype.sync=function(a){return"TABLE"==a.start.node.tagName?a.isReversed()?this.currentWalker_.goToLastCell(a):this.currentWalker_.goToFirstCell(a):this.currentWalker_.sync(a)};cvox.TableShifter.prototype.getName=function(){return cvox.ChromeVox.msgs.getMsg("table_shifter")};
+cvox.TableShifter.prototype.getDescription=function(a,b){var c=this.currentWalker_.getDescription(a,b);if(0<c.length&&(this.bumpedEdge_&&(c[0].pushEarcon(cvox.AbstractEarcons.WRAP_EDGE),this.bumpedEdge_=!1),this.begin_)){var d=this.currentWalker_.tt.summaryText(),e=this.currentWalker_.getLocationInfo(b);null!=e&&c.push(new cvox.NavDescription({context:cvox.ChromeVox.msgs.getMsg("table_location",e),text:"",annotation:d?d+" ":""}));this.currentWalker_.tt.isSpanned()&&c.push(new cvox.NavDescription({text:"",
+annotation:cvox.ChromeVox.msgs.getMsg("spanned")}));this.begin_=!1}return c};cvox.TableShifter.prototype.getBraille=function(a,b){return this.currentWalker_.getBraille(a,b)};cvox.TableShifter.prototype.getGranularityMsg=function(){return this.currentWalker_.getGranularityMsg()};cvox.TableShifter.prototype.makeLessGranular=function(){cvox.TableShifter.superClass_.makeLessGranular.call(this);this.currentWalker_=this.rowWalker_};
+cvox.TableShifter.prototype.makeMoreGranular=function(){cvox.TableShifter.superClass_.makeMoreGranular.call(this);this.currentWalker_=this.columnWalker_};cvox.TableShifter.create=function(a){a=cvox.DomUtil.getAncestors(a.start.node);return cvox.DomPredicates.tablePredicate(a)&&!cvox.DomPredicates.captionPredicate(a)?new cvox.TableShifter:null};cvox.NavigationHistory=function(){this.reset_()};cvox.NavigationHistory.MAX_HISTORY_LEN_=30;cvox.NavigationHistory.prototype.reset_=function(){var a=document.body;this.history_=[a];this.arrivedValid_=!0};cvox.NavigationHistory.prototype.update=function(a){var b=this.history_[0];a&&a!=b&&this.history_.unshift(a);this.history_.length>cvox.NavigationHistory.MAX_HISTORY_LEN_&&this.history_.pop();this.arrivedValid_=this.isValidNode_(a)};
+cvox.NavigationHistory.prototype.becomeInvalid=function(a){this.clean_();return this.arrivedValid_?!this.isValidNode_(a):(this.arrivedValid_=!0,!1)};cvox.NavigationHistory.prototype.revert=function(a){var b=document.activeElement;b!=document.body&&this.isValidNode_(b)&&this.update(b);if(a)for(;0<this.history_.length;){b=this.history_[0];if(a(b))break;this.history_.shift()}return{current:this.history_[0],previous:this.history_[1]}};
+cvox.NavigationHistory.prototype.clean_=function(){for(var a=!1,b=this.history_.length-1;0<=b;b--){var c=this.isValidNode_(this.history_[b]);c||(this.history_.splice(b,1),a=!0)}return a};cvox.NavigationHistory.prototype.isValidNode_=function(a){return cvox.DomUtil.isAttachedToDocument(a)&&cvox.DomUtil.isVisible(a)?!0:!1};cvox.TraverseContent=function(a){this.currentDomObj=null!=a?a:document.body;var b=document.createRange();try{b.selectNode(this.currentDomObj),this.startCursor_=new cvox.Cursor(b.startContainer,b.startOffset,cvox.TraverseUtil.getNodeText(b.startContainer)),this.endCursor_=new cvox.Cursor(b.endContainer,b.endOffset,cvox.TraverseUtil.getNodeText(b.endContainer))}catch(c){window.console.log("Error: Unselectable node:"),window.console.log(a)}};goog.addSingletonGetter(cvox.TraverseContent);
+cvox.TraverseContent.prototype.lastSelectionWasWhitespace=!1;cvox.TraverseContent.prototype.skipWhitespace=!1;cvox.TraverseContent.prototype.skipInvalidSelections=!0;cvox.TraverseContent.prototype.breakAtLinks=!0;cvox.TraverseContent.kCharacter="character";cvox.TraverseContent.kWord="word";cvox.TraverseContent.kSentence="sentence";cvox.TraverseContent.kLine="line";cvox.TraverseContent.kParagraph="paragraph";
+cvox.TraverseContent.kAllGrains=[cvox.TraverseContent.kParagraph,cvox.TraverseContent.kSentence,cvox.TraverseContent.kLine,cvox.TraverseContent.kWord,cvox.TraverseContent.kCharacter];cvox.TraverseContent.prototype.syncToCursorSelection=function(a){this.startCursor_=a.start.clone();this.endCursor_=a.end.clone()};cvox.TraverseContent.prototype.getCurrentCursorSelection=function(){return new cvox.CursorSelection(this.startCursor_,this.endCursor_)};
+cvox.TraverseContent.prototype.updateSelection=function(){cvox.TraverseUtil.setSelection(this.startCursor_,this.endCursor_);cvox.SelectionUtil.scrollToSelection(window.getSelection())};cvox.TraverseContent.prototype.getCurrentRange=function(){var a=document.createRange();try{a.setStart(this.startCursor_.node,this.startCursor_.index),a.setEnd(this.endCursor_.node,this.endCursor_.index)}catch(b){console.log("Invalid range ")}return a};cvox.TraverseContent.prototype.getCurrentText=function(){return cvox.SelectionUtil.getRangeText(this.getCurrentRange())};
+cvox.TraverseContent.prototype.collapseToEnd=function(){this.startCursor_=this.endCursor_.clone()};cvox.TraverseContent.prototype.collapseToStart=function(){this.endCursor_=this.startCursor_.clone()};
+cvox.TraverseContent.prototype.moveNext=function(a){var b=this.getBreakTags(),c=this.skipWhitespace,d=this.getCurrentRange();cvox.SelectionUtil.isRangeValid(d)||(c=!0);var e=[],f=[];do{a===cvox.TraverseContent.kSentence?d=cvox.TraverseUtil.getNextSentence(this.startCursor_,this.endCursor_,e,f,b):a===cvox.TraverseContent.kWord?d=cvox.TraverseUtil.getNextWord(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kCharacter?d=cvox.TraverseUtil.getNextChar(this.startCursor_,this.endCursor_,
+e,f,c):a===cvox.TraverseContent.kParagraph?d=cvox.TraverseUtil.getNextParagraph(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kLine?d=cvox.TraverseUtil.getNextLine(this.startCursor_,this.endCursor_,e,f,b):(window.console.log('Invalid selection granularity: "'+a+'"'),a=cvox.TraverseContent.kSentence,d=cvox.TraverseUtil.getNextSentence(this.startCursor_,this.endCursor_,e,f,b));if(null==d)return null;var d=this.getCurrentRange(),g=!d.getBoundingClientRect()}while(this.skipInvalidSelections&&
+g);if(cvox.SelectionUtil.isRangeValid(d))this.lastSelectionWasWhitespace=!1;else if(this.lastSelectionWasWhitespace||a!=cvox.TraverseContent.kCharacter)for(;!cvox.SelectionUtil.isRangeValid(this.getCurrentRange())&&null!=this.moveNext(a););else this.lastSelectionWasWhitespace=!0;return this.getCurrentText()};
+cvox.TraverseContent.prototype.movePrev=function(a){var b=this.getBreakTags(),c=this.skipWhitespace,d=this.getCurrentRange();cvox.SelectionUtil.isRangeValid(d)||(c=!0);var e=[],f=[];do{a===cvox.TraverseContent.kSentence?d=cvox.TraverseUtil.getPreviousSentence(this.startCursor_,this.endCursor_,e,f,b):a===cvox.TraverseContent.kWord?d=cvox.TraverseUtil.getPreviousWord(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kCharacter?d=cvox.TraverseUtil.getPreviousChar(this.startCursor_,this.endCursor_,
+e,f,c):a===cvox.TraverseContent.kParagraph?d=cvox.TraverseUtil.getPreviousParagraph(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kLine?d=cvox.TraverseUtil.getPreviousLine(this.startCursor_,this.endCursor_,e,f,b):(window.console.log('Invalid selection granularity: "'+a+'"'),a=cvox.TraverseContent.kSentence,d=cvox.TraverseUtil.getPreviousSentence(this.startCursor_,this.endCursor_,e,f,b));if(null==d)return null;var d=this.getCurrentRange(),g=!d.getBoundingClientRect()}while(this.skipInvalidSelections&&
+g);if(cvox.SelectionUtil.isRangeValid(d))this.lastSelectionWasWhitespace=!1;else if(this.lastSelectionWasWhitespace||a!=cvox.TraverseContent.kCharacter)for(;!cvox.SelectionUtil.isRangeValid(this.getCurrentRange())&&null!=this.movePrev(a););else this.lastSelectionWasWhitespace=!0;return this.getCurrentText()};cvox.TraverseContent.prototype.getBreakTags=function(){return{A:this.breakAtLinks,BR:!0,HR:!0}};
+cvox.TraverseContent.prototype.nextElement=function(a,b){null!=b&&(this.currentDomObj=b);var c=this.moveNext(a);return null==c||cvox.DomUtil.isDescendantOfNode(this.startCursor_.node,this.currentDomObj)&&cvox.DomUtil.isDescendantOfNode(this.endCursor_.node,this.currentDomObj)?c:null};
+cvox.TraverseContent.prototype.prevElement=function(a,b){null!=b&&(this.currentDomObj=b);var c=this.movePrev(a);return null==c||cvox.DomUtil.isDescendantOfNode(this.startCursor_.node,this.currentDomObj)&&cvox.DomUtil.isDescendantOfNode(this.endCursor_.node,this.currentDomObj)?c:null};cvox.TraverseContent.prototype.reset=function(){window.getSelection().removeAllRanges()};cvox.AbstractSelectionWalker=function(){this.objWalker_=new cvox.BareObjectWalker;this.tc_=cvox.TraverseContent.getInstance();this.grain=""};goog.inherits(cvox.AbstractSelectionWalker,cvox.AbstractWalker);
+cvox.AbstractSelectionWalker.prototype.next=function(a){var b=a.isReversed();this.tc_.syncToCursorSelection(a.clone().setReversed(!1));var c=b?this.tc_.prevElement(this.grain):this.tc_.nextElement(this.grain);if(null==c)return this.objWalker_.next(a);var c=this.tc_.getCurrentCursorSelection().setReversed(b),d=this.objWalker_.next(a),d=d?d.setReversed(b):null;return!d||"Text"==c.end.node.constructor.name&&"Text"==d.end.node.constructor.name||cvox.DomUtil.isDescendantOfNode(c.end.node,a.end.node)||
+cvox.DomUtil.isDescendantOfNode(c.end.node,d.end.node)?c:d};
+cvox.AbstractSelectionWalker.prototype.sync=function(a){var b=a.isReversed(),c=null;if(a.start.equals(a.end)&&"Text"!=a.start.node.constructor.name){for(c=a.start.node;c&&cvox.DomUtil.directedFirstChild(c,b)&&!cvox.TraverseUtil.treatAsLeafNode(c);){for(var d=cvox.DomUtil.directedFirstChild(c,b);d;)if(cvox.DomUtil.isVisible(d,{checkAncestors:!1,checkDescendants:!1})){c=d;break}else d=cvox.DomUtil.directedNextSibling(d,b);if(!d)break}c=cvox.CursorSelection.fromNode(c)}else c=a.clone(),b?c.start=c.end:
+c.end=c.start;c=this.next(c.setReversed(!1));d=(d=this.objWalker_.sync(a))?d.setReversed(b):null;if(!c)return d;c.setReversed(b);return!d||"Text"==c.end.node.constructor.name&&"Text"==d.end.node.constructor.name||cvox.DomUtil.isDescendantOfNode(c.end.node,a.end.node)||cvox.DomUtil.isDescendantOfNode(c.end.node,d.end.node)?c:d};
+cvox.AbstractSelectionWalker.prototype.getDescription=function(a,b){var c=cvox.DescriptionUtil.getDescriptionFromAncestors(cvox.DomUtil.getUniqueAncestors(a.end.node,b.start.node),!0,cvox.ChromeVox.verbosity);c.text=b.getText()||c.text;return[c]};cvox.AbstractSelectionWalker.prototype.getBraille=function(a,b){var c=b.absStart().node,d=cvox.TraverseUtil.getNodeText(c),e=new cvox.Spannable(d);e.setSpan(c,0,d.length);return new cvox.NavBraille({text:e,startIndex:b.absStart().index,endIndex:b.absEnd().index})};cvox.CharacterWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kCharacter};goog.inherits(cvox.CharacterWalker,cvox.AbstractSelectionWalker);cvox.CharacterWalker.prototype.getDescription=function(a,b){var c=cvox.CharacterWalker.superClass_.getDescription.call(this,a,b);c.forEach(function(a){a.personality||(a.personality={});a.personality.phoneticCharacters=!0});return c};cvox.CharacterWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("character_granularity")};cvox.GroupUtil={};cvox.GroupUtil.MAX_CHARCOUNT_=1500;cvox.GroupUtil.BREAKOUT_SELECTOR_='blockquote,button,code,form,frame,h1,h2,h3,h4,h5,h6,hr,iframe,input,object,ol,p,pre,select,table,tr,ul,math,span.math,[role~="alert alertdialog button checkbox combobox dialog log marquee menubar progressbar radio radiogroup scrollbar slider spinbutton status tab tabpanel textbox toolbar tooltip treeitem article document group heading img list math region row separator"]';
+cvox.GroupUtil.isLeafNode=function(a){if("LABEL"==a.tagName)return cvox.DomUtil.isLeafNode(a);if(cvox.DomUtil.isLeafNode(a))return!0;if(!cvox.DomUtil.isSemanticElt(a))for(var b=a.querySelectorAll(cvox.GroupUtil.BREAKOUT_SELECTOR_),c=0;c<b.length;++c)if(cvox.DomUtil.hasContent(b[c]))return!1;if(cvox.AriaUtil.isCompositeControl(a)&&!cvox.DomUtil.isFocusable(a))return!1;a=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getName(a));return a.length>cvox.GroupUtil.MAX_CHARCOUNT_||
+""===a.replace(/\s/g,"")?!1:!0};cvox.GroupWalker=function(){cvox.AbstractNodeWalker.call(this)};goog.inherits(cvox.GroupWalker,cvox.AbstractNodeWalker);cvox.GroupWalker.prototype.getDescription=function(a,b){return cvox.DescriptionUtil.getCollectionDescription(a,b)};cvox.GroupWalker.prototype.getBraille=function(){throw"getBraille is unsupported";};cvox.GroupWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("group_strategy")};cvox.GroupWalker.prototype.stopNodeDescent=function(a){return cvox.GroupUtil.isLeafNode(a)};cvox.StructuralLineWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kLine};goog.inherits(cvox.StructuralLineWalker,cvox.AbstractSelectionWalker);cvox.StructuralLineWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("structural_line")};
+cvox.StructuralLineWalker.prototype.getDescription=function(a,b){var c=cvox.StructuralLineWalker.superClass_.getDescription.call(this,a,b);c[0].text=cvox.DomUtil.getPrefixText(b.absStart().node,b.absStart().index)+c[0].text;return c};
+cvox.StructuralLineWalker.prototype.getBraille=function(a,b){var c=cvox.StructuralLineWalker.superClass_.getBraille.call(this,a,b),d=this.objWalker_.sync(b).absStart().node,e=a.absEnd().node,f=void 0;b.start.equals(b.end)||cvox.DomPredicates.editTextPredicate([d])||(f=cvox.DomUtil.getPrefixText(b.absStart().node,b.absStart().index),f+=b.getText());e=cvox.BrailleUtil.getTemplated(e,d,{name:f});e.setSpan(d,0,e.getLength());c.text=e;c.startIndex=0;c.endIndex=0;return c};cvox.LayoutLineWalker=function(){this.subWalker_=new cvox.StructuralLineWalker};goog.inherits(cvox.LayoutLineWalker,cvox.AbstractWalker);cvox.LayoutLineWalker.prototype.next=function(a){var b=new cvox.CursorSelection(a.end,a.end,a.isReversed()),c=this.subWalker_.sync(b);if(!c)return null;b=this.subWalker_.next(b);if(!b)return null;b.setReversed(a.isReversed());return this.extend_(b).setReversed(!1)};
+cvox.LayoutLineWalker.prototype.sync=function(a){var b=this.subWalker_.sync(a);if(!b)return null;var c=this.extend_(b),b=this.extend_(b.setReversed(!b.isReversed()));return new cvox.CursorSelection(b.end,c.end,a.isReversed())};
+cvox.LayoutLineWalker.prototype.getDescription=function(a,b){var c=[],d=a,e=b.clone().setReversed(!1),f=new cvox.CursorSelection(e.start,e.start),f=this.subWalker_.sync(f);if(!f)return[];if(e.start.node==e.end.node)return this.subWalker_.getDescription(a,b);for(;f&&!f.end.equals(e.end);)c.push.apply(c,this.subWalker_.getDescription(d,f)),d=f,f=this.subWalker_.next(f);f&&c.push.apply(c,this.subWalker_.getDescription(d,f));return c};
+cvox.LayoutLineWalker.prototype.getBraille=function(a,b){var c=new cvox.NavBraille({}),d=this.subWalker_.sync(b.clone().setReversed(!1)),e=this.sync(b).setReversed(!1);if(!e||!d)return c;var f=new cvox.CursorSelection(e.start,e.start),f=this.subWalker_.sync(f);if(!f)return c;for(;f&&!f.end.equals(e.end);)this.appendBraille_(a,d,f,c),a=f,f=this.subWalker_.next(f);f&&this.appendBraille_(a,d,f,c);return c};cvox.LayoutLineWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("layout_line")};
+cvox.LayoutLineWalker.prototype.isVisualLineBreak_=function(a,b){if(this.wantsOwnLine_(a.end.node)||this.wantsOwnLine_(b.start.node))return!0;var c=a.getRange().getBoundingClientRect(),d=b.getRange().getBoundingClientRect();0==c.width&&0==c.height&&a.end.node.nodeType==Node.ELEMENT_NODE&&(c=a.end.node.getBoundingClientRect());0==d.width&&0==d.height&&b.start.node.nodeType==Node.ELEMENT_NODE&&(d=b.start.node.getBoundingClientRect());return c.bottom!=d.bottom};
+cvox.LayoutLineWalker.prototype.wantsOwnLine_=function(a){return a instanceof HTMLTextAreaElement||a.parentNode instanceof HTMLTextAreaElement};cvox.LayoutLineWalker.prototype.extend_=function(a){var b=a,c=a;do b=c,c=this.subWalker_.next(b);while(c&&!this.isVisualLineBreak_(b,c));return new cvox.CursorSelection(a.start,b.end,a.isReversed())};
+cvox.LayoutLineWalker.prototype.appendBraille_=function(a,b,c,d){a=this.subWalker_.getBraille(a,c).text;var e=a.getSpanInstanceOf(cvox.BrailleUtil.ValueSelectionSpan);0<d.text.getLength()&&d.text.append(cvox.BrailleUtil.ITEM_SEPARATOR);for(var f=c.start.node;f.parentNode&&cvox.DomUtil.isLeafNode(f.parentNode);)f=f.parentNode;var g=d.text.getLength(),h=g+a.getLength();d.text.append(a.toString());d.text.setSpan(f,g,h);b&&c.absEquals(b)&&(e?(d.startIndex=g+a.getSpanStart(e),d.endIndex=g+a.getSpanEnd(e)):
+(d.startIndex=g,d.endIndex=g+1))};cvox.ObjectWalker=function(){cvox.AbstractNodeWalker.call(this)};goog.inherits(cvox.ObjectWalker,cvox.AbstractNodeWalker);cvox.ObjectWalker.prototype.stopNodeDescent=function(a){return cvox.DomUtil.isLeafNode(a)};cvox.AbstractNodeWalker.prototype.getDescription=function(a,b){return cvox.DescriptionUtil.getDescriptionFromNavigation(a.end.node,b.start.node,!0,cvox.ChromeVox.verbosity)};cvox.ObjectWalker.prototype.getBraille=function(){throw"getBraille is unsupported";};
+cvox.ObjectWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("object_strategy")};cvox.SentenceWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kSentence};goog.inherits(cvox.SentenceWalker,cvox.AbstractSelectionWalker);cvox.SentenceWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("sentence_granularity")};cvox.WordWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kWord};goog.inherits(cvox.WordWalker,cvox.AbstractSelectionWalker);cvox.WordWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("word_granularity")};cvox.NavigationShifter=function(){this.reset_();cvox.AbstractShifter.call(this)};goog.inherits(cvox.NavigationShifter,cvox.AbstractShifter);cvox.NavigationShifter.GRANULARITIES={CHARACTER:0,WORD:1,LINE:2,SENTENCE:3,OBJECT:4,GROUP:5};cvox.NavigationShifter.prototype.storeOn=function(a){a.granularity=this.getGranularity()};cvox.NavigationShifter.prototype.readFrom=function(a){this.setGranularity(a.granularity)};
+cvox.NavigationShifter.prototype.next=function(a){a=this.currentWalker_.next(a);this.currentWalkerIndex_<=cvox.NavigationShifter.GRANULARITIES.LINE&&a&&(cvox.TraverseContent.getInstance().syncToCursorSelection(a.clone().setReversed(!1)),cvox.TraverseContent.getInstance().updateSelection());return a};cvox.NavigationShifter.prototype.sync=function(a){return this.currentWalker_.sync(a)};cvox.NavigationShifter.prototype.getName=function(){return cvox.ChromeVox.msgs.getMsg("navigation_shifter")};
+cvox.NavigationShifter.prototype.getDescription=function(a,b){return this.currentWalker_.getDescription(a,b)};cvox.NavigationShifter.prototype.getBraille=function(a,b){return this.lineWalker_.getBraille(a,b)};cvox.NavigationShifter.prototype.getGranularityMsg=function(){return this.currentWalker_.getGranularityMsg()};
+cvox.NavigationShifter.prototype.makeMoreGranular=function(){cvox.NavigationShifter.superClass_.makeMoreGranular.call(this);this.currentWalkerIndex_=Math.max(this.currentWalkerIndex_-1,0);cvox.NavigationShifter.allowSentence||this.currentWalkerIndex_!=cvox.NavigationShifter.GRANULARITIES.SENTENCE||this.currentWalkerIndex_--;this.currentWalker_=this.walkers_[this.currentWalkerIndex_]};
+cvox.NavigationShifter.prototype.makeLessGranular=function(){cvox.NavigationShifter.superClass_.makeLessGranular.call(this);this.currentWalkerIndex_=Math.min(this.currentWalkerIndex_+1,this.walkers_.length-1);cvox.NavigationShifter.allowSentence||this.currentWalkerIndex_!=cvox.NavigationShifter.GRANULARITIES.SENTENCE||this.currentWalkerIndex_++;this.currentWalker_=this.walkers_[this.currentWalkerIndex_]};
+cvox.NavigationShifter.prototype.setGranularity=function(a){this.ensureNotSubnavigating();this.currentWalkerIndex_=a;this.currentWalker_=this.walkers_[this.currentWalkerIndex_]};cvox.NavigationShifter.prototype.getGranularity=function(){var a=this.isSubnavigating();this.ensureNotSubnavigating();var b=this.currentWalkerIndex_;a&&this.ensureSubnavigating();return b};
+cvox.NavigationShifter.prototype.hasAction=function(a){return"toggleLineType"==a?!0:cvox.NavigationShifter.superClass_.hasAction.call(this,a)};cvox.NavigationShifter.create=function(){return new cvox.NavigationShifter};
+cvox.NavigationShifter.prototype.reset_=function(){this.groupWalker_=new cvox.GroupWalker;this.objectWalker_=new cvox.ObjectWalker;this.sentenceWalker_=new cvox.SentenceWalker;this.lineWalker_=new cvox.LayoutLineWalker;this.wordWalker_=new cvox.WordWalker;this.characterWalker_=new cvox.CharacterWalker;this.walkers_=[this.characterWalker_,this.wordWalker_,this.lineWalker_,this.sentenceWalker_,this.objectWalker_,this.groupWalker_];this.currentWalkerIndex_=this.walkers_.indexOf(this.groupWalker_);this.currentWalker_=
+this.walkers_[this.currentWalkerIndex_]};cvox.NavigationShifter.allowSentence=!1;cvox.NavigationSpeaker=function(){this.stopReading=!1;this.id_=1};
+cvox.NavigationSpeaker.prototype.speakDescriptionArray=function(a,b,c){a=this.reorderAnnotations(a);this.stopReading=!1;this.id_=(this.id_+1)%1E4;var d=this,e=function(b,g,h){var k=a[b];if(k&&!d.stopReading&&d.id_==h){var l=function(){for(var a=0;a<k.earcons.length;a++)cvox.ChromeVox.earcons.playEarcon(k.earcons[a])},m=function(){e(b+1,cvox.AbstractTts.QUEUE_MODE_QUEUE,h)},p=function(){k.personality&&k.personality[cvox.AbstractTts.PAUSE]&&"number"==typeof k.personality[cvox.AbstractTts.PAUSE]?setTimeout(m,
+k.personality[cvox.AbstractTts.PAUSE]):m();b==a.length-1&&c&&c()};k.isEmpty()?(l(),p()):(k.speak(g,l,p),cvox.ChromeVox.host.hasTtsCallback()||(l(),p()))}};e(0,b,this.id_);0==a.length&&c&&c()};cvox.NavigationSpeaker.structuredElement=function(a){switch(a){case "table":case "Math":return!0}return!1};
+cvox.NavigationSpeaker.prototype.reorderAnnotations=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c];cvox.NavigationSpeaker.structuredElement(d.annotation)&&(b.push(new cvox.NavDescription({text:"",annotation:d.annotation})),d.annotation="");b.push(d)}return b};cvox.NavigationManager=function(){this.addInterframeListener_();this.reset()};cvox.NavigationManager.prototype.storeOn=function(a){a.reversed=this.isReversed();a.keepReading=this.keepReading_;a.findNext=this.predicate_;this.shifter_.storeOn(a)};cvox.NavigationManager.prototype.readFrom=function(a){this.curSel_.setReversed(a.reversed);this.shifter_.readFrom(a);a.keepReading&&this.startReading(cvox.AbstractTts.QUEUE_MODE_FLUSH)};
+cvox.NavigationManager.prototype.reset=function(){this.navSpeaker_=new cvox.NavigationSpeaker;this.shifterTypes_=[cvox.NavigationShifter,cvox.TableShifter,cvox.MathShifter];this.shifterStack_=[];this.shifter_=new cvox.NavigationShifter;this.curSel_=document.activeElement!=document.body?cvox.CursorSelection.fromNode(document.activeElement):this.shifter_.begin(this.curSel_,{reversed:!1});this.prevSel_=this.curSel_.clone();this.ignoreIframesNoMatterWhat_=this.exitedShifter_=this.enteredShifter_=this.pageEndAnnounced_=
+this.pageEnd_=this.keepReading_=this.recovered_=this.skipped_=!1;this.pageSel_=null;this.predicate_="";this.saveSel_=null;this.activeIndicator&&this.activeIndicator.removeFromDom();this.activeIndicator=new cvox.ActiveIndicator;this.navigationHistory_=new cvox.NavigationHistory;this.focusRecovery_="chrome:"!=window.location.protocol;this.iframeIdMap={};this.nextIframeId=1;document.activeElement!=document.body&&this.sync();cvox.TraverseMath.getInstance()};
+cvox.NavigationManager.prototype.resolve=function(a){if(!this.getFocusRecovery())return!0;var b=this.getCurrentNode();if(!this.navigationHistory_.becomeInvalid(b)||this.hasNext_())return!0;b=this.navigationHistory_.revert(a);if(!b.current)return!0;a=cvox.CursorSelection.fromNode(b.current);b=cvox.CursorSelection.fromNode(b.previous);a=a||cvox.CursorSelection.fromBody();b=b||cvox.CursorSelection.fromBody();a.setReversed(this.isReversed());this.updateSel(a,b);this.recovered_=!0;return!1};
+cvox.NavigationManager.prototype.getFocusRecovery=function(){return this.focusRecovery_};cvox.NavigationManager.prototype.setFocusRecovery=function(a){this.focusRecovery_=a};cvox.NavigationManager.prototype.next_=function(a){return this.tryBoundaries_(this.shifter_.next(this.curSel_),a)?(this.pageSel_&&this.pageSel_.extend(this.curSel_),!0):!1};
+cvox.NavigationManager.prototype.hasNext_=function(){if(0<this.shifterStack_.length)return!0;var a=this.curSel_.clone(),b=!1,c=new cvox.NavigationShifter;c.setGranularity(this.shifter_.getGranularity());c.sync(a);c.next(a)&&(b=!0);return b};
+cvox.NavigationManager.prototype.findNext=function(a,b,c){this.predicate_=b||"";this.resolve();this.shifter_=this.shifterStack_[0]||this.shifter_;this.shifterStack_=[];a=cvox.FindUtil.findNext(this.curSel_,a,c);this.ignoreIframesNoMatterWhat_||this.tryIframe_(a&&a.start.node);a&&this.updateSelToArbitraryNode(a.start.node);this.predicate_="";return a};cvox.NavigationManager.prototype.sync=function(){this.resolve();var a=this.shifter_.sync(this.curSel_);a&&(this.curSel_=a)};
+cvox.NavigationManager.prototype.syncAll=function(a){this.sync();this.setFocus(a);this.updateIndicator()};cvox.NavigationManager.prototype.clearPageSel=function(a){var b=!!this.pageSel_;b&&a&&(a=cvox.ChromeVox.msgs.getMsg("clear_page_selection"),cvox.ChromeVox.tts.speak(a,cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION));this.pageSel_=null;return b};
+cvox.NavigationManager.prototype.togglePageSel=function(){this.pageSel_=this.pageSel_?null:new cvox.PageSelection(this.curSel_.setReversed(!1));return!!this.pageSel_};
+cvox.NavigationManager.prototype.getDescription=function(){if(this.getCurrentNode().hasAttribute&&this.getCurrentNode().hasAttribute("cvoxnodedesc")){for(var a=cvox.ChromeVoxJSON.parse(this.getCurrentNode().getAttribute("cvoxnodedesc")),b=[],c=0;c<a.length;++c){var d=a[c];b.push(new cvox.NavDescription({context:d.context,text:d.text,userValue:d.userValue,annotation:d.annotation}))}return b}var e=this.pageSel_?this.pageSel_.getDescription(this.shifter_,this.prevSel_,this.curSel_):this.shifter_.getDescription(this.prevSel_,
+this.curSel_),a=[];this.skipped_&&(a.push(cvox.AbstractEarcons.PARAGRAPH_BREAK),this.skipped_=!1);this.recovered_&&(a.push(cvox.AbstractEarcons.FONT_CHANGE),this.recovered_=!1);this.pageEnd_&&(a.push(cvox.AbstractEarcons.WRAP),this.pageEnd_=!1);this.enteredShifter_&&(a.push(cvox.AbstractEarcons.OBJECT_ENTER),this.enteredShifter_=!1);this.exitedShifter_&&(a.push(cvox.AbstractEarcons.OBJECT_EXIT),this.exitedShifter_=!1);0<a.length&&0<e.length&&a.forEach(function(a){e[0].pushEarcon(a)});return e};
+cvox.NavigationManager.prototype.getBraille=function(){return cvox.PlatformUtil.matchesPlatform(cvox.PlatformFilter.ANDROID|cvox.PlatformFilter.CHROMEOS)?this.shifter_.getBraille(this.prevSel_,this.curSel_):new cvox.NavBraille({})};
+cvox.NavigationManager.prototype.performAction=function(a){switch(a){case "enterShifter":case "enterShifterSilently":for(var b=this.shifterTypes_.length-1,c;c=this.shifterTypes_[b];b--)if((c=c.create(this.curSel_))&&c.getName()!=this.shifter_.getName()){this.shifterStack_.push(this.shifter_);this.shifter_=c;this.sync();this.enteredShifter_="enterShifterSilently"!=a;break}else if(c&&this.shifter_.getName()==c.getName())break;break;case "exitShifter":if(0==this.shifterStack_.length)return!1;this.shifter_=
+this.shifterStack_.pop();this.sync();this.exitedShifter_=!0;break;case "exitShifterContent":if(0==this.shifterStack_.length)return!1;this.updateSel(this.shifter_.performAction(a,this.curSel_));this.shifter_=this.shifterStack_.pop()||this.shifter_;this.sync();this.exitedShifter_=!0;break;default:return this.shifter_.hasAction(a)?this.updateSel(this.shifter_.performAction(a,this.curSel_)):!1}return!0};cvox.NavigationManager.prototype.getGranularityMsg=function(){return this.shifter_.getGranularityMsg()};
+cvox.NavigationManager.prototype.makeMoreGranular=function(a){this.shifter_.makeMoreGranular();this.sync();this.persistGranularity_(a)};cvox.NavigationManager.prototype.makeLessGranular=function(a){this.shifter_.makeLessGranular();this.sync();this.persistGranularity_(a)};cvox.NavigationManager.prototype.setGranularity=function(a,b,c){!b&&0<this.shifterStack_.length||(this.shifter_=this.shifterStack_.shift()||this.shifter_,this.shifter_.setGranularity(a),this.persistGranularity_(c))};
+cvox.NavigationManager.prototype.getGranularity=function(){var a=this.shifterStack_[0]||this.shifter_;return a.getGranularity()};cvox.NavigationManager.prototype.ensureSubnavigating=function(){this.shifter_.isSubnavigating()||(this.shifter_.ensureSubnavigating(),this.sync())};cvox.NavigationManager.prototype.ensureNotSubnavigating=function(){this.shifter_.isSubnavigating()&&(this.shifter_.ensureNotSubnavigating(),this.sync())};
+cvox.NavigationManager.prototype.speakDescriptionArray=function(a,b,c,d){d&&a.every(function(a){a.personality||(a.personality=d)});this.navSpeaker_.speakDescriptionArray(a,b,c)};cvox.NavigationManager.prototype.updatePosition=function(a){var b=cvox.ChromeVox.position;b[document.location.href]=cvox.DomUtil.elementToPoint(a);JSON.stringify(b)};
+cvox.NavigationManager.prototype.finishNavCommand=function(a,b,c,d){if(this.pageEnd_&&!this.pageEndAnnounced_)this.pageEndAnnounced_=!0,cvox.ChromeVox.tts.stop(),cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),cvox.ChromeVox.verbosity===cvox.VERBOSITY_VERBOSE&&(a=cvox.ChromeVox.msgs.getMsg("wrapped_to_top"),this.isReversed()&&(a=cvox.ChromeVox.msgs.getMsg("wrapped_to_bottom")),cvox.ChromeVox.tts.speak(a,cvox.AbstractTts.QUEUE_MODE_QUEUE,cvox.AbstractTts.PERSONALITY_ANNOTATION));else{if(this.enteredShifter_||
+this.exitedShifter_)a=cvox.ChromeVox.msgs.getMsg("enter_content_say",[this.shifter_.getName()]);var e=cvox.ChromeVox.navigationManager.getDescription();(b=void 0===b?!0:b)&&this.setFocus();this.updateIndicator();b=c||cvox.AbstractTts.QUEUE_MODE_FLUSH;a&&(cvox.ChromeVox.tts.speak(a,b,cvox.AbstractTts.PERSONALITY_ANNOTATION),b=cvox.AbstractTts.QUEUE_MODE_QUEUE);this.speakDescriptionArray(e,b,d||null);this.getBraille().write();this.updatePosition(this.getCurrentNode())}};
+cvox.NavigationManager.prototype.navigate=function(a,b){this.pageEndAnnounced_=!1;if(this.pageEnd_)return this.pageEnd_=!1,this.syncToBeginning(a),!0;if(!this.resolve())return!1;this.ensureNotSubnavigating();void 0!==b&&(b!==this.getGranularity()||0<this.shifterStack_.length)&&(this.setGranularity(b,!0),this.sync());return this.next_(!a)};cvox.NavigationManager.prototype.subnavigate=function(){this.pageEndAnnounced_=!1;this.resolve()&&(this.ensureSubnavigating(),this.next_(!0))};
+cvox.NavigationManager.prototype.skip=function(){if(!this.keepReading_)return!1;cvox.ChromeVox.host.hasTtsCallback()&&(this.skipped_=!0,this.setReversed(!1),this.startCallbackReading_(cvox.AbstractTts.QUEUE_MODE_FLUSH));return!0};cvox.NavigationManager.prototype.startReading=function(a){this.keepReading_=!0;cvox.ChromeVox.host.hasTtsCallback()?this.startCallbackReading_(a):this.startNonCallbackReading_(a);this.prevStickyState_=cvox.ChromeVox.isStickyOn};
+cvox.NavigationManager.prototype.stopReading=function(a){this.keepReading_=!1;this.navSpeaker_.stopReading=!0;a&&cvox.ChromeVox.tts.stop();void 0!=this.prevStickyState_&&(this.prevStickyState_=void 0)};cvox.NavigationManager.prototype.isReading=function(){return this.keepReading_};
+cvox.NavigationManager.prototype.startCallbackReading_=cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(a){this.finishNavCommand("",!0,a,goog.bind(function(){this.next_(!0)&&this.keepReading_&&this.startCallbackReading_(cvox.AbstractTts.QUEUE_MODE_QUEUE)},this))});
+cvox.NavigationManager.prototype.startNonCallbackReading_=cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(a){this.keepReading_&&(cvox.ChromeVox.tts.isSpeaking()||(this.finishNavCommand("",!0,a,null),this.next_(!0)||(this.keepReading_=!1)),window.setTimeout(goog.bind(this.startNonCallbackReading_,this),1E3))});
+cvox.NavigationManager.prototype.getFullDescription=function(){return this.pageSel_?this.pageSel_.getFullDescription():[cvox.DescriptionUtil.getDescriptionFromAncestors(cvox.DomUtil.getAncestors(this.curSel_.start.node),!0,cvox.ChromeVox.verbosity)]};cvox.NavigationManager.prototype.setFocus=function(a){this.pageSel_||a&&this.curSel_.start.node.constructor==Text||cvox.Focuser.setFocus(this.curSel_.start.node)};cvox.NavigationManager.prototype.getCurrentNode=function(){return this.curSel_.absStart().node};
+cvox.NavigationManager.prototype.addInterframeListener_=function(){var a=this;cvox.Interframe.addListener(function(b){if("enterIframe"==b.command||"exitIframe"==b.command)cvox.ChromeVox.serializer.readFrom(b),a.keepReading_||cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(){window.focus();if(b.findNext){var c=b.findNext,d=cvox.DomPredicates[c],c=a.findNext(d,c,!0);if(d&&(!c||"IFRAME"==c.start.node.tagName))return}else if("exitIframe"==b.command)d=b.sourceId,d=a.iframeIdMap[d],c=b.reversed,
+d&&a.updateSel(cvox.CursorSelection.fromNode(d)),a.setReversed(c),a.sync(),a.navigate();else if(a.syncToBeginning(),!cvox.DomUtil.hasContent(document.body)){a.tryIframe_(null);return}a.finishNavCommand("",!0)})()})};cvox.NavigationManager.prototype.updateIndicator=function(){this.activeIndicator.syncToCursorSelection(this.curSel_)};cvox.NavigationManager.prototype.updateIndicatorIfChanged=function(){this.activeIndicator.updateIndicatorIfChanged()};
+cvox.NavigationManager.prototype.showOrHideIndicator=function(a){a||this.activeIndicator.removeFromDom()};cvox.NavigationManager.prototype.collapseSelection=function(){this.curSel_.collapse()};cvox.NavigationManager.prototype.updateSelToArbitraryNode=function(a,b){a?(this.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0),this.updateSel(cvox.CursorSelection.fromNode(a)),b||this.sync()):this.syncToBeginning()};
+cvox.NavigationManager.prototype.updateSel=function(a,b){a&&(this.prevSel_=b||this.curSel_,this.curSel_=a);var c=this.getCurrentNode();this.navigationHistory_.update(c);return!!a};cvox.NavigationManager.prototype.setReversed=function(a){this.curSel_.setReversed(a)};cvox.NavigationManager.prototype.isReversed=function(){return this.curSel_.isReversed()};
+cvox.NavigationManager.prototype.tryBoundaries_=function(a,b){b=!!b&&!this.ignoreIframesNoMatterWhat_||!1;this.pageEnd_=!1;if(b&&this.tryIframe_(a&&a.start.node))return!0;if(a)return this.updateSel(a),!0;if(0<this.shifterStack_.length)return!0;this.syncToBeginning(!b);this.clearPageSel(!0);this.stopReading(!0);this.pageEnd_=!0;return!1};
+cvox.NavigationManager.prototype.tryIframe_=function(a){if(null==a&&cvox.Interframe.isIframe()){var b={command:"exitIframe",reversed:this.isReversed(),granularity:this.getGranularity()};cvox.ChromeVox.serializer.storeOn(b);cvox.Interframe.sendMessageToParentWindow(b);return!0}if(null==a||"IFRAME"!=a.tagName||!a.src)return!1;var c=void 0;for(b in this.iframeIdMap)if(this.iframeIdMap[b]==a){c=b;break}void 0==c&&(c=this.nextIframeId,this.nextIframeId++,this.iframeIdMap[c]=a,cvox.Interframe.sendIdToIFrame(c,
+a));b={command:"enterIframe",id:c};cvox.ChromeVox.serializer.storeOn(b);cvox.Interframe.sendMessageToIFrame(b,a);return!0};cvox.NavigationManager.prototype.syncToBeginning=function(a){var b=this.shifter_.begin(this.curSel_,{reversed:this.curSel_.isReversed()});!a&&this.tryIframe_(b&&b.start.node)||this.updateSel(b)};cvox.NavigationManager.prototype.ignoreIframesNoMatterWhat=function(){this.ignoreIframesNoMatterWhat_=!0};cvox.NavigationManager.prototype.saveSel=function(){this.saveSel_=this.curSel_};
+cvox.NavigationManager.prototype.restoreSel=function(){this.curSel_=this.saveSel_||this.curSel_};cvox.NavigationManager.prototype.persistGranularity_=function(a){(a=void 0===a?!1:a)&&this.getGranularity()};cvox.SearchWidget=function(){this.txtNode_=this.containerNode_=null;this.PROMPT_="Search:";this.hasMatch_=this.caseSensitive_=!1;cvox.Widget.call(this)};goog.inherits(cvox.SearchWidget,cvox.Widget);goog.addSingletonGetter(cvox.SearchWidget);
+cvox.SearchWidget.prototype.show=function(){cvox.SearchWidget.superClass_.show.call(this);this.active=!0;this.hasMatch_=!1;cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0,!1);cvox.ChromeVox.navigationManager.setReversed(!1);this.focusRecovery_=cvox.ChromeVox.navigationManager.getFocusRecovery();cvox.ChromeVox.navigationManager.setFocusRecovery(!1);var a=this.createContainerNode_();this.containerNode_=a;var b=this.createOverlayNode_();a.appendChild(b);
+var c=document.createElement("span");c.innerHTML=this.PROMPT_;b.appendChild(c);this.txtNode_=this.createTextAreaNode_();b.appendChild(this.txtNode_);document.body.appendChild(a);this.txtNode_.focus();window.setTimeout(function(){a.style.opacity="1.0"},0)};
+cvox.SearchWidget.prototype.hide=function(a){if(this.isActive()){var b=this.containerNode_;b.style.opacity="0.0";window.setTimeout(function(){document.body.removeChild(b)},1E3);this.txtNode_=null;cvox.SearchWidget.containerNode=null;cvox.ChromeVox.navigationManager.setFocusRecovery(this.focusRecovery_);this.active=!1}cvox.$m("choice_widget_exited").andPause().andMessage(this.getNameMsg()).speakFlush();this.hasMatch_&&a||cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(this.initialNode);cvox.ChromeVoxEventSuspender.withSuspendedEvents(goog.bind(cvox.ChromeVox.navigationManager.syncAll,
+cvox.ChromeVox.navigationManager))(!0);cvox.ChromeVox.navigationManager.speakDescriptionArray(cvox.ChromeVox.navigationManager.getDescription(),cvox.AbstractTts.QUEUE_MODE_QUEUE,null,cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT);a=this.textFromCurrentDescription_();cvox.ChromeVox.braille.write(new cvox.NavBraille({text:a,startIndex:0,endIndex:0}));cvox.SearchWidget.superClass_.hide.call(this,!0)};cvox.SearchWidget.prototype.getNameMsg=function(){return["search_widget_intro"]};
+cvox.SearchWidget.prototype.getHelpMsg=function(){return"search_widget_intro_help"};
+cvox.SearchWidget.prototype.onKeyDown=function(a){if(!this.isActive())return!1;var b=this.txtNode_.value;if(8==a.keyCode)0<b.length?(b=b.substring(0,b.length-1),this.txtNode_.value=b,this.beginSearch_(b)):(cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(this.initialNode),cvox.ChromeVox.navigationManager.syncAll());else if(40==a.keyCode)this.next_(b,!1);else if(38==a.keyCode)this.next_(b,!0);else if(13==a.keyCode)this.hide(!0);else if(27==a.keyCode)this.hide(!1);else if(a.ctrlKey&&67==a.keyCode)this.toggleCaseSensitivity_();
+else return cvox.SearchWidget.superClass_.onKeyDown.call(this,a);a.preventDefault();a.stopPropagation();return!0};cvox.SearchWidget.prototype.onKeyPress=function(a){if(!this.isActive())return!1;this.txtNode_.value+=String.fromCharCode(a.charCode);var b=this.txtNode_.value;this.beginSearch_(b);a.preventDefault();a.stopPropagation();return!0};cvox.SearchWidget.prototype.onNavigate=function(){};cvox.SearchWidget.prototype.getPredicate=function(){return null};
+cvox.SearchWidget.prototype.nextResult=function(a){if(!this.isActive())return null;var b=this.txtNode_.value;return this.next_(b,a)};cvox.SearchWidget.prototype.createContainerNode_=function(){var a=document.createElement("div");a.id="cvox-search";a.style.position="fixed";a.style.top="50%";a.style.left="50%";a.style["-webkit-transition"]="all 0.3s ease-in";a.style.opacity="0.0";a.style["z-index"]="2147483647";a.setAttribute("aria-hidden","true");return a};
+cvox.SearchWidget.prototype.createOverlayNode_=function(){var a=document.createElement("div");a.style.position="relative";a.style.left="-50%";a.style.top="-40px";a.style["line-height"]="1.2em";a.style["font-size"]="20px";a.style.padding="30px";a.style["min-width"]="150px";a.style.color="#fff";a.style["background-color"]="rgba(0, 0, 0, 0.7)";a.style["border-radius"]="10px";return a};
+cvox.SearchWidget.prototype.createTextAreaNode_=function(){var a=document.createElement("textarea");a.setAttribute("aria-hidden","true");a.setAttribute("rows","1");a.style.color="#fff";a.style["background-color"]="rgba(0, 0, 0, 0.7)";a.style["vertical-align"]="middle";a.addEventListener("textInput",this.handleSearchChanged_,!1);return a};
+cvox.SearchWidget.prototype.toggleCaseSensitivity_=function(){this.caseSensitive_?(cvox.SearchWidget.caseSensitive_=!1,cvox.ChromeVox.tts.speak("Ignoring case.",0,null)):(this.caseSensitive_=!0,cvox.ChromeVox.tts.speak("Case sensitive.",0,null))};
+cvox.SearchWidget.prototype.getNextResult_=function(a){var b=cvox.ChromeVox.navigationManager.isReversed();this.caseSensitive_||(a=a.toLowerCase());cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0,!1);do{if(this.getPredicate()){var c=this.getPredicate()(cvox.DomUtil.getAncestors(cvox.ChromeVox.navigationManager.getCurrentNode()));if(!c)continue}for(var c=cvox.ChromeVox.navigationManager.getDescription(),d=0;d<c.length;d++){var e=this.caseSensitive_?c[d].text:
+c[d].text.toLowerCase(),f=e.indexOf(a);-1!=f&&e.length>a.length&&(c[d].text=cvox.DomUtil.collapseWhitespace(e.substring(0,f))+", "+a+", "+e.substring(f+a.length),c[d].text=cvox.DomUtil.collapseWhitespace(c[d].text));if(-1!=f)return c}cvox.ChromeVox.navigationManager.setReversed(b)}while(cvox.ChromeVox.navigationManager.navigate(!0,cvox.NavigationShifter.GRANULARITIES.OBJECT))};cvox.SearchWidget.prototype.beginSearch_=function(a){var b=this.getNextResult_(a);this.outputSearchResult_(b,a);this.onNavigate()};
+cvox.SearchWidget.prototype.next_=function(a,b){cvox.ChromeVox.navigationManager.setReversed(!!b);var c=!1;this.getPredicate()?(c=cvox.ChromeVox.navigationManager.findNext(this.getPredicate()),cvox.ChromeVox.navigationManager.setReversed(!!b),c||(cvox.ChromeVox.navigationManager.syncToBeginning(),cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),c=!0)):c=cvox.ChromeVox.navigationManager.navigate(!0);c=c?this.getNextResult_(a):null;this.outputSearchResult_(c,a);this.onNavigate();return c};
+cvox.SearchWidget.prototype.outputSearchResult_=function(a,b){cvox.ChromeVox.tts.stop();a?(this.hasMatch_=!0,cvox.ChromeVoxEventSuspender.withSuspendedEvents(goog.bind(cvox.ChromeVox.navigationManager.syncAll,cvox.ChromeVox.navigationManager))(!0),cvox.ChromeVox.navigationManager.speakDescriptionArray(a,cvox.AbstractTts.QUEUE_MODE_FLUSH,null,cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT),cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("search_help_item"),cvox.AbstractTts.QUEUE_MODE_QUEUE,cvox.AbstractTts.PERSONALITY_ANNOTATION),
+this.outputSearchResultToBraille_(b)):(cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),this.hasMatch_=!1)};
+cvox.SearchWidget.prototype.outputSearchResultToBraille_=function(a){if(cvox.ChromeVox.braille){var b=this.textFromCurrentDescription_(),c=this.caseSensitive_?b:b.toLowerCase();a=this.caseSensitive_?a:a.toLowerCase();c=c.indexOf(a);if(-1==c)console.log("Search string not in result when preparing for Braille.");else{var d=b.length,b=cvox.ChromeVox.msgs.getMsg("mark_as_search_result_brl",[b]),e=b.length,c=c+(e-d);cvox.ChromeVox.braille.write(new cvox.NavBraille({text:b,startIndex:c+a.length,endIndex:c+
+a.length}))}}};cvox.SearchWidget.prototype.textFromCurrentDescription_=function(){for(var a=cvox.ChromeVox.navigationManager.getDescription(),b="",c=0;c<a.length;c++)b+=a[c].text+" ";return b};cvox.SearchWidget.prototype.handleSearchChanged_=function(a){a=a.target.value+a.data;cvox.SearchWidget.prototype.beginSearch_(a)};cvox.OverlayWidget=function(a){cvox.SearchWidget.call(this);this.snippet_=a};goog.inherits(cvox.OverlayWidget,cvox.SearchWidget);
+cvox.OverlayWidget.prototype.show=function(){cvox.OverlayWidget.superClass_.show.call(this);var a=document.createElement("DIV");a.innerHTML=this.snippet_;var b=cvox.DomUtil.elementToPoint(cvox.ChromeVox.navigationManager.getCurrentNode());a.style.position="absolute";a.style.left=b.x;a.style.top=b.y;document.body.appendChild(a);cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(a);this.host_=a};cvox.OverlayWidget.prototype.hide=function(){this.host_.remove();cvox.OverlayWidget.superClass_.hide.call(this)};
+cvox.OverlayWidget.prototype.onKeyDown=function(a){cvox.OverlayWidget.superClass_.onKeyDown.call(this,a);if(13==a.keyCode||27==a.keyCode)return!0;a=cvox.ChromeVox.navigationManager.isReversed();cvox.DomUtil.isDescendantOfNode(cvox.ChromeVox.navigationManager.getCurrentNode(),this.host_)||(a?cvox.ChromeVox.navigationManager.syncToBeginning():cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(this.host_),this.onNavigate(),cvox.ChromeVox.navigationManager.speakDescriptionArray(cvox.ChromeVox.navigationManager.getDescription(),
+0,null))};cvox.KeyboardHelpWidget=function(){cvox.OverlayWidget.call(this,"");this.container_=document.createElement("div");var a=cvox.ChromeVoxKbHandler.handlerKeyMap;a.bindings().forEach(goog.bind(function(a){var c=a.command;a=a.sequence;var d=c;try{var e=cvox.CommandStore.messageForCommand(c);if(!e)return;d=cvox.ChromeVox.msgs.getMsg(e)}catch(f){}e=document.createElement("p");e.id=c;e.setAttribute("role","menuitem");e.textContent=d+" - "+cvox.KeyUtil.keySequenceToString(a,!0);this.container_.appendChild(e)},
+this))};goog.inherits(cvox.KeyboardHelpWidget,cvox.OverlayWidget);goog.addSingletonGetter(cvox.KeyboardHelpWidget);cvox.KeyboardHelpWidget.prototype.show=function(){cvox.KeyboardHelpWidget.superClass_.show.call(this);this.host_.appendChild(this.container_)};cvox.KeyboardHelpWidget.prototype.getNameMsg=function(){return["keyboard_help_intro"]};
+cvox.KeyboardHelpWidget.prototype.onKeyDown=function(a){if(13==a.keyCode){var b=cvox.ChromeVox.navigationManager.getCurrentNode().parentNode.id;this.hide();cvox.ChromeVoxEventSuspender.withSuspendedEvents(cvox.ChromeVoxUserCommands.commands[b])();a.preventDefault();a.stopPropagation();return!0}return cvox.KeyboardHelpWidget.superClass_.onKeyDown.call(this,a)};goog.object={};goog.object.forEach=function(a,b,c){for(var d in a)b.call(c,a[d],d,a)};goog.object.filter=function(a,b,c){var d={},e;for(e in a)b.call(c,a[e],e,a)&&(d[e]=a[e]);return d};goog.object.map=function(a,b,c){var d={},e;for(e in a)d[e]=b.call(c,a[e],e,a);return d};goog.object.some=function(a,b,c){for(var d in a)if(b.call(c,a[d],d,a))return!0;return!1};goog.object.every=function(a,b,c){for(var d in a)if(!b.call(c,a[d],d,a))return!1;return!0};
+goog.object.getCount=function(a){var b=0,c;for(c in a)b++;return b};goog.object.getAnyKey=function(a){for(var b in a)return b};goog.object.getAnyValue=function(a){for(var b in a)return a[b]};goog.object.contains=function(a,b){return goog.object.containsValue(a,b)};goog.object.getValues=function(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b};goog.object.getKeys=function(a){var b=[],c=0,d;for(d in a)b[c++]=d;return b};
+goog.object.getValueByKeys=function(a,b){for(var c=goog.isArrayLike(b),d=c?b:arguments,c=c?0:1;c<d.length&&(a=a[d[c]],goog.isDef(a));c++);return a};goog.object.containsKey=function(a,b){return b in a};goog.object.containsValue=function(a,b){for(var c in a)if(a[c]==b)return!0;return!1};goog.object.findKey=function(a,b,c){for(var d in a)if(b.call(c,a[d],d,a))return d};goog.object.findValue=function(a,b,c){return(b=goog.object.findKey(a,b,c))&&a[b]};
+goog.object.isEmpty=function(a){for(var b in a)return!1;return!0};goog.object.clear=function(a){for(var b in a)delete a[b]};goog.object.remove=function(a,b){var c;(c=b in a)&&delete a[b];return c};goog.object.add=function(a,b,c){if(b in a)throw Error('The object already contains the key "'+b+'"');goog.object.set(a,b,c)};goog.object.get=function(a,b,c){return b in a?a[b]:c};goog.object.set=function(a,b,c){a[b]=c};goog.object.setIfUndefined=function(a,b,c){return b in a?a[b]:a[b]=c};
+goog.object.clone=function(a){var b={},c;for(c in a)b[c]=a[c];return b};goog.object.unsafeClone=function(a){var b=goog.typeOf(a);if("object"==b||"array"==b){if(a.clone)return a.clone();var b="array"==b?[]:{},c;for(c in a)b[c]=goog.object.unsafeClone(a[c]);return b}return a};goog.object.transpose=function(a){var b={},c;for(c in a)b[a[c]]=c;return b};goog.object.PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
+goog.object.extend=function(a,b){for(var c,d,e=1;e<arguments.length;e++){d=arguments[e];for(c in d)a[c]=d[c];for(var f=0;f<goog.object.PROTOTYPE_FIELDS_.length;f++)c=goog.object.PROTOTYPE_FIELDS_[f],Object.prototype.hasOwnProperty.call(d,c)&&(a[c]=d[c])}};
+goog.object.create=function(a){var b=arguments.length;if(1==b&&goog.isArray(arguments[0]))return goog.object.create.apply(null,arguments[0]);if(b%2)throw Error("Uneven number of arguments");for(var c={},d=0;d<b;d+=2)c[arguments[d]]=arguments[d+1];return c};goog.object.createSet=function(a){var b=arguments.length;if(1==b&&goog.isArray(arguments[0]))return goog.object.createSet.apply(null,arguments[0]);for(var c={},d=0;d<b;d++)c[arguments[d]]=!0;return c};
+goog.object.createImmutableView=function(a){var b=a;Object.isFrozen&&!Object.isFrozen(a)&&(b=Object.create(a),Object.freeze(b));return b};goog.object.isImmutableView=function(a){return!!Object.isFrozen&&Object.isFrozen(a)};cvox.UserEventDetail=function(a){this.command=this.category="";-1!=cvox.UserEventDetail.JUMP_COMMANDS.indexOf(a.command)&&(this.command=a.command,this.category=cvox.UserEventDetail.Category.JUMP);this.customCommand="";a.customCommand&&(this.customCommand=a.customCommand,this.category=cvox.UserEventDetail.Category.CUSTOM);this.status=cvox.UserEventDetail.Status.PENDING;switch(a.status){case cvox.UserEventDetail.Status.SUCCESS:this.status=cvox.UserEventDetail.Status.SUCCESS;break;case cvox.UserEventDetail.Status.FAILURE:this.status=
+cvox.UserEventDetail.Status.FAILURE}this.resultNode=null;a.resultNode&&cvox.DomUtil.isAttachedToDocument(a.resultNode)&&(this.resultNode=a.resultNode)};cvox.UserEventDetail.Category={JUMP:"ATJumpEvent",CUSTOM:"ATCustomEvent"};cvox.UserEventDetail.Status={PENDING:"PENDING",SUCCESS:"SUCCESS",FAILURE:"FAILURE"};cvox.UserEventDetail.JUMP_COMMANDS="nextCheckbox previousCheckbox nextRadio previousRadio nextSlider previousSlider nextGraphic previousGraphic nextButton previousButton nextComboBox previousComboBox nextEditText previousEditText nextHeading previousHeading nextHeading1 previousHeading1 nextHeading2 previousHeading2 nextHeading3 previousHeading3 nextHeading4 previousHeading4 nextHeading5 previousHeading5 nextHeading6 previousHeading6 nextLink previousLink nextMath previousMath nextTable previousTable nextList previousList nextListItem previousListItem nextFormField previousFormField nextLandmark previousLandmark nextSection previousSection nextControl previousControl".split(" ");
+cvox.UserEventDetail.prototype.createEventObject=function(){var a=document.createEvent("CustomEvent");a.initCustomEvent(this.category,!0,!0,this);return a};var extractMenuList_=function(a){for(;a!==document;){var b=a.getAttribute("contextMenuActions");if(b)return JSON.parse(b);a=a.parentNode}return null},getCurrentElement_=function(){for(var a=cvox.ChromeVox.navigationManager.getCurrentNode();a.nodeType!==Node.ELEMENT_NODE;)a=a.parentNode;return a};
+cvox.ContextMenuWidget=function(){cvox.OverlayWidget.call(this,"");this.container_=document.createElement("div");this.triggerElement_=getCurrentElement_();(this.menuList=extractMenuList_(this.triggerElement_))?this.menuList.forEach(goog.bind(function(a){if(a.desc||a.cmd){var b=a.desc;a=a.cmd;var c=document.createElement("p");c.id=a;c.textContent=b;c.setAttribute("role","menuitem");this.container_.appendChild(c)}},this)):console.log("No context menu found.")};goog.inherits(cvox.ContextMenuWidget,cvox.OverlayWidget);
+cvox.ContextMenuWidget.prototype.show=function(){this.menuList&&(cvox.ContextMenuWidget.superClass_.show.call(this),this.host_.appendChild(this.container_))};cvox.ContextMenuWidget.prototype.getNameMsg=function(){return["context_menu_intro"]};
+cvox.ContextMenuWidget.prototype.onKeyDown=function(a){if(13==a.keyCode){var b=cvox.ChromeVox.navigationManager.getCurrentNode(),b=b.parentNode.id,b=new cvox.UserEventDetail({customCommand:b}),b=b.createEventObject();this.triggerElement_.dispatchEvent(b);this.hide();a.preventDefault();a.stopPropagation();return!0}return cvox.ContextMenuWidget.superClass_.onKeyDown.call(this,a)};cvox.NodeSearchWidget=function(a,b){this.typeMsg_=a;this.predicate_=b;cvox.SearchWidget.call(this)};goog.inherits(cvox.NodeSearchWidget,cvox.SearchWidget);cvox.NodeSearchWidget.prototype.getNameMsg=function(){return["choice_widget_name",[cvox.ChromeVox.msgs.getMsg(this.typeMsg_)]]};cvox.NodeSearchWidget.prototype.getHelpMsg=function(){return"choice_widget_help"};cvox.NodeSearchWidget.prototype.getPredicate=function(){return this.predicate_};
+cvox.NodeSearchWidget.create=function(a,b){return new cvox.NodeSearchWidget(a,b)};cvox.SelectWidget=function(a){cvox.OverlayWidget.call(this,"");this.selectNode_=a};goog.inherits(cvox.SelectWidget,cvox.OverlayWidget);
+cvox.SelectWidget.prototype.show=function(){cvox.SelectWidget.superClass_.show.call(this);var a=document.createElement("div");a.setAttribute("role","menu");for(var b=0,c=null;c=this.selectNode_.options[b];b++){var d=document.createElement("p");d.innerHTML=c.innerHTML;d.id=b;d.setAttribute("role","menuitem");a.appendChild(d)}this.host_.appendChild(a);b=this.selectNode_.selectedIndex;"number"==typeof b&&cvox.ChromeVox.syncToNode(a.children[b],!0)};
+cvox.SelectWidget.prototype.hide=function(){var a=document.createEvent("Event");a.initEvent("change",!1,!1);this.selectNode_.dispatchEvent(a);cvox.SelectWidget.superClass_.hide.call(this,!0)};cvox.SelectWidget.prototype.onNavigate=function(){var a=this;cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(){var b=cvox.ChromeVox.navigationManager.getCurrentNode().parentNode.id;a.selectNode_.selectedIndex=b})()};cvox.SelectWidget.prototype.getNameMsg=function(){return["aria_role_menu"]};cvox.FocusUtil=function(){};cvox.FocusUtil.INPUT_TYPE_ACCEPTS_SELECTION_TABLE={hidden:!1,text:!0,search:!0,tel:!0,url:!0,email:!0,password:!0,datetime:!1,date:!1,month:!1,week:!1,time:!1,"datetime-local":!1,number:!1,range:!1,color:!1,checkbox:!1,radio:!1,file:!1,submit:!1,image:!1,reset:!1,button:!1};
+cvox.FocusUtil.isFocusInTextInputField=function(){var a=document.activeElement;return a?a.isContentEditable||"textbox"==a.getAttribute("role")?!0:"true"==a.getAttribute("readOnly")?!1:"TEXTAREA"===a.tagName||"SELECT"===a.tagName?!0:"INPUT"===a.tagName?a.hasAttribute("type")?(a=a.getAttribute("type").toLowerCase(),cvox.FocusUtil.INPUT_TYPE_ACCEPTS_SELECTION_TABLE[a]):!0:!1:!1};cvox.SpokenListBuilder=function(){this.list_=[]};cvox.SpokenListBuilder.prototype.flush=function(a){this.list_.push([a,cvox.AbstractTts.QUEUE_MODE_FLUSH]);return this};cvox.SpokenListBuilder.prototype.build=function(){return this.list_};cvox.RunnerInterface=function(){};cvox.RunnerInterface.prototype.setFocus=function(){};cvox.AbstractTestCase=function(){};cvox.TestTts=function(){cvox.AbstractTts.call(this);this.utterances_=[]};goog.inherits(cvox.TestTts,cvox.AbstractTts);cvox.TestTts.prototype.sentinelText_="@@@STOP@@@";cvox.TestTts.prototype.speak=function(a,b,c){this.utterances_.push({text:a,queueMode:b});c&&void 0!=c.endCallback&&(a=this.utterances_.length,this.utterances_[a-1].text!=this.sentinelText_&&c.endCallback())};cvox.HostFactory.ttsConstructor=cvox.TestTts;cvox.AutoRunner=function(){new cvox.TestTts};cvox.AutoRunner.TestSummary=function(a,b,c,d){this.tag=a;this.status=c;this.scope=d};cvox.AutoRunner.PASS="pass";cvox.AutoRunner.FAIL="fail";cvox.AutoRunner.prototype.setFocus=function(a){document.getElementById(a).focus();return this};cvox.ChromeVoxUserCommands={};cvox.ChromeVoxUserCommands.init_=function(){if(!cvox.ChromeVoxUserCommands.commands){cvox.ChromeVoxUserCommands.commands={};for(var a in cvox.CommandStore.CMD_WHITELIST)cvox.ChromeVoxUserCommands.commands[a]=cvox.ChromeVoxUserCommands.createCommand_(a)}};cvox.ChromeVoxUserCommands.wasMouseClicked=!1;cvox.ChromeVoxUserCommands.enableCommandDispatchingToPage=!0;
+cvox.ChromeVoxUserCommands.handleTabAction_=function(){cvox.ChromeVox.tts.stop();if(!cvox.ChromeVox.navigationManager.resolve(cvox.DomUtil.isFocusable))return cvox.ChromeVox.navigationManager.setFocus(),!1;var a=cvox.ChromeVoxUserCommands.isFocusedOnLinkControl_();if(a)return!0;var b=a=null,b=window.getSelection();cvox.ChromeVoxUserCommands.wasMouseClicked?cvox.ChromeVoxUserCommands.wasMouseClicked=!1:b=null;null==b||null==b.anchorNode||null==b.focusNode?(a=cvox.ChromeVox.navigationManager.getCurrentNode(),
+b=cvox.ChromeVox.navigationManager.getCurrentNode()):(a=b.anchorNode,b=b.focusNode);if(null==a||null==b)return!0;if(cvox.DomUtil.isFocusable(a))return a.focus(),!0;if(cvox.DomUtil.isFocusable(b))return b.focus(),!0;if(cvox.DomUtil.isFocusable(a.parentNode))return a.parentNode.focus(),!0;if(cvox.DomUtil.isFocusable(b.parentNode))return b.parentNode.focus(),!0;b=cvox.ChromeVoxUserCommands.createTabDummySpan_();a.parentNode.insertBefore(b,a);b.focus();return!0};
+cvox.ChromeVoxUserCommands.isFocusedOnLinkControl_=function(){var a="A";return document.activeElement.tagName==a||cvox.DomUtil.isControl(document.activeElement)?!0:!1};cvox.ChromeVoxUserCommands.removeTabDummySpan=function(){var a=document.getElementById("ChromeVoxTabDummySpan");a&&document.activeElement!=a&&a.parentNode.removeChild(a)};cvox.ChromeVoxUserCommands.createTabDummySpan_=function(){var a=document.createElement("span");a.id="ChromeVoxTabDummySpan";a.tabIndex=-1;return a};
+cvox.ChromeVoxUserCommands.createCommand_=function(a){return goog.bind(function(b){b=cvox.ChromeVoxUserCommands.lookupCommand_(a,b);return cvox.ChromeVoxUserCommands.dispatchCommand_(b)},cvox.ChromeVoxUserCommands)};
+cvox.ChromeVoxUserCommands.dispatchCommand_=function(a){if(cvox.Widget.isActive()||!cvox.PlatformUtil.matchesPlatform(a.platformFilter)||a.skipInput&&cvox.FocusUtil.isFocusInTextInputField())return!0;if(cvox.ChromeVoxUserCommands.enableCommandDispatchingToPage&&-1!=cvox.UserEventDetail.JUMP_COMMANDS.indexOf(a.command)){a=new cvox.UserEventDetail({command:a.command});a=a.createEventObject();var b=cvox.ChromeVox.navigationManager.getCurrentNode();b||(b=document.body);b.dispatchEvent(a);return!1}return cvox.ChromeVoxUserCommands.doCommand_(a)};
+cvox.ChromeVoxUserCommands.doCommand_=function(a){if(cvox.Widget.isActive()||!cvox.PlatformUtil.matchesPlatform(a.platformFilter)||a.skipInput&&cvox.FocusUtil.isFocusInTextInputField()||a.disallowOOBE&&document.URL.match(/^chrome:\/\/oobe/i))return!0;var b=a.command;a.allowEvents||cvox.ChromeVoxEventSuspender.enterSuspendEvents();a.disallowContinuation&&cvox.ChromeVox.navigationManager.stopReading(!0);a.forward?cvox.ChromeVox.navigationManager.setReversed(!1):a.backward&&cvox.ChromeVox.navigationManager.setReversed(!0);
+a.findNext&&(b="find",a.announce=!0);var c="",d="",e=!1;switch(b){case "handleTab":case "handleTabPrev":e=cvox.ChromeVoxUserCommands.handleTabAction_();break;case "forward":case "backward":e=!cvox.ChromeVox.navigationManager.navigate();break;case "right":case "left":cvox.ChromeVox.navigationManager.subnavigate();break;case "find":if(!a.findNext)throw"Invalid find command.";var f=cvox.CommandStore.NODE_INFO_MAP[a.findNext],g=f.predicate,h=cvox.DomPredicates[g],k="",l="";a.forward?(l=cvox.ChromeVox.msgs.getMsg("wrapped_to_top"),
+k=cvox.ChromeVox.msgs.getMsg(f.forwardError)):a.backward&&(l=cvox.ChromeVox.msgs.getMsg("wrapped_to_bottom"),k=cvox.ChromeVox.msgs.getMsg(f.backwardError));var f=null,m=a.status||cvox.UserEventDetail.Status.PENDING,p=a.resultNode||null;switch(m){case cvox.UserEventDetail.Status.SUCCESS:p&&cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(p,!0);break;case cvox.UserEventDetail.Status.FAILURE:d=k;break;default:f=cvox.ChromeVox.navigationManager.findNext(h,g),f||(cvox.ChromeVox.navigationManager.saveSel(),
+d=l,cvox.ChromeVox.navigationManager.syncToBeginning(),cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),f=cvox.ChromeVox.navigationManager.findNext(h,g,!0),f||(d=k,cvox.ChromeVox.navigationManager.restoreSel()))}f&&"IFRAME"==f.start.node.tagName&&(a.announce=!1);break;case "previousGranularity":cvox.ChromeVox.navigationManager.makeLessGranular(!0);d=cvox.ChromeVox.navigationManager.getGranularityMsg();break;case "nextGranularity":cvox.ChromeVox.navigationManager.makeMoreGranular(!0);d=
+cvox.ChromeVox.navigationManager.getGranularityMsg();break;case "previousCharacter":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.CHARACTER);break;case "nextCharacter":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.CHARACTER);break;case "previousWord":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.WORD);break;case "nextWord":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.WORD);
+break;case "previousSentence":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.SENTENCE);break;case "nextSentence":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.SENTENCE);break;case "previousLine":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.LINE);break;case "nextLine":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.LINE);break;case "previousObject":cvox.ChromeVox.navigationManager.navigate(!1,
+cvox.NavigationShifter.GRANULARITIES.OBJECT);break;case "nextObject":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.OBJECT);break;case "previousGroup":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.GROUP);break;case "nextGroup":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.GROUP);break;case "previousRow":case "previousCol":b="previousRow"==b?"nextRow":"nextCol";case "nextRow":case "nextCol":cvox.ChromeVox.navigationManager.performAction("enterShifterSilently");
+cvox.ChromeVox.navigationManager.performAction(b);break;case "moveToStartOfLine":case "moveToEndOfLine":cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.LINE);cvox.ChromeVox.navigationManager.sync();cvox.ChromeVox.navigationManager.collapseSelection();break;case "readFromHere":cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0,!0);cvox.ChromeVox.navigationManager.startReading(cvox.AbstractTts.QUEUE_MODE_FLUSH);break;case "cycleTypingEcho":break;
+case "jumpToTop":case cvox.BrailleKeyCommand.TOP:cvox.ChromeVox.navigationManager.syncToBeginning();break;case "jumpToBottom":case cvox.BrailleKeyCommand.BOTTOM:cvox.ChromeVox.navigationManager.syncToBeginning();break;case "stopSpeech":cvox.ChromeVox.navigationManager.stopReading(!0);break;case "toggleKeyboardHelp":cvox.KeyboardHelpWidget.getInstance().toggle();break;case "help":cvox.ChromeVox.tts.stop();break;case "contextMenu":g=cvox.ChromeVox.navigationManager.getCurrentNode();"SELECT"!=g.tagName||
+g.multiple?(g=new cvox.ContextMenuWidget,g.toggle()):(new cvox.SelectWidget(g)).show();break;case "showBookmarkManager":break;case "showOptionsPage":cvox.ChromeVox.tts.stop();break;case "showKbExplorerPage":cvox.ChromeVox.tts.stop();break;case "readLinkURL":g=document.activeElement;h=window.getSelection().anchorNode;k="";"A"==g.tagName?k=cvox.DomUtil.getLinkURL(g):h&&(k=cvox.DomUtil.getLinkURL(h.parentNode));""!=k?cvox.ChromeVox.tts.speak(k):cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("no_url_found"));
+break;case "readCurrentTitle":cvox.ChromeVox.tts.speak(document.title);break;case "readCurrentURL":cvox.ChromeVox.tts.speak(document.URL);break;case "performDefaultAction":cvox.DomPredicates.linkPredicate([document.activeElement])&&(a.announce=!0,cvox.DomUtil.isInternalLink(document.activeElement)&&(cvox.DomUtil.syncInternalLink(document.activeElement),cvox.ChromeVox.navigationManager.sync()));break;case "forceClickOnCurrentItem":d=cvox.ChromeVox.msgs.getMsg("element_clicked");g=cvox.ChromeVox.navigationManager.getCurrentNode();
+cvox.DomUtil.clickElem(g,!1,!1);break;case "forceDoubleClickOnCurrentItem":d=cvox.ChromeVox.msgs.getMsg("element_double_clicked");g=cvox.ChromeVox.navigationManager.getCurrentNode();cvox.DomUtil.clickElem(g,!1,!1,!0);break;case "toggleChromeVox":break;case "fullyDescribe":g=cvox.ChromeVox.navigationManager.getFullDescription();cvox.ChromeVox.navigationManager.speakDescriptionArray(g,cvox.AbstractTts.QUEUE_MODE_FLUSH,null);break;case "speakTimeAndDate":g=new Date;cvox.ChromeVox.tts.speak(g.toLocaleTimeString()+
+", "+g.toLocaleDateString());break;case "toggleSelection":d=cvox.ChromeVox.navigationManager.togglePageSel();d=cvox.ChromeVox.msgs.getMsg(d?"begin_selection":"end_selection");break;case "startHistoryRecording":cvox.History.getInstance().startRecording();break;case "stopHistoryRecording":cvox.History.getInstance().stopRecording();break;case "enableConsoleTts":cvox.ConsoleTts.getInstance().setEnabled(!0);break;case "goToFirstCell":case "goToLastCell":case "goToRowFirstCell":case "goToRowLastCell":case "goToColFirstCell":case "goToColLastCell":case "announceHeaders":case "speakTableLocation":case "exitShifterContent":cvox.DomPredicates.tablePredicate(cvox.DomUtil.getAncestors(cvox.ChromeVox.navigationManager.getCurrentNode()))&&
+cvox.ChromeVox.navigationManager.performAction(b)||(c="not_inside_table");break;case "enterShifter":case "exitShifter":cvox.ChromeVox.navigationManager.performAction(b);break;case "decreaseTtsRate":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.RATE,!1);break;case "increaseTtsRate":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.RATE,!0);break;case "decreaseTtsPitch":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.PITCH,!1);break;case "increaseTtsPitch":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.PITCH,
+!0);break;case "decreaseTtsVolume":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.VOLUME,!1);break;case "increaseTtsVolume":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.VOLUME,!0);break;case "cyclePunctuationEcho":break;case "toggleStickyMode":break;case "toggleKeyPrefix":cvox.ChromeVox.keyPrefixOn=!cvox.ChromeVox.keyPrefixOn;break;case "toggleSearchWidget":cvox.SearchWidget.getInstance().toggle();break;case "toggleEarcons":d=cvox.ChromeVox.earcons.toggle()?cvox.ChromeVox.msgs.getMsg("earcons_on"):
+cvox.ChromeVox.msgs.getMsg("earcons_off");break;case "showHeadingsList":case "showLinksList":case "showFormsList":case "showTablesList":case "showLandmarksList":if(!a.nodeList)break;g=cvox.CommandStore.NODE_INFO_MAP[a.nodeList];cvox.NodeSearchWidget.create(g.typeMsg,cvox.DomPredicates[g.predicate]).show();break;case "openLongDesc":g=cvox.ChromeVox.navigationManager.getCurrentNode();cvox.DomUtil.hasLongDesc(g)||cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("no_long_desc"),cvox.AbstractTts.QUEUE_MODE_FLUSH,
+cvox.AbstractTts.PERSONALITY_ANNOTATION);break;case "pauseAllMedia":k=document.getElementsByTagName("VIDEO");for(g=0;h=k[g];g++)h.pause();k=document.getElementsByTagName("AUDIO");for(g=0;h=k[g];g++)h.pause();break;case "toggleSemantics":cvox.TraverseMath.toggleSemantic()?cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("semantics_on")):cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("semantics_off"));break;case cvox.BrailleKeyCommand.ROUTING:g=cvox.ChromeVox.navigationManager.getBraille();
+g=g.text.getSpans(a.displayPosition||0);g=g.filter(function(a){return a instanceof Node})[0];cvox.DomUtil.clickElem(g||cvox.ChromeVox.navigationManager.getCurrentNode(),!1,!0);break;case cvox.BrailleKeyCommand.PAN_LEFT:case cvox.BrailleKeyCommand.LINE_UP:case cvox.BrailleKeyCommand.PAN_RIGHT:case cvox.BrailleKeyCommand.LINE_DOWN:cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.LINE);break;case "debug":break;case "nop":break;default:throw"Command behavior not defined: "+
+b;}""!=c?cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg(c),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION):cvox.ChromeVox.navigationManager.isReading()?a.disallowContinuation?cvox.ChromeVox.navigationManager.stopReading(!0):"readFromHere"!=b&&cvox.ChromeVox.navigationManager.skip():a.announce&&cvox.ChromeVox.navigationManager.finishNavCommand(d);a.allowEvents||cvox.ChromeVoxEventSuspender.exitSuspendEvents();return!!a.doDefault||e};
+cvox.ChromeVoxUserCommands.handleChromeVoxUserEvent=function(a){a=new cvox.UserEventDetail(a.detail);a.command&&cvox.ChromeVoxUserCommands.doCommand_(cvox.ChromeVoxUserCommands.lookupCommand_(a.command,a))};cvox.ChromeVoxUserCommands.lookupCommand_=function(a,b){var c=cvox.CommandStore.CMD_WHITELIST[a];if(!c)throw"Invalid command: "+a;c=goog.object.clone(c);c.command=a;b&&goog.object.extend(c,b);return c};cvox.ChromeVoxUserCommands.init_();cvox.ChromeVoxKbHandler={};cvox.ChromeVoxKbHandler.loadKeyToFunctionsTable=function(a){window.JSON&&(cvox.ChromeVoxKbHandler.handlerKeyMap=cvox.KeyMap.fromJSON(a))};cvox.ChromeVoxKbHandler.sortKeyToFunctionsTable_=function(a){function b(a,b){return a[0].length<b[0].length?-1:b[0].length<a[0].length?1:a[0].localeCompare(b[0])}var c=[],d;for(d in a)c.push([d,a[d]]);c.sort(b);return c};
+cvox.ChromeVoxKbHandler.basicKeyDownActionsListener=function(a){var b=cvox.KeyUtil.keyEventToKeySequence(a);a=void 0!=cvox.ChromeVoxKbHandler.handlerKeyMap?cvox.ChromeVoxKbHandler.handlerKeyMap.commandForKey(b):null;if(!a)return!cvox.KeyUtil.sequencing;if(!cvox.ChromeVox.isActive&&"toggleChromeVox"!=a)return!0;var c=!0,d=cvox.ChromeVoxUserCommands.commands[a];d?(b=cvox.History.getInstance(),b.enterUserCommand(a),c=d(),b.exitUserCommand(a)):b.cvoxModifier&&(c=!1);cvox.ChromeVox.entireDocumentIsHidden&&
+(c=!0);return c};cvox.LiveRegions=function(){};cvox.LiveRegions.pageLoadTime=null;cvox.LiveRegions.INITIAL_SILENCE_MS=2E3;cvox.LiveRegions.lastAnnouncedMap={};cvox.LiveRegions.MAX_DISCARD_DUPS_MS=2E3;cvox.LiveRegions.lastAnnouncedTime=null;cvox.LiveRegions.nodesAlreadyHandled=[];
+cvox.LiveRegions.init=function(a,b,c){void 0==b&&(b=cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.LiveRegions.pageLoadTime=a;if(c||!document.hasFocus())return!1;var d=!1;a=cvox.AriaUtil.getLiveRegions(document.body);for(c=0;c<a.length;c++)cvox.LiveRegions.handleOneChangedNode(a[c],a[c],!1,!1,function(a,c){a||b!=cvox.AbstractTts.QUEUE_MODE_FLUSH||(b=cvox.AbstractTts.QUEUE_MODE_QUEUE);var g=new cvox.NavigationSpeaker;g.speakDescriptionArray(c,b,null);d=!0});cvox.Interframe.addListener(function(a){if("speakLiveRegion"==
+a.command)for(var b=document.getElementsByTagName("iframe"),c=0,d;d=b[c];c++)if(d.src==a.src){if(!cvox.DomUtil.isVisible(d))break;d=JSON.parse(a.content);for(var k=[],l=0,m;m=d[l];l++)k.push(new cvox.NavDescription(m));(new cvox.NavigationSpeaker).speakDescriptionArray(k,a.queueMode,null)}});return d};
+cvox.LiveRegions.processMutations=function(a,b){cvox.LiveRegions.nodesAlreadyHandled=[];a.forEach(function(a){if(!a.target.hasAttribute||!a.target.hasAttribute("cvoxIgnore")){if(a.addedNodes)for(var d=0;d<a.addedNodes.length;d++)a.addedNodes[d].hasAttribute&&a.addedNodes[d].hasAttribute("cvoxIgnore")||cvox.LiveRegions.handleOneChangedNode(a.addedNodes[d],a.target,!1,!0,b);if(a.removedNodes)for(d=0;d<a.removedNodes.length;d++)a.removedNodes[d].hasAttribute&&a.removedNodes[d].hasAttribute("cvoxIgnore")||
+cvox.LiveRegions.handleOneChangedNode(a.removedNodes[d],a.target,!0,!1,b);"characterData"==a.type&&cvox.LiveRegions.handleOneChangedNode(a.target,a.target,!1,!1,b);if("class"==a.attributeName||"style"==a.attributeName||"hidden"==a.attributeName){var e=a.attributeName,d=a.target,f=!cvox.DomUtil.isVisible(d),g=document.createElement("div");g.setAttribute("cvoxIgnore","1");g.setAttribute("class",d.getAttribute("class"));g.setAttribute("style",d.getAttribute("style"));g.setAttribute("hidden",d.getAttribute("hidden"));
+g.setAttribute(e,a.oldValue);e=!0;d.parentElement?(d.parentElement.appendChild(g),e=!cvox.DomUtil.isVisible(g),d.parentElement.removeChild(g)):e=!cvox.DomUtil.isVisible(g);!0===e&&!1===f?cvox.LiveRegions.handleOneChangedNode(a.target,a.target,!1,!0,b):!1===e&&!0===f&&cvox.LiveRegions.handleOneChangedNode(a.target,a.target,!0,!1,b)}}});cvox.LiveRegions.nodesAlreadyHandled.length=0};
+cvox.LiveRegions.handleOneChangedNode=function(a,b,c,d,e){var f=c?b:a;f instanceof Element||(f=f.parentElement);for(;f&&!cvox.AriaUtil.getAriaLive(f);)f=f.parentElement;if(!f){if(d&&a!=document.body)for(a=cvox.AriaUtil.getLiveRegions(a),d=0;d<a.length;d++)cvox.LiveRegions.handleOneChangedNode(a[d],b,c,!1,e)}else if(!(0<=cvox.LiveRegions.nodesAlreadyHandled.indexOf(a)||(cvox.LiveRegions.nodesAlreadyHandled.push(a),cvox.AriaUtil.getAriaBusy(f)))){if(c){if(!cvox.AriaUtil.getAriaRelevant(f,"removals"))return}else if(!cvox.AriaUtil.getAriaRelevant(f,
+"additions"))return;cvox.LiveRegions.announceChange(a,f,c,e)}};
+cvox.LiveRegions.announceChange=function(a,b,c,d){var e=new Date-cvox.LiveRegions.pageLoadTime;if(!("alert"!=cvox.AriaUtil.getRoleAttribute(b)&&e<cvox.LiveRegions.INITIAL_SILENCE_MS)&&cvox.DomUtil.isVisible(b)){if(a!=b)for(var f=a.parentElement;f;){(cvox.AriaUtil.getAriaAtomic(f)||cvox.AriaUtil.isLeafElement(f)||cvox.AriaUtil.isControlWidget(f))&&!cvox.AriaUtil.isCompositeControl(f)&&(a=f);if(f==b)break;f=f.parentElement}a=cvox.LiveRegions.getNavDescriptionsRecursive(a);if(0!=a.length){c&&(a=[new cvox.NavDescription({context:cvox.ChromeVox.msgs.getMsg("live_regions_removed"),
+text:""})].concat(a));if("alert"==cvox.AriaUtil.getRoleAttribute(b)&&e<cvox.LiveRegions.INITIAL_SILENCE_MS){c="";for(e=0;e<a.length;e++)c+=a[e].text,c+=a[e].userValue;if(""==cvox.DomUtil.collapseWhitespace(c))return}c=new Date;for(var g in cvox.LiveRegions.lastAnnouncedMap)c-cvox.LiveRegions.lastAnnouncedMap[g]>cvox.LiveRegions.MAX_DISCARD_DUPS_MS&&delete cvox.LiveRegions.lastAnnouncedMap[g];g=a.reduce(function(a,b){return a+"|"+b.text},"");cvox.LiveRegions.lastAnnouncedMap[g]||(cvox.LiveRegions.lastAnnouncedMap[g]=
+c,b="assertive"==cvox.AriaUtil.getAriaLive(b),cvox.Interframe.isIframe()&&!document.hasFocus()?cvox.Interframe.sendMessageToParentWindow({command:"speakLiveRegion",content:JSON.stringify(a),queueMode:b?0:1,src:window.location.href}):d(b,a))}}};
+cvox.LiveRegions.getNavDescriptionsRecursive=function(a){return cvox.AriaUtil.getAriaAtomic(a)||cvox.DomUtil.isLeafNode(a)?(a=cvox.DescriptionUtil.getDescriptionFromAncestors([a],!0,cvox.ChromeVox.verbosity),a.isEmpty()?[]:[a]):cvox.DescriptionUtil.getFullDescriptionsFromChildren(null,a)};cvox.LiveRegionsDeprecated=function(){};cvox.LiveRegionsDeprecated.trackedRegions=[];cvox.LiveRegionsDeprecated.previousRegionValue=[];cvox.LiveRegionsDeprecated.pageLoadTime=null;cvox.LiveRegionsDeprecated.INITIAL_SILENCE_MS=2E3;
+cvox.LiveRegionsDeprecated.init=function(a,b,c){void 0==b&&(b=cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.LiveRegionsDeprecated.pageLoadTime=a;a=!1;for(var d=cvox.AriaUtil.getLiveRegions(document.body),e=0;e<d.length;e++)cvox.LiveRegionsDeprecated.updateLiveRegion(d[e],b,c)&&(a=!0,b=cvox.AbstractTts.QUEUE_MODE_QUEUE);return a};
+cvox.LiveRegionsDeprecated.updateLiveRegion=function(a,b,c){if(cvox.AriaUtil.getAriaBusy(a)||!cvox.DomUtil.isVisible(a))return!1;var d=cvox.LiveRegionsDeprecated.trackedRegions.indexOf(a),e;0<=d?e=cvox.LiveRegionsDeprecated.previousRegionValue[d]:(d=cvox.LiveRegionsDeprecated.trackedRegions.length,e=[],cvox.LiveRegionsDeprecated.trackedRegions.push(a),cvox.LiveRegionsDeprecated.previousRegionValue.push([]));var f=cvox.LiveRegionsDeprecated.buildCurrentLiveRegionValue(a),g=new Date-cvox.LiveRegionsDeprecated.pageLoadTime;
+if("alert"!=cvox.AriaUtil.getRoleAttribute(a)&&g<cvox.LiveRegionsDeprecated.INITIAL_SILENCE_MS)return cvox.LiveRegionsDeprecated.previousRegionValue[d]=f,!1;if("alert"==cvox.AriaUtil.getRoleAttribute(a)&&g<cvox.LiveRegionsDeprecated.INITIAL_SILENCE_MS){for(var h="",g=0;g<f.length;g++)h+=f[g].text,h+=f[g].userValue;if(""==cvox.DomUtil.collapseWhitespace(h))return cvox.LiveRegionsDeprecated.previousRegionValue[d]=f,!1}for(var k={},g=0;g<e.length;g++)k[e[g].toString()]=!0;for(var l={},g=0;g<f.length;g++)l[f[g].toString()]=
+!0;h=[];if(cvox.AriaUtil.getAriaRelevant(a,"additions"))for(g=0;g<f.length;g++)k[f[g].toString()]||h.push(f[g]);k=[];if(cvox.AriaUtil.getAriaRelevant(a,"removals"))for(g=0;g<e.length;g++)l[e[g].toString()]||k.push(e[g]);e=[];e=0==h.length&&0<k.length?[new cvox.NavDescription({context:cvox.ChromeVox.msgs.getMsg("live_regions_removed"),text:""})].concat(k):h;cvox.LiveRegionsDeprecated.previousRegionValue[d]=f;if(c||0==e.length)return!1;a=cvox.AriaUtil.getAriaLive(a);"polite"==a&&(b=cvox.AbstractTts.QUEUE_MODE_QUEUE);
+for(g=0;g<e.length;g++)e[g].speak(b),b=cvox.AbstractTts.QUEUE_MODE_QUEUE;return!0};
+cvox.LiveRegionsDeprecated.buildCurrentLiveRegionValue=function(a){if(cvox.AriaUtil.getAriaAtomic(a)||cvox.DomUtil.isLeafNode(a)){var b=cvox.DescriptionUtil.getDescriptionFromAncestors([a],!0,cvox.ChromeVox.verbosity);return b.isEmpty()?[]:[b]}var c=[],b=cvox.DescriptionUtil.getDescriptionFromAncestors([a],!1,cvox.ChromeVox.verbosity);b.isEmpty()||c.push(b);for(b=0;b<a.childNodes.length;b++){var d=a.childNodes[b];cvox.DomUtil.isVisible(d,{checkAncestors:!1})&&!cvox.AriaUtil.isHidden(d)&&(d=cvox.LiveRegionsDeprecated.buildCurrentLiveRegionValue(d),
+c=c.concat(d))}return c};cvox.ChromeVoxEventWatcherUtil={};cvox.ChromeVoxEventWatcher=function(){};cvox.ChromeVoxEventWatcher.MAX_WAIT_TIME_MS_=50;cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_=10;cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_DURATION_=1E3;cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_COUNT_LIMIT_=3;cvox.ChromeVoxEventWatcher.MAX_LIVE_REGIONS_=5;cvox.ChromeVoxEventWatcher.shouldEchoKeys=!0;cvox.ChromeVoxEventWatcher.processing_=!1;
+cvox.ChromeVoxEventWatcher.init=function(a){cvox.ChromeVoxEventWatcher.lastFocusedNode=null;cvox.ChromeVoxEventWatcher.announcedMouseOverNode=null;cvox.ChromeVoxEventWatcher.pendingMouseOverNode=null;cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null;cvox.ChromeVoxEventWatcher.lastFocusedNodeValue=null;cvox.ChromeVoxEventWatcher.eventToEat=null;cvox.ChromeVoxEventWatcher.currentTextControl=null;cvox.ChromeVoxEventWatcher.currentTextHandler=null;cvox.ChromeVoxEventWatcher.lastKeypressTime=0;cvox.ChromeVoxEventWatcher.listeners_=
+[];cvox.ChromeVoxEventWatcher.mutationObserver_=null;cvox.ChromeVoxEventWatcher.focusFollowsMouse=!1;cvox.ChromeVoxEventWatcher.mouseoverDelayMs=500;cvox.ChromeVoxEventWatcher.events_=[];cvox.ChromeVoxEventWatcher.lastEventTime=0;cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime=-1;cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!1;cvox.ChromeVoxEventWatcher.readyCallbacks_=[];cvox.ChromeVox.searchKeyHeld=!1;cvox.ChromeVoxEventWatcher.textMutationObserver_=null;cvox.ChromeVoxEventWatcher.addEventListeners_(a);
+cvox.ChromeVoxEventWatcher.lastSubtreeModifiedEventBurstTime_=0;cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_=0};cvox.ChromeVoxEventWatcher.storeOn=function(a){a.searchKeyHeld=cvox.ChromeVox.searchKeyHeld};cvox.ChromeVoxEventWatcher.readFrom=function(a){cvox.ChromeVox.searchKeyHeld=a.searchKeyHeld};
+cvox.ChromeVoxEventWatcher.addEvent=function(a){if(!cvox.ChromeVox.isActive||document.webkitHidden)return!1;cvox.ChromeVoxEventWatcher.events_.push(a);cvox.ChromeVoxEventWatcher.lastEventTime=(new Date).getTime();-1==cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime&&(cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime=(new Date).getTime());cvox.ChromeVoxEventWatcher.queueProcessingScheduled_||(cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!0,window.setTimeout(cvox.ChromeVoxEventWatcher.processQueue_,
+cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_))};cvox.ChromeVoxEventWatcher.addReadyCallback=function(a){cvox.ChromeVoxEventWatcher.readyCallbacks_.push(a);cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_()};cvox.ChromeVoxEventWatcher.hasPendingEvents_=function(){return-1!=cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime||cvox.ChromeVoxEventWatcher.queueProcessingScheduled_};cvox.ChromeVoxEventWatcher.readyCallbackRunning_=!1;
+cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_=function(){cvox.ChromeVoxEventWatcher.readyCallbackRunning_||(cvox.ChromeVoxEventWatcher.readyCallbackRunning_=!0,window.setTimeout(function(){cvox.ChromeVoxEventWatcher.readyCallbackRunning_=!1;!cvox.ChromeVoxEventWatcher.hasPendingEvents_()&&!cvox.ChromeVoxEventWatcher.queueProcessingScheduled_&&0<cvox.ChromeVoxEventWatcher.readyCallbacks_.length&&(cvox.ChromeVoxEventWatcher.readyCallbacks_.shift()(),cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_())},
+5))};
+cvox.ChromeVoxEventWatcher.addEventListeners_=function(a){cvox.ChromeVoxEventWatcher.addEventListener_(a,"keydown",cvox.ChromeVoxEventWatcher.keyDownEventWatcher,!0);if(cvox.ChromeVox.isActive&&!cvox.ChromeVox.entireDocumentIsHidden)if(cvox.ChromeVoxEventWatcher.addEventListener_(a,"keypress",cvox.ChromeVoxEventWatcher.keyPressEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"keyup",cvox.ChromeVoxEventWatcher.keyUpEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,cvox.UserEventDetail.Category.JUMP,
+cvox.ChromeVoxUserCommands.handleChromeVoxUserEvent,!1),cvox.ChromeVoxEventWatcher.addEventListener_(a,"focus",cvox.ChromeVoxEventWatcher.focusEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"blur",cvox.ChromeVoxEventWatcher.blurEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"change",cvox.ChromeVoxEventWatcher.changeEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"copy",cvox.ChromeVoxEventWatcher.clipboardEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,
+"cut",cvox.ChromeVoxEventWatcher.clipboardEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"paste",cvox.ChromeVoxEventWatcher.clipboardEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"select",cvox.ChromeVoxEventWatcher.selectEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"webkitvisibilitychange",cvox.ChromeVoxEventWatcher.visibilityChangeWatcher,!0),cvox.ChromeVoxEventWatcher.events_=[],cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!1,cvox.ChromeVoxEventWatcher.addEventListener_(a,
+"mouseover",cvox.ChromeVoxEventWatcher.mouseOverEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"mouseout",cvox.ChromeVoxEventWatcher.mouseOutEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"click",cvox.ChromeVoxEventWatcher.mouseClickEventWatcher,!0),"undefined"!=typeof WebKitMutationObserver){cvox.ChromeVoxEventWatcher.mutationObserver_=new WebKitMutationObserver(cvox.ChromeVoxEventWatcher.mutationHandler);var b=null;a.documentElement?b=a.documentElement:a.document&&
+a.document.documentElement&&(b=a.document.documentElement);b&&cvox.ChromeVoxEventWatcher.mutationObserver_.observe(b,{childList:!0,attributes:!0,characterData:!0,subtree:!0,attributeOldValue:!0,characterDataOldValue:!0})}else cvox.ChromeVoxEventWatcher.addEventListener_(a,"DOMSubtreeModified",cvox.ChromeVoxEventWatcher.subtreeModifiedEventWatcher,!0)};
+cvox.ChromeVoxEventWatcher.cleanup=function(a){for(var b=0;b<cvox.ChromeVoxEventWatcher.listeners_.length;b++){var c=cvox.ChromeVoxEventWatcher.listeners_[b];a.removeEventListener(c.type,c.listener,c.useCapture)}cvox.ChromeVoxEventWatcher.listeners_=[];cvox.ChromeVoxEventWatcher.currentDateHandler&&cvox.ChromeVoxEventWatcher.currentDateHandler.shutdown();cvox.ChromeVoxEventWatcher.currentTimeHandler&&cvox.ChromeVoxEventWatcher.currentTimeHandler.shutdown();cvox.ChromeVoxEventWatcher.currentMediaHandler&&
+cvox.ChromeVoxEventWatcher.currentMediaHandler.shutdown();cvox.ChromeVoxEventWatcher.mutationObserver_&&cvox.ChromeVoxEventWatcher.mutationObserver_.disconnect();cvox.ChromeVoxEventWatcher.mutationObserver_=null};cvox.ChromeVoxEventWatcher.addEventListener_=function(a,b,c,d){cvox.ChromeVoxEventWatcher.listeners_.push({type:b,listener:c,useCapture:d});a.addEventListener(b,c,d)};cvox.ChromeVoxEventWatcher.getLastFocusedNode=function(){return cvox.ChromeVoxEventWatcher.lastFocusedNode};
+cvox.ChromeVoxEventWatcher.setLastFocusedNode_=function(a){cvox.ChromeVoxEventWatcher.lastFocusedNode=a;cvox.ChromeVoxEventWatcher.lastFocusedNodeValue=a?cvox.DomUtil.getControlValueAndStateString(a):null};
+cvox.ChromeVoxEventWatcher.mutationHandler=function(a){if(cvox.ChromeVoxEventSuspender.areEventsSuspended())return!0;cvox.ChromeVox.navigationManager.updateIndicatorIfChanged();cvox.LiveRegions.processMutations(a,function(a,c){var d=new window.Event("LiveRegion");d.navDescriptions=c;d.assertive=a;cvox.ChromeVoxEventWatcher.addEvent(d);return!0})};
+cvox.ChromeVoxEventWatcher.mouseClickEventWatcher=function(a){cvox.PlatformUtil.matchesPlatform(cvox.PlatformFilter.WML)&&!a.fromCvox&&cvox.ApiImplementation.syncToNode(a.target,!0);return cvox.ChromeVox.host.mustRedispatchClickEvent()&&!a.fromCvox?(cvox.ChromeVoxUserCommands.wasMouseClicked=!0,a.stopPropagation(),a.preventDefault(),cvox.Focuser.setFocus(cvox.ChromeVox.navigationManager.getCurrentNode()),cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("element_clicked"),cvox.AbstractTts.QUEUE_MODE_FLUSH,
+cvox.AbstractTts.PERSONALITY_ANNOTATION),a=cvox.ChromeVox.navigationManager.getCurrentNode(),cvox.DomUtil.clickElem(a,!1,!0),!1):cvox.ChromeVoxUserCommands.wasMouseClicked=!0};
+cvox.ChromeVoxEventWatcher.mouseOverEventWatcher=function(a){if(!cvox.ChromeVoxEventWatcher.focusFollowsMouse||cvox.DomUtil.isDescendantOfNode(cvox.ChromeVoxEventWatcher.announcedMouseOverNode,a.target)||a.target==cvox.ChromeVoxEventWatcher.pendingMouseOverNode)return!0;cvox.ChromeVoxEventWatcher.pendingMouseOverNode=a.target;cvox.ChromeVoxEventWatcher.mouseOverTimeoutId&&(window.clearTimeout(cvox.ChromeVoxEventWatcher.mouseOverTimeoutId),cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null);if(a.target.tagName&&
+"BODY"==a.target.tagName)return cvox.ChromeVoxEventWatcher.pendingMouseOverNode=null,cvox.ChromeVoxEventWatcher.announcedMouseOverNode=null,!0;cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=window.setTimeout(function(){cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null;if(a.target==cvox.ChromeVoxEventWatcher.pendingMouseOverNode){cvox.ChromeVox.navigationManager.stopReading(!0);var b=a.target;cvox.Focuser.setFocus(b);cvox.ApiImplementation.syncToNode(b,!0,cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.ChromeVoxEventWatcher.announcedMouseOverNode=
+b}},cvox.ChromeVoxEventWatcher.mouseoverDelayMs);return!0};cvox.ChromeVoxEventWatcher.mouseOutEventWatcher=function(a){a.target==cvox.ChromeVoxEventWatcher.pendingMouseOverNode&&(cvox.ChromeVoxEventWatcher.pendingMouseOverNode=null,cvox.ChromeVoxEventWatcher.mouseOverTimeoutId&&(window.clearTimeout(cvox.ChromeVoxEventWatcher.mouseOverTimeoutId),cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null));return!0};
+cvox.ChromeVoxEventWatcher.focusEventWatcher=function(a){cvox.ChromeVoxUserCommands.removeTabDummySpan();cvox.ChromeVoxEventSuspender.areEventsSuspended()?a.target&&a.target.nodeType==Node.ELEMENT_NODE&&cvox.ChromeVoxEventWatcher.setLastFocusedNode_(a.target):cvox.ChromeVoxEventWatcher.addEvent(a);return!0};
+cvox.ChromeVoxEventWatcher.focusHandler=function(a){if(a.target&&a.target.hasAttribute&&"true"==a.target.getAttribute("aria-hidden")&&"true"!=a.target.getAttribute("chromevoxignoreariahidden"))cvox.ChromeVoxEventWatcher.setLastFocusedNode_(null),cvox.ChromeVoxEventWatcher.setUpTextHandler();else if(a.target&&a.target!=window){var b=a.target,c=cvox.DomUtil.getSurroundingControl(b);if(c&&c==cvox.ChromeVoxEventWatcher.lastFocusedNode)cvox.ChromeVoxEventWatcher.handleControlChanged(b);else{c?cvox.ChromeVoxEventWatcher.setLastFocusedNode_(c):
+cvox.ChromeVoxEventWatcher.setLastFocusedNode_(b);c=cvox.ChromeVoxEventWatcher.queueMode_();if(cvox.ChromeVoxEventWatcher.getInitialVisibility()||cvox.ChromeVoxEventWatcher.handleDialogFocus(b))c=cvox.AbstractTts.QUEUE_MODE_QUEUE;cvox.ChromeVox.navigationManager.clearPageSel(!0)&&(c=cvox.AbstractTts.QUEUE_MODE_QUEUE);cvox.ApiImplementation.syncToNode(b,!document.webkitHidden,c);if(a.target.constructor==HTMLVideoElement||a.target.constructor==HTMLAudioElement)cvox.ChromeVoxEventWatcher.setUpMediaHandler_();
+else{if(a.target.hasAttribute)switch(a=a.target.getAttribute("type"),a){case "time":cvox.ChromeVoxEventWatcher.setUpTimeHandler_();return;case "date":case "month":case "week":cvox.ChromeVoxEventWatcher.setUpDateHandler_();return}cvox.ChromeVoxEventWatcher.setUpTextHandler()}}}else cvox.ChromeVoxEventWatcher.setLastFocusedNode_(null)};
+cvox.ChromeVoxEventWatcher.blurEventWatcher=function(a){window.setTimeout(function(){document.activeElement||(cvox.ChromeVoxEventWatcher.setLastFocusedNode_(null),cvox.ChromeVoxEventWatcher.addEvent(a))},0);return!0};
+cvox.ChromeVoxEventWatcher.keyDownEventWatcher=function(a){cvox.ChromeVox.isChromeOS&&91==a.keyCode&&(cvox.ChromeVox.searchKeyHeld=!0);a.searchKeyHeld=cvox.ChromeVox.searchKeyHeld&&cvox.ChromeVox.isActive;a.stickyMode=cvox.ChromeVox.isStickyOn&&cvox.ChromeVox.isActive;a.keyPrefix=cvox.ChromeVox.keyPrefixOn&&cvox.ChromeVox.isActive;cvox.ChromeVox.keyPrefixOn=!1;cvox.ChromeVoxEventWatcher.eventToEat=null;if(!cvox.ChromeVoxKbHandler.basicKeyDownActionsListener(a)||cvox.ChromeVoxEventWatcher.handleControlAction(a))return a.preventDefault(),
+a.stopPropagation(),cvox.ChromeVoxEventWatcher.eventToEat=a,!1;cvox.ChromeVoxEventWatcher.addEvent(a);return!0};cvox.ChromeVoxEventWatcher.keyUpEventWatcher=function(a){91==a.keyCode&&(cvox.ChromeVox.searchKeyHeld=!1);return cvox.ChromeVoxEventWatcher.eventToEat&&a.keyCode==cvox.ChromeVoxEventWatcher.eventToEat.keyCode?(a.stopPropagation(),a.preventDefault(),!1):!0};
+cvox.ChromeVoxEventWatcher.keyPressEventWatcher=function(a){var b=document.location.href,c=cvox.TypingEcho.shouldSpeakChar(cvox.ChromeVox.typingEcho);"undefined"!==typeof cvox.ChromeVox.keyEcho[b]&&(c=cvox.ChromeVox.keyEcho[b]);cvox.ChromeVoxEditableTextBase.eventTypingEcho&&c&&cvox.DomPredicates.editTextPredicate([document.activeElement])&&"password"!==document.activeElement.type&&(b=(new Date).getTime(),150<b-cvox.ChromeVoxEventWatcher.lastKeypressTime&&cvox.ChromeVox.tts.stop(),cvox.ChromeVoxEventWatcher.lastKeypressTime=
+b,cvox.ChromeVox.tts.speak(String.fromCharCode(a.charCode),1,{relativeRate:2}));cvox.ChromeVoxEventWatcher.addEvent(a);return cvox.ChromeVoxEventWatcher.eventToEat&&a.keyCode==cvox.ChromeVoxEventWatcher.eventToEat.keyCode?(a.preventDefault(),a.stopPropagation(),!1):!0};cvox.ChromeVoxEventWatcher.changeEventWatcher=function(a){cvox.ChromeVoxEventWatcher.addEvent(a);return!0};
+cvox.ChromeVoxEventWatcher.clipboardEventWatcher=function(a){cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg(a.type).toLowerCase());var b="";switch(a.type){case "paste":b=a.clipboardData.getData("text");break;case "copy":case "cut":b=window.getSelection().toString()}cvox.ChromeVox.tts.speak(b,cvox.AbstractTts.QUEUE_MODE_QUEUE);cvox.ChromeVox.navigationManager.clearPageSel();return!0};
+cvox.ChromeVoxEventWatcher.changeHandler=function(a){cvox.ChromeVoxEventWatcher.setUpTextHandler()||document.activeElement==a.target&&cvox.ChromeVoxEventWatcher.handleControlChanged(document.activeElement)};cvox.ChromeVoxEventWatcher.selectEventWatcher=function(a){cvox.ChromeVoxEventWatcher.addEvent(a);return!0};cvox.ChromeVoxEventWatcher.subtreeModifiedEventWatcher=function(a){if(!a||!a.target)return!0;cvox.ChromeVoxEventWatcher.addEvent(a);return!0};
+cvox.ChromeVoxEventWatcher.visibilityChangeWatcher=function(){cvox.ChromeVoxEventWatcher.initialVisibility=!document.webkitHidden;document.webkitHidden&&cvox.ChromeVox.navigationManager.stopReading(!0)};cvox.ChromeVoxEventWatcher.getInitialVisibility=function(){var a=cvox.ChromeVoxEventWatcher.initialVisibility;cvox.ChromeVoxEventWatcher.initialVisibility=!1;return a};
+cvox.ChromeVoxEventWatcher.speakLiveRegion_=function(a,b){var c=cvox.ChromeVoxEventWatcher.queueMode_();a||c!=cvox.AbstractTts.QUEUE_MODE_FLUSH||(c=cvox.AbstractTts.QUEUE_MODE_QUEUE);var d=new cvox.NavigationSpeaker;d.speakDescriptionArray(b,c,null)};
+cvox.ChromeVoxEventWatcher.subtreeModifiedHandler=function(a){var b=(new Date).getTime();if(cvox.ChromeVoxEventWatcher.lastSubtreeModifiedEventBurstTime_+cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_DURATION_>b){if(cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_++,cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_>cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_COUNT_LIMIT_)return}else cvox.ChromeVoxEventWatcher.lastSubtreeModifiedEventBurstTime_=b,cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_=
+1;if(a&&a.target)for(a=a.target,a=cvox.AriaUtil.getLiveRegions(a),b=0;b<a.length&&b<cvox.ChromeVoxEventWatcher.MAX_LIVE_REGIONS_;b++)cvox.LiveRegionsDeprecated.updateLiveRegion(a[b],cvox.ChromeVoxEventWatcher.queueMode_(),!1)};
+cvox.ChromeVoxEventWatcher.setUpTextHandler=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);if(a!=cvox.ChromeVoxEventWatcher.currentTextControl){cvox.ChromeVoxEventWatcher.currentTextControl&&(cvox.ChromeVoxEventWatcher.currentTextControl.removeEventListener("input",cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),cvox.ChromeVoxEventWatcher.currentTextControl.removeEventListener("click",
+cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),cvox.ChromeVoxEventWatcher.textMutationObserver_&&(cvox.ChromeVoxEventWatcher.textMutationObserver_.disconnect(),cvox.ChromeVoxEventWatcher.textMutationObserver_=null));cvox.ChromeVoxEventWatcher.currentTextControl=null;cvox.ChromeVoxEventWatcher.currentTextHandler=null;if(null==a)return!1;if(a.constructor==HTMLInputElement&&cvox.DomUtil.isInputTypeText(a)&&cvox.ChromeVoxEventWatcher.shouldEchoKeys)cvox.ChromeVoxEventWatcher.currentTextControl=a,cvox.ChromeVoxEventWatcher.currentTextHandler=
+new cvox.ChromeVoxEditableHTMLInput(a,cvox.ChromeVox.tts);else if(a.constructor==HTMLTextAreaElement&&cvox.ChromeVoxEventWatcher.shouldEchoKeys)cvox.ChromeVoxEventWatcher.currentTextControl=a,cvox.ChromeVoxEventWatcher.currentTextHandler=new cvox.ChromeVoxEditableTextArea(a,cvox.ChromeVox.tts);else if(a.isContentEditable||"textbox"==a.getAttribute("role"))cvox.ChromeVoxEventWatcher.currentTextControl=a,cvox.ChromeVoxEventWatcher.currentTextHandler=new cvox.ChromeVoxEditableContentEditable(a,cvox.ChromeVox.tts);
+cvox.ChromeVoxEventWatcher.currentTextControl&&(cvox.ChromeVoxEventWatcher.currentTextControl.addEventListener("input",cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),cvox.ChromeVoxEventWatcher.currentTextControl.addEventListener("click",cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),window.WebKitMutationObserver&&(cvox.ChromeVoxEventWatcher.textMutationObserver_=new WebKitMutationObserver(cvox.ChromeVoxEventWatcher.onTextMutation),cvox.ChromeVoxEventWatcher.textMutationObserver_.observe(cvox.ChromeVoxEventWatcher.currentTextControl,
+{childList:!0,attributes:!0,subtree:!0,attributeOldValue:!1,characterDataOldValue:!1})),cvox.ChromeVoxEventSuspender.areEventsSuspended()||cvox.ChromeVox.navigationManager.updateSel(cvox.CursorSelection.fromNode(cvox.ChromeVoxEventWatcher.currentTextControl)));return null!=cvox.ChromeVoxEventWatcher.currentTextHandler}};cvox.ChromeVoxEventWatcher.handleTextChanged=function(a){if(cvox.ChromeVoxEventWatcher.currentTextHandler){var b=cvox.ChromeVoxEventWatcher.currentTextHandler;b.update(a);return!0}return!1};
+cvox.ChromeVoxEventWatcher.onTextMutation=function(){cvox.ChromeVoxEventWatcher.currentTextHandler&&window.setTimeout(function(){cvox.ChromeVoxEventWatcher.handleTextChanged(!1)},cvox.ChromeVoxEventWatcher.MAX_WAIT_TIME_MS_)};
+cvox.ChromeVoxEventWatcher.handleControlChanged=function(a){var b=cvox.DomUtil.getControlValueAndStateString(a),c=cvox.DomUtil.getSurroundingControl(a),d=!1;if(a!=cvox.ChromeVoxEventWatcher.lastFocusedNode&&(null==c||c!=cvox.ChromeVoxEventWatcher.lastFocusedNode))cvox.ChromeVoxEventWatcher.setLastFocusedNode_(a);else if(b==cvox.ChromeVoxEventWatcher.lastFocusedNodeValue)return;cvox.ChromeVoxEventWatcher.lastFocusedNodeValue=b;if(cvox.DomPredicates.checkboxPredicate([a])||cvox.DomPredicates.radioPredicate([a]))d=
+!0,a.checked?cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.CHECK_ON):cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.CHECK_OFF);"SELECT"==a.tagName&&(d=!0);if("INPUT"==a.tagName)switch(a.type){case "color":case "datetime":case "datetime-local":case "range":d=!0}a.hasAttribute&&a.hasAttribute("role")&&(d=!0);c&&c!=a&&document.activeElement==a?(cvox.ApiImplementation.syncToNode(a,!0,cvox.AbstractTts.QUEUE_MODE_FLUSH),d=!1):cvox.AriaUtil.getActiveDescendant(a)&&(cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(cvox.AriaUtil.getActiveDescendant(a),
+!0),d=!0);d&&!cvox.ChromeVoxEventSuspender.areEventsSuspended()&&(cvox.ChromeVox.tts.speak(b,cvox.ChromeVoxEventWatcher.queueMode_(),null),cvox.NavBraille.fromText(b).write())};
+cvox.ChromeVoxEventWatcher.handleControlAction=function(a){if(!cvox.ChromeVox.isActive)return!1;var b=a.target;if("SELECT"==b.tagName&&1>=b.size&&(13==a.keyCode||32==a.keyCode))return a.preventDefault(),a.stopPropagation(),!0;if("INPUT"==b.tagName&&"range"==b.type){var c=parseFloat(b.value),d;b.step&&0<b.step?d=b.step:b.min&&b.max?(d=b.max-b.min,d=2<d&&31>d?1:(b.max-b.min)/10):d=1;if(37==a.keyCode||38==a.keyCode)c-=d;else if(39==a.keyCode||40==a.keyCode)c+=d;b.max&&c>b.max&&(c=b.max);b.min&&c<b.min&&
+(c=b.min);b.value=c}return!1};
+cvox.ChromeVoxEventWatcher.handleDialogFocus=function(a){for(;a;){if(a.hasAttribute){var b=a.getAttribute("role");if("dialog"==b||"alertdialog"==b)break}a=a.parentElement}if(a==cvox.ChromeVox.navigationManager.currentDialog)return!1;if(cvox.ChromeVox.navigationManager.currentDialog&&!a){if(!cvox.DomUtil.isDescendantOfNode(document.activeElement,cvox.ChromeVox.navigationManager.currentDialog))return cvox.ChromeVox.navigationManager.currentDialog=null,cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("exiting_dialog"),cvox.AbstractTts.QUEUE_MODE_FLUSH,
+cvox.AbstractTts.PERSONALITY_ANNOTATION),!0}else if(a)return cvox.ChromeVox.navigationManager.currentDialog=a,cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("entering_dialog"),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION),a=cvox.DescriptionUtil.getFullDescriptionsFromChildren(null,a),b=new cvox.NavigationSpeaker,b.speakDescriptionArray(a,cvox.AbstractTts.QUEUE_MODE_QUEUE,null),!0;return!1};
+cvox.ChromeVoxEventWatcherUtil.shouldWaitToProcess=function(a,b,c){a=c-a;b=c-b;return a<cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_&&b<cvox.ChromeVoxEventWatcher.MAX_WAIT_TIME_MS_};cvox.ChromeVoxEventWatcher.queueMode_=function(){return cvox.ChromeVoxEventWatcher.processing_?cvox.AbstractTts.QUEUE_MODE_QUEUE:cvox.AbstractTts.QUEUE_MODE_FLUSH};
+cvox.ChromeVoxEventWatcher.processQueue_=function(){if(0!=cvox.ChromeVoxEventWatcher.events_.length){var a=cvox.ChromeVoxEventWatcher.events_,b=-1,c=0,d,e;for(e=0;d=a[e];e++)"focus"==d.type&&(b=e,c=d.timeStamp);cvox.ChromeVoxEventWatcher.events_=[];for(e=0;d=a[e];e++){var f=a[e-1]||{};!(e>=b||"LiveRegion"==d.type||"DOMSubtreeModified"==d.type)||"focus"==f.type&&"change"==d.type||cvox.ChromeVoxEventWatcher.events_.push(d)}cvox.ChromeVoxEventWatcher.events_.sort(function(a,b){return"LiveRegion"!=b.type&&
+"LiveRegion"==a.type||"DOMSubtreeModified"!=b.type&&"DOMSubtreeModified"==a.type?1:-1});a=(new Date).getTime();if(0<=b&&cvox.ChromeVoxEventWatcherUtil.shouldWaitToProcess(c,cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime,a))window.setTimeout(cvox.ChromeVoxEventWatcher.processQueue_,cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_);else{for(e=0;d=cvox.ChromeVoxEventWatcher.events_[e];e++)cvox.ChromeVoxEventWatcher.handleEvent_(d),cvox.ChromeVoxEventWatcher.processing_=!0;cvox.ChromeVoxEventWatcher.processing_=
+!1;cvox.ChromeVoxEventWatcher.events_=[];cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime=-1;cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!1;cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_()}}};
+cvox.ChromeVoxEventWatcher.handleEvent_=function(a){switch(a.type){case "keydown":cvox.ChromeVoxEventWatcher.setUpTextHandler();if(cvox.ChromeVoxEventWatcher.currentTextControl&&(cvox.ChromeVoxEventWatcher.handleTextChanged(!0),(a=cvox.ChromeVoxEventWatcher.currentTextHandler)&&a.lastChangeDescribed))break;cvox.ChromeVoxEventWatcher.handleControlChanged(document.activeElement);break;case "keypress":cvox.ChromeVoxEventWatcher.setUpTextHandler();break;case "focus":cvox.ChromeVoxEventWatcher.focusHandler(a);
+break;case "blur":cvox.ChromeVoxEventWatcher.setUpTextHandler();break;case "change":cvox.ChromeVoxEventWatcher.changeHandler(a);break;case "select":cvox.ChromeVoxEventWatcher.setUpTextHandler();break;case "LiveRegion":cvox.ChromeVoxEventWatcher.speakLiveRegion_(a.assertive,a.navDescriptions);break;case "DOMSubtreeModified":cvox.ChromeVoxEventWatcher.subtreeModifiedHandler(a)}};
+cvox.ChromeVoxEventWatcher.setUpTimeHandler_=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);cvox.ChromeVoxEventWatcher.currentTimeHandler=a.constructor==HTMLInputElement&&a.type&&"time"==a.type?new cvox.ChromeVoxHTMLTimeWidget(a,cvox.ChromeVox.tts):null;return null!=cvox.ChromeVoxEventWatcher.currentTimeHandler};
+cvox.ChromeVoxEventWatcher.setUpMediaHandler_=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);cvox.ChromeVoxEventWatcher.currentMediaHandler=a.constructor==HTMLVideoElement||a.constructor==HTMLAudioElement?new cvox.ChromeVoxHTMLMediaWidget(a,cvox.ChromeVox.tts):null;return null!=cvox.ChromeVoxEventWatcher.currentMediaHandler};
+cvox.ChromeVoxEventWatcher.setUpDateHandler_=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);cvox.ChromeVoxEventWatcher.currentDateHandler=a.constructor!=HTMLInputElement||!a.type||"date"!=a.type&&"month"!=a.type&&"week"!=a.type?null:new cvox.ChromeVoxHTMLDateWidget(a,cvox.ChromeVox.tts);return null!=cvox.ChromeVoxEventWatcher.currentDateHandler};cvox.Serializer=function(){};cvox.Serializer.prototype.storeOn=function(a){cvox.ChromeVox.storeOn(a);cvox.ChromeVoxEventWatcher.storeOn(a)};cvox.Serializer.prototype.readFrom=function(a){cvox.ChromeVox.readFrom(a);cvox.ChromeVoxEventWatcher.readFrom(a)};cvox.InitGlobals=function(){};
+cvox.InitGlobals.initGlobals=function(){cvox.ChromeVox.host||(cvox.ChromeVox.host=cvox.HostFactory.getHost());cvox.ChromeVox.tts=(new cvox.CompositeTts).add(cvox.HostFactory.getTts()).add(cvox.History.getInstance()).add(cvox.ConsoleTts.getInstance());cvox.ChromeVox.braille||(cvox.ChromeVox.braille=cvox.HostFactory.getBraille());cvox.ChromeVox.mathJax=cvox.HostFactory.getMathJax();cvox.ChromeVox.earcons=cvox.HostFactory.getEarcons();cvox.ChromeVox.msgs=cvox.HostFactory.getMsgs();cvox.ChromeVox.isActive=
+!0;cvox.ChromeVox.navigationManager=new cvox.NavigationManager;cvox.ChromeVox.navigationManager.updateIndicator();cvox.ChromeVox.syncToNode=cvox.ApiImplementation.syncToNode;cvox.ChromeVox.speakNode=cvox.ApiImplementation.speakNode;cvox.ChromeVox.serializer=new cvox.Serializer;cvox.ChromeVox.host.init();cvox.ChromeVoxEventWatcher.init(window);cvox.ChromeVox.executeUserCommand=function(a){cvox.ChromeVoxUserCommands.commands[a]()};cvox.ChromeVox.host.onPageLoad()};cvox.ChromeVoxInit={};cvox.ChromeVox.initTimeout_=100;cvox.ChromeVox.recallInit_=function(a){window.console.log(a+" Will try again in "+cvox.ChromeVox.initTimeout_+"ms");window.setTimeout(cvox.ChromeVox.initDocument,cvox.ChromeVox.initTimeout_);cvox.ChromeVox.initTimeout_*=2};
+cvox.ChromeVox.initDocument=function(){document.body?(cvox.ChromeVox.host=cvox.HostFactory.getHost(),cvox.ChromeVox.host.ttsLoaded()?(window.console.log("Starting ChromeVox."),cvox.InitGlobals.initGlobals(),window.disableChromeVox=function(){cvox.ChromeVox.host.killChromeVox()}):cvox.ChromeVox.recallInit_("ChromeVox not starting; waiting for TTS. "+document.location.href+".")):cvox.ChromeVox.recallInit_("ChromeVox not starting on unloaded page: "+document.location.href+".")};
+cvox.ChromeVox.reinit=function(){cvox.ChromeVox.host.reinit();cvox.ChromeVox.initDocument()};cvox.AndroidBraille=function(){};goog.inherits(cvox.AndroidBraille,cvox.AbstractBraille);cvox.AndroidBraille.prototype.write=function(a){accessibility.braille&&accessibility.braille(JSON.stringify(a.toJson()))};cvox.HostFactory.brailleConstructor=cvox.AndroidBraille;cvox.AndroidEarcons=function(){cvox.AbstractEarcons.call(this);this.audioMap={}};goog.inherits(cvox.AndroidEarcons,cvox.AbstractEarcons);cvox.AndroidEarcons.BASE_URL="https://ssl.gstatic.com/accessibility/javascript/android/earcons/";
+cvox.AndroidEarcons.prototype.playEarcon=function(a){if(this.earconsAvailable()){cvox.AndroidEarcons.superClass_.playEarcon.call(this,a);this.currentAudio=this.audioMap[a];this.currentAudio||(this.currentAudio=new Audio(cvox.AndroidEarcons.BASE_URL+this.getEarconFilename(a)),this.audioMap[a]=this.currentAudio);try{this.currentAudio.currentTime=0}catch(b){}this.currentAudio.paused&&this.currentAudio.play()}};
+cvox.AndroidEarcons.prototype.earconsAvailable=function(){return-1==navigator.userAgent.indexOf("Chrome")?!1:!0};cvox.HostFactory.earconsConstructor=cvox.AndroidEarcons;"undefined"!=typeof goog&&goog.provide&&(cvox.Api={},cvox.Api.Math={});
+(function(){function a(){d&&(d.port1.close(),d.port2.close(),d=null);d=new MessageChannel;window.postMessage("cvox.PortSetup",[d.port2],"*");d.port1.onmessage=function(a){"cvox.Disconnect"==a.data&&(d=null);try{var b=JSON.parse(a.data);b.id&&g[b.id]&&(g[b.id](b),delete g[b.id])}catch(c){}}}function b(a,b){var c=f;f++;void 0===a.args&&(a.args=[]);a.args=[c].concat(a.args);g[c]=b;d.port1.postMessage(JSON.stringify(a))}function c(a,c){var d=null;c&&c.endCallback&&(d=c.endCallback);b(a,d)}var d,e=!1,
+f=1,g={};window.cvox||(window.cvox={});var h=window.cvox,k=null;"undefined"!=typeof h.ApiImplementation&&(k=h.ApiImplementation);h.Api=function(){};h.Api.internalEnable=function(){e=!0;k||a();var b=document.createEvent("UIEvents");b.initEvent("chromeVoxLoaded",!0,!1);document.dispatchEvent(b)};h.Api.internalDisable=function(){e=!1;d=null;var a=document.createEvent("UIEvents");a.initEvent("chromeVoxUnloaded",!0,!1);document.dispatchEvent(a)};h.Api.isChromeVoxActive=function(){return k?e:!!d};h.Api.speak=
+function(a,b,d){h.Api.isChromeVoxActive()&&(k?k.speak(a,b,d):(a={cmd:"speak",args:[a,b,d]},c(a,d)))};h.Api.speakNode=function(a,b,d){h.Api.isChromeVoxActive()&&(k?k.speak(h.DomUtil.getName(a),b,d):(a={cmd:"speakNodeRef",args:[h.ApiUtils.makeNodeReference(a),b,d]},c(a,d)))};h.Api.stop=function(){if(h.Api.isChromeVoxActive())if(k)k.stop();else{var a={cmd:"stop"};d.port1.postMessage(JSON.stringify(a))}};h.Api.playEarcon=function(a){h.Api.isChromeVoxActive()&&(k?k.playEarcon(a):(a={cmd:"playEarcon",args:[a]},
+d.port1.postMessage(JSON.stringify(a))))};h.Api.syncToNode=function(a,b){if(h.Api.isChromeVoxActive()&&a)if(k)k.syncToNode(a,b);else{var c={cmd:"syncToNodeRef",args:[h.ApiUtils.makeNodeReference(a),b]};d.port1.postMessage(JSON.stringify(c))}};h.Api.getCurrentNode=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.ChromeVox.navigationManager.getCurrentNode()):b({cmd:"getCurrentNode"},function(b){a(h.ApiUtils.getNodeFromRef(b.currentNode))}))};h.Api.setSpeechForNode=function(a,b){h.Api.isChromeVoxActive()&&
+a&&b&&a.setAttribute("cvoxnodedesc",JSON.stringify(b))};h.Api.click=function(a,b){if(h.Api.isChromeVoxActive()&&a)if(k)h.DomUtil.clickElem(a,b,!0);else{var c={cmd:"clickNodeRef",args:[h.ApiUtils.makeNodeReference(a),b]};d.port1.postMessage(JSON.stringify(c))}};h.Api.getBuild=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.BuildInfo.build):b({cmd:"getBuild"},function(b){a(b.build)}))};h.Api.getVersion=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.ChromeVox.version+""):b({cmd:"getVersion"},function(b){a(b.version)}))};
+h.Api.getCvoxModifierKeys=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.KeyUtil.cvoxModKeyCodes()):b({cmd:"getCvoxModKeys"},function(b){a(b.keyCodes)}))};h.Api.isKeyShortcut=function(a,c){if(c)if(h.Api.isChromeVoxActive()){var d=[37,39];if(!d.indexOf(a.keyCode)||a.altKey||a.shiftKey||a.ctrlKey||a.metaKey)if(k){var e=h.KeyUtil.keyEventToKeySequence(a);c(h.ChromeVoxKbHandler.handlerKeyMap.hasKey(e))}else{var d={},f=["target","srcElement","currentTarget","view"];for(e in a)-1===f.indexOf(e)&&(d[e]=
+a[e]);e={cmd:"isKeyShortcut",args:[d]};b(e,function(a){c(a.isHandled)})}else c(!1)}else c(!1)};h.Api.setKeyEcho=function(a){h.Api.isChromeVoxActive()&&(k?k.setKeyEcho(a):(a={cmd:"setKeyEcho",args:[a]},d.port1.postMessage(JSON.stringify(a))))};h.Api.Math=function(){};h.Api.Math.defineRule=function(a,b,c,e,f){if(h.Api.isChromeVoxActive()){var g=Array.prototype.slice.call(arguments,4),g=[a,b,c,e].concat(g);k?k.Math.defineRule.apply(k.Math,g):(g={cmd:"Math.defineRule",args:g},d.port1.postMessage(JSON.stringify(g)))}};
+h.Api.internalEnable();h.NodeDescription=function(a,b,c,d){this.context=a?a:"";this.text=b?b:"";this.userValue=c?c:"";this.annotation=d?d:""}})();cvox.InitialSpeech={};window.INJECTED_AFTER_LOAD||(window.INJECTED_AFTER_LOAD=!1);
+cvox.InitialSpeech.speak=function(){var a=window.INJECTED_AFTER_LOAD;if(!cvox.ChromeVox.isActive||document.webkitHidden)a=!0;window.top==window&&document.title&&!a&&cvox.ChromeVox.tts.speak(document.title,cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.LiveRegions.init(new Date,cvox.AbstractTts.QUEUE_MODE_QUEUE,a);document.hasFocus()&&document.activeElement==document.body&&cvox.ChromeVox.navigationManager.syncToBeginning();if(cvox.ChromeVox.position[document.location.href]){var b=cvox.ChromeVox.position[document.location.href];
+cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(document.elementFromPoint(b.x,b.y))}document.hasFocus()&&(a||cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(){cvox.ChromeVox.navigationManager.finishNavCommand("",!0,cvox.AbstractTts.QUEUE_MODE_QUEUE)})())};cvox.AndroidKeyMap=function(){};
+cvox.AndroidKeyMap.getStringifiedKeyMap=function(){return cvox.ChromeVoxJSON.stringify({'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[17]}}':"stopSpeech",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[9]}}':"handleTab",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[9]}}':"handleTabPrev",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[38]}}':"backward",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[40]}}':"forward",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[37]}}':"previousGranularity",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[39]}}':"nextGranularity",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[13]}}':"forceClickOnCurrentItem",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[40]}}':"readFromHere",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[85]}}':"readLinkURL",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[75]}}':"fullyDescribe",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[189]}}':"decreaseTtsPitch",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[187]}}':"increaseTtsPitch",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[219]}}':"decreaseTtsRate",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[221]}}':"increaseTtsRate",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[81]}}':"cyclePunctuationLevel",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[49]}}':"nextHeading1",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[49]}}':"previousHeading1",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[50]}}':"nextHeading2",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[50]}}':"previousHeading2",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[51]}}':"nextHeading3",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[51]}}':"previousHeading3",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[52]}}':"nextHeading4",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[52]}}':"previousHeading4",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[53]}}':"nextHeading5",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[53]}}':"previousHeading5",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[54]}}':"nextHeading6",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[54]}}':"previousHeading6",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[67]}}':"nextComboBox",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[67]}}':"previousComboBox",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[69]}}':"nextEditText",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[69]}}':"previousEditText",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[70]}}':"nextFormField",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[70]}}':"previousFormField",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[71]}}':"nextGraphic",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[71]}}':"previousGraphic",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[72]}}':"nextHeading",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[72]}}':"previousHeading",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[73]}}':"nextListItem",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[73]}}':"previousListItem",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[76]}}':"nextLink",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[76]}}':"previousLink",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[79]}}':"nextList",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[79]}}':"previousList",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[82]}}':"nextRadio",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[82]}}':"previousRadio",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[84]}}':"nextTable",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[84]}}':"previousTable",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[66]}}':"nextButton",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[66]}}':"previousButton",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[88]}}':"nextCheckbox",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[88]}}':"previousCheckbox",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[186]}}':"nextLandmark",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[186]}}':"previousLandmark"})};cvox.MathSimpleStore=function(){cvox.MathStore.call(this)};goog.inherits(cvox.MathSimpleStore,cvox.MathStore);cvox.MathSimpleStore.prototype.defineRulesFromMappings=function(a,b,c){for(var d in c)for(var e in c[d]){var f=c[d][e],g='self::text() = "'+b+'"';this.defineRule(a,d+"."+e,'[t] "'+f+'"',"self::text()",g)}};cvox.MathCompoundStore=function(){this.subStores_={}};goog.addSingletonGetter(cvox.MathCompoundStore);
+cvox.MathCompoundStore.prototype.defineRules=function(a,b,c){var d=new cvox.MathSimpleStore;d.defineRulesFromMappings(a,b,c);this.subStores_[b]=d};cvox.MathCompoundStore.prototype.addSymbolRules=function(a){var b=cvox.MathSimpleStore.parseUnicode_(a.key);this.defineRules(a.key,b,a.mappings)};cvox.MathCompoundStore.prototype.addFunctionRules=function(a){var b=a.names;a=a.mappings;for(var c=0,d;d=b[c];c++)this.defineRules(d,d,a)};
+cvox.MathCompoundStore.prototype.lookupRule=function(a,b){var c=this.subStores_[a.textContent];if(c)return c.lookupRule(a,b)};cvox.MathCompoundStore.prototype.lookupString=function(a,b){var c=document.createTextNode(a);return(c=this.lookupRule(c,b))?c.action.components.map(function(a){return a.content.slice(1,-1)}).join(" "):""};
+cvox.MathCompoundStore.prototype.getDynamicConstraintValues=function(){var a={},b;for(b in this.subStores_){var c=this.subStores_[b].getDynamicConstraintValues(),d;for(d in c){var e=a[d];a[d]=e?cvox.MathUtil.union(e,c[d]):c[d]}}return a};cvox.MathSimpleStore.parseUnicode_=function(a){var b=parseInt(a,16);if(65536>b)return String.fromCharCode(b);b-=65536;a=(b>>10)+55296;b=(b&1023)+56320;return String.fromCharCode(a,b)};cvox.AndroidMathMap=function(){this.store_=cvox.MathCompoundStore.getInstance();cvox.AndroidMathMap.FUNCTION_MAPPINGS_.forEach(goog.bind(this.store_.addFunctionRules,this.store_));cvox.AndroidMathMap.SYMBOL_MAPPINGS_.forEach(goog.bind(this.store_.addSymbolRules,this.store_));this.store_.getDynamicConstraintValues()};
+cvox.AndroidMathMap.prototype.evaluate=function(a,b,c){var d="";b=cvox.MathStore.createDynamicConstraint(b,c);d=this.store_.lookupString(a,b);return new cvox.NavDescription({text:d?d:a})};
+cvox.AndroidMathMap.SYMBOL_MAPPINGS_=[{category:"Po",mappings:{"default":{"default":"exclamation mark"}},key:"0021"},{category:"Po",mappings:{"default":{"default":"quotation mark"}},key:"0022"},{category:"Po",mappings:{"default":{"default":"number sign",alternative:"hash","short":"number"}},key:"0023"},{category:"Sc",mappings:{"default":{"default":"dollar sign","short":"dollar"}},key:"0024"},{category:"Po",mappings:{"default":{"default":"percent sign","short":"percent"}},key:"0025"},{category:"Po",
+mappings:{"default":{"default":"ampersand"}},key:"0026"},{category:"Po",mappings:{"default":{"default":"apostrophe",alternative:"apostrophe quote"}},key:"0027"},{category:"Po",mappings:{"default":{"default":"asterisk"}},key:"002A"},{category:"Sm",mappings:{"default":{"default":"plus sign","short":"plus"}},key:"002B"},{category:"Po",mappings:{"default":{"default":"comma"}},key:"002C"},{category:"Pd",mappings:{"default":{"default":"hyphen minus","short":"minus"}},key:"002D"},{category:"Po",mappings:{"default":{"default":"full stop",
+alternative:"period"}},key:"002E"},{category:"Po",mappings:{"default":{"default":"solidus",alternative:"slash"}},key:"002F"},{category:"Po",mappings:{"default":{"default":"colon"}},key:"003A"},{category:"Po",mappings:{"default":{"default":"semicolon"}},key:"003B"},{category:"Sm",mappings:{"default":{"default":"less than sign","short":"less than"}},key:"003C"},{category:"Sm",mappings:{"default":{"default":"equals sign","short":"equals"}},key:"003D"},{category:"Sm",mappings:{"default":{"default":"greater than sign",
+"short":"greater than"}},key:"003E"},{category:"Po",mappings:{"default":{"default":"question mark"}},key:"003F"},{category:"Po",mappings:{"default":{"default":"commercial at","short":"at"}},key:"0040"},{category:"Po",mappings:{"default":{"default":"reverse solidus",alternative:"backslash"}},key:"005C"},{category:"Sk",mappings:{"default":{"default":"circumflex accent",alternative:"spacing circumflex","short":"hat"}},key:"005E"},{category:"Pc",mappings:{"default":{"default":"low line",alternative:"spacing underscore"}},
+key:"005F"},{category:"Sk",mappings:{"default":{"default":"grave accent",alternative:"spacing grave","short":"grave"}},key:"0060"},{category:"Sm",mappings:{"default":{"default":"vertical line",alternative:"vertical bar"}},key:"007C"},{category:"Sm",mappings:{"default":{"default":"tilde"}},key:"007E"},{category:"Po",mappings:{"default":{"default":"inverted exclamation mark"}},key:"00A1"},{category:"Sc",mappings:{"default":{"default":"cent sign","short":"cent"}},key:"00A2"},{category:"Sc",mappings:{"default":{"default":"pound sign",
+"short":"pound"}},key:"00A3"},{category:"Sc",mappings:{"default":{"default":"currency sign","short":"currency"}},key:"00A4"},{category:"Sc",mappings:{"default":{"default":"yen sign","short":"yen"}},key:"00A5"},{category:"So",mappings:{"default":{"default":"broken bar",alternative:"broken vertical bar"}},key:"00A6"},{category:"Po",mappings:{"default":{"default":"section sign","short":"section"}},key:"00A7"},{category:"Sk",mappings:{"default":{"default":"diaeresis",alternative:"spacing diaeresis","short":"double dot"}},
+key:"00A8"},{category:"So",mappings:{"default":{"default":"copyright sign","short":"copyright"}},key:"00A9"},{category:"Lo",mappings:{"default":{"default":"feminine ordinal indicator"}},key:"00AA"},{category:"Pi",mappings:{"default":{"default":"left pointing double angle quotation mark",alternative:"left pointing guillemet"}},key:"00AB"},{category:"Sm",mappings:{"default":{"default":"not sign","short":"not"}},key:"00AC"},{category:"So",mappings:{"default":{"default":"registered sign",alternative:"registered trade mark sign",
+"short":"registered"}},key:"00AE"},{category:"Sk",mappings:{"default":{"default":"macron",alternative:"spacing macron"}},key:"00AF"},{category:"So",mappings:{"default":{"default":"degree sign","short":"degree"}},key:"00B0"},{category:"Sm",mappings:{"default":{"default":"plus minus sign",alternative:"plus or minus sign","short":"plus minus"}},key:"00B1"},{category:"Sk",mappings:{"default":{"default":"acute accent",alternative:"spacing acute","short":"acute"}},key:"00B4"},{category:"Ll",mappings:{"default":{"default":"micro sign",
+"short":"micro"}},key:"00B5"},{category:"Po",mappings:{"default":{"default":"pilcrow sign",alternative:"paragraph sign","short":"pilcrow"}},key:"00B6"},{category:"Po",mappings:{"default":{"default":"middle dot"}},key:"00B7"},{category:"Sk",mappings:{"default":{"default":"cedilla",alternative:"spacing cedilla"}},key:"00B8"},{category:"Lo",mappings:{"default":{"default":"masculine ordinal indicator"}},key:"00BA"},{category:"Pf",mappings:{"default":{"default":"right pointing double angle quotation mark",
+alternative:"right pointing guillemet"}},key:"00BB"},{category:"Po",mappings:{"default":{"default":"inverted question mark"}},key:"00BF"},{category:"Sm",mappings:{"default":{"default":"multiplication sign","short":"multiplication"}},key:"00D7"},{category:"Sm",mappings:{"default":{"default":"division sign","short":"division"}},key:"00F7"},{category:"Sk",mappings:{"default":{"default":"breve",alternative:"spacing breve"}},key:"02D8"},{category:"Sk",mappings:{"default":{"default":"dot above",alternative:"spacing dot above"}},
+key:"02D9"},{category:"Sk",mappings:{"default":{"default":"ring above",alternative:"spacing ring above"}},key:"02DA"},{category:"Sk",mappings:{"default":{"default":"ogonek",alternative:"spacing ogonek"}},key:"02DB"},{category:"Sk",mappings:{"default":{"default":"small tilde",alternative:"spacing tilde"}},key:"02DC"},{category:"Sk",mappings:{"default":{"default":"double acute accent",alternative:"spacing double acute"}},key:"02DD"},{category:"Pd",mappings:{"default":{"default":"hyphen"}},key:"2010"},
+{category:"Pd",mappings:{"default":{"default":"non breaking hyphen"}},key:"2011"},{category:"Pd",mappings:{"default":{"default":"figure dash"}},key:"2012"},{category:"Pd",mappings:{"default":{"default":"en dash"}},key:"2013"},{category:"Pd",mappings:{"default":{"default":"em dash"}},key:"2014"},{category:"Pd",mappings:{"default":{"default":"horizontal bar",alternative:"quotation dash"}},key:"2015"},{category:"Po",mappings:{"default":{"default":"double vertical line",alternative:"double vertical bar"}},
+key:"2016"},{category:"Po",mappings:{"default":{"default":"double low line",alternative:"spacing double underscore"}},key:"2017"},{category:"Pi",mappings:{"default":{"default":"left single quotation mark",alternative:"single turned comma quotation mark"}},key:"2018"},{category:"Pf",mappings:{"default":{"default":"right single quotation mark",alternative:"single comma quotation mark"}},key:"2019"},{category:"Ps",mappings:{"default":{"default":"single low 9 quotation mark",alternative:"low single comma quotation mark"}},
+key:"201A"},{category:"Pi",mappings:{"default":{"default":"single high reversed 9 quotation mark",alternative:"single reversed comma quotation mark"}},key:"201B"},{category:"Pi",mappings:{"default":{"default":"left double quotation mark",alternative:"double turned comma quotation mark"}},key:"201C"},{category:"Pf",mappings:{"default":{"default":"right double quotation mark",alternative:"double comma quotation mark"}},key:"201D"},{category:"Ps",mappings:{"default":{"default":"double low 9 quotation mark",
+alternative:"low double comma quotation mark"}},key:"201E"},{category:"Pi",mappings:{"default":{"default":"double high reversed 9 quotation mark",alternative:"double reversed comma quotation mark"}},key:"201F"},{category:"Po",mappings:{"default":{"default":"dagger"}},key:"2020"},{category:"Po",mappings:{"default":{"default":"double dagger"}},key:"2021"},{category:"Po",mappings:{"default":{"default":"bullet"}},key:"2022"},{category:"Po",mappings:{"default":{"default":"triangular bullet"}},key:"2023"},
+{category:"Po",mappings:{"default":{"default":"one dot leader"}},key:"2024"},{category:"Po",mappings:{"default":{"default":"two dot leader"}},key:"2025"},{category:"Po",mappings:{"default":{"default":"horizontal ellipsis"}},key:"2026"},{category:"Po",mappings:{"default":{"default":"hyphenation point"}},key:"2027"},{category:"Po",mappings:{"default":{"default":"per mille sign","short":"per mille"}},key:"2030"},{category:"Po",mappings:{"default":{"default":"per ten thousand sign","short":"per ten thousand"}},
+key:"2031"},{category:"Po",mappings:{"default":{"default":"prime"}},key:"2032"},{category:"Po",mappings:{"default":{"default":"double prime"}},key:"2033"},{category:"Po",mappings:{"default":{"default":"triple prime"}},key:"2034"},{category:"Po",mappings:{"default":{"default":"reversed prime"}},key:"2035"},{category:"Po",mappings:{"default":{"default":"reversed double prime"}},key:"2036"},{category:"Po",mappings:{"default":{"default":"reversed triple prime"}},key:"2037"},{category:"Po",mappings:{"default":{"default":"caret"}},
+key:"2038"},{category:"Pi",mappings:{"default":{"default":"single left pointing angle quotation mark",alternative:"left pointing single guillemet"}},key:"2039"},{category:"Pf",mappings:{"default":{"default":"single right pointing angle quotation mark",alternative:"right pointing single guillemet"}},key:"203A"},{category:"Po",mappings:{"default":{"default":"reference mark"}},key:"203B"},{category:"Po",mappings:{"default":{"default":"double exclamation mark"}},key:"203C"},{category:"Po",mappings:{"default":{"default":"interrobang"}},
+key:"203D"},{category:"Po",mappings:{"default":{"default":"overline",alternative:"spacing overscore"}},key:"203E"},{category:"Pc",mappings:{"default":{"default":"undertie"}},key:"203F"},{category:"Pc",mappings:{"default":{"default":"character tie"}},key:"2040"},{category:"Po",mappings:{"default":{"default":"caret insertion point"}},key:"2041"},{category:"Po",mappings:{"default":{"default":"asterism"}},key:"2042"},{category:"Po",mappings:{"default":{"default":"hyphen bullet"}},key:"2043"},{category:"Sm",
+mappings:{"default":{"default":"fraction slash"}},key:"2044"},{category:"Po",mappings:{"default":{"default":"double question mark"}},key:"2047"},{category:"Po",mappings:{"default":{"default":"question exclamation mark"}},key:"2048"},{category:"Po",mappings:{"default":{"default":"exclamation question mark"}},key:"2049"},{category:"Po",mappings:{"default":{"default":"reversed pilcrow sign","short":"reversed pilcrow"}},key:"204B"},{category:"Po",mappings:{"default":{"default":"black leftwards bullet"}},
+key:"204C"},{category:"Po",mappings:{"default":{"default":"black rightwards bullet"}},key:"204D"},{category:"Po",mappings:{"default":{"default":"low asterisk"}},key:"204E"},{category:"Po",mappings:{"default":{"default":"reversed semicolon"}},key:"204F"},{category:"Po",mappings:{"default":{"default":"close up"}},key:"2050"},{category:"Po",mappings:{"default":{"default":"two asterisks aligned vertically"}},key:"2051"},{category:"Sm",mappings:{"default":{"default":"commercial minus sign","short":"commercial minus"}},
+key:"2052"},{category:"Po",mappings:{"default":{"default":"swung dash"}},key:"2053"},{category:"Pc",mappings:{"default":{"default":"inverted undertie"}},key:"2054"},{category:"Po",mappings:{"default":{"default":"flower punctuation mark"}},key:"2055"},{category:"Po",mappings:{"default":{"default":"three dot punctuation"}},key:"2056"},{category:"Po",mappings:{"default":{"default":"quadruple prime"}},key:"2057"},{category:"Po",mappings:{"default":{"default":"four dot punctuation"}},key:"2058"},{category:"Po",
+mappings:{"default":{"default":"five dot punctuation"}},key:"2059"},{category:"Po",mappings:{"default":{"default":"two dot punctuation"}},key:"205A"},{category:"Po",mappings:{"default":{"default":"four dot mark"}},key:"205B"},{category:"Po",mappings:{"default":{"default":"dotted cross"}},key:"205C"},{category:"Po",mappings:{"default":{"default":"tricolon"}},key:"205D"},{category:"Po",mappings:{"default":{"default":"vertical four dots"}},key:"205E"},{category:"Sm",mappings:{"default":{"default":"superscript plus sign",
+"short":"superscript plus"}},key:"207A"},{category:"Sm",mappings:{"default":{"default":"superscript minus",alternative:"superscript hyphen minus"}},key:"207B"},{category:"Sm",mappings:{"default":{"default":"superscript equals sign","short":"superscript equals"}},key:"207C"},{category:"Ps",mappings:{"default":{"default":"superscript left parenthesis",alternative:"superscript opening parenthesis"}},key:"207D"},{category:"Pe",mappings:{"default":{"default":"superscript right parenthesis",alternative:"superscript closing parenthesis"}},
+key:"207E"},{category:"Sm",mappings:{"default":{"default":"subscript plus sign","short":"subscript plus"}},key:"208A"},{category:"Sm",mappings:{"default":{"default":"subscript minus",alternative:"subscript hyphen minus"}},key:"208B"},{category:"Sm",mappings:{"default":{"default":"subscript equals sign","short":"subscript equals"}},key:"208C"},{category:"Ps",mappings:{"default":{"default":"subscript left parenthesis",alternative:"subscript opening parenthesis"}},key:"208D"},{category:"Pe",mappings:{"default":{"default":"subscript right parenthesis",
+alternative:"subscript closing parenthesis"}},key:"208E"},{category:"So",mappings:{"default":{"default":"property line"}},key:"214A"},{category:"Sm",mappings:{"default":{"default":"turned ampersand"}},key:"214B"},{category:"So",mappings:{"default":{"default":"per sign","short":"per"}},key:"214C"},{category:"So",mappings:{"default":{"default":"aktieselskab"}},key:"214D"},{category:"Ll",mappings:{"default":{"default":"turned small f"}},key:"214E"},{category:"Sm",mappings:{"default":{"default":"for all"}},
+key:"2200"},{category:"Sm",mappings:{"default":{"default":"complement"}},key:"2201"},{category:"Sm",mappings:{"default":{"default":"partial differential"}},key:"2202"},{category:"Sm",mappings:{"default":{"default":"there exists"}},key:"2203"},{category:"Sm",mappings:{"default":{"default":"there does not exist"}},key:"2204"},{category:"Sm",mappings:{"default":{"default":"empty set"}},key:"2205"},{category:"Sm",mappings:{"default":{"default":"increment"}},key:"2206"},{category:"Sm",mappings:{"default":{"default":"nabla"}},
+key:"2207"},{category:"Sm",mappings:{"default":{"default":"element of"}},key:"2208"},{category:"Sm",mappings:{"default":{"default":"not an element of"}},key:"2209"},{category:"Sm",mappings:{"default":{"default":"small element of"}},key:"220A"},{category:"Sm",mappings:{"default":{"default":"contains as member"}},key:"220B"},{category:"Sm",mappings:{"default":{"default":"does not contain as member"}},key:"220C"},{category:"Sm",mappings:{"default":{"default":"small contains as member"}},key:"220D"},
+{category:"Sm",mappings:{"default":{"default":"end of proof"}},key:"220E"},{category:"Sm",mappings:{"default":{"default":"n ary product"}},key:"220F"},{category:"Sm",mappings:{"default":{"default":"n ary coproduct"}},key:"2210"},{category:"Sm",mappings:{"default":{"default":"n ary summation"}},key:"2211"},{category:"Sm",mappings:{"default":{"default":"minus sign","short":"minus"}},key:"2212"},{category:"Sm",mappings:{"default":{"default":"minus or plus sign","short":"minus or plus"}},key:"2213"},
+{category:"Sm",mappings:{"default":{"default":"dot plus"}},key:"2214"},{category:"Sm",mappings:{"default":{"default":"division slash"}},key:"2215"},{category:"Sm",mappings:{"default":{"default":"set minus"}},key:"2216"},{category:"Sm",mappings:{"default":{"default":"asterisk operator"}},key:"2217"},{category:"Sm",mappings:{"default":{"default":"ring operator"}},key:"2218"},{category:"Sm",mappings:{"default":{"default":"bullet operator"}},key:"2219"},{category:"Sm",mappings:{"default":{"default":"square root"}},
+key:"221A"},{category:"Sm",mappings:{"default":{"default":"cube root"}},key:"221B"},{category:"Sm",mappings:{"default":{"default":"fourth root"}},key:"221C"},{category:"Sm",mappings:{"default":{"default":"proportional to"}},key:"221D"},{category:"Sm",mappings:{"default":{"default":"infinity"}},key:"221E"},{category:"Sm",mappings:{"default":{"default":"right angle"}},key:"221F"},{category:"Sm",mappings:{"default":{"default":"angle"}},key:"2220"},{category:"Sm",mappings:{"default":{"default":"measured angle"}},
+key:"2221"},{category:"Sm",mappings:{"default":{"default":"spherical angle"}},key:"2222"},{category:"Sm",mappings:{"default":{"default":"divides","short":"bar"}},key:"2223"},{category:"Sm",mappings:{"default":{"default":"does not divide"}},key:"2224"},{category:"Sm",mappings:{"default":{"default":"parallel to"}},key:"2225"},{category:"Sm",mappings:{"default":{"default":"not parallel to"}},key:"2226"},{category:"Sm",mappings:{"default":{"default":"logical and"}},key:"2227"},{category:"Sm",mappings:{"default":{"default":"logical or"}},
+key:"2228"},{category:"Sm",mappings:{"default":{"default":"intersection"}},key:"2229"},{category:"Sm",mappings:{"default":{"default":"union"}},key:"222A"},{category:"Sm",mappings:{"default":{"default":"integral"}},key:"222B"},{category:"Sm",mappings:{"default":{"default":"double integral"}},key:"222C"},{category:"Sm",mappings:{"default":{"default":"triple integral"}},key:"222D"},{category:"Sm",mappings:{"default":{"default":"contour integral"}},key:"222E"},{category:"Sm",mappings:{"default":{"default":"surface integral"}},
+key:"222F"},{category:"Sm",mappings:{"default":{"default":"volume integral"}},key:"2230"},{category:"Sm",mappings:{"default":{"default":"clockwise integral"}},key:"2231"},{category:"Sm",mappings:{"default":{"default":"clockwise contour integral"}},key:"2232"},{category:"Sm",mappings:{"default":{"default":"anticlockwise contour integral"}},key:"2233"},{category:"Sm",mappings:{"default":{"default":"therefore"}},key:"2234"},{category:"Sm",mappings:{"default":{"default":"because"}},key:"2235"},{category:"Sm",
+mappings:{"default":{"default":"ratio"}},key:"2236"},{category:"Sm",mappings:{"default":{"default":"proportion"}},key:"2237"},{category:"Sm",mappings:{"default":{"default":"dot minus"}},key:"2238"},{category:"Sm",mappings:{"default":{"default":"excess"}},key:"2239"},{category:"Sm",mappings:{"default":{"default":"geometric proportion"}},key:"223A"},{category:"Sm",mappings:{"default":{"default":"homothetic"}},key:"223B"},{category:"Sm",mappings:{"default":{"default":"tilde operator"}},key:"223C"},{category:"Sm",
+mappings:{"default":{"default":"reversed tilde"}},key:"223D"},{category:"Sm",mappings:{"default":{"default":"inverted lazy s"}},key:"223E"},{category:"Sm",mappings:{"default":{"default":"sine wave"}},key:"223F"},{category:"Sm",mappings:{"default":{"default":"wreath product"}},key:"2240"},{category:"Sm",mappings:{"default":{"default":"not tilde"}},key:"2241"},{category:"Sm",mappings:{"default":{"default":"minus tilde"}},key:"2242"},{category:"Sm",mappings:{"default":{"default":"asymptotically equal to"}},
+key:"2243"},{category:"Sm",mappings:{"default":{"default":"not asymptotically equal to"}},key:"2244"},{category:"Sm",mappings:{"default":{"default":"approximately equal to"}},key:"2245"},{category:"Sm",mappings:{"default":{"default":"approximately but not actually equal to"}},key:"2246"},{category:"Sm",mappings:{"default":{"default":"neither approximately nor actually equal to"}},key:"2247"},{category:"Sm",mappings:{"default":{"default":"almost equal to"}},key:"2248"},{category:"Sm",mappings:{"default":{"default":"not almost equal to"}},
+key:"2249"},{category:"Sm",mappings:{"default":{"default":"almost equal or equal to"}},key:"224A"},{category:"Sm",mappings:{"default":{"default":"triple tilde"}},key:"224B"},{category:"Sm",mappings:{"default":{"default":"all equal to"}},key:"224C"},{category:"Sm",mappings:{"default":{"default":"equivalent to"}},key:"224D"},{category:"Sm",mappings:{"default":{"default":"geometrically equivalent to"}},key:"224E"},{category:"Sm",mappings:{"default":{"default":"difference between"}},key:"224F"},{category:"Sm",
+mappings:{"default":{"default":"approaches the limit"}},key:"2250"},{category:"Sm",mappings:{"default":{"default":"geometrically equal to"}},key:"2251"},{category:"Sm",mappings:{"default":{"default":"approximately equal to or the image of"}},key:"2252"},{category:"Sm",mappings:{"default":{"default":"image of or approximately equal to"}},key:"2253"},{category:"Sm",mappings:{"default":{"default":"colon equals",alternative:"colon equal"}},key:"2254"},{category:"Sm",mappings:{"default":{"default":"equals colon",
+alternative:"equal colon"}},key:"2255"},{category:"Sm",mappings:{"default":{"default":"ring in equal to"}},key:"2256"},{category:"Sm",mappings:{"default":{"default":"ring equal to"}},key:"2257"},{category:"Sm",mappings:{"default":{"default":"corresponds to"}},key:"2258"},{category:"Sm",mappings:{"default":{"default":"estimates"}},key:"2259"},{category:"Sm",mappings:{"default":{"default":"equiangular to"}},key:"225A"},{category:"Sm",mappings:{"default":{"default":"star equals"}},key:"225B"},{category:"Sm",
+mappings:{"default":{"default":"delta equal to"}},key:"225C"},{category:"Sm",mappings:{"default":{"default":"equal to by definition"}},key:"225D"},{category:"Sm",mappings:{"default":{"default":"measured by"}},key:"225E"},{category:"Sm",mappings:{"default":{"default":"questioned equal to"}},key:"225F"},{category:"Sm",mappings:{"default":{"default":"not equal to"}},key:"2260"},{category:"Sm",mappings:{"default":{"default":"identical to"}},key:"2261"},{category:"Sm",mappings:{"default":{"default":"not identical to"}},
+key:"2262"},{category:"Sm",mappings:{"default":{"default":"strictly equivalent to"}},key:"2263"},{category:"Sm",mappings:{"default":{"default":"less than or equal to",alternative:"less than or equal to"}},key:"2264"},{category:"Sm",mappings:{"default":{"default":"greater than or equal to",alternative:"greater than or equal to"}},key:"2265"},{category:"Sm",mappings:{"default":{"default":"less than over equal to",alternative:"less than over equal to"}},key:"2266"},{category:"Sm",mappings:{"default":{"default":"greater than over equal to",
+alternative:"greater than over equal to"}},key:"2267"},{category:"Sm",mappings:{"default":{"default":"less than but not equal to",alternative:"less than but not equal to"}},key:"2268"},{category:"Sm",mappings:{"default":{"default":"greater than but not equal to",alternative:"greater than but not equal to"}},key:"2269"},{category:"Sm",mappings:{"default":{"default":"much less than",alternative:"much less than"}},key:"226A"},{category:"Sm",mappings:{"default":{"default":"much greater than",alternative:"much greater than"}},
+key:"226B"},{category:"Sm",mappings:{"default":{"default":"between"}},key:"226C"},{category:"Sm",mappings:{"default":{"default":"not equivalent to"}},key:"226D"},{category:"Sm",mappings:{"default":{"default":"not less than",alternative:"not less than"}},key:"226E"},{category:"Sm",mappings:{"default":{"default":"not greater than",alternative:"not greater than"}},key:"226F"},{category:"Sm",mappings:{"default":{"default":"neither less than nor equal to",alternative:"neither less than nor equal to"}},
+key:"2270"},{category:"Sm",mappings:{"default":{"default":"neither greater than nor equal to",alternative:"neither greater than nor equal to"}},key:"2271"},{category:"Sm",mappings:{"default":{"default":"less than or equivalent to",alternative:"less than or equivalent to"}},key:"2272"},{category:"Sm",mappings:{"default":{"default":"greater than or equivalent to",alternative:"greater than or equivalent to"}},key:"2273"},{category:"Sm",mappings:{"default":{"default":"neither less than nor equivalent to",
+alternative:"neither less than nor equivalent to"}},key:"2274"},{category:"Sm",mappings:{"default":{"default":"neither greater than nor equivalent to",alternative:"neither greater than nor equivalent to"}},key:"2275"},{category:"Sm",mappings:{"default":{"default":"less than or greater than",alternative:"less than or greater than"}},key:"2276"},{category:"Sm",mappings:{"default":{"default":"greater than or less than",alternative:"greater than or less than"}},key:"2277"},{category:"Sm",mappings:{"default":{"default":"neither less than nor greater than",
+alternative:"neither less than nor greater than"}},key:"2278"},{category:"Sm",mappings:{"default":{"default":"neither greater than nor less than",alternative:"neither greater than nor less than"}},key:"2279"},{category:"Sm",mappings:{"default":{"default":"precedes"}},key:"227A"},{category:"Sm",mappings:{"default":{"default":"succeeds"}},key:"227B"},{category:"Sm",mappings:{"default":{"default":"precedes or equal to"}},key:"227C"},{category:"Sm",mappings:{"default":{"default":"succeeds or equal to"}},
+key:"227D"},{category:"Sm",mappings:{"default":{"default":"precedes or equivalent to"}},key:"227E"},{category:"Sm",mappings:{"default":{"default":"succeeds or equivalent to"}},key:"227F"},{category:"Sm",mappings:{"default":{"default":"does not precede"}},key:"2280"},{category:"Sm",mappings:{"default":{"default":"does not succeed"}},key:"2281"},{category:"Sm",mappings:{"default":{"default":"subset of"}},key:"2282"},{category:"Sm",mappings:{"default":{"default":"superset of"}},key:"2283"},{category:"Sm",
+mappings:{"default":{"default":"not a subset of"}},key:"2284"},{category:"Sm",mappings:{"default":{"default":"not a superset of"}},key:"2285"},{category:"Sm",mappings:{"default":{"default":"subset of or equal to"}},key:"2286"},{category:"Sm",mappings:{"default":{"default":"superset of or equal to"}},key:"2287"},{category:"Sm",mappings:{"default":{"default":"neither a subset of nor equal to"}},key:"2288"},{category:"Sm",mappings:{"default":{"default":"neither a superset of nor equal to"}},key:"2289"},
+{category:"Sm",mappings:{"default":{"default":"subset of with not equal to",alternative:"subset of or not equal to","short":"subset of or not equal to"}},key:"228A"},{category:"Sm",mappings:{"default":{"default":"superset of with not equal to",alternative:"superset of or not equal to","short":"superset of or not equal to"}},key:"228B"},{category:"Sm",mappings:{"default":{"default":"multiset"}},key:"228C"},{category:"Sm",mappings:{"default":{"default":"multiset multiplication"}},key:"228D"},{category:"Sm",
+mappings:{"default":{"default":"multiset union"}},key:"228E"},{category:"Sm",mappings:{"default":{"default":"square image of"}},key:"228F"},{category:"Sm",mappings:{"default":{"default":"square original of"}},key:"2290"},{category:"Sm",mappings:{"default":{"default":"square image of or equal to"}},key:"2291"},{category:"Sm",mappings:{"default":{"default":"square original of or equal to"}},key:"2292"},{category:"Sm",mappings:{"default":{"default":"square cap"}},key:"2293"},{category:"Sm",mappings:{"default":{"default":"square cup"}},
+key:"2294"},{category:"Sm",mappings:{"default":{"default":"circled plus"}},key:"2295"},{category:"Sm",mappings:{"default":{"default":"circled minus"}},key:"2296"},{category:"Sm",mappings:{"default":{"default":"circled times"}},key:"2297"},{category:"Sm",mappings:{"default":{"default":"circled division slash"}},key:"2298"},{category:"Sm",mappings:{"default":{"default":"circled dot operator"}},key:"2299"},{category:"Sm",mappings:{"default":{"default":"circled ring operator"}},key:"229A"},{category:"Sm",
+mappings:{"default":{"default":"circled asterisk operator"}},key:"229B"},{category:"Sm",mappings:{"default":{"default":"circled equals"}},key:"229C"},{category:"Sm",mappings:{"default":{"default":"circled dash"}},key:"229D"},{category:"Sm",mappings:{"default":{"default":"squared plus"}},key:"229E"},{category:"Sm",mappings:{"default":{"default":"squared minus"}},key:"229F"},{category:"Sm",mappings:{"default":{"default":"squared times"}},key:"22A0"},{category:"Sm",mappings:{"default":{"default":"squared dot operator"}},
+key:"22A1"},{category:"Sm",mappings:{"default":{"default":"right tack"}},key:"22A2"},{category:"Sm",mappings:{"default":{"default":"left tack"}},key:"22A3"},{category:"Sm",mappings:{"default":{"default":"down tack"}},key:"22A4"},{category:"Sm",mappings:{"default":{"default":"up tack"}},key:"22A5"},{category:"Sm",mappings:{"default":{"default":"assertion"}},key:"22A6"},{category:"Sm",mappings:{"default":{"default":"models"}},key:"22A7"},{category:"Sm",mappings:{"default":{"default":"true"}},key:"22A8"},
+{category:"Sm",mappings:{"default":{"default":"forces"}},key:"22A9"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar right turnstile"}},key:"22AA"},{category:"Sm",mappings:{"default":{"default":"double vertical bar double right turnstile"}},key:"22AB"},{category:"Sm",mappings:{"default":{"default":"does not prove"}},key:"22AC"},{category:"Sm",mappings:{"default":{"default":"not true"}},key:"22AD"},{category:"Sm",mappings:{"default":{"default":"does not force"}},key:"22AE"},{category:"Sm",
+mappings:{"default":{"default":"negated double vertical bar double right turnstile"}},key:"22AF"},{category:"Sm",mappings:{"default":{"default":"precedes under relation"}},key:"22B0"},{category:"Sm",mappings:{"default":{"default":"succeeds under relation"}},key:"22B1"},{category:"Sm",mappings:{"default":{"default":"normal subgroup of"}},key:"22B2"},{category:"Sm",mappings:{"default":{"default":"contains as normal subgroup"}},key:"22B3"},{category:"Sm",mappings:{"default":{"default":"normal subgroup of or equal to"}},
+key:"22B4"},{category:"Sm",mappings:{"default":{"default":"contains as normal subgroup or equal to"}},key:"22B5"},{category:"Sm",mappings:{"default":{"default":"original of"}},key:"22B6"},{category:"Sm",mappings:{"default":{"default":"image of"}},key:"22B7"},{category:"Sm",mappings:{"default":{"default":"multimap"}},key:"22B8"},{category:"Sm",mappings:{"default":{"default":"hermitian conjugate matrix"}},key:"22B9"},{category:"Sm",mappings:{"default":{"default":"intercalate"}},key:"22BA"},{category:"Sm",
+mappings:{"default":{"default":"xor"}},key:"22BB"},{category:"Sm",mappings:{"default":{"default":"nand"}},key:"22BC"},{category:"Sm",mappings:{"default":{"default":"nor"}},key:"22BD"},{category:"Sm",mappings:{"default":{"default":"right triangle"}},key:"22BF"},{category:"Sm",mappings:{"default":{"default":"n ary logical and"}},key:"22C0"},{category:"Sm",mappings:{"default":{"default":"n ary logical or"}},key:"22C1"},{category:"Sm",mappings:{"default":{"default":"n ary intersection"}},key:"22C2"},
+{category:"Sm",mappings:{"default":{"default":"n ary union"}},key:"22C3"},{category:"Sm",mappings:{"default":{"default":"diamond operator"}},key:"22C4"},{category:"Sm",mappings:{"default":{"default":"dot operator"}},key:"22C5"},{category:"Sm",mappings:{"default":{"default":"star operator"}},key:"22C6"},{category:"Sm",mappings:{"default":{"default":"division times"}},key:"22C7"},{category:"Sm",mappings:{"default":{"default":"bowtie"}},key:"22C8"},{category:"Sm",mappings:{"default":{"default":"left normal factor semidirect product"}},
+key:"22C9"},{category:"Sm",mappings:{"default":{"default":"right normal factor semidirect product"}},key:"22CA"},{category:"Sm",mappings:{"default":{"default":"left semidirect product"}},key:"22CB"},{category:"Sm",mappings:{"default":{"default":"right semidirect product"}},key:"22CC"},{category:"Sm",mappings:{"default":{"default":"reversed tilde equals"}},key:"22CD"},{category:"Sm",mappings:{"default":{"default":"curly logical or"}},key:"22CE"},{category:"Sm",mappings:{"default":{"default":"curly logical and"}},
+key:"22CF"},{category:"Sm",mappings:{"default":{"default":"double subset"}},key:"22D0"},{category:"Sm",mappings:{"default":{"default":"double superset"}},key:"22D1"},{category:"Sm",mappings:{"default":{"default":"double intersection"}},key:"22D2"},{category:"Sm",mappings:{"default":{"default":"double union"}},key:"22D3"},{category:"Sm",mappings:{"default":{"default":"pitchfork"}},key:"22D4"},{category:"Sm",mappings:{"default":{"default":"equal and parallel to"}},key:"22D5"},{category:"Sm",mappings:{"default":{"default":"less than with dot",
+alternative:"less than with dot","short":"less than dot"}},key:"22D6"},{category:"Sm",mappings:{"default":{"default":"greater than with dot",alternative:"greater than with dot","short":"greater than dot"}},key:"22D7"},{category:"Sm",mappings:{"default":{"default":"very much less than",alternative:"very much less than"}},key:"22D8"},{category:"Sm",mappings:{"default":{"default":"very much greater than",alternative:"very much greater than"}},key:"22D9"},{category:"Sm",mappings:{"default":{"default":"less than equal to or greater than",
+alternative:"less than equal to or greater than"}},key:"22DA"},{category:"Sm",mappings:{"default":{"default":"greater than equal to or less than",alternative:"greater than equal to or less than"}},key:"22DB"},{category:"Sm",mappings:{"default":{"default":"equal to or less than",alternative:"equal to or less than"}},key:"22DC"},{category:"Sm",mappings:{"default":{"default":"equal to or greater than",alternative:"equal to or greater than"}},key:"22DD"},{category:"Sm",mappings:{"default":{"default":"equal to or precedes"}},
+key:"22DE"},{category:"Sm",mappings:{"default":{"default":"equal to or succeeds"}},key:"22DF"},{category:"Sm",mappings:{"default":{"default":"does not precede or equal"}},key:"22E0"},{category:"Sm",mappings:{"default":{"default":"does not succeed or equal"}},key:"22E1"},{category:"Sm",mappings:{"default":{"default":"not square image of or equal to"}},key:"22E2"},{category:"Sm",mappings:{"default":{"default":"not square original of or equal to"}},key:"22E3"},{category:"Sm",mappings:{"default":{"default":"square image of or not equal to"}},
+key:"22E4"},{category:"Sm",mappings:{"default":{"default":"square original of or not equal to"}},key:"22E5"},{category:"Sm",mappings:{"default":{"default":"less than but not equivalent to",alternative:"less than but not equivalent to"}},key:"22E6"},{category:"Sm",mappings:{"default":{"default":"greater than but not equivalent to",alternative:"greater than but not equivalent to"}},key:"22E7"},{category:"Sm",mappings:{"default":{"default":"precedes but not equivalent to"}},key:"22E8"},{category:"Sm",
+mappings:{"default":{"default":"succeeds but not equivalent to"}},key:"22E9"},{category:"Sm",mappings:{"default":{"default":"not normal subgroup of"}},key:"22EA"},{category:"Sm",mappings:{"default":{"default":"does not contain as normal subgroup"}},key:"22EB"},{category:"Sm",mappings:{"default":{"default":"not normal subgroup of or equal to"}},key:"22EC"},{category:"Sm",mappings:{"default":{"default":"does not contain as normal subgroup or equal"}},key:"22ED"},{category:"Sm",mappings:{"default":{"default":"vertical ellipsis",
+"short":"dot dot dot"}},key:"22EE"},{category:"Sm",mappings:{"default":{"default":"midline horizontal ellipsis","short":"dot dot dot"}},key:"22EF"},{category:"Sm",mappings:{"default":{"default":"up right diagonal ellipsis","short":"diagonal dot dot dot"}},key:"22F0"},{category:"Sm",mappings:{"default":{"default":"down right diagonal ellipsis","short":"diagonal dot dot dot"}},key:"22F1"},{category:"Sm",mappings:{"default":{"default":"element of with long horizontal stroke"}},key:"22F2"},{category:"Sm",
+mappings:{"default":{"default":"element of with vertical bar at end of horizontal stroke"}},key:"22F3"},{category:"Sm",mappings:{"default":{"default":"small element of with vertical bar at end of horizontal stroke"}},key:"22F4"},{category:"Sm",mappings:{"default":{"default":"element of with dot above"}},key:"22F5"},{category:"Sm",mappings:{"default":{"default":"element of with overbar"}},key:"22F6"},{category:"Sm",mappings:{"default":{"default":"small element of with overbar"}},key:"22F7"},{category:"Sm",
+mappings:{"default":{"default":"element of with underbar"}},key:"22F8"},{category:"Sm",mappings:{"default":{"default":"element of with two horizontal strokes"}},key:"22F9"},{category:"Sm",mappings:{"default":{"default":"contains with long horizontal stroke"}},key:"22FA"},{category:"Sm",mappings:{"default":{"default":"contains with vertical bar at end of horizontal stroke"}},key:"22FB"},{category:"Sm",mappings:{"default":{"default":"small contains with vertical bar at end of horizontal stroke"}},key:"22FC"},
+{category:"Sm",mappings:{"default":{"default":"contains with overbar"}},key:"22FD"},{category:"Sm",mappings:{"default":{"default":"small contains with overbar"}},key:"22FE"},{category:"Sm",mappings:{"default":{"default":"z notation bag membership"}},key:"22FF"},{category:"So",mappings:{"default":{"default":"diameter sign","short":"diameter"}},key:"2300"},{category:"So",mappings:{"default":{"default":"house"}},key:"2302"},{category:"So",mappings:{"default":{"default":"projective"}},key:"2305"},{category:"So",
+mappings:{"default":{"default":"perspective"}},key:"2306"},{category:"So",mappings:{"default":{"default":"wavy line"}},key:"2307"},{category:"So",mappings:{"default":{"default":"reversed not sign","short":"reversed not"}},key:"2310"},{category:"So",mappings:{"default":{"default":"square lozenge"}},key:"2311"},{category:"So",mappings:{"default":{"default":"arc"}},key:"2312"},{category:"So",mappings:{"default":{"default":"segment"}},key:"2313"},{category:"So",mappings:{"default":{"default":"sector"}},
+key:"2314"},{category:"So",mappings:{"default":{"default":"heavy plus sign",alternative:"heavy plus","short":"bold plus"}},key:"2795"},{category:"So",mappings:{"default":{"default":"heavy minus sign",alternative:"heavy minus","short":"bold minus"}},key:"2796"},{category:"So",mappings:{"default":{"default":"heavy division sign",alternative:"heavy division","short":"bold division"}},key:"2797"},{category:"So",mappings:{"default":{"default":"curly loop"}},key:"27B0"},{category:"So",mappings:{"default":{"default":"double curly loop"}},
+key:"27BF"},{category:"Sm",mappings:{"default":{"default":"white triangle containing small white triangle"}},key:"27C1"},{category:"Sm",mappings:{"default":{"default":"perpendicular"}},key:"27C2"},{category:"Sm",mappings:{"default":{"default":"open subset"}},key:"27C3"},{category:"Sm",mappings:{"default":{"default":"open superset"}},key:"27C4"},{category:"Sm",mappings:{"default":{"default":"or with dot inside"}},key:"27C7"},{category:"Sm",mappings:{"default":{"default":"reverse solidus preceding subset"}},
+key:"27C8"},{category:"Sm",mappings:{"default":{"default":"superset preceding solidus"}},key:"27C9"},{category:"Sm",mappings:{"default":{"default":"vertical bar with horizontal stroke"}},key:"27CA"},{category:"Sm",mappings:{"default":{"default":"mathematical rising diagonal"}},key:"27CB"},{category:"Sm",mappings:{"default":{"default":"long division"}},key:"27CC"},{category:"Sm",mappings:{"default":{"default":"mathematical falling diagonal"}},key:"27CD"},{category:"Sm",mappings:{"default":{"default":"squared logical and"}},
+key:"27CE"},{category:"Sm",mappings:{"default":{"default":"squared logical or"}},key:"27CF"},{category:"Sm",mappings:{"default":{"default":"white diamond with centered dot"}},key:"27D0"},{category:"Sm",mappings:{"default":{"default":"and with dot"}},key:"27D1"},{category:"Sm",mappings:{"default":{"default":"element of opening upwards"}},key:"27D2"},{category:"Sm",mappings:{"default":{"default":"lower right corner with dot"}},key:"27D3"},{category:"Sm",mappings:{"default":{"default":"upper left corner with dot"}},
+key:"27D4"},{category:"Sm",mappings:{"default":{"default":"left outer join"}},key:"27D5"},{category:"Sm",mappings:{"default":{"default":"right outer join"}},key:"27D6"},{category:"Sm",mappings:{"default":{"default":"full outer join"}},key:"27D7"},{category:"Sm",mappings:{"default":{"default":"large up tack"}},key:"27D8"},{category:"Sm",mappings:{"default":{"default":"large down tack"}},key:"27D9"},{category:"Sm",mappings:{"default":{"default":"left and right double turnstile"}},key:"27DA"},{category:"Sm",
+mappings:{"default":{"default":"left and right tack"}},key:"27DB"},{category:"Sm",mappings:{"default":{"default":"left multimap"}},key:"27DC"},{category:"Sm",mappings:{"default":{"default":"long right tack"}},key:"27DD"},{category:"Sm",mappings:{"default":{"default":"long left tack"}},key:"27DE"},{category:"Sm",mappings:{"default":{"default":"up tack with circle above"}},key:"27DF"},{category:"Sm",mappings:{"default":{"default":"lozenge divided by horizontal rule"}},key:"27E0"},{category:"Sm",mappings:{"default":{"default":"white concave sided diamond"}},
+key:"27E1"},{category:"Sm",mappings:{"default":{"default":"white concave sided diamond with leftwards tick"}},key:"27E2"},{category:"Sm",mappings:{"default":{"default":"white concave sided diamond with rightwards tick"}},key:"27E3"},{category:"Sm",mappings:{"default":{"default":"white square with leftwards tick"}},key:"27E4"},{category:"Sm",mappings:{"default":{"default":"white square with rightwards tick"}},key:"27E5"},{category:"Sm",mappings:{"default":{"default":"rising diagonal crossing falling diagonal"}},
+key:"292B"},{category:"Sm",mappings:{"default":{"default":"falling diagonal crossing rising diagonal"}},key:"292C"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar delimiter"}},key:"2980"},{category:"Sm",mappings:{"default":{"default":"z notation spot"}},key:"2981"},{category:"Sm",mappings:{"default":{"default":"z notation type colon"}},key:"2982"},{category:"Sm",mappings:{"default":{"default":"dotted fence"}},key:"2999"},{category:"Sm",mappings:{"default":{"default":"vertical zigzag line"}},
+key:"299A"},{category:"Sm",mappings:{"default":{"default":"reversed empty set"}},key:"29B0"},{category:"Sm",mappings:{"default":{"default":"empty set with overbar"}},key:"29B1"},{category:"Sm",mappings:{"default":{"default":"empty set with small circle above"}},key:"29B2"},{category:"Sm",mappings:{"default":{"default":"circle with horizontal bar"}},key:"29B5"},{category:"Sm",mappings:{"default":{"default":"circled vertical bar"}},key:"29B6"},{category:"Sm",mappings:{"default":{"default":"circled parallel"}},
+key:"29B7"},{category:"Sm",mappings:{"default":{"default":"circled reverse solidus"}},key:"29B8"},{category:"Sm",mappings:{"default":{"default":"circled perpendicular"}},key:"29B9"},{category:"Sm",mappings:{"default":{"default":"circle divided by horizontal bar and top half divided by vertical bar"}},key:"29BA"},{category:"Sm",mappings:{"default":{"default":"circle with superimposed x"}},key:"29BB"},{category:"Sm",mappings:{"default":{"default":"circled anticlockwise rotated division sign","short":"circled anticlockwise rotated division"}},
+key:"29BC"},{category:"Sm",mappings:{"default":{"default":"circled white bullet"}},key:"29BE"},{category:"Sm",mappings:{"default":{"default":"circled bullet"}},key:"29BF"},{category:"Sm",mappings:{"default":{"default":"circled less than"}},key:"29C0"},{category:"Sm",mappings:{"default":{"default":"circled greater than"}},key:"29C1"},{category:"Sm",mappings:{"default":{"default":"circle with small circle to the right"}},key:"29C2"},{category:"Sm",mappings:{"default":{"default":"circle with two horizontal strokes to the right"}},
+key:"29C3"},{category:"Sm",mappings:{"default":{"default":"squared rising diagonal slash"}},key:"29C4"},{category:"Sm",mappings:{"default":{"default":"squared falling diagonal slash"}},key:"29C5"},{category:"Sm",mappings:{"default":{"default":"squared asterisk"}},key:"29C6"},{category:"Sm",mappings:{"default":{"default":"squared small circle"}},key:"29C7"},{category:"Sm",mappings:{"default":{"default":"squared square"}},key:"29C8"},{category:"Sm",mappings:{"default":{"default":"two joined squares"}},
+key:"29C9"},{category:"Sm",mappings:{"default":{"default":"triangle with dot above"}},key:"29CA"},{category:"Sm",mappings:{"default":{"default":"triangle with underbar"}},key:"29CB"},{category:"Sm",mappings:{"default":{"default":"s in triangle"}},key:"29CC"},{category:"Sm",mappings:{"default":{"default":"triangle with serifs at bottom"}},key:"29CD"},{category:"Sm",mappings:{"default":{"default":"right triangle above left triangle"}},key:"29CE"},{category:"Sm",mappings:{"default":{"default":"left triangle beside vertical bar"}},
+key:"29CF"},{category:"Sm",mappings:{"default":{"default":"vertical bar beside right triangle"}},key:"29D0"},{category:"Sm",mappings:{"default":{"default":"bowtie with left half black"}},key:"29D1"},{category:"Sm",mappings:{"default":{"default":"bowtie with right half black"}},key:"29D2"},{category:"Sm",mappings:{"default":{"default":"black bowtie"}},key:"29D3"},{category:"Sm",mappings:{"default":{"default":"times with left half black"}},key:"29D4"},{category:"Sm",mappings:{"default":{"default":"times with right half black"}},
+key:"29D5"},{category:"Sm",mappings:{"default":{"default":"white hourglass"}},key:"29D6"},{category:"Sm",mappings:{"default":{"default":"black hourglass"}},key:"29D7"},{category:"Sm",mappings:{"default":{"default":"incomplete infinity"}},key:"29DC"},{category:"Sm",mappings:{"default":{"default":"tie over infinity"}},key:"29DD"},{category:"Sm",mappings:{"default":{"default":"infinity negated with vertical bar"}},key:"29DE"},{category:"Sm",mappings:{"default":{"default":"double ended multimap"}},key:"29DF"},
+{category:"Sm",mappings:{"default":{"default":"square with contoured outline"}},key:"29E0"},{category:"Sm",mappings:{"default":{"default":"increases as"}},key:"29E1"},{category:"Sm",mappings:{"default":{"default":"shuffle product"}},key:"29E2"},{category:"Sm",mappings:{"default":{"default":"equals sign and slanted parallel"}},key:"29E3"},{category:"Sm",mappings:{"default":{"default":"equals sign and slanted parallel with tilde above"}},key:"29E4"},{category:"Sm",mappings:{"default":{"default":"identical to and slanted parallel"}},
+key:"29E5"},{category:"Sm",mappings:{"default":{"default":"gleich stark"}},key:"29E6"},{category:"Sm",mappings:{"default":{"default":"thermodynamic"}},key:"29E7"},{category:"Sm",mappings:{"default":{"default":"down pointing triangle with left half black"}},key:"29E8"},{category:"Sm",mappings:{"default":{"default":"down pointing triangle with right half black"}},key:"29E9"},{category:"Sm",mappings:{"default":{"default":"black lozenge"}},key:"29EB"},{category:"Sm",mappings:{"default":{"default":"error barred white square"}},
+key:"29EE"},{category:"Sm",mappings:{"default":{"default":"error barred black square"}},key:"29EF"},{category:"Sm",mappings:{"default":{"default":"error barred white diamond"}},key:"29F0"},{category:"Sm",mappings:{"default":{"default":"error barred black diamond"}},key:"29F1"},{category:"Sm",mappings:{"default":{"default":"error barred white circle"}},key:"29F2"},{category:"Sm",mappings:{"default":{"default":"error barred black circle"}},key:"29F3"},{category:"Sm",mappings:{"default":{"default":"rule delayed"}},
+key:"29F4"},{category:"Sm",mappings:{"default":{"default":"reverse solidus operator"}},key:"29F5"},{category:"Sm",mappings:{"default":{"default":"solidus with overbar"}},key:"29F6"},{category:"Sm",mappings:{"default":{"default":"reverse solidus with horizontal stroke"}},key:"29F7"},{category:"Sm",mappings:{"default":{"default":"big solidus"}},key:"29F8"},{category:"Sm",mappings:{"default":{"default":"big reverse solidus"}},key:"29F9"},{category:"Sm",mappings:{"default":{"default":"double plus"}},
+key:"29FA"},{category:"Sm",mappings:{"default":{"default":"triple plus"}},key:"29FB"},{category:"Sm",mappings:{"default":{"default":"tiny"}},key:"29FE"},{category:"Sm",mappings:{"default":{"default":"miny"}},key:"29FF"},{category:"Sm",mappings:{"default":{"default":"n ary circled dot operator"}},key:"2A00"},{category:"Sm",mappings:{"default":{"default":"n ary circled plus operator"}},key:"2A01"},{category:"Sm",mappings:{"default":{"default":"n ary circled times operator"}},key:"2A02"},{category:"Sm",
+mappings:{"default":{"default":"n ary union operator with dot"}},key:"2A03"},{category:"Sm",mappings:{"default":{"default":"n ary union operator with plus"}},key:"2A04"},{category:"Sm",mappings:{"default":{"default":"n ary square intersection operator"}},key:"2A05"},{category:"Sm",mappings:{"default":{"default":"n ary square union operator"}},key:"2A06"},{category:"Sm",mappings:{"default":{"default":"two logical and operator"}},key:"2A07"},{category:"Sm",mappings:{"default":{"default":"two logical or operator"}},
+key:"2A08"},{category:"Sm",mappings:{"default":{"default":"n ary times operator"}},key:"2A09"},{category:"Sm",mappings:{"default":{"default":"modulo two sum"}},key:"2A0A"},{category:"Sm",mappings:{"default":{"default":"summation with integral"}},key:"2A0B"},{category:"Sm",mappings:{"default":{"default":"quadruple integral operator"}},key:"2A0C"},{category:"Sm",mappings:{"default":{"default":"finite part integral"}},key:"2A0D"},{category:"Sm",mappings:{"default":{"default":"integral with double stroke"}},
+key:"2A0E"},{category:"Sm",mappings:{"default":{"default":"integral average with slash"}},key:"2A0F"},{category:"Sm",mappings:{"default":{"default":"circulation function"}},key:"2A10"},{category:"Sm",mappings:{"default":{"default":"anticlockwise integration"}},key:"2A11"},{category:"Sm",mappings:{"default":{"default":"line integration with rectangular path around pole"}},key:"2A12"},{category:"Sm",mappings:{"default":{"default":"line integration with semicircular path around pole"}},key:"2A13"},{category:"Sm",
+mappings:{"default":{"default":"line integration not including the pole"}},key:"2A14"},{category:"Sm",mappings:{"default":{"default":"integral around a point operator"}},key:"2A15"},{category:"Sm",mappings:{"default":{"default":"quaternion integral operator"}},key:"2A16"},{category:"Sm",mappings:{"default":{"default":"integral with times sign","short":"integral with times"}},key:"2A18"},{category:"Sm",mappings:{"default":{"default":"integral with intersection"}},key:"2A19"},{category:"Sm",mappings:{"default":{"default":"integral with union"}},
+key:"2A1A"},{category:"Sm",mappings:{"default":{"default":"integral with overbar"}},key:"2A1B"},{category:"Sm",mappings:{"default":{"default":"integral with underbar"}},key:"2A1C"},{category:"Sm",mappings:{"default":{"default":"join"}},key:"2A1D"},{category:"Sm",mappings:{"default":{"default":"large left triangle operator"}},key:"2A1E"},{category:"Sm",mappings:{"default":{"default":"z notation schema composition"}},key:"2A1F"},{category:"Sm",mappings:{"default":{"default":"z notation schema piping"}},
+key:"2A20"},{category:"Sm",mappings:{"default":{"default":"z notation schema projection"}},key:"2A21"},{category:"Sm",mappings:{"default":{"default":"plus sign with small circle above","short":"plus with circle above"}},key:"2A22"},{category:"Sm",mappings:{"default":{"default":"plus sign with circumflex accent above","short":"plus hat"}},key:"2A23"},{category:"Sm",mappings:{"default":{"default":"plus sign with tilde above","short":"plus tilde"}},key:"2A24"},{category:"Sm",mappings:{"default":{"default":"plus sign with dot below",
+"short":"plus underdot"}},key:"2A25"},{category:"Sm",mappings:{"default":{"default":"plus sign with tilde below"}},key:"2A26"},{category:"Sm",mappings:{"default":{"default":"plus sign with subscript two"}},key:"2A27"},{category:"Sm",mappings:{"default":{"default":"plus sign with black triangle"}},key:"2A28"},{category:"Sm",mappings:{"default":{"default":"minus sign with comma above"}},key:"2A29"},{category:"Sm",mappings:{"default":{"default":"minus sign with dot below"}},key:"2A2A"},{category:"Sm",
+mappings:{"default":{"default":"minus sign with falling dots"}},key:"2A2B"},{category:"Sm",mappings:{"default":{"default":"minus sign with rising dots"}},key:"2A2C"},{category:"Sm",mappings:{"default":{"default":"plus sign in left half circle"}},key:"2A2D"},{category:"Sm",mappings:{"default":{"default":"plus sign in right half circle"}},key:"2A2E"},{category:"Sm",mappings:{"default":{"default":"vector or cross product"}},key:"2A2F"},{category:"Sm",mappings:{"default":{"default":"multiplication sign with dot above"}},
+key:"2A30"},{category:"Sm",mappings:{"default":{"default":"multiplication sign with underbar"}},key:"2A31"},{category:"Sm",mappings:{"default":{"default":"semidirect product with bottom closed"}},key:"2A32"},{category:"Sm",mappings:{"default":{"default":"smash product"}},key:"2A33"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in left half circle"}},key:"2A34"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in right half circle"}},key:"2A35"},{category:"Sm",
+mappings:{"default":{"default":"circled multiplication sign with circumflex accent"}},key:"2A36"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in double circle"}},key:"2A37"},{category:"Sm",mappings:{"default":{"default":"circled division sign","short":"circled division"}},key:"2A38"},{category:"Sm",mappings:{"default":{"default":"plus sign in triangle"}},key:"2A39"},{category:"Sm",mappings:{"default":{"default":"minus sign in triangle"}},key:"2A3A"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in triangle"}},
+key:"2A3B"},{category:"Sm",mappings:{"default":{"default":"interior product"}},key:"2A3C"},{category:"Sm",mappings:{"default":{"default":"righthand interior product"}},key:"2A3D"},{category:"Sm",mappings:{"default":{"default":"z notation relational composition"}},key:"2A3E"},{category:"Sm",mappings:{"default":{"default":"amalgamation or coproduct"}},key:"2A3F"},{category:"Sm",mappings:{"default":{"default":"intersection with dot"}},key:"2A40"},{category:"Sm",mappings:{"default":{"default":"union with minus sign",
+"short":"union with minus"}},key:"2A41"},{category:"Sm",mappings:{"default":{"default":"union with overbar"}},key:"2A42"},{category:"Sm",mappings:{"default":{"default":"intersection with overbar"}},key:"2A43"},{category:"Sm",mappings:{"default":{"default":"intersection with logical and"}},key:"2A44"},{category:"Sm",mappings:{"default":{"default":"union with logical or"}},key:"2A45"},{category:"Sm",mappings:{"default":{"default":"union above intersection"}},key:"2A46"},{category:"Sm",mappings:{"default":{"default":"intersection above union"}},
+key:"2A47"},{category:"Sm",mappings:{"default":{"default":"union above bar above intersection"}},key:"2A48"},{category:"Sm",mappings:{"default":{"default":"intersection above bar above union"}},key:"2A49"},{category:"Sm",mappings:{"default":{"default":"union beside and joined with union"}},key:"2A4A"},{category:"Sm",mappings:{"default":{"default":"intersection beside and joined with intersection"}},key:"2A4B"},{category:"Sm",mappings:{"default":{"default":"closed union with serifs"}},key:"2A4C"},
+{category:"Sm",mappings:{"default":{"default":"closed intersection with serifs"}},key:"2A4D"},{category:"Sm",mappings:{"default":{"default":"double square intersection"}},key:"2A4E"},{category:"Sm",mappings:{"default":{"default":"double square union"}},key:"2A4F"},{category:"Sm",mappings:{"default":{"default":"closed union with serifs and smash product"}},key:"2A50"},{category:"Sm",mappings:{"default":{"default":"logical and with dot above"}},key:"2A51"},{category:"Sm",mappings:{"default":{"default":"logical or with dot above"}},
+key:"2A52"},{category:"Sm",mappings:{"default":{"default":"double logical and"}},key:"2A53"},{category:"Sm",mappings:{"default":{"default":"double logical or"}},key:"2A54"},{category:"Sm",mappings:{"default":{"default":"two intersecting logical and"}},key:"2A55"},{category:"Sm",mappings:{"default":{"default":"two intersecting logical or"}},key:"2A56"},{category:"Sm",mappings:{"default":{"default":"sloping large or"}},key:"2A57"},{category:"Sm",mappings:{"default":{"default":"sloping large and"}},
+key:"2A58"},{category:"Sm",mappings:{"default":{"default":"logical or overlapping logical and"}},key:"2A59"},{category:"Sm",mappings:{"default":{"default":"logical and with middle stem"}},key:"2A5A"},{category:"Sm",mappings:{"default":{"default":"logical or with middle stem"}},key:"2A5B"},{category:"Sm",mappings:{"default":{"default":"logical and with horizontal dash"}},key:"2A5C"},{category:"Sm",mappings:{"default":{"default":"logical or with horizontal dash"}},key:"2A5D"},{category:"Sm",mappings:{"default":{"default":"logical and with double overbar"}},
+key:"2A5E"},{category:"Sm",mappings:{"default":{"default":"logical and with underbar"}},key:"2A5F"},{category:"Sm",mappings:{"default":{"default":"logical and with double underbar"}},key:"2A60"},{category:"Sm",mappings:{"default":{"default":"small vee with underbar"}},key:"2A61"},{category:"Sm",mappings:{"default":{"default":"logical or with double overbar"}},key:"2A62"},{category:"Sm",mappings:{"default":{"default":"logical or with double underbar"}},key:"2A63"},{category:"Sm",mappings:{"default":{"default":"z notation domain antirestriction"}},
+key:"2A64"},{category:"Sm",mappings:{"default":{"default":"z notation range antirestriction"}},key:"2A65"},{category:"Sm",mappings:{"default":{"default":"equals sign with dot below"}},key:"2A66"},{category:"Sm",mappings:{"default":{"default":"identical with dot above"}},key:"2A67"},{category:"Sm",mappings:{"default":{"default":"triple horizontal bar with double vertical stroke"}},key:"2A68"},{category:"Sm",mappings:{"default":{"default":"triple horizontal bar with triple vertical stroke"}},key:"2A69"},
+{category:"Sm",mappings:{"default":{"default":"tilde operator with dot above"}},key:"2A6A"},{category:"Sm",mappings:{"default":{"default":"tilde operator with rising dots"}},key:"2A6B"},{category:"Sm",mappings:{"default":{"default":"similar minus similar"}},key:"2A6C"},{category:"Sm",mappings:{"default":{"default":"congruent with dot above"}},key:"2A6D"},{category:"Sm",mappings:{"default":{"default":"equals with asterisk"}},key:"2A6E"},{category:"Sm",mappings:{"default":{"default":"almost equal to with circumflex accent",
+"short":"almost equal hat"}},key:"2A6F"},{category:"Sm",mappings:{"default":{"default":"approximately equal or equal to"}},key:"2A70"},{category:"Sm",mappings:{"default":{"default":"equals sign above plus sign","short":"equals above plus"}},key:"2A71"},{category:"Sm",mappings:{"default":{"default":"plus sign above equals sign","short":"plus above equals"}},key:"2A72"},{category:"Sm",mappings:{"default":{"default":"equals sign above tilde operator","short":"equals above tilde operator"}},key:"2A73"},
+{category:"Sm",mappings:{"default":{"default":"double colon equal"}},key:"2A74"},{category:"Sm",mappings:{"default":{"default":"two consecutive equals signs","short":"two consecutive equals"}},key:"2A75"},{category:"Sm",mappings:{"default":{"default":"three consecutive equals signs","short":"three consecutive equals"}},key:"2A76"},{category:"Sm",mappings:{"default":{"default":"equals sign with two dots above and two dots below"}},key:"2A77"},{category:"Sm",mappings:{"default":{"default":"equivalent with four dots above"}},
+key:"2A78"},{category:"Sm",mappings:{"default":{"default":"less than with circle inside"}},key:"2A79"},{category:"Sm",mappings:{"default":{"default":"greater than with circle inside"}},key:"2A7A"},{category:"Sm",mappings:{"default":{"default":"less than with question mark above"}},key:"2A7B"},{category:"Sm",mappings:{"default":{"default":"greater than with question mark above"}},key:"2A7C"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to"}},key:"2A7D"},{category:"Sm",
+mappings:{"default":{"default":"greater than or slanted equal to"}},key:"2A7E"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to with dot inside"}},key:"2A7F"},{category:"Sm",mappings:{"default":{"default":"greater than or slanted equal to with dot inside"}},key:"2A80"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to with dot above"}},key:"2A81"},{category:"Sm",mappings:{"default":{"default":"greater than or slanted equal to with dot above"}},
+key:"2A82"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to with dot above right"}},key:"2A83"},{category:"Sm",mappings:{"default":{"default":"greater than or slanted equal to with dot above left"}},key:"2A84"},{category:"Sm",mappings:{"default":{"default":"less than or approximate"}},key:"2A85"},{category:"Sm",mappings:{"default":{"default":"greater than or approximate"}},key:"2A86"},{category:"Sm",mappings:{"default":{"default":"less than and single line not equal to"}},
+key:"2A87"},{category:"Sm",mappings:{"default":{"default":"greater than and single line not equal to"}},key:"2A88"},{category:"Sm",mappings:{"default":{"default":"less than and not approximate"}},key:"2A89"},{category:"Sm",mappings:{"default":{"default":"greater than and not approximate"}},key:"2A8A"},{category:"Sm",mappings:{"default":{"default":"less than above double line equal above greater than"}},key:"2A8B"},{category:"Sm",mappings:{"default":{"default":"greater than above double line equal above less than"}},
+key:"2A8C"},{category:"Sm",mappings:{"default":{"default":"less than above similar or equal"}},key:"2A8D"},{category:"Sm",mappings:{"default":{"default":"greater than above similar or equal"}},key:"2A8E"},{category:"Sm",mappings:{"default":{"default":"less than above similar above greater than"}},key:"2A8F"},{category:"Sm",mappings:{"default":{"default":"greater than above similar above less than"}},key:"2A90"},{category:"Sm",mappings:{"default":{"default":"less than above greater than above double line equal"}},
+key:"2A91"},{category:"Sm",mappings:{"default":{"default":"greater than above less than above double line equal"}},key:"2A92"},{category:"Sm",mappings:{"default":{"default":"less than above slanted equal above greater than above slanted equal"}},key:"2A93"},{category:"Sm",mappings:{"default":{"default":"greater than above slanted equal above less than above slanted equal"}},key:"2A94"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or less than"}},key:"2A95"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or greater than"}},
+key:"2A96"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or less than with dot inside"}},key:"2A97"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or greater than with dot inside"}},key:"2A98"},{category:"Sm",mappings:{"default":{"default":"double line equal to or less than"}},key:"2A99"},{category:"Sm",mappings:{"default":{"default":"double line equal to or greater than"}},key:"2A9A"},{category:"Sm",mappings:{"default":{"default":"double line slanted equal to or less than"}},
+key:"2A9B"},{category:"Sm",mappings:{"default":{"default":"double line slanted equal to or greater than"}},key:"2A9C"},{category:"Sm",mappings:{"default":{"default":"similar or less than"}},key:"2A9D"},{category:"Sm",mappings:{"default":{"default":"similar or greater than"}},key:"2A9E"},{category:"Sm",mappings:{"default":{"default":"similar above less than above equals sign"}},key:"2A9F"},{category:"Sm",mappings:{"default":{"default":"similar above greater than above equals sign"}},key:"2AA0"},{category:"Sm",
+mappings:{"default":{"default":"double nested less than"}},key:"2AA1"},{category:"Sm",mappings:{"default":{"default":"double nested greater than"}},key:"2AA2"},{category:"Sm",mappings:{"default":{"default":"double nested less than with underbar"}},key:"2AA3"},{category:"Sm",mappings:{"default":{"default":"greater than overlapping less than"}},key:"2AA4"},{category:"Sm",mappings:{"default":{"default":"greater than beside less than"}},key:"2AA5"},{category:"Sm",mappings:{"default":{"default":"less than closed by curve"}},
+key:"2AA6"},{category:"Sm",mappings:{"default":{"default":"greater than closed by curve"}},key:"2AA7"},{category:"Sm",mappings:{"default":{"default":"less than closed by curve above slanted equal"}},key:"2AA8"},{category:"Sm",mappings:{"default":{"default":"greater than closed by curve above slanted equal"}},key:"2AA9"},{category:"Sm",mappings:{"default":{"default":"smaller than"}},key:"2AAA"},{category:"Sm",mappings:{"default":{"default":"larger than"}},key:"2AAB"},{category:"Sm",mappings:{"default":{"default":"smaller than or equal to"}},
+key:"2AAC"},{category:"Sm",mappings:{"default":{"default":"larger than or equal to"}},key:"2AAD"},{category:"Sm",mappings:{"default":{"default":"equals sign with bumpy above"}},key:"2AAE"},{category:"Sm",mappings:{"default":{"default":"precedes above single line equals sign"}},key:"2AAF"},{category:"Sm",mappings:{"default":{"default":"succeeds above single line equals sign"}},key:"2AB0"},{category:"Sm",mappings:{"default":{"default":"precedes above single line not equal to"}},key:"2AB1"},{category:"Sm",
+mappings:{"default":{"default":"succeeds above single line not equal to"}},key:"2AB2"},{category:"Sm",mappings:{"default":{"default":"precedes above equals sign"}},key:"2AB3"},{category:"Sm",mappings:{"default":{"default":"succeeds above equals sign"}},key:"2AB4"},{category:"Sm",mappings:{"default":{"default":"precedes above not equal to"}},key:"2AB5"},{category:"Sm",mappings:{"default":{"default":"succeeds above not equal to"}},key:"2AB6"},{category:"Sm",mappings:{"default":{"default":"precedes above almost equal to"}},
+key:"2AB7"},{category:"Sm",mappings:{"default":{"default":"succeeds above almost equal to"}},key:"2AB8"},{category:"Sm",mappings:{"default":{"default":"precedes above not almost equal to"}},key:"2AB9"},{category:"Sm",mappings:{"default":{"default":"succeeds above not almost equal to"}},key:"2ABA"},{category:"Sm",mappings:{"default":{"default":"double precedes"}},key:"2ABB"},{category:"Sm",mappings:{"default":{"default":"double succeeds"}},key:"2ABC"},{category:"Sm",mappings:{"default":{"default":"subset with dot"}},
+key:"2ABD"},{category:"Sm",mappings:{"default":{"default":"superset with dot"}},key:"2ABE"},{category:"Sm",mappings:{"default":{"default":"subset with plus sign below"}},key:"2ABF"},{category:"Sm",mappings:{"default":{"default":"superset with plus sign below"}},key:"2AC0"},{category:"Sm",mappings:{"default":{"default":"subset with multiplication sign below"}},key:"2AC1"},{category:"Sm",mappings:{"default":{"default":"superset with multiplication sign below"}},key:"2AC2"},{category:"Sm",mappings:{"default":{"default":"subset of or equal to with dot above"}},
+key:"2AC3"},{category:"Sm",mappings:{"default":{"default":"superset of or equal to with dot above"}},key:"2AC4"},{category:"Sm",mappings:{"default":{"default":"subset of above equals sign"}},key:"2AC5"},{category:"Sm",mappings:{"default":{"default":"superset of above equals sign"}},key:"2AC6"},{category:"Sm",mappings:{"default":{"default":"subset of above tilde operator"}},key:"2AC7"},{category:"Sm",mappings:{"default":{"default":"superset of above tilde operator"}},key:"2AC8"},{category:"Sm",mappings:{"default":{"default":"subset of above almost equal to"}},
+key:"2AC9"},{category:"Sm",mappings:{"default":{"default":"superset of above almost equal to"}},key:"2ACA"},{category:"Sm",mappings:{"default":{"default":"subset of above not equal to"}},key:"2ACB"},{category:"Sm",mappings:{"default":{"default":"superset of above not equal to"}},key:"2ACC"},{category:"Sm",mappings:{"default":{"default":"square left open box operator"}},key:"2ACD"},{category:"Sm",mappings:{"default":{"default":"square right open box operator"}},key:"2ACE"},{category:"Sm",mappings:{"default":{"default":"closed subset"}},
+key:"2ACF"},{category:"Sm",mappings:{"default":{"default":"closed superset"}},key:"2AD0"},{category:"Sm",mappings:{"default":{"default":"closed subset or equal to"}},key:"2AD1"},{category:"Sm",mappings:{"default":{"default":"closed superset or equal to"}},key:"2AD2"},{category:"Sm",mappings:{"default":{"default":"subset above superset"}},key:"2AD3"},{category:"Sm",mappings:{"default":{"default":"superset above subset"}},key:"2AD4"},{category:"Sm",mappings:{"default":{"default":"subset above subset"}},
+key:"2AD5"},{category:"Sm",mappings:{"default":{"default":"superset above superset"}},key:"2AD6"},{category:"Sm",mappings:{"default":{"default":"superset beside subset"}},key:"2AD7"},{category:"Sm",mappings:{"default":{"default":"superset beside and joined by dash with subset"}},key:"2AD8"},{category:"Sm",mappings:{"default":{"default":"element of opening downwards"}},key:"2AD9"},{category:"Sm",mappings:{"default":{"default":"pitchfork with tee top"}},key:"2ADA"},{category:"Sm",mappings:{"default":{"default":"transversal intersection"}},
+key:"2ADB"},{category:"Sm",mappings:{"default":{"default":"forking"}},key:"2ADC"},{category:"Sm",mappings:{"default":{"default":"nonforking"}},key:"2ADD"},{category:"Sm",mappings:{"default":{"default":"short left tack"}},key:"2ADE"},{category:"Sm",mappings:{"default":{"default":"short down tack"}},key:"2ADF"},{category:"Sm",mappings:{"default":{"default":"short up tack"}},key:"2AE0"},{category:"Sm",mappings:{"default":{"default":"perpendicular with s"}},key:"2AE1"},{category:"Sm",mappings:{"default":{"default":"vertical bar triple right turnstile"}},
+key:"2AE2"},{category:"Sm",mappings:{"default":{"default":"double vertical bar left turnstile"}},key:"2AE3"},{category:"Sm",mappings:{"default":{"default":"vertical bar double left turnstile"}},key:"2AE4"},{category:"Sm",mappings:{"default":{"default":"double vertical bar double left turnstile"}},key:"2AE5"},{category:"Sm",mappings:{"default":{"default":"long dash from left member of double vertical"}},key:"2AE6"},{category:"Sm",mappings:{"default":{"default":"short down tack with overbar"}},key:"2AE7"},
+{category:"Sm",mappings:{"default":{"default":"short up tack with underbar"}},key:"2AE8"},{category:"Sm",mappings:{"default":{"default":"short up tack above short down tack"}},key:"2AE9"},{category:"Sm",mappings:{"default":{"default":"double down tack"}},key:"2AEA"},{category:"Sm",mappings:{"default":{"default":"double up tack"}},key:"2AEB"},{category:"Sm",mappings:{"default":{"default":"double stroke not sign"}},key:"2AEC"},{category:"Sm",mappings:{"default":{"default":"reversed double stroke not sign"}},
+key:"2AED"},{category:"Sm",mappings:{"default":{"default":"does not divide with reversed negation slash"}},key:"2AEE"},{category:"Sm",mappings:{"default":{"default":"vertical line with circle above"}},key:"2AEF"},{category:"Sm",mappings:{"default":{"default":"vertical line with circle below"}},key:"2AF0"},{category:"Sm",mappings:{"default":{"default":"down tack with circle below"}},key:"2AF1"},{category:"Sm",mappings:{"default":{"default":"parallel with horizontal stroke"}},key:"2AF2"},{category:"Sm",
+mappings:{"default":{"default":"parallel with tilde operator"}},key:"2AF3"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar binary relation"}},key:"2AF4"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar with horizontal stroke"}},key:"2AF5"},{category:"Sm",mappings:{"default":{"default":"triple colon operator"}},key:"2AF6"},{category:"Sm",mappings:{"default":{"default":"triple nested less than"}},key:"2AF7"},{category:"Sm",mappings:{"default":{"default":"triple nested greater than"}},
+key:"2AF8"},{category:"Sm",mappings:{"default":{"default":"double line slanted less than or equal to"}},key:"2AF9"},{category:"Sm",mappings:{"default":{"default":"double line slanted greater than or equal to"}},key:"2AFA"},{category:"Sm",mappings:{"default":{"default":"triple solidus binary relation"}},key:"2AFB"},{category:"Sm",mappings:{"default":{"default":"large triple vertical bar operator"}},key:"2AFC"},{category:"Sm",mappings:{"default":{"default":"double solidus operator"}},key:"2AFD"},{category:"Sm",
+mappings:{"default":{"default":"white vertical bar"}},key:"2AFE"},{category:"Sm",mappings:{"default":{"default":"n ary white vertical bar"}},key:"2AFF"},{category:"Pd",mappings:{"default":{"default":"wave dash"}},key:"301C"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical comma"}},key:"FE10"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical colon"}},key:"FE13"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical semicolon"}},
+key:"FE14"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical exclamation mark"}},key:"FE15"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical question mark"}},key:"FE16"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical horizontal ellipsis"}},key:"FE19"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical two dot leader",alternative:"glyph for vertical two dot leader"}},key:"FE30"},{category:"Pd",
+mappings:{"default":{"default":"presentation form for vertical em dash",alternative:"glyph for vertical em dash"}},key:"FE31"},{category:"Pd",mappings:{"default":{"default":"presentation form for vertical en dash",alternative:"glyph for vertical en dash"}},key:"FE32"},{category:"Pc",mappings:{"default":{"default":"presentation form for vertical low line",alternative:"glyph for vertical spacing underscore"}},key:"FE33"},{category:"Pc",mappings:{"default":{"default":"presentation form for vertical wavy low line",
+alternative:"glyph for vertical spacing wavy underscore"}},key:"FE34"},{category:"Po",mappings:{"default":{"default":"sesame dot"}},key:"FE45"},{category:"Po",mappings:{"default":{"default":"white sesame dot"}},key:"FE46"},{category:"Po",mappings:{"default":{"default":"dashed overline",alternative:"spacing dashed overscore"}},key:"FE49"},{category:"Po",mappings:{"default":{"default":"centerline overline",alternative:"spacing centerline overscore"}},key:"FE4A"},{category:"Po",mappings:{"default":{"default":"wavy overline",
+alternative:"spacing wavy overscore"}},key:"FE4B"},{category:"Po",mappings:{"default":{"default":"double wavy overline",alternative:"spacing double wavy overscore"}},key:"FE4C"},{category:"Pc",mappings:{"default":{"default":"dashed low line",alternative:"spacing dashed underscore"}},key:"FE4D"},{category:"Pc",mappings:{"default":{"default":"centerline low line",alternative:"spacing centerline underscore"}},key:"FE4E"},{category:"Pc",mappings:{"default":{"default":"wavy low line",alternative:"spacing wavy underscore"}},
+key:"FE4F"},{category:"Po",mappings:{"default":{"default":"small comma"}},key:"FE50"},{category:"Po",mappings:{"default":{"default":"small full stop",alternative:"small period"}},key:"FE52"},{category:"Po",mappings:{"default":{"default":"small semicolon"}},key:"FE54"},{category:"Po",mappings:{"default":{"default":"small colon"}},key:"FE55"},{category:"Po",mappings:{"default":{"default":"small question mark"}},key:"FE56"},{category:"Po",mappings:{"default":{"default":"small exclamation mark"}},key:"FE57"},
+{category:"Pd",mappings:{"default":{"default":"small em dash"}},key:"FE58"},{category:"Po",mappings:{"default":{"default":"small number sign"}},key:"FE5F"},{category:"Po",mappings:{"default":{"default":"small ampersand"}},key:"FE60"},{category:"Po",mappings:{"default":{"default":"small asterisk"}},key:"FE61"},{category:"Sm",mappings:{"default":{"default":"small plus sign"}},key:"FE62"},{category:"Pd",mappings:{"default":{"default":"small hyphen minus"}},key:"FE63"},{category:"Sm",mappings:{"default":{"default":"small less than sign"}},
+key:"FE64"},{category:"Sm",mappings:{"default":{"default":"small greater than sign"}},key:"FE65"},{category:"Sm",mappings:{"default":{"default":"small equals sign"}},key:"FE66"},{category:"Po",mappings:{"default":{"default":"small reverse solidus",alternative:"small backslash"}},key:"FE68"},{category:"Sc",mappings:{"default":{"default":"small dollar sign"}},key:"FE69"},{category:"Po",mappings:{"default":{"default":"small percent sign"}},key:"FE6A"},{category:"Po",mappings:{"default":{"default":"small commercial at"}},
+key:"FE6B"},{category:"Po",mappings:{"default":{"default":"fullwidth exclamation mark"}},key:"FF01"},{category:"Po",mappings:{"default":{"default":"fullwidth quotation mark"}},key:"FF02"},{category:"Po",mappings:{"default":{"default":"fullwidth number sign"}},key:"FF03"},{category:"Sc",mappings:{"default":{"default":"fullwidth dollar sign"}},key:"FF04"},{category:"Po",mappings:{"default":{"default":"fullwidth percent sign"}},key:"FF05"},{category:"Po",mappings:{"default":{"default":"fullwidth ampersand"}},
+key:"FF06"},{category:"Po",mappings:{"default":{"default":"fullwidth apostrophe"}},key:"FF07"},{category:"Po",mappings:{"default":{"default":"fullwidth asterisk"}},key:"FF0A"},{category:"Sm",mappings:{"default":{"default":"fullwidth plus sign"}},key:"FF0B"},{category:"Po",mappings:{"default":{"default":"fullwidth comma"}},key:"FF0C"},{category:"Pd",mappings:{"default":{"default":"fullwidth hyphen minus"}},key:"FF0D"},{category:"Po",mappings:{"default":{"default":"fullwidth full stop",alternative:"fullwidth period"}},
+key:"FF0E"},{category:"Po",mappings:{"default":{"default":"fullwidth solidus",alternative:"fullwidth slash"}},key:"FF0F"},{category:"Po",mappings:{"default":{"default":"fullwidth colon"}},key:"FF1A"},{category:"Po",mappings:{"default":{"default":"fullwidth semicolon"}},key:"FF1B"},{category:"Sm",mappings:{"default":{"default":"fullwidth less than sign"}},key:"FF1C"},{category:"Sm",mappings:{"default":{"default":"fullwidth equals sign"}},key:"FF1D"},{category:"Sm",mappings:{"default":{"default":"fullwidth greater than sign"}},
+key:"FF1E"},{category:"Po",mappings:{"default":{"default":"fullwidth question mark"}},key:"FF1F"},{category:"Po",mappings:{"default":{"default":"fullwidth commercial at"}},key:"FF20"},{category:"Po",mappings:{"default":{"default":"fullwidth reverse solidus",alternative:"fullwidth backslash"}},key:"FF3C"},{category:"Sk",mappings:{"default":{"default":"fullwidth circumflex accent",alternative:"fullwidth spacing circumflex"}},key:"FF3E"},{category:"Pc",mappings:{"default":{"default":"fullwidth low line",
+alternative:"fullwidth spacing underscore"}},key:"FF3F"},{category:"Sk",mappings:{"default":{"default":"fullwidth grave accent",alternative:"fullwidth spacing grave"}},key:"FF40"},{category:"Sm",mappings:{"default":{"default":"fullwidth vertical line",alternative:"fullwidth vertical bar"}},key:"FF5C"},{category:"Sm",mappings:{"default":{"default":"fullwidth tilde",alternative:"fullwidth spacing tilde"}},key:"FF5E"},{category:"Sc",mappings:{"default":{"default":"fullwidth cent sign"}},key:"FFE0"},
+{category:"Sc",mappings:{"default":{"default":"fullwidth pound sign"}},key:"FFE1"},{category:"Sm",mappings:{"default":{"default":"fullwidth not sign"}},key:"FFE2"},{category:"Sk",mappings:{"default":{"default":"fullwidth macron",alternative:"fullwidth spacing macron"}},key:"FFE3"},{category:"So",mappings:{"default":{"default":"fullwidth broken bar",alternative:"fullwidth broken vertical bar"}},key:"FFE4"},{category:"Sc",mappings:{"default":{"default":"fullwidth yen sign"}},key:"FFE5"},{category:"Sc",
+mappings:{"default":{"default":"fullwidth won sign"}},key:"FFE6"},{category:"So",mappings:{"default":{"default":"halfwidth forms light vertical"}},key:"FFE8"},{category:"So",mappings:{"default":{"default":"halfwidth black square"}},key:"FFED"},{category:"So",mappings:{"default":{"default":"halfwidth white circle"}},key:"FFEE"},{category:"Ll",names:[],key:"03B1",mappings:{"default":{"default":"greek small letter alpha","short":"alpha"}}},{category:"Ll",names:[],key:"03B2",mappings:{"default":{"default":"greek small letter beta",
+"short":"beta"}}},{category:"Ll",names:[],key:"03B3",mappings:{"default":{"default":"greek small letter gamma","short":"gamma"}}},{category:"Ll",names:[],key:"03B4",mappings:{"default":{"default":"greek small letter delta","short":"delta"}}},{category:"Ll",names:[],key:"03B5",mappings:{"default":{"default":"greek small letter epsilon","short":"epsilon"}}},{category:"Ll",names:[],key:"03B6",mappings:{"default":{"default":"greek small letter zeta","short":"zeta"}}},{category:"Ll",names:[],key:"03B7",
+mappings:{"default":{"default":"greek small letter eta","short":"eta"}}},{category:"Ll",names:[],key:"03B8",mappings:{"default":{"default":"greek small letter theta","short":"theta"}}},{category:"Ll",names:[],key:"03B9",mappings:{"default":{"default":"greek small letter iota","short":"iota"}}},{category:"Ll",names:[],key:"03BA",mappings:{"default":{"default":"greek small letter kappa","short":"kappa"}}},{category:"Ll",names:[],key:"03BB",mappings:{"default":{"default":"greek small letter lamda",alternative:"greek small letter lambda",
+"short":"lamda"}}},{category:"Ll",names:[],key:"03BC",mappings:{"default":{"default":"greek small letter mu","short":"mu"}}},{category:"Ll",names:[],key:"03BD",mappings:{"default":{"default":"greek small letter nu","short":"nu"}}},{category:"Ll",names:[],key:"03BE",mappings:{"default":{"default":"greek small letter xi","short":"xi"}}},{category:"Ll",names:[],key:"03BF",mappings:{"default":{"default":"greek small letter omicron","short":"omicron"}}},{category:"Ll",names:[],key:"03C0",mappings:{"default":{"default":"greek small letter pi",
+"short":"pi"}}},{category:"Ll",names:[],key:"03C1",mappings:{"default":{"default":"greek small letter rho","short":"rho"}}},{category:"Ll",names:[],key:"03C2",mappings:{"default":{"default":"greek small letter final sigma","short":"final sigma"}}},{category:"Ll",names:[],key:"03C3",mappings:{"default":{"default":"greek small letter sigma","short":"sigma"}}},{category:"Ll",names:[],key:"03C4",mappings:{"default":{"default":"greek small letter tau","short":"tau"}}},{category:"Ll",names:[],key:"03C5",
+mappings:{"default":{"default":"greek small letter upsilon","short":"upsilon"}}},{category:"Ll",names:[],key:"03C6",mappings:{"default":{"default":"greek small letter phi","short":"phi"}}},{category:"Ll",names:[],key:"03C7",mappings:{"default":{"default":"greek small letter chi","short":"chi"}}},{category:"Ll",names:[],key:"03C8",mappings:{"default":{"default":"greek small letter psi","short":"psi"}}},{category:"Ll",names:[],key:"03C9",mappings:{"default":{"default":"greek small letter omega","short":"omega"}}},
+{category:"Ll",mappings:{"default":{"default":"greek beta symbol",alternative:"greek small letter curled beta","short":"beta"}},key:"03D0"},{category:"Ll",mappings:{"default":{"default":"greek theta symbol",alternative:"greek small letter script theta","short":"theta"}},key:"03D1"},{category:"Ll",mappings:{"default":{"default":"greek phi symbol",alternative:"greek small letter script phi","short":"phi"}},key:"03D5"},{category:"Ll",mappings:{"default":{"default":"greek pi symbol",alternative:"greek small letter omega pi",
+"short":"pi"}},key:"03D6"},{category:"Ll",mappings:{"default":{"default":"greek kai symbol","short":"kai"}},key:"03D7"},{category:"Ll",mappings:{"default":{"default":"greek kappa symbol",alternative:"greek small letter script kappa","short":"kappa"}},key:"03F0"},{category:"Ll",mappings:{"default":{"default":"greek rho symbol",alternative:"greek small letter tailed rho","short":"rho"}},key:"03F1"},{category:"Ll",mappings:{"default":{"default":"greek lunate epsilon symbol","short":"epsilon"}},key:"03F5"},
+{category:"Sm",mappings:{"default":{"default":"greek reversed lunate epsilon symbol","short":"reversed epsilon"}},key:"03F6"},{category:"Lu",names:[],key:"0391",mappings:{"default":{"default":"greek capital letter alpha","short":"cap alpha"}}},{category:"Lu",names:[],key:"0392",mappings:{"default":{"default":"greek capital letter beta","short":"cap beta"}}},{category:"Lu",names:[],key:"0393",mappings:{"default":{"default":"greek capital letter gamma","short":"cap gamma"}}},{category:"Lu",names:[],
+key:"0394",mappings:{"default":{"default":"greek capital letter delta","short":"cap delta"}}},{category:"Lu",names:[],key:"0395",mappings:{"default":{"default":"greek capital letter epsilon","short":"cap epsilon"}}},{category:"Lu",names:[],key:"0396",mappings:{"default":{"default":"greek capital letter zeta","short":"cap zeta"}}},{category:"Lu",names:[],key:"0397",mappings:{"default":{"default":"greek capital letter eta","short":"cap eta"}}},{category:"Lu",names:[],key:"0398",mappings:{"default":{"default":"greek capital letter theta",
+"short":"cap theta"}}},{category:"Lu",names:[],key:"0399",mappings:{"default":{"default":"greek capital letter iota","short":"cap iota"}}},{category:"Lu",names:[],key:"039A",mappings:{"default":{"default":"greek capital letter kappa","short":"cap kappa"}}},{category:"Lu",names:[],key:"039B",mappings:{"default":{"default":"greek capital letter lamda",alternative:"greek capital letter lambda","short":"cap lamda"}}},{category:"Lu",names:[],key:"039C",mappings:{"default":{"default":"greek capital letter mu",
+"short":"cap mu"}}},{category:"Lu",names:[],key:"039D",mappings:{"default":{"default":"greek capital letter nu","short":"cap nu"}}},{category:"Lu",names:[],key:"039E",mappings:{"default":{"default":"greek capital letter xi","short":"cap xi"}}},{category:"Lu",names:[],key:"039F",mappings:{"default":{"default":"greek capital letter omicron","short":"cap omicron"}}},{category:"Lu",names:[],key:"03A0",mappings:{"default":{"default":"greek capital letter pi","short":"cap pi"}}},{category:"Lu",names:[],
+key:"03A1",mappings:{"default":{"default":"greek capital letter rho","short":"cap rho"}}},{category:"Lu",names:[],key:"03A3",mappings:{"default":{"default":"greek capital letter sigma","short":"cap sigma"}}},{category:"Lu",names:[],key:"03A4",mappings:{"default":{"default":"greek capital letter tau","short":"cap tau"}}},{category:"Lu",names:[],key:"03A5",mappings:{"default":{"default":"greek capital letter upsilon","short":"cap upsilon"}}},{category:"Lu",names:[],key:"03A6",mappings:{"default":{"default":"greek capital letter phi",
+"short":"cap phi"}}},{category:"Lu",names:[],key:"03A7",mappings:{"default":{"default":"greek capital letter chi","short":"cap chi"}}},{category:"Lu",names:[],key:"03A8",mappings:{"default":{"default":"greek capital letter psi","short":"cap psi"}}},{category:"Lu",names:[],key:"03A9",mappings:{"default":{"default":"greek capital letter omega","short":"cap omega"}}},{category:"Lu",mappings:{"default":{"default":"greek capital theta symbol","short":"cap theta"}},key:"03F4"},{category:"Ps",mappings:{"default":{"default":"left parenthesis",
+alternative:"opening parenthesis"}},key:"0028"},{category:"Pe",mappings:{"default":{"default":"right parenthesis",alternative:"closing parenthesis"}},key:"0029"},{category:"Ps",mappings:{"default":{"default":"left square bracket",alternative:"opening square bracket"}},key:"005B"},{category:"Pe",mappings:{"default":{"default":"right square bracket",alternative:"closing square bracket"}},key:"005D"},{category:"Ps",mappings:{"default":{"default":"left curly bracket",alternative:"opening curly bracket"}},
+key:"007B"},{category:"Pe",mappings:{"default":{"default":"right curly bracket",alternative:"closing curly bracket"}},key:"007D"},{category:"Ps",mappings:{"default":{"default":"left square bracket with quill"}},key:"2045"},{category:"Pe",mappings:{"default":{"default":"right square bracket with quill"}},key:"2046"},{category:"Sm",mappings:{"default":{"default":"left ceiling"}},key:"2308"},{category:"Sm",mappings:{"default":{"default":"right ceiling"}},key:"2309"},{category:"Sm",mappings:{"default":{"default":"left floor"}},
+key:"230A"},{category:"Sm",mappings:{"default":{"default":"right floor"}},key:"230B"},{category:"So",mappings:{"default":{"default":"bottom right crop"}},key:"230C"},{category:"So",mappings:{"default":{"default":"bottom left crop"}},key:"230D"},{category:"So",mappings:{"default":{"default":"top right crop"}},key:"230E"},{category:"So",mappings:{"default":{"default":"top left crop"}},key:"230F"},{category:"So",mappings:{"default":{"default":"top left corner"}},key:"231C"},{category:"So",mappings:{"default":{"default":"top right corner"}},
+key:"231D"},{category:"So",mappings:{"default":{"default":"bottom left corner"}},key:"231E"},{category:"So",mappings:{"default":{"default":"bottom right corner"}},key:"231F"},{category:"Sm",mappings:{"default":{"default":"top half integral"}},key:"2320"},{category:"Sm",mappings:{"default":{"default":"bottom half integral"}},key:"2321"},{category:"Ps",mappings:{"default":{"default":"left pointing angle bracket",alternative:"bra"}},key:"2329"},{category:"Pe",mappings:{"default":{"default":"right pointing angle bracket",
+alternative:"ket"}},key:"232A"},{category:"Sm",mappings:{"default":{"default":"left parenthesis upper hook"}},key:"239B"},{category:"Sm",mappings:{"default":{"default":"left parenthesis extension"}},key:"239C"},{category:"Sm",mappings:{"default":{"default":"left parenthesis lower hook"}},key:"239D"},{category:"Sm",mappings:{"default":{"default":"right parenthesis upper hook"}},key:"239E"},{category:"Sm",mappings:{"default":{"default":"right parenthesis extension"}},key:"239F"},{category:"Sm",mappings:{"default":{"default":"right parenthesis lower hook"}},
+key:"23A0"},{category:"Sm",mappings:{"default":{"default":"left square bracket upper corner"}},key:"23A1"},{category:"Sm",mappings:{"default":{"default":"left square bracket extension"}},key:"23A2"},{category:"Sm",mappings:{"default":{"default":"left square bracket lower corner"}},key:"23A3"},{category:"Sm",mappings:{"default":{"default":"right square bracket upper corner"}},key:"23A4"},{category:"Sm",mappings:{"default":{"default":"right square bracket extension"}},key:"23A5"},{category:"Sm",mappings:{"default":{"default":"right square bracket lower corner"}},
+key:"23A6"},{category:"Sm",mappings:{"default":{"default":"left curly bracket upper hook"}},key:"23A7"},{category:"Sm",mappings:{"default":{"default":"left curly bracket middle piece"}},key:"23A8"},{category:"Sm",mappings:{"default":{"default":"left curly bracket lower hook"}},key:"23A9"},{category:"Sm",mappings:{"default":{"default":"curly bracket extension"}},key:"23AA"},{category:"Sm",mappings:{"default":{"default":"right curly bracket upper hook"}},key:"23AB"},{category:"Sm",mappings:{"default":{"default":"right curly bracket middle piece"}},
+key:"23AC"},{category:"Sm",mappings:{"default":{"default":"right curly bracket lower hook"}},key:"23AD"},{category:"Sm",mappings:{"default":{"default":"integral extension"}},key:"23AE"},{category:"Sm",mappings:{"default":{"default":"horizontal line extension"}},key:"23AF"},{category:"Sm",mappings:{"default":{"default":"upper left or lower right curly bracket section"}},key:"23B0"},{category:"Sm",mappings:{"default":{"default":"upper right or lower left curly bracket section"}},key:"23B1"},{category:"Sm",
+mappings:{"default":{"default":"summation top"}},key:"23B2"},{category:"Sm",mappings:{"default":{"default":"summation bottom"}},key:"23B3"},{category:"So",mappings:{"default":{"default":"top square bracket"}},key:"23B4"},{category:"So",mappings:{"default":{"default":"bottom square bracket"}},key:"23B5"},{category:"So",mappings:{"default":{"default":"bottom square bracket over top square bracket"}},key:"23B6"},{category:"So",mappings:{"default":{"default":"radical symbol bottom"}},key:"23B7"},{category:"So",
+mappings:{"default":{"default":"left vertical box line"}},key:"23B8"},{category:"So",mappings:{"default":{"default":"right vertical box line"}},key:"23B9"},{category:"Sm",mappings:{"default":{"default":"top parenthesis"}},key:"23DC"},{category:"Sm",mappings:{"default":{"default":"bottom parenthesis"}},key:"23DD"},{category:"Sm",mappings:{"default":{"default":"top curly bracket"}},key:"23DE"},{category:"Sm",mappings:{"default":{"default":"bottom curly bracket"}},key:"23DF"},{category:"Sm",mappings:{"default":{"default":"top tortoise shell bracket"}},
+key:"23E0"},{category:"Sm",mappings:{"default":{"default":"bottom tortoise shell bracket"}},key:"23E1"},{category:"Ps",mappings:{"default":{"default":"medium left parenthesis ornament"}},key:"2768"},{category:"Pe",mappings:{"default":{"default":"medium right parenthesis ornament"}},key:"2769"},{category:"Ps",mappings:{"default":{"default":"medium flattened left parenthesis ornament"}},key:"276A"},{category:"Pe",mappings:{"default":{"default":"medium flattened right parenthesis ornament"}},key:"276B"},
+{category:"Ps",mappings:{"default":{"default":"medium left pointing angle bracket ornament"}},key:"276C"},{category:"Pe",mappings:{"default":{"default":"medium right pointing angle bracket ornament"}},key:"276D"},{category:"Ps",mappings:{"default":{"default":"heavy left pointing angle quotation mark ornament"}},key:"276E"},{category:"Pe",mappings:{"default":{"default":"heavy right pointing angle quotation mark ornament"}},key:"276F"},{category:"Ps",mappings:{"default":{"default":"heavy left pointing angle bracket ornament"}},
+key:"2770"},{category:"Pe",mappings:{"default":{"default":"heavy right pointing angle bracket ornament"}},key:"2771"},{category:"Ps",mappings:{"default":{"default":"light left tortoise shell bracket ornament"}},key:"2772"},{category:"Pe",mappings:{"default":{"default":"light right tortoise shell bracket ornament"}},key:"2773"},{category:"Ps",mappings:{"default":{"default":"medium left curly bracket ornament"}},key:"2774"},{category:"Pe",mappings:{"default":{"default":"medium right curly bracket ornament"}},
+key:"2775"},{category:"Ps",mappings:{"default":{"default":"left s shaped bag delimiter"}},key:"27C5"},{category:"Pe",mappings:{"default":{"default":"right s shaped bag delimiter"}},key:"27C6"},{category:"Ps",mappings:{"default":{"default":"mathematical left white square bracket"}},key:"27E6"},{category:"Pe",mappings:{"default":{"default":"mathematical right white square bracket"}},key:"27E7"},{category:"Ps",mappings:{"default":{"default":"mathematical left angle bracket"}},key:"27E8"},{category:"Pe",
+mappings:{"default":{"default":"mathematical right angle bracket"}},key:"27E9"},{category:"Ps",mappings:{"default":{"default":"mathematical left double angle bracket"}},key:"27EA"},{category:"Pe",mappings:{"default":{"default":"mathematical right double angle bracket"}},key:"27EB"},{category:"Ps",mappings:{"default":{"default":"mathematical left white tortoise shell bracket"}},key:"27EC"},{category:"Pe",mappings:{"default":{"default":"mathematical right white tortoise shell bracket"}},key:"27ED"},
+{category:"Ps",mappings:{"default":{"default":"mathematical left flattened parenthesis"}},key:"27EE"},{category:"Pe",mappings:{"default":{"default":"mathematical right flattened parenthesis"}},key:"27EF"},{category:"Ps",mappings:{"default":{"default":"left white curly bracket"}},key:"2983"},{category:"Pe",mappings:{"default":{"default":"right white curly bracket"}},key:"2984"},{category:"Ps",mappings:{"default":{"default":"left white parenthesis"}},key:"2985"},{category:"Pe",mappings:{"default":{"default":"right white parenthesis"}},
+key:"2986"},{category:"Ps",mappings:{"default":{"default":"z notation left image bracket"}},key:"2987"},{category:"Pe",mappings:{"default":{"default":"z notation right image bracket"}},key:"2988"},{category:"Ps",mappings:{"default":{"default":"z notation left binding bracket"}},key:"2989"},{category:"Pe",mappings:{"default":{"default":"z notation right binding bracket"}},key:"298A"},{category:"Ps",mappings:{"default":{"default":"left square bracket with underbar"}},key:"298B"},{category:"Pe",mappings:{"default":{"default":"right square bracket with underbar"}},
+key:"298C"},{category:"Ps",mappings:{"default":{"default":"left square bracket with tick in top corner"}},key:"298D"},{category:"Pe",mappings:{"default":{"default":"right square bracket with tick in bottom corner"}},key:"298E"},{category:"Ps",mappings:{"default":{"default":"left square bracket with tick in bottom corner"}},key:"298F"},{category:"Pe",mappings:{"default":{"default":"right square bracket with tick in top corner"}},key:"2990"},{category:"Ps",mappings:{"default":{"default":"left angle bracket with dot"}},
+key:"2991"},{category:"Pe",mappings:{"default":{"default":"right angle bracket with dot"}},key:"2992"},{category:"Ps",mappings:{"default":{"default":"left arc less than bracket"}},key:"2993"},{category:"Pe",mappings:{"default":{"default":"right arc greater than bracket"}},key:"2994"},{category:"Ps",mappings:{"default":{"default":"double left arc greater than bracket"}},key:"2995"},{category:"Pe",mappings:{"default":{"default":"double right arc less than bracket"}},key:"2996"},{category:"Ps",mappings:{"default":{"default":"left black tortoise shell bracket"}},
+key:"2997"},{category:"Pe",mappings:{"default":{"default":"right black tortoise shell bracket"}},key:"2998"},{category:"Ps",mappings:{"default":{"default":"left wiggly fence"}},key:"29D8"},{category:"Pe",mappings:{"default":{"default":"right wiggly fence"}},key:"29D9"},{category:"Ps",mappings:{"default":{"default":"left double wiggly fence"}},key:"29DA"},{category:"Pe",mappings:{"default":{"default":"right double wiggly fence"}},key:"29DB"},{category:"Ps",mappings:{"default":{"default":"left pointing curved angle bracket"}},
+key:"29FC"},{category:"Pe",mappings:{"default":{"default":"right pointing curved angle bracket"}},key:"29FD"},{category:"Ps",mappings:{"default":{"default":"top left half bracket"}},key:"2E22"},{category:"Pe",mappings:{"default":{"default":"top right half bracket"}},key:"2E23"},{category:"Ps",mappings:{"default":{"default":"bottom left half bracket"}},key:"2E24"},{category:"Pe",mappings:{"default":{"default":"bottom right half bracket"}},key:"2E25"},{category:"Ps",mappings:{"default":{"default":"left sideways u bracket"}},
+key:"2E26"},{category:"Pe",mappings:{"default":{"default":"right sideways u bracket"}},key:"2E27"},{category:"Ps",mappings:{"default":{"default":"left double parenthesis"}},key:"2E28"},{category:"Pe",mappings:{"default":{"default":"right double parenthesis"}},key:"2E29"},{category:"Ps",mappings:{"default":{"default":"left angle bracket",alternative:"opening angle bracket"}},key:"3008"},{category:"Pe",mappings:{"default":{"default":"right angle bracket",alternative:"closing angle bracket"}},key:"3009"},
+{category:"Ps",mappings:{"default":{"default":"left double angle bracket",alternative:"opening double angle bracket"}},key:"300A"},{category:"Pe",mappings:{"default":{"default":"right double angle bracket",alternative:"closing double angle bracket"}},key:"300B"},{category:"Ps",mappings:{"default":{"default":"left corner bracket",alternative:"opening corner bracket"}},key:"300C"},{category:"Pe",mappings:{"default":{"default":"right corner bracket",alternative:"closing corner bracket"}},key:"300D"},
+{category:"Ps",mappings:{"default":{"default":"left white corner bracket",alternative:"opening white corner bracket"}},key:"300E"},{category:"Pe",mappings:{"default":{"default":"right white corner bracket",alternative:"closing white corner bracket"}},key:"300F"},{category:"Ps",mappings:{"default":{"default":"left black lenticular bracket",alternative:"opening black lenticular bracket"}},key:"3010"},{category:"Pe",mappings:{"default":{"default":"right black lenticular bracket",alternative:"closing black lenticular bracket"}},
+key:"3011"},{category:"Ps",mappings:{"default":{"default":"left tortoise shell bracket",alternative:"opening tortoise shell bracket"}},key:"3014"},{category:"Pe",mappings:{"default":{"default":"right tortoise shell bracket",alternative:"closing tortoise shell bracket"}},key:"3015"},{category:"Ps",mappings:{"default":{"default":"left white lenticular bracket",alternative:"opening white lenticular bracket"}},key:"3016"},{category:"Pe",mappings:{"default":{"default":"right white lenticular bracket",
+alternative:"closing white lenticular bracket"}},key:"3017"},{category:"Ps",mappings:{"default":{"default":"left white tortoise shell bracket",alternative:"opening white tortoise shell bracket"}},key:"3018"},{category:"Pe",mappings:{"default":{"default":"right white tortoise shell bracket",alternative:"closing white tortoise shell bracket"}},key:"3019"},{category:"Ps",mappings:{"default":{"default":"left white square bracket",alternative:"opening white square bracket"}},key:"301A"},{category:"Pe",
+mappings:{"default":{"default":"right white square bracket",alternative:"closing white square bracket"}},key:"301B"},{category:"Ps",mappings:{"default":{"default":"reversed double prime quotation mark"}},key:"301D"},{category:"Pe",mappings:{"default":{"default":"double prime quotation mark"}},key:"301E"},{category:"Pe",mappings:{"default":{"default":"low double prime quotation mark"}},key:"301F"},{category:"Ps",mappings:{"default":{"default":"ornate left parenthesis"}},key:"FD3E"},{category:"Pe",
+mappings:{"default":{"default":"ornate right parenthesis"}},key:"FD3F"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left white lenticular bracket"}},key:"FE17"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right white lenticular bracket"}},key:"FE18"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left parenthesis",alternative:"glyph for vertical opening parenthesis"}},key:"FE35"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right parenthesis",
+alternative:"glyph for vertical closing parenthesis"}},key:"FE36"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left curly bracket",alternative:"glyph for vertical opening curly bracket"}},key:"FE37"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right curly bracket",alternative:"glyph for vertical closing curly bracket"}},key:"FE38"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left tortoise shell bracket",
+alternative:"glyph for vertical opening tortoise shell bracket"}},key:"FE39"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right tortoise shell bracket",alternative:"glyph for vertical closing tortoise shell bracket"}},key:"FE3A"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left black lenticular bracket",alternative:"glyph for vertical opening black lenticular bracket"}},key:"FE3B"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right black lenticular bracket",
+alternative:"glyph for vertical closing black lenticular bracket"}},key:"FE3C"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left double angle bracket",alternative:"glyph for vertical opening double angle bracket"}},key:"FE3D"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right double angle bracket",alternative:"glyph for vertical closing double angle bracket"}},key:"FE3E"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left angle bracket",
+alternative:"glyph for vertical opening angle bracket"}},key:"FE3F"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right angle bracket",alternative:"glyph for vertical closing angle bracket"}},key:"FE40"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left corner bracket",alternative:"glyph for vertical opening corner bracket"}},key:"FE41"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right corner bracket",
+alternative:"glyph for vertical closing corner bracket"}},key:"FE42"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left white corner bracket",alternative:"glyph for vertical opening white corner bracket"}},key:"FE43"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right white corner bracket",alternative:"glyph for vertical closing white corner bracket"}},key:"FE44"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left square bracket"}},
+key:"FE47"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right square bracket"}},key:"FE48"},{category:"Ps",mappings:{"default":{"default":"small left parenthesis",alternative:"small opening parenthesis"}},key:"FE59"},{category:"Pe",mappings:{"default":{"default":"small right parenthesis",alternative:"small closing parenthesis"}},key:"FE5A"},{category:"Ps",mappings:{"default":{"default":"small left curly bracket",alternative:"small opening curly bracket"}},key:"FE5B"},
+{category:"Pe",mappings:{"default":{"default":"small right curly bracket",alternative:"small closing curly bracket"}},key:"FE5C"},{category:"Ps",mappings:{"default":{"default":"small left tortoise shell bracket",alternative:"small opening tortoise shell bracket"}},key:"FE5D"},{category:"Pe",mappings:{"default":{"default":"small right tortoise shell bracket",alternative:"small closing tortoise shell bracket"}},key:"FE5E"},{category:"Ps",mappings:{"default":{"default":"fullwidth left parenthesis",alternative:"fullwidth opening parenthesis"}},
+key:"FF08"},{category:"Pe",mappings:{"default":{"default":"fullwidth right parenthesis",alternative:"fullwidth closing parenthesis"}},key:"FF09"},{category:"Ps",mappings:{"default":{"default":"fullwidth left square bracket",alternative:"fullwidth opening square bracket"}},key:"FF3B"},{category:"Pe",mappings:{"default":{"default":"fullwidth right square bracket",alternative:"fullwidth closing square bracket"}},key:"FF3D"},{category:"Ps",mappings:{"default":{"default":"fullwidth left curly bracket",
+alternative:"fullwidth opening curly bracket"}},key:"FF5B"},{category:"Pe",mappings:{"default":{"default":"fullwidth right curly bracket",alternative:"fullwidth closing curly bracket"}},key:"FF5D"},{category:"Ps",mappings:{"default":{"default":"fullwidth left white parenthesis"}},key:"FF5F"},{category:"Pe",mappings:{"default":{"default":"fullwidth right white parenthesis"}},key:"FF60"},{category:"Ps",mappings:{"default":{"default":"halfwidth left corner bracket",alternative:"halfwidth opening corner bracket"}},
+key:"FF62"},{category:"Pe",mappings:{"default":{"default":"halfwidth right corner bracket",alternative:"halfwidth closing corner bracket"}},key:"FF63"}];
+cvox.AndroidMathMap.FUNCTION_MAPPINGS_=[{category:"Elementary",mappings:{"default":{"default":"logarithm",alternative:"logarithm function","short":"log"}},key:"log",names:["log"]},{category:"Elementary",mappings:{"default":{"default":"natural logarithm",alternative:"natural logarithm function","short":"natural log"}},key:"ln",names:["ln"]},{category:"Elementary",mappings:{"default":{"default":"logarithm base 10","short":"log base 10"}},key:"lg",names:["lg"]},{category:"Elementary",mappings:{"default":{"default":"exponential",
+alternative:"exponential function","short":"exp"}},key:"exp",names:["exp","expt"]},{category:"Elementary",mappings:{"default":{"default":"greatest common divisor","short":"gcd"}},key:"gcd",names:["gcd"]},{category:"Elementary",mappings:{"default":{"default":"least common multiple","short":"lcm"}},key:"gcd",names:["gcd"]},{category:"Complex",mappings:{"default":{"default":"argument","short":"arg"}},key:"arg",names:["arg"]},{category:"Complex",mappings:{"default":{"default":"imaginary part","short":"imaginary"}},
+key:"im",names:["im"]},{category:"Complex",mappings:{"default":{"default":"real part","short":"real"}},key:"re",names:["re"]},{category:"Limits",mappings:{"default":{"default":"infimum","short":"inf"}},key:"inf",names:["inf"]},{category:"Limits",mappings:{"default":{"default":"limit","short":"lim"}},key:"lim",names:["lim"]},{category:"Limits",mappings:{"default":{"default":"infimum default",alternative:"inferior limit","short":"liminf"}},key:"liminf",names:["lim inf"]},{category:"Limits",mappings:{"default":{"default":"supremum limit",
+alternative:"superior limit","short":"limsup"}},key:"limsup",names:["lim sup"]},{category:"Limits",mappings:{"default":{"default":"maximum","short":"max"}},key:"max",names:["max"]},{category:"Limits",mappings:{"default":{"default":"minimum","short":"min"}},key:"min",names:["min"]},{category:"Limits",mappings:{"default":{"default":"supremum","short":"sup"}},key:"sup",names:["sup"]},{category:"Limits",mappings:{"default":{"default":"injective limit",alternative:"direct limit","short":"colimit"}},key:"injlim",
+names:["injlim","inj lim"]},{category:"Limits",mappings:{"default":{"default":"projective limit",alternative:"inverse limit","short":"limit"}},key:"projlim",names:["projlim","proj lim"]},{category:"Elementary",mappings:{"default":{"default":"modulo","short":"mod"}},key:"mod",names:["mod"]},{category:"Probability",mappings:{"default":{"default":"probability"}},key:"Pr",names:["Pr"]},{category:"Trigonometric",mappings:{"default":{"default":"cosine function","short":"cosine"}},key:"cos",names:["cos",
+"cosine"]},{category:"Trigonometric",mappings:{"default":{"default":"cotangent function","short":"cotangent"}},key:"cot",names:["cot"]},{category:"Trigonometric",mappings:{"default":{"default":"cosecant function","short":"cosecant"}},key:"csc",names:["csc"]},{category:"Trigonometric",mappings:{"default":{"default":"secant function","short":"secant"}},key:"sec",names:["sec"]},{category:"Trigonometric",mappings:{"default":{"default":"sine function",alternative:"sine function","short":"sine"}},key:"sin",
+names:["sin","sine"]},{category:"Trigonometric",mappings:{"default":{"default":"tangent function","short":"tangent"}},key:"tan",names:["tan"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse cosine function",alternative:"arc cosine function","short":"arc cosine"}},key:"arccos",names:["arccos"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse cotangent function",alternative:"arc cotangent function","short":"arc cotangent"}},key:"arccot",names:["arccot"]},{category:"Cyclometric",
+mappings:{"default":{"default":"inverse cosecant function",alternative:"arc cosecant function","short":"arc cosecant"}},key:"arccsc",names:["arccsc"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse secant function",alternative:"arc secant function","short":"arc secant"}},key:"arcsec",names:["arcsec"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse sine function",alternative:"arc sine function","short":"arc sine"}},key:"arcsin",names:["arcsin"]},{category:"Cyclometric",
+mappings:{"default":{"default":"inverse tangent function",alternative:"arc tangent function","short":"arc tangent"}},key:"arctan",names:["arctan"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic cosine function","short":"hyperbolic cosine"}},key:"cosh",names:["cosh"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic cotangent function","short":"hyperbolic cotangent"}},key:"coth",names:["coth"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic cosecant function",
+"short":"hyperbolic cosecant"}},key:"csch",names:["csch"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic secant function","short":"hyperbolic secant"}},key:"sech",names:["sech"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic sine function","short":"hyperbolic sine"}},key:"sinh",names:["sinh"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic tangent function","short":"hyperbolic tangent"}},key:"tanh",names:["tanh"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic cosine function",
+alternative:"area hyperbolic cosine function","short":"area hyperbolic cosine"}},key:"arcosh",names:["arcosh","arccosh"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic cotangent function",alternative:"area hyperbolic cotangent function","short":"area hyperbolic cotangent"}},key:"arcoth",names:["arcoth","arccoth"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic cosecant function",alternative:"area hyperbolic cosecant function","short":"area hyperbolic cosecant"}},
+key:"arcsch",names:["arcsch","arccsch"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic secant function",alternative:"area hyperbolic secant function","short":"area hyperbolic secant"}},key:"arsech",names:["arsech","arcsech"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic sine function",alternative:"area hyperbolic sine function","short":"area hyperbolic sine"}},key:"arsinh",names:["arsinh","arcsinh"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic tangent function",
+alternative:"area hyperbolic tangent function","short":"area hyperbolic tangent"}},key:"artanh",names:["artanh","arctanh"]},{category:"Algebra",mappings:{"default":{"default":"degree"}},key:"deg",names:["deg"]},{category:"Algebra",mappings:{"default":{"default":"determinant","short":"det"}},key:"det",names:["det"]},{category:"Algebra",mappings:{"default":{"default":"dimension"}},key:"dim",names:["dim"]},{category:"Algebra",mappings:{"default":{"default":"homomorphism","short":"hom"}},key:"hom",names:["hom",
+"Hom"]},{category:"Algebra",mappings:{"default":{"default":"kernel"}},key:"ker",names:["ker"]},{category:"Algebra",mappings:{"default":{"default":"trace"}},key:"Tr",names:["Tr","tr"]}];cvox.AndroidVox=function(){cvox.ChromeVox.navigationManager.ignoreIframesNoMatterWhat()};goog.exportSymbol("cvox.AndroidVox",cvox.AndroidVox);
+cvox.AndroidVox.performAction=function(a){var b=JSON.parse(a);a=b.action;var c=b.granularity,b=b.element,d=cvox.SearchWidget.getInstance().isActive();16==c&&512==a&&(cvox.ChromeVox.navigationManager.setReversed(!1),cvox.ChromeVox.navigationManager.syncToBeginning(),cvox.ChromeVox.navigationManager.updateIndicator());if(16==c)return cvox.ChromeVoxUserCommands.commands.readFromHere(),!0;cvox.ChromeVoxUserCommands.commands.stopSpeech();if(256==a||512==a)d||cvox.ChromeVoxEventWatcher.setUpTextHandler();
+var e=cvox.ChromeVoxEventWatcher.currentTextHandler;e||document.activeElement==document.body||console.log("no text handler, but there is an active element",document.activeElement);if(e&&1==c){if(256==a)return e.moveCursorToNextCharacter();if(512==a)return e.moveCursorToPreviousCharacter()}else if(e&&2==c){if(256==a)return e.moveCursorToNextWord();if(512==a)return e.moveCursorToPreviousWord()}else if(e&&8==c){if(256==a)return e.moveCursorToNextParagraph();if(512==a)return e.moveCursorToPreviousParagraph()}else if(e&&
+4==c){var f=!1;256==a?f=e.moveCursorToNextLine():512==a&&(f=e.moveCursorToPreviousLine());if(f)return!0}switch(c){case -1:return cvox.ChromeVox.navigationManager.finishNavCommand(""),!0;case -2:return cvox.ChromeVoxUserCommands.commands.readCurrentTitle(),!0;case -3:return!0;case -4:return 512==a?cvox.ChromeVoxUserCommands.commands.exitShifter():cvox.ChromeVoxUserCommands.commands.enterShifter(),!0;case -5:return cvox.SearchWidget.getInstance().toggle(),!0}if(-275999999<=c&&-275E6>=c){cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("element_clicked"),
+cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION);a=cvox.ChromeVox.navigationManager.getBraille();b=-275E6-c;if(c=a.text.getSpan(b))a=b-a.text.getSpanStart(c),cvox.AndroidVox.performClickAction(c,a);return!0}if(0>c)return!1;e=[];e[8]=cvox.NavigationShifter.GRANULARITIES.GROUP;e[4]=cvox.NavigationShifter.GRANULARITIES.LINE;e[2]=cvox.NavigationShifter.GRANULARITIES.WORD;e[1]=cvox.NavigationShifter.GRANULARITIES.CHARACTER;d||(c=c?e[c]:cvox.NavigationShifter.GRANULARITIES.OBJECT,
+cvox.ChromeVox.navigationManager.setGranularity(c));c=!1;switch(a){case 16:if(d)break;cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("element_clicked"),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION);(c=cvox.ChromeVox.navigationManager.getCurrentNode())&&cvox.AndroidVox.performClickAction(c);c=!0;break;case 1024:switch(b){case "SECTION":c=!cvox.ChromeVoxUserCommands.commands.nextSection();break;case "LIST":c=!cvox.ChromeVoxUserCommands.commands.nextList();break;case "CONTROL":c=
+!cvox.ChromeVoxUserCommands.commands.nextControl()}if(c)break;case 256:d?(cvox.SearchWidget.getInstance().nextResult(!1),c=!0):c=!cvox.ChromeVoxUserCommands.commands.forward();break;case 2048:switch(b){case "SECTION":c=!cvox.ChromeVoxUserCommands.commands.previousSection();break;case "LIST":c=!cvox.ChromeVoxUserCommands.commands.previousList();break;case "CONTROL":c=!cvox.ChromeVoxUserCommands.commands.previousControl()}if(c)break;case 512:d?(cvox.SearchWidget.getInstance().nextResult(!0),c=!0):c=
+!cvox.ChromeVoxUserCommands.commands.backward()}return c};goog.exportSymbol("cvox.AndroidVox.performAction",cvox.AndroidVox.performAction);
+cvox.AndroidVox.performClickAction=function(a,b){cvox.ChromeVox.navigationManager.getCurrentNode()!=a&&cvox.ApiImplementation.syncToNode(a,!1);cvox.Focuser.setFocus(a);var c=cvox.DomUtil.isInputTypeText(a)||a instanceof HTMLTextAreaElement;if(goog.isDef(b)&&c){var d=cvox.BrailleUtil.getTemplated(null,a),c=d.getSpanInstanceOf(cvox.BrailleUtil.ValueSpan),e=d.getSpanStart(c),d=d.getSpanEnd(c);e<=b&&b<=d&&(c=b-e+c.offset,a.selectionStart=a.selectionEnd=c,cvox.ChromeVoxEventWatcher.handleTextChanged(!0))}cvox.DomUtil.clickElem(a,
+!1,!0)};cvox.AndroidHost=function(){};goog.inherits(cvox.AndroidHost,cvox.AbstractHost);
+cvox.AndroidHost.prototype.init=function(){cvox.ChromeVox.version="AndroidVox";var a=cvox.AndroidKeyMap.getStringifiedKeyMap();cvox.ChromeVoxKbHandler.loadKeyToFunctionsTable(a);cvox.ApiImplementation.siteSpecificScriptLoader="";cvox.ApiImplementation.siteSpecificScriptBase="";cvox.ApiImplementation.init();cvox.ChromeVox.earcons.earconsAvailable()&&(cvox.ChromeVox.verbosity=cvox.VERBOSITY_BRIEF);new cvox.AndroidMathMap;cvox.InitialSpeech.speak()};cvox.AndroidHost.prototype.reinit=function(){};
+cvox.AndroidHost.prototype.onPageLoad=function(){cvox.ChromeVoxEventWatcher.focusFollowsMouse=!0;cvox.ChromeVoxEventWatcher.mouseoverDelayMs=0};cvox.AndroidHost.prototype.ttsLoaded=function(){return"undefined"!=typeof accessibility};cvox.AndroidHost.prototype.getApiSrc=function(){return""};cvox.AndroidHost.prototype.hasTtsCallback=function(){return!1};cvox.AndroidHost.prototype.mustRedispatchClickEvent=function(){return!0};
+cvox.AndroidHost.prototype.activateOrDeactivateChromeVox=function(a){cvox.ChromeVox.tts.stop();cvox.AndroidHost.superClass_.activateOrDeactivateChromeVox.call(this,a);this.onPageLoad()};goog.exportSymbol("cvox.AndroidHost.prototype.activateOrDeactivateChromeVox",cvox.AndroidHost.prototype.activateOrDeactivateChromeVox);cvox.HostFactory.hostConstructor=cvox.AndroidHost;window.cvox||(window.cvox={});cvox.MathJaxExternalUtil=function(){};cvox.MathJaxExternalUtil.mmlAttr=function(){return""};
+cvox.MathJaxExternalUtil.mfenced=function(a){null==a&&(a="");var b=[a+'<mrow mfenced="true"'+this.toMathMLattributes()+">"],c=a+" ";this.data.open&&b.push(this.data.open.toMathML(c));null!=this.data[0]&&b.push(this.data[0].toMathML(c));for(var d=1,e=this.data.length;d<e;d++)this.data[d]&&(this.data["sep"+d]&&b.push(this.data["sep"+d].toMathML(c)),b.push(this.data[d].toMathML(c)));this.data.close&&b.push(this.data.close.toMathML(c));b.push(a+"</mrow>");return b.join("\n")};
+cvox.MathJaxExternalUtil.getMathml=function(a,b){var c=MathJax.ElementJax.mml.mbase.prototype,d=MathJax.ElementJax.mml.mfenced.prototype;this.mmlAttr=c.toMathMLattributes;var e=d.toMathML;try{c.toMathMLattributes=cvox.MathJaxExternalUtil.mbase;d.toMathML=cvox.MathJaxExternalUtil.mfenced;var f=a.root.toMathML("");c.toMathMLattributes=this.mmlAttr;d.toMathML=e;MathJax.Callback(b)(f)}catch(g){c.toMathMLattributes=this.mmlAttr;d.toMathML=e;if(!g.restart)throw g;return MathJax.Callback.After([cvox.MathJaxExternalUtil.getMathml,
+a,b],g.restart)}};cvox.MathJaxExternalUtil.mbase=function(){var a=cvox.MathJaxExternalUtil.mmlAttr.call(this);if(null!=this.spanID)var b=(this.id||"MathJax-Span-"+this.spanID)+MathJax.OutputJax["HTML-CSS"].idPostfix,a=a+(' spanID="'+b+'"');null!=this.texClass&&(a+=' texClass="'+this.texClass+'"');return a};cvox.MathJaxExternalUtil.isActive=function(){return"undefined"!=typeof MathJax&&"undefined"!=typeof MathJax.Hub&&"undefined"!=typeof MathJax.ElementJax&&"undefined"!=typeof MathJax.InputJax};
+cvox.MathJaxExternalUtil.getMathjaxCallback_=function(a,b){cvox.MathJaxExternalUtil.getMathml(b,function(c){b.root.inputID&&a(c,b.root.inputID)})};cvox.MathJaxExternalUtil.registerSignal=function(a,b){MathJax.Hub.Register.MessageHook(b,function(b){b=MathJax.Hub.getJaxFor(b[1]);cvox.MathJaxExternalUtil.getMathjaxCallback_(a,b)})};cvox.MathJaxExternalUtil.getAllJax=function(a){var b=MathJax.Hub.getAllJax();b&&b.forEach(function(b){b.root.spanID&&cvox.MathJaxExternalUtil.getMathjaxCallback_(a,b)})};
+cvox.MathJaxExternalUtil.injectConfigScript=function(){var a=document.createElement("script");a.setAttribute("type","text/x-mathjax-config");a.textContent='MathJax.Hub.Config({\n jax: ["input/AsciiMath", "input/TeX"],\n extensions: ["toMathML.js"],\n skipStartupTypeset: true,\n messageStyle: "none",\n TeX: {extensions: ["AMSmath.js","AMSsymbols.js"]}\n});\nMathJax.Hub.Queue(\n function() {MathJax.Hub.inputJax["math/asciimath"].Process();\n MathJax.Hub.inputJax["math/tex"].Process()}\n);\n//\n// Prevent these from being loaded\n//\nif (!MathJax.Extension.MathMenu) {MathJax.Extension.MathMenu = {}};\nif (!MathJax.Extension.MathZoom) {MathJax.Extension.MathZoom = {}};';
+document.activeElement.appendChild(a)};cvox.MathJaxExternalUtil.injectLoadScript=function(){var a=document.createElement("script");a.setAttribute("type","text/javascript");a.setAttribute("src","http://cdn.mathjax.org/mathjax/latest/MathJax.js");document.activeElement.appendChild(a)};
+cvox.MathJaxExternalUtil.configMediaWiki=function(){mediaWiki&&MathJax.Hub.Register.StartupHook("TeX Jax Ready",function(){var a=MathJax.ElementJax.mml;MathJax.Hub.Insert(MathJax.InputJax.TeX.Definitions,{mathchar0mi:{thetasym:"03B8",koppa:"03DF",stigma:"03DB",varstigma:"03DB",coppa:"03D9",varcoppa:"03D9",sampi:"03E1",C:["0043",{mathvariant:a.VARIANT.DOUBLESTRUCK}],cnums:["0043",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Complex:["0043",{mathvariant:a.VARIANT.DOUBLESTRUCK}],H:["210D",{mathvariant:a.VARIANT.DOUBLESTRUCK}],
+N:["004E",{mathvariant:a.VARIANT.DOUBLESTRUCK}],natnums:["004E",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Q:["0051",{mathvariant:a.VARIANT.DOUBLESTRUCK}],R:["0052",{mathvariant:a.VARIANT.DOUBLESTRUCK}],reals:["0052",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Reals:["0052",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Z:["005A",{mathvariant:a.VARIANT.DOUBLESTRUCK}],sect:"00A7",P:"00B6",AA:["00C5",{mathvariant:a.VARIANT.NORMAL}],alef:["2135",{mathvariant:a.VARIANT.NORMAL}],alefsym:["2135",{mathvariant:a.VARIANT.NORMAL}],
+weierp:["2118",{mathvariant:a.VARIANT.NORMAL}],real:["211C",{mathvariant:a.VARIANT.NORMAL}],part:["2202",{mathvariant:a.VARIANT.NORMAL}],infin:["221E",{mathvariant:a.VARIANT.NORMAL}],empty:["2205",{mathvariant:a.VARIANT.NORMAL}],O:["2205",{mathvariant:a.VARIANT.NORMAL}],ang:["2220",{mathvariant:a.VARIANT.NORMAL}],exist:["2203",{mathvariant:a.VARIANT.NORMAL}],clubs:["2663",{mathvariant:a.VARIANT.NORMAL}],diamonds:["2662",{mathvariant:a.VARIANT.NORMAL}],hearts:["2661",{mathvariant:a.VARIANT.NORMAL}],
+spades:["2660",{mathvariant:a.VARIANT.NORMAL}],textvisiblespace:"2423",geneuro:"20AC",euro:"20AC"},mathchar0mo:{and:"2227",or:"2228",bull:"2219",plusmn:"00B1",sdot:"22C5",Dagger:"2021",sup:"2283",sub:"2282",supe:"2287",sube:"2286",isin:"2208",hAar:"21D4",hArr:"21D4",Harr:"21D4",Lrarr:"21D4",lrArr:"21D4",lArr:"21D0",Larr:"21D0",rArr:"21D2",Rarr:"21D2",harr:"2194",lrarr:"2194",larr:"2190",gets:"2190",rarr:"2192",oiint:["222F",{texClass:a.TEXCLASS.OP}],oiiint:["2230",{texClass:a.TEXCLASS.OP}]},mathchar7:{Alpha:"0391",
+Beta:"0392",Epsilon:"0395",Zeta:"0396",Eta:"0397",Iota:"0399",Kappa:"039A",Mu:"039C",Nu:"039D",Omicron:"039F",Rho:"03A1",Tau:"03A4",Chi:"03A7",Koppa:"03DE",Stigma:"03DA",Digamma:"03DC",Coppa:"03D8",Sampi:"03E0"},delimiter:{"\\uarr":"2191","\\darr":"2193","\\Uarr":"21D1","\\uArr":"21D1","\\Darr":"21D3","\\dArr":"21D3","\\rang":"27E9","\\lang":"27E8"},macros:{sgn:"NamedFn",arccot:"NamedFn",arcsec:"NamedFn",arccsc:"NamedFn",sen:"NamedFn",image:["Macro","\\Im"],bold:["Macro","\\mathbf{#1}",1],pagecolor:["Macro",
+"",1],emph:["Macro","\\textit{#1}",1],textsf:["Macro","\\mathord{\\sf{\\text{#1}}}",1],texttt:["Macro","\\mathord{\\tt{\\text{#1}}}",1],vline:["Macro","\\smash{\\large\\lvert}",0]}})})};
+cvox.MathJaxExternalUtil.convertToMml=function(a,b,c,d,e,f){var g=MathJax.HTML.Element("script",{type:c},[b]),g={math:b,script:g};MathJax.InputJax[d].prefilterHooks.Execute(g);var h;try{h=f(g.math)}catch(k){if(k[e])h=MathJax.ElementJax.mml.merror(k.message.replace(/\n.*/,""));else{if(k.restart)return MathJax.Callback.After([cvox.MathJaxExternalUtil.convertToMml,a,b,c,d,e,f],k.restart);throw k;}}h=h.inferred?MathJax.ElementJax.mml.apply(MathJax.ElementJax,h.data):MathJax.ElementJax.mml(h);h.root.display=
+"block";g.math=h;g.script.MathJax={};MathJax.InputJax[d].postfilterHooks.Execute(g);return cvox.MathJaxExternalUtil.getMathml(g.math,a)};cvox.MathJaxExternalUtil.texToMml=function(a,b){cvox.MathJaxExternalUtil.convertToMml(a,b,"math/tex;mode=display","TeX","texError",function(a){return MathJax.InputJax.TeX.Parse(a).mml()})};cvox.MathJaxExternalUtil.asciiMathToMml=function(a,b){cvox.MathJaxExternalUtil.convertToMml(a,b,"math/asciimath","AsciiMath","asciimathError",MathJax.InputJax.AsciiMath.AM.parseMath)};cvox.AndroidMathJax=function(){this.altMathNodeId_=0};goog.inherits(cvox.AndroidMathJax,cvox.AbstractMathJax);cvox.AndroidMathJax.prototype.getMathmlToDomCallback_=function(a){return goog.bind(function(b,c){return this.convertMarkupToDom(a,b,c)},this)};cvox.AndroidMathJax.prototype.isMathjaxActive=function(a){var b=0,c=function(){b++;cvox.MathJaxExternalUtil.isActive()?a(!0):5>b&&setTimeout(c,1E3)};c()};cvox.AndroidMathJax.prototype.getAllJax=function(a){cvox.MathJaxExternalUtil.getAllJax(this.getMathmlToDomCallback_(a))};
+cvox.AndroidMathJax.prototype.registerSignal=function(a,b){cvox.MathJaxExternalUtil.registerSignal(this.getMathmlToDomCallback_(a),b)};cvox.AndroidMathJax.prototype.injectScripts=function(){cvox.MathJaxExternalUtil.injectConfigScript();cvox.MathJaxExternalUtil.injectLoadScript()};cvox.AndroidMathJax.prototype.configMediaWiki=function(){cvox.MathJaxExternalUtil.configMediaWiki()};
+cvox.AndroidMathJax.prototype.getTex=function(a,b){var c=b.alt||b.title;if(c){var d="cvoxId-"+this.altMathNodeId_++;b.setAttribute("cvoxId",d);cvox.MathJaxExternalUtil.texToMml(goog.bind(function(b){this.convertMarkupToDom(a,b,d)},this),c)}};cvox.AndroidMathJax.prototype.getAsciiMath=function(a,b){var c=b.alt||b.title;if(c){var d="cvoxId-"+this.altMathNodeId_++;b.setAttribute("cvoxId",d);cvox.MathJaxExternalUtil.asciiMathToMml(goog.bind(function(b){this.convertMarkupToDom(a,b,d)},this),c)}};
+cvox.HostFactory.mathJaxConstructor=cvox.AndroidMathJax;cvox.AndroidTts=function(){cvox.AbstractTts.call(this);this.ttsProperties.rate=0.5;this.ttsProperties.pitch=0.5;this.ttsProperties.volume=1};goog.inherits(cvox.AndroidTts,cvox.AbstractTts);cvox.AndroidTts.prototype.speak=function(a,b,c){cvox.AndroidTts.superClass_.speak.call(this,a,b,c);c=this.mergeProperties(c);accessibility.speak(a,b,c);return this};cvox.AndroidTts.prototype.isSpeaking=function(){cvox.AndroidTts.superClass_.isSpeaking.call(this);return accessibility.isSpeaking()};
+cvox.AndroidTts.prototype.stop=function(){cvox.AndroidTts.superClass_.stop.call(this);accessibility.stop()};cvox.HostFactory.ttsConstructor=cvox.AndroidTts;cvox.TestMessages={locale:{message:"en"},chromevox_name:{message:"ChromeVox"},chromevox_description:{message:"ChromeVox - Giving Voice to Chrome"},chromevox_stop_speech_key:{message:"Stop speech"},chromevox_toggle_sticky_mode:{message:"Enable/Disable sticky mode"},chromevox_prefix_key:{message:"Prefix key"},chromevox_handle_tab_next:{message:"Jump to next focusable item"},chromevox_handle_tab_prev:{message:"Jump to previous focusable item"},chromevox_backward:{message:"Navigate backward"},chromevox_forward:{message:"Navigate forward"},
+chromevox_left:{message:"Move left"},chromevox_right:{message:"Move right"},chromevox_skip_backward:{message:"Skip backward during continuous reading"},chromevox_skip_forward:{message:"Skip forward during continuous reading"},chromevox_previous_granularity:{message:"Decrease navigation granularity"},chromevox_next_granularity:{message:"Increase navigation granularity"},chromevox_act_on_current_item:{message:"Take action on current item"},chromevox_force_click_on_current_item:{message:"Click on current item"},
+chromevox_read_link_url:{message:"Announce the URL behind a link"},chromevox_read_current_title:{message:"Announce the title of the current page"},chromevox_read_current_url:{message:"Announce the URL of the current page"},chromevox_read_from_here:{message:"Start reading from current location"},chromevox_show_power_key:{message:"Open ChromeVox keyboard help"},chromevox_hide_power_key:{message:"Hide ChromeVox help"},chromevox_power_key_help:{message:"Press up or down to review commands, press enter to activate"},
+chromevox_help:{message:"Open ChromeVox tutorial"},chromevox_toggle_search_widget:{message:"Toggle search widget"},chromevox_show_options_page:{message:"Open options page"},chromevox_show_kb_explorer_page:{message:"Open keyboard explorer"},chromevox_decrease_tts_rate:{message:"Decrease rate of speech"},chromevox_increase_tts_rate:{message:"Increase rate of speech"},chromevox_decrease_tts_pitch:{message:"Decrease pitch"},chromevox_increase_tts_pitch:{message:"Increase pitch"},chromevox_decrease_tts_volume:{message:"Decrease speech volume"},
+chromevox_increase_tts_volume:{message:"Increase speech volume"},chromevox_show_forms_list:{message:"Show forms list"},chromevox_show_headings_list:{message:"Show headings list"},chromevox_show_links_list:{message:"Show links list"},chromevox_show_tables_list:{message:"Show tables list"},chromevox_show_landmarks_list:{message:"Show landmarks list"},chromevox_previous_row:{message:"Previous table row"},chromevox_next_row:{message:"Next table row"},chromevox_previous_col:{message:"Previous table column"},
+chromevox_next_col:{message:"Next table column"},chromevox_announce_headers:{message:"Announce the headers of the current cell"},chromevox_speak_table_location:{message:"Announce current cell coordinates"},chromevox_guess_row_header:{message:"Make a guess at the row header of the current cell"},chromevox_guess_col_header:{message:"Make a guess at the column header of the current cell"},chromevox_skip_to_beginning:{message:"Go to beginning of table"},chromevox_skip_to_end:{message:"Go to end of table"},
+chromevox_skip_to_row_beginning:{message:"Go to beginning of the current row"},chromevox_skip_to_row_end:{message:"Go to end of the current row"},chromevox_skip_to_col_beginning:{message:"Go to beginning of the current column"},chromevox_skip_to_col_end:{message:"Go to end of the current column"},chromevox_next_heading1:{message:"Next level 1 heading"},chromevox_previous_heading1:{message:"Previous level 1 heading"},chromevox_next_heading2:{message:"Next level 2 heading"},chromevox_previous_heading2:{message:"Previous level 2 heading"},
+chromevox_next_heading3:{message:"Next level 3 heading"},chromevox_previous_heading3:{message:"Previous level 3 heading"},chromevox_next_heading4:{message:"Next level 4 heading"},chromevox_previous_heading4:{message:"Previous level 4 heading"},chromevox_next_heading5:{message:"Next level 5 heading"},chromevox_previous_heading5:{message:"Previous level 5 heading"},chromevox_next_heading6:{message:"Next level 6 heading"},chromevox_previous_heading6:{message:"Previous level 6 heading"},chromevox_next_combo_box:{message:"Next combo box"},
+chromevox_previous_combo_box:{message:"Previous combo box"},chromevox_next_edit_text:{message:"Next editable text area"},chromevox_previous_edit_text:{message:"Previous editable text area"},chromevox_next_form_field:{message:"Next form field"},chromevox_previous_form_field:{message:"Previous form field"},chromevox_next_graphic:{message:"Next graphic"},chromevox_previous_graphic:{message:"Previous graphic"},chromevox_next_heading:{message:"Next heading"},chromevox_previous_heading:{message:"Previous heading"},
+chromevox_next_list_item:{message:"Next list item"},chromevox_previous_list_item:{message:"Previous list item"},chromevox_next_jump:{message:"Next jump"},chromevox_previous_jump:{message:"Previous jump"},chromevox_next_link:{message:"Next link"},chromevox_previous_link:{message:"Previous link"},chromevox_next_list:{message:"Next list"},chromevox_previous_list:{message:"Previous list"},chromevox_next_math:{message:"Next math"},chromevox_previous_math:{message:"Previous math"},chromevox_next_media:{message:"Next media"},
+chromevox_previous_media:{message:"Previous media"},chromevox_next_blockquote:{message:"Next block quote"},chromevox_previous_blockquote:{message:"Previous block quote"},chromevox_next_radio:{message:"Next radio button"},chromevox_previous_radio:{message:"Previous radio button"},chromevox_next_slider:{message:"Next slider"},chromevox_previous_slider:{message:"Previous slider"},chromevox_next_table:{message:"Next table"},chromevox_next_visited_link:{message:"Next visited link"},chromevox_previous_table:{message:"Previous table"},
+chromevox_previous_visited_link:{message:"Previous visited link"},chromevox_next_button:{message:"Next button"},chromevox_previous_button:{message:"Previous button"},chromevox_next_checkbox:{message:"Next checkbox"},chromevox_previous_checkbox:{message:"Previous checkbox"},chromevox_next_landmark:{message:"Next landmark"},chromevox_previous_landmark:{message:"Previous landmark"},chromevox_benchmark:{message:"Debug benchmark"},chromevox_announce_position:{message:"Announces a brief description of the current position"},
+chromevox_fully_describe:{message:"Announces a complete description of the current position"},chromevox_options_page_title:{message:"ChromeVox Options"},chromevox_options_page_summary:{message:"Use the options below to customize ChromeVox. Changes take effect immediately."},chromevox_options_mouse_focus_follows:{message:"Use the mouse to change focus."},chromevox_options_site_specific_enhancements:{message:"Enhance specific sites (like Google Search)."},chromevox_options_verbosity_verbose:{message:"Enable verbose descriptions."},
+chromevox_options_cursor_between_characters:{message:"Place cursor between characters when editing text (like Mac OS X)."},chromevox_options_magnifier_show_checkbox:{message:"Show a magnified view of the page content."},chromevox_options_voices:{message:"Voices"},chromevox_options_voices_description:{message:"Change the current voice by selecting an option from the list below."},chromevox_options_braille:{message:"Braille"},chromevox_options_braille_table_type_6:{message:"Switch to 8 dot braille"},
+chromevox_options_braille_table_type_8:{message:"Switch to 6 dot braille"},chromevox_options_braille_description_6:{message:"Change the current 6 dot braille table by selecting an option from the list below."},chromevox_options_braille_locale_grade:{message:"$1, Grade $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_options_braille_description_8:{message:"Change the current 8 dot braille table by selecting an option from the list below."},chromevox_options_keyboard_shortcuts:{message:"Keyboard shortcuts"},
+chromevox_options_keymap_description:{message:"Change the current keymap by selecting an option from the list below."},chromevox_options_select_keys:{message:"Reset current keymap"},chromevox_options_shortcuts_description:{message:"Customize keyboard shortcuts for frequently used commands by typing them into the corresponding fields below."},chromevox_options_modifier_keys:{message:"Modifier keys"},chromevox_options_cvox_modifier_key:{message:"ChromeVox modifier key"},chromevox_kbexplorer_title:{message:"ChromeOS Keyboard Explorer"},
+chromevox_kbexplorer_instructions:{message:"Press any key to learn its name. Ctrl+W will close the keyboard explorer."},chromevox_chrome_system_need_restart:{message:"System was updated. Restart is recommended."},chromevox_chrome_brightness_changed:{message:"Brightness $1 percent",placeholders:{1:{content:"$1"}}},chromevox_chrome_tab_created:{message:"tab created"},chromevox_chrome_tab_selected:{message:"$1, tab",placeholders:{1:{content:"$1"}}},chromevox_chrome_normal_window_selected:{message:"window $1 tab",
+placeholders:{1:{content:"$1"}}},chromevox_chrome_incognito_window_selected:{message:"incognito window $1 tab",placeholders:{1:{content:"$1"}}},chromevox_chrome_menu_opened:{message:"$1 menu opened",placeholders:{1:{content:"$1"}}},chromevox_describe_checkbox_checked:{message:"$1 checkbox checked",placeholders:{1:{content:"$1"}}},chromevox_checkbox_checked_state:{message:"checked"},chromevox_checkbox_checked_state_brl:{message:"x"},chromevox_describe_checkbox_unchecked:{message:"$1, checkbox not checked",
+placeholders:{1:{content:"$1"}}},chromevox_checkbox_unchecked_state:{message:"not checked"},chromevox_checkbox_unchecked_state_brl:{message:" "},chromevox_describe_radio_selected:{message:"$1, radio button selected",placeholders:{1:{content:"$1"}}},chromevox_radio_selected_state:{message:"selected"},chromevox_radio_selected_state_brl:{message:"x"},chromevox_describe_radio_unselected:{message:"$1, radio button unselected",placeholders:{1:{content:"$1"}}},chromevox_radio_unselected_state:{message:"unselected"},
+chromevox_radio_unselected_state_brl:{message:" "},chromevox_describe_menu:{message:"$1, menu",placeholders:{1:{content:"$1"}}},chromevox_describe_menu_item:{message:"$1, menu item",placeholders:{1:{content:"$1"}}},chromevox_describe_menu_item_with_submenu:{message:"$1, menu item, with submenu",placeholders:{1:{content:"$1"}}},chromevox_describe_window:{message:"$1, window",placeholders:{1:{content:"$1"}}},chromevox_describe_textbox:{message:"$1, $2, text box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},
+chromevox_describe_unnamed_textbox:{message:"$1, text box",placeholders:{1:{content:"$1"}}},chromevox_describe_password:{message:"$1, $2, password text box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_unnamed_password:{message:"$1, password text box",placeholders:{1:{content:"$1"}}},chromevox_describe_button:{message:"$1, button",placeholders:{1:{content:"$1"}}},chromevox_describe_combobox:{message:"$1, $2, combo box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_unnamed_combobox:{message:"$1, combo box",
+placeholders:{1:{content:"$1"}}},chromevox_describe_listbox:{message:"$1, $2, list box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_unnamed_listbox:{message:"$1, list box",placeholders:{1:{content:"$1"}}},chromevox_describe_link:{message:"$1, link",placeholders:{1:{content:"$1"}}},chromevox_describe_tab:{message:"$1, tab",placeholders:{1:{content:"$1"}}},chromevox_describe_slider:{message:"$1, $2, slider",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_selected:{message:", selected"},
+chromevox_describe_unselected:{message:", unselected"},chromevox_describe_index:{message:" $1 of $2 ",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_announce_rate:{message:"Rate $1 percent",placeholders:{1:{content:"$1"}}},chromevox_announce_pitch:{message:"Pitch $1 percent",placeholders:{1:{content:"$1"}}},chromevox_announce_volume:{message:"Volume $1 percent",placeholders:{1:{content:"$1"}}},chromevox_exiting_dialog:{message:"Exited dialog."},chromevox_exited_container:{message:"Exited $1.",
+placeholders:{1:{content:"$1"}}},chromevox_entering_dialog:{message:"Entered dialog"},chromevox_live_regions_removed:{message:"removed:"},chromevox_sticky_mode_enabled:{message:"Sticky mode enabled"},chromevox_sticky_mode_disabled:{message:"Sticky mode disabled"},chromevox_keyboard_help_intro:{message:"Keyboard Help"},chromevox_context_menu_intro:{message:"Context Menu"},chromevox_choice_widget_name:{message:"$1 list.",placeholders:{1:{content:"$1"}}},chromevox_choice_widget_help:{message:"Use up and down arrow keys to browse, or type to search."},
+chromevox_choice_widget_exited:{message:"Exited"},chromevox_choice_widget_type_generic:{message:" "},chromevox_end_of_cell:{message:"End of cell."},chromevox_no_url_found:{message:"No URL found"},chromevox_leaving_table:{message:"Leaving table."},chromevox_leaving_grid:{message:"Leaving grid."},chromevox_inside_table:{message:"Inside table"},chromevox_no_tables:{message:"No table found."},chromevox_not_inside_table:{message:"Not inside table."},chromevox_no_cell_below:{message:"No cell below."},chromevox_no_cell_above:{message:"No cell above."},
+chromevox_no_cell_right:{message:"No cell right."},chromevox_no_cell_left:{message:"No cell left."},chromevox_empty_cell:{message:"Empty cell."},chromevox_spanned:{message:"Spanned."},chromevox_row_header:{message:"Row header:"},chromevox_empty_row_header:{message:"Empty row header"},chromevox_column_header:{message:"Column header:"},chromevox_empty_column_header:{message:"Empty column header"},chromevox_no_headers:{message:"No headers"},chromevox_empty_headers:{message:"Empty headers"},chromevox_table_location:{message:"Row $1 of $2, Column $3 of $4",
+placeholders:{1:{content:"$1"},2:{content:"$2"},3:{content:"$3"},4:{content:"$4"}}},chromevox_no_next_checkbox:{message:"No next checkbox."},chromevox_no_previous_checkbox:{message:"No previous checkbox."},chromevox_no_next_edit_text:{message:"No next editable text field."},chromevox_no_previous_edit_text:{message:"No previous editable text field."},chromevox_no_next_heading:{message:"No next heading."},chromevox_no_previous_heading:{message:"No previous heading."},chromevox_no_next_heading_1:{message:"No next level 1 heading."},
+chromevox_no_previous_heading_1:{message:"No previous level 1 heading."},chromevox_no_next_heading_2:{message:"No next level 2 heading."},chromevox_no_previous_heading_2:{message:"No previous level 2 heading."},chromevox_no_next_heading_3:{message:"No next level 3 heading."},chromevox_no_previous_heading_3:{message:"No previous level 3 heading."},chromevox_no_next_heading_4:{message:"No next level 4 heading."},chromevox_no_previous_heading_4:{message:"No previous level 4 heading."},chromevox_no_next_heading_5:{message:"No next level 5 heading."},
+chromevox_no_previous_heading_5:{message:"No previous level 5 heading."},chromevox_no_next_heading_6:{message:"No next level 6 heading."},chromevox_no_previous_heading_6:{message:"No previous level 6 heading."},chromevox_no_next_not_link:{message:"No next item that isn't a link."},chromevox_no_previous_not_link:{message:"No previous item that isn't a link."},chromevox_no_next_anchor:{message:"No next anchor."},chromevox_no_previous_anchor:{message:"No previous anchor."},chromevox_no_next_link:{message:"No next link."},
+chromevox_no_previous_link:{message:"No previous link."},chromevox_no_next_table:{message:"No next table."},chromevox_no_previous_table:{message:"No previous table."},chromevox_no_next_visited_link:{message:"No next visited link."},chromevox_no_previous_visited_link:{message:"No previous visited link."},chromevox_no_next_math:{message:"No next math expression."},chromevox_no_previous_math:{message:"No previous math expression."},chromevox_no_next_media_widget:{message:"No next media widget."},chromevox_no_previous_media_widget:{message:"No previous media widget."},
+chromevox_no_next_list:{message:"No next list."},chromevox_no_previous_list:{message:"No previous list."},chromevox_no_next_list_item:{message:"No next list item."},chromevox_no_previous_list_item:{message:"No previous list item."},chromevox_no_next_blockquote:{message:"No next blockquote."},chromevox_no_previous_blockquote:{message:"No previous blockquote."},chromevox_no_next_form_field:{message:"No next form field."},chromevox_no_previous_form_field:{message:"No previous form field."},chromevox_no_next_jump:{message:"No next jump point."},
+chromevox_no_previous_jump:{message:"No previous jump point."},chromevox_no_next_landmark:{message:"No next ARIA landmark."},chromevox_no_previous_landmark:{message:"No previous ARIA landmark."},chromevox_no_next_combo_box:{message:"No next combo box."},chromevox_no_previous_combo_box:{message:"No previous combo box."},chromevox_no_next_button:{message:"No next button."},chromevox_no_previous_button:{message:"No previous button."},chromevox_no_next_graphic:{message:"No next graphic."},chromevox_no_previous_graphic:{message:"No previous graphic."},
+chromevox_no_next_slider:{message:"No next slider."},chromevox_no_previous_slider:{message:"No previous slider."},chromevox_no_next_radio_button:{message:"No next radio button."},chromevox_no_previous_radio_button:{message:"No previous radio button."},chromevox_no_next_section:{message:"No next section."},chromevox_no_previous_section:{message:"No previous section."},chromevox_no_next_control:{message:"No next control."},chromevox_no_previous_control:{message:"No previous control."},chromevox_element_clicked:{message:"Clicked"},
+chromevox_element_double_clicked:{message:"double clicked"},chromevox_powerkey_no_headings:{message:"No headings."},chromevox_powerkey_no_links:{message:"No links."},chromevox_powerkey_no_forms:{message:"No forms."},chromevox_powerkey_no_tables:{message:"No tables."},chromevox_powerkey_no_landmarks:{message:"No ARIA landmarks."},chromevox_powerkey_no_jumps:{message:"No jumps."},chromevox_list_position:{message:"$1 of $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_list_position_brl:{message:"$1/$2",
+placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_aria_has_submenu:{message:"has submenu"},chromevox_aria_has_submenu_brl:{message:"+submnu"},chromevox_aria_has_popup:{message:"has pop up"},chromevox_aria_has_popup_brl:{message:"+popup"},chromevox_aria_value_min:{message:"Min $1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_min_brl:{message:"min:$1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_max:{message:"Max $1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_max_brl:{message:"max:$1",
+placeholders:{1:{content:"$1"}}},chromevox_aria_value_now:{message:"$1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_now_brl:{message:"$1",placeholders:{1:{content:"$1"}}},chromevox_aria_role_alert:{message:"Alert"},chromevox_aria_role_alert_brl:{message:"alrt"},chromevox_aria_role_alertdialog:{message:"Alert dialog"},chromevox_aria_role_alertdialog_brl:{message:"alrt dlg"},chromevox_aria_role_button:{message:"Button"},chromevox_aria_role_button_brl:{message:"btn"},chromevox_aria_role_checkbox:{message:"Check box"},
+chromevox_aria_role_checkbox_brl:{message:"chx"},chromevox_aria_role_combobox:{message:"Combo box"},chromevox_aria_role_combobox_brl:{message:"cbx"},chromevox_aria_role_dialog:{message:"Dialog"},chromevox_aria_role_dialog_brl:{message:"dlg"},chromevox_aria_role_grid:{message:"Grid"},chromevox_aria_role_grid_brl:{message:"grd"},chromevox_aria_role_gridcell:{message:"Cell"},chromevox_aria_role_gridcell_brl:{message:"cl"},chromevox_aria_role_gridcell_pos:{message:"row $1 column $2",placeholders:{1:{content:"$1"},
+2:{content:"$2"}}},chromevox_aria_role_link:{message:"Link"},chromevox_aria_role_link_brl:{message:"lnk"},chromevox_aria_role_link_singular:{message:"1 link"},chromevox_aria_role_link_plural:{message:"$1 links",placeholders:{1:{content:"$1"}}},chromevox_aria_role_listbox:{message:"List box"},chromevox_aria_role_listbox_brl:{message:"lstbx"},chromevox_aria_role_log:{message:"Log"},chromevox_aria_role_log_brl:{message:"log"},chromevox_aria_role_marquee:{message:"Marquee"},chromevox_aria_role_marquee_brl:{message:"maqe"},
+chromevox_aria_role_menu:{message:"Menu"},chromevox_aria_role_menu_brl:{message:"mnu"},chromevox_aria_role_menubar:{message:"Menu bar"},chromevox_aria_role_menubar_brl:{message:"mnu br"},chromevox_aria_role_menuitem:{message:"Menu item"},chromevox_aria_role_menuitem_brl:{message:"mnu itm"},chromevox_aria_role_menuitemcheckbox:{message:"Menu item check box"},chromevox_aria_role_menuitemcheckbox_brl:{message:"mnu itm chx"},chromevox_aria_role_menuitemradio:{message:"Menu item radio button"},chromevox_aria_role_menuitemradio_brl:{message:"mnu itm rd"},
+chromevox_aria_role_option:{message:" "},chromevox_aria_role_option_brl:{message:" "},chromevox_aria_role_popup_button:{message:"Pop-up button"},chromevox_aria_role_popup_button_brl:{message:"pup btn"},chromevox_aria_role_progressbar:{message:"Progress bar"},chromevox_aria_role_progressbar_brl:{message:"prog br"},chromevox_aria_role_radio:{message:"Radio button"},chromevox_aria_role_radio_brl:{message:"rd"},chromevox_aria_role_radiogroup:{message:"Radio button group"},chromevox_aria_role_radiogroup_brl:{message:"rd grp"},
+chromevox_aria_role_scrollbar:{message:"Scroll bar"},chromevox_aria_role_scrollbar_brl:{message:"scr br"},chromevox_aria_role_slider:{message:"Slider"},chromevox_aria_role_slider_brl:{message:"slr"},chromevox_aria_role_spinbutton:{message:"Spin button"},chromevox_aria_role_spinbutton_brl:{message:"spn btn"},chromevox_aria_role_status:{message:"Status"},chromevox_aria_role_status_brl:{message:"sts"},chromevox_aria_role_tab:{message:"Tab"},chromevox_aria_role_tab_brl:{message:"tab"},chromevox_aria_role_tabpanel:{message:"Tab panel"},
+chromevox_aria_role_tabpanel_brl:{message:"tab pnl"},chromevox_aria_role_textbox:{message:"Text box"},chromevox_aria_role_textbox_brl:{message:"txtbx"},chromevox_aria_role_timer:{message:"Timer"},chromevox_aria_role_timer_brl:{message:"tmr"},chromevox_aria_role_toolbar:{message:"Tool bar"},chromevox_aria_role_toolbar_brl:{message:"tl br"},chromevox_aria_role_tooltip:{message:"Tool tip"},chromevox_aria_role_tooltip_brl:{message:"tl tp"},chromevox_aria_role_treeitem:{message:"Tree item"},chromevox_aria_role_treeitem_brl:{message:"tr itm"},
+chromevox_aria_role_article:{message:"Article"},chromevox_aria_role_article_brl:{message:"acl"},chromevox_aria_role_application:{message:"Application"},chromevox_aria_role_application_brl:{message:"app"},chromevox_aria_role_banner:{message:"Banner"},chromevox_aria_role_banner_brl:{message:"bnr"},chromevox_aria_role_columnheader:{message:"Column header"},chromevox_aria_role_columnheader_brl:{message:"clm hd"},chromevox_aria_role_complementary:{message:"Complementary"},chromevox_aria_role_complementary_brl:{message:"cmpy"},
+chromevox_aria_role_contentinfo:{message:"Content info"},chromevox_aria_role_contentinfo_brl:{message:"cnt in"},chromevox_aria_role_definition:{message:"Definition"},chromevox_aria_role_definition_brl:{message:"def"},chromevox_aria_role_directory:{message:"Directory"},chromevox_aria_role_directory_brl:{message:"dir"},chromevox_aria_role_document:{message:"Document"},chromevox_aria_role_document_brl:{message:"doc"},chromevox_aria_role_form:{message:"Form"},chromevox_aria_role_form_brl:{message:"frm"},
+chromevox_aria_role_form_singular:{message:"1 form"},chromevox_aria_role_form_plural:{message:"$1 forms",placeholders:{1:{content:"$1"}}},chromevox_aria_role_group:{message:"Group"},chromevox_aria_role_group_brl:{message:"grp"},chromevox_aria_role_heading:{message:"Heading"},chromevox_aria_role_heading_brl:{message:"hd"},chromevox_aria_role_img:{message:"Image"},chromevox_aria_role_img_brl:{message:"img"},chromevox_aria_role_list:{message:"List"},chromevox_aria_role_list_brl:{message:"lst"},chromevox_aria_role_listitem:{message:"List item"},
+chromevox_aria_role_listitem_brl:{message:"lstitm"},chromevox_aria_role_main:{message:"Main"},chromevox_aria_role_main_brl:{message:"main"},chromevox_aria_role_math:{message:"Math"},chromevox_aria_role_math_brl:{message:"math"},chromevox_aria_role_navigation:{message:"Navigation"},chromevox_aria_role_navigation_brl:{message:"nav"},chromevox_aria_role_note:{message:"Note"},chromevox_aria_role_note_brl:{message:"note"},chromevox_aria_role_region:{message:"Region"},chromevox_aria_role_region_brl:{message:"rgn"},
+chromevox_aria_role_rowheader:{message:"Row header"},chromevox_aria_role_rowheader_brl:{message:"rw hd"},chromevox_aria_role_search:{message:"Search"},chromevox_aria_role_search_brl:{message:"srch"},chromevox_aria_role_separator:{message:"Separator"},chromevox_aria_role_separator_brl:{message:"sprtr"},chromevox_aria_autocomplete_inline:{message:"Autocompletion inline"},chromevox_aria_autocomplete_inline_brl:{message:"autocomplete"},chromevox_aria_autocomplete_list:{message:"Autocompletion list"},
+chromevox_aria_autocomplete_list_brl:{message:"autocomplete lst"},chromevox_aria_autocomplete_both:{message:"Autocompletion inline and list"},chromevox_aria_autocomplete_both_brl:{message:"autocomplete lst"},chromevox_aria_checked_true:{message:"Checked"},chromevox_aria_checked_true_brl:{message:"x"},chromevox_aria_checked_false:{message:"Not checked"},chromevox_aria_checked_false_brl:{message:" "},chromevox_aria_checked_mixed:{message:"Partially checked"},chromevox_aria_checked_mixed_brl:{message:"/x"},
+chromevox_aria_disabled_true:{message:"Disabled"},chromevox_aria_disabled_true_brl:{message:"="},chromevox_aria_expanded_true:{message:"Expanded"},chromevox_aria_expanded_true_brl:{message:">"},chromevox_aria_expanded_false:{message:"Collapsed"},chromevox_aria_expanded_false_brl:{message:"<"},chromevox_aria_invalid_true:{message:"Invalid input"},chromevox_aria_invalid_true_brl:{message:"!"},chromevox_aria_invalid_grammar:{message:"Grammatical mistake detected"},chromevox_aria_invalid_grammar_brl:{message:"Grammatical mistake detected"},
+chromevox_aria_invalid_spelling:{message:"Spelling mistake detected"},chromevox_aria_invalid_spelling_brl:{message:"misspelled"},chromevox_aria_multiline_true:{message:"Multi line"},chromevox_aria_multiline_true_brl:{message:"mult ln"},chromevox_aria_multiselectable_true:{message:"Multi select"},chromevox_aria_multiselectable_true_brl:{message:"mult sel"},chromevox_aria_pressed_true:{message:"Pressed"},chromevox_aria_pressed_true_brl:{message:"x"},chromevox_aria_pressed_false:{message:"Not pressed"},
+chromevox_aria_pressed_false_brl:{message:" "},chromevox_aria_pressed_mixed:{message:"Partially pressed"},chromevox_aria_pressed_mixed_brl:{message:"/x"},chromevox_aria_readonly_true:{message:"Read only"},chromevox_aria_readonly_true_brl:{message:"rdonly"},chromevox_aria_required_true:{message:"Required"},chromevox_aria_required_true_brl:{message:"req"},chromevox_aria_selected_true:{message:"Selected"},chromevox_aria_selected_true_brl:{message:"x"},chromevox_aria_selected_false:{message:"Not selected"},
+chromevox_aria_selected_false_brl:{message:" "},chromevox_tag_link:{message:"Link"},chromevox_tag_link_brl:{message:"lnk"},chromevox_tag_button:{message:"Button"},chromevox_tag_button_brl:{message:"btn"},chromevox_tag_h1:{message:"Heading 1"},chromevox_tag_h1_brl:{message:"h1"},chromevox_tag_h2:{message:"Heading 2"},chromevox_tag_h2_brl:{message:"h2"},chromevox_tag_h3:{message:"Heading 3"},chromevox_tag_h3_brl:{message:"h3"},chromevox_tag_h4:{message:"Heading 4"},chromevox_tag_h4_brl:{message:"h4"},
+chromevox_tag_h5:{message:"Heading 5"},chromevox_tag_h5_brl:{message:"h5"},chromevox_tag_h6:{message:"Heading 6"},chromevox_tag_h6_brl:{message:"h6"},chromevox_tag_li:{message:"List item"},chromevox_tag_li_brl:{message:"lstitm"},chromevox_tag_ol:{message:"Ordered List"},chromevox_tag_ol_brl:{message:"lst"},chromevox_tag_select:{message:"Combo box"},chromevox_tag_select_brl:{message:"cbx"},chromevox_tag_textarea:{message:"Text area"},chromevox_tag_textarea_brl:{message:"txta"},chromevox_tag_table:{message:"table"},
+chromevox_tag_table_brl:{message:"tbl"},chromevox_tag_ul:{message:"List"},chromevox_tag_ul_brl:{message:"lst"},chromevox_tag_section:{message:"Section"},chromevox_tag_section_brl:{message:"stn"},chromevox_tag_nav:{message:"Navigation"},chromevox_tag_nav_brl:{message:"nav"},chromevox_tag_article:{message:"Article"},chromevox_tag_article_brl:{message:"article"},chromevox_tag_aside:{message:"Aside"},chromevox_tag_aside_brl:{message:"aside"},chromevox_tag_hgroup:{message:"Heading group"},chromevox_tag_hgroup_brl:{message:"hgrp"},
+chromevox_tag_header:{message:"Header"},chromevox_tag_header_brl:{message:"hdr"},chromevox_tag_footer:{message:"Footer"},chromevox_tag_footer_brl:{message:"ftr"},chromevox_tag_time:{message:"Time"},chromevox_tag_time_brl:{message:" "},chromevox_tag_mark:{message:"Mark"},chromevox_tag_mark_brl:{message:"mark"},chromevox_tag_video:{message:"Video"},chromevox_tag_video_brl:{message:"video"},chromevox_tag_audio:{message:"Audio"},chromevox_tag_audio_brl:{message:"audio"},chromevox_input_type_button:{message:"Button"},
+chromevox_input_type_button_brl:{message:"btn"},chromevox_input_type_checkbox:{message:"Check box"},chromevox_input_type_checkbox_brl:{message:"chx"},chromevox_input_type_color:{message:"Color picker"},chromevox_input_type_color_brl:{message:"color picker"},chromevox_input_type_datetime:{message:"Date time control"},chromevox_input_type_datetime_brl:{message:"date time"},chromevox_input_type_datetime_local:{message:"Date time control"},chromevox_input_type_datetime_local_brl:{message:"date time"},
+chromevox_input_type_date:{message:"Date control"},chromevox_input_type_date_brl:{message:"date"},chromevox_input_type_email:{message:"Edit text, email entry"},chromevox_input_type_email_brl:{message:"edtxt email"},chromevox_input_type_file:{message:"File selection"},chromevox_input_type_file_brl:{message:"file"},chromevox_input_type_image:{message:"Button"},chromevox_input_type_image_brl:{message:"btn"},chromevox_input_type_month:{message:"Month control"},chromevox_input_type_month_brl:{message:"month"},
+chromevox_input_type_number:{message:"Edit text numeric only"},chromevox_input_type_number_brl:{message:"edtxt#"},chromevox_input_type_password:{message:"Password edit text"},chromevox_input_type_password_brl:{message:"pwd edtxt"},chromevox_input_type_radio:{message:"Radio button"},chromevox_input_type_radio_brl:{message:"rd btn"},chromevox_input_type_range:{message:"Slider"},chromevox_input_type_range_brl:{message:"slr"},chromevox_input_type_reset:{message:"Reset"},chromevox_input_type_reset_brl:{message:"reset"},
+chromevox_input_type_search:{message:"Edit text, search entry"},chromevox_input_type_search_brl:{message:"search edtxt"},chromevox_input_type_submit:{message:"Button"},chromevox_input_type_submit_brl:{message:"btn"},chromevox_input_type_tel:{message:"Edit text, number entry"},chromevox_input_type_tel_brl:{message:"tele# edtxt"},chromevox_input_type_text:{message:"Edit text"},chromevox_input_type_text_brl:{message:"edtxt"},chromevox_input_type_url:{message:"Edit text, URL entry"},chromevox_input_type_url_brl:{message:"url edtxt"},
+chromevox_input_type_week:{message:"Week of the year control"},chromevox_input_type_week_brl:{message:"week"},chromevox_internal_link:{message:"Internal link"},chromevox_internal_link_brl:{message:"int lnk"},chromevox_text_box_blank:{message:"Blank"},chromevox_list_with_items:{message:"with $1 items",placeholders:{1:{content:"$1"}}},chromevox_list_with_items_brl:{message:"+$1",placeholders:{1:{content:"$1"}}},chromevox_state_percent:{message:"$1%",placeholders:{1:{content:"$1"}}},chromevox_state_percent_brl:{message:"$1%",
+placeholders:{1:{content:"$1"}}},chromevox_has_submenu:{message:"with submenu"},chromevox_has_submenu_brl:{message:"+submnu"},chromevox_has_popup:{message:"has popup"},chromevox_has_popup_brl:{message:"has popup"},chromevox_collection:{message:"$1 collection with $2 items",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_enter_key:{message:"Enter"},chromevox_space_key:{message:"Space"},chromevox_backspace_key:{message:"Backspace"},chromevox_tab_key:{message:"Tab"},chromevox_left_key:{message:"Left"},
+chromevox_up_key:{message:"Up"},chromevox_right_key:{message:"Right"},chromevox_down_key:{message:"Down"},chromevox_unknown_link:{message:"Unknown link"},chromevox_toggle_chromevox_active:{message:"Toggle ChromeVox active or inactive."},chromevox_chromevox_inactive:{message:"ChromeVox is now inactive."},chromevox_pause:{message:", "},chromevox_end:{message:". "},chromevox_previous_different_element:{message:"Previous different element."},chromevox_next_different_element:{message:"Next different element."},
+chromevox_previous_similar_element:{message:"Previous similar element."},chromevox_next_similar_element:{message:"Next similar element."},chromevox_no_more_similar_elements:{message:"No more similar elements."},chromevox_no_more_different_elements:{message:"No more different elements."},chromevox_index_total:{message:"$1 of $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_enter_css_space:{message:"Enter group exploration"},chromevox_enter_group_exploration:{message:"Exploring groups"},
+chromevox_pdf_header:{message:'This page contains the text automatically extracted from the PDF file <b>$1</b>. <a href="$2">Click here for the original.</a>',placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_object_strategy:{message:"Object"},chromevox_group_strategy:{message:"Group"},chromevox_table_strategy:{message:"Table"},chromevox_row_granularity:{message:"Row"},chromevox_column_granularity:{message:"Column"},chromevox_mathml_tree_granularity:{message:"Math ML Tree"},chromevox_mathml_layout_granularity:{message:"Math ML Layout"},
+chromevox_mathml_token_granularity:{message:"Math ML Token"},chromevox_mathml_leaf_granularity:{message:"Math ML Leaf"},chromevox_visual_strategy:{message:"Visual"},chromevox_custom_strategy:{message:"Custom"},chromevox_line_granularity:{message:"Line"},chromevox_sentence_granularity:{message:"Sentence"},chromevox_word_granularity:{message:"Word"},chromevox_character_granularity:{message:"Character"},chromevox_search_widget_intro:{message:"Find in page."},chromevox_search_widget_intro_help:{message:"Enter a search query."},
+chromevox_search_widget_outro:{message:"Exited find in page."},chromevox_search_widget_no_results:{message:"No more results."},chromevox_modifier_keys:{message:"Modifier Keys"},chromevox_navigation:{message:"ChromeVox Navigation"},chromevox_information:{message:"Information"},chromevox_help_commands:{message:"Help Commands"},chromevox_controlling_speech:{message:"Controlling Speech"},chromevox_overview:{message:"Overview"},chromevox_tables:{message:"Tables"},chromevox_jump_commands:{message:"Jump Commands"},
+chromevox_braille:{message:"Braille"},chromevox_developer:{message:"Developer"},chromevox_keymap_classic:{message:"Classic keymap"},chromevox_keymap_flat:{message:"Flat keymap"},chromevox_keymap_experimental:{message:"Experimental keymap"},chromevox_enable_tts_log:{message:"Enable TTS logging"},chromevox_begin_selection:{message:"Start selection"},chromevox_end_selection:{message:"End selection"},chromevox_selection_is:{message:"Selection is "},chromevox_toggle_selection:{message:"Start or end selection."},
+chromevox_copy:{message:"copy."},chromevox_cut:{message:"cut."},chromevox_paste:{message:"paste."},chromevox_selected:{message:"selected"},chromevox_unselected:{message:"unselected"},chromevox_added_to_selection:{message:"added to selection"},chromevox_removed_from_selection:{message:"removed from selection"},chromevox_then:{message:"then"},chromevox_followed_by:{message:"followed by"},chromevox_modifier_key:{message:"ChromeVox modifier"},chromevox_key_conflict:{message:"$1 is already assigned to a command.",
+placeholders:{1:{content:"$1"}}},chromevox_math_expr:{message:"Math"},chromevox_math_expr_brl:{message:"Math"},chromevox_not_inside_math:{message:"Not inside math"},chromevox_timewidget_ampm:{message:"AM PM"},chromevox_timewidget_hours:{message:"hours"},chromevox_timewidget_minutes:{message:"minutes"},chromevox_timewidget_seconds:{message:"seconds"},chromevox_timewidget_milliseconds:{message:"milliseconds"},chromevox_timewidget_am:{message:"AM"},chromevox_timewidget_pm:{message:"PM"},chromevox_datewidget_week:{message:"week"},
+chromevox_datewidget_january:{message:"January"},chromevox_datewidget_february:{message:"February"},chromevox_datewidget_march:{message:"March"},chromevox_datewidget_april:{message:"April"},chromevox_datewidget_may:{message:"May"},chromevox_datewidget_june:{message:"June"},chromevox_datewidget_july:{message:"July"},chromevox_datewidget_august:{message:"August"},chromevox_datewidget_september:{message:"September"},chromevox_datewidget_october:{message:"October"},chromevox_datewidget_november:{message:"November"},
+chromevox_datewidget_december:{message:"December"},chromevox_no_punctuation:{message:"No punctuation"},chromevox_some_punctuation:{message:"Some punctuation"},chromevox_all_punctuation:{message:"All punctuation"},chromevox_search_help_item:{message:"Press enter to accept or escape to cancel, down for next and up for previous."},chromevox_clickable:{message:"clickable"},chromevox_clickable_brl:{message:"clickable"},chromevox_previous_character:{message:"Previous Character"},chromevox_next_character:{message:"Next Character"},
+chromevox_previous_word:{message:"Previous Word"},chromevox_next_word:{message:"Next Word"},chromevox_previous_sentence:{message:"Previous Sentence"},chromevox_next_sentence:{message:"Next Sentence"},chromevox_previous_line:{message:"Previous Line"},chromevox_next_line:{message:"Next Line"},chromevox_previous_object:{message:"Previous Object"},chromevox_next_object:{message:"Next Object"},chromevox_previous_group:{message:"Previous Group"},chromevox_next_group:{message:"Next Group"},chromevox_role_landmark:{message:"Landmark"},
+chromevox_modifier_entry_error:{message:"No modifier pressed; please press and hold one or more modifiers; lift your fingers once done and you will hear the keys set. Tab to exit."},chromevox_modifier_entry_set:{message:"$1 is now the new ChromeVox modifier.",placeholders:{1:{content:"$1"}}},chromevox_keymap_reset:{message:"$1 has been reset.",placeholders:{1:{content:"$1"}}},chromevox_keymap_switch:{message:"Switched to $1.",placeholders:{1:{content:"$1"}}},chromevox_jump_to_top:{message:"Jump to the top of the page"},
+chromevox_jump_to_bottom:{message:"Jump to the bottom of the page"},chromevox_wrapped_to_top:{message:"Wrapped to top"},chromevox_wrapped_to_bottom:{message:"Wrapped to bottom"},chromevox_cycle_punctuation_echo:{message:"Cycle punctuation echo"},chromevox_cycle_typing_echo:{message:"Cycle typing echo"},chromevox_pause_all_media:{message:"Pauses all currently playing media widgets"},chromevox_open_long_desc:{message:"Open long description in a new tab"},chromevox_no_long_desc:{message:"No long description"},
+chromevox_image_with_long_desc:{message:"Image with long description"},chromevox_selected_options_value:{message:"$1 to $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_selected_options_value_brl:{message:"$1-$2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_selected_options_state:{message:"selected $1 items",placeholders:{1:{content:"$1"}}},chromevox_selected_options_state_brl:{message:"sld $1",placeholders:{1:{content:"$1"}}},chromevox_clear_page_selection:{message:"cleared selection"},
+chromevox_character_echo:{message:"character echo"},chromevox_word_echo:{message:"word echo"},chromevox_character_and_word_echo:{message:"character and word echo"},chromevox_none_echo:{message:"no typing echo"},chromevox_enter_content:{message:"enter structured content, such as tables"},chromevox_exit_content:{message:"exit structured content, such as tables"},chromevox_enter_content_say:{message:"entered $1",placeholders:{1:{content:"$1"}}},chromevox_structural_line:{message:"structural line"},chromevox_layout_line:{message:"line"},
+chromevox_toggle_line_type:{message:"Toggle line type between structural or layout"},chromevox_table_shifter:{message:"table"},chromevox_navigation_shifter:{message:"default navigation"},chromevox_math_shifter:{message:"math"},chromevox_toggle_semantics:{message:"Toggle interpretation of math expressions between structural and semantic"},chromevox_semantics_on:{message:"Semantics on"},chromevox_semantics_off:{message:"Semantics off"},chromevox_phonetic_map:{message:'{"a": "alpha", "b": "bravo", "c": "charlie", "d": "delta", "e": "echo", "f": "foxtrot", "g": "golf", "h": "hotel", "i": "india", "j": "juliet","k": "kilo", "l": "lima", "m": "mike", "n": "november", "o": "oscar","p": "papa", "q": "quebec", "r": "romeo", "s": "sierra", "t": "tango", "u": "uniform", "v": "victor", "w": "whiskey","x": "xray", "y": "yankee", "z": "zulu"}'},
+chromevox_page_has_one_alert_singular:{message:"This page has 1 alert"},chromevox_page_has_alerts_plural:{message:"This page has $1 alerts",placeholders:{1:{content:"$1"}}},chromevox_review_alerts:{message:"Press Alt+Shift+A to review alerts"},chromevox_no_next_article:{message:"No next article."},chromevox_no_previous_article:{message:"No previous article."},chromevox_chromevox_intro:{message:"ChromeVox spoken feedback is ready"},chromevox_intro_brl:{message:"ChromeVox ready"},chromevox_earcons_on:{message:"Earcons on"},
+chromevox_earcons_off:{message:"Earcons off"},chromevox_toggle_earcons:{message:"Turn sound feedback (earcons) on or off."},chromevox_speak_time_and_date:{message:"Speak the current time and date."},chromevox_mark_as_search_result_brl:{message:"S:$1",placeholders:{1:{content:"$1"}}},chromevox_text_deleted:{message:"Deleted"},chromevox_perform_default_action:{message:"Perform default action"},chromevox_visited_url:{message:"visited"},chromevox_visited_url_brl:{message:"visited"},chromevox_exclamation:{message:"{COUNT, plural, =1 {exclamation point}other {# exclamation points}}"},
+chromevox_space:{message:"{COUNT, plural, =1 {space}other {# spaces}}"},chromevox_backtick:{message:"{COUNT, plural, =1 {backtick}other {# backticks}}"},chromevox_tilde:{message:"{COUNT, plural, =1 {TILDE}other {# tildes}}"},chromevox_at:{message:"{COUNT, plural, =1 {at}other {# at signs}}"},chromevox_pound:{message:"{COUNT, plural, =1 {pound}other {# pound signs}}"},chromevox_dollar:{message:"{COUNT, plural, =1 {dollar}other {# dollar signs}}"},chromevox_percent:{message:"{COUNT, plural, =1 {percent}other {# percent signs}}"},
+chromevox_caret:{message:"{COUNT, plural, =1 {caret}other {# carets}}"},chromevox_ampersand:{message:"{COUNT, plural, =1 {ampersand}other {# ampersands}}"},chromevox_asterisk:{message:"{COUNT, plural, =1 {asterisk}other {# asterisks}}"},chromevox_open_paren:{message:"{COUNT, plural, =1 {open paren}other {# open parens}}"},chromevox_close_paren:{message:"{COUNT, plural, =1 {close paren}other {# close parens}}"},chromevox_dash:{message:"{COUNT, plural, =1 {dash}other {# dashes}}"},chromevox_underscore:{message:"{COUNT, plural, =1 {underscore}other {# underscores}}"},
+chromevox_equals:{message:"{COUNT, plural, =1 {equal}other {# equal signs}}"},chromevox_plus:{message:"{COUNT, plural, =1 {plus}other {# plus signs}}"},chromevox_left_bracket:{message:"{COUNT, plural, =1 {left bracket}other {# left brackets}}"},chromevox_right_bracket:{message:"{COUNT, plural, =1 {right bracket}other {# right brackets}}"},chromevox_left_brace:{message:"{COUNT, plural, =1 {left brace}other {# left braces}}"},chromevox_right_brace:{message:"{COUNT, plural, =1 {right brace}other {# right braces}}"},
+chromevox_pipe:{message:"{COUNT, plural, =1 {pipe}other {# vertical pipes}}"},chromevox_semicolon:{message:"{COUNT, plural, =1 {semicolon}other {# semicolons}}"},chromevox_colon:{message:"{COUNT, plural, =1 {colon}other {# colons}}"},chromevox_comma:{message:"{COUNT, plural, =1 {comma}other {# commas}}"},chromevox_dot:{message:"{COUNT, plural, =1 {dot}=3 {ellipsis}other {# dots}}"},chromevox_less_than:{message:"{COUNT, plural, =1 {less than}other {# less than signs}}"},chromevox_greater_than:{message:"{COUNT, plural, =1 {greater than}other {# greater than signs}}"},
+chromevox_slash:{message:"{COUNT, plural, =1 {slash}other {# slashes}}"},chromevox_question_mark:{message:"{COUNT, plural, =1 {question mark}other {# question marks}}"},chromevox_quote:{message:"{COUNT, plural, =1 {quote}other {# quotes}}"},chromevox_apostrophe:{message:"{COUNT, plural, =1 {apostrophe}other {# apostrophes}}"},chromevox_tab:{message:"{COUNT, plural, =1 {tab}other {# tabs}}"},chromevox_backslash:{message:"{COUNT, plural, =1 {backslash}other {# backslashes}}"},chromevox_braille_routing:{message:"Click the item under a routing key"},
+chromevox_braille_pan_left:{message:"Pan backward"},chromevox_braille_pan_right:{message:"Pan bforward"},chromevox_braille_line_up:{message:"Braille previous Line"},chromevox_braille_line_down:{message:"Braille next Line"},chromevox_braille_top:{message:"Move braille display to top of page"},chromevox_braille_bottom:{message:"Move braille display to bottom of page"},chromevox_access_key:{message:"has access key, $1",placeholders:{1:{content:"$1"}}},chromevox_locale_dict:{message:'{"ar": "Arabic","bg": "Bulgarian","ca": "Catalan","hr": "Croatian","cs": "Czech","da": "Danish","nl": "Dutch","en_CA": "English (Canada)","en_GB": "English (United Kingdom)","en_US": "English (United States)","et": "Estonian","fr": "French","fr_CA": "French (Canada)","fr_FR": "French (France)","fi": "Finnish","de": "German","de_CH": "German (Switzerland)","de_DE": "German (Germany)","el": "Greek","hi": "Hindi","hu": "Hungarian","is": "Icelandic","it": "Italian","lv": "Latvian","lt": "Lithuanian","nb": "Norwegian Bokm\u00e5l","pl": "Polish","pt": "Portuguese","ro": "Romanian","ru": "Russian","sr": "Serbian","sk": "Slovak","sl": "Slovenian","es": "Spanish","sv": "Swedish","tr": "Turkish","vi": "Vietnamese","zh": "Chinese","zh_TW": "Chinese (Traditional Han)"}'}};cvox.TestMsgs=function(){};goog.inherits(cvox.TestMsgs,cvox.AbstractMsgs);cvox.TestMsgs.prototype.getMsg=function(a,b){if(!a){var c=Error();c.message="Message id required";throw c;}c=cvox.TestMessages["chromevox_"+a];if(void 0==c)throw c=Error(),c.message="missing-msg: "+a,c;var d=c.message;if(b)for(var e=0;e<b.length;e++){var f=c.placeholders[e+1];if(!f)throw c=Error(),c.message="Bad placeholder "+e+" for message id "+a,c;f=c.placeholders[e+1].content;d=d.replace(f,b[e])}return d};
+cvox.TestMsgs.prototype.getNumber=function(a){return""+a};cvox.HostFactory.msgsConstructor=cvox.TestMsgs;cvox.ChromeVox.initDocument();
diff --git a/StoneIsland/platforms/android/assets/www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js b/StoneIsland/platforms/android/assets/www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js
new file mode 100644
index 00000000..f5d0aaf7
--- /dev/null
+++ b/StoneIsland/platforms/android/assets/www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js
@@ -0,0 +1,53 @@
+cordova.define("phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications", function(require, exports, module) {
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+/**
+ * Mobile Accessibility Notification event constants
+ */
+module.exports = {
+ /* MobileAccessibility window events */
+ SCREEN_READER_STATUS_CHANGED : "screenreaderstatuschanged",
+ CLOSED_CAPTIONING_STATUS_CHANGED : "closedcaptioningstatuschanged",
+ GUIDED_ACCESS_STATUS_CHANGED : "guidedaccessstatuschanged",
+ INVERT_COLORS_STATUS_CHANGED : "invertcolorsstatuschanged",
+ MONO_AUDIO_STATUS_CHANGED : "monoaudiostatuschanged",
+ REDUCE_MOTION_STATUS_CHANGED : "reducemotionstatuschanged",
+ TOUCH_EXPLORATION_STATUS_CHANGED : "touchexplorationstatechanged",
+ BOLD_TEXT_STATUS_CHANGED : "boldtextstatuschanged",
+ DARKER_SYSTEM_COLORS_STATUS_CHANGED : "darkersystemcolorsstatuschanged",
+ GRAYSCALE_STATUS_CHANGED : "grayscalestatuschanged",
+ REDUCE_TRANSPARENCY_STATUS_CHANGED : "reducetransparencystatuschanged",
+ SPEAK_SCREEN_STATUS_CHANGED : "speakscreenstatuschanged",
+ SPEAK_SELECTION_STATUS_CHANGED : "speakselectionstatuschanged",
+ SWITCH_CONTROL_STATUS_CHANGED : "switchcontrolstatuschanged",
+
+ /* iOS specific UIAccessibilityNotifications */
+ SCREEN_CHANGED : 1000,
+ LAYOUT_CHANGED : 1001,
+ ANNOUNCEMENT : 1008,
+ PAGE_SCROLLED : 1009,
+
+ /* Windows specific high contrast event */
+ HIGH_CONTRAST_CHANGED : "highcontrastchanged"
+};
+
+});
diff --git a/StoneIsland/platforms/android/assets/www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js b/StoneIsland/platforms/android/assets/www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js
new file mode 100644
index 00000000..852b8d34
--- /dev/null
+++ b/StoneIsland/platforms/android/assets/www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js
@@ -0,0 +1,502 @@
+cordova.define("phonegap-plugin-mobile-accessibility.mobile-accessibility", function(require, exports, module) {
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+var argscheck = require('cordova/argscheck'),
+ utils = require('cordova/utils'),
+ exec = require('cordova/exec'),
+ device = require('cordova-plugin-device.device'),
+ network = require('cordova-plugin-network-information.network'),
+ connection = require('cordova-plugin-network-information.Connection'),
+ MobileAccessibilityNotifications = require('phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications');
+
+var MobileAccessibility = function() {
+ this._isBoldTextEnabled = false;
+ this._isClosedCaptioningEnabled = false;
+ this._isDarkerSystemColorsEnabled = false;
+ this._isGrayscaleEnabled = false;
+ this._isGuidedAccessEnabled = false;
+ this._isInvertColorsEnabled = false;
+ this._isMonoAudioEnabled = false;
+ this._isReduceMotionEnabled = false;
+ this._isReduceTransparencyEnabled = false;
+ this._isScreenReaderRunning = false;
+ this._isSpeakScreenEnabled = false;
+ this._isSpeakSelectionEnabled = false;
+ this._isSwitchControlRunning = false;
+ this._isTouchExplorationEnabled = false;
+ this._usePreferredTextZoom = false;
+ this._isHighContrastEnabled = false;
+ this._highContrastScheme = undefined;
+
+ // Create new event handlers on the window (returns a channel instance)
+ this.channels = {
+ boldtextstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.BOLD_TEXT_STATUS_CHANGED),
+ closedcaptioningstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.CLOSED_CAPTIONING_STATUS_CHANGED),
+ darkersystemcolorsstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.DARKER_SYSTEM_COLORS_STATUS_CHANGED),
+ grayscalestatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.GRAYSCALE_STATUS_CHANGED),
+ guidedaccessstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.GUIDED_ACCESS_STATUS_CHANGED),
+ invertcolorsstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.INVERT_COLORS_STATUS_CHANGED),
+ monoaudiostatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.MONO_AUDIO_STATUS_CHANGED),
+ reducemotionstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.REDUCE_MOTION_STATUS_CHANGED),
+ reducetransparencystatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.REDUCE_TRANSPARENCY_STATUS_CHANGED),
+ screenreaderstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SCREEN_READER_STATUS_CHANGED),
+ speakscreenstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SPEAK_SCREEN_STATUS_CHANGED),
+ speakselectionstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SPEAK_SELECTION_STATUS_CHANGED),
+ switchcontrolstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SWITCH_CONTROL_STATUS_CHANGED),
+ touchexplorationstatechanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.TOUCH_EXPLORATION_STATUS_CHANGED),
+ highcontrastchanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.HIGH_CONTRAST_CHANGED)
+ };
+ for (var key in this.channels) {
+ this.channels[key].onHasSubscribersChange = MobileAccessibility.onHasSubscribersChange;
+ }
+};
+
+/**
+ * @private
+ * @ignore
+ */
+function handlers() {
+ return mobileAccessibility.channels.boldtextstatuschanged.numHandlers +
+ mobileAccessibility.channels.closedcaptioningstatuschanged.numHandlers +
+ mobileAccessibility.channels.darkersystemcolorsstatuschanged.numHandlers +
+ mobileAccessibility.channels.grayscalestatuschanged.numHandlers +
+ mobileAccessibility.channels.guidedaccessstatuschanged.numHandlers +
+ mobileAccessibility.channels.invertcolorsstatuschanged.numHandlers +
+ mobileAccessibility.channels.monoaudiostatuschanged.numHandlers +
+ mobileAccessibility.channels.reducemotionstatuschanged.numHandlers +
+ mobileAccessibility.channels.reducetransparencystatuschanged.numHandlers +
+ mobileAccessibility.channels.screenreaderstatuschanged.numHandlers +
+ mobileAccessibility.channels.speakscreenstatuschanged.numHandlers +
+ mobileAccessibility.channels.speakselectionstatuschanged.numHandlers +
+ mobileAccessibility.channels.switchcontrolstatuschanged.numHandlers +
+ mobileAccessibility.channels.touchexplorationstatechanged.numHandlers +
+ mobileAccessibility.channels.highcontrastchanged.numHandlers;
+};
+
+/**
+ *
+ * Event handlers for when callback methods get registered for mobileAccessibility.
+ * Keep track of how many handlers we have so we can start and stop the native MobileAccessibility listener
+ * appropriately.
+ * @private
+ * @ignore
+ */
+MobileAccessibility.onHasSubscribersChange = function() {
+ // If we just registered the first handler, make sure native listener is started.
+ if (this.numHandlers === 1 && handlers() === 1) {
+ exec(mobileAccessibility._status, mobileAccessibility._error, "MobileAccessibility", "start", []);
+ } else if (handlers() === 0) {
+ exec(null, null, "MobileAccessibility", "stop", []);
+ }
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility determine if a screen reader is running.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isScreenReaderRunning = function(callback) {
+ exec(function(bool) {
+ mobileAccessibility.activateOrDeactivateChromeVox(bool);
+ callback(Boolean(bool));
+ }, null, "MobileAccessibility", "isScreenReaderRunning", []);
+};
+MobileAccessibility.prototype.isVoiceOverRunning = function(callback) {
+ if (device.platform.toLowerCase() === "ios") {
+ MobileAccessibility.prototype.isScreenReaderRunning(callback);
+ } else {
+ callback(false);
+ }
+};
+MobileAccessibility.prototype.isTalkBackRunning = function(callback) {
+ if (device.platform.toLowerCase() === "android" || device.platform.toLowerCase() === "amazon-fireos") {
+ MobileAccessibility.prototype.isScreenReaderRunning(callback);
+ } else {
+ callback(false);
+ }
+};
+MobileAccessibility.prototype.isChromeVoxActive = function () {
+ return typeof cvox !== "undefined" && cvox.ChromeVox.host.ttsLoaded() && cvox.Api.isChromeVoxActive();
+};
+MobileAccessibility.prototype.activateOrDeactivateChromeVox = function(bool) {
+ if (device.platform !== "Android") return;
+ if (typeof cvox === "undefined") {
+ if (bool) {
+ console.warn('A screen reader is running but ChromeVox has failed to initialize.');
+ if (navigator.connection.type === Connection.UNKNOWN || navigator.connection.type === Connection.NONE) {
+ mobileAccessibility.injectLocalAndroidVoxScript();
+ }
+ }
+ } else {
+ // activate or deactivate ChromeVox based on whether or not or not the screen reader is running.
+ try {
+ cvox.ChromeVox.host.activateOrDeactivateChromeVox(bool);
+ } catch (err) {
+ console.error(err);
+ }
+ }
+
+ if (bool) {
+ if (!mobileAccessibility.hasOrientationChangeListener) {
+ window.addEventListener("orientationchange", mobileAccessibility.onOrientationChange);
+ mobileAccessibility.hasOrientationChangeListener = true;
+ }
+ } else if(mobileAccessibility.hasOrientationChangeListener) {
+ window.removeEventListener("orientationchange", mobileAccessibility.onOrientationChange);
+ mobileAccessibility.hasOrientationChangeListener = false;
+ }
+};
+
+MobileAccessibility.prototype.hasOrientationChangeListener = false;
+MobileAccessibility.prototype.onOrientationChange = function(event) {
+ if (!mobileAccessibility.isChromeVoxActive()) return;
+ cvox.ChromeVox.navigationManager.updateIndicator();
+};
+
+MobileAccessibility.prototype.scriptInjected = false;
+MobileAccessibility.prototype.injectLocalAndroidVoxScript = function() {
+ var versionsplit = device.version.split('.');
+ if (device.platform !== "Android" ||
+ !(versionsplit[0] > 4 || (versionsplit[0] == 4 && versionsplit[1] >= 1)) ||
+ typeof cvox !== "undefined" || mobileAccessibility.scriptInjected) return;
+ var script = document.createElement('script');
+ script.type = 'text/javascript';
+ script.async = true;
+ script.onload = function(){
+ // console.log(this.src + ' has loaded');
+ if (mobileAccessibility.isChromeVoxActive()) {
+ cordova.fireWindowEvent("screenreaderstatuschanged", {
+ isScreenReaderRunning: true
+ });
+ }
+ };
+
+ script.src = (versionsplit[0] > 4 || versionsplit[1] > 3)
+ ? "plugins/com.phonegap.plugin.mobile-accessibility/android/chromeandroidvox.js"
+ : "plugins/com.phonegap.plugin.mobile-accessibility/android/AndroidVox_v1.js";
+ document.getElementsByTagName('head')[0].appendChild(script);
+ mobileAccessibility.scriptInjected = true;
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Bold Text is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isBoldTextEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isBoldTextEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Closed Captioning is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isClosedCaptioningEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isClosedCaptioningEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Darker System Colors are enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isDarkerSystemColorsEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isDarkerSystemColorsEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Grayscale is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isGrayscaleEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isGrayscaleEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Guided Access is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isGuidedAccessEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isGuidedAccessEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if the display colors have been inverted.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isInvertColorsEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isInvertColorsEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Mono Audio is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isMonoAudioEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isMonoAudioEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Reduce Motion is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isReduceMotionEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isReduceMotionEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Reduce Transparency is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isReduceTransparencyEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isReduceTransparencyEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Speak Screen is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isSpeakScreenEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isSpeakScreenEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Speak Selection is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isSpeakSelectionEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isSpeakSelectionEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Switch Control is running.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isSwitchControlRunning = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isSwitchControlRunning", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Touch Exploration is enabled on Android.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isTouchExplorationEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isTouchExplorationEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if High Contrast is enabled on Windows.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isHighContrastEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isHighContrastEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to return the current text zoom percent value for the WebView.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.getTextZoom = function(callback) {
+ exec(callback, null, "MobileAccessibility", "getTextZoom", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to set the current text zoom percent value for the WebView.
+ * @param {Number} textZoom A percentage value by which text in the WebView should be scaled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.setTextZoom = function(textZoom, callback) {
+ exec(callback, null, "MobileAccessibility", "setTextZoom", [textZoom]);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to retrieve the user's preferred text zoom from system settings and apply it to the application WebView.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.updateTextZoom = function(callback) {
+ exec(callback, null, "MobileAccessibility", "updateTextZoom", []);
+};
+
+MobileAccessibility.prototype.usePreferredTextZoom = function(bool) {
+ var currentValue = window.localStorage.getItem("MobileAccessibility.usePreferredTextZoom") === "true";
+
+ if (arguments.length === 0) {
+ return currentValue;
+ }
+
+ if (currentValue != bool) {
+ window.localStorage.setItem("MobileAccessibility.usePreferredTextZoom", bool);
+ }
+
+ var callback = function(){
+ // Wrapping updateTextZoom call in a function to stop
+ // the event parameter propagation. This fixes an error
+ // on resume where cordova tried to call apply() on the
+ // event, expecting a function.
+ mobileAccessibility.updateTextZoom();
+ };
+
+ document.removeEventListener("resume", callback);
+
+ if (bool) {
+ // console.log("We should update the text zoom at this point: " + bool)
+ document.addEventListener("resume", callback, false);
+ mobileAccessibility.updateTextZoom();
+ } else {
+ mobileAccessibility.setTextZoom(100);
+ }
+
+ return Boolean(bool);
+};
+
+MobileAccessibility.prototype.MobileAccessibilityNotifications = MobileAccessibilityNotifications;
+
+/**
+ * Posts a notification with a string for a screen reader to announce, if it is running.
+ * @param {uint} mobileAccessibilityNotification A numeric constant for the type of notification to send. Constants are defined in MobileAccessibility.MobileAccessibilityNotifications.
+ * @param {string} string A string to be announced by a screen reader.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility, when the announcement is finished, the function should expect an object containing the stringValue that was voiced and a boolean indicating that the announcement wasSuccessful.
+ */
+MobileAccessibility.prototype.postNotification = function(mobileAccessibilityNotification, string, callback) {
+ exec(callback, null, "MobileAccessibility", "postNotification", [mobileAccessibilityNotification, string]);
+};
+
+/**
+ * Speaks the given string, and if ChromeVox is active, it will use the specified queueMode and properties.
+ * @param {string} string A string to be announced by a screen reader.
+ * @param {number} [queueMode] Optional number. Valid modes are 0 for flush; 1 for queue.
+ * @param {Object} [properties] Speech properties to use for this utterance.
+ */
+MobileAccessibility.prototype.speak = function(string, queueMode, properties) {
+ if (this.isChromeVoxActive()) {
+ cvox.ChromeVox.tts.speak(string, queueMode, properties);
+ } else {
+ exec(null, null, "MobileAccessibility", "postNotification", [MobileAccessibilityNotifications.ANNOUNCEMENT, string]);
+ }
+}
+
+/**
+ * Stops speech.
+ */
+MobileAccessibility.prototype.stop = function() {
+ if (this.isChromeVoxActive()) {
+ cvox.ChromeVox.tts.stop();
+ } else {
+ exec(null, null, "MobileAccessibility", "postNotification", [MobileAccessibilityNotifications.ANNOUNCEMENT, "\u200b"]);
+ }
+}
+
+/**
+ * Callback from native MobileAccessibility returning an object which describes the status of MobileAccessibility features.
+ *
+ * @param {Object} info
+ * @config {Boolean} [isBoldTextEnabled] Boolean to indicate bold text status (ios).
+ * @config {Boolean} [isClosedCaptioningEnabled] Boolean to indicate closed captioning status.
+ * @config {Boolean} [isDarkerSystemColorsEnabled] Boolean to indicate darker system colors status (ios).
+ * @config {Boolean} [isGrayscaleEnabled] Boolean to indicate grayscale status (ios).
+ * @config {Boolean} [isGuidedAccessEnabled] Boolean to indicate guided access status (ios).
+ * @config {Boolean} [isInvertColorsEnabled] Boolean to indicate invert colors status (ios).
+ * @config {Boolean} [isMonoAudioEnabled] Boolean to indicate mono audio status (ios).
+ * @config {Boolean} [isReduceMotionEnabled] Boolean to indicate reduce motion status (ios).
+ * @config {Boolean} [isReduceTransparencyEnabled] Boolean to indicate reduce transparency status (ios).
+ * @config {Boolean} [isScreenReaderRunning] Boolean to indicate screen reader status.
+ * @config {Boolean} [isSpeakScreenEnabled] Boolean to indicate speak screen status (ios).
+ * @config {Boolean} [isSpeakSelectionEnabled] Boolean to indicate speak selection status (ios).
+ * @config {Boolean} [isSwitchControlRunning] Boolean to indicate switch control status (ios).
+ * @config {Boolean} [isTouchExplorationEnabled] Boolean to indicate touch exploration status (android).
+ */
+MobileAccessibility.prototype._status = function(info) {
+ if (info) {
+ mobileAccessibility.activateOrDeactivateChromeVox(info.isScreenReaderRunning);
+ if (mobileAccessibility._isBoldTextEnabled !== info.isBoldTextEnabled) {
+ mobileAccessibility._isBoldTextEnabled = info.isBoldTextEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.BOLD_TEXT_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isClosedCaptioningEnabled !== info.isClosedCaptioningEnabled) {
+ mobileAccessibility._isClosedCaptioningEnabled = info.isClosedCaptioningEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.CLOSED_CAPTIONING_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isDarkerSystemColorsEnabled !== info.isDarkerSystemColorsEnabled) {
+ mobileAccessibility._isDarkerSystemColorsEnabled = info.isDarkerSystemColorsEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.DARKER_SYSTEM_COLORS_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isGrayscaleEnabled !== info.isGrayscaleEnabled) {
+ mobileAccessibility._isGrayscaleEnabled = info.isGrayscaleEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.GRAYSCALE_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isGuidedAccessEnabled !== info.isGuidedAccessEnabled) {
+ mobileAccessibility._isGuidedAccessEnabled = info.isGuidedAccessEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.GUIDED_ACCESS_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isInvertColorsEnabled !== info.isInvertColorsEnabled) {
+ mobileAccessibility._isInvertColorsEnabled = info.isInvertColorsEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.INVERT_COLORS_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isMonoAudioEnabled !== info.isMonoAudioEnabled) {
+ mobileAccessibility._isMonoAudioEnabled = info.isMonoAudioEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.MONO_AUDIO_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isReduceMotionEnabled !== info.isReduceMotionEnabled) {
+ mobileAccessibility._isReduceMotionEnabled = info.isReduceMotionEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.REDUCE_MOTION_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isReduceTransparencyEnabled !== info.isReduceTransparencyEnabled) {
+ mobileAccessibility._isReduceTransparencyEnabled = info.isReduceTransparencyEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.REDUCE_TRANSPARENCY_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isScreenReaderRunning !== info.isScreenReaderRunning) {
+ mobileAccessibility._isScreenReaderRunning = info.isScreenReaderRunning;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.SCREEN_READER_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isSpeakScreenEnabled !== info.isSpeakScreenEnabled) {
+ mobileAccessibility._isSpeakScreenEnabled = info.isSpeakScreenEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.SPEAK_SCREEN_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isSpeakSelectionEnabled !== info.isSpeakSelectionEnabled) {
+ mobileAccessibility._isSpeakSelectionEnabled = info.isSpeakSelectionEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.SPEAK_SELECTION_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isSwitchControlRunning !== info.isSwitchControlRunning) {
+ mobileAccessibility._isSwitchControlRunning = info.isSwitchControlRunning;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.SWITCH_CONTROL_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isTouchExplorationEnabled !== info.isTouchExplorationEnabled) {
+ mobileAccessibility._isTouchExplorationEnabled = info.isTouchExplorationEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.TOUCH_EXPLORATION_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isHighContrastEnabled !== info.isHighContrastEnabled) {
+ mobileAccessibility._isHighContrastEnabled = info.isHighContrastEnabled;
+ mobileAccessibility._highContrastScheme = info.highContrastScheme;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.HIGH_CONTRAST_CHANGED, info);
+ }
+ }
+};
+
+/**
+ * Error callback for MobileAccessibility start
+ */
+MobileAccessibility.prototype._error = function(e) {
+ console.log("Error initializing MobileAccessibility: " + e);
+};
+
+var mobileAccessibility = new MobileAccessibility();
+
+module.exports = mobileAccessibility;
+
+});
diff --git a/StoneIsland/platforms/android/platform_www/cordova_plugins.js b/StoneIsland/platforms/android/platform_www/cordova_plugins.js
index 770bd946..2b01e07f 100755
--- a/StoneIsland/platforms/android/platform_www/cordova_plugins.js
+++ b/StoneIsland/platforms/android/platform_www/cordova_plugins.js
@@ -128,6 +128,22 @@ module.exports = [
"merges": [
"window.plugins.sim"
]
+ },
+ {
+ "id": "phonegap-plugin-mobile-accessibility.mobile-accessibility",
+ "file": "plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js",
+ "pluginId": "phonegap-plugin-mobile-accessibility",
+ "clobbers": [
+ "window.MobileAccessibility"
+ ]
+ },
+ {
+ "id": "phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications",
+ "file": "plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js",
+ "pluginId": "phonegap-plugin-mobile-accessibility",
+ "clobbers": [
+ "MobileAccessibilityNotifications"
+ ]
}
];
module.exports.metadata =
@@ -147,7 +163,8 @@ module.exports.metadata =
"cordova-plugin-app-name": "1.0.4",
"cordova-plugin-splashscreen": "4.0.3",
"phonegap-plugin-push": "1.9.2",
- "cordova-plugin-sim": "1.3.3"
+ "cordova-plugin-sim": "1.3.3",
+ "phonegap-plugin-mobile-accessibility": "1.0.5-dev"
};
// BOTTOM OF METADATA
}); \ No newline at end of file
diff --git a/StoneIsland/platforms/android/platform_www/plugins/com.phonegap.plugin.mobile-accessibility/android/AndroidVox_v1.js b/StoneIsland/platforms/android/platform_www/plugins/com.phonegap.plugin.mobile-accessibility/android/AndroidVox_v1.js
new file mode 100644
index 00000000..8229b168
--- /dev/null
+++ b/StoneIsland/platforms/android/platform_www/plugins/com.phonegap.plugin.mobile-accessibility/android/AndroidVox_v1.js
@@ -0,0 +1,1778 @@
+// Copyright 2013 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+var goog=goog||{};goog.global=this;goog.exportPath_=function(a,b,c){a=a.split(".");c=c||goog.global;a[0]in c||!c.execScript||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)a.length||void 0===b?c=c[d]?c[d]:c[d]={}:c[d]=b};goog.define=function(a,b){var c=b;goog.exportPath_(a,c)};goog.DEBUG=!1;goog.LOCALE="en";goog.TRUSTED_SITE=!0;goog.provide=function(a){goog.exportPath_(a)};
+goog.setTestOnly=function(a){if(!goog.DEBUG)throw a=a||"",Error("Importing test-only code into non-debug environment"+a?": "+a:".");};goog.getObjectByName=function(a,b){for(var c=a.split("."),d=b||goog.global,e;e=c.shift();)if(goog.isDefAndNotNull(d[e]))d=d[e];else return null;return d};goog.globalize=function(a,b){var c=b||goog.global,d;for(d in a)c[d]=a[d]};
+goog.addDependency=function(a,b,c){if(goog.DEPENDENCIES_ENABLED){var d;a=a.replace(/\\/g,"/");for(var e=goog.dependencies_,f=0;d=b[f];f++)e.nameToPath[d]=a,a in e.pathToNames||(e.pathToNames[a]={}),e.pathToNames[a][d]=!0;for(d=0;b=c[d];d++)a in e.requires||(e.requires[a]={}),e.requires[a][b]=!0}};goog.useStrictRequires=!1;goog.ENABLE_DEBUG_LOADER=!0;goog.require=function(){};goog.basePath="";goog.nullFunction=function(){};goog.identityFunction=function(a){return a};
+goog.abstractMethod=function(){throw Error("unimplemented abstract method");};goog.addSingletonGetter=function(a){a.getInstance=function(){if(a.instance_)return a.instance_;goog.DEBUG&&(goog.instantiatedSingletons_[goog.instantiatedSingletons_.length]=a);return a.instance_=new a}};goog.instantiatedSingletons_=[];goog.DEPENDENCIES_ENABLED=!1;
+goog.DEPENDENCIES_ENABLED&&(goog.included_={},goog.dependencies_={pathToNames:{},nameToPath:{},requires:{},visited:{},written:{}},goog.inHtmlDocument_=function(){var a=goog.global.document;return"undefined"!=typeof a&&"write"in a},goog.findBasePath_=function(){if(goog.global.CLOSURE_BASE_PATH)goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_())for(var a=goog.global.document,a=a.getElementsByTagName("script"),b=a.length-1;0<=b;--b){var c=a[b].src,d=c.lastIndexOf("?"),d=-1==d?
+c.length:d;if("base.js"==c.substr(d-7,7)){goog.basePath=c.substr(0,d-7);break}}},goog.importScript_=function(a){var b=goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_;!goog.dependencies_.written[a]&&b(a)&&(goog.dependencies_.written[a]=!0)},goog.writeScriptTag_=function(a){if(goog.inHtmlDocument_()){var b=goog.global.document;if("complete"==b.readyState){if(b=/\bdeps.js$/.test(a))return!1;throw Error('Cannot write "'+a+'" after document load');}b.write('<script type="text/javascript" src="'+
+a+'">\x3c/script>');return!0}return!1},goog.writeScripts_=function(){function a(e){if(!(e in d.written)){if(!(e in d.visited)&&(d.visited[e]=!0,e in d.requires))for(var g in d.requires[e])if(!goog.isProvided_(g))if(g in d.nameToPath)a(d.nameToPath[g]);else throw Error("Undefined nameToPath for "+g);e in c||(c[e]=!0,b.push(e))}}var b=[],c={},d=goog.dependencies_,e;for(e in goog.included_)d.written[e]||a(e);for(e=0;e<b.length;e++)if(b[e])goog.importScript_(goog.basePath+b[e]);else throw Error("Undefined script input");
+},goog.getPathFromDeps_=function(a){return a in goog.dependencies_.nameToPath?goog.dependencies_.nameToPath[a]:null},goog.findBasePath_(),goog.global.CLOSURE_NO_DEPS||goog.importScript_(goog.basePath+"deps.js"));
+goog.typeOf=function(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";
+else if("function"==b&&"undefined"==typeof a.call)return"object";return b};goog.isDef=function(a){return void 0!==a};goog.isNull=function(a){return null===a};goog.isDefAndNotNull=function(a){return null!=a};goog.isArray=function(a){return"array"==goog.typeOf(a)};goog.isArrayLike=function(a){var b=goog.typeOf(a);return"array"==b||"object"==b&&"number"==typeof a.length};goog.isDateLike=function(a){return goog.isObject(a)&&"function"==typeof a.getFullYear};goog.isString=function(a){return"string"==typeof a};
+goog.isBoolean=function(a){return"boolean"==typeof a};goog.isNumber=function(a){return"number"==typeof a};goog.isFunction=function(a){return"function"==goog.typeOf(a)};goog.isObject=function(a){var b=typeof a;return"object"==b&&null!=a||"function"==b};goog.getUid=function(a){return a[goog.UID_PROPERTY_]||(a[goog.UID_PROPERTY_]=++goog.uidCounter_)};goog.hasUid=function(a){return!!a[goog.UID_PROPERTY_]};goog.removeUid=function(a){"removeAttribute"in a&&a.removeAttribute(goog.UID_PROPERTY_);try{delete a[goog.UID_PROPERTY_]}catch(b){}};
+goog.UID_PROPERTY_="closure_uid_"+(1E9*Math.random()>>>0);goog.uidCounter_=0;goog.getHashCode=goog.getUid;goog.removeHashCode=goog.removeUid;goog.cloneObject=function(a){var b=goog.typeOf(a);if("object"==b||"array"==b){if(a.clone)return a.clone();var b="array"==b?[]:{},c;for(c in a)b[c]=goog.cloneObject(a[c]);return b}return a};goog.bindNative_=function(a,b,c){return a.call.apply(a.bind,arguments)};
+goog.bindJs_=function(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}};goog.bind=function(a,b,c){Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?goog.bind=goog.bindNative_:goog.bind=goog.bindJs_;return goog.bind.apply(null,arguments)};
+goog.partial=function(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var b=c.slice();b.push.apply(b,arguments);return a.apply(this,b)}};goog.mixin=function(a,b){for(var c in b)a[c]=b[c]};goog.now=goog.TRUSTED_SITE&&Date.now||function(){return+new Date};
+goog.globalEval=function(a){if(goog.global.execScript)goog.global.execScript(a,"JavaScript");else if(goog.global.eval)if(null==goog.evalWorksForGlobals_&&(goog.global.eval("var _et_ = 1;"),"undefined"!=typeof goog.global._et_?(delete goog.global._et_,goog.evalWorksForGlobals_=!0):goog.evalWorksForGlobals_=!1),goog.evalWorksForGlobals_)goog.global.eval(a);else{var b=goog.global.document,c=b.createElement("script");c.type="text/javascript";c.defer=!1;c.appendChild(b.createTextNode(a));b.body.appendChild(c);
+b.body.removeChild(c)}else throw Error("goog.globalEval not available");};goog.evalWorksForGlobals_=null;goog.getCssName=function(a,b){var c=function(a){return goog.cssNameMapping_[a]||a},d=function(a){a=a.split("-");for(var b=[],d=0;d<a.length;d++)b.push(c(a[d]));return b.join("-")},d=goog.cssNameMapping_?"BY_WHOLE"==goog.cssNameMappingStyle_?c:d:function(a){return a};return b?a+"-"+d(b):d(a)};goog.setCssNameMapping=function(a,b){goog.cssNameMapping_=a;goog.cssNameMappingStyle_=b};
+goog.getMsg=function(a,b){var c=b||{},d;for(d in c){var e=(""+c[d]).replace(/\$/g,"$$$$");a=a.replace(RegExp("\\{\\$"+d+"\\}","gi"),e)}return a};goog.getMsgWithFallback=function(a){return a};goog.exportSymbol=function(a,b,c){goog.exportPath_(a,b,c)};goog.exportProperty=function(a,b,c){a[b]=c};goog.inherits=function(a,b){function c(){}c.prototype=b.prototype;a.superClass_=b.prototype;a.prototype=new c;a.prototype.constructor=a};
+goog.base=function(a,b,c){var d=arguments.callee.caller;if(goog.DEBUG&&!d)throw Error("arguments.caller not defined. goog.base() expects not to be running in strict mode. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");if(d.superClass_)return d.superClass_.constructor.apply(a,Array.prototype.slice.call(arguments,1));for(var e=Array.prototype.slice.call(arguments,2),f=!1,g=a.constructor;g;g=g.superClass_&&g.superClass_.constructor)if(g.prototype[b]===d)f=!0;else if(f)return g.prototype[b].apply(a,
+e);if(a[b]===d)return a.constructor.prototype[b].apply(a,e);throw Error("goog.base called from a method of one name to a method of a different name");};goog.scope=function(a){a.call(goog.global)};goog.MODIFY_FUNCTION_PROTOTYPES=!0;
+goog.MODIFY_FUNCTION_PROTOTYPES&&(Function.prototype.bind=Function.prototype.bind||function(a,b){if(1<arguments.length){var c=Array.prototype.slice.call(arguments,1);c.unshift(this,a);return goog.bind.apply(null,c)}return goog.bind(this,a)},Function.prototype.partial=function(a){var b=Array.prototype.slice.call(arguments);b.unshift(this,null);return goog.bind.apply(null,b)},Function.prototype.inherits=function(a){goog.inherits(this,a)},Function.prototype.mixin=function(a){goog.mixin(this.prototype,
+a)});var cvox={VERBOSITY_VERBOSE:0,VERBOSITY_BRIEF:1,ChromeVox:function(){}};cvox.ChromeVox.host=null;cvox.ChromeVox.msgs=null;cvox.ChromeVox.isActive=!0;cvox.ChromeVox.version=null;cvox.ChromeVox.earcons=null;cvox.ChromeVox.navigationManager=null;cvox.ChromeVox.serializer=null;cvox.ChromeVox.isStickyOn=!1;cvox.ChromeVox.keyPrefixOn=!1;cvox.ChromeVox.verbosity=cvox.VERBOSITY_VERBOSE;cvox.ChromeVox.typingEcho=0;cvox.ChromeVox.keyEcho={};cvox.ChromeVox.position={};cvox.ChromeVox.isChromeOS=-1!=navigator.userAgent.indexOf("CrOS");
+cvox.ChromeVox.isMac=-1!=navigator.platform.indexOf("Mac");cvox.ChromeVox.modKeyStr=cvox.ChromeVox.isChromeOS?"Shift+Search":cvox.ChromeVox.isMac?"Ctrl+Cmd":"Ctrl+Meta";cvox.ChromeVox.sequenceSwitchKeyCodes=[];cvox.ChromeVox.visitedUrls={};cvox.ChromeVox.markInUserCommand=function(){};cvox.ChromeVox.syncToNode=function(){};cvox.ChromeVox.speakNode=function(){};cvox.ChromeVox.executeUserCommand=function(){};cvox.ChromeVox.entireDocumentIsHidden=!1;
+cvox.ChromeVox.storeOn=function(a){a.isStickyOn=cvox.ChromeVox.isStickyOn;cvox.ChromeVox.navigationManager.storeOn(a)};cvox.ChromeVox.readFrom=function(a){cvox.ChromeVox.isStickyOn=a.isStickyOn;cvox.ChromeVox.navigationManager.readFrom(a)};cvox.Cursor=function(a,b,c){this.node=a;this.index=b;this.text=c};cvox.Cursor.prototype.clone=function(){return new cvox.Cursor(this.node,this.index,this.text)};cvox.Cursor.prototype.copyFrom=function(a){this.node=a.node;this.index=a.index;this.text=a.text};cvox.Cursor.prototype.equals=function(a){return this.node==a.node&&this.index==a.index&&this.text==a.text};goog.debug={};goog.debug.Error=function(a){Error.captureStackTrace?Error.captureStackTrace(this,goog.debug.Error):this.stack=Error().stack||"";a&&(this.message=String(a))};goog.inherits(goog.debug.Error,Error);goog.debug.Error.prototype.name="CustomError";goog.dom={};goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12};goog.string={};goog.string.Unicode={NBSP:"\u00a0"};goog.string.startsWith=function(a,b){return 0==a.lastIndexOf(b,0)};goog.string.endsWith=function(a,b){var c=a.length-b.length;return 0<=c&&a.indexOf(b,c)==c};goog.string.caseInsensitiveStartsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(0,b.length))};goog.string.caseInsensitiveEndsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(a.length-b.length,b.length))};
+goog.string.caseInsensitiveEquals=function(a,b){return a.toLowerCase()==b.toLowerCase()};goog.string.subs=function(a,b){for(var c=a.split("%s"),d="",e=Array.prototype.slice.call(arguments,1);e.length&&1<c.length;)d+=c.shift()+e.shift();return d+c.join("%s")};goog.string.collapseWhitespace=function(a){return a.replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")};goog.string.isEmpty=function(a){return/^[\s\xa0]*$/.test(a)};goog.string.isEmptySafe=function(a){return goog.string.isEmpty(goog.string.makeSafe(a))};
+goog.string.isBreakingWhitespace=function(a){return!/[^\t\n\r ]/.test(a)};goog.string.isAlpha=function(a){return!/[^a-zA-Z]/.test(a)};goog.string.isNumeric=function(a){return!/[^0-9]/.test(a)};goog.string.isAlphaNumeric=function(a){return!/[^a-zA-Z0-9]/.test(a)};goog.string.isSpace=function(a){return" "==a};goog.string.isUnicodeChar=function(a){return 1==a.length&&" "<=a&&"~">=a||"\u0080"<=a&&"\ufffd">=a};goog.string.stripNewlines=function(a){return a.replace(/(\r\n|\r|\n)+/g," ")};
+goog.string.canonicalizeNewlines=function(a){return a.replace(/(\r\n|\r|\n)/g,"\n")};goog.string.normalizeWhitespace=function(a){return a.replace(/\xa0|\s/g," ")};goog.string.normalizeSpaces=function(a){return a.replace(/\xa0|[ \t]+/g," ")};goog.string.collapseBreakingSpaces=function(a){return a.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")};goog.string.trim=function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")};
+goog.string.trimLeft=function(a){return a.replace(/^[\s\xa0]+/,"")};goog.string.trimRight=function(a){return a.replace(/[\s\xa0]+$/,"")};goog.string.caseInsensitiveCompare=function(a,b){var c=String(a).toLowerCase(),d=String(b).toLowerCase();return c<d?-1:c==d?0:1};goog.string.numerateCompareRegExp_=/(\.\d+)|(\d+)|(\D+)/g;
+goog.string.numerateCompare=function(a,b){if(a==b)return 0;if(!a)return-1;if(!b)return 1;for(var c=a.toLowerCase().match(goog.string.numerateCompareRegExp_),d=b.toLowerCase().match(goog.string.numerateCompareRegExp_),e=Math.min(c.length,d.length),f=0;f<e;f++){var g=c[f],h=d[f];if(g!=h)return c=parseInt(g,10),!isNaN(c)&&(d=parseInt(h,10),!isNaN(d)&&c-d)?c-d:g<h?-1:1}return c.length!=d.length?c.length-d.length:a<b?-1:1};goog.string.urlEncode=function(a){return encodeURIComponent(String(a))};
+goog.string.urlDecode=function(a){return decodeURIComponent(a.replace(/\+/g," "))};goog.string.newLineToBr=function(a,b){return a.replace(/(\r\n|\r|\n)/g,b?"<br />":"<br>")};
+goog.string.htmlEscape=function(a,b){if(b)return a.replace(goog.string.amperRe_,"&amp;").replace(goog.string.ltRe_,"&lt;").replace(goog.string.gtRe_,"&gt;").replace(goog.string.quotRe_,"&quot;");if(!goog.string.allRe_.test(a))return a;-1!=a.indexOf("&")&&(a=a.replace(goog.string.amperRe_,"&amp;"));-1!=a.indexOf("<")&&(a=a.replace(goog.string.ltRe_,"&lt;"));-1!=a.indexOf(">")&&(a=a.replace(goog.string.gtRe_,"&gt;"));-1!=a.indexOf('"')&&(a=a.replace(goog.string.quotRe_,"&quot;"));return a};
+goog.string.amperRe_=/&/g;goog.string.ltRe_=/</g;goog.string.gtRe_=/>/g;goog.string.quotRe_=/\"/g;goog.string.allRe_=/[&<>\"]/;goog.string.unescapeEntities=function(a){return goog.string.contains(a,"&")?"document"in goog.global?goog.string.unescapeEntitiesUsingDom_(a):goog.string.unescapePureXmlEntities_(a):a};goog.string.unescapeEntitiesWithDocument=function(a,b){return goog.string.contains(a,"&")?goog.string.unescapeEntitiesUsingDom_(a,b):a};
+goog.string.unescapeEntitiesUsingDom_=function(a,b){var c={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"'},d;d=b?b.createElement("div"):document.createElement("div");return a.replace(goog.string.HTML_ENTITY_PATTERN_,function(a,b){var g=c[a];if(g)return g;if("#"==b.charAt(0)){var h=Number("0"+b.substr(1));isNaN(h)||(g=String.fromCharCode(h))}g||(d.innerHTML=a+" ",g=d.firstChild.nodeValue.slice(0,-1));return c[a]=g})};
+goog.string.unescapePureXmlEntities_=function(a){return a.replace(/&([^;]+);/g,function(a,c){switch(c){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:if("#"==c.charAt(0)){var d=Number("0"+c.substr(1));if(!isNaN(d))return String.fromCharCode(d)}return a}})};goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g;goog.string.whitespaceEscape=function(a,b){return goog.string.newLineToBr(a.replace(/ /g," &#160;"),b)};
+goog.string.stripQuotes=function(a,b){for(var c=b.length,d=0;d<c;d++){var e=1==c?b:b.charAt(d);if(a.charAt(0)==e&&a.charAt(a.length-1)==e)return a.substring(1,a.length-1)}return a};goog.string.truncate=function(a,b,c){c&&(a=goog.string.unescapeEntities(a));a.length>b&&(a=a.substring(0,b-3)+"...");c&&(a=goog.string.htmlEscape(a));return a};
+goog.string.truncateMiddle=function(a,b,c,d){c&&(a=goog.string.unescapeEntities(a));if(d&&a.length>b){d>b&&(d=b);var e=a.length-d;b-=d;a=a.substring(0,b)+"..."+a.substring(e)}else a.length>b&&(e=Math.floor(b/2),d=a.length-e,e+=b%2,a=a.substring(0,e)+"..."+a.substring(d));c&&(a=goog.string.htmlEscape(a));return a};goog.string.specialEscapeChars_={"\x00":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\x0B",'"':'\\"',"\\":"\\\\"};goog.string.jsEscapeCache_={"'":"\\'"};
+goog.string.quote=function(a){a=String(a);if(a.quote)return a.quote();for(var b=['"'],c=0;c<a.length;c++){var d=a.charAt(c),e=d.charCodeAt(0);b[c+1]=goog.string.specialEscapeChars_[d]||(31<e&&127>e?d:goog.string.escapeChar(d))}b.push('"');return b.join("")};goog.string.escapeString=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=goog.string.escapeChar(a.charAt(c));return b.join("")};
+goog.string.escapeChar=function(a){if(a in goog.string.jsEscapeCache_)return goog.string.jsEscapeCache_[a];if(a in goog.string.specialEscapeChars_)return goog.string.jsEscapeCache_[a]=goog.string.specialEscapeChars_[a];var b=a,c=a.charCodeAt(0);if(31<c&&127>c)b=a;else{if(256>c){if(b="\\x",16>c||256<c)b+="0"}else b="\\u",4096>c&&(b+="0");b+=c.toString(16).toUpperCase()}return goog.string.jsEscapeCache_[a]=b};goog.string.toMap=function(a){for(var b={},c=0;c<a.length;c++)b[a.charAt(c)]=!0;return b};
+goog.string.contains=function(a,b){return-1!=a.indexOf(b)};goog.string.countOf=function(a,b){return a&&b?a.split(b).length-1:0};goog.string.removeAt=function(a,b,c){var d=a;0<=b&&b<a.length&&0<c&&(d=a.substr(0,b)+a.substr(b+c,a.length-b-c));return d};goog.string.remove=function(a,b){var c=RegExp(goog.string.regExpEscape(b),"");return a.replace(c,"")};goog.string.removeAll=function(a,b){var c=RegExp(goog.string.regExpEscape(b),"g");return a.replace(c,"")};
+goog.string.regExpEscape=function(a){return String(a).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};goog.string.repeat=function(a,b){return Array(b+1).join(a)};goog.string.padNumber=function(a,b,c){a=goog.isDef(c)?a.toFixed(c):String(a);c=a.indexOf(".");-1==c&&(c=a.length);return goog.string.repeat("0",Math.max(0,b-c))+a};goog.string.makeSafe=function(a){return null==a?"":String(a)};goog.string.buildString=function(a){return Array.prototype.join.call(arguments,"")};
+goog.string.getRandomString=function(){var a=2147483648;return Math.floor(Math.random()*a).toString(36)+Math.abs(Math.floor(Math.random()*a)^goog.now()).toString(36)};
+goog.string.compareVersions=function(a,b){for(var c=0,d=goog.string.trim(String(a)).split("."),e=goog.string.trim(String(b)).split("."),f=Math.max(d.length,e.length),g=0;0==c&&g<f;g++){var h=d[g]||"",k=e[g]||"",l=/(\d*)(\D*)/g,m=/(\d*)(\D*)/g;do{var p=l.exec(h)||["","",""],q=m.exec(k)||["","",""];if(0==p[0].length&&0==q[0].length)break;var c=0==p[1].length?0:parseInt(p[1],10),n=0==q[1].length?0:parseInt(q[1],10),c=goog.string.compareElements_(c,n)||goog.string.compareElements_(0==p[2].length,0==q[2].length)||
+goog.string.compareElements_(p[2],q[2])}while(0==c)}return c};goog.string.compareElements_=function(a,b){return a<b?-1:a>b?1:0};goog.string.HASHCODE_MAX_=4294967296;goog.string.hashCode=function(a){for(var b=0,c=0;c<a.length;++c)b=31*b+a.charCodeAt(c),b%=goog.string.HASHCODE_MAX_;return b};goog.string.uniqueStringCounter_=2147483648*Math.random()|0;goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++};
+goog.string.toNumber=function(a){var b=Number(a);return 0==b&&goog.string.isEmpty(a)?NaN:b};goog.string.isLowerCamelCase=function(a){return/^[a-z]+([A-Z][a-z]*)*$/.test(a)};goog.string.isUpperCamelCase=function(a){return/^([A-Z][a-z]*)+$/.test(a)};goog.string.toCamelCase=function(a){return String(a).replace(/\-([a-z])/g,function(a,c){return c.toUpperCase()})};goog.string.toSelectorCase=function(a){return String(a).replace(/([A-Z])/g,"-$1").toLowerCase()};
+goog.string.toTitleCase=function(a,b){var c=goog.isString(b)?goog.string.regExpEscape(b):"\\s",c=c?"|["+c+"]+":"",c=RegExp("(^"+c+")([a-z])","g");return a.replace(c,function(a,b,c){return b+c.toUpperCase()})};goog.string.parseInt=function(a){isFinite(a)&&(a=String(a));return goog.isString(a)?/^\s*-?0x/i.test(a)?parseInt(a,16):parseInt(a,10):NaN};goog.string.splitLimit=function(a,b,c){a=a.split(b);for(var d=[];0<c&&a.length;)d.push(a.shift()),c--;a.length&&d.push(a.join(b));return d};goog.asserts={};goog.asserts.ENABLE_ASSERTS=goog.DEBUG;goog.asserts.AssertionError=function(a,b){b.unshift(a);goog.debug.Error.call(this,goog.string.subs.apply(null,b));b.shift()};goog.inherits(goog.asserts.AssertionError,goog.debug.Error);goog.asserts.AssertionError.prototype.name="AssertionError";goog.asserts.doAssertFailure_=function(a,b,c,d){var e="Assertion failed";if(c)var e=e+(": "+c),f=d;else a&&(e+=": "+a,f=b);throw new goog.asserts.AssertionError(""+e,f||[]);};
+goog.asserts.assert=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!a&&goog.asserts.doAssertFailure_("",null,b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.fail=function(a,b){if(goog.asserts.ENABLE_ASSERTS)throw new goog.asserts.AssertionError("Failure"+(a?": "+a:""),Array.prototype.slice.call(arguments,1));};
+goog.asserts.assertNumber=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isNumber(a)&&goog.asserts.doAssertFailure_("Expected number but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertString=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isString(a)&&goog.asserts.doAssertFailure_("Expected string but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};
+goog.asserts.assertFunction=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isFunction(a)&&goog.asserts.doAssertFailure_("Expected function but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertObject=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isObject(a)&&goog.asserts.doAssertFailure_("Expected object but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};
+goog.asserts.assertArray=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isArray(a)&&goog.asserts.doAssertFailure_("Expected array but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertBoolean=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isBoolean(a)&&goog.asserts.doAssertFailure_("Expected boolean but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};
+goog.asserts.assertElement=function(a,b,c){!goog.asserts.ENABLE_ASSERTS||goog.isObject(a)&&a.nodeType==goog.dom.NodeType.ELEMENT||goog.asserts.doAssertFailure_("Expected Element but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertInstanceof=function(a,b,c,d){!goog.asserts.ENABLE_ASSERTS||a instanceof b||goog.asserts.doAssertFailure_("instanceof check failed.",null,c,Array.prototype.slice.call(arguments,3));return a};
+goog.asserts.assertObjectPrototypeIsIntact=function(){for(var a in Object.prototype)goog.asserts.fail(a+" should not be enumerable in Object.prototype.")};goog.array={};goog.NATIVE_ARRAY_PROTOTYPES=goog.TRUSTED_SITE;goog.array.peek=function(a){return a[a.length-1]};goog.array.ARRAY_PROTOTYPE_=Array.prototype;
+goog.array.indexOf=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.indexOf?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.indexOf.call(a,b,c)}:function(a,b,c){c=null==c?0:0>c?Math.max(0,a.length+c):c;if(goog.isString(a))return goog.isString(b)&&1==b.length?a.indexOf(b,c):-1;for(;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1};
+goog.array.lastIndexOf=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.lastIndexOf?function(a,b,c){goog.asserts.assert(null!=a.length);c=null==c?a.length-1:c;return goog.array.ARRAY_PROTOTYPE_.lastIndexOf.call(a,b,c)}:function(a,b,c){c=null==c?a.length-1:c;0>c&&(c=Math.max(0,a.length+c));if(goog.isString(a))return goog.isString(b)&&1==b.length?a.lastIndexOf(b,c):-1;for(;0<=c;c--)if(c in a&&a[c]===b)return c;return-1};
+goog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.forEach?function(a,b,c){goog.asserts.assert(null!=a.length);goog.array.ARRAY_PROTOTYPE_.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)f in e&&b.call(c,e[f],f,a)};goog.array.forEachRight=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,d=d-1;0<=d;--d)d in e&&b.call(c,e[d],d,a)};
+goog.array.filter=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.filter?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.filter.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=[],f=0,g=goog.isString(a)?a.split(""):a,h=0;h<d;h++)if(h in g){var k=g[h];b.call(c,k,h,a)&&(e[f++]=k)}return e};
+goog.array.map=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.map?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.map.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=Array(d),f=goog.isString(a)?a.split(""):a,g=0;g<d;g++)g in f&&(e[g]=b.call(c,f[g],g,a));return e};
+goog.array.reduce=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.reduce?function(a,b,c,d){goog.asserts.assert(null!=a.length);d&&(b=goog.bind(b,d));return goog.array.ARRAY_PROTOTYPE_.reduce.call(a,b,c)}:function(a,b,c,d){var e=c;goog.array.forEach(a,function(c,g){e=b.call(d,e,c,g,a)});return e};
+goog.array.reduceRight=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.reduceRight?function(a,b,c,d){goog.asserts.assert(null!=a.length);d&&(b=goog.bind(b,d));return goog.array.ARRAY_PROTOTYPE_.reduceRight.call(a,b,c)}:function(a,b,c,d){var e=c;goog.array.forEachRight(a,function(c,g){e=b.call(d,e,c,g,a)});return e};
+goog.array.some=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.some?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.some.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return!0;return!1};
+goog.array.every=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.every?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.every.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&!b.call(c,e[f],f,a))return!1;return!0};goog.array.count=function(a,b,c){var d=0;goog.array.forEach(a,function(a,f,g){b.call(c,a,f,g)&&++d},c);return d};
+goog.array.find=function(a,b,c){b=goog.array.findIndex(a,b,c);return 0>b?null:goog.isString(a)?a.charAt(b):a[b]};goog.array.findIndex=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return f;return-1};goog.array.findRight=function(a,b,c){b=goog.array.findIndexRight(a,b,c);return 0>b?null:goog.isString(a)?a.charAt(b):a[b]};
+goog.array.findIndexRight=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,d=d-1;0<=d;d--)if(d in e&&b.call(c,e[d],d,a))return d;return-1};goog.array.contains=function(a,b){return 0<=goog.array.indexOf(a,b)};goog.array.isEmpty=function(a){return 0==a.length};goog.array.clear=function(a){if(!goog.isArray(a))for(var b=a.length-1;0<=b;b--)delete a[b];a.length=0};goog.array.insert=function(a,b){goog.array.contains(a,b)||a.push(b)};
+goog.array.insertAt=function(a,b,c){goog.array.splice(a,c,0,b)};goog.array.insertArrayAt=function(a,b,c){goog.partial(goog.array.splice,a,c,0).apply(null,b)};goog.array.insertBefore=function(a,b,c){var d;2==arguments.length||0>(d=goog.array.indexOf(a,c))?a.push(b):goog.array.insertAt(a,b,d)};goog.array.remove=function(a,b){var c=goog.array.indexOf(a,b),d;(d=0<=c)&&goog.array.removeAt(a,c);return d};
+goog.array.removeAt=function(a,b){goog.asserts.assert(null!=a.length);return 1==goog.array.ARRAY_PROTOTYPE_.splice.call(a,b,1).length};goog.array.removeIf=function(a,b,c){b=goog.array.findIndex(a,b,c);return 0<=b?(goog.array.removeAt(a,b),!0):!1};goog.array.concat=function(a){return goog.array.ARRAY_PROTOTYPE_.concat.apply(goog.array.ARRAY_PROTOTYPE_,arguments)};goog.array.toArray=function(a){var b=a.length;if(0<b){for(var c=Array(b),d=0;d<b;d++)c[d]=a[d];return c}return[]};goog.array.clone=goog.array.toArray;
+goog.array.extend=function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c],e;if(goog.isArray(d)||(e=goog.isArrayLike(d))&&Object.prototype.hasOwnProperty.call(d,"callee"))a.push.apply(a,d);else if(e)for(var f=a.length,g=d.length,h=0;h<g;h++)a[f+h]=d[h];else a.push(d)}};goog.array.splice=function(a,b,c,d){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.splice.apply(a,goog.array.slice(arguments,1))};
+goog.array.slice=function(a,b,c){goog.asserts.assert(null!=a.length);return 2>=arguments.length?goog.array.ARRAY_PROTOTYPE_.slice.call(a,b):goog.array.ARRAY_PROTOTYPE_.slice.call(a,b,c)};goog.array.removeDuplicates=function(a,b,c){b=b||a;var d=function(){return goog.isObject(g)?"o"+goog.getUid(g):(typeof g).charAt(0)+g};c=c||d;for(var d={},e=0,f=0;f<a.length;){var g=a[f++],h=c(g);Object.prototype.hasOwnProperty.call(d,h)||(d[h]=!0,b[e++]=g)}b.length=e};
+goog.array.binarySearch=function(a,b,c){return goog.array.binarySearch_(a,c||goog.array.defaultCompare,!1,b)};goog.array.binarySelect=function(a,b,c){return goog.array.binarySearch_(a,b,!0,void 0,c)};goog.array.binarySearch_=function(a,b,c,d,e){for(var f=0,g=a.length,h;f<g;){var k=f+g>>1,l;l=c?b.call(e,a[k],k,a):b(d,a[k]);0<l?f=k+1:(g=k,h=!l)}return h?f:~f};goog.array.sort=function(a,b){goog.asserts.assert(null!=a.length);goog.array.ARRAY_PROTOTYPE_.sort.call(a,b||goog.array.defaultCompare)};
+goog.array.stableSort=function(a,b){function c(a,b){return e(a.value,b.value)||a.index-b.index}for(var d=0;d<a.length;d++)a[d]={index:d,value:a[d]};var e=b||goog.array.defaultCompare;goog.array.sort(a,c);for(d=0;d<a.length;d++)a[d]=a[d].value};goog.array.sortObjectsByKey=function(a,b,c){var d=c||goog.array.defaultCompare;goog.array.sort(a,function(a,c){return d(a[b],c[b])})};
+goog.array.isSorted=function(a,b,c){b=b||goog.array.defaultCompare;for(var d=1;d<a.length;d++){var e=b(a[d-1],a[d]);if(0<e||0==e&&c)return!1}return!0};goog.array.equals=function(a,b,c){if(!goog.isArrayLike(a)||!goog.isArrayLike(b)||a.length!=b.length)return!1;var d=a.length;c=c||goog.array.defaultCompareEquality;for(var e=0;e<d;e++)if(!c(a[e],b[e]))return!1;return!0};goog.array.compare=function(a,b,c){return goog.array.equals(a,b,c)};
+goog.array.compare3=function(a,b,c){c=c||goog.array.defaultCompare;for(var d=Math.min(a.length,b.length),e=0;e<d;e++){var f=c(a[e],b[e]);if(0!=f)return f}return goog.array.defaultCompare(a.length,b.length)};goog.array.defaultCompare=function(a,b){return a>b?1:a<b?-1:0};goog.array.defaultCompareEquality=function(a,b){return a===b};goog.array.binaryInsert=function(a,b,c){c=goog.array.binarySearch(a,b,c);return 0>c?(goog.array.insertAt(a,b,-(c+1)),!0):!1};
+goog.array.binaryRemove=function(a,b,c){b=goog.array.binarySearch(a,b,c);return 0<=b?goog.array.removeAt(a,b):!1};goog.array.bucket=function(a,b,c){for(var d={},e=0;e<a.length;e++){var f=a[e],g=b.call(c,f,e,a);goog.isDef(g)&&(g=d[g]||(d[g]=[]),g.push(f))}return d};goog.array.toObject=function(a,b,c){var d={};goog.array.forEach(a,function(e,f){d[b.call(c,e,f,a)]=e});return d};
+goog.array.range=function(a,b,c){var d=[],e=0,f=a;c=c||1;void 0!==b&&(e=a,f=b);if(0>c*(f-e))return[];if(0<c)for(a=e;a<f;a+=c)d.push(a);else for(a=e;a>f;a+=c)d.push(a);return d};goog.array.repeat=function(a,b){for(var c=[],d=0;d<b;d++)c[d]=a;return c};goog.array.flatten=function(a){for(var b=[],c=0;c<arguments.length;c++){var d=arguments[c];goog.isArray(d)?b.push.apply(b,goog.array.flatten.apply(null,d)):b.push(d)}return b};
+goog.array.rotate=function(a,b){goog.asserts.assert(null!=a.length);a.length&&(b%=a.length,0<b?goog.array.ARRAY_PROTOTYPE_.unshift.apply(a,a.splice(-b,b)):0>b&&goog.array.ARRAY_PROTOTYPE_.push.apply(a,a.splice(0,-b)));return a};goog.array.moveItem=function(a,b,c){goog.asserts.assert(0<=b&&b<a.length);goog.asserts.assert(0<=c&&c<a.length);b=goog.array.ARRAY_PROTOTYPE_.splice.call(a,b,1);goog.array.ARRAY_PROTOTYPE_.splice.call(a,c,0,b[0])};
+goog.array.zip=function(a){if(!arguments.length)return[];for(var b=[],c=0;;c++){for(var d=[],e=0;e<arguments.length;e++){var f=arguments[e];if(c>=f.length)return b;d.push(f[c])}b.push(d)}};goog.array.shuffle=function(a,b){for(var c=b||Math.random,d=a.length-1;0<d;d--){var e=Math.floor(c()*(d+1)),f=a[d];a[d]=a[e];a[e]=f}};goog.math={};goog.math.randomInt=function(a){return Math.floor(Math.random()*a)};goog.math.uniformRandom=function(a,b){return a+Math.random()*(b-a)};goog.math.clamp=function(a,b,c){return Math.min(Math.max(a,b),c)};goog.math.modulo=function(a,b){var c=a%b;return 0>c*b?c+b:c};goog.math.lerp=function(a,b,c){return a+c*(b-a)};goog.math.nearlyEquals=function(a,b,c){return Math.abs(a-b)<=(c||1E-6)};goog.math.standardAngle=function(a){return goog.math.modulo(a,360)};
+goog.math.toRadians=function(a){return a*Math.PI/180};goog.math.toDegrees=function(a){return 180*a/Math.PI};goog.math.angleDx=function(a,b){return b*Math.cos(goog.math.toRadians(a))};goog.math.angleDy=function(a,b){return b*Math.sin(goog.math.toRadians(a))};goog.math.angle=function(a,b,c,d){return goog.math.standardAngle(goog.math.toDegrees(Math.atan2(d-b,c-a)))};goog.math.angleDifference=function(a,b){var c=goog.math.standardAngle(b)-goog.math.standardAngle(a);180<c?c-=360:-180>=c&&(c=360+c);return c};
+goog.math.sign=function(a){return 0==a?0:0>a?-1:1};goog.math.longestCommonSubsequence=function(a,b,c,d){c=c||function(a,b){return a==b};d=d||function(b){return a[b]};for(var e=a.length,f=b.length,g=[],h=0;h<e+1;h++)g[h]=[],g[h][0]=0;for(var k=0;k<f+1;k++)g[0][k]=0;for(h=1;h<=e;h++)for(k=1;k<=f;k++)c(a[h-1],b[k-1])?g[h][k]=g[h-1][k-1]+1:g[h][k]=Math.max(g[h-1][k],g[h][k-1]);for(var l=[],h=e,k=f;0<h&&0<k;)c(a[h-1],b[k-1])?(l.unshift(d(h-1,k-1)),h--,k--):g[h-1][k]>g[h][k-1]?h--:k--;return l};
+goog.math.sum=function(a){return goog.array.reduce(arguments,function(a,c){return a+c},0)};goog.math.average=function(a){return goog.math.sum.apply(null,arguments)/arguments.length};goog.math.sampleVariance=function(a){var b=arguments.length;if(2>b)return 0;var c=goog.math.average.apply(null,arguments);return b=goog.math.sum.apply(null,goog.array.map(arguments,function(a){return Math.pow(a-c,2)}))/(b-1)};
+goog.math.standardDeviation=function(a){return Math.sqrt(goog.math.sampleVariance.apply(null,arguments))};goog.math.isInt=function(a){return isFinite(a)&&0==a%1};goog.math.isFiniteNumber=function(a){return isFinite(a)&&!isNaN(a)};goog.math.safeFloor=function(a,b){goog.asserts.assert(!goog.isDef(b)||0<b);return Math.floor(a+(b||2E-15))};goog.math.safeCeil=function(a,b){goog.asserts.assert(!goog.isDef(b)||0<b);return Math.ceil(a-(b||2E-15))};goog.i18n={};
+goog.i18n.CompactNumberFormatSymbols_af={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0m"},1E7:{other:"00\u00a0m"},1E8:{other:"000\u00a0m"},1E9:{other:"0\u00a0mjd"},1E10:{other:"00\u00a0mjd"},1E11:{other:"000\u00a0mjd"},1E12:{other:"0\u00a0bn"},1E13:{other:"00\u00a0bn"},1E14:{other:"000\u00a0bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 duisend"},1E4:{other:"00 duisend"},1E5:{other:"000 duisend"},1E6:{other:"0 miljoen"},1E7:{other:"00 miljoen"},1E8:{other:"000 miljoen"},
+1E9:{other:"0 miljard"},1E10:{other:"00 miljard"},1E11:{other:"000 miljard"},1E12:{other:"0 biljoen"},1E13:{other:"00 biljoen"},1E14:{other:"000 biljoen"}}};goog.i18n.CompactNumberFormatSymbols_af_ZA=goog.i18n.CompactNumberFormatSymbols_af;
+goog.i18n.CompactNumberFormatSymbols_am={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u123a"},1E4:{other:"00\u00a0\u123a"},1E5:{other:"000\u00a0\u123a"},1E6:{other:"0\u00a0\u121c\u1275\u122d"},1E7:{other:"00\u00a0\u121c\u1275\u122d"},1E8:{other:"000\u00a0\u121c\u1275\u122d"},1E9:{other:"0\u00a0\u1262"},1E10:{other:"00\u00a0\u1262"},1E11:{other:"000\u00a0\u1262"},1E12:{other:"0\u00a0\u1275"},1E13:{other:"00\u00a0\u1275"},1E14:{other:"000\u00a0\u1275"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u123a"},
+1E4:{other:"00 \u123a"},1E5:{other:"000 \u123a"},1E6:{other:"0 \u121a\u120a\u12ee\u1295"},1E7:{other:"00 \u121a\u120a\u12ee\u1295"},1E8:{other:"000 \u121a\u120a\u12ee\u1295"},1E9:{other:"0 \u1262\u120a\u12ee\u1295"},1E10:{other:"00 \u1262\u120a\u12ee\u1295"},1E11:{other:"000 \u1262\u120a\u12ee\u1295"},1E12:{other:"0 \u1275\u122a\u120a\u12ee\u1295"},1E13:{other:"00 \u1275\u122a\u120a\u12ee\u1295"},1E14:{other:"000 \u1275\u122a\u120a\u12ee\u1295"}}};goog.i18n.CompactNumberFormatSymbols_am_ET=goog.i18n.CompactNumberFormatSymbols_am;
+goog.i18n.CompactNumberFormatSymbols_ar={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0623\u0644\u0641"},1E4:{other:"00\u00a0\u0623\u0644\u0641"},1E5:{other:"000\u00a0\u0623\u0644\u0641"},1E6:{other:"0\u00a0\u0645\u0644\u064a\u0648"},1E7:{other:"00\u00a0\u0645\u0644\u064a\u0648"},1E8:{other:"000\u00a0\u0645\u0644\u064a\u0648"},1E9:{other:"0\u00a0\u0628\u0644\u064a\u0648"},1E10:{other:"00\u00a0\u0628\u0644\u064a\u0648"},1E11:{other:"000\u00a0\u0628\u0644\u064a\u0648"},1E12:{other:"0\u00a0\u062a\u0631\u0644\u064a\u0648"},
+1E13:{other:"00\u00a0\u062a\u0631\u0644\u064a\u0648"},1E14:{other:"000\u00a0\u062a\u0631\u0644\u064a\u0648"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0623\u0644\u0641"},1E4:{other:"00 \u0623\u0644\u0641"},1E5:{other:"000 \u0623\u0644\u0641"},1E6:{other:"0 \u0645\u0644\u064a\u0648\u0646"},1E7:{other:"00 \u0645\u0644\u064a\u0648\u0646"},1E8:{other:"000 \u0645\u0644\u064a\u0648\u0646"},1E9:{other:"0 \u0628\u0644\u064a\u0648\u0646"},1E10:{other:"00 \u0628\u0644\u064a\u0648\u0646"},1E11:{other:"000 \u0628\u0644\u064a\u0648\u0646"},
+1E12:{other:"0 \u062a\u0631\u064a\u0644\u064a\u0648\u0646"},1E13:{other:"00 \u062a\u0631\u064a\u0644\u064a\u0648\u0646"},1E14:{other:"000 \u062a\u0631\u064a\u0644\u064a\u0648\u0646"}}};goog.i18n.CompactNumberFormatSymbols_ar_001=goog.i18n.CompactNumberFormatSymbols_ar;goog.i18n.CompactNumberFormatSymbols_ar_EG=goog.i18n.CompactNumberFormatSymbols_ar;
+goog.i18n.CompactNumberFormatSymbols_bg={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0425"},1E4:{other:"00\u00a0\u0425"},1E5:{other:"000\u00a0\u0425"},1E6:{other:"0\u00a0\u041c"},1E7:{other:"00\u00a0\u041c"},1E8:{other:"000\u00a0\u041c"},1E9:{other:"0\u00a0\u0411"},1E10:{other:"00\u00a0\u0411"},1E11:{other:"000\u00a0\u0411"},1E12:{other:"0\u00a0\u0422"},1E13:{other:"00\u00a0\u0422"},1E14:{other:"000\u00a0\u0422"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0445\u0438\u043b\u044f\u0434\u0438"},
+1E4:{other:"00 \u0445\u0438\u043b\u044f\u0434\u0438"},1E5:{other:"000 \u0445\u0438\u043b\u044f\u0434\u0438"},1E6:{other:"0 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0438\u043b\u0438\u0430\u0440\u0434\u0430"},1E10:{other:"00 \u043c\u0438\u043b\u0438\u0430\u0440\u0434\u0430"},1E11:{other:"000 \u043c\u0438\u043b\u0438\u0430\u0440\u0434\u0430"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},
+1E13:{other:"00 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_bg_BG=goog.i18n.CompactNumberFormatSymbols_bg;
+goog.i18n.CompactNumberFormatSymbols_bn={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u09b9\u09be\u099c\u09be\u09b0"},1E4:{other:"00 \u09b9\u09be\u099c\u09be\u09b0"},1E5:{other:"000 \u09b9\u09be\u099c\u09be\u09b0"},1E6:{other:"0 \u09ae\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},
+1E7:{other:"00 \u09ae\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E8:{other:"000 \u09ae\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E9:{other:"0 \u09ac\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E10:{other:"00 \u09ac\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E11:{other:"000 \u09ac\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E12:{other:"0 \u099f\u09cd\u09b0\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E13:{other:"00 \u099f\u09cd\u09b0\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E14:{other:"000 \u099f\u09cd\u09b0\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"}}};
+goog.i18n.CompactNumberFormatSymbols_bn_BD=goog.i18n.CompactNumberFormatSymbols_bn;goog.i18n.CompactNumberFormatSymbols_br={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_br_FR=goog.i18n.CompactNumberFormatSymbols_br;
+goog.i18n.CompactNumberFormatSymbols_ca={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 milions"},1E7:{other:"00 milions"},
+1E8:{other:"000 milions"},1E9:{other:"0 miliards"},1E10:{other:"00 miliards"},1E11:{other:"000 miliards"},1E12:{other:"0 bilions"},1E13:{other:"00 bilions"},1E14:{other:"000 bilions"}}};goog.i18n.CompactNumberFormatSymbols_ca_AD=goog.i18n.CompactNumberFormatSymbols_ca;goog.i18n.CompactNumberFormatSymbols_ca_ES=goog.i18n.CompactNumberFormatSymbols_ca;
+goog.i18n.CompactNumberFormatSymbols_chr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_chr_US=goog.i18n.CompactNumberFormatSymbols_chr;
+goog.i18n.CompactNumberFormatSymbols_cs={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tis."},1E4:{other:"00\u00a0tis."},1E5:{other:"000\u00a0tis."},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"00 tis\u00edc"},1E5:{other:"000 tis\u00edc"},
+1E6:{other:"0 milion\u016f"},1E7:{other:"00 milion\u016f"},1E8:{other:"000 milion\u016f"},1E9:{other:"0 miliard"},1E10:{other:"00 miliard"},1E11:{other:"000 miliard"},1E12:{other:"0 bilion\u016f"},1E13:{other:"00 bilion\u016f"},1E14:{other:"000 bilion\u016f"}}};goog.i18n.CompactNumberFormatSymbols_cs_CZ=goog.i18n.CompactNumberFormatSymbols_cs;
+goog.i18n.CompactNumberFormatSymbols_cy={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 miliwn"},1E7:{other:"00 miliwn"},1E8:{other:"000 miliwn"},1E9:{other:"0 biliwn"},1E10:{other:"00 biliwn"},
+1E11:{other:"000 biliwn"},1E12:{other:"0 triliwn"},1E13:{other:"00 triliwn"},1E14:{other:"000 triliwn"}}};goog.i18n.CompactNumberFormatSymbols_cy_GB=goog.i18n.CompactNumberFormatSymbols_cy;
+goog.i18n.CompactNumberFormatSymbols_da={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mio"},1E7:{other:"00\u00a0mio"},1E8:{other:"000\u00a0mio"},1E9:{other:"0\u00a0mia"},1E10:{other:"00\u00a0mia"},1E11:{other:"000\u00a0mia"},1E12:{other:"0\u00a0bill"},1E13:{other:"00\u00a0bill"},1E14:{other:"000\u00a0bill"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusind"},1E4:{other:"00 tusind"},1E5:{other:"000 tusind"},1E6:{other:"0 millioner"},1E7:{other:"00 millioner"},
+1E8:{other:"000 millioner"},1E9:{other:"0 milliarder"},1E10:{other:"00 milliarder"},1E11:{other:"000 milliarder"},1E12:{other:"0 billioner"},1E13:{other:"00 billioner"},1E14:{other:"000 billioner"}}};goog.i18n.CompactNumberFormatSymbols_da_DK=goog.i18n.CompactNumberFormatSymbols_da;
+goog.i18n.CompactNumberFormatSymbols_de={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 Tausend"},1E4:{other:"00 Tausend"},1E5:{other:"000 Tausend"},1E6:{other:"0 Millionen"},1E7:{other:"00 Millionen"},
+1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};
+goog.i18n.CompactNumberFormatSymbols_de_AT={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 Tausend"},1E4:{other:"00 Tausend"},1E5:{other:"000 Tausend"},1E6:{other:"0 Millionen"},1E7:{other:"00 Millionen"},
+1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};goog.i18n.CompactNumberFormatSymbols_de_BE=goog.i18n.CompactNumberFormatSymbols_de;
+goog.i18n.CompactNumberFormatSymbols_de_CH={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 Tausend"},1E4:{other:"00 Tausend"},1E5:{other:"000 Tausend"},1E6:{other:"0 Millionen"},1E7:{other:"00 Millionen"},
+1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};goog.i18n.CompactNumberFormatSymbols_de_DE=goog.i18n.CompactNumberFormatSymbols_de;goog.i18n.CompactNumberFormatSymbols_de_LU=goog.i18n.CompactNumberFormatSymbols_de;
+goog.i18n.CompactNumberFormatSymbols_el={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u03c7\u03b9\u03bb."},1E4:{other:"00\u00a0\u03c7\u03b9\u03bb."},1E5:{other:"000\u00a0\u03c7\u03b9\u03bb."},1E6:{other:"0\u00a0\u03b5\u03ba."},1E7:{other:"00\u00a0\u03b5\u03ba."},1E8:{other:"000\u00a0\u03b5\u03ba."},1E9:{other:"0\u00a0\u03b4\u03b9\u03c2"},1E10:{other:"00\u00a0\u03b4\u03b9\u03c2"},1E11:{other:"000\u00a0\u03b4\u03b9\u03c2"},1E12:{other:"0\u00a0\u03c4\u03c1\u03b9\u03c2"},1E13:{other:"00\u00a0\u03c4\u03c1\u03b9\u03c2"},
+1E14:{other:"000\u00a0\u03c4\u03c1\u03b9\u03c2"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u03c7\u03b9\u03bb\u03b9\u03ac\u03b4\u03b5\u03c2"},1E4:{other:"00 \u03c7\u03b9\u03bb\u03b9\u03ac\u03b4\u03b5\u03c2"},1E5:{other:"000 \u03c7\u03b9\u03bb\u03b9\u03ac\u03b4\u03b5\u03c2"},1E6:{other:"0 \u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E7:{other:"00 \u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E8:{other:"000 \u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},
+1E9:{other:"0 \u03b4\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E10:{other:"00 \u03b4\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E11:{other:"000 \u03b4\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E12:{other:"0 \u03c4\u03c1\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E13:{other:"00 \u03c4\u03c1\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},
+1E14:{other:"000 \u03c4\u03c1\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"}}};goog.i18n.CompactNumberFormatSymbols_el_GR=goog.i18n.CompactNumberFormatSymbols_el;
+goog.i18n.CompactNumberFormatSymbols_en={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_AS=goog.i18n.CompactNumberFormatSymbols_en;
+goog.i18n.CompactNumberFormatSymbols_en_AU={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_Dsrt_US=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_FM=goog.i18n.CompactNumberFormatSymbols_en;
+goog.i18n.CompactNumberFormatSymbols_en_GB={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_GU=goog.i18n.CompactNumberFormatSymbols_en;
+goog.i18n.CompactNumberFormatSymbols_en_IE={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};
+goog.i18n.CompactNumberFormatSymbols_en_IN={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_MH=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_MP=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_PR=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_PW=goog.i18n.CompactNumberFormatSymbols_en;
+goog.i18n.CompactNumberFormatSymbols_en_SG={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_TC=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_UM=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_US=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_VG=goog.i18n.CompactNumberFormatSymbols_en;
+goog.i18n.CompactNumberFormatSymbols_en_VI=goog.i18n.CompactNumberFormatSymbols_en;
+goog.i18n.CompactNumberFormatSymbols_en_ZA={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};
+goog.i18n.CompactNumberFormatSymbols_es={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00\u00a0K\u00a0M"},1E11:{other:"000\u00a0K\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 millones"},
+1E7:{other:"00 millones"},1E8:{other:"000 millones"},1E9:{other:"0 millardos"},1E10:{other:"00 millardos"},1E11:{other:"000 millardos"},1E12:{other:"0 billones"},1E13:{other:"00 billones"},1E14:{other:"000 billones"}}};
+goog.i18n.CompactNumberFormatSymbols_es_419={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00k"},1E5:{other:"000k"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0k\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 millones"},1E7:{other:"00 millones"},1E8:{other:"000 millones"},
+1E9:{other:"0 millardos"},1E10:{other:"00 millardos"},1E11:{other:"000 millardos"},1E12:{other:"0 billones"},1E13:{other:"00 billones"},1E14:{other:"000 billones"}}};goog.i18n.CompactNumberFormatSymbols_es_EA=goog.i18n.CompactNumberFormatSymbols_es;goog.i18n.CompactNumberFormatSymbols_es_ES=goog.i18n.CompactNumberFormatSymbols_es;goog.i18n.CompactNumberFormatSymbols_es_IC=goog.i18n.CompactNumberFormatSymbols_es;
+goog.i18n.CompactNumberFormatSymbols_et={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tuh"},1E4:{other:"00\u00a0tuh"},1E5:{other:"000\u00a0tuh"},1E6:{other:"0\u00a0mln"},1E7:{other:"00\u00a0mln"},1E8:{other:"000\u00a0mln"},1E9:{other:"0\u00a0mld"},1E10:{other:"00\u00a0mld"},1E11:{other:"000\u00a0mld"},1E12:{other:"0\u00a0trl"},1E13:{other:"00\u00a0trl"},1E14:{other:"000\u00a0trl"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tuhat"},1E4:{other:"00 tuhat"},1E5:{other:"000 tuhat"},1E6:{other:"0 miljonit"},
+1E7:{other:"00 miljonit"},1E8:{other:"000 miljonit"},1E9:{other:"0 miljardit"},1E10:{other:"00 miljardit"},1E11:{other:"000 miljardit"},1E12:{other:"0 triljonit"},1E13:{other:"00 triljonit"},1E14:{other:"000 triljonit"}}};goog.i18n.CompactNumberFormatSymbols_et_EE=goog.i18n.CompactNumberFormatSymbols_et;
+goog.i18n.CompactNumberFormatSymbols_eu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0 milioi"},1E7:{other:"00 milioi"},1E8:{other:"000 milioi"},1E9:{other:"0000 milioi"},
+1E10:{other:"00000 milioi"},1E11:{other:"000000 milioi"},1E12:{other:"0 bilioi"},1E13:{other:"00 bilioi"},1E14:{other:"000 bilioi"}}};goog.i18n.CompactNumberFormatSymbols_eu_ES=goog.i18n.CompactNumberFormatSymbols_eu;
+goog.i18n.CompactNumberFormatSymbols_fa={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0647\u0632\u0627\u0631"},1E4:{other:"00 \u0647\u0632\u0627\u0631"},1E5:{other:"000 \u0647\u0632\u0627\u0631"},1E6:{other:"0 \u0645\u06cc\u0644\u06cc\u0648\u0646"},
+1E7:{other:"00 \u0645\u06cc\u0644\u06cc\u0648\u0646"},1E8:{other:"000 \u0645\u06cc\u0644\u06cc\u0648\u0646"},1E9:{other:"0 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E10:{other:"00 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E11:{other:"000 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E12:{other:"0 \u0647\u0632\u0627\u0631 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E13:{other:"00 \u0647\u0632\u0627\u0631 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E14:{other:"000 \u0647\u0632\u0627\u0631 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"}}};
+goog.i18n.CompactNumberFormatSymbols_fa_IR=goog.i18n.CompactNumberFormatSymbols_fa;
+goog.i18n.CompactNumberFormatSymbols_fi={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0t."},1E4:{other:"00\u00a0t."},1E5:{other:"000\u00a0t."},1E6:{other:"0\u00a0milj."},1E7:{other:"00\u00a0milj."},1E8:{other:"000\u00a0milj."},1E9:{other:"0\u00a0mrd."},1E10:{other:"00\u00a0mrd."},1E11:{other:"000\u00a0mrd."},1E12:{other:"0\u00a0bilj."},1E13:{other:"00\u00a0bilj."},1E14:{other:"000\u00a0bilj."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tuhatta"},1E4:{other:"00 tuhatta"},1E5:{other:"000 tuhatta"},
+1E6:{other:"0 miljoonaa"},1E7:{other:"00 miljoonaa"},1E8:{other:"000 miljoonaa"},1E9:{other:"0 miljardia"},1E10:{other:"00 miljardia"},1E11:{other:"000 miljardia"},1E12:{other:"0 biljoonaa"},1E13:{other:"00 biljoonaa"},1E14:{other:"000 biljoonaa"}}};goog.i18n.CompactNumberFormatSymbols_fi_FI=goog.i18n.CompactNumberFormatSymbols_fi;
+goog.i18n.CompactNumberFormatSymbols_fil={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 (na) libo"},1E4:{other:"00 (na) libo"},1E5:{other:"000 (na) libo"},1E6:{other:"0 (na) milyon"},1E7:{other:"00 (na) milyon"},1E8:{other:"000 (na) milyon"},1E9:{other:"0 (na) bilyon"},
+1E10:{other:"00 (na) bilyon"},1E11:{other:"000 (na) bilyon"},1E12:{other:"0 (na) trilyon"},1E13:{other:"00 (na) trilyon"},1E14:{other:"000 (na) trilyon"}}};goog.i18n.CompactNumberFormatSymbols_fil_PH=goog.i18n.CompactNumberFormatSymbols_fil;
+goog.i18n.CompactNumberFormatSymbols_fr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0Md"},1E10:{other:"00\u00a0Md"},1E11:{other:"000\u00a0Md"},1E12:{other:"0\u00a0Bn"},1E13:{other:"00\u00a0Bn"},1E14:{other:"000\u00a0Bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mille"},1E4:{other:"00 mille"},1E5:{other:"000 mille"},1E6:{other:"0 millions"},1E7:{other:"00 millions"},
+1E8:{other:"000 millions"},1E9:{other:"0 milliards"},1E10:{other:"00 milliards"},1E11:{other:"000 milliards"},1E12:{other:"0 billions"},1E13:{other:"00 billions"},1E14:{other:"000 billions"}}};goog.i18n.CompactNumberFormatSymbols_fr_BL=goog.i18n.CompactNumberFormatSymbols_fr;
+goog.i18n.CompactNumberFormatSymbols_fr_CA={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0Md"},1E10:{other:"00\u00a0Md"},1E11:{other:"000\u00a0Md"},1E12:{other:"0\u00a0Bn"},1E13:{other:"00\u00a0Bn"},1E14:{other:"000\u00a0Bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mille"},1E4:{other:"00 mille"},1E5:{other:"000 mille"},1E6:{other:"0 millions"},1E7:{other:"00 millions"},
+1E8:{other:"000 millions"},1E9:{other:"0 milliards"},1E10:{other:"00 milliards"},1E11:{other:"000 milliards"},1E12:{other:"0 billions"},1E13:{other:"00 billions"},1E14:{other:"000 billions"}}};goog.i18n.CompactNumberFormatSymbols_fr_FR=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_GF=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_GP=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_MC=goog.i18n.CompactNumberFormatSymbols_fr;
+goog.i18n.CompactNumberFormatSymbols_fr_MF=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_MQ=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_RE=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_YT=goog.i18n.CompactNumberFormatSymbols_fr;
+goog.i18n.CompactNumberFormatSymbols_gl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00k"},1E5:{other:"000k"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 mill\u00f3ns"},1E7:{other:"00 mill\u00f3ns"},
+1E8:{other:"000 mill\u00f3ns"},1E9:{other:"0 mil mill\u00f3ns"},1E10:{other:"00 mil mill\u00f3ns"},1E11:{other:"000 mil mill\u00f3ns"},1E12:{other:"0 bill\u00f3ns"},1E13:{other:"00 bill\u00f3ns"},1E14:{other:"000 bill\u00f3ns"}}};goog.i18n.CompactNumberFormatSymbols_gl_ES=goog.i18n.CompactNumberFormatSymbols_gl;
+goog.i18n.CompactNumberFormatSymbols_gsw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tsd"},1E4:{other:"00\u00a0tsd"},1E5:{other:"000\u00a0tsd"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tausend"},1E4:{other:"00 tausend"},1E5:{other:"000 tausend"},1E6:{other:"0 Millionen"},
+1E7:{other:"00 Millionen"},1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};goog.i18n.CompactNumberFormatSymbols_gsw_CH=goog.i18n.CompactNumberFormatSymbols_gsw;
+goog.i18n.CompactNumberFormatSymbols_gu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0ab9\u0a9c\u0abe\u0ab0"},1E4:{other:"00 \u0ab9\u0a9c\u0abe\u0ab0"},1E5:{other:"000 \u0ab9\u0a9c\u0abe\u0ab0"},1E6:{other:"0 \u0aae\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},
+1E7:{other:"00 \u0aae\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E8:{other:"000 \u0aae\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E9:{other:"0 \u0aac\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E10:{other:"00 \u0aac\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E11:{other:"000 \u0aac\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E12:{other:"0 \u0a9f\u0acd\u0ab0\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E13:{other:"00 \u0a9f\u0acd\u0ab0\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E14:{other:"000 \u0a9f\u0acd\u0ab0\u0abf\u0ab2\u0abf\u0aaf\u0aa8"}}};
+goog.i18n.CompactNumberFormatSymbols_gu_IN=goog.i18n.CompactNumberFormatSymbols_gu;goog.i18n.CompactNumberFormatSymbols_haw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_haw_US=goog.i18n.CompactNumberFormatSymbols_haw;
+goog.i18n.CompactNumberFormatSymbols_he={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"\u200f0\u00a0\u05d0\u05dc\u05e3"},1E4:{other:"\u200f00\u00a0\u05d0\u05dc\u05e3"},1E5:{other:"\u200f000\u00a0\u05d0\u05dc\u05e3"},1E6:{other:"\u200f0\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},
+1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"\u200f0 \u05d0\u05dc\u05e3"},1E4:{other:"\u200f00 \u05d0\u05dc\u05e3"},1E5:{other:"\u200f000 \u05d0\u05dc\u05e3"},1E6:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E10:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E11:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},
+1E12:{other:"\u200f0 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E13:{other:"\u200f00 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E14:{other:"\u200f000 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"}}};goog.i18n.CompactNumberFormatSymbols_he_IL=goog.i18n.CompactNumberFormatSymbols_he;
+goog.i18n.CompactNumberFormatSymbols_hi={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0L"},1E6:{other:"00L"},1E7:{other:"0Cr"},1E8:{other:"00Cr"},1E9:{other:"000Cr"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0939\u091c\u093c\u093e\u0930"},1E4:{other:"00 \u0939\u091c\u093c\u093e\u0930"},1E5:{other:"0 \u0932\u093e\u0916"},1E6:{other:"00 \u0932\u093e\u0916"},1E7:{other:"0 \u0915\u0930\u094b\u0921\u093c"},
+1E8:{other:"00 \u0915\u0930\u094b\u0921\u093c"},1E9:{other:"0 \u0905\u0930\u092c"},1E10:{other:"00 \u0905\u0930\u092c"},1E11:{other:"0 \u0916\u0930\u092c"},1E12:{other:"00 \u0916\u0930\u092c"},1E13:{other:"000 \u0916\u0930\u092c"},1E14:{other:"0000 \u0916\u0930\u092c"}}};goog.i18n.CompactNumberFormatSymbols_hi_IN=goog.i18n.CompactNumberFormatSymbols_hi;
+goog.i18n.CompactNumberFormatSymbols_hr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mlr."},1E10:{other:"00\u00a0mlr."},1E11:{other:"000\u00a0mlr."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0 milijuna"},1E7:{other:"00 milijuna"},1E8:{other:"000 milijuna"},
+1E9:{other:"0 milijarda"},1E10:{other:"00 milijarda"},1E11:{other:"000 milijarda"},1E12:{other:"0 bilijuna"},1E13:{other:"00 bilijuna"},1E14:{other:"000 bilijuna"}}};goog.i18n.CompactNumberFormatSymbols_hr_HR=goog.i18n.CompactNumberFormatSymbols_hr;
+goog.i18n.CompactNumberFormatSymbols_hu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0E"},1E4:{other:"00\u00a0E"},1E5:{other:"000\u00a0E"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ezer"},1E4:{other:"00 ezer"},1E5:{other:"000 ezer"},1E6:{other:"0 milli\u00f3"},1E7:{other:"00 milli\u00f3"},
+1E8:{other:"000 milli\u00f3"},1E9:{other:"0 milli\u00e1rd"},1E10:{other:"00 milli\u00e1rd"},1E11:{other:"000 milli\u00e1rd"},1E12:{other:"0 billi\u00f3"},1E13:{other:"00 billi\u00f3"},1E14:{other:"000 billi\u00f3"}}};goog.i18n.CompactNumberFormatSymbols_hu_HU=goog.i18n.CompactNumberFormatSymbols_hu;
+goog.i18n.CompactNumberFormatSymbols_id={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0rb"},1E5:{other:"000\u00a0rb"},1E6:{other:"0\u00a0jt"},1E7:{other:"00\u00a0jt"},1E8:{other:"000\u00a0jt"},1E9:{other:"0\u00a0M"},1E10:{other:"00\u00a0M"},1E11:{other:"000\u00a0M"},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ribu"},1E4:{other:"00 ribu"},1E5:{other:"000 ribu"},1E6:{other:"0 juta"},1E7:{other:"00 juta"},
+1E8:{other:"000 juta"},1E9:{other:"0 miliar"},1E10:{other:"00 miliar"},1E11:{other:"000 miliar"},1E12:{other:"0 triliun"},1E13:{other:"00 triliun"},1E14:{other:"000 triliun"}}};goog.i18n.CompactNumberFormatSymbols_id_ID=goog.i18n.CompactNumberFormatSymbols_id;
+goog.i18n.CompactNumberFormatSymbols_in={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0rb"},1E5:{other:"000\u00a0rb"},1E6:{other:"0\u00a0jt"},1E7:{other:"00\u00a0jt"},1E8:{other:"000\u00a0jt"},1E9:{other:"0\u00a0M"},1E10:{other:"00\u00a0M"},1E11:{other:"000\u00a0M"},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ribu"},1E4:{other:"00 ribu"},1E5:{other:"000 ribu"},1E6:{other:"0 juta"},1E7:{other:"00 juta"},
+1E8:{other:"000 juta"},1E9:{other:"0 miliar"},1E10:{other:"00 miliar"},1E11:{other:"000 miliar"},1E12:{other:"0 triliun"},1E13:{other:"00 triliun"},1E14:{other:"000 triliun"}}};
+goog.i18n.CompactNumberFormatSymbols_is={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u00fe."},1E4:{other:"00\u00a0\u00fe."},1E5:{other:"000\u00a0\u00fe."},1E6:{other:"0\u00a0m."},1E7:{other:"00\u00a0m."},1E8:{other:"000\u00a0m."},1E9:{other:"0\u00a0ma."},1E10:{other:"00\u00a0ma."},1E11:{other:"000\u00a0ma."},1E12:{other:"0\u00a0bn"},1E13:{other:"00\u00a0bn"},1E14:{other:"000\u00a0bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u00fe\u00fasund"},1E4:{other:"00 \u00fe\u00fasund"},1E5:{other:"000 \u00fe\u00fasund"},
+1E6:{other:"0 millj\u00f3nir"},1E7:{other:"00 millj\u00f3nir"},1E8:{other:"000 millj\u00f3nir"},1E9:{other:"0 milljar\u00f0ar"},1E10:{other:"00 milljar\u00f0ar"},1E11:{other:"000 milljar\u00f0ar"},1E12:{other:"0 billj\u00f3nir"},1E13:{other:"00 billj\u00f3nir"},1E14:{other:"000 billj\u00f3nir"}}};goog.i18n.CompactNumberFormatSymbols_is_IS=goog.i18n.CompactNumberFormatSymbols_is;
+goog.i18n.CompactNumberFormatSymbols_it={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mln"},1E7:{other:"00\u00a0Mln"},1E8:{other:"000\u00a0Mln"},1E9:{other:"0\u00a0Mld"},1E10:{other:"00\u00a0Mld"},1E11:{other:"000\u00a0Mld"},1E12:{other:"0\u00a0Bln"},1E13:{other:"00\u00a0Bln"},1E14:{other:"000\u00a0Bln"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 migliaia"},1E4:{other:"00 migliaia"},1E5:{other:"000 migliaia"},1E6:{other:"0 milioni"},1E7:{other:"00 milioni"},
+1E8:{other:"000 milioni"},1E9:{other:"0 miliardi"},1E10:{other:"00 miliardi"},1E11:{other:"000 miliardi"},1E12:{other:"0 bilioni"},1E13:{other:"00 bilioni"},1E14:{other:"000 bilioni"}}};goog.i18n.CompactNumberFormatSymbols_it_IT=goog.i18n.CompactNumberFormatSymbols_it;goog.i18n.CompactNumberFormatSymbols_it_SM=goog.i18n.CompactNumberFormatSymbols_it;
+goog.i18n.CompactNumberFormatSymbols_iw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"\u200f0\u00a0\u05d0\u05dc\u05e3"},1E4:{other:"\u200f00\u00a0\u05d0\u05dc\u05e3"},1E5:{other:"\u200f000\u00a0\u05d0\u05dc\u05e3"},1E6:{other:"\u200f0\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},
+1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"\u200f0 \u05d0\u05dc\u05e3"},1E4:{other:"\u200f00 \u05d0\u05dc\u05e3"},1E5:{other:"\u200f000 \u05d0\u05dc\u05e3"},1E6:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E10:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E11:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},
+1E12:{other:"\u200f0 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E13:{other:"\u200f00 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E14:{other:"\u200f000 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"}}};
+goog.i18n.CompactNumberFormatSymbols_ja={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u5343"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"},1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"},1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0\u5343"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"},
+1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"},1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}}};goog.i18n.CompactNumberFormatSymbols_ja_JP=goog.i18n.CompactNumberFormatSymbols_ja;
+goog.i18n.CompactNumberFormatSymbols_kn={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0cb8\u0cbe\u0cb5\u0cbf\u0cb0"},1E4:{other:"00 \u0cb8\u0cbe\u0cb5\u0cbf\u0cb0"},1E5:{other:"000 \u0cb8\u0cbe\u0cb5\u0cbf\u0cb0"},1E6:{other:"0 \u0cae\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},
+1E7:{other:"00 \u0cae\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E8:{other:"000 \u0cae\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E9:{other:"0 \u0cac\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E10:{other:"00 \u0cac\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E11:{other:"000 \u0cac\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E12:{other:"0 \u0c9f\u0ccd\u0cb0\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd\u200c"},1E13:{other:"00 \u0c9f\u0ccd\u0cb0\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd\u200c"},1E14:{other:"000 \u0c9f\u0ccd\u0cb0\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd\u200c"}}};
+goog.i18n.CompactNumberFormatSymbols_kn_IN=goog.i18n.CompactNumberFormatSymbols_kn;
+goog.i18n.CompactNumberFormatSymbols_ko={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0\ub9cc"},1E5:{other:"00\ub9cc"},1E6:{other:"000\ub9cc"},1E7:{other:"0000\ub9cc"},1E8:{other:"0\uc5b5"},1E9:{other:"00\uc5b5"},1E10:{other:"000\uc5b5"},1E11:{other:"0000\uc5b5"},1E12:{other:"0\uc870"},1E13:{other:"00\uc870"},1E14:{other:"000\uc870"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\ub9cc"},1E5:{other:"00\ub9cc"},1E6:{other:"000\ub9cc"},1E7:{other:"0000\ub9cc"},1E8:{other:"0\uc5b5"},
+1E9:{other:"00\uc5b5"},1E10:{other:"000\uc5b5"},1E11:{other:"0000\uc5b5"},1E12:{other:"0\uc870"},1E13:{other:"00\uc870"},1E14:{other:"000\uc870"}}};goog.i18n.CompactNumberFormatSymbols_ko_KR=goog.i18n.CompactNumberFormatSymbols_ko;
+goog.i18n.CompactNumberFormatSymbols_ln={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_ln_CD=goog.i18n.CompactNumberFormatSymbols_ln;
+goog.i18n.CompactNumberFormatSymbols_lt={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0G"},1E10:{other:"00\u00a0G"},1E11:{other:"000\u00a0G"},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 t\u016bkstan\u010di\u0173"},1E4:{other:"00 t\u016bkstan\u010di\u0173"},1E5:{other:"000 t\u016bkstan\u010di\u0173"},
+1E6:{other:"0 milijon\u0173"},1E7:{other:"00 milijon\u0173"},1E8:{other:"000 milijon\u0173"},1E9:{other:"0 milijard\u0173"},1E10:{other:"00 milijard\u0173"},1E11:{other:"000 milijard\u0173"},1E12:{other:"0 trilijon\u0173"},1E13:{other:"00 trilijon\u0173"},1E14:{other:"000 trilijon\u0173"}}};goog.i18n.CompactNumberFormatSymbols_lt_LT=goog.i18n.CompactNumberFormatSymbols_lt;
+goog.i18n.CompactNumberFormatSymbols_lv={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0t\u016bkst."},1E4:{other:"00\u00a0t\u016bkst."},1E5:{other:"000\u00a0t\u016bkst."},1E6:{other:"0\u00a0milj."},1E7:{other:"00\u00a0milj."},1E8:{other:"000\u00a0milj."},1E9:{other:"0\u00a0md"},1E10:{other:"00\u00a0md"},1E11:{other:"000\u00a0md"},1E12:{other:"0\u00a0trilj."},1E13:{other:"00\u00a0trilj."},1E14:{other:"000\u00a0trilj."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 t\u016bksto\u0161i"},1E4:{other:"00 t\u016bksto\u0161i"},
+1E5:{other:"000 t\u016bksto\u0161i"},1E6:{other:"0 miljoni"},1E7:{other:"00 miljoni"},1E8:{other:"000 miljoni"},1E9:{other:"0 miljardi"},1E10:{other:"00 miljardi"},1E11:{other:"000 miljardi"},1E12:{other:"0 trilj."},1E13:{other:"00 trilj."},1E14:{other:"000 trilj."}}};goog.i18n.CompactNumberFormatSymbols_lv_LV=goog.i18n.CompactNumberFormatSymbols_lv;
+goog.i18n.CompactNumberFormatSymbols_ml={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0d06\u0d2f\u0d3f\u0d30\u0d02"},1E4:{other:"00 \u0d06\u0d2f\u0d3f\u0d30\u0d02"},1E5:{other:"000 \u0d06\u0d2f\u0d3f\u0d30\u0d02"},1E6:{other:"0 \u0d26\u0d36\u0d32\u0d15\u0d4d\u0d37\u0d02"},
+1E7:{other:"00 \u0d26\u0d36\u0d32\u0d15\u0d4d\u0d37\u0d02"},1E8:{other:"000 \u0d26\u0d36\u0d32\u0d15\u0d4d\u0d37\u0d02"},1E9:{other:"0 \u0d32\u0d15\u0d4d\u0d37\u0d02 \u0d15\u0d4b\u0d1f\u0d3f"},1E10:{other:"00 \u0d32\u0d15\u0d4d\u0d37\u0d02 \u0d15\u0d4b\u0d1f\u0d3f"},1E11:{other:"000 \u0d32\u0d15\u0d4d\u0d37\u0d02 \u0d15\u0d4b\u0d1f\u0d3f"},1E12:{other:"0 \u0d1f\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u0d2f\u0d7a"},1E13:{other:"00 \u0d1f\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u0d2f\u0d7a"},1E14:{other:"000 \u0d1f\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u0d2f\u0d7a"}}};
+goog.i18n.CompactNumberFormatSymbols_ml_IN=goog.i18n.CompactNumberFormatSymbols_ml;
+goog.i18n.CompactNumberFormatSymbols_mr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0939\u091c\u093e\u0930"},1E4:{other:"00 \u0939\u091c\u093e\u0930"},1E5:{other:"000 \u0939\u091c\u093e\u0930"},1E6:{other:"0 \u0926\u0936\u0932\u0915\u094d\u0937"},
+1E7:{other:"00 \u0926\u0936\u0932\u0915\u094d\u0937"},1E8:{other:"000 \u0926\u0936\u0932\u0915\u094d\u0937"},1E9:{other:"0 \u092e\u0939\u093e\u092a\u0926\u094d\u092e"},1E10:{other:"00 \u092e\u0939\u093e\u092a\u0926\u094d\u092e"},1E11:{other:"000 \u092e\u0939\u093e\u092a\u0926\u094d\u092e"},1E12:{other:"0 \u0926\u0939\u093e \u0916\u0930\u092c"},1E13:{other:"00 \u0926\u0939\u093e \u0916\u0930\u092c"},1E14:{other:"000 \u0926\u0939\u093e \u0916\u0930\u092c"}}};
+goog.i18n.CompactNumberFormatSymbols_mr_IN=goog.i18n.CompactNumberFormatSymbols_mr;
+goog.i18n.CompactNumberFormatSymbols_ms={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0J"},1E7:{other:"00J"},1E8:{other:"000J"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ribu"},1E4:{other:"00 ribu"},1E5:{other:"000 ribu"},1E6:{other:"0 juta"},1E7:{other:"00 juta"},1E8:{other:"000 juta"},1E9:{other:"0 bilion"},1E10:{other:"00 bilion"},
+1E11:{other:"000 bilion"},1E12:{other:"0 trilion"},1E13:{other:"00 trilion"},1E14:{other:"000 trilion"}}};goog.i18n.CompactNumberFormatSymbols_ms_Latn_MY=goog.i18n.CompactNumberFormatSymbols_ms;goog.i18n.CompactNumberFormatSymbols_mt={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};
+goog.i18n.CompactNumberFormatSymbols_mt_MT=goog.i18n.CompactNumberFormatSymbols_mt;
+goog.i18n.CompactNumberFormatSymbols_nb={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mill"},1E7:{other:"00\u00a0mill"},1E8:{other:"000\u00a0mill"},1E9:{other:"0\u00a0mrd"},1E10:{other:"00\u00a0mrd"},1E11:{other:"000\u00a0mrd"},1E12:{other:"0\u00a0bill"},1E13:{other:"00\u00a0bill"},1E14:{other:"000\u00a0bill"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusen"},1E4:{other:"00 tusen"},1E5:{other:"000 tusen"},1E6:{other:"0 millioner"},1E7:{other:"00 millioner"},
+1E8:{other:"000 millioner"},1E9:{other:"0 milliarder"},1E10:{other:"00 milliarder"},1E11:{other:"000 milliarder"},1E12:{other:"0 billioner"},1E13:{other:"00 billioner"},1E14:{other:"000 billioner"}}};goog.i18n.CompactNumberFormatSymbols_nb_NO=goog.i18n.CompactNumberFormatSymbols_nb;
+goog.i18n.CompactNumberFormatSymbols_nl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0\u00a0mln."},1E7:{other:"00\u00a0mln."},1E8:{other:"000\u00a0mln."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0bln."},1E13:{other:"00\u00a0bln."},1E14:{other:"000\u00a0bln."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 duizend"},1E4:{other:"00 duizend"},1E5:{other:"000 duizend"},1E6:{other:"0 miljoen"},
+1E7:{other:"00 miljoen"},1E8:{other:"000 miljoen"},1E9:{other:"0 miljard"},1E10:{other:"00 miljard"},1E11:{other:"000 miljard"},1E12:{other:"0 biljoen"},1E13:{other:"00 biljoen"},1E14:{other:"000 biljoen"}}};goog.i18n.CompactNumberFormatSymbols_nl_NL=goog.i18n.CompactNumberFormatSymbols_nl;
+goog.i18n.CompactNumberFormatSymbols_no={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mill"},1E7:{other:"00\u00a0mill"},1E8:{other:"000\u00a0mill"},1E9:{other:"0\u00a0mrd"},1E10:{other:"00\u00a0mrd"},1E11:{other:"000\u00a0mrd"},1E12:{other:"0\u00a0bill"},1E13:{other:"00\u00a0bill"},1E14:{other:"000\u00a0bill"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusen"},1E4:{other:"00 tusen"},1E5:{other:"000 tusen"},1E6:{other:"0 millioner"},1E7:{other:"00 millioner"},
+1E8:{other:"000 millioner"},1E9:{other:"0 milliarder"},1E10:{other:"00 milliarder"},1E11:{other:"000 milliarder"},1E12:{other:"0 billioner"},1E13:{other:"00 billioner"},1E14:{other:"000 billioner"}}};goog.i18n.CompactNumberFormatSymbols_or={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};
+goog.i18n.CompactNumberFormatSymbols_or_IN=goog.i18n.CompactNumberFormatSymbols_or;
+goog.i18n.CompactNumberFormatSymbols_pl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tys."},1E4:{other:"00\u00a0tys."},1E5:{other:"000\u00a0tys."},1E6:{other:"0\u00a0mln"},1E7:{other:"00\u00a0mln"},1E8:{other:"000\u00a0mln"},1E9:{other:"0\u00a0mld"},1E10:{other:"00\u00a0mld"},1E11:{other:"000\u00a0mld"},1E12:{other:"0\u00a0bln"},1E13:{other:"00\u00a0bln"},1E14:{other:"000\u00a0bln"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tysi\u0105ca"},1E4:{other:"00 tysi\u0105ca"},1E5:{other:"000 tysi\u0105ca"},
+1E6:{other:"0 miliona"},1E7:{other:"00 miliona"},1E8:{other:"000 miliona"},1E9:{other:"0 miliarda"},1E10:{other:"00 miliarda"},1E11:{other:"000 miliarda"},1E12:{other:"0 biliona"},1E13:{other:"00 biliona"},1E14:{other:"000 biliona"}}};goog.i18n.CompactNumberFormatSymbols_pl_PL=goog.i18n.CompactNumberFormatSymbols_pl;
+goog.i18n.CompactNumberFormatSymbols_pt={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0mil"},1E4:{other:"00\u00a0mil"},1E5:{other:"000\u00a0mil"},1E6:{other:"0\u00a0mi"},1E7:{other:"00\u00a0mi"},1E8:{other:"000\u00a0mi"},1E9:{other:"0\u00a0bi"},1E10:{other:"00\u00a0bi"},1E11:{other:"000\u00a0bi"},1E12:{other:"0\u00a0tri"},1E13:{other:"00\u00a0tri"},1E14:{other:"000\u00a0tri"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 milh\u00f5es"},
+1E7:{other:"00 milh\u00f5es"},1E8:{other:"000 milh\u00f5es"},1E9:{other:"0 bilh\u00f5es"},1E10:{other:"00 bilh\u00f5es"},1E11:{other:"000 bilh\u00f5es"},1E12:{other:"0 trilh\u00f5es"},1E13:{other:"00 trilh\u00f5es"},1E14:{other:"000 trilh\u00f5es"}}};goog.i18n.CompactNumberFormatSymbols_pt_BR=goog.i18n.CompactNumberFormatSymbols_pt;
+goog.i18n.CompactNumberFormatSymbols_pt_PT={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0mil"},1E4:{other:"00\u00a0mil"},1E5:{other:"000\u00a0mil"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0MM"},1E10:{other:"00\u00a0MM"},1E11:{other:"000\u00a0MM"},1E12:{other:"0\u00a0Bi"},1E13:{other:"00\u00a0Bi"},1E14:{other:"000\u00a0Bi"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 milh\u00f5es"},
+1E7:{other:"00 milh\u00f5es"},1E8:{other:"000 milh\u00f5es"},1E9:{other:"0 mil milh\u00f5es"},1E10:{other:"00 mil milh\u00f5es"},1E11:{other:"000 mil milh\u00f5es"},1E12:{other:"0 bili\u00f5es"},1E13:{other:"00 bili\u00f5es"},1E14:{other:"000 bili\u00f5es"}}};
+goog.i18n.CompactNumberFormatSymbols_ro={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 de mii"},1E4:{other:"00 de mii"},1E5:{other:"000 de mii"},1E6:{other:"0 de milioane"},
+1E7:{other:"00 de milioane"},1E8:{other:"000 de milioane"},1E9:{other:"0 de miliarde"},1E10:{other:"00 de miliarde"},1E11:{other:"000 de miliarde"},1E12:{other:"0 de trilioane"},1E13:{other:"00 de trilioane"},1E14:{other:"000 de trilioane"}}};goog.i18n.CompactNumberFormatSymbols_ro_RO=goog.i18n.CompactNumberFormatSymbols_ro;
+goog.i18n.CompactNumberFormatSymbols_ru={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0442\u044b\u0441."},1E4:{other:"00\u00a0\u0442\u044b\u0441."},1E5:{other:"000\u00a0\u0442\u044b\u0441."},1E6:{other:"0\u00a0\u043c\u043b\u043d"},1E7:{other:"00\u00a0\u043c\u043b\u043d"},1E8:{other:"000\u00a0\u043c\u043b\u043d"},1E9:{other:"0\u00a0\u043c\u043b\u0440\u0434"},1E10:{other:"00\u00a0\u043c\u043b\u0440\u0434"},1E11:{other:"000\u00a0\u043c\u043b\u0440\u0434"},1E12:{other:"0\u00a0\u0442\u0440\u043b\u043d"},
+1E13:{other:"00\u00a0\u0442\u0440\u043b\u043d"},1E14:{other:"000\u00a0\u0442\u0440\u043b\u043d"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0442\u044b\u0441\u044f\u0447\u0438"},1E4:{other:"00 \u0442\u044b\u0441\u044f\u0447\u0438"},1E5:{other:"000 \u0442\u044b\u0441\u044f\u0447\u0438"},1E6:{other:"0 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430"},
+1E10:{other:"00 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430"},1E11:{other:"000 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E13:{other:"00 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_ru_RU=goog.i18n.CompactNumberFormatSymbols_ru;
+goog.i18n.CompactNumberFormatSymbols_sk={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tis."},1E4:{other:"00\u00a0tis."},1E5:{other:"000\u00a0tis."},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tis\u00edc"},1E4:{other:"00 tis\u00edc"},1E5:{other:"000 tis\u00edc"},
+1E6:{other:"0 mili\u00f3nov"},1E7:{other:"00 mili\u00f3nov"},1E8:{other:"000 mili\u00f3nov"},1E9:{other:"0 miliard"},1E10:{other:"00 mili\u00e1rd"},1E11:{other:"000 mili\u00e1rd"},1E12:{other:"0 bili\u00f3nov"},1E13:{other:"00 bili\u00f3nov"},1E14:{other:"000 bili\u00f3nov"}}};goog.i18n.CompactNumberFormatSymbols_sk_SK=goog.i18n.CompactNumberFormatSymbols_sk;
+goog.i18n.CompactNumberFormatSymbols_sl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tis."},1E4:{other:"00\u00a0tis."},1E5:{other:"000\u00a0tis."},1E6:{other:"0\u00a0mio."},1E7:{other:"00\u00a0mio."},1E8:{other:"000\u00a0mio."},1E9:{other:"0\u00a0mrd."},1E10:{other:"00\u00a0mrd."},1E11:{other:"000\u00a0mrd."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tiso\u010d"},1E4:{other:"00 tiso\u010d"},1E5:{other:"000 tiso\u010d"},
+1E6:{other:"0 milijonov"},1E7:{other:"00 milijonov"},1E8:{other:"000 milijonov"},1E9:{other:"0 milijard"},1E10:{other:"00 milijard"},1E11:{other:"000 milijard"},1E12:{other:"0 bilijonov"},1E13:{other:"00 bilijonov"},1E14:{other:"000 bilijonov"}}};goog.i18n.CompactNumberFormatSymbols_sl_SI=goog.i18n.CompactNumberFormatSymbols_sl;
+goog.i18n.CompactNumberFormatSymbols_sq={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_sq_AL=goog.i18n.CompactNumberFormatSymbols_sq;
+goog.i18n.CompactNumberFormatSymbols_sr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0\u0445\u0438\u0459"},1E5:{other:"000\u00a0\u0445\u0438\u0459"},1E6:{other:"0\u00a0\u043c\u0438\u043b"},1E7:{other:"00\u00a0\u043c\u0438\u043b"},1E8:{other:"000\u00a0\u043c\u0438\u043b"},1E9:{other:"0\u00a0\u043c\u043b\u0440\u0434"},1E10:{other:"00\u00a0\u043c\u043b\u0440\u0434"},1E11:{other:"000\u00a0\u043c\u043b\u0440\u0434"},1E12:{other:"0\u00a0\u0431\u0438\u043b"},1E13:{other:"00\u00a0\u0431\u0438\u043b"},
+1E14:{other:"000\u00a0\u0431\u0438\u043b"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0445\u0438\u0459\u0430\u0434\u0430"},1E4:{other:"00 \u0445\u0438\u0459\u0430\u0434\u0430"},1E5:{other:"000 \u0445\u0438\u0459\u0430\u0434\u0430"},1E6:{other:"0 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0438\u043b\u0438\u0458\u0430\u0440\u0434\u0438"},1E10:{other:"00 \u043c\u0438\u043b\u0438\u0458\u0430\u0440\u0434\u0438"},
+1E11:{other:"000 \u043c\u0438\u043b\u0438\u0458\u0430\u0440\u0434\u0438"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},1E13:{other:"00 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_RS=goog.i18n.CompactNumberFormatSymbols_sr;
+goog.i18n.CompactNumberFormatSymbols_sv={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tn"},1E4:{other:"00\u00a0tn"},1E5:{other:"000\u00a0tn"},1E6:{other:"0\u00a0mn"},1E7:{other:"00\u00a0mn"},1E8:{other:"000\u00a0mn"},1E9:{other:"0\u00a0md"},1E10:{other:"00\u00a0md"},1E11:{other:"000\u00a0md"},1E12:{other:"0\u00a0bn"},1E13:{other:"00\u00a0bn"},1E14:{other:"000\u00a0bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusen"},1E4:{other:"00 tusen"},1E5:{other:"000 tusen"},1E6:{other:"0 miljoner"},
+1E7:{other:"00 miljoner"},1E8:{other:"000 miljoner"},1E9:{other:"0 miljarder"},1E10:{other:"00 miljarder"},1E11:{other:"000 miljarder"},1E12:{other:"0 biljoner"},1E13:{other:"00 biljoner"},1E14:{other:"000 biljoner"}}};goog.i18n.CompactNumberFormatSymbols_sv_SE=goog.i18n.CompactNumberFormatSymbols_sv;
+goog.i18n.CompactNumberFormatSymbols_sw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"elfu\u00a00"},1E4:{other:"elfu\u00a000"},1E5:{other:"laki0"},1E6:{other:"M0"},1E7:{other:"M00"},1E8:{other:"M000"},1E9:{other:"B0"},1E10:{other:"B00"},1E11:{other:"B000"},1E12:{other:"T0"},1E13:{other:"T00"},1E14:{other:"T000"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"Elfu 0"},1E4:{other:"Elfu 00"},1E5:{other:"Elfu 000"},1E6:{other:"Milioni 0"},1E7:{other:"Milioni 00"},1E8:{other:"Milioni 000"},1E9:{other:"Bilioni 0"},
+1E10:{other:"Bilioni 00"},1E11:{other:"Bilioni 000"},1E12:{other:"Trilioni 0"},1E13:{other:"Trilioni 00"},1E14:{other:"Trilioni 000"}}};goog.i18n.CompactNumberFormatSymbols_sw_TZ=goog.i18n.CompactNumberFormatSymbols_sw;
+goog.i18n.CompactNumberFormatSymbols_ta={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0b86\u0baf\u0bbf\u0bb0\u0bae\u0bcd"},1E4:{other:"00 \u0b86\u0baf\u0bbf\u0bb0\u0bae\u0bcd"},1E5:{other:"000 \u0b86\u0baf\u0bbf\u0bb0\u0bae\u0bcd"},1E6:{other:"0 \u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},
+1E7:{other:"00 \u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E8:{other:"000 \u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E9:{other:"0 \u0baa\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E10:{other:"00 \u0baa\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E11:{other:"000 \u0baa\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E12:{other:"0 \u0b9f\u0bbf\u0bb0\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E13:{other:"00 \u0b9f\u0bbf\u0bb0\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},
+1E14:{other:"000 \u0b9f\u0bbf\u0bb0\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"}}};goog.i18n.CompactNumberFormatSymbols_ta_IN=goog.i18n.CompactNumberFormatSymbols_ta;
+goog.i18n.CompactNumberFormatSymbols_te={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0c35\u0c47\u0c32\u0c41"},1E4:{other:"00 \u0c35\u0c47\u0c32\u0c41"},1E5:{other:"000 \u0c35\u0c47\u0c32\u0c41"},1E6:{other:"0 \u0c2e\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},
+1E7:{other:"00 \u0c2e\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E8:{other:"000 \u0c2e\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E9:{other:"0 \u0c2c\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E10:{other:"00 \u0c2c\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E11:{other:"000 \u0c2c\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E12:{other:"0 \u0c1f\u0c4d\u0c30\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E13:{other:"00 \u0c1f\u0c4d\u0c30\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E14:{other:"000 \u0c1f\u0c4d\u0c30\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"}}};
+goog.i18n.CompactNumberFormatSymbols_te_IN=goog.i18n.CompactNumberFormatSymbols_te;
+goog.i18n.CompactNumberFormatSymbols_th={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0e1e."},1E4:{other:"0\u00a0\u0e21."},1E5:{other:"0\u00a0\u0e2a."},1E6:{other:"0\u00a0\u0e25."},1E7:{other:"00\u00a0\u0e25."},1E8:{other:"000\u00a0\u0e25."},1E9:{other:"0\u00a0\u0e1e.\u0e25."},1E10:{other:"0\u00a0\u0e21.\u0e25."},1E11:{other:"0\u00a0\u0e2a.\u0e25."},1E12:{other:"0\u00a0\u0e25.\u0e25."},1E13:{other:"00\u00a0\u0e25.\u0e25."},1E14:{other:"000\u00a0\u0e25.\u0e25."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0e1e\u0e31\u0e19"},
+1E4:{other:"0 \u0e2b\u0e21\u0e37\u0e48\u0e19"},1E5:{other:"0 \u0e41\u0e2a\u0e19"},1E6:{other:"0 \u0e25\u0e49\u0e32\u0e19"},1E7:{other:"00 \u0e25\u0e49\u0e32\u0e19"},1E8:{other:"000 \u0e25\u0e49\u0e32\u0e19"},1E9:{other:"0 \u0e1e\u0e31\u0e19\u0e25\u0e49\u0e32\u0e19"},1E10:{other:"0 \u0e2b\u0e21\u0e37\u0e48\u0e19\u0e25\u0e49\u0e32\u0e19"},1E11:{other:"0 \u0e41\u0e2a\u0e19\u0e25\u0e49\u0e32\u0e19"},1E12:{other:"0 \u0e25\u0e49\u0e32\u0e19\u0e25\u0e49\u0e32\u0e19"},1E13:{other:"00 \u0e25\u0e49\u0e32\u0e19\u0e25\u0e49\u0e32\u0e19"},
+1E14:{other:"000 \u0e25\u0e49\u0e32\u0e19\u0e25\u0e49\u0e32\u0e19"}}};goog.i18n.CompactNumberFormatSymbols_th_TH=goog.i18n.CompactNumberFormatSymbols_th;
+goog.i18n.CompactNumberFormatSymbols_tl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 (na) libo"},1E4:{other:"00 (na) libo"},1E5:{other:"000 (na) libo"},1E6:{other:"0 (na) milyon"},1E7:{other:"00 (na) milyon"},1E8:{other:"000 (na) milyon"},1E9:{other:"0 (na) bilyon"},
+1E10:{other:"00 (na) bilyon"},1E11:{other:"000 (na) bilyon"},1E12:{other:"0 (na) trilyon"},1E13:{other:"00 (na) trilyon"},1E14:{other:"000 (na) trilyon"}}};
+goog.i18n.CompactNumberFormatSymbols_tr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0B"},1E5:{other:"000\u00a0B"},1E6:{other:"0\u00a0Mn"},1E7:{other:"00\u00a0Mn"},1E8:{other:"000\u00a0Mn"},1E9:{other:"0\u00a0Mr"},1E10:{other:"00\u00a0Mr"},1E11:{other:"000\u00a0Mr"},1E12:{other:"0\u00a0Tn"},1E13:{other:"00\u00a0Tn"},1E14:{other:"000\u00a0Tn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 bin"},1E4:{other:"00 bin"},1E5:{other:"000 bin"},1E6:{other:"0 milyon"},1E7:{other:"00 milyon"},
+1E8:{other:"000 milyon"},1E9:{other:"0 milyar"},1E10:{other:"00 milyar"},1E11:{other:"000 milyar"},1E12:{other:"0 trilyon"},1E13:{other:"00 trilyon"},1E14:{other:"000 trilyon"}}};goog.i18n.CompactNumberFormatSymbols_tr_TR=goog.i18n.CompactNumberFormatSymbols_tr;
+goog.i18n.CompactNumberFormatSymbols_uk={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0442\u0438\u0441"},1E4:{other:"00\u00a0\u0442\u0438\u0441"},1E5:{other:"000\u00a0\u0442\u0438\u0441"},1E6:{other:"0\u00a0\u043c\u043b\u043d"},1E7:{other:"00\u00a0\u043c\u043b\u043d"},1E8:{other:"000\u00a0\u043c\u043b\u043d"},1E9:{other:"0\u00a0\u043c\u043b\u0440\u0434"},1E10:{other:"00\u00a0\u043c\u043b\u0440\u0434"},1E11:{other:"000\u00a0\u043c\u043b\u0440\u0434"},1E12:{other:"0\u00a0\u0442\u0440\u043b\u043d"},
+1E13:{other:"00\u00a0\u0442\u0440\u043b\u043d"},1E14:{other:"000\u00a0\u0442\u0440\u043b\u043d"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0442\u0438\u0441\u044f\u0447\u0456"},1E4:{other:"00 \u0442\u0438\u0441\u044f\u0447\u0456"},1E5:{other:"000 \u0442\u0438\u0441\u044f\u0447\u0456"},1E6:{other:"0 \u043c\u0456\u043b\u044c\u0439\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0456\u043b\u044c\u0439\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0456\u043b\u044c\u0439\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0456\u043b\u044c\u044f\u0440\u0434\u0430"},
+1E10:{other:"00 \u043c\u0456\u043b\u044c\u044f\u0440\u0434\u0430"},1E11:{other:"000 \u043c\u0456\u043b\u044c\u044f\u0440\u0434\u0430"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u044c\u0439\u043e\u043d\u0430"},1E13:{other:"00 \u0442\u0440\u0438\u043b\u044c\u0439\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u044c\u0439\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_uk_UA=goog.i18n.CompactNumberFormatSymbols_uk;
+goog.i18n.CompactNumberFormatSymbols_ur={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u06c1\u0632\u0627\u0631"},1E4:{other:"00\u00a0\u06c1\u0632\u0627\u0631"},1E5:{other:"0\u00a0\u0644\u0627\u06a9\u06be"},1E6:{other:"00\u00a0\u0644\u0627\u06a9\u06be"},1E7:{other:"0\u00a0\u06a9\u0631\u0648\u0691"},1E8:{other:"00\u00a0\u06a9\u0631\u0648\u0691"},1E9:{other:"0\u00a0\u0627\u0631\u0628"},1E10:{other:"00\u00a0\u0627\u0631\u0628"},1E11:{other:"0\u00a0\u06a9\u06be\u0631\u0628"},1E12:{other:"00\u00a0\u06a9\u06be\u0631\u0628"},
+1E13:{other:"000\u00a0\u06a9\u06be\u0631\u0628"},1E14:{other:"0000\u00a0\u06a9\u06be\u0631\u0628"}}};goog.i18n.CompactNumberFormatSymbols_ur_PK=goog.i18n.CompactNumberFormatSymbols_ur;
+goog.i18n.CompactNumberFormatSymbols_vi={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0N"},1E4:{other:"00\u00a0N"},1E5:{other:"000\u00a0N"},1E6:{other:"0\u00a0Tr"},1E7:{other:"00\u00a0Tr"},1E8:{other:"000\u00a0Tr"},1E9:{other:"0\u00a0T"},1E10:{other:"00\u00a0T"},1E11:{other:"000\u00a0T"},1E12:{other:"0\u00a0NT"},1E13:{other:"00\u00a0NT"},1E14:{other:"000\u00a0NT"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ngh\u00ecn"},1E4:{other:"00 ngh\u00ecn"},1E5:{other:"000 ngh\u00ecn"},1E6:{other:"0 tri\u1ec7u"},
+1E7:{other:"00 tri\u1ec7u"},1E8:{other:"000 tri\u1ec7u"},1E9:{other:"0 t\u1ef7"},1E10:{other:"00 t\u1ef7"},1E11:{other:"000 t\u1ef7"},1E12:{other:"0 ngh\u00ecn t\u1ef7"},1E13:{other:"00 ngh\u00ecn t\u1ef7"},1E14:{other:"000 ngh\u00ecn t\u1ef7"}}};goog.i18n.CompactNumberFormatSymbols_vi_VN=goog.i18n.CompactNumberFormatSymbols_vi;
+goog.i18n.CompactNumberFormatSymbols_zh={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"},1E8:{other:"0\u4ebf"},1E9:{other:"00\u4ebf"},1E10:{other:"000\u4ebf"},1E11:{other:"0000\u4ebf"},1E12:{other:"0\u4e07\u4ebf"},1E13:{other:"00\u4e07\u4ebf"},1E14:{other:"000\u4e07\u4ebf"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"},
+1E8:{other:"0\u4ebf"},1E9:{other:"00\u4ebf"},1E10:{other:"000\u4ebf"},1E11:{other:"0000\u4ebf"},1E12:{other:"0\u4e07\u4ebf"},1E13:{other:"00\u4e07\u4ebf"},1E14:{other:"000\u4e07\u4ebf"}}};goog.i18n.CompactNumberFormatSymbols_zh_CN=goog.i18n.CompactNumberFormatSymbols_zh;
+goog.i18n.CompactNumberFormatSymbols_zh_HK={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00\u5146"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u842c"},1E5:{other:"00\u842c"},1E6:{other:"000\u842c"},1E7:{other:"0000\u842c"},1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"},
+1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}}};goog.i18n.CompactNumberFormatSymbols_zh_Hans_CN=goog.i18n.CompactNumberFormatSymbols_zh;
+goog.i18n.CompactNumberFormatSymbols_zh_TW={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00\u5146"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u842c"},1E5:{other:"00\u842c"},1E6:{other:"000\u842c"},1E7:{other:"0000\u842c"},1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"},
+1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}}};
+goog.i18n.CompactNumberFormatSymbols_zu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 inkulungwane"},1E4:{other:"00 inkulungwane"},1E5:{other:"000 inkulungwane"},1E6:{other:"0 isigidi"},1E7:{other:"00 isigidi"},1E8:{other:"000 isigidi"},1E9:{other:"0 isigidi sezigidi"},
+1E10:{other:"00 isigidi sezigidi"},1E11:{other:"000 isigidi sezigidi"},1E12:{other:"0 isigidintathu"},1E13:{other:"00 isigidintathu"},1E14:{other:"000 isigidintathu"}}};goog.i18n.CompactNumberFormatSymbols_zu_ZA=goog.i18n.CompactNumberFormatSymbols_zu;goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;"af"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_af);
+if("af_ZA"==goog.LOCALE||"af-ZA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_af;"am"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_am);if("am_ET"==goog.LOCALE||"am-ET"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_am;"ar"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ar);
+if("ar_001"==goog.LOCALE||"ar-001"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ar;if("ar_EG"==goog.LOCALE||"ar-EG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ar;"bg"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bg);if("bg_BG"==goog.LOCALE||"bg-BG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bg;
+"bn"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bn);if("bn_BD"==goog.LOCALE||"bn-BD"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bn;"br"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_br);if("br_FR"==goog.LOCALE||"br-FR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_br;"ca"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ca);
+if("ca_AD"==goog.LOCALE||"ca-AD"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ca;if("ca_ES"==goog.LOCALE||"ca-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ca;"chr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_chr);if("chr_US"==goog.LOCALE||"chr-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_chr;
+"cs"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cs);if("cs_CZ"==goog.LOCALE||"cs-CZ"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cs;"cy"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cy);if("cy_GB"==goog.LOCALE||"cy-GB"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cy;"da"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_da);
+if("da_DK"==goog.LOCALE||"da-DK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_da;"de"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de);if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de_AT;if("de_BE"==goog.LOCALE||"de-BE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de;
+if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de_CH;if("de_DE"==goog.LOCALE||"de-DE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de;if("de_LU"==goog.LOCALE||"de-LU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de;"el"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_el);
+if("el_GR"==goog.LOCALE||"el-GR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_el;"en"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en);if("en_AS"==goog.LOCALE||"en-AS"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_AU;
+if("en_Dsrt_US"==goog.LOCALE||"en-Dsrt-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_FM"==goog.LOCALE||"en-FM"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_GB;if("en_GU"==goog.LOCALE||"en-GU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;
+if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_IE;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_IN;if("en_MH"==goog.LOCALE||"en-MH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_MP"==goog.LOCALE||"en-MP"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;
+if("en_PR"==goog.LOCALE||"en-PR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_PW"==goog.LOCALE||"en-PW"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_SG;if("en_TC"==goog.LOCALE||"en-TC"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;
+if("en_UM"==goog.LOCALE||"en-UM"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_VG"==goog.LOCALE||"en-VG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_VI"==goog.LOCALE||"en-VI"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;
+if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_ZA;"es"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es_419;if("es_EA"==goog.LOCALE||"es-EA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es;
+if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es;if("es_IC"==goog.LOCALE||"es-IC"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es;"et"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_et);if("et_EE"==goog.LOCALE||"et-EE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_et;
+"eu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_eu);if("eu_ES"==goog.LOCALE||"eu-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_eu;"fa"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fa);if("fa_IR"==goog.LOCALE||"fa-IR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fa;"fi"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fi);
+if("fi_FI"==goog.LOCALE||"fi-FI"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fi;"fil"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fil);if("fil_PH"==goog.LOCALE||"fil-PH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fil;"fr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr);
+if("fr_BL"==goog.LOCALE||"fr-BL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr_CA;if("fr_FR"==goog.LOCALE||"fr-FR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_GF"==goog.LOCALE||"fr-GF"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;
+if("fr_GP"==goog.LOCALE||"fr-GP"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_MC"==goog.LOCALE||"fr-MC"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_MF"==goog.LOCALE||"fr-MF"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_MQ"==goog.LOCALE||"fr-MQ"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;
+if("fr_RE"==goog.LOCALE||"fr-RE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_YT"==goog.LOCALE||"fr-YT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;"gl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gl);if("gl_ES"==goog.LOCALE||"gl-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gl;
+"gsw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gsw);if("gsw_CH"==goog.LOCALE||"gsw-CH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gsw;"gu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gu);if("gu_IN"==goog.LOCALE||"gu-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gu;
+"haw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_haw);if("haw_US"==goog.LOCALE||"haw-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_haw;"he"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_he);if("he_IL"==goog.LOCALE||"he-IL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_he;
+"hi"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hi);if("hi_IN"==goog.LOCALE||"hi-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hi;"hr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hr);if("hr_HR"==goog.LOCALE||"hr-HR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hr;"hu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hu);
+if("hu_HU"==goog.LOCALE||"hu-HU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hu;"id"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_id);if("id_ID"==goog.LOCALE||"id-ID"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_id;"in"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_in);"is"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_is);
+if("is_IS"==goog.LOCALE||"is-IS"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_is;"it"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_it);if("it_IT"==goog.LOCALE||"it-IT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_it;if("it_SM"==goog.LOCALE||"it-SM"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_it;
+"iw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_iw);"ja"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ja);if("ja_JP"==goog.LOCALE||"ja-JP"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ja;"kn"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_kn);if("kn_IN"==goog.LOCALE||"kn-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_kn;
+"ko"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ko);if("ko_KR"==goog.LOCALE||"ko-KR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ko;"ln"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ln);if("ln_CD"==goog.LOCALE||"ln-CD"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ln;"lt"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lt);
+if("lt_LT"==goog.LOCALE||"lt-LT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lt;"lv"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lv);if("lv_LV"==goog.LOCALE||"lv-LV"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lv;"ml"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ml);
+if("ml_IN"==goog.LOCALE||"ml-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ml;"mr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mr);if("mr_IN"==goog.LOCALE||"mr-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mr;"ms"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ms);
+if("ms_Latn_MY"==goog.LOCALE||"ms-Latn-MY"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ms;"mt"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mt);if("mt_MT"==goog.LOCALE||"mt-MT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mt;"nb"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nb);
+if("nb_NO"==goog.LOCALE||"nb-NO"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nb;"nl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nl);if("nl_NL"==goog.LOCALE||"nl-NL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nl;"no"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_no);"or"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_or);
+if("or_IN"==goog.LOCALE||"or-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_or;"pl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pl);if("pl_PL"==goog.LOCALE||"pl-PL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pl;"pt"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pt);
+if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pt;if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pt_PT;"ro"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ro);if("ro_RO"==goog.LOCALE||"ro-RO"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ro;
+"ru"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ru);if("ru_RU"==goog.LOCALE||"ru-RU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ru;"sk"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sk);if("sk_SK"==goog.LOCALE||"sk-SK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sk;"sl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sl);
+if("sl_SI"==goog.LOCALE||"sl-SI"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sl;"sq"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sq);if("sq_AL"==goog.LOCALE||"sq-AL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sq;"sr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sr);
+if("sr_Cyrl_RS"==goog.LOCALE||"sr-Cyrl-RS"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sr;"sv"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sv);if("sv_SE"==goog.LOCALE||"sv-SE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sv;"sw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sw);
+if("sw_TZ"==goog.LOCALE||"sw-TZ"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sw;"ta"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ta);if("ta_IN"==goog.LOCALE||"ta-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ta;"te"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_te);
+if("te_IN"==goog.LOCALE||"te-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_te;"th"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_th);if("th_TH"==goog.LOCALE||"th-TH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_th;"tl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_tl);"tr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_tr);
+if("tr_TR"==goog.LOCALE||"tr-TR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_tr;"uk"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_uk);if("uk_UA"==goog.LOCALE||"uk-UA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_uk;"ur"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ur);
+if("ur_PK"==goog.LOCALE||"ur-PK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ur;"vi"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_vi);if("vi_VN"==goog.LOCALE||"vi-VN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_vi;"zh"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh);
+if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh_HK;if("zh_Hans_CN"==goog.LOCALE||"zh-Hans-CN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh;if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh_TW;
+"zu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zu);if("zu_ZA"==goog.LOCALE||"zu-ZA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zu;goog.i18n.currency={};goog.i18n.currency.PRECISION_MASK_=7;goog.i18n.currency.POSITION_FLAG_=16;goog.i18n.currency.SPACE_FLAG_=32;goog.i18n.currency.tier2Enabled_=!1;goog.i18n.currency.addTier2Support=function(){if(!goog.i18n.currency.tier2Enabled_){for(var a in goog.i18n.currency.CurrencyInfoTier2)goog.i18n.currency.CurrencyInfo[a]=goog.i18n.currency.CurrencyInfoTier2[a];goog.i18n.currency.tier2Enabled_=!0}};
+goog.i18n.currency.getGlobalCurrencyPattern=function(a){var b=goog.i18n.currency.CurrencyInfo[a],c=b[0];return a==b[1]?goog.i18n.currency.getCurrencyPattern_(c,b[1]):a+" "+goog.i18n.currency.getCurrencyPattern_(c,b[1])};goog.i18n.currency.getGlobalCurrencySign=function(a){var b=goog.i18n.currency.CurrencyInfo[a];return a==b[1]?a:a+" "+b[1]};goog.i18n.currency.getLocalCurrencyPattern=function(a){a=goog.i18n.currency.CurrencyInfo[a];return goog.i18n.currency.getCurrencyPattern_(a[0],a[1])};
+goog.i18n.currency.getLocalCurrencySign=function(a){return goog.i18n.currency.CurrencyInfo[a][1]};goog.i18n.currency.getPortableCurrencyPattern=function(a){a=goog.i18n.currency.CurrencyInfo[a];return goog.i18n.currency.getCurrencyPattern_(a[0],a[2])};goog.i18n.currency.getPortableCurrencySign=function(a){return goog.i18n.currency.CurrencyInfo[a][2]};goog.i18n.currency.isPrefixSignPosition=function(a){return 0==(goog.i18n.currency.CurrencyInfo[a][0]&goog.i18n.currency.POSITION_FLAG_)};
+goog.i18n.currency.getCurrencyPattern_=function(a,b){var c=["#,##0"],d=a&goog.i18n.currency.PRECISION_MASK_;if(0<d){c.push(".");for(var e=0;e<d;e++)c.push("0")}0==(a&goog.i18n.currency.POSITION_FLAG_)?(c.unshift(a&goog.i18n.currency.SPACE_FLAG_?"' ":"'"),c.unshift(b),c.unshift("'")):c.push(a&goog.i18n.currency.SPACE_FLAG_?" '":"'",b,"'");return c.join("")};
+goog.i18n.currency.adjustPrecision=function(a,b){var c=["0"],d=goog.i18n.currency.CurrencyInfo[b],d=d[0]&goog.i18n.currency.PRECISION_MASK_;if(0<d){c.push(".");for(var e=0;e<d;e++)c.push("0")}return a.replace(/0.00/g,c.join(""))};
+goog.i18n.currency.CurrencyInfo={AED:[2,"dh","\u062f.\u0625.","DH"],ALL:[0,"Lek","Lek"],AUD:[2,"$","AU$"],BDT:[2,"\u09f3","Tk"],BGN:[2,"lev","lev"],BRL:[2,"R$","R$"],CAD:[2,"$","C$"],CDF:[2,"FrCD","CDF"],CHF:[2,"CHF","CHF"],CLP:[0,"$","CL$"],CNY:[2,"\u00a5","RMB\u00a5"],COP:[0,"$","COL$"],CRC:[0,"\u20a1","CR\u20a1"],CZK:[50,"K\u010d","K\u010d"],DKK:[18,"kr","kr"],DOP:[2,"$","RD$"],EGP:[2,"\u00a3","LE"],ETB:[2,"Birr","Birr"],EUR:[2,"\u20ac","\u20ac"],GBP:[2,"\u00a3","GB\u00a3"],HKD:[2,"$","HK$"],HRK:[2,
+"kn","kn"],HUF:[0,"Ft","Ft"],IDR:[0,"Rp","Rp"],ILS:[2,"\u20aa","IL\u20aa"],INR:[2,"\u20b9","Rs"],IRR:[0,"Rial","IRR"],ISK:[0,"kr","kr"],JMD:[2,"$","JA$"],JPY:[0,"\u00a5","JP\u00a5"],KRW:[0,"\u20a9","KR\u20a9"],LKR:[2,"Rs","SLRs"],LTL:[2,"Lt","Lt"],LVL:[2,"Ls","Ls"],MNT:[0,"\u20ae","MN\u20ae"],MXN:[2,"$","Mex$"],MYR:[2,"RM","RM"],NOK:[50,"kr","NOkr"],PAB:[2,"B/.","B/."],PEN:[2,"S/.","S/."],PHP:[2,"\u20b1","Php"],PKR:[0,"Rs","PKRs."],PLN:[50,"z\u0142","z\u0142"],RON:[2,"RON","RON"],RSD:[0,"din","RSD"],
+RUB:[50,"\u0440\u0443\u0431.","\u0440\u0443\u0431."],SAR:[2,"Rial","Rial"],SEK:[2,"kr","kr"],SGD:[2,"$","S$"],THB:[2,"\u0e3f","THB"],TRY:[2,"TL","YTL"],TWD:[2,"NT$","NT$"],TZS:[0,"TSh","TSh"],UAH:[2,"\u20b4","UAH"],USD:[2,"$","US$"],UYU:[2,"$","$U"],VND:[0,"\u20ab","VN\u20ab"],YER:[0,"Rial","Rial"],ZAR:[2,"R","ZAR"]};
+goog.i18n.currency.CurrencyInfoTier2={AFN:[48,"Af.","AFN"],AMD:[0,"Dram","dram"],AOA:[2,"Kz","Kz"],ARS:[2,"$","AR$"],AWG:[2,"Afl.","Afl."],AZN:[2,"man.","man."],BAM:[2,"KM","KM"],BBD:[2,"$","Bds$"],BHD:[3,"din","din"],BIF:[0,"FBu","FBu"],BMD:[2,"$","BD$"],BND:[2,"$","B$"],BOB:[2,"Bs","Bs"],BSD:[2,"$","BS$"],BTN:[2,"Nu.","Nu."],BWP:[2,"P","pula"],BYR:[0,"BYR","BYR"],BZD:[2,"$","BZ$"],CUC:[1,"$","CUC$"],CUP:[2,"$","CU$"],CVE:[2,"CVE","Esc"],DJF:[0,"Fdj","Fdj"],DZD:[2,"din","din"],ERN:[2,"Nfk","Nfk"],
+FJD:[2,"$","FJ$"],FKP:[2,"\u00a3","FK\u00a3"],GEL:[2,"GEL","GEL"],GHS:[2,"GHS","GHS"],GIP:[2,"\u00a3","GI\u00a3"],GMD:[2,"GMD","GMD"],GNF:[0,"FG","FG"],GTQ:[2,"Q","GTQ"],GYD:[0,"$","GY$"],HNL:[2,"L","HNL"],HTG:[2,"HTG","HTG"],IQD:[0,"din","IQD"],JOD:[3,"din","JOD"],KES:[2,"Ksh","Ksh"],KGS:[2,"KGS","KGS"],KHR:[2,"Riel","KHR"],KMF:[0,"CF","KMF"],KPW:[0,"\u20a9KP","KPW"],KWD:[3,"din","KWD"],KYD:[2,"$","KY$"],KZT:[2,"\u20b8","KZT"],LAK:[0,"\u20ad","\u20ad"],LBP:[0,"L\u00a3","LBP"],LRD:[2,"$","L$"],LSL:[2,
+"LSL","LSL"],LYD:[3,"din","LD"],MAD:[2,"dh","MAD"],MDL:[2,"MDL","MDL"],MGA:[0,"Ar","MGA"],MKD:[2,"din","MKD"],MMK:[0,"K","MMK"],MOP:[2,"MOP","MOP$"],MRO:[0,"MRO","MRO"],MUR:[0,"MURs","MURs"],MWK:[2,"MWK","MWK"],MZN:[2,"MTn","MTn"],NAD:[2,"$","N$"],NGN:[2,"\u20a6","NG\u20a6"],NIO:[2,"C$","C$"],NPR:[2,"Rs","NPRs"],NZD:[2,"$","NZ$"],OMR:[3,"Rial","OMR"],PGK:[2,"PGK","PGK"],PYG:[0,"Gs","PYG"],QAR:[2,"Rial","QR"],RWF:[0,"RF","RF"],SBD:[2,"$","SI$"],SCR:[2,"SCR","SCR"],SDG:[2,"SDG","SDG"],SHP:[2,"\u00a3",
+"SH\u00a3"],SLL:[0,"SLL","SLL"],SOS:[0,"SOS","SOS"],SRD:[2,"$","SR$"],STD:[0,"Db","Db"],SYP:[0,"\u00a3","SY\u00a3"],SZL:[2,"SZL","SZL"],TJS:[2,"Som","TJS"],TND:[3,"din","DT"],TOP:[2,"T$","T$"],TTD:[2,"$","TT$"],UGX:[0,"UGX","UGX"],UZS:[0,"so\u02bcm","UZS"],VEF:[2,"Bs","Bs"],VUV:[0,"VUV","VUV"],WST:[2,"WST","WST"],XAF:[0,"FCFA","FCFA"],XCD:[2,"$","EC$"],XOF:[0,"CFA","CFA"],XPF:[0,"FCFP","FCFP"],ZMK:[0,"ZMK","ZMK"]};goog.i18n.NumberFormatSymbols_af={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ZAR"};goog.i18n.NumberFormatSymbols_af_ZA=goog.i18n.NumberFormatSymbols_af;
+goog.i18n.NumberFormatSymbols_am={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ETB"};goog.i18n.NumberFormatSymbols_am_ET=goog.i18n.NumberFormatSymbols_am;
+goog.i18n.NumberFormatSymbols_ar={DECIMAL_SEP:"\u066b",GROUP_SEP:"\u066c",PERCENT:"\u066a",ZERO_DIGIT:"\u0660",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"\u0627\u0633",PERMILL:"\u0609",INFINITY:"\u221e",NAN:"\u0644\u064a\u0633\u00a0\u0631\u0642\u0645",DECIMAL_PATTERN:"#0.###;#0.###-",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#0.00;\u00a4\u00a0#0.00-",DEF_CURRENCY_CODE:"EGP"};goog.i18n.NumberFormatSymbols_ar_001=goog.i18n.NumberFormatSymbols_ar;
+goog.i18n.NumberFormatSymbols_ar_EG=goog.i18n.NumberFormatSymbols_ar;goog.i18n.NumberFormatSymbols_bg={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"BGN"};goog.i18n.NumberFormatSymbols_bg_BG=goog.i18n.NumberFormatSymbols_bg;
+goog.i18n.NumberFormatSymbols_bn={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"\u09e6",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u09b8\u0982\u0996\u09cd\u09af\u09be\u00a0\u09a8\u09be",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"#,##,##0.00\u00a4;(#,##,##0.00\u00a4)",DEF_CURRENCY_CODE:"BDT"};goog.i18n.NumberFormatSymbols_bn_BD=goog.i18n.NumberFormatSymbols_bn;
+goog.i18n.NumberFormatSymbols_br={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_br_FR=goog.i18n.NumberFormatSymbols_br;
+goog.i18n.NumberFormatSymbols_ca={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_ca_AD=goog.i18n.NumberFormatSymbols_ca;goog.i18n.NumberFormatSymbols_ca_ES=goog.i18n.NumberFormatSymbols_ca;
+goog.i18n.NumberFormatSymbols_chr={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"USD"};goog.i18n.NumberFormatSymbols_chr_US=goog.i18n.NumberFormatSymbols_chr;
+goog.i18n.NumberFormatSymbols_cs={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"CZK"};goog.i18n.NumberFormatSymbols_cs_CZ=goog.i18n.NumberFormatSymbols_cs;
+goog.i18n.NumberFormatSymbols_cy={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"GBP"};goog.i18n.NumberFormatSymbols_cy_GB=goog.i18n.NumberFormatSymbols_cy;
+goog.i18n.NumberFormatSymbols_da={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"DKK"};goog.i18n.NumberFormatSymbols_da_DK=goog.i18n.NumberFormatSymbols_da;
+goog.i18n.NumberFormatSymbols_de={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};
+goog.i18n.NumberFormatSymbols_de_AT={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_de_BE=goog.i18n.NumberFormatSymbols_de;
+goog.i18n.NumberFormatSymbols_de_CH={DECIMAL_SEP:".",GROUP_SEP:"'",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00;\u00a4-#,##0.00",DEF_CURRENCY_CODE:"CHF"};goog.i18n.NumberFormatSymbols_de_DE=goog.i18n.NumberFormatSymbols_de;goog.i18n.NumberFormatSymbols_de_LU=goog.i18n.NumberFormatSymbols_de;
+goog.i18n.NumberFormatSymbols_el={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"e",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"[#E0]",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_el_GR=goog.i18n.NumberFormatSymbols_el;
+goog.i18n.NumberFormatSymbols_en={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"USD"};goog.i18n.NumberFormatSymbols_en_AS=goog.i18n.NumberFormatSymbols_en;
+goog.i18n.NumberFormatSymbols_en_AU={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"AUD"};goog.i18n.NumberFormatSymbols_en_Dsrt_US=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_FM=goog.i18n.NumberFormatSymbols_en;
+goog.i18n.NumberFormatSymbols_en_GB={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"GBP"};goog.i18n.NumberFormatSymbols_en_GU=goog.i18n.NumberFormatSymbols_en;
+goog.i18n.NumberFormatSymbols_en_IE={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};
+goog.i18n.NumberFormatSymbols_en_IN={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_en_MH=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_MP=goog.i18n.NumberFormatSymbols_en;
+goog.i18n.NumberFormatSymbols_en_PR=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_PW=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_SG={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"SGD"};
+goog.i18n.NumberFormatSymbols_en_TC=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_UM=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_US=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_VG=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_VI=goog.i18n.NumberFormatSymbols_en;
+goog.i18n.NumberFormatSymbols_en_ZA={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ZAR"};
+goog.i18n.NumberFormatSymbols_es={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};
+goog.i18n.NumberFormatSymbols_es_419={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"MXN"};goog.i18n.NumberFormatSymbols_es_EA=goog.i18n.NumberFormatSymbols_es;goog.i18n.NumberFormatSymbols_es_ES=goog.i18n.NumberFormatSymbols_es;goog.i18n.NumberFormatSymbols_es_IC=goog.i18n.NumberFormatSymbols_es;
+goog.i18n.NumberFormatSymbols_et={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_et_EE=goog.i18n.NumberFormatSymbols_et;
+goog.i18n.NumberFormatSymbols_eu={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"%\u00a0#,##0",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_eu_ES=goog.i18n.NumberFormatSymbols_eu;
+goog.i18n.NumberFormatSymbols_fa={DECIMAL_SEP:"\u066b",GROUP_SEP:"\u066c",PERCENT:"\u066a",ZERO_DIGIT:"\u06f0",PLUS_SIGN:"+",MINUS_SIGN:"\u2212",EXP_SYMBOL:"\u00d7\u06f1\u06f0^",PERMILL:"\u0609",INFINITY:"\u221e",NAN:"\u0646\u0627\u0639\u062f\u062f",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u200e\u00a4#,##0.00;\u200e(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"IRR"};goog.i18n.NumberFormatSymbols_fa_IR=goog.i18n.NumberFormatSymbols_fa;
+goog.i18n.NumberFormatSymbols_fi={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"ep\u00e4luku",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_fi_FI=goog.i18n.NumberFormatSymbols_fi;
+goog.i18n.NumberFormatSymbols_fil={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"PHP"};goog.i18n.NumberFormatSymbols_fil_PH=goog.i18n.NumberFormatSymbols_fil;
+goog.i18n.NumberFormatSymbols_fr={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_fr_BL=goog.i18n.NumberFormatSymbols_fr;
+goog.i18n.NumberFormatSymbols_fr_CA={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"CAD"};goog.i18n.NumberFormatSymbols_fr_FR=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_GF=goog.i18n.NumberFormatSymbols_fr;
+goog.i18n.NumberFormatSymbols_fr_GP=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_MC=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_MF=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_MQ=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_RE=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_YT=goog.i18n.NumberFormatSymbols_fr;
+goog.i18n.NumberFormatSymbols_gl={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_gl_ES=goog.i18n.NumberFormatSymbols_gl;
+goog.i18n.NumberFormatSymbols_gsw={DECIMAL_SEP:".",GROUP_SEP:"\u2019",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"\u2212",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"CHF"};goog.i18n.NumberFormatSymbols_gsw_CH=goog.i18n.NumberFormatSymbols_gsw;
+goog.i18n.NumberFormatSymbols_gu={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_gu_IN=goog.i18n.NumberFormatSymbols_gu;
+goog.i18n.NumberFormatSymbols_haw={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"USD"};goog.i18n.NumberFormatSymbols_haw_US=goog.i18n.NumberFormatSymbols_haw;
+goog.i18n.NumberFormatSymbols_he={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"ILS"};goog.i18n.NumberFormatSymbols_he_IL=goog.i18n.NumberFormatSymbols_he;
+goog.i18n.NumberFormatSymbols_hi={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_hi_IN=goog.i18n.NumberFormatSymbols_hi;
+goog.i18n.NumberFormatSymbols_hr={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"HRK"};goog.i18n.NumberFormatSymbols_hr_HR=goog.i18n.NumberFormatSymbols_hr;
+goog.i18n.NumberFormatSymbols_hu={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"HUF"};goog.i18n.NumberFormatSymbols_hu_HU=goog.i18n.NumberFormatSymbols_hu;
+goog.i18n.NumberFormatSymbols_id={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"IDR"};goog.i18n.NumberFormatSymbols_id_ID=goog.i18n.NumberFormatSymbols_id;
+goog.i18n.NumberFormatSymbols_in={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"IDR"};
+goog.i18n.NumberFormatSymbols_is={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ISK"};goog.i18n.NumberFormatSymbols_is_IS=goog.i18n.NumberFormatSymbols_is;
+goog.i18n.NumberFormatSymbols_it={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_it_IT=goog.i18n.NumberFormatSymbols_it;goog.i18n.NumberFormatSymbols_it_SM=goog.i18n.NumberFormatSymbols_it;
+goog.i18n.NumberFormatSymbols_iw={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"ILS"};
+goog.i18n.NumberFormatSymbols_ja={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"JPY"};goog.i18n.NumberFormatSymbols_ja_JP=goog.i18n.NumberFormatSymbols_ja;
+goog.i18n.NumberFormatSymbols_kn={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"\u0c88",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_kn_IN=goog.i18n.NumberFormatSymbols_kn;
+goog.i18n.NumberFormatSymbols_ko={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"KRW"};goog.i18n.NumberFormatSymbols_ko_KR=goog.i18n.NumberFormatSymbols_ko;
+goog.i18n.NumberFormatSymbols_ln={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"CDF"};goog.i18n.NumberFormatSymbols_ln_CD=goog.i18n.NumberFormatSymbols_ln;
+goog.i18n.NumberFormatSymbols_lt={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"\u2013",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"LTL"};goog.i18n.NumberFormatSymbols_lt_LT=goog.i18n.NumberFormatSymbols_lt;
+goog.i18n.NumberFormatSymbols_lv={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"nav\u00a0skaitlis",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"LVL"};goog.i18n.NumberFormatSymbols_lv_LV=goog.i18n.NumberFormatSymbols_lv;
+goog.i18n.NumberFormatSymbols_ml={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"#,##,##0.00\u00a4",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_ml_IN=goog.i18n.NumberFormatSymbols_ml;
+goog.i18n.NumberFormatSymbols_mr={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"\u0966",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_mr_IN=goog.i18n.NumberFormatSymbols_mr;
+goog.i18n.NumberFormatSymbols_ms={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"MYR"};goog.i18n.NumberFormatSymbols_ms_Latn_MY=goog.i18n.NumberFormatSymbols_ms;
+goog.i18n.NumberFormatSymbols_mt={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_mt_MT=goog.i18n.NumberFormatSymbols_mt;
+goog.i18n.NumberFormatSymbols_nb={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"NOK"};goog.i18n.NumberFormatSymbols_nb_NO=goog.i18n.NumberFormatSymbols_nb;
+goog.i18n.NumberFormatSymbols_nl={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00;\u00a4\u00a0#,##0.00-",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_nl_NL=goog.i18n.NumberFormatSymbols_nl;
+goog.i18n.NumberFormatSymbols_no={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"NOK"};
+goog.i18n.NumberFormatSymbols_or={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_or_IN=goog.i18n.NumberFormatSymbols_or;
+goog.i18n.NumberFormatSymbols_pl={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"PLN"};goog.i18n.NumberFormatSymbols_pl_PL=goog.i18n.NumberFormatSymbols_pl;
+goog.i18n.NumberFormatSymbols_pt={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"BRL"};goog.i18n.NumberFormatSymbols_pt_BR=goog.i18n.NumberFormatSymbols_pt;
+goog.i18n.NumberFormatSymbols_pt_PT={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};
+goog.i18n.NumberFormatSymbols_ro={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"RON"};goog.i18n.NumberFormatSymbols_ro_RO=goog.i18n.NumberFormatSymbols_ro;
+goog.i18n.NumberFormatSymbols_ru={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u043d\u0435\u00a0\u0447\u0438\u0441\u043b\u043e",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"RUB"};goog.i18n.NumberFormatSymbols_ru_RU=goog.i18n.NumberFormatSymbols_ru;
+goog.i18n.NumberFormatSymbols_sk={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_sk_SK=goog.i18n.NumberFormatSymbols_sk;
+goog.i18n.NumberFormatSymbols_sl={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"e",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_sl_SI=goog.i18n.NumberFormatSymbols_sl;
+goog.i18n.NumberFormatSymbols_sq={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"ALL"};goog.i18n.NumberFormatSymbols_sq_AL=goog.i18n.NumberFormatSymbols_sq;
+goog.i18n.NumberFormatSymbols_sr={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"RSD"};goog.i18n.NumberFormatSymbols_sr_Cyrl_RS=goog.i18n.NumberFormatSymbols_sr;
+goog.i18n.NumberFormatSymbols_sv={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"\u2212",EXP_SYMBOL:"\u00d710^",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u00a4\u00a4\u00a4",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"SEK"};goog.i18n.NumberFormatSymbols_sv_SE=goog.i18n.NumberFormatSymbols_sv;
+goog.i18n.NumberFormatSymbols_sw={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"TZS"};goog.i18n.NumberFormatSymbols_sw_TZ=goog.i18n.NumberFormatSymbols_sw;
+goog.i18n.NumberFormatSymbols_ta={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_ta_IN=goog.i18n.NumberFormatSymbols_ta;
+goog.i18n.NumberFormatSymbols_te={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_te_IN=goog.i18n.NumberFormatSymbols_te;
+goog.i18n.NumberFormatSymbols_th={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"THB"};goog.i18n.NumberFormatSymbols_th_TH=goog.i18n.NumberFormatSymbols_th;
+goog.i18n.NumberFormatSymbols_tl={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"PHP"};
+goog.i18n.NumberFormatSymbols_tr={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"%#,##0",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"TRY"};goog.i18n.NumberFormatSymbols_tr_TR=goog.i18n.NumberFormatSymbols_tr;
+goog.i18n.NumberFormatSymbols_uk={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"\u0415",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u041d\u0435\u00a0\u0447\u0438\u0441\u043b\u043e",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"UAH"};goog.i18n.NumberFormatSymbols_uk_UA=goog.i18n.NumberFormatSymbols_uk;
+goog.i18n.NumberFormatSymbols_ur={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"PKR"};goog.i18n.NumberFormatSymbols_ur_PK=goog.i18n.NumberFormatSymbols_ur;
+goog.i18n.NumberFormatSymbols_vi={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"VND"};goog.i18n.NumberFormatSymbols_vi_VN=goog.i18n.NumberFormatSymbols_vi;
+goog.i18n.NumberFormatSymbols_zh={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"CNY"};goog.i18n.NumberFormatSymbols_zh_CN=goog.i18n.NumberFormatSymbols_zh;
+goog.i18n.NumberFormatSymbols_zh_HK={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u975e\u6578\u503c",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"HKD"};goog.i18n.NumberFormatSymbols_zh_Hans_CN=goog.i18n.NumberFormatSymbols_zh;
+goog.i18n.NumberFormatSymbols_zh_TW={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u975e\u6578\u503c",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"TWD"};
+goog.i18n.NumberFormatSymbols_zu={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"I-NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ZAR"};goog.i18n.NumberFormatSymbols_zu_ZA=goog.i18n.NumberFormatSymbols_zu;goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;
+"af"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_af);if("af_ZA"==goog.LOCALE||"af-ZA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_af;"am"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_am);if("am_ET"==goog.LOCALE||"am-ET"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_am;"ar"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ar);
+if("ar_001"==goog.LOCALE||"ar-001"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ar;if("ar_EG"==goog.LOCALE||"ar-EG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ar;"bg"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bg);if("bg_BG"==goog.LOCALE||"bg-BG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bg;"bn"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bn);
+if("bn_BD"==goog.LOCALE||"bn-BD"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bn;"br"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_br);if("br_FR"==goog.LOCALE||"br-FR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_br;"ca"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ca);if("ca_AD"==goog.LOCALE||"ca-AD"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ca;
+if("ca_ES"==goog.LOCALE||"ca-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ca;"chr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_chr);if("chr_US"==goog.LOCALE||"chr-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_chr;"cs"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cs);if("cs_CZ"==goog.LOCALE||"cs-CZ"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cs;
+"cy"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cy);if("cy_GB"==goog.LOCALE||"cy-GB"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cy;"da"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_da);if("da_DK"==goog.LOCALE||"da-DK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_da;"de"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de);
+if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de_AT;if("de_BE"==goog.LOCALE||"de-BE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de;if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de_CH;if("de_DE"==goog.LOCALE||"de-DE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de;
+if("de_LU"==goog.LOCALE||"de-LU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de;"el"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_el);if("el_GR"==goog.LOCALE||"el-GR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_el;"en"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en);if("en_AS"==goog.LOCALE||"en-AS"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;
+if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_AU;if("en_Dsrt_US"==goog.LOCALE||"en-Dsrt-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_FM"==goog.LOCALE||"en-FM"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_GB;
+if("en_GU"==goog.LOCALE||"en-GU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_IE;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_IN;if("en_MH"==goog.LOCALE||"en-MH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;
+if("en_MP"==goog.LOCALE||"en-MP"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_PR"==goog.LOCALE||"en-PR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_PW"==goog.LOCALE||"en-PW"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_SG;
+if("en_TC"==goog.LOCALE||"en-TC"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_UM"==goog.LOCALE||"en-UM"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_VG"==goog.LOCALE||"en-VG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;
+if("en_VI"==goog.LOCALE||"en-VI"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_ZA;"es"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es_419;if("es_EA"==goog.LOCALE||"es-EA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es;
+if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es;if("es_IC"==goog.LOCALE||"es-IC"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es;"et"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_et);if("et_EE"==goog.LOCALE||"et-EE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_et;"eu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_eu);
+if("eu_ES"==goog.LOCALE||"eu-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_eu;"fa"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fa);if("fa_IR"==goog.LOCALE||"fa-IR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fa;"fi"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fi);if("fi_FI"==goog.LOCALE||"fi-FI"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fi;
+"fil"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fil);if("fil_PH"==goog.LOCALE||"fil-PH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fil;"fr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr);if("fr_BL"==goog.LOCALE||"fr-BL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr_CA;
+if("fr_FR"==goog.LOCALE||"fr-FR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_GF"==goog.LOCALE||"fr-GF"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_GP"==goog.LOCALE||"fr-GP"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_MC"==goog.LOCALE||"fr-MC"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;
+if("fr_MF"==goog.LOCALE||"fr-MF"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_MQ"==goog.LOCALE||"fr-MQ"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_RE"==goog.LOCALE||"fr-RE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_YT"==goog.LOCALE||"fr-YT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;"gl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gl);
+if("gl_ES"==goog.LOCALE||"gl-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gl;"gsw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gsw);if("gsw_CH"==goog.LOCALE||"gsw-CH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gsw;"gu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gu);if("gu_IN"==goog.LOCALE||"gu-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gu;
+"haw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_haw);if("haw_US"==goog.LOCALE||"haw-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_haw;"he"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_he);if("he_IL"==goog.LOCALE||"he-IL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_he;"hi"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hi);
+if("hi_IN"==goog.LOCALE||"hi-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hi;"hr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hr);if("hr_HR"==goog.LOCALE||"hr-HR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hr;"hu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hu);if("hu_HU"==goog.LOCALE||"hu-HU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hu;
+"id"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_id);if("id_ID"==goog.LOCALE||"id-ID"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_id;"in"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_in);"is"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_is);if("is_IS"==goog.LOCALE||"is-IS"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_is;
+"it"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_it);if("it_IT"==goog.LOCALE||"it-IT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_it;if("it_SM"==goog.LOCALE||"it-SM"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_it;"iw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_iw);"ja"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ja);
+if("ja_JP"==goog.LOCALE||"ja-JP"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ja;"kn"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_kn);if("kn_IN"==goog.LOCALE||"kn-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_kn;"ko"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ko);if("ko_KR"==goog.LOCALE||"ko-KR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ko;
+"ln"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ln);if("ln_CD"==goog.LOCALE||"ln-CD"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ln;"lt"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lt);if("lt_LT"==goog.LOCALE||"lt-LT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lt;"lv"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lv);
+if("lv_LV"==goog.LOCALE||"lv-LV"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lv;"ml"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ml);if("ml_IN"==goog.LOCALE||"ml-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ml;"mr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mr);if("mr_IN"==goog.LOCALE||"mr-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mr;
+"ms"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ms);if("ms_Latn_MY"==goog.LOCALE||"ms-Latn-MY"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ms;"mt"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mt);if("mt_MT"==goog.LOCALE||"mt-MT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mt;"nb"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nb);
+if("nb_NO"==goog.LOCALE||"nb-NO"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nb;"nl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nl);if("nl_NL"==goog.LOCALE||"nl-NL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nl;"no"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_no);"or"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_or);
+if("or_IN"==goog.LOCALE||"or-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_or;"pl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pl);if("pl_PL"==goog.LOCALE||"pl-PL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pl;"pt"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pt);if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pt;
+if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pt_PT;"ro"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ro);if("ro_RO"==goog.LOCALE||"ro-RO"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ro;"ru"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ru);if("ru_RU"==goog.LOCALE||"ru-RU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ru;
+"sk"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sk);if("sk_SK"==goog.LOCALE||"sk-SK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sk;"sl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sl);if("sl_SI"==goog.LOCALE||"sl-SI"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sl;"sq"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sq);
+if("sq_AL"==goog.LOCALE||"sq-AL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sq;"sr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sr);if("sr_Cyrl_RS"==goog.LOCALE||"sr-Cyrl-RS"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sr;"sv"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sv);if("sv_SE"==goog.LOCALE||"sv-SE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sv;
+"sw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sw);if("sw_TZ"==goog.LOCALE||"sw-TZ"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sw;"ta"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ta);if("ta_IN"==goog.LOCALE||"ta-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ta;"te"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_te);
+if("te_IN"==goog.LOCALE||"te-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_te;"th"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_th);if("th_TH"==goog.LOCALE||"th-TH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_th;"tl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_tl);"tr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_tr);
+if("tr_TR"==goog.LOCALE||"tr-TR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_tr;"uk"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_uk);if("uk_UA"==goog.LOCALE||"uk-UA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_uk;"ur"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ur);if("ur_PK"==goog.LOCALE||"ur-PK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ur;
+"vi"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_vi);if("vi_VN"==goog.LOCALE||"vi-VN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_vi;"zh"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh);if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh_HK;
+if("zh_Hans_CN"==goog.LOCALE||"zh-Hans-CN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh;if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh_TW;"zu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zu);if("zu_ZA"==goog.LOCALE||"zu-ZA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zu;goog.i18n.NumberFormat=function(a,b,c){this.intlCurrencyCode_=b||goog.i18n.NumberFormatSymbols.DEF_CURRENCY_CODE;this.currencyStyle_=c||goog.i18n.NumberFormat.CurrencyStyle.LOCAL;this.maximumIntegerDigits_=40;this.minimumIntegerDigits_=1;this.significantDigits_=0;this.maximumFractionDigits_=3;this.minExponentDigits_=this.minimumFractionDigits_=0;this.showTrailingZeros_=this.useSignForPositiveExponent_=!1;this.positiveSuffix_=this.positivePrefix_="";this.negativePrefix_="-";this.negativeSuffix_="";
+this.multiplier_=1;this.groupingSize_=3;this.useExponentialNotation_=this.decimalSeparatorAlwaysShown_=!1;this.compactStyle_=goog.i18n.NumberFormat.CompactStyle.NONE;this.baseFormattingNumber_=null;"number"==typeof a?this.applyStandardPattern_(a):this.applyPattern_(a)};goog.i18n.NumberFormat.Format={DECIMAL:1,SCIENTIFIC:2,PERCENT:3,CURRENCY:4,COMPACT_SHORT:5,COMPACT_LONG:6};goog.i18n.NumberFormat.CurrencyStyle={LOCAL:0,PORTABLE:1,GLOBAL:2};goog.i18n.NumberFormat.CompactStyle={NONE:0,SHORT:1,LONG:2};
+goog.i18n.NumberFormat.enforceAsciiDigits_=!1;goog.i18n.NumberFormat.setEnforceAsciiDigits=function(a){goog.i18n.NumberFormat.enforceAsciiDigits_=a};goog.i18n.NumberFormat.isEnforceAsciiDigits=function(){return goog.i18n.NumberFormat.enforceAsciiDigits_};goog.i18n.NumberFormat.prototype.setMinimumFractionDigits=function(a){if(0<this.significantDigits_&&0<a)throw Error("Can't combine significant digits and minimum fraction digits");this.minimumFractionDigits_=a};
+goog.i18n.NumberFormat.prototype.setMaximumFractionDigits=function(a){this.maximumFractionDigits_=a};goog.i18n.NumberFormat.prototype.setSignificantDigits=function(a){if(0<this.minimumFractionDigits_&&0<=a)throw Error("Can't combine significant digits and minimum fraction digits");this.significantDigits_=a};
+goog.i18n.NumberFormat.prototype.applyPattern_=function(a){a.replace(/ /g,"\u00a0");var b=[0];this.positivePrefix_=this.parseAffix_(a,b);var c=b[0];this.parseTrunk_(a,b);c=b[0]-c;this.positiveSuffix_=this.parseAffix_(a,b);b[0]<a.length&&a.charAt(b[0])==goog.i18n.NumberFormat.PATTERN_SEPARATOR_?(b[0]++,this.negativePrefix_=this.parseAffix_(a,b),b[0]+=c,this.negativeSuffix_=this.parseAffix_(a,b)):(this.negativePrefix_=this.positivePrefix_+this.negativePrefix_,this.negativeSuffix_+=this.positiveSuffix_)};
+goog.i18n.NumberFormat.prototype.applyStandardPattern_=function(a){switch(a){case goog.i18n.NumberFormat.Format.DECIMAL:this.applyPattern_(goog.i18n.NumberFormatSymbols.DECIMAL_PATTERN);break;case goog.i18n.NumberFormat.Format.SCIENTIFIC:this.applyPattern_(goog.i18n.NumberFormatSymbols.SCIENTIFIC_PATTERN);break;case goog.i18n.NumberFormat.Format.PERCENT:this.applyPattern_(goog.i18n.NumberFormatSymbols.PERCENT_PATTERN);break;case goog.i18n.NumberFormat.Format.CURRENCY:this.applyPattern_(goog.i18n.currency.adjustPrecision(goog.i18n.NumberFormatSymbols.CURRENCY_PATTERN,
+this.intlCurrencyCode_));break;case goog.i18n.NumberFormat.Format.COMPACT_SHORT:this.applyCompactStyle_(goog.i18n.NumberFormat.CompactStyle.SHORT);break;case goog.i18n.NumberFormat.Format.COMPACT_LONG:this.applyCompactStyle_(goog.i18n.NumberFormat.CompactStyle.LONG);break;default:throw Error("Unsupported pattern type.");}};
+goog.i18n.NumberFormat.prototype.applyCompactStyle_=function(a){this.compactStyle_=a;this.applyPattern_(goog.i18n.NumberFormatSymbols.DECIMAL_PATTERN);this.setMinimumFractionDigits(0);this.setMaximumFractionDigits(2);this.setSignificantDigits(2)};
+goog.i18n.NumberFormat.prototype.parse=function(a,b){var c=b||[0];if(this.compactStyle_!=goog.i18n.NumberFormat.CompactStyle.NONE)throw Error("Parsing of compact numbers is unimplemented");var d=NaN;a=a.replace(/ /g,"\u00a0");var e=a.indexOf(this.positivePrefix_,c[0])==c[0],f=a.indexOf(this.negativePrefix_,c[0])==c[0];e&&f&&(this.positivePrefix_.length>this.negativePrefix_.length?f=!1:this.positivePrefix_.length<this.negativePrefix_.length&&(e=!1));e?c[0]+=this.positivePrefix_.length:f&&(c[0]+=this.negativePrefix_.length);
+a.indexOf(goog.i18n.NumberFormatSymbols.INFINITY,c[0])==c[0]?(c[0]+=goog.i18n.NumberFormatSymbols.INFINITY.length,d=Infinity):d=this.parseNumber_(a,c);if(e){if(a.indexOf(this.positiveSuffix_,c[0])!=c[0])return NaN;c[0]+=this.positiveSuffix_.length}else if(f){if(a.indexOf(this.negativeSuffix_,c[0])!=c[0])return NaN;c[0]+=this.negativeSuffix_.length}return f?-d:d};
+goog.i18n.NumberFormat.prototype.parseNumber_=function(a,b){var c=!1,d=!1,e=!1,f=1,g=goog.i18n.NumberFormatSymbols.DECIMAL_SEP,h=goog.i18n.NumberFormatSymbols.GROUP_SEP,k=goog.i18n.NumberFormatSymbols.EXP_SYMBOL;if(this.compactStyle_!=goog.i18n.NumberFormat.CompactStyle.NONE)throw Error("Parsing of compact style numbers is not implemented");for(var l="";b[0]<a.length;b[0]++){var m=a.charAt(b[0]),p=this.getDigit_(m);if(0<=p&&9>=p)l+=p,e=!0;else if(m==g.charAt(0)){if(c||d)break;l+=".";c=!0}else if(m==
+h.charAt(0)&&("\u00a0"!=h.charAt(0)||b[0]+1<a.length&&0<=this.getDigit_(a.charAt(b[0]+1)))){if(c||d)break}else if(m==k.charAt(0)){if(d)break;l+="E";d=!0}else if("+"==m||"-"==m)l+=m;else if(m==goog.i18n.NumberFormatSymbols.PERCENT.charAt(0)){if(1!=f)break;f=100;if(e){b[0]++;break}}else if(m==goog.i18n.NumberFormatSymbols.PERMILL.charAt(0)){if(1!=f)break;f=1E3;if(e){b[0]++;break}}else break}return parseFloat(l)/f};
+goog.i18n.NumberFormat.prototype.format=function(a){if(isNaN(a))return goog.i18n.NumberFormatSymbols.NAN;var b=[],c=goog.isNull(this.baseFormattingNumber_)?a:this.baseFormattingNumber_,c=this.getUnitAfterRounding_(c,a);a/=Math.pow(10,c.divisorBase);b.push(c.prefix);var d=0>a||0==a&&0>1/a;b.push(d?this.negativePrefix_:this.positivePrefix_);isFinite(a)?(a*=d?-1:1,a*=this.multiplier_,this.useExponentialNotation_?this.subformatExponential_(a,b):this.subformatFixed_(a,this.minimumIntegerDigits_,b)):b.push(goog.i18n.NumberFormatSymbols.INFINITY);
+b.push(d?this.negativeSuffix_:this.positiveSuffix_);b.push(c.suffix);return b.join("")};goog.i18n.NumberFormat.prototype.roundNumber_=function(a){var b=Math.pow(10,this.maximumFractionDigits_),c=0>=this.significantDigits_?Math.round(a*b):Math.floor(this.roundToSignificantDigits_(a*b,this.significantDigits_,this.maximumFractionDigits_));isFinite(c)?(a=Math.floor(c/b),b=Math.floor(c-a*b)):b=0;return{intValue:a,fracValue:b}};
+goog.i18n.NumberFormat.prototype.subformatFixed_=function(a,b,c){if(this.minimumFractionDigits_>this.maximumFractionDigits_)throw Error("Min value must be less than max value");a=this.roundNumber_(a);var d=Math.pow(10,this.maximumFractionDigits_),e=a.intValue,f=a.fracValue,g=0==e?0:this.intLog10_(e)+1,h=0<this.minimumFractionDigits_||0<f||this.showTrailingZeros_&&g<this.significantDigits_;a=this.minimumFractionDigits_;h&&(a=this.showTrailingZeros_&&0<this.significantDigits_?this.significantDigits_-
+g:this.minimumFractionDigits_);for(var k="",g=e;1E20<g;)k="0"+k,g=Math.round(g/10);var k=g+k,l=goog.i18n.NumberFormatSymbols.DECIMAL_SEP,m=goog.i18n.NumberFormatSymbols.GROUP_SEP,g=goog.i18n.NumberFormat.enforceAsciiDigits_?48:goog.i18n.NumberFormatSymbols.ZERO_DIGIT.charCodeAt(0),p=k.length;if(0<e||0<b){for(e=p;e<b;e++)c.push(String.fromCharCode(g));for(e=0;e<p;e++)c.push(String.fromCharCode(g+1*k.charAt(e))),1<p-e&&0<this.groupingSize_&&1==(p-e)%this.groupingSize_&&c.push(m)}else h||c.push(String.fromCharCode(g));
+(this.decimalSeparatorAlwaysShown_||h)&&c.push(l);b=""+(f+d);for(d=b.length;"0"==b.charAt(d-1)&&d>a+1;)d--;for(e=1;e<d;e++)c.push(String.fromCharCode(g+1*b.charAt(e)))};
+goog.i18n.NumberFormat.prototype.addExponentPart_=function(a,b){b.push(goog.i18n.NumberFormatSymbols.EXP_SYMBOL);0>a?(a=-a,b.push(goog.i18n.NumberFormatSymbols.MINUS_SIGN)):this.useSignForPositiveExponent_&&b.push(goog.i18n.NumberFormatSymbols.PLUS_SIGN);for(var c=""+a,d=goog.i18n.NumberFormat.enforceAsciiDigits_?"0":goog.i18n.NumberFormatSymbols.ZERO_DIGIT,e=c.length;e<this.minExponentDigits_;e++)b.push(d);b.push(c)};
+goog.i18n.NumberFormat.prototype.subformatExponential_=function(a,b){if(0==a)this.subformatFixed_(a,this.minimumIntegerDigits_,b),this.addExponentPart_(0,b);else{var c=goog.math.safeFloor(Math.log(a)/Math.log(10));a/=Math.pow(10,c);var d=this.minimumIntegerDigits_;if(1<this.maximumIntegerDigits_&&this.maximumIntegerDigits_>this.minimumIntegerDigits_){for(;0!=c%this.maximumIntegerDigits_;)a*=10,c--;d=1}else 1>this.minimumIntegerDigits_?(c++,a/=10):(c-=this.minimumIntegerDigits_-1,a*=Math.pow(10,this.minimumIntegerDigits_-
+1));this.subformatFixed_(a,d,b);this.addExponentPart_(c,b)}};goog.i18n.NumberFormat.prototype.getDigit_=function(a){a=a.charCodeAt(0);if(48<=a&&58>a)return a-48;var b=goog.i18n.NumberFormatSymbols.ZERO_DIGIT.charCodeAt(0);return b<=a&&a<b+10?a-b:-1};goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_="0";goog.i18n.NumberFormat.PATTERN_GROUPING_SEPARATOR_=",";goog.i18n.NumberFormat.PATTERN_DECIMAL_SEPARATOR_=".";goog.i18n.NumberFormat.PATTERN_PER_MILLE_="\u2030";goog.i18n.NumberFormat.PATTERN_PERCENT_="%";
+goog.i18n.NumberFormat.PATTERN_DIGIT_="#";goog.i18n.NumberFormat.PATTERN_SEPARATOR_=";";goog.i18n.NumberFormat.PATTERN_EXPONENT_="E";goog.i18n.NumberFormat.PATTERN_PLUS_="+";goog.i18n.NumberFormat.PATTERN_MINUS_="-";goog.i18n.NumberFormat.PATTERN_CURRENCY_SIGN_="\u00a4";goog.i18n.NumberFormat.QUOTE_="'";
+goog.i18n.NumberFormat.prototype.parseAffix_=function(a,b){for(var c="",d=!1,e=a.length;b[0]<e;b[0]++){var f=a.charAt(b[0]);if(f==goog.i18n.NumberFormat.QUOTE_)b[0]+1<e&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.QUOTE_?(b[0]++,c+="'"):d=!d;else if(d)c+=f;else switch(f){case goog.i18n.NumberFormat.PATTERN_DIGIT_:case goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_:case goog.i18n.NumberFormat.PATTERN_GROUPING_SEPARATOR_:case goog.i18n.NumberFormat.PATTERN_DECIMAL_SEPARATOR_:case goog.i18n.NumberFormat.PATTERN_SEPARATOR_:return c;
+case goog.i18n.NumberFormat.PATTERN_CURRENCY_SIGN_:if(b[0]+1<e&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.PATTERN_CURRENCY_SIGN_)b[0]++,c+=this.intlCurrencyCode_;else switch(this.currencyStyle_){case goog.i18n.NumberFormat.CurrencyStyle.LOCAL:c+=goog.i18n.currency.getLocalCurrencySign(this.intlCurrencyCode_);break;case goog.i18n.NumberFormat.CurrencyStyle.GLOBAL:c+=goog.i18n.currency.getGlobalCurrencySign(this.intlCurrencyCode_);break;case goog.i18n.NumberFormat.CurrencyStyle.PORTABLE:c+=goog.i18n.currency.getPortableCurrencySign(this.intlCurrencyCode_)}break;
+case goog.i18n.NumberFormat.PATTERN_PERCENT_:if(1!=this.multiplier_)throw Error("Too many percent/permill");this.multiplier_=100;c+=goog.i18n.NumberFormatSymbols.PERCENT;break;case goog.i18n.NumberFormat.PATTERN_PER_MILLE_:if(1!=this.multiplier_)throw Error("Too many percent/permill");this.multiplier_=1E3;c+=goog.i18n.NumberFormatSymbols.PERMILL;break;default:c+=f}}return c};
+goog.i18n.NumberFormat.prototype.parseTrunk_=function(a,b){for(var c=-1,d=0,e=0,f=0,g=-1,h=a.length,k=!0;b[0]<h&&k;b[0]++){var l=a.charAt(b[0]);switch(l){case goog.i18n.NumberFormat.PATTERN_DIGIT_:0<e?f++:d++;0<=g&&0>c&&g++;break;case goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_:if(0<f)throw Error('Unexpected "0" in pattern "'+a+'"');e++;0<=g&&0>c&&g++;break;case goog.i18n.NumberFormat.PATTERN_GROUPING_SEPARATOR_:g=0;break;case goog.i18n.NumberFormat.PATTERN_DECIMAL_SEPARATOR_:if(0<=c)throw Error('Multiple decimal separators in pattern "'+
+a+'"');c=d+e+f;break;case goog.i18n.NumberFormat.PATTERN_EXPONENT_:if(this.useExponentialNotation_)throw Error('Multiple exponential symbols in pattern "'+a+'"');this.useExponentialNotation_=!0;this.minExponentDigits_=0;b[0]+1<h&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.PATTERN_PLUS_&&(b[0]++,this.useSignForPositiveExponent_=!0);for(;b[0]+1<h&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_;)b[0]++,this.minExponentDigits_++;if(1>d+e||1>this.minExponentDigits_)throw Error('Malformed exponential pattern "'+
+a+'"');k=!1;break;default:b[0]--,k=!1}}0==e&&0<d&&0<=c&&(e=c,0==e&&e++,f=d-e,d=e-1,e=1);if(0>c&&0<f||0<=c&&(c<d||c>d+e)||0==g)throw Error('Malformed pattern "'+a+'"');f=d+e+f;this.maximumFractionDigits_=0<=c?f-c:0;0<=c&&(this.minimumFractionDigits_=d+e-c,0>this.minimumFractionDigits_&&(this.minimumFractionDigits_=0));e=0<=c?c:f;this.minimumIntegerDigits_=e-d;this.useExponentialNotation_&&(this.maximumIntegerDigits_=d+this.minimumIntegerDigits_,0==this.maximumFractionDigits_&&0==this.minimumIntegerDigits_&&
+(this.minimumIntegerDigits_=1));this.groupingSize_=Math.max(0,g);this.decimalSeparatorAlwaysShown_=0==c||c==f};goog.i18n.NumberFormat.NULL_UNIT_={prefix:"",suffix:"",divisorBase:0};
+goog.i18n.NumberFormat.prototype.getUnitFor_=function(a,b){var c=this.compactStyle_==goog.i18n.NumberFormat.CompactStyle.SHORT?goog.i18n.CompactNumberFormatSymbols.COMPACT_DECIMAL_SHORT_PATTERN:goog.i18n.CompactNumberFormatSymbols.COMPACT_DECIMAL_LONG_PATTERN;if(3>a)return goog.i18n.NumberFormat.NULL_UNIT_;a=Math.min(14,a);c=c[Math.pow(10,a)];if(!c)return goog.i18n.NumberFormat.NULL_UNIT_;c=c[b];return c&&"0"!=c?(c=/([^0]*)(0+)(.*)/.exec(c))?{prefix:c[1],suffix:c[3],divisorBase:a-(c[2].length-1)}:
+goog.i18n.NumberFormat.NULL_UNIT_:goog.i18n.NumberFormat.NULL_UNIT_};
+goog.i18n.NumberFormat.prototype.getUnitAfterRounding_=function(a,b){if(this.compactStyle_==goog.i18n.NumberFormat.CompactStyle.NONE)return goog.i18n.NumberFormat.NULL_UNIT_;a=Math.abs(a);b=Math.abs(b);var c=this.pluralForm_(a),d=1>=a?0:this.intLog10_(a),c=this.getUnitFor_(d,c).divisorBase,d=b/Math.pow(10,c),d=this.roundNumber_(d),e=a/Math.pow(10,c),e=this.roundNumber_(e),d=this.pluralForm_(d.intValue+d.fracValue);return this.getUnitFor_(c+this.intLog10_(e.intValue),d)};
+goog.i18n.NumberFormat.prototype.intLog10_=function(a){for(var b=0;1<=(a/=10);)b++;return b};goog.i18n.NumberFormat.prototype.roundToSignificantDigits_=function(a,b,c){if(!a)return a;var d=this.intLog10_(a);b=b-d-1;if(b<-c)return c=Math.pow(10,c),Math.round(a/c)*c;c=Math.pow(10,b);a=Math.round(a*c);return a/c};goog.i18n.NumberFormat.prototype.pluralForm_=function(){return"other"};goog.i18n.ordinalRules={};goog.i18n.ordinalRules.Keyword={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};goog.i18n.ordinalRules.defaultSelect_=function(){return goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.frSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.huSelect_=function(a){return 1==a||5==a?goog.i18n.ordinalRules.Keyword.ONE:goog.i18n.ordinalRules.Keyword.OTHER};
+goog.i18n.ordinalRules.svSelect_=function(a){return 1!=a%10&&2!=a%10||11==a%100||12==a%100?goog.i18n.ordinalRules.Keyword.OTHER:goog.i18n.ordinalRules.Keyword.ONE};goog.i18n.ordinalRules.enSelect_=function(a){return 1==a%10&&11!=a%100?goog.i18n.ordinalRules.Keyword.ONE:2==a%10&&12!=a%100?goog.i18n.ordinalRules.Keyword.TWO:3==a%10&&13!=a%100?goog.i18n.ordinalRules.Keyword.FEW:goog.i18n.ordinalRules.Keyword.OTHER};
+goog.i18n.ordinalRules.itSelect_=function(a){return 11==a||8==a||80==a||800==a?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.caSelect_=function(a){return 1==a||3==a?goog.i18n.ordinalRules.Keyword.ONE:2==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:goog.i18n.ordinalRules.Keyword.OTHER};
+goog.i18n.ordinalRules.mrSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:2==a||3==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.guSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:2==a||3==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:6==a?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER};
+goog.i18n.ordinalRules.bnSelect_=function(a){return 1==a||5==a||7==a||8==a||9==a||10==a?goog.i18n.ordinalRules.Keyword.ONE:2==a||3==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:6==a?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER};
+goog.i18n.ordinalRules.zuSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:a==(a|0)&&2<=a&&9>=a?goog.i18n.ordinalRules.Keyword.FEW:a==(a|0)&&(10<=a&&19>=a||100<=a&&199>=a||1E3<=a&&1999>=a)?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;"af"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"am"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"ar"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"bg"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"bn"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.bnSelect_);"br"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ca"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.caSelect_);"chr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"cs"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"cy"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"da"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"de"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;
+if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"el"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"en"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_);if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;
+if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;
+if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;"es"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"et"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"eu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"fa"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"fi"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"fil"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);"fr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);
+if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_;"gl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"gsw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"gu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.guSelect_);"haw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"he"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"hi"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.guSelect_);"hr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"hu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.huSelect_);"id"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"in"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"is"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"it"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.itSelect_);"iw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ja"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"kn"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ko"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"ln"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"lt"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"lv"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ml"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"mr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.mrSelect_);"ms"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);
+"mt"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"nb"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"nl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"no"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"or"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"pl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"pt"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"ro"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);"ru"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"sk"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sq"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sv"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.svSelect_);"sw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"ta"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"te"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"th"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"tl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"tr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"uk"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"ur"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"vi"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);"zh"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;
+if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"zu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.zuSelect_);goog.i18n.pluralRules={};goog.i18n.pluralRules.Keyword={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};goog.i18n.pluralRules.defaultSelect_=function(){return goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.arSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:a==(a|0)&&3<=a%100&&10>=a%100?goog.i18n.pluralRules.Keyword.FEW:a==(a|0)&&11<=a%100&&99>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.heSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:0!=a&&0==a%10?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.enSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.filSelect_=function(a){return 0==a||1==a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.frSelect_=function(a){return 0<=a&&2>=a&&2!=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.lvSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a%10&&11!=a%100?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.iuSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.gaSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:a==(a|0)&&3<=a&&6>=a?goog.i18n.pluralRules.Keyword.FEW:a==(a|0)&&7<=a&&10>=a?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.roSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:0==a||1!=a&&a==(a|0)&&1<=a%100&&19>=a%100?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.ltSelect_=function(a){return 1==a%10&&(11>a%100||19<a%100)?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a%10&&9>=a%10&&(11>a%100||19<a%100)?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.beSelect_=function(a){return 1==a%10&&11!=a%100?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a%10&&4>=a%10&&(12>a%100||14<a%100)?goog.i18n.pluralRules.Keyword.FEW:0==a%10||a==(a|0)&&5<=a%10&&9>=a%10||a==(a|0)&&11<=a%100&&14>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.csSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a&&4>=a?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.plSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a%10&&4>=a%10&&(12>a%100||14<a%100)?goog.i18n.pluralRules.Keyword.FEW:1!=a&&(0==a%10||1==a%10)||a==(a|0)&&5<=a%10&&9>=a%10||a==(a|0)&&12<=a%100&&14>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.slSelect_=function(a){return 1==a%100?goog.i18n.pluralRules.Keyword.ONE:2==a%100?goog.i18n.pluralRules.Keyword.TWO:3==a%100||4==a%100?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.mtSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:0==a||a==(a|0)&&2<=a%100&&10>=a%100?goog.i18n.pluralRules.Keyword.FEW:a==(a|0)&&11<=a%100&&19>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.mkSelect_=function(a){return 1==a%10&&11!=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.cySelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:3==a?goog.i18n.pluralRules.Keyword.FEW:6==a?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.lagSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:0<=a&&2>=a&&0!=a&&2!=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.shiSelect_=function(a){return 0<=a&&1>=a?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a&&10>=a?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.brSelect_=function(a){return 1==a%10&&11!=a%100&&71!=a%100&&91!=a%100?goog.i18n.pluralRules.Keyword.ONE:2==a%10&&12!=a%100&&72!=a%100&&92!=a%100?goog.i18n.pluralRules.Keyword.TWO:(3==a%10||4==a%10||9==a%10)&&(10>a%100||19<a%100)&&(70>a%100||79<a%100)&&(90>a%100||99<a%100)?goog.i18n.pluralRules.Keyword.FEW:0!=a&&0==a%1E6?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.kshSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.tzmSelect_=function(a){return 0==a||1==a||a==(a|0)&&11<=a&&99>=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.gvSelect_=function(a){return 1==a%10||2==a%10||0==a%20?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.gdSelect_=function(a){return 1==a||11==a?goog.i18n.pluralRules.Keyword.ONE:2==a||12==a?goog.i18n.pluralRules.Keyword.TWO:a==(a|0)&&(3<=a&&10>=a||13<=a&&19>=a)?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"af"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"am"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);
+"ar"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.arSelect_);"bg"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"bn"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"br"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.brSelect_);"ca"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"chr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);
+"cs"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.csSelect_);"cy"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.cySelect_);"da"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"de"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;
+if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"el"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"en"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;
+if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;
+if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"es"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"et"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);
+"eu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"fa"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"fi"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"fil"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);"fr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.frSelect_);if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.frSelect_;
+"gl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"gsw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"gu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"haw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"he"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.heSelect_);"hi"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);
+"hr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"hu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"id"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"in"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"is"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"it"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);
+"iw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.heSelect_);"ja"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"kn"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"ko"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"ln"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);"lt"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.ltSelect_);
+"lv"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.lvSelect_);"ml"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"mr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"ms"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"mt"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.mtSelect_);"nb"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);
+"nl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"no"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"or"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"pl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.plSelect_);"pt"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;
+if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"ro"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.roSelect_);"ru"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"sk"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.csSelect_);"sl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.slSelect_);"sq"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);
+"sr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"sv"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"sw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"ta"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"te"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"th"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);
+"tl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);"tr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"uk"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"ur"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"vi"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"zh"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);
+if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_;if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_;"zu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);goog.i18n.MessageFormat=function(a){this.literals_=[];this.parsedPattern_=[];this.numberFormatter_=new goog.i18n.NumberFormat(goog.i18n.NumberFormat.Format.DECIMAL);this.parsePattern_(a)};goog.i18n.MessageFormat.LITERAL_PLACEHOLDER_="\ufddf_";goog.i18n.MessageFormat.Element_={STRING:0,BLOCK:1};goog.i18n.MessageFormat.BlockType_={PLURAL:0,ORDINAL:1,SELECT:2,SIMPLE:3,STRING:4,UNKNOWN:5};goog.i18n.MessageFormat.OTHER_="other";goog.i18n.MessageFormat.REGEX_LITERAL_=/'([{}#].*?)'/g;
+goog.i18n.MessageFormat.REGEX_DOUBLE_APOSTROPHE_=/''/g;goog.i18n.MessageFormat.prototype.format=function(a){return this.format_(a,!1)};goog.i18n.MessageFormat.prototype.format_=function(a,b){if(0==this.parsedPattern_.length)return"";var c=[];this.formatBlock_(this.parsedPattern_,a,b,c);c=c.join("");for(b||goog.asserts.assert(-1==c.search("#"),"Not all # were replaced.");0<this.literals_.length;)c=c.replace(this.buildPlaceholder_(this.literals_),this.literals_.pop());return c};
+goog.i18n.MessageFormat.prototype.formatBlock_=function(a,b,c,d){for(var e=0;e<a.length;e++)switch(a[e].type){case goog.i18n.MessageFormat.BlockType_.STRING:d.push(a[e].value);break;case goog.i18n.MessageFormat.BlockType_.SIMPLE:var f=a[e].value;this.formatSimplePlaceholder_(f,b,d);break;case goog.i18n.MessageFormat.BlockType_.SELECT:f=a[e].value;this.formatSelectBlock_(f,b,c,d);break;case goog.i18n.MessageFormat.BlockType_.PLURAL:f=a[e].value;this.formatPluralOrdinalBlock_(f,b,goog.i18n.pluralRules.select,
+c,d);break;case goog.i18n.MessageFormat.BlockType_.ORDINAL:f=a[e].value;this.formatPluralOrdinalBlock_(f,b,goog.i18n.ordinalRules.select,c,d);break;default:goog.asserts.fail("Unrecognized block type.")}};goog.i18n.MessageFormat.prototype.formatSimplePlaceholder_=function(a,b,c){b=b[a];goog.isDef(b)?(this.literals_.push(b),c.push(this.buildPlaceholder_(this.literals_))):c.push("Undefined parameter - "+a)};
+goog.i18n.MessageFormat.prototype.formatSelectBlock_=function(a,b,c,d){var e=a.argumentIndex;goog.isDef(b[e])?(e=a[b[e]],goog.isDef(e)||(e=a[goog.i18n.MessageFormat.OTHER_],goog.asserts.assertArray(e,"Invalid option or missing other option for select block.")),this.formatBlock_(e,b,c,d)):d.push("Undefined parameter - "+e)};
+goog.i18n.MessageFormat.prototype.formatPluralOrdinalBlock_=function(a,b,c,d,e){var f=a.argumentIndex,g=a.argumentOffset,h=+b[f];isNaN(h)?e.push("Undefined or invalid parameter - "+f):(g=h-g,f=a[b[f]],goog.isDef(f)||(goog.asserts.assert(0<=g,"Argument index smaller than offset."),c=c(g),goog.asserts.assertString(c,"Invalid plural key."),f=a[c],goog.isDef(f)||(f=a[goog.i18n.MessageFormat.OTHER_]),goog.asserts.assertArray(f,"Invalid option or missing other option for plural block.")),a=[],this.formatBlock_(f,
+b,d,a),b=a.join(""),goog.asserts.assertString(b,"Empty block in plural."),d?e.push(b):(d=this.numberFormatter_.format(g),e.push(b.replace(/#/g,d))))};goog.i18n.MessageFormat.prototype.parsePattern_=function(a){a&&(a=this.insertPlaceholders_(a),this.parsedPattern_=this.parseBlock_(a))};
+goog.i18n.MessageFormat.prototype.insertPlaceholders_=function(a){var b=this.literals_,c=goog.bind(this.buildPlaceholder_,this);a=a.replace(goog.i18n.MessageFormat.REGEX_DOUBLE_APOSTROPHE_,function(){b.push("'");return c(b)});return a=a.replace(goog.i18n.MessageFormat.REGEX_LITERAL_,function(a,e){b.push(e);return c(b)})};
+goog.i18n.MessageFormat.prototype.extractParts_=function(a){var b=0,c=[],d=[],e=/[{}]/g;e.lastIndex=0;for(var f;f=e.exec(a);){var g=f.index;"}"==f[0]?(f=c.pop(),goog.asserts.assert(goog.isDef(f)&&"{"==f,"No matching { for }."),0==c.length&&(f={},f.type=goog.i18n.MessageFormat.Element_.BLOCK,f.value=a.substring(b,g),d.push(f),b=g+1)):(0==c.length&&(b=a.substring(b,g),""!=b&&d.push({type:goog.i18n.MessageFormat.Element_.STRING,value:b}),b=g+1),c.push("{"))}goog.asserts.assert(0==c.length,"There are mismatched { or } in the pattern.");
+b=a.substring(b);""!=b&&d.push({type:goog.i18n.MessageFormat.Element_.STRING,value:b});return d};goog.i18n.MessageFormat.PLURAL_BLOCK_RE_=/^\s*(\w+)\s*,\s*plural\s*,(?:\s*offset:(\d+))?/;goog.i18n.MessageFormat.ORDINAL_BLOCK_RE_=/^\s*(\w+)\s*,\s*selectordinal\s*,/;goog.i18n.MessageFormat.SELECT_BLOCK_RE_=/^\s*(\w+)\s*,\s*select\s*,/;
+goog.i18n.MessageFormat.prototype.parseBlockType_=function(a){return goog.i18n.MessageFormat.PLURAL_BLOCK_RE_.test(a)?goog.i18n.MessageFormat.BlockType_.PLURAL:goog.i18n.MessageFormat.ORDINAL_BLOCK_RE_.test(a)?goog.i18n.MessageFormat.BlockType_.ORDINAL:goog.i18n.MessageFormat.SELECT_BLOCK_RE_.test(a)?goog.i18n.MessageFormat.BlockType_.SELECT:/^\s*\w+\s*/.test(a)?goog.i18n.MessageFormat.BlockType_.SIMPLE:goog.i18n.MessageFormat.BlockType_.UNKNOWN};
+goog.i18n.MessageFormat.prototype.parseBlock_=function(a){var b=[];a=this.extractParts_(a);for(var c=0;c<a.length;c++){var d={};if(goog.i18n.MessageFormat.Element_.STRING==a[c].type)d.type=goog.i18n.MessageFormat.BlockType_.STRING,d.value=a[c].value;else if(goog.i18n.MessageFormat.Element_.BLOCK==a[c].type){var e=this.parseBlockType_(a[c].value);switch(e){case goog.i18n.MessageFormat.BlockType_.SELECT:d.type=goog.i18n.MessageFormat.BlockType_.SELECT;d.value=this.parseSelectBlock_(a[c].value);break;
+case goog.i18n.MessageFormat.BlockType_.PLURAL:d.type=goog.i18n.MessageFormat.BlockType_.PLURAL;d.value=this.parsePluralBlock_(a[c].value);break;case goog.i18n.MessageFormat.BlockType_.ORDINAL:d.type=goog.i18n.MessageFormat.BlockType_.ORDINAL;d.value=this.parseOrdinalBlock_(a[c].value);break;case goog.i18n.MessageFormat.BlockType_.SIMPLE:d.type=goog.i18n.MessageFormat.BlockType_.SIMPLE;d.value=a[c].value;break;default:goog.asserts.fail("Unknown block type.")}}else goog.asserts.fail("Unknown part of the pattern.");
+b.push(d)}return b};
+goog.i18n.MessageFormat.prototype.parseSelectBlock_=function(a){var b="",c=goog.i18n.MessageFormat.SELECT_BLOCK_RE_;a=a.replace(c,function(a,c){b=c;return""});c={};c.argumentIndex=b;a=this.extractParts_(a);for(var d=0;d<a.length;){var e=a[d].value;goog.asserts.assertString(e,"Missing select key element.");d++;goog.asserts.assert(d<a.length,"Missing or invalid select value element.");if(goog.i18n.MessageFormat.Element_.BLOCK==a[d].type)var f=this.parseBlock_(a[d].value);else goog.asserts.fail("Expected block type.");c[e.replace(/\s/g,
+"")]=f;d++}goog.asserts.assertArray(c[goog.i18n.MessageFormat.OTHER_],"Missing other key in select statement.");return c};
+goog.i18n.MessageFormat.prototype.parsePluralBlock_=function(a){var b="",c=0,d=goog.i18n.MessageFormat.PLURAL_BLOCK_RE_;a=a.replace(d,function(a,d,e){b=d;e&&(c=parseInt(e,10));return""});d={};d.argumentIndex=b;d.argumentOffset=c;a=this.extractParts_(a);for(var e=0;e<a.length;){var f=a[e].value;goog.asserts.assertString(f,"Missing plural key element.");e++;goog.asserts.assert(e<a.length,"Missing or invalid plural value element.");if(goog.i18n.MessageFormat.Element_.BLOCK==a[e].type)var g=this.parseBlock_(a[e].value);
+else goog.asserts.fail("Expected block type.");d[f.replace(/\s*(?:=)?(\w+)\s*/,"$1")]=g;e++}goog.asserts.assertArray(d[goog.i18n.MessageFormat.OTHER_],"Missing other key in plural statement.");return d};
+goog.i18n.MessageFormat.prototype.parseOrdinalBlock_=function(a){var b="",c=goog.i18n.MessageFormat.ORDINAL_BLOCK_RE_;a=a.replace(c,function(a,c){b=c;return""});c={};c.argumentIndex=b;c.argumentOffset=0;a=this.extractParts_(a);for(var d=0;d<a.length;){var e=a[d].value;goog.asserts.assertString(e,"Missing ordinal key element.");d++;goog.asserts.assert(d<a.length,"Missing or invalid ordinal value element.");if(goog.i18n.MessageFormat.Element_.BLOCK==a[d].type)var f=this.parseBlock_(a[d].value);else goog.asserts.fail("Expected block type.");
+c[e.replace(/\s*(?:=)?(\w+)\s*/,"$1")]=f;d++}goog.asserts.assertArray(c[goog.i18n.MessageFormat.OTHER_],"Missing other key in selectordinal statement.");return c};goog.i18n.MessageFormat.prototype.buildPlaceholder_=function(a){goog.asserts.assert(0<a.length,"Literal array is empty.");a=(a.length-1).toString(10);return goog.i18n.MessageFormat.LITERAL_PLACEHOLDER_+a+"_"};cvox.TtsCapturingEventListener=function(){};cvox.TtsInterface=function(){};cvox.TtsInterface.prototype.speak=function(){};cvox.TtsInterface.prototype.isSpeaking=function(){};cvox.TtsInterface.prototype.stop=function(){};cvox.TtsInterface.prototype.increaseOrDecreaseProperty=function(){};cvox.TtsInterface.prototype.getDefaultProperty=function(){};cvox.AbstractTts=function(){this.ttsProperties={};this.propertyDefault={rate:0.5,pitch:0.5,volume:0.5};this.propertyMin={rate:0,pitch:0,volume:0};this.propertyMax={rate:1,pitch:1,volume:1};this.propertyStep={rate:0.1,pitch:0.1,volume:0.1};if(void 0==cvox.AbstractTts.pronunciationDictionaryRegexp_){var a=[],b;for(b in cvox.AbstractTts.PRONUNCIATION_DICTIONARY)a.push(b);a="\\b("+a.join("|")+")\\b";cvox.AbstractTts.pronunciationDictionaryRegexp_=RegExp(a,"ig")}if(void 0==cvox.AbstractTts.substitutionDictionaryRegexp_){var a=
+[],c;for(c in cvox.AbstractTts.SUBSTITUTION_DICTIONARY)a.push(c);a="("+a.join("|")+")";cvox.AbstractTts.substitutionDictionaryRegexp_=RegExp(a,"ig")}};cvox.AbstractTts.prototype.speak=function(){return this};cvox.AbstractTts.prototype.isSpeaking=function(){return!1};cvox.AbstractTts.prototype.stop=function(){};
+cvox.AbstractTts.prototype.increaseOrDecreaseProperty=function(a,b){var c=this.propertyMin[a],d=this.propertyMax[a],e=this.propertyStep[a],f=this.ttsProperties[a],f=b?f+e:f-e;this.ttsProperties[a]=Math.max(Math.min(f,d),c)};
+cvox.AbstractTts.prototype.mergeProperties=function(a){var b={},c;if(this.ttsProperties)for(c in this.ttsProperties)b[c]=this.ttsProperties[c];if(a){c=cvox.AbstractTts;"number"==typeof a[c.VOLUME]&&(b[c.VOLUME]=a[c.VOLUME]);"number"==typeof a[c.PITCH]&&(b[c.PITCH]=a[c.PITCH]);"number"==typeof a[c.RATE]&&(b[c.RATE]=a[c.RATE]);"string"==typeof a[c.LANG]&&(b[c.LANG]=a[c.LANG]);var d=this,e=function(c,e){if("number"==typeof a[e]&&"number"==typeof b[c]){b[c]+=a[e];var h=d.propertyMin[c],k=d.propertyMax[c];
+b[c]>k?b[c]=k:b[c]<h&&(b[c]=h)}};e(c.VOLUME,c.RELATIVE_VOLUME);e(c.PITCH,c.RELATIVE_PITCH);e(c.RATE,c.RELATIVE_RATE)}return b};cvox.AbstractTts.RATE="rate";cvox.AbstractTts.PITCH="pitch";cvox.AbstractTts.VOLUME="volume";cvox.AbstractTts.LANG="lang";cvox.AbstractTts.RELATIVE_RATE="relativeRate";cvox.AbstractTts.RELATIVE_PITCH="relativePitch";cvox.AbstractTts.RELATIVE_VOLUME="relativeVolume";cvox.AbstractTts.COLOR="color";cvox.AbstractTts.FONT_WEIGHT="fontWeight";cvox.AbstractTts.PUNCTUATION_ECHO="punctuationEcho";
+cvox.AbstractTts.PAUSE="pause";cvox.AbstractTts.PERSONALITY_ANNOTATION={relativePitch:-0.25,color:"yellow",punctuationEcho:"none"};cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT={punctuationEcho:"none"};cvox.AbstractTts.PERSONALITY_ASIDE={relativePitch:-0.1,color:"#669"};cvox.AbstractTts.PERSONALITY_CAPITAL={relativePitch:0.6};cvox.AbstractTts.PERSONALITY_DELETED={punctuationEcho:"none",relativePitch:-0.6};cvox.AbstractTts.PERSONALITY_QUOTE={relativePitch:0.1,color:"#b6b",fontWeight:"bold"};
+cvox.AbstractTts.PERSONALITY_STRONG={relativePitch:0.1,color:"#b66",fontWeight:"bold"};cvox.AbstractTts.PERSONALITY_EMPHASIS={relativeVolume:0.1,relativeRate:-0.1,color:"#6bb",fontWeight:"bold"};cvox.AbstractTts.DEBUG=!0;cvox.AbstractTts.QUEUE_MODE_FLUSH=0;cvox.AbstractTts.QUEUE_MODE_QUEUE=1;
+cvox.AbstractTts.CHARACTER_DICTIONARY={" ":"space","`":"backtick","~":"tilde","!":"exclamation","@":"at","#":"pound",$:"dollar","%":"percent","^":"caret","&":"ampersand","*":"asterisk","(":"open_paren",")":"close_paren","-":"dash",_:"underscore","=":"equals","+":"plus","[":"left_bracket","]":"right_bracket","{":"left_brace","}":"right_brace","|":"pipe",";":"semicolon",":":"colon",",":"comma",".":"dot","<":"less_than",">":"greater_than","/":"slash","?":"question_mark",'"':"quote","'":"apostrophe",
+"\t":"tab","\r":"return","\n":"new line","\\":"backslash"};cvox.AbstractTts.PRONUNCIATION_DICTIONARY={admob:"ad-mob",adsense:"ad-sense",adwords:"ad-words",angularjs:"angular j s",bcc:"B C C",cc:"C C",chromevox:"chrome vox",cr48:"C R 48",ctrl:"control",doubleclick:"double-click",gmail:"gee mail",gtalk:"gee talk",http:"H T T P",https:"H T T P S",igoogle:"eye google",pagerank:"page-rank",username:"user-name",www:"W W W",youtube:"you tube"};
+cvox.AbstractTts.SUBSTITUTION_DICTIONARY={"://":"colon slash slash","\u00bc":"one fourth","\u00bd":"one half","\u200e":"left to right mark","\u2190":"left arrow","\u2191":"up arrow","\u2192":"right arrow","\u2193":"down arrow","\u21d0":"left double arrow","\u21d1":"up double arrow","\u21d2":"right double arrow","\u21d3":"down double arrow","\u21e6":"left arrow","\u21e7":"up arrow","\u21e8":"right arrow","\u21e9":"down arrow","\u2303":"control","\u2318":"command","\u2325":"option","\u25b2":"up triangle",
+"\u25b3":"up triangle","\u25b4":"up triangle","\u25b5":"up triangle","\u25b6":"right triangle","\u25b7":"right triangle","\u25b8":"right triangle","\u25b9":"right triangle","\u25ba":"right pointer","\u25bb":"right pointer","\u25bc":"down triangle","\u25bd":"down triangle","\u25be":"down triangle","\u25bf":"down triangle","\u25c0":"left triangle","\u25c1":"left triangle","\u25c2":"left triangle","\u25c3":"left triangle","\u25c4":"left pointer","\u25c5":"left pointer","\uf8ff":"apple"};
+cvox.AbstractTts.repetitionRegexp_=/([-\/\\|!@#$%^&*\(\)=_+\[\]\{\}.?;'":<>])\1{2,}/g;cvox.AbstractTts.repetitionReplace_=function(a){var b=a.length;return" "+(new goog.i18n.MessageFormat(cvox.ChromeVox.msgs.getMsg(cvox.AbstractTts.CHARACTER_DICTIONARY[a[0]]))).format({COUNT:b})+" "};cvox.AbstractTts.prototype.getDefaultProperty=function(a){return this.propertyDefault[a]};cvox.AbstractEarcons=function(){this.enabled=!0};cvox.AbstractEarcons.prototype.playEarcon=function(){};cvox.AbstractEarcons.prototype.playEarconByName=function(a){this.playEarcon(this.getEarconId(a))};cvox.AbstractEarcons.prototype.earconsAvailable=function(){return!0};
+cvox.AbstractEarcons.prototype.getEarconId=function(a){this.earconNamesToIds||(this.earconNamesToIds={},this.earconNamesToIds.ALERT_MODAL=cvox.AbstractEarcons.ALERT_MODAL,this.earconNamesToIds.ALERT_NONMODAL=cvox.AbstractEarcons.ALERT_NONMODAL,this.earconNamesToIds.BULLET=cvox.AbstractEarcons.BULLET,this.earconNamesToIds.BUSY_PROGRESS_LOOP=cvox.AbstractEarcons.BUSY_PROGRESS_LOOP,this.earconNamesToIds.BUSY_WORKING_LOOP=cvox.AbstractEarcons.BUSY_WORKING_LOOP,this.earconNamesToIds.BUTTON=cvox.AbstractEarcons.BUTTON,
+this.earconNamesToIds.CHECK_OFF=cvox.AbstractEarcons.CHECK_OFF,this.earconNamesToIds.CHECK_ON=cvox.AbstractEarcons.CHECK_ON,this.earconNamesToIds.CHROMEVOX_DISABLED=cvox.AbstractEarcons.CHROMEVOX_DISABLED,this.earconNamesToIds.CHROMEVOX_ENABLED=cvox.AbstractEarcons.CHROMEVOX_ENABLED,this.earconNamesToIds.COLLAPSED=cvox.AbstractEarcons.COLLAPSED,this.earconNamesToIds.EDITABLE_TEXT=cvox.AbstractEarcons.EDITABLE_TEXT,this.earconNamesToIds.ELLIPSIS=cvox.AbstractEarcons.ELLIPSIS,this.earconNamesToIds.EXPANDED=
+cvox.AbstractEarcons.EXPANDED,this.earconNamesToIds.FONT_CHANGE=cvox.AbstractEarcons.FONT_CHANGE,this.earconNamesToIds.INVALID_KEYPRESS=cvox.AbstractEarcons.INVALID_KEYPRESS,this.earconNamesToIds.LINK=cvox.AbstractEarcons.LINK,this.earconNamesToIds.LISTBOX=cvox.AbstractEarcons.LISTBOX,this.earconNamesToIds.LIST_ITEM=cvox.AbstractEarcons.LIST_ITEM,this.earconNamesToIds.LONG_DESC=cvox.AbstractEarcons.LONG_DESC,this.earconNamesToIds.NEW_MAIL=cvox.AbstractEarcons.NEW_MAIL,this.earconNamesToIds.OBJECT_CLOSE=
+cvox.AbstractEarcons.OBJECT_CLOSE,this.earconNamesToIds.OBJECT_DELETE=cvox.AbstractEarcons.OBJECT_DELETE,this.earconNamesToIds.OBJECT_DESELECT=cvox.AbstractEarcons.OBJECT_DESELECT,this.earconNamesToIds.OBJECT_ENTER=cvox.AbstractEarcons.OBJECT_ENTER,this.earconNamesToIds.OBJECT_EXIT=cvox.AbstractEarcons.OBJECT_EXIT,this.earconNamesToIds.OBJECT_OPEN=cvox.AbstractEarcons.OBJECT_OPEN,this.earconNamesToIds.OBJECT_SELECT=cvox.AbstractEarcons.OBJECT_SELECT,this.earconNamesToIds.PARAGRAPH_BREAK=cvox.AbstractEarcons.PARAGRAPH_BREAK,
+this.earconNamesToIds.SEARCH_HIT=cvox.AbstractEarcons.SEARCH_HIT,this.earconNamesToIds.SEARCH_MISS=cvox.AbstractEarcons.SEARCH_MISS,this.earconNamesToIds.SECTION=cvox.AbstractEarcons.SECTION,this.earconNamesToIds.SELECTION=cvox.AbstractEarcons.SELECTION,this.earconNamesToIds.SELECTION_REVERSE=cvox.AbstractEarcons.SELECTION_REVERSE,this.earconNamesToIds.SPECIAL_CONTENT=cvox.AbstractEarcons.SPECIAL_CONTENT,this.earconNamesToIds.TASK_SUCCESS=cvox.AbstractEarcons.TASK_SUCCESS,this.earconNamesToIds.WRAP=
+cvox.AbstractEarcons.WRAP,this.earconNamesToIds.WRAP_EDGE=cvox.AbstractEarcons.WRAP_EDGE);return this.earconNamesToIds[a]};cvox.AbstractEarcons.prototype.getEarconFilename=function(a){return cvox.AbstractEarcons.earconMap[a]};cvox.AbstractEarcons.prototype.toggle=function(){return this.enabled=!this.enabled};cvox.AbstractEarcons.ALERT_MODAL=0;cvox.AbstractEarcons.ALERT_NONMODAL=1;cvox.AbstractEarcons.BULLET=2;cvox.AbstractEarcons.BUSY_PROGRESS_LOOP=3;cvox.AbstractEarcons.BUSY_WORKING_LOOP=4;
+cvox.AbstractEarcons.BUTTON=5;cvox.AbstractEarcons.CHECK_OFF=6;cvox.AbstractEarcons.CHECK_ON=7;cvox.AbstractEarcons.CHROMEVOX_DISABLED=8;cvox.AbstractEarcons.CHROMEVOX_ENABLED=9;cvox.AbstractEarcons.COLLAPSED=10;cvox.AbstractEarcons.EDITABLE_TEXT=11;cvox.AbstractEarcons.ELLIPSIS=12;cvox.AbstractEarcons.EXPANDED=13;cvox.AbstractEarcons.FONT_CHANGE=14;cvox.AbstractEarcons.INVALID_KEYPRESS=15;cvox.AbstractEarcons.LINK=16;cvox.AbstractEarcons.LISTBOX=17;cvox.AbstractEarcons.LIST_ITEM=18;
+cvox.AbstractEarcons.LONG_DESC=19;cvox.AbstractEarcons.NEW_MAIL=20;cvox.AbstractEarcons.OBJECT_CLOSE=21;cvox.AbstractEarcons.OBJECT_DELETE=22;cvox.AbstractEarcons.OBJECT_DESELECT=23;cvox.AbstractEarcons.OBJECT_ENTER=24;cvox.AbstractEarcons.OBJECT_EXIT=25;cvox.AbstractEarcons.OBJECT_OPEN=26;cvox.AbstractEarcons.OBJECT_SELECT=27;cvox.AbstractEarcons.PARAGRAPH_BREAK=28;cvox.AbstractEarcons.SEARCH_HIT=29;cvox.AbstractEarcons.SEARCH_MISS=30;cvox.AbstractEarcons.SECTION=31;
+cvox.AbstractEarcons.SELECTION=32;cvox.AbstractEarcons.SELECTION_REVERSE=33;cvox.AbstractEarcons.SPECIAL_CONTENT=34;cvox.AbstractEarcons.TASK_SUCCESS=35;cvox.AbstractEarcons.WRAP=36;cvox.AbstractEarcons.WRAP_EDGE=37;cvox.AbstractEarcons.earconMap={};cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.ALERT_MODAL]="alert_modal.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.ALERT_NONMODAL]="alert_nonmodal.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BULLET]="bullet.ogg";
+cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BUSY_PROGRESS_LOOP]="busy_progress_loop.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BUSY_WORKING_LOOP]="busy_working_loop.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BUTTON]="button.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHECK_OFF]="check_off.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHECK_ON]="check_on.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHROMEVOX_DISABLED]="chromevox_disabled.ogg";
+cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHROMEVOX_ENABLED]="chromevox_enabled.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.COLLAPSED]="collapsed.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.EDITABLE_TEXT]="editable_text.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.ELLIPSIS]="ellipsis.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.EXPANDED]="expanded.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.FONT_CHANGE]="font_change.ogg";
+cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.INVALID_KEYPRESS]="invalid_keypress.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LINK]="link.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LISTBOX]="listbox.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LIST_ITEM]="bullet.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LONG_DESC]="long_desc.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.NEW_MAIL]="new_mail.ogg";
+cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_CLOSE]="object_close.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_DELETE]="object_delete.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_DESELECT]="object_deselect.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_ENTER]="object_enter.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_EXIT]="object_exit.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_OPEN]="object_open.ogg";
+cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_SELECT]="object_select.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.PARAGRAPH_BREAK]="paragraph_break.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SEARCH_HIT]="search_hit.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SEARCH_MISS]="search_miss.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SECTION]="section.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SELECTION]="selection.ogg";
+cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SELECTION_REVERSE]="selection_reverse.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SPECIAL_CONTENT]="special_content.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.TASK_SUCCESS]="task_success.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.WRAP]="wrap.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.WRAP_EDGE]="wrap_edge.ogg";cvox.NodeStateUtil={};cvox.NodeStateUtil.expand=function(a){try{return a.map(function(a){if(1>a.length)throw Error("cvox.NodeState must have at least one entry");var b=a.slice(1).map(function(a){return"number"==typeof a?cvox.ChromeVox.msgs.getNumber(a):a});return cvox.ChromeVox.msgs.getMsg(a[0],b)}).join(" ")}catch(b){throw Error("error: "+b+" state: "+a);}};cvox.AriaUtil=function(){};cvox.AriaUtil.NO_ROLE_NAME=" ";
+cvox.AriaUtil.WIDGET_ROLE_TO_NAME={alert:"aria_role_alert",alertdialog:"aria_role_alertdialog",button:"aria_role_button",checkbox:"aria_role_checkbox",columnheader:"aria_role_columnheader",combobox:"aria_role_combobox",dialog:"aria_role_dialog",grid:"aria_role_grid",gridcell:"aria_role_gridcell",link:"aria_role_link",listbox:"aria_role_listbox",log:"aria_role_log",marquee:"aria_role_marquee",menu:"aria_role_menu",menubar:"aria_role_menubar",menuitem:"aria_role_menuitem",menuitemcheckbox:"aria_role_menuitemcheckbox",
+menuitemradio:"aria_role_menuitemradio",option:cvox.AriaUtil.NO_ROLE_NAME,progressbar:"aria_role_progressbar",radio:"aria_role_radio",radiogroup:"aria_role_radiogroup",rowheader:"aria_role_rowheader",scrollbar:"aria_role_scrollbar",slider:"aria_role_slider",spinbutton:"aria_role_spinbutton",status:"aria_role_status",tab:"aria_role_tab",tabpanel:"aria_role_tabpanel",textbox:"aria_role_textbox",timer:"aria_role_timer",toolbar:"aria_role_toolbar",tooltip:"aria_role_tooltip",treeitem:"aria_role_treeitem"};
+cvox.AriaUtil.STRUCTURE_ROLE_TO_NAME={article:"aria_role_article",application:"aria_role_application",banner:"aria_role_banner",columnheader:"aria_role_columnheader",complementary:"aria_role_complementary",contentinfo:"aria_role_contentinfo",definition:"aria_role_definition",directory:"aria_role_directory",document:"aria_role_document",form:"aria_role_form",group:"aria_role_group",heading:"aria_role_heading",img:"aria_role_img",list:"aria_role_list",listitem:"aria_role_listitem",main:"aria_role_main",
+math:"aria_role_math",navigation:"aria_role_navigation",note:"aria_role_note",region:"aria_role_region",rowheader:"aria_role_rowheader",search:"aria_role_search",separator:"aria_role_separator"};
+cvox.AriaUtil.ATTRIBUTE_VALUE_TO_STATUS=[{name:"aria-autocomplete",values:{inline:"aria_autocomplete_inline",list:"aria_autocomplete_list",both:"aria_autocomplete_both"}},{name:"aria-checked",values:{"true":"aria_checked_true","false":"aria_checked_false",mixed:"aria_checked_mixed"}},{name:"aria-disabled",values:{"true":"aria_disabled_true"}},{name:"aria-expanded",values:{"true":"aria_expanded_true","false":"aria_expanded_false"}},{name:"aria-invalid",values:{"true":"aria_invalid_true",grammar:"aria_invalid_grammar",
+spelling:"aria_invalid_spelling"}},{name:"aria-multiline",values:{"true":"aria_multiline_true"}},{name:"aria-multiselectable",values:{"true":"aria_multiselectable_true"}},{name:"aria-pressed",values:{"true":"aria_pressed_true","false":"aria_pressed_false",mixed:"aria_pressed_mixed"}},{name:"aria-readonly",values:{"true":"aria_readonly_true"}},{name:"aria-required",values:{"true":"aria_required_true"}},{name:"aria-selected",values:{"true":"aria_selected_true","false":"aria_selected_false"}}];
+cvox.AriaUtil.isHiddenRecursive=function(a){if(cvox.AriaUtil.isHidden(a))return!0;for(a=a.parentElement;a;){if("true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden"))return!0;a=a.parentElement}return!1};cvox.AriaUtil.isHidden=function(a){return!a||a.getAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")?!0:!1};
+cvox.AriaUtil.isForcedVisibleRecursive=function(a){for(;a;){if(a.getAttribute&&a.hasAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden"))return"false"==a.getAttribute("aria-hidden");a=a.parentElement}return!1};cvox.AriaUtil.isLeafElement=function(a){var b=a.getAttribute("role");a=a.hasAttribute("aria-label")&&0<a.getAttribute("aria-label").length;return"img"==b||"progressbar"==b||a};
+cvox.AriaUtil.isDescendantOfRole=function(a,b){for(;a;){if(b&&a&&a.getAttribute("role")==b)return!0;a=a.parentNode}return!1};cvox.AriaUtil.getRoleNameMsgForRole_=function(a){return(a=cvox.AriaUtil.WIDGET_ROLE_TO_NAME[a])?a==cvox.AriaUtil.NO_ROLE_NAME?" ":a:null};cvox.AriaUtil.isButton=function(a){var b=cvox.AriaUtil.getRoleAttribute(a);return"button"==b||"BUTTON"==a.tagName?!0:"INPUT"==a.tagName?"submit"==a.type||"reset"==a.type||"button"==a.type:!1};
+cvox.AriaUtil.getRoleNameMsg=function(a){var b;if(a&&a.getAttribute){var c=cvox.AriaUtil.getRoleAttribute(a);if("true"==a.getAttribute("aria-haspopup")&&cvox.AriaUtil.isButton(a))return"aria_role_popup_button";c&&((b=cvox.AriaUtil.getRoleNameMsgForRole_(c))||(b=cvox.AriaUtil.STRUCTURE_ROLE_TO_NAME[c]));if("menuitem"==c){for(a=a.parentElement;a&&(!a.getAttribute||"menu"!=cvox.AriaUtil.getRoleAttribute(a)&&"menubar"!=cvox.AriaUtil.getRoleAttribute(a));)a=a.parentElement;a&&"menubar"==cvox.AriaUtil.getRoleAttribute(a)&&
+(b=cvox.AriaUtil.getRoleNameMsgForRole_("menu"))}}b||(b="");return b};cvox.AriaUtil.getRoleName=function(a){var b=cvox.AriaUtil.getRoleNameMsg(a),b=cvox.ChromeVox.msgs.getMsg(b),c=cvox.AriaUtil.getRoleAttribute(a);"heading"==c&&a.hasAttribute("aria-level")&&(b+=" "+a.getAttribute("aria-level"));return b?b:""};
+cvox.AriaUtil.getStateMsgs=function(a,b){var c=[];if(!a||!a.getAttribute)return c;for(var d=0,e;e=cvox.AriaUtil.ATTRIBUTE_VALUE_TO_STATUS[d];d++){var f=a.getAttribute(e.name);(e=e.values[f])&&c.push([e])}if("grid"==a.getAttribute("role"))return cvox.AriaUtil.getGridState_(a,a);e=cvox.AriaUtil.getRoleAttribute(a);"true"==a.getAttribute("aria-haspopup")&&("menuitem"==e?c.push(["has_submenu"]):cvox.AriaUtil.isButton(a)||c.push(["has_popup"]));if(d=a.getAttribute("aria-valuetext"))return c.push([d]),
+c;var d=a.getAttribute("aria-valuenow"),f=a.getAttribute("aria-valuemin"),g=a.getAttribute("aria-valuemax");if(null!=d&&null!=f&&null!=g&&("scrollbar"==e||"progressbar"==e)){var h=Math.round(d/(g-f)*100);c.push(["state_percent",h]);return c}null!=d&&c.push(["aria_value_now",d]);null!=f&&c.push(["aria_value_min",f]);null!=g&&c.push(["aria_value_max",g]);f=a;d=null;if(cvox.AriaUtil.isCompositeControl(f)&&b)d=cvox.AriaUtil.getActiveDescendant(f);else if(e=cvox.AriaUtil.getRoleAttribute(a),"option"==
+e||"menuitem"==e||"menuitemcheckbox"==e||"menuitemradio"==e||"radio"==e||"tab"==e||"treeitem"==e)for(d=a,f=a.parentElement;f&&!cvox.AriaUtil.isCompositeControl(f)&&(!(f=f.parentElement)||"treeitem"!=cvox.AriaUtil.getRoleAttribute(f)););if(f&&(cvox.AriaUtil.isCompositeControl(f)||"treeitem"==cvox.AriaUtil.getRoleAttribute(f))&&d){e=cvox.AriaUtil.getRoleAttribute(f);var k;switch(e){case "combobox":case "listbox":k=["option"];break;case "menu":k=["menuitem","menuitemcheck","menuitemradio"];break;case "radiogroup":k=
+["radio"];break;case "tablist":k=["tab"];break;case "tree":case "treegrid":case "treeitem":k=["treeitem"]}if(k){var l;e=parseInt(d.getAttribute("aria-setsize"),10);isNaN(e)||(h=e);e=parseInt(d.getAttribute("aria-posinset"),10);isNaN(e)||(l=e);if(void 0==h||void 0==l)if(k=cvox.AriaUtil.getNextLevel(f,k),void 0==h&&(h=k.length),void 0==l)for(e=0;e<k.length;e++)k[e]==d&&(l=e+1);l&&h&&c.push(["list_position",l,h])}}return c};
+cvox.AriaUtil.getGridState_=function(a,b){var c=cvox.AriaUtil.getActiveDescendant(b);if(c)for(var d='*[role~="row"]',d=b.querySelectorAll(d),e=0;e<d.length;e++)for(var f=d[e].querySelectorAll('*[role~="gridcell"]'),g=0;g<f.length;g++)if(f[g]==c)return[["aria_role_gridcell_pos",e+1,g+1]];return[]};cvox.AriaUtil.getActiveDescendantId_=function(a){return a.getAttribute?(a=a.getAttribute("aria-activedescendant"))?a:null:null};
+cvox.AriaUtil.getNextLevel=function(a,b){for(var c=[],d=a.childNodes,e=0;e<d.length;e++)if(!cvox.AriaUtil.isHidden(d[e])&&cvox.DomUtil.isVisible(d[e])){var f=cvox.AriaUtil.getNextLevelItems(d[e],b);0<f.length&&(c=c.concat(f))}return c};
+cvox.AriaUtil.getNextLevelItems=function(a,b){if(1!=a.nodeType)return[];if(-1!=b.indexOf(cvox.AriaUtil.getRoleAttribute(a)))return[a];var c=a.childNodes,d=c.length;if(0==d)return[];for(var e=[],f=0;f<d;f++){var g=cvox.AriaUtil.getNextLevelItems(c[f],b);0<g.length&&(e=e.concat(g))}return e};cvox.AriaUtil.getActiveDescendant=function(a){for(var b={},c=a;c;){var d=cvox.AriaUtil.getActiveDescendantId_(c);if(!d)break;if(d in b)return null;b[d]=!0;c=document.getElementById(d)}return c==a?null:c};
+cvox.AriaUtil.isControlWidget=function(a){if(a&&a.getAttribute)switch(a=cvox.AriaUtil.getRoleAttribute(a),a){case "button":case "checkbox":case "combobox":case "listbox":case "menu":case "menuitemcheckbox":case "menuitemradio":case "radio":case "slider":case "progressbar":case "scrollbar":case "spinbutton":case "tab":case "tablist":case "textbox":return!0}return!1};cvox.AriaUtil.isCompositeControl=function(a){if(a&&a.getAttribute)switch(a=cvox.AriaUtil.getRoleAttribute(a),a){case "combobox":case "grid":case "listbox":case "menu":case "menubar":case "radiogroup":case "tablist":case "tree":case "treegrid":return!0}return!1};
+cvox.AriaUtil.getAriaLive=function(a){if(!a.hasAttribute)return null;var b=a.getAttribute("aria-live");if("off"==b)return null;if(b)return b;a=cvox.AriaUtil.getRoleAttribute(a);switch(a){case "alert":return"assertive";case "log":case "status":return"polite";default:return null}};cvox.AriaUtil.getAriaAtomic=function(a){if(!a.hasAttribute)return!1;var b=a.getAttribute("aria-atomic");if(b)return"true"===b;a=cvox.AriaUtil.getRoleAttribute(a);return"alert"==a?!0:!1};
+cvox.AriaUtil.getAriaBusy=function(a){return a.hasAttribute?(a=a.getAttribute("aria-busy"))?"true"===a:!1:!1};cvox.AriaUtil.getAriaRelevant=function(a,b){if(!a.hasAttribute)return!1;var c;c=a.hasAttribute("aria-relevant")?a.getAttribute("aria-relevant"):"additions text";"all"==c&&(c="additions removals text");c=c.replace(/\s+/g," ").replace(/^\s+|\s+$/g,"").split(" ");return"all"==b?0<=c.indexOf("additions")&&0<=c.indexOf("text")&&0<=c.indexOf("removals"):0<=c.indexOf(b)};
+cvox.AriaUtil.getLiveRegions=function(a){var b=[];if(a.querySelectorAll){var c=a.querySelectorAll('[role="alert"], [role="log"], [role="marquee"], [role="status"], [role="timer"], [aria-live]');if(c)for(var d=0;d<c.length;d++)b.push(c[d])}for(;a;){if(cvox.AriaUtil.getAriaLive(a)){b.push(a);break}a=a.parentElement}return b};cvox.AriaUtil.isLandmark=function(a){if(!a||!a.getAttribute)return!1;a=cvox.AriaUtil.getRoleAttribute(a);switch(a){case "application":case "banner":case "complementary":case "contentinfo":case "form":case "main":case "navigation":case "search":return!0}return!1};
+cvox.AriaUtil.isGrid=function(a){if(!a||!a.getAttribute)return!1;a=cvox.AriaUtil.getRoleAttribute(a);switch(a){case "grid":case "treegrid":return!0}return!1};
+cvox.AriaUtil.getEarcon=function(a){if(!a||!a.getAttribute)return null;var b=cvox.AriaUtil.getRoleAttribute(a);switch(b){case "button":return cvox.AbstractEarcons.BUTTON;case "checkbox":case "radio":case "menuitemcheckbox":case "menuitemradio":return a=a.getAttribute("aria-checked"),"true"==a?cvox.AbstractEarcons.CHECK_ON:cvox.AbstractEarcons.CHECK_OFF;case "combobox":case "listbox":return cvox.AbstractEarcons.LISTBOX;case "textbox":return cvox.AbstractEarcons.EDITABLE_TEXT;case "listitem":return cvox.AbstractEarcons.BULLET;
+case "link":return cvox.AbstractEarcons.LINK}return null};cvox.AriaUtil.getRoleAttribute=function(a){if(!a.getAttribute)return"";var b=a.getAttribute("role");a.hasAttribute("chromevoxoriginalrole")&&(b=a.getAttribute("chromevoxoriginalrole"));return b};cvox.AriaUtil.isMath=function(a){if(!a||!a.getAttribute)return!1;a=cvox.AriaUtil.getRoleAttribute(a);return"math"==a};cvox.DomPredicates={};cvox.DomPredicates.checkboxPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"checkbox"==a[b].getAttribute("role")||"INPUT"==a[b].tagName&&"checkbox"==a[b].type)return a[b];return null};cvox.DomPredicates.radioPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"radio"==a[b].getAttribute("role")||"INPUT"==a[b].tagName&&"radio"==a[b].type)return a[b];return null};
+cvox.DomPredicates.sliderPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"slider"==a[b].getAttribute("role")||"INPUT"==a[b].tagName&&"range"==a[b].type)return a[b];return null};cvox.DomPredicates.graphicPredicate=function(a){for(var b=0;b<a.length;b++)if("IMG"==a[b].tagName||"INPUT"==a[b].tagName&&"img"==a[b].type)return a[b];return null};
+cvox.DomPredicates.buttonPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"button"==a[b].getAttribute("role")||"BUTTON"==a[b].tagName||"INPUT"==a[b].tagName&&"submit"==a[b].type||"INPUT"==a[b].tagName&&"button"==a[b].type||"INPUT"==a[b].tagName&&"reset"==a[b].type)return a[b];return null};cvox.DomPredicates.comboBoxPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"combobox"==a[b].getAttribute("role")||"SELECT"==a[b].tagName)return a[b];return null};
+cvox.DomPredicates.editTextPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"textbox"==a[b].getAttribute("role")||"TEXTAREA"==a[b].tagName||a[b].isContentEditable||"INPUT"==a[b].tagName&&cvox.DomUtil.isInputTypeText(a[b]))return a[b];return null};cvox.DomPredicates.headingPredicate=function(a){for(var b=0;b<a.length;b++){if(a[b].getAttribute&&"heading"==a[b].getAttribute("role"))return a[b];switch(a[b].tagName){case "H1":case "H2":case "H3":case "H4":case "H5":case "H6":return a[b]}}return null};
+cvox.DomPredicates.heading1Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H1")};cvox.DomPredicates.heading2Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H2")};cvox.DomPredicates.heading3Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H3")};cvox.DomPredicates.heading4Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H4")};cvox.DomPredicates.heading5Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H5")};
+cvox.DomPredicates.heading6Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H6")};cvox.DomPredicates.linkPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"link"==a[b].getAttribute("role")||"A"==a[b].tagName&&a[b].href)return a[b];return null};cvox.DomPredicates.tablePredicate=function(a){return(a=cvox.DomUtil.findTableNodeInList(a,{allowCaptions:!0}))&&!cvox.DomUtil.isLayoutTable(a)?a:null};
+cvox.DomPredicates.cellPredicate=function(a){for(var b=a.length-1;0<=b;--b){var c=a[b];if("TD"==c.tagName||"TH"==c.tagName||c.getAttribute&&"gridcell"==c.getAttribute("role"))return c}return null};cvox.DomPredicates.visitedLinkPredicate=function(a){for(var b=a.length-1;0<=b;--b)if(cvox.DomPredicates.linkPredicate([a[b]])&&cvox.ChromeVox.visitedUrls[a[b].href])return a[b]};
+cvox.DomPredicates.listPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"list"==a[b].getAttribute("role")||"UL"==a[b].tagName||"OL"==a[b].tagName)return a[b];return null};cvox.DomPredicates.listItemPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"listitem"==a[b].getAttribute("role")||"LI"==a[b].tagName)return a[b];return null};cvox.DomPredicates.blockquotePredicate=function(a){return cvox.DomPredicates.containsTagName_(a,"BLOCKQUOTE")};
+cvox.DomPredicates.formFieldPredicate=function(a){for(var b=0;b<a.length;b++)if(cvox.DomUtil.isControl(a[b]))return a[b];return null};cvox.DomPredicates.landmarkPredicate=function(a){for(var b=0;b<a.length;b++)if(cvox.AriaUtil.isLandmark(a[b]))return a[b];return null};cvox.DomPredicates.containsTagName_=function(a,b){for(var c=a.length;c--;)if(a[c].tagName==b)return a[c];return null};cvox.DomPredicates.mathPredicate=function(a){return cvox.DomUtil.findMathNodeInList(a)};
+cvox.DomPredicates.sectionPredicate=function(a){for(var b=0;b<a.length;b++){if(cvox.DomUtil.isSemanticElt(a[b])||cvox.AriaUtil.isLandmark(a[b])||a[b].getAttribute&&"heading"==a[b].getAttribute("role"))return a[b];switch(a[b].tagName){case "H1":case "H2":case "H3":case "H4":case "H5":case "H6":return a[b]}}return null};
+cvox.DomPredicates.controlPredicate=function(a){for(var b=0;b<a.length;b++)if(cvox.DomUtil.isControl(a[b])||a[b].getAttribute&&"link"==a[b].getAttribute("role")||"A"==a[b].tagName&&a[b].href)return a[b];return null};cvox.DomPredicates.captionPredicate=function(a){for(var b=0;b<a.length;b++)if("CAPTION"==a[b].tagName)return a[b];return null};
+cvox.DomPredicates.articlePredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"article"==a[b].getAttribute("role")||"ARTICLE"==a[b].tagName)return a[b];return null};cvox.DomPredicates.mediaPredicate=function(a){for(var b=0;b<a.length;b++)if("AUDIO"==a[b].tagName||"VIDEO"==a[b].tagName)return a[b];return null};cvox.DomPredicates.orderedListPredicate=function(a){for(var b=0;b<a.length;b++)if("OL"==a[b].tagName)return a[b];return null};cvox.XpathUtil=function(){};cvox.XpathUtil.nameSpaces_={xhtml:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML"};cvox.XpathUtil.resolveNameSpace=function(a){return cvox.XpathUtil.nameSpaces_[a]||null};cvox.XpathUtil.evalXPath=function(a,b){try{var c=b.ownerDocument.evaluate(a,b,cvox.XpathUtil.resolveNameSpace,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null)}catch(d){return[]}for(var e=[],f=c.iterateNext();f;f=c.iterateNext())e.push(f);return e};
+cvox.XpathUtil.getLeafNodes=function(a){try{var b=a.ownerDocument.evaluate(".//*[count(*)=0]",a,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null)}catch(c){return[]}a=[];for(var d=b.iterateNext();d;d=b.iterateNext())a.push(d);return a};cvox.XpathUtil.xpathSupported=function(){return"undefined"==typeof XPathResult?!1:!0};cvox.XpathUtil.evaluateBoolean=function(a,b){try{var c=b.ownerDocument.evaluate(a,b,cvox.XpathUtil.resolveNameSpace,XPathResult.BOOLEAN_TYPE,null)}catch(d){return!1}return c.booleanValue};
+cvox.XpathUtil.evaluateString=function(a,b){try{var c=b.ownerDocument.evaluate(a,b,cvox.XpathUtil.resolveNameSpace,XPathResult.STRING_TYPE,null)}catch(d){return""}return c.stringValue};cvox.DomUtil=function(){};
+cvox.DomUtil.INPUT_TYPE_TO_INFORMATION_TABLE_MSG={button:"input_type_button",checkbox:"input_type_checkbox",color:"input_type_color",datetime:"input_type_datetime","datetime-local":"input_type_datetime_local",date:"input_type_date",email:"input_type_email",file:"input_type_file",image:"input_type_image",month:"input_type_month",number:"input_type_number",password:"input_type_password",radio:"input_type_radio",range:"input_type_range",reset:"input_type_reset",search:"input_type_search",submit:"input_type_submit",
+tel:"input_type_tel",text:"input_type_text",url:"input_type_url",week:"input_type_week"};
+cvox.DomUtil.TAG_TO_INFORMATION_TABLE_VERBOSE_MSG={A:"tag_link",ARTICLE:"tag_article",ASIDE:"tag_aside",AUDIO:"tag_audio",BUTTON:"tag_button",FOOTER:"tag_footer",H1:"tag_h1",H2:"tag_h2",H3:"tag_h3",H4:"tag_h4",H5:"tag_h5",H6:"tag_h6",HEADER:"tag_header",HGROUP:"tag_hgroup",LI:"tag_li",MARK:"tag_mark",NAV:"tag_nav",OL:"tag_ol",SECTION:"tag_section",SELECT:"tag_select",TABLE:"tag_table",TEXTAREA:"tag_textarea",TIME:"tag_time",UL:"tag_ul",VIDEO:"tag_video"};
+cvox.DomUtil.TAG_TO_INFORMATION_TABLE_BRIEF_MSG={AUDIO:"tag_audio",BUTTON:"tag_button",SELECT:"tag_select",TABLE:"tag_table",TEXTAREA:"tag_textarea",VIDEO:"tag_video"};cvox.DomUtil.FORMATTING_TAGS="B BIG CITE CODE DFN EM I KBD SAMP SMALL SPAN STRIKE STRONG SUB SUP U VAR".split(" ");
+cvox.DomUtil.isVisible=function(a,b){b=b||{};"undefined"===typeof b.checkAncestors&&(b.checkAncestors=!0);"undefined"===typeof b.checkDescendants&&(b.checkDescendants=!0);if("IFRAME"==a.tagName&&!a.src)return!1;if(cvox.AriaUtil.isForcedVisibleRecursive(a))return!0;if(b.checkAncestors&&cvox.DomUtil.hasInvisibleAncestor_(a))return!1;var c=b.checkDescendants;return cvox.DomUtil.hasVisibleNodeSubtree_(a,c)?!0:!1};
+cvox.DomUtil.hasInvisibleAncestor_=function(a){for(;a=a.parentElement;){var b=document.defaultView.getComputedStyle(a,null);if(cvox.DomUtil.isInvisibleStyle(b,!0))return!0}return!1};
+cvox.DomUtil.hasVisibleNodeSubtree_=function(a,b){if(!(a instanceof Element)){var c=document.defaultView.getComputedStyle(a.parentElement,null);return c=!cvox.DomUtil.isInvisibleStyle(c)}var c=document.defaultView.getComputedStyle(a,null),d=!cvox.DomUtil.isInvisibleStyle(c);if(d)return!0;c=cvox.DomUtil.isInvisibleStyle(c,!0);if(!b||c)return!1;c=a.childNodes;for(d=0;d<c.length;d++){var e=c[d];if(cvox.DomUtil.hasVisibleNodeSubtree_(e,b))return!0}return!1};
+cvox.DomUtil.isInvisibleStyle=function(a,b){return a?"none"!=a.display&&0!=parseFloat(a.opacity)&&(b||"hidden"!=a.visibility&&"collapse"!=a.visibility)?!1:!0:!1};cvox.DomUtil.isDisabled=function(a){if(a.disabled)return!0;for(;a=a.parentElement;)if("FIELDSET"==a.tagName&&a.disabled)return!0;return!1};cvox.DomUtil.isSemanticElt=function(a){return a.tagName&&(a=a.tagName,"SECTION"==a||"NAV"==a||"ARTICLE"==a||"ASIDE"==a||"HGROUP"==a||"HEADER"==a||"FOOTER"==a||"TIME"==a||"MARK"==a)?!0:!1};
+cvox.DomUtil.isLeafNode=function(a,b){if(!(a instanceof Element))return null==a.firstChild;var c=a;if(!b&&!cvox.DomUtil.isVisible(c,{checkAncestors:!1})||!b&&cvox.AriaUtil.isHidden(c)||cvox.AriaUtil.isLeafElement(c))return!0;switch(c.tagName){case "OBJECT":case "EMBED":case "VIDEO":case "AUDIO":case "IFRAME":case "FRAME":return!0}return cvox.DomPredicates.linkPredicate([c])?!cvox.DomUtil.findNode(c,function(a){return!!cvox.DomPredicates.headingPredicate([a])}):cvox.DomUtil.isLeafLevelControl(c)||
+!c.firstChild||cvox.DomUtil.isMath(c)?!0:cvox.DomPredicates.headingPredicate([c])?!cvox.DomUtil.findNode(c,function(a){return!!cvox.DomPredicates.controlPredicate([a])}):!1};cvox.DomUtil.isDescendantOf=function(a,b,c){for(;a;){if(b&&c&&a.tagName&&a.tagName==b&&a.className&&a.className==c||b&&!c&&a.tagName&&a.tagName==b||!b&&c&&a.className&&a.className==c)return!0;a=a.parentNode}return!1};cvox.DomUtil.isDescendantOfNode=function(a,b){for(;a&&b;){if(a.isSameNode(b))return!0;a=a.parentNode}return!1};
+cvox.DomUtil.collapseWhitespace=function(a){return a.replace(/\s+/g," ").replace(/^\s+|\s+$/g,"")};
+cvox.DomUtil.getBaseLabel_=function(a,b,c){var d="";if(a.hasAttribute){if(a.hasAttribute("aria-labelledby"))for(var e=a.getAttribute("aria-labelledby").split(" "),f,g=0;f=e[g];g++)(f=document.getElementById(f))&&(d+=" "+cvox.DomUtil.getName(f,!0,c,!0));else if(a.hasAttribute("aria-label"))d=a.getAttribute("aria-label");else if(a.constructor==HTMLImageElement)d=cvox.DomUtil.getImageTitle(a);else if("FIELDSET"==a.tagName)for(e=a.getElementsByTagName("LEGEND"),d="",g=0;f=e[g];g++)d+=" "+cvox.DomUtil.getName(f,
+!0,c);0==d.length&&a&&a.id&&(a=document.querySelector('label[for="'+a.id+'"]'))&&(d=cvox.DomUtil.getName(a,b,c))}return cvox.DomUtil.collapseWhitespace(d)};cvox.DomUtil.getNearestAncestorLabel_=function(a){for(var b="";a&&"LABEL"!=a.tagName;)a=a.parentElement;a&&!a.hasAttribute("for")&&(b=cvox.DomUtil.getName(a,!0,!1));return b};
+cvox.DomUtil.getInputName_=function(a){var b="";"image"==a.type?b=cvox.DomUtil.getImageTitle(a):"submit"==a.type?b=a.hasAttribute("value")?a.getAttribute("value"):"Submit":"reset"==a.type?b=a.hasAttribute("value")?a.getAttribute("value"):"Reset":"button"==a.type&&a.hasAttribute("value")&&(b=a.getAttribute("value"));return b};
+cvox.DomUtil.getName=function(a,b,c,d){if(!a||!0==a.cvoxGetNameMarked)return"";a.cvoxGetNameMarked=!0;b=cvox.DomUtil.getName_(a,b,c,d);a.cvoxGetNameMarked=!1;a=cvox.DomUtil.getPrefixText(a);return a+b};cvox.DomUtil.hasChildrenBasedName_=function(a,b){return cvox.DomPredicates.linkPredicate([a])||cvox.DomPredicates.headingPredicate([a])||"BUTTON"==a.tagName||cvox.AriaUtil.isControlWidget(a)||!cvox.DomUtil.isLeafNode(a,b)?!0:!1};
+cvox.DomUtil.getName_=function(a,b,c,d){"undefined"===typeof b&&(b=!0);"undefined"===typeof c&&(c=!0);if(a.constructor==Text)return a.data;var e=cvox.DomUtil.getBaseLabel_(a,b,c);0==e.length&&cvox.DomUtil.isControl(a)&&(e=cvox.DomUtil.getNearestAncestorLabel_(a));0==e.length&&a.constructor==HTMLInputElement&&(e=cvox.DomUtil.getInputName_(a));return cvox.DomUtil.isInputTypeText(a)&&a.hasAttribute("placeholder")?(b=a.getAttribute("placeholder"),0<e.length?0<cvox.DomUtil.getValue(a).length?e:e+" with hint "+
+b:b):0<e.length?e:0==cvox.DomUtil.collapseWhitespace(a.textContent).length&&a.hasAttribute&&a.hasAttribute("title")?a.getAttribute("title"):!b||cvox.AriaUtil.isCompositeControl(a)?"":cvox.DomUtil.hasChildrenBasedName_(a,d)?cvox.DomUtil.getNameFromChildren(a,c,d):""};
+cvox.DomUtil.getNameFromChildren=function(a,b,c){void 0==b&&(b=!0);for(var d="",e="",f=0;f<a.childNodes.length;f++){var g=a.childNodes[f],e=a.childNodes[f-1]||g;if(b||!cvox.DomUtil.isControl(g)){var h=cvox.DomUtil.isVisible(g,{checkAncestors:!1});if(c||h&&!cvox.AriaUtil.isHidden(g))e="SPAN"==e.tagName||"SPAN"==g.tagName||"SPAN"==g.parentNode.tagName?"":" ",d+=e+cvox.DomUtil.getName(g,!0,b)}}return d};
+cvox.DomUtil.getPrefixText=function(a,b){b=b||0;for(var c=cvox.DomUtil.getAncestors(a),d="",e=c=cvox.DomPredicates.listItemPredicate(c);e&&e.firstChild;)e=e.firstChild;c&&c.parentNode&&0==b&&"OL"==c.parentNode.tagName&&a==e&&"none"!=document.defaultView.getComputedStyle(c.parentNode).listStyleType&&(d=cvox.DomUtil.toArray(c.parentNode.children).filter(function(a){return"LI"==a.tagName}),d=d.indexOf(c)+1,-1!=document.defaultView.getComputedStyle(c.parentNode).listStyleType.indexOf("latin")&&(d--,d=
+String.fromCharCode(65+d%26)),d+=". ");return d};
+cvox.DomUtil.getControlLabelHeuristics=function(a){if(a.hasAttribute&&(a.hasAttribute("aria-label")&&""==a.getAttribute("aria-label")||a.hasAttribute("aria-title")&&""==a.getAttribute("aria-title")))return"";for(var b=cvox.DomUtil.previousLeafNode(a),c=0;b&&(!cvox.DomUtil.hasContent(b)||cvox.DomUtil.isControl(b));)b=cvox.DomUtil.previousLeafNode(b),c++;for(var c=cvox.DomUtil.directedNextLeafNode(a),d=0;c&&(!cvox.DomUtil.hasContent(c)||cvox.DomUtil.isControl(c));)c=cvox.DomUtil.directedNextLeafNode(c),
+d++;if(b&&c){for(var d=a,e=0;d&&!cvox.DomUtil.isDescendantOfNode(b,d);)d=d.parentNode,e++;d=a;for(a=0;d&&!cvox.DomUtil.isDescendantOfNode(c,d);)d=d.parentNode,a++;b=a<e?c:b}else b=b||c;return b?cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(b)+" "+cvox.DomUtil.getName(b)):""};
+cvox.DomUtil.getValue=function(a){var b=cvox.AriaUtil.getActiveDescendant(a);if(b)return cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(b)+" "+cvox.DomUtil.getName(b));if(a.constructor==HTMLSelectElement){var b="",c=a.selectedOptions?a.selectedOptions[0]:null;a=a.selectedOptions?a.selectedOptions[a.selectedOptions.length-1]:null;c&&a&&c!=a?b=cvox.ChromeVox.msgs.getMsg("selected_options_value",[c.text,a.text]):c&&(b=c.text+"");return b}if(a.constructor==HTMLTextAreaElement)return a.value;if(a.constructor==
+HTMLInputElement)switch(a.type){case "hidden":case "image":case "submit":case "reset":case "button":case "checkbox":case "radio":return"";case "password":return a.value.replace(/./g,"dot ");default:return a.value}return a.isContentEditable?cvox.DomUtil.getNameFromChildren(a,!0):""};
+cvox.DomUtil.getImageTitle=function(a){a.hasAttribute("alt")?a=a.alt:a.hasAttribute("title")?a=a.title:(a=a.src,"data"!=a.substring(0,4)?(a=a.substring(a.lastIndexOf("/")+1,a.lastIndexOf(".")),a=1<=a.length&&16>=a.length?a+" Image":"Image"):a="Image");return a};
+cvox.DomUtil.hasContent=function(a){if(8==a.nodeType||cvox.DomUtil.isDescendantOf(a,"HEAD")||cvox.DomUtil.isDescendantOf(a,"SCRIPT")||cvox.DomUtil.isDescendantOf(a,"NOSCRIPT")||cvox.DomUtil.isDescendantOf(a,"NOEMBED")||cvox.DomUtil.isDescendantOf(a,"STYLE")||!cvox.DomUtil.isVisible(a)||cvox.AriaUtil.isHidden(a))return!1;if(cvox.DomUtil.isControl(a)||cvox.DomUtil.isDescendantOf(a,"VIDEO")||cvox.DomUtil.isDescendantOf(a,"AUDIO")||"IFRAME"==a.tagName&&a.src&&0!=a.src.indexOf("javascript:"))return!0;
+for(var b="button,input,select,textarea",c=a.parentElement;c&&"LABEL"!=c.tagName;)c=c.parentElement;if(c){var d=c.querySelector(b);if(c.hasAttribute("for")){if(c=c.getAttribute("for"),(c=document.getElementById(c))&&cvox.DomUtil.isControl(c)&&!d)return!1}else if(d)return!1}for(d=a.parentElement;d&&"LEGEND"!=d.tagName;)d=d.parentElement;if(d){for(c=d.parentElement;c&&"FIELDSET"!=c.tagName;)c=c.parentElement;d=c&&c.querySelector(b);if(c&&!d)return!1}if(cvox.DomPredicates.linkPredicate([a])||"TABLE"==
+a.tagName||cvox.DomUtil.isMath(a)||cvox.DomPredicates.headingPredicate([a]))return!0;b=cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getName(a);a=cvox.DomUtil.getState(a,!0);return b.match(/^\s+$/)&&""===a?!1:!0};cvox.DomUtil.getAncestors=function(a){for(var b=[];a;)b.push(a),a=a.parentNode;for(b.reverse();b.length&&!b[0].tagName&&!b[0].nodeValue;)b.shift();return b};cvox.DomUtil.compareAncestors=function(a,b){for(var c=0;a[c]&&b[c]&&a[c]==b[c];)c++;a[c]||b[c]||(c=-1);return c};
+cvox.DomUtil.getUniqueAncestors=function(a,b,c){a=cvox.DomUtil.getAncestors(a);b=cvox.DomUtil.getAncestors(b);a=cvox.DomUtil.compareAncestors(a,b);a=b.slice(a);return 0==a.length&&c?b:a};
+cvox.DomUtil.getRoleMsg=function(a,b){var c;c=cvox.AriaUtil.getRoleNameMsg(a);c||("INPUT"==a.tagName?c=cvox.DomUtil.INPUT_TYPE_TO_INFORMATION_TABLE_MSG[a.type]:"A"==a.tagName&&cvox.DomUtil.isInternalLink(a)?c="internal_link":"A"==a.tagName&&a.getAttribute("name")?c="":a.isContentEditable?c="input_type_text":cvox.DomUtil.isMath(a)?c="math_expr":"TABLE"==a.tagName&&cvox.DomUtil.isLayoutTable(a)?c="":b==cvox.VERBOSITY_BRIEF?c=cvox.DomUtil.TAG_TO_INFORMATION_TABLE_BRIEF_MSG[a.tagName]:(c=cvox.DomUtil.TAG_TO_INFORMATION_TABLE_VERBOSE_MSG[a.tagName],
+cvox.DomUtil.hasLongDesc(a)&&(c="image_with_long_desc"),!c&&a.onclick&&(c="clickable")));return c};cvox.DomUtil.getRole=function(a,b){var c=cvox.DomUtil.getRoleMsg(a,b)||"",d=c&&" "!=c?cvox.ChromeVox.msgs.getMsg(c):"";return d?d:c};cvox.DomUtil.getListLength=function(a){var b=0;for(a=a.firstChild;a;a=a.nextSibling)if("LI"==a.tagName||a.getAttribute&&"listitem"==a.getAttribute("role")){if(a.hasAttribute("aria-setsize")){var c=parseInt(a.getAttribute("aria-setsize"),10);if(!isNaN(c))return c}b++}return b};
+cvox.DomUtil.getStateMsgs=function(a,b){var c=cvox.AriaUtil.getActiveDescendant(a);if(c)return cvox.DomUtil.getStateMsgs(c,b);var c=[],d=a.getAttribute?a.getAttribute("role"):"";(c=cvox.AriaUtil.getStateMsgs(a,b))||(c=[]);"INPUT"==a.tagName?a.hasAttribute("aria-checked")||(d={"checkbox-true":"checkbox_checked_state","checkbox-false":"checkbox_unchecked_state","radio-true":"radio_selected_state","radio-false":"radio_unselected_state"},(d=d[a.type+"-"+!!a.checked])&&c.push([d])):"SELECT"==a.tagName?
+a.selectedOptions&&1>=a.selectedOptions.length?c.push(["list_position",cvox.ChromeVox.msgs.getNumber(a.selectedIndex+1),cvox.ChromeVox.msgs.getNumber(a.options.length)]):c.push(["selected_options_state",cvox.ChromeVox.msgs.getNumber(a.selectedOptions.length)]):"UL"!=a.tagName&&"OL"!=a.tagName&&"list"!=d||c.push(["list_with_items",cvox.ChromeVox.msgs.getNumber(cvox.DomUtil.getListLength(a))]);cvox.DomUtil.isDisabled(a)&&c.push(["aria_disabled_true"]);cvox.DomPredicates.linkPredicate([a])&&cvox.ChromeVox.visitedUrls[a.href]&&
+c.push(["visited_url"]);a.accessKey&&c.push(["access_key",a.accessKey]);return c};cvox.DomUtil.getState=function(a,b){return cvox.NodeStateUtil.expand(cvox.DomUtil.getStateMsgs(a,b))};cvox.DomUtil.isFocusable=function(a){return a&&"number"==typeof a.tabIndex&&("A"!=a.tagName||a.hasAttribute("href")||a.hasAttribute("tabindex"))?0<=a.tabIndex||a.hasAttribute&&a.hasAttribute("tabindex")&&"-1"==a.getAttribute("tabindex")?!0:!1:!1};
+cvox.DomUtil.findFocusableDescendant=function(a){return a&&(a=cvox.DomUtil.findNode(a,cvox.DomUtil.isFocusable))?a:null};cvox.DomUtil.countFocusableDescendants=function(a){return a?cvox.DomUtil.countNodes(a,cvox.DomUtil.isFocusable):0};cvox.DomUtil.isAttachedToDocument=function(a){for(;a;){if(a.tagName&&"HTML"==a.tagName)return!0;a=a.parentNode}return!1};
+cvox.DomUtil.clickElem=function(a,b,c,d){var e=cvox.AriaUtil.getActiveDescendant(a);e&&(a=e);if(c){c=null;a.onclick&&(c=a.onclick);!c&&1!=a.nodeType&&a.parentNode&&a.parentNode.onclick&&(c=a.parentNode.onclick);e=!0;if(c)try{e=c()}catch(f){}if(!e)return}c=document.createEvent("MouseEvents");d=d?"dblclick":"mousedown";c.initMouseEvent(d,!0,!0,document.defaultView,1,0,0,0,0,!1,!1,b,!1,0,null);c.fromCvox=!0;try{a.dispatchEvent(c)}catch(g){}c=document.createEvent("MouseEvents");c.initMouseEvent("mouseup",
+!0,!0,document.defaultView,1,0,0,0,0,!1,!1,b,!1,0,null);c.fromCvox=!0;try{a.dispatchEvent(c)}catch(h){}c=document.createEvent("MouseEvents");c.initMouseEvent("click",!0,!0,document.defaultView,1,0,0,0,0,!1,!1,b,!1,0,null);c.fromCvox=!0;try{a.dispatchEvent(c)}catch(k){}cvox.DomUtil.isInternalLink(a)&&cvox.DomUtil.syncInternalLink(a)};
+cvox.DomUtil.syncInternalLink=function(a){var b=a.href.split("#")[1];a=document.getElementById(b);a||(b=document.getElementsByName(b),0<b.length&&(a=b[0]));if(a){var b=a.parentNode,c=document.createElement("div");c.setAttribute("tabindex","-1");b.insertBefore(c,a);c.setAttribute("chromevoxignoreariahidden",1);c.focus();cvox.ChromeVox.syncToNode(a,!0)}};
+cvox.DomUtil.isInputTypeText=function(a){if(!a||a.constructor!=HTMLInputElement)return!1;switch(a.type){case "email":case "number":case "password":case "search":case "text":case "tel":case "url":case "":return!0;default:return!1}};cvox.DomUtil.isControl=function(a){if(cvox.AriaUtil.isControlWidget(a)&&cvox.DomUtil.isFocusable(a))return!0;if(a.tagName)switch(a.tagName){case "BUTTON":case "TEXTAREA":case "SELECT":return!0;case "INPUT":return"hidden"!=a.type}return a.isContentEditable?!0:!1};
+cvox.DomUtil.isLeafLevelControl=function(a){return cvox.DomUtil.isControl(a)?!(cvox.AriaUtil.isCompositeControl(a)&&cvox.DomUtil.findFocusableDescendant(a)):!1};cvox.DomUtil.getSurroundingControl=function(a){var b=null;if(!cvox.DomUtil.isControl(a)&&a.hasAttribute&&a.hasAttribute("role"))for(b=a.parentElement;b&&!cvox.AriaUtil.isCompositeControl(b);)b=b.parentElement;return b};
+cvox.DomUtil.directedNextLeafLikeNode=function(a,b,c){if(a!=document.body){for(;!cvox.DomUtil.directedNextSibling(a,b);){if(!a)return null;a=a.parentNode;if(a==document.body)return null}cvox.DomUtil.directedNextSibling(a,b)&&(a=cvox.DomUtil.directedNextSibling(a,b))}for(;cvox.DomUtil.directedFirstChild(a,b)&&!c(a);)a=cvox.DomUtil.directedFirstChild(a,b);return a==document.body?null:a};cvox.DomUtil.directedNextLeafNode=function(a,b){b=!!b;return cvox.DomUtil.directedNextLeafLikeNode(a,b,cvox.DomUtil.isLeafNode)};
+cvox.DomUtil.previousLeafNode=function(a){return cvox.DomUtil.directedNextLeafNode(a,!0)};cvox.DomUtil.directedFindFirstNode=function(a,b,c){for(a=cvox.DomUtil.directedFirstChild(a,b);a;){if(c(a))return a;var d=cvox.DomUtil.directedFindFirstNode(a,b,c);if(d)return d;a=cvox.DomUtil.directedNextSibling(a,b)}return null};cvox.DomUtil.directedFindDeepestNode=function(a,b,c){var d=cvox.DomUtil.directedFindFirstNode(a,b,c);return d?cvox.DomUtil.directedFindDeepestNode(d,b,c):c(a)?a:null};
+cvox.DomUtil.directedFindNextNode=function(a,b,c,d,e,f){e=!!e;f=!!f;if(!cvox.DomUtil.isDescendantOfNode(a,b)||a==b)return null;for(var g=cvox.DomUtil.directedNextSibling(a,c);g;){if(!f&&d(g))return g;var h=(f?cvox.DomUtil.directedFindDeepestNode:cvox.DomUtil.directedFindFirstNode)(g,c,d);if(h)return h;if(f&&d(g))return g;g=cvox.DomUtil.directedNextSibling(g,c)}a=a.parentNode;return e&&d(a)?a:cvox.DomUtil.directedFindNextNode(a,b,c,d,e,f)};
+cvox.DomUtil.getControlValueAndStateString=function(a){var b=cvox.DomUtil.getSurroundingControl(a);return b?cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getName(a)+" "+cvox.DomUtil.getState(a,!0)):cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getState(a,!0))};cvox.DomUtil.isInternalLink=function(a){return 1==a.nodeType&&(a=a.getAttribute("href"))&&-1!=a.indexOf("#")?(a=a.split("#")[0],""==a||a==window.location.pathname):!1};
+cvox.DomUtil.getLinkURL=function(a){if("A"==a.tagName){if(a.getAttribute("href"))return cvox.DomUtil.isInternalLink(a)?cvox.ChromeVox.msgs.getMsg("internal_link"):a.getAttribute("href")}else if(cvox.AriaUtil.getRoleName(a)==cvox.ChromeVox.msgs.getMsg("aria_role_link"))return cvox.ChromeVox.msgs.getMsg("unknown_link");return""};cvox.DomUtil.getContainingTable=function(a,b){var c=cvox.DomUtil.getAncestors(a);return cvox.DomUtil.findTableNodeInList(c,b)};
+cvox.DomUtil.findTableNodeInList=function(a,b){b=b||{allowCaptions:!1};for(var c=a.length-1,d;d=a[c];c--)if(d.constructor!=Text){if(!b.allowCaptions&&"CAPTION"==d.tagName)break;if("TABLE"==d.tagName||cvox.AriaUtil.isGrid(d))return d}return null};
+cvox.DomUtil.isLayoutTable=function(a){if(a.rows&&(1==a.rows.length||1==a.rows[0].childElementCount))return!0;if(cvox.AriaUtil.isGrid(a)||cvox.AriaUtil.isLandmark(a)||a.caption||a.summary||0<cvox.XpathUtil.evalXPath("tbody/tr/th",a).length&&0<cvox.XpathUtil.evalXPath("tbody/tr/td",a).length||0<cvox.XpathUtil.evalXPath("colgroup",a).length||0<cvox.XpathUtil.evalXPath("thead",a).length||0<cvox.XpathUtil.evalXPath("tfoot",a).length)return!1;if(0<cvox.XpathUtil.evalXPath("tbody/tr/td/embed",a).length||
+0<cvox.XpathUtil.evalXPath("tbody/tr/td/object",a).length||0<cvox.XpathUtil.evalXPath("tbody/tr/td/iframe",a).length||0<cvox.XpathUtil.evalXPath("tbody/tr/td/applet",a).length)return!0;var b=0;cvox.DomUtil.hasBorder(a)||b++;6>=a.rows.length&&b++;12>=cvox.DomUtil.countPreviousTags(a)&&b++;0<cvox.XpathUtil.evalXPath("tbody/tr/td/table",a).length&&b++;return 3<=b};cvox.DomUtil.countPreviousTags=function(a){var b=cvox.DomUtil.getAncestors(a);return b.length+cvox.DomUtil.countPreviousSiblings(a)};
+cvox.DomUtil.countPreviousSiblings=function(a){var b=0;for(a=a.previousSibling;null!=a;)a.constructor!=Text&&b++,a=a.previousSibling;return b};cvox.DomUtil.hasBorder=function(a){return a.frame?-1==a.frame.indexOf("void"):a.border?1==a.border.length?"0"!=a.border:0!=a.border.slice(0,-2):a.style.borderStyle&&"none"==a.style.borderStyle?!1:a.style.borderWidth?0!=a.style.borderWidth.slice(0,-2):a.style.borderColor?!0:!1};
+cvox.DomUtil.getFirstLeafNode=function(){for(var a=document.body;a&&a.firstChild;)a=a.firstChild;for(;a&&!cvox.DomUtil.hasContent(a);)a=cvox.DomUtil.directedNextLeafNode(a);return a};cvox.DomUtil.findNode=function(a,b){var c=[],d=cvox.DomUtil.findNodes_(a,b,c,!0,1E4);return d?c[0]:void 0};cvox.DomUtil.countNodes=function(a,b){var c=[];cvox.DomUtil.findNodes_(a,b,c,!1,1E4);return c.length};
+cvox.DomUtil.findNodes_=function(a,b,c,d,e){if(null!=a||0==e)for(a=a.firstChild;a;){if(b(a)&&(c.push(a),d))return!0;e-=1;if(cvox.DomUtil.findNodes_(a,b,c,d,e))return!0;a=a.nextSibling}return!1};cvox.DomUtil.toArray=function(a){for(var b=[],c=0;c<a.length;c++)b.push(a[c]);return b};
+cvox.DomUtil.shallowChildlessClone=function(a,b){if("#text"==a.nodeName)return document.createTextNode(a.nodeValue);if("#comment"==a.nodeName)return document.createComment(a.nodeValue);for(var c=document.createElement(a.nodeName),d=0;d<a.attributes.length;++d){var e=a.attributes[d];b&&b[e.nodeName]||c.setAttribute(e.nodeName,e.nodeValue)}return c};
+cvox.DomUtil.deepClone=function(a,b){for(var c=cvox.DomUtil.shallowChildlessClone(a,b),d=0;d<a.childNodes.length;++d)c.appendChild(cvox.DomUtil.deepClone(a.childNodes[d],b));return c};cvox.DomUtil.directedFirstChild=function(a,b){return b?a.lastChild:a.firstChild};cvox.DomUtil.directedNextSibling=function(a,b){return a?b?a.previousSibling:a.nextSibling:null};cvox.DomUtil.createSimpleClickFunction=function(a){var b=a.cloneNode(!0);return function(){cvox.DomUtil.clickElem(b,!1,!1)}};
+cvox.DomUtil.addNodeToHead=function(a,b){if(!b||!document.getElementById(b)){var c=document.head||document.body;c.appendChild(a)}};cvox.DomUtil.getContainingMath=function(a){a=cvox.DomUtil.getAncestors(a);return cvox.DomUtil.findMathNodeInList(a)};cvox.DomUtil.findMathNodeInList=function(a){for(var b=0,c;c=a[b];b++)if(cvox.DomUtil.isMath(c))return c;return null};cvox.DomUtil.isMath=function(a){return cvox.DomUtil.isMathml(a)||cvox.DomUtil.isMathJax(a)||cvox.DomUtil.isMathImg(a)||cvox.AriaUtil.isMath(a)};
+cvox.DomUtil.ALT_MATH_CLASSES={tex:["tex","latex"],asciimath:["numberedequation","inlineformula","displayformula"]};cvox.DomUtil.altMathQuerySelector=function(a){return(a=cvox.DomUtil.ALT_MATH_CLASSES[a])?a.map(function(a){return"img."+a}).join(", "):""};cvox.DomUtil.isMathImg=function(a){if(!a||!a.tagName||!a.className||"IMG"!=a.tagName)return!1;a=a.className.toLowerCase();return-1!=cvox.DomUtil.ALT_MATH_CLASSES.tex.indexOf(a)||-1!=cvox.DomUtil.ALT_MATH_CLASSES.asciimath.indexOf(a)};
+cvox.DomUtil.isMathml=function(a){return a&&a.tagName?"math"==a.tagName.toLowerCase():!1};cvox.DomUtil.isMathJax=function(a){function b(a,b){return"SPAN"==a.tagName&&a.className.split(" ").some(function(a){return a.toLowerCase()==b})}return a&&a.tagName&&a.className?b(a,"math")?(a=cvox.DomUtil.getAncestors(a),a.some(function(a){return b(a,"mathjax")})):!1:!1};cvox.DomUtil.getMathSpanId=function(a){if(a=document.getElementById(a+"-Frame"))if(a=a.querySelector("span.math"))return a.id};
+cvox.DomUtil.hasLongDesc=function(a){return a&&a.longDesc?!0:!1};cvox.DomUtil.getNodeTagName=function(a){return a.nodeType==Node.ELEMENT_NODE?a.tagName:""};cvox.DomUtil.purgeNodes=function(a){return cvox.DomUtil.toArray(a).filter(function(a){return a.nodeType!=Node.TEXT_NODE||!a.textContent.match(/^\s+$/)})};cvox.DomUtil.elementToPoint=function(a){if(!a)return{x:0,y:0};a.constructor==Text&&(a=a.parentNode);a=a.getBoundingClientRect();return{x:a.left+a.width/2,y:a.top+a.height/2}};cvox.SelectionUtil=function(){};cvox.SelectionUtil.cleanUpParagraphForward=function(a){for(;3==a.focusNode.nodeType;){var b=a.focusNode,c=a.focusOffset;a.modify("extend","forward","sentence");if(b==a.focusNode&&c==a.focusOffset)return!1}return!0};cvox.SelectionUtil.cleanUpParagraphBack=function(a){for(var b,c;3==a.focusNode.nodeType&&(b=a.focusNode,c=a.focusOffset,a.modify("extend","backward","sentence"),b!=a.focusNode||c!=a.focusOffset););return!0};
+cvox.SelectionUtil.cleanUpSentence=function(a){for(var b=!0;b;)if(3==a.focusNode.nodeType){var c=a.focusNode,d=a.focusOffset;if(0<a.rangeCount&&0<a.getRangeAt(0).endOffset)if("."==c.substringData(a.getRangeAt(0).endOffset-1,1))break;else if(" "==c.substringData(a.getRangeAt(0).endOffset-1,1))break;else{if(a.modify("extend","forward","sentence"),c==a.focusNode&&d==a.focusOffset)return!1}else break}else break;return!0};
+cvox.SelectionUtil.findSelPosition=function(a){if(0==a.rangeCount)return[0,0];var b=a.getRangeAt(0).getBoundingClientRect();if(!b)return[0,0];a=window.pageYOffset+b.top;b=window.pageXOffset+b.left;return[a,b]};cvox.SelectionUtil.findTopLeftPosition=function(a){var b=0,c=0;if(a.offsetParent)for(b=a.offsetLeft,c=a.offsetTop,a=a.offsetParent;null!==a;)b+=a.offsetLeft,c+=a.offsetTop,a=a.offsetParent;return[c,b]};
+cvox.SelectionUtil.isSelectionValid=function(a){var b=RegExp(/^\s+$/);return!(b.test(a.toString())||""==a.toString())};cvox.SelectionUtil.isRangeValid=function(a){a=a.cloneContents().textContent;var b=RegExp(/^\s+$/);return!(b.test(a)||""==a)};cvox.SelectionUtil.findPos_=function(a){var b=0,c=0;if(a.offsetParent){do b+=a.offsetLeft,c+=a.offsetTop;while(a=a.offsetParent)}return[b,c]};
+cvox.SelectionUtil.scrollElementsToView=function(a){for(;a&&!a.getBoundingClientRect;)a=a.parentElement;if(a){for(var b=a,c=b.parentElement;b!=document.body&&c;)b.scrollTop=b.offsetTop,b.scrollLeft=b.offsetLeft,b=c,c=b.parentElement;a=cvox.SelectionUtil.findPos_(a);window.scrollTo(a[0]-window.innerWidth/2,a[1]-window.innerHeight/2)}};
+cvox.SelectionUtil.scrollToSelection=function(a){if(0!=a.rangeCount){cvox.SelectionUtil.scrollElementsToView(a.focusNode);var b=cvox.SelectionUtil.findSelPosition(a);a=b[0];var b=b[1],c=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop,d=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,e=window.innerWidth||document.documentElement.innerWidth||document.body.clientWidth;b<e&&(b=0);c+d<a?(a-=d,window.scroll(b,a+100)):a<c&&window.scroll(b,
+a-100)}};cvox.SelectionUtil.isAllWs=function(a){return!/[^\t\n\r ]/.test(a.data)};cvox.SelectionUtil.isIgnorable=function(a){return 8==a.nodeType||3==a.nodeType&&cvox.SelectionUtil.isAllWs(a)};cvox.SelectionUtil.nodeBefore=function(a){for(;a=a.previousSibling;)if(!cvox.SelectionUtil.isIgnorable(a))return a;return null};cvox.SelectionUtil.nodeAfter=function(a){for(;a=a.nextSibling;)if(!cvox.SelectionUtil.isIgnorable(a))return a;return null};
+cvox.SelectionUtil.lastChildNode=function(a){for(a=a.lastChild;a;){if(!cvox.SelectionUtil.isIgnorable(a))return a;a=a.previousSibling}return null};cvox.SelectionUtil.firstChildNode=function(a){for(a=a.firstChild;a;){if(!cvox.SelectionUtil.isIgnorable(a))return a;a=a.nextSibling}return null};cvox.SelectionUtil.dataOf=function(a){a=a.data;a=a.replace(/[\t\n\r ]+/g," ");" "==a.charAt(0)&&(a=a.substring(1,a.length));" "==a.charAt(a.length-1)&&(a=a.substring(0,a.length-1));return a};
+cvox.SelectionUtil.hasContentWithTag=function(a,b){if(!a||!a.anchorNode||!a.focusNode)return!1;if(a.anchorNode.tagName&&a.anchorNode.tagName==b||a.focusNode.tagName&&a.focusNode.tagName==b||a.anchorNode.parentNode.tagName&&a.anchorNode.parentNode.tagName==b||a.focusNode.parentNode.tagName&&a.focusNode.parentNode.tagName==b)return!0;var c=a.getRangeAt(0).cloneContents(),d=document.createElement("span");d.appendChild(c);return 0<d.getElementsByTagName(b).length};
+cvox.SelectionUtil.selectText=function(a,b,c){var d=document.createRange();d.setStart(a,b);d.setEnd(a,c);a=window.getSelection();a.removeAllRanges();a.addRange(d)};cvox.SelectionUtil.selectAllTextInNode=function(a){var b=document.createRange();b.setStart(a,0);b.setEndAfter(a);a=window.getSelection();a.removeAllRanges();a.addRange(b)};
+cvox.SelectionUtil.collapseToStart=function(a){var b=window.getSelection(),c=b.anchorNode,d=b.anchorOffset;null==c&&(c=a,d=0);a=document.createRange();a.setStart(c,d);a.setEnd(c,d);b.removeAllRanges();b.addRange(a)};cvox.SelectionUtil.collapseToEnd=function(a){var b=window.getSelection(),c=b.focusNode,d=b.focusOffset;null==c&&(c=a,d=0);a=document.createRange();a.setStart(c,d);a.setEnd(c,d);b.removeAllRanges();b.addRange(a)};
+cvox.SelectionUtil.getText=function(){var a=window.getSelection();if(cvox.SelectionUtil.hasContentWithTag(a,"IMG")){var b="",a=a.getRangeAt(0).cloneContents(),c=document.createElement("span");c.appendChild(a);for(var a=cvox.XpathUtil.getLeafNodes(c),c=0,d;d=a[c];c++)b=b+" "+cvox.DomUtil.getName(d);return b}return this.getSelectionText_()};cvox.SelectionUtil.getSelectionText_=function(){return""+window.getSelection()};
+cvox.SelectionUtil.getRangeText=function(a){return a?a.cloneContents().textContent.replace(/\s+/g," "):""};cvox.TraverseUtil=function(){};cvox.TraverseUtil.getNodeText=function(a){return a.constructor==Text?a.data:""};cvox.TraverseUtil.treatAsLeafNode=function(a){return 0==a.childNodes.length||"SELECT"==a.nodeName||"listbox"==a.getAttribute("role")||"OBJECT"==a.nodeName};cvox.TraverseUtil.isWhitespace=function(a){return" "==a||"\n"==a||"\r"==a||"\t"==a};
+cvox.TraverseUtil.setSelection=function(a,b){var c=window.getSelection();c.removeAllRanges();var d=document.createRange();d.setStart(a.node,a.index);d.setEnd(b.node,b.index);c.addRange(d);return c};cvox.TraverseUtil.isHidden=function(a){if(a instanceof HTMLElement&&"true"==a.getAttribute("aria-hidden"))return!0;switch(a.tagName){case "SCRIPT":case "NOSCRIPT":return!0}return!1};
+cvox.TraverseUtil.forwardsChar=function(a,b,c){for(;;){var d=null;if(!cvox.TraverseUtil.treatAsLeafNode(a.node))for(var e=a.index;e<a.node.childNodes.length;e++){var f=a.node.childNodes[e];if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}}if(d)a.node=d,a.index=0,a.text=cvox.TraverseUtil.getNodeText(a.node),a.node instanceof HTMLElement&&b.push(a.node);else{if(a.index<a.text.length)return a.text[a.index++];for(;null!=
+a.node;){d=null;for(f=a.node.nextSibling;null!=f;f=f.nextSibling)if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}if(d){a.node instanceof HTMLElement&&c.push(a.node);a.node=d;a.text=cvox.TraverseUtil.getNodeText(d);a.index=0;a.node instanceof HTMLElement&&b.push(a.node);break}if(a.node.parentNode&&a.node.parentNode.constructor!=HTMLBodyElement)a.node instanceof HTMLElement&&c.push(a.node),a.node=a.node.parentNode,
+a.text=null,a.index=0;else return null}}}};
+cvox.TraverseUtil.backwardsChar=function(a,b,c){for(;;){var d=null;if(!cvox.TraverseUtil.treatAsLeafNode(a.node))for(var e=a.index-1;0<=e;e--){var f=a.node.childNodes[e];if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}}if(d)a.node=d,a.text=cvox.TraverseUtil.getNodeText(a.node),a.index=a.text.length?a.text.length:a.node.childNodes.length,a.node instanceof HTMLElement&&b.push(a.node);else{if(0<a.text.length&&0<a.index)return a.text[--a.index];
+for(;;){d=null;for(f=a.node.previousSibling;null!=f;f=f.previousSibling)if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}if(d){a.node instanceof HTMLElement&&c.push(a.node);a.node=d;a.text=cvox.TraverseUtil.getNodeText(d);a.index=a.text.length?a.text.length:a.node.childNodes.length;a.node instanceof HTMLElement&&b.push(a.node);break}if(a.node.parentNode&&a.node.parentNode.constructor!=HTMLBodyElement)a.node instanceof
+HTMLElement&&c.push(a.node),a.node=a.node.parentNode,a.text=null,a.index=0;else return null}}}};
+cvox.TraverseUtil.getNextChar=function(a,b,c,d,e){a.copyFrom(b);var f=cvox.TraverseUtil.forwardsChar(b,c,d);if(null==f)return null;for(var g=cvox.TraverseUtil.isWhitespace(f);cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(b.node);)if(f=cvox.TraverseUtil.forwardsChar(b,c,d),null==f)return null;if(e||!g)return a.copyFrom(b),a.index--,f;for(d=0;d<c.length;d++)if(cvox.TraverseUtil.isHidden(c[d]))return b.index--,a.copyFrom(b),a.index--," ";b.index--;return" "};
+cvox.TraverseUtil.getPreviousChar=function(a,b,c,d,e){b.copyFrom(a);var f=cvox.TraverseUtil.backwardsChar(a,c,d);if(null==f)return null;for(var g=cvox.TraverseUtil.isWhitespace(f);cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(a.node);)if(f=cvox.TraverseUtil.backwardsChar(a,c,d),null==f)return null;if(e||!g)return b.copyFrom(a),b.index++,f;for(d=0;d<c.length;d++)if(cvox.TraverseUtil.isHidden(c[d]))return a.index++,b.copyFrom(a),b.index++," ";a.index++;return" "};
+cvox.TraverseUtil.getNextWord=function(a,b,c,d){var e=b.clone(),f=cvox.TraverseUtil.forwardsChar(e,c,d);if(null==f)return null;for(;cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(e.node);)if(f=cvox.TraverseUtil.forwardsChar(e,c,d),null==f)return null;a.copyFrom(e);a.index--;b.copyFrom(e);a=f;c=[];d=[];f=cvox.TraverseUtil.forwardsChar(e,c,d);if(null==f)return a;for(;!cvox.TraverseUtil.isWhitespace(f)&&0==c.length&&0==d&&(a+=f,b.copyFrom(e),f=cvox.TraverseUtil.forwardsChar(e,c,d),null!=
+f););return a};
+cvox.TraverseUtil.getPreviousWord=function(a,b,c,d){var e=a.clone(),f=cvox.TraverseUtil.backwardsChar(e,c,d);if(null==f)return null;for(;cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(e.node);)if(f=cvox.TraverseUtil.backwardsChar(e,c,d),null==f)return null;b.copyFrom(e);b.index++;a.copyFrom(e);b=f;c=[];d=[];f=cvox.TraverseUtil.backwardsChar(e,c,d);if(null==f)return b;for(;!cvox.TraverseUtil.isWhitespace(f)&&0==c.length&&0==d.length&&(b=f+b,a.copyFrom(e),f=cvox.TraverseUtil.backwardsChar(e,c,
+d),null!=f););return b};cvox.TraverseUtil.includesBreakTagOrSkippedNode=function(a,b,c){for(var d=0;d<a.length;d++){if(cvox.TraverseUtil.isHidden(a[d]))return!0;var e=window.getComputedStyle(a[d],null);if(e&&"inline"!=e.display||c[a[d].tagName])return!0}for(d=0;d<b.length;d++)if((e=window.getComputedStyle(b[d],null))&&"inline"!=e.display||c[b[d].tagName])return!0;return!1};
+cvox.TraverseUtil.getNextSentence=function(a,b,c,d,e){return cvox.TraverseUtil.getNextString(a,b,c,d,function(a,b,c,d){return"."==a.substr(-1)?!0:cvox.TraverseUtil.includesBreakTagOrSkippedNode(c,d,e)})};cvox.TraverseUtil.getPreviousSentence=function(a,b,c,d,e){return cvox.TraverseUtil.getPreviousString(a,b,c,d,function(a,b,c,d){return"."==b.substr(-1)?!0:cvox.TraverseUtil.includesBreakTagOrSkippedNode(c,d,e)})};
+cvox.TraverseUtil.getNextLine=function(a,b,c,d,e){var f=document.createRange(),g=null,h=b.clone();return cvox.TraverseUtil.getNextString(a,b,c,d,function(c,d,m,p){f.setStart(a.node,a.index);f.setEnd(b.node,b.index);c=f.getBoundingClientRect();g||(g=c);if(c.bottom!=g.bottom&&!cvox.DomPredicates.linkPredicate(cvox.DomUtil.getAncestors(b.node)))return b.copyFrom(h),!0;g=c;h.copyFrom(b);return cvox.TraverseUtil.includesBreakTagOrSkippedNode(m,p,e)})};
+cvox.TraverseUtil.getPreviousLine=function(a,b,c,d,e){var f=document.createRange(),g=null,h=a.clone();return cvox.TraverseUtil.getPreviousString(a,b,c,d,function(c,d,m,p){f.setStart(a.node,a.index);f.setEnd(b.node,b.index);c=f.getBoundingClientRect();g||(g=c);if(c.top!=g.top&&!cvox.DomPredicates.linkPredicate(cvox.DomUtil.getAncestors(a.node)))return a.copyFrom(h),!0;g=c;h.copyFrom(a);return cvox.TraverseUtil.includesBreakTagOrSkippedNode(m,p,e)})};
+cvox.TraverseUtil.getNextParagraph=function(a,b,c,d){return cvox.TraverseUtil.getNextString(a,b,c,d,function(a,b,c,d){for(a=0;a<c.length;a++)if(cvox.TraverseUtil.isHidden(c[a])||(b=window.getComputedStyle(c[a],null))&&"inline"!=b.display)return!0;for(a=0;a<d.length;a++)if((b=window.getComputedStyle(d[a],null))&&"inline"!=b.display)return!0;return!1})};
+cvox.TraverseUtil.getPreviousParagraph=function(a,b,c,d){return cvox.TraverseUtil.getPreviousString(a,b,c,d,function(a,b,c,d){for(a=0;a<c.length;a++)if(cvox.TraverseUtil.isHidden(c[a])||(b=window.getComputedStyle(c[a],null))&&"inline"!=b.display)return!0;for(a=0;a<d.length;a++)if((b=window.getComputedStyle(d[a],null))&&"inline"!=b.display)return!0;return!1})};
+cvox.TraverseUtil.getNextString=function(a,b,c,d,e){c=b.clone();d=b.clone();var f=[],g=[],h="",k=cvox.TraverseUtil.getNextWord(c,d,f,g);if(null==k)return null;for(a.copyFrom(c);!(h&&e(h,k,f,g)||(h&&(h+=" "),h+=k,b.copyFrom(d),f=[],g=[],k=cvox.TraverseUtil.getNextWord(c,d,f,g),null==k)););return h};
+cvox.TraverseUtil.getPreviousString=function(a,b,c,d,e){c=a.clone();d=a.clone();var f=[],g=[],h="",k=cvox.TraverseUtil.getPreviousWord(c,d,f,g);if(null==k)return null;for(b.copyFrom(d);!(h&&e(h,k,f,g)||(h&&(h=" "+h),h=k+h,a.copyFrom(c),f=[],g=[],k=cvox.TraverseUtil.getPreviousWord(c,d,f,g),null==k)););return h};cvox.CursorSelection=function(a,b,c){this.start=a.clone();this.end=b.clone();void 0==c&&(c=!1);if((this.isReversed_=c)&&this.start.node.compareDocumentPosition(this.end.node)==cvox.CursorSelection.BEFORE||!this.isReversed_&&this.end.node.compareDocumentPosition(this.start.node)==cvox.CursorSelection.BEFORE)a=this.start,this.start=this.end,this.end=a};cvox.CursorSelection.BEFORE=4;
+cvox.CursorSelection.prototype.setReversed=function(a){if(a==this.isReversed_)return this;var b=this.start;this.start=this.end;this.end=b;this.isReversed_=a;return this};cvox.CursorSelection.prototype.isReversed=function(){return this.isReversed_};cvox.CursorSelection.prototype.absStart=function(){return this.isReversed_?this.end:this.start};cvox.CursorSelection.prototype.absEnd=function(){return this.isReversed_?this.start:this.end};
+cvox.CursorSelection.prototype.clone=function(){return new cvox.CursorSelection(this.start,this.end,this.isReversed_)};cvox.CursorSelection.prototype.select=function(){var a=window.getSelection();a.removeAllRanges();this.normalize();a.addRange(this.getRange())};cvox.CursorSelection.fromNode=function(a){if(!a)return null;var b=cvox.TraverseUtil.getNodeText(a);return new cvox.CursorSelection(new cvox.Cursor(a,0,b),new cvox.Cursor(a,0,b))};cvox.CursorSelection.fromBody=function(){return cvox.CursorSelection.fromNode(document.body)};
+cvox.CursorSelection.prototype.getText=function(){return this.start.equals(this.end)?cvox.TraverseUtil.getNodeText(this.start.node):cvox.SelectionUtil.getRangeText(this.getRange())};cvox.CursorSelection.prototype.getRange=function(){var a=document.createRange();this.isReversed_?(a.setStart(this.end.node,this.end.index),a.setEnd(this.start.node,this.start.index)):(a.setStart(this.start.node,this.start.index),a.setEnd(this.end.node,this.end.index));return a};
+cvox.CursorSelection.prototype.equals=function(a){return this.start.equals(a.start)&&this.end.equals(a.end)};cvox.CursorSelection.prototype.absEquals=function(a){return this.start.equals(a.start)&&this.end.equals(a.end)||this.end.equals(a.start)&&this.start.equals(a.end)};cvox.CursorSelection.prototype.directedBefore=function(a){var b=this.start.node.compareDocumentPosition(a.start.node)==cvox.CursorSelection.BEFORE;return this.start.node==a.start.node||(this.isReversed()?!b:b)};
+cvox.CursorSelection.prototype.normalize=function(){if(0==this.absEnd().index&&this.absEnd().node){var a=this.absEnd().node,b=document.createRange();b.selectNodeContents(a);this.absEnd().index=b.endOffset}return this};cvox.CursorSelection.prototype.collapse=function(){if(this.start.equals(this.end))return this;this.end.copyFrom(this.start);if(0==this.start.text.length)return this;this.isReversed()?0<this.end.index&&this.end.index--:this.end.index<this.end.text.length&&this.end.index++;return this};cvox.PlatformUtil={};cvox.PlatformFilter={NONE:0,WINDOWS:1,MAC:2,LINUX:4,WML:7,CHROMEOS:8,ANDROID:16};cvox.PlatformUtil.matchesPlatform=function(a){var b=navigator.userAgent;return void 0==a?!0:-1!=b.indexOf("Android")?0!=(a&cvox.PlatformFilter.ANDROID):-1!=b.indexOf("Win")?0!=(a&cvox.PlatformFilter.WINDOWS):-1!=b.indexOf("Mac")?0!=(a&cvox.PlatformFilter.MAC):-1!=b.indexOf("Linux")?0!=(a&cvox.PlatformFilter.LINUX):-1!=b.indexOf("CrOS")?0!=(a&cvox.PlatformFilter.CHROMEOS):!1};cvox.Spannable=function(a,b){this.string_=a||"";this.spans_=[];if(goog.isDef(b)){var c=this.string_.length;this.spans_.push({value:b,start:0,end:c})}};cvox.Spannable.prototype.toString=function(){return this.string_};cvox.Spannable.prototype.getLength=function(){return this.string_.length};cvox.Spannable.prototype.setSpan=function(a,b,c){this.removeSpan(a);if(0<=b&&b<=c&&c<=this.string_.length)this.spans_.push({value:a,start:b,end:c});else throw new RangeError("span out of range");};
+cvox.Spannable.prototype.removeSpan=function(a){for(var b=this.spans_.length-1;0<=b;b--)this.spans_[b].value===a&&this.spans_.splice(b,1)};cvox.Spannable.prototype.append=function(a){if(a instanceof cvox.Spannable){var b=a,c=this.getLength();this.string_+=b.string_;a.spans_.forEach(goog.bind(function(a){this.setSpan(a.value,a.start+c,a.end+c)},this))}else"string"===typeof a&&(this.string_+=a)};
+cvox.Spannable.prototype.getSpan=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.start<=a&&a<c.end)return c.value}};cvox.Spannable.prototype.getSpanInstanceOf=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.value instanceof a)return c.value}};cvox.Spannable.prototype.getSpans=function(a){for(var b=[],c=0;c<this.spans_.length;c++){var d=this.spans_[c];d.start<=a&&a<d.end&&b.push(d.value)}return b};
+cvox.Spannable.prototype.getSpanStart=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.value===a)return c.start}return null};cvox.Spannable.prototype.getSpanEnd=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.value===a)return c.end}return null};
+cvox.Spannable.prototype.substring=function(a,b){var c=goog.isDef(b)?b:this.string_.length;if(0>a||c>this.string_.length||a>c)throw new RangeError("substring indices out of range");for(var d=new cvox.Spannable(this.string_.substring(a,c)),e=0;e<this.spans_.length;e++){var f=this.spans_[e];if(f.start<=c&&f.end>=a){var g=Math.max(0,f.start-a),h=Math.min(c-a,f.end-a);d.spans_.push({value:f.value,start:g,end:h})}}return d};
+cvox.Spannable.prototype.trim=function(){if(/^\s*$/.test(this.string_))return this.substring(0,0);var a=this.string_.match(/^\s*/)[0].length,b=this.string_.match(/\s*$/).index;return this.substring(a,b)};cvox.NavBraille=function(a){this.text=a.text instanceof cvox.Spannable?a.text:new cvox.Spannable(a.text);this.startIndex=a.startIndex?a.startIndex:0;this.endIndex=a.endIndex?a.endIndex:0};cvox.NavBraille.fromText=function(a){return new cvox.NavBraille({text:a})};cvox.NavBraille.prototype.isEmpty=function(){return 0==this.text.getLength()};cvox.NavBraille.prototype.toString=function(){return'NavBraille(text="'+this.text.toString()+'" startIndex="'+this.startIndex+'" endIndex="'+this.endIndex+'")'};
+cvox.NavBraille.prototype.toJson=function(){return{text:this.text.toString(),startIndex:this.startIndex,endIndex:this.endIndex}};cvox.NavBraille.prototype.write=function(){cvox.PlatformUtil.matchesPlatform(cvox.PlatformFilter.CHROMEOS|cvox.PlatformFilter.ANDROID)&&cvox.ChromeVox.braille.write(this)};cvox.BrailleKeyCommand={PAN_LEFT:"pan_left",PAN_RIGHT:"pan_right",LINE_UP:"line_up",LINE_DOWN:"line_down",TOP:"top",BOTTOM:"bottom",ROUTING:"routing",SECONDARY_ROUTING:"secondary_routing",DOTS:"dots",STANDARD_KEY:"standard_key"};cvox.BrailleKeyEvent={};cvox.BrailleInterface=function(){};cvox.BrailleInterface.prototype.write=function(){};cvox.AbstractBraille=function(){};cvox.AbstractHost=function(){};cvox.AbstractHost.State={ACTIVE:0,INACTIVE:1,KILLED:2};cvox.AbstractHost.prototype.init=function(){};cvox.AbstractHost.prototype.reinit=function(){};cvox.AbstractHost.prototype.onPageLoad=function(){};cvox.AbstractHost.prototype.getApiSrc=function(){return""};cvox.AbstractHost.prototype.getFileSrc=function(){return""};cvox.AbstractHost.prototype.hasTtsCallback=function(){return!0};cvox.AbstractHost.prototype.ttsLoaded=function(){return!0};
+cvox.AbstractHost.prototype.mustRedispatchClickEvent=function(){return!1};cvox.AbstractHost.prototype.activateOrDeactivateChromeVox=function(a){this.onStateChanged_(a?cvox.AbstractHost.State.ACTIVE:cvox.AbstractHost.State.INACTIVE)};cvox.AbstractHost.prototype.killChromeVox=function(){this.onStateChanged_(cvox.AbstractHost.State.KILLED)};
+cvox.AbstractHost.prototype.onStateChanged_=function(a){var b=a==cvox.AbstractHost.State.ACTIVE;if(b!=cvox.ChromeVox.isActive)switch(cvox.ChromeVoxEventWatcher.cleanup(window),a){case cvox.AbstractHost.State.ACTIVE:cvox.ChromeVox.isActive=!0;cvox.ChromeVox.navigationManager.showOrHideIndicator(!0);cvox.ChromeVoxEventWatcher.init(window);document.activeElement?(a=document.hasFocus()&&!document.webkitHidden,cvox.ApiImplementation.syncToNode(document.activeElement,a)):cvox.ChromeVox.navigationManager.updateIndicator();
+break;case cvox.AbstractHost.State.INACTIVE:cvox.ChromeVox.isActive=!1;cvox.ChromeVox.navigationManager.showOrHideIndicator(!1);cvox.ChromeVoxEventWatcher.init(window);break;case cvox.AbstractHost.State.KILLED:cvox.ChromeVox.isActive=!1,cvox.ChromeVox.navigationManager.showOrHideIndicator(!1)}};cvox.MathJaxInterface=function(){};cvox.MathJaxInterface.prototype.isMathjaxActive=function(){};cvox.MathJaxInterface.prototype.getAllJax=function(){};cvox.MathJaxInterface.prototype.registerSignal=function(){};cvox.MathJaxInterface.prototype.injectScripts=function(){};cvox.MathJaxInterface.prototype.configMediaWiki=function(){};cvox.MathJaxInterface.prototype.getTex=function(){};cvox.MathJaxInterface.prototype.getAsciiMath=function(){};cvox.AbstractMathJax=function(){};cvox.AbstractMathJax.prototype.getAllTexs=function(a){for(var b=document.querySelectorAll(cvox.DomUtil.altMathQuerySelector("tex")),c=0,d;d=b[c];c++)this.getTex(a,d)};cvox.AbstractMathJax.prototype.getAllAsciiMaths=function(a){for(var b=document.querySelectorAll(cvox.DomUtil.altMathQuerySelector("asciimath")),c=0,d;d=b[c];c++)this.getAsciiMath(a,d)};
+cvox.AbstractMathJax.prototype.convertMarkupToDom=function(a,b,c){if(b){var d=new DOMParser;b=b.replace(/>\s+</g,"><");a(d.parseFromString(b,"text/xml").firstChild,c)}};cvox.AbstractMsgs=function(){};cvox.AbstractMsgs.prototype.getMsg=function(){};cvox.AbstractMsgs.prototype.getNumber=function(){};cvox.HostFactory=function(){};cvox.HostFactory.getHost=function(){return new cvox.HostFactory.hostConstructor};cvox.HostFactory.getTts=function(){return new cvox.HostFactory.ttsConstructor};cvox.HostFactory.getBraille=function(){return new cvox.HostFactory.brailleConstructor};cvox.HostFactory.getMsgs=function(){return new cvox.HostFactory.msgsConstructor};cvox.HostFactory.getEarcons=function(){return new cvox.HostFactory.earconsConstructor};cvox.HostFactory.getMathJax=function(){return new cvox.HostFactory.mathJaxConstructor};cvox.SpokenMessage=function(){this.raw=this.id=this.count=null};cvox.SpokenMessages={};cvox.SpokenMessages.messages=[];cvox.SpokenMessages.speakFlush=function(){cvox.SpokenMessages.speak(cvox.AbstractTts.QUEUE_MODE_FLUSH)};cvox.SpokenMessages.speakQueued=function(){cvox.SpokenMessages.speak(cvox.AbstractTts.QUEUE_MODE_QUEUE)};
+cvox.SpokenMessages.speak=function(a){for(var b=0;b<cvox.SpokenMessages.messages.length;++b){var c=cvox.SpokenMessages.messages[b];if(!c||!c.id&&!c.raw)throw"Invalid message received.";var d="";if(null!=c.count)if(0>=c.count)try{d+=cvox.ChromeVox.msgs.getMsg(c.id[0]+"_optional_default")}catch(e){continue}else d=1==c.count?d+cvox.ChromeVox.msgs.getMsg(c.id[0]+"_singular"):d+cvox.ChromeVox.msgs.getMsg(c.id[0]+"_plural",[c.count]);else d=c.raw?d+c.raw:d+cvox.ChromeVox.msgs.getMsg.apply(cvox.ChromeVox.msgs,
+c.id);cvox.ChromeVox.tts.speak(d,a,cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT);a=cvox.AbstractTts.QUEUE_MODE_QUEUE}cvox.SpokenMessages.messages=[]};cvox.SpokenMessages.currentMessage=function(){if(0==cvox.SpokenMessages.messages.length)throw"Invalid usage of SpokenMessages; start the chain using $m()";return cvox.SpokenMessages.messages[cvox.SpokenMessages.messages.length-1]};cvox.SpokenMessages.withCount=function(a){cvox.SpokenMessages.currentMessage().count=a;return cvox.SpokenMessages};
+cvox.SpokenMessages.andIndexTotal=function(a,b){var c=new cvox.SpokenMessage;c.raw=cvox.ChromeVox.msgs.getMsg("index_total",[a,b]);cvox.SpokenMessages.messages.push(c);return cvox.SpokenMessages};cvox.SpokenMessages.andEnd=function(){return cvox.SpokenMessages.andMessage("end")};cvox.SpokenMessages.andMessage=function(a){var b=new cvox.SpokenMessage;b.id="string"==typeof a?[a]:a;cvox.SpokenMessages.messages.push(b);return cvox.SpokenMessages};
+cvox.SpokenMessages.andRawMessage=function(a){var b=new cvox.SpokenMessage;b.raw=a;cvox.SpokenMessages.messages.push(b);return cvox.SpokenMessages};cvox.SpokenMessages.andPause=function(){return cvox.SpokenMessages.andMessage("pause")};cvox.$m=cvox.SpokenMessages.andMessage;cvox.CompositeTts=function(){this.ttsEngines_=[]};cvox.CompositeTts.prototype.add=function(a){this.ttsEngines_.push(a);return this};cvox.CompositeTts.prototype.speak=function(a,b,c){this.ttsEngines_.forEach(function(d){d.speak(a,b,c)})};cvox.CompositeTts.prototype.isSpeaking=function(){return this.ttsEngines_.some(function(a){return a.isSpeaking()})};cvox.CompositeTts.prototype.stop=function(){this.ttsEngines_.forEach(function(a){a.stop()})};
+cvox.CompositeTts.prototype.increaseOrDecreaseProperty=function(a,b){this.ttsEngines_.forEach(function(c){c.increaseOrDecreaseProperty(a,b)})};cvox.CompositeTts.prototype.getDefaultProperty=function(a){for(var b=0,c;c=this.ttsEngines_[b];b++)if(c=c.getDefaultProperty(a))return c};cvox.BuildInfo={};cvox.BuildInfo.build="1384906195.369502";cvox.ChromeVoxJSON||(cvox.ChromeVoxJSON={});
+window.JSON&&"[object JSON]"==window.JSON.toString()?cvox.ChromeVoxJSON=window.JSON:function(){function a(a){return 10>a?"0"+a:a}function b(a){e.lastIndex=0;return e.test(a)?'"'+a.replace(e,function(a){var b=h[a];return"string"===typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function c(a,d){var e,h,n,s,u=f,t,r=d[a];r&&"object"===typeof r&&"function"===typeof r.toJSON&&(r=r.toJSON(a));"function"===typeof k&&(r=k.call(d,a,r));switch(typeof r){case "string":return b(r);
+case "number":return isFinite(r)?String(r):"null";case "boolean":case "null":return String(r);case "object":if(!r)return"null";f+=g;t=[];if("[object Array]"===Object.prototype.toString.apply(r)){s=r.length;for(e=0;e<s;e+=1)t[e]=c(e,r)||"null";n=0===t.length?"[]":f?"[\n"+f+t.join(",\n"+f)+"\n"+u+"]":"["+t.join(",")+"]";f=u;return n}if(k&&"object"===typeof k)for(s=k.length,e=0;e<s;e+=1)h=k[e],"string"===typeof h&&(n=c(h,r))&&t.push(b(h)+(f?": ":":")+n);else for(h in r)Object.hasOwnProperty.call(r,h)&&
+(n=c(h,r))&&t.push(b(h)+(f?": ":":")+n);n=0===t.length?"{}":f?"{\n"+f+t.join(",\n"+f)+"\n"+u+"}":"{"+t.join(",")+"}";f=u;return n}}"function"!==typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+a(this.getUTCMonth()+1)+"-"+a(this.getUTCDate())+"T"+a(this.getUTCHours())+":"+a(this.getUTCMinutes())+":"+a(this.getUTCSeconds())+"Z":"null"},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()});
+var d=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof cvox.ChromeVoxJSON.stringify&&(cvox.ChromeVoxJSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&&
+(g=d);if((k=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})});"function"!==typeof cvox.ChromeVoxJSON.parse&&(cvox.ChromeVoxJSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=String(a);d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));
+if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})}();"undefined"!=typeof goog&&goog.provide&&(cvox.ApiUtil={});window.cvox||(window.cvox={});cvox.ApiUtils=function(){};cvox.ApiUtils.nextCvoxId_=1;
+cvox.ApiUtils.makeNodeReference=function(a){if(a.id&&document.getElementById(a.id)==a)return{id:a.id};if(a instanceof HTMLElement){var b=cvox.ApiUtils.nextCvoxId_;a.setAttribute("cvoxid",b);cvox.ApiUtils.nextCvoxId_=(cvox.ApiUtils.nextCvoxId_+1)%100;return{cvoxid:b}}if(a.parentElement){for(var c=a.parentElement,d=-1,b=0;b<c.childNodes.length;b++)if(c.childNodes[b]==a){d=b;break}if(0<=d)return b=cvox.ApiUtils.nextCvoxId_,c.setAttribute("cvoxid",b),cvox.ApiUtils.nextCvoxId_=(cvox.ApiUtils.nextCvoxId_+
+1)%100,{cvoxid:b,childIndex:d}}throw"Cannot reference node: "+a;};cvox.ApiUtils.getNodeFromRef=function(a){if(a.id)return document.getElementById(a.id);if(a.cvoxid){var b='*[cvoxid="'+a.cvoxid+'"]';(b=document.querySelector(b))&&b.removeAttribute&&b.removeAttribute("cvoxid");return null!=a.childIndex?b.childNodes[a.childIndex]:b}throw"Bad node reference: "+cvox.ChromeVoxJSON.stringify(a);};cvox.ScriptInstaller={};
+cvox.ScriptInstaller.installScript=function(a,b,c,d){if(document.querySelector("script["+b+"]")||!a)return!1;for(var e=0,f;f=a[e];e++){var g=new XMLHttpRequest,h=f+"?"+(new Date).getTime();g.onreadystatechange=function(){if(4==g.readyState){var a=g.responseText,a=a+("\n//# sourceURL="+f+"\n"),c=document.createElement("script");c.type="text/javascript";c.setAttribute(b,"1");c.textContent=a;d&&c.setAttribute("chromevoxScriptBase",d);cvox.DomUtil.addNodeToHead(c)}};try{g.open("GET",h,!1),g.send(null)}catch(k){return window.console.log("Warning: ChromeVox external script loading for "+
+document.location+" stopped after failing to install "+f),!1}}c&&c();return!0};cvox.ApiImplementation=function(){};cvox.ApiImplementation.init=function(a){window.addEventListener("message",cvox.ApiImplementation.portSetup,!0);var b=[];b.push(cvox.ChromeVox.host.getFileSrc("chromevox/injected/api_util.js"));b.push(cvox.ChromeVox.host.getApiSrc());b.push(cvox.ApiImplementation.siteSpecificScriptLoader);a=cvox.ScriptInstaller.installScript(b,"cvoxapi",a,cvox.ApiImplementation.siteSpecificScriptBase);a||(window.location.href="javascript:cvox.Api.internalEnable();")};
+cvox.ApiImplementation.portSetup=function(a){return"cvox.PortSetup"==a.data?(cvox.ApiImplementation.port=a.ports[0],cvox.ApiImplementation.port.onmessage=function(a){cvox.ApiImplementation.dispatchApiMessage(cvox.ChromeVoxJSON.parse(a.data))},a.stopPropagation(),!1):!0};
+cvox.ApiImplementation.dispatchApiMessage=function(a){var b;switch(a.cmd){case "speak":b=cvox.ApiImplementation.speak;break;case "speakNodeRef":b=cvox.ApiImplementation.speakNodeRef;break;case "stop":b=cvox.ApiImplementation.stop;break;case "playEarcon":b=cvox.ApiImplementation.playEarcon;break;case "syncToNodeRef":b=cvox.ApiImplementation.syncToNodeRef;break;case "clickNodeRef":b=cvox.ApiImplementation.clickNodeRef;break;case "getBuild":b=cvox.ApiImplementation.getBuild;break;case "getVersion":b=
+cvox.ApiImplementation.getVersion;break;case "getCurrentNode":b=cvox.ApiImplementation.getCurrentNode;break;case "getCvoxModKeys":b=cvox.ApiImplementation.getCvoxModKeys;break;case "isKeyShortcut":b=cvox.ApiImplementation.isKeyShortcut;break;case "setKeyEcho":b=cvox.ApiImplementation.setKeyEcho;break;case "Math.defineRule":b=cvox.ApiImplementation.Math.defineRule}if(!b)throw"Unknown API call: "+a.cmd;b.apply(cvox.ApiImplementation,a.args)};
+function setupEndCallback_(a,b){var c=function(){cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:b}))};a&&(a.endCallback=c)}cvox.ApiImplementation.speak=function(a,b,c,d){cvox.ChromeVox.isActive&&(d||(d={}),setupEndCallback_(d,a),cvox.ChromeVox.tts.speak(b,c,d))};cvox.ApiImplementation.speakNode=function(a,b,c){cvox.ChromeVox.isActive&&cvox.ChromeVox.tts.speak(cvox.DomUtil.getName(a),b,c)};
+cvox.ApiImplementation.speakNodeRef=function(a,b,c,d){b=cvox.ApiUtils.getNodeFromRef(b);d||(d={});setupEndCallback_(d,a);cvox.ApiImplementation.speakNode(b,c,d)};cvox.ApiImplementation.stop=function(){cvox.ChromeVox.isActive&&cvox.ChromeVox.tts.stop()};cvox.ApiImplementation.playEarcon=function(a){cvox.ChromeVox.isActive&&cvox.ChromeVox.earcons.playEarconByName(a)};cvox.ApiImplementation.syncToNodeRef=function(a,b){var c=cvox.ApiUtils.getNodeFromRef(a);cvox.ApiImplementation.syncToNode(c,b)};
+cvox.ApiImplementation.syncToNode=function(a,b,c){cvox.ChromeVox.isActive&&(void 0==c&&(c=cvox.AbstractTts.QUEUE_MODE_FLUSH),cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(a,!0),cvox.ChromeVox.navigationManager.updateIndicator(),void 0==b&&(b=!1),cvox.AriaUtil.isHiddenRecursive(a)&&(b=!1),b&&cvox.ChromeVox.navigationManager.speakDescriptionArray(cvox.ApiImplementation.getDesc_(a),c,null),cvox.ChromeVox.navigationManager.getBraille().write(),cvox.ChromeVox.navigationManager.updatePosition(a))};
+cvox.ApiImplementation.getCurrentNode=function(a){var b=cvox.ChromeVox.navigationManager.getCurrentNode();cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,currentNode:cvox.ApiUtils.makeNodeReference(b)}))};
+cvox.ApiImplementation.getDesc_=function(a){if(!a.hasAttribute("cvoxnodedesc"))return cvox.ChromeVox.navigationManager.getDescription();a=cvox.ChromeVoxJSON.parse(a.getAttribute("cvoxnodedesc"));for(var b=[],c=0;c<a.length;++c){var d=a[c];b.push(new cvox.NavDescription({context:d.context,text:d.text,userValue:d.userValue,annotation:d.annotation}))}return b};cvox.ApiImplementation.clickNodeRef=function(a,b){cvox.DomUtil.clickElem(cvox.ApiUtils.getNodeFromRef(a),b,!1)};
+cvox.ApiImplementation.getBuild=function(a){cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,build:cvox.BuildInfo.build}))};cvox.ApiImplementation.getVersion=function(a){var b=cvox.ChromeVox.version;null==b?window.setTimeout(function(){cvox.ApiImplementation.getVersion(a)},1E3):cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,version:b}))};
+cvox.ApiImplementation.getCvoxModKeys=function(a){cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,keyCodes:cvox.KeyUtil.cvoxModKeyCodes()}))};cvox.ApiImplementation.isKeyShortcut=function(a,b){var c=cvox.KeyUtil.keyEventToKeySequence(b);cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,isHandled:cvox.ChromeVoxKbHandler.handlerKeyMap.hasKey(c)}))};
+cvox.ApiImplementation.setKeyEcho=function(a){var b=cvox.ChromeVox.keyEcho;b[document.location.href]=a;JSON.stringify(b)};cvox.ApiImplementation.Math=function(){};cvox.ApiImplementation.Math.defineRule=function(a,b,c,d,e){var f=cvox.MathmlStore.getInstance(),g=Array.prototype.slice.call(arguments,4),g=[a,b,c,d].concat(g);f.defineRule.apply(f,g)};cvox.ConsoleTts=function(){this.enabled_=!1};goog.addSingletonGetter(cvox.ConsoleTts);cvox.ConsoleTts.prototype.speak=function(a,b,c){if(this.enabled_&&window.console){var d="Speak",d=b==cvox.AbstractTts.QUEUE_MODE_FLUSH?d+" (I)":d+" (Q)",d=d+(' "'+a+'"');window.console.log(d);c&&void 0!=c.startCallback&&window.console.log(" using startCallback");c&&void 0!=c.endCallback&&window.console.log(" using endCallback")}return this};cvox.ConsoleTts.prototype.isSpeaking=function(){return!1};
+cvox.ConsoleTts.prototype.stop=function(){this.enabled_&&window.console.log("Stop")};cvox.ConsoleTts.prototype.increaseOrDecreaseProperty=function(){};cvox.ConsoleTts.prototype.setEnabled=function(a){this.enabled_=a};cvox.ConsoleTts.prototype.getDefaultProperty=function(){};cvox.ChromeVoxHTMLDateWidget=function(a,b){var c=this;this.pos_=0;var d=2;if("month"==a.type||"week"==a.type)d=1;this.maxPos_=d;this.dateElem_=a;this.dateTts_=b;this.pDay_=this.pWeek_=this.pMonth_=this.pYear_=-1;this.keyListener_=function(a){c.eventHandler_(a)};this.blurListener_=function(){c.shutdown()};0==this.dateElem_.value.length&&this.forceInitTime_();for(d=0;d<this.maxPos_;d++){var e=document.createEvent("KeyboardEvent");e.initKeyboardEvent("keydown",!0,!0,window,"Left",0,!1,!1,!1,!1);this.dateElem_.dispatchEvent(e);
+e=document.createEvent("KeyboardEvent");e.initKeyboardEvent("keyup",!0,!0,window,"Left",0,!1,!1,!1,!1);this.dateElem_.dispatchEvent(e)}this.dateElem_.addEventListener("keydown",this.keyListener_,!1);this.dateElem_.addEventListener("keyup",this.keyListener_,!1);this.dateElem_.addEventListener("blur",this.blurListener_,!1);this.update_(!0)};
+cvox.ChromeVoxHTMLDateWidget.prototype.shutdown=function(){this.dateElem_.removeEventListener("blur",this.blurListener_,!1);this.dateElem_.removeEventListener("keydown",this.keyListener_,!1);this.dateElem_.removeEventListener("keyup",this.keyListener_,!1)};
+cvox.ChromeVoxHTMLDateWidget.prototype.forceInitTime_=function(){var a=new Date,b="",b=a.getFullYear()+"",c=a.getMonth()+1+"";2>c.length&&(c="0"+c);var d=a.getDate()+"";switch(this.dateElem_.type){case "month":b=b+"-"+c;break;case "week":a.setHours(0,0,0);a.setDate(a.getDate()+4-(a.getDay()||7));c=new Date(a.getFullYear(),0,1);a=Math.ceil(((a-c)/864E5+1)/7)+"";2>a.length&&(a="0"+a);a="W"+a;b=b+"-"+a;break;default:b=b+"-"+c+"-"+d}this.dateElem_.setAttribute("value",b)};
+cvox.ChromeVoxHTMLDateWidget.prototype.handlePosChange_=function(){this.pos_=Math.max(this.pos_,0);this.pos_=Math.min(this.pos_,this.maxPos_);switch(this.pos_){case 0:"week"==this.dateElem_.type?this.pWeek_=-1:this.pMonth_=-1;break;case 1:"date"==this.dateElem_.type?this.pDay_=-1:this.pYear_=-1;break;case 2:this.pYear_=-1}};
+cvox.ChromeVoxHTMLDateWidget.prototype.update_=function(a){var b=this.dateElem_.value.split("-");if(1>b.length)this.forceInitTime_();else{var c=-1,d=-1,e=-1,f=-1,c=parseInt(b[0],10);"week"==this.dateElem_.type?e=parseInt(b[1].replace("W",""),10):"date"==this.dateElem_.type?(d=parseInt(b[1],10),f=parseInt(b[2],10)):d=parseInt(b[1],10);b="";a&&(b=cvox.DomUtil.getName(this.dateElem_,!0,!0)+"\n");e!=this.pWeek_&&(b=b+cvox.ChromeVox.msgs.getMsg("datewidget_week")+e+"\n",this.pWeek_=e);if(d!=this.pMonth_){a=
+"";switch(d){case 1:a=cvox.ChromeVox.msgs.getMsg("datewidget_january");break;case 2:a=cvox.ChromeVox.msgs.getMsg("datewidget_february");break;case 3:a=cvox.ChromeVox.msgs.getMsg("datewidget_march");break;case 4:a=cvox.ChromeVox.msgs.getMsg("datewidget_april");break;case 5:a=cvox.ChromeVox.msgs.getMsg("datewidget_may");break;case 6:a=cvox.ChromeVox.msgs.getMsg("datewidget_june");break;case 7:a=cvox.ChromeVox.msgs.getMsg("datewidget_july");break;case 8:a=cvox.ChromeVox.msgs.getMsg("datewidget_august");
+break;case 9:a=cvox.ChromeVox.msgs.getMsg("datewidget_september");break;case 10:a=cvox.ChromeVox.msgs.getMsg("datewidget_october");break;case 11:a=cvox.ChromeVox.msgs.getMsg("datewidget_november");break;case 12:a=cvox.ChromeVox.msgs.getMsg("datewidget_december")}b=b+a+"\n";this.pMonth_=d}f!=this.pDay_&&(b=b+f+"\n",this.pDay_=f);c!=this.pYear_&&(b=b+c+"\n",this.pYear_=c);0<b.length&&this.dateTts_.speak(b,0,null)}};
+cvox.ChromeVoxHTMLDateWidget.prototype.eventHandler_=function(a){var b=!1;if("keydown"==a.type){if(9==a.keyCode&&!a.shiftKey||39==a.keyCode)this.pos_++,this.handlePosChange_(),b=!0;if(9==a.keyCode&&a.shiftKey||37==a.keyCode)this.pos_--,this.handlePosChange_(),b=!0}this.update_(b)};cvox.BrailleTextHandler=function(a){this.braille_=a};cvox.BrailleTextHandler.prototype.changed=function(a,b,c,d){var e;d?(e=cvox.NavBraille.fromText(a),e.startIndex=b,e.endIndex=c):cvox.ChromeVox.navigationManager&&(e=cvox.ChromeVox.navigationManager.getBraille());e&&this.braille_.write(e)};cvox.ContentEditableExtractor=function(){this.text_="";this.end_=this.start_=0;this.lines_={};this.characterToLineMap_=[]};
+cvox.ContentEditableExtractor.prototype.update=function(a){for(var b={0:{startIndex:0,endIndex:0}},c=new cvox.Cursor(a,0,""),d=c.clone(),e=document.createRange(),f,g=0,h=null,k="",l=0,m=-1,p=-1,q=window.getSelection(),n=new cvox.Cursor(q.baseNode,q.baseOffset,""),q=new cvox.Cursor(q.extentNode,q.extentOffset,""),s=!1,u=!1;;){f=[];var t=[],r=cvox.TraverseUtil.forwardsChar(d,f,t),v=!1;r||(v=!0);for(f=0;f<t.length&&!v;f++)t[f]==a&&(v=!0);if(v)break;e.setStart(c.node,c.index);e.setEnd(d.node,d.index);
+if((f=e.getBoundingClientRect())&&0!=f.width&&0!=f.height){null!==h&&f.bottom!=h&&0<l&&k.substr(-1).match(/\S/)&&r.match(/\S/)&&(k+="\n",l++);if(c.node!=d.node&&0<d.index&&(e.setStart(d.node,d.index-1),f=e.getBoundingClientRect(),!f||0==f.width||0==f.height))continue;!s&&-1==m&&d.node==n.node&&d.index>=n.index&&(d.index>n.index?m=l:s=!0);!u&&-1==p&&d.node==q.node&&d.index>=q.index&&(d.index>q.index?p=l:u=!0);null===h?h=f.bottom:f.bottom!=h&&(b[g].endIndex=l,g++,b[g]={startIndex:l,endIndex:l},h=f.bottom);
+k+=r;l++;c=d.clone();s&&(m=l,s=!1);u&&(p=l,u=!1)}}b[g].endIndex=l;a=[];for(f=0;f<=g;f++)for(c=b[f].startIndex;c<=b[f].endIndex;c++)a[c]=f;this.text_=k;this.characterToLineMap_=a;this.lines_=b;this.start_=0<=m?m:k.length;this.end_=0<=p?p:k.length};cvox.ContentEditableExtractor.prototype.getText=function(){return this.text_};cvox.ContentEditableExtractor.prototype.getStartIndex=function(){return this.start_};cvox.ContentEditableExtractor.prototype.getEndIndex=function(){return this.end_};
+cvox.ContentEditableExtractor.prototype.getLineIndex=function(a){return this.characterToLineMap_[a]};cvox.ContentEditableExtractor.prototype.getLineStart=function(a){return this.lines_[a].startIndex};cvox.ContentEditableExtractor.prototype.getLineEnd=function(a){return this.lines_[a].endIndex};cvox.EditableTextAreaShadow=function(){this.shadowElement_=document.createElement("div");this.lines_={};this.characterToLineMap_=[]};
+cvox.EditableTextAreaShadow.prototype.update=function(a){for(document.body.appendChild(this.shadowElement_);this.shadowElement_.childNodes.length;)this.shadowElement_.removeChild(this.shadowElement_.childNodes[0]);this.shadowElement_.style.cssText=window.getComputedStyle(a,null).cssText;this.shadowElement_.style.position="absolute";this.shadowElement_.style.top=-9999;this.shadowElement_.style.left=-9999;this.shadowElement_.setAttribute("aria-hidden","true");var b=a.value,c=document.createTextNode(b+
+".");this.shadowElement_.appendChild(c);a={0:{startIndex:0,endIndex:0}};for(var d=document.createRange(),e=0,f=0,g=0,h=null,k=!1,l;e<=b.length;){d.setStart(c,e);if(e+8>b.length||0<=b.substr(e,8).indexOf("\n"))k=!0;k?(e++,d.setEnd(c,e),l=d.getBoundingClientRect()):(d.setEnd(c,e+8),l=d.getBoundingClientRect(),l.bottom==h?e+=8:(l&&null!==h&&(k=!0),e++,d.setEnd(c,e),l=d.getBoundingClientRect()));0<e&&"\n"==b[e-1]?(a[g].endIndex=e-1,g++,a[g]={startIndex:e,endIndex:e},h=null,k=!1,f=e):l&&null===h?h=l.bottom:
+l&&l.bottom!=h&&(a[g].endIndex=f,g++,a[g]={startIndex:f,endIndex:f},h=l?l.bottom:null,k=!1);l&&(f=e)}a[g].endIndex=b.length;b=[];for(c=0;c<=g;c++)for(d=a[c].startIndex;d<=a[c].endIndex;d++)b[d]=c;this.characterToLineMap_=b;this.lines_=a;document.body.removeChild(this.shadowElement_)};cvox.EditableTextAreaShadow.prototype.getLineIndex=function(a){return this.characterToLineMap_[a]};cvox.EditableTextAreaShadow.prototype.getLineStart=function(a){return this.lines_[a].startIndex};
+cvox.EditableTextAreaShadow.prototype.getLineEnd=function(a){return this.lines_[a].endIndex};cvox.TextChangeEvent=function(a,b,c,d){this.value=a;this.start=b;this.end=c;this.triggeredByUser=d;this.start>this.end&&(a=this.end,this.end=this.start,this.start=a)};cvox.TypingEcho={CHARACTER:0,WORD:1,CHARACTER_AND_WORD:2,NONE:3,COUNT:4};cvox.TypingEcho.cycle=function(a){return(a+1)%cvox.TypingEcho.COUNT};cvox.TypingEcho.shouldSpeakChar=function(a){return a==cvox.TypingEcho.CHARACTER_AND_WORD||a==cvox.TypingEcho.CHARACTER};cvox.TextHandlerInterface=function(){};
+cvox.TextHandlerInterface.prototype.changed=function(){};cvox.ChromeVoxEditableTextBase=function(a,b,c,d,e){this.value=a;this.start=b;this.end=c;this.isPassword=d;this.tts=e;this.multiline=!1;this.brailleHandler_=cvox.ChromeVox.braille?new cvox.BrailleTextHandler(cvox.ChromeVox.braille):void 0};cvox.ChromeVoxEditableTextBase.useIBeamCursor=cvox.ChromeVox.isMac;cvox.ChromeVoxEditableTextBase.eventTypingEcho=!1;cvox.ChromeVoxEditableTextBase.prototype.maxShortPhraseLen=60;
+cvox.ChromeVoxEditableTextBase.prototype.isPassword=!1;cvox.ChromeVoxEditableTextBase.prototype.lastChangeDescribed=!1;cvox.ChromeVoxEditableTextBase.prototype.getValue=function(){var a="";if(this.multiline){if(a+="multiline editable text. ",this.start==this.end)var b=this.getLine(this.getLineIndex(this.start)),a=b?a+b:a+"blank"}else a=this.node?a+cvox.DomUtil.getValue(this.node):a+this.value,a=a<=this.maxShortPhraseLen?a+", editable text":a.substring(0,this.maxShortPhraseLen)+", editable text";return a};
+cvox.ChromeVoxEditableTextBase.prototype.getLineIndex=function(){return 0};cvox.ChromeVoxEditableTextBase.prototype.getLineStart=function(){return 0};cvox.ChromeVoxEditableTextBase.prototype.getLineEnd=function(){return this.value.length};cvox.ChromeVoxEditableTextBase.prototype.getLine=function(a){var b=this.getLineStart(a);a=this.getLineEnd(a);b=this.value.substr(b,a-b);return b.replace(/^\s+|\s+$/g,"")};cvox.ChromeVoxEditableTextBase.prototype.isWordBreakChar=function(a){return!!a.match(/^\W$/)};
+cvox.ChromeVoxEditableTextBase.prototype.isLastChar=function(a){return void 0==this.getLineIndex(a.start+1)};cvox.ChromeVoxEditableTextBase.prototype.speak=function(a,b,c){if(!this.node||document.activeElement==this.node){var d=cvox.AbstractTts.QUEUE_MODE_QUEUE;!0===b&&(d=cvox.AbstractTts.QUEUE_MODE_FLUSH);this.tts.speak(a,d,c||{})}};
+cvox.ChromeVoxEditableTextBase.prototype.changed=function(a){if(a.value!=this.value||a.start!=this.start||a.end!=this.end||this.isLastChar(a)){if(a.value==this.value?this.describeSelectionChanged(a):this.describeTextChanged(a),this.lastChangeDescribed=!0,this.value=a.value,this.start=a.start,this.end=a.end,this.brailleHandler_){var b=this.getLine(this.getLineIndex(a.start)),c=this.getLineStart(this.getLineIndex(a.start)),d=a.start-c;a=a.end-c;this.brailleHandler_.changed(b,d,a,this.multiline)}}else this.lastChangeDescribed=
+!1};
+cvox.ChromeVoxEditableTextBase.prototype.describeSelectionChanged=function(a){if(this.isPassword)this.speak((new goog.i18n.MessageFormat(cvox.ChromeVox.msgs.getMsg("dot"))).format({COUNT:1}),a.triggeredByUser);else if(a.start==a.end)if(this.start!=this.end)this.speak(cvox.ChromeVox.msgs.getMsg("Unselected"),a.triggeredByUser);else if(this.getLineIndex(this.start)!=this.getLineIndex(a.start)){var b=this.getLine(this.getLineIndex(a.start));""==b&&(b=cvox.ChromeVox.msgs.getMsg("text_box_blank"));this.speak(b,
+a.triggeredByUser)}else this.start==a.start+1||this.start==a.start-1?cvox.ChromeVoxEditableTextBase.useIBeamCursor?this.speak(this.value.substr(Math.min(this.start,a.start),1),a.triggeredByUser,{phoneticCharacters:a.triggeredByUser}):a.start==this.value.length?this.speak(cvox.ChromeVox.msgs.getMsg("end"),a.triggeredByUser):this.speak(this.value.substr(a.start,1),a.triggeredByUser,{phoneticCharacters:a.triggeredByUser}):this.speak(this.value.substr(Math.min(this.start,a.start),Math.abs(this.start-
+a.start)),a.triggeredByUser);else this.start+1==a.start&&this.end==this.value.length&&a.end==this.value.length?(this.speak(this.value.substr(this.start,1),a.triggeredByUser),this.speak(this.value.substr(a.start))):this.start==this.end?(this.speak(this.value.substr(a.start,a.end-a.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("selected"))):this.start==a.start&&this.end<a.end?(this.speak(this.value.substr(this.end,a.end-this.end),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("added_to_selection"))):
+this.start==a.start&&this.end>a.end?(this.speak(this.value.substr(a.end,this.end-a.end),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("removed_from_selection"))):this.end==a.end&&this.start>a.start?(this.speak(this.value.substr(a.start,this.start-a.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("added_to_selection"))):this.end==a.end&&this.start<a.start?(this.speak(this.value.substr(this.start,a.start-this.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("removed_from_selection"))):
+(this.speak(this.value.substr(a.start,a.end-a.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("selected")))};
+cvox.ChromeVoxEditableTextBase.prototype.describeTextChanged=function(a){var b={};a.value.length<this.value.length&&(b=cvox.AbstractTts.PERSONALITY_DELETED);if(this.isPassword)this.speak((new goog.i18n.MessageFormat(cvox.ChromeVox.msgs.getMsg("dot"))).format({COUNT:1}),a.triggeredByUser,b);else{var c=this.value,d=c.length,e=a.value.length,f="",g=a.value,h=a.end;a.start<h&&h==e&&(f=g.substr(a.start),g=g.substr(0,a.start),h=a.start);var k=this.start,l=d-this.end;if(e>=k+l+(h-a.start)&&g.substr(0,k)==
+c.substr(0,k)&&g.substr(e-l)==c.substr(this.end))this instanceof cvox.ChromeVoxEditableContentEditable&&!(e<d||this.isWordBreakChar(a.value[e-1]||""))||this.describeTextChangedHelper(a,k,l,f,b);else if(k=a.start,l=e-h,this.start==this.end&&a.start==h&&g.substr(0,k)==c.substr(0,k)&&g.substr(e-l)==c.substr(d-l))this.describeTextChangedHelper(a,k,l,f,b);else{g+=f;if(g.length==c.length+1||g.length+1==c.length){if(g.length>c.length){if(0==g.indexOf(c)){this.speak(g[g.length-1],a.triggeredByUser,b);return}if(1==
+g.indexOf(c)){this.speak(g[0],a.triggeredByUser,b);return}}if(g.length<c.length){if(0==c.indexOf(g)){this.speak(c[c.length-1],a.triggeredByUser,b);return}if(1==c.indexOf(g)){this.speak(c[0],a.triggeredByUser,b);return}}}if(this.multiline)a.value.length<this.value.length&&this.speak(cvox.ChromeVox.msgs.getMsg("text_deleted"),a.triggeredByUser,b);else if(e<=this.maxShortPhraseLen)this.describeTextChangedHelper(a,0,0,"",b);else{for(k=0;k<d&&k<e&&c[k]==g[k];)k++;for(;0<k&&!this.isWordBreakChar(c[k-1]);)k--;
+for(l=0;l<d-k&&l<e-k&&c[d-l-1]==g[e-l-1];)l++;for(;0<l&&!this.isWordBreakChar(c[d-l]);)l--;this.describeTextChangedHelper(a,k,l,"",b)}}}};
+cvox.ChromeVoxEditableTextBase.prototype.describeTextChangedHelper=function(a,b,c,d,e){var f=this.value.length,g=a.value.length,f=f-b-c,h=this.value.substr(b,f),k=g-b-c;c=a.value.substr(b,k);var l="",g=a.triggeredByUser;if(1<k)l=c;else if(1==k)if((cvox.ChromeVox.typingEcho==cvox.TypingEcho.WORD||cvox.ChromeVox.typingEcho==cvox.TypingEcho.CHARACTER_AND_WORD)&&this.isWordBreakChar(c)&&0<b&&!this.isWordBreakChar(a.value.substr(b-1,1))){for(f=b;0<f&&!this.isWordBreakChar(a.value[f-1]);)f--;f<b?l=a.value.substr(f,
+b+1-f):(l=c,g=!1)}else{if(cvox.ChromeVox.typingEcho==cvox.TypingEcho.CHARACTER||cvox.ChromeVox.typingEcho==cvox.TypingEcho.CHARACTER_AND_WORD)l=cvox.ChromeVoxEditableTextBase.eventTypingEcho?"":c}else 1<f&&!d?l=h+", deleted":1==f&&(l=h);d&&l?l+=", "+d:d&&(l=d);l&&this.speak(l,g,e)};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextCharacter=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousCharacter=function(){return!1};
+cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextWord=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousWord=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextLine=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousLine=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextParagraph=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousParagraph=function(){return!1};
+cvox.ChromeVoxEditableElement=function(a,b,c,d,e,f){cvox.ChromeVoxEditableTextBase.call(this,b,c,d,e,f);this.node=a;this.justSpokeDescription_=!1};goog.inherits(cvox.ChromeVoxEditableElement,cvox.ChromeVoxEditableTextBase);cvox.ChromeVoxEditableElement.prototype.changed=function(a){this.justSpokeDescription_&&this.value==a.value&&(this.value=a.value,this.start=a.start,this.end=a.end,this.justSpokeDescription_=!1);cvox.ChromeVoxEditableElement.superClass_.changed.call(this,a)};
+cvox.ChromeVoxEditableElement.prototype.getValue=function(){this.justSpokeDescription_=!0;return cvox.ChromeVoxEditableElement.superClass_.getValue.call(this)};cvox.ChromeVoxEditableElement.prototype.moveCursorToNextCharacter=function(){var a=this.node;a.selectionEnd++;a.selectionStart=a.selectionEnd;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableElement.prototype.moveCursorToPreviousCharacter=function(){var a=this.node;a.selectionStart--;a.selectionEnd=a.selectionStart;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableElement.prototype.moveCursorToNextWord=function(){var a=this.node,b=a.value.length,c=/\W+/gm,d=a.value.substring(a.selectionEnd),e=c.exec(d);null!==e&&0==e.index&&(e=c.exec(d));b=null===e?b:e.index+a.selectionEnd;a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableElement.prototype.moveCursorToPreviousWord=function(){for(var a=this.node,b=/\W+/gm,c=a.value.substring(0,a.selectionStart),d=0;null!==b.exec(c);)b.lastIndex<a.selectionStart&&(d=b.lastIndex);a.selectionStart=a.selectionEnd=d;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableElement.prototype.moveCursorToNextParagraph=function(){var a=this.node,b=a.value.length,c=a.selectionEnd>=b?b:a.value.indexOf("\n",a.selectionEnd);0>c&&(c=b);a.selectionStart=a.selectionEnd=c+1;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableElement.prototype.moveCursorToPreviousParagraph=function(){var a=this.node,b=0>=a.selectionStart?0:a.value.lastIndexOf("\n",a.selectionStart-2)+1;0>b&&(b=0);a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEditableHTMLInput=function(a,b){cvox.ChromeVoxEditableElement.call(this,a,a.value,a.selectionStart,a.selectionEnd,"password"===a.type,b)};goog.inherits(cvox.ChromeVoxEditableHTMLInput,cvox.ChromeVoxEditableElement);
+cvox.ChromeVoxEditableHTMLInput.prototype.update=function(a){var b=this.node.value;a=new cvox.TextChangeEvent(b,this.node.selectionStart,this.node.selectionEnd,a);this.changed(a)};cvox.ChromeVoxEditableTextArea=function(a,b){cvox.ChromeVoxEditableElement.call(this,a,a.value,a.selectionStart,a.selectionEnd,!1,b);this.multiline=!0;this.shadowIsCurrent_=!1};goog.inherits(cvox.ChromeVoxEditableTextArea,cvox.ChromeVoxEditableElement);
+cvox.ChromeVoxEditableTextArea.prototype.update=function(a){this.node.value!=this.value&&(this.shadowIsCurrent_=!1);a=new cvox.TextChangeEvent(this.node.value,this.node.selectionStart,this.node.selectionEnd,a);this.changed(a)};cvox.ChromeVoxEditableTextArea.prototype.getLineIndex=function(a){return this.getShadow().getLineIndex(a)};cvox.ChromeVoxEditableTextArea.prototype.getLineStart=function(a){return this.getShadow().getLineStart(a)};cvox.ChromeVoxEditableTextArea.prototype.getLineEnd=function(a){return this.getShadow().getLineEnd(a)};
+cvox.ChromeVoxEditableTextArea.prototype.getShadow=function(){var a=cvox.ChromeVoxEditableTextArea.shadow_;a||(a=cvox.ChromeVoxEditableTextArea.shadow_=new cvox.EditableTextAreaShadow);this.shadowIsCurrent_||(a.update(this.node),this.shadowIsCurrent_=!0);return a};
+cvox.ChromeVoxEditableTextArea.prototype.moveCursorToNextLine=function(){var a=this.node,b=a.value.length;if(a.selectionEnd>=b)return!1;var c=this.getShadow(),d=c.getLineIndex(a.selectionEnd),e=c.getLineStart(d),e=a.selectionEnd-e,f=0==b?0:c.getLineIndex(b-1),b=d>=f?b:Math.min(c.getLineStart(d+1)+e,c.getLineEnd(d+1));a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableTextArea.prototype.moveCursorToPreviousLine=function(){var a=this.node;if(0>=a.selectionStart)return!1;var b=this.getShadow(),c=b.getLineIndex(a.selectionStart),d=b.getLineStart(c),d=a.selectionStart-d,b=0>=c?0:Math.min(b.getLineStart(c-1)+d,b.getLineEnd(c-1));a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableContentEditable=function(a,b){cvox.ChromeVoxEditableElement.call(this,a,"",0,0,!1,b);this.extractorIsCurrent_=!1;var c=this.getExtractor();this.value=c.getText();this.start=c.getStartIndex();this.end=c.getEndIndex();this.multiline=!0};goog.inherits(cvox.ChromeVoxEditableContentEditable,cvox.ChromeVoxEditableElement);
+cvox.ChromeVoxEditableContentEditable.prototype.update=function(a){this.extractorIsCurrent_=!1;a=new cvox.TextChangeEvent(this.getExtractor().getText(),this.getExtractor().getStartIndex(),this.getExtractor().getEndIndex(),a);this.changed(a)};cvox.ChromeVoxEditableContentEditable.prototype.getLineIndex=function(a){return this.getExtractor().getLineIndex(a)};cvox.ChromeVoxEditableContentEditable.prototype.getLineStart=function(a){return this.getExtractor().getLineStart(a)};
+cvox.ChromeVoxEditableContentEditable.prototype.getLineEnd=function(a){return this.getExtractor().getLineEnd(a)};cvox.ChromeVoxEditableContentEditable.prototype.getExtractor=function(){var a=cvox.ChromeVoxEditableContentEditable.extractor_;a||(a=cvox.ChromeVoxEditableContentEditable.extractor_=new cvox.ContentEditableExtractor);this.extractorIsCurrent_||(a.update(this.node),this.extractorIsCurrent_=!0);return a};
+cvox.ChromeVoxEditableContentEditable.prototype.describeSelectionChanged=function(a){a.triggeredByUser&&(this.start==this.end&&a.start==a.end&&1!=Math.abs(this.start-a.start)&&this.isLastChar(a)?this.speak(cvox.ChromeVox.msgs.getMsg("text_box_blank"),!0):cvox.ChromeVoxEditableContentEditable.superClass_.describeSelectionChanged.call(this,a))};
+cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToNextCharacter=function(){window.getSelection().modify("move","forward","character");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToPreviousCharacter=function(){window.getSelection().modify("move","backward","character");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToNextParagraph=function(){window.getSelection().modify("move","forward","paragraph");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToPreviousParagraph=function(){window.getSelection().modify("move","backward","paragraph");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEventSuspender=function(){};cvox.ChromeVoxEventSuspender.suspendLevel_=0;cvox.ChromeVoxEventSuspender.enterSuspendEvents=function(){cvox.ChromeVoxEventSuspender.suspendLevel_+=1};cvox.ChromeVoxEventSuspender.exitSuspendEvents=function(){cvox.ChromeVoxEventSuspender.suspendLevel_-=1};cvox.ChromeVoxEventSuspender.areEventsSuspended=function(){return 0<cvox.ChromeVoxEventSuspender.suspendLevel_};
+cvox.ChromeVoxEventSuspender.withSuspendedEvents=function(a){return function(){cvox.ChromeVoxEventSuspender.enterSuspendEvents();var b=a.apply(this,arguments);cvox.ChromeVoxEventSuspender.exitSuspendEvents();return b}};cvox.ChromeVoxEventSuspender.makeSuspendableHandler=function(a,b){return function(){return cvox.ChromeVoxEventSuspender.areEventsSuspended()?b:a()}};cvox.Focuser={};
+cvox.Focuser.setFocus=function(a,b){var c=window.getSelection(),d;0<c.rangeCount&&(d=c.getRangeAt(0));document.activeElement&&!cvox.DomUtil.isDescendantOfNode(a,document.activeElement)&&document.activeElement.blur();a&&a.constructor==HTMLVideoElement&&(cvox.DomUtil.isFocusable(a)||a.setAttribute("tabIndex",0));if(b&&!cvox.DomUtil.isFocusable(a)){var e=cvox.DomUtil.findFocusableDescendant(a);e&&(a=e)}else for(;a&&!cvox.DomUtil.isFocusable(a);)a=a.parentNode;cvox.DomUtil.isFocusable(a)?"IFRAME"!=a.tagName&&
+(cvox.ChromeVoxEventSuspender.areEventsSuspended()?(cvox.Focuser.shouldEnterSuspendEvents_(a)&&cvox.ChromeVoxEventSuspender.enterSuspendEvents(),window.setTimeout(function(){a.focus();cvox.ChromeVoxEventSuspender.exitSuspendEvents()},0)):window.setTimeout(function(){a.focus()},0)):document.activeElement&&"BODY"!=document.activeElement.tagName&&document.activeElement.blur();cvox.DomUtil.isInputTypeText(a)?a.select():d&&(c.removeAllRanges(),c.addRange(d))};
+cvox.Focuser.shouldEnterSuspendEvents_=function(a){if(a.constructor&&a.constructor==HTMLVideoElement)return!1;if(a.hasAttribute)switch(a.getAttribute("type")){case "time":case "date":case "week":case "month":return!1}return!0};cvox.ChromeVoxHTMLMediaWidget=function(a){var b=this;this.mediaElem_=a;this.keyListener_=function(a){b.eventHandler_(a)};this.blurListener_=function(){b.shutdown()};this.mediaElem_.addEventListener("keydown",this.keyListener_,!1);this.mediaElem_.addEventListener("keyup",this.keyListener_,!1);this.mediaElem_.addEventListener("blur",this.blurListener_,!1)};
+cvox.ChromeVoxHTMLMediaWidget.prototype.shutdown=function(){this.mediaElem_.removeEventListener("blur",this.blurListener_,!1);this.mediaElem_.removeEventListener("keydown",this.keyListener_,!1);this.mediaElem_.removeEventListener("keyup",this.keyListener_,!1)};cvox.ChromeVoxHTMLMediaWidget.prototype.jumpToTime_=function(a){0>a&&(a=0);a>this.mediaElem_.duration&&(a=this.mediaElem_.duration);this.mediaElem_.currentTime=a};
+cvox.ChromeVoxHTMLMediaWidget.prototype.setVolume_=function(a){0>a&&(a=0);1<a&&(a=1);this.mediaElem_.volume=a};
+cvox.ChromeVoxHTMLMediaWidget.prototype.eventHandler_=function(a){"keydown"==a.type&&(13==a.keyCode||32==a.keyCode?this.mediaElem_.paused?this.mediaElem_.play():this.mediaElem_.pause():39==a.keyCode?this.jumpToTime_(this.mediaElem_.currentTime+this.mediaElem_.duration/10):37==a.keyCode?this.jumpToTime_(this.mediaElem_.currentTime-this.mediaElem_.duration/10):38==a.keyCode?this.setVolume_(this.mediaElem_.volume+0.1):40==a.keyCode&&this.setVolume_(this.mediaElem_.volume-0.1))};cvox.ChromeVoxHTMLTimeWidget=function(a,b){var c=this;this.timeElem_=a;this.timeTts_=b;this.pMinutes_=this.pHours_=-1;this.pMilliseconds_=this.pSeconds_=0;this.pAmpm_="";this.pos_=0;this.maxPos_=2;this.keyListener_=function(a){c.eventHandler_(a)};this.blurListener_=function(){c.shutdown()};if(this.timeElem_.hasAttribute("step")){var d=this.timeElem_.getAttribute("step");0<d&&(this.maxPos_=1<=d?3:4)}0==this.timeElem_.value.length&&this.forceInitTime_();for(d=0;d<this.maxPos_;d++){var e=document.createEvent("KeyboardEvent");
+e.initKeyboardEvent("keydown",!0,!0,window,"Left",0,!1,!1,!1,!1);this.timeElem_.dispatchEvent(e);e=document.createEvent("KeyboardEvent");e.initKeyboardEvent("keyup",!0,!0,window,"Left",0,!1,!1,!1,!1);this.timeElem_.dispatchEvent(e)}this.timeElem_.addEventListener("keydown",this.keyListener_,!1);this.timeElem_.addEventListener("keyup",this.keyListener_,!1);this.timeElem_.addEventListener("blur",this.blurListener_,!1);this.update_(!0)};
+cvox.ChromeVoxHTMLTimeWidget.prototype.shutdown=function(){this.timeElem_.removeEventListener("blur",this.blurListener_,!1);this.timeElem_.removeEventListener("keydown",this.keyListener_,!1);this.timeElem_.removeEventListener("keyup",this.keyListener_,!1)};cvox.ChromeVoxHTMLTimeWidget.prototype.forceInitTime_=function(){this.timeElem_.setAttribute("value","12:00")};
+cvox.ChromeVoxHTMLTimeWidget.prototype.handlePosChange_=function(){0>this.pos_&&(this.pos_=0);this.pos_>this.maxPos_&&(this.pos_=this.maxPos_);if(this.pos_==this.maxPos_)this.pAmpm_="";else switch(this.pos_){case 0:this.pHours_=-1;break;case 1:this.pMinutes_=-1;break;case 2:this.pSeconds_=-1;break;case 3:this.pMilliseconds_=-1}};
+cvox.ChromeVoxHTMLTimeWidget.prototype.update_=function(a){var b=this.timeElem_.value.split(":");if(1>b.length)this.forceInitTime_();else{var c=b[0],d=-1,e=0,f=0,g=cvox.ChromeVox.msgs.getMsg("timewidget_am");1<b.length&&(d=b[1]);2<b.length&&(b=b[2].split("."),e=b[0],1<b.length&&(f=b[1]));12<c&&(c-=12,g=cvox.ChromeVox.msgs.getMsg("timewidget_pm"));12==c&&(g=cvox.ChromeVox.msgs.getMsg("timewidget_pm"));0==c&&(c=12,g=cvox.ChromeVox.msgs.getMsg("timewidget_am"));b="";a&&(b=cvox.DomUtil.getName(this.timeElem_,
+!0,!0)+"\n");c!=this.pHours_&&(b=b+c+" "+cvox.ChromeVox.msgs.getMsg("timewidget_hours")+"\n",this.pHours_=c);d!=this.pMinutes_&&(b=b+d+" "+cvox.ChromeVox.msgs.getMsg("timewidget_minutes")+"\n",this.pMinutes_=d);e!=this.pSeconds_&&(b=b+e+" "+cvox.ChromeVox.msgs.getMsg("timewidget_seconds")+"\n",this.pSeconds_=e);f!=this.pMilliseconds_&&(b=b+f+" "+cvox.ChromeVox.msgs.getMsg("timewidget_milliseconds")+"\n",this.pMilliseconds_=f);g!=this.pAmpm_&&(b+=g,this.pAmpm_=g);0<b.length&&this.timeTts_.speak(b,
+0,null)}};cvox.ChromeVoxHTMLTimeWidget.prototype.eventHandler_=function(a){var b=!1;if("keydown"==a.type){if(9==a.keyCode&&!a.shiftKey||39==a.keyCode)this.pos_++,this.handlePosChange_(),b=!0;if(9==a.keyCode&&a.shiftKey||37==a.keyCode)this.pos_--,this.handlePosChange_(),b=!0}this.update_(b)};cvox.ActiveIndicator=function(){this.lastMoveTime_=0;this.zoom_=1;this.updateIndicatorTimeoutId_=this.lastClientRects_=this.lastSyncTarget_=this.container_=null;this.blurred_=!1;window.addEventListener("focus",goog.bind(function(){this.blurred_=!1;this.container_&&this.container_.classList.remove("cvox_indicator_window_not_focused")},this),!1);window.addEventListener("blur",goog.bind(function(){this.blurred_=!0;this.container_&&this.container_.classList.add("cvox_indicator_window_not_focused")},this),
+!1)};cvox.ActiveIndicator.STYLE=".cvox_indicator_container { position: absolute !important; left: 0 !important; top: 0 !important; z-index: 2147483647 !important; pointer-events: none !important;}.cvox_indicator_window_not_focused { visibility: hidden !important;}.cvox_indicator_pulsing { -webkit-animation: cvox_indicator_pulsing_animation 0s 2 alternate !important; -webkit-animation-timing-function: ease-in-out !important;}.cvox_indicator_region { opacity: 0 !important; -webkit-transition: opacity 1s !important;}.cvox_indicator_visible { opacity: 1 !important;}.cvox_indicator_container .cvox_indicator_region * { position:absolute !important; box-shadow: 0 0 4px 4px #f7983a !important; border-radius: 6px !important; -webkit-transition: none !important;}.cvox_indicator_animate_normal .cvox_indicator_region * { -webkit-transition: all 0.3s !important;}.cvox_indicator_animate_quick .cvox_indicator_region * { -webkit-transition: all 0.1s !important;}.cvox_indicator_top { border-radius: inherit inherit 0 0 !important;}.cvox_indicator_middle_nw { border-radius: inherit 0 0 0 !important;}.cvox_indicator_middle_ne { border-radius: 0 inherit 0 0 !important;}.cvox_indicator_middle_se { border-radius: 0 0 inherit 0 !important;}.cvox_indicator_middle_sw { border-radius: 0 0 0 inherit !important;}.cvox_indicator_bottom { border-radius: 0 0 inherit inherit !important;}@-webkit-keyframes cvox_indicator_pulsing_animation { 0% {opacity: 1.0} 50% {opacity: 0.5} 100% {opacity: 1.0}}";
+cvox.ActiveIndicator.QUICK_ANIM_DELAY_MS=100;cvox.ActiveIndicator.NORMAL_ANIM_DELAY_MS=300;cvox.ActiveIndicator.MARGIN=8;cvox.ActiveIndicator.prototype.removeFromDom=function(){this.container_&&this.container_.parentElement&&this.container_.parentElement.removeChild(this.container_)};cvox.ActiveIndicator.prototype.syncToNode=function(a){a&&(a==document.body?this.removeFromDom():this.syncToNodes([a]))};
+cvox.ActiveIndicator.prototype.syncToNodes=function(a){var b=this.clientRectsFromNodes_(a);this.moveIndicator_(b,cvox.ActiveIndicator.MARGIN);this.lastSyncTarget_=a;this.lastClientRects_=b;null!=this.updateIndicatorTimeoutId_&&(window.clearTimeout(this.updateIndicatorTimeoutId_),this.updateIndicatorTimeoutId_=null)};
+cvox.ActiveIndicator.prototype.syncToRange=function(a){var b=cvox.ActiveIndicator.MARGIN;a.startContainer==a.endContainer&&a.startOffset+1==a.endOffset&&(b=1);var c=a.getClientRects();this.moveIndicator_(c,b);this.lastSyncTarget_=a;this.lastClientRects_=c;null!=this.updateIndicatorTimeoutId_&&(window.clearTimeout(this.updateIndicatorTimeoutId_),this.updateIndicatorTimeoutId_=null)};
+cvox.ActiveIndicator.prototype.syncToCursorSelection=function(a){if(a.start.node==a.end.node&&a.start.index==a.end.index)this.syncToNode(a.start.node);else{var b=document.createRange();b.setStart(a.start.node,a.start.index);b.setEnd(a.end.node,a.end.index);this.syncToRange(b)}};cvox.ActiveIndicator.prototype.updateIndicatorIfChanged=function(){this.updateIndicatorTimeoutId_||(this.updateIndicatorTimeoutId_=window.setTimeout(goog.bind(function(){this.handleUpdateIndicatorIfChanged_()},this),100))};
+cvox.ActiveIndicator.prototype.handleUpdateIndicatorIfChanged_=function(){this.updateIndicatorTimeoutId_=null;if(this.lastSyncTarget_){var a;if((a=this.lastSyncTarget_ instanceof Array?this.clientRectsFromNodes_(this.lastSyncTarget_):this.lastSyncTarget_.getClientRects())&&0!=a.length){var b=!1;if(a.length!=this.lastClientRects_.length)b=!0;else for(var c=0;c<this.lastClientRects_.length;++c){var d=this.lastClientRects_[c],e=a[c];if(d.top!=e.top||d.right!=e.right||d.bottom!=e.bottom||d.left!=d.left){b=
+!0;break}}b&&(this.moveIndicator_(a,cvox.ActiveIndicator.MARGIN),this.lastClientRects_=a)}else this.syncToNode(document.body)}};cvox.ActiveIndicator.prototype.clientRectsFromNodes_=function(a){for(var b=[],c=0;c<a.length;++c){var d=a[c];if(d.constructor==Text){var e=document.createRange();e.selectNode(d);e=e.getClientRects()}else{for(;!d.getClientRects;)d=d.parentElement;e=d.getClientRects()}for(d=0;d<e.length;++d)b.push(e[d])}return b};
+cvox.ActiveIndicator.prototype.moveIndicator_=function(a,b){if(document.body.isContentEditable)this.removeFromDom();else{var c=a.length;if(0!=c){var d,e;"static"!=window.getComputedStyle(document.body,null).position?(d=-document.body.getBoundingClientRect().left,e=-document.body.getBoundingClientRect().top):"static"!=window.getComputedStyle(document.documentElement,null).position?(d=-document.documentElement.getBoundingClientRect().left,e=-document.documentElement.getBoundingClientRect().top):(d=
+window.pageXOffset,e=window.pageYOffset);for(var f=[],g=0;g<c;g++)f.push(this.inset_(a[g],d,e,-d,-e));if(!this.container_||!this.container_.parentElement){g=document.getElementsByClassName("cvox_indicator_container");for(c=0;d=g[c];c++)d.parentNode&&d.parentNode.removeChild(d);this.container_=this.createDiv_(document.body,"cvox_indicator_container",document.body.firstChild)}g=document.createElement("style");g.id="cvox_indicator_style";g.innerHTML=cvox.ActiveIndicator.STYLE;cvox.DomUtil.addNodeToHead(g,
+g.id);g=(new Date).getTime();c=g-this.lastMoveTime_;this.container_.className="cvox_indicator_container";document.hasFocus()&&!this.blurred_||this.container_.classList.add("cvox_indicator_window_not_focused");c>cvox.ActiveIndicator.NORMAL_ANIM_DELAY_MS?this.container_.classList.add("cvox_indicator_animate_normal"):c>cvox.ActiveIndicator.QUICK_ANIM_DELAY_MS&&this.container_.classList.add("cvox_indicator_animate_quick");this.lastMoveTime_=g;this.computeZoomLevel_();for(window.setTimeout(goog.bind(function(){this.container_.classList.add("cvox_indicator_pulsing")},
+this),0);1<this.container_.childElementCount;)this.container_.removeChild(this.container_.lastElementChild);d=[[f[0]]];e=[f[0]];for(g=1;g<f.length;g++){for(var h=!1,c=0;c<d.length&&!h;c++)this.intersects_(f[g],e[c])&&(d[c].push(f[g]),e[c]=this.union_(e[c],f[g]),h=!0);h||(d.push([f[g]]),e.push(f[g]))}do for(f=!1,g=0;g<d.length-1&&!f;g++)for(c=g+1;c<d.length&&!f;c++)this.intersects_(e[g],e[c])&&(d[g]=d[g].concat(d[c]),e[g]=this.union_(e[g],e[c]),d.splice(c,1),e.splice(c,1),f=!0);while(f);for(g=0;g<
+d.length;g++)d[g].sort(function(a,b){return a.top!=b.top?a.top-b.top:a.left-b.left});for(g=0;g<d.length;g++)f=null,0==g&&1==this.container_.childElementCount&&6==this.container_.children[0].childElementCount&&(f=this.container_.children[0]),this.updateIndicatorRegion_(d[g],f,b)}}};
+cvox.ActiveIndicator.prototype.updateIndicatorRegion_=function(a,b,c){if(b)var d=b.children[0],e=b.children[1],f=b.children[2],g=b.children[3],h=b.children[4],k=b.children[5];else b=this.createDiv_(this.container_,"cvox_indicator_region"),window.setTimeout(function(){b.classList.add("cvox_indicator_visible")},0),d=this.createDiv_(b,"cvox_indicator_top"),e=this.createDiv_(b,"cvox_indicator_middle_nw"),f=this.createDiv_(b,"cvox_indicator_middle_ne"),g=this.createDiv_(b,"cvox_indicator_middle_sw"),h=
+this.createDiv_(b,"cvox_indicator_middle_se"),k=this.createDiv_(b,"cvox_indicator_bottom");for(var l=a[0],m=Math.floor((l.top+l.bottom)/2),p=1,q=a.length;p<q&&a[p].top<m;)l=this.union_(l,a[p]),m=Math.floor((l.top+l.bottom)/2),p++;if(p==q)l=this.inset_(l,-c,-c,-c,-c),a=Math.floor((3*l.top+1*l.bottom)/4),c=Math.floor((2*l.top+2*l.bottom)/4),m=Math.floor((1*l.top+3*l.bottom)/4),this.setElementCoords_(d,l.left,l.top,l.right,a,!0,!0,!0,!1),this.setElementCoords_(e,l.left,a,l.left,c,!0,!0,!1,!1),this.setElementCoords_(g,
+l.left,c,l.left,m,!0,!1,!1,!0),this.setElementCoords_(f,l.right,a,l.right,c,!1,!0,!0,!1),this.setElementCoords_(h,l.right,c,l.right,m,!1,!1,!0,!0),this.setElementCoords_(k,l.left,m,l.right,l.bottom,!0,!1,!0,!0);else{for(var m=a[q-1],n=Math.floor((m.top+m.bottom)/2),q=q-2;0<=q&&a[q].bottom>n;)m=this.union_(m,a[q]),n=Math.floor((m.top+m.bottom)/2),q--;l=this.inset_(l,-c,-c,-c,c);m=this.inset_(m,-c,c,-c,-c);if(p>q)n=this.union_(l,m),n.top=l.bottom,n.bottom=m.top,n.height=Math.floor((n.top+n.bottom)/
+2);else{n=a[p];for(p+=1;p<=q;)n=this.union_(n,a[p]),p++;n=this.inset_(n,-c,-c,-c,-c);n.left=Math.min(n.left,l.left,m.left);n.right=Math.max(n.right,l.right,m.right);n.width=n.right-n.left}l.right>n.right-40&&(l.right=n.right,l.width=l.right-l.left);l.left<n.left+40&&(l.left=n.left,l.width=l.right-l.left);m.right>n.right-40&&(m.right=n.right,m.width=m.right-m.left);m.left<n.left+40&&(m.left=n.left,m.width=m.right-m.left);a=Math.floor((n.top+n.bottom)/2);this.setElementRect_(d,l,!0,!0,!0,!1);this.setElementRect_(k,
+m,!0,!1,!0,!0);this.setElementCoords_(e,n.left,l.bottom,l.left,a,!0,!0,!1,!1);this.setElementCoords_(f,l.right,l.bottom,n.right,a,!1,!0,!0,!1);this.setElementCoords_(g,n.left,a,m.left,m.top,!0,!1,!1,!0);this.setElementCoords_(h,m.right,a,n.right,m.top,!1,!1,!0,!0)}};cvox.ActiveIndicator.prototype.intersects_=function(a,b){var c=2*cvox.ActiveIndicator.MARGIN;return b.left<=a.right+c&&b.right>=a.left-c&&b.top<=a.bottom+c&&b.bottom>=a.top-c};
+cvox.ActiveIndicator.prototype.union_=function(a,b){var c={left:Math.min(a.left,b.left),top:Math.min(a.top,b.top),right:Math.max(a.right,b.right),bottom:Math.max(a.bottom,b.bottom)};c.width=c.right-c.left;c.height=c.bottom-c.top;return c};cvox.ActiveIndicator.prototype.inset_=function(a,b,c,d,e){a={left:a.left+b,top:a.top+c,right:a.right-d,bottom:a.bottom-e};a.width=a.right-a.left;a.height=a.bottom-a.top;return a};
+cvox.ActiveIndicator.prototype.createDiv_=function(a,b,c){var d=document.createElement("div");d.className=b;c?a.insertBefore(d,c):a.appendChild(d);return d};cvox.ActiveIndicator.prototype.fixZoom_=function(a){return(Math.round(a*this.zoom_)+0.1)/this.zoom_};cvox.ActiveIndicator.prototype.fixZoomSum_=function(a,b){var c=Math.round(a*this.zoom_),d=Math.round((a+b)*this.zoom_),c=d-c;return(c+0.1)/this.zoom_};
+cvox.ActiveIndicator.prototype.setElementCoords_=function(a,b,c,d,e,f,g,h,k){var l=d-b,m=e-c;d-=b;e-=c;var p=f?-20:0,q=g?-20:0,n=h?20:0,s=k?20:0;0==d&&(h?(b-=5,d+=5):f&&(d+=10),s=q=10,c-=10,e+=20);k||(e+=5);g||(c-=5,e+=5,q+=5,s+=5);n=0==n&&0==l?1:this.fixZoomSum_(b,n+l);s=this.fixZoomSum_(c,s+m);a.style.left=this.fixZoom_(b)+"px";a.style.top=this.fixZoom_(c)+"px";a.style.width=this.fixZoomSum_(b,d)+"px";a.style.height=this.fixZoomSum_(c,e)+"px";a.style.clip="rect("+[q,n,s,p].join("px ")+"px)"};
+cvox.ActiveIndicator.prototype.setElementRect_=function(a,b,c,d,e,f){this.setElementCoords_(a,b.left,b.top,b.right,b.bottom,c,d,e,f)};
+cvox.ActiveIndicator.prototype.computeZoomLevel_=function(){if(window.innerHeight!==this.innerHeight_||window.innerWidth!==this.innerWidth_){this.innerHeight_=window.innerHeight;this.innerWidth_=window.innerWidth;var a=document.createElement("div");a.innerHTML="X";a.setAttribute("style","font: 5000px/1em sans-serif !important; -webkit-text-size-adjust:none !important; visibility:hidden !important; left: -10000px !important; top: -10000px !important; position:absolute !important;");document.body.appendChild(a);
+var b=5E3/a.clientHeight,b=Math.round(500*b)/500;0.1<b&&10>b&&(this.zoom_=b);a.parentNode.removeChild(a)}};cvox.NodeBreadcrumb=function(){this.cvTagCounter_=0};goog.addSingletonGetter(cvox.NodeBreadcrumb);cvox.NodeBreadcrumb.TOUCHED_TAG="chromevoxtag";cvox.NodeBreadcrumb.NEEDED_TAG_="chromevoxneeded";
+cvox.NodeBreadcrumb.prototype.tagCurrentNode=function(){for(var a,b=cvox.ChromeVox.navigationManager.getCurrentNode();b&&!b.hasAttribute;)b=b.parentNode;b?b.hasAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG)?a=b.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG):(a=this.cvTagCounter_,b.setAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG,a),this.cvTagCounter_++):a=-1;return a};
+cvox.NodeBreadcrumb.prototype.smartStart_=function(a){for(var b=0;b<a.children.length;++b){var c=a.children[b];this.smartStart_(c);c.getAttribute&&!goog.isNull(c.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG))&&this.setNeeded_(c)}};cvox.NodeBreadcrumb.prototype.setNeeded_=function(a){a&&a.getAttribute&&goog.isNull(a.getAttribute(cvox.NodeBreadcrumb.NEEDED_TAG_))&&(a.setAttribute(cvox.NodeBreadcrumb.NEEDED_TAG_,!0),"body"!==a.nodeName&&this.setNeeded_(a.parentElement))};
+cvox.NodeBreadcrumb.prototype.smartClone_=function(a){var b={};b[cvox.NodeBreadcrumb.TOUCHED_TAG]=!0;b[cvox.NodeBreadcrumb.NEEDED_TAG_]=!0;if(a.getAttribute&&a.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG))return cvox.DomUtil.deepClone(a,b);for(var b=cvox.DomUtil.shallowChildlessClone(a,b),c=0;c<a.childNodes.length;++c){var d=a.childNodes[c];d.getAttribute&&!goog.isNull(d.getAttribute(cvox.NodeBreadcrumb.NEEDED_TAG_))&&b.appendChild(this.smartClone_(d))}return b};
+cvox.NodeBreadcrumb.prototype.dumpWalkedDom=function(){this.smartStart_(document.body);return this.smartClone_(document.body)};cvox.NodeBreadcrumb.getCurrentNodeTag=function(){for(var a=cvox.ChromeVox.navigationManager.getCurrentNode();a&&!a.hasAttribute;)a=a.parentNode;return a&&a.hasAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG)?a.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG):-1};cvox.HistoryEvent=function(a){this.spoken_=[];a?this.userCommand_=a.cmd:this.startTime_=(new Date).getTime()};cvox.HistoryEvent.prototype.withUserCommand=function(a){if(this.userCommand_)return window.console.error("Two user commands on "+a,this),this;this.userCommand_=a;return this};cvox.HistoryEvent.prototype.speak=function(a){this.spoken_.push(a);return this};
+cvox.HistoryEvent.prototype.done=function(){this.endTime_=(new Date).getTime();cvox.NodeBreadcrumb.getInstance().tagCurrentNode();window.console.log("User command done.",this);return this};cvox.HistoryEvent.prototype.outputObject=function(){return{start:this.startTime_,end:this.endTime_,cmd:this.userCommand_,spoken:this.spoken_}};
+cvox.HistoryEvent.prototype.outputHTML=function(){var a=document.createElement("div");a.className="cvoxHistoryEvent";var b=this.endTime_-this.startTime_;a.innerHTML=this.userCommand_+" ("+b+"ms)";for(b=0;b<this.spoken_.length;b++){var c=document.createElement("div");c.className="cvoxHistoryEventSpoken";c.innerHTML=this.spoken_[b].substr(0,20);20<this.spoken_[b].length&&(c.innerHTML+="...");a.appendChild(c)}return a};
+cvox.HistoryEvent.prototype.outputJs=function(){var a="this.waitForCalm(this.userCommand, '"+this.userCommand_+"')";return a=0<this.spoken_.length?a+("\n .waitForCalm(this.assertSpoken, '"+cvox.DomUtil.collapseWhitespace(this.spoken_.join(" "))+"');\n"):a+";\n"};cvox.History=function(){this.recording_=!1;this.events_=[];this.styleDiv_=this.listDiv_=this.mainDiv_=this.currentEvent_=null;this.nodeBreadcrumb_=cvox.NodeBreadcrumb.getInstance()};goog.addSingletonGetter(cvox.History);
+cvox.History.prototype.addListDiv_=function(){this.mainDiv_=document.createElement("div");this.mainDiv_.style.position="fixed";this.mainDiv_.style.bottom="0";this.mainDiv_.style.right="0";this.mainDiv_.style.zIndex="999";this.listDiv_=document.createElement("div");this.listDiv_.id="cvoxEventList";this.mainDiv_.appendChild(this.listDiv_);var a=document.createElement("div"),b=document.createElement("button");b.onclick=cvox.History.sendToFeedback;b.innerHTML="Create bug";a.appendChild(b);this.mainDiv_.appendChild(a);
+a=document.createElement("div");b=document.createElement("button");b.onclick=cvox.History.dumpJs;b.innerHTML="Dump test case";a.appendChild(b);this.mainDiv_.appendChild(a);document.body.appendChild(this.mainDiv_);this.styleDiv_=document.createElement("style");this.styleDiv_.innerHTML=".cvoxHistoryEventSpoken { color: gray; font-size: 75% }";document.body.appendChild(this.styleDiv_)};
+cvox.History.prototype.removeListDiv_=function(){document.body.removeChild(this.mainDiv_);document.body.removeChild(this.styleDiv_);this.styleDiv_=this.listDiv_=this.mainDiv_=null};
+cvox.History.prototype.addBigTextBox_=function(){function a(a,b){var c=document.createElement("button");c.onclick=b;c.innerHTML=a;d.appendChild(c)}var b=document.createElement("div");b.style.position="fixed";b.style.top="0";b.style.left="0";b.style.zIndex="999";var c=document.createElement("textarea");c.style.width="500px";c.style.height="500px";c.innerHTML=this.dumpJsOutput_();b.appendChild(c);var d=document.createElement("div");b.appendChild(d);a("Close dialog",function(){document.body.removeChild(b)});
+a("Remove fluff",goog.bind(function(){c.innerHTML=this.dumpJsOutput_(["stopSpeech","toggleKeyPrefix"])},this));document.body.appendChild(b)};cvox.History.prototype.startRecording=function(){this.recording_=!0;this.addListDiv_()};cvox.History.prototype.stopRecording=function(){this.recording_=!1;this.removeListDiv_();this.events_=[];this.currentEvent_=null};
+cvox.History.prototype.enterUserCommand=function(a){this.recording_&&(this.currentEvent_&&window.console.error("User command "+a+" overlaps current event",this.currentEvent_),this.currentEvent_=(new cvox.HistoryEvent).withUserCommand(a),this.events_.push(this.currentEvent_))};cvox.History.prototype.exitUserCommand=function(){this.recording_&&this.currentEvent_&&(this.currentEvent_.done(),this.listDiv_.appendChild(this.currentEvent_.outputHTML()),this.currentEvent_=null)};
+cvox.History.prototype.speak=function(a){if(!this.recording_)return this;if(!this.currentEvent_)return window.console.error("Speak called outside of a user command."),this;this.currentEvent_.speak(a);return this};cvox.History.prototype.isSpeaking=function(){return!1};cvox.History.prototype.stop=function(){};cvox.History.prototype.increaseOrDecreaseProperty=function(){};cvox.History.prototype.getDefaultProperty=function(){};
+cvox.History.dumpJs=function(){var a=cvox.History.getInstance();a.addBigTextBox_();window.console.log(a.dumpJsOutput_())};cvox.History.prototype.dumpJsOutput_=function(a){var b={};a&&a.forEach(function(a){b[a]=1});return["/*DOC: += ",this.nodeBreadcrumb_.dumpWalkedDom().innerHTML,"*/\n"].concat(this.events_.filter(function(a){return!(a.userCommand_ in b)}).map(function(a){return a.outputJs()})).join("")};
+cvox.History.sendToFeedback=function(){var a=cvox.History.getInstance(),a=a.events_.map(function(a){return a.outputObject()}),b=document.createElement("script");b.type="text/javascript";b.src="https://www.gstatic.com/feedback/api.js";var c=document.createElement("script");c.type="text/javascript";c.innerHTML="userfeedback.api.startFeedback({ productId: '76092' }, { cvoxHistory: "+cvox.ChromeVoxJSON.stringify(cvox.ChromeVoxJSON.stringify(a))+" });";b.onload=function(){document.body.appendChild(c)};
+document.body.appendChild(b)};cvox.KeySequence=function(a,b,c,d){this.doubleTap=!!d;this.cvoxModifier=void 0==b?this.isCVoxModifierActive(a):b;this.stickyMode=!!a.stickyMode;this.prefixKey=!!a.keyPrefix;this.skipStripping=!!c;if(this.stickyMode&&this.prefixKey)throw"Prefix key and sticky mode cannot both be enabled: "+a;a=this.resolveChromeOSSpecialKeys_(a);this.keys={ctrlKey:[],searchKeyHeld:[],altKey:[],altGraphKey:[],shiftKey:[],metaKey:[],keyCode:[]};this.extractKey_(a)};
+cvox.KeySequence.KEY_PRESS_CODE={39:222,44:188,45:189,46:190,47:191,59:186,91:219,92:220,93:221};cvox.KeySequence.doubleTapCache=[];cvox.KeySequence.prototype.addKeyEvent=function(a){if(1<this.keys.keyCode.length)return!1;this.extractKey_(a);return!0};cvox.KeySequence.prototype.equals=function(a){if(!this.checkKeyEquality_(a)||this.doubleTap!=a.doubleTap)return!1;if(this.cvoxModifier===a.cvoxModifier)return!0;a=this.cvoxModifier?a:this;return a.stickyMode||a.prefixKey};
+cvox.KeySequence.prototype.extractKey_=function(a){for(var b in this.keys)if("keyCode"==b){var c;"keypress"==a.type&&97<=a[b]&&122>=a[b]?c=a[b]-32:"keypress"==a.type&&(c=cvox.KeySequence.KEY_PRESS_CODE[a[b]]);this.keys[b].push(c||a[b])}else this.isKeyModifierActive(a,b)?this.keys[b].push(!0):this.keys[b].push(!1);this.cvoxModifier&&this.rationalizeKeys_()};
+cvox.KeySequence.prototype.rationalizeKeys_=function(){if(!this.skipStripping){var a=cvox.ChromeVox.modKeyStr.split(/\+/g),b=this.keys.keyCode.length-1;-1!=a.indexOf("Ctrl")&&(this.keys.ctrlKey[b]=!1);-1!=a.indexOf("Alt")&&(this.keys.altKey[b]=!1);-1!=a.indexOf("Shift")&&(this.keys.shiftKey[b]=!1);var c=this.getMetaKeyName_();if(-1!=a.indexOf(c))if("Search"==c)this.keys.searchKeyHeld[b]=!1;else if("Cmd"==c||"Win"==c)this.keys.metaKey[b]=!1}};
+cvox.KeySequence.prototype.getMetaKeyName_=function(){return cvox.ChromeVox.isChromeOS?"Search":cvox.ChromeVox.isMac?"Cmd":"Win"};cvox.KeySequence.prototype.checkKeyEquality_=function(a){for(var b in this.keys)for(var c=this.keys[b].length;c--;)if(this.keys[b][c]!==a.keys[b][c])return!1;return!0};cvox.KeySequence.prototype.length=function(){return this.keys.keyCode.length};cvox.KeySequence.prototype.isModifierKey=function(a){return 16==a||17==a||18==a||91==a||93==a};
+cvox.KeySequence.prototype.isCVoxModifierActive=function(a){var b=cvox.ChromeVox.modKeyStr.split(/\+/g);this.isKeyModifierActive(a,"ctrlKey")&&(b=b.filter(function(a){return"Ctrl"!=a}));this.isKeyModifierActive(a,"altKey")&&(b=b.filter(function(a){return"Alt"!=a}));this.isKeyModifierActive(a,"shiftKey")&&(b=b.filter(function(a){return"Shift"!=a}));if(this.isKeyModifierActive(a,"metaKey")||this.isKeyModifierActive(a,"searchKeyHeld"))var c=this.getMetaKeyName_(),b=b.filter(function(a){return a!=c});
+return 0==b.length};cvox.KeySequence.prototype.isKeyModifierActive=function(a,b){switch(b){case "ctrlKey":return a.ctrlKey||17==a.keyCode;case "altKey":return a.altKey||18==a.keyCode;case "shiftKey":return a.shiftKey||16==a.keyCode;case "metaKey":return a.metaKey||!cvox.ChromeVox.isChromeOS&&91==a.keyCode;case "searchKeyHeld":return cvox.ChromeVox.isChromeOS&&91==a.keyCode||a.searchKeyHeld}return!1};
+cvox.KeySequence.deserialize=function(a){var b={};b.stickyMode=void 0==a.stickyMode?!1:a.stickyMode;b.prefixKey=void 0==a.prefixKey?!1:a.prefixKey;var c=1<a.keys.keyCode.length,d={},e;for(e in a.keys)b[e]=a.keys[e][0],c&&(d[e]=a.keys[e][1]);e=new cvox.KeySequence(b,a.cvoxModifier,!0,a.doubleTap);c&&(cvox.ChromeVox.sequenceSwitchKeyCodes.push(new cvox.KeySequence(b,a.cvoxModifier)),e.addKeyEvent(d));a.doubleTap&&cvox.KeySequence.doubleTapCache.push(e);return e};
+cvox.KeySequence.fromStr=function(a){var b={},c={},d;d=-1==a.indexOf(">")?!1:!0;var e=!1;b.stickyMode=!1;b.prefixKey=!1;a=a.split("+");for(var f=0;f<a.length;f++)for(var g=a[f].split(">"),h=0;h<g.length;h++){if("#"==g[h].charAt(0)){var k=parseInt(g[h].substr(1),10);0<h?c.keyCode=k:b.keyCode=k}k=g[h];1==g[h].length?0<h?c.keyCode=g[h].charCodeAt(0):b.keyCode=g[h].charCodeAt(0):(0<h?cvox.KeySequence.setModifiersOnEvent_(k,c):cvox.KeySequence.setModifiersOnEvent_(k,b),"Cvox"==k&&(e=!0))}b=new cvox.KeySequence(b,
+e);d&&b.addKeyEvent(c);return b};cvox.KeySequence.setModifiersOnEvent_=function(a,b){"Ctrl"==a?(b.ctrlKey=!0,b.keyCode=17):"Alt"==a?(b.altKey=!0,b.keyCode=18):"Shift"==a?(b.shiftKey=!0,b.keyCode=16):"Search"==a?(b.searchKeyHeld=!0,b.keyCode=91):"Cmd"==a?(b.metaKey=!0,b.keyCode=91):"Win"==a?(b.metaKey=!0,b.keyCode=91):"Insert"==a&&(b.keyCode=45)};
+cvox.KeySequence.prototype.resolveChromeOSSpecialKeys_=function(a){if(!this.cvoxModifier||this.stickyMode||this.prefixKey||!cvox.ChromeVox.isChromeOS)return a;var b={},c;for(c in a)b[c]=a[c];switch(b.keyCode){case 33:b.keyCode=38;break;case 34:b.keyCode=40;break;case 35:b.keyCode=39;break;case 36:b.keyCode=37;break;case 45:b.keyCode=190;break;case 46:b.keyCode=8;break;case 112:b.keyCode=49;break;case 113:b.keyCode=50;break;case 114:b.keyCode=51;break;case 115:b.keyCode=52;break;case 116:b.keyCode=
+53;break;case 117:b.keyCode=54;break;case 118:b.keyCode=55;break;case 119:b.keyCode=56;break;case 120:b.keyCode=57;break;case 121:b.keyCode=48;break;case 122:b.keyCode=189;break;case 123:b.keyCode=187}return b};cvox.KeyUtil=function(){};cvox.KeyUtil.modeKeyPressTime=0;cvox.KeyUtil.sequencing=!1;cvox.KeyUtil.prevKeySequence=null;cvox.KeyUtil.stickyKeySequence=null;cvox.KeyUtil.maxSeqLength=2;
+cvox.KeyUtil.keyEventToKeySequence=function(a){var b=cvox.KeyUtil;b.prevKeySequence&&b.maxSeqLength==b.prevKeySequence.length()&&(b.sequencing=!1,b.prevKeySequence=null);var c=b.sequencing||a.keyPrefix||a.stickyMode,d=new cvox.KeySequence(a),e=d.cvoxModifier;if(c||e){if(!b.sequencing&&b.isSequenceSwitchKeyCode(d))return b.sequencing=!0,b.prevKeySequence=d;if(b.sequencing){if(b.prevKeySequence.addKeyEvent(a))return d=b.prevKeySequence,b.prevKeySequence=null,b.sequencing=!1,d;throw"Think sequencing is enabled, yet util.prevKeySequence alreadyhas two key codes"+
+b.prevKeySequence;}}else b.sequencing=!1;c=(new Date).getTime();if(cvox.KeyUtil.isDoubleTapKey(d)&&b.prevKeySequence&&d.equals(b.prevKeySequence)&&(e=b.modeKeyPressTime,0<e&&300>c-e))return d=b.prevKeySequence,d.doubleTap=!0,b.prevKeySequence=null,b.sequencing=!1,cvox.ChromeVox.isChromeOS&&a.keyCode==cvox.KeyUtil.getStickyKeyCode()&&(cvox.ChromeVox.searchKeyHeld=!1),d;b.prevKeySequence=d;b.modeKeyPressTime=c;return d};
+cvox.KeyUtil.keyCodeToString=function(a){return 17==a?"Ctrl":18==a?"Alt":16==a?"Shift":91==a||93==a?cvox.ChromeVox.isChromeOS?"Search":cvox.ChromeVox.isMac?"Cmd":"Win":45==a?"Insert":65<=a&&90>=a?String.fromCharCode(a):48<=a&&57>=a?String.fromCharCode(a):"#"+a};cvox.KeyUtil.modStringToKeyCode=function(a){switch(a){case "Ctrl":return 17;case "Alt":return 18;case "Shift":return 16;case "Cmd":case "Win":return 91}return-1};
+cvox.KeyUtil.cvoxModKeyCodes=function(){var a=cvox.ChromeVox.modKeyStr.split(/\+/g);return a=a.map(function(a){return cvox.KeyUtil.modStringToKeyCode(a)})};cvox.KeyUtil.isSequenceSwitchKeyCode=function(a){for(var b=0;b<cvox.ChromeVox.sequenceSwitchKeyCodes.length;b++){var c=cvox.ChromeVox.sequenceSwitchKeyCodes[b];if(c.equals(a))return!0}return!1};
+cvox.KeyUtil.getReadableNameForKeyCode=function(a){if(0==a)return"Power button";if(17==a)return"Control";if(18==a)return"Alt";if(16==a)return"Shift";if(9==a)return"Tab";if(91==a||93==a)return cvox.ChromeVox.isChromeOS?"Search":cvox.ChromeVox.isMac?"Cmd":"Win";if(8==a)return"Backspace";if(32==a)return"Space";if(35==a)return"end";if(36==a)return"home";if(37==a)return"Left arrow";if(38==a)return"Up arrow";if(39==a)return"Right arrow";if(40==a)return"Down arrow";if(45==a)return"Insert";if(13==a)return"Enter";
+if(27==a)return"Escape";if(112==a)return cvox.ChromeVox.isChromeOS?"Back":"F1";if(113==a)return cvox.ChromeVox.isChromeOS?"Forward":"F2";if(114==a)return cvox.ChromeVox.isChromeOS?"Refresh":"F3";if(115==a)return cvox.ChromeVox.isChromeOS?"Toggle full screen":"F4";if(116==a)return"F5";if(117==a)return"F6";if(118==a)return"F7";if(119==a)return"F8";if(120==a)return"F9";if(121==a)return"F10";if(122==a)return"F11";if(123==a)return"F12";if(186==a)return"Semicolon";if(187==a)return"Equal sign";if(188==a)return"Comma";
+if(189==a)return"Dash";if(190==a)return"Period";if(191==a)return"Forward slash";if(192==a)return"Grave accent";if(219==a)return"Open bracket";if(220==a)return"Back slash";if(221==a)return"Close bracket";if(222==a)return"Single quote";if(115==a)return"Toggle full screen";if(48<=a&&90>=a)return String.fromCharCode(a)};cvox.KeyUtil.getStickyKeyCode=function(){var a=45;if(cvox.ChromeVox.isChromeOS||cvox.ChromeVox.isMac)a=91;return a};
+cvox.KeyUtil.getStickyKeySequence=function(){if(null==cvox.KeyUtil.stickyKeySequence){var a=cvox.KeyUtil.getStickyKeyCode(),a={keyCode:a,stickyMode:!0},b=new cvox.KeySequence(a);b.addKeyEvent(a);cvox.KeyUtil.stickyKeySequence=b}return cvox.KeyUtil.stickyKeySequence};cvox.KeyUtil.getReadableNameForStr=function(){return null};
+cvox.KeyUtil.keySequenceToString=function(a,b,c){for(var d="",e=a.length(),f=0;f<e;f++){""==d||c?""!=d&&(d+="+"):d+=">";var g="",h;for(h in a.keys)if(a.keys[h][f]){var k="";switch(h){case "ctrlKey":k="Ctrl";break;case "searchKeyHeld":k=cvox.KeyUtil.getReadableNameForKeyCode(91);break;case "altKey":k="Alt";break;case "altGraphKey":k="AltGraph";break;case "shiftKey":k="Shift";break;case "metaKey":k=cvox.KeyUtil.getReadableNameForKeyCode(91);break;case "keyCode":var l=a.keys[h][f];a.isModifierKey(l)||
+c||(g=b?g+cvox.KeyUtil.getReadableNameForKeyCode(l):g+cvox.KeyUtil.keyCodeToString(l))}-1==d.indexOf(k)&&(g+=k+"+")}d+=g;"+"==d[d.length-1]&&(d=d.slice(0,-1))}a.cvoxModifier||a.prefixKey?d=""!=d?"Cvox+"+d:"Cvox":a.stickyMode&&(">"==d[d.length-1]&&(d=d.slice(0,-1)),d=d+"+"+d);return d};cvox.KeyUtil.isDoubleTapKey=function(a){var b=!1,c=a.doubleTap;a.doubleTap=!0;for(var d=0,e;e=cvox.KeySequence.doubleTapCache[d];d++)if(e.equals(a)){b=!0;break}a.doubleTap=c;return b};cvox.KeyMap=function(a){this.bindings_=a;this.commandToKey_={};this.buildCommandToKey_()};cvox.KeyMap.KEYMAP_PATH="chromevox/background/keymaps/";cvox.KeyMap.AVAILABLE_MAP_INFO={keymap_classic:{file:"classic_keymap.json"},keymap_flat:{file:"flat_keymap.json"},keymap_experimental:{file:"experimental.json"}};cvox.KeyMap.DEFAULT_KEYMAP=0;cvox.KeyMap.prototype.length=function(){return this.bindings_.length};cvox.KeyMap.prototype.keys=function(){return this.bindings_.map(function(a){return a.sequence})};
+cvox.KeyMap.prototype.bindings=function(){return this.bindings_};cvox.KeyMap.prototype.toJSON=function(){return JSON.stringify({bindings:this.bindings_})};cvox.KeyMap.prototype.hasKey=function(a){for(var b=0;b<this.bindings_.length;b++){var c=this.bindings_[b];if(c.sequence.equals(a))return!0}return!1};cvox.KeyMap.prototype.commandForKey=function(a){if(null!=a)for(var b=0;b<this.bindings_.length;b++){var c=this.bindings_[b];if(c.sequence.equals(a))return c.command}return null};
+cvox.KeyMap.fromDefaults=function(){return cvox.KeyMap.fromPath(cvox.KeyMap.KEYMAP_PATH+cvox.KeyMap.AVAILABLE_MAP_INFO.keymap_classic.file)};cvox.KeyMap.fromJSON=function(a){try{var b=JSON.parse(a).bindings,b=b.filter(function(a){return void 0===a.sequence.platformFilter||cvox.PlatformUtil.matchesPlatform(a.sequence.platformFilter)})}catch(c){return null}if("object"!=typeof b)return null;for(a=0;a<b.length;a++){if(void 0==b[a].command||void 0==b[a].sequence)return null;b[a].sequence=cvox.KeySequence.deserialize(b[a].sequence)}return new cvox.KeyMap(b)};
+cvox.KeyMap.fromLocalStorage=function(){return localStorage.keyBindings?cvox.KeyMap.fromJSON(localStorage.keyBindings):null};cvox.KeyMap.fromPath=function(a){return cvox.KeyMap.fromJSON(cvox.KeyMap.readJSON_(a))};cvox.KeyMap.fromCurrentKeyMap=function(){var a=localStorage.currentKeyMap;return a&&cvox.KeyMap.AVAILABLE_MAP_INFO[a]?cvox.KeyMap.fromPath(cvox.KeyMap.KEYMAP_PATH+cvox.KeyMap.AVAILABLE_MAP_INFO[a].file):cvox.KeyMap.fromDefaults()};
+cvox.KeyMap.readJSON_=function(a){var b=chrome.extension.getURL(a);if(!b)throw"Invalid path: "+a;a=new XMLHttpRequest;a.open("GET",b,!1);a.send();return a.responseText};cvox.KeyMap.prototype.buildCommandToKey_=function(){for(var a=0;a<this.bindings_.length;a++){var b=this.bindings_[a];void 0==this.commandToKey_[b.command]&&(this.commandToKey_[b.command]=b.sequence)}};cvox.CommandStore={};cvox.CommandStore.categories=function(){var a={},b;for(b in cvox.CommandStore.CMD_WHITELIST){var c=cvox.CommandStore.CMD_WHITELIST[b];c.category&&(a[c.category]=!0)}b=[];for(var d in a)b.push(d);return b};cvox.CommandStore.messageForCommand=function(a){return(cvox.CommandStore.CMD_WHITELIST[a]||{}).msgId};cvox.CommandStore.categoryForCommand=function(a){return(cvox.CommandStore.CMD_WHITELIST[a]||{}).category};
+cvox.CommandStore.commandsForCategory=function(a){var b=[],c;for(c in cvox.CommandStore.CMD_WHITELIST){var d=cvox.CommandStore.CMD_WHITELIST[c];a==d.category&&b.push(c)}return b};
+cvox.CommandStore.CMD_WHITELIST={toggleStickyMode:{announce:!1,msgId:"toggle_sticky_mode",disallowOOBE:!0,category:"modifier_keys"},toggleKeyPrefix:{announce:!1,skipInput:!0,msgId:"prefix_key",disallowOOBE:!0,category:"modifier_keys"},stopSpeech:{announce:!1,disallowContinuation:!0,doDefault:!0,msgId:"stop_speech_key",category:"controlling_speech"},toggleChromeVox:{announce:!1,platformFilter:cvox.PlatformFilter.WML,msgId:"toggle_chromevox_active",category:"controlling_speech"},decreaseTtsRate:{announce:!1,
+msgId:"decrease_tts_rate",category:"controlling_speech"},increaseTtsRate:{announce:!1,msgId:"increase_tts_rate",category:"controlling_speech"},decreaseTtsPitch:{announce:!1,msgId:"decrease_tts_pitch",category:"controlling_speech"},increaseTtsPitch:{announce:!1,msgId:"increase_tts_pitch",category:"controlling_speech"},decreaseTtsVolume:{announce:!1,msgId:"decrease_tts_volume",category:"controlling_speech"},increaseTtsVolume:{announce:!1,msgId:"increase_tts_volume",category:"controlling_speech"},cyclePunctuationEcho:{announce:!1,
+msgId:"cycle_punctuation_echo",category:"controlling_speech"},cycleTypingEcho:{announce:!1,msgId:"cycle_typing_echo",category:"controlling_speech"},toggleEarcons:{announce:!0,msgId:"toggle_earcons",category:"controlling_speech"},handleTab:{allowEvents:!0,msgId:"handle_tab_next",disallowContinuation:!0,category:"navigation"},handleTabPrev:{allowEvents:!0,msgId:"handle_tab_prev",disallowContinuation:!0,category:"navigation"},forward:{forward:!0,announce:!0,msgId:"forward",category:"navigation"},backward:{backward:!0,
+announce:!0,msgId:"backward",category:"navigation"},right:{forward:!0,announce:!0,msgId:"right",category:"navigation"},left:{backward:!0,announce:!0,msgId:"left",category:"navigation"},previousGranularity:{announce:!0,msgId:"previous_granularity",category:"navigation"},nextGranularity:{announce:!0,msgId:"next_granularity",category:"navigation"},previousCharacter:{backward:!0,announce:!0,msgId:"previous_character",skipInput:!0,category:"navigation"},nextCharacter:{forward:!0,announce:!0,msgId:"next_character",
+skipInput:!0,category:"navigation"},previousWord:{backward:!0,announce:!0,msgId:"previous_word",skipInput:!0,category:"navigation"},nextWord:{forward:!0,announce:!0,msgId:"next_word",skipInput:!0,category:"navigation"},previousLine:{backward:!0,announce:!0,msgId:"previous_line",category:"navigation"},nextLine:{forward:!0,announce:!0,msgId:"next_line",category:"navigation"},previousSentence:{backward:!0,announce:!0,msgId:"previous_sentence",skipInput:!0,category:"navigation"},nextSentence:{forward:!0,
+announce:!0,msgId:"next_sentence",skipInput:!0,category:"navigation"},previousObject:{backward:!0,announce:!0,msgId:"previous_object",skipInput:!0,category:"navigation"},nextObject:{forward:!0,announce:!0,msgId:"next_object",skipInput:!0,category:"navigation"},previousGroup:{backward:!0,announce:!0,msgId:"previous_group",skipInput:!0,category:"navigation"},nextGroup:{forward:!0,announce:!0,msgId:"next_group",skipInput:!0,category:"navigation"},jumpToTop:{forward:!0,announce:!0,msgId:"jump_to_top",
+category:"navigation"},jumpToBottom:{backward:!0,announce:!0,msgId:"jump_to_bottom",category:"navigation"},moveToStartOfLine:{forward:!0,announce:!0},moveToEndOfLine:{backward:!0,announce:!0},readFromHere:{forward:!0,announce:!1,msgId:"read_from_here",category:"navigation"},performDefaultAction:{disallowContinuation:!0,msgId:"perform_default_action",doDefault:!0,skipInput:!0,category:"navigation"},forceClickOnCurrentItem:{announce:!0,disallowContinuation:!0,allowEvents:!0,msgId:"force_click_on_current_item",
+category:"navigation"},forceDoubleClickOnCurrentItem:{announce:!0,allowEvents:!0,disallowContinuation:!0},readLinkURL:{announce:!1,msgId:"read_link_url",category:"information"},readCurrentTitle:{announce:!1,msgId:"read_current_title",category:"information"},readCurrentURL:{announce:!1,msgId:"read_current_url",category:"information"},fullyDescribe:{announce:!1,msgId:"fully_describe",category:"information"},speakTimeAndDate:{announce:!1,msgId:"speak_time_and_date",category:"information"},toggleSelection:{announce:!0,
+msgId:"toggle_selection",category:"information"},toggleSearchWidget:{announce:!1,disallowContinuation:!0,msgId:"toggle_search_widget",category:"information"},toggleKeyboardHelp:{announce:!1,disallowContinuation:!0,msgId:"show_power_key",category:"help_commands"},help:{announce:!1,msgId:"help",disallowOOBE:!0,disallowContinuation:!0,category:"help_commands"},contextMenu:{announce:!1,disallowContinuation:!0},showOptionsPage:{announce:!1,disallowContinuation:!0,msgId:"show_options_page",disallowOOBE:!0,
+category:"help_commands"},showKbExplorerPage:{announce:!1,disallowContinuation:!0,msgId:"show_kb_explorer_page",disallowOOBE:!0,category:"help_commands"},showFormsList:{announce:!1,disallowContinuation:!0,nodeList:"formField",msgId:"show_forms_list",category:"overview"},showHeadingsList:{announce:!1,nodeList:"heading",disallowContinuation:!0,msgId:"show_headings_list",category:"overview"},showLandmarksList:{announce:!1,nodeList:"landmark",disallowContinuation:!0,msgId:"show_landmarks_list",category:"overview"},
+showLinksList:{announce:!1,nodeList:"link",disallowContinuation:!0,msgId:"show_links_list",category:"overview"},showTablesList:{announce:!1,nodeList:"table",disallowContinuation:!0,msgId:"show_tables_list",category:"overview"},startHistoryRecording:{announce:!1},stopHistoryRecording:{announce:!1},enableConsoleTts:{announce:!1},autorunner:{announce:!1},nextArticle:{forward:!0,findNext:"article"},nextButton:{forward:!0,findNext:"button",msgId:"next_button",category:"jump_commands"},nextCheckbox:{forward:!0,
+findNext:"checkbox",msgId:"next_checkbox",category:"jump_commands"},nextComboBox:{forward:!0,findNext:"combobox",msgId:"next_combo_box",category:"jump_commands"},nextControl:{forward:!0,findNext:"control"},nextEditText:{forward:!0,findNext:"editText",msgId:"next_edit_text",category:"jump_commands"},nextFormField:{forward:!0,findNext:"formField",msgId:"next_form_field",category:"jump_commands"},nextGraphic:{forward:!0,findNext:"graphic",msgId:"next_graphic",category:"jump_commands"},nextHeading:{forward:!0,
+findNext:"heading",msgId:"next_heading",category:"jump_commands"},nextHeading1:{forward:!0,findNext:"heading1",msgId:"next_heading1",category:"jump_commands"},nextHeading2:{forward:!0,findNext:"heading2",msgId:"next_heading2",category:"jump_commands"},nextHeading3:{forward:!0,findNext:"heading3",msgId:"next_heading3",category:"jump_commands"},nextHeading4:{forward:!0,findNext:"heading4",msgId:"next_heading4",category:"jump_commands"},nextHeading5:{forward:!0,findNext:"heading5",msgId:"next_heading5",
+category:"jump_commands"},nextHeading6:{forward:!0,findNext:"heading6",msgId:"next_heading6",category:"jump_commands"},nextLandmark:{forward:!0,findNext:"landmark",msgId:"next_landmark",category:"jump_commands"},nextLink:{forward:!0,findNext:"link",msgId:"next_link",category:"jump_commands"},nextList:{forward:!0,findNext:"list",msgId:"next_list",category:"jump_commands"},nextListItem:{forward:!0,findNext:"listItem",msgId:"next_list_item",category:"jump_commands"},nextMath:{forward:!0,findNext:"math",
+msgId:"next_math",category:"jump_commands"},nextMedia:{forward:!0,findNext:"media",msgId:"next_media",category:"jump_commands"},nextRadio:{forward:!0,findNext:"radio",msgId:"next_radio",category:"jump_commands"},nextSection:{forward:!0,findNext:"section"},nextSlider:{forward:!0,findNext:"slider"},nextTable:{forward:!0,findNext:"table",msgId:"next_table",category:"jump_commands"},nextVisitedLink:{forward:!0,findNext:"visitedLink",msgId:"next_visited_link",category:"jump_commands"},previousArticle:{backward:!0,
+findNext:"article"},previousButton:{backward:!0,findNext:"button",msgId:"previous_button",category:"jump_commands"},previousCheckbox:{backward:!0,findNext:"checkbox",msgId:"previous_checkbox",category:"jump_commands"},previousComboBox:{backward:!0,findNext:"combobox",msgId:"previous_combo_box",category:"jump_commands"},previousControl:{backward:!0,findNext:"control"},previousEditText:{backward:!0,findNext:"editText",msgId:"previous_edit_text",category:"jump_commands"},previousFormField:{backward:!0,
+findNext:"formField",msgId:"previous_form_field",category:"jump_commands"},previousGraphic:{backward:!0,findNext:"graphic",msgId:"previous_graphic",category:"jump_commands"},previousHeading:{backward:!0,findNext:"heading",msgId:"previous_heading",category:"jump_commands"},previousHeading1:{backward:!0,findNext:"heading1",msgId:"previous_heading1",category:"jump_commands"},previousHeading2:{backward:!0,findNext:"heading2",msgId:"previous_heading2",category:"jump_commands"},previousHeading3:{backward:!0,
+findNext:"heading3",msgId:"previous_heading3",category:"jump_commands"},previousHeading4:{backward:!0,findNext:"heading4",msgId:"previous_heading4",category:"jump_commands"},previousHeading5:{backward:!0,findNext:"heading5",msgId:"previous_heading5",category:"jump_commands"},previousHeading6:{backward:!0,findNext:"heading6",msgId:"previous_heading6",category:"jump_commands"},previousLandmark:{backward:!0,findNext:"landmark",msgId:"previous_landmark",category:"jump_commands"},previousLink:{backward:!0,
+findNext:"link",msgId:"previous_link",category:"jump_commands"},previousList:{backward:!0,findNext:"list",msgId:"previous_list",category:"jump_commands"},previousListItem:{backward:!0,findNext:"listItem",msgId:"previous_list_item",category:"jump_commands"},previousMath:{backward:!0,findNext:"math",msgId:"previous_math",category:"jump_commands"},previousMedia:{backward:!0,findNext:"media",msgId:"previous_media",category:"jump_commands"},previousRadio:{backward:!0,findNext:"radio",msgId:"previous_radio",
+category:"jump_commands"},previousSection:{backward:!0,findNext:"section"},previousSlider:{backward:!0,findNext:"slider"},previousTable:{backward:!0,findNext:"table",msgId:"previous_table",category:"jump_commands"},previousVisitedLink:{backward:!0,findNext:"visitedLink",msgId:"previous_visited_link",category:"jump_commands"},announceHeaders:{announce:!1,msgId:"announce_headers",category:"tables"},speakTableLocation:{announce:!1,msgId:"speak_table_location",category:"tables"},goToFirstCell:{announce:!0,
+msgId:"skip_to_beginning",category:"tables"},goToLastCell:{announce:!0,msgId:"skip_to_end",category:"tables"},goToRowFirstCell:{announce:!0,msgId:"skip_to_row_beginning",category:"tables"},goToRowLastCell:{announce:!0,msgId:"skip_to_row_end",category:"tables"},goToColFirstCell:{announce:!0,msgId:"skip_to_col_beginning",category:"tables"},goToColLastCell:{announce:!0,msgId:"skip_to_col_end",category:"tables"},previousRow:{backward:!0,announce:!0,skipInput:!0},previousCol:{backward:!0,announce:!0,skipInput:!0},
+nextRow:{forward:!0,announce:!0,skipInput:!0},nextCol:{forward:!0,announce:!0,skipInput:!0},enterShifter:{announce:!0,msgId:"enter_content",category:"navigation"},exitShifter:{announce:!0,msgId:"exit_content",category:"navigation"},exitShifterContent:{announce:!0},openLongDesc:{announce:!1,msgId:"open_long_desc",category:"information"},pauseAllMedia:{announce:!1,msgId:"pause_all_media",category:"information"},toggleSemantics:{announce:!1,msgId:"toggle_semantics",category:"information"},routing:{announce:!0,
+msgId:"braille_routing",category:"braille"},pan_left:{backward:!0,announce:!0,msgId:"braille_pan_left",category:"braille"},pan_right:{forward:!0,announce:!0,msgId:"braille_pan_right",category:"braille"},line_up:{backward:!0,announce:!0,msgId:"braille_line_up",category:"braille"},line_down:{forward:!0,announce:!0,msgId:"braille_line_down",category:"braille"},top:{forward:!0,announce:!0,msgId:"braille_top",category:"braille"},bottom:{backward:!0,announce:!0,msgId:"braille_bottom",category:"braille"},
+debug:{announce:!1},nop:{announce:!1}};
+cvox.CommandStore.NODE_INFO_MAP={checkbox:{predicate:"checkboxPredicate",forwardError:"no_next_checkbox",backwardError:"no_previous_checkbox",typeMsg:"aria_role_checkbox"},radio:{predicate:"radioPredicate",forwardError:"no_next_radio_button",backwardError:"no_previous_radio_button",typeMsg:"aria_role_radio"},slider:{predicate:"sliderPredicate",forwardError:"no_next_slider",backwardError:"no_previous_slider",typeMsg:"aria_role_slider"},graphic:{predicate:"graphicPredicate",forwardError:"no_next_graphic",
+backwardError:"no_previous_graphic",typeMsg:"UNUSED"},article:{predicate:"articlePredicate",forwardError:"no_next_ARTICLE",backwardError:"no_previous_ARTICLE",typeMsg:"TAG_ARTICLE"},button:{predicate:"buttonPredicate",forwardError:"no_next_button",backwardError:"no_previous_button",typeMsg:"aria_role_button"},combobox:{predicate:"comboBoxPredicate",forwardError:"no_next_combo_box",backwardError:"no_previous_combo_box",typeMsg:"aria_role_combobox"},editText:{predicate:"editTextPredicate",forwardError:"no_next_edit_text",
+backwardError:"no_previous_edit_text",typeMsg:"input_type_text"},heading:{predicate:"headingPredicate",forwardError:"no_next_heading",backwardError:"no_previous_heading",typeMsg:"aria_role_heading"},heading1:{predicate:"heading1Predicate",forwardError:"no_next_heading_1",backwardError:"no_previous_heading_1"},heading2:{predicate:"heading2Predicate",forwardError:"no_next_heading_2",backwardError:"no_previous_heading_2"},heading3:{predicate:"heading3Predicate",forwardError:"no_next_heading_3",backwardError:"no_previous_heading_3"},
+heading4:{predicate:"heading4Predicate",forwardError:"no_next_heading_4",backwardError:"no_previous_heading_4"},heading5:{predicate:"heading5Predicate",forwardError:"no_next_heading_5",backwardError:"no_previous_heading_5"},heading6:{predicate:"heading6Predicate",forwardError:"no_next_heading_6",backwardError:"no_previous_heading_6"},link:{predicate:"linkPredicate",forwardError:"no_next_link",backwardError:"no_previous_link",typeMsg:"aria_role_link"},table:{predicate:"tablePredicate",forwardError:"no_next_table",
+backwardError:"no_previous_table",typeMsg:"table_strategy"},visitedLink:{predicate:"visitedLinkPredicate",forwardError:"no_next_visited_link",backwardError:"no_previous_visited_link",typeMsg:"tag_link"},list:{predicate:"listPredicate",forwardError:"no_next_list",backwardError:"no_previous_list",typeMsg:"aria_role_list"},listItem:{predicate:"listItemPredicate",forwardError:"no_next_list_item",backwardError:"no_previous_list_item",typeMsg:"aria_role_listitem"},formField:{predicate:"formFieldPredicate",
+forwardError:"no_next_form_field",backwardError:"no_previous_form_field",typeMsg:"aria_role_form"},landmark:{predicate:"landmarkPredicate",forwardError:"no_next_landmark",backwardError:"no_previous_landmark",typeMsg:"role_landmark"},math:{predicate:"mathPredicate",forwardError:"no_next_math",backwardError:"no_previous_math",typeMsg:"math_expr"},media:{predicate:"mediaPredicate",forwardError:"no_next_media_widget",backwardError:"no_previous_media_widget"},section:{predicate:"sectionPredicate",forwardError:"no_next_section",
+backwardError:"no_previous_section"},control:{predicate:"controlPredicate",forwardError:"no_next_control",backwardError:"no_previous_control"}};cvox.Widget=function(){this.active=!1;this.initialNode=null;cvox.Widget.ref_&&cvox.Widget.ref_.isActive()||(cvox.Widget.ref_=this)};cvox.Widget.prototype.isActive=function(){return this.active};
+cvox.Widget.prototype.show=function(){this.isActive()&&this.hide(!0);this.onKeyDown=goog.bind(this.onKeyDown,this);this.onKeyPress=goog.bind(this.onKeyPress,this);window.addEventListener("keydown",this.onKeyDown,!0);window.addEventListener("keypress",this.onKeyPress,!0);this.initialNode=cvox.ChromeVox.navigationManager.getCurrentNode();this.isStickyOn=cvox.ChromeVox.isStickyOn;this.getNameMsg()&&this.getHelpMsg()&&cvox.$m(this.getNameMsg()).andPause().andMessage(this.getHelpMsg()).speakFlush();cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.OBJECT_OPEN);
+this.active=!0};cvox.Widget.prototype.hide=function(a){window.removeEventListener("keypress",this.onKeyPress,!0);window.removeEventListener("keydown",this.onKeyDown,!0);cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.OBJECT_CLOSE);a||(this.initialNode=1==this.initialNode.nodeType?this.initialNode:this.initialNode.parentNode,cvox.ApiImplementation.syncToNode(this.initialNode,!0,cvox.AbstractTts.QUEUE_MODE_QUEUE));this.active=!1};
+cvox.Widget.prototype.toggle=function(){this.isActive()?this.hide():this.show()};cvox.Widget.prototype.onKeyDown=function(a){if(27==a.keyCode)return this.hide(),a.preventDefault(),!0;if(9==a.keyCode)return this.hide(),!0;17==a.keyCode&&cvox.ChromeVox.tts.stop();a.stopPropagation();return!0};cvox.Widget.prototype.onKeyPress=function(){return!1};cvox.Widget.isActive=function(){return cvox.Widget.ref_&&cvox.Widget.ref_.isActive()||!1};cvox.NavDescription=function(a){this.context=a.context?a.context:"";this.text=a.text?a.text:"";this.userValue=a.userValue?a.userValue:"";this.annotation=a.annotation?a.annotation:"";this.earcons=a.earcons?a.earcons:[];this.personality=a.personality};cvox.NavDescription.prototype.isEmpty=function(){return 0==this.context.length&&0==this.earcons.length&&0==this.text.length&&0==this.userValue.length&&0==this.annotation.length};
+cvox.NavDescription.prototype.toString=function(){return'NavDescription(context="'+this.context+'" text="'+this.text+'" userValue="'+this.userValue+'" annotation="'+this.annotation+'")'};cvox.NavDescription.prototype.pushEarcon=function(a){this.earcons.push(a)};
+cvox.NavDescription.prototype.speak=function(a,b,c){function d(){var a={},b=cvox.AbstractTts.PERSONALITY_ANNOTATION,c;for(c in b)a[c]=b[c];return a}var e=[];this.context&&(e.push([this.context,a,d()]),a=1);e.push([this.text,a,this.personality?this.personality:{}]);a=1;this.userValue&&e.push([this.userValue,a,{}]);this.annotation&&e.push([this.annotation,a,d()]);a=e.length;for(var f=0;f<a;f++)0==f&&b&&(e[f][2].startCallback=b),f==a-1&&c&&(e[f][2].endCallback=c),cvox.ChromeVox.tts.speak.apply(cvox.ChromeVox.tts,
+e[f])};cvox.NavDescription.prototype.equals=function(a){return this.context==a.context&&this.text==a.text&&this.userValue==a.userValue&&this.annotation==a.annotation};cvox.NavMathDescription=function(a){cvox.NavDescription.call(this,a);var b=this.personality?this.personality:{},c={};c.domain=a.domain?a.domain:"";c.style=a.style?a.style:"";b.math=c;this.personality=b};goog.inherits(cvox.NavMathDescription,cvox.NavDescription);cvox.SemanticUtil=function(){};cvox.SemanticUtil.objectsToKeys=function(a){a=Array.prototype.slice.call(arguments,0);var b=[];return b.concat.apply(b,a.map(Object.keys))};cvox.SemanticUtil.objectsToValues=function(a){a=Array.prototype.slice.call(arguments,0);var b=[],c=function(a){for(var c in a)b.push(a[c])};a.forEach(c);return b};
+cvox.SemanticUtil.unicodeToNumber=function(a){if(!a||2<a.length)return null;if(2==a.length){var b=a.charCodeAt(0);a=a.charCodeAt(1);return 55296<=b&&56319>=b&&!isNaN(a)?1024*(b-55296)+(a-56320)+65536:null}return a.charCodeAt(0)};cvox.SemanticUtil.numberToUnicode=function(a){if(65536<=a){var b=(a-65536)/1024+55296;a=(a-65536)%1024+56320;return String.fromCharCode(b,a)}return String.fromCharCode(a)};cvox.SemanticUtil.tagName=function(a){return a.tagName.toUpperCase()};cvox.SemanticUtil.IGNORETAGS="MERROR MPHANTOM MSPACE MACTION MALIGNGROUP MALIGNMARK MACTION".split(" ");
+cvox.SemanticUtil.EMPTYTAGS=["MATH","MROW","MPADDED","MSTYLE"];cvox.SemanticUtil.purgeNodes=function(a){for(var b=[],c=0,d;d=a[c];c++){var e=cvox.SemanticUtil.tagName(d);-1==cvox.SemanticUtil.IGNORETAGS.indexOf(e)&&(-1!=cvox.SemanticUtil.EMPTYTAGS.indexOf(e)&&0==d.childNodes.length||b.push(d))}return b};cvox.SemanticAttr=function(){this.generalPunctuations="!\"#%&'*,:;?@\\\u00a1\u00a7\u00b6\u00b7\u00bf\u2017\u2020\u2021\u2022\u2023\u2024\u2025\u2027\u2030\u2031\u2038\u203b\u203c\u203d\u203e\u2041\u2042\u2043\u2047\u2048\u2049\u204b\u204c\u204d\u204e\u204f\u2050\u2051\u2053\u2055\u2056\u2058\u2059\u205a\u205b\u205c\u205d\u205e\ufe10\ufe13\ufe14\ufe15\ufe16\ufe30\ufe45\ufe46\ufe49\ufe4a\ufe4b\ufe4c\ufe50\ufe54\ufe55\ufe56\ufe57\ufe5f\ufe60\ufe61\ufe68\ufe6a\ufe6b\uff01\uff02\uff03\uff05\uff06\uff07\uff0a\uff0c\uff0f\uff1a\uff1b\uff1f\uff20\uff3c".split("");
+this.invisibleComma_=cvox.SemanticUtil.numberToUnicode(8291);this.generalPunctuations.push(this.invisibleComma_);this.ellipses="\u2026\u22ee\u22ef\u22f0\u22f1\ufe19".split("");this.fullStops=[".","\ufe52","\uff0e"];this.dashes="\u2012\u2013\u2014\u2015\u301c\ufe31\ufe32\ufe58".split("");this.primes="\u2032\u2033\u2034\u2035\u2036\u2037\u2057".split("");this.openClosePairs={"(":")","[":"]","{":"}","\u2045":"\u2046","\u2329":"\u232a","\u2768":"\u2769","\u276a":"\u276b","\u276c":"\u276d","\u276e":"\u276f",
+"\u2770":"\u2771","\u2772":"\u2773","\u2774":"\u2775","\u27c5":"\u27c6","\u27e6":"\u27e7","\u27e8":"\u27e9","\u27ea":"\u27eb","\u27ec":"\u27ed","\u27ee":"\u27ef","\u2983":"\u2984","\u2985":"\u2986","\u2987":"\u2988","\u2989":"\u298a","\u298b":"\u298c","\u298d":"\u298e","\u298f":"\u2990","\u2991":"\u2992","\u2993":"\u2994","\u2995":"\u2996","\u2997":"\u2998","\u29d8":"\u29d9","\u29da":"\u29db","\u29fc":"\u29fd","\u2e22":"\u2e23","\u2e24":"\u2e25","\u2e26":"\u2e27","\u2e28":"\u2e29","\u3008":"\u3009",
+"\u300a":"\u300b","\u300c":"\u300d","\u300e":"\u300f","\u3010":"\u3011","\u3014":"\u3015","\u3016":"\u3017","\u3018":"\u3019","\u301a":"\u301b","\u301d":"\u301e","\ufd3e":"\ufd3f","\ufe17":"\ufe18","\ufe59":"\ufe5a","\ufe5b":"\ufe5c","\ufe5d":"\ufe5e","\uff08":"\uff09","\uff3b":"\uff3d","\uff5b":"\uff5d","\uff5f":"\uff60","\uff62":"\uff63","\u2308":"\u2309","\u230a":"\u230b","\u230c":"\u230d","\u230e":"\u230f","\u231c":"\u231d","\u231e":"\u231f","\u239b":"\u239e","\u239c":"\u239f","\u239d":"\u23a0",
+"\u23a1":"\u23a4","\u23a2":"\u23a5","\u23a3":"\u23a6","\u23a7":"\u23ab","\u23a8":"\u23ac","\u23a9":"\u23ad","\u23b0":"\u23b1","\u23b8":"\u23b9"};this.topBottomPairs={"\u23b4":"\u23b5","\u23dc":"\u23dd","\u23de":"\u23df","\u23e0":"\u23e1","\ufe35":"\ufe36","\ufe37":"\ufe38","\ufe39":"\ufe3a","\ufe3b":"\ufe3c","\ufe3d":"\ufe3e","\ufe3f":"\ufe40","\ufe41":"\ufe42","\ufe43":"\ufe44","\ufe47":"\ufe48"};this.leftFences=cvox.SemanticUtil.objectsToKeys(this.openClosePairs);this.rightFences=cvox.SemanticUtil.objectsToValues(this.openClosePairs);
+this.rightFences.push("\u301f");this.topFences=cvox.SemanticUtil.objectsToKeys(this.topBottomPairs);this.bottomFences=cvox.SemanticUtil.objectsToValues(this.topBottomPairs);this.neutralFences="|\u00a6\u2016\u2758\u2980\u2af4\uffe4\uff5c".split("");this.capitalLatin="ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");this.smallLatin="abcdefghijklmnopqrstuvwxyz\u0131\u0237".split("");this.capitalLatinFullWidth="\uff21\uff22\uff23\uff24\uff25\uff26\uff27\uff28\uff29\uff2a\uff2b\uff2c\uff2d\uff2e\uff2f\uff30\uff31\uff32\uff33\uff34\uff35\uff36\uff37\uff38\uff39\uff3a".split("");
+this.smallLatinFullWidth="\uff41\uff42\uff43\uff44\uff45\uff46\uff47\uff48\uff49\uff4a\uff4b\uff4c\uff4d\uff4e\uff4f\uff50\uff51\uff52\uff53\uff54\uff55\uff56\uff57\uff58\uff59\uff5a".split("");this.capitalLatinBold="\ud835\udc00 \ud835\udc01 \ud835\udc02 \ud835\udc03 \ud835\udc04 \ud835\udc05 \ud835\udc06 \ud835\udc07 \ud835\udc08 \ud835\udc09 \ud835\udc0a \ud835\udc0b \ud835\udc0c \ud835\udc0d \ud835\udc0e \ud835\udc0f \ud835\udc10 \ud835\udc11 \ud835\udc12 \ud835\udc13 \ud835\udc14 \ud835\udc15 \ud835\udc16 \ud835\udc17 \ud835\udc18 \ud835\udc19".split(" ");
+this.smallLatinBold="\ud835\udc1a \ud835\udc1b \ud835\udc1c \ud835\udc1d \ud835\udc1e \ud835\udc1f \ud835\udc20 \ud835\udc21 \ud835\udc22 \ud835\udc23 \ud835\udc24 \ud835\udc25 \ud835\udc26 \ud835\udc27 \ud835\udc28 \ud835\udc29 \ud835\udc2a \ud835\udc2b \ud835\udc2c \ud835\udc2d \ud835\udc2e \ud835\udc2f \ud835\udc30 \ud835\udc31 \ud835\udc32 \ud835\udc33".split(" ");this.capitalLatinItalic="\ud835\udc34 \ud835\udc35 \ud835\udc36 \ud835\udc37 \ud835\udc38 \ud835\udc39 \ud835\udc3a \ud835\udc3b \ud835\udc3c \ud835\udc3d \ud835\udc3e \ud835\udc3f \ud835\udc40 \ud835\udc41 \ud835\udc42 \ud835\udc43 \ud835\udc44 \ud835\udc45 \ud835\udc46 \ud835\udc47 \ud835\udc48 \ud835\udc49 \ud835\udc4a \ud835\udc4b \ud835\udc4c \ud835\udc4d".split(" ");
+this.smallLatinItalic="\ud835\udc4e \ud835\udc4f \ud835\udc50 \ud835\udc51 \ud835\udc52 \ud835\udc53 \ud835\udc54 \u210e \ud835\udc56 \ud835\udc57 \ud835\udc58 \ud835\udc59 \ud835\udc5a \ud835\udc5b \ud835\udc5c \ud835\udc5d \ud835\udc5e \ud835\udc5f \ud835\udc60 \ud835\udc61 \ud835\udc62 \ud835\udc63 \ud835\udc64 \ud835\udc65 \ud835\udc66 \ud835\udc67 \ud835\udea4 \ud835\udea5".split(" ");this.capitalLatinScript="\ud835\udc9c \u212c \ud835\udc9e \ud835\udc9f \u2130 \u2131 \ud835\udca2 \u210b \u2110 \ud835\udca5 \ud835\udca6 \u2112 \u2133 \ud835\udca9 \ud835\udcaa \ud835\udcab \ud835\udcac \u211b \ud835\udcae \ud835\udcaf \ud835\udcb0 \ud835\udcb1 \ud835\udcb2 \ud835\udcb3 \ud835\udcb4 \ud835\udcb5 \u2118".split(" ");
+this.smallLatinScript="\ud835\udcb6 \ud835\udcb7 \ud835\udcb8 \ud835\udcb9 \u212f \ud835\udcbb \u210a \ud835\udcbd \ud835\udcbe \ud835\udcbf \ud835\udcc0 \ud835\udcc1 \ud835\udcc2 \ud835\udcc3 \u2134 \ud835\udcc5 \ud835\udcc6 \ud835\udcc7 \ud835\udcc8 \ud835\udcc9 \ud835\udcca \ud835\udccb \ud835\udccc \ud835\udccd \ud835\udcce \ud835\udccf \u2113".split(" ");this.capitalLatinBoldScript="\ud835\udcd0 \ud835\udcd1 \ud835\udcd2 \ud835\udcd3 \ud835\udcd4 \ud835\udcd5 \ud835\udcd6 \ud835\udcd7 \ud835\udcd8 \ud835\udcd9 \ud835\udcda \ud835\udcdb \ud835\udcdc \ud835\udcdd \ud835\udcde \ud835\udcdf \ud835\udce0 \ud835\udce1 \ud835\udce2 \ud835\udce3 \ud835\udce4 \ud835\udce5 \ud835\udce6 \ud835\udce7 \ud835\udce8 \ud835\udce9".split(" ");
+this.smallLatinBoldScript="\ud835\udcea \ud835\udceb \ud835\udcec \ud835\udced \ud835\udcee \ud835\udcef \ud835\udcf0 \ud835\udcf1 \ud835\udcf2 \ud835\udcf3 \ud835\udcf4 \ud835\udcf5 \ud835\udcf6 \ud835\udcf7 \ud835\udcf8 \ud835\udcf9 \ud835\udcfa \ud835\udcfb \ud835\udcfc \ud835\udcfd \ud835\udcfe \ud835\udcff \ud835\udd00 \ud835\udd01 \ud835\udd02 \ud835\udd03".split(" ");this.capitalLatinFraktur="\ud835\udd04 \ud835\udd05 \u212d \ud835\udd07 \ud835\udd08 \ud835\udd09 \ud835\udd0a \u210c \u2111 \ud835\udd0d \ud835\udd0e \ud835\udd0f \ud835\udd10 \ud835\udd11 \ud835\udd12 \ud835\udd13 \ud835\udd14 \u211c \ud835\udd16 \ud835\udd17 \ud835\udd18 \ud835\udd19 \ud835\udd1a \ud835\udd1b \ud835\udd1c \u2128".split(" ");
+this.smallLatinFraktur="\ud835\udd1e \ud835\udd1f \ud835\udd20 \ud835\udd21 \ud835\udd22 \ud835\udd23 \ud835\udd24 \ud835\udd25 \ud835\udd26 \ud835\udd27 \ud835\udd28 \ud835\udd29 \ud835\udd2a \ud835\udd2b \ud835\udd2c \ud835\udd2d \ud835\udd2e \ud835\udd2f \ud835\udd30 \ud835\udd31 \ud835\udd32 \ud835\udd33 \ud835\udd34 \ud835\udd35 \ud835\udd36 \ud835\udd37".split(" ");this.capitalLatinDoubleStruck="\ud835\udd38 \ud835\udd39 \u2102 \ud835\udd3b \ud835\udd3c \ud835\udd3d \ud835\udd3e \u210d \ud835\udd40 \ud835\udd41 \ud835\udd42 \ud835\udd43 \ud835\udd44 \u2115 \ud835\udd46 \u2119 \u211a \u211d \ud835\udd4a \ud835\udd4b \ud835\udd4c \ud835\udd4d \ud835\udd4e \ud835\udd4f \ud835\udd50 \u2124".split(" ");
+this.smallLatinDoubleStruck="\ud835\udd52 \ud835\udd53 \ud835\udd54 \ud835\udd55 \ud835\udd56 \ud835\udd57 \ud835\udd58 \ud835\udd59 \ud835\udd5a \ud835\udd5b \ud835\udd5c \ud835\udd5d \ud835\udd5e \ud835\udd5f \ud835\udd60 \ud835\udd61 \ud835\udd62 \ud835\udd63 \ud835\udd64 \ud835\udd65 \ud835\udd66 \ud835\udd67 \ud835\udd68 \ud835\udd69 \ud835\udd6a \ud835\udd6b".split(" ");this.capitalLatinBoldFraktur="\ud835\udd6c \ud835\udd6d \ud835\udd6e \ud835\udd6f \ud835\udd70 \ud835\udd71 \ud835\udd72 \ud835\udd73 \ud835\udd74 \ud835\udd75 \ud835\udd76 \ud835\udd77 \ud835\udd78 \ud835\udd79 \ud835\udd7a \ud835\udd7b \ud835\udd7c \ud835\udd7d \ud835\udd7e \ud835\udd7f \ud835\udd80 \ud835\udd81 \ud835\udd82 \ud835\udd83 \ud835\udd84 \ud835\udd85".split(" ");
+this.smallLatinBoldFraktur="\ud835\udd86 \ud835\udd87 \ud835\udd88 \ud835\udd89 \ud835\udd8a \ud835\udd8b \ud835\udd8c \ud835\udd8d \ud835\udd8e \ud835\udd8f \ud835\udd90 \ud835\udd91 \ud835\udd92 \ud835\udd93 \ud835\udd94 \ud835\udd95 \ud835\udd96 \ud835\udd97 \ud835\udd98 \ud835\udd99 \ud835\udd9a \ud835\udd9b \ud835\udd9c \ud835\udd9d \ud835\udd9e \ud835\udd9f".split(" ");this.capitalLatinSansSerif="\ud835\udda0 \ud835\udda1 \ud835\udda2 \ud835\udda3 \ud835\udda4 \ud835\udda5 \ud835\udda6 \ud835\udda7 \ud835\udda8 \ud835\udda9 \ud835\uddaa \ud835\uddab \ud835\uddac \ud835\uddad \ud835\uddae \ud835\uddaf \ud835\uddb0 \ud835\uddb1 \ud835\uddb2 \ud835\uddb3 \ud835\uddb4 \ud835\uddb5 \ud835\uddb6 \ud835\uddb7 \ud835\uddb8 \ud835\uddb9".split(" ");
+this.smallLatinSansSerif="\ud835\uddba \ud835\uddbb \ud835\uddbc \ud835\uddbd \ud835\uddbe \ud835\uddbf \ud835\uddc0 \ud835\uddc1 \ud835\uddc2 \ud835\uddc3 \ud835\uddc4 \ud835\uddc5 \ud835\uddc6 \ud835\uddc7 \ud835\uddc8 \ud835\uddc9 \ud835\uddca \ud835\uddcb \ud835\uddcc \ud835\uddcd \ud835\uddce \ud835\uddcf \ud835\uddd0 \ud835\uddd1 \ud835\uddd2 \ud835\uddd3".split(" ");this.capitalLatinSansSerifBold="\ud835\uddd4 \ud835\uddd5 \ud835\uddd6 \ud835\uddd7 \ud835\uddd8 \ud835\uddd9 \ud835\uddda \ud835\udddb \ud835\udddc \ud835\udddd \ud835\uddde \ud835\udddf \ud835\udde0 \ud835\udde1 \ud835\udde2 \ud835\udde3 \ud835\udde4 \ud835\udde5 \ud835\udde6 \ud835\udde7 \ud835\udde8 \ud835\udde9 \ud835\uddea \ud835\uddeb \ud835\uddec \ud835\udded".split(" ");
+this.smallLatinSansSerifBold="\ud835\uddee \ud835\uddef \ud835\uddf0 \ud835\uddf1 \ud835\uddf2 \ud835\uddf3 \ud835\uddf4 \ud835\uddf5 \ud835\uddf6 \ud835\uddf7 \ud835\uddf8 \ud835\uddf9 \ud835\uddfa \ud835\uddfb \ud835\uddfc \ud835\uddfd \ud835\uddfe \ud835\uddff \ud835\ude00 \ud835\ude01 \ud835\ude02 \ud835\ude03 \ud835\ude04 \ud835\ude05 \ud835\ude06 \ud835\ude07".split(" ");this.capitalLatinSansSerifItalic="\ud835\ude08 \ud835\ude09 \ud835\ude0a \ud835\ude0b \ud835\ude0c \ud835\ude0d \ud835\ude0e \ud835\ude0f \ud835\ude10 \ud835\ude11 \ud835\ude12 \ud835\ude13 \ud835\ude14 \ud835\ude15 \ud835\ude16 \ud835\ude17 \ud835\ude18 \ud835\ude19 \ud835\ude1a \ud835\ude1b \ud835\ude1c \ud835\ude1d \ud835\ude1e \ud835\ude1f \ud835\ude20 \ud835\ude21".split(" ");
+this.smallLatinSansSerifItalic="\ud835\ude22 \ud835\ude23 \ud835\ude24 \ud835\ude25 \ud835\ude26 \ud835\ude27 \ud835\ude28 \ud835\ude29 \ud835\ude2a \ud835\ude2b \ud835\ude2c \ud835\ude2d \ud835\ude2e \ud835\ude2f \ud835\ude30 \ud835\ude31 \ud835\ude32 \ud835\ude33 \ud835\ude34 \ud835\ude35 \ud835\ude36 \ud835\ude37 \ud835\ude38 \ud835\ude39 \ud835\ude3a \ud835\ude3b".split(" ");this.capitalLatinMonospace="\ud835\ude70 \ud835\ude71 \ud835\ude72 \ud835\ude73 \ud835\ude74 \ud835\ude75 \ud835\ude76 \ud835\ude77 \ud835\ude78 \ud835\ude79 \ud835\ude7a \ud835\ude7b \ud835\ude7c \ud835\ude7d \ud835\ude7e \ud835\ude7f \ud835\ude80 \ud835\ude81 \ud835\ude82 \ud835\ude83 \ud835\ude84 \ud835\ude85 \ud835\ude86 \ud835\ude87 \ud835\ude88 \ud835\ude89".split(" ");
+this.smallLatinMonospace="\ud835\ude8a \ud835\ude8b \ud835\ude8c \ud835\ude8d \ud835\ude8e \ud835\ude8f \ud835\ude90 \ud835\ude91 \ud835\ude92 \ud835\ude93 \ud835\ude94 \ud835\ude95 \ud835\ude96 \ud835\ude97 \ud835\ude98 \ud835\ude99 \ud835\ude9a \ud835\ude9b \ud835\ude9c \ud835\ude9d \ud835\ude9e \ud835\ude9f \ud835\udea0 \ud835\udea1 \ud835\udea2 \ud835\udea3".split(" ");this.latinDoubleStruckItalic=["\u2145","\u2146","\u2147","\u2148","\u2149"];this.capitalGreek="\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039a\u039b\u039c\u039d\u039e\u039f\u03a0\u03a1\u03a3\u03a4\u03a5\u03a6\u03a7\u03a8\u03a9".split("");
+this.smallGreek="\u03b1\u03b2\u03b3\u03b4\u03b5\u03b6\u03b7\u03b8\u03b9\u03ba\u03bb\u03bc\u03bd\u03be\u03bf\u03c0\u03c1\u03c2\u03c3\u03c4\u03c5\u03c6\u03c7\u03c8\u03c9".split("");this.capitalGreekBold="\ud835\udea8 \ud835\udea9 \ud835\udeaa \ud835\udeab \ud835\udeac \ud835\udead \ud835\udeae \ud835\udeaf \ud835\udeb0 \ud835\udeb1 \ud835\udeb2 \ud835\udeb3 \ud835\udeb4 \ud835\udeb5 \ud835\udeb6 \ud835\udeb7 \ud835\udeb8 \ud835\udeba \ud835\udebb \ud835\udebc \ud835\udebd \ud835\udebe \ud835\udebf \ud835\udec0".split(" ");
+this.smallGreekBold="\ud835\udec2 \ud835\udec3 \ud835\udec4 \ud835\udec5 \ud835\udec6 \ud835\udec7 \ud835\udec8 \ud835\udec9 \ud835\udeca \ud835\udecb \ud835\udecc \ud835\udecd \ud835\udece \ud835\udecf \ud835\uded0 \ud835\uded1 \ud835\uded2 \ud835\uded3 \ud835\uded4 \ud835\uded5 \ud835\uded6 \ud835\uded7 \ud835\uded8 \ud835\uded9 \ud835\udeda".split(" ");this.capitalGreekItalic="\ud835\udee2 \ud835\udee3 \ud835\udee4 \ud835\udee5 \ud835\udee6 \ud835\udee7 \ud835\udee8 \ud835\udee9 \ud835\udeea \ud835\udeeb \ud835\udeec \ud835\udeed \ud835\udeee \ud835\udeef \ud835\udef0 \ud835\udef1 \ud835\udef2 \ud835\udef4 \ud835\udef5 \ud835\udef6 \ud835\udef7 \ud835\udef8 \ud835\udef9 \ud835\udefa".split(" ");
+this.smallGreekItalic="\ud835\udefc \ud835\udefd \ud835\udefe \ud835\udeff \ud835\udf00 \ud835\udf01 \ud835\udf02 \ud835\udf03 \ud835\udf04 \ud835\udf05 \ud835\udf06 \ud835\udf07 \ud835\udf08 \ud835\udf09 \ud835\udf0a \ud835\udf0b \ud835\udf0c \ud835\udf0d \ud835\udf0e \ud835\udf0f \ud835\udf10 \ud835\udf11 \ud835\udf12 \ud835\udf13 \ud835\udf14".split(" ");this.capitalGreekSansSerifBold="\ud835\udf56 \ud835\udf57 \ud835\udf58 \ud835\udf59 \ud835\udf5a \ud835\udf5b \ud835\udf5c \ud835\udf5d \ud835\udf5e \ud835\udf5f \ud835\udf60 \ud835\udf61 \ud835\udf62 \ud835\udf63 \ud835\udf64 \ud835\udf65 \ud835\udf66 \ud835\udf68 \ud835\udf69 \ud835\udf6a \ud835\udf6b \ud835\udf6c \ud835\udf6d \ud835\udf6e".split(" ");
+this.smallGreekSansSerifBold="\ud835\udf70 \ud835\udf71 \ud835\udf72 \ud835\udf73 \ud835\udf74 \ud835\udf75 \ud835\udf76 \ud835\udf77 \ud835\udf78 \ud835\udf79 \ud835\udf7a \ud835\udf7b \ud835\udf7c \ud835\udf7d \ud835\udf7e \ud835\udf7f \ud835\udf80 \ud835\udf81 \ud835\udf82 \ud835\udf83 \ud835\udf84 \ud835\udf85 \ud835\udf86 \ud835\udf87 \ud835\udf88".split(" ");this.greekDoubleStruck=["\u213c","\u213d","\u213e","\u213f"];this.hebrewLetters=["\u2135","\u2136","\u2137","\u2138"];this.additions="+\u00b1\u2213\u2214\u2227\u2228\u2229\u222a\u228c\u2293\u2294\u229d\u229e\u22a4\u22a5\u22ba\u22bb\u22bc\u22c4\u22ce\u22cf\u22d2\u22d3\u25b3\u25b7\u25bd\u25c1\u2a5e\u2295".split("");
+this.invisiblePlus_=cvox.SemanticUtil.numberToUnicode(8292);this.additions.push(this.invisiblePlus_);this.multiplications="\u2020\u2021\u2210\u2217\u2218\u2219\u2240\u229a\u229b\u22a0\u22a1\u22c5\u22c6\u22c7\u22c9\u22ca\u22cb\u22cc\u25cb".split("");this.invisibleTimes_=cvox.SemanticUtil.numberToUnicode(8290);this.multiplications.push(this.invisibleTimes_);this.subtractions="-\u2052\u207b\u208b\u2212\u2216\u2238\u2242\u2296\u229f\u2796\u2a29\u2a2a\u2a2b\u2a2c\u2a3a\u2a41\u2a6c\ufe63\uff0d\u2010\u2011".split("");
+this.divisions="/\u00f7\u2044\u2215\u2298\u27cc\u29bc\u2a38".split("");this.functionApplication_=cvox.SemanticUtil.numberToUnicode(8289);this.equalities="=~\u207c\u208c\u223c\u223d\u2243\u2245\u2248\u224a\u224b\u224c\u224d\u224e\u2251\u2252\u2253\u2254\u2255\u2256\u2257\u2258\u2259\u225a\u225b\u225c\u225d\u225e\u225f\u2261\u2263\u29e4\u2a66\u2a6e\u2a6f\u2a70\u2a71\u2a72\u2a73\u2a74\u2a75\u2a76\u2a77\u2a78\u22d5\u2a6d\u2a6a\u2a6b\u2a6c\ufe66\uff1d".split("");this.inequalities="<>\u2241\u2242\u2244\u2246\u2247\u2249\u224f\u2250\u2260\u2262\u2264\u2265\u2266\u2267\u2268\u2269\u226a\u226b\u226c\u226d\u226e\u226f\u2270\u2271\u2272\u2273\u2274\u2275\u2276\u2277\u2278\u2279\u227a\u227b\u227c\u227d\u227e\u227f\u2280\u2281\u22d6\u22d7\u22d8\u22d9\u22da\u22db\u22dc\u22dd\u22de\u22df\u22e0\u22e1\u22e2\u22e3\u22e4\u22e5\u22e6\u22e7\u22e8\u22e9\u2a79\u2a7a\u2a7b\u2a7c\u2a7d\u2a7e\u2a7f\u2a80\u2a81\u2a82\u2a83\u2a84\u2a85\u2a86\u2a87\u2a88\u2a89\u2a8a\u2a8b\u2a8c\u2a8d\u2a8e\u2a8f\u2a90\u2a91\u2a92\u2a93\u2a94\u2a95\u2a96\u2a97\u2a98\u2a99\u2a9a\u2a9b\u2a9c\u2a9d\u2a9e\u2a9f\u2aa0\u2aa1\u2aa2\u2aa3\u2aa4\u2aa5\u2aa6\u2aa7\u2aa8\u2aa9\u2aaa\u2aab\u2aac\u2aad\u2aae\u2aaf\u2ab0\u2ab1\u2ab2\u2ab3\u2ab4\u2ab5\u2ab6\u2ab7\u2ab8\u2ab9\u2aba\u2abb\u2abc\u2af7\u2af8\u2af9\u2afa\u29c0\u29c1\ufe64\ufe65\uff1c\uff1e".split("");
+this.relations=[];this.arrows="\u2190\u2191\u2192\u2193\u2194\u2195\u2196\u2197\u2198\u2199\u219a\u219b\u219c\u219d\u219e\u219f\u21a0\u21a1\u21a2\u21a3\u21a4\u21a5\u21a6\u21a7\u21a8\u21a9\u21aa\u21ab\u21ac\u21ad\u21ae\u21af\u21b0\u21b1\u21b2\u21b3\u21b4\u21b5\u21b6\u21b7\u21b8\u21b9\u21ba\u21bb\u21c4\u21c5\u21c6\u21c7\u21c8\u21c9\u21ca\u21cd\u21ce\u21cf\u21d0\u21d1\u21d2\u21d3\u21d4\u21d5\u21d6\u21d7\u21d8\u21d9\u21da\u21db\u21dc\u21dd\u21de\u21df\u21e0\u21e1\u21e2\u21e3\u21e4\u21e5\u21e6\u21e7\u21e8\u21e9\u21ea\u21eb\u21ec\u21ed\u21ee\u21ef\u21f0\u21f1\u21f2\u21f3\u21f4\u21f5\u21f6\u21f7\u21f8\u21f9\u21fa\u21fb\u21fc\u21fd\u21fe\u21ff\u2301\u2303\u2304\u2324\u238b\u2794\u2798\u2799\u279a\u279b\u279c\u279d\u279e\u279f\u27a0\u27a1\u27a2\u27a3\u27a4\u27a5\u27a6\u27a7\u27a8\u27a9\u27aa\u27ab\u27ac\u27ad\u27ae\u27af\u27b1\u27b2\u27b3\u27b4\u27b5\u27b6\u27b7\u27b8\u27b9\u27ba\u27bb\u27bc\u27bd\u27be\u27f0\u27f1\u27f2\u27f3\u27f4\u27f5\u27f6\u27f7\u27f8\u27f9\u27fa\u27fb\u27fc\u27fd\u27fe\u27ff\u2900\u2901\u2902\u2903\u2904\u2905\u2906\u2907\u2908\u2909\u290a\u290b\u290c\u290d\u290e\u290f\u2910\u2911\u2912\u2913\u2914\u2915\u2916\u2917\u2918\u2919\u291a\u291b\u291c\u291d\u291e\u291f\u2920\u2921\u2922\u2923\u2924\u2925\u2926\u2927\u2928\u2929\u292a\u292d\u292e\u292f\u2930\u2931\u2932\u2933\u2934\u2935\u2936\u2937\u2938\u2939\u293a\u293b\u293c\u293d\u293e\u293f\u2940\u2941\u2942\u2943\u2944\u2945\u2946\u2947\u2948\u2949\u2970\u2971\u2972\u2973\u2974\u2975\u2976\u2977\u2978\u2979\u297a\u297b\u29b3\u29b4\u29bd\u29ea\u29ec\u29ed\u2a17\u2b00\u2b01\u2b02\u2b03\u2b04\u2b05\u2b06\u2b07\u2b08\u2b09\u2b0a\u2b0b\u2b0c\u2b0d\u2b0e\u2b0f\u2b10\u2b11\u2b30\u2b31\u2b32\u2b33\u2b34\u2b35\u2b36\u2b37\u2b38\u2b39\u2b3a\u2b3b\u2b3c\u2b3d\u2b3e\u2b3f\u2b40\u2b41\u2b42\u2b43\u2b44\u2b45\u2b46\u2b47\u2b48\u2b49\u2b4a\u2b4b\u2b4c\uffe9\uffea\uffeb\uffec\u21bc\u21bd\u21be\u21bf\u21c0\u21c1\u21c2\u21c3\u21cb\u21cc\u294a\u294b\u294c\u294d\u294e\u294f\u2950\u2951\u2952\u2953\u2954\u2955\u2956\u2957\u2958\u2959\u295a\u295b\u295c\u295d\u295e\u295f\u2960\u2961\u2962\u2963\u2964\u2965\u2966\u2967\u2968\u2969\u296a\u296b\u296c\u296d\u296e\u296f\u297c\u297d\u297e\u297f".split("");
+this.sumOps="\u2140\u220f\u2210\u2211\u22c0\u22c1\u22c2\u22c3\u2a00\u2a01\u2a02\u2a03\u2a04\u2a05\u2a06\u2a07\u2a08\u2a09\u2a0a\u2a0b\u2afc\u2aff".split("");this.intOps="\u222b\u222c\u222d\u222e\u222f\u2230\u2231\u2232\u2233\u2a0c\u2a0d\u2a0e\u2a0f\u2a10\u2a11\u2a12\u2a13\u2a14\u2a15\u2a16\u2a17\u2a18\u2a19\u2a1a\u2a1b\u2a1c".split("");this.prefixOps=["\u2200","\u2203"];this.digitsNormal="0123456789".split("");this.digitsFullWidth="\uff10\uff11\uff12\uff13\uff14\uff15\uff16\uff17\uff18\uff19".split("");
+this.digitsBold="\ud835\udfce \ud835\udfcf \ud835\udfd0 \ud835\udfd1 \ud835\udfd2 \ud835\udfd3 \ud835\udfd4 \ud835\udfd5 \ud835\udfd6 \ud835\udfd7".split(" ");this.digitsDoubleStruck="\ud835\udfd8 \ud835\udfd9 \ud835\udfda \ud835\udfdb \ud835\udfdc \ud835\udfdd \ud835\udfde \ud835\udfdf \ud835\udfe0 \ud835\udfe1".split(" ");this.digitsSansSerif="\ud835\udfe2 \ud835\udfe3 \ud835\udfe4 \ud835\udfe5 \ud835\udfe6 \ud835\udfe7 \ud835\udfe8 \ud835\udfe9 \ud835\udfea \ud835\udfeb".split(" ");this.digitsSansSerifBold=
+"\ud835\udfec \ud835\udfed \ud835\udfee \ud835\udfef \ud835\udff0 \ud835\udff1 \ud835\udff2 \ud835\udff3 \ud835\udff4 \ud835\udff5".split(" ");this.digitsMonospace="\ud835\udff6 \ud835\udff7 \ud835\udff8 \ud835\udff9 \ud835\udffa \ud835\udffb \ud835\udffc \ud835\udffd \ud835\udffe \ud835\udfff".split(" ");this.digitsSuperscript="\u00b2\u00b3\u00b9\u2070\u2074\u2075\u2076\u2077\u2078\u2079".split("");this.digitsSubscript="\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089".split("");this.fractions=
+"\u00bc\u00bd\u00be\u2150\u2151\u2152\u2153\u2154\u2155\u2156\u2157\u2158\u2159\u215a\u215b\u215c\u215d\u215e\u215f\u2189".split("");this.enclosedNumbers="\u2460\u2461\u2462\u2463\u2464\u2465\u2466\u2467\u2468\u2469\u246a\u246b\u246c\u246d\u246e\u246f\u2470\u2471\u2472\u2473\u24ea\u24eb\u24ec\u24ed\u24ee\u24ef\u24f0\u24f1\u24f2\u24f3\u24f4\u24f5\u24f6\u24f7\u24f8\u24f9\u24fa\u24fb\u24fc\u24fd\u24fe\u24ff\u2776\u2777\u2778\u2779\u277a\u277b\u277c\u277d\u277e\u277f\u2780\u2781\u2782\u2783\u2784\u2785\u2786\u2787\u2788\u2789\u278a\u278b\u278c\u278d\u278e\u278f\u2790\u2791\u2792\u2793\u3248\u3249\u324a\u324b\u324c\u324d\u324e\u324f\u3251\u3252\u3253\u3254\u3255\u3256\u3257\u3258\u3259\u325a\u325b\u325c\u325d\u325e\u325f\u32b1\u32b2\u32b3\u32b4\u32b5\u32b6\u32b7\u32b8\u32b9\u32ba\u32bb\u32bc\u32bd\u32be\u32bf".split("");
+this.fencedNumbers="\u2474\u2475\u2476\u2477\u2478\u2479\u247a\u247b\u247c\u247d\u247e\u247f\u2480\u2481\u2482\u2483\u2484\u2485\u2486\u2487".split("");this.punctuatedNumbers="\u2488 \u2489 \u248a \u248b \u248c \u248d \u248e \u248f \u2490 \u2491 \u2492 \u2493 \u2494 \u2495 \u2496 \u2497 \u2498 \u2499 \u249a \u249b \ud83c\udd00 \ud83c\udd01 \ud83c\udd02 \ud83c\udd03 \ud83c\udd04 \ud83c\udd05 \ud83c\udd06 \ud83c\udd07 \ud83c\udd08 \ud83c\udd09 \ud83c\udd0a".split(" ");this.numbers=this.fractions.concat(this.digitsSuperscript,
+this.digitsSubscript,this.enclosedNumbers,this.fencedNumbers,this.punctuatedNumbers);this.trigonometricFunctions="cos cot csc sec sin tan arccos arccot arccsc arcsec arcsin arctan".split(" ");this.hyperbolicFunctions="cosh coth csch sech sinh tanh arcosh arcoth arcsch arsech arsinh artanh arccosh arccoth arccsch arcsech arcsinh arctanh".split(" ");this.algebraicFunctions="deg det dim hom ker Tr tr".split(" ");this.elementaryFunctions="log ln lg exp expt gcd gcd arg im re Pr".split(" ");this.prefixFunctions=
+this.trigonometricFunctions.concat(this.hyperbolicFunctions,this.algebraicFunctions,this.elementaryFunctions);this.limitFunctions="inf lim liminf limsup max min sup injlim projlim".split(" ");this.infixFunctions=["mod","rem"];this.symbolSetToSemantic_=[{set:this.generalPunctuations,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.UNKNOWN},{set:this.ellipses,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.ELLIPSIS},{set:this.fullStops,type:cvox.SemanticAttr.Type.PUNCTUATION,
+role:cvox.SemanticAttr.Role.FULLSTOP},{set:this.dashes,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.DASH},{set:this.primes,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.PRIME},{set:this.leftFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.OPEN},{set:this.rightFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.CLOSE},{set:this.topFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.TOP},{set:this.bottomFences,
+type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.BOTTOM},{set:this.neutralFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.NEUTRAL},{set:this.smallLatin,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.capitalLatin,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.smallLatinFullWidth,type:cvox.SemanticAttr.Type.IDENTIFIER,
+role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.capitalLatinFullWidth,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.smallLatinBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLD},{set:this.capitalLatinBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLD},
+{set:this.smallLatinItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.capitalLatinItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.smallLatinScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SCRIPT},{set:this.capitalLatinScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,
+font:cvox.SemanticAttr.Font.SCRIPT},{set:this.smallLatinBoldScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLDSCRIPT},{set:this.capitalLatinBoldScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLDSCRIPT},{set:this.smallLatinFraktur,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.FRAKTUR},{set:this.capitalLatinFraktur,
+type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.FRAKTUR},{set:this.smallLatinDoubleStruck,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.capitalLatinDoubleStruck,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.smallLatinBoldFraktur,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,
+font:cvox.SemanticAttr.Font.BOLDFRAKTUR},{set:this.capitalLatinBoldFraktur,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLDFRAKTUR},{set:this.smallLatinSansSerif,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIF},{set:this.capitalLatinSansSerif,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIF},{set:this.smallLatinSansSerifBold,
+type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.capitalLatinSansSerifBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.smallLatinSansSerifItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFITALIC},{set:this.capitalLatinSansSerifItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,
+role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFITALIC},{set:this.smallLatinMonospace,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.MONOSPACE},{set:this.capitalLatinMonospace,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.MONOSPACE},{set:this.latinDoubleStruckItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCKITALIC},
+{set:this.smallGreek,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.capitalGreek,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.smallGreekBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.BOLD},{set:this.capitalGreekBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,
+font:cvox.SemanticAttr.Font.BOLD},{set:this.smallGreekItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.capitalGreekItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.smallGreekSansSerifBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.capitalGreekSansSerifBold,
+type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.greekDoubleStruck,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.hebrewLetters,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.OTHERLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.digitsNormal,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,
+font:cvox.SemanticAttr.Font.NORMAL},{set:this.digitsFullWidth,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.digitsBold,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.BOLD},{set:this.digitsDoubleStruck,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.digitsSansSerif,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,
+font:cvox.SemanticAttr.Font.SANSSERIF},{set:this.digitsSansSerifBold,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.digitsMonospace,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.MONOSPACE},{set:this.numbers,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER},{set:this.additions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.ADDITION},
+{set:this.multiplications,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.MULTIPLICATION},{set:this.subtractions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.SUBTRACTION},{set:this.divisions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.DIVISION},{set:this.prefixOps,type:cvox.SemanticAttr.Type.PREFIXOP,role:cvox.SemanticAttr.Role.PREFIXFUNC},{set:this.equalities,type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.EQUALITY},{set:this.inequalities,
+type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.INEQUALITY},{set:this.relations,type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.UNKNOWN},{set:this.arrows,type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.ARROW},{set:this.sumOps,type:cvox.SemanticAttr.Type.LARGEOP,role:cvox.SemanticAttr.Role.SUM},{set:this.intOps,type:cvox.SemanticAttr.Type.LARGEOP,role:cvox.SemanticAttr.Role.INTEGRAL},{set:this.limitFunctions,type:cvox.SemanticAttr.Type.FUNCTION,role:cvox.SemanticAttr.Role.LIMFUNC},
+{set:this.prefixFunctions,type:cvox.SemanticAttr.Type.FUNCTION,role:cvox.SemanticAttr.Role.PREFIXFUNC},{set:this.infixFunctions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.MULTIPLICATION}]};goog.addSingletonGetter(cvox.SemanticAttr);
+cvox.SemanticAttr.Type={PUNCTUATION:"punctuation",FENCE:"fence",NUMBER:"number",IDENTIFIER:"identifier",TEXT:"text",OPERATOR:"operator",RELATION:"relation",LARGEOP:"largeop",FUNCTION:"function",ACCENT:"accent",FENCED:"fenced",FRACTION:"fraction",PUNCTUATED:"punctuated",RELSEQ:"relseq",MULTIREL:"multirel",INFIXOP:"infixop",PREFIXOP:"prefixop",POSTFIXOP:"postfixop",APPL:"appl",INTEGRAL:"integral",BIGOP:"bigop",SQRT:"sqrt",ROOT:"root",LIMUPPER:"limupper",LIMLOWER:"limlower",LIMBOTH:"limboth",SUBSCRIPT:"subscript",
+SUPERSCRIPT:"superscript",UNDERSCORE:"underscore",OVERSCORE:"overscore",TABLE:"table",MULTILINE:"multiline",MATRIX:"matrix",VECTOR:"vector",CASES:"cases",ROW:"row",LINE:"line",CELL:"cell",UNKNOWN:"unknown",EMPTY:"empty"};
+cvox.SemanticAttr.Role={ELLIPSIS:"ellipsis",FULLSTOP:"fullstop",DASH:"dash",PRIME:"prime",VBAR:"vbar",OPENFENCE:"openfence",CLOSEFENCE:"closefence",APPLICATION:"application",OPEN:"open",CLOSE:"close",TOP:"top",BOTTOM:"bottom",NEUTRAL:"neutral",LATINLETTER:"latinletter",GREEKLETTER:"greekletter",OTHERLETTER:"otherletter",INTEGER:"integer",FLOAT:"float",OTHERNUMBER:"othernumber",MULTIACCENT:"multiaccent",OVERACCENT:"overaccent",UNDERACCENT:"underaccent",LEFTRIGHT:"leftright",ABOVEBELOW:"abovebelow",
+SEQUENCE:"sequence",ENDPUNCT:"endpunct",STARTPUNCT:"startpunct",NEGATIVE:"negative",NEGATION:"negation",MULTIOP:"multiop",LIMFUNC:"limit function",INFIXFUNC:"infix function",PREFIXFUNC:"prefix function",POSTFIXFUNC:"postfix function",SUM:"sum",INTEGRAL:"integral",ADDITION:"addition",MULTIPLICATION:"multiplication",DIVISION:"division",SUBTRACTION:"subtraction",IMPLICIT:"implicit",EQUALITY:"equality",INEQUALITY:"inequality",ELEMENT:"element",BINREL:"binrel",ARROW:"arrow",MULTILINE:"multiline",MATRIX:"matrix",
+VECTOR:"vector",CASES:"cases",TABLE:"table",UNKNOWN:"unknown"};cvox.SemanticAttr.Font={BOLD:"bold",BOLDFRAKTUR:"bold-fraktur",BOLDITALIC:"bold-italic",BOLDSCRIPT:"bold-script",DOUBLESTRUCK:"double-struck",DOUBLESTRUCKITALIC:"double-struck-italic",FRAKTUR:"fraktur",ITALIC:"italic",MONOSPACE:"monospace",NORMAL:"normal",SCRIPT:"script",SANSSERIF:"sans-serif",SANSSERIFITALIC:"sans-serif-italic",SANSSERIFBOLD:"sans-serif-bold",SANSSERIFBOLDITALIC:"sans-serif-bold-italic",UNKNOWN:"unknown"};
+cvox.SemanticAttr.lookupMeaning=function(a){return cvox.SemanticAttr.getInstance().lookupMeaning_(a)};cvox.SemanticAttr.invisibleTimes=function(){return cvox.SemanticAttr.getInstance().invisibleTimes_};cvox.SemanticAttr.invisibleComma=function(){return cvox.SemanticAttr.getInstance().invisibleComma_};cvox.SemanticAttr.functionApplication=function(){return cvox.SemanticAttr.getInstance().functionApplication_};
+cvox.SemanticAttr.isMatchingFenceRole=function(a,b){return a==cvox.SemanticAttr.Role.OPEN&&b==cvox.SemanticAttr.Role.CLOSE||a==cvox.SemanticAttr.Role.NEUTRAL&&b==cvox.SemanticAttr.Role.NEUTRAL||a==cvox.SemanticAttr.Role.TOP&&b==cvox.SemanticAttr.Role.BOTTOM};cvox.SemanticAttr.isMatchingFence=function(a,b){return cvox.SemanticAttr.getInstance().isMatchingFence_(a,b)};cvox.SemanticAttr.isOpeningFence=function(a){return a==cvox.SemanticAttr.Role.OPEN||a==cvox.SemanticAttr.Role.NEUTRAL};
+cvox.SemanticAttr.isClosingFence=function(a){return a==cvox.SemanticAttr.Role.CLOSE||a==cvox.SemanticAttr.Role.NEUTRAL};cvox.SemanticAttr.isCharacterD=function(a){var b="d \u2146 \uff44 \ud835\udc1d \ud835\udc51 \ud835\udcb9 \ud835\udced \ud835\udd21 \ud835\udd55 \ud835\udd89 \ud835\uddbd \ud835\uddf1 \ud835\ude25 \ud835\ude8d".split(" ");return-1!=b.indexOf(a)};
+cvox.SemanticAttr.prototype.isMatchingFence_=function(a,b){return-1!=this.neutralFences.indexOf(a)?a==b:this.openClosePairs[a]==b||this.topBottomPairs[a]==b};
+cvox.SemanticAttr.prototype.lookupMeaning_=function(a){for(var b=0,c;c=this.symbolSetToSemantic_[b];b++)if(-1!=c.set.indexOf(a))return{role:c.role||cvox.SemanticAttr.Role.UNKNOWN,type:c.type||cvox.SemanticAttr.Type.UNKNOWN,font:c.font||cvox.SemanticAttr.Font.UNKNOWN};return{role:cvox.SemanticAttr.Role.UNKNOWN,type:cvox.SemanticAttr.Type.UNKNOWN,font:cvox.SemanticAttr.Font.UNKNOWN}};cvox.SemanticTree=function(a){this.idCounter_=0;this.mathml=a;this.root=this.parseMathml_(a)};cvox.SemanticTree.Node=function(a){this.id=a;this.mathml=[];this.parent=null;this.type=cvox.SemanticAttr.Type.UNKNOWN;this.role=cvox.SemanticAttr.Role.UNKNOWN;this.font=cvox.SemanticAttr.Font.UNKNOWN;this.childNodes=[];this.textContent="";this.contentNodes=[]};
+cvox.SemanticTree.Node.prototype.querySelectorAll=function(a){for(var b=[],c=0,d;d=this.childNodes[c];c++)b=b.concat(d.querySelectorAll(a));a(this)&&b.unshift(this);return b};cvox.SemanticTree.prototype.xml=function(a){var b=new DOMParser,b=b.parseFromString("<stree></stree>","text/xml");a=this.root.xml(b,a);b.childNodes[0].appendChild(a);return b.childNodes[0]};
+cvox.SemanticTree.Node.prototype.xml=function(a,b){var c=function(c,d){for(var g=d.map(function(c){return c.xml(a,b)}),h=a.createElement(c),k=0,l;l=g[k];k++)h.appendChild(l);return h},d=a.createElement(this.type);b||this.xmlAttributes_(d);d.textContent=this.textContent;0<this.contentNodes.length&&d.appendChild(c("content",this.contentNodes));0<this.childNodes.length&&d.appendChild(c("children",this.childNodes));return d};cvox.SemanticTree.prototype.toString=function(a){var b=new XMLSerializer;return b.serializeToString(this.xml(a))};
+cvox.SemanticTree.prototype.formatXml=function(a){a=this.toString(a);return cvox.SemanticTree.formatXml(a)};cvox.SemanticTree.formatXml=function(a){var b=/(>)(<)(\/*)/g;a=a.replace(b,"$1\r\n$2$3");b=/(>)(.+)(<c)/g;a=a.replace(b,"$1\r\n$2\r\n$3");var c="",d="";a.split("\r\n").forEach(function(a){a.match(/.+<\/\w[^>]*>$/)?c+=d+a+"\r\n":a.match(/^<\/\w/)?d&&(d=d.slice(2),c+=d+a+"\r\n"):a.match(/^<\w[^>]*[^\/]>.*$/)?(c+=d+a+"\r\n",d+=" "):c+=d+a+"\r\n"});return c};
+cvox.SemanticTree.Node.prototype.toString=function(a){var b=new XMLSerializer,c=new DOMParser,c=c.parseFromString("","text/xml");return b.serializeToString(this.xml(c,a))};cvox.SemanticTree.Node.prototype.xmlAttributes_=function(a){a.setAttribute("role",this.role);this.font!=cvox.SemanticAttr.Font.UNKNOWN&&a.setAttribute("font",this.font);a.setAttribute("id",this.id)};cvox.SemanticTree.prototype.createNode_=function(){return new cvox.SemanticTree.Node(this.idCounter_++)};
+cvox.SemanticTree.Node.prototype.updateContent_=function(a){a=a.trim();if(this.textContent!=a){var b=cvox.SemanticAttr.lookupMeaning(a);this.textContent=a;this.role=b.role;this.type=b.type;this.font=b.font}};cvox.SemanticTree.Node.prototype.addMathmlNodes_=function(a){for(var b=0,c;c=a[b];b++)-1==this.mathml.indexOf(c)&&this.mathml.push(c)};cvox.SemanticTree.Node.prototype.appendChild_=function(a){this.childNodes.push(a);this.addMathmlNodes_(a.mathml);a.parent=this};
+cvox.SemanticTree.Node.prototype.appendContentNode_=function(a){a&&(this.contentNodes.push(a),this.addMathmlNodes_(a.mathml),a.parent=this)};
+cvox.SemanticTree.prototype.parseMathml_=function(a){var b=cvox.DomUtil.toArray(a.children);switch(cvox.SemanticUtil.tagName(a)){case "MATH":case "MROW":case "MPADDED":case "MSTYLE":return b=cvox.SemanticUtil.purgeNodes(b),1==b.length?this.parseMathml_(b[0]):this.processRow_(this.parseMathmlChildren_(b));case "MFRAC":return a=this.makeBranchNode_(cvox.SemanticAttr.Type.FRACTION,[this.parseMathml_(b[0]),this.parseMathml_(b[1])],[]),a.role=cvox.SemanticAttr.Role.DIVISION,a;case "MSUB":case "MSUP":case "MSUBSUP":case "MOVER":case "MUNDER":case "MUNDEROVER":return this.makeLimitNode_(cvox.SemanticUtil.tagName(a),
+this.parseMathmlChildren_(b));case "MROOT":return this.makeBranchNode_(cvox.SemanticAttr.Type.ROOT,[this.parseMathml_(b[0]),this.parseMathml_(b[1])],[]);case "MSQRT":return b=this.parseMathmlChildren_(cvox.SemanticUtil.purgeNodes(b)),this.makeBranchNode_(cvox.SemanticAttr.Type.SQRT,[this.processRow_(b)],[]);case "MTABLE":return a=this.makeBranchNode_(cvox.SemanticAttr.Type.TABLE,this.parseMathmlChildren_(b),[]),cvox.SemanticTree.tableIsMultiline_(a)&&this.tableToMultiline_(a),a;case "MTR":return a=
+this.makeBranchNode_(cvox.SemanticAttr.Type.ROW,this.parseMathmlChildren_(b),[]),a.role=cvox.SemanticAttr.Role.TABLE,a;case "MTD":return b=this.parseMathmlChildren_(cvox.SemanticUtil.purgeNodes(b)),a=this.makeBranchNode_(cvox.SemanticAttr.Type.CELL,[this.processRow_(b)],[]),a.role=cvox.SemanticAttr.Role.TABLE,a;case "MTEXT":return a=this.makeLeafNode_(a),a.type=cvox.SemanticAttr.Type.TEXT,a;case "MI":return a=this.makeLeafNode_(a),a.type==cvox.SemanticAttr.Type.UNKNOWN&&(a.type=cvox.SemanticAttr.Type.IDENTIFIER),
+a;case "MN":return a=this.makeLeafNode_(a),a.type==cvox.SemanticAttr.Type.UNKNOWN&&(a.type=cvox.SemanticAttr.Type.NUMBER),a;case "MO":return a=this.makeLeafNode_(a),a.type==cvox.SemanticAttr.Type.UNKNOWN&&(a.type=cvox.SemanticAttr.Type.OPERATOR),a;default:return this.makeUnprocessed_(a)}};cvox.SemanticTree.prototype.parseMathmlChildren_=function(a){for(var b=[],c=0,d;d=a[c];c++)b.push(this.parseMathml_(d));return b};
+cvox.SemanticTree.prototype.makeUnprocessed_=function(a){var b=this.createNode_();b.mathml=[a];return b};cvox.SemanticTree.prototype.makeEmptyNode_=function(){var a=this.createNode_();a.type=cvox.SemanticAttr.Type.EMPTY;return a};cvox.SemanticTree.prototype.makeLeafNode_=function(a){var b=this.createNode_();b.mathml=[a];b.updateContent_(a.textContent);b.font=a.getAttribute("mathvariant")||b.font;return b};
+cvox.SemanticTree.prototype.makeBranchNode_=function(a,b,c,d){var e=this.createNode_();d&&e.updateContent_(d);e.type=a;e.childNodes=b;e.contentNodes=c;b.concat(c).forEach(function(a){a.parent=e;e.addMathmlNodes_(a.mathml)});return e};cvox.SemanticTree.prototype.makeImplicitNode_=function(a){if(1==a.length)return a[0];var b=this.createNode_();b.updateContent_(cvox.SemanticAttr.invisibleTimes());a=this.makeInfixNode_(a,b);a.role=cvox.SemanticAttr.Role.IMPLICIT;return a};
+cvox.SemanticTree.prototype.makeInfixNode_=function(a,b){return this.makeBranchNode_(cvox.SemanticAttr.Type.INFIXOP,a,[b],b.textContent)};cvox.SemanticTree.prototype.makeConcatNode_=function(a,b,c){if(0==b.length)return a;var d=b.map(function(a){return a.textContent}).join(" ");a=this.makeBranchNode_(c,[a],b,d);0<b.length&&(a.role=cvox.SemanticAttr.Role.MULTIOP);return a};
+cvox.SemanticTree.prototype.makePrefixNode_=function(a,b){for(var c=cvox.SemanticTree.partitionNodes_(b,cvox.SemanticTree.attrPred_("role","SUBTRACTION")),d=this.makeConcatNode_(a,c.comp.pop(),cvox.SemanticAttr.Type.PREFIXOP);0<c.rel.length;)d=this.makeConcatNode_(d,[c.rel.pop()],cvox.SemanticAttr.Type.PREFIXOP),d.role=cvox.SemanticAttr.Role.NEGATIVE,d=this.makeConcatNode_(d,c.comp.pop(),cvox.SemanticAttr.Type.PREFIXOP);return d};
+cvox.SemanticTree.prototype.makePostfixNode_=function(a,b){return this.makeConcatNode_(a,b,cvox.SemanticAttr.Type.POSTFIXOP)};cvox.SemanticTree.prototype.processRow_=function(a){if(0==a.length)return this.makeEmptyNode_();a=this.getFencesInRow_(a);a=this.processTablesInRow_(a);a=this.getPunctuationInRow_(a);a=this.getFunctionsInRow_(a);return this.processRelationsInRow_(a)};
+cvox.SemanticTree.prototype.processRelationsInRow_=function(a){var b=cvox.SemanticTree.partitionNodes_(a,cvox.SemanticTree.attrPred_("type","RELATION")),c=b.rel[0];if(!c)return this.processOperationsInRow_(a);if(1==a.length)return a[0];a=b.comp.map(goog.bind(this.processOperationsInRow_,this));return b.rel.every(function(a){return a.textContent==c.textContent})?this.makeBranchNode_(cvox.SemanticAttr.Type.RELSEQ,a,b.rel,c.textContent):this.makeBranchNode_(cvox.SemanticAttr.Type.MULTIREL,a,b.rel)};
+cvox.SemanticTree.prototype.processOperationsInRow_=function(a){if(0==a.length)return this.makeEmptyNode_();if(1==a.length)return a[0];for(var b=[];0<a.length&&a[0].type==cvox.SemanticAttr.Type.OPERATOR;)b.push(a.shift());if(0==a.length)return this.makePrefixNode_(b.pop(),b);if(1==a.length)return this.makePrefixNode_(a[0],b);a=cvox.SemanticTree.sliceNodes_(a,cvox.SemanticTree.attrPred_("type","OPERATOR"));b=this.makePrefixNode_(this.makeImplicitNode_(a.head),b);return a.div?this.makeOperationsTree_(a.tail,
+b,a.div):b};
+cvox.SemanticTree.prototype.makeOperationsTree_=function(a,b,c,d){d=d||[];if(0==a.length)return d.unshift(c),b.type==cvox.SemanticAttr.Type.INFIXOP?(d=this.makePostfixNode_(b.childNodes.pop(),d),b.appendChild_(d),b):this.makePostfixNode_(b,d);a=cvox.SemanticTree.sliceNodes_(a,cvox.SemanticTree.attrPred_("type","OPERATOR"));if(0==a.head.length)return d.push(a.div),this.makeOperationsTree_(a.tail,b,c,d);d=this.makePrefixNode_(this.makeImplicitNode_(a.head),d);b=this.appendOperand_(b,c,d);return a.div?
+this.makeOperationsTree_(a.tail,b,a.div,[]):b};cvox.SemanticTree.prototype.appendOperand_=function(a,b,c){return a.type!=cvox.SemanticAttr.Type.INFIXOP?this.makeInfixNode_([a,c],b):this.appendExistingOperator_(a,b,c)?a:b.role==cvox.SemanticAttr.Role.MULTIPLICATION?this.appendMultiplicativeOp_(a,b,c):this.appendAdditiveOp_(a,b,c)};
+cvox.SemanticTree.prototype.appendMultiplicativeOp_=function(a,b,c){for(var d=a,e=a.childNodes[a.childNodes.length-1];e&&e.type==cvox.SemanticAttr.Type.INFIXOP;)d=e,e=d.childNodes[a.childNodes.length-1];b=this.makeInfixNode_([d.childNodes.pop(),c],b);d.appendChild_(b);return a};cvox.SemanticTree.prototype.appendAdditiveOp_=function(a,b,c){return this.makeInfixNode_([a,c],b)};
+cvox.SemanticTree.prototype.appendExistingOperator_=function(a,b,c){if(!a||a.type!=cvox.SemanticAttr.Type.INFIXOP)return!1;if(a.textContent==b.textContent)return a.appendContentNode_(b),a.appendChild_(c),!0;this.appendExistingOperator_(a.childNodes[a.childNodes.length-1],b,c)};cvox.SemanticTree.prototype.getFencesInRow_=function(a){a=cvox.SemanticTree.partitionNodes_(a,cvox.SemanticTree.attrPred_("type","FENCE"));var b=a.comp.shift();return this.processFences_(a.rel,a.comp,[],[b])};
+cvox.SemanticTree.prototype.processFences_=function(a,b,c,d){if(0==a.length&&0==c.length)return d[0];var e=cvox.SemanticTree.attrPred_("role","OPEN");if(0==a.length){for(a=d.shift();0<c.length;){if(e(c[0]))b=c.shift(),cvox.SemanticTree.fenceToPunct_(b),a.push(b);else{c=cvox.SemanticTree.sliceNodes_(c,e);var f=c.head.length-1,g=this.processNeutralFences_(c.head,d.slice(0,f));d=d.slice(f);a.push.apply(a,g);c.div&&c.tail.unshift(c.div);c=c.tail}a.push.apply(a,d.shift())}return a}f=c[c.length-1];g=a[0].role;
+if(g==cvox.SemanticAttr.Role.OPEN||g==cvox.SemanticAttr.Role.NEUTRAL&&(!f||a[0].textContent!=f.textContent))return c.push(a.shift()),d.push(b.shift()),this.processFences_(a,b,c,d);if(f&&(g==cvox.SemanticAttr.Role.CLOSE&&f.role==cvox.SemanticAttr.Role.OPEN||g==cvox.SemanticAttr.Role.NEUTRAL&&a[0].textContent==f.textContent))return e=this.makeHorizontalFencedNode_(c.pop(),a.shift(),d.pop()),d.push(d.pop().concat([e],b.shift())),this.processFences_(a,b,c,d);if(f&&g==cvox.SemanticAttr.Role.CLOSE&&f.role==
+cvox.SemanticAttr.Role.NEUTRAL&&c.some(e))return c=cvox.SemanticTree.sliceNodes_(c,e,!0),e=d.pop(),f=d.length-c.tail.length+1,g=this.processNeutralFences_(c.tail,d.slice(f)),d=d.slice(0,f),e=this.makeHorizontalFencedNode_(c.div,a.shift(),d.pop().concat(g,e)),d.push(d.pop().concat([e],b.shift())),this.processFences_(a,b,c.head,d);e=a.shift();cvox.SemanticTree.fenceToPunct_(e);d.push(d.pop().concat([e],b.shift()));return this.processFences_(a,b,c,d)};
+cvox.SemanticTree.prototype.processNeutralFences_=function(a,b){if(0==a.length)return a;if(1==a.length)return cvox.SemanticTree.fenceToPunct_(a[0]),a;var c=a.shift(),d=cvox.SemanticTree.sliceNodes_(a,function(a){return a.textContent==c.textContent});if(!d.div){cvox.SemanticTree.fenceToPunct_(c);var e=b.shift();e.unshift(c);return e.concat(this.processNeutralFences_(a,b))}var f=this.combineFencedContent_(c,d.div,d.head,b);return 0<d.tail.length?(e=f.shift(),d=this.processNeutralFences_(d.tail,f),e.concat(d)):
+f[0]};cvox.SemanticTree.prototype.combineFencedContent_=function(a,b,c,d){if(0==c.length)return a=this.makeHorizontalFencedNode_(a,b,d.shift()),d.unshift(a),d;var e=d.shift(),f=c.length-1,g=d.slice(0,f);d=d.slice(f);f=d.shift();c=this.processNeutralFences_(c,g);e.push.apply(e,c);e.push.apply(e,f);a=this.makeHorizontalFencedNode_(a,b,e);0<d.length?d[0].unshift(a):d=[[a]];return d};
+cvox.SemanticTree.fenceToPunct_=function(a){a.type=cvox.SemanticAttr.Type.PUNCTUATION;switch(a.role){case cvox.SemanticAttr.Role.NEUTRAL:a.role=cvox.SemanticAttr.Role.VBAR;break;case cvox.SemanticAttr.Role.OPEN:a.role=cvox.SemanticAttr.Role.OPENFENCE;break;case cvox.SemanticAttr.Role.CLOSE:a.role=cvox.SemanticAttr.Role.CLOSEFENCE}};
+cvox.SemanticTree.prototype.makeHorizontalFencedNode_=function(a,b,c){c=this.processRow_(c);b=this.makeBranchNode_(cvox.SemanticAttr.Type.FENCED,[c],[a,b]);b.role=a.role==cvox.SemanticAttr.Role.OPEN?cvox.SemanticAttr.Role.LEFTRIGHT:a.role;return b};
+cvox.SemanticTree.prototype.getPunctuationInRow_=function(a){var b=cvox.SemanticTree.partitionNodes_(a,function(a){return cvox.SemanticTree.attrPred_("type","PUNCTUATION")(a)&&!cvox.SemanticTree.attrPred_("role","ELLIPSIS")(a)});if(0==b.rel.length)return a;a=[];var c=b.comp.shift();0<c.length&&a.push(this.processRow_(c));for(var d=0;0<b.comp.length;)a.push(b.rel[d++]),c=b.comp.shift(),0<c.length&&a.push(this.processRow_(c));return[this.makePunctuatedNode_(a,b.rel)]};
+cvox.SemanticTree.prototype.makePunctuatedNode_=function(a,b){var c=this.makeBranchNode_(cvox.SemanticAttr.Type.PUNCTUATED,a,b);c.role=1==b.length&&a[0].type==cvox.SemanticAttr.Type.PUNCTUATION?cvox.SemanticAttr.Role.STARTPUNCT:1==b.length&&a[a.length-1].type==cvox.SemanticAttr.Type.PUNCTUATION?cvox.SemanticAttr.Role.ENDPUNCT:cvox.SemanticAttr.Role.SEQUENCE;return c};
+cvox.SemanticTree.prototype.makeLimitNode_=function(a,b){var c=b[0],d=cvox.SemanticTree.attrPred_("type","FUNCTION")(c),d=cvox.SemanticTree.attrPred_("type","LARGEOP")(c)||cvox.SemanticTree.attrPred_("type","LIMBOTH")(c)||cvox.SemanticTree.attrPred_("type","LIMLOWER")(c)||cvox.SemanticTree.attrPred_("type","LIMUPPER")(c)||d&&cvox.SemanticTree.attrPred_("role","LIMFUNC")(c),e=cvox.SemanticAttr.Type.UNKNOWN;if(d)switch(a){case "MSUB":case "MUNDER":e=cvox.SemanticAttr.Type.LIMLOWER;break;case "MSUP":case "MOVER":e=
+cvox.SemanticAttr.Type.LIMUPPER;break;case "MSUBSUP":case "MUNDEROVER":e=cvox.SemanticAttr.Type.LIMBOTH}else switch(a){case "MSUB":e=cvox.SemanticAttr.Type.SUBSCRIPT;break;case "MSUP":e=cvox.SemanticAttr.Type.SUPERSCRIPT;break;case "MSUBSUP":d=this.makeBranchNode_(cvox.SemanticAttr.Type.SUBSCRIPT,[c,b[1]],[]);d.role=c.role;b=[d,b[2]];e=cvox.SemanticAttr.Type.SUPERSCRIPT;break;case "MOVER":e=cvox.SemanticAttr.Type.OVERSCORE;break;case "MUNDER":e=cvox.SemanticAttr.Type.UNDERSCORE;break;default:d=this.makeBranchNode_(cvox.SemanticAttr.Type.UNDERSCORE,
+[c,b[1]],[]),d.role=c.role,b=[d,b[2]],e=cvox.SemanticAttr.Type.OVERSCORE}d=this.makeBranchNode_(e,b,[]);d.role=c.role;return d};cvox.SemanticTree.prototype.getFunctionsInRow_=function(a,b){b=b||[];if(0==a.length)return b;var c=a.shift(),d=cvox.SemanticTree.classifyFunction_(c,a);if(!d)return b.push(c),this.getFunctionsInRow_(a,b);var e=this.getFunctionsInRow_(a,[]),c=this.getFunctionArgs_(c,e,d);return b.concat(c)};
+cvox.SemanticTree.classifyFunction_=function(a,b){if(a.type==cvox.SemanticAttr.Type.APPL||a.type==cvox.SemanticAttr.Type.BIGOP||a.type==cvox.SemanticAttr.Type.INTEGRAL)return"";if(b[0]&&b[0].textContent==cvox.SemanticAttr.functionApplication())return b.shift(),cvox.SemanticTree.propagatePrefixFunc_(a),"prefix";switch(a.role){case cvox.SemanticAttr.Role.INTEGRAL:return"integral";case cvox.SemanticAttr.Role.SUM:return"bigop";case cvox.SemanticAttr.Role.PREFIXFUNC:case cvox.SemanticAttr.Role.LIMFUNC:return"prefix";
+default:if(a.type==cvox.SemanticAttr.Type.IDENTIFIER)return"simple"}return""};cvox.SemanticTree.propagatePrefixFunc_=function(a){a&&(a.role=cvox.SemanticAttr.Role.PREFIXFUNC,cvox.SemanticTree.propagatePrefixFunc_(a.childNodes[0]))};
+cvox.SemanticTree.prototype.getFunctionArgs_=function(a,b,c){switch(c){case "integral":return b=this.getIntegralArgs_(b),c=this.processRow_(b.integrand),a=this.makeIntegralNode_(a,c,b.intvar),b.rest.unshift(a),b.rest;case "prefix":if(b[0]&&b[0].type==cvox.SemanticAttr.Type.FENCED)return a=this.makeFunctionNode_(a,b.shift()),b.unshift(a),b;case "bigop":b=cvox.SemanticTree.sliceNodes_(b,cvox.SemanticTree.prefixFunctionBoundary_);var d=this.processRow_(b.head);a="prefix"==c?this.makeFunctionNode_(a,
+d):this.makeBigOpNode_(a,d);b.div&&b.tail.unshift(b.div);b.tail.unshift(a);return b.tail;case "simple":if(0==b.length)return[a];c=b[0];if(c.type==cvox.SemanticAttr.Type.FENCED&&c.role!=cvox.SemanticAttr.Role.NEUTRAL&&this.simpleFunctionHeuristic_(c))return a=this.makeFunctionNode_(a,b.shift()),b.unshift(a),b;b.unshift(a);return b}};
+cvox.SemanticTree.prototype.getIntegralArgs_=function(a,b){b=b||[];if(0==a.length)return{integrand:b,intvar:null,rest:a};var c=a[0];if(cvox.SemanticTree.generalFunctionBoundary_(c))return{integrand:b,intvar:null,rest:a};if(cvox.SemanticTree.integralDxBoundarySingle_(c))return{integrand:b,intvar:c,rest:a.slice(1)};if(a[1]&&cvox.SemanticTree.integralDxBoundary_(c,a[1])){var d=this.createNode_();d.updateContent_(cvox.SemanticAttr.invisibleComma());c=this.makePunctuatedNode_([c,d,a[1]],[d]);c.role=cvox.SemanticAttr.Role.INTEGRAL;
+return{integrand:b,intvar:c,rest:a.slice(2)}}b.push(a.shift());return this.getIntegralArgs_(a,b)};cvox.SemanticTree.prototype.makeFunctionNode_=function(a,b){var c=this.createNode_();c.updateContent_(cvox.SemanticAttr.functionApplication());c.type=cvox.SemanticAttr.Type.PUNCTUATION;c.role=cvox.SemanticAttr.Role.APPLICATION;c=this.makeBranchNode_(cvox.SemanticAttr.Type.APPL,[a,b],[c]);c.role=a.role;return c};
+cvox.SemanticTree.prototype.makeBigOpNode_=function(a,b){var c=this.makeBranchNode_(cvox.SemanticAttr.Type.BIGOP,[a,b],[]);c.role=a.role;return c};cvox.SemanticTree.prototype.makeIntegralNode_=function(a,b,c){b=b||this.makeEmptyNode_();c=c||this.makeEmptyNode_();b=this.makeBranchNode_(cvox.SemanticAttr.Type.INTEGRAL,[a,b,c],[]);b.role=a.role;return b};
+cvox.SemanticTree.prototype.simpleFunctionHeuristic_=function(a){a=a.childNodes;if(0==a.length)return!0;if(1<a.length)return!1;a=a[0];return a.type!=cvox.SemanticAttr.Type.INFIXOP||a.role==cvox.SemanticAttr.Role.IMPLICIT&&!a.childNodes.some(cvox.SemanticTree.attrPred_("type","INFIXOP"))?!0:!1};cvox.SemanticTree.prefixFunctionBoundary_=function(a){return cvox.SemanticTree.attrPred_("type","OPERATOR")(a)||cvox.SemanticTree.generalFunctionBoundary_(a)};
+cvox.SemanticTree.integralDxBoundary_=function(a,b){return!!b&&cvox.SemanticTree.attrPred_("type","IDENTIFIER")(b)&&cvox.SemanticAttr.isCharacterD(a.textContent)};cvox.SemanticTree.integralDxBoundarySingle_=function(a){if(cvox.SemanticTree.attrPred_("type","IDENTIFIER")(a)){var b=a.textContent[0];return b&&a.textContent[1]&&cvox.SemanticAttr.isCharacterD(b)}return!1};
+cvox.SemanticTree.generalFunctionBoundary_=function(a){return cvox.SemanticTree.attrPred_("type","RELATION")(a)||cvox.SemanticTree.attrPred_("type","PUNCTUATION")(a)};
+cvox.SemanticTree.prototype.processTablesInRow_=function(a){a=cvox.SemanticTree.partitionNodes_(a,cvox.SemanticTree.tableIsMatrixOrVector_);for(var b=[],c=0,d;d=a.rel[c];c++)b=b.concat(a.comp.shift()),b.push(this.tableToMatrixOrVector_(d));b=b.concat(a.comp.shift());a=cvox.SemanticTree.partitionNodes_(b,cvox.SemanticTree.isTableOrMultiline_);b=[];for(c=0;d=a.rel[c];c++){var e=a.comp.shift();cvox.SemanticTree.tableIsCases_(d,e)&&this.tableToCases_(d,e.pop());b=b.concat(e);b.push(d)}return b.concat(a.comp.shift())};
+cvox.SemanticTree.isTableOrMultiline_=function(a){return!!a&&(cvox.SemanticTree.attrPred_("type","TABLE")(a)||cvox.SemanticTree.attrPred_("type","MULTILINE")(a))};cvox.SemanticTree.tableIsMatrixOrVector_=function(a){return!!a&&cvox.SemanticTree.attrPred_("type","FENCED")(a)&&cvox.SemanticTree.attrPred_("role","LEFTRIGHT")(a)&&1==a.childNodes.length&&cvox.SemanticTree.isTableOrMultiline_(a.childNodes[0])};
+cvox.SemanticTree.prototype.tableToMatrixOrVector_=function(a){var b=a.childNodes[0],c=cvox.SemanticTree.attrPred_("type","MULTILINE")(b)?"VECTOR":"MATRIX";b.type=cvox.SemanticAttr.Type[c];a.contentNodes.forEach(goog.bind(b.appendContentNode_,b));a=0;for(var d;d=b.childNodes[a];a++)cvox.SemanticTree.assignRoleToRow_(d,cvox.SemanticAttr.Role[c]);return b};cvox.SemanticTree.tableIsCases_=function(a,b){return 0<b.length&&cvox.SemanticTree.attrPred_("role","OPENFENCE")(b[b.length-1])};
+cvox.SemanticTree.prototype.tableToCases_=function(a,b){for(var c=0,d;d=a.childNodes[c];c++)cvox.SemanticTree.assignRoleToRow_(d,cvox.SemanticAttr.Role.CASES);a.type=cvox.SemanticAttr.Type.CASES;a.appendContentNode_(b);return a};cvox.SemanticTree.tableIsMultiline_=function(a){return a.childNodes.every(function(a){a=a.childNodes.length;return 1>=a})};
+cvox.SemanticTree.prototype.tableToMultiline_=function(a){a.type=cvox.SemanticAttr.Type.MULTILINE;for(var b=0,c;c=a.childNodes[b];b++)cvox.SemanticTree.rowToLine_(c,cvox.SemanticAttr.Role.MULTILINE)};cvox.SemanticTree.rowToLine_=function(a,b){b=b||cvox.SemanticAttr.Role.UNKNOWN;cvox.SemanticTree.attrPred_("type","ROW")(a)&&1==a.childNodes.length&&cvox.SemanticTree.attrPred_("type","CELL")(a.childNodes[0])&&(a.type=cvox.SemanticAttr.Type.LINE,a.role=b,a.childNodes=a.childNodes[0].childNodes)};
+cvox.SemanticTree.assignRoleToRow_=function(a,b){if(cvox.SemanticTree.attrPred_("type","LINE")(a))a.role=b;else if(cvox.SemanticTree.attrPred_("type","ROW")(a)){a.role=b;var c=cvox.SemanticTree.attrPred_("type","CELL");a.childNodes.forEach(function(a){c(a)&&(a.role=b)})}};
+cvox.SemanticTree.sliceNodes_=function(a,b,c){c&&a.reverse();for(var d=[],e=0,f;f=a[e];e++){if(b(f))return c?{head:a.slice(e+1).reverse(),div:f,tail:d.reverse()}:{head:d,div:f,tail:a.slice(e+1)};d.push(f)}return c?{head:[],div:null,tail:d.reverse()}:{head:d,div:null,tail:[]}};cvox.SemanticTree.partitionNodes_=function(a,b){var c=a,d=[],e=[];do{var f=cvox.SemanticTree.sliceNodes_(c,b);e.push(f.head);d.push(f.div);c=f.tail}while(f.div);d.pop();return{rel:d,comp:e}};
+cvox.SemanticTree.attrPred_=function(a,b){return function(c){var d;o:{switch(a){case "type":d=cvox.SemanticAttr.Type[b];break o;case "role":d=cvox.SemanticAttr.Role[b];break o;case "font":d=cvox.SemanticAttr.Font[b];break o}d=void 0}return c[a]==d}};cvox.TraverseMath=function(){this.activeNode=this.activeMath=null;this.allTexs_={};this.allMathjaxs_={};this.activeMathmlHost=null;this.domain="default";this.style="short";cvox.ChromeVox.mathJax&&(this.initializeMathjaxs(),this.initializeAltMaths())};goog.addSingletonGetter(cvox.TraverseMath);cvox.TraverseMath.setSemantic_=!1;cvox.TraverseMath.toggleSemantic=function(){return cvox.TraverseMath.setSemantic_=!cvox.TraverseMath.setSemantic_};
+cvox.TraverseMath.prototype.initialize=function(a){if(cvox.DomUtil.isMathImg(a)){if(!a.hasAttribute("cvoxid"))return;a=a.getAttribute("cvoxid");a=this.allTexs_[a]}cvox.DomUtil.isMathJax(a)&&(this.activeMathmlHost=this.allMathjaxs_[a.getAttribute("id")]);this.activeMath=this.activeMathmlHost||a;(this.activeNode=this.activeMathmlHost||a)&&cvox.TraverseMath.setSemantic_&&this.activeNode.nodeType==Node.ELEMENT_NODE&&(this.activeNode=(new cvox.SemanticTree(this.activeNode)).xml())};
+cvox.TraverseMath.prototype.addMathjax=function(a,b){var c=cvox.DomUtil.getMathSpanId(b);c?this.allMathjaxs_[c]=a:this.redoMathjaxs(a,b)};cvox.TraverseMath.prototype.redoMathjaxs=function(a,b){var c=goog.bind(function(){this.addMathjax(a,b)},this);setTimeout(c,500)};
+cvox.TraverseMath.prototype.initializeMathjaxs=function(){var a=goog.bind(function(a,c){this.addMathjax(a,c)},this);cvox.ChromeVox.mathJax.isMathjaxActive(function(b){b&&(cvox.ChromeVox.mathJax.getAllJax(a),cvox.ChromeVox.mathJax.registerSignal(a,"New Math"))})};
+cvox.TraverseMath.prototype.initializeAltMaths=function(){if(document.querySelector(cvox.DomUtil.altMathQuerySelector("tex")+", "+cvox.DomUtil.altMathQuerySelector("asciimath"))){var a=goog.bind(function(a,c){this.allTexs_[c]=a},this);cvox.ChromeVox.mathJax.injectScripts();cvox.ChromeVox.mathJax.isMathjaxActive(function(b){b&&(cvox.ChromeVox.mathJax.configMediaWiki(),cvox.ChromeVox.mathJax.getAllTexs(a),cvox.ChromeVox.mathJax.getAllAsciiMaths(a))})}};
+cvox.TraverseMath.prototype.nextSibling=function(a){if(!this.activeNode||!this.activeMath)return null;var b=this.activeNode,b=a?b.previousSibling:b.nextSibling;return b?this.activeNode=b:null};cvox.TraverseMath.prototype.nextParentChild=function(a){if(!this.activeNode||!this.activeMath||this.activeNode==this.activeMath&&a)return null;var b=this.activeNode,b=a?b.parentNode:b.firstChild;return b?this.activeNode=b:null};
+cvox.TraverseMath.prototype.getAttachedActiveNode=function(){var a=this.activeNode;if(!a||a.nodeType!=Node.ELEMENT_NODE)return null;a=a.getAttribute("spanID");return document.getElementById(a)};cvox.MathUtil={};cvox.MathUtil.isMathmlNodeOfClass_=function(a,b){return-1!=b.indexOf(a.tagName.toUpperCase())};cvox.MathUtil.isMathjaxNodeOfClass_=function(a,b){if("SPAN"==a.tagName){var c=a.className.split(" ");return c.some(function(a){return-1!=b.indexOf(a.toUpperCase())})}return!1};cvox.MathUtil.isMathNodeOfClass_=function(a,b){return a.nodeType==Node.ELEMENT_NODE&&(cvox.MathUtil.isMathmlNodeOfClass_(a,b)||cvox.MathUtil.isMathjaxNodeOfClass_(a,b))};cvox.MathUtil.TOKEN_LIST="MI MN MO MTEXT MSPACE MS".split(" ");
+cvox.MathUtil.isToken=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.TOKEN_LIST)};cvox.MathUtil.LAYOUT_LIST="MROW MFRAC MSQRT MROOT MSTYLE MERROR MPADDED MPHANTOM MFENCED MENCLOSE".split(" ");cvox.MathUtil.isLayout=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.LAYOUT_LIST)};cvox.MathUtil.SCRIPT_LIST="MSUB MSUP MSUBSUP MUNDER MOVER MUNDEROVER MMULTISCRIPTS MPRESCRIPTS".split(" ");
+cvox.MathUtil.isScript=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.SCRIPT_LIST)};cvox.MathUtil.TABLES_LIST="MTABLE MLABELEDTR MTR MTD MALIGNGROUP MALIGNMARK".split(" ");cvox.MathUtil.isTables=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.TABLES_LIST)};cvox.MathUtil.ELEMENTARY_LIST="MSTACK MLONGDIV MSGROUP MSROW MSCARRIES MSCARRY MSLINE".split(" ");cvox.MathUtil.isElementary=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.ELEMENTARY_LIST)};
+cvox.MathUtil.MATHML_TAG_LIST=[cvox.MathUtil.TOKEN_LIST,cvox.MathUtil.LAYOUT_LIST,cvox.MathUtil.SCRIPT_LIST,cvox.MathUtil.TABLES_LIST,cvox.MathUtil.ELEMENTARY_LIST].reduce(function(a,b){return a.concat(b)});cvox.MathUtil.isMathmlTag=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.MATHML_TAG_LIST)};cvox.MathUtil.WHITESPACE_LIST=["MSROW","MROW","MSPACE","MPHANTOM","MPADDED"];cvox.MathUtil.isWhitespace=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.WHITESPACE_LIST)};
+cvox.MathUtil.isNotWhitespace=function(a){return cvox.MathUtil.isMathmlTag(a)&&!cvox.MathUtil.isWhitespace(a)};cvox.MathUtil.union=function(a,b){return a.concat(b.filter(function(b){return 0>a.indexOf(b)}))};cvox.SpeechRule=function(a,b,c,d){this.name=a;this.dynamicCstr=b;this.precondition=c;this.action=d};cvox.SpeechRule.prototype.toString=function(){var a=[],b;for(b in this.dynamicCstr)a.push(this.dynamicCstr[b]);return this.name+" | "+a.join(".")+" | "+this.precondition.toString()+" ==> "+this.action.toString()};cvox.SpeechRule.Type={NODE:"NODE",MULTI:"MULTI",TEXT:"TEXT",PERSONALITY:"PERSONALITY"};
+cvox.SpeechRule.Type.fromString=function(a){switch(a){case "[n]":return cvox.SpeechRule.Type.NODE;case "[m]":return cvox.SpeechRule.Type.MULTI;case "[t]":return cvox.SpeechRule.Type.TEXT;case "[p]":return cvox.SpeechRule.Type.PERSONALITY;default:throw"Parse error: "+a;}};
+cvox.SpeechRule.Type.toString=function(a){switch(a){case cvox.SpeechRule.Type.NODE:return"[n]";case cvox.SpeechRule.Type.MULTI:return"[m]";case cvox.SpeechRule.Type.TEXT:return"[t]";case cvox.SpeechRule.Type.PERSONALITY:return"[p]";default:throw"Unknown type error: "+a;}};cvox.SpeechRule.Component=function(a){this.type=a.type;this.content=a.content};
+cvox.SpeechRule.Component.fromString=function(a){var b={};b.type=cvox.SpeechRule.Type.fromString(a.substring(0,3));a=a.slice(3).trimLeft();if(!a)throw new cvox.SpeechRule.OutputError("Missing content.");switch(b.type){case cvox.SpeechRule.Type.TEXT:if('"'==a[0]){var c=cvox.SpeechRule.splitString_(a,"\\(")[0].trim();if('"'!=c.slice(-1))throw new cvox.SpeechRule.OutputError("Invalid string syntax.");b.content=c;a=a.slice(c.length).trim();-1==a.indexOf("(")&&(a="");break}case cvox.SpeechRule.Type.NODE:case cvox.SpeechRule.Type.MULTI:c=
+a.indexOf(" (");if(-1==c){b.content=a.trim();a="";break}b.content=a.substring(0,c).trim();a=a.slice(c).trimLeft()}b=new cvox.SpeechRule.Component(b);a&&b.addAttributes(a);return b};cvox.SpeechRule.Component.prototype.toString=function(){var a="",a=a+cvox.SpeechRule.Type.toString(this.type),a=a+(this.content?" "+this.content:""),b=this.getAttributes();0<b.length&&(a+=" ("+b.join(", ")+")");return a};
+cvox.SpeechRule.Component.prototype.addAttribute=function(a){var b=a.indexOf(":");-1==b?this[a.trim()]="true":this[a.substring(0,b).trim()]=a.slice(b+1).trim()};cvox.SpeechRule.Component.prototype.addAttributes=function(a){if("("!=a[0]||")"!=a.slice(-1))throw new cvox.SpeechRule.OutputError("Invalid attribute expression: "+a);a=cvox.SpeechRule.splitString_(a.slice(1,-1),",");for(var b=0;b<a.length;b++)this.addAttribute(a[b])};
+cvox.SpeechRule.Component.prototype.getAttributes=function(){var a=[],b;for(b in this)"content"!=b&&"type"!=b&&"function"!=typeof this[b]&&a.push(b+":"+this[b]);return a};cvox.SpeechRule.Action=function(a){this.components=a};cvox.SpeechRule.Action.fromString=function(a){a=cvox.SpeechRule.splitString_(a,";").filter(function(a){return a.match(/\S/)}).map(function(a){return a.trim()});for(var b=[],c=0;c<a.length;c++){var d=cvox.SpeechRule.Component.fromString(a[c]);d&&b.push(d)}return new cvox.SpeechRule.Action(b)};
+cvox.SpeechRule.Action.prototype.toString=function(){var a=this.components.map(function(a){return a.toString()});return a.join("; ")};cvox.SpeechRule.Precondition=function(a,b){this.query=a;this.constraints=b||[]};cvox.SpeechRule.Precondition.prototype.toString=function(){var a=this.constraints.join(", ");return this.query+", "+a};
+cvox.SpeechRule.splitString_=function(a,b){for(var c=[],d="";""!=a;){var e=a.search(b);if(-1==e){if(0!=(a.match(/"/g)||[]).length%2)throw new cvox.SpeechRule.OutputError("Invalid string in expression: "+a);c.push(d+a);a=d=""}else if(0==(a.substring(0,e).match(/"/g)||[]).length%2)c.push(d+a.substring(0,e)),d="",a=a.substring(e+1);else{var f=a.substring(e).search('"');if(-1==f)throw new cvox.SpeechRule.OutputError("Invalid string in expression: "+a);d+=a.substring(0,e+f+1);a=a.substring(e+f+1)}}d&&
+c.push(d);return c};cvox.SpeechRule.DynamicCstrAttrib={STYLE:"style"};cvox.SpeechRule.OutputError=function(a){this.name="RuleError";this.message=a||""};goog.inherits(cvox.SpeechRule.OutputError,Error);cvox.SpeechRuleFunctions=function(){};cvox.SpeechRuleFunctions.Store_=function(a,b){this.prefix_=a;this.store_=b};cvox.SpeechRuleFunctions.Store_.prototype.add=function(a,b){this.checkCustomFunctionSyntax_(a)&&(this.store_[a]=b)};cvox.SpeechRuleFunctions.Store_.prototype.lookup=function(a){return this.store_[a]};cvox.SpeechRuleFunctions.CustomQueries=function(){var a={};cvox.SpeechRuleFunctions.Store_.call(this,"CQF",a)};goog.inherits(cvox.SpeechRuleFunctions.CustomQueries,cvox.SpeechRuleFunctions.Store_);
+cvox.SpeechRuleFunctions.CustomStrings=function(){var a={};cvox.SpeechRuleFunctions.Store_.call(this,"CSF",a)};goog.inherits(cvox.SpeechRuleFunctions.CustomStrings,cvox.SpeechRuleFunctions.Store_);cvox.SpeechRuleFunctions.ContextFunctions=function(){var a={};cvox.SpeechRuleFunctions.Store_.call(this,"CTXF",a)};goog.inherits(cvox.SpeechRuleFunctions.ContextFunctions,cvox.SpeechRuleFunctions.Store_);
+cvox.SpeechRuleFunctions.Store_.prototype.checkCustomFunctionSyntax_=function(a){var b=RegExp("^"+this.prefix_);return a.match(b)?!0:(console.log("FunctionError: Invalid function name. Expected prefix"+this.prefix_),!1)};cvox.BaseRuleStore=function(){this.customQueries=new cvox.SpeechRuleFunctions.CustomQueries;this.customStrings=new cvox.SpeechRuleFunctions.CustomStrings;this.contextFunctions=new cvox.SpeechRuleFunctions.ContextFunctions;this.speechRules_=[];this.dynamicCstrAttribs=[cvox.SpeechRule.DynamicCstrAttrib.STYLE];this.defaultTtsProps=[]};
+cvox.BaseRuleStore.prototype.lookupRule=function(a,b){if(!a||a.nodeType!=Node.ELEMENT_NODE&&a.nodeType!=Node.TEXT_NODE)return null;var c=this.speechRules_.filter(goog.bind(function(c){return this.testDynamicConstraints(b,c)&&this.testPrecondition_(a,c)},this));return 0<c.length?this.pickMostConstraint_(b,c):null};
+cvox.BaseRuleStore.prototype.defineRule=function(a,b,c,d,e){try{var f=cvox.SpeechRule.Action.fromString(c),g=Array.prototype.slice.call(arguments,4),h=new cvox.SpeechRule.Precondition(d,g),g={};g[cvox.SpeechRule.DynamicCstrAttrib.STYLE]=b;var k=new cvox.SpeechRule(a,g,h,f)}catch(l){if("RuleError"==l.name)return console.log("Rule Error ",d,"("+b+"):",l.message),null;throw l;}this.addRule(k);return k};cvox.BaseRuleStore.prototype.addRule=function(a){this.speechRules_.unshift(a)};
+cvox.BaseRuleStore.prototype.deleteRule=function(a){a=this.speechRules_.indexOf(a);-1!=a&&this.speechRules_.splice(a,1)};cvox.BaseRuleStore.prototype.findRule=function(a){for(var b=0,c;c=this.speechRules_[b];b++)if(a(c))return c;return null};cvox.BaseRuleStore.prototype.findAllRules=function(a){return this.speechRules_.filter(a)};cvox.BaseRuleStore.prototype.evaluateDefault=function(a){return[new cvox.NavDescription({text:a.textContent})]};
+cvox.BaseRuleStore.prototype.removeDuplicates=function(a){for(var b=this.speechRules_.length-1,c;c=this.speechRules_[b];b--)c!=a&&cvox.BaseRuleStore.compareDynamicConstraints_(c.dynamicCstr,a.dynamicCstr)&&cvox.BaseRuleStore.comparePreconditions_(c,a)&&this.speechRules_.splice(b,1)};cvox.BaseRuleStore.prototype.applyCustomQuery=function(a,b){var c=this.customQueries.lookup(b);return c?c(a):null};
+cvox.BaseRuleStore.prototype.applySelector=function(a,b){var c=this.applyCustomQuery(a,b);return c||cvox.XpathUtil.evalXPath(b,a)};cvox.BaseRuleStore.prototype.applyQuery=function(a,b){var c=this.applySelector(a,b);return 0<c.length?c[0]:null};cvox.BaseRuleStore.prototype.applyConstraint=function(a,b){var c=this.applyQuery(a,b);return!!c||cvox.XpathUtil.evaluateBoolean(b,a)};
+cvox.BaseRuleStore.prototype.testDynamicConstraints=function(a,b){var c=Object.keys(a);return c.every(function(c){return a[c]==b.dynamicCstr[c]||"default"==b.dynamicCstr[c]})};cvox.BaseRuleStore.prototype.getDynamicConstraintValues=function(){for(var a={},b=0,c;c=this.speechRules_[b];b++)for(var d in c.dynamicCstr){var e=[c.dynamicCstr[d]];a[d]=a[d]?cvox.MathUtil.union(a[d],e):e}return a};
+cvox.BaseRuleStore.prototype.countMatchingDynamicConstraintValues_=function(a,b){for(var c=0,d=0,e;e=this.dynamicCstrAttribs[d];d++)if(a[e]==b.dynamicCstr[e])c++;else break;return c};cvox.BaseRuleStore.prototype.pickMostConstraint_=function(a,b){b.sort(goog.bind(function(b,d){var e=this.countMatchingDynamicConstraintValues_(a,b),f=this.countMatchingDynamicConstraintValues_(a,d);return e>f?-1:f>e?1:d.precondition.constraints.length-b.precondition.constraints.length},this));return b[0]};
+cvox.BaseRuleStore.prototype.testPrecondition_=function(a,b){var c=b.precondition;return this.applyQuery(a,c.query)===a&&c.constraints.every(goog.bind(function(b){return this.applyConstraint(a,b)},this))};cvox.BaseRuleStore.compareDynamicConstraints_=function(a,b){if(Object.keys(a).length!=Object.keys(b).length)return!1;for(var c in a)if(!b[c]||a[c]!==b[c])return!1;return!0};
+cvox.BaseRuleStore.compareStaticConstraints_=function(a,b){if(a.length!=b.length)return!1;for(var c=0,d;d=a[c];c++)if(-1==b.indexOf(d))return!1;return!0};cvox.BaseRuleStore.comparePreconditions_=function(a,b){var c=a.precondition,d=b.precondition;return c.query!=d.query?!1:cvox.BaseRuleStore.compareStaticConstraints_(c.constraints,d.constraints)};cvox.MathStore=function(){cvox.BaseRuleStore.call(this);this.dynamicCstrAttribs=[cvox.SpeechRule.DynamicCstrAttrib.DOMAIN,cvox.SpeechRule.DynamicCstrAttrib.STYLE];this.defaultTtsProps=[cvox.AbstractTts.PITCH,cvox.AbstractTts.RATE]};goog.inherits(cvox.MathStore,cvox.BaseRuleStore);cvox.SpeechRule.DynamicCstrAttrib.DOMAIN="domain";
+cvox.MathStore.prototype.defineRule=function(a,b,c,d,e){var f=this.parseDynamicConstraint(b),g=Array.prototype.slice.call(arguments,4),g=cvox.MathStore.superClass_.defineRule.apply(this,[a,f[cvox.SpeechRule.DynamicCstrAttrib.STYLE],c,d].concat(g));g.dynamicCstr=f;this.removeDuplicates(g);return g};
+cvox.MathStore.prototype.parseDynamicConstraint=function(a){var b=a.split(".");if(!b[0]||!b[1])throw new cvox.SpeechRule.OutputError("Invalid domain assignment:"+a);return cvox.MathStore.createDynamicConstraint(b[0],b[1])};cvox.MathStore.createDynamicConstraint=function(a,b){var c={};c[cvox.SpeechRule.DynamicCstrAttrib.DOMAIN]=a;c[cvox.SpeechRule.DynamicCstrAttrib.STYLE]=b;return c};
+cvox.MathStore.prototype.defineRuleAlias=function(a,b,c){var d=this.findRule(function(b){return b.name==a});if(!d)throw new cvox.SpeechRule.OutputError("Rule with named "+a+" does not exist.");this.addAlias_(d,b,Array.prototype.slice.call(arguments,2))};cvox.MathStore.prototype.addAlias_=function(a,b,c){b=new cvox.SpeechRule.Precondition(b,c);b=new cvox.SpeechRule(a.name,a.dynamicCstr,b,a.action);b.name=a.name;this.addRule(b)};cvox.MathStore.prototype.evaluateDefault=function(a){return this.evaluateString_(a.textContent)};
+cvox.MathStore.prototype.evaluateString_=function(a){var b=[];if(a.match(/^\s+$/))return b;a=cvox.MathStore.removeEmpty_(a.replace(/\s/g," ").split(" "));for(var c=0,d;d=a[c];c++)if(1==d.length)b.push(this.evaluate_(d));else if(d.match(/^[a-zA-Z]+$/))b.push(this.evaluate_(d));else for(;d;){var e=d.match(/^\d+/),f=d.match(/^[a-zA-Z]+/);e?(b.push(this.evaluate_(e[0])),d=d.substring(e[0].length)):f?(b.push(this.evaluate_(f[0])),d=d.substring(f[0].length)):(e=d[0],e=e.charCodeAt(0),55296<=e&&56319>=e&&
+1<d.length&&!isNaN(d.charCodeAt(1))?(b.push(this.evaluate_(d.slice(0,2))),d=d.substring(2)):(b.push(this.evaluate_(d[0])),d=d.substring(1)))}return b};cvox.MathStore.prototype.evaluate_=function(a){return cvox.ChromeVox.host.mathMap?cvox.ChromeVox.host.mathMap.evaluate(a,cvox.TraverseMath.getInstance().domain,cvox.TraverseMath.getInstance().style):new cvox.NavMathDescription({text:a,domain:cvox.TraverseMath.getInstance().domain,style:cvox.TraverseMath.getInstance().style})};
+cvox.MathStore.removeEmpty_=function(a){return a.filter(function(a){return a})};cvox.MathmlStore=function(){cvox.MathStore.call(this)};goog.inherits(cvox.MathmlStore,cvox.MathStore);goog.addSingletonGetter(cvox.MathmlStore);cvox.MathmlStore.prototype.defineDefaultMathmlRule=function(a,b){this.defineRule(a,"default.default",b,"self::mathml:"+a)};cvox.SpeechRuleEngine=function(){this.activeStore_=null;this.dynamicCstr={};this.dynamicCstr[cvox.SpeechRule.DynamicCstrAttrib.STYLE]="short"};goog.addSingletonGetter(cvox.SpeechRuleEngine);cvox.SpeechRuleEngine.prototype.parameterize=function(a){try{a.initialize()}catch(b){if("StoreError"==b.name)console.log("Store Error:",b.message);else throw b;}this.activeStore_=a};cvox.SpeechRuleEngine.prototype.setDynamicConstraint=function(a){a&&(this.dynamicCstr=a)};
+cvox.SpeechRuleEngine.prototype.constructString=function(a,b){if(!b)return"";if('"'==b.charAt(0))return b.slice(1,-1);var c=this.activeStore_.customStrings.lookup(b);return c?c(a):cvox.XpathUtil.evaluateString(b,a)};cvox.SpeechRuleEngine.prototype.evaluateNode=function(a){return a?this.evaluateTree_(a):[]};
+cvox.SpeechRuleEngine.prototype.evaluateTree_=function(a){var b=this.activeStore_.lookupRule(a,this.dynamicCstr);if(!b)return this.activeStore_.evaluateDefault(a);for(var b=b.action.components,c=[],d=0,e;e=b[d];d++){var f=[],g=e.content||"";switch(e.type){case cvox.SpeechRule.Type.NODE:(g=this.activeStore_.applyQuery(a,g))&&(f=this.evaluateTree_(g));break;case cvox.SpeechRule.Type.MULTI:g=this.activeStore_.applySelector(a,g);0<g.length&&(f=this.evaluateNodeList_(g,e.sepFunc,this.constructString(a,
+e.separator),e.ctxtFunc,this.constructString(a,e.context)));break;case cvox.SpeechRule.Type.TEXT:(g=this.constructString(a,g))&&(f=[new cvox.NavDescription({text:g})]);break;default:f=[new cvox.NavDescription({text:g})]}f[0]&&e.context&&e.type!=cvox.SpeechRule.Type.MULTI&&(f[0].context=this.constructString(a,e.context)+(f[0].context||""));c=c.concat(this.addPersonality_(f,e))}return c};
+cvox.SpeechRuleEngine.prototype.evaluateNodeList_=function(a,b,c,d,e){if(a==[])return[];var f=c||"",g=e||"";c=(c=this.activeStore_.contextFunctions.lookup(d))?c(a,g):function(){return g};b=(b=this.activeStore_.contextFunctions.lookup(b))?b(a,f):function(){return f};d=[];e=0;for(var h;h=a[e];e++)h=this.evaluateTree_(h),0<h.length&&(h[0].context=c()+(h[0].context||""),d=d.concat(h),e<a.length-1&&(h=b())&&d.push(new cvox.NavDescription({text:h})));return d};
+cvox.SpeechRuleEngine.propMap={pitch:cvox.AbstractTts.RELATIVE_PITCH,rate:cvox.AbstractTts.RELATIVE_RATE,volume:cvox.AbstractTts.RELATIVE_VOLUME,pause:cvox.AbstractTts.PAUSE};cvox.SpeechRuleEngine.prototype.addPersonality_=function(a,b){var c={},d;for(d in cvox.SpeechRuleEngine.propMap){var e=parseFloat(b[d]);isNaN(e)||(c[cvox.SpeechRuleEngine.propMap[d]]=e)}a.forEach(goog.bind(function(a){this.addRelativePersonality_(a,c);this.resetPersonality_(a)},this));return a};
+cvox.SpeechRuleEngine.prototype.addRelativePersonality_=function(a,b){if(!a.personality)return a.personality=b,a;var c=a.personality,d;for(d in b)c[d]=c[d]&&"number"==typeof c[d]?c[d]+b[d]:b[d];return a};cvox.SpeechRuleEngine.prototype.resetPersonality_=function(a){if(this.activeStore_.defaultTtsProps)for(var b=0,c;c=this.activeStore_.defaultTtsProps[b];b++)a.personality[c]=cvox.ChromeVox.tts.getDefaultProperty(c)};cvox.SpeechRuleEngine.debugMode=!1;
+cvox.SpeechRuleEngine.outputDebug=function(a){if(cvox.SpeechRuleEngine.debugMode){var b=Array.prototype.slice.call(arguments,0);console.log.apply(console,["Speech Rule Engine Debugger:"].concat(b))}};cvox.SpeechRuleEngine.prototype.toString=function(){var a=this.activeStore_.findAllRules(function(){return!0});return a.map(function(a){return a.toString()}).join("\n")};
+cvox.SpeechRuleEngine.debugSpeechRule=function(a,b){var c=cvox.SpeechRuleEngine.getInstance().activeStore_;if(c){var d=a.precondition;cvox.SpeechRuleEngine.outputDebug(d.query,c.applyQuery(b,d.query));d.constraints.forEach(function(a){cvox.SpeechRuleEngine.outputDebug(a,c.applyConstraint(b,a))})}};
+cvox.SpeechRuleEngine.debugNamedSpeechRule=function(a,b){for(var c=cvox.SpeechRuleEngine.getInstance().activeStore_,c=c.findAllRules(function(b){return b.name==a}),d=0,e;e=c[d];d++)cvox.SpeechRuleEngine.outputDebug("Rule",a,"number",d),cvox.SpeechRuleEngine.debugSpeechRule(e,b)};cvox.AbstractWalker=function(){};cvox.AbstractWalker.prototype.begin=function(a){a=a||{reversed:!1};return this.sync(cvox.CursorSelection.fromBody().setReversed(a.reversed))};cvox.AbstractWalker.prototype.hasAction=function(a){return"function"==typeof this[a]};cvox.AbstractWalker.prototype.performAction=function(a,b){return this.hasAction(a)?this[a](b):null};cvox.AbstractNodeWalker=function(){this.wasBegin_=!1};goog.inherits(cvox.AbstractNodeWalker,cvox.AbstractWalker);cvox.AbstractNodeWalker.prototype.next=function(a){var b=a.isReversed();a=a.end.node||document.body;do if(a=cvox.DomUtil.directedNextLeafLikeNode(a,b,goog.bind(this.stopNodeDescent,this)),!a)return null;while(a&&!cvox.DomUtil.hasContent(a));return cvox.CursorSelection.fromNode(a).setReversed(b)};
+cvox.AbstractNodeWalker.prototype.sync=function(a){a=this.privateSync_(a);this.wasBegin_=!1;return a};
+cvox.AbstractNodeWalker.prototype.privateSync_=function(a){var b=a.isReversed();if(a.equals(cvox.CursorSelection.fromBody())){if(this.wasBegin_)return cvox.CursorSelection.fromBody().setReversed(b);this.wasBegin_=!0}for(a=a.start.node;a!=document.body&&a.parentNode&&this.stopNodeDescent(a.parentNode);)a=a.parentNode;for(;!this.stopNodeDescent(a);)a=cvox.DomUtil.directedFirstChild(a,b);var c=cvox.CursorSelection.fromNode(a);cvox.DomUtil.hasContent(a)||(c=this.next(cvox.CursorSelection.fromNode(a).setReversed(b)));
+return c?c.setReversed(b):this.begin({reversed:b})};cvox.BareObjectWalker=function(){cvox.AbstractNodeWalker.call(this)};goog.inherits(cvox.BareObjectWalker,cvox.AbstractNodeWalker);cvox.BareObjectWalker.prototype.stopNodeDescent=function(a){return cvox.DomUtil.isLeafNode(a)};cvox.AuralStyleConverter={};cvox.AuralStyleUtil={};
+cvox.AuralProperty={VOLUME:"VOLUME",SPEAK:"SPEAK",PAUSE_BEFORE:"PAUSE_BEFORE",PAUSE_AFTER:"PAUSE_AFTER",PAUSE:"PAUSE",CUE_BEFORE:"CUE_BEFORE",CUE_AFTER:"CUE_AFTER",CUE:"CUE",PLAY_DURING:"PLAY_DURING",AZIMUTH:"AZIMUTH",ELEVATION:"ELEVATION",SPEECH_RATE:"SPEECH_RATE",VOICE_FAMILY:"VOICE_FAMILY",PITCH:"PITCH",PITCH_RANGE:"PITCH_RANGE",STRESS:"STRESS",RICHNESS:"RICHNESS",SPEAK_PUNCTUATION:"SPEAK_PUNCTUATION",SPEAK_NUMERIAL:"SPEAK_NUMERIAL",SPEAK_HEADER:"SPEAK_HEADER",NONE:"NONE"};
+cvox.AuralStyleConverter.identity=function(a){return a};cvox.AuralStyleConverter.propertyTable={VOLUME:"volume",SPEAK:"no-op",PAUSE_BEFORE:"no-op",PAUSE_AFTER:"no-op",PAUSE:"no-op",CUE_BEFORE:"no-op",CUE_AFTER:"no-op",CUE:"no-op",PLAY_DURING:"no-op",AZIMUTH:"no-op",ELEVATION:"no-op",SPEECH_RATE:"relativeRate",VOICE_FAMILY:"no-op",PITCH:"relativePitch",PITCH_RANGE:"no-op",STRESS:"no-op",RICHNESS:"no-op",SPEAK_PUNCTUATION:"no-op",SPEAK_NUMERIAL:"no-op",SPEAK_HEADER:"no-op",NONE:"no-op"};
+cvox.AuralStyleConverter.valueTable={VOLUME:cvox.AuralStyleConverter.identity,SPEAK:cvox.AuralStyleConverter.identity,PAUSE_BEFORE:cvox.AuralStyleConverter.identity,PAUSE_AFTER:cvox.AuralStyleConverter.identity,PAUSE:cvox.AuralStyleConverter.identity,CUE_BEFORE:cvox.AuralStyleConverter.identity,CUE_AFTER:cvox.AuralStyleConverter.identity,CUE:cvox.AuralStyleConverter.identity,PLAY_DURING:cvox.AuralStyleConverter.identity,AZIMUTH:cvox.AuralStyleConverter.identity,ELEVATION:cvox.AuralStyleConverter.identity,
+SPEECH_RATE:cvox.AuralStyleConverter.identity,VOICE_FAMILY:cvox.AuralStyleConverter.identity,PITCH:cvox.AuralStyleConverter.identity,PITCH_RANGE:cvox.AuralStyleConverter.identity,STRESS:cvox.AuralStyleConverter.identity,RICHNESS:cvox.AuralStyleConverter.identity,SPEAK_PUNCTUATION:cvox.AuralStyleConverter.identity,SPEAK_NUMERIAL:cvox.AuralStyleConverter.identity,SPEAK_HEADER:cvox.AuralStyleConverter.identity,NONE:cvox.AuralStyleConverter.identity};
+cvox.AuralStyleConverter.convertRule=function(a,b){return{property:cvox.AuralStyleConverter.propertyTable[a],value:cvox.AuralStyleConverter.valueTable[a](b)}};cvox.AuralStyleConverter.convertStyle=function(a){var b={},c;for(c in a){var d=cvox.AuralStyleConverter.convertRule(c,a[c]);b[d.property]=d.value}return b};cvox.AuralStyleUtil.getStyleForNode=function(a){return(a=cvox.AuralStyleUtil.defaultStyles[a.tagName])?cvox.AuralStyleConverter.convertStyle(a):null};
+cvox.AuralStyleUtil.defaultStyles={ARTICLE:{PITCH:-0.1},ASIDE:{PITCH:-0.1},FOOTER:{PITCH:-0.1},H1:{PITCH:-0.3},H2:{PITCH:-0.25},H3:{PITCH:-0.2},H4:{PITCH:-0.15},H5:{PITCH:-0.1},H6:{PITCH:-0.05},HEADER:{PITCH:-0.1},HGROUP:{PITCH:-0.1},MARK:{PITCH:-0.1},NAV:{PITCH:-0.1},SECTION:{PITCH:-0.1},TIME:{PITCH:-0.1}};cvox.EarconUtil={};
+cvox.EarconUtil.getEarcon=function(a){var b=cvox.AriaUtil.getEarcon(a);if(null!=b)return b;switch(a.tagName){case "BUTTON":return cvox.AbstractEarcons.BUTTON;case "A":if(a.hasAttribute("href"))return cvox.AbstractEarcons.LINK;break;case "IMG":if(cvox.DomUtil.hasLongDesc(a))return cvox.AbstractEarcons.LONG_DESC;break;case "LI":return cvox.AbstractEarcons.LIST_ITEM;case "SELECT":return cvox.AbstractEarcons.LISTBOX;case "TEXTAREA":return cvox.AbstractEarcons.EDITABLE_TEXT;case "INPUT":switch(a.type){case "button":case "submit":case "reset":return cvox.AbstractEarcons.BUTTON;case "checkbox":case "radio":return a.checked?
+cvox.AbstractEarcons.CHECK_ON:cvox.AbstractEarcons.CHECK_OFF;default:if(cvox.DomUtil.isInputTypeText(a))return cvox.AbstractEarcons.EDITABLE_TEXT}}return null};cvox.DescriptionUtil={};cvox.DescriptionUtil.COLLECTION_NODE_TYPE={H1:!0,H2:!0,H3:!0,H4:!0,H5:!0,H6:!0};
+cvox.DescriptionUtil.getControlDescription=function(a,b){var c=[a];if(b&&0<b.length)c=b;else{var d=cvox.DomUtil.getSurroundingControl(a);d&&(c=[d,a])}c=cvox.DescriptionUtil.getDescriptionFromAncestors(c,!0,cvox.VERBOSITY_VERBOSE);if(d){var e=cvox.DomUtil.getName(d);0==e.length&&(e=cvox.DomUtil.getControlLabelHeuristics(d),0<e.length&&(c.context=e+" "+c.context))}else e=cvox.DomUtil.getName(a),0==e.length&&(e=cvox.DomUtil.getControlLabelHeuristics(a),0<e.length&&(c.text=cvox.DomUtil.collapseWhitespace(e))),
+d=cvox.DomUtil.getValue(a),0<d.length&&(c.userValue=cvox.DomUtil.collapseWhitespace(d));return c};
+cvox.DescriptionUtil.getDescriptionFromAncestors=function(a,b,c){"undefined"===typeof b&&(b=!0);var d=a.length,e="",f="",g="",h="",k=[],l=null;0<d&&(f=cvox.DomUtil.getName(a[d-1],b),g=cvox.DomUtil.getValue(a[d-1]));for(b=d-1;0<=b;b--){var m=a[b],p=m.getAttribute?m.getAttribute("role"):null;if("dialog"!=p&&"alertdialog"!=p){p=cvox.DomUtil.getRole(m,c);l||(l=cvox.AuralStyleUtil.getStyleForNode(m));if(b<d-1&&m.hasAttribute("role")){var q=cvox.DomUtil.getName(m,!1);q&&(p=q+" "+p)}0<p.length&&(0<e.length||
+0<h.length&&1<m.childElementCount?e=p+" "+cvox.DomUtil.getState(m,!1)+" "+e:h=0<h.length?h+(" "+p+" "+cvox.DomUtil.getState(m,!0)):p+" "+cvox.DomUtil.getState(m,!0));m=cvox.EarconUtil.getEarcon(m);null!=m&&-1==k.indexOf(m)&&k.push(m)}}return new cvox.NavDescription({context:cvox.DomUtil.collapseWhitespace(e),text:cvox.DomUtil.collapseWhitespace(f),userValue:cvox.DomUtil.collapseWhitespace(g),annotation:cvox.DomUtil.collapseWhitespace(h),earcons:k,personality:l})};
+cvox.DescriptionUtil.getDescriptionFromNavigation=function(a,b,c,d){if(!a||!b)return[];if(cvox.DomUtil.isMath(b)&&!cvox.AriaUtil.isMath(b))return cvox.DescriptionUtil.getMathDescription(b);if(cvox.DescriptionUtil.COLLECTION_NODE_TYPE[b.tagName])return cvox.DescriptionUtil.getCollectionDescription(cvox.CursorSelection.fromNode(a),cvox.CursorSelection.fromNode(b));var e=cvox.DomUtil.getUniqueAncestors(a,b,!0),e=cvox.DescriptionUtil.getDescriptionFromAncestors(e,c,d);a=cvox.DomUtil.getUniqueAncestors(b,
+a);cvox.DescriptionUtil.shouldDescribeExit_(a)&&(c=cvox.DescriptionUtil.getDescriptionFromAncestors(a,c,d),c.context&&!e.context&&(e.context=cvox.ChromeVox.msgs.getMsg("exited_container",[c.context])));return[e]};cvox.DescriptionUtil.getCollectionDescription=function(a,b){var c=cvox.DescriptionUtil.getRawDescriptions_(a,b);cvox.DescriptionUtil.insertCollectionDescription_(c);return c};cvox.DescriptionUtil.subWalker_=new cvox.BareObjectWalker;
+cvox.DescriptionUtil.getRawDescriptions_=function(a,b){var c=[];b=b.clone().setReversed(!1);var d=cvox.DescriptionUtil.subWalker_.sync(b).start.node,e=a.end.node,f=cvox.CursorSelection.fromNode(d);if(!f)return[];for(;cvox.DomUtil.isDescendantOfNode(d,b.start.node);){e=cvox.DomUtil.getUniqueAncestors(e,d);cvox.DomUtil.isMath(d)&&!cvox.AriaUtil.isMath(d)?c=c.concat(cvox.DescriptionUtil.getMathDescription(d)):(e=cvox.DescriptionUtil.getDescriptionFromAncestors(e,!0,cvox.ChromeVox.verbosity),c.push(e));
+f=cvox.DescriptionUtil.subWalker_.next(f);if(!f)break;e=d;d=f.start.node}return c};
+cvox.DescriptionUtil.getFullDescriptionsFromChildren=function(a,b){var c=[];if(!b)return c;var d;if(cvox.DomUtil.isLeafNode(b))return a?d=cvox.DomUtil.getUniqueAncestors(a,b):(d=[],d.push(b)),d=cvox.DescriptionUtil.getDescriptionFromAncestors(d,!0,cvox.ChromeVox.verbosity),c.push(d),c;d=b;var e=cvox.CursorSelection.fromNode(b);if(!e)return c;b=cvox.DescriptionUtil.subWalker_.sync(e).start.node;e=cvox.CursorSelection.fromNode(b);if(!e)return c;for(;cvox.DomUtil.isDescendantOfNode(b,d);){c=c.concat(cvox.DescriptionUtil.getFullDescriptionsFromChildren(a,
+b));e=cvox.DescriptionUtil.subWalker_.next(e);if(!e)break;a=b;b=e.start.node}return c};
+cvox.DescriptionUtil.insertCollectionDescription_=function(a){var b=cvox.DescriptionUtil.getAnnotations_(a);if(3<=a.length&&0==a[0].context.length&&1==b.length&&0<b[0].length&&cvox.DescriptionUtil.isAnnotationCollection_(b[0])){var b=b[0],c=a[0].context;a[0].context="";for(var d=0;d<a.length;d++)a[d].annotation="";a.splice(0,0,new cvox.NavDescription({context:c,text:"",annotation:cvox.ChromeVox.msgs.getMsg("collection",[b,cvox.ChromeVox.msgs.getNumber(a.length)])}))}};
+cvox.DescriptionUtil.getAnnotations_=function(a){for(var b=[],c=0;c<a.length;++c){var d=a[c];if(-1==b.indexOf(d.annotation)){var e=cvox.ChromeVox.msgs.getMsg("tag_link");-1!=d.annotation.toLowerCase().indexOf(e.toLowerCase())?-1==b.indexOf(e)&&b.push(e):b.push(d.annotation)}}return b};cvox.DescriptionUtil.isAnnotationCollection_=function(a){return a==cvox.ChromeVox.msgs.getMsg("tag_link")};cvox.DescriptionUtil.shouldDescribeExit_=function(a){return a.some(function(a){switch(a.tagName){case "TABLE":case "MATH":return!0}return cvox.AriaUtil.isLandmark(a)})};
+cvox.DescriptionUtil.getMathDescription=function(a){var b=cvox.SpeechRuleEngine.getInstance(),c=cvox.TraverseMath.getInstance();b.parameterize(cvox.MathmlStore.getInstance());c.initialize(a);a=b.evaluateNode(c.activeNode);if(a==[])return[new cvox.NavDescription({text:"empty math"})];cvox.ChromeVox.verbosity==cvox.VERBOSITY_VERBOSE&&(a[a.length-1].annotation="math");a[0].pushEarcon(cvox.AbstractEarcons.SPECIAL_CONTENT);return a};cvox.FindUtil={};cvox.FindUtil.objectWalker_=new cvox.BareObjectWalker;cvox.FindUtil.findNext=function(a,b,c){var d=a.isReversed();a=(new cvox.CursorSelection(a.absStart(),a.absStart())).setReversed(d);var e;if(e=b(cvox.DomUtil.getAncestors(a.start.node)))if(a=cvox.CursorSelection.fromNode(e).setReversed(d),c)return a;for(;a;){a=cvox.FindUtil.objectWalker_.next(a);c=null;if(!a||(c=b(cvox.DomUtil.getAncestors(a.start.node))))return c?cvox.CursorSelection.fromNode(c):null;if("IFRAME"==a.start.node.tagName)return a}return null};cvox.Interframe=function(){};cvox.Interframe.IF_MSG_PREFIX="cvox.INTERFRAME:";cvox.Interframe.SET_ID="cvox.INTERFRAME_SET_ID";cvox.Interframe.listeners=[];cvox.Interframe.allowAccessToIframeContentWindow=!0;
+cvox.Interframe.init=function(){cvox.Interframe.messageListener=function(a){if("string"===typeof a.data&&0==a.data.indexOf(cvox.Interframe.IF_MSG_PREFIX)){a=a.data.substr(cvox.Interframe.IF_MSG_PREFIX.length);a=cvox.ChromeVoxJSON.parse(a);a.command==cvox.Interframe.SET_ID&&(cvox.Interframe.id=a.id);for(var b=0,c;c=cvox.Interframe.listeners[b];b++)c(a)}return!1};window.addEventListener("message",cvox.Interframe.messageListener,!0)};
+cvox.Interframe.shutdown=function(){window.removeEventListener("message",cvox.Interframe.messageListener,!0)};cvox.Interframe.addListener=function(a){cvox.Interframe.listeners.push(a)};cvox.Interframe.sendMessageToWindow=function(a,b){var c=cvox.Interframe.IF_MSG_PREFIX+cvox.ChromeVoxJSON.stringify(a,null,null);b.postMessage(c,"*")};
+cvox.Interframe.sendMessageToIFrame=function(a,b){if(cvox.Interframe.allowAccessToIframeContentWindow&&b.contentWindow)cvox.Interframe.sendMessageToWindow(a,b.contentWindow);else{var c=cvox.Interframe.IF_MSG_PREFIX+cvox.ChromeVoxJSON.stringify(a,null,null),d=document.createElement("script");d.type="text/javascript";if(b.hasAttribute("id")&&document.getElementById(b.id)==b)d.innerHTML="document.getElementById(decodeURI('"+encodeURI(b.id)+"')).contentWindow.postMessage(decodeURI('"+encodeURI(c)+"'), '*');";
+else{var e="cvox_iframe"+a.id;""===b.className?b.className=e:-1==b.className.indexOf(e)&&(b.className+=" "+e);d.innerHTML="document.getElementsByClassName(decodeURI('"+encodeURI(e)+"'))[0].contentWindow.postMessage(decodeURI('"+encodeURI(c)+"'), '*');"}document.head.appendChild(d);window.setTimeout(function(){document.head.removeChild(d)},1E3)}};
+cvox.Interframe.sendMessageToParentWindow=function(a){cvox.Interframe.isIframe()&&(a.sourceId=cvox.Interframe.id,window.parent?cvox.Interframe.sendMessageToWindow(a,window.parent):(a=cvox.Interframe.IF_MSG_PREFIX+cvox.ChromeVoxJSON.stringify(a,null,null),window.location.href="javascript:window.parent.postMessage('"+encodeURI(a)+"', '*');"))};cvox.Interframe.sendIdToIFrame=function(a,b){var c={command:cvox.Interframe.SET_ID,id:a};cvox.Interframe.sendMessageToIFrame(c,b)};
+cvox.Interframe.isIframe=function(){return window!=window.parent};cvox.Interframe.init();cvox.PageSelection=function(a){this.sel_=a.clone();this.sel_.select();this.wasBegin_=!0};
+cvox.PageSelection.prototype.getDescription=function(a,b,c){var d=[];this.sel_.isReversed()!=c.isReversed()?(d=a.getDescription(c,b),d[0].annotation=cvox.ChromeVox.msgs.getMsg("describe_unselected"),d[0].pushEarcon(cvox.AbstractEarcons.SELECTION_REVERSE)):(d=a.getDescription(b,c),d[0].annotation=cvox.ChromeVox.msgs.getMsg("describe_selected"),d[0].pushEarcon(cvox.AbstractEarcons.SELECTION),!this.wasBegin_&&this.sel_.absEquals(c.clone().normalize())&&(a=a.getDescription(c,b),a[0].annotation=cvox.ChromeVox.msgs.getMsg("describe_unselected"),
+a[0].pushEarcon(cvox.AbstractEarcons.SELECTION_REVERSE),a[0].pushEarcon(cvox.AbstractEarcons.WRAP),d=a.concat(d)));return d};cvox.PageSelection.prototype.getFullDescription=function(){return[new cvox.NavDescription({text:window.getSelection().toString(),context:cvox.ChromeVox.msgs.getMsg("selection_is")})]};
+cvox.PageSelection.prototype.extend=function(a){this.sel_.directedBefore(a)?this.sel_.end=this.sel_.isReversed()==a.isReversed()?a.end.clone():a.start.clone():this.sel_=a.clone();this.sel_.select();this.wasBegin_=!1;return!this.sel_.absEquals(a)};cvox.BrailleUtil={};cvox.BrailleUtil.ITEM_SEPARATOR=" ";cvox.BrailleUtil.CONTAINER="tag_h1_brl tag_h2_brl tag_h3_brl tag_h4_brl tag_h5_brl tag_h6_brl".split(" ");
+cvox.BrailleUtil.TEMPLATE={base:"c n v r s",aria_role_button:"[n]",aria_role_textbox:"n: v r",input_type_button:"[n]",input_type_checkbox:"n (s)",input_type_email:"n: v r",input_type_number:"n: v r",input_type_password:"n: v r",input_type_search:"n: v r",input_type_submit:"[n]",input_type_text:"n: v r",input_type_tel:"n: v r",input_type_url:"n: v r",tag_button:"[n]",tag_textarea:"n: v r"};cvox.BrailleUtil.ValueSpan=function(a){this.offset=a};cvox.BrailleUtil.ValueSelectionSpan=function(){};
+cvox.BrailleUtil.getName=function(a){return a?cvox.DomUtil.getName(a).trim():""};cvox.BrailleUtil.getRoleMsg=function(a){if(!a)return"";(a=cvox.DomUtil.getRoleMsg(a,cvox.VERBOSITY_VERBOSE))&&(a=cvox.DomUtil.collapseWhitespace(a));a&&0<a.length&&cvox.ChromeVox.msgs.getMsg(a+"_brl")&&(a+="_brl");return a};cvox.BrailleUtil.getRole=function(a){return a?(a=cvox.BrailleUtil.getRoleMsg(a))?cvox.ChromeVox.msgs.getMsg(a):"":""};
+cvox.BrailleUtil.getState=function(a){return a?cvox.NodeStateUtil.expand(cvox.DomUtil.getStateMsgs(a,!0).map(function(a){cvox.ChromeVox.msgs.getMsg(a[0]+"_brl")&&(a[0]+="_brl");return a})):""};cvox.BrailleUtil.getContainer=function(a,b){if(!a||!b)return"";for(var c=cvox.DomUtil.getUniqueAncestors(a,b),d=0,e;e=c[d];d++)if((e=cvox.BrailleUtil.getRoleMsg(e))&&-1!=cvox.BrailleUtil.CONTAINER.indexOf(e))return cvox.ChromeVox.msgs.getMsg(e);return""};
+cvox.BrailleUtil.getValue=function(a){if(!a)return new cvox.Spannable;var b=new cvox.BrailleUtil.ValueSpan(0);if(cvox.DomUtil.isInputTypeText(a)){var c=a.value;"password"===a.type&&(c=c.replace(/./g,"*"));b=new cvox.Spannable(c,b);a===document.activeElement&&b.setSpan(new cvox.BrailleUtil.ValueSelectionSpan,a.selectionStart,a.selectionEnd);return b}if(a instanceof HTMLTextAreaElement){var d=new cvox.EditableTextAreaShadow;d.update(a);var e=d.getLineIndex(a.selectionEnd),c=d.getLineStart(e),d=d.getLineEnd(e),
+d=a.value.substring(c,d);b.offset=c;b=new cvox.Spannable(d,b);a===document.activeElement&&(d=Math.max(a.selectionStart-c,0),a=Math.min(a.selectionEnd-c,b.getLength()),b.setSpan(new cvox.BrailleUtil.ValueSelectionSpan,d,a));return b}return new cvox.Spannable(cvox.DomUtil.getValue(a),b)};
+cvox.BrailleUtil.getTemplated=function(a,b,c){c=c?c:{};for(var d=c.roleMsg||(b?cvox.DomUtil.getRoleMsg(b,cvox.VERBOSITY_VERBOSE):""),d=cvox.BrailleUtil.TEMPLATE[d]||cvox.BrailleUtil.TEMPLATE.base,e=new cvox.Spannable,f=function(d){switch(d){case "n":return c.name||cvox.BrailleUtil.getName(b);case "r":return c.role||cvox.BrailleUtil.getRole(b);case "s":return c.state||cvox.BrailleUtil.getState(b);case "c":return c.container||cvox.BrailleUtil.getContainer(a,b);case "v":return c.value?new cvox.Spannable(c.value,
+new cvox.BrailleUtil.ValueSpan(0)):cvox.BrailleUtil.getValue(b);default:return d}},g=0;g<d.length;g++){var h=f(d[g]);e.append(h);h.toString()||" "!=d[g+1]||g++}return e.trim()};cvox.MathmlStoreUtil={};cvox.MathmlStoreUtil.matchMathjaxToMathml=function(a){var b=cvox.TraverseMath.getInstance().activeMathmlHost;return b.querySelector("#"+a.id)};cvox.MathmlStoreUtil.retrieveMathjaxExtender=function(a){return(a=cvox.MathmlStoreUtil.matchMathjaxToMathml(a))?[a]:[]};cvox.MathmlStoreUtil.retrieveMathjaxLeaf=function(a){return(a=cvox.MathmlStoreUtil.matchMathjaxToMathml(a))?[a]:[]};
+cvox.MathmlStoreUtil.checkMathjaxTag=function(a,b){var c=cvox.MathmlStoreUtil.matchMathjaxToMathml(a);return c&&c.tagName.toUpperCase()==b?[c]:[]};cvox.MathmlStoreUtil.checkMathjaxMunder=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MUNDER")};cvox.MathmlStoreUtil.checkMathjaxMover=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MOVER")};cvox.MathmlStoreUtil.checkMathjaxMsub=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MSUB")};
+cvox.MathmlStoreUtil.checkMathjaxMsup=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MSUP")};cvox.MathmlStoreUtil.nextSeparatorFunction=function(a){if(a){if(a.match(/^\s+$/))return null;var b=a.replace(/\s/g,"").split("").filter(function(a){return a})}else b=[","];return function(){return 1<b.length?b.shift():b[0]}};cvox.MathmlStoreUtil.mfencedSeparators=function(a,b){var c=cvox.MathmlStoreUtil.nextSeparatorFunction(b);return function(){return c?c():""}};
+cvox.MathmlStoreUtil.contentIterator=function(a,b){var c=0<a.length?cvox.XpathUtil.evalXPath("../../content/*",a[0]):[];return function(){var a=c.shift();return b+(a?a.textContent:"")}};cvox.StoreUtil={};cvox.StoreUtil.nodeCounter=function(a,b){var c=a.length,d=0,e=b;b||(e="");return function(){d<c&&(d+=1);return e+" "+d}};cvox.MathmlStoreRules=function(){cvox.MathmlStoreRules.initCustomFunctions_();cvox.MathmlStoreRules.initDefaultRules_();cvox.MathmlStoreRules.initMathjaxRules_();cvox.MathmlStoreRules.initAliases_();cvox.MathmlStoreRules.initSpecializationRules_();cvox.MathmlStoreRules.initSemanticRules_()};goog.addSingletonGetter(cvox.MathmlStoreRules);cvox.MathmlStoreRules.mathStore=cvox.MathmlStore.getInstance();cvox.MathmlStoreRules.mathStore.initialize=cvox.MathmlStoreRules.getInstance;
+cvox.MathmlStoreRules.defineDefaultMathmlRule_=goog.bind(cvox.MathmlStoreRules.mathStore.defineDefaultMathmlRule,cvox.MathmlStoreRules.mathStore);cvox.MathmlStoreRules.defineRule_=goog.bind(cvox.MathmlStoreRules.mathStore.defineRule,cvox.MathmlStoreRules.mathStore);cvox.MathmlStoreRules.defineRuleAlias_=goog.bind(cvox.MathmlStoreRules.mathStore.defineRuleAlias,cvox.MathmlStoreRules.mathStore);
+cvox.MathmlStoreRules.addContextFunction_=goog.bind(cvox.MathmlStoreRules.mathStore.contextFunctions.add,cvox.MathmlStoreRules.mathStore.contextFunctions);cvox.MathmlStoreRules.addCustomQuery_=goog.bind(cvox.MathmlStoreRules.mathStore.customQueries.add,cvox.MathmlStoreRules.mathStore.customQueries);
+cvox.MathmlStoreRules.initCustomFunctions_=function(){(0,cvox.MathmlStoreRules.addContextFunction_)("CTXFnodeCounter",cvox.StoreUtil.nodeCounter);(0,cvox.MathmlStoreRules.addContextFunction_)("CTXFmfSeparators",cvox.MathmlStoreUtil.mfencedSeparators);(0,cvox.MathmlStoreRules.addContextFunction_)("CTXFcontentIterator",cvox.MathmlStoreUtil.contentIterator);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFextender",cvox.MathmlStoreUtil.retrieveMathjaxExtender);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmunder",
+cvox.MathmlStoreUtil.checkMathjaxMunder);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmover",cvox.MathmlStoreUtil.checkMathjaxMover);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmsub",cvox.MathmlStoreUtil.checkMathjaxMsub);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmsup",cvox.MathmlStoreUtil.checkMathjaxMsup);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFlookupleaf",cvox.MathmlStoreUtil.retrieveMathjaxLeaf)};
+cvox.MathmlStoreRules.initDefaultRules_=function(){(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("math","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mspace","[p] (pause:250)");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mstyle","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mpadded","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("merror","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mphantom","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mtext",
+"[t] text(); [p] (pause:200)");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mi","[n] text()");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mo","[n] text() (rate:-0.1)");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mn","[n] text()");(0,cvox.MathmlStoreRules.defineRule_)("mtext-variant","default.default",'[t] "begin"; [t] @mathvariant (pause:150);[t] text() (pause:150); [t] "end"; [t] @mathvariant (pause:200)',"self::mathml:mtext","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineRule_)("mi-variant",
+"default.default","[t] @mathvariant; [n] text()","self::mathml:mi","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mi-variant","self::mathml:mn","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineRule_)("mo-variant","default.default","[t] @mathvariant; [n] text() (rate:-0.1)","self::mathml:mo","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("ms",'[t] "string" (pitch:0.5, rate:0.5); [t] text()');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msup",
+'[n] ./*[1]; [t] "super";[n] ./*[2] (pitch:0.35); [p] (pause:300)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msubsup",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "super"; [n] ./*[3] (pitch:0.35); [p] (pause:300)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msub",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:300)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mover",'[n] ./*[2] (pitch:0.35); [p] (pause:200); [t] "over"; [n] ./*[1]; [p] (pause:400)');
+(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("munder",'[n] ./*[2] (pitch:-0.35); [t] "under"; [n] ./*[1]; [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("munderover",'[n] ./*[2] (pitch:-0.35); [t] "under and"; [n] ./*[3] (pitch:0.35); [t] "over"; [n] ./*[1]; [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mrow","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msqrt",'[t] "Square root of"; [m] ./* (rate:0.2); [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mroot",
+'[t] "root of order"; [n] ./*[2]; [t] "of";[n] ./*[1] (rate:0.2); [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mfrac",' [p] (pause:400); [n] ./*[1] (pitch:0.3); [t] "divided by"; [n] ./*[2] (pitch:-0.3); [p] (pause:400)');(0,cvox.MathmlStoreRules.defineRule_)("mfenced-single","default.default",'[t] @open (context:"opening"); [m] ./* (separator:@separators);[t] @close (context:"closing")',"self::mathml:mfenced","string-length(string(@separators))=1");(0,cvox.MathmlStoreRules.defineRule_)("mfenced-empty",
+"default.default",'[t] @open (context:"opening"); [m] ./*;[t] @close (context:"closing")',"self::mathml:mfenced","string-length(string(@separators))=1",'string(@separators)=" "');(0,cvox.MathmlStoreRules.defineRule_)("mfenced-comma","default.default",'[t] @open (context:"opening"); [m] ./* (separator:"comma");[t] @close (context:"closing")',"self::mathml:mfenced");(0,cvox.MathmlStoreRules.defineRule_)("mfenced-multi","default.default",'[t] @open (context:"opening"); [m] ./* (sepFunc:CTXFmfSeparators,separator:@separators); [t] @close (context:"closing")',
+"self::mathml:mfenced","string-length(string(@separators))>1");(0,cvox.MathmlStoreRules.defineRule_)("mtable","default.default",'[t] "matrix"; [m] ./* (ctxtFunc:CTXFnodeCounter,context:"row",pause:100)',"self::mathml:mtable");(0,cvox.MathmlStoreRules.defineRule_)("mtr","default.default",'[m] ./* (ctxtFunc:CTXFnodeCounter,context:"column",pause:100)',"self::mathml:mtr");(0,cvox.MathmlStoreRules.defineRule_)("mtd","default.default","[m] ./*","self::mathml:mtd");(0,cvox.MathmlStoreRules.defineRule_)("mtable",
+"default.superbrief",'[t] count(child::mathml:mtr); [t] "by";[t] count(child::mathml:mtr[1]/mathml:mtd); [t] "matrix";',"self::mathml:mtable");(0,cvox.MathmlStoreRules.defineRule_)("mtable","default.short",'[t] "matrix"; [m] ./*',"self::mathml:mtable");(0,cvox.MathmlStoreRules.defineRule_)("mtr","default.short","[m] ./*","self::mathml:mtr");(0,cvox.MathmlStoreRules.defineRule_)("mtd","default.short",'[t] "Element"; [t] count(./preceding-sibling::mathml:mtd)+1;[t] count(./parent::mathml:mtr/preceding-sibling::mathml:mtr)+1;[p] (pause:500); [m] ./*',
+"self::mathml:mtd");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-4","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);',"self::mathml:mmultiscripts");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-1","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);',
+"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-2","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);',"self::mathml:mmultiscripts","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-3",
+"default.default",'[n] ./*[1]; [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);',"self::mathml:mmultiscripts","./mathml:none=./*[5]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-4","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);',
+"self::mathml:mmultiscripts","./mathml:none=./*[6]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-2-1","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:300);',"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-1-1","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:300);',
+"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]","./mathml:none=./*[5]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-1-2","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);',"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]","./mathml:none=./*[6]")};
+cvox.MathmlStoreRules.initMathjaxRules_=function(){(0,cvox.MathmlStoreRules.defineRule_)("mj-math","default.default","[n] ./*[1]/*[1]/*[1]",'self::span[@class="math"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-leaf","default.default","[n] CQFlookupleaf",'self::span[@class="mi"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mo"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mn"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mtext"]');
+(0,cvox.MathmlStoreRules.defineRule_)("mj-mo-ext","default.default","[n] CQFextender",'self::span[@class="mo"]',"./*[1]/*[1]/text()","./*[1]/*[2]/text()");(0,cvox.MathmlStoreRules.defineRule_)("mj-texatom","default.default","[n] ./*[1]",'self::span[@class="texatom"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-msubsup","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub"; [n] ./*[1]/*[3]/*[1] (pitch:-0.35);[p] (pause:200); [t] "super"; [n] ./*[1]/*[2]/*[1] (pitch:0.35);[p] (pause:300)','self::span[@class="msubsup"]');
+(0,cvox.MathmlStoreRules.defineRule_)("mj-msub","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub";[n] ./*[1]/*[2]/*[1] (pitch:-0.35); [p] (pause:300)','self::span[@class="msub"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-msup","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "super";[n] ./*[1]/*[2]/*[1] (pitch:0.35); [p] (pause:300)','self::span[@class="msup"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-munderover","default.default",'[n] ./*[1]/*[2]/*[1] (pitch:0.35); [t] "under and";[n] ./*[1]/*[3]/*[1] (pitch:-0.35); [t] "over";[n] ./*[1]/*[1]/*[1]; [p] (pause:400)',
+'self::span[@class="munderover"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-munder","default.default",'[n] ./*[1]/*[2]/*[1] (pitch:0.35); [t] "under";[n] ./*[1]/*[1]/*[1]; [p] (pause:400)','self::span[@class="munder"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mover","default.default",'[n] ./*[1]/*[2]/*[1] (pitch:0.35); [t] "over";[n] ./*[1]/*[1]/*[1]; [p] (pause:400)','self::span[@class="mover"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mfrac","default.default",'[p] (pause:250); [n] ./*[1]/*[1]/*[1] (pitch:0.3); [p] (pause:250); [t] "divided by"; [n] ./*[1]/*[2]/*[1] (pitch:-0.3);[p] (pause:400)',
+'self::span[@class="mfrac"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-msqrt","default.default",'[t] "Square root of";[n] ./*[1]/*[1]/*[1] (rate:0.2); [p] (pause:400)','self::span[@class="msqrt"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mroot","default.default",'[t] "root of order"; [n] ./*[1]/*[4]/*[1]; [t] "of";[n] ./*[1]/*[1]/*[1] (rate:0.2); [p] (pause:400)','self::span[@class="mroot"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mfenced","default.default",'[t] "opening"; [n] ./*[1]; [m] ./*[position()>1 and position()<last()]; [t] "closing"; [n] ./*[last()]',
+'self::span[@class="mfenced"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mtable"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mmultiscripts"]')};
+cvox.MathmlStoreRules.initAliases_=function(){(0,cvox.MathmlStoreRules.defineRuleAlias_)("mspace",'self::span[@class="mspace"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mstyle",'self::span[@class="mstyle"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mpadded",'self::span[@class="mpadded"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("merror",'self::span[@class="merror"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mphantom",'self::span[@class="mphantom"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("ms",
+'self::span[@class="ms"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mrow",'self::span[@class="mrow"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-msub",'self::span[@class="msubsup"]',"CQFmathmlmsub");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-msup",'self::span[@class="msubsup"]',"CQFmathmlmsup");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-munder",'self::span[@class="munderover"]',"CQFmathmlmunder");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-mover",'self::span[@class="munderover"]',
+"CQFmathmlmover")};
+cvox.MathmlStoreRules.initSpecializationRules_=function(){(0,cvox.MathmlStoreRules.defineRule_)("square","default.default",'[n] ./*[1]; [t] "square" (pitch:0.35); [p] (pause:300)',"self::mathml:msup","./*[2][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("square","self::mathml:msup","./mathml:mrow=./*[2]","count(./*[2]/*)=1","./*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRule_)("cube","default.default",'[n] ./*[1]; [t] "cube" (pitch:0.35); [p] (pause:300)',"self::mathml:msup","./*[2][text()=3]");
+(0,cvox.MathmlStoreRules.defineRuleAlias_)("cube","self::mathml:msup","./mathml:mrow=./*[2]","count(./*[2]/*)=1","./*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRule_)("square-sub","default.default",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35);[p] (pause:300); [t] "square" (pitch:0.35); [p] (pause:400)',"self::mathml:msubsup","./*[3][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("square-sub","self::mathml:msubsup","./mathml:mrow=./*[3]","count(./*[3]/*)=1","./*[3]/*[1][text()=2]");
+(0,cvox.MathmlStoreRules.defineRule_)("cube-sub","default.default",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35);[p] (pause:300); [t] "cube" (pitch:0.35); [p] (pause:400)',"self::mathml:msubsup","./*[3][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("cube-sub","self::mathml:msubsup","./mathml:mrow=./*[3]","count(./*[3]/*)=1","./*[3]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRule_)("mj-square","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "square" (pitch:0.35); [p] (pause:300)','self::span[@class="msup"]',
+"./*[1]/*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square",'self::span[@class="msup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square",'self::span[@class="msubsup"]',"CQFmathmlmsup","./*[1]/*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square",'self::span[@class="msubsup"]',"CQFmathmlmsup",'./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',
+"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRule_)("mj-cube","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "cube" (pitch:0.35); [p] (pause:300)','self::span[@class="msup"]',"./*[1]/*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube",'self::span[@class="msup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube",
+'self::span[@class="msubsup"]',"CQFmathmlmsup","./*[1]/*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube",'self::span[@class="msubsup"]',"CQFmathmlmsup",'./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRule_)("mj-square-sub","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub"; [n] ./*[1]/*[3]/*[1] (pitch:-0.35); [p] (pause:300); [t] "square" (pitch:0.35); [p] (pause:400)','self::span[@class="msubsup"]',
+"./*[1]/*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square-sub",'self::span[@class="msubsup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRule_)("mj-cube-sub","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub"; [n] ./*[1]/*[3]/*[1] (pitch:-0.35); [p] (pause:300); [t] "cube" (pitch:0.35); [p] (pause:400)','self::span[@class="msubsup"]',"./*[1]/*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube-sub",
+'self::span[@class="msubsup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=3]")};
+cvox.MathmlStoreRules.initSemanticRules_=function(){(0,cvox.MathmlStoreRules.defineRule_)("stree","default.default","[n] ./*[1]","self::stree");(0,cvox.MathmlStoreRules.defineRule_)("multrel","default.default",'[t] "multirelation"; [m] children/* (sepFunc:CTXFcontentIterator)',"self::multirel");(0,cvox.MathmlStoreRules.defineRule_)("variable-equality","default.default",'[t] "equation sequence"; [m] ./children/* (context:"part",ctxtFunc:CTXFnodeCounter,separator:./text())','self::relseq[@role="equality"]',
+"count(./children/*)>2",'./children/punct[@role="ellipsis"]');(0,cvox.MathmlStoreRules.defineRule_)("multi-equality","default.default",'[t] "equation sequence"; [m] ./children/* (context:"part",ctxtFunc:CTXFnodeCounter,separator:./text())','self::relseq[@role="equality"]',"count(./children/*)>2");(0,cvox.MathmlStoreRules.defineRule_)("multi-equality","default.short",'[t] "equation sequence"; [m] ./children/* (separator:./text())','self::relseq[@role="equality"]',"count(./children/*)>2");(0,cvox.MathmlStoreRules.defineRule_)("equality",
+"default.default",'[t] "equation"; [t] "left hand side"; [n] children/*[1];[p] (pause:200); [n] text() (pause:200);[t] "right hand side"; [n] children/*[2]','self::relseq[@role="equality"]',"count(./children/*)=2");(0,cvox.MathmlStoreRules.defineRule_)("simple-equality","default.default","[n] children/*[1]; [p] (pause:200); [n] text() (pause:200);[n] children/*[2]",'self::relseq[@role="equality"]',"count(./children/*)=2","./children/identifier or ./children/number");(0,cvox.MathmlStoreRules.defineRule_)("simple-equality2",
+"default.default","[n] children/*[1]; [p] (pause:200); [n] text() (pause:200);[n] children/*[2]",'self::relseq[@role="equality"]',"count(./children/*)=2","./children/function or ./children/appl");(0,cvox.MathmlStoreRules.defineRule_)("multrel","default.default","[m] children/* (separator:./text())","self::relseq");(0,cvox.MathmlStoreRules.defineRule_)("binary-operation","default.default","[m] children/* (separator:text());","self::infixop");(0,cvox.MathmlStoreRules.defineRule_)("variable-addition",
+"default.default",'[t] "sum with variable number of summands";[p] (pause:400); [m] children/* (separator:./text())','self::infixop[@role="addition"]',"count(children/*)>2",'children/punct[@role="ellipsis"]');(0,cvox.MathmlStoreRules.defineRule_)("multi-addition","default.default",'[t] "sum with,"; [t] count(./children/*); [t] ", summands";[p] (pause:400); [m] ./children/* (separator:./text())','self::infixop[@role="addition"]',"count(./children/*)>2");(0,cvox.MathmlStoreRules.defineRule_)("prefix",
+"default.default",'[t] "prefix"; [n] text(); [t] "of" (pause 150);[n] children/*[1]',"self::prefixop");(0,cvox.MathmlStoreRules.defineRule_)("negative","default.default",'[t] "negative"; [n] children/*[1]',"self::prefixop",'self::prefixop[@role="negative"]');(0,cvox.MathmlStoreRules.defineRule_)("postfix","default.default",'[n] children/*[1]; [t] "postfix"; [n] text() (pause 300)',"self::postfixop");(0,cvox.MathmlStoreRules.defineRule_)("identifier","default.default","[n] text()","self::identifier");
+(0,cvox.MathmlStoreRules.defineRule_)("number","default.default","[n] text()","self::number");(0,cvox.MathmlStoreRules.defineRule_)("fraction","default.default",'[p] (pause:250); [n] children/*[1] (pitch:0.3); [p] (pause:250); [t] "divided by"; [n] children/*[2] (pitch:-0.3); [p] (pause:400)',"self::fraction");(0,cvox.MathmlStoreRules.defineRule_)("superscript","default.default",'[n] children/*[1]; [t] "super"; [n] children/*[2] (pitch:0.35);[p] (pause:300)',"self::superscript");(0,cvox.MathmlStoreRules.defineRule_)("subscript",
+"default.default",'[n] children/*[1]; [t] "sub"; [n] children/*[2] (pitch:-0.35);[p] (pause:300)',"self::subscript");(0,cvox.MathmlStoreRules.defineRule_)("ellipsis","default.default",'[p] (pause:200); [t] "dot dot dot"; [p] (pause:300)',"self::punct",'self::punct[@role="ellipsis"]');(0,cvox.MathmlStoreRules.defineRule_)("fence-single","default.default","[n] text()","self::punct",'self::punct[@role="openfence"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("fence-single","self::punct",'self::punct[@role="closefence"]');
+(0,cvox.MathmlStoreRules.defineRuleAlias_)("fence-single","self::punct",'self::punct[@role="vbar"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("fence-single","self::punct",'self::punct[@role="application"]');(0,cvox.MathmlStoreRules.defineRule_)("omit-punct","default.default","[p] (pause:200);","self::punct");(0,cvox.MathmlStoreRules.defineRule_)("omit-empty","default.default","","self::empty");(0,cvox.MathmlStoreRules.defineRule_)("fences-open-close","default.default",'[p] (pause:100); [t] "open"; [n] children/*[1]; [p] (pause:200);[t] "close"',
+'self::fenced[@role="leftright"]');(0,cvox.MathmlStoreRules.defineRule_)("fences-open-close-in-appl","default.default","[p] (pause:100); [n] children/*[1]; [p] (pause:200);",'self::fenced[@role="leftright"]',"./parent::children/parent::appl");(0,cvox.MathmlStoreRules.defineRule_)("fences-neutral","default.default",'[p] (pause:100); [t] "absolute value of"; [n] children/*[1];[p] (pause:350);',"self::fenced",'self::fenced[@role="neutral"]');(0,cvox.MathmlStoreRules.defineRule_)("omit-fences","default.default",
+"[p] (pause:500); [n] children/*[1]; [p] (pause:200);","self::fenced");(0,cvox.MathmlStoreRules.defineRule_)("matrix","default.default",'[t] "matrix"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"row",pause:100)',"self::matrix");(0,cvox.MathmlStoreRules.defineRule_)("matrix-row","default.default",'[m] children/* (ctxtFunc:CTXFnodeCounter,context:"column",pause:100)','self::row[@role="matrix"]');(0,cvox.MathmlStoreRules.defineRule_)("matrix-cell","default.default","[n] children/*[1]",'self::cell[@role="matrix"]');
+(0,cvox.MathmlStoreRules.defineRule_)("vector","default.default",'[t] "vector"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"element",pause:100)',"self::vector");(0,cvox.MathmlStoreRules.defineRule_)("cases","default.default",'[t] "case statement"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"case",pause:100)',"self::cases");(0,cvox.MathmlStoreRules.defineRule_)("cases-row","default.default","[m] children/*",'self::row[@role="cases"]');(0,cvox.MathmlStoreRules.defineRule_)("cases-cell",
+"default.default","[n] children/*[1]",'self::cell[@role="cases"]');(0,cvox.MathmlStoreRules.defineRule_)("row","default.default",'[m] ./* (ctxtFunc:CTXFnodeCounter,context:"column",pause:100)','self::row"');(0,cvox.MathmlStoreRules.defineRule_)("cases-end","default.default",'[t] "case statement"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"case",pause:100);[t] "end cases"',"self::cases","following-sibling::*");(0,cvox.MathmlStoreRules.defineRule_)("multiline","default.default",'[t] "multiline equation";[m] children/* (ctxtFunc:CTXFnodeCounter,context:"line",pause:100)',
+"self::multiline");(0,cvox.MathmlStoreRules.defineRule_)("line","default.default","[m] children/*","self::line");(0,cvox.MathmlStoreRules.defineRule_)("table","default.default",'[t] "multiline equation";[m] children/* (ctxtFunc:CTXFnodeCounter,context:"row",pause:200)',"self::table");(0,cvox.MathmlStoreRules.defineRule_)("table-row","default.default","[m] children/* (pause:100)",'self::row[@role="table"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("cases-cell",'self::cell[@role="table"]');(0,cvox.MathmlStoreRules.defineRule_)("end-punct",
+"default.default","[m] children/*; [p] (pause:300)","self::punctuated",'@role="endpunct"');(0,cvox.MathmlStoreRules.defineRule_)("start-punct","default.default","[n] content/*[1]; [p] (pause:200); [m] children/*","self::punctuated",'@role="startpunct"');(0,cvox.MathmlStoreRules.defineRule_)("integral-punct","default.default","[n] children/*[1] (rate:0.2); [n] children/*[3] (rate:0.2)","self::punctuated",'@role="integral"');(0,cvox.MathmlStoreRules.defineRule_)("punctuated","default.default","[m] children/* (pause:100)",
+"self::punctuated");(0,cvox.MathmlStoreRules.defineRule_)("function","default.default","[n] text()","self::function");(0,cvox.MathmlStoreRules.defineRule_)("appl","default.default","[n] children/*[1]; [n] content/*[1]; [n] children/*[2]","self::appl");(0,cvox.MathmlStoreRules.defineRule_)("limboth","default.default",'[n] children/*[1]; [t] "from"; [n] children/*[2]; [t] "to";[n] children/*[3]',"self::limboth");(0,cvox.MathmlStoreRules.defineRule_)("sum-only","default.default",'[n] children/*[1]; [p] (pause 100); [t] "over"; [n] children/*[2];[p] (pause 250);',
+"self::limboth",'self::limboth[@role="sum"]');(0,cvox.MathmlStoreRules.defineRule_)("limlower","default.default",'[n] children/*[1]; [t] "over"; [n] children/*[2];',"self::limlower");(0,cvox.MathmlStoreRules.defineRule_)("limupper","default.default",'[n] children/*[1]; [t] "under"; [n] children/*[2];',"self::limupper");(0,cvox.MathmlStoreRules.defineRule_)("largeop","default.default","[n] text()","self::largeop");(0,cvox.MathmlStoreRules.defineRule_)("bigop","default.default",'[n] children/*[1]; [p] (pause 100); [t] "over"; [n] children/*[2];[p] (pause 250);',
+"self::bigop");(0,cvox.MathmlStoreRules.defineRule_)("integral","default.default","[n] children/*[1]; [p] (pause 100); [n] children/*[2]; [p] (pause 200);[n] children/*[3] (rate:0.35);","self::integral");(0,cvox.MathmlStoreRules.defineRule_)("sqrt","default.default",'[t] "Square root of"; [n] children/*[1] (rate:0.2); [p] (pause:400)',"self::sqrt");(0,cvox.MathmlStoreRules.defineRule_)("square","default.default",'[n] children/*[1]; [t] "square" (pitch:0.35); [p] (pause:300)',"self::superscript","children/*[2][text()=2]");
+(0,cvox.MathmlStoreRules.defineRule_)("text-no-mult","default.default","[n] children/*[1]; [p] (pause:200); [n] children/*[2]","self::infixop","children/text")};cvox.AbstractShifter=function(){this.isSubnavigating_=!1};cvox.AbstractShifter.prototype.begin=function(a,b){return this.currentWalker_.begin(b)};cvox.AbstractShifter.prototype.makeLessGranular=function(){this.ensureNotSubnavigating()};cvox.AbstractShifter.prototype.makeMoreGranular=function(){this.ensureNotSubnavigating()};cvox.AbstractShifter.prototype.ensureSubnavigating=function(){!1==this.isSubnavigating_&&(this.makeMoreGranular(),this.isSubnavigating_=!0)};
+cvox.AbstractShifter.prototype.ensureNotSubnavigating=function(){!0==this.isSubnavigating_&&(this.isSubnavigating_=!1,this.makeLessGranular())};cvox.AbstractShifter.prototype.isSubnavigating=function(){return this.isSubnavigating_};cvox.AbstractShifter.prototype.hasAction=function(a){return this.currentWalker_.hasAction(a)};cvox.AbstractShifter.prototype.performAction=function(a,b){return this.currentWalker_.performAction(a,b)};cvox.MathShifter=function(a){cvox.AbstractShifter.call(this);this.level_=0;this.bumped_=this.direction_=!1;cvox.TraverseMath.getInstance().initialize(a.start.node)};goog.inherits(cvox.MathShifter,cvox.AbstractShifter);cvox.MathShifter.prototype.next=function(a){var b=a.isReversed();this.bumped_=!cvox.TraverseMath.getInstance().nextSibling(b);return(b=cvox.TraverseMath.getInstance().getAttachedActiveNode())?cvox.CursorSelection.fromNode(b):a};
+cvox.MathShifter.prototype.sync=function(a){var b=cvox.TraverseMath.getInstance().getAttachedActiveNode();return b?cvox.CursorSelection.fromNode(b):a};cvox.MathShifter.prototype.getName=function(){return cvox.ChromeVox.msgs.getMsg("math_shifter")};cvox.MathShifter.prototype.getDescription=function(){var a=cvox.SpeechRuleEngine.getInstance().evaluateNode(cvox.TraverseMath.getInstance().activeNode);this.bumped_&&0<a.length&&a[0].pushEarcon(cvox.AbstractEarcons.WRAP_EDGE);return a};
+cvox.MathShifter.prototype.getBraille=function(a,b){return new cvox.NavBraille({text:cvox.BrailleUtil.getTemplated(a.start.node,b.start.node)})};cvox.MathShifter.prototype.getGranularityMsg=function(){return this.direction_?"up to level "+this.level_:"down to level "+this.level_};cvox.MathShifter.prototype.makeLessGranular=function(){this.level_=0<this.level_?this.level_-1:0;this.direction_=!0;this.bumped_=!cvox.TraverseMath.getInstance().nextParentChild(!0)};
+cvox.MathShifter.prototype.makeMoreGranular=function(){this.direction_=!1;(this.bumped_=!cvox.TraverseMath.getInstance().nextParentChild(!1))||this.level_++};
+cvox.MathShifter.create=function(a){if(cvox.DomPredicates.mathPredicate(cvox.DomUtil.getAncestors(a.start.node))){var b=cvox.DomUtil.getContainingMath(a.end.node);cvox.TraverseMath.getInstance().initialize(b);cvox.SpeechRuleEngine.getInstance().parameterize(cvox.MathmlStore.getInstance());b=cvox.MathStore.createDynamicConstraint(cvox.TraverseMath.getInstance().domain,cvox.TraverseMath.getInstance().style);cvox.SpeechRuleEngine.getInstance().setDynamicConstraint(b);return new cvox.MathShifter(a)}return null};cvox.TableUtil={};cvox.TableUtil.checkIfHeader=function(a){return"TH"==a.tagName||a.hasAttribute("scope")||a.hasAttribute("role")&&("rowheader"==a.getAttribute("role")||"columnheader"==a.getAttribute("role"))};
+cvox.TableUtil.determineColGroups=function(a){var b=[];if(0==a.length)return b;for(var c=0;c<a.length;c++){var d=a[c],e=cvox.TableUtil.getColNodes(d);if(0<e.length)for(d=0;d<e.length;d++){var f=e[d];if(f.hasAttribute("span"))for(var f=parseInt(f.getAttribute("span"),10),g=0;g<f;g++)b.push(c);else b.push(c)}else if(d.hasAttribute("span"))for(f=parseInt(d.getAttribute("span"),10),g=0;g<f;g++)b.push(c);else b.push(c)}return b};cvox.TableUtil.pushIfNotContained=function(a,b){-1==a.indexOf(b)&&a.push(b)};
+cvox.TableUtil.getChildRows=function(a){return cvox.XpathUtil.evalXPath('child::tbody/tr | child::thead/tr | child::*[attribute::role="row"]',a)};cvox.TableUtil.getChildCells=function(a){return cvox.XpathUtil.evalXPath('child::td | child::th | child::*[attribute::role="gridcell"] |child::*[attribute::role="rowheader"] |child::*[attribute::role="columnheader"]',a)};cvox.TableUtil.getCellWithID=function(a,b){return cvox.XpathUtil.evalXPath("id('"+b+"')",a)};
+cvox.TableUtil.getColGroups=function(a){return cvox.XpathUtil.evalXPath("child::colgroup",a)};cvox.TableUtil.getColNodes=function(a){return cvox.XpathUtil.evalXPath("child::col",a)};function ShadowTableNode(){}ShadowTableNode.prototype.rowHeaderCells=[];ShadowTableNode.prototype.colHeaderCells=[];cvox.TraverseTable=function(a){this.activeTable_=null;this.shadowTable_=[];this.candidateHeaders_=[];this.idToShadowNode_=[];this.initialize(a)};cvox.TraverseTable.prototype.colCount=null;cvox.TraverseTable.prototype.rowCount=null;cvox.TraverseTable.prototype.tableRowHeaders=null;cvox.TraverseTable.prototype.tableColHeaders=null;
+cvox.TraverseTable.prototype.initialize=function(a){a&&a!=this.activeTable_&&(this.activeTable_=a,this.currentCellCursor=null,this.tableRowHeaders=[],this.tableColHeaders=[],this.buildShadowTable_(),this.colCount=this.shadowColCount_(),this.rowCount=this.countRows_(),this.findHeaderCells_(),this.activeTable_.addEventListener("DOMSubtreeModified",goog.bind(function(){this.buildShadowTable_();this.colCount=this.shadowColCount_();this.rowCount=this.countRows_();this.tableRowHeaders=[];this.tableColHeaders=
+[];this.findHeaderCells_();0==this.colCount&&0==this.rowCount||null!=this.getCell()||this.attachCursorToNearestCell_()},this),!1))};
+cvox.TraverseTable.prototype.findNearestCursor=function(a){for(;a.firstElementChild&&"TABLE"!=a.firstElementChild.tagName&&!cvox.AriaUtil.isGrid(a.firstElementChild);)a=a.firstElementChild;for(;!cvox.DomPredicates.cellPredicate(cvox.DomUtil.getAncestors(a));)if(a=cvox.DomUtil.directedNextLeafNode(a),!cvox.DomUtil.getContainingTable(a,{allowCaptions:!0}))return null;for(var b=0;b<this.rowCount;++b)for(var c=0;c<this.colCount;++c)if(this.shadowTable_[b][c]&&cvox.DomUtil.isDescendantOfNode(a,this.shadowTable_[b][c].activeCell))return[b,
+c];return null};cvox.TraverseTable.prototype.attachCursorToNearestCell_=function(){if(this.currentCellCursor){var a=this.currentCellCursor,b=this.shadowTable_[a[0]];if(b)this.currentCellCursor=[a[0],b.length-1];else if(b=this.shadowTable_.length,0==b)this.currentCellCursor=null;else{var c=this.shadowTable_[b-1][a[1]];c?this.currentCellCursor=[b-1,a[1]]:this.goToLastCell()}}else this.goToLastCell()};
+cvox.TraverseTable.prototype.buildShadowTable_=function(){this.shadowTable_=[];for(var a=cvox.TableUtil.getChildRows(this.activeTable_),b=null,c=null,d=cvox.TableUtil.getColGroups(this.activeTable_),d=cvox.TableUtil.determineColGroups(d),e=0;e<a.length;e++)this.shadowTable_.push([]);for(e=0;e<a.length;e++)for(var f=cvox.TableUtil.getChildCells(a[e]),g=0,h=0;g<f.length;)if(null==this.shadowTable_[e][h]){var k=f[g],l=1,m=1;k.hasAttribute("colspan")&&(l=parseInt(k.getAttribute("colspan"),10),isNaN(l)||
+0>=l)&&(l=1);k.hasAttribute("rowspan")&&(m=parseInt(k.getAttribute("rowspan"),10),isNaN(m)||0>=m)&&(m=1);for(var p=0;p<m;p++)for(var q=0;q<l;q++){var n=new ShadowTableNode;0==p&&0==q?(n.spanned=!1,n.rowSpan=!1,n.colSpan=!1):(n.spanned=!0,n.rowSpan=1<m,n.colSpan=1<l);n.i=e;n.j=h;n.activeCell=k;n.rowHeaderCells=[];n.colHeaderCells=[];n.isRowHeader=!1;n.isColHeader=!1;cvox.TableUtil.checkIfHeader(n.activeCell)?this.candidateHeaders_.push(n):n.activeCell.hasAttribute("headers")&&this.candidateHeaders_.push(n);
+null==b?(b=a[e].parentNode,c=0):a[e].parentNode!=b&&(b=a[e].parentNode,c+=1);n.rowGroup=c;n.colGroup=0<d.length?d[h]:0;n.spanned||null!=k.id&&(this.idToShadowNode_[k.id]=n);this.shadowTable_[e+p][h+q]=n}h+=l;g++}else h+=1;return this.shadowTable_};
+cvox.TraverseTable.prototype.findHeaderCells_=function(){for(var a=0;a<this.candidateHeaders_.length;a++){var b=this.candidateHeaders_[a],c=b.activeCell,d=null,e=null;if(!b.spanned){"TH"!=c.tagName||c.hasAttribute("scope")?c.hasAttribute("scope")?e=c.getAttribute("scope"):c.hasAttribute("role")&&"rowheader"==c.getAttribute("role")?e="row":c.hasAttribute("role")&&"columnheader"==c.getAttribute("role")&&(e="col"):(0<b.j?"TH"==this.shadowTable_[b.i][b.j-1].activeCell.tagName&&(d="col"):b.j<this.shadowTable_[b.i].length-
+1?"TH"==this.shadowTable_[b.i][b.j+1].activeCell.tagName&&(d="col"):d="col",null==d&&(0<b.i?"TH"==this.shadowTable_[b.i-1][b.j].activeCell.tagName&&(d="row"):b.i<this.shadowTable_.length-1?"TH"==this.shadowTable_[b.i+1][b.j].activeCell.tagName&&(d="row"):d="row"));if("row"==e||"row"==d){b.isRowHeader=!0;for(d=b.j;d<this.shadowTable_[b.i].length;d++)e=this.shadowTable_[b.i][d],e.rowHeaderCells.push(c);this.tableRowHeaders.push(c)}else if("col"==e||"col"==d){b.isColHeader=!0;for(e=b.i;e<this.shadowTable_.length;e++){d=
+this.shadowTable_[e][b.j];if(null==d)break;d.colHeaderCells.push(c)}this.tableColHeaders.push(c)}else if("rowgroup"==e){b.isRowHeader=!0;for(var f=b.rowGroup,d=b.j+1;d<this.shadowTable_[b.i].length;d++)this.shadowTable_[b.i][d].rowHeaderCells.push(c);for(e=b.i+1;e<this.shadowTable_.length&&this.shadowTable_[e][0].rowGroup==f;e++)for(d=0;d<this.shadowTable_[e].length;d++)this.shadowTable_[e][d].rowHeaderCells.push(c);this.tableRowHeaders.push(c)}else if("colgroup"==e){b.isColHeader=!0;f=b.colGroup;
+for(d=b.j+1;d<this.shadowTable_[b.i].length;d++)this.shadowTable_[b.i][d].colGroup==f&&this.shadowTable_[b.i][d].colHeaderCells.push(c);for(e=b.i+1;e<this.shadowTable_.length;e++)for(d=0;d<this.shadowTable_[e].length;d++)this.shadowTable_[e][d].colGroup==f&&this.shadowTable_[e][d].colHeaderCells.push(c);this.tableColHeaders.push(c)}c.hasAttribute("headers")&&this.findAttrbHeaders_(b);c.hasAttribute("aria-describedby")&&this.findAttrbDescribedBy_(b)}}};
+cvox.TraverseTable.prototype.findAttrbHeaders_=function(a){for(var b=a.activeCell,c=b.getAttribute("headers").split(" "),d=0;d<c.length;d++)for(var e=cvox.TableUtil.getCellWithID(this.activeTable_,c[d]),f=0;f<e.length&&e[f].id!=b.id;f++){var g=this.idToShadowNode_[e[f].id];if(!cvox.TableUtil.checkIfHeader(g.activeCell)){var h=Math.abs(g.i-a.i),k=Math.abs(g.j-a.j);0==h||h<k?(cvox.TableUtil.pushIfNotContained(a.rowHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableRowHeaders,g.activeCell)):
+(cvox.TableUtil.pushIfNotContained(a.colHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableColHeaders,g.activeCell))}}};
+cvox.TraverseTable.prototype.findAttrbDescribedBy_=function(a){for(var b=a.activeCell,c=b.getAttribute("aria-describedby").split(" "),d=0;d<c.length;d++)for(var e=cvox.TableUtil.getCellWithID(this.activeTable_,c[d]),f=0;f<e.length&&e[f].id!=b.id;f++){var g=this.idToShadowNode_[e[f].id];cvox.TableUtil.checkIfHeader(g.activeCell)||(g.activeCell.hasAttribute("role")&&"rowheader"==g.activeCell.getAttribute("role")?(cvox.TableUtil.pushIfNotContained(a.rowHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableRowHeaders,
+g.activeCell)):g.activeCell.hasAttribute("role")&&"columnheader"==g.activeCell.getAttribute("role")&&(cvox.TableUtil.pushIfNotContained(a.colHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableColHeaders,g.activeCell)))}};cvox.TraverseTable.prototype.getCell=function(){if(!this.currentCellCursor||!this.shadowTable_)return null;var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a&&a.activeCell};
+cvox.TraverseTable.prototype.getCellAt=function(a){return a[0]<this.rowCount&&0<=a[0]&&a[1]<this.colCount&&0<=a[1]&&(a=this.shadowTable_[a[0]][a[1]],null!=a)?a.activeCell:null};cvox.TraverseTable.prototype.getCellRowHeaders=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.rowHeaderCells};cvox.TraverseTable.prototype.getCellColHeaders=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.colHeaderCells};
+cvox.TraverseTable.prototype.isSpanned=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.spanned};cvox.TraverseTable.prototype.isRowHeader=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.isRowHeader};cvox.TraverseTable.prototype.isColHeader=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.isColHeader};
+cvox.TraverseTable.prototype.getCol=function(){for(var a=[],b=0;b<this.shadowTable_.length;b++)if(this.shadowTable_[b][this.currentCellCursor[1]]){var c=this.shadowTable_[b][this.currentCellCursor[1]];if(c.colSpan&&c.rowSpan){var d=a[a.length-1];d!=c.activeCell&&a.push(c.activeCell)}else!c.colSpan&&c.rowSpan||a.push(c.activeCell)}return a};cvox.TraverseTable.prototype.summaryText=function(){return this.activeTable_.hasAttribute("summary")?this.activeTable_.getAttribute("summary"):null};
+cvox.TraverseTable.prototype.shadowColCount_=function(){for(var a=0,b=0;b<this.shadowTable_.length;b++)this.shadowTable_[b].length>a&&(a=this.shadowTable_[b].length);return a};cvox.TraverseTable.prototype.countRows_=function(){var a=cvox.TableUtil.getChildRows(this.activeTable_);return a.length};cvox.TraverseTable.prototype.nextRow=function(){return this.currentCellCursor?this.goToRow(this.currentCellCursor[0]+1):this.goToRow(0)};
+cvox.TraverseTable.prototype.nextCol=function(){return this.currentCellCursor?this.goToCol(this.currentCellCursor[1]+1):this.goToCol(0)};cvox.TraverseTable.prototype.goToRow=function(a){return null!=this.shadowTable_[a]?(this.currentCellCursor=null==this.currentCellCursor?[a,0]:[a,this.currentCellCursor[1]],!0):!1};cvox.TraverseTable.prototype.goToCol=function(a){if(0>a||a>=this.colCount)return!1;this.currentCellCursor=null==this.currentCellCursor?[0,a]:[this.currentCellCursor[0],a];return!0};
+cvox.TraverseTable.prototype.goToCell=function(a){if(a[0]<this.rowCount&&0<=a[0]&&a[1]<this.colCount&&0<=a[1]){var b=this.shadowTable_[a[0]][a[1]];if(null!=b)return this.currentCellCursor=a,!0}return!1};cvox.TraverseTable.prototype.goToLastCell=function(){var a=this.shadowTable_.length;if(0==a)return!1;var b=this.shadowTable_[a-1],a=[a-1,b.length-1],b=this.shadowTable_[a[0]][a[1]];return null!=b?(this.currentCellCursor=a,!0):!1};
+cvox.TraverseTable.prototype.goToRowLastCell=function(){var a=this.currentCellCursor[0],a=[a,this.shadowTable_[a].length-1],b=this.shadowTable_[a[0]][a[1]];return null!=b?(this.currentCellCursor=a,!0):!1};cvox.TraverseTable.prototype.goToColLastCell=function(){var a=this.getCol(),a=[a.length-1,this.currentCellCursor[1]],b=this.shadowTable_[a[0]][a[1]];return null!=b?(this.currentCellCursor=a,!0):!1};cvox.TableWalker=function(){this.tt=new cvox.TraverseTable(null)};goog.inherits(cvox.TableWalker,cvox.AbstractWalker);cvox.TableWalker.prototype.next=function(a){return this.nextRow(a)};cvox.TableWalker.prototype.sync=function(a){return this.goTo_(a,goog.bind(function(a){return this.tt.goToCell(a)},this))};
+cvox.TableWalker.prototype.getDescription=function(a,b){var c=this.syncPosition_(b);if(!c)return[];this.tt.goToCell(c);c=cvox.DescriptionUtil.getCollectionDescription(a,b);0==c.length&&c.push(new cvox.NavDescription({annotation:cvox.ChromeVox.msgs.getMsg("empty_cell")}));return c};cvox.TableWalker.prototype.getBraille=function(a,b){new cvox.NavBraille({});var c=this.syncPosition_(b);if(c){var d=cvox.BrailleUtil.getTemplated(a.start.node,b.start.node);d.append(" "+ ++c[0]+"/"+ ++c[1])}return new cvox.NavBraille({text:d})};
+cvox.TableWalker.prototype.goToFirstCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToCell([0,0])},this))};cvox.TableWalker.prototype.goToLastCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToLastCell()},this))};cvox.TableWalker.prototype.goToRowFirstCell=function(a){return this.goTo_(a,goog.bind(function(a){return this.tt.goToCell([a[0],0])},this))};
+cvox.TableWalker.prototype.goToRowLastCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToRowLastCell()},this))};cvox.TableWalker.prototype.goToColFirstCell=function(a){return this.goTo_(a,goog.bind(function(a){return this.tt.goToCell([0,a[1]])},this))};cvox.TableWalker.prototype.goToColLastCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToColLastCell()},this))};
+cvox.TableWalker.prototype.nextRow=function(a){return this.goTo_(a,goog.bind(function(b){return this.tt.goToCell([b[0]+(a.isReversed()?-1:1),b[1]])},this))};cvox.TableWalker.prototype.nextCol=function(a){return this.goTo_(a,goog.bind(function(b){return this.tt.goToCell([b[0],b[1]+(a.isReversed()?-1:1)])},this))};cvox.TableWalker.prototype.announceHeaders=function(a){cvox.ChromeVox.tts.speak(this.getHeaderText_(a),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION);return a};
+cvox.TableWalker.prototype.speakTableLocation=function(a){cvox.ChromeVox.navigationManager.speakDescriptionArray(this.getLocationDescription_(a),cvox.AbstractTts.QUEUE_MODE_FLUSH,null);return a};cvox.TableWalker.prototype.exitShifterContent=function(a){a=this.getTableNode_(a);if(!a)return null;a=cvox.DomUtil.directedNextLeafNode(a,!1);return cvox.CursorSelection.fromNode(a)};
+cvox.TableWalker.prototype.getHeaderText_=function(a){this.tt.initialize(this.getTableNode_(a));return(a=this.tt.findNearestCursor(a.start.node))&&this.tt.goToCell(a)?this.getRowHeaderText_(a)+" "+this.getColHeaderText_(a):cvox.ChromeVox.msgs.getMsg("not_inside_table")};cvox.TableWalker.prototype.getLocationDescription_=function(a){a=this.getLocationInfo(a);return null==a?null:[new cvox.NavDescription({text:cvox.ChromeVox.msgs.getMsg("table_location",a)})]};
+cvox.TableWalker.prototype.getRowHeaderText_=function(a){var b="",c=this.tt.getCellRowHeaders();if(0==c.length)return c=this.tt.getCellAt([a[0],0]),b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c)+" "+cvox.DomUtil.getName(c)),cvox.ChromeVox.msgs.getMsg("row_header")+b;for(a=0;a<c.length;++a)b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c[a])+" "+cvox.DomUtil.getName(c[a]));return""==b?cvox.ChromeVox.msgs.getMsg("empty_row_header"):cvox.ChromeVox.msgs.getMsg("row_header")+b};
+cvox.TableWalker.prototype.getColHeaderText_=function(a){var b="",c=this.tt.getCellColHeaders();if(0==c.length)return c=this.tt.getCellAt([0,a[1]]),b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c)+" "+cvox.DomUtil.getName(c)),cvox.ChromeVox.msgs.getMsg("column_header")+b;for(a=0;a<c.length;++a)b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c[a])+" "+cvox.DomUtil.getName(c[a]));return""==b?cvox.ChromeVox.msgs.getMsg("empty_row_header"):cvox.ChromeVox.msgs.getMsg("column_header")+
+b};cvox.TableWalker.prototype.getLocationInfo=function(a){this.tt.initialize(this.getTableNode_(a));return(a=this.tt.findNearestCursor(a.start.node))?[a[0]+1,this.tt.rowCount,a[1]+1,this.tt.colCount].map(function(a){return cvox.ChromeVox.msgs.getNumber(a)}):null};
+cvox.TableWalker.prototype.goTo_=function(a,b){this.tt.initialize(this.getTableNode_(a));var c=this.tt.findNearestCursor(a.end.node);if(!c)return null;this.tt.goToCell(c);return b(c)?cvox.CursorSelection.fromNode(this.tt.getCell()).setReversed(a.isReversed()):null};cvox.TableWalker.prototype.getTableNode_=function(a){return cvox.DomUtil.getContainingTable(a.end.node)};cvox.TableWalker.prototype.syncPosition_=function(a){var b=this.getTableNode_(a);this.tt.initialize(b);return this.tt.findNearestCursor(a.end.node)};cvox.ColumnWalker=function(){cvox.TableWalker.call(this)};goog.inherits(cvox.ColumnWalker,cvox.TableWalker);cvox.ColumnWalker.prototype.next=function(a){return this.nextCol(a)};cvox.ColumnWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("column_granularity")};cvox.RowWalker=function(){cvox.TableWalker.call(this)};goog.inherits(cvox.RowWalker,cvox.TableWalker);cvox.RowWalker.prototype.next=function(a){return this.nextRow(a)};cvox.RowWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("row_granularity")};cvox.TableShifter=function(){this.rowWalker_=new cvox.RowWalker;this.columnWalker_=new cvox.ColumnWalker;this.currentWalker_=this.rowWalker_;this.bumpedEdge_=!1;this.begin_=!0;cvox.AbstractShifter.call(this)};goog.inherits(cvox.TableShifter,cvox.AbstractShifter);cvox.TableShifter.prototype.next=function(a){var b=this.currentWalker_.next(a);return b?b:(this.bumpedEdge_=!0,a)};
+cvox.TableShifter.prototype.sync=function(a){return"TABLE"==a.start.node.tagName?a.isReversed()?this.currentWalker_.goToLastCell(a):this.currentWalker_.goToFirstCell(a):this.currentWalker_.sync(a)};cvox.TableShifter.prototype.getName=function(){return cvox.ChromeVox.msgs.getMsg("table_shifter")};
+cvox.TableShifter.prototype.getDescription=function(a,b){var c=this.currentWalker_.getDescription(a,b);if(0<c.length&&(this.bumpedEdge_&&(c[0].pushEarcon(cvox.AbstractEarcons.WRAP_EDGE),this.bumpedEdge_=!1),this.begin_)){var d=this.currentWalker_.tt.summaryText(),e=this.currentWalker_.getLocationInfo(b);null!=e&&c.push(new cvox.NavDescription({context:cvox.ChromeVox.msgs.getMsg("table_location",e),text:"",annotation:d?d+" ":""}));this.currentWalker_.tt.isSpanned()&&c.push(new cvox.NavDescription({text:"",
+annotation:cvox.ChromeVox.msgs.getMsg("spanned")}));this.begin_=!1}return c};cvox.TableShifter.prototype.getBraille=function(a,b){return this.currentWalker_.getBraille(a,b)};cvox.TableShifter.prototype.getGranularityMsg=function(){return this.currentWalker_.getGranularityMsg()};cvox.TableShifter.prototype.makeLessGranular=function(){cvox.TableShifter.superClass_.makeLessGranular.call(this);this.currentWalker_=this.rowWalker_};
+cvox.TableShifter.prototype.makeMoreGranular=function(){cvox.TableShifter.superClass_.makeMoreGranular.call(this);this.currentWalker_=this.columnWalker_};cvox.TableShifter.create=function(a){a=cvox.DomUtil.getAncestors(a.start.node);return cvox.DomPredicates.tablePredicate(a)&&!cvox.DomPredicates.captionPredicate(a)?new cvox.TableShifter:null};cvox.NavigationHistory=function(){this.reset_()};cvox.NavigationHistory.MAX_HISTORY_LEN_=30;cvox.NavigationHistory.prototype.reset_=function(){var a=document.body;this.history_=[a];this.arrivedValid_=!0};cvox.NavigationHistory.prototype.update=function(a){var b=this.history_[0];a&&a!=b&&this.history_.unshift(a);this.history_.length>cvox.NavigationHistory.MAX_HISTORY_LEN_&&this.history_.pop();this.arrivedValid_=this.isValidNode_(a)};
+cvox.NavigationHistory.prototype.becomeInvalid=function(a){this.clean_();return this.arrivedValid_?!this.isValidNode_(a):(this.arrivedValid_=!0,!1)};cvox.NavigationHistory.prototype.revert=function(a){var b=document.activeElement;b!=document.body&&this.isValidNode_(b)&&this.update(b);if(a)for(;0<this.history_.length;){b=this.history_[0];if(a(b))break;this.history_.shift()}return{current:this.history_[0],previous:this.history_[1]}};
+cvox.NavigationHistory.prototype.clean_=function(){for(var a=!1,b=this.history_.length-1;0<=b;b--){var c=this.isValidNode_(this.history_[b]);c||(this.history_.splice(b,1),a=!0)}return a};cvox.NavigationHistory.prototype.isValidNode_=function(a){return cvox.DomUtil.isAttachedToDocument(a)&&cvox.DomUtil.isVisible(a)?!0:!1};cvox.TraverseContent=function(a){this.currentDomObj=null!=a?a:document.body;var b=document.createRange();try{b.selectNode(this.currentDomObj),this.startCursor_=new cvox.Cursor(b.startContainer,b.startOffset,cvox.TraverseUtil.getNodeText(b.startContainer)),this.endCursor_=new cvox.Cursor(b.endContainer,b.endOffset,cvox.TraverseUtil.getNodeText(b.endContainer))}catch(c){window.console.log("Error: Unselectable node:"),window.console.log(a)}};goog.addSingletonGetter(cvox.TraverseContent);
+cvox.TraverseContent.prototype.lastSelectionWasWhitespace=!1;cvox.TraverseContent.prototype.skipWhitespace=!1;cvox.TraverseContent.prototype.skipInvalidSelections=!0;cvox.TraverseContent.prototype.breakAtLinks=!0;cvox.TraverseContent.kCharacter="character";cvox.TraverseContent.kWord="word";cvox.TraverseContent.kSentence="sentence";cvox.TraverseContent.kLine="line";cvox.TraverseContent.kParagraph="paragraph";
+cvox.TraverseContent.kAllGrains=[cvox.TraverseContent.kParagraph,cvox.TraverseContent.kSentence,cvox.TraverseContent.kLine,cvox.TraverseContent.kWord,cvox.TraverseContent.kCharacter];cvox.TraverseContent.prototype.syncToCursorSelection=function(a){this.startCursor_=a.start.clone();this.endCursor_=a.end.clone()};cvox.TraverseContent.prototype.getCurrentCursorSelection=function(){return new cvox.CursorSelection(this.startCursor_,this.endCursor_)};
+cvox.TraverseContent.prototype.updateSelection=function(){cvox.TraverseUtil.setSelection(this.startCursor_,this.endCursor_);cvox.SelectionUtil.scrollToSelection(window.getSelection())};cvox.TraverseContent.prototype.getCurrentRange=function(){var a=document.createRange();try{a.setStart(this.startCursor_.node,this.startCursor_.index),a.setEnd(this.endCursor_.node,this.endCursor_.index)}catch(b){console.log("Invalid range ")}return a};cvox.TraverseContent.prototype.getCurrentText=function(){return cvox.SelectionUtil.getRangeText(this.getCurrentRange())};
+cvox.TraverseContent.prototype.collapseToEnd=function(){this.startCursor_=this.endCursor_.clone()};cvox.TraverseContent.prototype.collapseToStart=function(){this.endCursor_=this.startCursor_.clone()};
+cvox.TraverseContent.prototype.moveNext=function(a){var b=this.getBreakTags(),c=this.skipWhitespace,d=this.getCurrentRange();cvox.SelectionUtil.isRangeValid(d)||(c=!0);var e=[],f=[];do{a===cvox.TraverseContent.kSentence?d=cvox.TraverseUtil.getNextSentence(this.startCursor_,this.endCursor_,e,f,b):a===cvox.TraverseContent.kWord?d=cvox.TraverseUtil.getNextWord(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kCharacter?d=cvox.TraverseUtil.getNextChar(this.startCursor_,this.endCursor_,
+e,f,c):a===cvox.TraverseContent.kParagraph?d=cvox.TraverseUtil.getNextParagraph(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kLine?d=cvox.TraverseUtil.getNextLine(this.startCursor_,this.endCursor_,e,f,b):(window.console.log('Invalid selection granularity: "'+a+'"'),a=cvox.TraverseContent.kSentence,d=cvox.TraverseUtil.getNextSentence(this.startCursor_,this.endCursor_,e,f,b));if(null==d)return null;var d=this.getCurrentRange(),g=!d.getBoundingClientRect()}while(this.skipInvalidSelections&&
+g);if(cvox.SelectionUtil.isRangeValid(d))this.lastSelectionWasWhitespace=!1;else if(this.lastSelectionWasWhitespace||a!=cvox.TraverseContent.kCharacter)for(;!cvox.SelectionUtil.isRangeValid(this.getCurrentRange())&&null!=this.moveNext(a););else this.lastSelectionWasWhitespace=!0;return this.getCurrentText()};
+cvox.TraverseContent.prototype.movePrev=function(a){var b=this.getBreakTags(),c=this.skipWhitespace,d=this.getCurrentRange();cvox.SelectionUtil.isRangeValid(d)||(c=!0);var e=[],f=[];do{a===cvox.TraverseContent.kSentence?d=cvox.TraverseUtil.getPreviousSentence(this.startCursor_,this.endCursor_,e,f,b):a===cvox.TraverseContent.kWord?d=cvox.TraverseUtil.getPreviousWord(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kCharacter?d=cvox.TraverseUtil.getPreviousChar(this.startCursor_,this.endCursor_,
+e,f,c):a===cvox.TraverseContent.kParagraph?d=cvox.TraverseUtil.getPreviousParagraph(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kLine?d=cvox.TraverseUtil.getPreviousLine(this.startCursor_,this.endCursor_,e,f,b):(window.console.log('Invalid selection granularity: "'+a+'"'),a=cvox.TraverseContent.kSentence,d=cvox.TraverseUtil.getPreviousSentence(this.startCursor_,this.endCursor_,e,f,b));if(null==d)return null;var d=this.getCurrentRange(),g=!d.getBoundingClientRect()}while(this.skipInvalidSelections&&
+g);if(cvox.SelectionUtil.isRangeValid(d))this.lastSelectionWasWhitespace=!1;else if(this.lastSelectionWasWhitespace||a!=cvox.TraverseContent.kCharacter)for(;!cvox.SelectionUtil.isRangeValid(this.getCurrentRange())&&null!=this.movePrev(a););else this.lastSelectionWasWhitespace=!0;return this.getCurrentText()};cvox.TraverseContent.prototype.getBreakTags=function(){return{A:this.breakAtLinks,BR:!0,HR:!0}};
+cvox.TraverseContent.prototype.nextElement=function(a,b){null!=b&&(this.currentDomObj=b);var c=this.moveNext(a);return null==c||cvox.DomUtil.isDescendantOfNode(this.startCursor_.node,this.currentDomObj)&&cvox.DomUtil.isDescendantOfNode(this.endCursor_.node,this.currentDomObj)?c:null};
+cvox.TraverseContent.prototype.prevElement=function(a,b){null!=b&&(this.currentDomObj=b);var c=this.movePrev(a);return null==c||cvox.DomUtil.isDescendantOfNode(this.startCursor_.node,this.currentDomObj)&&cvox.DomUtil.isDescendantOfNode(this.endCursor_.node,this.currentDomObj)?c:null};cvox.TraverseContent.prototype.reset=function(){window.getSelection().removeAllRanges()};cvox.AbstractSelectionWalker=function(){this.objWalker_=new cvox.BareObjectWalker;this.tc_=cvox.TraverseContent.getInstance();this.grain=""};goog.inherits(cvox.AbstractSelectionWalker,cvox.AbstractWalker);
+cvox.AbstractSelectionWalker.prototype.next=function(a){var b=a.isReversed();this.tc_.syncToCursorSelection(a.clone().setReversed(!1));var c=b?this.tc_.prevElement(this.grain):this.tc_.nextElement(this.grain);if(null==c)return this.objWalker_.next(a);var c=this.tc_.getCurrentCursorSelection().setReversed(b),d=this.objWalker_.next(a),d=d?d.setReversed(b):null;return!d||"Text"==c.end.node.constructor.name&&"Text"==d.end.node.constructor.name||cvox.DomUtil.isDescendantOfNode(c.end.node,a.end.node)||
+cvox.DomUtil.isDescendantOfNode(c.end.node,d.end.node)?c:d};
+cvox.AbstractSelectionWalker.prototype.sync=function(a){var b=a.isReversed(),c=null;if(a.start.equals(a.end)&&"Text"!=a.start.node.constructor.name){for(c=a.start.node;c&&cvox.DomUtil.directedFirstChild(c,b)&&!cvox.TraverseUtil.treatAsLeafNode(c);){for(var d=cvox.DomUtil.directedFirstChild(c,b);d;)if(cvox.DomUtil.isVisible(d,{checkAncestors:!1,checkDescendants:!1})){c=d;break}else d=cvox.DomUtil.directedNextSibling(d,b);if(!d)break}c=cvox.CursorSelection.fromNode(c)}else c=a.clone(),b?c.start=c.end:
+c.end=c.start;c=this.next(c.setReversed(!1));d=(d=this.objWalker_.sync(a))?d.setReversed(b):null;if(!c)return d;c.setReversed(b);return!d||"Text"==c.end.node.constructor.name&&"Text"==d.end.node.constructor.name||cvox.DomUtil.isDescendantOfNode(c.end.node,a.end.node)||cvox.DomUtil.isDescendantOfNode(c.end.node,d.end.node)?c:d};
+cvox.AbstractSelectionWalker.prototype.getDescription=function(a,b){var c=cvox.DescriptionUtil.getDescriptionFromAncestors(cvox.DomUtil.getUniqueAncestors(a.end.node,b.start.node),!0,cvox.ChromeVox.verbosity);c.text=b.getText()||c.text;return[c]};cvox.AbstractSelectionWalker.prototype.getBraille=function(a,b){var c=b.absStart().node,d=cvox.TraverseUtil.getNodeText(c),e=new cvox.Spannable(d);e.setSpan(c,0,d.length);return new cvox.NavBraille({text:e,startIndex:b.absStart().index,endIndex:b.absEnd().index})};cvox.CharacterWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kCharacter};goog.inherits(cvox.CharacterWalker,cvox.AbstractSelectionWalker);cvox.CharacterWalker.prototype.getDescription=function(a,b){var c=cvox.CharacterWalker.superClass_.getDescription.call(this,a,b);c.forEach(function(a){a.personality||(a.personality={});a.personality.phoneticCharacters=!0});return c};cvox.CharacterWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("character_granularity")};cvox.GroupUtil={};cvox.GroupUtil.MAX_CHARCOUNT_=1500;cvox.GroupUtil.BREAKOUT_SELECTOR_='blockquote,button,code,form,frame,h1,h2,h3,h4,h5,h6,hr,iframe,input,object,ol,p,pre,select,table,tr,ul,math,span.math,[role~="alert alertdialog button checkbox combobox dialog log marquee menubar progressbar radio radiogroup scrollbar slider spinbutton status tab tabpanel textbox toolbar tooltip treeitem article document group heading img list math region row separator"]';
+cvox.GroupUtil.isLeafNode=function(a){if("LABEL"==a.tagName)return cvox.DomUtil.isLeafNode(a);if(cvox.DomUtil.isLeafNode(a))return!0;if(!cvox.DomUtil.isSemanticElt(a))for(var b=a.querySelectorAll(cvox.GroupUtil.BREAKOUT_SELECTOR_),c=0;c<b.length;++c)if(cvox.DomUtil.hasContent(b[c]))return!1;if(cvox.AriaUtil.isCompositeControl(a)&&!cvox.DomUtil.isFocusable(a))return!1;a=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getName(a));return a.length>cvox.GroupUtil.MAX_CHARCOUNT_||
+""===a.replace(/\s/g,"")?!1:!0};cvox.GroupWalker=function(){cvox.AbstractNodeWalker.call(this)};goog.inherits(cvox.GroupWalker,cvox.AbstractNodeWalker);cvox.GroupWalker.prototype.getDescription=function(a,b){return cvox.DescriptionUtil.getCollectionDescription(a,b)};cvox.GroupWalker.prototype.getBraille=function(){throw"getBraille is unsupported";};cvox.GroupWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("group_strategy")};cvox.GroupWalker.prototype.stopNodeDescent=function(a){return cvox.GroupUtil.isLeafNode(a)};cvox.StructuralLineWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kLine};goog.inherits(cvox.StructuralLineWalker,cvox.AbstractSelectionWalker);cvox.StructuralLineWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("structural_line")};
+cvox.StructuralLineWalker.prototype.getDescription=function(a,b){var c=cvox.StructuralLineWalker.superClass_.getDescription.call(this,a,b);c[0].text=cvox.DomUtil.getPrefixText(b.absStart().node,b.absStart().index)+c[0].text;return c};
+cvox.StructuralLineWalker.prototype.getBraille=function(a,b){var c=cvox.StructuralLineWalker.superClass_.getBraille.call(this,a,b),d=this.objWalker_.sync(b).absStart().node,e=a.absEnd().node,f=void 0;b.start.equals(b.end)||cvox.DomPredicates.editTextPredicate([d])||(f=cvox.DomUtil.getPrefixText(b.absStart().node,b.absStart().index),f+=b.getText());e=cvox.BrailleUtil.getTemplated(e,d,{name:f});e.setSpan(d,0,e.getLength());c.text=e;c.startIndex=0;c.endIndex=0;return c};cvox.LayoutLineWalker=function(){this.subWalker_=new cvox.StructuralLineWalker};goog.inherits(cvox.LayoutLineWalker,cvox.AbstractWalker);cvox.LayoutLineWalker.prototype.next=function(a){var b=new cvox.CursorSelection(a.end,a.end,a.isReversed()),c=this.subWalker_.sync(b);if(!c)return null;b=this.subWalker_.next(b);if(!b)return null;b.setReversed(a.isReversed());return this.extend_(b).setReversed(!1)};
+cvox.LayoutLineWalker.prototype.sync=function(a){var b=this.subWalker_.sync(a);if(!b)return null;var c=this.extend_(b),b=this.extend_(b.setReversed(!b.isReversed()));return new cvox.CursorSelection(b.end,c.end,a.isReversed())};
+cvox.LayoutLineWalker.prototype.getDescription=function(a,b){var c=[],d=a,e=b.clone().setReversed(!1),f=new cvox.CursorSelection(e.start,e.start),f=this.subWalker_.sync(f);if(!f)return[];if(e.start.node==e.end.node)return this.subWalker_.getDescription(a,b);for(;f&&!f.end.equals(e.end);)c.push.apply(c,this.subWalker_.getDescription(d,f)),d=f,f=this.subWalker_.next(f);f&&c.push.apply(c,this.subWalker_.getDescription(d,f));return c};
+cvox.LayoutLineWalker.prototype.getBraille=function(a,b){var c=new cvox.NavBraille({}),d=this.subWalker_.sync(b.clone().setReversed(!1)),e=this.sync(b).setReversed(!1);if(!e||!d)return c;var f=new cvox.CursorSelection(e.start,e.start),f=this.subWalker_.sync(f);if(!f)return c;for(;f&&!f.end.equals(e.end);)this.appendBraille_(a,d,f,c),a=f,f=this.subWalker_.next(f);f&&this.appendBraille_(a,d,f,c);return c};cvox.LayoutLineWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("layout_line")};
+cvox.LayoutLineWalker.prototype.isVisualLineBreak_=function(a,b){if(this.wantsOwnLine_(a.end.node)||this.wantsOwnLine_(b.start.node))return!0;var c=a.getRange().getBoundingClientRect(),d=b.getRange().getBoundingClientRect();0==c.width&&0==c.height&&a.end.node.nodeType==Node.ELEMENT_NODE&&(c=a.end.node.getBoundingClientRect());0==d.width&&0==d.height&&b.start.node.nodeType==Node.ELEMENT_NODE&&(d=b.start.node.getBoundingClientRect());return c.bottom!=d.bottom};
+cvox.LayoutLineWalker.prototype.wantsOwnLine_=function(a){return a instanceof HTMLTextAreaElement||a.parentNode instanceof HTMLTextAreaElement};cvox.LayoutLineWalker.prototype.extend_=function(a){var b=a,c=a;do b=c,c=this.subWalker_.next(b);while(c&&!this.isVisualLineBreak_(b,c));return new cvox.CursorSelection(a.start,b.end,a.isReversed())};
+cvox.LayoutLineWalker.prototype.appendBraille_=function(a,b,c,d){a=this.subWalker_.getBraille(a,c).text;var e=a.getSpanInstanceOf(cvox.BrailleUtil.ValueSelectionSpan);0<d.text.getLength()&&d.text.append(cvox.BrailleUtil.ITEM_SEPARATOR);for(var f=c.start.node;f.parentNode&&cvox.DomUtil.isLeafNode(f.parentNode);)f=f.parentNode;var g=d.text.getLength(),h=g+a.getLength();d.text.append(a.toString());d.text.setSpan(f,g,h);b&&c.absEquals(b)&&(e?(d.startIndex=g+a.getSpanStart(e),d.endIndex=g+a.getSpanEnd(e)):
+(d.startIndex=g,d.endIndex=g+1))};cvox.ObjectWalker=function(){cvox.AbstractNodeWalker.call(this)};goog.inherits(cvox.ObjectWalker,cvox.AbstractNodeWalker);cvox.ObjectWalker.prototype.stopNodeDescent=function(a){return cvox.DomUtil.isLeafNode(a)};cvox.AbstractNodeWalker.prototype.getDescription=function(a,b){return cvox.DescriptionUtil.getDescriptionFromNavigation(a.end.node,b.start.node,!0,cvox.ChromeVox.verbosity)};cvox.ObjectWalker.prototype.getBraille=function(){throw"getBraille is unsupported";};
+cvox.ObjectWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("object_strategy")};cvox.SentenceWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kSentence};goog.inherits(cvox.SentenceWalker,cvox.AbstractSelectionWalker);cvox.SentenceWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("sentence_granularity")};cvox.WordWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kWord};goog.inherits(cvox.WordWalker,cvox.AbstractSelectionWalker);cvox.WordWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("word_granularity")};cvox.NavigationShifter=function(){this.reset_();cvox.AbstractShifter.call(this)};goog.inherits(cvox.NavigationShifter,cvox.AbstractShifter);cvox.NavigationShifter.GRANULARITIES={CHARACTER:0,WORD:1,LINE:2,SENTENCE:3,OBJECT:4,GROUP:5};cvox.NavigationShifter.prototype.storeOn=function(a){a.granularity=this.getGranularity()};cvox.NavigationShifter.prototype.readFrom=function(a){this.setGranularity(a.granularity)};
+cvox.NavigationShifter.prototype.next=function(a){a=this.currentWalker_.next(a);this.currentWalkerIndex_<=cvox.NavigationShifter.GRANULARITIES.LINE&&a&&(cvox.TraverseContent.getInstance().syncToCursorSelection(a.clone().setReversed(!1)),cvox.TraverseContent.getInstance().updateSelection());return a};cvox.NavigationShifter.prototype.sync=function(a){return this.currentWalker_.sync(a)};cvox.NavigationShifter.prototype.getName=function(){return cvox.ChromeVox.msgs.getMsg("navigation_shifter")};
+cvox.NavigationShifter.prototype.getDescription=function(a,b){return this.currentWalker_.getDescription(a,b)};cvox.NavigationShifter.prototype.getBraille=function(a,b){return this.lineWalker_.getBraille(a,b)};cvox.NavigationShifter.prototype.getGranularityMsg=function(){return this.currentWalker_.getGranularityMsg()};
+cvox.NavigationShifter.prototype.makeMoreGranular=function(){cvox.NavigationShifter.superClass_.makeMoreGranular.call(this);this.currentWalkerIndex_=Math.max(this.currentWalkerIndex_-1,0);cvox.NavigationShifter.allowSentence||this.currentWalkerIndex_!=cvox.NavigationShifter.GRANULARITIES.SENTENCE||this.currentWalkerIndex_--;this.currentWalker_=this.walkers_[this.currentWalkerIndex_]};
+cvox.NavigationShifter.prototype.makeLessGranular=function(){cvox.NavigationShifter.superClass_.makeLessGranular.call(this);this.currentWalkerIndex_=Math.min(this.currentWalkerIndex_+1,this.walkers_.length-1);cvox.NavigationShifter.allowSentence||this.currentWalkerIndex_!=cvox.NavigationShifter.GRANULARITIES.SENTENCE||this.currentWalkerIndex_++;this.currentWalker_=this.walkers_[this.currentWalkerIndex_]};
+cvox.NavigationShifter.prototype.setGranularity=function(a){this.ensureNotSubnavigating();this.currentWalkerIndex_=a;this.currentWalker_=this.walkers_[this.currentWalkerIndex_]};cvox.NavigationShifter.prototype.getGranularity=function(){var a=this.isSubnavigating();this.ensureNotSubnavigating();var b=this.currentWalkerIndex_;a&&this.ensureSubnavigating();return b};
+cvox.NavigationShifter.prototype.hasAction=function(a){return"toggleLineType"==a?!0:cvox.NavigationShifter.superClass_.hasAction.call(this,a)};cvox.NavigationShifter.create=function(){return new cvox.NavigationShifter};
+cvox.NavigationShifter.prototype.reset_=function(){this.groupWalker_=new cvox.GroupWalker;this.objectWalker_=new cvox.ObjectWalker;this.sentenceWalker_=new cvox.SentenceWalker;this.lineWalker_=new cvox.LayoutLineWalker;this.wordWalker_=new cvox.WordWalker;this.characterWalker_=new cvox.CharacterWalker;this.walkers_=[this.characterWalker_,this.wordWalker_,this.lineWalker_,this.sentenceWalker_,this.objectWalker_,this.groupWalker_];this.currentWalkerIndex_=this.walkers_.indexOf(this.groupWalker_);this.currentWalker_=
+this.walkers_[this.currentWalkerIndex_]};cvox.NavigationShifter.allowSentence=!1;cvox.NavigationSpeaker=function(){this.stopReading=!1;this.id_=1};
+cvox.NavigationSpeaker.prototype.speakDescriptionArray=function(a,b,c){a=this.reorderAnnotations(a);this.stopReading=!1;this.id_=(this.id_+1)%1E4;var d=this,e=function(b,g,h){var k=a[b];if(k&&!d.stopReading&&d.id_==h){var l=function(){for(var a=0;a<k.earcons.length;a++)cvox.ChromeVox.earcons.playEarcon(k.earcons[a])},m=function(){e(b+1,cvox.AbstractTts.QUEUE_MODE_QUEUE,h)},p=function(){k.personality&&k.personality[cvox.AbstractTts.PAUSE]&&"number"==typeof k.personality[cvox.AbstractTts.PAUSE]?setTimeout(m,
+k.personality[cvox.AbstractTts.PAUSE]):m();b==a.length-1&&c&&c()};k.isEmpty()?(l(),p()):(k.speak(g,l,p),cvox.ChromeVox.host.hasTtsCallback()||(l(),p()))}};e(0,b,this.id_);0==a.length&&c&&c()};cvox.NavigationSpeaker.structuredElement=function(a){switch(a){case "table":case "Math":return!0}return!1};
+cvox.NavigationSpeaker.prototype.reorderAnnotations=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c];cvox.NavigationSpeaker.structuredElement(d.annotation)&&(b.push(new cvox.NavDescription({text:"",annotation:d.annotation})),d.annotation="");b.push(d)}return b};cvox.NavigationManager=function(){this.addInterframeListener_();this.reset()};cvox.NavigationManager.prototype.storeOn=function(a){a.reversed=this.isReversed();a.keepReading=this.keepReading_;a.findNext=this.predicate_;this.shifter_.storeOn(a)};cvox.NavigationManager.prototype.readFrom=function(a){this.curSel_.setReversed(a.reversed);this.shifter_.readFrom(a);a.keepReading&&this.startReading(cvox.AbstractTts.QUEUE_MODE_FLUSH)};
+cvox.NavigationManager.prototype.reset=function(){this.navSpeaker_=new cvox.NavigationSpeaker;this.shifterTypes_=[cvox.NavigationShifter,cvox.TableShifter,cvox.MathShifter];this.shifterStack_=[];this.shifter_=new cvox.NavigationShifter;this.curSel_=document.activeElement!=document.body?cvox.CursorSelection.fromNode(document.activeElement):this.shifter_.begin(this.curSel_,{reversed:!1});this.prevSel_=this.curSel_.clone();this.ignoreIframesNoMatterWhat_=this.exitedShifter_=this.enteredShifter_=this.pageEndAnnounced_=
+this.pageEnd_=this.keepReading_=this.recovered_=this.skipped_=!1;this.pageSel_=null;this.predicate_="";this.saveSel_=null;this.activeIndicator&&this.activeIndicator.removeFromDom();this.activeIndicator=new cvox.ActiveIndicator;this.navigationHistory_=new cvox.NavigationHistory;this.focusRecovery_="chrome:"!=window.location.protocol;this.iframeIdMap={};this.nextIframeId=1;document.activeElement!=document.body&&this.sync();cvox.TraverseMath.getInstance()};
+cvox.NavigationManager.prototype.resolve=function(a){if(!this.getFocusRecovery())return!0;var b=this.getCurrentNode();if(!this.navigationHistory_.becomeInvalid(b)||this.hasNext_())return!0;b=this.navigationHistory_.revert(a);if(!b.current)return!0;a=cvox.CursorSelection.fromNode(b.current);b=cvox.CursorSelection.fromNode(b.previous);a=a||cvox.CursorSelection.fromBody();b=b||cvox.CursorSelection.fromBody();a.setReversed(this.isReversed());this.updateSel(a,b);this.recovered_=!0;return!1};
+cvox.NavigationManager.prototype.getFocusRecovery=function(){return this.focusRecovery_};cvox.NavigationManager.prototype.setFocusRecovery=function(a){this.focusRecovery_=a};cvox.NavigationManager.prototype.next_=function(a){return this.tryBoundaries_(this.shifter_.next(this.curSel_),a)?(this.pageSel_&&this.pageSel_.extend(this.curSel_),!0):!1};
+cvox.NavigationManager.prototype.hasNext_=function(){if(0<this.shifterStack_.length)return!0;var a=this.curSel_.clone(),b=!1,c=new cvox.NavigationShifter;c.setGranularity(this.shifter_.getGranularity());c.sync(a);c.next(a)&&(b=!0);return b};
+cvox.NavigationManager.prototype.findNext=function(a,b,c){this.predicate_=b||"";this.resolve();this.shifter_=this.shifterStack_[0]||this.shifter_;this.shifterStack_=[];a=cvox.FindUtil.findNext(this.curSel_,a,c);this.ignoreIframesNoMatterWhat_||this.tryIframe_(a&&a.start.node);a&&this.updateSelToArbitraryNode(a.start.node);this.predicate_="";return a};cvox.NavigationManager.prototype.sync=function(){this.resolve();var a=this.shifter_.sync(this.curSel_);a&&(this.curSel_=a)};
+cvox.NavigationManager.prototype.syncAll=function(a){this.sync();this.setFocus(a);this.updateIndicator()};cvox.NavigationManager.prototype.clearPageSel=function(a){var b=!!this.pageSel_;b&&a&&(a=cvox.ChromeVox.msgs.getMsg("clear_page_selection"),cvox.ChromeVox.tts.speak(a,cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION));this.pageSel_=null;return b};
+cvox.NavigationManager.prototype.togglePageSel=function(){this.pageSel_=this.pageSel_?null:new cvox.PageSelection(this.curSel_.setReversed(!1));return!!this.pageSel_};
+cvox.NavigationManager.prototype.getDescription=function(){if(this.getCurrentNode().hasAttribute&&this.getCurrentNode().hasAttribute("cvoxnodedesc")){for(var a=cvox.ChromeVoxJSON.parse(this.getCurrentNode().getAttribute("cvoxnodedesc")),b=[],c=0;c<a.length;++c){var d=a[c];b.push(new cvox.NavDescription({context:d.context,text:d.text,userValue:d.userValue,annotation:d.annotation}))}return b}var e=this.pageSel_?this.pageSel_.getDescription(this.shifter_,this.prevSel_,this.curSel_):this.shifter_.getDescription(this.prevSel_,
+this.curSel_),a=[];this.skipped_&&(a.push(cvox.AbstractEarcons.PARAGRAPH_BREAK),this.skipped_=!1);this.recovered_&&(a.push(cvox.AbstractEarcons.FONT_CHANGE),this.recovered_=!1);this.pageEnd_&&(a.push(cvox.AbstractEarcons.WRAP),this.pageEnd_=!1);this.enteredShifter_&&(a.push(cvox.AbstractEarcons.OBJECT_ENTER),this.enteredShifter_=!1);this.exitedShifter_&&(a.push(cvox.AbstractEarcons.OBJECT_EXIT),this.exitedShifter_=!1);0<a.length&&0<e.length&&a.forEach(function(a){e[0].pushEarcon(a)});return e};
+cvox.NavigationManager.prototype.getBraille=function(){return cvox.PlatformUtil.matchesPlatform(cvox.PlatformFilter.ANDROID|cvox.PlatformFilter.CHROMEOS)?this.shifter_.getBraille(this.prevSel_,this.curSel_):new cvox.NavBraille({})};
+cvox.NavigationManager.prototype.performAction=function(a){switch(a){case "enterShifter":case "enterShifterSilently":for(var b=this.shifterTypes_.length-1,c;c=this.shifterTypes_[b];b--)if((c=c.create(this.curSel_))&&c.getName()!=this.shifter_.getName()){this.shifterStack_.push(this.shifter_);this.shifter_=c;this.sync();this.enteredShifter_="enterShifterSilently"!=a;break}else if(c&&this.shifter_.getName()==c.getName())break;break;case "exitShifter":if(0==this.shifterStack_.length)return!1;this.shifter_=
+this.shifterStack_.pop();this.sync();this.exitedShifter_=!0;break;case "exitShifterContent":if(0==this.shifterStack_.length)return!1;this.updateSel(this.shifter_.performAction(a,this.curSel_));this.shifter_=this.shifterStack_.pop()||this.shifter_;this.sync();this.exitedShifter_=!0;break;default:return this.shifter_.hasAction(a)?this.updateSel(this.shifter_.performAction(a,this.curSel_)):!1}return!0};cvox.NavigationManager.prototype.getGranularityMsg=function(){return this.shifter_.getGranularityMsg()};
+cvox.NavigationManager.prototype.makeMoreGranular=function(a){this.shifter_.makeMoreGranular();this.sync();this.persistGranularity_(a)};cvox.NavigationManager.prototype.makeLessGranular=function(a){this.shifter_.makeLessGranular();this.sync();this.persistGranularity_(a)};cvox.NavigationManager.prototype.setGranularity=function(a,b,c){!b&&0<this.shifterStack_.length||(this.shifter_=this.shifterStack_.shift()||this.shifter_,this.shifter_.setGranularity(a),this.persistGranularity_(c))};
+cvox.NavigationManager.prototype.getGranularity=function(){var a=this.shifterStack_[0]||this.shifter_;return a.getGranularity()};cvox.NavigationManager.prototype.ensureSubnavigating=function(){this.shifter_.isSubnavigating()||(this.shifter_.ensureSubnavigating(),this.sync())};cvox.NavigationManager.prototype.ensureNotSubnavigating=function(){this.shifter_.isSubnavigating()&&(this.shifter_.ensureNotSubnavigating(),this.sync())};
+cvox.NavigationManager.prototype.speakDescriptionArray=function(a,b,c,d){d&&a.every(function(a){a.personality||(a.personality=d)});this.navSpeaker_.speakDescriptionArray(a,b,c)};cvox.NavigationManager.prototype.updatePosition=function(a){var b=cvox.ChromeVox.position;b[document.location.href]=cvox.DomUtil.elementToPoint(a);JSON.stringify(b)};
+cvox.NavigationManager.prototype.finishNavCommand=function(a,b,c,d){if(this.pageEnd_&&!this.pageEndAnnounced_)this.pageEndAnnounced_=!0,cvox.ChromeVox.tts.stop(),cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),cvox.ChromeVox.verbosity===cvox.VERBOSITY_VERBOSE&&(a=cvox.ChromeVox.msgs.getMsg("wrapped_to_top"),this.isReversed()&&(a=cvox.ChromeVox.msgs.getMsg("wrapped_to_bottom")),cvox.ChromeVox.tts.speak(a,cvox.AbstractTts.QUEUE_MODE_QUEUE,cvox.AbstractTts.PERSONALITY_ANNOTATION));else{if(this.enteredShifter_||
+this.exitedShifter_)a=cvox.ChromeVox.msgs.getMsg("enter_content_say",[this.shifter_.getName()]);var e=cvox.ChromeVox.navigationManager.getDescription();(b=void 0===b?!0:b)&&this.setFocus();this.updateIndicator();b=c||cvox.AbstractTts.QUEUE_MODE_FLUSH;a&&(cvox.ChromeVox.tts.speak(a,b,cvox.AbstractTts.PERSONALITY_ANNOTATION),b=cvox.AbstractTts.QUEUE_MODE_QUEUE);this.speakDescriptionArray(e,b,d||null);this.getBraille().write();this.updatePosition(this.getCurrentNode())}};
+cvox.NavigationManager.prototype.navigate=function(a,b){this.pageEndAnnounced_=!1;if(this.pageEnd_)return this.pageEnd_=!1,this.syncToBeginning(a),!0;if(!this.resolve())return!1;this.ensureNotSubnavigating();void 0!==b&&(b!==this.getGranularity()||0<this.shifterStack_.length)&&(this.setGranularity(b,!0),this.sync());return this.next_(!a)};cvox.NavigationManager.prototype.subnavigate=function(){this.pageEndAnnounced_=!1;this.resolve()&&(this.ensureSubnavigating(),this.next_(!0))};
+cvox.NavigationManager.prototype.skip=function(){if(!this.keepReading_)return!1;cvox.ChromeVox.host.hasTtsCallback()&&(this.skipped_=!0,this.setReversed(!1),this.startCallbackReading_(cvox.AbstractTts.QUEUE_MODE_FLUSH));return!0};cvox.NavigationManager.prototype.startReading=function(a){this.keepReading_=!0;cvox.ChromeVox.host.hasTtsCallback()?this.startCallbackReading_(a):this.startNonCallbackReading_(a);this.prevStickyState_=cvox.ChromeVox.isStickyOn};
+cvox.NavigationManager.prototype.stopReading=function(a){this.keepReading_=!1;this.navSpeaker_.stopReading=!0;a&&cvox.ChromeVox.tts.stop();void 0!=this.prevStickyState_&&(this.prevStickyState_=void 0)};cvox.NavigationManager.prototype.isReading=function(){return this.keepReading_};
+cvox.NavigationManager.prototype.startCallbackReading_=cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(a){this.finishNavCommand("",!0,a,goog.bind(function(){this.next_(!0)&&this.keepReading_&&this.startCallbackReading_(cvox.AbstractTts.QUEUE_MODE_QUEUE)},this))});
+cvox.NavigationManager.prototype.startNonCallbackReading_=cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(a){this.keepReading_&&(cvox.ChromeVox.tts.isSpeaking()||(this.finishNavCommand("",!0,a,null),this.next_(!0)||(this.keepReading_=!1)),window.setTimeout(goog.bind(this.startNonCallbackReading_,this),1E3))});
+cvox.NavigationManager.prototype.getFullDescription=function(){return this.pageSel_?this.pageSel_.getFullDescription():[cvox.DescriptionUtil.getDescriptionFromAncestors(cvox.DomUtil.getAncestors(this.curSel_.start.node),!0,cvox.ChromeVox.verbosity)]};cvox.NavigationManager.prototype.setFocus=function(a){this.pageSel_||a&&this.curSel_.start.node.constructor==Text||cvox.Focuser.setFocus(this.curSel_.start.node)};cvox.NavigationManager.prototype.getCurrentNode=function(){return this.curSel_.absStart().node};
+cvox.NavigationManager.prototype.addInterframeListener_=function(){var a=this;cvox.Interframe.addListener(function(b){if("enterIframe"==b.command||"exitIframe"==b.command)cvox.ChromeVox.serializer.readFrom(b),a.keepReading_||cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(){window.focus();if(b.findNext){var c=b.findNext,d=cvox.DomPredicates[c],c=a.findNext(d,c,!0);if(d&&(!c||"IFRAME"==c.start.node.tagName))return}else if("exitIframe"==b.command)d=b.sourceId,d=a.iframeIdMap[d],c=b.reversed,
+d&&a.updateSel(cvox.CursorSelection.fromNode(d)),a.setReversed(c),a.sync(),a.navigate();else if(a.syncToBeginning(),!cvox.DomUtil.hasContent(document.body)){a.tryIframe_(null);return}a.finishNavCommand("",!0)})()})};cvox.NavigationManager.prototype.updateIndicator=function(){this.activeIndicator.syncToCursorSelection(this.curSel_)};cvox.NavigationManager.prototype.updateIndicatorIfChanged=function(){this.activeIndicator.updateIndicatorIfChanged()};
+cvox.NavigationManager.prototype.showOrHideIndicator=function(a){a||this.activeIndicator.removeFromDom()};cvox.NavigationManager.prototype.collapseSelection=function(){this.curSel_.collapse()};cvox.NavigationManager.prototype.updateSelToArbitraryNode=function(a,b){a?(this.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0),this.updateSel(cvox.CursorSelection.fromNode(a)),b||this.sync()):this.syncToBeginning()};
+cvox.NavigationManager.prototype.updateSel=function(a,b){a&&(this.prevSel_=b||this.curSel_,this.curSel_=a);var c=this.getCurrentNode();this.navigationHistory_.update(c);return!!a};cvox.NavigationManager.prototype.setReversed=function(a){this.curSel_.setReversed(a)};cvox.NavigationManager.prototype.isReversed=function(){return this.curSel_.isReversed()};
+cvox.NavigationManager.prototype.tryBoundaries_=function(a,b){b=!!b&&!this.ignoreIframesNoMatterWhat_||!1;this.pageEnd_=!1;if(b&&this.tryIframe_(a&&a.start.node))return!0;if(a)return this.updateSel(a),!0;if(0<this.shifterStack_.length)return!0;this.syncToBeginning(!b);this.clearPageSel(!0);this.stopReading(!0);this.pageEnd_=!0;return!1};
+cvox.NavigationManager.prototype.tryIframe_=function(a){if(null==a&&cvox.Interframe.isIframe()){var b={command:"exitIframe",reversed:this.isReversed(),granularity:this.getGranularity()};cvox.ChromeVox.serializer.storeOn(b);cvox.Interframe.sendMessageToParentWindow(b);return!0}if(null==a||"IFRAME"!=a.tagName||!a.src)return!1;var c=void 0;for(b in this.iframeIdMap)if(this.iframeIdMap[b]==a){c=b;break}void 0==c&&(c=this.nextIframeId,this.nextIframeId++,this.iframeIdMap[c]=a,cvox.Interframe.sendIdToIFrame(c,
+a));b={command:"enterIframe",id:c};cvox.ChromeVox.serializer.storeOn(b);cvox.Interframe.sendMessageToIFrame(b,a);return!0};cvox.NavigationManager.prototype.syncToBeginning=function(a){var b=this.shifter_.begin(this.curSel_,{reversed:this.curSel_.isReversed()});!a&&this.tryIframe_(b&&b.start.node)||this.updateSel(b)};cvox.NavigationManager.prototype.ignoreIframesNoMatterWhat=function(){this.ignoreIframesNoMatterWhat_=!0};cvox.NavigationManager.prototype.saveSel=function(){this.saveSel_=this.curSel_};
+cvox.NavigationManager.prototype.restoreSel=function(){this.curSel_=this.saveSel_||this.curSel_};cvox.NavigationManager.prototype.persistGranularity_=function(a){(a=void 0===a?!1:a)&&this.getGranularity()};cvox.SearchWidget=function(){this.txtNode_=this.containerNode_=null;this.PROMPT_="Search:";this.hasMatch_=this.caseSensitive_=!1;cvox.Widget.call(this)};goog.inherits(cvox.SearchWidget,cvox.Widget);goog.addSingletonGetter(cvox.SearchWidget);
+cvox.SearchWidget.prototype.show=function(){cvox.SearchWidget.superClass_.show.call(this);this.active=!0;this.hasMatch_=!1;cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0,!1);cvox.ChromeVox.navigationManager.setReversed(!1);this.focusRecovery_=cvox.ChromeVox.navigationManager.getFocusRecovery();cvox.ChromeVox.navigationManager.setFocusRecovery(!1);var a=this.createContainerNode_();this.containerNode_=a;var b=this.createOverlayNode_();a.appendChild(b);
+var c=document.createElement("span");c.innerHTML=this.PROMPT_;b.appendChild(c);this.txtNode_=this.createTextAreaNode_();b.appendChild(this.txtNode_);document.body.appendChild(a);this.txtNode_.focus();window.setTimeout(function(){a.style.opacity="1.0"},0)};
+cvox.SearchWidget.prototype.hide=function(a){if(this.isActive()){var b=this.containerNode_;b.style.opacity="0.0";window.setTimeout(function(){document.body.removeChild(b)},1E3);this.txtNode_=null;cvox.SearchWidget.containerNode=null;cvox.ChromeVox.navigationManager.setFocusRecovery(this.focusRecovery_);this.active=!1}cvox.$m("choice_widget_exited").andPause().andMessage(this.getNameMsg()).speakFlush();this.hasMatch_&&a||cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(this.initialNode);cvox.ChromeVoxEventSuspender.withSuspendedEvents(goog.bind(cvox.ChromeVox.navigationManager.syncAll,
+cvox.ChromeVox.navigationManager))(!0);cvox.ChromeVox.navigationManager.speakDescriptionArray(cvox.ChromeVox.navigationManager.getDescription(),cvox.AbstractTts.QUEUE_MODE_QUEUE,null,cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT);a=this.textFromCurrentDescription_();cvox.ChromeVox.braille.write(new cvox.NavBraille({text:a,startIndex:0,endIndex:0}));cvox.SearchWidget.superClass_.hide.call(this,!0)};cvox.SearchWidget.prototype.getNameMsg=function(){return["search_widget_intro"]};
+cvox.SearchWidget.prototype.getHelpMsg=function(){return"search_widget_intro_help"};
+cvox.SearchWidget.prototype.onKeyDown=function(a){if(!this.isActive())return!1;var b=this.txtNode_.value;if(8==a.keyCode)0<b.length?(b=b.substring(0,b.length-1),this.txtNode_.value=b,this.beginSearch_(b)):(cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(this.initialNode),cvox.ChromeVox.navigationManager.syncAll());else if(40==a.keyCode)this.next_(b,!1);else if(38==a.keyCode)this.next_(b,!0);else if(13==a.keyCode)this.hide(!0);else if(27==a.keyCode)this.hide(!1);else if(a.ctrlKey&&67==a.keyCode)this.toggleCaseSensitivity_();
+else return cvox.SearchWidget.superClass_.onKeyDown.call(this,a);a.preventDefault();a.stopPropagation();return!0};cvox.SearchWidget.prototype.onKeyPress=function(a){if(!this.isActive())return!1;this.txtNode_.value+=String.fromCharCode(a.charCode);var b=this.txtNode_.value;this.beginSearch_(b);a.preventDefault();a.stopPropagation();return!0};cvox.SearchWidget.prototype.onNavigate=function(){};cvox.SearchWidget.prototype.getPredicate=function(){return null};
+cvox.SearchWidget.prototype.nextResult=function(a){if(!this.isActive())return null;var b=this.txtNode_.value;return this.next_(b,a)};cvox.SearchWidget.prototype.createContainerNode_=function(){var a=document.createElement("div");a.id="cvox-search";a.style.position="fixed";a.style.top="50%";a.style.left="50%";a.style["-webkit-transition"]="all 0.3s ease-in";a.style.opacity="0.0";a.style["z-index"]="2147483647";a.setAttribute("aria-hidden","true");return a};
+cvox.SearchWidget.prototype.createOverlayNode_=function(){var a=document.createElement("div");a.style.position="relative";a.style.left="-50%";a.style.top="-40px";a.style["line-height"]="1.2em";a.style["font-size"]="20px";a.style.padding="30px";a.style["min-width"]="150px";a.style.color="#fff";a.style["background-color"]="rgba(0, 0, 0, 0.7)";a.style["border-radius"]="10px";return a};
+cvox.SearchWidget.prototype.createTextAreaNode_=function(){var a=document.createElement("textarea");a.setAttribute("aria-hidden","true");a.setAttribute("rows","1");a.style.color="#fff";a.style["background-color"]="rgba(0, 0, 0, 0.7)";a.style["vertical-align"]="middle";a.addEventListener("textInput",this.handleSearchChanged_,!1);return a};
+cvox.SearchWidget.prototype.toggleCaseSensitivity_=function(){this.caseSensitive_?(cvox.SearchWidget.caseSensitive_=!1,cvox.ChromeVox.tts.speak("Ignoring case.",0,null)):(this.caseSensitive_=!0,cvox.ChromeVox.tts.speak("Case sensitive.",0,null))};
+cvox.SearchWidget.prototype.getNextResult_=function(a){var b=cvox.ChromeVox.navigationManager.isReversed();this.caseSensitive_||(a=a.toLowerCase());cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0,!1);do{if(this.getPredicate()){var c=this.getPredicate()(cvox.DomUtil.getAncestors(cvox.ChromeVox.navigationManager.getCurrentNode()));if(!c)continue}for(var c=cvox.ChromeVox.navigationManager.getDescription(),d=0;d<c.length;d++){var e=this.caseSensitive_?c[d].text:
+c[d].text.toLowerCase(),f=e.indexOf(a);-1!=f&&e.length>a.length&&(c[d].text=cvox.DomUtil.collapseWhitespace(e.substring(0,f))+", "+a+", "+e.substring(f+a.length),c[d].text=cvox.DomUtil.collapseWhitespace(c[d].text));if(-1!=f)return c}cvox.ChromeVox.navigationManager.setReversed(b)}while(cvox.ChromeVox.navigationManager.navigate(!0,cvox.NavigationShifter.GRANULARITIES.OBJECT))};cvox.SearchWidget.prototype.beginSearch_=function(a){var b=this.getNextResult_(a);this.outputSearchResult_(b,a);this.onNavigate()};
+cvox.SearchWidget.prototype.next_=function(a,b){cvox.ChromeVox.navigationManager.setReversed(!!b);var c=!1;this.getPredicate()?(c=cvox.ChromeVox.navigationManager.findNext(this.getPredicate()),cvox.ChromeVox.navigationManager.setReversed(!!b),c||(cvox.ChromeVox.navigationManager.syncToBeginning(),cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),c=!0)):c=cvox.ChromeVox.navigationManager.navigate(!0);c=c?this.getNextResult_(a):null;this.outputSearchResult_(c,a);this.onNavigate();return c};
+cvox.SearchWidget.prototype.outputSearchResult_=function(a,b){cvox.ChromeVox.tts.stop();a?(this.hasMatch_=!0,cvox.ChromeVoxEventSuspender.withSuspendedEvents(goog.bind(cvox.ChromeVox.navigationManager.syncAll,cvox.ChromeVox.navigationManager))(!0),cvox.ChromeVox.navigationManager.speakDescriptionArray(a,cvox.AbstractTts.QUEUE_MODE_FLUSH,null,cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT),cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("search_help_item"),cvox.AbstractTts.QUEUE_MODE_QUEUE,cvox.AbstractTts.PERSONALITY_ANNOTATION),
+this.outputSearchResultToBraille_(b)):(cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),this.hasMatch_=!1)};
+cvox.SearchWidget.prototype.outputSearchResultToBraille_=function(a){if(cvox.ChromeVox.braille){var b=this.textFromCurrentDescription_(),c=this.caseSensitive_?b:b.toLowerCase();a=this.caseSensitive_?a:a.toLowerCase();c=c.indexOf(a);if(-1==c)console.log("Search string not in result when preparing for Braille.");else{var d=b.length,b=cvox.ChromeVox.msgs.getMsg("mark_as_search_result_brl",[b]),e=b.length,c=c+(e-d);cvox.ChromeVox.braille.write(new cvox.NavBraille({text:b,startIndex:c+a.length,endIndex:c+
+a.length}))}}};cvox.SearchWidget.prototype.textFromCurrentDescription_=function(){for(var a=cvox.ChromeVox.navigationManager.getDescription(),b="",c=0;c<a.length;c++)b+=a[c].text+" ";return b};cvox.SearchWidget.prototype.handleSearchChanged_=function(a){a=a.target.value+a.data;cvox.SearchWidget.prototype.beginSearch_(a)};cvox.OverlayWidget=function(a){cvox.SearchWidget.call(this);this.snippet_=a};goog.inherits(cvox.OverlayWidget,cvox.SearchWidget);
+cvox.OverlayWidget.prototype.show=function(){cvox.OverlayWidget.superClass_.show.call(this);var a=document.createElement("DIV");a.innerHTML=this.snippet_;var b=cvox.DomUtil.elementToPoint(cvox.ChromeVox.navigationManager.getCurrentNode());a.style.position="absolute";a.style.left=b.x;a.style.top=b.y;document.body.appendChild(a);cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(a);this.host_=a};cvox.OverlayWidget.prototype.hide=function(){this.host_.remove();cvox.OverlayWidget.superClass_.hide.call(this)};
+cvox.OverlayWidget.prototype.onKeyDown=function(a){cvox.OverlayWidget.superClass_.onKeyDown.call(this,a);if(13==a.keyCode||27==a.keyCode)return!0;a=cvox.ChromeVox.navigationManager.isReversed();cvox.DomUtil.isDescendantOfNode(cvox.ChromeVox.navigationManager.getCurrentNode(),this.host_)||(a?cvox.ChromeVox.navigationManager.syncToBeginning():cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(this.host_),this.onNavigate(),cvox.ChromeVox.navigationManager.speakDescriptionArray(cvox.ChromeVox.navigationManager.getDescription(),
+0,null))};cvox.KeyboardHelpWidget=function(){cvox.OverlayWidget.call(this,"");this.container_=document.createElement("div");var a=cvox.ChromeVoxKbHandler.handlerKeyMap;a.bindings().forEach(goog.bind(function(a){var c=a.command;a=a.sequence;var d=c;try{var e=cvox.CommandStore.messageForCommand(c);if(!e)return;d=cvox.ChromeVox.msgs.getMsg(e)}catch(f){}e=document.createElement("p");e.id=c;e.setAttribute("role","menuitem");e.textContent=d+" - "+cvox.KeyUtil.keySequenceToString(a,!0);this.container_.appendChild(e)},
+this))};goog.inherits(cvox.KeyboardHelpWidget,cvox.OverlayWidget);goog.addSingletonGetter(cvox.KeyboardHelpWidget);cvox.KeyboardHelpWidget.prototype.show=function(){cvox.KeyboardHelpWidget.superClass_.show.call(this);this.host_.appendChild(this.container_)};cvox.KeyboardHelpWidget.prototype.getNameMsg=function(){return["keyboard_help_intro"]};
+cvox.KeyboardHelpWidget.prototype.onKeyDown=function(a){if(13==a.keyCode){var b=cvox.ChromeVox.navigationManager.getCurrentNode().parentNode.id;this.hide();cvox.ChromeVoxEventSuspender.withSuspendedEvents(cvox.ChromeVoxUserCommands.commands[b])();a.preventDefault();a.stopPropagation();return!0}return cvox.KeyboardHelpWidget.superClass_.onKeyDown.call(this,a)};goog.object={};goog.object.forEach=function(a,b,c){for(var d in a)b.call(c,a[d],d,a)};goog.object.filter=function(a,b,c){var d={},e;for(e in a)b.call(c,a[e],e,a)&&(d[e]=a[e]);return d};goog.object.map=function(a,b,c){var d={},e;for(e in a)d[e]=b.call(c,a[e],e,a);return d};goog.object.some=function(a,b,c){for(var d in a)if(b.call(c,a[d],d,a))return!0;return!1};goog.object.every=function(a,b,c){for(var d in a)if(!b.call(c,a[d],d,a))return!1;return!0};
+goog.object.getCount=function(a){var b=0,c;for(c in a)b++;return b};goog.object.getAnyKey=function(a){for(var b in a)return b};goog.object.getAnyValue=function(a){for(var b in a)return a[b]};goog.object.contains=function(a,b){return goog.object.containsValue(a,b)};goog.object.getValues=function(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b};goog.object.getKeys=function(a){var b=[],c=0,d;for(d in a)b[c++]=d;return b};
+goog.object.getValueByKeys=function(a,b){for(var c=goog.isArrayLike(b),d=c?b:arguments,c=c?0:1;c<d.length&&(a=a[d[c]],goog.isDef(a));c++);return a};goog.object.containsKey=function(a,b){return b in a};goog.object.containsValue=function(a,b){for(var c in a)if(a[c]==b)return!0;return!1};goog.object.findKey=function(a,b,c){for(var d in a)if(b.call(c,a[d],d,a))return d};goog.object.findValue=function(a,b,c){return(b=goog.object.findKey(a,b,c))&&a[b]};
+goog.object.isEmpty=function(a){for(var b in a)return!1;return!0};goog.object.clear=function(a){for(var b in a)delete a[b]};goog.object.remove=function(a,b){var c;(c=b in a)&&delete a[b];return c};goog.object.add=function(a,b,c){if(b in a)throw Error('The object already contains the key "'+b+'"');goog.object.set(a,b,c)};goog.object.get=function(a,b,c){return b in a?a[b]:c};goog.object.set=function(a,b,c){a[b]=c};goog.object.setIfUndefined=function(a,b,c){return b in a?a[b]:a[b]=c};
+goog.object.clone=function(a){var b={},c;for(c in a)b[c]=a[c];return b};goog.object.unsafeClone=function(a){var b=goog.typeOf(a);if("object"==b||"array"==b){if(a.clone)return a.clone();var b="array"==b?[]:{},c;for(c in a)b[c]=goog.object.unsafeClone(a[c]);return b}return a};goog.object.transpose=function(a){var b={},c;for(c in a)b[a[c]]=c;return b};goog.object.PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
+goog.object.extend=function(a,b){for(var c,d,e=1;e<arguments.length;e++){d=arguments[e];for(c in d)a[c]=d[c];for(var f=0;f<goog.object.PROTOTYPE_FIELDS_.length;f++)c=goog.object.PROTOTYPE_FIELDS_[f],Object.prototype.hasOwnProperty.call(d,c)&&(a[c]=d[c])}};
+goog.object.create=function(a){var b=arguments.length;if(1==b&&goog.isArray(arguments[0]))return goog.object.create.apply(null,arguments[0]);if(b%2)throw Error("Uneven number of arguments");for(var c={},d=0;d<b;d+=2)c[arguments[d]]=arguments[d+1];return c};goog.object.createSet=function(a){var b=arguments.length;if(1==b&&goog.isArray(arguments[0]))return goog.object.createSet.apply(null,arguments[0]);for(var c={},d=0;d<b;d++)c[arguments[d]]=!0;return c};
+goog.object.createImmutableView=function(a){var b=a;Object.isFrozen&&!Object.isFrozen(a)&&(b=Object.create(a),Object.freeze(b));return b};goog.object.isImmutableView=function(a){return!!Object.isFrozen&&Object.isFrozen(a)};cvox.UserEventDetail=function(a){this.command=this.category="";-1!=cvox.UserEventDetail.JUMP_COMMANDS.indexOf(a.command)&&(this.command=a.command,this.category=cvox.UserEventDetail.Category.JUMP);this.customCommand="";a.customCommand&&(this.customCommand=a.customCommand,this.category=cvox.UserEventDetail.Category.CUSTOM);this.status=cvox.UserEventDetail.Status.PENDING;switch(a.status){case cvox.UserEventDetail.Status.SUCCESS:this.status=cvox.UserEventDetail.Status.SUCCESS;break;case cvox.UserEventDetail.Status.FAILURE:this.status=
+cvox.UserEventDetail.Status.FAILURE}this.resultNode=null;a.resultNode&&cvox.DomUtil.isAttachedToDocument(a.resultNode)&&(this.resultNode=a.resultNode)};cvox.UserEventDetail.Category={JUMP:"ATJumpEvent",CUSTOM:"ATCustomEvent"};cvox.UserEventDetail.Status={PENDING:"PENDING",SUCCESS:"SUCCESS",FAILURE:"FAILURE"};cvox.UserEventDetail.JUMP_COMMANDS="nextCheckbox previousCheckbox nextRadio previousRadio nextSlider previousSlider nextGraphic previousGraphic nextButton previousButton nextComboBox previousComboBox nextEditText previousEditText nextHeading previousHeading nextHeading1 previousHeading1 nextHeading2 previousHeading2 nextHeading3 previousHeading3 nextHeading4 previousHeading4 nextHeading5 previousHeading5 nextHeading6 previousHeading6 nextLink previousLink nextMath previousMath nextTable previousTable nextList previousList nextListItem previousListItem nextFormField previousFormField nextLandmark previousLandmark nextSection previousSection nextControl previousControl".split(" ");
+cvox.UserEventDetail.prototype.createEventObject=function(){var a=document.createEvent("CustomEvent");a.initCustomEvent(this.category,!0,!0,this);return a};var extractMenuList_=function(a){for(;a!==document;){var b=a.getAttribute("contextMenuActions");if(b)return JSON.parse(b);a=a.parentNode}return null},getCurrentElement_=function(){for(var a=cvox.ChromeVox.navigationManager.getCurrentNode();a.nodeType!==Node.ELEMENT_NODE;)a=a.parentNode;return a};
+cvox.ContextMenuWidget=function(){cvox.OverlayWidget.call(this,"");this.container_=document.createElement("div");this.triggerElement_=getCurrentElement_();(this.menuList=extractMenuList_(this.triggerElement_))?this.menuList.forEach(goog.bind(function(a){if(a.desc||a.cmd){var b=a.desc;a=a.cmd;var c=document.createElement("p");c.id=a;c.textContent=b;c.setAttribute("role","menuitem");this.container_.appendChild(c)}},this)):console.log("No context menu found.")};goog.inherits(cvox.ContextMenuWidget,cvox.OverlayWidget);
+cvox.ContextMenuWidget.prototype.show=function(){this.menuList&&(cvox.ContextMenuWidget.superClass_.show.call(this),this.host_.appendChild(this.container_))};cvox.ContextMenuWidget.prototype.getNameMsg=function(){return["context_menu_intro"]};
+cvox.ContextMenuWidget.prototype.onKeyDown=function(a){if(13==a.keyCode){var b=cvox.ChromeVox.navigationManager.getCurrentNode(),b=b.parentNode.id,b=new cvox.UserEventDetail({customCommand:b}),b=b.createEventObject();this.triggerElement_.dispatchEvent(b);this.hide();a.preventDefault();a.stopPropagation();return!0}return cvox.ContextMenuWidget.superClass_.onKeyDown.call(this,a)};cvox.NodeSearchWidget=function(a,b){this.typeMsg_=a;this.predicate_=b;cvox.SearchWidget.call(this)};goog.inherits(cvox.NodeSearchWidget,cvox.SearchWidget);cvox.NodeSearchWidget.prototype.getNameMsg=function(){return["choice_widget_name",[cvox.ChromeVox.msgs.getMsg(this.typeMsg_)]]};cvox.NodeSearchWidget.prototype.getHelpMsg=function(){return"choice_widget_help"};cvox.NodeSearchWidget.prototype.getPredicate=function(){return this.predicate_};
+cvox.NodeSearchWidget.create=function(a,b){return new cvox.NodeSearchWidget(a,b)};cvox.SelectWidget=function(a){cvox.OverlayWidget.call(this,"");this.selectNode_=a};goog.inherits(cvox.SelectWidget,cvox.OverlayWidget);
+cvox.SelectWidget.prototype.show=function(){cvox.SelectWidget.superClass_.show.call(this);var a=document.createElement("div");a.setAttribute("role","menu");for(var b=0,c=null;c=this.selectNode_.options[b];b++){var d=document.createElement("p");d.innerHTML=c.innerHTML;d.id=b;d.setAttribute("role","menuitem");a.appendChild(d)}this.host_.appendChild(a);b=this.selectNode_.selectedIndex;"number"==typeof b&&cvox.ChromeVox.syncToNode(a.children[b],!0)};
+cvox.SelectWidget.prototype.hide=function(){var a=document.createEvent("Event");a.initEvent("change",!1,!1);this.selectNode_.dispatchEvent(a);cvox.SelectWidget.superClass_.hide.call(this,!0)};cvox.SelectWidget.prototype.onNavigate=function(){var a=this;cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(){var b=cvox.ChromeVox.navigationManager.getCurrentNode().parentNode.id;a.selectNode_.selectedIndex=b})()};cvox.SelectWidget.prototype.getNameMsg=function(){return["aria_role_menu"]};cvox.FocusUtil=function(){};cvox.FocusUtil.INPUT_TYPE_ACCEPTS_SELECTION_TABLE={hidden:!1,text:!0,search:!0,tel:!0,url:!0,email:!0,password:!0,datetime:!1,date:!1,month:!1,week:!1,time:!1,"datetime-local":!1,number:!1,range:!1,color:!1,checkbox:!1,radio:!1,file:!1,submit:!1,image:!1,reset:!1,button:!1};
+cvox.FocusUtil.isFocusInTextInputField=function(){var a=document.activeElement;return a?a.isContentEditable||"textbox"==a.getAttribute("role")?!0:"true"==a.getAttribute("readOnly")?!1:"TEXTAREA"===a.tagName||"SELECT"===a.tagName?!0:"INPUT"===a.tagName?a.hasAttribute("type")?(a=a.getAttribute("type").toLowerCase(),cvox.FocusUtil.INPUT_TYPE_ACCEPTS_SELECTION_TABLE[a]):!0:!1:!1};cvox.SpokenListBuilder=function(){this.list_=[]};cvox.SpokenListBuilder.prototype.flush=function(a){this.list_.push([a,cvox.AbstractTts.QUEUE_MODE_FLUSH]);return this};cvox.SpokenListBuilder.prototype.build=function(){return this.list_};cvox.RunnerInterface=function(){};cvox.RunnerInterface.prototype.setFocus=function(){};cvox.AbstractTestCase=function(){};cvox.TestTts=function(){cvox.AbstractTts.call(this);this.utterances_=[]};goog.inherits(cvox.TestTts,cvox.AbstractTts);cvox.TestTts.prototype.sentinelText_="@@@STOP@@@";cvox.TestTts.prototype.speak=function(a,b,c){this.utterances_.push({text:a,queueMode:b});c&&void 0!=c.endCallback&&(a=this.utterances_.length,this.utterances_[a-1].text!=this.sentinelText_&&c.endCallback())};cvox.HostFactory.ttsConstructor=cvox.TestTts;cvox.AutoRunner=function(){new cvox.TestTts};cvox.AutoRunner.TestSummary=function(a,b,c,d){this.tag=a;this.status=c;this.scope=d};cvox.AutoRunner.PASS="pass";cvox.AutoRunner.FAIL="fail";cvox.AutoRunner.prototype.setFocus=function(a){document.getElementById(a).focus();return this};cvox.ChromeVoxUserCommands={};cvox.ChromeVoxUserCommands.init_=function(){if(!cvox.ChromeVoxUserCommands.commands){cvox.ChromeVoxUserCommands.commands={};for(var a in cvox.CommandStore.CMD_WHITELIST)cvox.ChromeVoxUserCommands.commands[a]=cvox.ChromeVoxUserCommands.createCommand_(a)}};cvox.ChromeVoxUserCommands.wasMouseClicked=!1;cvox.ChromeVoxUserCommands.enableCommandDispatchingToPage=!0;
+cvox.ChromeVoxUserCommands.handleTabAction_=function(){cvox.ChromeVox.tts.stop();if(!cvox.ChromeVox.navigationManager.resolve(cvox.DomUtil.isFocusable))return cvox.ChromeVox.navigationManager.setFocus(),!1;var a=cvox.ChromeVoxUserCommands.isFocusedOnLinkControl_();if(a)return!0;var b=a=null,b=window.getSelection();cvox.ChromeVoxUserCommands.wasMouseClicked?cvox.ChromeVoxUserCommands.wasMouseClicked=!1:b=null;null==b||null==b.anchorNode||null==b.focusNode?(a=cvox.ChromeVox.navigationManager.getCurrentNode(),
+b=cvox.ChromeVox.navigationManager.getCurrentNode()):(a=b.anchorNode,b=b.focusNode);if(null==a||null==b)return!0;if(cvox.DomUtil.isFocusable(a))return a.focus(),!0;if(cvox.DomUtil.isFocusable(b))return b.focus(),!0;if(cvox.DomUtil.isFocusable(a.parentNode))return a.parentNode.focus(),!0;if(cvox.DomUtil.isFocusable(b.parentNode))return b.parentNode.focus(),!0;b=cvox.ChromeVoxUserCommands.createTabDummySpan_();a.parentNode.insertBefore(b,a);b.focus();return!0};
+cvox.ChromeVoxUserCommands.isFocusedOnLinkControl_=function(){var a="A";return document.activeElement.tagName==a||cvox.DomUtil.isControl(document.activeElement)?!0:!1};cvox.ChromeVoxUserCommands.removeTabDummySpan=function(){var a=document.getElementById("ChromeVoxTabDummySpan");a&&document.activeElement!=a&&a.parentNode.removeChild(a)};cvox.ChromeVoxUserCommands.createTabDummySpan_=function(){var a=document.createElement("span");a.id="ChromeVoxTabDummySpan";a.tabIndex=-1;return a};
+cvox.ChromeVoxUserCommands.createCommand_=function(a){return goog.bind(function(b){b=cvox.ChromeVoxUserCommands.lookupCommand_(a,b);return cvox.ChromeVoxUserCommands.dispatchCommand_(b)},cvox.ChromeVoxUserCommands)};
+cvox.ChromeVoxUserCommands.dispatchCommand_=function(a){if(cvox.Widget.isActive()||!cvox.PlatformUtil.matchesPlatform(a.platformFilter)||a.skipInput&&cvox.FocusUtil.isFocusInTextInputField())return!0;if(cvox.ChromeVoxUserCommands.enableCommandDispatchingToPage&&-1!=cvox.UserEventDetail.JUMP_COMMANDS.indexOf(a.command)){a=new cvox.UserEventDetail({command:a.command});a=a.createEventObject();var b=cvox.ChromeVox.navigationManager.getCurrentNode();b||(b=document.body);b.dispatchEvent(a);return!1}return cvox.ChromeVoxUserCommands.doCommand_(a)};
+cvox.ChromeVoxUserCommands.doCommand_=function(a){if(cvox.Widget.isActive()||!cvox.PlatformUtil.matchesPlatform(a.platformFilter)||a.skipInput&&cvox.FocusUtil.isFocusInTextInputField()||a.disallowOOBE&&document.URL.match(/^chrome:\/\/oobe/i))return!0;var b=a.command;a.allowEvents||cvox.ChromeVoxEventSuspender.enterSuspendEvents();a.disallowContinuation&&cvox.ChromeVox.navigationManager.stopReading(!0);a.forward?cvox.ChromeVox.navigationManager.setReversed(!1):a.backward&&cvox.ChromeVox.navigationManager.setReversed(!0);
+a.findNext&&(b="find",a.announce=!0);var c="",d="",e=!1;switch(b){case "handleTab":case "handleTabPrev":e=cvox.ChromeVoxUserCommands.handleTabAction_();break;case "forward":case "backward":e=!cvox.ChromeVox.navigationManager.navigate();break;case "right":case "left":cvox.ChromeVox.navigationManager.subnavigate();break;case "find":if(!a.findNext)throw"Invalid find command.";var f=cvox.CommandStore.NODE_INFO_MAP[a.findNext],g=f.predicate,h=cvox.DomPredicates[g],k="",l="";a.forward?(l=cvox.ChromeVox.msgs.getMsg("wrapped_to_top"),
+k=cvox.ChromeVox.msgs.getMsg(f.forwardError)):a.backward&&(l=cvox.ChromeVox.msgs.getMsg("wrapped_to_bottom"),k=cvox.ChromeVox.msgs.getMsg(f.backwardError));var f=null,m=a.status||cvox.UserEventDetail.Status.PENDING,p=a.resultNode||null;switch(m){case cvox.UserEventDetail.Status.SUCCESS:p&&cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(p,!0);break;case cvox.UserEventDetail.Status.FAILURE:d=k;break;default:f=cvox.ChromeVox.navigationManager.findNext(h,g),f||(cvox.ChromeVox.navigationManager.saveSel(),
+d=l,cvox.ChromeVox.navigationManager.syncToBeginning(),cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),f=cvox.ChromeVox.navigationManager.findNext(h,g,!0),f||(d=k,cvox.ChromeVox.navigationManager.restoreSel()))}f&&"IFRAME"==f.start.node.tagName&&(a.announce=!1);break;case "previousGranularity":cvox.ChromeVox.navigationManager.makeLessGranular(!0);d=cvox.ChromeVox.navigationManager.getGranularityMsg();break;case "nextGranularity":cvox.ChromeVox.navigationManager.makeMoreGranular(!0);d=
+cvox.ChromeVox.navigationManager.getGranularityMsg();break;case "previousCharacter":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.CHARACTER);break;case "nextCharacter":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.CHARACTER);break;case "previousWord":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.WORD);break;case "nextWord":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.WORD);
+break;case "previousSentence":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.SENTENCE);break;case "nextSentence":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.SENTENCE);break;case "previousLine":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.LINE);break;case "nextLine":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.LINE);break;case "previousObject":cvox.ChromeVox.navigationManager.navigate(!1,
+cvox.NavigationShifter.GRANULARITIES.OBJECT);break;case "nextObject":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.OBJECT);break;case "previousGroup":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.GROUP);break;case "nextGroup":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.GROUP);break;case "previousRow":case "previousCol":b="previousRow"==b?"nextRow":"nextCol";case "nextRow":case "nextCol":cvox.ChromeVox.navigationManager.performAction("enterShifterSilently");
+cvox.ChromeVox.navigationManager.performAction(b);break;case "moveToStartOfLine":case "moveToEndOfLine":cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.LINE);cvox.ChromeVox.navigationManager.sync();cvox.ChromeVox.navigationManager.collapseSelection();break;case "readFromHere":cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0,!0);cvox.ChromeVox.navigationManager.startReading(cvox.AbstractTts.QUEUE_MODE_FLUSH);break;case "cycleTypingEcho":break;
+case "jumpToTop":case cvox.BrailleKeyCommand.TOP:cvox.ChromeVox.navigationManager.syncToBeginning();break;case "jumpToBottom":case cvox.BrailleKeyCommand.BOTTOM:cvox.ChromeVox.navigationManager.syncToBeginning();break;case "stopSpeech":cvox.ChromeVox.navigationManager.stopReading(!0);break;case "toggleKeyboardHelp":cvox.KeyboardHelpWidget.getInstance().toggle();break;case "help":cvox.ChromeVox.tts.stop();break;case "contextMenu":g=cvox.ChromeVox.navigationManager.getCurrentNode();"SELECT"!=g.tagName||
+g.multiple?(g=new cvox.ContextMenuWidget,g.toggle()):(new cvox.SelectWidget(g)).show();break;case "showBookmarkManager":break;case "showOptionsPage":cvox.ChromeVox.tts.stop();break;case "showKbExplorerPage":cvox.ChromeVox.tts.stop();break;case "readLinkURL":g=document.activeElement;h=window.getSelection().anchorNode;k="";"A"==g.tagName?k=cvox.DomUtil.getLinkURL(g):h&&(k=cvox.DomUtil.getLinkURL(h.parentNode));""!=k?cvox.ChromeVox.tts.speak(k):cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("no_url_found"));
+break;case "readCurrentTitle":cvox.ChromeVox.tts.speak(document.title);break;case "readCurrentURL":cvox.ChromeVox.tts.speak(document.URL);break;case "performDefaultAction":cvox.DomPredicates.linkPredicate([document.activeElement])&&(a.announce=!0,cvox.DomUtil.isInternalLink(document.activeElement)&&(cvox.DomUtil.syncInternalLink(document.activeElement),cvox.ChromeVox.navigationManager.sync()));break;case "forceClickOnCurrentItem":d=cvox.ChromeVox.msgs.getMsg("element_clicked");g=cvox.ChromeVox.navigationManager.getCurrentNode();
+cvox.DomUtil.clickElem(g,!1,!1);break;case "forceDoubleClickOnCurrentItem":d=cvox.ChromeVox.msgs.getMsg("element_double_clicked");g=cvox.ChromeVox.navigationManager.getCurrentNode();cvox.DomUtil.clickElem(g,!1,!1,!0);break;case "toggleChromeVox":break;case "fullyDescribe":g=cvox.ChromeVox.navigationManager.getFullDescription();cvox.ChromeVox.navigationManager.speakDescriptionArray(g,cvox.AbstractTts.QUEUE_MODE_FLUSH,null);break;case "speakTimeAndDate":g=new Date;cvox.ChromeVox.tts.speak(g.toLocaleTimeString()+
+", "+g.toLocaleDateString());break;case "toggleSelection":d=cvox.ChromeVox.navigationManager.togglePageSel();d=cvox.ChromeVox.msgs.getMsg(d?"begin_selection":"end_selection");break;case "startHistoryRecording":cvox.History.getInstance().startRecording();break;case "stopHistoryRecording":cvox.History.getInstance().stopRecording();break;case "enableConsoleTts":cvox.ConsoleTts.getInstance().setEnabled(!0);break;case "goToFirstCell":case "goToLastCell":case "goToRowFirstCell":case "goToRowLastCell":case "goToColFirstCell":case "goToColLastCell":case "announceHeaders":case "speakTableLocation":case "exitShifterContent":cvox.DomPredicates.tablePredicate(cvox.DomUtil.getAncestors(cvox.ChromeVox.navigationManager.getCurrentNode()))&&
+cvox.ChromeVox.navigationManager.performAction(b)||(c="not_inside_table");break;case "enterShifter":case "exitShifter":cvox.ChromeVox.navigationManager.performAction(b);break;case "decreaseTtsRate":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.RATE,!1);break;case "increaseTtsRate":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.RATE,!0);break;case "decreaseTtsPitch":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.PITCH,!1);break;case "increaseTtsPitch":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.PITCH,
+!0);break;case "decreaseTtsVolume":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.VOLUME,!1);break;case "increaseTtsVolume":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.VOLUME,!0);break;case "cyclePunctuationEcho":break;case "toggleStickyMode":break;case "toggleKeyPrefix":cvox.ChromeVox.keyPrefixOn=!cvox.ChromeVox.keyPrefixOn;break;case "toggleSearchWidget":cvox.SearchWidget.getInstance().toggle();break;case "toggleEarcons":d=cvox.ChromeVox.earcons.toggle()?cvox.ChromeVox.msgs.getMsg("earcons_on"):
+cvox.ChromeVox.msgs.getMsg("earcons_off");break;case "showHeadingsList":case "showLinksList":case "showFormsList":case "showTablesList":case "showLandmarksList":if(!a.nodeList)break;g=cvox.CommandStore.NODE_INFO_MAP[a.nodeList];cvox.NodeSearchWidget.create(g.typeMsg,cvox.DomPredicates[g.predicate]).show();break;case "openLongDesc":g=cvox.ChromeVox.navigationManager.getCurrentNode();cvox.DomUtil.hasLongDesc(g)||cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("no_long_desc"),cvox.AbstractTts.QUEUE_MODE_FLUSH,
+cvox.AbstractTts.PERSONALITY_ANNOTATION);break;case "pauseAllMedia":k=document.getElementsByTagName("VIDEO");for(g=0;h=k[g];g++)h.pause();k=document.getElementsByTagName("AUDIO");for(g=0;h=k[g];g++)h.pause();break;case "toggleSemantics":cvox.TraverseMath.toggleSemantic()?cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("semantics_on")):cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("semantics_off"));break;case cvox.BrailleKeyCommand.ROUTING:g=cvox.ChromeVox.navigationManager.getBraille();
+g=g.text.getSpans(a.displayPosition||0);g=g.filter(function(a){return a instanceof Node})[0];cvox.DomUtil.clickElem(g||cvox.ChromeVox.navigationManager.getCurrentNode(),!1,!0);break;case cvox.BrailleKeyCommand.PAN_LEFT:case cvox.BrailleKeyCommand.LINE_UP:case cvox.BrailleKeyCommand.PAN_RIGHT:case cvox.BrailleKeyCommand.LINE_DOWN:cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.LINE);break;case "debug":break;case "nop":break;default:throw"Command behavior not defined: "+
+b;}""!=c?cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg(c),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION):cvox.ChromeVox.navigationManager.isReading()?a.disallowContinuation?cvox.ChromeVox.navigationManager.stopReading(!0):"readFromHere"!=b&&cvox.ChromeVox.navigationManager.skip():a.announce&&cvox.ChromeVox.navigationManager.finishNavCommand(d);a.allowEvents||cvox.ChromeVoxEventSuspender.exitSuspendEvents();return!!a.doDefault||e};
+cvox.ChromeVoxUserCommands.handleChromeVoxUserEvent=function(a){a=new cvox.UserEventDetail(a.detail);a.command&&cvox.ChromeVoxUserCommands.doCommand_(cvox.ChromeVoxUserCommands.lookupCommand_(a.command,a))};cvox.ChromeVoxUserCommands.lookupCommand_=function(a,b){var c=cvox.CommandStore.CMD_WHITELIST[a];if(!c)throw"Invalid command: "+a;c=goog.object.clone(c);c.command=a;b&&goog.object.extend(c,b);return c};cvox.ChromeVoxUserCommands.init_();cvox.ChromeVoxKbHandler={};cvox.ChromeVoxKbHandler.loadKeyToFunctionsTable=function(a){window.JSON&&(cvox.ChromeVoxKbHandler.handlerKeyMap=cvox.KeyMap.fromJSON(a))};cvox.ChromeVoxKbHandler.sortKeyToFunctionsTable_=function(a){function b(a,b){return a[0].length<b[0].length?-1:b[0].length<a[0].length?1:a[0].localeCompare(b[0])}var c=[],d;for(d in a)c.push([d,a[d]]);c.sort(b);return c};
+cvox.ChromeVoxKbHandler.basicKeyDownActionsListener=function(a){var b=cvox.KeyUtil.keyEventToKeySequence(a);a=void 0!=cvox.ChromeVoxKbHandler.handlerKeyMap?cvox.ChromeVoxKbHandler.handlerKeyMap.commandForKey(b):null;if(!a)return!cvox.KeyUtil.sequencing;if(!cvox.ChromeVox.isActive&&"toggleChromeVox"!=a)return!0;var c=!0,d=cvox.ChromeVoxUserCommands.commands[a];d?(b=cvox.History.getInstance(),b.enterUserCommand(a),c=d(),b.exitUserCommand(a)):b.cvoxModifier&&(c=!1);cvox.ChromeVox.entireDocumentIsHidden&&
+(c=!0);return c};cvox.LiveRegions=function(){};cvox.LiveRegions.pageLoadTime=null;cvox.LiveRegions.INITIAL_SILENCE_MS=2E3;cvox.LiveRegions.lastAnnouncedMap={};cvox.LiveRegions.MAX_DISCARD_DUPS_MS=2E3;cvox.LiveRegions.lastAnnouncedTime=null;cvox.LiveRegions.nodesAlreadyHandled=[];
+cvox.LiveRegions.init=function(a,b,c){void 0==b&&(b=cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.LiveRegions.pageLoadTime=a;if(c||!document.hasFocus())return!1;var d=!1;a=cvox.AriaUtil.getLiveRegions(document.body);for(c=0;c<a.length;c++)cvox.LiveRegions.handleOneChangedNode(a[c],a[c],!1,!1,function(a,c){a||b!=cvox.AbstractTts.QUEUE_MODE_FLUSH||(b=cvox.AbstractTts.QUEUE_MODE_QUEUE);var g=new cvox.NavigationSpeaker;g.speakDescriptionArray(c,b,null);d=!0});cvox.Interframe.addListener(function(a){if("speakLiveRegion"==
+a.command)for(var b=document.getElementsByTagName("iframe"),c=0,d;d=b[c];c++)if(d.src==a.src){if(!cvox.DomUtil.isVisible(d))break;d=JSON.parse(a.content);for(var k=[],l=0,m;m=d[l];l++)k.push(new cvox.NavDescription(m));(new cvox.NavigationSpeaker).speakDescriptionArray(k,a.queueMode,null)}});return d};
+cvox.LiveRegions.processMutations=function(a,b){cvox.LiveRegions.nodesAlreadyHandled=[];a.forEach(function(a){if(!a.target.hasAttribute||!a.target.hasAttribute("cvoxIgnore")){if(a.addedNodes)for(var d=0;d<a.addedNodes.length;d++)a.addedNodes[d].hasAttribute&&a.addedNodes[d].hasAttribute("cvoxIgnore")||cvox.LiveRegions.handleOneChangedNode(a.addedNodes[d],a.target,!1,!0,b);if(a.removedNodes)for(d=0;d<a.removedNodes.length;d++)a.removedNodes[d].hasAttribute&&a.removedNodes[d].hasAttribute("cvoxIgnore")||
+cvox.LiveRegions.handleOneChangedNode(a.removedNodes[d],a.target,!0,!1,b);"characterData"==a.type&&cvox.LiveRegions.handleOneChangedNode(a.target,a.target,!1,!1,b);if("class"==a.attributeName||"style"==a.attributeName||"hidden"==a.attributeName){var e=a.attributeName,d=a.target,f=!cvox.DomUtil.isVisible(d),g=document.createElement("div");g.setAttribute("cvoxIgnore","1");g.setAttribute("class",d.getAttribute("class"));g.setAttribute("style",d.getAttribute("style"));g.setAttribute("hidden",d.getAttribute("hidden"));
+g.setAttribute(e,a.oldValue);e=!0;d.parentElement?(d.parentElement.appendChild(g),e=!cvox.DomUtil.isVisible(g),d.parentElement.removeChild(g)):e=!cvox.DomUtil.isVisible(g);!0===e&&!1===f?cvox.LiveRegions.handleOneChangedNode(a.target,a.target,!1,!0,b):!1===e&&!0===f&&cvox.LiveRegions.handleOneChangedNode(a.target,a.target,!0,!1,b)}}});cvox.LiveRegions.nodesAlreadyHandled.length=0};
+cvox.LiveRegions.handleOneChangedNode=function(a,b,c,d,e){var f=c?b:a;f instanceof Element||(f=f.parentElement);for(;f&&!cvox.AriaUtil.getAriaLive(f);)f=f.parentElement;if(!f){if(d&&a!=document.body)for(a=cvox.AriaUtil.getLiveRegions(a),d=0;d<a.length;d++)cvox.LiveRegions.handleOneChangedNode(a[d],b,c,!1,e)}else if(!(0<=cvox.LiveRegions.nodesAlreadyHandled.indexOf(a)||(cvox.LiveRegions.nodesAlreadyHandled.push(a),cvox.AriaUtil.getAriaBusy(f)))){if(c){if(!cvox.AriaUtil.getAriaRelevant(f,"removals"))return}else if(!cvox.AriaUtil.getAriaRelevant(f,
+"additions"))return;cvox.LiveRegions.announceChange(a,f,c,e)}};
+cvox.LiveRegions.announceChange=function(a,b,c,d){var e=new Date-cvox.LiveRegions.pageLoadTime;if(!("alert"!=cvox.AriaUtil.getRoleAttribute(b)&&e<cvox.LiveRegions.INITIAL_SILENCE_MS)&&cvox.DomUtil.isVisible(b)){if(a!=b)for(var f=a.parentElement;f;){(cvox.AriaUtil.getAriaAtomic(f)||cvox.AriaUtil.isLeafElement(f)||cvox.AriaUtil.isControlWidget(f))&&!cvox.AriaUtil.isCompositeControl(f)&&(a=f);if(f==b)break;f=f.parentElement}a=cvox.LiveRegions.getNavDescriptionsRecursive(a);if(0!=a.length){c&&(a=[new cvox.NavDescription({context:cvox.ChromeVox.msgs.getMsg("live_regions_removed"),
+text:""})].concat(a));if("alert"==cvox.AriaUtil.getRoleAttribute(b)&&e<cvox.LiveRegions.INITIAL_SILENCE_MS){c="";for(e=0;e<a.length;e++)c+=a[e].text,c+=a[e].userValue;if(""==cvox.DomUtil.collapseWhitespace(c))return}c=new Date;for(var g in cvox.LiveRegions.lastAnnouncedMap)c-cvox.LiveRegions.lastAnnouncedMap[g]>cvox.LiveRegions.MAX_DISCARD_DUPS_MS&&delete cvox.LiveRegions.lastAnnouncedMap[g];g=a.reduce(function(a,b){return a+"|"+b.text},"");cvox.LiveRegions.lastAnnouncedMap[g]||(cvox.LiveRegions.lastAnnouncedMap[g]=
+c,b="assertive"==cvox.AriaUtil.getAriaLive(b),cvox.Interframe.isIframe()&&!document.hasFocus()?cvox.Interframe.sendMessageToParentWindow({command:"speakLiveRegion",content:JSON.stringify(a),queueMode:b?0:1,src:window.location.href}):d(b,a))}}};
+cvox.LiveRegions.getNavDescriptionsRecursive=function(a){return cvox.AriaUtil.getAriaAtomic(a)||cvox.DomUtil.isLeafNode(a)?(a=cvox.DescriptionUtil.getDescriptionFromAncestors([a],!0,cvox.ChromeVox.verbosity),a.isEmpty()?[]:[a]):cvox.DescriptionUtil.getFullDescriptionsFromChildren(null,a)};cvox.LiveRegionsDeprecated=function(){};cvox.LiveRegionsDeprecated.trackedRegions=[];cvox.LiveRegionsDeprecated.previousRegionValue=[];cvox.LiveRegionsDeprecated.pageLoadTime=null;cvox.LiveRegionsDeprecated.INITIAL_SILENCE_MS=2E3;
+cvox.LiveRegionsDeprecated.init=function(a,b,c){void 0==b&&(b=cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.LiveRegionsDeprecated.pageLoadTime=a;a=!1;for(var d=cvox.AriaUtil.getLiveRegions(document.body),e=0;e<d.length;e++)cvox.LiveRegionsDeprecated.updateLiveRegion(d[e],b,c)&&(a=!0,b=cvox.AbstractTts.QUEUE_MODE_QUEUE);return a};
+cvox.LiveRegionsDeprecated.updateLiveRegion=function(a,b,c){if(cvox.AriaUtil.getAriaBusy(a)||!cvox.DomUtil.isVisible(a))return!1;var d=cvox.LiveRegionsDeprecated.trackedRegions.indexOf(a),e;0<=d?e=cvox.LiveRegionsDeprecated.previousRegionValue[d]:(d=cvox.LiveRegionsDeprecated.trackedRegions.length,e=[],cvox.LiveRegionsDeprecated.trackedRegions.push(a),cvox.LiveRegionsDeprecated.previousRegionValue.push([]));var f=cvox.LiveRegionsDeprecated.buildCurrentLiveRegionValue(a),g=new Date-cvox.LiveRegionsDeprecated.pageLoadTime;
+if("alert"!=cvox.AriaUtil.getRoleAttribute(a)&&g<cvox.LiveRegionsDeprecated.INITIAL_SILENCE_MS)return cvox.LiveRegionsDeprecated.previousRegionValue[d]=f,!1;if("alert"==cvox.AriaUtil.getRoleAttribute(a)&&g<cvox.LiveRegionsDeprecated.INITIAL_SILENCE_MS){for(var h="",g=0;g<f.length;g++)h+=f[g].text,h+=f[g].userValue;if(""==cvox.DomUtil.collapseWhitespace(h))return cvox.LiveRegionsDeprecated.previousRegionValue[d]=f,!1}for(var k={},g=0;g<e.length;g++)k[e[g].toString()]=!0;for(var l={},g=0;g<f.length;g++)l[f[g].toString()]=
+!0;h=[];if(cvox.AriaUtil.getAriaRelevant(a,"additions"))for(g=0;g<f.length;g++)k[f[g].toString()]||h.push(f[g]);k=[];if(cvox.AriaUtil.getAriaRelevant(a,"removals"))for(g=0;g<e.length;g++)l[e[g].toString()]||k.push(e[g]);e=[];e=0==h.length&&0<k.length?[new cvox.NavDescription({context:cvox.ChromeVox.msgs.getMsg("live_regions_removed"),text:""})].concat(k):h;cvox.LiveRegionsDeprecated.previousRegionValue[d]=f;if(c||0==e.length)return!1;a=cvox.AriaUtil.getAriaLive(a);"polite"==a&&(b=cvox.AbstractTts.QUEUE_MODE_QUEUE);
+for(g=0;g<e.length;g++)e[g].speak(b),b=cvox.AbstractTts.QUEUE_MODE_QUEUE;return!0};
+cvox.LiveRegionsDeprecated.buildCurrentLiveRegionValue=function(a){if(cvox.AriaUtil.getAriaAtomic(a)||cvox.DomUtil.isLeafNode(a)){var b=cvox.DescriptionUtil.getDescriptionFromAncestors([a],!0,cvox.ChromeVox.verbosity);return b.isEmpty()?[]:[b]}var c=[],b=cvox.DescriptionUtil.getDescriptionFromAncestors([a],!1,cvox.ChromeVox.verbosity);b.isEmpty()||c.push(b);for(b=0;b<a.childNodes.length;b++){var d=a.childNodes[b];cvox.DomUtil.isVisible(d,{checkAncestors:!1})&&!cvox.AriaUtil.isHidden(d)&&(d=cvox.LiveRegionsDeprecated.buildCurrentLiveRegionValue(d),
+c=c.concat(d))}return c};cvox.ChromeVoxEventWatcherUtil={};cvox.ChromeVoxEventWatcher=function(){};cvox.ChromeVoxEventWatcher.MAX_WAIT_TIME_MS_=50;cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_=10;cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_DURATION_=1E3;cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_COUNT_LIMIT_=3;cvox.ChromeVoxEventWatcher.MAX_LIVE_REGIONS_=5;cvox.ChromeVoxEventWatcher.shouldEchoKeys=!0;cvox.ChromeVoxEventWatcher.processing_=!1;
+cvox.ChromeVoxEventWatcher.init=function(a){cvox.ChromeVoxEventWatcher.lastFocusedNode=null;cvox.ChromeVoxEventWatcher.announcedMouseOverNode=null;cvox.ChromeVoxEventWatcher.pendingMouseOverNode=null;cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null;cvox.ChromeVoxEventWatcher.lastFocusedNodeValue=null;cvox.ChromeVoxEventWatcher.eventToEat=null;cvox.ChromeVoxEventWatcher.currentTextControl=null;cvox.ChromeVoxEventWatcher.currentTextHandler=null;cvox.ChromeVoxEventWatcher.lastKeypressTime=0;cvox.ChromeVoxEventWatcher.listeners_=
+[];cvox.ChromeVoxEventWatcher.mutationObserver_=null;cvox.ChromeVoxEventWatcher.focusFollowsMouse=!1;cvox.ChromeVoxEventWatcher.mouseoverDelayMs=500;cvox.ChromeVoxEventWatcher.events_=[];cvox.ChromeVoxEventWatcher.lastEventTime=0;cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime=-1;cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!1;cvox.ChromeVoxEventWatcher.readyCallbacks_=[];cvox.ChromeVox.searchKeyHeld=!1;cvox.ChromeVoxEventWatcher.textMutationObserver_=null;cvox.ChromeVoxEventWatcher.addEventListeners_(a);
+cvox.ChromeVoxEventWatcher.lastSubtreeModifiedEventBurstTime_=0;cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_=0};cvox.ChromeVoxEventWatcher.storeOn=function(a){a.searchKeyHeld=cvox.ChromeVox.searchKeyHeld};cvox.ChromeVoxEventWatcher.readFrom=function(a){cvox.ChromeVox.searchKeyHeld=a.searchKeyHeld};
+cvox.ChromeVoxEventWatcher.addEvent=function(a){if(!cvox.ChromeVox.isActive||document.webkitHidden)return!1;cvox.ChromeVoxEventWatcher.events_.push(a);cvox.ChromeVoxEventWatcher.lastEventTime=(new Date).getTime();-1==cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime&&(cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime=(new Date).getTime());cvox.ChromeVoxEventWatcher.queueProcessingScheduled_||(cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!0,window.setTimeout(cvox.ChromeVoxEventWatcher.processQueue_,
+cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_))};cvox.ChromeVoxEventWatcher.addReadyCallback=function(a){cvox.ChromeVoxEventWatcher.readyCallbacks_.push(a);cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_()};cvox.ChromeVoxEventWatcher.hasPendingEvents_=function(){return-1!=cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime||cvox.ChromeVoxEventWatcher.queueProcessingScheduled_};cvox.ChromeVoxEventWatcher.readyCallbackRunning_=!1;
+cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_=function(){cvox.ChromeVoxEventWatcher.readyCallbackRunning_||(cvox.ChromeVoxEventWatcher.readyCallbackRunning_=!0,window.setTimeout(function(){cvox.ChromeVoxEventWatcher.readyCallbackRunning_=!1;!cvox.ChromeVoxEventWatcher.hasPendingEvents_()&&!cvox.ChromeVoxEventWatcher.queueProcessingScheduled_&&0<cvox.ChromeVoxEventWatcher.readyCallbacks_.length&&(cvox.ChromeVoxEventWatcher.readyCallbacks_.shift()(),cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_())},
+5))};
+cvox.ChromeVoxEventWatcher.addEventListeners_=function(a){cvox.ChromeVoxEventWatcher.addEventListener_(a,"keydown",cvox.ChromeVoxEventWatcher.keyDownEventWatcher,!0);if(cvox.ChromeVox.isActive&&!cvox.ChromeVox.entireDocumentIsHidden)if(cvox.ChromeVoxEventWatcher.addEventListener_(a,"keypress",cvox.ChromeVoxEventWatcher.keyPressEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"keyup",cvox.ChromeVoxEventWatcher.keyUpEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,cvox.UserEventDetail.Category.JUMP,
+cvox.ChromeVoxUserCommands.handleChromeVoxUserEvent,!1),cvox.ChromeVoxEventWatcher.addEventListener_(a,"focus",cvox.ChromeVoxEventWatcher.focusEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"blur",cvox.ChromeVoxEventWatcher.blurEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"change",cvox.ChromeVoxEventWatcher.changeEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"copy",cvox.ChromeVoxEventWatcher.clipboardEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,
+"cut",cvox.ChromeVoxEventWatcher.clipboardEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"paste",cvox.ChromeVoxEventWatcher.clipboardEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"select",cvox.ChromeVoxEventWatcher.selectEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"webkitvisibilitychange",cvox.ChromeVoxEventWatcher.visibilityChangeWatcher,!0),cvox.ChromeVoxEventWatcher.events_=[],cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!1,cvox.ChromeVoxEventWatcher.addEventListener_(a,
+"mouseover",cvox.ChromeVoxEventWatcher.mouseOverEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"mouseout",cvox.ChromeVoxEventWatcher.mouseOutEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"click",cvox.ChromeVoxEventWatcher.mouseClickEventWatcher,!0),"undefined"!=typeof WebKitMutationObserver){cvox.ChromeVoxEventWatcher.mutationObserver_=new WebKitMutationObserver(cvox.ChromeVoxEventWatcher.mutationHandler);var b=null;a.documentElement?b=a.documentElement:a.document&&
+a.document.documentElement&&(b=a.document.documentElement);b&&cvox.ChromeVoxEventWatcher.mutationObserver_.observe(b,{childList:!0,attributes:!0,characterData:!0,subtree:!0,attributeOldValue:!0,characterDataOldValue:!0})}else cvox.ChromeVoxEventWatcher.addEventListener_(a,"DOMSubtreeModified",cvox.ChromeVoxEventWatcher.subtreeModifiedEventWatcher,!0)};
+cvox.ChromeVoxEventWatcher.cleanup=function(a){for(var b=0;b<cvox.ChromeVoxEventWatcher.listeners_.length;b++){var c=cvox.ChromeVoxEventWatcher.listeners_[b];a.removeEventListener(c.type,c.listener,c.useCapture)}cvox.ChromeVoxEventWatcher.listeners_=[];cvox.ChromeVoxEventWatcher.currentDateHandler&&cvox.ChromeVoxEventWatcher.currentDateHandler.shutdown();cvox.ChromeVoxEventWatcher.currentTimeHandler&&cvox.ChromeVoxEventWatcher.currentTimeHandler.shutdown();cvox.ChromeVoxEventWatcher.currentMediaHandler&&
+cvox.ChromeVoxEventWatcher.currentMediaHandler.shutdown();cvox.ChromeVoxEventWatcher.mutationObserver_&&cvox.ChromeVoxEventWatcher.mutationObserver_.disconnect();cvox.ChromeVoxEventWatcher.mutationObserver_=null};cvox.ChromeVoxEventWatcher.addEventListener_=function(a,b,c,d){cvox.ChromeVoxEventWatcher.listeners_.push({type:b,listener:c,useCapture:d});a.addEventListener(b,c,d)};cvox.ChromeVoxEventWatcher.getLastFocusedNode=function(){return cvox.ChromeVoxEventWatcher.lastFocusedNode};
+cvox.ChromeVoxEventWatcher.setLastFocusedNode_=function(a){cvox.ChromeVoxEventWatcher.lastFocusedNode=a;cvox.ChromeVoxEventWatcher.lastFocusedNodeValue=a?cvox.DomUtil.getControlValueAndStateString(a):null};
+cvox.ChromeVoxEventWatcher.mutationHandler=function(a){if(cvox.ChromeVoxEventSuspender.areEventsSuspended())return!0;cvox.ChromeVox.navigationManager.updateIndicatorIfChanged();cvox.LiveRegions.processMutations(a,function(a,c){var d=new window.Event("LiveRegion");d.navDescriptions=c;d.assertive=a;cvox.ChromeVoxEventWatcher.addEvent(d);return!0})};
+cvox.ChromeVoxEventWatcher.mouseClickEventWatcher=function(a){cvox.PlatformUtil.matchesPlatform(cvox.PlatformFilter.WML)&&!a.fromCvox&&cvox.ApiImplementation.syncToNode(a.target,!0);return cvox.ChromeVox.host.mustRedispatchClickEvent()&&!a.fromCvox?(cvox.ChromeVoxUserCommands.wasMouseClicked=!0,a.stopPropagation(),a.preventDefault(),cvox.Focuser.setFocus(cvox.ChromeVox.navigationManager.getCurrentNode()),cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("element_clicked"),cvox.AbstractTts.QUEUE_MODE_FLUSH,
+cvox.AbstractTts.PERSONALITY_ANNOTATION),a=cvox.ChromeVox.navigationManager.getCurrentNode(),cvox.DomUtil.clickElem(a,!1,!0),!1):cvox.ChromeVoxUserCommands.wasMouseClicked=!0};
+cvox.ChromeVoxEventWatcher.mouseOverEventWatcher=function(a){if(!cvox.ChromeVoxEventWatcher.focusFollowsMouse||cvox.DomUtil.isDescendantOfNode(cvox.ChromeVoxEventWatcher.announcedMouseOverNode,a.target)||a.target==cvox.ChromeVoxEventWatcher.pendingMouseOverNode)return!0;cvox.ChromeVoxEventWatcher.pendingMouseOverNode=a.target;cvox.ChromeVoxEventWatcher.mouseOverTimeoutId&&(window.clearTimeout(cvox.ChromeVoxEventWatcher.mouseOverTimeoutId),cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null);if(a.target.tagName&&
+"BODY"==a.target.tagName)return cvox.ChromeVoxEventWatcher.pendingMouseOverNode=null,cvox.ChromeVoxEventWatcher.announcedMouseOverNode=null,!0;cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=window.setTimeout(function(){cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null;if(a.target==cvox.ChromeVoxEventWatcher.pendingMouseOverNode){cvox.ChromeVox.navigationManager.stopReading(!0);var b=a.target;cvox.Focuser.setFocus(b);cvox.ApiImplementation.syncToNode(b,!0,cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.ChromeVoxEventWatcher.announcedMouseOverNode=
+b}},cvox.ChromeVoxEventWatcher.mouseoverDelayMs);return!0};cvox.ChromeVoxEventWatcher.mouseOutEventWatcher=function(a){a.target==cvox.ChromeVoxEventWatcher.pendingMouseOverNode&&(cvox.ChromeVoxEventWatcher.pendingMouseOverNode=null,cvox.ChromeVoxEventWatcher.mouseOverTimeoutId&&(window.clearTimeout(cvox.ChromeVoxEventWatcher.mouseOverTimeoutId),cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null));return!0};
+cvox.ChromeVoxEventWatcher.focusEventWatcher=function(a){cvox.ChromeVoxUserCommands.removeTabDummySpan();cvox.ChromeVoxEventSuspender.areEventsSuspended()?a.target&&a.target.nodeType==Node.ELEMENT_NODE&&cvox.ChromeVoxEventWatcher.setLastFocusedNode_(a.target):cvox.ChromeVoxEventWatcher.addEvent(a);return!0};
+cvox.ChromeVoxEventWatcher.focusHandler=function(a){if(a.target&&a.target.hasAttribute&&"true"==a.target.getAttribute("aria-hidden")&&"true"!=a.target.getAttribute("chromevoxignoreariahidden"))cvox.ChromeVoxEventWatcher.setLastFocusedNode_(null),cvox.ChromeVoxEventWatcher.setUpTextHandler();else if(a.target&&a.target!=window){var b=a.target,c=cvox.DomUtil.getSurroundingControl(b);if(c&&c==cvox.ChromeVoxEventWatcher.lastFocusedNode)cvox.ChromeVoxEventWatcher.handleControlChanged(b);else{c?cvox.ChromeVoxEventWatcher.setLastFocusedNode_(c):
+cvox.ChromeVoxEventWatcher.setLastFocusedNode_(b);c=cvox.ChromeVoxEventWatcher.queueMode_();if(cvox.ChromeVoxEventWatcher.getInitialVisibility()||cvox.ChromeVoxEventWatcher.handleDialogFocus(b))c=cvox.AbstractTts.QUEUE_MODE_QUEUE;cvox.ChromeVox.navigationManager.clearPageSel(!0)&&(c=cvox.AbstractTts.QUEUE_MODE_QUEUE);cvox.ApiImplementation.syncToNode(b,!document.webkitHidden,c);if(a.target.constructor==HTMLVideoElement||a.target.constructor==HTMLAudioElement)cvox.ChromeVoxEventWatcher.setUpMediaHandler_();
+else{if(a.target.hasAttribute)switch(a=a.target.getAttribute("type"),a){case "time":cvox.ChromeVoxEventWatcher.setUpTimeHandler_();return;case "date":case "month":case "week":cvox.ChromeVoxEventWatcher.setUpDateHandler_();return}cvox.ChromeVoxEventWatcher.setUpTextHandler()}}}else cvox.ChromeVoxEventWatcher.setLastFocusedNode_(null)};
+cvox.ChromeVoxEventWatcher.blurEventWatcher=function(a){window.setTimeout(function(){document.activeElement||(cvox.ChromeVoxEventWatcher.setLastFocusedNode_(null),cvox.ChromeVoxEventWatcher.addEvent(a))},0);return!0};
+cvox.ChromeVoxEventWatcher.keyDownEventWatcher=function(a){cvox.ChromeVox.isChromeOS&&91==a.keyCode&&(cvox.ChromeVox.searchKeyHeld=!0);a.searchKeyHeld=cvox.ChromeVox.searchKeyHeld&&cvox.ChromeVox.isActive;a.stickyMode=cvox.ChromeVox.isStickyOn&&cvox.ChromeVox.isActive;a.keyPrefix=cvox.ChromeVox.keyPrefixOn&&cvox.ChromeVox.isActive;cvox.ChromeVox.keyPrefixOn=!1;cvox.ChromeVoxEventWatcher.eventToEat=null;if(!cvox.ChromeVoxKbHandler.basicKeyDownActionsListener(a)||cvox.ChromeVoxEventWatcher.handleControlAction(a))return a.preventDefault(),
+a.stopPropagation(),cvox.ChromeVoxEventWatcher.eventToEat=a,!1;cvox.ChromeVoxEventWatcher.addEvent(a);return!0};cvox.ChromeVoxEventWatcher.keyUpEventWatcher=function(a){91==a.keyCode&&(cvox.ChromeVox.searchKeyHeld=!1);return cvox.ChromeVoxEventWatcher.eventToEat&&a.keyCode==cvox.ChromeVoxEventWatcher.eventToEat.keyCode?(a.stopPropagation(),a.preventDefault(),!1):!0};
+cvox.ChromeVoxEventWatcher.keyPressEventWatcher=function(a){var b=document.location.href,c=cvox.TypingEcho.shouldSpeakChar(cvox.ChromeVox.typingEcho);"undefined"!==typeof cvox.ChromeVox.keyEcho[b]&&(c=cvox.ChromeVox.keyEcho[b]);cvox.ChromeVoxEditableTextBase.eventTypingEcho&&c&&cvox.DomPredicates.editTextPredicate([document.activeElement])&&"password"!==document.activeElement.type&&(b=(new Date).getTime(),150<b-cvox.ChromeVoxEventWatcher.lastKeypressTime&&cvox.ChromeVox.tts.stop(),cvox.ChromeVoxEventWatcher.lastKeypressTime=
+b,cvox.ChromeVox.tts.speak(String.fromCharCode(a.charCode),1,{relativeRate:2}));cvox.ChromeVoxEventWatcher.addEvent(a);return cvox.ChromeVoxEventWatcher.eventToEat&&a.keyCode==cvox.ChromeVoxEventWatcher.eventToEat.keyCode?(a.preventDefault(),a.stopPropagation(),!1):!0};cvox.ChromeVoxEventWatcher.changeEventWatcher=function(a){cvox.ChromeVoxEventWatcher.addEvent(a);return!0};
+cvox.ChromeVoxEventWatcher.clipboardEventWatcher=function(a){cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg(a.type).toLowerCase());var b="";switch(a.type){case "paste":b=a.clipboardData.getData("text");break;case "copy":case "cut":b=window.getSelection().toString()}cvox.ChromeVox.tts.speak(b,cvox.AbstractTts.QUEUE_MODE_QUEUE);cvox.ChromeVox.navigationManager.clearPageSel();return!0};
+cvox.ChromeVoxEventWatcher.changeHandler=function(a){cvox.ChromeVoxEventWatcher.setUpTextHandler()||document.activeElement==a.target&&cvox.ChromeVoxEventWatcher.handleControlChanged(document.activeElement)};cvox.ChromeVoxEventWatcher.selectEventWatcher=function(a){cvox.ChromeVoxEventWatcher.addEvent(a);return!0};cvox.ChromeVoxEventWatcher.subtreeModifiedEventWatcher=function(a){if(!a||!a.target)return!0;cvox.ChromeVoxEventWatcher.addEvent(a);return!0};
+cvox.ChromeVoxEventWatcher.visibilityChangeWatcher=function(){cvox.ChromeVoxEventWatcher.initialVisibility=!document.webkitHidden;document.webkitHidden&&cvox.ChromeVox.navigationManager.stopReading(!0)};cvox.ChromeVoxEventWatcher.getInitialVisibility=function(){var a=cvox.ChromeVoxEventWatcher.initialVisibility;cvox.ChromeVoxEventWatcher.initialVisibility=!1;return a};
+cvox.ChromeVoxEventWatcher.speakLiveRegion_=function(a,b){var c=cvox.ChromeVoxEventWatcher.queueMode_();a||c!=cvox.AbstractTts.QUEUE_MODE_FLUSH||(c=cvox.AbstractTts.QUEUE_MODE_QUEUE);var d=new cvox.NavigationSpeaker;d.speakDescriptionArray(b,c,null)};
+cvox.ChromeVoxEventWatcher.subtreeModifiedHandler=function(a){var b=(new Date).getTime();if(cvox.ChromeVoxEventWatcher.lastSubtreeModifiedEventBurstTime_+cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_DURATION_>b){if(cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_++,cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_>cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_COUNT_LIMIT_)return}else cvox.ChromeVoxEventWatcher.lastSubtreeModifiedEventBurstTime_=b,cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_=
+1;if(a&&a.target)for(a=a.target,a=cvox.AriaUtil.getLiveRegions(a),b=0;b<a.length&&b<cvox.ChromeVoxEventWatcher.MAX_LIVE_REGIONS_;b++)cvox.LiveRegionsDeprecated.updateLiveRegion(a[b],cvox.ChromeVoxEventWatcher.queueMode_(),!1)};
+cvox.ChromeVoxEventWatcher.setUpTextHandler=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);if(a!=cvox.ChromeVoxEventWatcher.currentTextControl){cvox.ChromeVoxEventWatcher.currentTextControl&&(cvox.ChromeVoxEventWatcher.currentTextControl.removeEventListener("input",cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),cvox.ChromeVoxEventWatcher.currentTextControl.removeEventListener("click",
+cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),cvox.ChromeVoxEventWatcher.textMutationObserver_&&(cvox.ChromeVoxEventWatcher.textMutationObserver_.disconnect(),cvox.ChromeVoxEventWatcher.textMutationObserver_=null));cvox.ChromeVoxEventWatcher.currentTextControl=null;cvox.ChromeVoxEventWatcher.currentTextHandler=null;if(null==a)return!1;if(a.constructor==HTMLInputElement&&cvox.DomUtil.isInputTypeText(a)&&cvox.ChromeVoxEventWatcher.shouldEchoKeys)cvox.ChromeVoxEventWatcher.currentTextControl=a,cvox.ChromeVoxEventWatcher.currentTextHandler=
+new cvox.ChromeVoxEditableHTMLInput(a,cvox.ChromeVox.tts);else if(a.constructor==HTMLTextAreaElement&&cvox.ChromeVoxEventWatcher.shouldEchoKeys)cvox.ChromeVoxEventWatcher.currentTextControl=a,cvox.ChromeVoxEventWatcher.currentTextHandler=new cvox.ChromeVoxEditableTextArea(a,cvox.ChromeVox.tts);else if(a.isContentEditable||"textbox"==a.getAttribute("role"))cvox.ChromeVoxEventWatcher.currentTextControl=a,cvox.ChromeVoxEventWatcher.currentTextHandler=new cvox.ChromeVoxEditableContentEditable(a,cvox.ChromeVox.tts);
+cvox.ChromeVoxEventWatcher.currentTextControl&&(cvox.ChromeVoxEventWatcher.currentTextControl.addEventListener("input",cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),cvox.ChromeVoxEventWatcher.currentTextControl.addEventListener("click",cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),window.WebKitMutationObserver&&(cvox.ChromeVoxEventWatcher.textMutationObserver_=new WebKitMutationObserver(cvox.ChromeVoxEventWatcher.onTextMutation),cvox.ChromeVoxEventWatcher.textMutationObserver_.observe(cvox.ChromeVoxEventWatcher.currentTextControl,
+{childList:!0,attributes:!0,subtree:!0,attributeOldValue:!1,characterDataOldValue:!1})),cvox.ChromeVoxEventSuspender.areEventsSuspended()||cvox.ChromeVox.navigationManager.updateSel(cvox.CursorSelection.fromNode(cvox.ChromeVoxEventWatcher.currentTextControl)));return null!=cvox.ChromeVoxEventWatcher.currentTextHandler}};cvox.ChromeVoxEventWatcher.handleTextChanged=function(a){if(cvox.ChromeVoxEventWatcher.currentTextHandler){var b=cvox.ChromeVoxEventWatcher.currentTextHandler;b.update(a);return!0}return!1};
+cvox.ChromeVoxEventWatcher.onTextMutation=function(){cvox.ChromeVoxEventWatcher.currentTextHandler&&window.setTimeout(function(){cvox.ChromeVoxEventWatcher.handleTextChanged(!1)},cvox.ChromeVoxEventWatcher.MAX_WAIT_TIME_MS_)};
+cvox.ChromeVoxEventWatcher.handleControlChanged=function(a){var b=cvox.DomUtil.getControlValueAndStateString(a),c=cvox.DomUtil.getSurroundingControl(a),d=!1;if(a!=cvox.ChromeVoxEventWatcher.lastFocusedNode&&(null==c||c!=cvox.ChromeVoxEventWatcher.lastFocusedNode))cvox.ChromeVoxEventWatcher.setLastFocusedNode_(a);else if(b==cvox.ChromeVoxEventWatcher.lastFocusedNodeValue)return;cvox.ChromeVoxEventWatcher.lastFocusedNodeValue=b;if(cvox.DomPredicates.checkboxPredicate([a])||cvox.DomPredicates.radioPredicate([a]))d=
+!0,a.checked?cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.CHECK_ON):cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.CHECK_OFF);"SELECT"==a.tagName&&(d=!0);if("INPUT"==a.tagName)switch(a.type){case "color":case "datetime":case "datetime-local":case "range":d=!0}a.hasAttribute&&a.hasAttribute("role")&&(d=!0);c&&c!=a&&document.activeElement==a?(cvox.ApiImplementation.syncToNode(a,!0,cvox.AbstractTts.QUEUE_MODE_FLUSH),d=!1):cvox.AriaUtil.getActiveDescendant(a)&&(cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(cvox.AriaUtil.getActiveDescendant(a),
+!0),d=!0);d&&!cvox.ChromeVoxEventSuspender.areEventsSuspended()&&(cvox.ChromeVox.tts.speak(b,cvox.ChromeVoxEventWatcher.queueMode_(),null),cvox.NavBraille.fromText(b).write())};
+cvox.ChromeVoxEventWatcher.handleControlAction=function(a){if(!cvox.ChromeVox.isActive)return!1;var b=a.target;if("SELECT"==b.tagName&&1>=b.size&&(13==a.keyCode||32==a.keyCode))return a.preventDefault(),a.stopPropagation(),!0;if("INPUT"==b.tagName&&"range"==b.type){var c=parseFloat(b.value),d;b.step&&0<b.step?d=b.step:b.min&&b.max?(d=b.max-b.min,d=2<d&&31>d?1:(b.max-b.min)/10):d=1;if(37==a.keyCode||38==a.keyCode)c-=d;else if(39==a.keyCode||40==a.keyCode)c+=d;b.max&&c>b.max&&(c=b.max);b.min&&c<b.min&&
+(c=b.min);b.value=c}return!1};
+cvox.ChromeVoxEventWatcher.handleDialogFocus=function(a){for(;a;){if(a.hasAttribute){var b=a.getAttribute("role");if("dialog"==b||"alertdialog"==b)break}a=a.parentElement}if(a==cvox.ChromeVox.navigationManager.currentDialog)return!1;if(cvox.ChromeVox.navigationManager.currentDialog&&!a){if(!cvox.DomUtil.isDescendantOfNode(document.activeElement,cvox.ChromeVox.navigationManager.currentDialog))return cvox.ChromeVox.navigationManager.currentDialog=null,cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("exiting_dialog"),cvox.AbstractTts.QUEUE_MODE_FLUSH,
+cvox.AbstractTts.PERSONALITY_ANNOTATION),!0}else if(a)return cvox.ChromeVox.navigationManager.currentDialog=a,cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("entering_dialog"),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION),a=cvox.DescriptionUtil.getFullDescriptionsFromChildren(null,a),b=new cvox.NavigationSpeaker,b.speakDescriptionArray(a,cvox.AbstractTts.QUEUE_MODE_QUEUE,null),!0;return!1};
+cvox.ChromeVoxEventWatcherUtil.shouldWaitToProcess=function(a,b,c){a=c-a;b=c-b;return a<cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_&&b<cvox.ChromeVoxEventWatcher.MAX_WAIT_TIME_MS_};cvox.ChromeVoxEventWatcher.queueMode_=function(){return cvox.ChromeVoxEventWatcher.processing_?cvox.AbstractTts.QUEUE_MODE_QUEUE:cvox.AbstractTts.QUEUE_MODE_FLUSH};
+cvox.ChromeVoxEventWatcher.processQueue_=function(){if(0!=cvox.ChromeVoxEventWatcher.events_.length){var a=cvox.ChromeVoxEventWatcher.events_,b=-1,c=0,d,e;for(e=0;d=a[e];e++)"focus"==d.type&&(b=e,c=d.timeStamp);cvox.ChromeVoxEventWatcher.events_=[];for(e=0;d=a[e];e++){var f=a[e-1]||{};!(e>=b||"LiveRegion"==d.type||"DOMSubtreeModified"==d.type)||"focus"==f.type&&"change"==d.type||cvox.ChromeVoxEventWatcher.events_.push(d)}cvox.ChromeVoxEventWatcher.events_.sort(function(a,b){return"LiveRegion"!=b.type&&
+"LiveRegion"==a.type||"DOMSubtreeModified"!=b.type&&"DOMSubtreeModified"==a.type?1:-1});a=(new Date).getTime();if(0<=b&&cvox.ChromeVoxEventWatcherUtil.shouldWaitToProcess(c,cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime,a))window.setTimeout(cvox.ChromeVoxEventWatcher.processQueue_,cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_);else{for(e=0;d=cvox.ChromeVoxEventWatcher.events_[e];e++)cvox.ChromeVoxEventWatcher.handleEvent_(d),cvox.ChromeVoxEventWatcher.processing_=!0;cvox.ChromeVoxEventWatcher.processing_=
+!1;cvox.ChromeVoxEventWatcher.events_=[];cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime=-1;cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!1;cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_()}}};
+cvox.ChromeVoxEventWatcher.handleEvent_=function(a){switch(a.type){case "keydown":cvox.ChromeVoxEventWatcher.setUpTextHandler();if(cvox.ChromeVoxEventWatcher.currentTextControl&&(cvox.ChromeVoxEventWatcher.handleTextChanged(!0),(a=cvox.ChromeVoxEventWatcher.currentTextHandler)&&a.lastChangeDescribed))break;cvox.ChromeVoxEventWatcher.handleControlChanged(document.activeElement);break;case "keypress":cvox.ChromeVoxEventWatcher.setUpTextHandler();break;case "focus":cvox.ChromeVoxEventWatcher.focusHandler(a);
+break;case "blur":cvox.ChromeVoxEventWatcher.setUpTextHandler();break;case "change":cvox.ChromeVoxEventWatcher.changeHandler(a);break;case "select":cvox.ChromeVoxEventWatcher.setUpTextHandler();break;case "LiveRegion":cvox.ChromeVoxEventWatcher.speakLiveRegion_(a.assertive,a.navDescriptions);break;case "DOMSubtreeModified":cvox.ChromeVoxEventWatcher.subtreeModifiedHandler(a)}};
+cvox.ChromeVoxEventWatcher.setUpTimeHandler_=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);cvox.ChromeVoxEventWatcher.currentTimeHandler=a.constructor==HTMLInputElement&&a.type&&"time"==a.type?new cvox.ChromeVoxHTMLTimeWidget(a,cvox.ChromeVox.tts):null;return null!=cvox.ChromeVoxEventWatcher.currentTimeHandler};
+cvox.ChromeVoxEventWatcher.setUpMediaHandler_=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);cvox.ChromeVoxEventWatcher.currentMediaHandler=a.constructor==HTMLVideoElement||a.constructor==HTMLAudioElement?new cvox.ChromeVoxHTMLMediaWidget(a,cvox.ChromeVox.tts):null;return null!=cvox.ChromeVoxEventWatcher.currentMediaHandler};
+cvox.ChromeVoxEventWatcher.setUpDateHandler_=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);cvox.ChromeVoxEventWatcher.currentDateHandler=a.constructor!=HTMLInputElement||!a.type||"date"!=a.type&&"month"!=a.type&&"week"!=a.type?null:new cvox.ChromeVoxHTMLDateWidget(a,cvox.ChromeVox.tts);return null!=cvox.ChromeVoxEventWatcher.currentDateHandler};cvox.Serializer=function(){};cvox.Serializer.prototype.storeOn=function(a){cvox.ChromeVox.storeOn(a);cvox.ChromeVoxEventWatcher.storeOn(a)};cvox.Serializer.prototype.readFrom=function(a){cvox.ChromeVox.readFrom(a);cvox.ChromeVoxEventWatcher.readFrom(a)};cvox.InitGlobals=function(){};
+cvox.InitGlobals.initGlobals=function(){cvox.ChromeVox.host||(cvox.ChromeVox.host=cvox.HostFactory.getHost());cvox.ChromeVox.tts=(new cvox.CompositeTts).add(cvox.HostFactory.getTts()).add(cvox.History.getInstance()).add(cvox.ConsoleTts.getInstance());cvox.ChromeVox.braille||(cvox.ChromeVox.braille=cvox.HostFactory.getBraille());cvox.ChromeVox.mathJax=cvox.HostFactory.getMathJax();cvox.ChromeVox.earcons=cvox.HostFactory.getEarcons();cvox.ChromeVox.msgs=cvox.HostFactory.getMsgs();cvox.ChromeVox.isActive=
+!0;cvox.ChromeVox.navigationManager=new cvox.NavigationManager;cvox.ChromeVox.navigationManager.updateIndicator();cvox.ChromeVox.syncToNode=cvox.ApiImplementation.syncToNode;cvox.ChromeVox.speakNode=cvox.ApiImplementation.speakNode;cvox.ChromeVox.serializer=new cvox.Serializer;cvox.ChromeVox.host.init();cvox.ChromeVoxEventWatcher.init(window);cvox.ChromeVox.executeUserCommand=function(a){cvox.ChromeVoxUserCommands.commands[a]()};cvox.ChromeVox.host.onPageLoad()};cvox.ChromeVoxInit={};cvox.ChromeVox.initTimeout_=100;cvox.ChromeVox.recallInit_=function(a){window.console.log(a+" Will try again in "+cvox.ChromeVox.initTimeout_+"ms");window.setTimeout(cvox.ChromeVox.initDocument,cvox.ChromeVox.initTimeout_);cvox.ChromeVox.initTimeout_*=2};
+cvox.ChromeVox.initDocument=function(){document.body?(cvox.ChromeVox.host=cvox.HostFactory.getHost(),cvox.ChromeVox.host.ttsLoaded()?(window.console.log("Starting ChromeVox."),cvox.InitGlobals.initGlobals(),window.disableChromeVox=function(){cvox.ChromeVox.host.killChromeVox()}):cvox.ChromeVox.recallInit_("ChromeVox not starting; waiting for TTS. "+document.location.href+".")):cvox.ChromeVox.recallInit_("ChromeVox not starting on unloaded page: "+document.location.href+".")};
+cvox.ChromeVox.reinit=function(){cvox.ChromeVox.host.reinit();cvox.ChromeVox.initDocument()};cvox.AndroidBraille=function(){};goog.inherits(cvox.AndroidBraille,cvox.AbstractBraille);cvox.AndroidBraille.prototype.write=function(a){accessibility.braille&&accessibility.braille(JSON.stringify(a.toJson()))};cvox.HostFactory.brailleConstructor=cvox.AndroidBraille;cvox.AndroidEarcons=function(){cvox.AbstractEarcons.call(this);this.audioMap={}};goog.inherits(cvox.AndroidEarcons,cvox.AbstractEarcons);cvox.AndroidEarcons.BASE_URL="https://ssl.gstatic.com/accessibility/javascript/android/earcons/";
+cvox.AndroidEarcons.prototype.playEarcon=function(a){if(this.earconsAvailable()){cvox.AndroidEarcons.superClass_.playEarcon.call(this,a);this.currentAudio=this.audioMap[a];this.currentAudio||(this.currentAudio=new Audio(cvox.AndroidEarcons.BASE_URL+this.getEarconFilename(a)),this.audioMap[a]=this.currentAudio);try{this.currentAudio.currentTime=0}catch(b){}this.currentAudio.paused&&this.currentAudio.play()}};
+cvox.AndroidEarcons.prototype.earconsAvailable=function(){return-1==navigator.userAgent.indexOf("Chrome")?!1:!0};cvox.HostFactory.earconsConstructor=cvox.AndroidEarcons;"undefined"!=typeof goog&&goog.provide&&(cvox.Api={},cvox.Api.Math={});
+(function(){function a(){d&&(d.port1.close(),d.port2.close(),d=null);d=new MessageChannel;window.postMessage("cvox.PortSetup",[d.port2],"*");d.port1.onmessage=function(a){"cvox.Disconnect"==a.data&&(d=null);try{var b=JSON.parse(a.data);b.id&&g[b.id]&&(g[b.id](b),delete g[b.id])}catch(c){}}}function b(a,b){var c=f;f++;void 0===a.args&&(a.args=[]);a.args=[c].concat(a.args);g[c]=b;d.port1.postMessage(JSON.stringify(a))}function c(a,c){var d=null;c&&c.endCallback&&(d=c.endCallback);b(a,d)}var d,e=!1,
+f=1,g={};window.cvox||(window.cvox={});var h=window.cvox,k=null;"undefined"!=typeof h.ApiImplementation&&(k=h.ApiImplementation);h.Api=function(){};h.Api.internalEnable=function(){e=!0;k||a();var b=document.createEvent("UIEvents");b.initEvent("chromeVoxLoaded",!0,!1);document.dispatchEvent(b)};h.Api.internalDisable=function(){e=!1;d=null;var a=document.createEvent("UIEvents");a.initEvent("chromeVoxUnloaded",!0,!1);document.dispatchEvent(a)};h.Api.isChromeVoxActive=function(){return k?e:!!d};h.Api.speak=
+function(a,b,d){h.Api.isChromeVoxActive()&&(k?k.speak(a,b,d):(a={cmd:"speak",args:[a,b,d]},c(a,d)))};h.Api.speakNode=function(a,b,d){h.Api.isChromeVoxActive()&&(k?k.speak(h.DomUtil.getName(a),b,d):(a={cmd:"speakNodeRef",args:[h.ApiUtils.makeNodeReference(a),b,d]},c(a,d)))};h.Api.stop=function(){if(h.Api.isChromeVoxActive())if(k)k.stop();else{var a={cmd:"stop"};d.port1.postMessage(JSON.stringify(a))}};h.Api.playEarcon=function(a){h.Api.isChromeVoxActive()&&(k?k.playEarcon(a):(a={cmd:"playEarcon",args:[a]},
+d.port1.postMessage(JSON.stringify(a))))};h.Api.syncToNode=function(a,b){if(h.Api.isChromeVoxActive()&&a)if(k)k.syncToNode(a,b);else{var c={cmd:"syncToNodeRef",args:[h.ApiUtils.makeNodeReference(a),b]};d.port1.postMessage(JSON.stringify(c))}};h.Api.getCurrentNode=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.ChromeVox.navigationManager.getCurrentNode()):b({cmd:"getCurrentNode"},function(b){a(h.ApiUtils.getNodeFromRef(b.currentNode))}))};h.Api.setSpeechForNode=function(a,b){h.Api.isChromeVoxActive()&&
+a&&b&&a.setAttribute("cvoxnodedesc",JSON.stringify(b))};h.Api.click=function(a,b){if(h.Api.isChromeVoxActive()&&a)if(k)h.DomUtil.clickElem(a,b,!0);else{var c={cmd:"clickNodeRef",args:[h.ApiUtils.makeNodeReference(a),b]};d.port1.postMessage(JSON.stringify(c))}};h.Api.getBuild=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.BuildInfo.build):b({cmd:"getBuild"},function(b){a(b.build)}))};h.Api.getVersion=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.ChromeVox.version+""):b({cmd:"getVersion"},function(b){a(b.version)}))};
+h.Api.getCvoxModifierKeys=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.KeyUtil.cvoxModKeyCodes()):b({cmd:"getCvoxModKeys"},function(b){a(b.keyCodes)}))};h.Api.isKeyShortcut=function(a,c){if(c)if(h.Api.isChromeVoxActive()){var d=[37,39];if(!d.indexOf(a.keyCode)||a.altKey||a.shiftKey||a.ctrlKey||a.metaKey)if(k){var e=h.KeyUtil.keyEventToKeySequence(a);c(h.ChromeVoxKbHandler.handlerKeyMap.hasKey(e))}else{var d={},f=["target","srcElement","currentTarget","view"];for(e in a)-1===f.indexOf(e)&&(d[e]=
+a[e]);e={cmd:"isKeyShortcut",args:[d]};b(e,function(a){c(a.isHandled)})}else c(!1)}else c(!1)};h.Api.setKeyEcho=function(a){h.Api.isChromeVoxActive()&&(k?k.setKeyEcho(a):(a={cmd:"setKeyEcho",args:[a]},d.port1.postMessage(JSON.stringify(a))))};h.Api.Math=function(){};h.Api.Math.defineRule=function(a,b,c,e,f){if(h.Api.isChromeVoxActive()){var g=Array.prototype.slice.call(arguments,4),g=[a,b,c,e].concat(g);k?k.Math.defineRule.apply(k.Math,g):(g={cmd:"Math.defineRule",args:g},d.port1.postMessage(JSON.stringify(g)))}};
+h.Api.internalEnable();h.NodeDescription=function(a,b,c,d){this.context=a?a:"";this.text=b?b:"";this.userValue=c?c:"";this.annotation=d?d:""}})();cvox.InitialSpeech={};window.INJECTED_AFTER_LOAD||(window.INJECTED_AFTER_LOAD=!1);
+cvox.InitialSpeech.speak=function(){var a=window.INJECTED_AFTER_LOAD;if(!cvox.ChromeVox.isActive||document.webkitHidden)a=!0;window.top==window&&document.title&&!a&&cvox.ChromeVox.tts.speak(document.title,cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.LiveRegions.init(new Date,cvox.AbstractTts.QUEUE_MODE_QUEUE,a);document.hasFocus()&&document.activeElement==document.body&&cvox.ChromeVox.navigationManager.syncToBeginning();if(cvox.ChromeVox.position[document.location.href]){var b=cvox.ChromeVox.position[document.location.href];
+cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(document.elementFromPoint(b.x,b.y))}document.hasFocus()&&(a||cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(){cvox.ChromeVox.navigationManager.finishNavCommand("",!0,cvox.AbstractTts.QUEUE_MODE_QUEUE)})())};cvox.AndroidKeyMap=function(){};
+cvox.AndroidKeyMap.getStringifiedKeyMap=function(){return cvox.ChromeVoxJSON.stringify({'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[17]}}':"stopSpeech",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[9]}}':"handleTab",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[9]}}':"handleTabPrev",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[38]}}':"backward",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[40]}}':"forward",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[37]}}':"previousGranularity",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[39]}}':"nextGranularity",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[13]}}':"forceClickOnCurrentItem",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[40]}}':"readFromHere",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[85]}}':"readLinkURL",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[75]}}':"fullyDescribe",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[189]}}':"decreaseTtsPitch",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[187]}}':"increaseTtsPitch",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[219]}}':"decreaseTtsRate",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[221]}}':"increaseTtsRate",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[81]}}':"cyclePunctuationLevel",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[49]}}':"nextHeading1",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[49]}}':"previousHeading1",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[50]}}':"nextHeading2",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[50]}}':"previousHeading2",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[51]}}':"nextHeading3",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[51]}}':"previousHeading3",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[52]}}':"nextHeading4",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[52]}}':"previousHeading4",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[53]}}':"nextHeading5",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[53]}}':"previousHeading5",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[54]}}':"nextHeading6",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[54]}}':"previousHeading6",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[67]}}':"nextComboBox",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[67]}}':"previousComboBox",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[69]}}':"nextEditText",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[69]}}':"previousEditText",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[70]}}':"nextFormField",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[70]}}':"previousFormField",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[71]}}':"nextGraphic",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[71]}}':"previousGraphic",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[72]}}':"nextHeading",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[72]}}':"previousHeading",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[73]}}':"nextListItem",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[73]}}':"previousListItem",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[76]}}':"nextLink",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[76]}}':"previousLink",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[79]}}':"nextList",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[79]}}':"previousList",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[82]}}':"nextRadio",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[82]}}':"previousRadio",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[84]}}':"nextTable",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[84]}}':"previousTable",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[66]}}':"nextButton",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[66]}}':"previousButton",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[88]}}':"nextCheckbox",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[88]}}':"previousCheckbox",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[186]}}':"nextLandmark",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[186]}}':"previousLandmark"})};cvox.MathSimpleStore=function(){cvox.MathStore.call(this)};goog.inherits(cvox.MathSimpleStore,cvox.MathStore);cvox.MathSimpleStore.prototype.defineRulesFromMappings=function(a,b,c){for(var d in c)for(var e in c[d]){var f=c[d][e],g='self::text() = "'+b+'"';this.defineRule(a,d+"."+e,'[t] "'+f+'"',"self::text()",g)}};cvox.MathCompoundStore=function(){this.subStores_={}};goog.addSingletonGetter(cvox.MathCompoundStore);
+cvox.MathCompoundStore.prototype.defineRules=function(a,b,c){var d=new cvox.MathSimpleStore;d.defineRulesFromMappings(a,b,c);this.subStores_[b]=d};cvox.MathCompoundStore.prototype.addSymbolRules=function(a){var b=cvox.MathSimpleStore.parseUnicode_(a.key);this.defineRules(a.key,b,a.mappings)};cvox.MathCompoundStore.prototype.addFunctionRules=function(a){var b=a.names;a=a.mappings;for(var c=0,d;d=b[c];c++)this.defineRules(d,d,a)};
+cvox.MathCompoundStore.prototype.lookupRule=function(a,b){var c=this.subStores_[a.textContent];if(c)return c.lookupRule(a,b)};cvox.MathCompoundStore.prototype.lookupString=function(a,b){var c=document.createTextNode(a);return(c=this.lookupRule(c,b))?c.action.components.map(function(a){return a.content.slice(1,-1)}).join(" "):""};
+cvox.MathCompoundStore.prototype.getDynamicConstraintValues=function(){var a={},b;for(b in this.subStores_){var c=this.subStores_[b].getDynamicConstraintValues(),d;for(d in c){var e=a[d];a[d]=e?cvox.MathUtil.union(e,c[d]):c[d]}}return a};cvox.MathSimpleStore.parseUnicode_=function(a){var b=parseInt(a,16);if(65536>b)return String.fromCharCode(b);b-=65536;a=(b>>10)+55296;b=(b&1023)+56320;return String.fromCharCode(a,b)};cvox.AndroidMathMap=function(){this.store_=cvox.MathCompoundStore.getInstance();cvox.AndroidMathMap.FUNCTION_MAPPINGS_.forEach(goog.bind(this.store_.addFunctionRules,this.store_));cvox.AndroidMathMap.SYMBOL_MAPPINGS_.forEach(goog.bind(this.store_.addSymbolRules,this.store_));this.store_.getDynamicConstraintValues()};
+cvox.AndroidMathMap.prototype.evaluate=function(a,b,c){var d="";b=cvox.MathStore.createDynamicConstraint(b,c);d=this.store_.lookupString(a,b);return new cvox.NavDescription({text:d?d:a})};
+cvox.AndroidMathMap.SYMBOL_MAPPINGS_=[{category:"Po",mappings:{"default":{"default":"exclamation mark"}},key:"0021"},{category:"Po",mappings:{"default":{"default":"quotation mark"}},key:"0022"},{category:"Po",mappings:{"default":{"default":"number sign",alternative:"hash","short":"number"}},key:"0023"},{category:"Sc",mappings:{"default":{"default":"dollar sign","short":"dollar"}},key:"0024"},{category:"Po",mappings:{"default":{"default":"percent sign","short":"percent"}},key:"0025"},{category:"Po",
+mappings:{"default":{"default":"ampersand"}},key:"0026"},{category:"Po",mappings:{"default":{"default":"apostrophe",alternative:"apostrophe quote"}},key:"0027"},{category:"Po",mappings:{"default":{"default":"asterisk"}},key:"002A"},{category:"Sm",mappings:{"default":{"default":"plus sign","short":"plus"}},key:"002B"},{category:"Po",mappings:{"default":{"default":"comma"}},key:"002C"},{category:"Pd",mappings:{"default":{"default":"hyphen minus","short":"minus"}},key:"002D"},{category:"Po",mappings:{"default":{"default":"full stop",
+alternative:"period"}},key:"002E"},{category:"Po",mappings:{"default":{"default":"solidus",alternative:"slash"}},key:"002F"},{category:"Po",mappings:{"default":{"default":"colon"}},key:"003A"},{category:"Po",mappings:{"default":{"default":"semicolon"}},key:"003B"},{category:"Sm",mappings:{"default":{"default":"less than sign","short":"less than"}},key:"003C"},{category:"Sm",mappings:{"default":{"default":"equals sign","short":"equals"}},key:"003D"},{category:"Sm",mappings:{"default":{"default":"greater than sign",
+"short":"greater than"}},key:"003E"},{category:"Po",mappings:{"default":{"default":"question mark"}},key:"003F"},{category:"Po",mappings:{"default":{"default":"commercial at","short":"at"}},key:"0040"},{category:"Po",mappings:{"default":{"default":"reverse solidus",alternative:"backslash"}},key:"005C"},{category:"Sk",mappings:{"default":{"default":"circumflex accent",alternative:"spacing circumflex","short":"hat"}},key:"005E"},{category:"Pc",mappings:{"default":{"default":"low line",alternative:"spacing underscore"}},
+key:"005F"},{category:"Sk",mappings:{"default":{"default":"grave accent",alternative:"spacing grave","short":"grave"}},key:"0060"},{category:"Sm",mappings:{"default":{"default":"vertical line",alternative:"vertical bar"}},key:"007C"},{category:"Sm",mappings:{"default":{"default":"tilde"}},key:"007E"},{category:"Po",mappings:{"default":{"default":"inverted exclamation mark"}},key:"00A1"},{category:"Sc",mappings:{"default":{"default":"cent sign","short":"cent"}},key:"00A2"},{category:"Sc",mappings:{"default":{"default":"pound sign",
+"short":"pound"}},key:"00A3"},{category:"Sc",mappings:{"default":{"default":"currency sign","short":"currency"}},key:"00A4"},{category:"Sc",mappings:{"default":{"default":"yen sign","short":"yen"}},key:"00A5"},{category:"So",mappings:{"default":{"default":"broken bar",alternative:"broken vertical bar"}},key:"00A6"},{category:"Po",mappings:{"default":{"default":"section sign","short":"section"}},key:"00A7"},{category:"Sk",mappings:{"default":{"default":"diaeresis",alternative:"spacing diaeresis","short":"double dot"}},
+key:"00A8"},{category:"So",mappings:{"default":{"default":"copyright sign","short":"copyright"}},key:"00A9"},{category:"Lo",mappings:{"default":{"default":"feminine ordinal indicator"}},key:"00AA"},{category:"Pi",mappings:{"default":{"default":"left pointing double angle quotation mark",alternative:"left pointing guillemet"}},key:"00AB"},{category:"Sm",mappings:{"default":{"default":"not sign","short":"not"}},key:"00AC"},{category:"So",mappings:{"default":{"default":"registered sign",alternative:"registered trade mark sign",
+"short":"registered"}},key:"00AE"},{category:"Sk",mappings:{"default":{"default":"macron",alternative:"spacing macron"}},key:"00AF"},{category:"So",mappings:{"default":{"default":"degree sign","short":"degree"}},key:"00B0"},{category:"Sm",mappings:{"default":{"default":"plus minus sign",alternative:"plus or minus sign","short":"plus minus"}},key:"00B1"},{category:"Sk",mappings:{"default":{"default":"acute accent",alternative:"spacing acute","short":"acute"}},key:"00B4"},{category:"Ll",mappings:{"default":{"default":"micro sign",
+"short":"micro"}},key:"00B5"},{category:"Po",mappings:{"default":{"default":"pilcrow sign",alternative:"paragraph sign","short":"pilcrow"}},key:"00B6"},{category:"Po",mappings:{"default":{"default":"middle dot"}},key:"00B7"},{category:"Sk",mappings:{"default":{"default":"cedilla",alternative:"spacing cedilla"}},key:"00B8"},{category:"Lo",mappings:{"default":{"default":"masculine ordinal indicator"}},key:"00BA"},{category:"Pf",mappings:{"default":{"default":"right pointing double angle quotation mark",
+alternative:"right pointing guillemet"}},key:"00BB"},{category:"Po",mappings:{"default":{"default":"inverted question mark"}},key:"00BF"},{category:"Sm",mappings:{"default":{"default":"multiplication sign","short":"multiplication"}},key:"00D7"},{category:"Sm",mappings:{"default":{"default":"division sign","short":"division"}},key:"00F7"},{category:"Sk",mappings:{"default":{"default":"breve",alternative:"spacing breve"}},key:"02D8"},{category:"Sk",mappings:{"default":{"default":"dot above",alternative:"spacing dot above"}},
+key:"02D9"},{category:"Sk",mappings:{"default":{"default":"ring above",alternative:"spacing ring above"}},key:"02DA"},{category:"Sk",mappings:{"default":{"default":"ogonek",alternative:"spacing ogonek"}},key:"02DB"},{category:"Sk",mappings:{"default":{"default":"small tilde",alternative:"spacing tilde"}},key:"02DC"},{category:"Sk",mappings:{"default":{"default":"double acute accent",alternative:"spacing double acute"}},key:"02DD"},{category:"Pd",mappings:{"default":{"default":"hyphen"}},key:"2010"},
+{category:"Pd",mappings:{"default":{"default":"non breaking hyphen"}},key:"2011"},{category:"Pd",mappings:{"default":{"default":"figure dash"}},key:"2012"},{category:"Pd",mappings:{"default":{"default":"en dash"}},key:"2013"},{category:"Pd",mappings:{"default":{"default":"em dash"}},key:"2014"},{category:"Pd",mappings:{"default":{"default":"horizontal bar",alternative:"quotation dash"}},key:"2015"},{category:"Po",mappings:{"default":{"default":"double vertical line",alternative:"double vertical bar"}},
+key:"2016"},{category:"Po",mappings:{"default":{"default":"double low line",alternative:"spacing double underscore"}},key:"2017"},{category:"Pi",mappings:{"default":{"default":"left single quotation mark",alternative:"single turned comma quotation mark"}},key:"2018"},{category:"Pf",mappings:{"default":{"default":"right single quotation mark",alternative:"single comma quotation mark"}},key:"2019"},{category:"Ps",mappings:{"default":{"default":"single low 9 quotation mark",alternative:"low single comma quotation mark"}},
+key:"201A"},{category:"Pi",mappings:{"default":{"default":"single high reversed 9 quotation mark",alternative:"single reversed comma quotation mark"}},key:"201B"},{category:"Pi",mappings:{"default":{"default":"left double quotation mark",alternative:"double turned comma quotation mark"}},key:"201C"},{category:"Pf",mappings:{"default":{"default":"right double quotation mark",alternative:"double comma quotation mark"}},key:"201D"},{category:"Ps",mappings:{"default":{"default":"double low 9 quotation mark",
+alternative:"low double comma quotation mark"}},key:"201E"},{category:"Pi",mappings:{"default":{"default":"double high reversed 9 quotation mark",alternative:"double reversed comma quotation mark"}},key:"201F"},{category:"Po",mappings:{"default":{"default":"dagger"}},key:"2020"},{category:"Po",mappings:{"default":{"default":"double dagger"}},key:"2021"},{category:"Po",mappings:{"default":{"default":"bullet"}},key:"2022"},{category:"Po",mappings:{"default":{"default":"triangular bullet"}},key:"2023"},
+{category:"Po",mappings:{"default":{"default":"one dot leader"}},key:"2024"},{category:"Po",mappings:{"default":{"default":"two dot leader"}},key:"2025"},{category:"Po",mappings:{"default":{"default":"horizontal ellipsis"}},key:"2026"},{category:"Po",mappings:{"default":{"default":"hyphenation point"}},key:"2027"},{category:"Po",mappings:{"default":{"default":"per mille sign","short":"per mille"}},key:"2030"},{category:"Po",mappings:{"default":{"default":"per ten thousand sign","short":"per ten thousand"}},
+key:"2031"},{category:"Po",mappings:{"default":{"default":"prime"}},key:"2032"},{category:"Po",mappings:{"default":{"default":"double prime"}},key:"2033"},{category:"Po",mappings:{"default":{"default":"triple prime"}},key:"2034"},{category:"Po",mappings:{"default":{"default":"reversed prime"}},key:"2035"},{category:"Po",mappings:{"default":{"default":"reversed double prime"}},key:"2036"},{category:"Po",mappings:{"default":{"default":"reversed triple prime"}},key:"2037"},{category:"Po",mappings:{"default":{"default":"caret"}},
+key:"2038"},{category:"Pi",mappings:{"default":{"default":"single left pointing angle quotation mark",alternative:"left pointing single guillemet"}},key:"2039"},{category:"Pf",mappings:{"default":{"default":"single right pointing angle quotation mark",alternative:"right pointing single guillemet"}},key:"203A"},{category:"Po",mappings:{"default":{"default":"reference mark"}},key:"203B"},{category:"Po",mappings:{"default":{"default":"double exclamation mark"}},key:"203C"},{category:"Po",mappings:{"default":{"default":"interrobang"}},
+key:"203D"},{category:"Po",mappings:{"default":{"default":"overline",alternative:"spacing overscore"}},key:"203E"},{category:"Pc",mappings:{"default":{"default":"undertie"}},key:"203F"},{category:"Pc",mappings:{"default":{"default":"character tie"}},key:"2040"},{category:"Po",mappings:{"default":{"default":"caret insertion point"}},key:"2041"},{category:"Po",mappings:{"default":{"default":"asterism"}},key:"2042"},{category:"Po",mappings:{"default":{"default":"hyphen bullet"}},key:"2043"},{category:"Sm",
+mappings:{"default":{"default":"fraction slash"}},key:"2044"},{category:"Po",mappings:{"default":{"default":"double question mark"}},key:"2047"},{category:"Po",mappings:{"default":{"default":"question exclamation mark"}},key:"2048"},{category:"Po",mappings:{"default":{"default":"exclamation question mark"}},key:"2049"},{category:"Po",mappings:{"default":{"default":"reversed pilcrow sign","short":"reversed pilcrow"}},key:"204B"},{category:"Po",mappings:{"default":{"default":"black leftwards bullet"}},
+key:"204C"},{category:"Po",mappings:{"default":{"default":"black rightwards bullet"}},key:"204D"},{category:"Po",mappings:{"default":{"default":"low asterisk"}},key:"204E"},{category:"Po",mappings:{"default":{"default":"reversed semicolon"}},key:"204F"},{category:"Po",mappings:{"default":{"default":"close up"}},key:"2050"},{category:"Po",mappings:{"default":{"default":"two asterisks aligned vertically"}},key:"2051"},{category:"Sm",mappings:{"default":{"default":"commercial minus sign","short":"commercial minus"}},
+key:"2052"},{category:"Po",mappings:{"default":{"default":"swung dash"}},key:"2053"},{category:"Pc",mappings:{"default":{"default":"inverted undertie"}},key:"2054"},{category:"Po",mappings:{"default":{"default":"flower punctuation mark"}},key:"2055"},{category:"Po",mappings:{"default":{"default":"three dot punctuation"}},key:"2056"},{category:"Po",mappings:{"default":{"default":"quadruple prime"}},key:"2057"},{category:"Po",mappings:{"default":{"default":"four dot punctuation"}},key:"2058"},{category:"Po",
+mappings:{"default":{"default":"five dot punctuation"}},key:"2059"},{category:"Po",mappings:{"default":{"default":"two dot punctuation"}},key:"205A"},{category:"Po",mappings:{"default":{"default":"four dot mark"}},key:"205B"},{category:"Po",mappings:{"default":{"default":"dotted cross"}},key:"205C"},{category:"Po",mappings:{"default":{"default":"tricolon"}},key:"205D"},{category:"Po",mappings:{"default":{"default":"vertical four dots"}},key:"205E"},{category:"Sm",mappings:{"default":{"default":"superscript plus sign",
+"short":"superscript plus"}},key:"207A"},{category:"Sm",mappings:{"default":{"default":"superscript minus",alternative:"superscript hyphen minus"}},key:"207B"},{category:"Sm",mappings:{"default":{"default":"superscript equals sign","short":"superscript equals"}},key:"207C"},{category:"Ps",mappings:{"default":{"default":"superscript left parenthesis",alternative:"superscript opening parenthesis"}},key:"207D"},{category:"Pe",mappings:{"default":{"default":"superscript right parenthesis",alternative:"superscript closing parenthesis"}},
+key:"207E"},{category:"Sm",mappings:{"default":{"default":"subscript plus sign","short":"subscript plus"}},key:"208A"},{category:"Sm",mappings:{"default":{"default":"subscript minus",alternative:"subscript hyphen minus"}},key:"208B"},{category:"Sm",mappings:{"default":{"default":"subscript equals sign","short":"subscript equals"}},key:"208C"},{category:"Ps",mappings:{"default":{"default":"subscript left parenthesis",alternative:"subscript opening parenthesis"}},key:"208D"},{category:"Pe",mappings:{"default":{"default":"subscript right parenthesis",
+alternative:"subscript closing parenthesis"}},key:"208E"},{category:"So",mappings:{"default":{"default":"property line"}},key:"214A"},{category:"Sm",mappings:{"default":{"default":"turned ampersand"}},key:"214B"},{category:"So",mappings:{"default":{"default":"per sign","short":"per"}},key:"214C"},{category:"So",mappings:{"default":{"default":"aktieselskab"}},key:"214D"},{category:"Ll",mappings:{"default":{"default":"turned small f"}},key:"214E"},{category:"Sm",mappings:{"default":{"default":"for all"}},
+key:"2200"},{category:"Sm",mappings:{"default":{"default":"complement"}},key:"2201"},{category:"Sm",mappings:{"default":{"default":"partial differential"}},key:"2202"},{category:"Sm",mappings:{"default":{"default":"there exists"}},key:"2203"},{category:"Sm",mappings:{"default":{"default":"there does not exist"}},key:"2204"},{category:"Sm",mappings:{"default":{"default":"empty set"}},key:"2205"},{category:"Sm",mappings:{"default":{"default":"increment"}},key:"2206"},{category:"Sm",mappings:{"default":{"default":"nabla"}},
+key:"2207"},{category:"Sm",mappings:{"default":{"default":"element of"}},key:"2208"},{category:"Sm",mappings:{"default":{"default":"not an element of"}},key:"2209"},{category:"Sm",mappings:{"default":{"default":"small element of"}},key:"220A"},{category:"Sm",mappings:{"default":{"default":"contains as member"}},key:"220B"},{category:"Sm",mappings:{"default":{"default":"does not contain as member"}},key:"220C"},{category:"Sm",mappings:{"default":{"default":"small contains as member"}},key:"220D"},
+{category:"Sm",mappings:{"default":{"default":"end of proof"}},key:"220E"},{category:"Sm",mappings:{"default":{"default":"n ary product"}},key:"220F"},{category:"Sm",mappings:{"default":{"default":"n ary coproduct"}},key:"2210"},{category:"Sm",mappings:{"default":{"default":"n ary summation"}},key:"2211"},{category:"Sm",mappings:{"default":{"default":"minus sign","short":"minus"}},key:"2212"},{category:"Sm",mappings:{"default":{"default":"minus or plus sign","short":"minus or plus"}},key:"2213"},
+{category:"Sm",mappings:{"default":{"default":"dot plus"}},key:"2214"},{category:"Sm",mappings:{"default":{"default":"division slash"}},key:"2215"},{category:"Sm",mappings:{"default":{"default":"set minus"}},key:"2216"},{category:"Sm",mappings:{"default":{"default":"asterisk operator"}},key:"2217"},{category:"Sm",mappings:{"default":{"default":"ring operator"}},key:"2218"},{category:"Sm",mappings:{"default":{"default":"bullet operator"}},key:"2219"},{category:"Sm",mappings:{"default":{"default":"square root"}},
+key:"221A"},{category:"Sm",mappings:{"default":{"default":"cube root"}},key:"221B"},{category:"Sm",mappings:{"default":{"default":"fourth root"}},key:"221C"},{category:"Sm",mappings:{"default":{"default":"proportional to"}},key:"221D"},{category:"Sm",mappings:{"default":{"default":"infinity"}},key:"221E"},{category:"Sm",mappings:{"default":{"default":"right angle"}},key:"221F"},{category:"Sm",mappings:{"default":{"default":"angle"}},key:"2220"},{category:"Sm",mappings:{"default":{"default":"measured angle"}},
+key:"2221"},{category:"Sm",mappings:{"default":{"default":"spherical angle"}},key:"2222"},{category:"Sm",mappings:{"default":{"default":"divides","short":"bar"}},key:"2223"},{category:"Sm",mappings:{"default":{"default":"does not divide"}},key:"2224"},{category:"Sm",mappings:{"default":{"default":"parallel to"}},key:"2225"},{category:"Sm",mappings:{"default":{"default":"not parallel to"}},key:"2226"},{category:"Sm",mappings:{"default":{"default":"logical and"}},key:"2227"},{category:"Sm",mappings:{"default":{"default":"logical or"}},
+key:"2228"},{category:"Sm",mappings:{"default":{"default":"intersection"}},key:"2229"},{category:"Sm",mappings:{"default":{"default":"union"}},key:"222A"},{category:"Sm",mappings:{"default":{"default":"integral"}},key:"222B"},{category:"Sm",mappings:{"default":{"default":"double integral"}},key:"222C"},{category:"Sm",mappings:{"default":{"default":"triple integral"}},key:"222D"},{category:"Sm",mappings:{"default":{"default":"contour integral"}},key:"222E"},{category:"Sm",mappings:{"default":{"default":"surface integral"}},
+key:"222F"},{category:"Sm",mappings:{"default":{"default":"volume integral"}},key:"2230"},{category:"Sm",mappings:{"default":{"default":"clockwise integral"}},key:"2231"},{category:"Sm",mappings:{"default":{"default":"clockwise contour integral"}},key:"2232"},{category:"Sm",mappings:{"default":{"default":"anticlockwise contour integral"}},key:"2233"},{category:"Sm",mappings:{"default":{"default":"therefore"}},key:"2234"},{category:"Sm",mappings:{"default":{"default":"because"}},key:"2235"},{category:"Sm",
+mappings:{"default":{"default":"ratio"}},key:"2236"},{category:"Sm",mappings:{"default":{"default":"proportion"}},key:"2237"},{category:"Sm",mappings:{"default":{"default":"dot minus"}},key:"2238"},{category:"Sm",mappings:{"default":{"default":"excess"}},key:"2239"},{category:"Sm",mappings:{"default":{"default":"geometric proportion"}},key:"223A"},{category:"Sm",mappings:{"default":{"default":"homothetic"}},key:"223B"},{category:"Sm",mappings:{"default":{"default":"tilde operator"}},key:"223C"},{category:"Sm",
+mappings:{"default":{"default":"reversed tilde"}},key:"223D"},{category:"Sm",mappings:{"default":{"default":"inverted lazy s"}},key:"223E"},{category:"Sm",mappings:{"default":{"default":"sine wave"}},key:"223F"},{category:"Sm",mappings:{"default":{"default":"wreath product"}},key:"2240"},{category:"Sm",mappings:{"default":{"default":"not tilde"}},key:"2241"},{category:"Sm",mappings:{"default":{"default":"minus tilde"}},key:"2242"},{category:"Sm",mappings:{"default":{"default":"asymptotically equal to"}},
+key:"2243"},{category:"Sm",mappings:{"default":{"default":"not asymptotically equal to"}},key:"2244"},{category:"Sm",mappings:{"default":{"default":"approximately equal to"}},key:"2245"},{category:"Sm",mappings:{"default":{"default":"approximately but not actually equal to"}},key:"2246"},{category:"Sm",mappings:{"default":{"default":"neither approximately nor actually equal to"}},key:"2247"},{category:"Sm",mappings:{"default":{"default":"almost equal to"}},key:"2248"},{category:"Sm",mappings:{"default":{"default":"not almost equal to"}},
+key:"2249"},{category:"Sm",mappings:{"default":{"default":"almost equal or equal to"}},key:"224A"},{category:"Sm",mappings:{"default":{"default":"triple tilde"}},key:"224B"},{category:"Sm",mappings:{"default":{"default":"all equal to"}},key:"224C"},{category:"Sm",mappings:{"default":{"default":"equivalent to"}},key:"224D"},{category:"Sm",mappings:{"default":{"default":"geometrically equivalent to"}},key:"224E"},{category:"Sm",mappings:{"default":{"default":"difference between"}},key:"224F"},{category:"Sm",
+mappings:{"default":{"default":"approaches the limit"}},key:"2250"},{category:"Sm",mappings:{"default":{"default":"geometrically equal to"}},key:"2251"},{category:"Sm",mappings:{"default":{"default":"approximately equal to or the image of"}},key:"2252"},{category:"Sm",mappings:{"default":{"default":"image of or approximately equal to"}},key:"2253"},{category:"Sm",mappings:{"default":{"default":"colon equals",alternative:"colon equal"}},key:"2254"},{category:"Sm",mappings:{"default":{"default":"equals colon",
+alternative:"equal colon"}},key:"2255"},{category:"Sm",mappings:{"default":{"default":"ring in equal to"}},key:"2256"},{category:"Sm",mappings:{"default":{"default":"ring equal to"}},key:"2257"},{category:"Sm",mappings:{"default":{"default":"corresponds to"}},key:"2258"},{category:"Sm",mappings:{"default":{"default":"estimates"}},key:"2259"},{category:"Sm",mappings:{"default":{"default":"equiangular to"}},key:"225A"},{category:"Sm",mappings:{"default":{"default":"star equals"}},key:"225B"},{category:"Sm",
+mappings:{"default":{"default":"delta equal to"}},key:"225C"},{category:"Sm",mappings:{"default":{"default":"equal to by definition"}},key:"225D"},{category:"Sm",mappings:{"default":{"default":"measured by"}},key:"225E"},{category:"Sm",mappings:{"default":{"default":"questioned equal to"}},key:"225F"},{category:"Sm",mappings:{"default":{"default":"not equal to"}},key:"2260"},{category:"Sm",mappings:{"default":{"default":"identical to"}},key:"2261"},{category:"Sm",mappings:{"default":{"default":"not identical to"}},
+key:"2262"},{category:"Sm",mappings:{"default":{"default":"strictly equivalent to"}},key:"2263"},{category:"Sm",mappings:{"default":{"default":"less than or equal to",alternative:"less than or equal to"}},key:"2264"},{category:"Sm",mappings:{"default":{"default":"greater than or equal to",alternative:"greater than or equal to"}},key:"2265"},{category:"Sm",mappings:{"default":{"default":"less than over equal to",alternative:"less than over equal to"}},key:"2266"},{category:"Sm",mappings:{"default":{"default":"greater than over equal to",
+alternative:"greater than over equal to"}},key:"2267"},{category:"Sm",mappings:{"default":{"default":"less than but not equal to",alternative:"less than but not equal to"}},key:"2268"},{category:"Sm",mappings:{"default":{"default":"greater than but not equal to",alternative:"greater than but not equal to"}},key:"2269"},{category:"Sm",mappings:{"default":{"default":"much less than",alternative:"much less than"}},key:"226A"},{category:"Sm",mappings:{"default":{"default":"much greater than",alternative:"much greater than"}},
+key:"226B"},{category:"Sm",mappings:{"default":{"default":"between"}},key:"226C"},{category:"Sm",mappings:{"default":{"default":"not equivalent to"}},key:"226D"},{category:"Sm",mappings:{"default":{"default":"not less than",alternative:"not less than"}},key:"226E"},{category:"Sm",mappings:{"default":{"default":"not greater than",alternative:"not greater than"}},key:"226F"},{category:"Sm",mappings:{"default":{"default":"neither less than nor equal to",alternative:"neither less than nor equal to"}},
+key:"2270"},{category:"Sm",mappings:{"default":{"default":"neither greater than nor equal to",alternative:"neither greater than nor equal to"}},key:"2271"},{category:"Sm",mappings:{"default":{"default":"less than or equivalent to",alternative:"less than or equivalent to"}},key:"2272"},{category:"Sm",mappings:{"default":{"default":"greater than or equivalent to",alternative:"greater than or equivalent to"}},key:"2273"},{category:"Sm",mappings:{"default":{"default":"neither less than nor equivalent to",
+alternative:"neither less than nor equivalent to"}},key:"2274"},{category:"Sm",mappings:{"default":{"default":"neither greater than nor equivalent to",alternative:"neither greater than nor equivalent to"}},key:"2275"},{category:"Sm",mappings:{"default":{"default":"less than or greater than",alternative:"less than or greater than"}},key:"2276"},{category:"Sm",mappings:{"default":{"default":"greater than or less than",alternative:"greater than or less than"}},key:"2277"},{category:"Sm",mappings:{"default":{"default":"neither less than nor greater than",
+alternative:"neither less than nor greater than"}},key:"2278"},{category:"Sm",mappings:{"default":{"default":"neither greater than nor less than",alternative:"neither greater than nor less than"}},key:"2279"},{category:"Sm",mappings:{"default":{"default":"precedes"}},key:"227A"},{category:"Sm",mappings:{"default":{"default":"succeeds"}},key:"227B"},{category:"Sm",mappings:{"default":{"default":"precedes or equal to"}},key:"227C"},{category:"Sm",mappings:{"default":{"default":"succeeds or equal to"}},
+key:"227D"},{category:"Sm",mappings:{"default":{"default":"precedes or equivalent to"}},key:"227E"},{category:"Sm",mappings:{"default":{"default":"succeeds or equivalent to"}},key:"227F"},{category:"Sm",mappings:{"default":{"default":"does not precede"}},key:"2280"},{category:"Sm",mappings:{"default":{"default":"does not succeed"}},key:"2281"},{category:"Sm",mappings:{"default":{"default":"subset of"}},key:"2282"},{category:"Sm",mappings:{"default":{"default":"superset of"}},key:"2283"},{category:"Sm",
+mappings:{"default":{"default":"not a subset of"}},key:"2284"},{category:"Sm",mappings:{"default":{"default":"not a superset of"}},key:"2285"},{category:"Sm",mappings:{"default":{"default":"subset of or equal to"}},key:"2286"},{category:"Sm",mappings:{"default":{"default":"superset of or equal to"}},key:"2287"},{category:"Sm",mappings:{"default":{"default":"neither a subset of nor equal to"}},key:"2288"},{category:"Sm",mappings:{"default":{"default":"neither a superset of nor equal to"}},key:"2289"},
+{category:"Sm",mappings:{"default":{"default":"subset of with not equal to",alternative:"subset of or not equal to","short":"subset of or not equal to"}},key:"228A"},{category:"Sm",mappings:{"default":{"default":"superset of with not equal to",alternative:"superset of or not equal to","short":"superset of or not equal to"}},key:"228B"},{category:"Sm",mappings:{"default":{"default":"multiset"}},key:"228C"},{category:"Sm",mappings:{"default":{"default":"multiset multiplication"}},key:"228D"},{category:"Sm",
+mappings:{"default":{"default":"multiset union"}},key:"228E"},{category:"Sm",mappings:{"default":{"default":"square image of"}},key:"228F"},{category:"Sm",mappings:{"default":{"default":"square original of"}},key:"2290"},{category:"Sm",mappings:{"default":{"default":"square image of or equal to"}},key:"2291"},{category:"Sm",mappings:{"default":{"default":"square original of or equal to"}},key:"2292"},{category:"Sm",mappings:{"default":{"default":"square cap"}},key:"2293"},{category:"Sm",mappings:{"default":{"default":"square cup"}},
+key:"2294"},{category:"Sm",mappings:{"default":{"default":"circled plus"}},key:"2295"},{category:"Sm",mappings:{"default":{"default":"circled minus"}},key:"2296"},{category:"Sm",mappings:{"default":{"default":"circled times"}},key:"2297"},{category:"Sm",mappings:{"default":{"default":"circled division slash"}},key:"2298"},{category:"Sm",mappings:{"default":{"default":"circled dot operator"}},key:"2299"},{category:"Sm",mappings:{"default":{"default":"circled ring operator"}},key:"229A"},{category:"Sm",
+mappings:{"default":{"default":"circled asterisk operator"}},key:"229B"},{category:"Sm",mappings:{"default":{"default":"circled equals"}},key:"229C"},{category:"Sm",mappings:{"default":{"default":"circled dash"}},key:"229D"},{category:"Sm",mappings:{"default":{"default":"squared plus"}},key:"229E"},{category:"Sm",mappings:{"default":{"default":"squared minus"}},key:"229F"},{category:"Sm",mappings:{"default":{"default":"squared times"}},key:"22A0"},{category:"Sm",mappings:{"default":{"default":"squared dot operator"}},
+key:"22A1"},{category:"Sm",mappings:{"default":{"default":"right tack"}},key:"22A2"},{category:"Sm",mappings:{"default":{"default":"left tack"}},key:"22A3"},{category:"Sm",mappings:{"default":{"default":"down tack"}},key:"22A4"},{category:"Sm",mappings:{"default":{"default":"up tack"}},key:"22A5"},{category:"Sm",mappings:{"default":{"default":"assertion"}},key:"22A6"},{category:"Sm",mappings:{"default":{"default":"models"}},key:"22A7"},{category:"Sm",mappings:{"default":{"default":"true"}},key:"22A8"},
+{category:"Sm",mappings:{"default":{"default":"forces"}},key:"22A9"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar right turnstile"}},key:"22AA"},{category:"Sm",mappings:{"default":{"default":"double vertical bar double right turnstile"}},key:"22AB"},{category:"Sm",mappings:{"default":{"default":"does not prove"}},key:"22AC"},{category:"Sm",mappings:{"default":{"default":"not true"}},key:"22AD"},{category:"Sm",mappings:{"default":{"default":"does not force"}},key:"22AE"},{category:"Sm",
+mappings:{"default":{"default":"negated double vertical bar double right turnstile"}},key:"22AF"},{category:"Sm",mappings:{"default":{"default":"precedes under relation"}},key:"22B0"},{category:"Sm",mappings:{"default":{"default":"succeeds under relation"}},key:"22B1"},{category:"Sm",mappings:{"default":{"default":"normal subgroup of"}},key:"22B2"},{category:"Sm",mappings:{"default":{"default":"contains as normal subgroup"}},key:"22B3"},{category:"Sm",mappings:{"default":{"default":"normal subgroup of or equal to"}},
+key:"22B4"},{category:"Sm",mappings:{"default":{"default":"contains as normal subgroup or equal to"}},key:"22B5"},{category:"Sm",mappings:{"default":{"default":"original of"}},key:"22B6"},{category:"Sm",mappings:{"default":{"default":"image of"}},key:"22B7"},{category:"Sm",mappings:{"default":{"default":"multimap"}},key:"22B8"},{category:"Sm",mappings:{"default":{"default":"hermitian conjugate matrix"}},key:"22B9"},{category:"Sm",mappings:{"default":{"default":"intercalate"}},key:"22BA"},{category:"Sm",
+mappings:{"default":{"default":"xor"}},key:"22BB"},{category:"Sm",mappings:{"default":{"default":"nand"}},key:"22BC"},{category:"Sm",mappings:{"default":{"default":"nor"}},key:"22BD"},{category:"Sm",mappings:{"default":{"default":"right triangle"}},key:"22BF"},{category:"Sm",mappings:{"default":{"default":"n ary logical and"}},key:"22C0"},{category:"Sm",mappings:{"default":{"default":"n ary logical or"}},key:"22C1"},{category:"Sm",mappings:{"default":{"default":"n ary intersection"}},key:"22C2"},
+{category:"Sm",mappings:{"default":{"default":"n ary union"}},key:"22C3"},{category:"Sm",mappings:{"default":{"default":"diamond operator"}},key:"22C4"},{category:"Sm",mappings:{"default":{"default":"dot operator"}},key:"22C5"},{category:"Sm",mappings:{"default":{"default":"star operator"}},key:"22C6"},{category:"Sm",mappings:{"default":{"default":"division times"}},key:"22C7"},{category:"Sm",mappings:{"default":{"default":"bowtie"}},key:"22C8"},{category:"Sm",mappings:{"default":{"default":"left normal factor semidirect product"}},
+key:"22C9"},{category:"Sm",mappings:{"default":{"default":"right normal factor semidirect product"}},key:"22CA"},{category:"Sm",mappings:{"default":{"default":"left semidirect product"}},key:"22CB"},{category:"Sm",mappings:{"default":{"default":"right semidirect product"}},key:"22CC"},{category:"Sm",mappings:{"default":{"default":"reversed tilde equals"}},key:"22CD"},{category:"Sm",mappings:{"default":{"default":"curly logical or"}},key:"22CE"},{category:"Sm",mappings:{"default":{"default":"curly logical and"}},
+key:"22CF"},{category:"Sm",mappings:{"default":{"default":"double subset"}},key:"22D0"},{category:"Sm",mappings:{"default":{"default":"double superset"}},key:"22D1"},{category:"Sm",mappings:{"default":{"default":"double intersection"}},key:"22D2"},{category:"Sm",mappings:{"default":{"default":"double union"}},key:"22D3"},{category:"Sm",mappings:{"default":{"default":"pitchfork"}},key:"22D4"},{category:"Sm",mappings:{"default":{"default":"equal and parallel to"}},key:"22D5"},{category:"Sm",mappings:{"default":{"default":"less than with dot",
+alternative:"less than with dot","short":"less than dot"}},key:"22D6"},{category:"Sm",mappings:{"default":{"default":"greater than with dot",alternative:"greater than with dot","short":"greater than dot"}},key:"22D7"},{category:"Sm",mappings:{"default":{"default":"very much less than",alternative:"very much less than"}},key:"22D8"},{category:"Sm",mappings:{"default":{"default":"very much greater than",alternative:"very much greater than"}},key:"22D9"},{category:"Sm",mappings:{"default":{"default":"less than equal to or greater than",
+alternative:"less than equal to or greater than"}},key:"22DA"},{category:"Sm",mappings:{"default":{"default":"greater than equal to or less than",alternative:"greater than equal to or less than"}},key:"22DB"},{category:"Sm",mappings:{"default":{"default":"equal to or less than",alternative:"equal to or less than"}},key:"22DC"},{category:"Sm",mappings:{"default":{"default":"equal to or greater than",alternative:"equal to or greater than"}},key:"22DD"},{category:"Sm",mappings:{"default":{"default":"equal to or precedes"}},
+key:"22DE"},{category:"Sm",mappings:{"default":{"default":"equal to or succeeds"}},key:"22DF"},{category:"Sm",mappings:{"default":{"default":"does not precede or equal"}},key:"22E0"},{category:"Sm",mappings:{"default":{"default":"does not succeed or equal"}},key:"22E1"},{category:"Sm",mappings:{"default":{"default":"not square image of or equal to"}},key:"22E2"},{category:"Sm",mappings:{"default":{"default":"not square original of or equal to"}},key:"22E3"},{category:"Sm",mappings:{"default":{"default":"square image of or not equal to"}},
+key:"22E4"},{category:"Sm",mappings:{"default":{"default":"square original of or not equal to"}},key:"22E5"},{category:"Sm",mappings:{"default":{"default":"less than but not equivalent to",alternative:"less than but not equivalent to"}},key:"22E6"},{category:"Sm",mappings:{"default":{"default":"greater than but not equivalent to",alternative:"greater than but not equivalent to"}},key:"22E7"},{category:"Sm",mappings:{"default":{"default":"precedes but not equivalent to"}},key:"22E8"},{category:"Sm",
+mappings:{"default":{"default":"succeeds but not equivalent to"}},key:"22E9"},{category:"Sm",mappings:{"default":{"default":"not normal subgroup of"}},key:"22EA"},{category:"Sm",mappings:{"default":{"default":"does not contain as normal subgroup"}},key:"22EB"},{category:"Sm",mappings:{"default":{"default":"not normal subgroup of or equal to"}},key:"22EC"},{category:"Sm",mappings:{"default":{"default":"does not contain as normal subgroup or equal"}},key:"22ED"},{category:"Sm",mappings:{"default":{"default":"vertical ellipsis",
+"short":"dot dot dot"}},key:"22EE"},{category:"Sm",mappings:{"default":{"default":"midline horizontal ellipsis","short":"dot dot dot"}},key:"22EF"},{category:"Sm",mappings:{"default":{"default":"up right diagonal ellipsis","short":"diagonal dot dot dot"}},key:"22F0"},{category:"Sm",mappings:{"default":{"default":"down right diagonal ellipsis","short":"diagonal dot dot dot"}},key:"22F1"},{category:"Sm",mappings:{"default":{"default":"element of with long horizontal stroke"}},key:"22F2"},{category:"Sm",
+mappings:{"default":{"default":"element of with vertical bar at end of horizontal stroke"}},key:"22F3"},{category:"Sm",mappings:{"default":{"default":"small element of with vertical bar at end of horizontal stroke"}},key:"22F4"},{category:"Sm",mappings:{"default":{"default":"element of with dot above"}},key:"22F5"},{category:"Sm",mappings:{"default":{"default":"element of with overbar"}},key:"22F6"},{category:"Sm",mappings:{"default":{"default":"small element of with overbar"}},key:"22F7"},{category:"Sm",
+mappings:{"default":{"default":"element of with underbar"}},key:"22F8"},{category:"Sm",mappings:{"default":{"default":"element of with two horizontal strokes"}},key:"22F9"},{category:"Sm",mappings:{"default":{"default":"contains with long horizontal stroke"}},key:"22FA"},{category:"Sm",mappings:{"default":{"default":"contains with vertical bar at end of horizontal stroke"}},key:"22FB"},{category:"Sm",mappings:{"default":{"default":"small contains with vertical bar at end of horizontal stroke"}},key:"22FC"},
+{category:"Sm",mappings:{"default":{"default":"contains with overbar"}},key:"22FD"},{category:"Sm",mappings:{"default":{"default":"small contains with overbar"}},key:"22FE"},{category:"Sm",mappings:{"default":{"default":"z notation bag membership"}},key:"22FF"},{category:"So",mappings:{"default":{"default":"diameter sign","short":"diameter"}},key:"2300"},{category:"So",mappings:{"default":{"default":"house"}},key:"2302"},{category:"So",mappings:{"default":{"default":"projective"}},key:"2305"},{category:"So",
+mappings:{"default":{"default":"perspective"}},key:"2306"},{category:"So",mappings:{"default":{"default":"wavy line"}},key:"2307"},{category:"So",mappings:{"default":{"default":"reversed not sign","short":"reversed not"}},key:"2310"},{category:"So",mappings:{"default":{"default":"square lozenge"}},key:"2311"},{category:"So",mappings:{"default":{"default":"arc"}},key:"2312"},{category:"So",mappings:{"default":{"default":"segment"}},key:"2313"},{category:"So",mappings:{"default":{"default":"sector"}},
+key:"2314"},{category:"So",mappings:{"default":{"default":"heavy plus sign",alternative:"heavy plus","short":"bold plus"}},key:"2795"},{category:"So",mappings:{"default":{"default":"heavy minus sign",alternative:"heavy minus","short":"bold minus"}},key:"2796"},{category:"So",mappings:{"default":{"default":"heavy division sign",alternative:"heavy division","short":"bold division"}},key:"2797"},{category:"So",mappings:{"default":{"default":"curly loop"}},key:"27B0"},{category:"So",mappings:{"default":{"default":"double curly loop"}},
+key:"27BF"},{category:"Sm",mappings:{"default":{"default":"white triangle containing small white triangle"}},key:"27C1"},{category:"Sm",mappings:{"default":{"default":"perpendicular"}},key:"27C2"},{category:"Sm",mappings:{"default":{"default":"open subset"}},key:"27C3"},{category:"Sm",mappings:{"default":{"default":"open superset"}},key:"27C4"},{category:"Sm",mappings:{"default":{"default":"or with dot inside"}},key:"27C7"},{category:"Sm",mappings:{"default":{"default":"reverse solidus preceding subset"}},
+key:"27C8"},{category:"Sm",mappings:{"default":{"default":"superset preceding solidus"}},key:"27C9"},{category:"Sm",mappings:{"default":{"default":"vertical bar with horizontal stroke"}},key:"27CA"},{category:"Sm",mappings:{"default":{"default":"mathematical rising diagonal"}},key:"27CB"},{category:"Sm",mappings:{"default":{"default":"long division"}},key:"27CC"},{category:"Sm",mappings:{"default":{"default":"mathematical falling diagonal"}},key:"27CD"},{category:"Sm",mappings:{"default":{"default":"squared logical and"}},
+key:"27CE"},{category:"Sm",mappings:{"default":{"default":"squared logical or"}},key:"27CF"},{category:"Sm",mappings:{"default":{"default":"white diamond with centered dot"}},key:"27D0"},{category:"Sm",mappings:{"default":{"default":"and with dot"}},key:"27D1"},{category:"Sm",mappings:{"default":{"default":"element of opening upwards"}},key:"27D2"},{category:"Sm",mappings:{"default":{"default":"lower right corner with dot"}},key:"27D3"},{category:"Sm",mappings:{"default":{"default":"upper left corner with dot"}},
+key:"27D4"},{category:"Sm",mappings:{"default":{"default":"left outer join"}},key:"27D5"},{category:"Sm",mappings:{"default":{"default":"right outer join"}},key:"27D6"},{category:"Sm",mappings:{"default":{"default":"full outer join"}},key:"27D7"},{category:"Sm",mappings:{"default":{"default":"large up tack"}},key:"27D8"},{category:"Sm",mappings:{"default":{"default":"large down tack"}},key:"27D9"},{category:"Sm",mappings:{"default":{"default":"left and right double turnstile"}},key:"27DA"},{category:"Sm",
+mappings:{"default":{"default":"left and right tack"}},key:"27DB"},{category:"Sm",mappings:{"default":{"default":"left multimap"}},key:"27DC"},{category:"Sm",mappings:{"default":{"default":"long right tack"}},key:"27DD"},{category:"Sm",mappings:{"default":{"default":"long left tack"}},key:"27DE"},{category:"Sm",mappings:{"default":{"default":"up tack with circle above"}},key:"27DF"},{category:"Sm",mappings:{"default":{"default":"lozenge divided by horizontal rule"}},key:"27E0"},{category:"Sm",mappings:{"default":{"default":"white concave sided diamond"}},
+key:"27E1"},{category:"Sm",mappings:{"default":{"default":"white concave sided diamond with leftwards tick"}},key:"27E2"},{category:"Sm",mappings:{"default":{"default":"white concave sided diamond with rightwards tick"}},key:"27E3"},{category:"Sm",mappings:{"default":{"default":"white square with leftwards tick"}},key:"27E4"},{category:"Sm",mappings:{"default":{"default":"white square with rightwards tick"}},key:"27E5"},{category:"Sm",mappings:{"default":{"default":"rising diagonal crossing falling diagonal"}},
+key:"292B"},{category:"Sm",mappings:{"default":{"default":"falling diagonal crossing rising diagonal"}},key:"292C"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar delimiter"}},key:"2980"},{category:"Sm",mappings:{"default":{"default":"z notation spot"}},key:"2981"},{category:"Sm",mappings:{"default":{"default":"z notation type colon"}},key:"2982"},{category:"Sm",mappings:{"default":{"default":"dotted fence"}},key:"2999"},{category:"Sm",mappings:{"default":{"default":"vertical zigzag line"}},
+key:"299A"},{category:"Sm",mappings:{"default":{"default":"reversed empty set"}},key:"29B0"},{category:"Sm",mappings:{"default":{"default":"empty set with overbar"}},key:"29B1"},{category:"Sm",mappings:{"default":{"default":"empty set with small circle above"}},key:"29B2"},{category:"Sm",mappings:{"default":{"default":"circle with horizontal bar"}},key:"29B5"},{category:"Sm",mappings:{"default":{"default":"circled vertical bar"}},key:"29B6"},{category:"Sm",mappings:{"default":{"default":"circled parallel"}},
+key:"29B7"},{category:"Sm",mappings:{"default":{"default":"circled reverse solidus"}},key:"29B8"},{category:"Sm",mappings:{"default":{"default":"circled perpendicular"}},key:"29B9"},{category:"Sm",mappings:{"default":{"default":"circle divided by horizontal bar and top half divided by vertical bar"}},key:"29BA"},{category:"Sm",mappings:{"default":{"default":"circle with superimposed x"}},key:"29BB"},{category:"Sm",mappings:{"default":{"default":"circled anticlockwise rotated division sign","short":"circled anticlockwise rotated division"}},
+key:"29BC"},{category:"Sm",mappings:{"default":{"default":"circled white bullet"}},key:"29BE"},{category:"Sm",mappings:{"default":{"default":"circled bullet"}},key:"29BF"},{category:"Sm",mappings:{"default":{"default":"circled less than"}},key:"29C0"},{category:"Sm",mappings:{"default":{"default":"circled greater than"}},key:"29C1"},{category:"Sm",mappings:{"default":{"default":"circle with small circle to the right"}},key:"29C2"},{category:"Sm",mappings:{"default":{"default":"circle with two horizontal strokes to the right"}},
+key:"29C3"},{category:"Sm",mappings:{"default":{"default":"squared rising diagonal slash"}},key:"29C4"},{category:"Sm",mappings:{"default":{"default":"squared falling diagonal slash"}},key:"29C5"},{category:"Sm",mappings:{"default":{"default":"squared asterisk"}},key:"29C6"},{category:"Sm",mappings:{"default":{"default":"squared small circle"}},key:"29C7"},{category:"Sm",mappings:{"default":{"default":"squared square"}},key:"29C8"},{category:"Sm",mappings:{"default":{"default":"two joined squares"}},
+key:"29C9"},{category:"Sm",mappings:{"default":{"default":"triangle with dot above"}},key:"29CA"},{category:"Sm",mappings:{"default":{"default":"triangle with underbar"}},key:"29CB"},{category:"Sm",mappings:{"default":{"default":"s in triangle"}},key:"29CC"},{category:"Sm",mappings:{"default":{"default":"triangle with serifs at bottom"}},key:"29CD"},{category:"Sm",mappings:{"default":{"default":"right triangle above left triangle"}},key:"29CE"},{category:"Sm",mappings:{"default":{"default":"left triangle beside vertical bar"}},
+key:"29CF"},{category:"Sm",mappings:{"default":{"default":"vertical bar beside right triangle"}},key:"29D0"},{category:"Sm",mappings:{"default":{"default":"bowtie with left half black"}},key:"29D1"},{category:"Sm",mappings:{"default":{"default":"bowtie with right half black"}},key:"29D2"},{category:"Sm",mappings:{"default":{"default":"black bowtie"}},key:"29D3"},{category:"Sm",mappings:{"default":{"default":"times with left half black"}},key:"29D4"},{category:"Sm",mappings:{"default":{"default":"times with right half black"}},
+key:"29D5"},{category:"Sm",mappings:{"default":{"default":"white hourglass"}},key:"29D6"},{category:"Sm",mappings:{"default":{"default":"black hourglass"}},key:"29D7"},{category:"Sm",mappings:{"default":{"default":"incomplete infinity"}},key:"29DC"},{category:"Sm",mappings:{"default":{"default":"tie over infinity"}},key:"29DD"},{category:"Sm",mappings:{"default":{"default":"infinity negated with vertical bar"}},key:"29DE"},{category:"Sm",mappings:{"default":{"default":"double ended multimap"}},key:"29DF"},
+{category:"Sm",mappings:{"default":{"default":"square with contoured outline"}},key:"29E0"},{category:"Sm",mappings:{"default":{"default":"increases as"}},key:"29E1"},{category:"Sm",mappings:{"default":{"default":"shuffle product"}},key:"29E2"},{category:"Sm",mappings:{"default":{"default":"equals sign and slanted parallel"}},key:"29E3"},{category:"Sm",mappings:{"default":{"default":"equals sign and slanted parallel with tilde above"}},key:"29E4"},{category:"Sm",mappings:{"default":{"default":"identical to and slanted parallel"}},
+key:"29E5"},{category:"Sm",mappings:{"default":{"default":"gleich stark"}},key:"29E6"},{category:"Sm",mappings:{"default":{"default":"thermodynamic"}},key:"29E7"},{category:"Sm",mappings:{"default":{"default":"down pointing triangle with left half black"}},key:"29E8"},{category:"Sm",mappings:{"default":{"default":"down pointing triangle with right half black"}},key:"29E9"},{category:"Sm",mappings:{"default":{"default":"black lozenge"}},key:"29EB"},{category:"Sm",mappings:{"default":{"default":"error barred white square"}},
+key:"29EE"},{category:"Sm",mappings:{"default":{"default":"error barred black square"}},key:"29EF"},{category:"Sm",mappings:{"default":{"default":"error barred white diamond"}},key:"29F0"},{category:"Sm",mappings:{"default":{"default":"error barred black diamond"}},key:"29F1"},{category:"Sm",mappings:{"default":{"default":"error barred white circle"}},key:"29F2"},{category:"Sm",mappings:{"default":{"default":"error barred black circle"}},key:"29F3"},{category:"Sm",mappings:{"default":{"default":"rule delayed"}},
+key:"29F4"},{category:"Sm",mappings:{"default":{"default":"reverse solidus operator"}},key:"29F5"},{category:"Sm",mappings:{"default":{"default":"solidus with overbar"}},key:"29F6"},{category:"Sm",mappings:{"default":{"default":"reverse solidus with horizontal stroke"}},key:"29F7"},{category:"Sm",mappings:{"default":{"default":"big solidus"}},key:"29F8"},{category:"Sm",mappings:{"default":{"default":"big reverse solidus"}},key:"29F9"},{category:"Sm",mappings:{"default":{"default":"double plus"}},
+key:"29FA"},{category:"Sm",mappings:{"default":{"default":"triple plus"}},key:"29FB"},{category:"Sm",mappings:{"default":{"default":"tiny"}},key:"29FE"},{category:"Sm",mappings:{"default":{"default":"miny"}},key:"29FF"},{category:"Sm",mappings:{"default":{"default":"n ary circled dot operator"}},key:"2A00"},{category:"Sm",mappings:{"default":{"default":"n ary circled plus operator"}},key:"2A01"},{category:"Sm",mappings:{"default":{"default":"n ary circled times operator"}},key:"2A02"},{category:"Sm",
+mappings:{"default":{"default":"n ary union operator with dot"}},key:"2A03"},{category:"Sm",mappings:{"default":{"default":"n ary union operator with plus"}},key:"2A04"},{category:"Sm",mappings:{"default":{"default":"n ary square intersection operator"}},key:"2A05"},{category:"Sm",mappings:{"default":{"default":"n ary square union operator"}},key:"2A06"},{category:"Sm",mappings:{"default":{"default":"two logical and operator"}},key:"2A07"},{category:"Sm",mappings:{"default":{"default":"two logical or operator"}},
+key:"2A08"},{category:"Sm",mappings:{"default":{"default":"n ary times operator"}},key:"2A09"},{category:"Sm",mappings:{"default":{"default":"modulo two sum"}},key:"2A0A"},{category:"Sm",mappings:{"default":{"default":"summation with integral"}},key:"2A0B"},{category:"Sm",mappings:{"default":{"default":"quadruple integral operator"}},key:"2A0C"},{category:"Sm",mappings:{"default":{"default":"finite part integral"}},key:"2A0D"},{category:"Sm",mappings:{"default":{"default":"integral with double stroke"}},
+key:"2A0E"},{category:"Sm",mappings:{"default":{"default":"integral average with slash"}},key:"2A0F"},{category:"Sm",mappings:{"default":{"default":"circulation function"}},key:"2A10"},{category:"Sm",mappings:{"default":{"default":"anticlockwise integration"}},key:"2A11"},{category:"Sm",mappings:{"default":{"default":"line integration with rectangular path around pole"}},key:"2A12"},{category:"Sm",mappings:{"default":{"default":"line integration with semicircular path around pole"}},key:"2A13"},{category:"Sm",
+mappings:{"default":{"default":"line integration not including the pole"}},key:"2A14"},{category:"Sm",mappings:{"default":{"default":"integral around a point operator"}},key:"2A15"},{category:"Sm",mappings:{"default":{"default":"quaternion integral operator"}},key:"2A16"},{category:"Sm",mappings:{"default":{"default":"integral with times sign","short":"integral with times"}},key:"2A18"},{category:"Sm",mappings:{"default":{"default":"integral with intersection"}},key:"2A19"},{category:"Sm",mappings:{"default":{"default":"integral with union"}},
+key:"2A1A"},{category:"Sm",mappings:{"default":{"default":"integral with overbar"}},key:"2A1B"},{category:"Sm",mappings:{"default":{"default":"integral with underbar"}},key:"2A1C"},{category:"Sm",mappings:{"default":{"default":"join"}},key:"2A1D"},{category:"Sm",mappings:{"default":{"default":"large left triangle operator"}},key:"2A1E"},{category:"Sm",mappings:{"default":{"default":"z notation schema composition"}},key:"2A1F"},{category:"Sm",mappings:{"default":{"default":"z notation schema piping"}},
+key:"2A20"},{category:"Sm",mappings:{"default":{"default":"z notation schema projection"}},key:"2A21"},{category:"Sm",mappings:{"default":{"default":"plus sign with small circle above","short":"plus with circle above"}},key:"2A22"},{category:"Sm",mappings:{"default":{"default":"plus sign with circumflex accent above","short":"plus hat"}},key:"2A23"},{category:"Sm",mappings:{"default":{"default":"plus sign with tilde above","short":"plus tilde"}},key:"2A24"},{category:"Sm",mappings:{"default":{"default":"plus sign with dot below",
+"short":"plus underdot"}},key:"2A25"},{category:"Sm",mappings:{"default":{"default":"plus sign with tilde below"}},key:"2A26"},{category:"Sm",mappings:{"default":{"default":"plus sign with subscript two"}},key:"2A27"},{category:"Sm",mappings:{"default":{"default":"plus sign with black triangle"}},key:"2A28"},{category:"Sm",mappings:{"default":{"default":"minus sign with comma above"}},key:"2A29"},{category:"Sm",mappings:{"default":{"default":"minus sign with dot below"}},key:"2A2A"},{category:"Sm",
+mappings:{"default":{"default":"minus sign with falling dots"}},key:"2A2B"},{category:"Sm",mappings:{"default":{"default":"minus sign with rising dots"}},key:"2A2C"},{category:"Sm",mappings:{"default":{"default":"plus sign in left half circle"}},key:"2A2D"},{category:"Sm",mappings:{"default":{"default":"plus sign in right half circle"}},key:"2A2E"},{category:"Sm",mappings:{"default":{"default":"vector or cross product"}},key:"2A2F"},{category:"Sm",mappings:{"default":{"default":"multiplication sign with dot above"}},
+key:"2A30"},{category:"Sm",mappings:{"default":{"default":"multiplication sign with underbar"}},key:"2A31"},{category:"Sm",mappings:{"default":{"default":"semidirect product with bottom closed"}},key:"2A32"},{category:"Sm",mappings:{"default":{"default":"smash product"}},key:"2A33"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in left half circle"}},key:"2A34"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in right half circle"}},key:"2A35"},{category:"Sm",
+mappings:{"default":{"default":"circled multiplication sign with circumflex accent"}},key:"2A36"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in double circle"}},key:"2A37"},{category:"Sm",mappings:{"default":{"default":"circled division sign","short":"circled division"}},key:"2A38"},{category:"Sm",mappings:{"default":{"default":"plus sign in triangle"}},key:"2A39"},{category:"Sm",mappings:{"default":{"default":"minus sign in triangle"}},key:"2A3A"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in triangle"}},
+key:"2A3B"},{category:"Sm",mappings:{"default":{"default":"interior product"}},key:"2A3C"},{category:"Sm",mappings:{"default":{"default":"righthand interior product"}},key:"2A3D"},{category:"Sm",mappings:{"default":{"default":"z notation relational composition"}},key:"2A3E"},{category:"Sm",mappings:{"default":{"default":"amalgamation or coproduct"}},key:"2A3F"},{category:"Sm",mappings:{"default":{"default":"intersection with dot"}},key:"2A40"},{category:"Sm",mappings:{"default":{"default":"union with minus sign",
+"short":"union with minus"}},key:"2A41"},{category:"Sm",mappings:{"default":{"default":"union with overbar"}},key:"2A42"},{category:"Sm",mappings:{"default":{"default":"intersection with overbar"}},key:"2A43"},{category:"Sm",mappings:{"default":{"default":"intersection with logical and"}},key:"2A44"},{category:"Sm",mappings:{"default":{"default":"union with logical or"}},key:"2A45"},{category:"Sm",mappings:{"default":{"default":"union above intersection"}},key:"2A46"},{category:"Sm",mappings:{"default":{"default":"intersection above union"}},
+key:"2A47"},{category:"Sm",mappings:{"default":{"default":"union above bar above intersection"}},key:"2A48"},{category:"Sm",mappings:{"default":{"default":"intersection above bar above union"}},key:"2A49"},{category:"Sm",mappings:{"default":{"default":"union beside and joined with union"}},key:"2A4A"},{category:"Sm",mappings:{"default":{"default":"intersection beside and joined with intersection"}},key:"2A4B"},{category:"Sm",mappings:{"default":{"default":"closed union with serifs"}},key:"2A4C"},
+{category:"Sm",mappings:{"default":{"default":"closed intersection with serifs"}},key:"2A4D"},{category:"Sm",mappings:{"default":{"default":"double square intersection"}},key:"2A4E"},{category:"Sm",mappings:{"default":{"default":"double square union"}},key:"2A4F"},{category:"Sm",mappings:{"default":{"default":"closed union with serifs and smash product"}},key:"2A50"},{category:"Sm",mappings:{"default":{"default":"logical and with dot above"}},key:"2A51"},{category:"Sm",mappings:{"default":{"default":"logical or with dot above"}},
+key:"2A52"},{category:"Sm",mappings:{"default":{"default":"double logical and"}},key:"2A53"},{category:"Sm",mappings:{"default":{"default":"double logical or"}},key:"2A54"},{category:"Sm",mappings:{"default":{"default":"two intersecting logical and"}},key:"2A55"},{category:"Sm",mappings:{"default":{"default":"two intersecting logical or"}},key:"2A56"},{category:"Sm",mappings:{"default":{"default":"sloping large or"}},key:"2A57"},{category:"Sm",mappings:{"default":{"default":"sloping large and"}},
+key:"2A58"},{category:"Sm",mappings:{"default":{"default":"logical or overlapping logical and"}},key:"2A59"},{category:"Sm",mappings:{"default":{"default":"logical and with middle stem"}},key:"2A5A"},{category:"Sm",mappings:{"default":{"default":"logical or with middle stem"}},key:"2A5B"},{category:"Sm",mappings:{"default":{"default":"logical and with horizontal dash"}},key:"2A5C"},{category:"Sm",mappings:{"default":{"default":"logical or with horizontal dash"}},key:"2A5D"},{category:"Sm",mappings:{"default":{"default":"logical and with double overbar"}},
+key:"2A5E"},{category:"Sm",mappings:{"default":{"default":"logical and with underbar"}},key:"2A5F"},{category:"Sm",mappings:{"default":{"default":"logical and with double underbar"}},key:"2A60"},{category:"Sm",mappings:{"default":{"default":"small vee with underbar"}},key:"2A61"},{category:"Sm",mappings:{"default":{"default":"logical or with double overbar"}},key:"2A62"},{category:"Sm",mappings:{"default":{"default":"logical or with double underbar"}},key:"2A63"},{category:"Sm",mappings:{"default":{"default":"z notation domain antirestriction"}},
+key:"2A64"},{category:"Sm",mappings:{"default":{"default":"z notation range antirestriction"}},key:"2A65"},{category:"Sm",mappings:{"default":{"default":"equals sign with dot below"}},key:"2A66"},{category:"Sm",mappings:{"default":{"default":"identical with dot above"}},key:"2A67"},{category:"Sm",mappings:{"default":{"default":"triple horizontal bar with double vertical stroke"}},key:"2A68"},{category:"Sm",mappings:{"default":{"default":"triple horizontal bar with triple vertical stroke"}},key:"2A69"},
+{category:"Sm",mappings:{"default":{"default":"tilde operator with dot above"}},key:"2A6A"},{category:"Sm",mappings:{"default":{"default":"tilde operator with rising dots"}},key:"2A6B"},{category:"Sm",mappings:{"default":{"default":"similar minus similar"}},key:"2A6C"},{category:"Sm",mappings:{"default":{"default":"congruent with dot above"}},key:"2A6D"},{category:"Sm",mappings:{"default":{"default":"equals with asterisk"}},key:"2A6E"},{category:"Sm",mappings:{"default":{"default":"almost equal to with circumflex accent",
+"short":"almost equal hat"}},key:"2A6F"},{category:"Sm",mappings:{"default":{"default":"approximately equal or equal to"}},key:"2A70"},{category:"Sm",mappings:{"default":{"default":"equals sign above plus sign","short":"equals above plus"}},key:"2A71"},{category:"Sm",mappings:{"default":{"default":"plus sign above equals sign","short":"plus above equals"}},key:"2A72"},{category:"Sm",mappings:{"default":{"default":"equals sign above tilde operator","short":"equals above tilde operator"}},key:"2A73"},
+{category:"Sm",mappings:{"default":{"default":"double colon equal"}},key:"2A74"},{category:"Sm",mappings:{"default":{"default":"two consecutive equals signs","short":"two consecutive equals"}},key:"2A75"},{category:"Sm",mappings:{"default":{"default":"three consecutive equals signs","short":"three consecutive equals"}},key:"2A76"},{category:"Sm",mappings:{"default":{"default":"equals sign with two dots above and two dots below"}},key:"2A77"},{category:"Sm",mappings:{"default":{"default":"equivalent with four dots above"}},
+key:"2A78"},{category:"Sm",mappings:{"default":{"default":"less than with circle inside"}},key:"2A79"},{category:"Sm",mappings:{"default":{"default":"greater than with circle inside"}},key:"2A7A"},{category:"Sm",mappings:{"default":{"default":"less than with question mark above"}},key:"2A7B"},{category:"Sm",mappings:{"default":{"default":"greater than with question mark above"}},key:"2A7C"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to"}},key:"2A7D"},{category:"Sm",
+mappings:{"default":{"default":"greater than or slanted equal to"}},key:"2A7E"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to with dot inside"}},key:"2A7F"},{category:"Sm",mappings:{"default":{"default":"greater than or slanted equal to with dot inside"}},key:"2A80"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to with dot above"}},key:"2A81"},{category:"Sm",mappings:{"default":{"default":"greater than or slanted equal to with dot above"}},
+key:"2A82"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to with dot above right"}},key:"2A83"},{category:"Sm",mappings:{"default":{"default":"greater than or slanted equal to with dot above left"}},key:"2A84"},{category:"Sm",mappings:{"default":{"default":"less than or approximate"}},key:"2A85"},{category:"Sm",mappings:{"default":{"default":"greater than or approximate"}},key:"2A86"},{category:"Sm",mappings:{"default":{"default":"less than and single line not equal to"}},
+key:"2A87"},{category:"Sm",mappings:{"default":{"default":"greater than and single line not equal to"}},key:"2A88"},{category:"Sm",mappings:{"default":{"default":"less than and not approximate"}},key:"2A89"},{category:"Sm",mappings:{"default":{"default":"greater than and not approximate"}},key:"2A8A"},{category:"Sm",mappings:{"default":{"default":"less than above double line equal above greater than"}},key:"2A8B"},{category:"Sm",mappings:{"default":{"default":"greater than above double line equal above less than"}},
+key:"2A8C"},{category:"Sm",mappings:{"default":{"default":"less than above similar or equal"}},key:"2A8D"},{category:"Sm",mappings:{"default":{"default":"greater than above similar or equal"}},key:"2A8E"},{category:"Sm",mappings:{"default":{"default":"less than above similar above greater than"}},key:"2A8F"},{category:"Sm",mappings:{"default":{"default":"greater than above similar above less than"}},key:"2A90"},{category:"Sm",mappings:{"default":{"default":"less than above greater than above double line equal"}},
+key:"2A91"},{category:"Sm",mappings:{"default":{"default":"greater than above less than above double line equal"}},key:"2A92"},{category:"Sm",mappings:{"default":{"default":"less than above slanted equal above greater than above slanted equal"}},key:"2A93"},{category:"Sm",mappings:{"default":{"default":"greater than above slanted equal above less than above slanted equal"}},key:"2A94"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or less than"}},key:"2A95"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or greater than"}},
+key:"2A96"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or less than with dot inside"}},key:"2A97"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or greater than with dot inside"}},key:"2A98"},{category:"Sm",mappings:{"default":{"default":"double line equal to or less than"}},key:"2A99"},{category:"Sm",mappings:{"default":{"default":"double line equal to or greater than"}},key:"2A9A"},{category:"Sm",mappings:{"default":{"default":"double line slanted equal to or less than"}},
+key:"2A9B"},{category:"Sm",mappings:{"default":{"default":"double line slanted equal to or greater than"}},key:"2A9C"},{category:"Sm",mappings:{"default":{"default":"similar or less than"}},key:"2A9D"},{category:"Sm",mappings:{"default":{"default":"similar or greater than"}},key:"2A9E"},{category:"Sm",mappings:{"default":{"default":"similar above less than above equals sign"}},key:"2A9F"},{category:"Sm",mappings:{"default":{"default":"similar above greater than above equals sign"}},key:"2AA0"},{category:"Sm",
+mappings:{"default":{"default":"double nested less than"}},key:"2AA1"},{category:"Sm",mappings:{"default":{"default":"double nested greater than"}},key:"2AA2"},{category:"Sm",mappings:{"default":{"default":"double nested less than with underbar"}},key:"2AA3"},{category:"Sm",mappings:{"default":{"default":"greater than overlapping less than"}},key:"2AA4"},{category:"Sm",mappings:{"default":{"default":"greater than beside less than"}},key:"2AA5"},{category:"Sm",mappings:{"default":{"default":"less than closed by curve"}},
+key:"2AA6"},{category:"Sm",mappings:{"default":{"default":"greater than closed by curve"}},key:"2AA7"},{category:"Sm",mappings:{"default":{"default":"less than closed by curve above slanted equal"}},key:"2AA8"},{category:"Sm",mappings:{"default":{"default":"greater than closed by curve above slanted equal"}},key:"2AA9"},{category:"Sm",mappings:{"default":{"default":"smaller than"}},key:"2AAA"},{category:"Sm",mappings:{"default":{"default":"larger than"}},key:"2AAB"},{category:"Sm",mappings:{"default":{"default":"smaller than or equal to"}},
+key:"2AAC"},{category:"Sm",mappings:{"default":{"default":"larger than or equal to"}},key:"2AAD"},{category:"Sm",mappings:{"default":{"default":"equals sign with bumpy above"}},key:"2AAE"},{category:"Sm",mappings:{"default":{"default":"precedes above single line equals sign"}},key:"2AAF"},{category:"Sm",mappings:{"default":{"default":"succeeds above single line equals sign"}},key:"2AB0"},{category:"Sm",mappings:{"default":{"default":"precedes above single line not equal to"}},key:"2AB1"},{category:"Sm",
+mappings:{"default":{"default":"succeeds above single line not equal to"}},key:"2AB2"},{category:"Sm",mappings:{"default":{"default":"precedes above equals sign"}},key:"2AB3"},{category:"Sm",mappings:{"default":{"default":"succeeds above equals sign"}},key:"2AB4"},{category:"Sm",mappings:{"default":{"default":"precedes above not equal to"}},key:"2AB5"},{category:"Sm",mappings:{"default":{"default":"succeeds above not equal to"}},key:"2AB6"},{category:"Sm",mappings:{"default":{"default":"precedes above almost equal to"}},
+key:"2AB7"},{category:"Sm",mappings:{"default":{"default":"succeeds above almost equal to"}},key:"2AB8"},{category:"Sm",mappings:{"default":{"default":"precedes above not almost equal to"}},key:"2AB9"},{category:"Sm",mappings:{"default":{"default":"succeeds above not almost equal to"}},key:"2ABA"},{category:"Sm",mappings:{"default":{"default":"double precedes"}},key:"2ABB"},{category:"Sm",mappings:{"default":{"default":"double succeeds"}},key:"2ABC"},{category:"Sm",mappings:{"default":{"default":"subset with dot"}},
+key:"2ABD"},{category:"Sm",mappings:{"default":{"default":"superset with dot"}},key:"2ABE"},{category:"Sm",mappings:{"default":{"default":"subset with plus sign below"}},key:"2ABF"},{category:"Sm",mappings:{"default":{"default":"superset with plus sign below"}},key:"2AC0"},{category:"Sm",mappings:{"default":{"default":"subset with multiplication sign below"}},key:"2AC1"},{category:"Sm",mappings:{"default":{"default":"superset with multiplication sign below"}},key:"2AC2"},{category:"Sm",mappings:{"default":{"default":"subset of or equal to with dot above"}},
+key:"2AC3"},{category:"Sm",mappings:{"default":{"default":"superset of or equal to with dot above"}},key:"2AC4"},{category:"Sm",mappings:{"default":{"default":"subset of above equals sign"}},key:"2AC5"},{category:"Sm",mappings:{"default":{"default":"superset of above equals sign"}},key:"2AC6"},{category:"Sm",mappings:{"default":{"default":"subset of above tilde operator"}},key:"2AC7"},{category:"Sm",mappings:{"default":{"default":"superset of above tilde operator"}},key:"2AC8"},{category:"Sm",mappings:{"default":{"default":"subset of above almost equal to"}},
+key:"2AC9"},{category:"Sm",mappings:{"default":{"default":"superset of above almost equal to"}},key:"2ACA"},{category:"Sm",mappings:{"default":{"default":"subset of above not equal to"}},key:"2ACB"},{category:"Sm",mappings:{"default":{"default":"superset of above not equal to"}},key:"2ACC"},{category:"Sm",mappings:{"default":{"default":"square left open box operator"}},key:"2ACD"},{category:"Sm",mappings:{"default":{"default":"square right open box operator"}},key:"2ACE"},{category:"Sm",mappings:{"default":{"default":"closed subset"}},
+key:"2ACF"},{category:"Sm",mappings:{"default":{"default":"closed superset"}},key:"2AD0"},{category:"Sm",mappings:{"default":{"default":"closed subset or equal to"}},key:"2AD1"},{category:"Sm",mappings:{"default":{"default":"closed superset or equal to"}},key:"2AD2"},{category:"Sm",mappings:{"default":{"default":"subset above superset"}},key:"2AD3"},{category:"Sm",mappings:{"default":{"default":"superset above subset"}},key:"2AD4"},{category:"Sm",mappings:{"default":{"default":"subset above subset"}},
+key:"2AD5"},{category:"Sm",mappings:{"default":{"default":"superset above superset"}},key:"2AD6"},{category:"Sm",mappings:{"default":{"default":"superset beside subset"}},key:"2AD7"},{category:"Sm",mappings:{"default":{"default":"superset beside and joined by dash with subset"}},key:"2AD8"},{category:"Sm",mappings:{"default":{"default":"element of opening downwards"}},key:"2AD9"},{category:"Sm",mappings:{"default":{"default":"pitchfork with tee top"}},key:"2ADA"},{category:"Sm",mappings:{"default":{"default":"transversal intersection"}},
+key:"2ADB"},{category:"Sm",mappings:{"default":{"default":"forking"}},key:"2ADC"},{category:"Sm",mappings:{"default":{"default":"nonforking"}},key:"2ADD"},{category:"Sm",mappings:{"default":{"default":"short left tack"}},key:"2ADE"},{category:"Sm",mappings:{"default":{"default":"short down tack"}},key:"2ADF"},{category:"Sm",mappings:{"default":{"default":"short up tack"}},key:"2AE0"},{category:"Sm",mappings:{"default":{"default":"perpendicular with s"}},key:"2AE1"},{category:"Sm",mappings:{"default":{"default":"vertical bar triple right turnstile"}},
+key:"2AE2"},{category:"Sm",mappings:{"default":{"default":"double vertical bar left turnstile"}},key:"2AE3"},{category:"Sm",mappings:{"default":{"default":"vertical bar double left turnstile"}},key:"2AE4"},{category:"Sm",mappings:{"default":{"default":"double vertical bar double left turnstile"}},key:"2AE5"},{category:"Sm",mappings:{"default":{"default":"long dash from left member of double vertical"}},key:"2AE6"},{category:"Sm",mappings:{"default":{"default":"short down tack with overbar"}},key:"2AE7"},
+{category:"Sm",mappings:{"default":{"default":"short up tack with underbar"}},key:"2AE8"},{category:"Sm",mappings:{"default":{"default":"short up tack above short down tack"}},key:"2AE9"},{category:"Sm",mappings:{"default":{"default":"double down tack"}},key:"2AEA"},{category:"Sm",mappings:{"default":{"default":"double up tack"}},key:"2AEB"},{category:"Sm",mappings:{"default":{"default":"double stroke not sign"}},key:"2AEC"},{category:"Sm",mappings:{"default":{"default":"reversed double stroke not sign"}},
+key:"2AED"},{category:"Sm",mappings:{"default":{"default":"does not divide with reversed negation slash"}},key:"2AEE"},{category:"Sm",mappings:{"default":{"default":"vertical line with circle above"}},key:"2AEF"},{category:"Sm",mappings:{"default":{"default":"vertical line with circle below"}},key:"2AF0"},{category:"Sm",mappings:{"default":{"default":"down tack with circle below"}},key:"2AF1"},{category:"Sm",mappings:{"default":{"default":"parallel with horizontal stroke"}},key:"2AF2"},{category:"Sm",
+mappings:{"default":{"default":"parallel with tilde operator"}},key:"2AF3"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar binary relation"}},key:"2AF4"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar with horizontal stroke"}},key:"2AF5"},{category:"Sm",mappings:{"default":{"default":"triple colon operator"}},key:"2AF6"},{category:"Sm",mappings:{"default":{"default":"triple nested less than"}},key:"2AF7"},{category:"Sm",mappings:{"default":{"default":"triple nested greater than"}},
+key:"2AF8"},{category:"Sm",mappings:{"default":{"default":"double line slanted less than or equal to"}},key:"2AF9"},{category:"Sm",mappings:{"default":{"default":"double line slanted greater than or equal to"}},key:"2AFA"},{category:"Sm",mappings:{"default":{"default":"triple solidus binary relation"}},key:"2AFB"},{category:"Sm",mappings:{"default":{"default":"large triple vertical bar operator"}},key:"2AFC"},{category:"Sm",mappings:{"default":{"default":"double solidus operator"}},key:"2AFD"},{category:"Sm",
+mappings:{"default":{"default":"white vertical bar"}},key:"2AFE"},{category:"Sm",mappings:{"default":{"default":"n ary white vertical bar"}},key:"2AFF"},{category:"Pd",mappings:{"default":{"default":"wave dash"}},key:"301C"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical comma"}},key:"FE10"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical colon"}},key:"FE13"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical semicolon"}},
+key:"FE14"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical exclamation mark"}},key:"FE15"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical question mark"}},key:"FE16"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical horizontal ellipsis"}},key:"FE19"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical two dot leader",alternative:"glyph for vertical two dot leader"}},key:"FE30"},{category:"Pd",
+mappings:{"default":{"default":"presentation form for vertical em dash",alternative:"glyph for vertical em dash"}},key:"FE31"},{category:"Pd",mappings:{"default":{"default":"presentation form for vertical en dash",alternative:"glyph for vertical en dash"}},key:"FE32"},{category:"Pc",mappings:{"default":{"default":"presentation form for vertical low line",alternative:"glyph for vertical spacing underscore"}},key:"FE33"},{category:"Pc",mappings:{"default":{"default":"presentation form for vertical wavy low line",
+alternative:"glyph for vertical spacing wavy underscore"}},key:"FE34"},{category:"Po",mappings:{"default":{"default":"sesame dot"}},key:"FE45"},{category:"Po",mappings:{"default":{"default":"white sesame dot"}},key:"FE46"},{category:"Po",mappings:{"default":{"default":"dashed overline",alternative:"spacing dashed overscore"}},key:"FE49"},{category:"Po",mappings:{"default":{"default":"centerline overline",alternative:"spacing centerline overscore"}},key:"FE4A"},{category:"Po",mappings:{"default":{"default":"wavy overline",
+alternative:"spacing wavy overscore"}},key:"FE4B"},{category:"Po",mappings:{"default":{"default":"double wavy overline",alternative:"spacing double wavy overscore"}},key:"FE4C"},{category:"Pc",mappings:{"default":{"default":"dashed low line",alternative:"spacing dashed underscore"}},key:"FE4D"},{category:"Pc",mappings:{"default":{"default":"centerline low line",alternative:"spacing centerline underscore"}},key:"FE4E"},{category:"Pc",mappings:{"default":{"default":"wavy low line",alternative:"spacing wavy underscore"}},
+key:"FE4F"},{category:"Po",mappings:{"default":{"default":"small comma"}},key:"FE50"},{category:"Po",mappings:{"default":{"default":"small full stop",alternative:"small period"}},key:"FE52"},{category:"Po",mappings:{"default":{"default":"small semicolon"}},key:"FE54"},{category:"Po",mappings:{"default":{"default":"small colon"}},key:"FE55"},{category:"Po",mappings:{"default":{"default":"small question mark"}},key:"FE56"},{category:"Po",mappings:{"default":{"default":"small exclamation mark"}},key:"FE57"},
+{category:"Pd",mappings:{"default":{"default":"small em dash"}},key:"FE58"},{category:"Po",mappings:{"default":{"default":"small number sign"}},key:"FE5F"},{category:"Po",mappings:{"default":{"default":"small ampersand"}},key:"FE60"},{category:"Po",mappings:{"default":{"default":"small asterisk"}},key:"FE61"},{category:"Sm",mappings:{"default":{"default":"small plus sign"}},key:"FE62"},{category:"Pd",mappings:{"default":{"default":"small hyphen minus"}},key:"FE63"},{category:"Sm",mappings:{"default":{"default":"small less than sign"}},
+key:"FE64"},{category:"Sm",mappings:{"default":{"default":"small greater than sign"}},key:"FE65"},{category:"Sm",mappings:{"default":{"default":"small equals sign"}},key:"FE66"},{category:"Po",mappings:{"default":{"default":"small reverse solidus",alternative:"small backslash"}},key:"FE68"},{category:"Sc",mappings:{"default":{"default":"small dollar sign"}},key:"FE69"},{category:"Po",mappings:{"default":{"default":"small percent sign"}},key:"FE6A"},{category:"Po",mappings:{"default":{"default":"small commercial at"}},
+key:"FE6B"},{category:"Po",mappings:{"default":{"default":"fullwidth exclamation mark"}},key:"FF01"},{category:"Po",mappings:{"default":{"default":"fullwidth quotation mark"}},key:"FF02"},{category:"Po",mappings:{"default":{"default":"fullwidth number sign"}},key:"FF03"},{category:"Sc",mappings:{"default":{"default":"fullwidth dollar sign"}},key:"FF04"},{category:"Po",mappings:{"default":{"default":"fullwidth percent sign"}},key:"FF05"},{category:"Po",mappings:{"default":{"default":"fullwidth ampersand"}},
+key:"FF06"},{category:"Po",mappings:{"default":{"default":"fullwidth apostrophe"}},key:"FF07"},{category:"Po",mappings:{"default":{"default":"fullwidth asterisk"}},key:"FF0A"},{category:"Sm",mappings:{"default":{"default":"fullwidth plus sign"}},key:"FF0B"},{category:"Po",mappings:{"default":{"default":"fullwidth comma"}},key:"FF0C"},{category:"Pd",mappings:{"default":{"default":"fullwidth hyphen minus"}},key:"FF0D"},{category:"Po",mappings:{"default":{"default":"fullwidth full stop",alternative:"fullwidth period"}},
+key:"FF0E"},{category:"Po",mappings:{"default":{"default":"fullwidth solidus",alternative:"fullwidth slash"}},key:"FF0F"},{category:"Po",mappings:{"default":{"default":"fullwidth colon"}},key:"FF1A"},{category:"Po",mappings:{"default":{"default":"fullwidth semicolon"}},key:"FF1B"},{category:"Sm",mappings:{"default":{"default":"fullwidth less than sign"}},key:"FF1C"},{category:"Sm",mappings:{"default":{"default":"fullwidth equals sign"}},key:"FF1D"},{category:"Sm",mappings:{"default":{"default":"fullwidth greater than sign"}},
+key:"FF1E"},{category:"Po",mappings:{"default":{"default":"fullwidth question mark"}},key:"FF1F"},{category:"Po",mappings:{"default":{"default":"fullwidth commercial at"}},key:"FF20"},{category:"Po",mappings:{"default":{"default":"fullwidth reverse solidus",alternative:"fullwidth backslash"}},key:"FF3C"},{category:"Sk",mappings:{"default":{"default":"fullwidth circumflex accent",alternative:"fullwidth spacing circumflex"}},key:"FF3E"},{category:"Pc",mappings:{"default":{"default":"fullwidth low line",
+alternative:"fullwidth spacing underscore"}},key:"FF3F"},{category:"Sk",mappings:{"default":{"default":"fullwidth grave accent",alternative:"fullwidth spacing grave"}},key:"FF40"},{category:"Sm",mappings:{"default":{"default":"fullwidth vertical line",alternative:"fullwidth vertical bar"}},key:"FF5C"},{category:"Sm",mappings:{"default":{"default":"fullwidth tilde",alternative:"fullwidth spacing tilde"}},key:"FF5E"},{category:"Sc",mappings:{"default":{"default":"fullwidth cent sign"}},key:"FFE0"},
+{category:"Sc",mappings:{"default":{"default":"fullwidth pound sign"}},key:"FFE1"},{category:"Sm",mappings:{"default":{"default":"fullwidth not sign"}},key:"FFE2"},{category:"Sk",mappings:{"default":{"default":"fullwidth macron",alternative:"fullwidth spacing macron"}},key:"FFE3"},{category:"So",mappings:{"default":{"default":"fullwidth broken bar",alternative:"fullwidth broken vertical bar"}},key:"FFE4"},{category:"Sc",mappings:{"default":{"default":"fullwidth yen sign"}},key:"FFE5"},{category:"Sc",
+mappings:{"default":{"default":"fullwidth won sign"}},key:"FFE6"},{category:"So",mappings:{"default":{"default":"halfwidth forms light vertical"}},key:"FFE8"},{category:"So",mappings:{"default":{"default":"halfwidth black square"}},key:"FFED"},{category:"So",mappings:{"default":{"default":"halfwidth white circle"}},key:"FFEE"},{category:"Ll",names:[],key:"03B1",mappings:{"default":{"default":"greek small letter alpha","short":"alpha"}}},{category:"Ll",names:[],key:"03B2",mappings:{"default":{"default":"greek small letter beta",
+"short":"beta"}}},{category:"Ll",names:[],key:"03B3",mappings:{"default":{"default":"greek small letter gamma","short":"gamma"}}},{category:"Ll",names:[],key:"03B4",mappings:{"default":{"default":"greek small letter delta","short":"delta"}}},{category:"Ll",names:[],key:"03B5",mappings:{"default":{"default":"greek small letter epsilon","short":"epsilon"}}},{category:"Ll",names:[],key:"03B6",mappings:{"default":{"default":"greek small letter zeta","short":"zeta"}}},{category:"Ll",names:[],key:"03B7",
+mappings:{"default":{"default":"greek small letter eta","short":"eta"}}},{category:"Ll",names:[],key:"03B8",mappings:{"default":{"default":"greek small letter theta","short":"theta"}}},{category:"Ll",names:[],key:"03B9",mappings:{"default":{"default":"greek small letter iota","short":"iota"}}},{category:"Ll",names:[],key:"03BA",mappings:{"default":{"default":"greek small letter kappa","short":"kappa"}}},{category:"Ll",names:[],key:"03BB",mappings:{"default":{"default":"greek small letter lamda",alternative:"greek small letter lambda",
+"short":"lamda"}}},{category:"Ll",names:[],key:"03BC",mappings:{"default":{"default":"greek small letter mu","short":"mu"}}},{category:"Ll",names:[],key:"03BD",mappings:{"default":{"default":"greek small letter nu","short":"nu"}}},{category:"Ll",names:[],key:"03BE",mappings:{"default":{"default":"greek small letter xi","short":"xi"}}},{category:"Ll",names:[],key:"03BF",mappings:{"default":{"default":"greek small letter omicron","short":"omicron"}}},{category:"Ll",names:[],key:"03C0",mappings:{"default":{"default":"greek small letter pi",
+"short":"pi"}}},{category:"Ll",names:[],key:"03C1",mappings:{"default":{"default":"greek small letter rho","short":"rho"}}},{category:"Ll",names:[],key:"03C2",mappings:{"default":{"default":"greek small letter final sigma","short":"final sigma"}}},{category:"Ll",names:[],key:"03C3",mappings:{"default":{"default":"greek small letter sigma","short":"sigma"}}},{category:"Ll",names:[],key:"03C4",mappings:{"default":{"default":"greek small letter tau","short":"tau"}}},{category:"Ll",names:[],key:"03C5",
+mappings:{"default":{"default":"greek small letter upsilon","short":"upsilon"}}},{category:"Ll",names:[],key:"03C6",mappings:{"default":{"default":"greek small letter phi","short":"phi"}}},{category:"Ll",names:[],key:"03C7",mappings:{"default":{"default":"greek small letter chi","short":"chi"}}},{category:"Ll",names:[],key:"03C8",mappings:{"default":{"default":"greek small letter psi","short":"psi"}}},{category:"Ll",names:[],key:"03C9",mappings:{"default":{"default":"greek small letter omega","short":"omega"}}},
+{category:"Ll",mappings:{"default":{"default":"greek beta symbol",alternative:"greek small letter curled beta","short":"beta"}},key:"03D0"},{category:"Ll",mappings:{"default":{"default":"greek theta symbol",alternative:"greek small letter script theta","short":"theta"}},key:"03D1"},{category:"Ll",mappings:{"default":{"default":"greek phi symbol",alternative:"greek small letter script phi","short":"phi"}},key:"03D5"},{category:"Ll",mappings:{"default":{"default":"greek pi symbol",alternative:"greek small letter omega pi",
+"short":"pi"}},key:"03D6"},{category:"Ll",mappings:{"default":{"default":"greek kai symbol","short":"kai"}},key:"03D7"},{category:"Ll",mappings:{"default":{"default":"greek kappa symbol",alternative:"greek small letter script kappa","short":"kappa"}},key:"03F0"},{category:"Ll",mappings:{"default":{"default":"greek rho symbol",alternative:"greek small letter tailed rho","short":"rho"}},key:"03F1"},{category:"Ll",mappings:{"default":{"default":"greek lunate epsilon symbol","short":"epsilon"}},key:"03F5"},
+{category:"Sm",mappings:{"default":{"default":"greek reversed lunate epsilon symbol","short":"reversed epsilon"}},key:"03F6"},{category:"Lu",names:[],key:"0391",mappings:{"default":{"default":"greek capital letter alpha","short":"cap alpha"}}},{category:"Lu",names:[],key:"0392",mappings:{"default":{"default":"greek capital letter beta","short":"cap beta"}}},{category:"Lu",names:[],key:"0393",mappings:{"default":{"default":"greek capital letter gamma","short":"cap gamma"}}},{category:"Lu",names:[],
+key:"0394",mappings:{"default":{"default":"greek capital letter delta","short":"cap delta"}}},{category:"Lu",names:[],key:"0395",mappings:{"default":{"default":"greek capital letter epsilon","short":"cap epsilon"}}},{category:"Lu",names:[],key:"0396",mappings:{"default":{"default":"greek capital letter zeta","short":"cap zeta"}}},{category:"Lu",names:[],key:"0397",mappings:{"default":{"default":"greek capital letter eta","short":"cap eta"}}},{category:"Lu",names:[],key:"0398",mappings:{"default":{"default":"greek capital letter theta",
+"short":"cap theta"}}},{category:"Lu",names:[],key:"0399",mappings:{"default":{"default":"greek capital letter iota","short":"cap iota"}}},{category:"Lu",names:[],key:"039A",mappings:{"default":{"default":"greek capital letter kappa","short":"cap kappa"}}},{category:"Lu",names:[],key:"039B",mappings:{"default":{"default":"greek capital letter lamda",alternative:"greek capital letter lambda","short":"cap lamda"}}},{category:"Lu",names:[],key:"039C",mappings:{"default":{"default":"greek capital letter mu",
+"short":"cap mu"}}},{category:"Lu",names:[],key:"039D",mappings:{"default":{"default":"greek capital letter nu","short":"cap nu"}}},{category:"Lu",names:[],key:"039E",mappings:{"default":{"default":"greek capital letter xi","short":"cap xi"}}},{category:"Lu",names:[],key:"039F",mappings:{"default":{"default":"greek capital letter omicron","short":"cap omicron"}}},{category:"Lu",names:[],key:"03A0",mappings:{"default":{"default":"greek capital letter pi","short":"cap pi"}}},{category:"Lu",names:[],
+key:"03A1",mappings:{"default":{"default":"greek capital letter rho","short":"cap rho"}}},{category:"Lu",names:[],key:"03A3",mappings:{"default":{"default":"greek capital letter sigma","short":"cap sigma"}}},{category:"Lu",names:[],key:"03A4",mappings:{"default":{"default":"greek capital letter tau","short":"cap tau"}}},{category:"Lu",names:[],key:"03A5",mappings:{"default":{"default":"greek capital letter upsilon","short":"cap upsilon"}}},{category:"Lu",names:[],key:"03A6",mappings:{"default":{"default":"greek capital letter phi",
+"short":"cap phi"}}},{category:"Lu",names:[],key:"03A7",mappings:{"default":{"default":"greek capital letter chi","short":"cap chi"}}},{category:"Lu",names:[],key:"03A8",mappings:{"default":{"default":"greek capital letter psi","short":"cap psi"}}},{category:"Lu",names:[],key:"03A9",mappings:{"default":{"default":"greek capital letter omega","short":"cap omega"}}},{category:"Lu",mappings:{"default":{"default":"greek capital theta symbol","short":"cap theta"}},key:"03F4"},{category:"Ps",mappings:{"default":{"default":"left parenthesis",
+alternative:"opening parenthesis"}},key:"0028"},{category:"Pe",mappings:{"default":{"default":"right parenthesis",alternative:"closing parenthesis"}},key:"0029"},{category:"Ps",mappings:{"default":{"default":"left square bracket",alternative:"opening square bracket"}},key:"005B"},{category:"Pe",mappings:{"default":{"default":"right square bracket",alternative:"closing square bracket"}},key:"005D"},{category:"Ps",mappings:{"default":{"default":"left curly bracket",alternative:"opening curly bracket"}},
+key:"007B"},{category:"Pe",mappings:{"default":{"default":"right curly bracket",alternative:"closing curly bracket"}},key:"007D"},{category:"Ps",mappings:{"default":{"default":"left square bracket with quill"}},key:"2045"},{category:"Pe",mappings:{"default":{"default":"right square bracket with quill"}},key:"2046"},{category:"Sm",mappings:{"default":{"default":"left ceiling"}},key:"2308"},{category:"Sm",mappings:{"default":{"default":"right ceiling"}},key:"2309"},{category:"Sm",mappings:{"default":{"default":"left floor"}},
+key:"230A"},{category:"Sm",mappings:{"default":{"default":"right floor"}},key:"230B"},{category:"So",mappings:{"default":{"default":"bottom right crop"}},key:"230C"},{category:"So",mappings:{"default":{"default":"bottom left crop"}},key:"230D"},{category:"So",mappings:{"default":{"default":"top right crop"}},key:"230E"},{category:"So",mappings:{"default":{"default":"top left crop"}},key:"230F"},{category:"So",mappings:{"default":{"default":"top left corner"}},key:"231C"},{category:"So",mappings:{"default":{"default":"top right corner"}},
+key:"231D"},{category:"So",mappings:{"default":{"default":"bottom left corner"}},key:"231E"},{category:"So",mappings:{"default":{"default":"bottom right corner"}},key:"231F"},{category:"Sm",mappings:{"default":{"default":"top half integral"}},key:"2320"},{category:"Sm",mappings:{"default":{"default":"bottom half integral"}},key:"2321"},{category:"Ps",mappings:{"default":{"default":"left pointing angle bracket",alternative:"bra"}},key:"2329"},{category:"Pe",mappings:{"default":{"default":"right pointing angle bracket",
+alternative:"ket"}},key:"232A"},{category:"Sm",mappings:{"default":{"default":"left parenthesis upper hook"}},key:"239B"},{category:"Sm",mappings:{"default":{"default":"left parenthesis extension"}},key:"239C"},{category:"Sm",mappings:{"default":{"default":"left parenthesis lower hook"}},key:"239D"},{category:"Sm",mappings:{"default":{"default":"right parenthesis upper hook"}},key:"239E"},{category:"Sm",mappings:{"default":{"default":"right parenthesis extension"}},key:"239F"},{category:"Sm",mappings:{"default":{"default":"right parenthesis lower hook"}},
+key:"23A0"},{category:"Sm",mappings:{"default":{"default":"left square bracket upper corner"}},key:"23A1"},{category:"Sm",mappings:{"default":{"default":"left square bracket extension"}},key:"23A2"},{category:"Sm",mappings:{"default":{"default":"left square bracket lower corner"}},key:"23A3"},{category:"Sm",mappings:{"default":{"default":"right square bracket upper corner"}},key:"23A4"},{category:"Sm",mappings:{"default":{"default":"right square bracket extension"}},key:"23A5"},{category:"Sm",mappings:{"default":{"default":"right square bracket lower corner"}},
+key:"23A6"},{category:"Sm",mappings:{"default":{"default":"left curly bracket upper hook"}},key:"23A7"},{category:"Sm",mappings:{"default":{"default":"left curly bracket middle piece"}},key:"23A8"},{category:"Sm",mappings:{"default":{"default":"left curly bracket lower hook"}},key:"23A9"},{category:"Sm",mappings:{"default":{"default":"curly bracket extension"}},key:"23AA"},{category:"Sm",mappings:{"default":{"default":"right curly bracket upper hook"}},key:"23AB"},{category:"Sm",mappings:{"default":{"default":"right curly bracket middle piece"}},
+key:"23AC"},{category:"Sm",mappings:{"default":{"default":"right curly bracket lower hook"}},key:"23AD"},{category:"Sm",mappings:{"default":{"default":"integral extension"}},key:"23AE"},{category:"Sm",mappings:{"default":{"default":"horizontal line extension"}},key:"23AF"},{category:"Sm",mappings:{"default":{"default":"upper left or lower right curly bracket section"}},key:"23B0"},{category:"Sm",mappings:{"default":{"default":"upper right or lower left curly bracket section"}},key:"23B1"},{category:"Sm",
+mappings:{"default":{"default":"summation top"}},key:"23B2"},{category:"Sm",mappings:{"default":{"default":"summation bottom"}},key:"23B3"},{category:"So",mappings:{"default":{"default":"top square bracket"}},key:"23B4"},{category:"So",mappings:{"default":{"default":"bottom square bracket"}},key:"23B5"},{category:"So",mappings:{"default":{"default":"bottom square bracket over top square bracket"}},key:"23B6"},{category:"So",mappings:{"default":{"default":"radical symbol bottom"}},key:"23B7"},{category:"So",
+mappings:{"default":{"default":"left vertical box line"}},key:"23B8"},{category:"So",mappings:{"default":{"default":"right vertical box line"}},key:"23B9"},{category:"Sm",mappings:{"default":{"default":"top parenthesis"}},key:"23DC"},{category:"Sm",mappings:{"default":{"default":"bottom parenthesis"}},key:"23DD"},{category:"Sm",mappings:{"default":{"default":"top curly bracket"}},key:"23DE"},{category:"Sm",mappings:{"default":{"default":"bottom curly bracket"}},key:"23DF"},{category:"Sm",mappings:{"default":{"default":"top tortoise shell bracket"}},
+key:"23E0"},{category:"Sm",mappings:{"default":{"default":"bottom tortoise shell bracket"}},key:"23E1"},{category:"Ps",mappings:{"default":{"default":"medium left parenthesis ornament"}},key:"2768"},{category:"Pe",mappings:{"default":{"default":"medium right parenthesis ornament"}},key:"2769"},{category:"Ps",mappings:{"default":{"default":"medium flattened left parenthesis ornament"}},key:"276A"},{category:"Pe",mappings:{"default":{"default":"medium flattened right parenthesis ornament"}},key:"276B"},
+{category:"Ps",mappings:{"default":{"default":"medium left pointing angle bracket ornament"}},key:"276C"},{category:"Pe",mappings:{"default":{"default":"medium right pointing angle bracket ornament"}},key:"276D"},{category:"Ps",mappings:{"default":{"default":"heavy left pointing angle quotation mark ornament"}},key:"276E"},{category:"Pe",mappings:{"default":{"default":"heavy right pointing angle quotation mark ornament"}},key:"276F"},{category:"Ps",mappings:{"default":{"default":"heavy left pointing angle bracket ornament"}},
+key:"2770"},{category:"Pe",mappings:{"default":{"default":"heavy right pointing angle bracket ornament"}},key:"2771"},{category:"Ps",mappings:{"default":{"default":"light left tortoise shell bracket ornament"}},key:"2772"},{category:"Pe",mappings:{"default":{"default":"light right tortoise shell bracket ornament"}},key:"2773"},{category:"Ps",mappings:{"default":{"default":"medium left curly bracket ornament"}},key:"2774"},{category:"Pe",mappings:{"default":{"default":"medium right curly bracket ornament"}},
+key:"2775"},{category:"Ps",mappings:{"default":{"default":"left s shaped bag delimiter"}},key:"27C5"},{category:"Pe",mappings:{"default":{"default":"right s shaped bag delimiter"}},key:"27C6"},{category:"Ps",mappings:{"default":{"default":"mathematical left white square bracket"}},key:"27E6"},{category:"Pe",mappings:{"default":{"default":"mathematical right white square bracket"}},key:"27E7"},{category:"Ps",mappings:{"default":{"default":"mathematical left angle bracket"}},key:"27E8"},{category:"Pe",
+mappings:{"default":{"default":"mathematical right angle bracket"}},key:"27E9"},{category:"Ps",mappings:{"default":{"default":"mathematical left double angle bracket"}},key:"27EA"},{category:"Pe",mappings:{"default":{"default":"mathematical right double angle bracket"}},key:"27EB"},{category:"Ps",mappings:{"default":{"default":"mathematical left white tortoise shell bracket"}},key:"27EC"},{category:"Pe",mappings:{"default":{"default":"mathematical right white tortoise shell bracket"}},key:"27ED"},
+{category:"Ps",mappings:{"default":{"default":"mathematical left flattened parenthesis"}},key:"27EE"},{category:"Pe",mappings:{"default":{"default":"mathematical right flattened parenthesis"}},key:"27EF"},{category:"Ps",mappings:{"default":{"default":"left white curly bracket"}},key:"2983"},{category:"Pe",mappings:{"default":{"default":"right white curly bracket"}},key:"2984"},{category:"Ps",mappings:{"default":{"default":"left white parenthesis"}},key:"2985"},{category:"Pe",mappings:{"default":{"default":"right white parenthesis"}},
+key:"2986"},{category:"Ps",mappings:{"default":{"default":"z notation left image bracket"}},key:"2987"},{category:"Pe",mappings:{"default":{"default":"z notation right image bracket"}},key:"2988"},{category:"Ps",mappings:{"default":{"default":"z notation left binding bracket"}},key:"2989"},{category:"Pe",mappings:{"default":{"default":"z notation right binding bracket"}},key:"298A"},{category:"Ps",mappings:{"default":{"default":"left square bracket with underbar"}},key:"298B"},{category:"Pe",mappings:{"default":{"default":"right square bracket with underbar"}},
+key:"298C"},{category:"Ps",mappings:{"default":{"default":"left square bracket with tick in top corner"}},key:"298D"},{category:"Pe",mappings:{"default":{"default":"right square bracket with tick in bottom corner"}},key:"298E"},{category:"Ps",mappings:{"default":{"default":"left square bracket with tick in bottom corner"}},key:"298F"},{category:"Pe",mappings:{"default":{"default":"right square bracket with tick in top corner"}},key:"2990"},{category:"Ps",mappings:{"default":{"default":"left angle bracket with dot"}},
+key:"2991"},{category:"Pe",mappings:{"default":{"default":"right angle bracket with dot"}},key:"2992"},{category:"Ps",mappings:{"default":{"default":"left arc less than bracket"}},key:"2993"},{category:"Pe",mappings:{"default":{"default":"right arc greater than bracket"}},key:"2994"},{category:"Ps",mappings:{"default":{"default":"double left arc greater than bracket"}},key:"2995"},{category:"Pe",mappings:{"default":{"default":"double right arc less than bracket"}},key:"2996"},{category:"Ps",mappings:{"default":{"default":"left black tortoise shell bracket"}},
+key:"2997"},{category:"Pe",mappings:{"default":{"default":"right black tortoise shell bracket"}},key:"2998"},{category:"Ps",mappings:{"default":{"default":"left wiggly fence"}},key:"29D8"},{category:"Pe",mappings:{"default":{"default":"right wiggly fence"}},key:"29D9"},{category:"Ps",mappings:{"default":{"default":"left double wiggly fence"}},key:"29DA"},{category:"Pe",mappings:{"default":{"default":"right double wiggly fence"}},key:"29DB"},{category:"Ps",mappings:{"default":{"default":"left pointing curved angle bracket"}},
+key:"29FC"},{category:"Pe",mappings:{"default":{"default":"right pointing curved angle bracket"}},key:"29FD"},{category:"Ps",mappings:{"default":{"default":"top left half bracket"}},key:"2E22"},{category:"Pe",mappings:{"default":{"default":"top right half bracket"}},key:"2E23"},{category:"Ps",mappings:{"default":{"default":"bottom left half bracket"}},key:"2E24"},{category:"Pe",mappings:{"default":{"default":"bottom right half bracket"}},key:"2E25"},{category:"Ps",mappings:{"default":{"default":"left sideways u bracket"}},
+key:"2E26"},{category:"Pe",mappings:{"default":{"default":"right sideways u bracket"}},key:"2E27"},{category:"Ps",mappings:{"default":{"default":"left double parenthesis"}},key:"2E28"},{category:"Pe",mappings:{"default":{"default":"right double parenthesis"}},key:"2E29"},{category:"Ps",mappings:{"default":{"default":"left angle bracket",alternative:"opening angle bracket"}},key:"3008"},{category:"Pe",mappings:{"default":{"default":"right angle bracket",alternative:"closing angle bracket"}},key:"3009"},
+{category:"Ps",mappings:{"default":{"default":"left double angle bracket",alternative:"opening double angle bracket"}},key:"300A"},{category:"Pe",mappings:{"default":{"default":"right double angle bracket",alternative:"closing double angle bracket"}},key:"300B"},{category:"Ps",mappings:{"default":{"default":"left corner bracket",alternative:"opening corner bracket"}},key:"300C"},{category:"Pe",mappings:{"default":{"default":"right corner bracket",alternative:"closing corner bracket"}},key:"300D"},
+{category:"Ps",mappings:{"default":{"default":"left white corner bracket",alternative:"opening white corner bracket"}},key:"300E"},{category:"Pe",mappings:{"default":{"default":"right white corner bracket",alternative:"closing white corner bracket"}},key:"300F"},{category:"Ps",mappings:{"default":{"default":"left black lenticular bracket",alternative:"opening black lenticular bracket"}},key:"3010"},{category:"Pe",mappings:{"default":{"default":"right black lenticular bracket",alternative:"closing black lenticular bracket"}},
+key:"3011"},{category:"Ps",mappings:{"default":{"default":"left tortoise shell bracket",alternative:"opening tortoise shell bracket"}},key:"3014"},{category:"Pe",mappings:{"default":{"default":"right tortoise shell bracket",alternative:"closing tortoise shell bracket"}},key:"3015"},{category:"Ps",mappings:{"default":{"default":"left white lenticular bracket",alternative:"opening white lenticular bracket"}},key:"3016"},{category:"Pe",mappings:{"default":{"default":"right white lenticular bracket",
+alternative:"closing white lenticular bracket"}},key:"3017"},{category:"Ps",mappings:{"default":{"default":"left white tortoise shell bracket",alternative:"opening white tortoise shell bracket"}},key:"3018"},{category:"Pe",mappings:{"default":{"default":"right white tortoise shell bracket",alternative:"closing white tortoise shell bracket"}},key:"3019"},{category:"Ps",mappings:{"default":{"default":"left white square bracket",alternative:"opening white square bracket"}},key:"301A"},{category:"Pe",
+mappings:{"default":{"default":"right white square bracket",alternative:"closing white square bracket"}},key:"301B"},{category:"Ps",mappings:{"default":{"default":"reversed double prime quotation mark"}},key:"301D"},{category:"Pe",mappings:{"default":{"default":"double prime quotation mark"}},key:"301E"},{category:"Pe",mappings:{"default":{"default":"low double prime quotation mark"}},key:"301F"},{category:"Ps",mappings:{"default":{"default":"ornate left parenthesis"}},key:"FD3E"},{category:"Pe",
+mappings:{"default":{"default":"ornate right parenthesis"}},key:"FD3F"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left white lenticular bracket"}},key:"FE17"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right white lenticular bracket"}},key:"FE18"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left parenthesis",alternative:"glyph for vertical opening parenthesis"}},key:"FE35"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right parenthesis",
+alternative:"glyph for vertical closing parenthesis"}},key:"FE36"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left curly bracket",alternative:"glyph for vertical opening curly bracket"}},key:"FE37"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right curly bracket",alternative:"glyph for vertical closing curly bracket"}},key:"FE38"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left tortoise shell bracket",
+alternative:"glyph for vertical opening tortoise shell bracket"}},key:"FE39"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right tortoise shell bracket",alternative:"glyph for vertical closing tortoise shell bracket"}},key:"FE3A"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left black lenticular bracket",alternative:"glyph for vertical opening black lenticular bracket"}},key:"FE3B"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right black lenticular bracket",
+alternative:"glyph for vertical closing black lenticular bracket"}},key:"FE3C"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left double angle bracket",alternative:"glyph for vertical opening double angle bracket"}},key:"FE3D"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right double angle bracket",alternative:"glyph for vertical closing double angle bracket"}},key:"FE3E"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left angle bracket",
+alternative:"glyph for vertical opening angle bracket"}},key:"FE3F"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right angle bracket",alternative:"glyph for vertical closing angle bracket"}},key:"FE40"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left corner bracket",alternative:"glyph for vertical opening corner bracket"}},key:"FE41"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right corner bracket",
+alternative:"glyph for vertical closing corner bracket"}},key:"FE42"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left white corner bracket",alternative:"glyph for vertical opening white corner bracket"}},key:"FE43"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right white corner bracket",alternative:"glyph for vertical closing white corner bracket"}},key:"FE44"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left square bracket"}},
+key:"FE47"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right square bracket"}},key:"FE48"},{category:"Ps",mappings:{"default":{"default":"small left parenthesis",alternative:"small opening parenthesis"}},key:"FE59"},{category:"Pe",mappings:{"default":{"default":"small right parenthesis",alternative:"small closing parenthesis"}},key:"FE5A"},{category:"Ps",mappings:{"default":{"default":"small left curly bracket",alternative:"small opening curly bracket"}},key:"FE5B"},
+{category:"Pe",mappings:{"default":{"default":"small right curly bracket",alternative:"small closing curly bracket"}},key:"FE5C"},{category:"Ps",mappings:{"default":{"default":"small left tortoise shell bracket",alternative:"small opening tortoise shell bracket"}},key:"FE5D"},{category:"Pe",mappings:{"default":{"default":"small right tortoise shell bracket",alternative:"small closing tortoise shell bracket"}},key:"FE5E"},{category:"Ps",mappings:{"default":{"default":"fullwidth left parenthesis",alternative:"fullwidth opening parenthesis"}},
+key:"FF08"},{category:"Pe",mappings:{"default":{"default":"fullwidth right parenthesis",alternative:"fullwidth closing parenthesis"}},key:"FF09"},{category:"Ps",mappings:{"default":{"default":"fullwidth left square bracket",alternative:"fullwidth opening square bracket"}},key:"FF3B"},{category:"Pe",mappings:{"default":{"default":"fullwidth right square bracket",alternative:"fullwidth closing square bracket"}},key:"FF3D"},{category:"Ps",mappings:{"default":{"default":"fullwidth left curly bracket",
+alternative:"fullwidth opening curly bracket"}},key:"FF5B"},{category:"Pe",mappings:{"default":{"default":"fullwidth right curly bracket",alternative:"fullwidth closing curly bracket"}},key:"FF5D"},{category:"Ps",mappings:{"default":{"default":"fullwidth left white parenthesis"}},key:"FF5F"},{category:"Pe",mappings:{"default":{"default":"fullwidth right white parenthesis"}},key:"FF60"},{category:"Ps",mappings:{"default":{"default":"halfwidth left corner bracket",alternative:"halfwidth opening corner bracket"}},
+key:"FF62"},{category:"Pe",mappings:{"default":{"default":"halfwidth right corner bracket",alternative:"halfwidth closing corner bracket"}},key:"FF63"}];
+cvox.AndroidMathMap.FUNCTION_MAPPINGS_=[{category:"Elementary",mappings:{"default":{"default":"logarithm",alternative:"logarithm function","short":"log"}},key:"log",names:["log"]},{category:"Elementary",mappings:{"default":{"default":"natural logarithm",alternative:"natural logarithm function","short":"natural log"}},key:"ln",names:["ln"]},{category:"Elementary",mappings:{"default":{"default":"logarithm base 10","short":"log base 10"}},key:"lg",names:["lg"]},{category:"Elementary",mappings:{"default":{"default":"exponential",
+alternative:"exponential function","short":"exp"}},key:"exp",names:["exp","expt"]},{category:"Elementary",mappings:{"default":{"default":"greatest common divisor","short":"gcd"}},key:"gcd",names:["gcd"]},{category:"Elementary",mappings:{"default":{"default":"least common multiple","short":"lcm"}},key:"gcd",names:["gcd"]},{category:"Complex",mappings:{"default":{"default":"argument","short":"arg"}},key:"arg",names:["arg"]},{category:"Complex",mappings:{"default":{"default":"imaginary part","short":"imaginary"}},
+key:"im",names:["im"]},{category:"Complex",mappings:{"default":{"default":"real part","short":"real"}},key:"re",names:["re"]},{category:"Limits",mappings:{"default":{"default":"infimum","short":"inf"}},key:"inf",names:["inf"]},{category:"Limits",mappings:{"default":{"default":"limit","short":"lim"}},key:"lim",names:["lim"]},{category:"Limits",mappings:{"default":{"default":"infimum default",alternative:"inferior limit","short":"liminf"}},key:"liminf",names:["lim inf"]},{category:"Limits",mappings:{"default":{"default":"supremum limit",
+alternative:"superior limit","short":"limsup"}},key:"limsup",names:["lim sup"]},{category:"Limits",mappings:{"default":{"default":"maximum","short":"max"}},key:"max",names:["max"]},{category:"Limits",mappings:{"default":{"default":"minimum","short":"min"}},key:"min",names:["min"]},{category:"Limits",mappings:{"default":{"default":"supremum","short":"sup"}},key:"sup",names:["sup"]},{category:"Limits",mappings:{"default":{"default":"injective limit",alternative:"direct limit","short":"colimit"}},key:"injlim",
+names:["injlim","inj lim"]},{category:"Limits",mappings:{"default":{"default":"projective limit",alternative:"inverse limit","short":"limit"}},key:"projlim",names:["projlim","proj lim"]},{category:"Elementary",mappings:{"default":{"default":"modulo","short":"mod"}},key:"mod",names:["mod"]},{category:"Probability",mappings:{"default":{"default":"probability"}},key:"Pr",names:["Pr"]},{category:"Trigonometric",mappings:{"default":{"default":"cosine function","short":"cosine"}},key:"cos",names:["cos",
+"cosine"]},{category:"Trigonometric",mappings:{"default":{"default":"cotangent function","short":"cotangent"}},key:"cot",names:["cot"]},{category:"Trigonometric",mappings:{"default":{"default":"cosecant function","short":"cosecant"}},key:"csc",names:["csc"]},{category:"Trigonometric",mappings:{"default":{"default":"secant function","short":"secant"}},key:"sec",names:["sec"]},{category:"Trigonometric",mappings:{"default":{"default":"sine function",alternative:"sine function","short":"sine"}},key:"sin",
+names:["sin","sine"]},{category:"Trigonometric",mappings:{"default":{"default":"tangent function","short":"tangent"}},key:"tan",names:["tan"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse cosine function",alternative:"arc cosine function","short":"arc cosine"}},key:"arccos",names:["arccos"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse cotangent function",alternative:"arc cotangent function","short":"arc cotangent"}},key:"arccot",names:["arccot"]},{category:"Cyclometric",
+mappings:{"default":{"default":"inverse cosecant function",alternative:"arc cosecant function","short":"arc cosecant"}},key:"arccsc",names:["arccsc"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse secant function",alternative:"arc secant function","short":"arc secant"}},key:"arcsec",names:["arcsec"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse sine function",alternative:"arc sine function","short":"arc sine"}},key:"arcsin",names:["arcsin"]},{category:"Cyclometric",
+mappings:{"default":{"default":"inverse tangent function",alternative:"arc tangent function","short":"arc tangent"}},key:"arctan",names:["arctan"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic cosine function","short":"hyperbolic cosine"}},key:"cosh",names:["cosh"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic cotangent function","short":"hyperbolic cotangent"}},key:"coth",names:["coth"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic cosecant function",
+"short":"hyperbolic cosecant"}},key:"csch",names:["csch"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic secant function","short":"hyperbolic secant"}},key:"sech",names:["sech"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic sine function","short":"hyperbolic sine"}},key:"sinh",names:["sinh"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic tangent function","short":"hyperbolic tangent"}},key:"tanh",names:["tanh"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic cosine function",
+alternative:"area hyperbolic cosine function","short":"area hyperbolic cosine"}},key:"arcosh",names:["arcosh","arccosh"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic cotangent function",alternative:"area hyperbolic cotangent function","short":"area hyperbolic cotangent"}},key:"arcoth",names:["arcoth","arccoth"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic cosecant function",alternative:"area hyperbolic cosecant function","short":"area hyperbolic cosecant"}},
+key:"arcsch",names:["arcsch","arccsch"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic secant function",alternative:"area hyperbolic secant function","short":"area hyperbolic secant"}},key:"arsech",names:["arsech","arcsech"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic sine function",alternative:"area hyperbolic sine function","short":"area hyperbolic sine"}},key:"arsinh",names:["arsinh","arcsinh"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic tangent function",
+alternative:"area hyperbolic tangent function","short":"area hyperbolic tangent"}},key:"artanh",names:["artanh","arctanh"]},{category:"Algebra",mappings:{"default":{"default":"degree"}},key:"deg",names:["deg"]},{category:"Algebra",mappings:{"default":{"default":"determinant","short":"det"}},key:"det",names:["det"]},{category:"Algebra",mappings:{"default":{"default":"dimension"}},key:"dim",names:["dim"]},{category:"Algebra",mappings:{"default":{"default":"homomorphism","short":"hom"}},key:"hom",names:["hom",
+"Hom"]},{category:"Algebra",mappings:{"default":{"default":"kernel"}},key:"ker",names:["ker"]},{category:"Algebra",mappings:{"default":{"default":"trace"}},key:"Tr",names:["Tr","tr"]}];cvox.AndroidVox=function(){cvox.ChromeVox.navigationManager.ignoreIframesNoMatterWhat()};goog.exportSymbol("cvox.AndroidVox",cvox.AndroidVox);
+cvox.AndroidVox.performAction=function(a){var b=JSON.parse(a);a=b.action;var c=b.granularity,b=b.element,d=cvox.SearchWidget.getInstance().isActive();16==c&&512==a&&(cvox.ChromeVox.navigationManager.setReversed(!1),cvox.ChromeVox.navigationManager.syncToBeginning(),cvox.ChromeVox.navigationManager.updateIndicator());if(16==c)return cvox.ChromeVoxUserCommands.commands.readFromHere(),!0;cvox.ChromeVoxUserCommands.commands.stopSpeech();if(256==a||512==a)d||cvox.ChromeVoxEventWatcher.setUpTextHandler();
+var e=cvox.ChromeVoxEventWatcher.currentTextHandler;e||document.activeElement==document.body||console.log("no text handler, but there is an active element",document.activeElement);if(e&&1==c){if(256==a)return e.moveCursorToNextCharacter();if(512==a)return e.moveCursorToPreviousCharacter()}else if(e&&2==c){if(256==a)return e.moveCursorToNextWord();if(512==a)return e.moveCursorToPreviousWord()}else if(e&&8==c){if(256==a)return e.moveCursorToNextParagraph();if(512==a)return e.moveCursorToPreviousParagraph()}else if(e&&
+4==c){var f=!1;256==a?f=e.moveCursorToNextLine():512==a&&(f=e.moveCursorToPreviousLine());if(f)return!0}switch(c){case -1:return cvox.ChromeVox.navigationManager.finishNavCommand(""),!0;case -2:return cvox.ChromeVoxUserCommands.commands.readCurrentTitle(),!0;case -3:return!0;case -4:return 512==a?cvox.ChromeVoxUserCommands.commands.exitShifter():cvox.ChromeVoxUserCommands.commands.enterShifter(),!0;case -5:return cvox.SearchWidget.getInstance().toggle(),!0}if(-275999999<=c&&-275E6>=c){cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("element_clicked"),
+cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION);a=cvox.ChromeVox.navigationManager.getBraille();b=-275E6-c;if(c=a.text.getSpan(b))a=b-a.text.getSpanStart(c),cvox.AndroidVox.performClickAction(c,a);return!0}if(0>c)return!1;e=[];e[8]=cvox.NavigationShifter.GRANULARITIES.GROUP;e[4]=cvox.NavigationShifter.GRANULARITIES.LINE;e[2]=cvox.NavigationShifter.GRANULARITIES.WORD;e[1]=cvox.NavigationShifter.GRANULARITIES.CHARACTER;d||(c=c?e[c]:cvox.NavigationShifter.GRANULARITIES.OBJECT,
+cvox.ChromeVox.navigationManager.setGranularity(c));c=!1;switch(a){case 16:if(d)break;cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("element_clicked"),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION);(c=cvox.ChromeVox.navigationManager.getCurrentNode())&&cvox.AndroidVox.performClickAction(c);c=!0;break;case 1024:switch(b){case "SECTION":c=!cvox.ChromeVoxUserCommands.commands.nextSection();break;case "LIST":c=!cvox.ChromeVoxUserCommands.commands.nextList();break;case "CONTROL":c=
+!cvox.ChromeVoxUserCommands.commands.nextControl()}if(c)break;case 256:d?(cvox.SearchWidget.getInstance().nextResult(!1),c=!0):c=!cvox.ChromeVoxUserCommands.commands.forward();break;case 2048:switch(b){case "SECTION":c=!cvox.ChromeVoxUserCommands.commands.previousSection();break;case "LIST":c=!cvox.ChromeVoxUserCommands.commands.previousList();break;case "CONTROL":c=!cvox.ChromeVoxUserCommands.commands.previousControl()}if(c)break;case 512:d?(cvox.SearchWidget.getInstance().nextResult(!0),c=!0):c=
+!cvox.ChromeVoxUserCommands.commands.backward()}return c};goog.exportSymbol("cvox.AndroidVox.performAction",cvox.AndroidVox.performAction);
+cvox.AndroidVox.performClickAction=function(a,b){cvox.ChromeVox.navigationManager.getCurrentNode()!=a&&cvox.ApiImplementation.syncToNode(a,!1);cvox.Focuser.setFocus(a);var c=cvox.DomUtil.isInputTypeText(a)||a instanceof HTMLTextAreaElement;if(goog.isDef(b)&&c){var d=cvox.BrailleUtil.getTemplated(null,a),c=d.getSpanInstanceOf(cvox.BrailleUtil.ValueSpan),e=d.getSpanStart(c),d=d.getSpanEnd(c);e<=b&&b<=d&&(c=b-e+c.offset,a.selectionStart=a.selectionEnd=c,cvox.ChromeVoxEventWatcher.handleTextChanged(!0))}cvox.DomUtil.clickElem(a,
+!1,!0)};cvox.AndroidHost=function(){};goog.inherits(cvox.AndroidHost,cvox.AbstractHost);
+cvox.AndroidHost.prototype.init=function(){cvox.ChromeVox.version="AndroidVox";var a=cvox.AndroidKeyMap.getStringifiedKeyMap();cvox.ChromeVoxKbHandler.loadKeyToFunctionsTable(a);cvox.ApiImplementation.siteSpecificScriptLoader="";cvox.ApiImplementation.siteSpecificScriptBase="";cvox.ApiImplementation.init();cvox.ChromeVox.earcons.earconsAvailable()&&(cvox.ChromeVox.verbosity=cvox.VERBOSITY_BRIEF);new cvox.AndroidMathMap;cvox.InitialSpeech.speak()};cvox.AndroidHost.prototype.reinit=function(){};
+cvox.AndroidHost.prototype.onPageLoad=function(){cvox.ChromeVoxEventWatcher.focusFollowsMouse=!0;cvox.ChromeVoxEventWatcher.mouseoverDelayMs=0};cvox.AndroidHost.prototype.ttsLoaded=function(){return"undefined"!=typeof accessibility};cvox.AndroidHost.prototype.getApiSrc=function(){return""};cvox.AndroidHost.prototype.hasTtsCallback=function(){return!1};cvox.AndroidHost.prototype.mustRedispatchClickEvent=function(){return!0};
+cvox.AndroidHost.prototype.activateOrDeactivateChromeVox=function(a){cvox.ChromeVox.tts.stop();cvox.AndroidHost.superClass_.activateOrDeactivateChromeVox.call(this,a);this.onPageLoad()};goog.exportSymbol("cvox.AndroidHost.prototype.activateOrDeactivateChromeVox",cvox.AndroidHost.prototype.activateOrDeactivateChromeVox);cvox.HostFactory.hostConstructor=cvox.AndroidHost;window.cvox||(window.cvox={});cvox.MathJaxExternalUtil=function(){};cvox.MathJaxExternalUtil.mmlAttr=function(){return""};
+cvox.MathJaxExternalUtil.mfenced=function(a){null==a&&(a="");var b=[a+'<mrow mfenced="true"'+this.toMathMLattributes()+">"],c=a+" ";this.data.open&&b.push(this.data.open.toMathML(c));null!=this.data[0]&&b.push(this.data[0].toMathML(c));for(var d=1,e=this.data.length;d<e;d++)this.data[d]&&(this.data["sep"+d]&&b.push(this.data["sep"+d].toMathML(c)),b.push(this.data[d].toMathML(c)));this.data.close&&b.push(this.data.close.toMathML(c));b.push(a+"</mrow>");return b.join("\n")};
+cvox.MathJaxExternalUtil.getMathml=function(a,b){var c=MathJax.ElementJax.mml.mbase.prototype,d=MathJax.ElementJax.mml.mfenced.prototype;this.mmlAttr=c.toMathMLattributes;var e=d.toMathML;try{c.toMathMLattributes=cvox.MathJaxExternalUtil.mbase;d.toMathML=cvox.MathJaxExternalUtil.mfenced;var f=a.root.toMathML("");c.toMathMLattributes=this.mmlAttr;d.toMathML=e;MathJax.Callback(b)(f)}catch(g){c.toMathMLattributes=this.mmlAttr;d.toMathML=e;if(!g.restart)throw g;return MathJax.Callback.After([cvox.MathJaxExternalUtil.getMathml,
+a,b],g.restart)}};cvox.MathJaxExternalUtil.mbase=function(){var a=cvox.MathJaxExternalUtil.mmlAttr.call(this);if(null!=this.spanID)var b=(this.id||"MathJax-Span-"+this.spanID)+MathJax.OutputJax["HTML-CSS"].idPostfix,a=a+(' spanID="'+b+'"');null!=this.texClass&&(a+=' texClass="'+this.texClass+'"');return a};cvox.MathJaxExternalUtil.isActive=function(){return"undefined"!=typeof MathJax&&"undefined"!=typeof MathJax.Hub&&"undefined"!=typeof MathJax.ElementJax&&"undefined"!=typeof MathJax.InputJax};
+cvox.MathJaxExternalUtil.getMathjaxCallback_=function(a,b){cvox.MathJaxExternalUtil.getMathml(b,function(c){b.root.inputID&&a(c,b.root.inputID)})};cvox.MathJaxExternalUtil.registerSignal=function(a,b){MathJax.Hub.Register.MessageHook(b,function(b){b=MathJax.Hub.getJaxFor(b[1]);cvox.MathJaxExternalUtil.getMathjaxCallback_(a,b)})};cvox.MathJaxExternalUtil.getAllJax=function(a){var b=MathJax.Hub.getAllJax();b&&b.forEach(function(b){b.root.spanID&&cvox.MathJaxExternalUtil.getMathjaxCallback_(a,b)})};
+cvox.MathJaxExternalUtil.injectConfigScript=function(){var a=document.createElement("script");a.setAttribute("type","text/x-mathjax-config");a.textContent='MathJax.Hub.Config({\n jax: ["input/AsciiMath", "input/TeX"],\n extensions: ["toMathML.js"],\n skipStartupTypeset: true,\n messageStyle: "none",\n TeX: {extensions: ["AMSmath.js","AMSsymbols.js"]}\n});\nMathJax.Hub.Queue(\n function() {MathJax.Hub.inputJax["math/asciimath"].Process();\n MathJax.Hub.inputJax["math/tex"].Process()}\n);\n//\n// Prevent these from being loaded\n//\nif (!MathJax.Extension.MathMenu) {MathJax.Extension.MathMenu = {}};\nif (!MathJax.Extension.MathZoom) {MathJax.Extension.MathZoom = {}};';
+document.activeElement.appendChild(a)};cvox.MathJaxExternalUtil.injectLoadScript=function(){var a=document.createElement("script");a.setAttribute("type","text/javascript");a.setAttribute("src","http://cdn.mathjax.org/mathjax/latest/MathJax.js");document.activeElement.appendChild(a)};
+cvox.MathJaxExternalUtil.configMediaWiki=function(){mediaWiki&&MathJax.Hub.Register.StartupHook("TeX Jax Ready",function(){var a=MathJax.ElementJax.mml;MathJax.Hub.Insert(MathJax.InputJax.TeX.Definitions,{mathchar0mi:{thetasym:"03B8",koppa:"03DF",stigma:"03DB",varstigma:"03DB",coppa:"03D9",varcoppa:"03D9",sampi:"03E1",C:["0043",{mathvariant:a.VARIANT.DOUBLESTRUCK}],cnums:["0043",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Complex:["0043",{mathvariant:a.VARIANT.DOUBLESTRUCK}],H:["210D",{mathvariant:a.VARIANT.DOUBLESTRUCK}],
+N:["004E",{mathvariant:a.VARIANT.DOUBLESTRUCK}],natnums:["004E",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Q:["0051",{mathvariant:a.VARIANT.DOUBLESTRUCK}],R:["0052",{mathvariant:a.VARIANT.DOUBLESTRUCK}],reals:["0052",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Reals:["0052",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Z:["005A",{mathvariant:a.VARIANT.DOUBLESTRUCK}],sect:"00A7",P:"00B6",AA:["00C5",{mathvariant:a.VARIANT.NORMAL}],alef:["2135",{mathvariant:a.VARIANT.NORMAL}],alefsym:["2135",{mathvariant:a.VARIANT.NORMAL}],
+weierp:["2118",{mathvariant:a.VARIANT.NORMAL}],real:["211C",{mathvariant:a.VARIANT.NORMAL}],part:["2202",{mathvariant:a.VARIANT.NORMAL}],infin:["221E",{mathvariant:a.VARIANT.NORMAL}],empty:["2205",{mathvariant:a.VARIANT.NORMAL}],O:["2205",{mathvariant:a.VARIANT.NORMAL}],ang:["2220",{mathvariant:a.VARIANT.NORMAL}],exist:["2203",{mathvariant:a.VARIANT.NORMAL}],clubs:["2663",{mathvariant:a.VARIANT.NORMAL}],diamonds:["2662",{mathvariant:a.VARIANT.NORMAL}],hearts:["2661",{mathvariant:a.VARIANT.NORMAL}],
+spades:["2660",{mathvariant:a.VARIANT.NORMAL}],textvisiblespace:"2423",geneuro:"20AC",euro:"20AC"},mathchar0mo:{and:"2227",or:"2228",bull:"2219",plusmn:"00B1",sdot:"22C5",Dagger:"2021",sup:"2283",sub:"2282",supe:"2287",sube:"2286",isin:"2208",hAar:"21D4",hArr:"21D4",Harr:"21D4",Lrarr:"21D4",lrArr:"21D4",lArr:"21D0",Larr:"21D0",rArr:"21D2",Rarr:"21D2",harr:"2194",lrarr:"2194",larr:"2190",gets:"2190",rarr:"2192",oiint:["222F",{texClass:a.TEXCLASS.OP}],oiiint:["2230",{texClass:a.TEXCLASS.OP}]},mathchar7:{Alpha:"0391",
+Beta:"0392",Epsilon:"0395",Zeta:"0396",Eta:"0397",Iota:"0399",Kappa:"039A",Mu:"039C",Nu:"039D",Omicron:"039F",Rho:"03A1",Tau:"03A4",Chi:"03A7",Koppa:"03DE",Stigma:"03DA",Digamma:"03DC",Coppa:"03D8",Sampi:"03E0"},delimiter:{"\\uarr":"2191","\\darr":"2193","\\Uarr":"21D1","\\uArr":"21D1","\\Darr":"21D3","\\dArr":"21D3","\\rang":"27E9","\\lang":"27E8"},macros:{sgn:"NamedFn",arccot:"NamedFn",arcsec:"NamedFn",arccsc:"NamedFn",sen:"NamedFn",image:["Macro","\\Im"],bold:["Macro","\\mathbf{#1}",1],pagecolor:["Macro",
+"",1],emph:["Macro","\\textit{#1}",1],textsf:["Macro","\\mathord{\\sf{\\text{#1}}}",1],texttt:["Macro","\\mathord{\\tt{\\text{#1}}}",1],vline:["Macro","\\smash{\\large\\lvert}",0]}})})};
+cvox.MathJaxExternalUtil.convertToMml=function(a,b,c,d,e,f){var g=MathJax.HTML.Element("script",{type:c},[b]),g={math:b,script:g};MathJax.InputJax[d].prefilterHooks.Execute(g);var h;try{h=f(g.math)}catch(k){if(k[e])h=MathJax.ElementJax.mml.merror(k.message.replace(/\n.*/,""));else{if(k.restart)return MathJax.Callback.After([cvox.MathJaxExternalUtil.convertToMml,a,b,c,d,e,f],k.restart);throw k;}}h=h.inferred?MathJax.ElementJax.mml.apply(MathJax.ElementJax,h.data):MathJax.ElementJax.mml(h);h.root.display=
+"block";g.math=h;g.script.MathJax={};MathJax.InputJax[d].postfilterHooks.Execute(g);return cvox.MathJaxExternalUtil.getMathml(g.math,a)};cvox.MathJaxExternalUtil.texToMml=function(a,b){cvox.MathJaxExternalUtil.convertToMml(a,b,"math/tex;mode=display","TeX","texError",function(a){return MathJax.InputJax.TeX.Parse(a).mml()})};cvox.MathJaxExternalUtil.asciiMathToMml=function(a,b){cvox.MathJaxExternalUtil.convertToMml(a,b,"math/asciimath","AsciiMath","asciimathError",MathJax.InputJax.AsciiMath.AM.parseMath)};cvox.AndroidMathJax=function(){this.altMathNodeId_=0};goog.inherits(cvox.AndroidMathJax,cvox.AbstractMathJax);cvox.AndroidMathJax.prototype.getMathmlToDomCallback_=function(a){return goog.bind(function(b,c){return this.convertMarkupToDom(a,b,c)},this)};cvox.AndroidMathJax.prototype.isMathjaxActive=function(a){var b=0,c=function(){b++;cvox.MathJaxExternalUtil.isActive()?a(!0):5>b&&setTimeout(c,1E3)};c()};cvox.AndroidMathJax.prototype.getAllJax=function(a){cvox.MathJaxExternalUtil.getAllJax(this.getMathmlToDomCallback_(a))};
+cvox.AndroidMathJax.prototype.registerSignal=function(a,b){cvox.MathJaxExternalUtil.registerSignal(this.getMathmlToDomCallback_(a),b)};cvox.AndroidMathJax.prototype.injectScripts=function(){cvox.MathJaxExternalUtil.injectConfigScript();cvox.MathJaxExternalUtil.injectLoadScript()};cvox.AndroidMathJax.prototype.configMediaWiki=function(){cvox.MathJaxExternalUtil.configMediaWiki()};
+cvox.AndroidMathJax.prototype.getTex=function(a,b){var c=b.alt||b.title;if(c){var d="cvoxId-"+this.altMathNodeId_++;b.setAttribute("cvoxId",d);cvox.MathJaxExternalUtil.texToMml(goog.bind(function(b){this.convertMarkupToDom(a,b,d)},this),c)}};cvox.AndroidMathJax.prototype.getAsciiMath=function(a,b){var c=b.alt||b.title;if(c){var d="cvoxId-"+this.altMathNodeId_++;b.setAttribute("cvoxId",d);cvox.MathJaxExternalUtil.asciiMathToMml(goog.bind(function(b){this.convertMarkupToDom(a,b,d)},this),c)}};
+cvox.HostFactory.mathJaxConstructor=cvox.AndroidMathJax;cvox.AndroidTts=function(){cvox.AbstractTts.call(this);this.ttsProperties.rate=0.5;this.ttsProperties.pitch=0.5;this.ttsProperties.volume=1};goog.inherits(cvox.AndroidTts,cvox.AbstractTts);cvox.AndroidTts.prototype.speak=function(a,b,c){cvox.AndroidTts.superClass_.speak.call(this,a,b,c);c=this.mergeProperties(c);accessibility.speak(a,b,c);return this};cvox.AndroidTts.prototype.isSpeaking=function(){cvox.AndroidTts.superClass_.isSpeaking.call(this);return accessibility.isSpeaking()};
+cvox.AndroidTts.prototype.stop=function(){cvox.AndroidTts.superClass_.stop.call(this);accessibility.stop()};cvox.HostFactory.ttsConstructor=cvox.AndroidTts;cvox.TestMessages={locale:{message:"en"},chromevox_name:{message:"ChromeVox"},chromevox_description:{message:"ChromeVox - Giving Voice to Chrome"},chromevox_stop_speech_key:{message:"Stop speech"},chromevox_toggle_sticky_mode:{message:"Enable/Disable sticky mode"},chromevox_prefix_key:{message:"Prefix key"},chromevox_handle_tab_next:{message:"Jump to next focusable item"},chromevox_handle_tab_prev:{message:"Jump to previous focusable item"},chromevox_backward:{message:"Navigate backward"},chromevox_forward:{message:"Navigate forward"},
+chromevox_left:{message:"Move left"},chromevox_right:{message:"Move right"},chromevox_skip_backward:{message:"Skip backward during continuous reading"},chromevox_skip_forward:{message:"Skip forward during continuous reading"},chromevox_previous_granularity:{message:"Decrease navigation granularity"},chromevox_next_granularity:{message:"Increase navigation granularity"},chromevox_act_on_current_item:{message:"Take action on current item"},chromevox_force_click_on_current_item:{message:"Click on current item"},
+chromevox_read_link_url:{message:"Announce the URL behind a link"},chromevox_read_current_title:{message:"Announce the title of the current page"},chromevox_read_current_url:{message:"Announce the URL of the current page"},chromevox_read_from_here:{message:"Start reading from current location"},chromevox_show_power_key:{message:"Open ChromeVox keyboard help"},chromevox_hide_power_key:{message:"Hide ChromeVox help"},chromevox_power_key_help:{message:"Press up or down to review commands, press enter to activate"},
+chromevox_help:{message:"Open ChromeVox tutorial"},chromevox_toggle_search_widget:{message:"Toggle search widget"},chromevox_show_options_page:{message:"Open options page"},chromevox_show_kb_explorer_page:{message:"Open keyboard explorer"},chromevox_decrease_tts_rate:{message:"Decrease rate of speech"},chromevox_increase_tts_rate:{message:"Increase rate of speech"},chromevox_decrease_tts_pitch:{message:"Decrease pitch"},chromevox_increase_tts_pitch:{message:"Increase pitch"},chromevox_decrease_tts_volume:{message:"Decrease speech volume"},
+chromevox_increase_tts_volume:{message:"Increase speech volume"},chromevox_show_forms_list:{message:"Show forms list"},chromevox_show_headings_list:{message:"Show headings list"},chromevox_show_links_list:{message:"Show links list"},chromevox_show_tables_list:{message:"Show tables list"},chromevox_show_landmarks_list:{message:"Show landmarks list"},chromevox_previous_row:{message:"Previous table row"},chromevox_next_row:{message:"Next table row"},chromevox_previous_col:{message:"Previous table column"},
+chromevox_next_col:{message:"Next table column"},chromevox_announce_headers:{message:"Announce the headers of the current cell"},chromevox_speak_table_location:{message:"Announce current cell coordinates"},chromevox_guess_row_header:{message:"Make a guess at the row header of the current cell"},chromevox_guess_col_header:{message:"Make a guess at the column header of the current cell"},chromevox_skip_to_beginning:{message:"Go to beginning of table"},chromevox_skip_to_end:{message:"Go to end of table"},
+chromevox_skip_to_row_beginning:{message:"Go to beginning of the current row"},chromevox_skip_to_row_end:{message:"Go to end of the current row"},chromevox_skip_to_col_beginning:{message:"Go to beginning of the current column"},chromevox_skip_to_col_end:{message:"Go to end of the current column"},chromevox_next_heading1:{message:"Next level 1 heading"},chromevox_previous_heading1:{message:"Previous level 1 heading"},chromevox_next_heading2:{message:"Next level 2 heading"},chromevox_previous_heading2:{message:"Previous level 2 heading"},
+chromevox_next_heading3:{message:"Next level 3 heading"},chromevox_previous_heading3:{message:"Previous level 3 heading"},chromevox_next_heading4:{message:"Next level 4 heading"},chromevox_previous_heading4:{message:"Previous level 4 heading"},chromevox_next_heading5:{message:"Next level 5 heading"},chromevox_previous_heading5:{message:"Previous level 5 heading"},chromevox_next_heading6:{message:"Next level 6 heading"},chromevox_previous_heading6:{message:"Previous level 6 heading"},chromevox_next_combo_box:{message:"Next combo box"},
+chromevox_previous_combo_box:{message:"Previous combo box"},chromevox_next_edit_text:{message:"Next editable text area"},chromevox_previous_edit_text:{message:"Previous editable text area"},chromevox_next_form_field:{message:"Next form field"},chromevox_previous_form_field:{message:"Previous form field"},chromevox_next_graphic:{message:"Next graphic"},chromevox_previous_graphic:{message:"Previous graphic"},chromevox_next_heading:{message:"Next heading"},chromevox_previous_heading:{message:"Previous heading"},
+chromevox_next_list_item:{message:"Next list item"},chromevox_previous_list_item:{message:"Previous list item"},chromevox_next_jump:{message:"Next jump"},chromevox_previous_jump:{message:"Previous jump"},chromevox_next_link:{message:"Next link"},chromevox_previous_link:{message:"Previous link"},chromevox_next_list:{message:"Next list"},chromevox_previous_list:{message:"Previous list"},chromevox_next_math:{message:"Next math"},chromevox_previous_math:{message:"Previous math"},chromevox_next_media:{message:"Next media"},
+chromevox_previous_media:{message:"Previous media"},chromevox_next_blockquote:{message:"Next block quote"},chromevox_previous_blockquote:{message:"Previous block quote"},chromevox_next_radio:{message:"Next radio button"},chromevox_previous_radio:{message:"Previous radio button"},chromevox_next_slider:{message:"Next slider"},chromevox_previous_slider:{message:"Previous slider"},chromevox_next_table:{message:"Next table"},chromevox_next_visited_link:{message:"Next visited link"},chromevox_previous_table:{message:"Previous table"},
+chromevox_previous_visited_link:{message:"Previous visited link"},chromevox_next_button:{message:"Next button"},chromevox_previous_button:{message:"Previous button"},chromevox_next_checkbox:{message:"Next checkbox"},chromevox_previous_checkbox:{message:"Previous checkbox"},chromevox_next_landmark:{message:"Next landmark"},chromevox_previous_landmark:{message:"Previous landmark"},chromevox_benchmark:{message:"Debug benchmark"},chromevox_announce_position:{message:"Announces a brief description of the current position"},
+chromevox_fully_describe:{message:"Announces a complete description of the current position"},chromevox_options_page_title:{message:"ChromeVox Options"},chromevox_options_page_summary:{message:"Use the options below to customize ChromeVox. Changes take effect immediately."},chromevox_options_mouse_focus_follows:{message:"Use the mouse to change focus."},chromevox_options_site_specific_enhancements:{message:"Enhance specific sites (like Google Search)."},chromevox_options_verbosity_verbose:{message:"Enable verbose descriptions."},
+chromevox_options_cursor_between_characters:{message:"Place cursor between characters when editing text (like Mac OS X)."},chromevox_options_magnifier_show_checkbox:{message:"Show a magnified view of the page content."},chromevox_options_voices:{message:"Voices"},chromevox_options_voices_description:{message:"Change the current voice by selecting an option from the list below."},chromevox_options_braille:{message:"Braille"},chromevox_options_braille_table_type_6:{message:"Switch to 8 dot braille"},
+chromevox_options_braille_table_type_8:{message:"Switch to 6 dot braille"},chromevox_options_braille_description_6:{message:"Change the current 6 dot braille table by selecting an option from the list below."},chromevox_options_braille_locale_grade:{message:"$1, Grade $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_options_braille_description_8:{message:"Change the current 8 dot braille table by selecting an option from the list below."},chromevox_options_keyboard_shortcuts:{message:"Keyboard shortcuts"},
+chromevox_options_keymap_description:{message:"Change the current keymap by selecting an option from the list below."},chromevox_options_select_keys:{message:"Reset current keymap"},chromevox_options_shortcuts_description:{message:"Customize keyboard shortcuts for frequently used commands by typing them into the corresponding fields below."},chromevox_options_modifier_keys:{message:"Modifier keys"},chromevox_options_cvox_modifier_key:{message:"ChromeVox modifier key"},chromevox_kbexplorer_title:{message:"ChromeOS Keyboard Explorer"},
+chromevox_kbexplorer_instructions:{message:"Press any key to learn its name. Ctrl+W will close the keyboard explorer."},chromevox_chrome_system_need_restart:{message:"System was updated. Restart is recommended."},chromevox_chrome_brightness_changed:{message:"Brightness $1 percent",placeholders:{1:{content:"$1"}}},chromevox_chrome_tab_created:{message:"tab created"},chromevox_chrome_tab_selected:{message:"$1, tab",placeholders:{1:{content:"$1"}}},chromevox_chrome_normal_window_selected:{message:"window $1 tab",
+placeholders:{1:{content:"$1"}}},chromevox_chrome_incognito_window_selected:{message:"incognito window $1 tab",placeholders:{1:{content:"$1"}}},chromevox_chrome_menu_opened:{message:"$1 menu opened",placeholders:{1:{content:"$1"}}},chromevox_describe_checkbox_checked:{message:"$1 checkbox checked",placeholders:{1:{content:"$1"}}},chromevox_checkbox_checked_state:{message:"checked"},chromevox_checkbox_checked_state_brl:{message:"x"},chromevox_describe_checkbox_unchecked:{message:"$1, checkbox not checked",
+placeholders:{1:{content:"$1"}}},chromevox_checkbox_unchecked_state:{message:"not checked"},chromevox_checkbox_unchecked_state_brl:{message:" "},chromevox_describe_radio_selected:{message:"$1, radio button selected",placeholders:{1:{content:"$1"}}},chromevox_radio_selected_state:{message:"selected"},chromevox_radio_selected_state_brl:{message:"x"},chromevox_describe_radio_unselected:{message:"$1, radio button unselected",placeholders:{1:{content:"$1"}}},chromevox_radio_unselected_state:{message:"unselected"},
+chromevox_radio_unselected_state_brl:{message:" "},chromevox_describe_menu:{message:"$1, menu",placeholders:{1:{content:"$1"}}},chromevox_describe_menu_item:{message:"$1, menu item",placeholders:{1:{content:"$1"}}},chromevox_describe_menu_item_with_submenu:{message:"$1, menu item, with submenu",placeholders:{1:{content:"$1"}}},chromevox_describe_window:{message:"$1, window",placeholders:{1:{content:"$1"}}},chromevox_describe_textbox:{message:"$1, $2, text box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},
+chromevox_describe_unnamed_textbox:{message:"$1, text box",placeholders:{1:{content:"$1"}}},chromevox_describe_password:{message:"$1, $2, password text box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_unnamed_password:{message:"$1, password text box",placeholders:{1:{content:"$1"}}},chromevox_describe_button:{message:"$1, button",placeholders:{1:{content:"$1"}}},chromevox_describe_combobox:{message:"$1, $2, combo box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_unnamed_combobox:{message:"$1, combo box",
+placeholders:{1:{content:"$1"}}},chromevox_describe_listbox:{message:"$1, $2, list box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_unnamed_listbox:{message:"$1, list box",placeholders:{1:{content:"$1"}}},chromevox_describe_link:{message:"$1, link",placeholders:{1:{content:"$1"}}},chromevox_describe_tab:{message:"$1, tab",placeholders:{1:{content:"$1"}}},chromevox_describe_slider:{message:"$1, $2, slider",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_selected:{message:", selected"},
+chromevox_describe_unselected:{message:", unselected"},chromevox_describe_index:{message:" $1 of $2 ",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_announce_rate:{message:"Rate $1 percent",placeholders:{1:{content:"$1"}}},chromevox_announce_pitch:{message:"Pitch $1 percent",placeholders:{1:{content:"$1"}}},chromevox_announce_volume:{message:"Volume $1 percent",placeholders:{1:{content:"$1"}}},chromevox_exiting_dialog:{message:"Exited dialog."},chromevox_exited_container:{message:"Exited $1.",
+placeholders:{1:{content:"$1"}}},chromevox_entering_dialog:{message:"Entered dialog"},chromevox_live_regions_removed:{message:"removed:"},chromevox_sticky_mode_enabled:{message:"Sticky mode enabled"},chromevox_sticky_mode_disabled:{message:"Sticky mode disabled"},chromevox_keyboard_help_intro:{message:"Keyboard Help"},chromevox_context_menu_intro:{message:"Context Menu"},chromevox_choice_widget_name:{message:"$1 list.",placeholders:{1:{content:"$1"}}},chromevox_choice_widget_help:{message:"Use up and down arrow keys to browse, or type to search."},
+chromevox_choice_widget_exited:{message:"Exited"},chromevox_choice_widget_type_generic:{message:" "},chromevox_end_of_cell:{message:"End of cell."},chromevox_no_url_found:{message:"No URL found"},chromevox_leaving_table:{message:"Leaving table."},chromevox_leaving_grid:{message:"Leaving grid."},chromevox_inside_table:{message:"Inside table"},chromevox_no_tables:{message:"No table found."},chromevox_not_inside_table:{message:"Not inside table."},chromevox_no_cell_below:{message:"No cell below."},chromevox_no_cell_above:{message:"No cell above."},
+chromevox_no_cell_right:{message:"No cell right."},chromevox_no_cell_left:{message:"No cell left."},chromevox_empty_cell:{message:"Empty cell."},chromevox_spanned:{message:"Spanned."},chromevox_row_header:{message:"Row header:"},chromevox_empty_row_header:{message:"Empty row header"},chromevox_column_header:{message:"Column header:"},chromevox_empty_column_header:{message:"Empty column header"},chromevox_no_headers:{message:"No headers"},chromevox_empty_headers:{message:"Empty headers"},chromevox_table_location:{message:"Row $1 of $2, Column $3 of $4",
+placeholders:{1:{content:"$1"},2:{content:"$2"},3:{content:"$3"},4:{content:"$4"}}},chromevox_no_next_checkbox:{message:"No next checkbox."},chromevox_no_previous_checkbox:{message:"No previous checkbox."},chromevox_no_next_edit_text:{message:"No next editable text field."},chromevox_no_previous_edit_text:{message:"No previous editable text field."},chromevox_no_next_heading:{message:"No next heading."},chromevox_no_previous_heading:{message:"No previous heading."},chromevox_no_next_heading_1:{message:"No next level 1 heading."},
+chromevox_no_previous_heading_1:{message:"No previous level 1 heading."},chromevox_no_next_heading_2:{message:"No next level 2 heading."},chromevox_no_previous_heading_2:{message:"No previous level 2 heading."},chromevox_no_next_heading_3:{message:"No next level 3 heading."},chromevox_no_previous_heading_3:{message:"No previous level 3 heading."},chromevox_no_next_heading_4:{message:"No next level 4 heading."},chromevox_no_previous_heading_4:{message:"No previous level 4 heading."},chromevox_no_next_heading_5:{message:"No next level 5 heading."},
+chromevox_no_previous_heading_5:{message:"No previous level 5 heading."},chromevox_no_next_heading_6:{message:"No next level 6 heading."},chromevox_no_previous_heading_6:{message:"No previous level 6 heading."},chromevox_no_next_not_link:{message:"No next item that isn't a link."},chromevox_no_previous_not_link:{message:"No previous item that isn't a link."},chromevox_no_next_anchor:{message:"No next anchor."},chromevox_no_previous_anchor:{message:"No previous anchor."},chromevox_no_next_link:{message:"No next link."},
+chromevox_no_previous_link:{message:"No previous link."},chromevox_no_next_table:{message:"No next table."},chromevox_no_previous_table:{message:"No previous table."},chromevox_no_next_visited_link:{message:"No next visited link."},chromevox_no_previous_visited_link:{message:"No previous visited link."},chromevox_no_next_math:{message:"No next math expression."},chromevox_no_previous_math:{message:"No previous math expression."},chromevox_no_next_media_widget:{message:"No next media widget."},chromevox_no_previous_media_widget:{message:"No previous media widget."},
+chromevox_no_next_list:{message:"No next list."},chromevox_no_previous_list:{message:"No previous list."},chromevox_no_next_list_item:{message:"No next list item."},chromevox_no_previous_list_item:{message:"No previous list item."},chromevox_no_next_blockquote:{message:"No next blockquote."},chromevox_no_previous_blockquote:{message:"No previous blockquote."},chromevox_no_next_form_field:{message:"No next form field."},chromevox_no_previous_form_field:{message:"No previous form field."},chromevox_no_next_jump:{message:"No next jump point."},
+chromevox_no_previous_jump:{message:"No previous jump point."},chromevox_no_next_landmark:{message:"No next ARIA landmark."},chromevox_no_previous_landmark:{message:"No previous ARIA landmark."},chromevox_no_next_combo_box:{message:"No next combo box."},chromevox_no_previous_combo_box:{message:"No previous combo box."},chromevox_no_next_button:{message:"No next button."},chromevox_no_previous_button:{message:"No previous button."},chromevox_no_next_graphic:{message:"No next graphic."},chromevox_no_previous_graphic:{message:"No previous graphic."},
+chromevox_no_next_slider:{message:"No next slider."},chromevox_no_previous_slider:{message:"No previous slider."},chromevox_no_next_radio_button:{message:"No next radio button."},chromevox_no_previous_radio_button:{message:"No previous radio button."},chromevox_no_next_section:{message:"No next section."},chromevox_no_previous_section:{message:"No previous section."},chromevox_no_next_control:{message:"No next control."},chromevox_no_previous_control:{message:"No previous control."},chromevox_element_clicked:{message:"Clicked"},
+chromevox_element_double_clicked:{message:"double clicked"},chromevox_powerkey_no_headings:{message:"No headings."},chromevox_powerkey_no_links:{message:"No links."},chromevox_powerkey_no_forms:{message:"No forms."},chromevox_powerkey_no_tables:{message:"No tables."},chromevox_powerkey_no_landmarks:{message:"No ARIA landmarks."},chromevox_powerkey_no_jumps:{message:"No jumps."},chromevox_list_position:{message:"$1 of $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_list_position_brl:{message:"$1/$2",
+placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_aria_has_submenu:{message:"has submenu"},chromevox_aria_has_submenu_brl:{message:"+submnu"},chromevox_aria_has_popup:{message:"has pop up"},chromevox_aria_has_popup_brl:{message:"+popup"},chromevox_aria_value_min:{message:"Min $1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_min_brl:{message:"min:$1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_max:{message:"Max $1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_max_brl:{message:"max:$1",
+placeholders:{1:{content:"$1"}}},chromevox_aria_value_now:{message:"$1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_now_brl:{message:"$1",placeholders:{1:{content:"$1"}}},chromevox_aria_role_alert:{message:"Alert"},chromevox_aria_role_alert_brl:{message:"alrt"},chromevox_aria_role_alertdialog:{message:"Alert dialog"},chromevox_aria_role_alertdialog_brl:{message:"alrt dlg"},chromevox_aria_role_button:{message:"Button"},chromevox_aria_role_button_brl:{message:"btn"},chromevox_aria_role_checkbox:{message:"Check box"},
+chromevox_aria_role_checkbox_brl:{message:"chx"},chromevox_aria_role_combobox:{message:"Combo box"},chromevox_aria_role_combobox_brl:{message:"cbx"},chromevox_aria_role_dialog:{message:"Dialog"},chromevox_aria_role_dialog_brl:{message:"dlg"},chromevox_aria_role_grid:{message:"Grid"},chromevox_aria_role_grid_brl:{message:"grd"},chromevox_aria_role_gridcell:{message:"Cell"},chromevox_aria_role_gridcell_brl:{message:"cl"},chromevox_aria_role_gridcell_pos:{message:"row $1 column $2",placeholders:{1:{content:"$1"},
+2:{content:"$2"}}},chromevox_aria_role_link:{message:"Link"},chromevox_aria_role_link_brl:{message:"lnk"},chromevox_aria_role_link_singular:{message:"1 link"},chromevox_aria_role_link_plural:{message:"$1 links",placeholders:{1:{content:"$1"}}},chromevox_aria_role_listbox:{message:"List box"},chromevox_aria_role_listbox_brl:{message:"lstbx"},chromevox_aria_role_log:{message:"Log"},chromevox_aria_role_log_brl:{message:"log"},chromevox_aria_role_marquee:{message:"Marquee"},chromevox_aria_role_marquee_brl:{message:"maqe"},
+chromevox_aria_role_menu:{message:"Menu"},chromevox_aria_role_menu_brl:{message:"mnu"},chromevox_aria_role_menubar:{message:"Menu bar"},chromevox_aria_role_menubar_brl:{message:"mnu br"},chromevox_aria_role_menuitem:{message:"Menu item"},chromevox_aria_role_menuitem_brl:{message:"mnu itm"},chromevox_aria_role_menuitemcheckbox:{message:"Menu item check box"},chromevox_aria_role_menuitemcheckbox_brl:{message:"mnu itm chx"},chromevox_aria_role_menuitemradio:{message:"Menu item radio button"},chromevox_aria_role_menuitemradio_brl:{message:"mnu itm rd"},
+chromevox_aria_role_option:{message:" "},chromevox_aria_role_option_brl:{message:" "},chromevox_aria_role_popup_button:{message:"Pop-up button"},chromevox_aria_role_popup_button_brl:{message:"pup btn"},chromevox_aria_role_progressbar:{message:"Progress bar"},chromevox_aria_role_progressbar_brl:{message:"prog br"},chromevox_aria_role_radio:{message:"Radio button"},chromevox_aria_role_radio_brl:{message:"rd"},chromevox_aria_role_radiogroup:{message:"Radio button group"},chromevox_aria_role_radiogroup_brl:{message:"rd grp"},
+chromevox_aria_role_scrollbar:{message:"Scroll bar"},chromevox_aria_role_scrollbar_brl:{message:"scr br"},chromevox_aria_role_slider:{message:"Slider"},chromevox_aria_role_slider_brl:{message:"slr"},chromevox_aria_role_spinbutton:{message:"Spin button"},chromevox_aria_role_spinbutton_brl:{message:"spn btn"},chromevox_aria_role_status:{message:"Status"},chromevox_aria_role_status_brl:{message:"sts"},chromevox_aria_role_tab:{message:"Tab"},chromevox_aria_role_tab_brl:{message:"tab"},chromevox_aria_role_tabpanel:{message:"Tab panel"},
+chromevox_aria_role_tabpanel_brl:{message:"tab pnl"},chromevox_aria_role_textbox:{message:"Text box"},chromevox_aria_role_textbox_brl:{message:"txtbx"},chromevox_aria_role_timer:{message:"Timer"},chromevox_aria_role_timer_brl:{message:"tmr"},chromevox_aria_role_toolbar:{message:"Tool bar"},chromevox_aria_role_toolbar_brl:{message:"tl br"},chromevox_aria_role_tooltip:{message:"Tool tip"},chromevox_aria_role_tooltip_brl:{message:"tl tp"},chromevox_aria_role_treeitem:{message:"Tree item"},chromevox_aria_role_treeitem_brl:{message:"tr itm"},
+chromevox_aria_role_article:{message:"Article"},chromevox_aria_role_article_brl:{message:"acl"},chromevox_aria_role_application:{message:"Application"},chromevox_aria_role_application_brl:{message:"app"},chromevox_aria_role_banner:{message:"Banner"},chromevox_aria_role_banner_brl:{message:"bnr"},chromevox_aria_role_columnheader:{message:"Column header"},chromevox_aria_role_columnheader_brl:{message:"clm hd"},chromevox_aria_role_complementary:{message:"Complementary"},chromevox_aria_role_complementary_brl:{message:"cmpy"},
+chromevox_aria_role_contentinfo:{message:"Content info"},chromevox_aria_role_contentinfo_brl:{message:"cnt in"},chromevox_aria_role_definition:{message:"Definition"},chromevox_aria_role_definition_brl:{message:"def"},chromevox_aria_role_directory:{message:"Directory"},chromevox_aria_role_directory_brl:{message:"dir"},chromevox_aria_role_document:{message:"Document"},chromevox_aria_role_document_brl:{message:"doc"},chromevox_aria_role_form:{message:"Form"},chromevox_aria_role_form_brl:{message:"frm"},
+chromevox_aria_role_form_singular:{message:"1 form"},chromevox_aria_role_form_plural:{message:"$1 forms",placeholders:{1:{content:"$1"}}},chromevox_aria_role_group:{message:"Group"},chromevox_aria_role_group_brl:{message:"grp"},chromevox_aria_role_heading:{message:"Heading"},chromevox_aria_role_heading_brl:{message:"hd"},chromevox_aria_role_img:{message:"Image"},chromevox_aria_role_img_brl:{message:"img"},chromevox_aria_role_list:{message:"List"},chromevox_aria_role_list_brl:{message:"lst"},chromevox_aria_role_listitem:{message:"List item"},
+chromevox_aria_role_listitem_brl:{message:"lstitm"},chromevox_aria_role_main:{message:"Main"},chromevox_aria_role_main_brl:{message:"main"},chromevox_aria_role_math:{message:"Math"},chromevox_aria_role_math_brl:{message:"math"},chromevox_aria_role_navigation:{message:"Navigation"},chromevox_aria_role_navigation_brl:{message:"nav"},chromevox_aria_role_note:{message:"Note"},chromevox_aria_role_note_brl:{message:"note"},chromevox_aria_role_region:{message:"Region"},chromevox_aria_role_region_brl:{message:"rgn"},
+chromevox_aria_role_rowheader:{message:"Row header"},chromevox_aria_role_rowheader_brl:{message:"rw hd"},chromevox_aria_role_search:{message:"Search"},chromevox_aria_role_search_brl:{message:"srch"},chromevox_aria_role_separator:{message:"Separator"},chromevox_aria_role_separator_brl:{message:"sprtr"},chromevox_aria_autocomplete_inline:{message:"Autocompletion inline"},chromevox_aria_autocomplete_inline_brl:{message:"autocomplete"},chromevox_aria_autocomplete_list:{message:"Autocompletion list"},
+chromevox_aria_autocomplete_list_brl:{message:"autocomplete lst"},chromevox_aria_autocomplete_both:{message:"Autocompletion inline and list"},chromevox_aria_autocomplete_both_brl:{message:"autocomplete lst"},chromevox_aria_checked_true:{message:"Checked"},chromevox_aria_checked_true_brl:{message:"x"},chromevox_aria_checked_false:{message:"Not checked"},chromevox_aria_checked_false_brl:{message:" "},chromevox_aria_checked_mixed:{message:"Partially checked"},chromevox_aria_checked_mixed_brl:{message:"/x"},
+chromevox_aria_disabled_true:{message:"Disabled"},chromevox_aria_disabled_true_brl:{message:"="},chromevox_aria_expanded_true:{message:"Expanded"},chromevox_aria_expanded_true_brl:{message:">"},chromevox_aria_expanded_false:{message:"Collapsed"},chromevox_aria_expanded_false_brl:{message:"<"},chromevox_aria_invalid_true:{message:"Invalid input"},chromevox_aria_invalid_true_brl:{message:"!"},chromevox_aria_invalid_grammar:{message:"Grammatical mistake detected"},chromevox_aria_invalid_grammar_brl:{message:"Grammatical mistake detected"},
+chromevox_aria_invalid_spelling:{message:"Spelling mistake detected"},chromevox_aria_invalid_spelling_brl:{message:"misspelled"},chromevox_aria_multiline_true:{message:"Multi line"},chromevox_aria_multiline_true_brl:{message:"mult ln"},chromevox_aria_multiselectable_true:{message:"Multi select"},chromevox_aria_multiselectable_true_brl:{message:"mult sel"},chromevox_aria_pressed_true:{message:"Pressed"},chromevox_aria_pressed_true_brl:{message:"x"},chromevox_aria_pressed_false:{message:"Not pressed"},
+chromevox_aria_pressed_false_brl:{message:" "},chromevox_aria_pressed_mixed:{message:"Partially pressed"},chromevox_aria_pressed_mixed_brl:{message:"/x"},chromevox_aria_readonly_true:{message:"Read only"},chromevox_aria_readonly_true_brl:{message:"rdonly"},chromevox_aria_required_true:{message:"Required"},chromevox_aria_required_true_brl:{message:"req"},chromevox_aria_selected_true:{message:"Selected"},chromevox_aria_selected_true_brl:{message:"x"},chromevox_aria_selected_false:{message:"Not selected"},
+chromevox_aria_selected_false_brl:{message:" "},chromevox_tag_link:{message:"Link"},chromevox_tag_link_brl:{message:"lnk"},chromevox_tag_button:{message:"Button"},chromevox_tag_button_brl:{message:"btn"},chromevox_tag_h1:{message:"Heading 1"},chromevox_tag_h1_brl:{message:"h1"},chromevox_tag_h2:{message:"Heading 2"},chromevox_tag_h2_brl:{message:"h2"},chromevox_tag_h3:{message:"Heading 3"},chromevox_tag_h3_brl:{message:"h3"},chromevox_tag_h4:{message:"Heading 4"},chromevox_tag_h4_brl:{message:"h4"},
+chromevox_tag_h5:{message:"Heading 5"},chromevox_tag_h5_brl:{message:"h5"},chromevox_tag_h6:{message:"Heading 6"},chromevox_tag_h6_brl:{message:"h6"},chromevox_tag_li:{message:"List item"},chromevox_tag_li_brl:{message:"lstitm"},chromevox_tag_ol:{message:"Ordered List"},chromevox_tag_ol_brl:{message:"lst"},chromevox_tag_select:{message:"Combo box"},chromevox_tag_select_brl:{message:"cbx"},chromevox_tag_textarea:{message:"Text area"},chromevox_tag_textarea_brl:{message:"txta"},chromevox_tag_table:{message:"table"},
+chromevox_tag_table_brl:{message:"tbl"},chromevox_tag_ul:{message:"List"},chromevox_tag_ul_brl:{message:"lst"},chromevox_tag_section:{message:"Section"},chromevox_tag_section_brl:{message:"stn"},chromevox_tag_nav:{message:"Navigation"},chromevox_tag_nav_brl:{message:"nav"},chromevox_tag_article:{message:"Article"},chromevox_tag_article_brl:{message:"article"},chromevox_tag_aside:{message:"Aside"},chromevox_tag_aside_brl:{message:"aside"},chromevox_tag_hgroup:{message:"Heading group"},chromevox_tag_hgroup_brl:{message:"hgrp"},
+chromevox_tag_header:{message:"Header"},chromevox_tag_header_brl:{message:"hdr"},chromevox_tag_footer:{message:"Footer"},chromevox_tag_footer_brl:{message:"ftr"},chromevox_tag_time:{message:"Time"},chromevox_tag_time_brl:{message:" "},chromevox_tag_mark:{message:"Mark"},chromevox_tag_mark_brl:{message:"mark"},chromevox_tag_video:{message:"Video"},chromevox_tag_video_brl:{message:"video"},chromevox_tag_audio:{message:"Audio"},chromevox_tag_audio_brl:{message:"audio"},chromevox_input_type_button:{message:"Button"},
+chromevox_input_type_button_brl:{message:"btn"},chromevox_input_type_checkbox:{message:"Check box"},chromevox_input_type_checkbox_brl:{message:"chx"},chromevox_input_type_color:{message:"Color picker"},chromevox_input_type_color_brl:{message:"color picker"},chromevox_input_type_datetime:{message:"Date time control"},chromevox_input_type_datetime_brl:{message:"date time"},chromevox_input_type_datetime_local:{message:"Date time control"},chromevox_input_type_datetime_local_brl:{message:"date time"},
+chromevox_input_type_date:{message:"Date control"},chromevox_input_type_date_brl:{message:"date"},chromevox_input_type_email:{message:"Edit text, email entry"},chromevox_input_type_email_brl:{message:"edtxt email"},chromevox_input_type_file:{message:"File selection"},chromevox_input_type_file_brl:{message:"file"},chromevox_input_type_image:{message:"Button"},chromevox_input_type_image_brl:{message:"btn"},chromevox_input_type_month:{message:"Month control"},chromevox_input_type_month_brl:{message:"month"},
+chromevox_input_type_number:{message:"Edit text numeric only"},chromevox_input_type_number_brl:{message:"edtxt#"},chromevox_input_type_password:{message:"Password edit text"},chromevox_input_type_password_brl:{message:"pwd edtxt"},chromevox_input_type_radio:{message:"Radio button"},chromevox_input_type_radio_brl:{message:"rd btn"},chromevox_input_type_range:{message:"Slider"},chromevox_input_type_range_brl:{message:"slr"},chromevox_input_type_reset:{message:"Reset"},chromevox_input_type_reset_brl:{message:"reset"},
+chromevox_input_type_search:{message:"Edit text, search entry"},chromevox_input_type_search_brl:{message:"search edtxt"},chromevox_input_type_submit:{message:"Button"},chromevox_input_type_submit_brl:{message:"btn"},chromevox_input_type_tel:{message:"Edit text, number entry"},chromevox_input_type_tel_brl:{message:"tele# edtxt"},chromevox_input_type_text:{message:"Edit text"},chromevox_input_type_text_brl:{message:"edtxt"},chromevox_input_type_url:{message:"Edit text, URL entry"},chromevox_input_type_url_brl:{message:"url edtxt"},
+chromevox_input_type_week:{message:"Week of the year control"},chromevox_input_type_week_brl:{message:"week"},chromevox_internal_link:{message:"Internal link"},chromevox_internal_link_brl:{message:"int lnk"},chromevox_text_box_blank:{message:"Blank"},chromevox_list_with_items:{message:"with $1 items",placeholders:{1:{content:"$1"}}},chromevox_list_with_items_brl:{message:"+$1",placeholders:{1:{content:"$1"}}},chromevox_state_percent:{message:"$1%",placeholders:{1:{content:"$1"}}},chromevox_state_percent_brl:{message:"$1%",
+placeholders:{1:{content:"$1"}}},chromevox_has_submenu:{message:"with submenu"},chromevox_has_submenu_brl:{message:"+submnu"},chromevox_has_popup:{message:"has popup"},chromevox_has_popup_brl:{message:"has popup"},chromevox_collection:{message:"$1 collection with $2 items",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_enter_key:{message:"Enter"},chromevox_space_key:{message:"Space"},chromevox_backspace_key:{message:"Backspace"},chromevox_tab_key:{message:"Tab"},chromevox_left_key:{message:"Left"},
+chromevox_up_key:{message:"Up"},chromevox_right_key:{message:"Right"},chromevox_down_key:{message:"Down"},chromevox_unknown_link:{message:"Unknown link"},chromevox_toggle_chromevox_active:{message:"Toggle ChromeVox active or inactive."},chromevox_chromevox_inactive:{message:"ChromeVox is now inactive."},chromevox_pause:{message:", "},chromevox_end:{message:". "},chromevox_previous_different_element:{message:"Previous different element."},chromevox_next_different_element:{message:"Next different element."},
+chromevox_previous_similar_element:{message:"Previous similar element."},chromevox_next_similar_element:{message:"Next similar element."},chromevox_no_more_similar_elements:{message:"No more similar elements."},chromevox_no_more_different_elements:{message:"No more different elements."},chromevox_index_total:{message:"$1 of $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_enter_css_space:{message:"Enter group exploration"},chromevox_enter_group_exploration:{message:"Exploring groups"},
+chromevox_pdf_header:{message:'This page contains the text automatically extracted from the PDF file <b>$1</b>. <a href="$2">Click here for the original.</a>',placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_object_strategy:{message:"Object"},chromevox_group_strategy:{message:"Group"},chromevox_table_strategy:{message:"Table"},chromevox_row_granularity:{message:"Row"},chromevox_column_granularity:{message:"Column"},chromevox_mathml_tree_granularity:{message:"Math ML Tree"},chromevox_mathml_layout_granularity:{message:"Math ML Layout"},
+chromevox_mathml_token_granularity:{message:"Math ML Token"},chromevox_mathml_leaf_granularity:{message:"Math ML Leaf"},chromevox_visual_strategy:{message:"Visual"},chromevox_custom_strategy:{message:"Custom"},chromevox_line_granularity:{message:"Line"},chromevox_sentence_granularity:{message:"Sentence"},chromevox_word_granularity:{message:"Word"},chromevox_character_granularity:{message:"Character"},chromevox_search_widget_intro:{message:"Find in page."},chromevox_search_widget_intro_help:{message:"Enter a search query."},
+chromevox_search_widget_outro:{message:"Exited find in page."},chromevox_search_widget_no_results:{message:"No more results."},chromevox_modifier_keys:{message:"Modifier Keys"},chromevox_navigation:{message:"ChromeVox Navigation"},chromevox_information:{message:"Information"},chromevox_help_commands:{message:"Help Commands"},chromevox_controlling_speech:{message:"Controlling Speech"},chromevox_overview:{message:"Overview"},chromevox_tables:{message:"Tables"},chromevox_jump_commands:{message:"Jump Commands"},
+chromevox_braille:{message:"Braille"},chromevox_developer:{message:"Developer"},chromevox_keymap_classic:{message:"Classic keymap"},chromevox_keymap_flat:{message:"Flat keymap"},chromevox_keymap_experimental:{message:"Experimental keymap"},chromevox_enable_tts_log:{message:"Enable TTS logging"},chromevox_begin_selection:{message:"Start selection"},chromevox_end_selection:{message:"End selection"},chromevox_selection_is:{message:"Selection is "},chromevox_toggle_selection:{message:"Start or end selection."},
+chromevox_copy:{message:"copy."},chromevox_cut:{message:"cut."},chromevox_paste:{message:"paste."},chromevox_selected:{message:"selected"},chromevox_unselected:{message:"unselected"},chromevox_added_to_selection:{message:"added to selection"},chromevox_removed_from_selection:{message:"removed from selection"},chromevox_then:{message:"then"},chromevox_followed_by:{message:"followed by"},chromevox_modifier_key:{message:"ChromeVox modifier"},chromevox_key_conflict:{message:"$1 is already assigned to a command.",
+placeholders:{1:{content:"$1"}}},chromevox_math_expr:{message:"Math"},chromevox_math_expr_brl:{message:"Math"},chromevox_not_inside_math:{message:"Not inside math"},chromevox_timewidget_ampm:{message:"AM PM"},chromevox_timewidget_hours:{message:"hours"},chromevox_timewidget_minutes:{message:"minutes"},chromevox_timewidget_seconds:{message:"seconds"},chromevox_timewidget_milliseconds:{message:"milliseconds"},chromevox_timewidget_am:{message:"AM"},chromevox_timewidget_pm:{message:"PM"},chromevox_datewidget_week:{message:"week"},
+chromevox_datewidget_january:{message:"January"},chromevox_datewidget_february:{message:"February"},chromevox_datewidget_march:{message:"March"},chromevox_datewidget_april:{message:"April"},chromevox_datewidget_may:{message:"May"},chromevox_datewidget_june:{message:"June"},chromevox_datewidget_july:{message:"July"},chromevox_datewidget_august:{message:"August"},chromevox_datewidget_september:{message:"September"},chromevox_datewidget_october:{message:"October"},chromevox_datewidget_november:{message:"November"},
+chromevox_datewidget_december:{message:"December"},chromevox_no_punctuation:{message:"No punctuation"},chromevox_some_punctuation:{message:"Some punctuation"},chromevox_all_punctuation:{message:"All punctuation"},chromevox_search_help_item:{message:"Press enter to accept or escape to cancel, down for next and up for previous."},chromevox_clickable:{message:"clickable"},chromevox_clickable_brl:{message:"clickable"},chromevox_previous_character:{message:"Previous Character"},chromevox_next_character:{message:"Next Character"},
+chromevox_previous_word:{message:"Previous Word"},chromevox_next_word:{message:"Next Word"},chromevox_previous_sentence:{message:"Previous Sentence"},chromevox_next_sentence:{message:"Next Sentence"},chromevox_previous_line:{message:"Previous Line"},chromevox_next_line:{message:"Next Line"},chromevox_previous_object:{message:"Previous Object"},chromevox_next_object:{message:"Next Object"},chromevox_previous_group:{message:"Previous Group"},chromevox_next_group:{message:"Next Group"},chromevox_role_landmark:{message:"Landmark"},
+chromevox_modifier_entry_error:{message:"No modifier pressed; please press and hold one or more modifiers; lift your fingers once done and you will hear the keys set. Tab to exit."},chromevox_modifier_entry_set:{message:"$1 is now the new ChromeVox modifier.",placeholders:{1:{content:"$1"}}},chromevox_keymap_reset:{message:"$1 has been reset.",placeholders:{1:{content:"$1"}}},chromevox_keymap_switch:{message:"Switched to $1.",placeholders:{1:{content:"$1"}}},chromevox_jump_to_top:{message:"Jump to the top of the page"},
+chromevox_jump_to_bottom:{message:"Jump to the bottom of the page"},chromevox_wrapped_to_top:{message:"Wrapped to top"},chromevox_wrapped_to_bottom:{message:"Wrapped to bottom"},chromevox_cycle_punctuation_echo:{message:"Cycle punctuation echo"},chromevox_cycle_typing_echo:{message:"Cycle typing echo"},chromevox_pause_all_media:{message:"Pauses all currently playing media widgets"},chromevox_open_long_desc:{message:"Open long description in a new tab"},chromevox_no_long_desc:{message:"No long description"},
+chromevox_image_with_long_desc:{message:"Image with long description"},chromevox_selected_options_value:{message:"$1 to $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_selected_options_value_brl:{message:"$1-$2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_selected_options_state:{message:"selected $1 items",placeholders:{1:{content:"$1"}}},chromevox_selected_options_state_brl:{message:"sld $1",placeholders:{1:{content:"$1"}}},chromevox_clear_page_selection:{message:"cleared selection"},
+chromevox_character_echo:{message:"character echo"},chromevox_word_echo:{message:"word echo"},chromevox_character_and_word_echo:{message:"character and word echo"},chromevox_none_echo:{message:"no typing echo"},chromevox_enter_content:{message:"enter structured content, such as tables"},chromevox_exit_content:{message:"exit structured content, such as tables"},chromevox_enter_content_say:{message:"entered $1",placeholders:{1:{content:"$1"}}},chromevox_structural_line:{message:"structural line"},chromevox_layout_line:{message:"line"},
+chromevox_toggle_line_type:{message:"Toggle line type between structural or layout"},chromevox_table_shifter:{message:"table"},chromevox_navigation_shifter:{message:"default navigation"},chromevox_math_shifter:{message:"math"},chromevox_toggle_semantics:{message:"Toggle interpretation of math expressions between structural and semantic"},chromevox_semantics_on:{message:"Semantics on"},chromevox_semantics_off:{message:"Semantics off"},chromevox_phonetic_map:{message:'{"a": "alpha", "b": "bravo", "c": "charlie", "d": "delta", "e": "echo", "f": "foxtrot", "g": "golf", "h": "hotel", "i": "india", "j": "juliet","k": "kilo", "l": "lima", "m": "mike", "n": "november", "o": "oscar","p": "papa", "q": "quebec", "r": "romeo", "s": "sierra", "t": "tango", "u": "uniform", "v": "victor", "w": "whiskey","x": "xray", "y": "yankee", "z": "zulu"}'},
+chromevox_page_has_one_alert_singular:{message:"This page has 1 alert"},chromevox_page_has_alerts_plural:{message:"This page has $1 alerts",placeholders:{1:{content:"$1"}}},chromevox_review_alerts:{message:"Press Alt+Shift+A to review alerts"},chromevox_no_next_article:{message:"No next article."},chromevox_no_previous_article:{message:"No previous article."},chromevox_chromevox_intro:{message:"ChromeVox spoken feedback is ready"},chromevox_intro_brl:{message:"ChromeVox ready"},chromevox_earcons_on:{message:"Earcons on"},
+chromevox_earcons_off:{message:"Earcons off"},chromevox_toggle_earcons:{message:"Turn sound feedback (earcons) on or off."},chromevox_speak_time_and_date:{message:"Speak the current time and date."},chromevox_mark_as_search_result_brl:{message:"S:$1",placeholders:{1:{content:"$1"}}},chromevox_text_deleted:{message:"Deleted"},chromevox_perform_default_action:{message:"Perform default action"},chromevox_visited_url:{message:"visited"},chromevox_visited_url_brl:{message:"visited"},chromevox_exclamation:{message:"{COUNT, plural, =1 {exclamation point}other {# exclamation points}}"},
+chromevox_space:{message:"{COUNT, plural, =1 {space}other {# spaces}}"},chromevox_backtick:{message:"{COUNT, plural, =1 {backtick}other {# backticks}}"},chromevox_tilde:{message:"{COUNT, plural, =1 {TILDE}other {# tildes}}"},chromevox_at:{message:"{COUNT, plural, =1 {at}other {# at signs}}"},chromevox_pound:{message:"{COUNT, plural, =1 {pound}other {# pound signs}}"},chromevox_dollar:{message:"{COUNT, plural, =1 {dollar}other {# dollar signs}}"},chromevox_percent:{message:"{COUNT, plural, =1 {percent}other {# percent signs}}"},
+chromevox_caret:{message:"{COUNT, plural, =1 {caret}other {# carets}}"},chromevox_ampersand:{message:"{COUNT, plural, =1 {ampersand}other {# ampersands}}"},chromevox_asterisk:{message:"{COUNT, plural, =1 {asterisk}other {# asterisks}}"},chromevox_open_paren:{message:"{COUNT, plural, =1 {open paren}other {# open parens}}"},chromevox_close_paren:{message:"{COUNT, plural, =1 {close paren}other {# close parens}}"},chromevox_dash:{message:"{COUNT, plural, =1 {dash}other {# dashes}}"},chromevox_underscore:{message:"{COUNT, plural, =1 {underscore}other {# underscores}}"},
+chromevox_equals:{message:"{COUNT, plural, =1 {equal}other {# equal signs}}"},chromevox_plus:{message:"{COUNT, plural, =1 {plus}other {# plus signs}}"},chromevox_left_bracket:{message:"{COUNT, plural, =1 {left bracket}other {# left brackets}}"},chromevox_right_bracket:{message:"{COUNT, plural, =1 {right bracket}other {# right brackets}}"},chromevox_left_brace:{message:"{COUNT, plural, =1 {left brace}other {# left braces}}"},chromevox_right_brace:{message:"{COUNT, plural, =1 {right brace}other {# right braces}}"},
+chromevox_pipe:{message:"{COUNT, plural, =1 {pipe}other {# vertical pipes}}"},chromevox_semicolon:{message:"{COUNT, plural, =1 {semicolon}other {# semicolons}}"},chromevox_colon:{message:"{COUNT, plural, =1 {colon}other {# colons}}"},chromevox_comma:{message:"{COUNT, plural, =1 {comma}other {# commas}}"},chromevox_dot:{message:"{COUNT, plural, =1 {dot}=3 {ellipsis}other {# dots}}"},chromevox_less_than:{message:"{COUNT, plural, =1 {less than}other {# less than signs}}"},chromevox_greater_than:{message:"{COUNT, plural, =1 {greater than}other {# greater than signs}}"},
+chromevox_slash:{message:"{COUNT, plural, =1 {slash}other {# slashes}}"},chromevox_question_mark:{message:"{COUNT, plural, =1 {question mark}other {# question marks}}"},chromevox_quote:{message:"{COUNT, plural, =1 {quote}other {# quotes}}"},chromevox_apostrophe:{message:"{COUNT, plural, =1 {apostrophe}other {# apostrophes}}"},chromevox_tab:{message:"{COUNT, plural, =1 {tab}other {# tabs}}"},chromevox_backslash:{message:"{COUNT, plural, =1 {backslash}other {# backslashes}}"},chromevox_braille_routing:{message:"Click the item under a routing key"},
+chromevox_braille_pan_left:{message:"Pan backward"},chromevox_braille_pan_right:{message:"Pan bforward"},chromevox_braille_line_up:{message:"Braille previous Line"},chromevox_braille_line_down:{message:"Braille next Line"},chromevox_braille_top:{message:"Move braille display to top of page"},chromevox_braille_bottom:{message:"Move braille display to bottom of page"},chromevox_access_key:{message:"has access key, $1",placeholders:{1:{content:"$1"}}},chromevox_locale_dict:{message:'{"ar": "Arabic","bg": "Bulgarian","ca": "Catalan","hr": "Croatian","cs": "Czech","da": "Danish","nl": "Dutch","en_CA": "English (Canada)","en_GB": "English (United Kingdom)","en_US": "English (United States)","et": "Estonian","fr": "French","fr_CA": "French (Canada)","fr_FR": "French (France)","fi": "Finnish","de": "German","de_CH": "German (Switzerland)","de_DE": "German (Germany)","el": "Greek","hi": "Hindi","hu": "Hungarian","is": "Icelandic","it": "Italian","lv": "Latvian","lt": "Lithuanian","nb": "Norwegian Bokm\u00e5l","pl": "Polish","pt": "Portuguese","ro": "Romanian","ru": "Russian","sr": "Serbian","sk": "Slovak","sl": "Slovenian","es": "Spanish","sv": "Swedish","tr": "Turkish","vi": "Vietnamese","zh": "Chinese","zh_TW": "Chinese (Traditional Han)"}'}};cvox.TestMsgs=function(){};goog.inherits(cvox.TestMsgs,cvox.AbstractMsgs);cvox.TestMsgs.prototype.getMsg=function(a,b){if(!a){var c=Error();c.message="Message id required";throw c;}c=cvox.TestMessages["chromevox_"+a];if(void 0==c)throw c=Error(),c.message="missing-msg: "+a,c;var d=c.message;if(b)for(var e=0;e<b.length;e++){var f=c.placeholders[e+1];if(!f)throw c=Error(),c.message="Bad placeholder "+e+" for message id "+a,c;f=c.placeholders[e+1].content;d=d.replace(f,b[e])}return d};
+cvox.TestMsgs.prototype.getNumber=function(a){return""+a};cvox.HostFactory.msgsConstructor=cvox.TestMsgs;cvox.ChromeVox.initDocument();
diff --git a/StoneIsland/platforms/android/platform_www/plugins/com.phonegap.plugin.mobile-accessibility/android/chromeandroidvox.js b/StoneIsland/platforms/android/platform_www/plugins/com.phonegap.plugin.mobile-accessibility/android/chromeandroidvox.js
new file mode 100644
index 00000000..8229b168
--- /dev/null
+++ b/StoneIsland/platforms/android/platform_www/plugins/com.phonegap.plugin.mobile-accessibility/android/chromeandroidvox.js
@@ -0,0 +1,1778 @@
+// Copyright 2013 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+var goog=goog||{};goog.global=this;goog.exportPath_=function(a,b,c){a=a.split(".");c=c||goog.global;a[0]in c||!c.execScript||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)a.length||void 0===b?c=c[d]?c[d]:c[d]={}:c[d]=b};goog.define=function(a,b){var c=b;goog.exportPath_(a,c)};goog.DEBUG=!1;goog.LOCALE="en";goog.TRUSTED_SITE=!0;goog.provide=function(a){goog.exportPath_(a)};
+goog.setTestOnly=function(a){if(!goog.DEBUG)throw a=a||"",Error("Importing test-only code into non-debug environment"+a?": "+a:".");};goog.getObjectByName=function(a,b){for(var c=a.split("."),d=b||goog.global,e;e=c.shift();)if(goog.isDefAndNotNull(d[e]))d=d[e];else return null;return d};goog.globalize=function(a,b){var c=b||goog.global,d;for(d in a)c[d]=a[d]};
+goog.addDependency=function(a,b,c){if(goog.DEPENDENCIES_ENABLED){var d;a=a.replace(/\\/g,"/");for(var e=goog.dependencies_,f=0;d=b[f];f++)e.nameToPath[d]=a,a in e.pathToNames||(e.pathToNames[a]={}),e.pathToNames[a][d]=!0;for(d=0;b=c[d];d++)a in e.requires||(e.requires[a]={}),e.requires[a][b]=!0}};goog.useStrictRequires=!1;goog.ENABLE_DEBUG_LOADER=!0;goog.require=function(){};goog.basePath="";goog.nullFunction=function(){};goog.identityFunction=function(a){return a};
+goog.abstractMethod=function(){throw Error("unimplemented abstract method");};goog.addSingletonGetter=function(a){a.getInstance=function(){if(a.instance_)return a.instance_;goog.DEBUG&&(goog.instantiatedSingletons_[goog.instantiatedSingletons_.length]=a);return a.instance_=new a}};goog.instantiatedSingletons_=[];goog.DEPENDENCIES_ENABLED=!1;
+goog.DEPENDENCIES_ENABLED&&(goog.included_={},goog.dependencies_={pathToNames:{},nameToPath:{},requires:{},visited:{},written:{}},goog.inHtmlDocument_=function(){var a=goog.global.document;return"undefined"!=typeof a&&"write"in a},goog.findBasePath_=function(){if(goog.global.CLOSURE_BASE_PATH)goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_())for(var a=goog.global.document,a=a.getElementsByTagName("script"),b=a.length-1;0<=b;--b){var c=a[b].src,d=c.lastIndexOf("?"),d=-1==d?
+c.length:d;if("base.js"==c.substr(d-7,7)){goog.basePath=c.substr(0,d-7);break}}},goog.importScript_=function(a){var b=goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_;!goog.dependencies_.written[a]&&b(a)&&(goog.dependencies_.written[a]=!0)},goog.writeScriptTag_=function(a){if(goog.inHtmlDocument_()){var b=goog.global.document;if("complete"==b.readyState){if(b=/\bdeps.js$/.test(a))return!1;throw Error('Cannot write "'+a+'" after document load');}b.write('<script type="text/javascript" src="'+
+a+'">\x3c/script>');return!0}return!1},goog.writeScripts_=function(){function a(e){if(!(e in d.written)){if(!(e in d.visited)&&(d.visited[e]=!0,e in d.requires))for(var g in d.requires[e])if(!goog.isProvided_(g))if(g in d.nameToPath)a(d.nameToPath[g]);else throw Error("Undefined nameToPath for "+g);e in c||(c[e]=!0,b.push(e))}}var b=[],c={},d=goog.dependencies_,e;for(e in goog.included_)d.written[e]||a(e);for(e=0;e<b.length;e++)if(b[e])goog.importScript_(goog.basePath+b[e]);else throw Error("Undefined script input");
+},goog.getPathFromDeps_=function(a){return a in goog.dependencies_.nameToPath?goog.dependencies_.nameToPath[a]:null},goog.findBasePath_(),goog.global.CLOSURE_NO_DEPS||goog.importScript_(goog.basePath+"deps.js"));
+goog.typeOf=function(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";
+else if("function"==b&&"undefined"==typeof a.call)return"object";return b};goog.isDef=function(a){return void 0!==a};goog.isNull=function(a){return null===a};goog.isDefAndNotNull=function(a){return null!=a};goog.isArray=function(a){return"array"==goog.typeOf(a)};goog.isArrayLike=function(a){var b=goog.typeOf(a);return"array"==b||"object"==b&&"number"==typeof a.length};goog.isDateLike=function(a){return goog.isObject(a)&&"function"==typeof a.getFullYear};goog.isString=function(a){return"string"==typeof a};
+goog.isBoolean=function(a){return"boolean"==typeof a};goog.isNumber=function(a){return"number"==typeof a};goog.isFunction=function(a){return"function"==goog.typeOf(a)};goog.isObject=function(a){var b=typeof a;return"object"==b&&null!=a||"function"==b};goog.getUid=function(a){return a[goog.UID_PROPERTY_]||(a[goog.UID_PROPERTY_]=++goog.uidCounter_)};goog.hasUid=function(a){return!!a[goog.UID_PROPERTY_]};goog.removeUid=function(a){"removeAttribute"in a&&a.removeAttribute(goog.UID_PROPERTY_);try{delete a[goog.UID_PROPERTY_]}catch(b){}};
+goog.UID_PROPERTY_="closure_uid_"+(1E9*Math.random()>>>0);goog.uidCounter_=0;goog.getHashCode=goog.getUid;goog.removeHashCode=goog.removeUid;goog.cloneObject=function(a){var b=goog.typeOf(a);if("object"==b||"array"==b){if(a.clone)return a.clone();var b="array"==b?[]:{},c;for(c in a)b[c]=goog.cloneObject(a[c]);return b}return a};goog.bindNative_=function(a,b,c){return a.call.apply(a.bind,arguments)};
+goog.bindJs_=function(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}};goog.bind=function(a,b,c){Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?goog.bind=goog.bindNative_:goog.bind=goog.bindJs_;return goog.bind.apply(null,arguments)};
+goog.partial=function(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var b=c.slice();b.push.apply(b,arguments);return a.apply(this,b)}};goog.mixin=function(a,b){for(var c in b)a[c]=b[c]};goog.now=goog.TRUSTED_SITE&&Date.now||function(){return+new Date};
+goog.globalEval=function(a){if(goog.global.execScript)goog.global.execScript(a,"JavaScript");else if(goog.global.eval)if(null==goog.evalWorksForGlobals_&&(goog.global.eval("var _et_ = 1;"),"undefined"!=typeof goog.global._et_?(delete goog.global._et_,goog.evalWorksForGlobals_=!0):goog.evalWorksForGlobals_=!1),goog.evalWorksForGlobals_)goog.global.eval(a);else{var b=goog.global.document,c=b.createElement("script");c.type="text/javascript";c.defer=!1;c.appendChild(b.createTextNode(a));b.body.appendChild(c);
+b.body.removeChild(c)}else throw Error("goog.globalEval not available");};goog.evalWorksForGlobals_=null;goog.getCssName=function(a,b){var c=function(a){return goog.cssNameMapping_[a]||a},d=function(a){a=a.split("-");for(var b=[],d=0;d<a.length;d++)b.push(c(a[d]));return b.join("-")},d=goog.cssNameMapping_?"BY_WHOLE"==goog.cssNameMappingStyle_?c:d:function(a){return a};return b?a+"-"+d(b):d(a)};goog.setCssNameMapping=function(a,b){goog.cssNameMapping_=a;goog.cssNameMappingStyle_=b};
+goog.getMsg=function(a,b){var c=b||{},d;for(d in c){var e=(""+c[d]).replace(/\$/g,"$$$$");a=a.replace(RegExp("\\{\\$"+d+"\\}","gi"),e)}return a};goog.getMsgWithFallback=function(a){return a};goog.exportSymbol=function(a,b,c){goog.exportPath_(a,b,c)};goog.exportProperty=function(a,b,c){a[b]=c};goog.inherits=function(a,b){function c(){}c.prototype=b.prototype;a.superClass_=b.prototype;a.prototype=new c;a.prototype.constructor=a};
+goog.base=function(a,b,c){var d=arguments.callee.caller;if(goog.DEBUG&&!d)throw Error("arguments.caller not defined. goog.base() expects not to be running in strict mode. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");if(d.superClass_)return d.superClass_.constructor.apply(a,Array.prototype.slice.call(arguments,1));for(var e=Array.prototype.slice.call(arguments,2),f=!1,g=a.constructor;g;g=g.superClass_&&g.superClass_.constructor)if(g.prototype[b]===d)f=!0;else if(f)return g.prototype[b].apply(a,
+e);if(a[b]===d)return a.constructor.prototype[b].apply(a,e);throw Error("goog.base called from a method of one name to a method of a different name");};goog.scope=function(a){a.call(goog.global)};goog.MODIFY_FUNCTION_PROTOTYPES=!0;
+goog.MODIFY_FUNCTION_PROTOTYPES&&(Function.prototype.bind=Function.prototype.bind||function(a,b){if(1<arguments.length){var c=Array.prototype.slice.call(arguments,1);c.unshift(this,a);return goog.bind.apply(null,c)}return goog.bind(this,a)},Function.prototype.partial=function(a){var b=Array.prototype.slice.call(arguments);b.unshift(this,null);return goog.bind.apply(null,b)},Function.prototype.inherits=function(a){goog.inherits(this,a)},Function.prototype.mixin=function(a){goog.mixin(this.prototype,
+a)});var cvox={VERBOSITY_VERBOSE:0,VERBOSITY_BRIEF:1,ChromeVox:function(){}};cvox.ChromeVox.host=null;cvox.ChromeVox.msgs=null;cvox.ChromeVox.isActive=!0;cvox.ChromeVox.version=null;cvox.ChromeVox.earcons=null;cvox.ChromeVox.navigationManager=null;cvox.ChromeVox.serializer=null;cvox.ChromeVox.isStickyOn=!1;cvox.ChromeVox.keyPrefixOn=!1;cvox.ChromeVox.verbosity=cvox.VERBOSITY_VERBOSE;cvox.ChromeVox.typingEcho=0;cvox.ChromeVox.keyEcho={};cvox.ChromeVox.position={};cvox.ChromeVox.isChromeOS=-1!=navigator.userAgent.indexOf("CrOS");
+cvox.ChromeVox.isMac=-1!=navigator.platform.indexOf("Mac");cvox.ChromeVox.modKeyStr=cvox.ChromeVox.isChromeOS?"Shift+Search":cvox.ChromeVox.isMac?"Ctrl+Cmd":"Ctrl+Meta";cvox.ChromeVox.sequenceSwitchKeyCodes=[];cvox.ChromeVox.visitedUrls={};cvox.ChromeVox.markInUserCommand=function(){};cvox.ChromeVox.syncToNode=function(){};cvox.ChromeVox.speakNode=function(){};cvox.ChromeVox.executeUserCommand=function(){};cvox.ChromeVox.entireDocumentIsHidden=!1;
+cvox.ChromeVox.storeOn=function(a){a.isStickyOn=cvox.ChromeVox.isStickyOn;cvox.ChromeVox.navigationManager.storeOn(a)};cvox.ChromeVox.readFrom=function(a){cvox.ChromeVox.isStickyOn=a.isStickyOn;cvox.ChromeVox.navigationManager.readFrom(a)};cvox.Cursor=function(a,b,c){this.node=a;this.index=b;this.text=c};cvox.Cursor.prototype.clone=function(){return new cvox.Cursor(this.node,this.index,this.text)};cvox.Cursor.prototype.copyFrom=function(a){this.node=a.node;this.index=a.index;this.text=a.text};cvox.Cursor.prototype.equals=function(a){return this.node==a.node&&this.index==a.index&&this.text==a.text};goog.debug={};goog.debug.Error=function(a){Error.captureStackTrace?Error.captureStackTrace(this,goog.debug.Error):this.stack=Error().stack||"";a&&(this.message=String(a))};goog.inherits(goog.debug.Error,Error);goog.debug.Error.prototype.name="CustomError";goog.dom={};goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12};goog.string={};goog.string.Unicode={NBSP:"\u00a0"};goog.string.startsWith=function(a,b){return 0==a.lastIndexOf(b,0)};goog.string.endsWith=function(a,b){var c=a.length-b.length;return 0<=c&&a.indexOf(b,c)==c};goog.string.caseInsensitiveStartsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(0,b.length))};goog.string.caseInsensitiveEndsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(a.length-b.length,b.length))};
+goog.string.caseInsensitiveEquals=function(a,b){return a.toLowerCase()==b.toLowerCase()};goog.string.subs=function(a,b){for(var c=a.split("%s"),d="",e=Array.prototype.slice.call(arguments,1);e.length&&1<c.length;)d+=c.shift()+e.shift();return d+c.join("%s")};goog.string.collapseWhitespace=function(a){return a.replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")};goog.string.isEmpty=function(a){return/^[\s\xa0]*$/.test(a)};goog.string.isEmptySafe=function(a){return goog.string.isEmpty(goog.string.makeSafe(a))};
+goog.string.isBreakingWhitespace=function(a){return!/[^\t\n\r ]/.test(a)};goog.string.isAlpha=function(a){return!/[^a-zA-Z]/.test(a)};goog.string.isNumeric=function(a){return!/[^0-9]/.test(a)};goog.string.isAlphaNumeric=function(a){return!/[^a-zA-Z0-9]/.test(a)};goog.string.isSpace=function(a){return" "==a};goog.string.isUnicodeChar=function(a){return 1==a.length&&" "<=a&&"~">=a||"\u0080"<=a&&"\ufffd">=a};goog.string.stripNewlines=function(a){return a.replace(/(\r\n|\r|\n)+/g," ")};
+goog.string.canonicalizeNewlines=function(a){return a.replace(/(\r\n|\r|\n)/g,"\n")};goog.string.normalizeWhitespace=function(a){return a.replace(/\xa0|\s/g," ")};goog.string.normalizeSpaces=function(a){return a.replace(/\xa0|[ \t]+/g," ")};goog.string.collapseBreakingSpaces=function(a){return a.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")};goog.string.trim=function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")};
+goog.string.trimLeft=function(a){return a.replace(/^[\s\xa0]+/,"")};goog.string.trimRight=function(a){return a.replace(/[\s\xa0]+$/,"")};goog.string.caseInsensitiveCompare=function(a,b){var c=String(a).toLowerCase(),d=String(b).toLowerCase();return c<d?-1:c==d?0:1};goog.string.numerateCompareRegExp_=/(\.\d+)|(\d+)|(\D+)/g;
+goog.string.numerateCompare=function(a,b){if(a==b)return 0;if(!a)return-1;if(!b)return 1;for(var c=a.toLowerCase().match(goog.string.numerateCompareRegExp_),d=b.toLowerCase().match(goog.string.numerateCompareRegExp_),e=Math.min(c.length,d.length),f=0;f<e;f++){var g=c[f],h=d[f];if(g!=h)return c=parseInt(g,10),!isNaN(c)&&(d=parseInt(h,10),!isNaN(d)&&c-d)?c-d:g<h?-1:1}return c.length!=d.length?c.length-d.length:a<b?-1:1};goog.string.urlEncode=function(a){return encodeURIComponent(String(a))};
+goog.string.urlDecode=function(a){return decodeURIComponent(a.replace(/\+/g," "))};goog.string.newLineToBr=function(a,b){return a.replace(/(\r\n|\r|\n)/g,b?"<br />":"<br>")};
+goog.string.htmlEscape=function(a,b){if(b)return a.replace(goog.string.amperRe_,"&amp;").replace(goog.string.ltRe_,"&lt;").replace(goog.string.gtRe_,"&gt;").replace(goog.string.quotRe_,"&quot;");if(!goog.string.allRe_.test(a))return a;-1!=a.indexOf("&")&&(a=a.replace(goog.string.amperRe_,"&amp;"));-1!=a.indexOf("<")&&(a=a.replace(goog.string.ltRe_,"&lt;"));-1!=a.indexOf(">")&&(a=a.replace(goog.string.gtRe_,"&gt;"));-1!=a.indexOf('"')&&(a=a.replace(goog.string.quotRe_,"&quot;"));return a};
+goog.string.amperRe_=/&/g;goog.string.ltRe_=/</g;goog.string.gtRe_=/>/g;goog.string.quotRe_=/\"/g;goog.string.allRe_=/[&<>\"]/;goog.string.unescapeEntities=function(a){return goog.string.contains(a,"&")?"document"in goog.global?goog.string.unescapeEntitiesUsingDom_(a):goog.string.unescapePureXmlEntities_(a):a};goog.string.unescapeEntitiesWithDocument=function(a,b){return goog.string.contains(a,"&")?goog.string.unescapeEntitiesUsingDom_(a,b):a};
+goog.string.unescapeEntitiesUsingDom_=function(a,b){var c={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"'},d;d=b?b.createElement("div"):document.createElement("div");return a.replace(goog.string.HTML_ENTITY_PATTERN_,function(a,b){var g=c[a];if(g)return g;if("#"==b.charAt(0)){var h=Number("0"+b.substr(1));isNaN(h)||(g=String.fromCharCode(h))}g||(d.innerHTML=a+" ",g=d.firstChild.nodeValue.slice(0,-1));return c[a]=g})};
+goog.string.unescapePureXmlEntities_=function(a){return a.replace(/&([^;]+);/g,function(a,c){switch(c){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:if("#"==c.charAt(0)){var d=Number("0"+c.substr(1));if(!isNaN(d))return String.fromCharCode(d)}return a}})};goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g;goog.string.whitespaceEscape=function(a,b){return goog.string.newLineToBr(a.replace(/ /g," &#160;"),b)};
+goog.string.stripQuotes=function(a,b){for(var c=b.length,d=0;d<c;d++){var e=1==c?b:b.charAt(d);if(a.charAt(0)==e&&a.charAt(a.length-1)==e)return a.substring(1,a.length-1)}return a};goog.string.truncate=function(a,b,c){c&&(a=goog.string.unescapeEntities(a));a.length>b&&(a=a.substring(0,b-3)+"...");c&&(a=goog.string.htmlEscape(a));return a};
+goog.string.truncateMiddle=function(a,b,c,d){c&&(a=goog.string.unescapeEntities(a));if(d&&a.length>b){d>b&&(d=b);var e=a.length-d;b-=d;a=a.substring(0,b)+"..."+a.substring(e)}else a.length>b&&(e=Math.floor(b/2),d=a.length-e,e+=b%2,a=a.substring(0,e)+"..."+a.substring(d));c&&(a=goog.string.htmlEscape(a));return a};goog.string.specialEscapeChars_={"\x00":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\x0B",'"':'\\"',"\\":"\\\\"};goog.string.jsEscapeCache_={"'":"\\'"};
+goog.string.quote=function(a){a=String(a);if(a.quote)return a.quote();for(var b=['"'],c=0;c<a.length;c++){var d=a.charAt(c),e=d.charCodeAt(0);b[c+1]=goog.string.specialEscapeChars_[d]||(31<e&&127>e?d:goog.string.escapeChar(d))}b.push('"');return b.join("")};goog.string.escapeString=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=goog.string.escapeChar(a.charAt(c));return b.join("")};
+goog.string.escapeChar=function(a){if(a in goog.string.jsEscapeCache_)return goog.string.jsEscapeCache_[a];if(a in goog.string.specialEscapeChars_)return goog.string.jsEscapeCache_[a]=goog.string.specialEscapeChars_[a];var b=a,c=a.charCodeAt(0);if(31<c&&127>c)b=a;else{if(256>c){if(b="\\x",16>c||256<c)b+="0"}else b="\\u",4096>c&&(b+="0");b+=c.toString(16).toUpperCase()}return goog.string.jsEscapeCache_[a]=b};goog.string.toMap=function(a){for(var b={},c=0;c<a.length;c++)b[a.charAt(c)]=!0;return b};
+goog.string.contains=function(a,b){return-1!=a.indexOf(b)};goog.string.countOf=function(a,b){return a&&b?a.split(b).length-1:0};goog.string.removeAt=function(a,b,c){var d=a;0<=b&&b<a.length&&0<c&&(d=a.substr(0,b)+a.substr(b+c,a.length-b-c));return d};goog.string.remove=function(a,b){var c=RegExp(goog.string.regExpEscape(b),"");return a.replace(c,"")};goog.string.removeAll=function(a,b){var c=RegExp(goog.string.regExpEscape(b),"g");return a.replace(c,"")};
+goog.string.regExpEscape=function(a){return String(a).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};goog.string.repeat=function(a,b){return Array(b+1).join(a)};goog.string.padNumber=function(a,b,c){a=goog.isDef(c)?a.toFixed(c):String(a);c=a.indexOf(".");-1==c&&(c=a.length);return goog.string.repeat("0",Math.max(0,b-c))+a};goog.string.makeSafe=function(a){return null==a?"":String(a)};goog.string.buildString=function(a){return Array.prototype.join.call(arguments,"")};
+goog.string.getRandomString=function(){var a=2147483648;return Math.floor(Math.random()*a).toString(36)+Math.abs(Math.floor(Math.random()*a)^goog.now()).toString(36)};
+goog.string.compareVersions=function(a,b){for(var c=0,d=goog.string.trim(String(a)).split("."),e=goog.string.trim(String(b)).split("."),f=Math.max(d.length,e.length),g=0;0==c&&g<f;g++){var h=d[g]||"",k=e[g]||"",l=/(\d*)(\D*)/g,m=/(\d*)(\D*)/g;do{var p=l.exec(h)||["","",""],q=m.exec(k)||["","",""];if(0==p[0].length&&0==q[0].length)break;var c=0==p[1].length?0:parseInt(p[1],10),n=0==q[1].length?0:parseInt(q[1],10),c=goog.string.compareElements_(c,n)||goog.string.compareElements_(0==p[2].length,0==q[2].length)||
+goog.string.compareElements_(p[2],q[2])}while(0==c)}return c};goog.string.compareElements_=function(a,b){return a<b?-1:a>b?1:0};goog.string.HASHCODE_MAX_=4294967296;goog.string.hashCode=function(a){for(var b=0,c=0;c<a.length;++c)b=31*b+a.charCodeAt(c),b%=goog.string.HASHCODE_MAX_;return b};goog.string.uniqueStringCounter_=2147483648*Math.random()|0;goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++};
+goog.string.toNumber=function(a){var b=Number(a);return 0==b&&goog.string.isEmpty(a)?NaN:b};goog.string.isLowerCamelCase=function(a){return/^[a-z]+([A-Z][a-z]*)*$/.test(a)};goog.string.isUpperCamelCase=function(a){return/^([A-Z][a-z]*)+$/.test(a)};goog.string.toCamelCase=function(a){return String(a).replace(/\-([a-z])/g,function(a,c){return c.toUpperCase()})};goog.string.toSelectorCase=function(a){return String(a).replace(/([A-Z])/g,"-$1").toLowerCase()};
+goog.string.toTitleCase=function(a,b){var c=goog.isString(b)?goog.string.regExpEscape(b):"\\s",c=c?"|["+c+"]+":"",c=RegExp("(^"+c+")([a-z])","g");return a.replace(c,function(a,b,c){return b+c.toUpperCase()})};goog.string.parseInt=function(a){isFinite(a)&&(a=String(a));return goog.isString(a)?/^\s*-?0x/i.test(a)?parseInt(a,16):parseInt(a,10):NaN};goog.string.splitLimit=function(a,b,c){a=a.split(b);for(var d=[];0<c&&a.length;)d.push(a.shift()),c--;a.length&&d.push(a.join(b));return d};goog.asserts={};goog.asserts.ENABLE_ASSERTS=goog.DEBUG;goog.asserts.AssertionError=function(a,b){b.unshift(a);goog.debug.Error.call(this,goog.string.subs.apply(null,b));b.shift()};goog.inherits(goog.asserts.AssertionError,goog.debug.Error);goog.asserts.AssertionError.prototype.name="AssertionError";goog.asserts.doAssertFailure_=function(a,b,c,d){var e="Assertion failed";if(c)var e=e+(": "+c),f=d;else a&&(e+=": "+a,f=b);throw new goog.asserts.AssertionError(""+e,f||[]);};
+goog.asserts.assert=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!a&&goog.asserts.doAssertFailure_("",null,b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.fail=function(a,b){if(goog.asserts.ENABLE_ASSERTS)throw new goog.asserts.AssertionError("Failure"+(a?": "+a:""),Array.prototype.slice.call(arguments,1));};
+goog.asserts.assertNumber=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isNumber(a)&&goog.asserts.doAssertFailure_("Expected number but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertString=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isString(a)&&goog.asserts.doAssertFailure_("Expected string but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};
+goog.asserts.assertFunction=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isFunction(a)&&goog.asserts.doAssertFailure_("Expected function but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertObject=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isObject(a)&&goog.asserts.doAssertFailure_("Expected object but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};
+goog.asserts.assertArray=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isArray(a)&&goog.asserts.doAssertFailure_("Expected array but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertBoolean=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isBoolean(a)&&goog.asserts.doAssertFailure_("Expected boolean but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};
+goog.asserts.assertElement=function(a,b,c){!goog.asserts.ENABLE_ASSERTS||goog.isObject(a)&&a.nodeType==goog.dom.NodeType.ELEMENT||goog.asserts.doAssertFailure_("Expected Element but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertInstanceof=function(a,b,c,d){!goog.asserts.ENABLE_ASSERTS||a instanceof b||goog.asserts.doAssertFailure_("instanceof check failed.",null,c,Array.prototype.slice.call(arguments,3));return a};
+goog.asserts.assertObjectPrototypeIsIntact=function(){for(var a in Object.prototype)goog.asserts.fail(a+" should not be enumerable in Object.prototype.")};goog.array={};goog.NATIVE_ARRAY_PROTOTYPES=goog.TRUSTED_SITE;goog.array.peek=function(a){return a[a.length-1]};goog.array.ARRAY_PROTOTYPE_=Array.prototype;
+goog.array.indexOf=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.indexOf?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.indexOf.call(a,b,c)}:function(a,b,c){c=null==c?0:0>c?Math.max(0,a.length+c):c;if(goog.isString(a))return goog.isString(b)&&1==b.length?a.indexOf(b,c):-1;for(;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1};
+goog.array.lastIndexOf=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.lastIndexOf?function(a,b,c){goog.asserts.assert(null!=a.length);c=null==c?a.length-1:c;return goog.array.ARRAY_PROTOTYPE_.lastIndexOf.call(a,b,c)}:function(a,b,c){c=null==c?a.length-1:c;0>c&&(c=Math.max(0,a.length+c));if(goog.isString(a))return goog.isString(b)&&1==b.length?a.lastIndexOf(b,c):-1;for(;0<=c;c--)if(c in a&&a[c]===b)return c;return-1};
+goog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.forEach?function(a,b,c){goog.asserts.assert(null!=a.length);goog.array.ARRAY_PROTOTYPE_.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)f in e&&b.call(c,e[f],f,a)};goog.array.forEachRight=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,d=d-1;0<=d;--d)d in e&&b.call(c,e[d],d,a)};
+goog.array.filter=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.filter?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.filter.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=[],f=0,g=goog.isString(a)?a.split(""):a,h=0;h<d;h++)if(h in g){var k=g[h];b.call(c,k,h,a)&&(e[f++]=k)}return e};
+goog.array.map=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.map?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.map.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=Array(d),f=goog.isString(a)?a.split(""):a,g=0;g<d;g++)g in f&&(e[g]=b.call(c,f[g],g,a));return e};
+goog.array.reduce=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.reduce?function(a,b,c,d){goog.asserts.assert(null!=a.length);d&&(b=goog.bind(b,d));return goog.array.ARRAY_PROTOTYPE_.reduce.call(a,b,c)}:function(a,b,c,d){var e=c;goog.array.forEach(a,function(c,g){e=b.call(d,e,c,g,a)});return e};
+goog.array.reduceRight=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.reduceRight?function(a,b,c,d){goog.asserts.assert(null!=a.length);d&&(b=goog.bind(b,d));return goog.array.ARRAY_PROTOTYPE_.reduceRight.call(a,b,c)}:function(a,b,c,d){var e=c;goog.array.forEachRight(a,function(c,g){e=b.call(d,e,c,g,a)});return e};
+goog.array.some=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.some?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.some.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return!0;return!1};
+goog.array.every=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.every?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.every.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&!b.call(c,e[f],f,a))return!1;return!0};goog.array.count=function(a,b,c){var d=0;goog.array.forEach(a,function(a,f,g){b.call(c,a,f,g)&&++d},c);return d};
+goog.array.find=function(a,b,c){b=goog.array.findIndex(a,b,c);return 0>b?null:goog.isString(a)?a.charAt(b):a[b]};goog.array.findIndex=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return f;return-1};goog.array.findRight=function(a,b,c){b=goog.array.findIndexRight(a,b,c);return 0>b?null:goog.isString(a)?a.charAt(b):a[b]};
+goog.array.findIndexRight=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,d=d-1;0<=d;d--)if(d in e&&b.call(c,e[d],d,a))return d;return-1};goog.array.contains=function(a,b){return 0<=goog.array.indexOf(a,b)};goog.array.isEmpty=function(a){return 0==a.length};goog.array.clear=function(a){if(!goog.isArray(a))for(var b=a.length-1;0<=b;b--)delete a[b];a.length=0};goog.array.insert=function(a,b){goog.array.contains(a,b)||a.push(b)};
+goog.array.insertAt=function(a,b,c){goog.array.splice(a,c,0,b)};goog.array.insertArrayAt=function(a,b,c){goog.partial(goog.array.splice,a,c,0).apply(null,b)};goog.array.insertBefore=function(a,b,c){var d;2==arguments.length||0>(d=goog.array.indexOf(a,c))?a.push(b):goog.array.insertAt(a,b,d)};goog.array.remove=function(a,b){var c=goog.array.indexOf(a,b),d;(d=0<=c)&&goog.array.removeAt(a,c);return d};
+goog.array.removeAt=function(a,b){goog.asserts.assert(null!=a.length);return 1==goog.array.ARRAY_PROTOTYPE_.splice.call(a,b,1).length};goog.array.removeIf=function(a,b,c){b=goog.array.findIndex(a,b,c);return 0<=b?(goog.array.removeAt(a,b),!0):!1};goog.array.concat=function(a){return goog.array.ARRAY_PROTOTYPE_.concat.apply(goog.array.ARRAY_PROTOTYPE_,arguments)};goog.array.toArray=function(a){var b=a.length;if(0<b){for(var c=Array(b),d=0;d<b;d++)c[d]=a[d];return c}return[]};goog.array.clone=goog.array.toArray;
+goog.array.extend=function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c],e;if(goog.isArray(d)||(e=goog.isArrayLike(d))&&Object.prototype.hasOwnProperty.call(d,"callee"))a.push.apply(a,d);else if(e)for(var f=a.length,g=d.length,h=0;h<g;h++)a[f+h]=d[h];else a.push(d)}};goog.array.splice=function(a,b,c,d){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.splice.apply(a,goog.array.slice(arguments,1))};
+goog.array.slice=function(a,b,c){goog.asserts.assert(null!=a.length);return 2>=arguments.length?goog.array.ARRAY_PROTOTYPE_.slice.call(a,b):goog.array.ARRAY_PROTOTYPE_.slice.call(a,b,c)};goog.array.removeDuplicates=function(a,b,c){b=b||a;var d=function(){return goog.isObject(g)?"o"+goog.getUid(g):(typeof g).charAt(0)+g};c=c||d;for(var d={},e=0,f=0;f<a.length;){var g=a[f++],h=c(g);Object.prototype.hasOwnProperty.call(d,h)||(d[h]=!0,b[e++]=g)}b.length=e};
+goog.array.binarySearch=function(a,b,c){return goog.array.binarySearch_(a,c||goog.array.defaultCompare,!1,b)};goog.array.binarySelect=function(a,b,c){return goog.array.binarySearch_(a,b,!0,void 0,c)};goog.array.binarySearch_=function(a,b,c,d,e){for(var f=0,g=a.length,h;f<g;){var k=f+g>>1,l;l=c?b.call(e,a[k],k,a):b(d,a[k]);0<l?f=k+1:(g=k,h=!l)}return h?f:~f};goog.array.sort=function(a,b){goog.asserts.assert(null!=a.length);goog.array.ARRAY_PROTOTYPE_.sort.call(a,b||goog.array.defaultCompare)};
+goog.array.stableSort=function(a,b){function c(a,b){return e(a.value,b.value)||a.index-b.index}for(var d=0;d<a.length;d++)a[d]={index:d,value:a[d]};var e=b||goog.array.defaultCompare;goog.array.sort(a,c);for(d=0;d<a.length;d++)a[d]=a[d].value};goog.array.sortObjectsByKey=function(a,b,c){var d=c||goog.array.defaultCompare;goog.array.sort(a,function(a,c){return d(a[b],c[b])})};
+goog.array.isSorted=function(a,b,c){b=b||goog.array.defaultCompare;for(var d=1;d<a.length;d++){var e=b(a[d-1],a[d]);if(0<e||0==e&&c)return!1}return!0};goog.array.equals=function(a,b,c){if(!goog.isArrayLike(a)||!goog.isArrayLike(b)||a.length!=b.length)return!1;var d=a.length;c=c||goog.array.defaultCompareEquality;for(var e=0;e<d;e++)if(!c(a[e],b[e]))return!1;return!0};goog.array.compare=function(a,b,c){return goog.array.equals(a,b,c)};
+goog.array.compare3=function(a,b,c){c=c||goog.array.defaultCompare;for(var d=Math.min(a.length,b.length),e=0;e<d;e++){var f=c(a[e],b[e]);if(0!=f)return f}return goog.array.defaultCompare(a.length,b.length)};goog.array.defaultCompare=function(a,b){return a>b?1:a<b?-1:0};goog.array.defaultCompareEquality=function(a,b){return a===b};goog.array.binaryInsert=function(a,b,c){c=goog.array.binarySearch(a,b,c);return 0>c?(goog.array.insertAt(a,b,-(c+1)),!0):!1};
+goog.array.binaryRemove=function(a,b,c){b=goog.array.binarySearch(a,b,c);return 0<=b?goog.array.removeAt(a,b):!1};goog.array.bucket=function(a,b,c){for(var d={},e=0;e<a.length;e++){var f=a[e],g=b.call(c,f,e,a);goog.isDef(g)&&(g=d[g]||(d[g]=[]),g.push(f))}return d};goog.array.toObject=function(a,b,c){var d={};goog.array.forEach(a,function(e,f){d[b.call(c,e,f,a)]=e});return d};
+goog.array.range=function(a,b,c){var d=[],e=0,f=a;c=c||1;void 0!==b&&(e=a,f=b);if(0>c*(f-e))return[];if(0<c)for(a=e;a<f;a+=c)d.push(a);else for(a=e;a>f;a+=c)d.push(a);return d};goog.array.repeat=function(a,b){for(var c=[],d=0;d<b;d++)c[d]=a;return c};goog.array.flatten=function(a){for(var b=[],c=0;c<arguments.length;c++){var d=arguments[c];goog.isArray(d)?b.push.apply(b,goog.array.flatten.apply(null,d)):b.push(d)}return b};
+goog.array.rotate=function(a,b){goog.asserts.assert(null!=a.length);a.length&&(b%=a.length,0<b?goog.array.ARRAY_PROTOTYPE_.unshift.apply(a,a.splice(-b,b)):0>b&&goog.array.ARRAY_PROTOTYPE_.push.apply(a,a.splice(0,-b)));return a};goog.array.moveItem=function(a,b,c){goog.asserts.assert(0<=b&&b<a.length);goog.asserts.assert(0<=c&&c<a.length);b=goog.array.ARRAY_PROTOTYPE_.splice.call(a,b,1);goog.array.ARRAY_PROTOTYPE_.splice.call(a,c,0,b[0])};
+goog.array.zip=function(a){if(!arguments.length)return[];for(var b=[],c=0;;c++){for(var d=[],e=0;e<arguments.length;e++){var f=arguments[e];if(c>=f.length)return b;d.push(f[c])}b.push(d)}};goog.array.shuffle=function(a,b){for(var c=b||Math.random,d=a.length-1;0<d;d--){var e=Math.floor(c()*(d+1)),f=a[d];a[d]=a[e];a[e]=f}};goog.math={};goog.math.randomInt=function(a){return Math.floor(Math.random()*a)};goog.math.uniformRandom=function(a,b){return a+Math.random()*(b-a)};goog.math.clamp=function(a,b,c){return Math.min(Math.max(a,b),c)};goog.math.modulo=function(a,b){var c=a%b;return 0>c*b?c+b:c};goog.math.lerp=function(a,b,c){return a+c*(b-a)};goog.math.nearlyEquals=function(a,b,c){return Math.abs(a-b)<=(c||1E-6)};goog.math.standardAngle=function(a){return goog.math.modulo(a,360)};
+goog.math.toRadians=function(a){return a*Math.PI/180};goog.math.toDegrees=function(a){return 180*a/Math.PI};goog.math.angleDx=function(a,b){return b*Math.cos(goog.math.toRadians(a))};goog.math.angleDy=function(a,b){return b*Math.sin(goog.math.toRadians(a))};goog.math.angle=function(a,b,c,d){return goog.math.standardAngle(goog.math.toDegrees(Math.atan2(d-b,c-a)))};goog.math.angleDifference=function(a,b){var c=goog.math.standardAngle(b)-goog.math.standardAngle(a);180<c?c-=360:-180>=c&&(c=360+c);return c};
+goog.math.sign=function(a){return 0==a?0:0>a?-1:1};goog.math.longestCommonSubsequence=function(a,b,c,d){c=c||function(a,b){return a==b};d=d||function(b){return a[b]};for(var e=a.length,f=b.length,g=[],h=0;h<e+1;h++)g[h]=[],g[h][0]=0;for(var k=0;k<f+1;k++)g[0][k]=0;for(h=1;h<=e;h++)for(k=1;k<=f;k++)c(a[h-1],b[k-1])?g[h][k]=g[h-1][k-1]+1:g[h][k]=Math.max(g[h-1][k],g[h][k-1]);for(var l=[],h=e,k=f;0<h&&0<k;)c(a[h-1],b[k-1])?(l.unshift(d(h-1,k-1)),h--,k--):g[h-1][k]>g[h][k-1]?h--:k--;return l};
+goog.math.sum=function(a){return goog.array.reduce(arguments,function(a,c){return a+c},0)};goog.math.average=function(a){return goog.math.sum.apply(null,arguments)/arguments.length};goog.math.sampleVariance=function(a){var b=arguments.length;if(2>b)return 0;var c=goog.math.average.apply(null,arguments);return b=goog.math.sum.apply(null,goog.array.map(arguments,function(a){return Math.pow(a-c,2)}))/(b-1)};
+goog.math.standardDeviation=function(a){return Math.sqrt(goog.math.sampleVariance.apply(null,arguments))};goog.math.isInt=function(a){return isFinite(a)&&0==a%1};goog.math.isFiniteNumber=function(a){return isFinite(a)&&!isNaN(a)};goog.math.safeFloor=function(a,b){goog.asserts.assert(!goog.isDef(b)||0<b);return Math.floor(a+(b||2E-15))};goog.math.safeCeil=function(a,b){goog.asserts.assert(!goog.isDef(b)||0<b);return Math.ceil(a-(b||2E-15))};goog.i18n={};
+goog.i18n.CompactNumberFormatSymbols_af={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0m"},1E7:{other:"00\u00a0m"},1E8:{other:"000\u00a0m"},1E9:{other:"0\u00a0mjd"},1E10:{other:"00\u00a0mjd"},1E11:{other:"000\u00a0mjd"},1E12:{other:"0\u00a0bn"},1E13:{other:"00\u00a0bn"},1E14:{other:"000\u00a0bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 duisend"},1E4:{other:"00 duisend"},1E5:{other:"000 duisend"},1E6:{other:"0 miljoen"},1E7:{other:"00 miljoen"},1E8:{other:"000 miljoen"},
+1E9:{other:"0 miljard"},1E10:{other:"00 miljard"},1E11:{other:"000 miljard"},1E12:{other:"0 biljoen"},1E13:{other:"00 biljoen"},1E14:{other:"000 biljoen"}}};goog.i18n.CompactNumberFormatSymbols_af_ZA=goog.i18n.CompactNumberFormatSymbols_af;
+goog.i18n.CompactNumberFormatSymbols_am={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u123a"},1E4:{other:"00\u00a0\u123a"},1E5:{other:"000\u00a0\u123a"},1E6:{other:"0\u00a0\u121c\u1275\u122d"},1E7:{other:"00\u00a0\u121c\u1275\u122d"},1E8:{other:"000\u00a0\u121c\u1275\u122d"},1E9:{other:"0\u00a0\u1262"},1E10:{other:"00\u00a0\u1262"},1E11:{other:"000\u00a0\u1262"},1E12:{other:"0\u00a0\u1275"},1E13:{other:"00\u00a0\u1275"},1E14:{other:"000\u00a0\u1275"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u123a"},
+1E4:{other:"00 \u123a"},1E5:{other:"000 \u123a"},1E6:{other:"0 \u121a\u120a\u12ee\u1295"},1E7:{other:"00 \u121a\u120a\u12ee\u1295"},1E8:{other:"000 \u121a\u120a\u12ee\u1295"},1E9:{other:"0 \u1262\u120a\u12ee\u1295"},1E10:{other:"00 \u1262\u120a\u12ee\u1295"},1E11:{other:"000 \u1262\u120a\u12ee\u1295"},1E12:{other:"0 \u1275\u122a\u120a\u12ee\u1295"},1E13:{other:"00 \u1275\u122a\u120a\u12ee\u1295"},1E14:{other:"000 \u1275\u122a\u120a\u12ee\u1295"}}};goog.i18n.CompactNumberFormatSymbols_am_ET=goog.i18n.CompactNumberFormatSymbols_am;
+goog.i18n.CompactNumberFormatSymbols_ar={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0623\u0644\u0641"},1E4:{other:"00\u00a0\u0623\u0644\u0641"},1E5:{other:"000\u00a0\u0623\u0644\u0641"},1E6:{other:"0\u00a0\u0645\u0644\u064a\u0648"},1E7:{other:"00\u00a0\u0645\u0644\u064a\u0648"},1E8:{other:"000\u00a0\u0645\u0644\u064a\u0648"},1E9:{other:"0\u00a0\u0628\u0644\u064a\u0648"},1E10:{other:"00\u00a0\u0628\u0644\u064a\u0648"},1E11:{other:"000\u00a0\u0628\u0644\u064a\u0648"},1E12:{other:"0\u00a0\u062a\u0631\u0644\u064a\u0648"},
+1E13:{other:"00\u00a0\u062a\u0631\u0644\u064a\u0648"},1E14:{other:"000\u00a0\u062a\u0631\u0644\u064a\u0648"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0623\u0644\u0641"},1E4:{other:"00 \u0623\u0644\u0641"},1E5:{other:"000 \u0623\u0644\u0641"},1E6:{other:"0 \u0645\u0644\u064a\u0648\u0646"},1E7:{other:"00 \u0645\u0644\u064a\u0648\u0646"},1E8:{other:"000 \u0645\u0644\u064a\u0648\u0646"},1E9:{other:"0 \u0628\u0644\u064a\u0648\u0646"},1E10:{other:"00 \u0628\u0644\u064a\u0648\u0646"},1E11:{other:"000 \u0628\u0644\u064a\u0648\u0646"},
+1E12:{other:"0 \u062a\u0631\u064a\u0644\u064a\u0648\u0646"},1E13:{other:"00 \u062a\u0631\u064a\u0644\u064a\u0648\u0646"},1E14:{other:"000 \u062a\u0631\u064a\u0644\u064a\u0648\u0646"}}};goog.i18n.CompactNumberFormatSymbols_ar_001=goog.i18n.CompactNumberFormatSymbols_ar;goog.i18n.CompactNumberFormatSymbols_ar_EG=goog.i18n.CompactNumberFormatSymbols_ar;
+goog.i18n.CompactNumberFormatSymbols_bg={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0425"},1E4:{other:"00\u00a0\u0425"},1E5:{other:"000\u00a0\u0425"},1E6:{other:"0\u00a0\u041c"},1E7:{other:"00\u00a0\u041c"},1E8:{other:"000\u00a0\u041c"},1E9:{other:"0\u00a0\u0411"},1E10:{other:"00\u00a0\u0411"},1E11:{other:"000\u00a0\u0411"},1E12:{other:"0\u00a0\u0422"},1E13:{other:"00\u00a0\u0422"},1E14:{other:"000\u00a0\u0422"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0445\u0438\u043b\u044f\u0434\u0438"},
+1E4:{other:"00 \u0445\u0438\u043b\u044f\u0434\u0438"},1E5:{other:"000 \u0445\u0438\u043b\u044f\u0434\u0438"},1E6:{other:"0 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0438\u043b\u0438\u0430\u0440\u0434\u0430"},1E10:{other:"00 \u043c\u0438\u043b\u0438\u0430\u0440\u0434\u0430"},1E11:{other:"000 \u043c\u0438\u043b\u0438\u0430\u0440\u0434\u0430"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},
+1E13:{other:"00 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_bg_BG=goog.i18n.CompactNumberFormatSymbols_bg;
+goog.i18n.CompactNumberFormatSymbols_bn={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u09b9\u09be\u099c\u09be\u09b0"},1E4:{other:"00 \u09b9\u09be\u099c\u09be\u09b0"},1E5:{other:"000 \u09b9\u09be\u099c\u09be\u09b0"},1E6:{other:"0 \u09ae\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},
+1E7:{other:"00 \u09ae\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E8:{other:"000 \u09ae\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E9:{other:"0 \u09ac\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E10:{other:"00 \u09ac\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E11:{other:"000 \u09ac\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E12:{other:"0 \u099f\u09cd\u09b0\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E13:{other:"00 \u099f\u09cd\u09b0\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E14:{other:"000 \u099f\u09cd\u09b0\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"}}};
+goog.i18n.CompactNumberFormatSymbols_bn_BD=goog.i18n.CompactNumberFormatSymbols_bn;goog.i18n.CompactNumberFormatSymbols_br={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_br_FR=goog.i18n.CompactNumberFormatSymbols_br;
+goog.i18n.CompactNumberFormatSymbols_ca={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 milions"},1E7:{other:"00 milions"},
+1E8:{other:"000 milions"},1E9:{other:"0 miliards"},1E10:{other:"00 miliards"},1E11:{other:"000 miliards"},1E12:{other:"0 bilions"},1E13:{other:"00 bilions"},1E14:{other:"000 bilions"}}};goog.i18n.CompactNumberFormatSymbols_ca_AD=goog.i18n.CompactNumberFormatSymbols_ca;goog.i18n.CompactNumberFormatSymbols_ca_ES=goog.i18n.CompactNumberFormatSymbols_ca;
+goog.i18n.CompactNumberFormatSymbols_chr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_chr_US=goog.i18n.CompactNumberFormatSymbols_chr;
+goog.i18n.CompactNumberFormatSymbols_cs={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tis."},1E4:{other:"00\u00a0tis."},1E5:{other:"000\u00a0tis."},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"00 tis\u00edc"},1E5:{other:"000 tis\u00edc"},
+1E6:{other:"0 milion\u016f"},1E7:{other:"00 milion\u016f"},1E8:{other:"000 milion\u016f"},1E9:{other:"0 miliard"},1E10:{other:"00 miliard"},1E11:{other:"000 miliard"},1E12:{other:"0 bilion\u016f"},1E13:{other:"00 bilion\u016f"},1E14:{other:"000 bilion\u016f"}}};goog.i18n.CompactNumberFormatSymbols_cs_CZ=goog.i18n.CompactNumberFormatSymbols_cs;
+goog.i18n.CompactNumberFormatSymbols_cy={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 miliwn"},1E7:{other:"00 miliwn"},1E8:{other:"000 miliwn"},1E9:{other:"0 biliwn"},1E10:{other:"00 biliwn"},
+1E11:{other:"000 biliwn"},1E12:{other:"0 triliwn"},1E13:{other:"00 triliwn"},1E14:{other:"000 triliwn"}}};goog.i18n.CompactNumberFormatSymbols_cy_GB=goog.i18n.CompactNumberFormatSymbols_cy;
+goog.i18n.CompactNumberFormatSymbols_da={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mio"},1E7:{other:"00\u00a0mio"},1E8:{other:"000\u00a0mio"},1E9:{other:"0\u00a0mia"},1E10:{other:"00\u00a0mia"},1E11:{other:"000\u00a0mia"},1E12:{other:"0\u00a0bill"},1E13:{other:"00\u00a0bill"},1E14:{other:"000\u00a0bill"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusind"},1E4:{other:"00 tusind"},1E5:{other:"000 tusind"},1E6:{other:"0 millioner"},1E7:{other:"00 millioner"},
+1E8:{other:"000 millioner"},1E9:{other:"0 milliarder"},1E10:{other:"00 milliarder"},1E11:{other:"000 milliarder"},1E12:{other:"0 billioner"},1E13:{other:"00 billioner"},1E14:{other:"000 billioner"}}};goog.i18n.CompactNumberFormatSymbols_da_DK=goog.i18n.CompactNumberFormatSymbols_da;
+goog.i18n.CompactNumberFormatSymbols_de={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 Tausend"},1E4:{other:"00 Tausend"},1E5:{other:"000 Tausend"},1E6:{other:"0 Millionen"},1E7:{other:"00 Millionen"},
+1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};
+goog.i18n.CompactNumberFormatSymbols_de_AT={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 Tausend"},1E4:{other:"00 Tausend"},1E5:{other:"000 Tausend"},1E6:{other:"0 Millionen"},1E7:{other:"00 Millionen"},
+1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};goog.i18n.CompactNumberFormatSymbols_de_BE=goog.i18n.CompactNumberFormatSymbols_de;
+goog.i18n.CompactNumberFormatSymbols_de_CH={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 Tausend"},1E4:{other:"00 Tausend"},1E5:{other:"000 Tausend"},1E6:{other:"0 Millionen"},1E7:{other:"00 Millionen"},
+1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};goog.i18n.CompactNumberFormatSymbols_de_DE=goog.i18n.CompactNumberFormatSymbols_de;goog.i18n.CompactNumberFormatSymbols_de_LU=goog.i18n.CompactNumberFormatSymbols_de;
+goog.i18n.CompactNumberFormatSymbols_el={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u03c7\u03b9\u03bb."},1E4:{other:"00\u00a0\u03c7\u03b9\u03bb."},1E5:{other:"000\u00a0\u03c7\u03b9\u03bb."},1E6:{other:"0\u00a0\u03b5\u03ba."},1E7:{other:"00\u00a0\u03b5\u03ba."},1E8:{other:"000\u00a0\u03b5\u03ba."},1E9:{other:"0\u00a0\u03b4\u03b9\u03c2"},1E10:{other:"00\u00a0\u03b4\u03b9\u03c2"},1E11:{other:"000\u00a0\u03b4\u03b9\u03c2"},1E12:{other:"0\u00a0\u03c4\u03c1\u03b9\u03c2"},1E13:{other:"00\u00a0\u03c4\u03c1\u03b9\u03c2"},
+1E14:{other:"000\u00a0\u03c4\u03c1\u03b9\u03c2"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u03c7\u03b9\u03bb\u03b9\u03ac\u03b4\u03b5\u03c2"},1E4:{other:"00 \u03c7\u03b9\u03bb\u03b9\u03ac\u03b4\u03b5\u03c2"},1E5:{other:"000 \u03c7\u03b9\u03bb\u03b9\u03ac\u03b4\u03b5\u03c2"},1E6:{other:"0 \u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E7:{other:"00 \u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E8:{other:"000 \u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},
+1E9:{other:"0 \u03b4\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E10:{other:"00 \u03b4\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E11:{other:"000 \u03b4\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E12:{other:"0 \u03c4\u03c1\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E13:{other:"00 \u03c4\u03c1\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},
+1E14:{other:"000 \u03c4\u03c1\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"}}};goog.i18n.CompactNumberFormatSymbols_el_GR=goog.i18n.CompactNumberFormatSymbols_el;
+goog.i18n.CompactNumberFormatSymbols_en={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_AS=goog.i18n.CompactNumberFormatSymbols_en;
+goog.i18n.CompactNumberFormatSymbols_en_AU={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_Dsrt_US=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_FM=goog.i18n.CompactNumberFormatSymbols_en;
+goog.i18n.CompactNumberFormatSymbols_en_GB={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_GU=goog.i18n.CompactNumberFormatSymbols_en;
+goog.i18n.CompactNumberFormatSymbols_en_IE={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};
+goog.i18n.CompactNumberFormatSymbols_en_IN={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_MH=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_MP=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_PR=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_PW=goog.i18n.CompactNumberFormatSymbols_en;
+goog.i18n.CompactNumberFormatSymbols_en_SG={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_TC=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_UM=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_US=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_VG=goog.i18n.CompactNumberFormatSymbols_en;
+goog.i18n.CompactNumberFormatSymbols_en_VI=goog.i18n.CompactNumberFormatSymbols_en;
+goog.i18n.CompactNumberFormatSymbols_en_ZA={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},
+1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};
+goog.i18n.CompactNumberFormatSymbols_es={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00\u00a0K\u00a0M"},1E11:{other:"000\u00a0K\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 millones"},
+1E7:{other:"00 millones"},1E8:{other:"000 millones"},1E9:{other:"0 millardos"},1E10:{other:"00 millardos"},1E11:{other:"000 millardos"},1E12:{other:"0 billones"},1E13:{other:"00 billones"},1E14:{other:"000 billones"}}};
+goog.i18n.CompactNumberFormatSymbols_es_419={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00k"},1E5:{other:"000k"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0k\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 millones"},1E7:{other:"00 millones"},1E8:{other:"000 millones"},
+1E9:{other:"0 millardos"},1E10:{other:"00 millardos"},1E11:{other:"000 millardos"},1E12:{other:"0 billones"},1E13:{other:"00 billones"},1E14:{other:"000 billones"}}};goog.i18n.CompactNumberFormatSymbols_es_EA=goog.i18n.CompactNumberFormatSymbols_es;goog.i18n.CompactNumberFormatSymbols_es_ES=goog.i18n.CompactNumberFormatSymbols_es;goog.i18n.CompactNumberFormatSymbols_es_IC=goog.i18n.CompactNumberFormatSymbols_es;
+goog.i18n.CompactNumberFormatSymbols_et={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tuh"},1E4:{other:"00\u00a0tuh"},1E5:{other:"000\u00a0tuh"},1E6:{other:"0\u00a0mln"},1E7:{other:"00\u00a0mln"},1E8:{other:"000\u00a0mln"},1E9:{other:"0\u00a0mld"},1E10:{other:"00\u00a0mld"},1E11:{other:"000\u00a0mld"},1E12:{other:"0\u00a0trl"},1E13:{other:"00\u00a0trl"},1E14:{other:"000\u00a0trl"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tuhat"},1E4:{other:"00 tuhat"},1E5:{other:"000 tuhat"},1E6:{other:"0 miljonit"},
+1E7:{other:"00 miljonit"},1E8:{other:"000 miljonit"},1E9:{other:"0 miljardit"},1E10:{other:"00 miljardit"},1E11:{other:"000 miljardit"},1E12:{other:"0 triljonit"},1E13:{other:"00 triljonit"},1E14:{other:"000 triljonit"}}};goog.i18n.CompactNumberFormatSymbols_et_EE=goog.i18n.CompactNumberFormatSymbols_et;
+goog.i18n.CompactNumberFormatSymbols_eu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0 milioi"},1E7:{other:"00 milioi"},1E8:{other:"000 milioi"},1E9:{other:"0000 milioi"},
+1E10:{other:"00000 milioi"},1E11:{other:"000000 milioi"},1E12:{other:"0 bilioi"},1E13:{other:"00 bilioi"},1E14:{other:"000 bilioi"}}};goog.i18n.CompactNumberFormatSymbols_eu_ES=goog.i18n.CompactNumberFormatSymbols_eu;
+goog.i18n.CompactNumberFormatSymbols_fa={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0647\u0632\u0627\u0631"},1E4:{other:"00 \u0647\u0632\u0627\u0631"},1E5:{other:"000 \u0647\u0632\u0627\u0631"},1E6:{other:"0 \u0645\u06cc\u0644\u06cc\u0648\u0646"},
+1E7:{other:"00 \u0645\u06cc\u0644\u06cc\u0648\u0646"},1E8:{other:"000 \u0645\u06cc\u0644\u06cc\u0648\u0646"},1E9:{other:"0 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E10:{other:"00 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E11:{other:"000 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E12:{other:"0 \u0647\u0632\u0627\u0631 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E13:{other:"00 \u0647\u0632\u0627\u0631 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E14:{other:"000 \u0647\u0632\u0627\u0631 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"}}};
+goog.i18n.CompactNumberFormatSymbols_fa_IR=goog.i18n.CompactNumberFormatSymbols_fa;
+goog.i18n.CompactNumberFormatSymbols_fi={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0t."},1E4:{other:"00\u00a0t."},1E5:{other:"000\u00a0t."},1E6:{other:"0\u00a0milj."},1E7:{other:"00\u00a0milj."},1E8:{other:"000\u00a0milj."},1E9:{other:"0\u00a0mrd."},1E10:{other:"00\u00a0mrd."},1E11:{other:"000\u00a0mrd."},1E12:{other:"0\u00a0bilj."},1E13:{other:"00\u00a0bilj."},1E14:{other:"000\u00a0bilj."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tuhatta"},1E4:{other:"00 tuhatta"},1E5:{other:"000 tuhatta"},
+1E6:{other:"0 miljoonaa"},1E7:{other:"00 miljoonaa"},1E8:{other:"000 miljoonaa"},1E9:{other:"0 miljardia"},1E10:{other:"00 miljardia"},1E11:{other:"000 miljardia"},1E12:{other:"0 biljoonaa"},1E13:{other:"00 biljoonaa"},1E14:{other:"000 biljoonaa"}}};goog.i18n.CompactNumberFormatSymbols_fi_FI=goog.i18n.CompactNumberFormatSymbols_fi;
+goog.i18n.CompactNumberFormatSymbols_fil={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 (na) libo"},1E4:{other:"00 (na) libo"},1E5:{other:"000 (na) libo"},1E6:{other:"0 (na) milyon"},1E7:{other:"00 (na) milyon"},1E8:{other:"000 (na) milyon"},1E9:{other:"0 (na) bilyon"},
+1E10:{other:"00 (na) bilyon"},1E11:{other:"000 (na) bilyon"},1E12:{other:"0 (na) trilyon"},1E13:{other:"00 (na) trilyon"},1E14:{other:"000 (na) trilyon"}}};goog.i18n.CompactNumberFormatSymbols_fil_PH=goog.i18n.CompactNumberFormatSymbols_fil;
+goog.i18n.CompactNumberFormatSymbols_fr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0Md"},1E10:{other:"00\u00a0Md"},1E11:{other:"000\u00a0Md"},1E12:{other:"0\u00a0Bn"},1E13:{other:"00\u00a0Bn"},1E14:{other:"000\u00a0Bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mille"},1E4:{other:"00 mille"},1E5:{other:"000 mille"},1E6:{other:"0 millions"},1E7:{other:"00 millions"},
+1E8:{other:"000 millions"},1E9:{other:"0 milliards"},1E10:{other:"00 milliards"},1E11:{other:"000 milliards"},1E12:{other:"0 billions"},1E13:{other:"00 billions"},1E14:{other:"000 billions"}}};goog.i18n.CompactNumberFormatSymbols_fr_BL=goog.i18n.CompactNumberFormatSymbols_fr;
+goog.i18n.CompactNumberFormatSymbols_fr_CA={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0Md"},1E10:{other:"00\u00a0Md"},1E11:{other:"000\u00a0Md"},1E12:{other:"0\u00a0Bn"},1E13:{other:"00\u00a0Bn"},1E14:{other:"000\u00a0Bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mille"},1E4:{other:"00 mille"},1E5:{other:"000 mille"},1E6:{other:"0 millions"},1E7:{other:"00 millions"},
+1E8:{other:"000 millions"},1E9:{other:"0 milliards"},1E10:{other:"00 milliards"},1E11:{other:"000 milliards"},1E12:{other:"0 billions"},1E13:{other:"00 billions"},1E14:{other:"000 billions"}}};goog.i18n.CompactNumberFormatSymbols_fr_FR=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_GF=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_GP=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_MC=goog.i18n.CompactNumberFormatSymbols_fr;
+goog.i18n.CompactNumberFormatSymbols_fr_MF=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_MQ=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_RE=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_YT=goog.i18n.CompactNumberFormatSymbols_fr;
+goog.i18n.CompactNumberFormatSymbols_gl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00k"},1E5:{other:"000k"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 mill\u00f3ns"},1E7:{other:"00 mill\u00f3ns"},
+1E8:{other:"000 mill\u00f3ns"},1E9:{other:"0 mil mill\u00f3ns"},1E10:{other:"00 mil mill\u00f3ns"},1E11:{other:"000 mil mill\u00f3ns"},1E12:{other:"0 bill\u00f3ns"},1E13:{other:"00 bill\u00f3ns"},1E14:{other:"000 bill\u00f3ns"}}};goog.i18n.CompactNumberFormatSymbols_gl_ES=goog.i18n.CompactNumberFormatSymbols_gl;
+goog.i18n.CompactNumberFormatSymbols_gsw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tsd"},1E4:{other:"00\u00a0tsd"},1E5:{other:"000\u00a0tsd"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tausend"},1E4:{other:"00 tausend"},1E5:{other:"000 tausend"},1E6:{other:"0 Millionen"},
+1E7:{other:"00 Millionen"},1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};goog.i18n.CompactNumberFormatSymbols_gsw_CH=goog.i18n.CompactNumberFormatSymbols_gsw;
+goog.i18n.CompactNumberFormatSymbols_gu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0ab9\u0a9c\u0abe\u0ab0"},1E4:{other:"00 \u0ab9\u0a9c\u0abe\u0ab0"},1E5:{other:"000 \u0ab9\u0a9c\u0abe\u0ab0"},1E6:{other:"0 \u0aae\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},
+1E7:{other:"00 \u0aae\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E8:{other:"000 \u0aae\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E9:{other:"0 \u0aac\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E10:{other:"00 \u0aac\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E11:{other:"000 \u0aac\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E12:{other:"0 \u0a9f\u0acd\u0ab0\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E13:{other:"00 \u0a9f\u0acd\u0ab0\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E14:{other:"000 \u0a9f\u0acd\u0ab0\u0abf\u0ab2\u0abf\u0aaf\u0aa8"}}};
+goog.i18n.CompactNumberFormatSymbols_gu_IN=goog.i18n.CompactNumberFormatSymbols_gu;goog.i18n.CompactNumberFormatSymbols_haw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_haw_US=goog.i18n.CompactNumberFormatSymbols_haw;
+goog.i18n.CompactNumberFormatSymbols_he={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"\u200f0\u00a0\u05d0\u05dc\u05e3"},1E4:{other:"\u200f00\u00a0\u05d0\u05dc\u05e3"},1E5:{other:"\u200f000\u00a0\u05d0\u05dc\u05e3"},1E6:{other:"\u200f0\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},
+1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"\u200f0 \u05d0\u05dc\u05e3"},1E4:{other:"\u200f00 \u05d0\u05dc\u05e3"},1E5:{other:"\u200f000 \u05d0\u05dc\u05e3"},1E6:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E10:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E11:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},
+1E12:{other:"\u200f0 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E13:{other:"\u200f00 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E14:{other:"\u200f000 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"}}};goog.i18n.CompactNumberFormatSymbols_he_IL=goog.i18n.CompactNumberFormatSymbols_he;
+goog.i18n.CompactNumberFormatSymbols_hi={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0L"},1E6:{other:"00L"},1E7:{other:"0Cr"},1E8:{other:"00Cr"},1E9:{other:"000Cr"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0939\u091c\u093c\u093e\u0930"},1E4:{other:"00 \u0939\u091c\u093c\u093e\u0930"},1E5:{other:"0 \u0932\u093e\u0916"},1E6:{other:"00 \u0932\u093e\u0916"},1E7:{other:"0 \u0915\u0930\u094b\u0921\u093c"},
+1E8:{other:"00 \u0915\u0930\u094b\u0921\u093c"},1E9:{other:"0 \u0905\u0930\u092c"},1E10:{other:"00 \u0905\u0930\u092c"},1E11:{other:"0 \u0916\u0930\u092c"},1E12:{other:"00 \u0916\u0930\u092c"},1E13:{other:"000 \u0916\u0930\u092c"},1E14:{other:"0000 \u0916\u0930\u092c"}}};goog.i18n.CompactNumberFormatSymbols_hi_IN=goog.i18n.CompactNumberFormatSymbols_hi;
+goog.i18n.CompactNumberFormatSymbols_hr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mlr."},1E10:{other:"00\u00a0mlr."},1E11:{other:"000\u00a0mlr."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0 milijuna"},1E7:{other:"00 milijuna"},1E8:{other:"000 milijuna"},
+1E9:{other:"0 milijarda"},1E10:{other:"00 milijarda"},1E11:{other:"000 milijarda"},1E12:{other:"0 bilijuna"},1E13:{other:"00 bilijuna"},1E14:{other:"000 bilijuna"}}};goog.i18n.CompactNumberFormatSymbols_hr_HR=goog.i18n.CompactNumberFormatSymbols_hr;
+goog.i18n.CompactNumberFormatSymbols_hu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0E"},1E4:{other:"00\u00a0E"},1E5:{other:"000\u00a0E"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ezer"},1E4:{other:"00 ezer"},1E5:{other:"000 ezer"},1E6:{other:"0 milli\u00f3"},1E7:{other:"00 milli\u00f3"},
+1E8:{other:"000 milli\u00f3"},1E9:{other:"0 milli\u00e1rd"},1E10:{other:"00 milli\u00e1rd"},1E11:{other:"000 milli\u00e1rd"},1E12:{other:"0 billi\u00f3"},1E13:{other:"00 billi\u00f3"},1E14:{other:"000 billi\u00f3"}}};goog.i18n.CompactNumberFormatSymbols_hu_HU=goog.i18n.CompactNumberFormatSymbols_hu;
+goog.i18n.CompactNumberFormatSymbols_id={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0rb"},1E5:{other:"000\u00a0rb"},1E6:{other:"0\u00a0jt"},1E7:{other:"00\u00a0jt"},1E8:{other:"000\u00a0jt"},1E9:{other:"0\u00a0M"},1E10:{other:"00\u00a0M"},1E11:{other:"000\u00a0M"},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ribu"},1E4:{other:"00 ribu"},1E5:{other:"000 ribu"},1E6:{other:"0 juta"},1E7:{other:"00 juta"},
+1E8:{other:"000 juta"},1E9:{other:"0 miliar"},1E10:{other:"00 miliar"},1E11:{other:"000 miliar"},1E12:{other:"0 triliun"},1E13:{other:"00 triliun"},1E14:{other:"000 triliun"}}};goog.i18n.CompactNumberFormatSymbols_id_ID=goog.i18n.CompactNumberFormatSymbols_id;
+goog.i18n.CompactNumberFormatSymbols_in={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0rb"},1E5:{other:"000\u00a0rb"},1E6:{other:"0\u00a0jt"},1E7:{other:"00\u00a0jt"},1E8:{other:"000\u00a0jt"},1E9:{other:"0\u00a0M"},1E10:{other:"00\u00a0M"},1E11:{other:"000\u00a0M"},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ribu"},1E4:{other:"00 ribu"},1E5:{other:"000 ribu"},1E6:{other:"0 juta"},1E7:{other:"00 juta"},
+1E8:{other:"000 juta"},1E9:{other:"0 miliar"},1E10:{other:"00 miliar"},1E11:{other:"000 miliar"},1E12:{other:"0 triliun"},1E13:{other:"00 triliun"},1E14:{other:"000 triliun"}}};
+goog.i18n.CompactNumberFormatSymbols_is={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u00fe."},1E4:{other:"00\u00a0\u00fe."},1E5:{other:"000\u00a0\u00fe."},1E6:{other:"0\u00a0m."},1E7:{other:"00\u00a0m."},1E8:{other:"000\u00a0m."},1E9:{other:"0\u00a0ma."},1E10:{other:"00\u00a0ma."},1E11:{other:"000\u00a0ma."},1E12:{other:"0\u00a0bn"},1E13:{other:"00\u00a0bn"},1E14:{other:"000\u00a0bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u00fe\u00fasund"},1E4:{other:"00 \u00fe\u00fasund"},1E5:{other:"000 \u00fe\u00fasund"},
+1E6:{other:"0 millj\u00f3nir"},1E7:{other:"00 millj\u00f3nir"},1E8:{other:"000 millj\u00f3nir"},1E9:{other:"0 milljar\u00f0ar"},1E10:{other:"00 milljar\u00f0ar"},1E11:{other:"000 milljar\u00f0ar"},1E12:{other:"0 billj\u00f3nir"},1E13:{other:"00 billj\u00f3nir"},1E14:{other:"000 billj\u00f3nir"}}};goog.i18n.CompactNumberFormatSymbols_is_IS=goog.i18n.CompactNumberFormatSymbols_is;
+goog.i18n.CompactNumberFormatSymbols_it={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mln"},1E7:{other:"00\u00a0Mln"},1E8:{other:"000\u00a0Mln"},1E9:{other:"0\u00a0Mld"},1E10:{other:"00\u00a0Mld"},1E11:{other:"000\u00a0Mld"},1E12:{other:"0\u00a0Bln"},1E13:{other:"00\u00a0Bln"},1E14:{other:"000\u00a0Bln"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 migliaia"},1E4:{other:"00 migliaia"},1E5:{other:"000 migliaia"},1E6:{other:"0 milioni"},1E7:{other:"00 milioni"},
+1E8:{other:"000 milioni"},1E9:{other:"0 miliardi"},1E10:{other:"00 miliardi"},1E11:{other:"000 miliardi"},1E12:{other:"0 bilioni"},1E13:{other:"00 bilioni"},1E14:{other:"000 bilioni"}}};goog.i18n.CompactNumberFormatSymbols_it_IT=goog.i18n.CompactNumberFormatSymbols_it;goog.i18n.CompactNumberFormatSymbols_it_SM=goog.i18n.CompactNumberFormatSymbols_it;
+goog.i18n.CompactNumberFormatSymbols_iw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"\u200f0\u00a0\u05d0\u05dc\u05e3"},1E4:{other:"\u200f00\u00a0\u05d0\u05dc\u05e3"},1E5:{other:"\u200f000\u00a0\u05d0\u05dc\u05e3"},1E6:{other:"\u200f0\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},
+1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"\u200f0 \u05d0\u05dc\u05e3"},1E4:{other:"\u200f00 \u05d0\u05dc\u05e3"},1E5:{other:"\u200f000 \u05d0\u05dc\u05e3"},1E6:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E10:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E11:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},
+1E12:{other:"\u200f0 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E13:{other:"\u200f00 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E14:{other:"\u200f000 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"}}};
+goog.i18n.CompactNumberFormatSymbols_ja={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u5343"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"},1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"},1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0\u5343"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"},
+1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"},1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}}};goog.i18n.CompactNumberFormatSymbols_ja_JP=goog.i18n.CompactNumberFormatSymbols_ja;
+goog.i18n.CompactNumberFormatSymbols_kn={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0cb8\u0cbe\u0cb5\u0cbf\u0cb0"},1E4:{other:"00 \u0cb8\u0cbe\u0cb5\u0cbf\u0cb0"},1E5:{other:"000 \u0cb8\u0cbe\u0cb5\u0cbf\u0cb0"},1E6:{other:"0 \u0cae\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},
+1E7:{other:"00 \u0cae\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E8:{other:"000 \u0cae\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E9:{other:"0 \u0cac\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E10:{other:"00 \u0cac\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E11:{other:"000 \u0cac\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E12:{other:"0 \u0c9f\u0ccd\u0cb0\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd\u200c"},1E13:{other:"00 \u0c9f\u0ccd\u0cb0\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd\u200c"},1E14:{other:"000 \u0c9f\u0ccd\u0cb0\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd\u200c"}}};
+goog.i18n.CompactNumberFormatSymbols_kn_IN=goog.i18n.CompactNumberFormatSymbols_kn;
+goog.i18n.CompactNumberFormatSymbols_ko={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0\ub9cc"},1E5:{other:"00\ub9cc"},1E6:{other:"000\ub9cc"},1E7:{other:"0000\ub9cc"},1E8:{other:"0\uc5b5"},1E9:{other:"00\uc5b5"},1E10:{other:"000\uc5b5"},1E11:{other:"0000\uc5b5"},1E12:{other:"0\uc870"},1E13:{other:"00\uc870"},1E14:{other:"000\uc870"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\ub9cc"},1E5:{other:"00\ub9cc"},1E6:{other:"000\ub9cc"},1E7:{other:"0000\ub9cc"},1E8:{other:"0\uc5b5"},
+1E9:{other:"00\uc5b5"},1E10:{other:"000\uc5b5"},1E11:{other:"0000\uc5b5"},1E12:{other:"0\uc870"},1E13:{other:"00\uc870"},1E14:{other:"000\uc870"}}};goog.i18n.CompactNumberFormatSymbols_ko_KR=goog.i18n.CompactNumberFormatSymbols_ko;
+goog.i18n.CompactNumberFormatSymbols_ln={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_ln_CD=goog.i18n.CompactNumberFormatSymbols_ln;
+goog.i18n.CompactNumberFormatSymbols_lt={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0G"},1E10:{other:"00\u00a0G"},1E11:{other:"000\u00a0G"},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 t\u016bkstan\u010di\u0173"},1E4:{other:"00 t\u016bkstan\u010di\u0173"},1E5:{other:"000 t\u016bkstan\u010di\u0173"},
+1E6:{other:"0 milijon\u0173"},1E7:{other:"00 milijon\u0173"},1E8:{other:"000 milijon\u0173"},1E9:{other:"0 milijard\u0173"},1E10:{other:"00 milijard\u0173"},1E11:{other:"000 milijard\u0173"},1E12:{other:"0 trilijon\u0173"},1E13:{other:"00 trilijon\u0173"},1E14:{other:"000 trilijon\u0173"}}};goog.i18n.CompactNumberFormatSymbols_lt_LT=goog.i18n.CompactNumberFormatSymbols_lt;
+goog.i18n.CompactNumberFormatSymbols_lv={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0t\u016bkst."},1E4:{other:"00\u00a0t\u016bkst."},1E5:{other:"000\u00a0t\u016bkst."},1E6:{other:"0\u00a0milj."},1E7:{other:"00\u00a0milj."},1E8:{other:"000\u00a0milj."},1E9:{other:"0\u00a0md"},1E10:{other:"00\u00a0md"},1E11:{other:"000\u00a0md"},1E12:{other:"0\u00a0trilj."},1E13:{other:"00\u00a0trilj."},1E14:{other:"000\u00a0trilj."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 t\u016bksto\u0161i"},1E4:{other:"00 t\u016bksto\u0161i"},
+1E5:{other:"000 t\u016bksto\u0161i"},1E6:{other:"0 miljoni"},1E7:{other:"00 miljoni"},1E8:{other:"000 miljoni"},1E9:{other:"0 miljardi"},1E10:{other:"00 miljardi"},1E11:{other:"000 miljardi"},1E12:{other:"0 trilj."},1E13:{other:"00 trilj."},1E14:{other:"000 trilj."}}};goog.i18n.CompactNumberFormatSymbols_lv_LV=goog.i18n.CompactNumberFormatSymbols_lv;
+goog.i18n.CompactNumberFormatSymbols_ml={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0d06\u0d2f\u0d3f\u0d30\u0d02"},1E4:{other:"00 \u0d06\u0d2f\u0d3f\u0d30\u0d02"},1E5:{other:"000 \u0d06\u0d2f\u0d3f\u0d30\u0d02"},1E6:{other:"0 \u0d26\u0d36\u0d32\u0d15\u0d4d\u0d37\u0d02"},
+1E7:{other:"00 \u0d26\u0d36\u0d32\u0d15\u0d4d\u0d37\u0d02"},1E8:{other:"000 \u0d26\u0d36\u0d32\u0d15\u0d4d\u0d37\u0d02"},1E9:{other:"0 \u0d32\u0d15\u0d4d\u0d37\u0d02 \u0d15\u0d4b\u0d1f\u0d3f"},1E10:{other:"00 \u0d32\u0d15\u0d4d\u0d37\u0d02 \u0d15\u0d4b\u0d1f\u0d3f"},1E11:{other:"000 \u0d32\u0d15\u0d4d\u0d37\u0d02 \u0d15\u0d4b\u0d1f\u0d3f"},1E12:{other:"0 \u0d1f\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u0d2f\u0d7a"},1E13:{other:"00 \u0d1f\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u0d2f\u0d7a"},1E14:{other:"000 \u0d1f\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u0d2f\u0d7a"}}};
+goog.i18n.CompactNumberFormatSymbols_ml_IN=goog.i18n.CompactNumberFormatSymbols_ml;
+goog.i18n.CompactNumberFormatSymbols_mr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0939\u091c\u093e\u0930"},1E4:{other:"00 \u0939\u091c\u093e\u0930"},1E5:{other:"000 \u0939\u091c\u093e\u0930"},1E6:{other:"0 \u0926\u0936\u0932\u0915\u094d\u0937"},
+1E7:{other:"00 \u0926\u0936\u0932\u0915\u094d\u0937"},1E8:{other:"000 \u0926\u0936\u0932\u0915\u094d\u0937"},1E9:{other:"0 \u092e\u0939\u093e\u092a\u0926\u094d\u092e"},1E10:{other:"00 \u092e\u0939\u093e\u092a\u0926\u094d\u092e"},1E11:{other:"000 \u092e\u0939\u093e\u092a\u0926\u094d\u092e"},1E12:{other:"0 \u0926\u0939\u093e \u0916\u0930\u092c"},1E13:{other:"00 \u0926\u0939\u093e \u0916\u0930\u092c"},1E14:{other:"000 \u0926\u0939\u093e \u0916\u0930\u092c"}}};
+goog.i18n.CompactNumberFormatSymbols_mr_IN=goog.i18n.CompactNumberFormatSymbols_mr;
+goog.i18n.CompactNumberFormatSymbols_ms={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0J"},1E7:{other:"00J"},1E8:{other:"000J"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ribu"},1E4:{other:"00 ribu"},1E5:{other:"000 ribu"},1E6:{other:"0 juta"},1E7:{other:"00 juta"},1E8:{other:"000 juta"},1E9:{other:"0 bilion"},1E10:{other:"00 bilion"},
+1E11:{other:"000 bilion"},1E12:{other:"0 trilion"},1E13:{other:"00 trilion"},1E14:{other:"000 trilion"}}};goog.i18n.CompactNumberFormatSymbols_ms_Latn_MY=goog.i18n.CompactNumberFormatSymbols_ms;goog.i18n.CompactNumberFormatSymbols_mt={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};
+goog.i18n.CompactNumberFormatSymbols_mt_MT=goog.i18n.CompactNumberFormatSymbols_mt;
+goog.i18n.CompactNumberFormatSymbols_nb={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mill"},1E7:{other:"00\u00a0mill"},1E8:{other:"000\u00a0mill"},1E9:{other:"0\u00a0mrd"},1E10:{other:"00\u00a0mrd"},1E11:{other:"000\u00a0mrd"},1E12:{other:"0\u00a0bill"},1E13:{other:"00\u00a0bill"},1E14:{other:"000\u00a0bill"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusen"},1E4:{other:"00 tusen"},1E5:{other:"000 tusen"},1E6:{other:"0 millioner"},1E7:{other:"00 millioner"},
+1E8:{other:"000 millioner"},1E9:{other:"0 milliarder"},1E10:{other:"00 milliarder"},1E11:{other:"000 milliarder"},1E12:{other:"0 billioner"},1E13:{other:"00 billioner"},1E14:{other:"000 billioner"}}};goog.i18n.CompactNumberFormatSymbols_nb_NO=goog.i18n.CompactNumberFormatSymbols_nb;
+goog.i18n.CompactNumberFormatSymbols_nl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0\u00a0mln."},1E7:{other:"00\u00a0mln."},1E8:{other:"000\u00a0mln."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0bln."},1E13:{other:"00\u00a0bln."},1E14:{other:"000\u00a0bln."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 duizend"},1E4:{other:"00 duizend"},1E5:{other:"000 duizend"},1E6:{other:"0 miljoen"},
+1E7:{other:"00 miljoen"},1E8:{other:"000 miljoen"},1E9:{other:"0 miljard"},1E10:{other:"00 miljard"},1E11:{other:"000 miljard"},1E12:{other:"0 biljoen"},1E13:{other:"00 biljoen"},1E14:{other:"000 biljoen"}}};goog.i18n.CompactNumberFormatSymbols_nl_NL=goog.i18n.CompactNumberFormatSymbols_nl;
+goog.i18n.CompactNumberFormatSymbols_no={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mill"},1E7:{other:"00\u00a0mill"},1E8:{other:"000\u00a0mill"},1E9:{other:"0\u00a0mrd"},1E10:{other:"00\u00a0mrd"},1E11:{other:"000\u00a0mrd"},1E12:{other:"0\u00a0bill"},1E13:{other:"00\u00a0bill"},1E14:{other:"000\u00a0bill"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusen"},1E4:{other:"00 tusen"},1E5:{other:"000 tusen"},1E6:{other:"0 millioner"},1E7:{other:"00 millioner"},
+1E8:{other:"000 millioner"},1E9:{other:"0 milliarder"},1E10:{other:"00 milliarder"},1E11:{other:"000 milliarder"},1E12:{other:"0 billioner"},1E13:{other:"00 billioner"},1E14:{other:"000 billioner"}}};goog.i18n.CompactNumberFormatSymbols_or={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};
+goog.i18n.CompactNumberFormatSymbols_or_IN=goog.i18n.CompactNumberFormatSymbols_or;
+goog.i18n.CompactNumberFormatSymbols_pl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tys."},1E4:{other:"00\u00a0tys."},1E5:{other:"000\u00a0tys."},1E6:{other:"0\u00a0mln"},1E7:{other:"00\u00a0mln"},1E8:{other:"000\u00a0mln"},1E9:{other:"0\u00a0mld"},1E10:{other:"00\u00a0mld"},1E11:{other:"000\u00a0mld"},1E12:{other:"0\u00a0bln"},1E13:{other:"00\u00a0bln"},1E14:{other:"000\u00a0bln"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tysi\u0105ca"},1E4:{other:"00 tysi\u0105ca"},1E5:{other:"000 tysi\u0105ca"},
+1E6:{other:"0 miliona"},1E7:{other:"00 miliona"},1E8:{other:"000 miliona"},1E9:{other:"0 miliarda"},1E10:{other:"00 miliarda"},1E11:{other:"000 miliarda"},1E12:{other:"0 biliona"},1E13:{other:"00 biliona"},1E14:{other:"000 biliona"}}};goog.i18n.CompactNumberFormatSymbols_pl_PL=goog.i18n.CompactNumberFormatSymbols_pl;
+goog.i18n.CompactNumberFormatSymbols_pt={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0mil"},1E4:{other:"00\u00a0mil"},1E5:{other:"000\u00a0mil"},1E6:{other:"0\u00a0mi"},1E7:{other:"00\u00a0mi"},1E8:{other:"000\u00a0mi"},1E9:{other:"0\u00a0bi"},1E10:{other:"00\u00a0bi"},1E11:{other:"000\u00a0bi"},1E12:{other:"0\u00a0tri"},1E13:{other:"00\u00a0tri"},1E14:{other:"000\u00a0tri"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 milh\u00f5es"},
+1E7:{other:"00 milh\u00f5es"},1E8:{other:"000 milh\u00f5es"},1E9:{other:"0 bilh\u00f5es"},1E10:{other:"00 bilh\u00f5es"},1E11:{other:"000 bilh\u00f5es"},1E12:{other:"0 trilh\u00f5es"},1E13:{other:"00 trilh\u00f5es"},1E14:{other:"000 trilh\u00f5es"}}};goog.i18n.CompactNumberFormatSymbols_pt_BR=goog.i18n.CompactNumberFormatSymbols_pt;
+goog.i18n.CompactNumberFormatSymbols_pt_PT={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0mil"},1E4:{other:"00\u00a0mil"},1E5:{other:"000\u00a0mil"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0MM"},1E10:{other:"00\u00a0MM"},1E11:{other:"000\u00a0MM"},1E12:{other:"0\u00a0Bi"},1E13:{other:"00\u00a0Bi"},1E14:{other:"000\u00a0Bi"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 milh\u00f5es"},
+1E7:{other:"00 milh\u00f5es"},1E8:{other:"000 milh\u00f5es"},1E9:{other:"0 mil milh\u00f5es"},1E10:{other:"00 mil milh\u00f5es"},1E11:{other:"000 mil milh\u00f5es"},1E12:{other:"0 bili\u00f5es"},1E13:{other:"00 bili\u00f5es"},1E14:{other:"000 bili\u00f5es"}}};
+goog.i18n.CompactNumberFormatSymbols_ro={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 de mii"},1E4:{other:"00 de mii"},1E5:{other:"000 de mii"},1E6:{other:"0 de milioane"},
+1E7:{other:"00 de milioane"},1E8:{other:"000 de milioane"},1E9:{other:"0 de miliarde"},1E10:{other:"00 de miliarde"},1E11:{other:"000 de miliarde"},1E12:{other:"0 de trilioane"},1E13:{other:"00 de trilioane"},1E14:{other:"000 de trilioane"}}};goog.i18n.CompactNumberFormatSymbols_ro_RO=goog.i18n.CompactNumberFormatSymbols_ro;
+goog.i18n.CompactNumberFormatSymbols_ru={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0442\u044b\u0441."},1E4:{other:"00\u00a0\u0442\u044b\u0441."},1E5:{other:"000\u00a0\u0442\u044b\u0441."},1E6:{other:"0\u00a0\u043c\u043b\u043d"},1E7:{other:"00\u00a0\u043c\u043b\u043d"},1E8:{other:"000\u00a0\u043c\u043b\u043d"},1E9:{other:"0\u00a0\u043c\u043b\u0440\u0434"},1E10:{other:"00\u00a0\u043c\u043b\u0440\u0434"},1E11:{other:"000\u00a0\u043c\u043b\u0440\u0434"},1E12:{other:"0\u00a0\u0442\u0440\u043b\u043d"},
+1E13:{other:"00\u00a0\u0442\u0440\u043b\u043d"},1E14:{other:"000\u00a0\u0442\u0440\u043b\u043d"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0442\u044b\u0441\u044f\u0447\u0438"},1E4:{other:"00 \u0442\u044b\u0441\u044f\u0447\u0438"},1E5:{other:"000 \u0442\u044b\u0441\u044f\u0447\u0438"},1E6:{other:"0 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430"},
+1E10:{other:"00 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430"},1E11:{other:"000 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E13:{other:"00 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_ru_RU=goog.i18n.CompactNumberFormatSymbols_ru;
+goog.i18n.CompactNumberFormatSymbols_sk={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tis."},1E4:{other:"00\u00a0tis."},1E5:{other:"000\u00a0tis."},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tis\u00edc"},1E4:{other:"00 tis\u00edc"},1E5:{other:"000 tis\u00edc"},
+1E6:{other:"0 mili\u00f3nov"},1E7:{other:"00 mili\u00f3nov"},1E8:{other:"000 mili\u00f3nov"},1E9:{other:"0 miliard"},1E10:{other:"00 mili\u00e1rd"},1E11:{other:"000 mili\u00e1rd"},1E12:{other:"0 bili\u00f3nov"},1E13:{other:"00 bili\u00f3nov"},1E14:{other:"000 bili\u00f3nov"}}};goog.i18n.CompactNumberFormatSymbols_sk_SK=goog.i18n.CompactNumberFormatSymbols_sk;
+goog.i18n.CompactNumberFormatSymbols_sl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tis."},1E4:{other:"00\u00a0tis."},1E5:{other:"000\u00a0tis."},1E6:{other:"0\u00a0mio."},1E7:{other:"00\u00a0mio."},1E8:{other:"000\u00a0mio."},1E9:{other:"0\u00a0mrd."},1E10:{other:"00\u00a0mrd."},1E11:{other:"000\u00a0mrd."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tiso\u010d"},1E4:{other:"00 tiso\u010d"},1E5:{other:"000 tiso\u010d"},
+1E6:{other:"0 milijonov"},1E7:{other:"00 milijonov"},1E8:{other:"000 milijonov"},1E9:{other:"0 milijard"},1E10:{other:"00 milijard"},1E11:{other:"000 milijard"},1E12:{other:"0 bilijonov"},1E13:{other:"00 bilijonov"},1E14:{other:"000 bilijonov"}}};goog.i18n.CompactNumberFormatSymbols_sl_SI=goog.i18n.CompactNumberFormatSymbols_sl;
+goog.i18n.CompactNumberFormatSymbols_sq={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_sq_AL=goog.i18n.CompactNumberFormatSymbols_sq;
+goog.i18n.CompactNumberFormatSymbols_sr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0\u0445\u0438\u0459"},1E5:{other:"000\u00a0\u0445\u0438\u0459"},1E6:{other:"0\u00a0\u043c\u0438\u043b"},1E7:{other:"00\u00a0\u043c\u0438\u043b"},1E8:{other:"000\u00a0\u043c\u0438\u043b"},1E9:{other:"0\u00a0\u043c\u043b\u0440\u0434"},1E10:{other:"00\u00a0\u043c\u043b\u0440\u0434"},1E11:{other:"000\u00a0\u043c\u043b\u0440\u0434"},1E12:{other:"0\u00a0\u0431\u0438\u043b"},1E13:{other:"00\u00a0\u0431\u0438\u043b"},
+1E14:{other:"000\u00a0\u0431\u0438\u043b"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0445\u0438\u0459\u0430\u0434\u0430"},1E4:{other:"00 \u0445\u0438\u0459\u0430\u0434\u0430"},1E5:{other:"000 \u0445\u0438\u0459\u0430\u0434\u0430"},1E6:{other:"0 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0438\u043b\u0438\u0458\u0430\u0440\u0434\u0438"},1E10:{other:"00 \u043c\u0438\u043b\u0438\u0458\u0430\u0440\u0434\u0438"},
+1E11:{other:"000 \u043c\u0438\u043b\u0438\u0458\u0430\u0440\u0434\u0438"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},1E13:{other:"00 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_RS=goog.i18n.CompactNumberFormatSymbols_sr;
+goog.i18n.CompactNumberFormatSymbols_sv={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tn"},1E4:{other:"00\u00a0tn"},1E5:{other:"000\u00a0tn"},1E6:{other:"0\u00a0mn"},1E7:{other:"00\u00a0mn"},1E8:{other:"000\u00a0mn"},1E9:{other:"0\u00a0md"},1E10:{other:"00\u00a0md"},1E11:{other:"000\u00a0md"},1E12:{other:"0\u00a0bn"},1E13:{other:"00\u00a0bn"},1E14:{other:"000\u00a0bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusen"},1E4:{other:"00 tusen"},1E5:{other:"000 tusen"},1E6:{other:"0 miljoner"},
+1E7:{other:"00 miljoner"},1E8:{other:"000 miljoner"},1E9:{other:"0 miljarder"},1E10:{other:"00 miljarder"},1E11:{other:"000 miljarder"},1E12:{other:"0 biljoner"},1E13:{other:"00 biljoner"},1E14:{other:"000 biljoner"}}};goog.i18n.CompactNumberFormatSymbols_sv_SE=goog.i18n.CompactNumberFormatSymbols_sv;
+goog.i18n.CompactNumberFormatSymbols_sw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"elfu\u00a00"},1E4:{other:"elfu\u00a000"},1E5:{other:"laki0"},1E6:{other:"M0"},1E7:{other:"M00"},1E8:{other:"M000"},1E9:{other:"B0"},1E10:{other:"B00"},1E11:{other:"B000"},1E12:{other:"T0"},1E13:{other:"T00"},1E14:{other:"T000"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"Elfu 0"},1E4:{other:"Elfu 00"},1E5:{other:"Elfu 000"},1E6:{other:"Milioni 0"},1E7:{other:"Milioni 00"},1E8:{other:"Milioni 000"},1E9:{other:"Bilioni 0"},
+1E10:{other:"Bilioni 00"},1E11:{other:"Bilioni 000"},1E12:{other:"Trilioni 0"},1E13:{other:"Trilioni 00"},1E14:{other:"Trilioni 000"}}};goog.i18n.CompactNumberFormatSymbols_sw_TZ=goog.i18n.CompactNumberFormatSymbols_sw;
+goog.i18n.CompactNumberFormatSymbols_ta={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0b86\u0baf\u0bbf\u0bb0\u0bae\u0bcd"},1E4:{other:"00 \u0b86\u0baf\u0bbf\u0bb0\u0bae\u0bcd"},1E5:{other:"000 \u0b86\u0baf\u0bbf\u0bb0\u0bae\u0bcd"},1E6:{other:"0 \u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},
+1E7:{other:"00 \u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E8:{other:"000 \u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E9:{other:"0 \u0baa\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E10:{other:"00 \u0baa\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E11:{other:"000 \u0baa\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E12:{other:"0 \u0b9f\u0bbf\u0bb0\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E13:{other:"00 \u0b9f\u0bbf\u0bb0\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},
+1E14:{other:"000 \u0b9f\u0bbf\u0bb0\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"}}};goog.i18n.CompactNumberFormatSymbols_ta_IN=goog.i18n.CompactNumberFormatSymbols_ta;
+goog.i18n.CompactNumberFormatSymbols_te={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0c35\u0c47\u0c32\u0c41"},1E4:{other:"00 \u0c35\u0c47\u0c32\u0c41"},1E5:{other:"000 \u0c35\u0c47\u0c32\u0c41"},1E6:{other:"0 \u0c2e\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},
+1E7:{other:"00 \u0c2e\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E8:{other:"000 \u0c2e\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E9:{other:"0 \u0c2c\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E10:{other:"00 \u0c2c\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E11:{other:"000 \u0c2c\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E12:{other:"0 \u0c1f\u0c4d\u0c30\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E13:{other:"00 \u0c1f\u0c4d\u0c30\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E14:{other:"000 \u0c1f\u0c4d\u0c30\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"}}};
+goog.i18n.CompactNumberFormatSymbols_te_IN=goog.i18n.CompactNumberFormatSymbols_te;
+goog.i18n.CompactNumberFormatSymbols_th={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0e1e."},1E4:{other:"0\u00a0\u0e21."},1E5:{other:"0\u00a0\u0e2a."},1E6:{other:"0\u00a0\u0e25."},1E7:{other:"00\u00a0\u0e25."},1E8:{other:"000\u00a0\u0e25."},1E9:{other:"0\u00a0\u0e1e.\u0e25."},1E10:{other:"0\u00a0\u0e21.\u0e25."},1E11:{other:"0\u00a0\u0e2a.\u0e25."},1E12:{other:"0\u00a0\u0e25.\u0e25."},1E13:{other:"00\u00a0\u0e25.\u0e25."},1E14:{other:"000\u00a0\u0e25.\u0e25."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0e1e\u0e31\u0e19"},
+1E4:{other:"0 \u0e2b\u0e21\u0e37\u0e48\u0e19"},1E5:{other:"0 \u0e41\u0e2a\u0e19"},1E6:{other:"0 \u0e25\u0e49\u0e32\u0e19"},1E7:{other:"00 \u0e25\u0e49\u0e32\u0e19"},1E8:{other:"000 \u0e25\u0e49\u0e32\u0e19"},1E9:{other:"0 \u0e1e\u0e31\u0e19\u0e25\u0e49\u0e32\u0e19"},1E10:{other:"0 \u0e2b\u0e21\u0e37\u0e48\u0e19\u0e25\u0e49\u0e32\u0e19"},1E11:{other:"0 \u0e41\u0e2a\u0e19\u0e25\u0e49\u0e32\u0e19"},1E12:{other:"0 \u0e25\u0e49\u0e32\u0e19\u0e25\u0e49\u0e32\u0e19"},1E13:{other:"00 \u0e25\u0e49\u0e32\u0e19\u0e25\u0e49\u0e32\u0e19"},
+1E14:{other:"000 \u0e25\u0e49\u0e32\u0e19\u0e25\u0e49\u0e32\u0e19"}}};goog.i18n.CompactNumberFormatSymbols_th_TH=goog.i18n.CompactNumberFormatSymbols_th;
+goog.i18n.CompactNumberFormatSymbols_tl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 (na) libo"},1E4:{other:"00 (na) libo"},1E5:{other:"000 (na) libo"},1E6:{other:"0 (na) milyon"},1E7:{other:"00 (na) milyon"},1E8:{other:"000 (na) milyon"},1E9:{other:"0 (na) bilyon"},
+1E10:{other:"00 (na) bilyon"},1E11:{other:"000 (na) bilyon"},1E12:{other:"0 (na) trilyon"},1E13:{other:"00 (na) trilyon"},1E14:{other:"000 (na) trilyon"}}};
+goog.i18n.CompactNumberFormatSymbols_tr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0B"},1E5:{other:"000\u00a0B"},1E6:{other:"0\u00a0Mn"},1E7:{other:"00\u00a0Mn"},1E8:{other:"000\u00a0Mn"},1E9:{other:"0\u00a0Mr"},1E10:{other:"00\u00a0Mr"},1E11:{other:"000\u00a0Mr"},1E12:{other:"0\u00a0Tn"},1E13:{other:"00\u00a0Tn"},1E14:{other:"000\u00a0Tn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 bin"},1E4:{other:"00 bin"},1E5:{other:"000 bin"},1E6:{other:"0 milyon"},1E7:{other:"00 milyon"},
+1E8:{other:"000 milyon"},1E9:{other:"0 milyar"},1E10:{other:"00 milyar"},1E11:{other:"000 milyar"},1E12:{other:"0 trilyon"},1E13:{other:"00 trilyon"},1E14:{other:"000 trilyon"}}};goog.i18n.CompactNumberFormatSymbols_tr_TR=goog.i18n.CompactNumberFormatSymbols_tr;
+goog.i18n.CompactNumberFormatSymbols_uk={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0442\u0438\u0441"},1E4:{other:"00\u00a0\u0442\u0438\u0441"},1E5:{other:"000\u00a0\u0442\u0438\u0441"},1E6:{other:"0\u00a0\u043c\u043b\u043d"},1E7:{other:"00\u00a0\u043c\u043b\u043d"},1E8:{other:"000\u00a0\u043c\u043b\u043d"},1E9:{other:"0\u00a0\u043c\u043b\u0440\u0434"},1E10:{other:"00\u00a0\u043c\u043b\u0440\u0434"},1E11:{other:"000\u00a0\u043c\u043b\u0440\u0434"},1E12:{other:"0\u00a0\u0442\u0440\u043b\u043d"},
+1E13:{other:"00\u00a0\u0442\u0440\u043b\u043d"},1E14:{other:"000\u00a0\u0442\u0440\u043b\u043d"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0442\u0438\u0441\u044f\u0447\u0456"},1E4:{other:"00 \u0442\u0438\u0441\u044f\u0447\u0456"},1E5:{other:"000 \u0442\u0438\u0441\u044f\u0447\u0456"},1E6:{other:"0 \u043c\u0456\u043b\u044c\u0439\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0456\u043b\u044c\u0439\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0456\u043b\u044c\u0439\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0456\u043b\u044c\u044f\u0440\u0434\u0430"},
+1E10:{other:"00 \u043c\u0456\u043b\u044c\u044f\u0440\u0434\u0430"},1E11:{other:"000 \u043c\u0456\u043b\u044c\u044f\u0440\u0434\u0430"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u044c\u0439\u043e\u043d\u0430"},1E13:{other:"00 \u0442\u0440\u0438\u043b\u044c\u0439\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u044c\u0439\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_uk_UA=goog.i18n.CompactNumberFormatSymbols_uk;
+goog.i18n.CompactNumberFormatSymbols_ur={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u06c1\u0632\u0627\u0631"},1E4:{other:"00\u00a0\u06c1\u0632\u0627\u0631"},1E5:{other:"0\u00a0\u0644\u0627\u06a9\u06be"},1E6:{other:"00\u00a0\u0644\u0627\u06a9\u06be"},1E7:{other:"0\u00a0\u06a9\u0631\u0648\u0691"},1E8:{other:"00\u00a0\u06a9\u0631\u0648\u0691"},1E9:{other:"0\u00a0\u0627\u0631\u0628"},1E10:{other:"00\u00a0\u0627\u0631\u0628"},1E11:{other:"0\u00a0\u06a9\u06be\u0631\u0628"},1E12:{other:"00\u00a0\u06a9\u06be\u0631\u0628"},
+1E13:{other:"000\u00a0\u06a9\u06be\u0631\u0628"},1E14:{other:"0000\u00a0\u06a9\u06be\u0631\u0628"}}};goog.i18n.CompactNumberFormatSymbols_ur_PK=goog.i18n.CompactNumberFormatSymbols_ur;
+goog.i18n.CompactNumberFormatSymbols_vi={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0N"},1E4:{other:"00\u00a0N"},1E5:{other:"000\u00a0N"},1E6:{other:"0\u00a0Tr"},1E7:{other:"00\u00a0Tr"},1E8:{other:"000\u00a0Tr"},1E9:{other:"0\u00a0T"},1E10:{other:"00\u00a0T"},1E11:{other:"000\u00a0T"},1E12:{other:"0\u00a0NT"},1E13:{other:"00\u00a0NT"},1E14:{other:"000\u00a0NT"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ngh\u00ecn"},1E4:{other:"00 ngh\u00ecn"},1E5:{other:"000 ngh\u00ecn"},1E6:{other:"0 tri\u1ec7u"},
+1E7:{other:"00 tri\u1ec7u"},1E8:{other:"000 tri\u1ec7u"},1E9:{other:"0 t\u1ef7"},1E10:{other:"00 t\u1ef7"},1E11:{other:"000 t\u1ef7"},1E12:{other:"0 ngh\u00ecn t\u1ef7"},1E13:{other:"00 ngh\u00ecn t\u1ef7"},1E14:{other:"000 ngh\u00ecn t\u1ef7"}}};goog.i18n.CompactNumberFormatSymbols_vi_VN=goog.i18n.CompactNumberFormatSymbols_vi;
+goog.i18n.CompactNumberFormatSymbols_zh={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"},1E8:{other:"0\u4ebf"},1E9:{other:"00\u4ebf"},1E10:{other:"000\u4ebf"},1E11:{other:"0000\u4ebf"},1E12:{other:"0\u4e07\u4ebf"},1E13:{other:"00\u4e07\u4ebf"},1E14:{other:"000\u4e07\u4ebf"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"},
+1E8:{other:"0\u4ebf"},1E9:{other:"00\u4ebf"},1E10:{other:"000\u4ebf"},1E11:{other:"0000\u4ebf"},1E12:{other:"0\u4e07\u4ebf"},1E13:{other:"00\u4e07\u4ebf"},1E14:{other:"000\u4e07\u4ebf"}}};goog.i18n.CompactNumberFormatSymbols_zh_CN=goog.i18n.CompactNumberFormatSymbols_zh;
+goog.i18n.CompactNumberFormatSymbols_zh_HK={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00\u5146"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u842c"},1E5:{other:"00\u842c"},1E6:{other:"000\u842c"},1E7:{other:"0000\u842c"},1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"},
+1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}}};goog.i18n.CompactNumberFormatSymbols_zh_Hans_CN=goog.i18n.CompactNumberFormatSymbols_zh;
+goog.i18n.CompactNumberFormatSymbols_zh_TW={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00\u5146"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u842c"},1E5:{other:"00\u842c"},1E6:{other:"000\u842c"},1E7:{other:"0000\u842c"},1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"},
+1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}}};
+goog.i18n.CompactNumberFormatSymbols_zu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 inkulungwane"},1E4:{other:"00 inkulungwane"},1E5:{other:"000 inkulungwane"},1E6:{other:"0 isigidi"},1E7:{other:"00 isigidi"},1E8:{other:"000 isigidi"},1E9:{other:"0 isigidi sezigidi"},
+1E10:{other:"00 isigidi sezigidi"},1E11:{other:"000 isigidi sezigidi"},1E12:{other:"0 isigidintathu"},1E13:{other:"00 isigidintathu"},1E14:{other:"000 isigidintathu"}}};goog.i18n.CompactNumberFormatSymbols_zu_ZA=goog.i18n.CompactNumberFormatSymbols_zu;goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;"af"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_af);
+if("af_ZA"==goog.LOCALE||"af-ZA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_af;"am"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_am);if("am_ET"==goog.LOCALE||"am-ET"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_am;"ar"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ar);
+if("ar_001"==goog.LOCALE||"ar-001"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ar;if("ar_EG"==goog.LOCALE||"ar-EG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ar;"bg"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bg);if("bg_BG"==goog.LOCALE||"bg-BG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bg;
+"bn"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bn);if("bn_BD"==goog.LOCALE||"bn-BD"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bn;"br"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_br);if("br_FR"==goog.LOCALE||"br-FR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_br;"ca"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ca);
+if("ca_AD"==goog.LOCALE||"ca-AD"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ca;if("ca_ES"==goog.LOCALE||"ca-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ca;"chr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_chr);if("chr_US"==goog.LOCALE||"chr-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_chr;
+"cs"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cs);if("cs_CZ"==goog.LOCALE||"cs-CZ"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cs;"cy"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cy);if("cy_GB"==goog.LOCALE||"cy-GB"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cy;"da"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_da);
+if("da_DK"==goog.LOCALE||"da-DK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_da;"de"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de);if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de_AT;if("de_BE"==goog.LOCALE||"de-BE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de;
+if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de_CH;if("de_DE"==goog.LOCALE||"de-DE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de;if("de_LU"==goog.LOCALE||"de-LU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de;"el"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_el);
+if("el_GR"==goog.LOCALE||"el-GR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_el;"en"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en);if("en_AS"==goog.LOCALE||"en-AS"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_AU;
+if("en_Dsrt_US"==goog.LOCALE||"en-Dsrt-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_FM"==goog.LOCALE||"en-FM"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_GB;if("en_GU"==goog.LOCALE||"en-GU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;
+if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_IE;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_IN;if("en_MH"==goog.LOCALE||"en-MH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_MP"==goog.LOCALE||"en-MP"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;
+if("en_PR"==goog.LOCALE||"en-PR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_PW"==goog.LOCALE||"en-PW"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_SG;if("en_TC"==goog.LOCALE||"en-TC"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;
+if("en_UM"==goog.LOCALE||"en-UM"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_VG"==goog.LOCALE||"en-VG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_VI"==goog.LOCALE||"en-VI"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;
+if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_ZA;"es"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es_419;if("es_EA"==goog.LOCALE||"es-EA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es;
+if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es;if("es_IC"==goog.LOCALE||"es-IC"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es;"et"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_et);if("et_EE"==goog.LOCALE||"et-EE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_et;
+"eu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_eu);if("eu_ES"==goog.LOCALE||"eu-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_eu;"fa"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fa);if("fa_IR"==goog.LOCALE||"fa-IR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fa;"fi"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fi);
+if("fi_FI"==goog.LOCALE||"fi-FI"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fi;"fil"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fil);if("fil_PH"==goog.LOCALE||"fil-PH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fil;"fr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr);
+if("fr_BL"==goog.LOCALE||"fr-BL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr_CA;if("fr_FR"==goog.LOCALE||"fr-FR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_GF"==goog.LOCALE||"fr-GF"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;
+if("fr_GP"==goog.LOCALE||"fr-GP"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_MC"==goog.LOCALE||"fr-MC"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_MF"==goog.LOCALE||"fr-MF"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_MQ"==goog.LOCALE||"fr-MQ"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;
+if("fr_RE"==goog.LOCALE||"fr-RE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_YT"==goog.LOCALE||"fr-YT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;"gl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gl);if("gl_ES"==goog.LOCALE||"gl-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gl;
+"gsw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gsw);if("gsw_CH"==goog.LOCALE||"gsw-CH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gsw;"gu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gu);if("gu_IN"==goog.LOCALE||"gu-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gu;
+"haw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_haw);if("haw_US"==goog.LOCALE||"haw-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_haw;"he"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_he);if("he_IL"==goog.LOCALE||"he-IL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_he;
+"hi"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hi);if("hi_IN"==goog.LOCALE||"hi-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hi;"hr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hr);if("hr_HR"==goog.LOCALE||"hr-HR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hr;"hu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hu);
+if("hu_HU"==goog.LOCALE||"hu-HU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hu;"id"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_id);if("id_ID"==goog.LOCALE||"id-ID"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_id;"in"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_in);"is"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_is);
+if("is_IS"==goog.LOCALE||"is-IS"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_is;"it"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_it);if("it_IT"==goog.LOCALE||"it-IT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_it;if("it_SM"==goog.LOCALE||"it-SM"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_it;
+"iw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_iw);"ja"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ja);if("ja_JP"==goog.LOCALE||"ja-JP"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ja;"kn"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_kn);if("kn_IN"==goog.LOCALE||"kn-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_kn;
+"ko"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ko);if("ko_KR"==goog.LOCALE||"ko-KR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ko;"ln"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ln);if("ln_CD"==goog.LOCALE||"ln-CD"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ln;"lt"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lt);
+if("lt_LT"==goog.LOCALE||"lt-LT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lt;"lv"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lv);if("lv_LV"==goog.LOCALE||"lv-LV"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lv;"ml"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ml);
+if("ml_IN"==goog.LOCALE||"ml-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ml;"mr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mr);if("mr_IN"==goog.LOCALE||"mr-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mr;"ms"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ms);
+if("ms_Latn_MY"==goog.LOCALE||"ms-Latn-MY"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ms;"mt"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mt);if("mt_MT"==goog.LOCALE||"mt-MT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mt;"nb"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nb);
+if("nb_NO"==goog.LOCALE||"nb-NO"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nb;"nl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nl);if("nl_NL"==goog.LOCALE||"nl-NL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nl;"no"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_no);"or"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_or);
+if("or_IN"==goog.LOCALE||"or-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_or;"pl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pl);if("pl_PL"==goog.LOCALE||"pl-PL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pl;"pt"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pt);
+if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pt;if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pt_PT;"ro"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ro);if("ro_RO"==goog.LOCALE||"ro-RO"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ro;
+"ru"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ru);if("ru_RU"==goog.LOCALE||"ru-RU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ru;"sk"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sk);if("sk_SK"==goog.LOCALE||"sk-SK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sk;"sl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sl);
+if("sl_SI"==goog.LOCALE||"sl-SI"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sl;"sq"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sq);if("sq_AL"==goog.LOCALE||"sq-AL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sq;"sr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sr);
+if("sr_Cyrl_RS"==goog.LOCALE||"sr-Cyrl-RS"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sr;"sv"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sv);if("sv_SE"==goog.LOCALE||"sv-SE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sv;"sw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sw);
+if("sw_TZ"==goog.LOCALE||"sw-TZ"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sw;"ta"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ta);if("ta_IN"==goog.LOCALE||"ta-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ta;"te"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_te);
+if("te_IN"==goog.LOCALE||"te-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_te;"th"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_th);if("th_TH"==goog.LOCALE||"th-TH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_th;"tl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_tl);"tr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_tr);
+if("tr_TR"==goog.LOCALE||"tr-TR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_tr;"uk"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_uk);if("uk_UA"==goog.LOCALE||"uk-UA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_uk;"ur"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ur);
+if("ur_PK"==goog.LOCALE||"ur-PK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ur;"vi"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_vi);if("vi_VN"==goog.LOCALE||"vi-VN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_vi;"zh"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh);
+if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh_HK;if("zh_Hans_CN"==goog.LOCALE||"zh-Hans-CN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh;if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh_TW;
+"zu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zu);if("zu_ZA"==goog.LOCALE||"zu-ZA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zu;goog.i18n.currency={};goog.i18n.currency.PRECISION_MASK_=7;goog.i18n.currency.POSITION_FLAG_=16;goog.i18n.currency.SPACE_FLAG_=32;goog.i18n.currency.tier2Enabled_=!1;goog.i18n.currency.addTier2Support=function(){if(!goog.i18n.currency.tier2Enabled_){for(var a in goog.i18n.currency.CurrencyInfoTier2)goog.i18n.currency.CurrencyInfo[a]=goog.i18n.currency.CurrencyInfoTier2[a];goog.i18n.currency.tier2Enabled_=!0}};
+goog.i18n.currency.getGlobalCurrencyPattern=function(a){var b=goog.i18n.currency.CurrencyInfo[a],c=b[0];return a==b[1]?goog.i18n.currency.getCurrencyPattern_(c,b[1]):a+" "+goog.i18n.currency.getCurrencyPattern_(c,b[1])};goog.i18n.currency.getGlobalCurrencySign=function(a){var b=goog.i18n.currency.CurrencyInfo[a];return a==b[1]?a:a+" "+b[1]};goog.i18n.currency.getLocalCurrencyPattern=function(a){a=goog.i18n.currency.CurrencyInfo[a];return goog.i18n.currency.getCurrencyPattern_(a[0],a[1])};
+goog.i18n.currency.getLocalCurrencySign=function(a){return goog.i18n.currency.CurrencyInfo[a][1]};goog.i18n.currency.getPortableCurrencyPattern=function(a){a=goog.i18n.currency.CurrencyInfo[a];return goog.i18n.currency.getCurrencyPattern_(a[0],a[2])};goog.i18n.currency.getPortableCurrencySign=function(a){return goog.i18n.currency.CurrencyInfo[a][2]};goog.i18n.currency.isPrefixSignPosition=function(a){return 0==(goog.i18n.currency.CurrencyInfo[a][0]&goog.i18n.currency.POSITION_FLAG_)};
+goog.i18n.currency.getCurrencyPattern_=function(a,b){var c=["#,##0"],d=a&goog.i18n.currency.PRECISION_MASK_;if(0<d){c.push(".");for(var e=0;e<d;e++)c.push("0")}0==(a&goog.i18n.currency.POSITION_FLAG_)?(c.unshift(a&goog.i18n.currency.SPACE_FLAG_?"' ":"'"),c.unshift(b),c.unshift("'")):c.push(a&goog.i18n.currency.SPACE_FLAG_?" '":"'",b,"'");return c.join("")};
+goog.i18n.currency.adjustPrecision=function(a,b){var c=["0"],d=goog.i18n.currency.CurrencyInfo[b],d=d[0]&goog.i18n.currency.PRECISION_MASK_;if(0<d){c.push(".");for(var e=0;e<d;e++)c.push("0")}return a.replace(/0.00/g,c.join(""))};
+goog.i18n.currency.CurrencyInfo={AED:[2,"dh","\u062f.\u0625.","DH"],ALL:[0,"Lek","Lek"],AUD:[2,"$","AU$"],BDT:[2,"\u09f3","Tk"],BGN:[2,"lev","lev"],BRL:[2,"R$","R$"],CAD:[2,"$","C$"],CDF:[2,"FrCD","CDF"],CHF:[2,"CHF","CHF"],CLP:[0,"$","CL$"],CNY:[2,"\u00a5","RMB\u00a5"],COP:[0,"$","COL$"],CRC:[0,"\u20a1","CR\u20a1"],CZK:[50,"K\u010d","K\u010d"],DKK:[18,"kr","kr"],DOP:[2,"$","RD$"],EGP:[2,"\u00a3","LE"],ETB:[2,"Birr","Birr"],EUR:[2,"\u20ac","\u20ac"],GBP:[2,"\u00a3","GB\u00a3"],HKD:[2,"$","HK$"],HRK:[2,
+"kn","kn"],HUF:[0,"Ft","Ft"],IDR:[0,"Rp","Rp"],ILS:[2,"\u20aa","IL\u20aa"],INR:[2,"\u20b9","Rs"],IRR:[0,"Rial","IRR"],ISK:[0,"kr","kr"],JMD:[2,"$","JA$"],JPY:[0,"\u00a5","JP\u00a5"],KRW:[0,"\u20a9","KR\u20a9"],LKR:[2,"Rs","SLRs"],LTL:[2,"Lt","Lt"],LVL:[2,"Ls","Ls"],MNT:[0,"\u20ae","MN\u20ae"],MXN:[2,"$","Mex$"],MYR:[2,"RM","RM"],NOK:[50,"kr","NOkr"],PAB:[2,"B/.","B/."],PEN:[2,"S/.","S/."],PHP:[2,"\u20b1","Php"],PKR:[0,"Rs","PKRs."],PLN:[50,"z\u0142","z\u0142"],RON:[2,"RON","RON"],RSD:[0,"din","RSD"],
+RUB:[50,"\u0440\u0443\u0431.","\u0440\u0443\u0431."],SAR:[2,"Rial","Rial"],SEK:[2,"kr","kr"],SGD:[2,"$","S$"],THB:[2,"\u0e3f","THB"],TRY:[2,"TL","YTL"],TWD:[2,"NT$","NT$"],TZS:[0,"TSh","TSh"],UAH:[2,"\u20b4","UAH"],USD:[2,"$","US$"],UYU:[2,"$","$U"],VND:[0,"\u20ab","VN\u20ab"],YER:[0,"Rial","Rial"],ZAR:[2,"R","ZAR"]};
+goog.i18n.currency.CurrencyInfoTier2={AFN:[48,"Af.","AFN"],AMD:[0,"Dram","dram"],AOA:[2,"Kz","Kz"],ARS:[2,"$","AR$"],AWG:[2,"Afl.","Afl."],AZN:[2,"man.","man."],BAM:[2,"KM","KM"],BBD:[2,"$","Bds$"],BHD:[3,"din","din"],BIF:[0,"FBu","FBu"],BMD:[2,"$","BD$"],BND:[2,"$","B$"],BOB:[2,"Bs","Bs"],BSD:[2,"$","BS$"],BTN:[2,"Nu.","Nu."],BWP:[2,"P","pula"],BYR:[0,"BYR","BYR"],BZD:[2,"$","BZ$"],CUC:[1,"$","CUC$"],CUP:[2,"$","CU$"],CVE:[2,"CVE","Esc"],DJF:[0,"Fdj","Fdj"],DZD:[2,"din","din"],ERN:[2,"Nfk","Nfk"],
+FJD:[2,"$","FJ$"],FKP:[2,"\u00a3","FK\u00a3"],GEL:[2,"GEL","GEL"],GHS:[2,"GHS","GHS"],GIP:[2,"\u00a3","GI\u00a3"],GMD:[2,"GMD","GMD"],GNF:[0,"FG","FG"],GTQ:[2,"Q","GTQ"],GYD:[0,"$","GY$"],HNL:[2,"L","HNL"],HTG:[2,"HTG","HTG"],IQD:[0,"din","IQD"],JOD:[3,"din","JOD"],KES:[2,"Ksh","Ksh"],KGS:[2,"KGS","KGS"],KHR:[2,"Riel","KHR"],KMF:[0,"CF","KMF"],KPW:[0,"\u20a9KP","KPW"],KWD:[3,"din","KWD"],KYD:[2,"$","KY$"],KZT:[2,"\u20b8","KZT"],LAK:[0,"\u20ad","\u20ad"],LBP:[0,"L\u00a3","LBP"],LRD:[2,"$","L$"],LSL:[2,
+"LSL","LSL"],LYD:[3,"din","LD"],MAD:[2,"dh","MAD"],MDL:[2,"MDL","MDL"],MGA:[0,"Ar","MGA"],MKD:[2,"din","MKD"],MMK:[0,"K","MMK"],MOP:[2,"MOP","MOP$"],MRO:[0,"MRO","MRO"],MUR:[0,"MURs","MURs"],MWK:[2,"MWK","MWK"],MZN:[2,"MTn","MTn"],NAD:[2,"$","N$"],NGN:[2,"\u20a6","NG\u20a6"],NIO:[2,"C$","C$"],NPR:[2,"Rs","NPRs"],NZD:[2,"$","NZ$"],OMR:[3,"Rial","OMR"],PGK:[2,"PGK","PGK"],PYG:[0,"Gs","PYG"],QAR:[2,"Rial","QR"],RWF:[0,"RF","RF"],SBD:[2,"$","SI$"],SCR:[2,"SCR","SCR"],SDG:[2,"SDG","SDG"],SHP:[2,"\u00a3",
+"SH\u00a3"],SLL:[0,"SLL","SLL"],SOS:[0,"SOS","SOS"],SRD:[2,"$","SR$"],STD:[0,"Db","Db"],SYP:[0,"\u00a3","SY\u00a3"],SZL:[2,"SZL","SZL"],TJS:[2,"Som","TJS"],TND:[3,"din","DT"],TOP:[2,"T$","T$"],TTD:[2,"$","TT$"],UGX:[0,"UGX","UGX"],UZS:[0,"so\u02bcm","UZS"],VEF:[2,"Bs","Bs"],VUV:[0,"VUV","VUV"],WST:[2,"WST","WST"],XAF:[0,"FCFA","FCFA"],XCD:[2,"$","EC$"],XOF:[0,"CFA","CFA"],XPF:[0,"FCFP","FCFP"],ZMK:[0,"ZMK","ZMK"]};goog.i18n.NumberFormatSymbols_af={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ZAR"};goog.i18n.NumberFormatSymbols_af_ZA=goog.i18n.NumberFormatSymbols_af;
+goog.i18n.NumberFormatSymbols_am={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ETB"};goog.i18n.NumberFormatSymbols_am_ET=goog.i18n.NumberFormatSymbols_am;
+goog.i18n.NumberFormatSymbols_ar={DECIMAL_SEP:"\u066b",GROUP_SEP:"\u066c",PERCENT:"\u066a",ZERO_DIGIT:"\u0660",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"\u0627\u0633",PERMILL:"\u0609",INFINITY:"\u221e",NAN:"\u0644\u064a\u0633\u00a0\u0631\u0642\u0645",DECIMAL_PATTERN:"#0.###;#0.###-",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#0.00;\u00a4\u00a0#0.00-",DEF_CURRENCY_CODE:"EGP"};goog.i18n.NumberFormatSymbols_ar_001=goog.i18n.NumberFormatSymbols_ar;
+goog.i18n.NumberFormatSymbols_ar_EG=goog.i18n.NumberFormatSymbols_ar;goog.i18n.NumberFormatSymbols_bg={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"BGN"};goog.i18n.NumberFormatSymbols_bg_BG=goog.i18n.NumberFormatSymbols_bg;
+goog.i18n.NumberFormatSymbols_bn={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"\u09e6",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u09b8\u0982\u0996\u09cd\u09af\u09be\u00a0\u09a8\u09be",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"#,##,##0.00\u00a4;(#,##,##0.00\u00a4)",DEF_CURRENCY_CODE:"BDT"};goog.i18n.NumberFormatSymbols_bn_BD=goog.i18n.NumberFormatSymbols_bn;
+goog.i18n.NumberFormatSymbols_br={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_br_FR=goog.i18n.NumberFormatSymbols_br;
+goog.i18n.NumberFormatSymbols_ca={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_ca_AD=goog.i18n.NumberFormatSymbols_ca;goog.i18n.NumberFormatSymbols_ca_ES=goog.i18n.NumberFormatSymbols_ca;
+goog.i18n.NumberFormatSymbols_chr={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"USD"};goog.i18n.NumberFormatSymbols_chr_US=goog.i18n.NumberFormatSymbols_chr;
+goog.i18n.NumberFormatSymbols_cs={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"CZK"};goog.i18n.NumberFormatSymbols_cs_CZ=goog.i18n.NumberFormatSymbols_cs;
+goog.i18n.NumberFormatSymbols_cy={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"GBP"};goog.i18n.NumberFormatSymbols_cy_GB=goog.i18n.NumberFormatSymbols_cy;
+goog.i18n.NumberFormatSymbols_da={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"DKK"};goog.i18n.NumberFormatSymbols_da_DK=goog.i18n.NumberFormatSymbols_da;
+goog.i18n.NumberFormatSymbols_de={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};
+goog.i18n.NumberFormatSymbols_de_AT={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_de_BE=goog.i18n.NumberFormatSymbols_de;
+goog.i18n.NumberFormatSymbols_de_CH={DECIMAL_SEP:".",GROUP_SEP:"'",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00;\u00a4-#,##0.00",DEF_CURRENCY_CODE:"CHF"};goog.i18n.NumberFormatSymbols_de_DE=goog.i18n.NumberFormatSymbols_de;goog.i18n.NumberFormatSymbols_de_LU=goog.i18n.NumberFormatSymbols_de;
+goog.i18n.NumberFormatSymbols_el={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"e",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"[#E0]",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_el_GR=goog.i18n.NumberFormatSymbols_el;
+goog.i18n.NumberFormatSymbols_en={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"USD"};goog.i18n.NumberFormatSymbols_en_AS=goog.i18n.NumberFormatSymbols_en;
+goog.i18n.NumberFormatSymbols_en_AU={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"AUD"};goog.i18n.NumberFormatSymbols_en_Dsrt_US=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_FM=goog.i18n.NumberFormatSymbols_en;
+goog.i18n.NumberFormatSymbols_en_GB={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"GBP"};goog.i18n.NumberFormatSymbols_en_GU=goog.i18n.NumberFormatSymbols_en;
+goog.i18n.NumberFormatSymbols_en_IE={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};
+goog.i18n.NumberFormatSymbols_en_IN={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_en_MH=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_MP=goog.i18n.NumberFormatSymbols_en;
+goog.i18n.NumberFormatSymbols_en_PR=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_PW=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_SG={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"SGD"};
+goog.i18n.NumberFormatSymbols_en_TC=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_UM=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_US=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_VG=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_VI=goog.i18n.NumberFormatSymbols_en;
+goog.i18n.NumberFormatSymbols_en_ZA={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ZAR"};
+goog.i18n.NumberFormatSymbols_es={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};
+goog.i18n.NumberFormatSymbols_es_419={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"MXN"};goog.i18n.NumberFormatSymbols_es_EA=goog.i18n.NumberFormatSymbols_es;goog.i18n.NumberFormatSymbols_es_ES=goog.i18n.NumberFormatSymbols_es;goog.i18n.NumberFormatSymbols_es_IC=goog.i18n.NumberFormatSymbols_es;
+goog.i18n.NumberFormatSymbols_et={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_et_EE=goog.i18n.NumberFormatSymbols_et;
+goog.i18n.NumberFormatSymbols_eu={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"%\u00a0#,##0",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_eu_ES=goog.i18n.NumberFormatSymbols_eu;
+goog.i18n.NumberFormatSymbols_fa={DECIMAL_SEP:"\u066b",GROUP_SEP:"\u066c",PERCENT:"\u066a",ZERO_DIGIT:"\u06f0",PLUS_SIGN:"+",MINUS_SIGN:"\u2212",EXP_SYMBOL:"\u00d7\u06f1\u06f0^",PERMILL:"\u0609",INFINITY:"\u221e",NAN:"\u0646\u0627\u0639\u062f\u062f",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u200e\u00a4#,##0.00;\u200e(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"IRR"};goog.i18n.NumberFormatSymbols_fa_IR=goog.i18n.NumberFormatSymbols_fa;
+goog.i18n.NumberFormatSymbols_fi={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"ep\u00e4luku",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_fi_FI=goog.i18n.NumberFormatSymbols_fi;
+goog.i18n.NumberFormatSymbols_fil={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"PHP"};goog.i18n.NumberFormatSymbols_fil_PH=goog.i18n.NumberFormatSymbols_fil;
+goog.i18n.NumberFormatSymbols_fr={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_fr_BL=goog.i18n.NumberFormatSymbols_fr;
+goog.i18n.NumberFormatSymbols_fr_CA={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"CAD"};goog.i18n.NumberFormatSymbols_fr_FR=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_GF=goog.i18n.NumberFormatSymbols_fr;
+goog.i18n.NumberFormatSymbols_fr_GP=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_MC=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_MF=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_MQ=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_RE=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_YT=goog.i18n.NumberFormatSymbols_fr;
+goog.i18n.NumberFormatSymbols_gl={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_gl_ES=goog.i18n.NumberFormatSymbols_gl;
+goog.i18n.NumberFormatSymbols_gsw={DECIMAL_SEP:".",GROUP_SEP:"\u2019",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"\u2212",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"CHF"};goog.i18n.NumberFormatSymbols_gsw_CH=goog.i18n.NumberFormatSymbols_gsw;
+goog.i18n.NumberFormatSymbols_gu={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_gu_IN=goog.i18n.NumberFormatSymbols_gu;
+goog.i18n.NumberFormatSymbols_haw={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"USD"};goog.i18n.NumberFormatSymbols_haw_US=goog.i18n.NumberFormatSymbols_haw;
+goog.i18n.NumberFormatSymbols_he={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"ILS"};goog.i18n.NumberFormatSymbols_he_IL=goog.i18n.NumberFormatSymbols_he;
+goog.i18n.NumberFormatSymbols_hi={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_hi_IN=goog.i18n.NumberFormatSymbols_hi;
+goog.i18n.NumberFormatSymbols_hr={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"HRK"};goog.i18n.NumberFormatSymbols_hr_HR=goog.i18n.NumberFormatSymbols_hr;
+goog.i18n.NumberFormatSymbols_hu={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"HUF"};goog.i18n.NumberFormatSymbols_hu_HU=goog.i18n.NumberFormatSymbols_hu;
+goog.i18n.NumberFormatSymbols_id={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"IDR"};goog.i18n.NumberFormatSymbols_id_ID=goog.i18n.NumberFormatSymbols_id;
+goog.i18n.NumberFormatSymbols_in={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"IDR"};
+goog.i18n.NumberFormatSymbols_is={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ISK"};goog.i18n.NumberFormatSymbols_is_IS=goog.i18n.NumberFormatSymbols_is;
+goog.i18n.NumberFormatSymbols_it={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_it_IT=goog.i18n.NumberFormatSymbols_it;goog.i18n.NumberFormatSymbols_it_SM=goog.i18n.NumberFormatSymbols_it;
+goog.i18n.NumberFormatSymbols_iw={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"ILS"};
+goog.i18n.NumberFormatSymbols_ja={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"JPY"};goog.i18n.NumberFormatSymbols_ja_JP=goog.i18n.NumberFormatSymbols_ja;
+goog.i18n.NumberFormatSymbols_kn={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"\u0c88",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_kn_IN=goog.i18n.NumberFormatSymbols_kn;
+goog.i18n.NumberFormatSymbols_ko={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"KRW"};goog.i18n.NumberFormatSymbols_ko_KR=goog.i18n.NumberFormatSymbols_ko;
+goog.i18n.NumberFormatSymbols_ln={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"CDF"};goog.i18n.NumberFormatSymbols_ln_CD=goog.i18n.NumberFormatSymbols_ln;
+goog.i18n.NumberFormatSymbols_lt={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"\u2013",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"LTL"};goog.i18n.NumberFormatSymbols_lt_LT=goog.i18n.NumberFormatSymbols_lt;
+goog.i18n.NumberFormatSymbols_lv={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"nav\u00a0skaitlis",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"LVL"};goog.i18n.NumberFormatSymbols_lv_LV=goog.i18n.NumberFormatSymbols_lv;
+goog.i18n.NumberFormatSymbols_ml={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"#,##,##0.00\u00a4",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_ml_IN=goog.i18n.NumberFormatSymbols_ml;
+goog.i18n.NumberFormatSymbols_mr={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"\u0966",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_mr_IN=goog.i18n.NumberFormatSymbols_mr;
+goog.i18n.NumberFormatSymbols_ms={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"MYR"};goog.i18n.NumberFormatSymbols_ms_Latn_MY=goog.i18n.NumberFormatSymbols_ms;
+goog.i18n.NumberFormatSymbols_mt={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_mt_MT=goog.i18n.NumberFormatSymbols_mt;
+goog.i18n.NumberFormatSymbols_nb={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"NOK"};goog.i18n.NumberFormatSymbols_nb_NO=goog.i18n.NumberFormatSymbols_nb;
+goog.i18n.NumberFormatSymbols_nl={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00;\u00a4\u00a0#,##0.00-",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_nl_NL=goog.i18n.NumberFormatSymbols_nl;
+goog.i18n.NumberFormatSymbols_no={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"NOK"};
+goog.i18n.NumberFormatSymbols_or={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_or_IN=goog.i18n.NumberFormatSymbols_or;
+goog.i18n.NumberFormatSymbols_pl={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"PLN"};goog.i18n.NumberFormatSymbols_pl_PL=goog.i18n.NumberFormatSymbols_pl;
+goog.i18n.NumberFormatSymbols_pt={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"BRL"};goog.i18n.NumberFormatSymbols_pt_BR=goog.i18n.NumberFormatSymbols_pt;
+goog.i18n.NumberFormatSymbols_pt_PT={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};
+goog.i18n.NumberFormatSymbols_ro={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"RON"};goog.i18n.NumberFormatSymbols_ro_RO=goog.i18n.NumberFormatSymbols_ro;
+goog.i18n.NumberFormatSymbols_ru={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u043d\u0435\u00a0\u0447\u0438\u0441\u043b\u043e",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"RUB"};goog.i18n.NumberFormatSymbols_ru_RU=goog.i18n.NumberFormatSymbols_ru;
+goog.i18n.NumberFormatSymbols_sk={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_sk_SK=goog.i18n.NumberFormatSymbols_sk;
+goog.i18n.NumberFormatSymbols_sl={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"e",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_sl_SI=goog.i18n.NumberFormatSymbols_sl;
+goog.i18n.NumberFormatSymbols_sq={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"ALL"};goog.i18n.NumberFormatSymbols_sq_AL=goog.i18n.NumberFormatSymbols_sq;
+goog.i18n.NumberFormatSymbols_sr={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"RSD"};goog.i18n.NumberFormatSymbols_sr_Cyrl_RS=goog.i18n.NumberFormatSymbols_sr;
+goog.i18n.NumberFormatSymbols_sv={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"\u2212",EXP_SYMBOL:"\u00d710^",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u00a4\u00a4\u00a4",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"SEK"};goog.i18n.NumberFormatSymbols_sv_SE=goog.i18n.NumberFormatSymbols_sv;
+goog.i18n.NumberFormatSymbols_sw={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"TZS"};goog.i18n.NumberFormatSymbols_sw_TZ=goog.i18n.NumberFormatSymbols_sw;
+goog.i18n.NumberFormatSymbols_ta={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_ta_IN=goog.i18n.NumberFormatSymbols_ta;
+goog.i18n.NumberFormatSymbols_te={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_te_IN=goog.i18n.NumberFormatSymbols_te;
+goog.i18n.NumberFormatSymbols_th={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"THB"};goog.i18n.NumberFormatSymbols_th_TH=goog.i18n.NumberFormatSymbols_th;
+goog.i18n.NumberFormatSymbols_tl={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"PHP"};
+goog.i18n.NumberFormatSymbols_tr={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"%#,##0",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"TRY"};goog.i18n.NumberFormatSymbols_tr_TR=goog.i18n.NumberFormatSymbols_tr;
+goog.i18n.NumberFormatSymbols_uk={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"\u0415",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u041d\u0435\u00a0\u0447\u0438\u0441\u043b\u043e",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"UAH"};goog.i18n.NumberFormatSymbols_uk_UA=goog.i18n.NumberFormatSymbols_uk;
+goog.i18n.NumberFormatSymbols_ur={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"PKR"};goog.i18n.NumberFormatSymbols_ur_PK=goog.i18n.NumberFormatSymbols_ur;
+goog.i18n.NumberFormatSymbols_vi={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"VND"};goog.i18n.NumberFormatSymbols_vi_VN=goog.i18n.NumberFormatSymbols_vi;
+goog.i18n.NumberFormatSymbols_zh={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"CNY"};goog.i18n.NumberFormatSymbols_zh_CN=goog.i18n.NumberFormatSymbols_zh;
+goog.i18n.NumberFormatSymbols_zh_HK={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u975e\u6578\u503c",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"HKD"};goog.i18n.NumberFormatSymbols_zh_Hans_CN=goog.i18n.NumberFormatSymbols_zh;
+goog.i18n.NumberFormatSymbols_zh_TW={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u975e\u6578\u503c",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"TWD"};
+goog.i18n.NumberFormatSymbols_zu={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"I-NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ZAR"};goog.i18n.NumberFormatSymbols_zu_ZA=goog.i18n.NumberFormatSymbols_zu;goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;
+"af"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_af);if("af_ZA"==goog.LOCALE||"af-ZA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_af;"am"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_am);if("am_ET"==goog.LOCALE||"am-ET"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_am;"ar"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ar);
+if("ar_001"==goog.LOCALE||"ar-001"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ar;if("ar_EG"==goog.LOCALE||"ar-EG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ar;"bg"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bg);if("bg_BG"==goog.LOCALE||"bg-BG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bg;"bn"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bn);
+if("bn_BD"==goog.LOCALE||"bn-BD"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bn;"br"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_br);if("br_FR"==goog.LOCALE||"br-FR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_br;"ca"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ca);if("ca_AD"==goog.LOCALE||"ca-AD"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ca;
+if("ca_ES"==goog.LOCALE||"ca-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ca;"chr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_chr);if("chr_US"==goog.LOCALE||"chr-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_chr;"cs"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cs);if("cs_CZ"==goog.LOCALE||"cs-CZ"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cs;
+"cy"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cy);if("cy_GB"==goog.LOCALE||"cy-GB"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cy;"da"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_da);if("da_DK"==goog.LOCALE||"da-DK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_da;"de"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de);
+if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de_AT;if("de_BE"==goog.LOCALE||"de-BE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de;if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de_CH;if("de_DE"==goog.LOCALE||"de-DE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de;
+if("de_LU"==goog.LOCALE||"de-LU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de;"el"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_el);if("el_GR"==goog.LOCALE||"el-GR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_el;"en"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en);if("en_AS"==goog.LOCALE||"en-AS"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;
+if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_AU;if("en_Dsrt_US"==goog.LOCALE||"en-Dsrt-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_FM"==goog.LOCALE||"en-FM"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_GB;
+if("en_GU"==goog.LOCALE||"en-GU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_IE;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_IN;if("en_MH"==goog.LOCALE||"en-MH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;
+if("en_MP"==goog.LOCALE||"en-MP"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_PR"==goog.LOCALE||"en-PR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_PW"==goog.LOCALE||"en-PW"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_SG;
+if("en_TC"==goog.LOCALE||"en-TC"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_UM"==goog.LOCALE||"en-UM"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_VG"==goog.LOCALE||"en-VG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;
+if("en_VI"==goog.LOCALE||"en-VI"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_ZA;"es"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es_419;if("es_EA"==goog.LOCALE||"es-EA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es;
+if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es;if("es_IC"==goog.LOCALE||"es-IC"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es;"et"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_et);if("et_EE"==goog.LOCALE||"et-EE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_et;"eu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_eu);
+if("eu_ES"==goog.LOCALE||"eu-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_eu;"fa"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fa);if("fa_IR"==goog.LOCALE||"fa-IR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fa;"fi"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fi);if("fi_FI"==goog.LOCALE||"fi-FI"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fi;
+"fil"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fil);if("fil_PH"==goog.LOCALE||"fil-PH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fil;"fr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr);if("fr_BL"==goog.LOCALE||"fr-BL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr_CA;
+if("fr_FR"==goog.LOCALE||"fr-FR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_GF"==goog.LOCALE||"fr-GF"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_GP"==goog.LOCALE||"fr-GP"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_MC"==goog.LOCALE||"fr-MC"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;
+if("fr_MF"==goog.LOCALE||"fr-MF"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_MQ"==goog.LOCALE||"fr-MQ"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_RE"==goog.LOCALE||"fr-RE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_YT"==goog.LOCALE||"fr-YT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;"gl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gl);
+if("gl_ES"==goog.LOCALE||"gl-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gl;"gsw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gsw);if("gsw_CH"==goog.LOCALE||"gsw-CH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gsw;"gu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gu);if("gu_IN"==goog.LOCALE||"gu-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gu;
+"haw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_haw);if("haw_US"==goog.LOCALE||"haw-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_haw;"he"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_he);if("he_IL"==goog.LOCALE||"he-IL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_he;"hi"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hi);
+if("hi_IN"==goog.LOCALE||"hi-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hi;"hr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hr);if("hr_HR"==goog.LOCALE||"hr-HR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hr;"hu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hu);if("hu_HU"==goog.LOCALE||"hu-HU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hu;
+"id"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_id);if("id_ID"==goog.LOCALE||"id-ID"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_id;"in"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_in);"is"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_is);if("is_IS"==goog.LOCALE||"is-IS"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_is;
+"it"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_it);if("it_IT"==goog.LOCALE||"it-IT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_it;if("it_SM"==goog.LOCALE||"it-SM"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_it;"iw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_iw);"ja"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ja);
+if("ja_JP"==goog.LOCALE||"ja-JP"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ja;"kn"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_kn);if("kn_IN"==goog.LOCALE||"kn-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_kn;"ko"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ko);if("ko_KR"==goog.LOCALE||"ko-KR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ko;
+"ln"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ln);if("ln_CD"==goog.LOCALE||"ln-CD"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ln;"lt"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lt);if("lt_LT"==goog.LOCALE||"lt-LT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lt;"lv"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lv);
+if("lv_LV"==goog.LOCALE||"lv-LV"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lv;"ml"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ml);if("ml_IN"==goog.LOCALE||"ml-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ml;"mr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mr);if("mr_IN"==goog.LOCALE||"mr-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mr;
+"ms"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ms);if("ms_Latn_MY"==goog.LOCALE||"ms-Latn-MY"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ms;"mt"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mt);if("mt_MT"==goog.LOCALE||"mt-MT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mt;"nb"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nb);
+if("nb_NO"==goog.LOCALE||"nb-NO"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nb;"nl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nl);if("nl_NL"==goog.LOCALE||"nl-NL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nl;"no"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_no);"or"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_or);
+if("or_IN"==goog.LOCALE||"or-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_or;"pl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pl);if("pl_PL"==goog.LOCALE||"pl-PL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pl;"pt"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pt);if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pt;
+if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pt_PT;"ro"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ro);if("ro_RO"==goog.LOCALE||"ro-RO"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ro;"ru"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ru);if("ru_RU"==goog.LOCALE||"ru-RU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ru;
+"sk"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sk);if("sk_SK"==goog.LOCALE||"sk-SK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sk;"sl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sl);if("sl_SI"==goog.LOCALE||"sl-SI"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sl;"sq"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sq);
+if("sq_AL"==goog.LOCALE||"sq-AL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sq;"sr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sr);if("sr_Cyrl_RS"==goog.LOCALE||"sr-Cyrl-RS"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sr;"sv"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sv);if("sv_SE"==goog.LOCALE||"sv-SE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sv;
+"sw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sw);if("sw_TZ"==goog.LOCALE||"sw-TZ"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sw;"ta"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ta);if("ta_IN"==goog.LOCALE||"ta-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ta;"te"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_te);
+if("te_IN"==goog.LOCALE||"te-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_te;"th"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_th);if("th_TH"==goog.LOCALE||"th-TH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_th;"tl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_tl);"tr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_tr);
+if("tr_TR"==goog.LOCALE||"tr-TR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_tr;"uk"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_uk);if("uk_UA"==goog.LOCALE||"uk-UA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_uk;"ur"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ur);if("ur_PK"==goog.LOCALE||"ur-PK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ur;
+"vi"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_vi);if("vi_VN"==goog.LOCALE||"vi-VN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_vi;"zh"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh);if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh_HK;
+if("zh_Hans_CN"==goog.LOCALE||"zh-Hans-CN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh;if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh_TW;"zu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zu);if("zu_ZA"==goog.LOCALE||"zu-ZA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zu;goog.i18n.NumberFormat=function(a,b,c){this.intlCurrencyCode_=b||goog.i18n.NumberFormatSymbols.DEF_CURRENCY_CODE;this.currencyStyle_=c||goog.i18n.NumberFormat.CurrencyStyle.LOCAL;this.maximumIntegerDigits_=40;this.minimumIntegerDigits_=1;this.significantDigits_=0;this.maximumFractionDigits_=3;this.minExponentDigits_=this.minimumFractionDigits_=0;this.showTrailingZeros_=this.useSignForPositiveExponent_=!1;this.positiveSuffix_=this.positivePrefix_="";this.negativePrefix_="-";this.negativeSuffix_="";
+this.multiplier_=1;this.groupingSize_=3;this.useExponentialNotation_=this.decimalSeparatorAlwaysShown_=!1;this.compactStyle_=goog.i18n.NumberFormat.CompactStyle.NONE;this.baseFormattingNumber_=null;"number"==typeof a?this.applyStandardPattern_(a):this.applyPattern_(a)};goog.i18n.NumberFormat.Format={DECIMAL:1,SCIENTIFIC:2,PERCENT:3,CURRENCY:4,COMPACT_SHORT:5,COMPACT_LONG:6};goog.i18n.NumberFormat.CurrencyStyle={LOCAL:0,PORTABLE:1,GLOBAL:2};goog.i18n.NumberFormat.CompactStyle={NONE:0,SHORT:1,LONG:2};
+goog.i18n.NumberFormat.enforceAsciiDigits_=!1;goog.i18n.NumberFormat.setEnforceAsciiDigits=function(a){goog.i18n.NumberFormat.enforceAsciiDigits_=a};goog.i18n.NumberFormat.isEnforceAsciiDigits=function(){return goog.i18n.NumberFormat.enforceAsciiDigits_};goog.i18n.NumberFormat.prototype.setMinimumFractionDigits=function(a){if(0<this.significantDigits_&&0<a)throw Error("Can't combine significant digits and minimum fraction digits");this.minimumFractionDigits_=a};
+goog.i18n.NumberFormat.prototype.setMaximumFractionDigits=function(a){this.maximumFractionDigits_=a};goog.i18n.NumberFormat.prototype.setSignificantDigits=function(a){if(0<this.minimumFractionDigits_&&0<=a)throw Error("Can't combine significant digits and minimum fraction digits");this.significantDigits_=a};
+goog.i18n.NumberFormat.prototype.applyPattern_=function(a){a.replace(/ /g,"\u00a0");var b=[0];this.positivePrefix_=this.parseAffix_(a,b);var c=b[0];this.parseTrunk_(a,b);c=b[0]-c;this.positiveSuffix_=this.parseAffix_(a,b);b[0]<a.length&&a.charAt(b[0])==goog.i18n.NumberFormat.PATTERN_SEPARATOR_?(b[0]++,this.negativePrefix_=this.parseAffix_(a,b),b[0]+=c,this.negativeSuffix_=this.parseAffix_(a,b)):(this.negativePrefix_=this.positivePrefix_+this.negativePrefix_,this.negativeSuffix_+=this.positiveSuffix_)};
+goog.i18n.NumberFormat.prototype.applyStandardPattern_=function(a){switch(a){case goog.i18n.NumberFormat.Format.DECIMAL:this.applyPattern_(goog.i18n.NumberFormatSymbols.DECIMAL_PATTERN);break;case goog.i18n.NumberFormat.Format.SCIENTIFIC:this.applyPattern_(goog.i18n.NumberFormatSymbols.SCIENTIFIC_PATTERN);break;case goog.i18n.NumberFormat.Format.PERCENT:this.applyPattern_(goog.i18n.NumberFormatSymbols.PERCENT_PATTERN);break;case goog.i18n.NumberFormat.Format.CURRENCY:this.applyPattern_(goog.i18n.currency.adjustPrecision(goog.i18n.NumberFormatSymbols.CURRENCY_PATTERN,
+this.intlCurrencyCode_));break;case goog.i18n.NumberFormat.Format.COMPACT_SHORT:this.applyCompactStyle_(goog.i18n.NumberFormat.CompactStyle.SHORT);break;case goog.i18n.NumberFormat.Format.COMPACT_LONG:this.applyCompactStyle_(goog.i18n.NumberFormat.CompactStyle.LONG);break;default:throw Error("Unsupported pattern type.");}};
+goog.i18n.NumberFormat.prototype.applyCompactStyle_=function(a){this.compactStyle_=a;this.applyPattern_(goog.i18n.NumberFormatSymbols.DECIMAL_PATTERN);this.setMinimumFractionDigits(0);this.setMaximumFractionDigits(2);this.setSignificantDigits(2)};
+goog.i18n.NumberFormat.prototype.parse=function(a,b){var c=b||[0];if(this.compactStyle_!=goog.i18n.NumberFormat.CompactStyle.NONE)throw Error("Parsing of compact numbers is unimplemented");var d=NaN;a=a.replace(/ /g,"\u00a0");var e=a.indexOf(this.positivePrefix_,c[0])==c[0],f=a.indexOf(this.negativePrefix_,c[0])==c[0];e&&f&&(this.positivePrefix_.length>this.negativePrefix_.length?f=!1:this.positivePrefix_.length<this.negativePrefix_.length&&(e=!1));e?c[0]+=this.positivePrefix_.length:f&&(c[0]+=this.negativePrefix_.length);
+a.indexOf(goog.i18n.NumberFormatSymbols.INFINITY,c[0])==c[0]?(c[0]+=goog.i18n.NumberFormatSymbols.INFINITY.length,d=Infinity):d=this.parseNumber_(a,c);if(e){if(a.indexOf(this.positiveSuffix_,c[0])!=c[0])return NaN;c[0]+=this.positiveSuffix_.length}else if(f){if(a.indexOf(this.negativeSuffix_,c[0])!=c[0])return NaN;c[0]+=this.negativeSuffix_.length}return f?-d:d};
+goog.i18n.NumberFormat.prototype.parseNumber_=function(a,b){var c=!1,d=!1,e=!1,f=1,g=goog.i18n.NumberFormatSymbols.DECIMAL_SEP,h=goog.i18n.NumberFormatSymbols.GROUP_SEP,k=goog.i18n.NumberFormatSymbols.EXP_SYMBOL;if(this.compactStyle_!=goog.i18n.NumberFormat.CompactStyle.NONE)throw Error("Parsing of compact style numbers is not implemented");for(var l="";b[0]<a.length;b[0]++){var m=a.charAt(b[0]),p=this.getDigit_(m);if(0<=p&&9>=p)l+=p,e=!0;else if(m==g.charAt(0)){if(c||d)break;l+=".";c=!0}else if(m==
+h.charAt(0)&&("\u00a0"!=h.charAt(0)||b[0]+1<a.length&&0<=this.getDigit_(a.charAt(b[0]+1)))){if(c||d)break}else if(m==k.charAt(0)){if(d)break;l+="E";d=!0}else if("+"==m||"-"==m)l+=m;else if(m==goog.i18n.NumberFormatSymbols.PERCENT.charAt(0)){if(1!=f)break;f=100;if(e){b[0]++;break}}else if(m==goog.i18n.NumberFormatSymbols.PERMILL.charAt(0)){if(1!=f)break;f=1E3;if(e){b[0]++;break}}else break}return parseFloat(l)/f};
+goog.i18n.NumberFormat.prototype.format=function(a){if(isNaN(a))return goog.i18n.NumberFormatSymbols.NAN;var b=[],c=goog.isNull(this.baseFormattingNumber_)?a:this.baseFormattingNumber_,c=this.getUnitAfterRounding_(c,a);a/=Math.pow(10,c.divisorBase);b.push(c.prefix);var d=0>a||0==a&&0>1/a;b.push(d?this.negativePrefix_:this.positivePrefix_);isFinite(a)?(a*=d?-1:1,a*=this.multiplier_,this.useExponentialNotation_?this.subformatExponential_(a,b):this.subformatFixed_(a,this.minimumIntegerDigits_,b)):b.push(goog.i18n.NumberFormatSymbols.INFINITY);
+b.push(d?this.negativeSuffix_:this.positiveSuffix_);b.push(c.suffix);return b.join("")};goog.i18n.NumberFormat.prototype.roundNumber_=function(a){var b=Math.pow(10,this.maximumFractionDigits_),c=0>=this.significantDigits_?Math.round(a*b):Math.floor(this.roundToSignificantDigits_(a*b,this.significantDigits_,this.maximumFractionDigits_));isFinite(c)?(a=Math.floor(c/b),b=Math.floor(c-a*b)):b=0;return{intValue:a,fracValue:b}};
+goog.i18n.NumberFormat.prototype.subformatFixed_=function(a,b,c){if(this.minimumFractionDigits_>this.maximumFractionDigits_)throw Error("Min value must be less than max value");a=this.roundNumber_(a);var d=Math.pow(10,this.maximumFractionDigits_),e=a.intValue,f=a.fracValue,g=0==e?0:this.intLog10_(e)+1,h=0<this.minimumFractionDigits_||0<f||this.showTrailingZeros_&&g<this.significantDigits_;a=this.minimumFractionDigits_;h&&(a=this.showTrailingZeros_&&0<this.significantDigits_?this.significantDigits_-
+g:this.minimumFractionDigits_);for(var k="",g=e;1E20<g;)k="0"+k,g=Math.round(g/10);var k=g+k,l=goog.i18n.NumberFormatSymbols.DECIMAL_SEP,m=goog.i18n.NumberFormatSymbols.GROUP_SEP,g=goog.i18n.NumberFormat.enforceAsciiDigits_?48:goog.i18n.NumberFormatSymbols.ZERO_DIGIT.charCodeAt(0),p=k.length;if(0<e||0<b){for(e=p;e<b;e++)c.push(String.fromCharCode(g));for(e=0;e<p;e++)c.push(String.fromCharCode(g+1*k.charAt(e))),1<p-e&&0<this.groupingSize_&&1==(p-e)%this.groupingSize_&&c.push(m)}else h||c.push(String.fromCharCode(g));
+(this.decimalSeparatorAlwaysShown_||h)&&c.push(l);b=""+(f+d);for(d=b.length;"0"==b.charAt(d-1)&&d>a+1;)d--;for(e=1;e<d;e++)c.push(String.fromCharCode(g+1*b.charAt(e)))};
+goog.i18n.NumberFormat.prototype.addExponentPart_=function(a,b){b.push(goog.i18n.NumberFormatSymbols.EXP_SYMBOL);0>a?(a=-a,b.push(goog.i18n.NumberFormatSymbols.MINUS_SIGN)):this.useSignForPositiveExponent_&&b.push(goog.i18n.NumberFormatSymbols.PLUS_SIGN);for(var c=""+a,d=goog.i18n.NumberFormat.enforceAsciiDigits_?"0":goog.i18n.NumberFormatSymbols.ZERO_DIGIT,e=c.length;e<this.minExponentDigits_;e++)b.push(d);b.push(c)};
+goog.i18n.NumberFormat.prototype.subformatExponential_=function(a,b){if(0==a)this.subformatFixed_(a,this.minimumIntegerDigits_,b),this.addExponentPart_(0,b);else{var c=goog.math.safeFloor(Math.log(a)/Math.log(10));a/=Math.pow(10,c);var d=this.minimumIntegerDigits_;if(1<this.maximumIntegerDigits_&&this.maximumIntegerDigits_>this.minimumIntegerDigits_){for(;0!=c%this.maximumIntegerDigits_;)a*=10,c--;d=1}else 1>this.minimumIntegerDigits_?(c++,a/=10):(c-=this.minimumIntegerDigits_-1,a*=Math.pow(10,this.minimumIntegerDigits_-
+1));this.subformatFixed_(a,d,b);this.addExponentPart_(c,b)}};goog.i18n.NumberFormat.prototype.getDigit_=function(a){a=a.charCodeAt(0);if(48<=a&&58>a)return a-48;var b=goog.i18n.NumberFormatSymbols.ZERO_DIGIT.charCodeAt(0);return b<=a&&a<b+10?a-b:-1};goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_="0";goog.i18n.NumberFormat.PATTERN_GROUPING_SEPARATOR_=",";goog.i18n.NumberFormat.PATTERN_DECIMAL_SEPARATOR_=".";goog.i18n.NumberFormat.PATTERN_PER_MILLE_="\u2030";goog.i18n.NumberFormat.PATTERN_PERCENT_="%";
+goog.i18n.NumberFormat.PATTERN_DIGIT_="#";goog.i18n.NumberFormat.PATTERN_SEPARATOR_=";";goog.i18n.NumberFormat.PATTERN_EXPONENT_="E";goog.i18n.NumberFormat.PATTERN_PLUS_="+";goog.i18n.NumberFormat.PATTERN_MINUS_="-";goog.i18n.NumberFormat.PATTERN_CURRENCY_SIGN_="\u00a4";goog.i18n.NumberFormat.QUOTE_="'";
+goog.i18n.NumberFormat.prototype.parseAffix_=function(a,b){for(var c="",d=!1,e=a.length;b[0]<e;b[0]++){var f=a.charAt(b[0]);if(f==goog.i18n.NumberFormat.QUOTE_)b[0]+1<e&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.QUOTE_?(b[0]++,c+="'"):d=!d;else if(d)c+=f;else switch(f){case goog.i18n.NumberFormat.PATTERN_DIGIT_:case goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_:case goog.i18n.NumberFormat.PATTERN_GROUPING_SEPARATOR_:case goog.i18n.NumberFormat.PATTERN_DECIMAL_SEPARATOR_:case goog.i18n.NumberFormat.PATTERN_SEPARATOR_:return c;
+case goog.i18n.NumberFormat.PATTERN_CURRENCY_SIGN_:if(b[0]+1<e&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.PATTERN_CURRENCY_SIGN_)b[0]++,c+=this.intlCurrencyCode_;else switch(this.currencyStyle_){case goog.i18n.NumberFormat.CurrencyStyle.LOCAL:c+=goog.i18n.currency.getLocalCurrencySign(this.intlCurrencyCode_);break;case goog.i18n.NumberFormat.CurrencyStyle.GLOBAL:c+=goog.i18n.currency.getGlobalCurrencySign(this.intlCurrencyCode_);break;case goog.i18n.NumberFormat.CurrencyStyle.PORTABLE:c+=goog.i18n.currency.getPortableCurrencySign(this.intlCurrencyCode_)}break;
+case goog.i18n.NumberFormat.PATTERN_PERCENT_:if(1!=this.multiplier_)throw Error("Too many percent/permill");this.multiplier_=100;c+=goog.i18n.NumberFormatSymbols.PERCENT;break;case goog.i18n.NumberFormat.PATTERN_PER_MILLE_:if(1!=this.multiplier_)throw Error("Too many percent/permill");this.multiplier_=1E3;c+=goog.i18n.NumberFormatSymbols.PERMILL;break;default:c+=f}}return c};
+goog.i18n.NumberFormat.prototype.parseTrunk_=function(a,b){for(var c=-1,d=0,e=0,f=0,g=-1,h=a.length,k=!0;b[0]<h&&k;b[0]++){var l=a.charAt(b[0]);switch(l){case goog.i18n.NumberFormat.PATTERN_DIGIT_:0<e?f++:d++;0<=g&&0>c&&g++;break;case goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_:if(0<f)throw Error('Unexpected "0" in pattern "'+a+'"');e++;0<=g&&0>c&&g++;break;case goog.i18n.NumberFormat.PATTERN_GROUPING_SEPARATOR_:g=0;break;case goog.i18n.NumberFormat.PATTERN_DECIMAL_SEPARATOR_:if(0<=c)throw Error('Multiple decimal separators in pattern "'+
+a+'"');c=d+e+f;break;case goog.i18n.NumberFormat.PATTERN_EXPONENT_:if(this.useExponentialNotation_)throw Error('Multiple exponential symbols in pattern "'+a+'"');this.useExponentialNotation_=!0;this.minExponentDigits_=0;b[0]+1<h&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.PATTERN_PLUS_&&(b[0]++,this.useSignForPositiveExponent_=!0);for(;b[0]+1<h&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_;)b[0]++,this.minExponentDigits_++;if(1>d+e||1>this.minExponentDigits_)throw Error('Malformed exponential pattern "'+
+a+'"');k=!1;break;default:b[0]--,k=!1}}0==e&&0<d&&0<=c&&(e=c,0==e&&e++,f=d-e,d=e-1,e=1);if(0>c&&0<f||0<=c&&(c<d||c>d+e)||0==g)throw Error('Malformed pattern "'+a+'"');f=d+e+f;this.maximumFractionDigits_=0<=c?f-c:0;0<=c&&(this.minimumFractionDigits_=d+e-c,0>this.minimumFractionDigits_&&(this.minimumFractionDigits_=0));e=0<=c?c:f;this.minimumIntegerDigits_=e-d;this.useExponentialNotation_&&(this.maximumIntegerDigits_=d+this.minimumIntegerDigits_,0==this.maximumFractionDigits_&&0==this.minimumIntegerDigits_&&
+(this.minimumIntegerDigits_=1));this.groupingSize_=Math.max(0,g);this.decimalSeparatorAlwaysShown_=0==c||c==f};goog.i18n.NumberFormat.NULL_UNIT_={prefix:"",suffix:"",divisorBase:0};
+goog.i18n.NumberFormat.prototype.getUnitFor_=function(a,b){var c=this.compactStyle_==goog.i18n.NumberFormat.CompactStyle.SHORT?goog.i18n.CompactNumberFormatSymbols.COMPACT_DECIMAL_SHORT_PATTERN:goog.i18n.CompactNumberFormatSymbols.COMPACT_DECIMAL_LONG_PATTERN;if(3>a)return goog.i18n.NumberFormat.NULL_UNIT_;a=Math.min(14,a);c=c[Math.pow(10,a)];if(!c)return goog.i18n.NumberFormat.NULL_UNIT_;c=c[b];return c&&"0"!=c?(c=/([^0]*)(0+)(.*)/.exec(c))?{prefix:c[1],suffix:c[3],divisorBase:a-(c[2].length-1)}:
+goog.i18n.NumberFormat.NULL_UNIT_:goog.i18n.NumberFormat.NULL_UNIT_};
+goog.i18n.NumberFormat.prototype.getUnitAfterRounding_=function(a,b){if(this.compactStyle_==goog.i18n.NumberFormat.CompactStyle.NONE)return goog.i18n.NumberFormat.NULL_UNIT_;a=Math.abs(a);b=Math.abs(b);var c=this.pluralForm_(a),d=1>=a?0:this.intLog10_(a),c=this.getUnitFor_(d,c).divisorBase,d=b/Math.pow(10,c),d=this.roundNumber_(d),e=a/Math.pow(10,c),e=this.roundNumber_(e),d=this.pluralForm_(d.intValue+d.fracValue);return this.getUnitFor_(c+this.intLog10_(e.intValue),d)};
+goog.i18n.NumberFormat.prototype.intLog10_=function(a){for(var b=0;1<=(a/=10);)b++;return b};goog.i18n.NumberFormat.prototype.roundToSignificantDigits_=function(a,b,c){if(!a)return a;var d=this.intLog10_(a);b=b-d-1;if(b<-c)return c=Math.pow(10,c),Math.round(a/c)*c;c=Math.pow(10,b);a=Math.round(a*c);return a/c};goog.i18n.NumberFormat.prototype.pluralForm_=function(){return"other"};goog.i18n.ordinalRules={};goog.i18n.ordinalRules.Keyword={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};goog.i18n.ordinalRules.defaultSelect_=function(){return goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.frSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.huSelect_=function(a){return 1==a||5==a?goog.i18n.ordinalRules.Keyword.ONE:goog.i18n.ordinalRules.Keyword.OTHER};
+goog.i18n.ordinalRules.svSelect_=function(a){return 1!=a%10&&2!=a%10||11==a%100||12==a%100?goog.i18n.ordinalRules.Keyword.OTHER:goog.i18n.ordinalRules.Keyword.ONE};goog.i18n.ordinalRules.enSelect_=function(a){return 1==a%10&&11!=a%100?goog.i18n.ordinalRules.Keyword.ONE:2==a%10&&12!=a%100?goog.i18n.ordinalRules.Keyword.TWO:3==a%10&&13!=a%100?goog.i18n.ordinalRules.Keyword.FEW:goog.i18n.ordinalRules.Keyword.OTHER};
+goog.i18n.ordinalRules.itSelect_=function(a){return 11==a||8==a||80==a||800==a?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.caSelect_=function(a){return 1==a||3==a?goog.i18n.ordinalRules.Keyword.ONE:2==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:goog.i18n.ordinalRules.Keyword.OTHER};
+goog.i18n.ordinalRules.mrSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:2==a||3==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.guSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:2==a||3==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:6==a?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER};
+goog.i18n.ordinalRules.bnSelect_=function(a){return 1==a||5==a||7==a||8==a||9==a||10==a?goog.i18n.ordinalRules.Keyword.ONE:2==a||3==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:6==a?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER};
+goog.i18n.ordinalRules.zuSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:a==(a|0)&&2<=a&&9>=a?goog.i18n.ordinalRules.Keyword.FEW:a==(a|0)&&(10<=a&&19>=a||100<=a&&199>=a||1E3<=a&&1999>=a)?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;"af"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"am"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"ar"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"bg"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"bn"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.bnSelect_);"br"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ca"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.caSelect_);"chr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"cs"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"cy"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"da"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"de"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;
+if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"el"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"en"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_);if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;
+if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;
+if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;"es"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"et"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"eu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"fa"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"fi"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"fil"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);"fr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);
+if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_;"gl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"gsw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"gu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.guSelect_);"haw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"he"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"hi"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.guSelect_);"hr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"hu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.huSelect_);"id"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"in"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"is"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"it"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.itSelect_);"iw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ja"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"kn"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ko"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"ln"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"lt"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"lv"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ml"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"mr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.mrSelect_);"ms"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);
+"mt"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"nb"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"nl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"no"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"or"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"pl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"pt"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"ro"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);"ru"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"sk"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sq"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sv"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.svSelect_);"sw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"ta"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"te"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"th"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"tl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"tr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"uk"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);
+"ur"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"vi"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);"zh"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;
+if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"zu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.zuSelect_);goog.i18n.pluralRules={};goog.i18n.pluralRules.Keyword={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};goog.i18n.pluralRules.defaultSelect_=function(){return goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.arSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:a==(a|0)&&3<=a%100&&10>=a%100?goog.i18n.pluralRules.Keyword.FEW:a==(a|0)&&11<=a%100&&99>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.heSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:0!=a&&0==a%10?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.enSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.filSelect_=function(a){return 0==a||1==a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.frSelect_=function(a){return 0<=a&&2>=a&&2!=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.lvSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a%10&&11!=a%100?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.iuSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.gaSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:a==(a|0)&&3<=a&&6>=a?goog.i18n.pluralRules.Keyword.FEW:a==(a|0)&&7<=a&&10>=a?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.roSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:0==a||1!=a&&a==(a|0)&&1<=a%100&&19>=a%100?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.ltSelect_=function(a){return 1==a%10&&(11>a%100||19<a%100)?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a%10&&9>=a%10&&(11>a%100||19<a%100)?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.beSelect_=function(a){return 1==a%10&&11!=a%100?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a%10&&4>=a%10&&(12>a%100||14<a%100)?goog.i18n.pluralRules.Keyword.FEW:0==a%10||a==(a|0)&&5<=a%10&&9>=a%10||a==(a|0)&&11<=a%100&&14>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.csSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a&&4>=a?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.plSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a%10&&4>=a%10&&(12>a%100||14<a%100)?goog.i18n.pluralRules.Keyword.FEW:1!=a&&(0==a%10||1==a%10)||a==(a|0)&&5<=a%10&&9>=a%10||a==(a|0)&&12<=a%100&&14>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.slSelect_=function(a){return 1==a%100?goog.i18n.pluralRules.Keyword.ONE:2==a%100?goog.i18n.pluralRules.Keyword.TWO:3==a%100||4==a%100?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.mtSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:0==a||a==(a|0)&&2<=a%100&&10>=a%100?goog.i18n.pluralRules.Keyword.FEW:a==(a|0)&&11<=a%100&&19>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.mkSelect_=function(a){return 1==a%10&&11!=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.cySelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:3==a?goog.i18n.pluralRules.Keyword.FEW:6==a?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.lagSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:0<=a&&2>=a&&0!=a&&2!=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.shiSelect_=function(a){return 0<=a&&1>=a?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a&&10>=a?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.brSelect_=function(a){return 1==a%10&&11!=a%100&&71!=a%100&&91!=a%100?goog.i18n.pluralRules.Keyword.ONE:2==a%10&&12!=a%100&&72!=a%100&&92!=a%100?goog.i18n.pluralRules.Keyword.TWO:(3==a%10||4==a%10||9==a%10)&&(10>a%100||19<a%100)&&(70>a%100||79<a%100)&&(90>a%100||99<a%100)?goog.i18n.pluralRules.Keyword.FEW:0!=a&&0==a%1E6?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.kshSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.tzmSelect_=function(a){return 0==a||1==a||a==(a|0)&&11<=a&&99>=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.gvSelect_=function(a){return 1==a%10||2==a%10||0==a%20?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.gdSelect_=function(a){return 1==a||11==a?goog.i18n.pluralRules.Keyword.ONE:2==a||12==a?goog.i18n.pluralRules.Keyword.TWO:a==(a|0)&&(3<=a&&10>=a||13<=a&&19>=a)?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"af"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"am"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);
+"ar"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.arSelect_);"bg"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"bn"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"br"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.brSelect_);"ca"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"chr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);
+"cs"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.csSelect_);"cy"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.cySelect_);"da"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"de"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;
+if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"el"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"en"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;
+if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;
+if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"es"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"et"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);
+"eu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"fa"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"fi"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"fil"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);"fr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.frSelect_);if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.frSelect_;
+"gl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"gsw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"gu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"haw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"he"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.heSelect_);"hi"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);
+"hr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"hu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"id"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"in"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"is"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"it"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);
+"iw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.heSelect_);"ja"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"kn"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"ko"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"ln"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);"lt"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.ltSelect_);
+"lv"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.lvSelect_);"ml"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"mr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"ms"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"mt"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.mtSelect_);"nb"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);
+"nl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"no"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"or"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"pl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.plSelect_);"pt"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;
+if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"ro"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.roSelect_);"ru"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"sk"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.csSelect_);"sl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.slSelect_);"sq"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);
+"sr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"sv"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"sw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"ta"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"te"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"th"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);
+"tl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);"tr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"uk"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"ur"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"vi"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"zh"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);
+if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_;if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_;"zu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);goog.i18n.MessageFormat=function(a){this.literals_=[];this.parsedPattern_=[];this.numberFormatter_=new goog.i18n.NumberFormat(goog.i18n.NumberFormat.Format.DECIMAL);this.parsePattern_(a)};goog.i18n.MessageFormat.LITERAL_PLACEHOLDER_="\ufddf_";goog.i18n.MessageFormat.Element_={STRING:0,BLOCK:1};goog.i18n.MessageFormat.BlockType_={PLURAL:0,ORDINAL:1,SELECT:2,SIMPLE:3,STRING:4,UNKNOWN:5};goog.i18n.MessageFormat.OTHER_="other";goog.i18n.MessageFormat.REGEX_LITERAL_=/'([{}#].*?)'/g;
+goog.i18n.MessageFormat.REGEX_DOUBLE_APOSTROPHE_=/''/g;goog.i18n.MessageFormat.prototype.format=function(a){return this.format_(a,!1)};goog.i18n.MessageFormat.prototype.format_=function(a,b){if(0==this.parsedPattern_.length)return"";var c=[];this.formatBlock_(this.parsedPattern_,a,b,c);c=c.join("");for(b||goog.asserts.assert(-1==c.search("#"),"Not all # were replaced.");0<this.literals_.length;)c=c.replace(this.buildPlaceholder_(this.literals_),this.literals_.pop());return c};
+goog.i18n.MessageFormat.prototype.formatBlock_=function(a,b,c,d){for(var e=0;e<a.length;e++)switch(a[e].type){case goog.i18n.MessageFormat.BlockType_.STRING:d.push(a[e].value);break;case goog.i18n.MessageFormat.BlockType_.SIMPLE:var f=a[e].value;this.formatSimplePlaceholder_(f,b,d);break;case goog.i18n.MessageFormat.BlockType_.SELECT:f=a[e].value;this.formatSelectBlock_(f,b,c,d);break;case goog.i18n.MessageFormat.BlockType_.PLURAL:f=a[e].value;this.formatPluralOrdinalBlock_(f,b,goog.i18n.pluralRules.select,
+c,d);break;case goog.i18n.MessageFormat.BlockType_.ORDINAL:f=a[e].value;this.formatPluralOrdinalBlock_(f,b,goog.i18n.ordinalRules.select,c,d);break;default:goog.asserts.fail("Unrecognized block type.")}};goog.i18n.MessageFormat.prototype.formatSimplePlaceholder_=function(a,b,c){b=b[a];goog.isDef(b)?(this.literals_.push(b),c.push(this.buildPlaceholder_(this.literals_))):c.push("Undefined parameter - "+a)};
+goog.i18n.MessageFormat.prototype.formatSelectBlock_=function(a,b,c,d){var e=a.argumentIndex;goog.isDef(b[e])?(e=a[b[e]],goog.isDef(e)||(e=a[goog.i18n.MessageFormat.OTHER_],goog.asserts.assertArray(e,"Invalid option or missing other option for select block.")),this.formatBlock_(e,b,c,d)):d.push("Undefined parameter - "+e)};
+goog.i18n.MessageFormat.prototype.formatPluralOrdinalBlock_=function(a,b,c,d,e){var f=a.argumentIndex,g=a.argumentOffset,h=+b[f];isNaN(h)?e.push("Undefined or invalid parameter - "+f):(g=h-g,f=a[b[f]],goog.isDef(f)||(goog.asserts.assert(0<=g,"Argument index smaller than offset."),c=c(g),goog.asserts.assertString(c,"Invalid plural key."),f=a[c],goog.isDef(f)||(f=a[goog.i18n.MessageFormat.OTHER_]),goog.asserts.assertArray(f,"Invalid option or missing other option for plural block.")),a=[],this.formatBlock_(f,
+b,d,a),b=a.join(""),goog.asserts.assertString(b,"Empty block in plural."),d?e.push(b):(d=this.numberFormatter_.format(g),e.push(b.replace(/#/g,d))))};goog.i18n.MessageFormat.prototype.parsePattern_=function(a){a&&(a=this.insertPlaceholders_(a),this.parsedPattern_=this.parseBlock_(a))};
+goog.i18n.MessageFormat.prototype.insertPlaceholders_=function(a){var b=this.literals_,c=goog.bind(this.buildPlaceholder_,this);a=a.replace(goog.i18n.MessageFormat.REGEX_DOUBLE_APOSTROPHE_,function(){b.push("'");return c(b)});return a=a.replace(goog.i18n.MessageFormat.REGEX_LITERAL_,function(a,e){b.push(e);return c(b)})};
+goog.i18n.MessageFormat.prototype.extractParts_=function(a){var b=0,c=[],d=[],e=/[{}]/g;e.lastIndex=0;for(var f;f=e.exec(a);){var g=f.index;"}"==f[0]?(f=c.pop(),goog.asserts.assert(goog.isDef(f)&&"{"==f,"No matching { for }."),0==c.length&&(f={},f.type=goog.i18n.MessageFormat.Element_.BLOCK,f.value=a.substring(b,g),d.push(f),b=g+1)):(0==c.length&&(b=a.substring(b,g),""!=b&&d.push({type:goog.i18n.MessageFormat.Element_.STRING,value:b}),b=g+1),c.push("{"))}goog.asserts.assert(0==c.length,"There are mismatched { or } in the pattern.");
+b=a.substring(b);""!=b&&d.push({type:goog.i18n.MessageFormat.Element_.STRING,value:b});return d};goog.i18n.MessageFormat.PLURAL_BLOCK_RE_=/^\s*(\w+)\s*,\s*plural\s*,(?:\s*offset:(\d+))?/;goog.i18n.MessageFormat.ORDINAL_BLOCK_RE_=/^\s*(\w+)\s*,\s*selectordinal\s*,/;goog.i18n.MessageFormat.SELECT_BLOCK_RE_=/^\s*(\w+)\s*,\s*select\s*,/;
+goog.i18n.MessageFormat.prototype.parseBlockType_=function(a){return goog.i18n.MessageFormat.PLURAL_BLOCK_RE_.test(a)?goog.i18n.MessageFormat.BlockType_.PLURAL:goog.i18n.MessageFormat.ORDINAL_BLOCK_RE_.test(a)?goog.i18n.MessageFormat.BlockType_.ORDINAL:goog.i18n.MessageFormat.SELECT_BLOCK_RE_.test(a)?goog.i18n.MessageFormat.BlockType_.SELECT:/^\s*\w+\s*/.test(a)?goog.i18n.MessageFormat.BlockType_.SIMPLE:goog.i18n.MessageFormat.BlockType_.UNKNOWN};
+goog.i18n.MessageFormat.prototype.parseBlock_=function(a){var b=[];a=this.extractParts_(a);for(var c=0;c<a.length;c++){var d={};if(goog.i18n.MessageFormat.Element_.STRING==a[c].type)d.type=goog.i18n.MessageFormat.BlockType_.STRING,d.value=a[c].value;else if(goog.i18n.MessageFormat.Element_.BLOCK==a[c].type){var e=this.parseBlockType_(a[c].value);switch(e){case goog.i18n.MessageFormat.BlockType_.SELECT:d.type=goog.i18n.MessageFormat.BlockType_.SELECT;d.value=this.parseSelectBlock_(a[c].value);break;
+case goog.i18n.MessageFormat.BlockType_.PLURAL:d.type=goog.i18n.MessageFormat.BlockType_.PLURAL;d.value=this.parsePluralBlock_(a[c].value);break;case goog.i18n.MessageFormat.BlockType_.ORDINAL:d.type=goog.i18n.MessageFormat.BlockType_.ORDINAL;d.value=this.parseOrdinalBlock_(a[c].value);break;case goog.i18n.MessageFormat.BlockType_.SIMPLE:d.type=goog.i18n.MessageFormat.BlockType_.SIMPLE;d.value=a[c].value;break;default:goog.asserts.fail("Unknown block type.")}}else goog.asserts.fail("Unknown part of the pattern.");
+b.push(d)}return b};
+goog.i18n.MessageFormat.prototype.parseSelectBlock_=function(a){var b="",c=goog.i18n.MessageFormat.SELECT_BLOCK_RE_;a=a.replace(c,function(a,c){b=c;return""});c={};c.argumentIndex=b;a=this.extractParts_(a);for(var d=0;d<a.length;){var e=a[d].value;goog.asserts.assertString(e,"Missing select key element.");d++;goog.asserts.assert(d<a.length,"Missing or invalid select value element.");if(goog.i18n.MessageFormat.Element_.BLOCK==a[d].type)var f=this.parseBlock_(a[d].value);else goog.asserts.fail("Expected block type.");c[e.replace(/\s/g,
+"")]=f;d++}goog.asserts.assertArray(c[goog.i18n.MessageFormat.OTHER_],"Missing other key in select statement.");return c};
+goog.i18n.MessageFormat.prototype.parsePluralBlock_=function(a){var b="",c=0,d=goog.i18n.MessageFormat.PLURAL_BLOCK_RE_;a=a.replace(d,function(a,d,e){b=d;e&&(c=parseInt(e,10));return""});d={};d.argumentIndex=b;d.argumentOffset=c;a=this.extractParts_(a);for(var e=0;e<a.length;){var f=a[e].value;goog.asserts.assertString(f,"Missing plural key element.");e++;goog.asserts.assert(e<a.length,"Missing or invalid plural value element.");if(goog.i18n.MessageFormat.Element_.BLOCK==a[e].type)var g=this.parseBlock_(a[e].value);
+else goog.asserts.fail("Expected block type.");d[f.replace(/\s*(?:=)?(\w+)\s*/,"$1")]=g;e++}goog.asserts.assertArray(d[goog.i18n.MessageFormat.OTHER_],"Missing other key in plural statement.");return d};
+goog.i18n.MessageFormat.prototype.parseOrdinalBlock_=function(a){var b="",c=goog.i18n.MessageFormat.ORDINAL_BLOCK_RE_;a=a.replace(c,function(a,c){b=c;return""});c={};c.argumentIndex=b;c.argumentOffset=0;a=this.extractParts_(a);for(var d=0;d<a.length;){var e=a[d].value;goog.asserts.assertString(e,"Missing ordinal key element.");d++;goog.asserts.assert(d<a.length,"Missing or invalid ordinal value element.");if(goog.i18n.MessageFormat.Element_.BLOCK==a[d].type)var f=this.parseBlock_(a[d].value);else goog.asserts.fail("Expected block type.");
+c[e.replace(/\s*(?:=)?(\w+)\s*/,"$1")]=f;d++}goog.asserts.assertArray(c[goog.i18n.MessageFormat.OTHER_],"Missing other key in selectordinal statement.");return c};goog.i18n.MessageFormat.prototype.buildPlaceholder_=function(a){goog.asserts.assert(0<a.length,"Literal array is empty.");a=(a.length-1).toString(10);return goog.i18n.MessageFormat.LITERAL_PLACEHOLDER_+a+"_"};cvox.TtsCapturingEventListener=function(){};cvox.TtsInterface=function(){};cvox.TtsInterface.prototype.speak=function(){};cvox.TtsInterface.prototype.isSpeaking=function(){};cvox.TtsInterface.prototype.stop=function(){};cvox.TtsInterface.prototype.increaseOrDecreaseProperty=function(){};cvox.TtsInterface.prototype.getDefaultProperty=function(){};cvox.AbstractTts=function(){this.ttsProperties={};this.propertyDefault={rate:0.5,pitch:0.5,volume:0.5};this.propertyMin={rate:0,pitch:0,volume:0};this.propertyMax={rate:1,pitch:1,volume:1};this.propertyStep={rate:0.1,pitch:0.1,volume:0.1};if(void 0==cvox.AbstractTts.pronunciationDictionaryRegexp_){var a=[],b;for(b in cvox.AbstractTts.PRONUNCIATION_DICTIONARY)a.push(b);a="\\b("+a.join("|")+")\\b";cvox.AbstractTts.pronunciationDictionaryRegexp_=RegExp(a,"ig")}if(void 0==cvox.AbstractTts.substitutionDictionaryRegexp_){var a=
+[],c;for(c in cvox.AbstractTts.SUBSTITUTION_DICTIONARY)a.push(c);a="("+a.join("|")+")";cvox.AbstractTts.substitutionDictionaryRegexp_=RegExp(a,"ig")}};cvox.AbstractTts.prototype.speak=function(){return this};cvox.AbstractTts.prototype.isSpeaking=function(){return!1};cvox.AbstractTts.prototype.stop=function(){};
+cvox.AbstractTts.prototype.increaseOrDecreaseProperty=function(a,b){var c=this.propertyMin[a],d=this.propertyMax[a],e=this.propertyStep[a],f=this.ttsProperties[a],f=b?f+e:f-e;this.ttsProperties[a]=Math.max(Math.min(f,d),c)};
+cvox.AbstractTts.prototype.mergeProperties=function(a){var b={},c;if(this.ttsProperties)for(c in this.ttsProperties)b[c]=this.ttsProperties[c];if(a){c=cvox.AbstractTts;"number"==typeof a[c.VOLUME]&&(b[c.VOLUME]=a[c.VOLUME]);"number"==typeof a[c.PITCH]&&(b[c.PITCH]=a[c.PITCH]);"number"==typeof a[c.RATE]&&(b[c.RATE]=a[c.RATE]);"string"==typeof a[c.LANG]&&(b[c.LANG]=a[c.LANG]);var d=this,e=function(c,e){if("number"==typeof a[e]&&"number"==typeof b[c]){b[c]+=a[e];var h=d.propertyMin[c],k=d.propertyMax[c];
+b[c]>k?b[c]=k:b[c]<h&&(b[c]=h)}};e(c.VOLUME,c.RELATIVE_VOLUME);e(c.PITCH,c.RELATIVE_PITCH);e(c.RATE,c.RELATIVE_RATE)}return b};cvox.AbstractTts.RATE="rate";cvox.AbstractTts.PITCH="pitch";cvox.AbstractTts.VOLUME="volume";cvox.AbstractTts.LANG="lang";cvox.AbstractTts.RELATIVE_RATE="relativeRate";cvox.AbstractTts.RELATIVE_PITCH="relativePitch";cvox.AbstractTts.RELATIVE_VOLUME="relativeVolume";cvox.AbstractTts.COLOR="color";cvox.AbstractTts.FONT_WEIGHT="fontWeight";cvox.AbstractTts.PUNCTUATION_ECHO="punctuationEcho";
+cvox.AbstractTts.PAUSE="pause";cvox.AbstractTts.PERSONALITY_ANNOTATION={relativePitch:-0.25,color:"yellow",punctuationEcho:"none"};cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT={punctuationEcho:"none"};cvox.AbstractTts.PERSONALITY_ASIDE={relativePitch:-0.1,color:"#669"};cvox.AbstractTts.PERSONALITY_CAPITAL={relativePitch:0.6};cvox.AbstractTts.PERSONALITY_DELETED={punctuationEcho:"none",relativePitch:-0.6};cvox.AbstractTts.PERSONALITY_QUOTE={relativePitch:0.1,color:"#b6b",fontWeight:"bold"};
+cvox.AbstractTts.PERSONALITY_STRONG={relativePitch:0.1,color:"#b66",fontWeight:"bold"};cvox.AbstractTts.PERSONALITY_EMPHASIS={relativeVolume:0.1,relativeRate:-0.1,color:"#6bb",fontWeight:"bold"};cvox.AbstractTts.DEBUG=!0;cvox.AbstractTts.QUEUE_MODE_FLUSH=0;cvox.AbstractTts.QUEUE_MODE_QUEUE=1;
+cvox.AbstractTts.CHARACTER_DICTIONARY={" ":"space","`":"backtick","~":"tilde","!":"exclamation","@":"at","#":"pound",$:"dollar","%":"percent","^":"caret","&":"ampersand","*":"asterisk","(":"open_paren",")":"close_paren","-":"dash",_:"underscore","=":"equals","+":"plus","[":"left_bracket","]":"right_bracket","{":"left_brace","}":"right_brace","|":"pipe",";":"semicolon",":":"colon",",":"comma",".":"dot","<":"less_than",">":"greater_than","/":"slash","?":"question_mark",'"':"quote","'":"apostrophe",
+"\t":"tab","\r":"return","\n":"new line","\\":"backslash"};cvox.AbstractTts.PRONUNCIATION_DICTIONARY={admob:"ad-mob",adsense:"ad-sense",adwords:"ad-words",angularjs:"angular j s",bcc:"B C C",cc:"C C",chromevox:"chrome vox",cr48:"C R 48",ctrl:"control",doubleclick:"double-click",gmail:"gee mail",gtalk:"gee talk",http:"H T T P",https:"H T T P S",igoogle:"eye google",pagerank:"page-rank",username:"user-name",www:"W W W",youtube:"you tube"};
+cvox.AbstractTts.SUBSTITUTION_DICTIONARY={"://":"colon slash slash","\u00bc":"one fourth","\u00bd":"one half","\u200e":"left to right mark","\u2190":"left arrow","\u2191":"up arrow","\u2192":"right arrow","\u2193":"down arrow","\u21d0":"left double arrow","\u21d1":"up double arrow","\u21d2":"right double arrow","\u21d3":"down double arrow","\u21e6":"left arrow","\u21e7":"up arrow","\u21e8":"right arrow","\u21e9":"down arrow","\u2303":"control","\u2318":"command","\u2325":"option","\u25b2":"up triangle",
+"\u25b3":"up triangle","\u25b4":"up triangle","\u25b5":"up triangle","\u25b6":"right triangle","\u25b7":"right triangle","\u25b8":"right triangle","\u25b9":"right triangle","\u25ba":"right pointer","\u25bb":"right pointer","\u25bc":"down triangle","\u25bd":"down triangle","\u25be":"down triangle","\u25bf":"down triangle","\u25c0":"left triangle","\u25c1":"left triangle","\u25c2":"left triangle","\u25c3":"left triangle","\u25c4":"left pointer","\u25c5":"left pointer","\uf8ff":"apple"};
+cvox.AbstractTts.repetitionRegexp_=/([-\/\\|!@#$%^&*\(\)=_+\[\]\{\}.?;'":<>])\1{2,}/g;cvox.AbstractTts.repetitionReplace_=function(a){var b=a.length;return" "+(new goog.i18n.MessageFormat(cvox.ChromeVox.msgs.getMsg(cvox.AbstractTts.CHARACTER_DICTIONARY[a[0]]))).format({COUNT:b})+" "};cvox.AbstractTts.prototype.getDefaultProperty=function(a){return this.propertyDefault[a]};cvox.AbstractEarcons=function(){this.enabled=!0};cvox.AbstractEarcons.prototype.playEarcon=function(){};cvox.AbstractEarcons.prototype.playEarconByName=function(a){this.playEarcon(this.getEarconId(a))};cvox.AbstractEarcons.prototype.earconsAvailable=function(){return!0};
+cvox.AbstractEarcons.prototype.getEarconId=function(a){this.earconNamesToIds||(this.earconNamesToIds={},this.earconNamesToIds.ALERT_MODAL=cvox.AbstractEarcons.ALERT_MODAL,this.earconNamesToIds.ALERT_NONMODAL=cvox.AbstractEarcons.ALERT_NONMODAL,this.earconNamesToIds.BULLET=cvox.AbstractEarcons.BULLET,this.earconNamesToIds.BUSY_PROGRESS_LOOP=cvox.AbstractEarcons.BUSY_PROGRESS_LOOP,this.earconNamesToIds.BUSY_WORKING_LOOP=cvox.AbstractEarcons.BUSY_WORKING_LOOP,this.earconNamesToIds.BUTTON=cvox.AbstractEarcons.BUTTON,
+this.earconNamesToIds.CHECK_OFF=cvox.AbstractEarcons.CHECK_OFF,this.earconNamesToIds.CHECK_ON=cvox.AbstractEarcons.CHECK_ON,this.earconNamesToIds.CHROMEVOX_DISABLED=cvox.AbstractEarcons.CHROMEVOX_DISABLED,this.earconNamesToIds.CHROMEVOX_ENABLED=cvox.AbstractEarcons.CHROMEVOX_ENABLED,this.earconNamesToIds.COLLAPSED=cvox.AbstractEarcons.COLLAPSED,this.earconNamesToIds.EDITABLE_TEXT=cvox.AbstractEarcons.EDITABLE_TEXT,this.earconNamesToIds.ELLIPSIS=cvox.AbstractEarcons.ELLIPSIS,this.earconNamesToIds.EXPANDED=
+cvox.AbstractEarcons.EXPANDED,this.earconNamesToIds.FONT_CHANGE=cvox.AbstractEarcons.FONT_CHANGE,this.earconNamesToIds.INVALID_KEYPRESS=cvox.AbstractEarcons.INVALID_KEYPRESS,this.earconNamesToIds.LINK=cvox.AbstractEarcons.LINK,this.earconNamesToIds.LISTBOX=cvox.AbstractEarcons.LISTBOX,this.earconNamesToIds.LIST_ITEM=cvox.AbstractEarcons.LIST_ITEM,this.earconNamesToIds.LONG_DESC=cvox.AbstractEarcons.LONG_DESC,this.earconNamesToIds.NEW_MAIL=cvox.AbstractEarcons.NEW_MAIL,this.earconNamesToIds.OBJECT_CLOSE=
+cvox.AbstractEarcons.OBJECT_CLOSE,this.earconNamesToIds.OBJECT_DELETE=cvox.AbstractEarcons.OBJECT_DELETE,this.earconNamesToIds.OBJECT_DESELECT=cvox.AbstractEarcons.OBJECT_DESELECT,this.earconNamesToIds.OBJECT_ENTER=cvox.AbstractEarcons.OBJECT_ENTER,this.earconNamesToIds.OBJECT_EXIT=cvox.AbstractEarcons.OBJECT_EXIT,this.earconNamesToIds.OBJECT_OPEN=cvox.AbstractEarcons.OBJECT_OPEN,this.earconNamesToIds.OBJECT_SELECT=cvox.AbstractEarcons.OBJECT_SELECT,this.earconNamesToIds.PARAGRAPH_BREAK=cvox.AbstractEarcons.PARAGRAPH_BREAK,
+this.earconNamesToIds.SEARCH_HIT=cvox.AbstractEarcons.SEARCH_HIT,this.earconNamesToIds.SEARCH_MISS=cvox.AbstractEarcons.SEARCH_MISS,this.earconNamesToIds.SECTION=cvox.AbstractEarcons.SECTION,this.earconNamesToIds.SELECTION=cvox.AbstractEarcons.SELECTION,this.earconNamesToIds.SELECTION_REVERSE=cvox.AbstractEarcons.SELECTION_REVERSE,this.earconNamesToIds.SPECIAL_CONTENT=cvox.AbstractEarcons.SPECIAL_CONTENT,this.earconNamesToIds.TASK_SUCCESS=cvox.AbstractEarcons.TASK_SUCCESS,this.earconNamesToIds.WRAP=
+cvox.AbstractEarcons.WRAP,this.earconNamesToIds.WRAP_EDGE=cvox.AbstractEarcons.WRAP_EDGE);return this.earconNamesToIds[a]};cvox.AbstractEarcons.prototype.getEarconFilename=function(a){return cvox.AbstractEarcons.earconMap[a]};cvox.AbstractEarcons.prototype.toggle=function(){return this.enabled=!this.enabled};cvox.AbstractEarcons.ALERT_MODAL=0;cvox.AbstractEarcons.ALERT_NONMODAL=1;cvox.AbstractEarcons.BULLET=2;cvox.AbstractEarcons.BUSY_PROGRESS_LOOP=3;cvox.AbstractEarcons.BUSY_WORKING_LOOP=4;
+cvox.AbstractEarcons.BUTTON=5;cvox.AbstractEarcons.CHECK_OFF=6;cvox.AbstractEarcons.CHECK_ON=7;cvox.AbstractEarcons.CHROMEVOX_DISABLED=8;cvox.AbstractEarcons.CHROMEVOX_ENABLED=9;cvox.AbstractEarcons.COLLAPSED=10;cvox.AbstractEarcons.EDITABLE_TEXT=11;cvox.AbstractEarcons.ELLIPSIS=12;cvox.AbstractEarcons.EXPANDED=13;cvox.AbstractEarcons.FONT_CHANGE=14;cvox.AbstractEarcons.INVALID_KEYPRESS=15;cvox.AbstractEarcons.LINK=16;cvox.AbstractEarcons.LISTBOX=17;cvox.AbstractEarcons.LIST_ITEM=18;
+cvox.AbstractEarcons.LONG_DESC=19;cvox.AbstractEarcons.NEW_MAIL=20;cvox.AbstractEarcons.OBJECT_CLOSE=21;cvox.AbstractEarcons.OBJECT_DELETE=22;cvox.AbstractEarcons.OBJECT_DESELECT=23;cvox.AbstractEarcons.OBJECT_ENTER=24;cvox.AbstractEarcons.OBJECT_EXIT=25;cvox.AbstractEarcons.OBJECT_OPEN=26;cvox.AbstractEarcons.OBJECT_SELECT=27;cvox.AbstractEarcons.PARAGRAPH_BREAK=28;cvox.AbstractEarcons.SEARCH_HIT=29;cvox.AbstractEarcons.SEARCH_MISS=30;cvox.AbstractEarcons.SECTION=31;
+cvox.AbstractEarcons.SELECTION=32;cvox.AbstractEarcons.SELECTION_REVERSE=33;cvox.AbstractEarcons.SPECIAL_CONTENT=34;cvox.AbstractEarcons.TASK_SUCCESS=35;cvox.AbstractEarcons.WRAP=36;cvox.AbstractEarcons.WRAP_EDGE=37;cvox.AbstractEarcons.earconMap={};cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.ALERT_MODAL]="alert_modal.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.ALERT_NONMODAL]="alert_nonmodal.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BULLET]="bullet.ogg";
+cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BUSY_PROGRESS_LOOP]="busy_progress_loop.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BUSY_WORKING_LOOP]="busy_working_loop.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BUTTON]="button.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHECK_OFF]="check_off.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHECK_ON]="check_on.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHROMEVOX_DISABLED]="chromevox_disabled.ogg";
+cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHROMEVOX_ENABLED]="chromevox_enabled.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.COLLAPSED]="collapsed.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.EDITABLE_TEXT]="editable_text.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.ELLIPSIS]="ellipsis.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.EXPANDED]="expanded.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.FONT_CHANGE]="font_change.ogg";
+cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.INVALID_KEYPRESS]="invalid_keypress.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LINK]="link.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LISTBOX]="listbox.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LIST_ITEM]="bullet.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LONG_DESC]="long_desc.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.NEW_MAIL]="new_mail.ogg";
+cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_CLOSE]="object_close.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_DELETE]="object_delete.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_DESELECT]="object_deselect.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_ENTER]="object_enter.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_EXIT]="object_exit.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_OPEN]="object_open.ogg";
+cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_SELECT]="object_select.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.PARAGRAPH_BREAK]="paragraph_break.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SEARCH_HIT]="search_hit.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SEARCH_MISS]="search_miss.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SECTION]="section.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SELECTION]="selection.ogg";
+cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SELECTION_REVERSE]="selection_reverse.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SPECIAL_CONTENT]="special_content.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.TASK_SUCCESS]="task_success.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.WRAP]="wrap.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.WRAP_EDGE]="wrap_edge.ogg";cvox.NodeStateUtil={};cvox.NodeStateUtil.expand=function(a){try{return a.map(function(a){if(1>a.length)throw Error("cvox.NodeState must have at least one entry");var b=a.slice(1).map(function(a){return"number"==typeof a?cvox.ChromeVox.msgs.getNumber(a):a});return cvox.ChromeVox.msgs.getMsg(a[0],b)}).join(" ")}catch(b){throw Error("error: "+b+" state: "+a);}};cvox.AriaUtil=function(){};cvox.AriaUtil.NO_ROLE_NAME=" ";
+cvox.AriaUtil.WIDGET_ROLE_TO_NAME={alert:"aria_role_alert",alertdialog:"aria_role_alertdialog",button:"aria_role_button",checkbox:"aria_role_checkbox",columnheader:"aria_role_columnheader",combobox:"aria_role_combobox",dialog:"aria_role_dialog",grid:"aria_role_grid",gridcell:"aria_role_gridcell",link:"aria_role_link",listbox:"aria_role_listbox",log:"aria_role_log",marquee:"aria_role_marquee",menu:"aria_role_menu",menubar:"aria_role_menubar",menuitem:"aria_role_menuitem",menuitemcheckbox:"aria_role_menuitemcheckbox",
+menuitemradio:"aria_role_menuitemradio",option:cvox.AriaUtil.NO_ROLE_NAME,progressbar:"aria_role_progressbar",radio:"aria_role_radio",radiogroup:"aria_role_radiogroup",rowheader:"aria_role_rowheader",scrollbar:"aria_role_scrollbar",slider:"aria_role_slider",spinbutton:"aria_role_spinbutton",status:"aria_role_status",tab:"aria_role_tab",tabpanel:"aria_role_tabpanel",textbox:"aria_role_textbox",timer:"aria_role_timer",toolbar:"aria_role_toolbar",tooltip:"aria_role_tooltip",treeitem:"aria_role_treeitem"};
+cvox.AriaUtil.STRUCTURE_ROLE_TO_NAME={article:"aria_role_article",application:"aria_role_application",banner:"aria_role_banner",columnheader:"aria_role_columnheader",complementary:"aria_role_complementary",contentinfo:"aria_role_contentinfo",definition:"aria_role_definition",directory:"aria_role_directory",document:"aria_role_document",form:"aria_role_form",group:"aria_role_group",heading:"aria_role_heading",img:"aria_role_img",list:"aria_role_list",listitem:"aria_role_listitem",main:"aria_role_main",
+math:"aria_role_math",navigation:"aria_role_navigation",note:"aria_role_note",region:"aria_role_region",rowheader:"aria_role_rowheader",search:"aria_role_search",separator:"aria_role_separator"};
+cvox.AriaUtil.ATTRIBUTE_VALUE_TO_STATUS=[{name:"aria-autocomplete",values:{inline:"aria_autocomplete_inline",list:"aria_autocomplete_list",both:"aria_autocomplete_both"}},{name:"aria-checked",values:{"true":"aria_checked_true","false":"aria_checked_false",mixed:"aria_checked_mixed"}},{name:"aria-disabled",values:{"true":"aria_disabled_true"}},{name:"aria-expanded",values:{"true":"aria_expanded_true","false":"aria_expanded_false"}},{name:"aria-invalid",values:{"true":"aria_invalid_true",grammar:"aria_invalid_grammar",
+spelling:"aria_invalid_spelling"}},{name:"aria-multiline",values:{"true":"aria_multiline_true"}},{name:"aria-multiselectable",values:{"true":"aria_multiselectable_true"}},{name:"aria-pressed",values:{"true":"aria_pressed_true","false":"aria_pressed_false",mixed:"aria_pressed_mixed"}},{name:"aria-readonly",values:{"true":"aria_readonly_true"}},{name:"aria-required",values:{"true":"aria_required_true"}},{name:"aria-selected",values:{"true":"aria_selected_true","false":"aria_selected_false"}}];
+cvox.AriaUtil.isHiddenRecursive=function(a){if(cvox.AriaUtil.isHidden(a))return!0;for(a=a.parentElement;a;){if("true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden"))return!0;a=a.parentElement}return!1};cvox.AriaUtil.isHidden=function(a){return!a||a.getAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")?!0:!1};
+cvox.AriaUtil.isForcedVisibleRecursive=function(a){for(;a;){if(a.getAttribute&&a.hasAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden"))return"false"==a.getAttribute("aria-hidden");a=a.parentElement}return!1};cvox.AriaUtil.isLeafElement=function(a){var b=a.getAttribute("role");a=a.hasAttribute("aria-label")&&0<a.getAttribute("aria-label").length;return"img"==b||"progressbar"==b||a};
+cvox.AriaUtil.isDescendantOfRole=function(a,b){for(;a;){if(b&&a&&a.getAttribute("role")==b)return!0;a=a.parentNode}return!1};cvox.AriaUtil.getRoleNameMsgForRole_=function(a){return(a=cvox.AriaUtil.WIDGET_ROLE_TO_NAME[a])?a==cvox.AriaUtil.NO_ROLE_NAME?" ":a:null};cvox.AriaUtil.isButton=function(a){var b=cvox.AriaUtil.getRoleAttribute(a);return"button"==b||"BUTTON"==a.tagName?!0:"INPUT"==a.tagName?"submit"==a.type||"reset"==a.type||"button"==a.type:!1};
+cvox.AriaUtil.getRoleNameMsg=function(a){var b;if(a&&a.getAttribute){var c=cvox.AriaUtil.getRoleAttribute(a);if("true"==a.getAttribute("aria-haspopup")&&cvox.AriaUtil.isButton(a))return"aria_role_popup_button";c&&((b=cvox.AriaUtil.getRoleNameMsgForRole_(c))||(b=cvox.AriaUtil.STRUCTURE_ROLE_TO_NAME[c]));if("menuitem"==c){for(a=a.parentElement;a&&(!a.getAttribute||"menu"!=cvox.AriaUtil.getRoleAttribute(a)&&"menubar"!=cvox.AriaUtil.getRoleAttribute(a));)a=a.parentElement;a&&"menubar"==cvox.AriaUtil.getRoleAttribute(a)&&
+(b=cvox.AriaUtil.getRoleNameMsgForRole_("menu"))}}b||(b="");return b};cvox.AriaUtil.getRoleName=function(a){var b=cvox.AriaUtil.getRoleNameMsg(a),b=cvox.ChromeVox.msgs.getMsg(b),c=cvox.AriaUtil.getRoleAttribute(a);"heading"==c&&a.hasAttribute("aria-level")&&(b+=" "+a.getAttribute("aria-level"));return b?b:""};
+cvox.AriaUtil.getStateMsgs=function(a,b){var c=[];if(!a||!a.getAttribute)return c;for(var d=0,e;e=cvox.AriaUtil.ATTRIBUTE_VALUE_TO_STATUS[d];d++){var f=a.getAttribute(e.name);(e=e.values[f])&&c.push([e])}if("grid"==a.getAttribute("role"))return cvox.AriaUtil.getGridState_(a,a);e=cvox.AriaUtil.getRoleAttribute(a);"true"==a.getAttribute("aria-haspopup")&&("menuitem"==e?c.push(["has_submenu"]):cvox.AriaUtil.isButton(a)||c.push(["has_popup"]));if(d=a.getAttribute("aria-valuetext"))return c.push([d]),
+c;var d=a.getAttribute("aria-valuenow"),f=a.getAttribute("aria-valuemin"),g=a.getAttribute("aria-valuemax");if(null!=d&&null!=f&&null!=g&&("scrollbar"==e||"progressbar"==e)){var h=Math.round(d/(g-f)*100);c.push(["state_percent",h]);return c}null!=d&&c.push(["aria_value_now",d]);null!=f&&c.push(["aria_value_min",f]);null!=g&&c.push(["aria_value_max",g]);f=a;d=null;if(cvox.AriaUtil.isCompositeControl(f)&&b)d=cvox.AriaUtil.getActiveDescendant(f);else if(e=cvox.AriaUtil.getRoleAttribute(a),"option"==
+e||"menuitem"==e||"menuitemcheckbox"==e||"menuitemradio"==e||"radio"==e||"tab"==e||"treeitem"==e)for(d=a,f=a.parentElement;f&&!cvox.AriaUtil.isCompositeControl(f)&&(!(f=f.parentElement)||"treeitem"!=cvox.AriaUtil.getRoleAttribute(f)););if(f&&(cvox.AriaUtil.isCompositeControl(f)||"treeitem"==cvox.AriaUtil.getRoleAttribute(f))&&d){e=cvox.AriaUtil.getRoleAttribute(f);var k;switch(e){case "combobox":case "listbox":k=["option"];break;case "menu":k=["menuitem","menuitemcheck","menuitemradio"];break;case "radiogroup":k=
+["radio"];break;case "tablist":k=["tab"];break;case "tree":case "treegrid":case "treeitem":k=["treeitem"]}if(k){var l;e=parseInt(d.getAttribute("aria-setsize"),10);isNaN(e)||(h=e);e=parseInt(d.getAttribute("aria-posinset"),10);isNaN(e)||(l=e);if(void 0==h||void 0==l)if(k=cvox.AriaUtil.getNextLevel(f,k),void 0==h&&(h=k.length),void 0==l)for(e=0;e<k.length;e++)k[e]==d&&(l=e+1);l&&h&&c.push(["list_position",l,h])}}return c};
+cvox.AriaUtil.getGridState_=function(a,b){var c=cvox.AriaUtil.getActiveDescendant(b);if(c)for(var d='*[role~="row"]',d=b.querySelectorAll(d),e=0;e<d.length;e++)for(var f=d[e].querySelectorAll('*[role~="gridcell"]'),g=0;g<f.length;g++)if(f[g]==c)return[["aria_role_gridcell_pos",e+1,g+1]];return[]};cvox.AriaUtil.getActiveDescendantId_=function(a){return a.getAttribute?(a=a.getAttribute("aria-activedescendant"))?a:null:null};
+cvox.AriaUtil.getNextLevel=function(a,b){for(var c=[],d=a.childNodes,e=0;e<d.length;e++)if(!cvox.AriaUtil.isHidden(d[e])&&cvox.DomUtil.isVisible(d[e])){var f=cvox.AriaUtil.getNextLevelItems(d[e],b);0<f.length&&(c=c.concat(f))}return c};
+cvox.AriaUtil.getNextLevelItems=function(a,b){if(1!=a.nodeType)return[];if(-1!=b.indexOf(cvox.AriaUtil.getRoleAttribute(a)))return[a];var c=a.childNodes,d=c.length;if(0==d)return[];for(var e=[],f=0;f<d;f++){var g=cvox.AriaUtil.getNextLevelItems(c[f],b);0<g.length&&(e=e.concat(g))}return e};cvox.AriaUtil.getActiveDescendant=function(a){for(var b={},c=a;c;){var d=cvox.AriaUtil.getActiveDescendantId_(c);if(!d)break;if(d in b)return null;b[d]=!0;c=document.getElementById(d)}return c==a?null:c};
+cvox.AriaUtil.isControlWidget=function(a){if(a&&a.getAttribute)switch(a=cvox.AriaUtil.getRoleAttribute(a),a){case "button":case "checkbox":case "combobox":case "listbox":case "menu":case "menuitemcheckbox":case "menuitemradio":case "radio":case "slider":case "progressbar":case "scrollbar":case "spinbutton":case "tab":case "tablist":case "textbox":return!0}return!1};cvox.AriaUtil.isCompositeControl=function(a){if(a&&a.getAttribute)switch(a=cvox.AriaUtil.getRoleAttribute(a),a){case "combobox":case "grid":case "listbox":case "menu":case "menubar":case "radiogroup":case "tablist":case "tree":case "treegrid":return!0}return!1};
+cvox.AriaUtil.getAriaLive=function(a){if(!a.hasAttribute)return null;var b=a.getAttribute("aria-live");if("off"==b)return null;if(b)return b;a=cvox.AriaUtil.getRoleAttribute(a);switch(a){case "alert":return"assertive";case "log":case "status":return"polite";default:return null}};cvox.AriaUtil.getAriaAtomic=function(a){if(!a.hasAttribute)return!1;var b=a.getAttribute("aria-atomic");if(b)return"true"===b;a=cvox.AriaUtil.getRoleAttribute(a);return"alert"==a?!0:!1};
+cvox.AriaUtil.getAriaBusy=function(a){return a.hasAttribute?(a=a.getAttribute("aria-busy"))?"true"===a:!1:!1};cvox.AriaUtil.getAriaRelevant=function(a,b){if(!a.hasAttribute)return!1;var c;c=a.hasAttribute("aria-relevant")?a.getAttribute("aria-relevant"):"additions text";"all"==c&&(c="additions removals text");c=c.replace(/\s+/g," ").replace(/^\s+|\s+$/g,"").split(" ");return"all"==b?0<=c.indexOf("additions")&&0<=c.indexOf("text")&&0<=c.indexOf("removals"):0<=c.indexOf(b)};
+cvox.AriaUtil.getLiveRegions=function(a){var b=[];if(a.querySelectorAll){var c=a.querySelectorAll('[role="alert"], [role="log"], [role="marquee"], [role="status"], [role="timer"], [aria-live]');if(c)for(var d=0;d<c.length;d++)b.push(c[d])}for(;a;){if(cvox.AriaUtil.getAriaLive(a)){b.push(a);break}a=a.parentElement}return b};cvox.AriaUtil.isLandmark=function(a){if(!a||!a.getAttribute)return!1;a=cvox.AriaUtil.getRoleAttribute(a);switch(a){case "application":case "banner":case "complementary":case "contentinfo":case "form":case "main":case "navigation":case "search":return!0}return!1};
+cvox.AriaUtil.isGrid=function(a){if(!a||!a.getAttribute)return!1;a=cvox.AriaUtil.getRoleAttribute(a);switch(a){case "grid":case "treegrid":return!0}return!1};
+cvox.AriaUtil.getEarcon=function(a){if(!a||!a.getAttribute)return null;var b=cvox.AriaUtil.getRoleAttribute(a);switch(b){case "button":return cvox.AbstractEarcons.BUTTON;case "checkbox":case "radio":case "menuitemcheckbox":case "menuitemradio":return a=a.getAttribute("aria-checked"),"true"==a?cvox.AbstractEarcons.CHECK_ON:cvox.AbstractEarcons.CHECK_OFF;case "combobox":case "listbox":return cvox.AbstractEarcons.LISTBOX;case "textbox":return cvox.AbstractEarcons.EDITABLE_TEXT;case "listitem":return cvox.AbstractEarcons.BULLET;
+case "link":return cvox.AbstractEarcons.LINK}return null};cvox.AriaUtil.getRoleAttribute=function(a){if(!a.getAttribute)return"";var b=a.getAttribute("role");a.hasAttribute("chromevoxoriginalrole")&&(b=a.getAttribute("chromevoxoriginalrole"));return b};cvox.AriaUtil.isMath=function(a){if(!a||!a.getAttribute)return!1;a=cvox.AriaUtil.getRoleAttribute(a);return"math"==a};cvox.DomPredicates={};cvox.DomPredicates.checkboxPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"checkbox"==a[b].getAttribute("role")||"INPUT"==a[b].tagName&&"checkbox"==a[b].type)return a[b];return null};cvox.DomPredicates.radioPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"radio"==a[b].getAttribute("role")||"INPUT"==a[b].tagName&&"radio"==a[b].type)return a[b];return null};
+cvox.DomPredicates.sliderPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"slider"==a[b].getAttribute("role")||"INPUT"==a[b].tagName&&"range"==a[b].type)return a[b];return null};cvox.DomPredicates.graphicPredicate=function(a){for(var b=0;b<a.length;b++)if("IMG"==a[b].tagName||"INPUT"==a[b].tagName&&"img"==a[b].type)return a[b];return null};
+cvox.DomPredicates.buttonPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"button"==a[b].getAttribute("role")||"BUTTON"==a[b].tagName||"INPUT"==a[b].tagName&&"submit"==a[b].type||"INPUT"==a[b].tagName&&"button"==a[b].type||"INPUT"==a[b].tagName&&"reset"==a[b].type)return a[b];return null};cvox.DomPredicates.comboBoxPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"combobox"==a[b].getAttribute("role")||"SELECT"==a[b].tagName)return a[b];return null};
+cvox.DomPredicates.editTextPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"textbox"==a[b].getAttribute("role")||"TEXTAREA"==a[b].tagName||a[b].isContentEditable||"INPUT"==a[b].tagName&&cvox.DomUtil.isInputTypeText(a[b]))return a[b];return null};cvox.DomPredicates.headingPredicate=function(a){for(var b=0;b<a.length;b++){if(a[b].getAttribute&&"heading"==a[b].getAttribute("role"))return a[b];switch(a[b].tagName){case "H1":case "H2":case "H3":case "H4":case "H5":case "H6":return a[b]}}return null};
+cvox.DomPredicates.heading1Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H1")};cvox.DomPredicates.heading2Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H2")};cvox.DomPredicates.heading3Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H3")};cvox.DomPredicates.heading4Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H4")};cvox.DomPredicates.heading5Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H5")};
+cvox.DomPredicates.heading6Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H6")};cvox.DomPredicates.linkPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"link"==a[b].getAttribute("role")||"A"==a[b].tagName&&a[b].href)return a[b];return null};cvox.DomPredicates.tablePredicate=function(a){return(a=cvox.DomUtil.findTableNodeInList(a,{allowCaptions:!0}))&&!cvox.DomUtil.isLayoutTable(a)?a:null};
+cvox.DomPredicates.cellPredicate=function(a){for(var b=a.length-1;0<=b;--b){var c=a[b];if("TD"==c.tagName||"TH"==c.tagName||c.getAttribute&&"gridcell"==c.getAttribute("role"))return c}return null};cvox.DomPredicates.visitedLinkPredicate=function(a){for(var b=a.length-1;0<=b;--b)if(cvox.DomPredicates.linkPredicate([a[b]])&&cvox.ChromeVox.visitedUrls[a[b].href])return a[b]};
+cvox.DomPredicates.listPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"list"==a[b].getAttribute("role")||"UL"==a[b].tagName||"OL"==a[b].tagName)return a[b];return null};cvox.DomPredicates.listItemPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"listitem"==a[b].getAttribute("role")||"LI"==a[b].tagName)return a[b];return null};cvox.DomPredicates.blockquotePredicate=function(a){return cvox.DomPredicates.containsTagName_(a,"BLOCKQUOTE")};
+cvox.DomPredicates.formFieldPredicate=function(a){for(var b=0;b<a.length;b++)if(cvox.DomUtil.isControl(a[b]))return a[b];return null};cvox.DomPredicates.landmarkPredicate=function(a){for(var b=0;b<a.length;b++)if(cvox.AriaUtil.isLandmark(a[b]))return a[b];return null};cvox.DomPredicates.containsTagName_=function(a,b){for(var c=a.length;c--;)if(a[c].tagName==b)return a[c];return null};cvox.DomPredicates.mathPredicate=function(a){return cvox.DomUtil.findMathNodeInList(a)};
+cvox.DomPredicates.sectionPredicate=function(a){for(var b=0;b<a.length;b++){if(cvox.DomUtil.isSemanticElt(a[b])||cvox.AriaUtil.isLandmark(a[b])||a[b].getAttribute&&"heading"==a[b].getAttribute("role"))return a[b];switch(a[b].tagName){case "H1":case "H2":case "H3":case "H4":case "H5":case "H6":return a[b]}}return null};
+cvox.DomPredicates.controlPredicate=function(a){for(var b=0;b<a.length;b++)if(cvox.DomUtil.isControl(a[b])||a[b].getAttribute&&"link"==a[b].getAttribute("role")||"A"==a[b].tagName&&a[b].href)return a[b];return null};cvox.DomPredicates.captionPredicate=function(a){for(var b=0;b<a.length;b++)if("CAPTION"==a[b].tagName)return a[b];return null};
+cvox.DomPredicates.articlePredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"article"==a[b].getAttribute("role")||"ARTICLE"==a[b].tagName)return a[b];return null};cvox.DomPredicates.mediaPredicate=function(a){for(var b=0;b<a.length;b++)if("AUDIO"==a[b].tagName||"VIDEO"==a[b].tagName)return a[b];return null};cvox.DomPredicates.orderedListPredicate=function(a){for(var b=0;b<a.length;b++)if("OL"==a[b].tagName)return a[b];return null};cvox.XpathUtil=function(){};cvox.XpathUtil.nameSpaces_={xhtml:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML"};cvox.XpathUtil.resolveNameSpace=function(a){return cvox.XpathUtil.nameSpaces_[a]||null};cvox.XpathUtil.evalXPath=function(a,b){try{var c=b.ownerDocument.evaluate(a,b,cvox.XpathUtil.resolveNameSpace,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null)}catch(d){return[]}for(var e=[],f=c.iterateNext();f;f=c.iterateNext())e.push(f);return e};
+cvox.XpathUtil.getLeafNodes=function(a){try{var b=a.ownerDocument.evaluate(".//*[count(*)=0]",a,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null)}catch(c){return[]}a=[];for(var d=b.iterateNext();d;d=b.iterateNext())a.push(d);return a};cvox.XpathUtil.xpathSupported=function(){return"undefined"==typeof XPathResult?!1:!0};cvox.XpathUtil.evaluateBoolean=function(a,b){try{var c=b.ownerDocument.evaluate(a,b,cvox.XpathUtil.resolveNameSpace,XPathResult.BOOLEAN_TYPE,null)}catch(d){return!1}return c.booleanValue};
+cvox.XpathUtil.evaluateString=function(a,b){try{var c=b.ownerDocument.evaluate(a,b,cvox.XpathUtil.resolveNameSpace,XPathResult.STRING_TYPE,null)}catch(d){return""}return c.stringValue};cvox.DomUtil=function(){};
+cvox.DomUtil.INPUT_TYPE_TO_INFORMATION_TABLE_MSG={button:"input_type_button",checkbox:"input_type_checkbox",color:"input_type_color",datetime:"input_type_datetime","datetime-local":"input_type_datetime_local",date:"input_type_date",email:"input_type_email",file:"input_type_file",image:"input_type_image",month:"input_type_month",number:"input_type_number",password:"input_type_password",radio:"input_type_radio",range:"input_type_range",reset:"input_type_reset",search:"input_type_search",submit:"input_type_submit",
+tel:"input_type_tel",text:"input_type_text",url:"input_type_url",week:"input_type_week"};
+cvox.DomUtil.TAG_TO_INFORMATION_TABLE_VERBOSE_MSG={A:"tag_link",ARTICLE:"tag_article",ASIDE:"tag_aside",AUDIO:"tag_audio",BUTTON:"tag_button",FOOTER:"tag_footer",H1:"tag_h1",H2:"tag_h2",H3:"tag_h3",H4:"tag_h4",H5:"tag_h5",H6:"tag_h6",HEADER:"tag_header",HGROUP:"tag_hgroup",LI:"tag_li",MARK:"tag_mark",NAV:"tag_nav",OL:"tag_ol",SECTION:"tag_section",SELECT:"tag_select",TABLE:"tag_table",TEXTAREA:"tag_textarea",TIME:"tag_time",UL:"tag_ul",VIDEO:"tag_video"};
+cvox.DomUtil.TAG_TO_INFORMATION_TABLE_BRIEF_MSG={AUDIO:"tag_audio",BUTTON:"tag_button",SELECT:"tag_select",TABLE:"tag_table",TEXTAREA:"tag_textarea",VIDEO:"tag_video"};cvox.DomUtil.FORMATTING_TAGS="B BIG CITE CODE DFN EM I KBD SAMP SMALL SPAN STRIKE STRONG SUB SUP U VAR".split(" ");
+cvox.DomUtil.isVisible=function(a,b){b=b||{};"undefined"===typeof b.checkAncestors&&(b.checkAncestors=!0);"undefined"===typeof b.checkDescendants&&(b.checkDescendants=!0);if("IFRAME"==a.tagName&&!a.src)return!1;if(cvox.AriaUtil.isForcedVisibleRecursive(a))return!0;if(b.checkAncestors&&cvox.DomUtil.hasInvisibleAncestor_(a))return!1;var c=b.checkDescendants;return cvox.DomUtil.hasVisibleNodeSubtree_(a,c)?!0:!1};
+cvox.DomUtil.hasInvisibleAncestor_=function(a){for(;a=a.parentElement;){var b=document.defaultView.getComputedStyle(a,null);if(cvox.DomUtil.isInvisibleStyle(b,!0))return!0}return!1};
+cvox.DomUtil.hasVisibleNodeSubtree_=function(a,b){if(!(a instanceof Element)){var c=document.defaultView.getComputedStyle(a.parentElement,null);return c=!cvox.DomUtil.isInvisibleStyle(c)}var c=document.defaultView.getComputedStyle(a,null),d=!cvox.DomUtil.isInvisibleStyle(c);if(d)return!0;c=cvox.DomUtil.isInvisibleStyle(c,!0);if(!b||c)return!1;c=a.childNodes;for(d=0;d<c.length;d++){var e=c[d];if(cvox.DomUtil.hasVisibleNodeSubtree_(e,b))return!0}return!1};
+cvox.DomUtil.isInvisibleStyle=function(a,b){return a?"none"!=a.display&&0!=parseFloat(a.opacity)&&(b||"hidden"!=a.visibility&&"collapse"!=a.visibility)?!1:!0:!1};cvox.DomUtil.isDisabled=function(a){if(a.disabled)return!0;for(;a=a.parentElement;)if("FIELDSET"==a.tagName&&a.disabled)return!0;return!1};cvox.DomUtil.isSemanticElt=function(a){return a.tagName&&(a=a.tagName,"SECTION"==a||"NAV"==a||"ARTICLE"==a||"ASIDE"==a||"HGROUP"==a||"HEADER"==a||"FOOTER"==a||"TIME"==a||"MARK"==a)?!0:!1};
+cvox.DomUtil.isLeafNode=function(a,b){if(!(a instanceof Element))return null==a.firstChild;var c=a;if(!b&&!cvox.DomUtil.isVisible(c,{checkAncestors:!1})||!b&&cvox.AriaUtil.isHidden(c)||cvox.AriaUtil.isLeafElement(c))return!0;switch(c.tagName){case "OBJECT":case "EMBED":case "VIDEO":case "AUDIO":case "IFRAME":case "FRAME":return!0}return cvox.DomPredicates.linkPredicate([c])?!cvox.DomUtil.findNode(c,function(a){return!!cvox.DomPredicates.headingPredicate([a])}):cvox.DomUtil.isLeafLevelControl(c)||
+!c.firstChild||cvox.DomUtil.isMath(c)?!0:cvox.DomPredicates.headingPredicate([c])?!cvox.DomUtil.findNode(c,function(a){return!!cvox.DomPredicates.controlPredicate([a])}):!1};cvox.DomUtil.isDescendantOf=function(a,b,c){for(;a;){if(b&&c&&a.tagName&&a.tagName==b&&a.className&&a.className==c||b&&!c&&a.tagName&&a.tagName==b||!b&&c&&a.className&&a.className==c)return!0;a=a.parentNode}return!1};cvox.DomUtil.isDescendantOfNode=function(a,b){for(;a&&b;){if(a.isSameNode(b))return!0;a=a.parentNode}return!1};
+cvox.DomUtil.collapseWhitespace=function(a){return a.replace(/\s+/g," ").replace(/^\s+|\s+$/g,"")};
+cvox.DomUtil.getBaseLabel_=function(a,b,c){var d="";if(a.hasAttribute){if(a.hasAttribute("aria-labelledby"))for(var e=a.getAttribute("aria-labelledby").split(" "),f,g=0;f=e[g];g++)(f=document.getElementById(f))&&(d+=" "+cvox.DomUtil.getName(f,!0,c,!0));else if(a.hasAttribute("aria-label"))d=a.getAttribute("aria-label");else if(a.constructor==HTMLImageElement)d=cvox.DomUtil.getImageTitle(a);else if("FIELDSET"==a.tagName)for(e=a.getElementsByTagName("LEGEND"),d="",g=0;f=e[g];g++)d+=" "+cvox.DomUtil.getName(f,
+!0,c);0==d.length&&a&&a.id&&(a=document.querySelector('label[for="'+a.id+'"]'))&&(d=cvox.DomUtil.getName(a,b,c))}return cvox.DomUtil.collapseWhitespace(d)};cvox.DomUtil.getNearestAncestorLabel_=function(a){for(var b="";a&&"LABEL"!=a.tagName;)a=a.parentElement;a&&!a.hasAttribute("for")&&(b=cvox.DomUtil.getName(a,!0,!1));return b};
+cvox.DomUtil.getInputName_=function(a){var b="";"image"==a.type?b=cvox.DomUtil.getImageTitle(a):"submit"==a.type?b=a.hasAttribute("value")?a.getAttribute("value"):"Submit":"reset"==a.type?b=a.hasAttribute("value")?a.getAttribute("value"):"Reset":"button"==a.type&&a.hasAttribute("value")&&(b=a.getAttribute("value"));return b};
+cvox.DomUtil.getName=function(a,b,c,d){if(!a||!0==a.cvoxGetNameMarked)return"";a.cvoxGetNameMarked=!0;b=cvox.DomUtil.getName_(a,b,c,d);a.cvoxGetNameMarked=!1;a=cvox.DomUtil.getPrefixText(a);return a+b};cvox.DomUtil.hasChildrenBasedName_=function(a,b){return cvox.DomPredicates.linkPredicate([a])||cvox.DomPredicates.headingPredicate([a])||"BUTTON"==a.tagName||cvox.AriaUtil.isControlWidget(a)||!cvox.DomUtil.isLeafNode(a,b)?!0:!1};
+cvox.DomUtil.getName_=function(a,b,c,d){"undefined"===typeof b&&(b=!0);"undefined"===typeof c&&(c=!0);if(a.constructor==Text)return a.data;var e=cvox.DomUtil.getBaseLabel_(a,b,c);0==e.length&&cvox.DomUtil.isControl(a)&&(e=cvox.DomUtil.getNearestAncestorLabel_(a));0==e.length&&a.constructor==HTMLInputElement&&(e=cvox.DomUtil.getInputName_(a));return cvox.DomUtil.isInputTypeText(a)&&a.hasAttribute("placeholder")?(b=a.getAttribute("placeholder"),0<e.length?0<cvox.DomUtil.getValue(a).length?e:e+" with hint "+
+b:b):0<e.length?e:0==cvox.DomUtil.collapseWhitespace(a.textContent).length&&a.hasAttribute&&a.hasAttribute("title")?a.getAttribute("title"):!b||cvox.AriaUtil.isCompositeControl(a)?"":cvox.DomUtil.hasChildrenBasedName_(a,d)?cvox.DomUtil.getNameFromChildren(a,c,d):""};
+cvox.DomUtil.getNameFromChildren=function(a,b,c){void 0==b&&(b=!0);for(var d="",e="",f=0;f<a.childNodes.length;f++){var g=a.childNodes[f],e=a.childNodes[f-1]||g;if(b||!cvox.DomUtil.isControl(g)){var h=cvox.DomUtil.isVisible(g,{checkAncestors:!1});if(c||h&&!cvox.AriaUtil.isHidden(g))e="SPAN"==e.tagName||"SPAN"==g.tagName||"SPAN"==g.parentNode.tagName?"":" ",d+=e+cvox.DomUtil.getName(g,!0,b)}}return d};
+cvox.DomUtil.getPrefixText=function(a,b){b=b||0;for(var c=cvox.DomUtil.getAncestors(a),d="",e=c=cvox.DomPredicates.listItemPredicate(c);e&&e.firstChild;)e=e.firstChild;c&&c.parentNode&&0==b&&"OL"==c.parentNode.tagName&&a==e&&"none"!=document.defaultView.getComputedStyle(c.parentNode).listStyleType&&(d=cvox.DomUtil.toArray(c.parentNode.children).filter(function(a){return"LI"==a.tagName}),d=d.indexOf(c)+1,-1!=document.defaultView.getComputedStyle(c.parentNode).listStyleType.indexOf("latin")&&(d--,d=
+String.fromCharCode(65+d%26)),d+=". ");return d};
+cvox.DomUtil.getControlLabelHeuristics=function(a){if(a.hasAttribute&&(a.hasAttribute("aria-label")&&""==a.getAttribute("aria-label")||a.hasAttribute("aria-title")&&""==a.getAttribute("aria-title")))return"";for(var b=cvox.DomUtil.previousLeafNode(a),c=0;b&&(!cvox.DomUtil.hasContent(b)||cvox.DomUtil.isControl(b));)b=cvox.DomUtil.previousLeafNode(b),c++;for(var c=cvox.DomUtil.directedNextLeafNode(a),d=0;c&&(!cvox.DomUtil.hasContent(c)||cvox.DomUtil.isControl(c));)c=cvox.DomUtil.directedNextLeafNode(c),
+d++;if(b&&c){for(var d=a,e=0;d&&!cvox.DomUtil.isDescendantOfNode(b,d);)d=d.parentNode,e++;d=a;for(a=0;d&&!cvox.DomUtil.isDescendantOfNode(c,d);)d=d.parentNode,a++;b=a<e?c:b}else b=b||c;return b?cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(b)+" "+cvox.DomUtil.getName(b)):""};
+cvox.DomUtil.getValue=function(a){var b=cvox.AriaUtil.getActiveDescendant(a);if(b)return cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(b)+" "+cvox.DomUtil.getName(b));if(a.constructor==HTMLSelectElement){var b="",c=a.selectedOptions?a.selectedOptions[0]:null;a=a.selectedOptions?a.selectedOptions[a.selectedOptions.length-1]:null;c&&a&&c!=a?b=cvox.ChromeVox.msgs.getMsg("selected_options_value",[c.text,a.text]):c&&(b=c.text+"");return b}if(a.constructor==HTMLTextAreaElement)return a.value;if(a.constructor==
+HTMLInputElement)switch(a.type){case "hidden":case "image":case "submit":case "reset":case "button":case "checkbox":case "radio":return"";case "password":return a.value.replace(/./g,"dot ");default:return a.value}return a.isContentEditable?cvox.DomUtil.getNameFromChildren(a,!0):""};
+cvox.DomUtil.getImageTitle=function(a){a.hasAttribute("alt")?a=a.alt:a.hasAttribute("title")?a=a.title:(a=a.src,"data"!=a.substring(0,4)?(a=a.substring(a.lastIndexOf("/")+1,a.lastIndexOf(".")),a=1<=a.length&&16>=a.length?a+" Image":"Image"):a="Image");return a};
+cvox.DomUtil.hasContent=function(a){if(8==a.nodeType||cvox.DomUtil.isDescendantOf(a,"HEAD")||cvox.DomUtil.isDescendantOf(a,"SCRIPT")||cvox.DomUtil.isDescendantOf(a,"NOSCRIPT")||cvox.DomUtil.isDescendantOf(a,"NOEMBED")||cvox.DomUtil.isDescendantOf(a,"STYLE")||!cvox.DomUtil.isVisible(a)||cvox.AriaUtil.isHidden(a))return!1;if(cvox.DomUtil.isControl(a)||cvox.DomUtil.isDescendantOf(a,"VIDEO")||cvox.DomUtil.isDescendantOf(a,"AUDIO")||"IFRAME"==a.tagName&&a.src&&0!=a.src.indexOf("javascript:"))return!0;
+for(var b="button,input,select,textarea",c=a.parentElement;c&&"LABEL"!=c.tagName;)c=c.parentElement;if(c){var d=c.querySelector(b);if(c.hasAttribute("for")){if(c=c.getAttribute("for"),(c=document.getElementById(c))&&cvox.DomUtil.isControl(c)&&!d)return!1}else if(d)return!1}for(d=a.parentElement;d&&"LEGEND"!=d.tagName;)d=d.parentElement;if(d){for(c=d.parentElement;c&&"FIELDSET"!=c.tagName;)c=c.parentElement;d=c&&c.querySelector(b);if(c&&!d)return!1}if(cvox.DomPredicates.linkPredicate([a])||"TABLE"==
+a.tagName||cvox.DomUtil.isMath(a)||cvox.DomPredicates.headingPredicate([a]))return!0;b=cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getName(a);a=cvox.DomUtil.getState(a,!0);return b.match(/^\s+$/)&&""===a?!1:!0};cvox.DomUtil.getAncestors=function(a){for(var b=[];a;)b.push(a),a=a.parentNode;for(b.reverse();b.length&&!b[0].tagName&&!b[0].nodeValue;)b.shift();return b};cvox.DomUtil.compareAncestors=function(a,b){for(var c=0;a[c]&&b[c]&&a[c]==b[c];)c++;a[c]||b[c]||(c=-1);return c};
+cvox.DomUtil.getUniqueAncestors=function(a,b,c){a=cvox.DomUtil.getAncestors(a);b=cvox.DomUtil.getAncestors(b);a=cvox.DomUtil.compareAncestors(a,b);a=b.slice(a);return 0==a.length&&c?b:a};
+cvox.DomUtil.getRoleMsg=function(a,b){var c;c=cvox.AriaUtil.getRoleNameMsg(a);c||("INPUT"==a.tagName?c=cvox.DomUtil.INPUT_TYPE_TO_INFORMATION_TABLE_MSG[a.type]:"A"==a.tagName&&cvox.DomUtil.isInternalLink(a)?c="internal_link":"A"==a.tagName&&a.getAttribute("name")?c="":a.isContentEditable?c="input_type_text":cvox.DomUtil.isMath(a)?c="math_expr":"TABLE"==a.tagName&&cvox.DomUtil.isLayoutTable(a)?c="":b==cvox.VERBOSITY_BRIEF?c=cvox.DomUtil.TAG_TO_INFORMATION_TABLE_BRIEF_MSG[a.tagName]:(c=cvox.DomUtil.TAG_TO_INFORMATION_TABLE_VERBOSE_MSG[a.tagName],
+cvox.DomUtil.hasLongDesc(a)&&(c="image_with_long_desc"),!c&&a.onclick&&(c="clickable")));return c};cvox.DomUtil.getRole=function(a,b){var c=cvox.DomUtil.getRoleMsg(a,b)||"",d=c&&" "!=c?cvox.ChromeVox.msgs.getMsg(c):"";return d?d:c};cvox.DomUtil.getListLength=function(a){var b=0;for(a=a.firstChild;a;a=a.nextSibling)if("LI"==a.tagName||a.getAttribute&&"listitem"==a.getAttribute("role")){if(a.hasAttribute("aria-setsize")){var c=parseInt(a.getAttribute("aria-setsize"),10);if(!isNaN(c))return c}b++}return b};
+cvox.DomUtil.getStateMsgs=function(a,b){var c=cvox.AriaUtil.getActiveDescendant(a);if(c)return cvox.DomUtil.getStateMsgs(c,b);var c=[],d=a.getAttribute?a.getAttribute("role"):"";(c=cvox.AriaUtil.getStateMsgs(a,b))||(c=[]);"INPUT"==a.tagName?a.hasAttribute("aria-checked")||(d={"checkbox-true":"checkbox_checked_state","checkbox-false":"checkbox_unchecked_state","radio-true":"radio_selected_state","radio-false":"radio_unselected_state"},(d=d[a.type+"-"+!!a.checked])&&c.push([d])):"SELECT"==a.tagName?
+a.selectedOptions&&1>=a.selectedOptions.length?c.push(["list_position",cvox.ChromeVox.msgs.getNumber(a.selectedIndex+1),cvox.ChromeVox.msgs.getNumber(a.options.length)]):c.push(["selected_options_state",cvox.ChromeVox.msgs.getNumber(a.selectedOptions.length)]):"UL"!=a.tagName&&"OL"!=a.tagName&&"list"!=d||c.push(["list_with_items",cvox.ChromeVox.msgs.getNumber(cvox.DomUtil.getListLength(a))]);cvox.DomUtil.isDisabled(a)&&c.push(["aria_disabled_true"]);cvox.DomPredicates.linkPredicate([a])&&cvox.ChromeVox.visitedUrls[a.href]&&
+c.push(["visited_url"]);a.accessKey&&c.push(["access_key",a.accessKey]);return c};cvox.DomUtil.getState=function(a,b){return cvox.NodeStateUtil.expand(cvox.DomUtil.getStateMsgs(a,b))};cvox.DomUtil.isFocusable=function(a){return a&&"number"==typeof a.tabIndex&&("A"!=a.tagName||a.hasAttribute("href")||a.hasAttribute("tabindex"))?0<=a.tabIndex||a.hasAttribute&&a.hasAttribute("tabindex")&&"-1"==a.getAttribute("tabindex")?!0:!1:!1};
+cvox.DomUtil.findFocusableDescendant=function(a){return a&&(a=cvox.DomUtil.findNode(a,cvox.DomUtil.isFocusable))?a:null};cvox.DomUtil.countFocusableDescendants=function(a){return a?cvox.DomUtil.countNodes(a,cvox.DomUtil.isFocusable):0};cvox.DomUtil.isAttachedToDocument=function(a){for(;a;){if(a.tagName&&"HTML"==a.tagName)return!0;a=a.parentNode}return!1};
+cvox.DomUtil.clickElem=function(a,b,c,d){var e=cvox.AriaUtil.getActiveDescendant(a);e&&(a=e);if(c){c=null;a.onclick&&(c=a.onclick);!c&&1!=a.nodeType&&a.parentNode&&a.parentNode.onclick&&(c=a.parentNode.onclick);e=!0;if(c)try{e=c()}catch(f){}if(!e)return}c=document.createEvent("MouseEvents");d=d?"dblclick":"mousedown";c.initMouseEvent(d,!0,!0,document.defaultView,1,0,0,0,0,!1,!1,b,!1,0,null);c.fromCvox=!0;try{a.dispatchEvent(c)}catch(g){}c=document.createEvent("MouseEvents");c.initMouseEvent("mouseup",
+!0,!0,document.defaultView,1,0,0,0,0,!1,!1,b,!1,0,null);c.fromCvox=!0;try{a.dispatchEvent(c)}catch(h){}c=document.createEvent("MouseEvents");c.initMouseEvent("click",!0,!0,document.defaultView,1,0,0,0,0,!1,!1,b,!1,0,null);c.fromCvox=!0;try{a.dispatchEvent(c)}catch(k){}cvox.DomUtil.isInternalLink(a)&&cvox.DomUtil.syncInternalLink(a)};
+cvox.DomUtil.syncInternalLink=function(a){var b=a.href.split("#")[1];a=document.getElementById(b);a||(b=document.getElementsByName(b),0<b.length&&(a=b[0]));if(a){var b=a.parentNode,c=document.createElement("div");c.setAttribute("tabindex","-1");b.insertBefore(c,a);c.setAttribute("chromevoxignoreariahidden",1);c.focus();cvox.ChromeVox.syncToNode(a,!0)}};
+cvox.DomUtil.isInputTypeText=function(a){if(!a||a.constructor!=HTMLInputElement)return!1;switch(a.type){case "email":case "number":case "password":case "search":case "text":case "tel":case "url":case "":return!0;default:return!1}};cvox.DomUtil.isControl=function(a){if(cvox.AriaUtil.isControlWidget(a)&&cvox.DomUtil.isFocusable(a))return!0;if(a.tagName)switch(a.tagName){case "BUTTON":case "TEXTAREA":case "SELECT":return!0;case "INPUT":return"hidden"!=a.type}return a.isContentEditable?!0:!1};
+cvox.DomUtil.isLeafLevelControl=function(a){return cvox.DomUtil.isControl(a)?!(cvox.AriaUtil.isCompositeControl(a)&&cvox.DomUtil.findFocusableDescendant(a)):!1};cvox.DomUtil.getSurroundingControl=function(a){var b=null;if(!cvox.DomUtil.isControl(a)&&a.hasAttribute&&a.hasAttribute("role"))for(b=a.parentElement;b&&!cvox.AriaUtil.isCompositeControl(b);)b=b.parentElement;return b};
+cvox.DomUtil.directedNextLeafLikeNode=function(a,b,c){if(a!=document.body){for(;!cvox.DomUtil.directedNextSibling(a,b);){if(!a)return null;a=a.parentNode;if(a==document.body)return null}cvox.DomUtil.directedNextSibling(a,b)&&(a=cvox.DomUtil.directedNextSibling(a,b))}for(;cvox.DomUtil.directedFirstChild(a,b)&&!c(a);)a=cvox.DomUtil.directedFirstChild(a,b);return a==document.body?null:a};cvox.DomUtil.directedNextLeafNode=function(a,b){b=!!b;return cvox.DomUtil.directedNextLeafLikeNode(a,b,cvox.DomUtil.isLeafNode)};
+cvox.DomUtil.previousLeafNode=function(a){return cvox.DomUtil.directedNextLeafNode(a,!0)};cvox.DomUtil.directedFindFirstNode=function(a,b,c){for(a=cvox.DomUtil.directedFirstChild(a,b);a;){if(c(a))return a;var d=cvox.DomUtil.directedFindFirstNode(a,b,c);if(d)return d;a=cvox.DomUtil.directedNextSibling(a,b)}return null};cvox.DomUtil.directedFindDeepestNode=function(a,b,c){var d=cvox.DomUtil.directedFindFirstNode(a,b,c);return d?cvox.DomUtil.directedFindDeepestNode(d,b,c):c(a)?a:null};
+cvox.DomUtil.directedFindNextNode=function(a,b,c,d,e,f){e=!!e;f=!!f;if(!cvox.DomUtil.isDescendantOfNode(a,b)||a==b)return null;for(var g=cvox.DomUtil.directedNextSibling(a,c);g;){if(!f&&d(g))return g;var h=(f?cvox.DomUtil.directedFindDeepestNode:cvox.DomUtil.directedFindFirstNode)(g,c,d);if(h)return h;if(f&&d(g))return g;g=cvox.DomUtil.directedNextSibling(g,c)}a=a.parentNode;return e&&d(a)?a:cvox.DomUtil.directedFindNextNode(a,b,c,d,e,f)};
+cvox.DomUtil.getControlValueAndStateString=function(a){var b=cvox.DomUtil.getSurroundingControl(a);return b?cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getName(a)+" "+cvox.DomUtil.getState(a,!0)):cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getState(a,!0))};cvox.DomUtil.isInternalLink=function(a){return 1==a.nodeType&&(a=a.getAttribute("href"))&&-1!=a.indexOf("#")?(a=a.split("#")[0],""==a||a==window.location.pathname):!1};
+cvox.DomUtil.getLinkURL=function(a){if("A"==a.tagName){if(a.getAttribute("href"))return cvox.DomUtil.isInternalLink(a)?cvox.ChromeVox.msgs.getMsg("internal_link"):a.getAttribute("href")}else if(cvox.AriaUtil.getRoleName(a)==cvox.ChromeVox.msgs.getMsg("aria_role_link"))return cvox.ChromeVox.msgs.getMsg("unknown_link");return""};cvox.DomUtil.getContainingTable=function(a,b){var c=cvox.DomUtil.getAncestors(a);return cvox.DomUtil.findTableNodeInList(c,b)};
+cvox.DomUtil.findTableNodeInList=function(a,b){b=b||{allowCaptions:!1};for(var c=a.length-1,d;d=a[c];c--)if(d.constructor!=Text){if(!b.allowCaptions&&"CAPTION"==d.tagName)break;if("TABLE"==d.tagName||cvox.AriaUtil.isGrid(d))return d}return null};
+cvox.DomUtil.isLayoutTable=function(a){if(a.rows&&(1==a.rows.length||1==a.rows[0].childElementCount))return!0;if(cvox.AriaUtil.isGrid(a)||cvox.AriaUtil.isLandmark(a)||a.caption||a.summary||0<cvox.XpathUtil.evalXPath("tbody/tr/th",a).length&&0<cvox.XpathUtil.evalXPath("tbody/tr/td",a).length||0<cvox.XpathUtil.evalXPath("colgroup",a).length||0<cvox.XpathUtil.evalXPath("thead",a).length||0<cvox.XpathUtil.evalXPath("tfoot",a).length)return!1;if(0<cvox.XpathUtil.evalXPath("tbody/tr/td/embed",a).length||
+0<cvox.XpathUtil.evalXPath("tbody/tr/td/object",a).length||0<cvox.XpathUtil.evalXPath("tbody/tr/td/iframe",a).length||0<cvox.XpathUtil.evalXPath("tbody/tr/td/applet",a).length)return!0;var b=0;cvox.DomUtil.hasBorder(a)||b++;6>=a.rows.length&&b++;12>=cvox.DomUtil.countPreviousTags(a)&&b++;0<cvox.XpathUtil.evalXPath("tbody/tr/td/table",a).length&&b++;return 3<=b};cvox.DomUtil.countPreviousTags=function(a){var b=cvox.DomUtil.getAncestors(a);return b.length+cvox.DomUtil.countPreviousSiblings(a)};
+cvox.DomUtil.countPreviousSiblings=function(a){var b=0;for(a=a.previousSibling;null!=a;)a.constructor!=Text&&b++,a=a.previousSibling;return b};cvox.DomUtil.hasBorder=function(a){return a.frame?-1==a.frame.indexOf("void"):a.border?1==a.border.length?"0"!=a.border:0!=a.border.slice(0,-2):a.style.borderStyle&&"none"==a.style.borderStyle?!1:a.style.borderWidth?0!=a.style.borderWidth.slice(0,-2):a.style.borderColor?!0:!1};
+cvox.DomUtil.getFirstLeafNode=function(){for(var a=document.body;a&&a.firstChild;)a=a.firstChild;for(;a&&!cvox.DomUtil.hasContent(a);)a=cvox.DomUtil.directedNextLeafNode(a);return a};cvox.DomUtil.findNode=function(a,b){var c=[],d=cvox.DomUtil.findNodes_(a,b,c,!0,1E4);return d?c[0]:void 0};cvox.DomUtil.countNodes=function(a,b){var c=[];cvox.DomUtil.findNodes_(a,b,c,!1,1E4);return c.length};
+cvox.DomUtil.findNodes_=function(a,b,c,d,e){if(null!=a||0==e)for(a=a.firstChild;a;){if(b(a)&&(c.push(a),d))return!0;e-=1;if(cvox.DomUtil.findNodes_(a,b,c,d,e))return!0;a=a.nextSibling}return!1};cvox.DomUtil.toArray=function(a){for(var b=[],c=0;c<a.length;c++)b.push(a[c]);return b};
+cvox.DomUtil.shallowChildlessClone=function(a,b){if("#text"==a.nodeName)return document.createTextNode(a.nodeValue);if("#comment"==a.nodeName)return document.createComment(a.nodeValue);for(var c=document.createElement(a.nodeName),d=0;d<a.attributes.length;++d){var e=a.attributes[d];b&&b[e.nodeName]||c.setAttribute(e.nodeName,e.nodeValue)}return c};
+cvox.DomUtil.deepClone=function(a,b){for(var c=cvox.DomUtil.shallowChildlessClone(a,b),d=0;d<a.childNodes.length;++d)c.appendChild(cvox.DomUtil.deepClone(a.childNodes[d],b));return c};cvox.DomUtil.directedFirstChild=function(a,b){return b?a.lastChild:a.firstChild};cvox.DomUtil.directedNextSibling=function(a,b){return a?b?a.previousSibling:a.nextSibling:null};cvox.DomUtil.createSimpleClickFunction=function(a){var b=a.cloneNode(!0);return function(){cvox.DomUtil.clickElem(b,!1,!1)}};
+cvox.DomUtil.addNodeToHead=function(a,b){if(!b||!document.getElementById(b)){var c=document.head||document.body;c.appendChild(a)}};cvox.DomUtil.getContainingMath=function(a){a=cvox.DomUtil.getAncestors(a);return cvox.DomUtil.findMathNodeInList(a)};cvox.DomUtil.findMathNodeInList=function(a){for(var b=0,c;c=a[b];b++)if(cvox.DomUtil.isMath(c))return c;return null};cvox.DomUtil.isMath=function(a){return cvox.DomUtil.isMathml(a)||cvox.DomUtil.isMathJax(a)||cvox.DomUtil.isMathImg(a)||cvox.AriaUtil.isMath(a)};
+cvox.DomUtil.ALT_MATH_CLASSES={tex:["tex","latex"],asciimath:["numberedequation","inlineformula","displayformula"]};cvox.DomUtil.altMathQuerySelector=function(a){return(a=cvox.DomUtil.ALT_MATH_CLASSES[a])?a.map(function(a){return"img."+a}).join(", "):""};cvox.DomUtil.isMathImg=function(a){if(!a||!a.tagName||!a.className||"IMG"!=a.tagName)return!1;a=a.className.toLowerCase();return-1!=cvox.DomUtil.ALT_MATH_CLASSES.tex.indexOf(a)||-1!=cvox.DomUtil.ALT_MATH_CLASSES.asciimath.indexOf(a)};
+cvox.DomUtil.isMathml=function(a){return a&&a.tagName?"math"==a.tagName.toLowerCase():!1};cvox.DomUtil.isMathJax=function(a){function b(a,b){return"SPAN"==a.tagName&&a.className.split(" ").some(function(a){return a.toLowerCase()==b})}return a&&a.tagName&&a.className?b(a,"math")?(a=cvox.DomUtil.getAncestors(a),a.some(function(a){return b(a,"mathjax")})):!1:!1};cvox.DomUtil.getMathSpanId=function(a){if(a=document.getElementById(a+"-Frame"))if(a=a.querySelector("span.math"))return a.id};
+cvox.DomUtil.hasLongDesc=function(a){return a&&a.longDesc?!0:!1};cvox.DomUtil.getNodeTagName=function(a){return a.nodeType==Node.ELEMENT_NODE?a.tagName:""};cvox.DomUtil.purgeNodes=function(a){return cvox.DomUtil.toArray(a).filter(function(a){return a.nodeType!=Node.TEXT_NODE||!a.textContent.match(/^\s+$/)})};cvox.DomUtil.elementToPoint=function(a){if(!a)return{x:0,y:0};a.constructor==Text&&(a=a.parentNode);a=a.getBoundingClientRect();return{x:a.left+a.width/2,y:a.top+a.height/2}};cvox.SelectionUtil=function(){};cvox.SelectionUtil.cleanUpParagraphForward=function(a){for(;3==a.focusNode.nodeType;){var b=a.focusNode,c=a.focusOffset;a.modify("extend","forward","sentence");if(b==a.focusNode&&c==a.focusOffset)return!1}return!0};cvox.SelectionUtil.cleanUpParagraphBack=function(a){for(var b,c;3==a.focusNode.nodeType&&(b=a.focusNode,c=a.focusOffset,a.modify("extend","backward","sentence"),b!=a.focusNode||c!=a.focusOffset););return!0};
+cvox.SelectionUtil.cleanUpSentence=function(a){for(var b=!0;b;)if(3==a.focusNode.nodeType){var c=a.focusNode,d=a.focusOffset;if(0<a.rangeCount&&0<a.getRangeAt(0).endOffset)if("."==c.substringData(a.getRangeAt(0).endOffset-1,1))break;else if(" "==c.substringData(a.getRangeAt(0).endOffset-1,1))break;else{if(a.modify("extend","forward","sentence"),c==a.focusNode&&d==a.focusOffset)return!1}else break}else break;return!0};
+cvox.SelectionUtil.findSelPosition=function(a){if(0==a.rangeCount)return[0,0];var b=a.getRangeAt(0).getBoundingClientRect();if(!b)return[0,0];a=window.pageYOffset+b.top;b=window.pageXOffset+b.left;return[a,b]};cvox.SelectionUtil.findTopLeftPosition=function(a){var b=0,c=0;if(a.offsetParent)for(b=a.offsetLeft,c=a.offsetTop,a=a.offsetParent;null!==a;)b+=a.offsetLeft,c+=a.offsetTop,a=a.offsetParent;return[c,b]};
+cvox.SelectionUtil.isSelectionValid=function(a){var b=RegExp(/^\s+$/);return!(b.test(a.toString())||""==a.toString())};cvox.SelectionUtil.isRangeValid=function(a){a=a.cloneContents().textContent;var b=RegExp(/^\s+$/);return!(b.test(a)||""==a)};cvox.SelectionUtil.findPos_=function(a){var b=0,c=0;if(a.offsetParent){do b+=a.offsetLeft,c+=a.offsetTop;while(a=a.offsetParent)}return[b,c]};
+cvox.SelectionUtil.scrollElementsToView=function(a){for(;a&&!a.getBoundingClientRect;)a=a.parentElement;if(a){for(var b=a,c=b.parentElement;b!=document.body&&c;)b.scrollTop=b.offsetTop,b.scrollLeft=b.offsetLeft,b=c,c=b.parentElement;a=cvox.SelectionUtil.findPos_(a);window.scrollTo(a[0]-window.innerWidth/2,a[1]-window.innerHeight/2)}};
+cvox.SelectionUtil.scrollToSelection=function(a){if(0!=a.rangeCount){cvox.SelectionUtil.scrollElementsToView(a.focusNode);var b=cvox.SelectionUtil.findSelPosition(a);a=b[0];var b=b[1],c=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop,d=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,e=window.innerWidth||document.documentElement.innerWidth||document.body.clientWidth;b<e&&(b=0);c+d<a?(a-=d,window.scroll(b,a+100)):a<c&&window.scroll(b,
+a-100)}};cvox.SelectionUtil.isAllWs=function(a){return!/[^\t\n\r ]/.test(a.data)};cvox.SelectionUtil.isIgnorable=function(a){return 8==a.nodeType||3==a.nodeType&&cvox.SelectionUtil.isAllWs(a)};cvox.SelectionUtil.nodeBefore=function(a){for(;a=a.previousSibling;)if(!cvox.SelectionUtil.isIgnorable(a))return a;return null};cvox.SelectionUtil.nodeAfter=function(a){for(;a=a.nextSibling;)if(!cvox.SelectionUtil.isIgnorable(a))return a;return null};
+cvox.SelectionUtil.lastChildNode=function(a){for(a=a.lastChild;a;){if(!cvox.SelectionUtil.isIgnorable(a))return a;a=a.previousSibling}return null};cvox.SelectionUtil.firstChildNode=function(a){for(a=a.firstChild;a;){if(!cvox.SelectionUtil.isIgnorable(a))return a;a=a.nextSibling}return null};cvox.SelectionUtil.dataOf=function(a){a=a.data;a=a.replace(/[\t\n\r ]+/g," ");" "==a.charAt(0)&&(a=a.substring(1,a.length));" "==a.charAt(a.length-1)&&(a=a.substring(0,a.length-1));return a};
+cvox.SelectionUtil.hasContentWithTag=function(a,b){if(!a||!a.anchorNode||!a.focusNode)return!1;if(a.anchorNode.tagName&&a.anchorNode.tagName==b||a.focusNode.tagName&&a.focusNode.tagName==b||a.anchorNode.parentNode.tagName&&a.anchorNode.parentNode.tagName==b||a.focusNode.parentNode.tagName&&a.focusNode.parentNode.tagName==b)return!0;var c=a.getRangeAt(0).cloneContents(),d=document.createElement("span");d.appendChild(c);return 0<d.getElementsByTagName(b).length};
+cvox.SelectionUtil.selectText=function(a,b,c){var d=document.createRange();d.setStart(a,b);d.setEnd(a,c);a=window.getSelection();a.removeAllRanges();a.addRange(d)};cvox.SelectionUtil.selectAllTextInNode=function(a){var b=document.createRange();b.setStart(a,0);b.setEndAfter(a);a=window.getSelection();a.removeAllRanges();a.addRange(b)};
+cvox.SelectionUtil.collapseToStart=function(a){var b=window.getSelection(),c=b.anchorNode,d=b.anchorOffset;null==c&&(c=a,d=0);a=document.createRange();a.setStart(c,d);a.setEnd(c,d);b.removeAllRanges();b.addRange(a)};cvox.SelectionUtil.collapseToEnd=function(a){var b=window.getSelection(),c=b.focusNode,d=b.focusOffset;null==c&&(c=a,d=0);a=document.createRange();a.setStart(c,d);a.setEnd(c,d);b.removeAllRanges();b.addRange(a)};
+cvox.SelectionUtil.getText=function(){var a=window.getSelection();if(cvox.SelectionUtil.hasContentWithTag(a,"IMG")){var b="",a=a.getRangeAt(0).cloneContents(),c=document.createElement("span");c.appendChild(a);for(var a=cvox.XpathUtil.getLeafNodes(c),c=0,d;d=a[c];c++)b=b+" "+cvox.DomUtil.getName(d);return b}return this.getSelectionText_()};cvox.SelectionUtil.getSelectionText_=function(){return""+window.getSelection()};
+cvox.SelectionUtil.getRangeText=function(a){return a?a.cloneContents().textContent.replace(/\s+/g," "):""};cvox.TraverseUtil=function(){};cvox.TraverseUtil.getNodeText=function(a){return a.constructor==Text?a.data:""};cvox.TraverseUtil.treatAsLeafNode=function(a){return 0==a.childNodes.length||"SELECT"==a.nodeName||"listbox"==a.getAttribute("role")||"OBJECT"==a.nodeName};cvox.TraverseUtil.isWhitespace=function(a){return" "==a||"\n"==a||"\r"==a||"\t"==a};
+cvox.TraverseUtil.setSelection=function(a,b){var c=window.getSelection();c.removeAllRanges();var d=document.createRange();d.setStart(a.node,a.index);d.setEnd(b.node,b.index);c.addRange(d);return c};cvox.TraverseUtil.isHidden=function(a){if(a instanceof HTMLElement&&"true"==a.getAttribute("aria-hidden"))return!0;switch(a.tagName){case "SCRIPT":case "NOSCRIPT":return!0}return!1};
+cvox.TraverseUtil.forwardsChar=function(a,b,c){for(;;){var d=null;if(!cvox.TraverseUtil.treatAsLeafNode(a.node))for(var e=a.index;e<a.node.childNodes.length;e++){var f=a.node.childNodes[e];if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}}if(d)a.node=d,a.index=0,a.text=cvox.TraverseUtil.getNodeText(a.node),a.node instanceof HTMLElement&&b.push(a.node);else{if(a.index<a.text.length)return a.text[a.index++];for(;null!=
+a.node;){d=null;for(f=a.node.nextSibling;null!=f;f=f.nextSibling)if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}if(d){a.node instanceof HTMLElement&&c.push(a.node);a.node=d;a.text=cvox.TraverseUtil.getNodeText(d);a.index=0;a.node instanceof HTMLElement&&b.push(a.node);break}if(a.node.parentNode&&a.node.parentNode.constructor!=HTMLBodyElement)a.node instanceof HTMLElement&&c.push(a.node),a.node=a.node.parentNode,
+a.text=null,a.index=0;else return null}}}};
+cvox.TraverseUtil.backwardsChar=function(a,b,c){for(;;){var d=null;if(!cvox.TraverseUtil.treatAsLeafNode(a.node))for(var e=a.index-1;0<=e;e--){var f=a.node.childNodes[e];if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}}if(d)a.node=d,a.text=cvox.TraverseUtil.getNodeText(a.node),a.index=a.text.length?a.text.length:a.node.childNodes.length,a.node instanceof HTMLElement&&b.push(a.node);else{if(0<a.text.length&&0<a.index)return a.text[--a.index];
+for(;;){d=null;for(f=a.node.previousSibling;null!=f;f=f.previousSibling)if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}if(d){a.node instanceof HTMLElement&&c.push(a.node);a.node=d;a.text=cvox.TraverseUtil.getNodeText(d);a.index=a.text.length?a.text.length:a.node.childNodes.length;a.node instanceof HTMLElement&&b.push(a.node);break}if(a.node.parentNode&&a.node.parentNode.constructor!=HTMLBodyElement)a.node instanceof
+HTMLElement&&c.push(a.node),a.node=a.node.parentNode,a.text=null,a.index=0;else return null}}}};
+cvox.TraverseUtil.getNextChar=function(a,b,c,d,e){a.copyFrom(b);var f=cvox.TraverseUtil.forwardsChar(b,c,d);if(null==f)return null;for(var g=cvox.TraverseUtil.isWhitespace(f);cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(b.node);)if(f=cvox.TraverseUtil.forwardsChar(b,c,d),null==f)return null;if(e||!g)return a.copyFrom(b),a.index--,f;for(d=0;d<c.length;d++)if(cvox.TraverseUtil.isHidden(c[d]))return b.index--,a.copyFrom(b),a.index--," ";b.index--;return" "};
+cvox.TraverseUtil.getPreviousChar=function(a,b,c,d,e){b.copyFrom(a);var f=cvox.TraverseUtil.backwardsChar(a,c,d);if(null==f)return null;for(var g=cvox.TraverseUtil.isWhitespace(f);cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(a.node);)if(f=cvox.TraverseUtil.backwardsChar(a,c,d),null==f)return null;if(e||!g)return b.copyFrom(a),b.index++,f;for(d=0;d<c.length;d++)if(cvox.TraverseUtil.isHidden(c[d]))return a.index++,b.copyFrom(a),b.index++," ";a.index++;return" "};
+cvox.TraverseUtil.getNextWord=function(a,b,c,d){var e=b.clone(),f=cvox.TraverseUtil.forwardsChar(e,c,d);if(null==f)return null;for(;cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(e.node);)if(f=cvox.TraverseUtil.forwardsChar(e,c,d),null==f)return null;a.copyFrom(e);a.index--;b.copyFrom(e);a=f;c=[];d=[];f=cvox.TraverseUtil.forwardsChar(e,c,d);if(null==f)return a;for(;!cvox.TraverseUtil.isWhitespace(f)&&0==c.length&&0==d&&(a+=f,b.copyFrom(e),f=cvox.TraverseUtil.forwardsChar(e,c,d),null!=
+f););return a};
+cvox.TraverseUtil.getPreviousWord=function(a,b,c,d){var e=a.clone(),f=cvox.TraverseUtil.backwardsChar(e,c,d);if(null==f)return null;for(;cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(e.node);)if(f=cvox.TraverseUtil.backwardsChar(e,c,d),null==f)return null;b.copyFrom(e);b.index++;a.copyFrom(e);b=f;c=[];d=[];f=cvox.TraverseUtil.backwardsChar(e,c,d);if(null==f)return b;for(;!cvox.TraverseUtil.isWhitespace(f)&&0==c.length&&0==d.length&&(b=f+b,a.copyFrom(e),f=cvox.TraverseUtil.backwardsChar(e,c,
+d),null!=f););return b};cvox.TraverseUtil.includesBreakTagOrSkippedNode=function(a,b,c){for(var d=0;d<a.length;d++){if(cvox.TraverseUtil.isHidden(a[d]))return!0;var e=window.getComputedStyle(a[d],null);if(e&&"inline"!=e.display||c[a[d].tagName])return!0}for(d=0;d<b.length;d++)if((e=window.getComputedStyle(b[d],null))&&"inline"!=e.display||c[b[d].tagName])return!0;return!1};
+cvox.TraverseUtil.getNextSentence=function(a,b,c,d,e){return cvox.TraverseUtil.getNextString(a,b,c,d,function(a,b,c,d){return"."==a.substr(-1)?!0:cvox.TraverseUtil.includesBreakTagOrSkippedNode(c,d,e)})};cvox.TraverseUtil.getPreviousSentence=function(a,b,c,d,e){return cvox.TraverseUtil.getPreviousString(a,b,c,d,function(a,b,c,d){return"."==b.substr(-1)?!0:cvox.TraverseUtil.includesBreakTagOrSkippedNode(c,d,e)})};
+cvox.TraverseUtil.getNextLine=function(a,b,c,d,e){var f=document.createRange(),g=null,h=b.clone();return cvox.TraverseUtil.getNextString(a,b,c,d,function(c,d,m,p){f.setStart(a.node,a.index);f.setEnd(b.node,b.index);c=f.getBoundingClientRect();g||(g=c);if(c.bottom!=g.bottom&&!cvox.DomPredicates.linkPredicate(cvox.DomUtil.getAncestors(b.node)))return b.copyFrom(h),!0;g=c;h.copyFrom(b);return cvox.TraverseUtil.includesBreakTagOrSkippedNode(m,p,e)})};
+cvox.TraverseUtil.getPreviousLine=function(a,b,c,d,e){var f=document.createRange(),g=null,h=a.clone();return cvox.TraverseUtil.getPreviousString(a,b,c,d,function(c,d,m,p){f.setStart(a.node,a.index);f.setEnd(b.node,b.index);c=f.getBoundingClientRect();g||(g=c);if(c.top!=g.top&&!cvox.DomPredicates.linkPredicate(cvox.DomUtil.getAncestors(a.node)))return a.copyFrom(h),!0;g=c;h.copyFrom(a);return cvox.TraverseUtil.includesBreakTagOrSkippedNode(m,p,e)})};
+cvox.TraverseUtil.getNextParagraph=function(a,b,c,d){return cvox.TraverseUtil.getNextString(a,b,c,d,function(a,b,c,d){for(a=0;a<c.length;a++)if(cvox.TraverseUtil.isHidden(c[a])||(b=window.getComputedStyle(c[a],null))&&"inline"!=b.display)return!0;for(a=0;a<d.length;a++)if((b=window.getComputedStyle(d[a],null))&&"inline"!=b.display)return!0;return!1})};
+cvox.TraverseUtil.getPreviousParagraph=function(a,b,c,d){return cvox.TraverseUtil.getPreviousString(a,b,c,d,function(a,b,c,d){for(a=0;a<c.length;a++)if(cvox.TraverseUtil.isHidden(c[a])||(b=window.getComputedStyle(c[a],null))&&"inline"!=b.display)return!0;for(a=0;a<d.length;a++)if((b=window.getComputedStyle(d[a],null))&&"inline"!=b.display)return!0;return!1})};
+cvox.TraverseUtil.getNextString=function(a,b,c,d,e){c=b.clone();d=b.clone();var f=[],g=[],h="",k=cvox.TraverseUtil.getNextWord(c,d,f,g);if(null==k)return null;for(a.copyFrom(c);!(h&&e(h,k,f,g)||(h&&(h+=" "),h+=k,b.copyFrom(d),f=[],g=[],k=cvox.TraverseUtil.getNextWord(c,d,f,g),null==k)););return h};
+cvox.TraverseUtil.getPreviousString=function(a,b,c,d,e){c=a.clone();d=a.clone();var f=[],g=[],h="",k=cvox.TraverseUtil.getPreviousWord(c,d,f,g);if(null==k)return null;for(b.copyFrom(d);!(h&&e(h,k,f,g)||(h&&(h=" "+h),h=k+h,a.copyFrom(c),f=[],g=[],k=cvox.TraverseUtil.getPreviousWord(c,d,f,g),null==k)););return h};cvox.CursorSelection=function(a,b,c){this.start=a.clone();this.end=b.clone();void 0==c&&(c=!1);if((this.isReversed_=c)&&this.start.node.compareDocumentPosition(this.end.node)==cvox.CursorSelection.BEFORE||!this.isReversed_&&this.end.node.compareDocumentPosition(this.start.node)==cvox.CursorSelection.BEFORE)a=this.start,this.start=this.end,this.end=a};cvox.CursorSelection.BEFORE=4;
+cvox.CursorSelection.prototype.setReversed=function(a){if(a==this.isReversed_)return this;var b=this.start;this.start=this.end;this.end=b;this.isReversed_=a;return this};cvox.CursorSelection.prototype.isReversed=function(){return this.isReversed_};cvox.CursorSelection.prototype.absStart=function(){return this.isReversed_?this.end:this.start};cvox.CursorSelection.prototype.absEnd=function(){return this.isReversed_?this.start:this.end};
+cvox.CursorSelection.prototype.clone=function(){return new cvox.CursorSelection(this.start,this.end,this.isReversed_)};cvox.CursorSelection.prototype.select=function(){var a=window.getSelection();a.removeAllRanges();this.normalize();a.addRange(this.getRange())};cvox.CursorSelection.fromNode=function(a){if(!a)return null;var b=cvox.TraverseUtil.getNodeText(a);return new cvox.CursorSelection(new cvox.Cursor(a,0,b),new cvox.Cursor(a,0,b))};cvox.CursorSelection.fromBody=function(){return cvox.CursorSelection.fromNode(document.body)};
+cvox.CursorSelection.prototype.getText=function(){return this.start.equals(this.end)?cvox.TraverseUtil.getNodeText(this.start.node):cvox.SelectionUtil.getRangeText(this.getRange())};cvox.CursorSelection.prototype.getRange=function(){var a=document.createRange();this.isReversed_?(a.setStart(this.end.node,this.end.index),a.setEnd(this.start.node,this.start.index)):(a.setStart(this.start.node,this.start.index),a.setEnd(this.end.node,this.end.index));return a};
+cvox.CursorSelection.prototype.equals=function(a){return this.start.equals(a.start)&&this.end.equals(a.end)};cvox.CursorSelection.prototype.absEquals=function(a){return this.start.equals(a.start)&&this.end.equals(a.end)||this.end.equals(a.start)&&this.start.equals(a.end)};cvox.CursorSelection.prototype.directedBefore=function(a){var b=this.start.node.compareDocumentPosition(a.start.node)==cvox.CursorSelection.BEFORE;return this.start.node==a.start.node||(this.isReversed()?!b:b)};
+cvox.CursorSelection.prototype.normalize=function(){if(0==this.absEnd().index&&this.absEnd().node){var a=this.absEnd().node,b=document.createRange();b.selectNodeContents(a);this.absEnd().index=b.endOffset}return this};cvox.CursorSelection.prototype.collapse=function(){if(this.start.equals(this.end))return this;this.end.copyFrom(this.start);if(0==this.start.text.length)return this;this.isReversed()?0<this.end.index&&this.end.index--:this.end.index<this.end.text.length&&this.end.index++;return this};cvox.PlatformUtil={};cvox.PlatformFilter={NONE:0,WINDOWS:1,MAC:2,LINUX:4,WML:7,CHROMEOS:8,ANDROID:16};cvox.PlatformUtil.matchesPlatform=function(a){var b=navigator.userAgent;return void 0==a?!0:-1!=b.indexOf("Android")?0!=(a&cvox.PlatformFilter.ANDROID):-1!=b.indexOf("Win")?0!=(a&cvox.PlatformFilter.WINDOWS):-1!=b.indexOf("Mac")?0!=(a&cvox.PlatformFilter.MAC):-1!=b.indexOf("Linux")?0!=(a&cvox.PlatformFilter.LINUX):-1!=b.indexOf("CrOS")?0!=(a&cvox.PlatformFilter.CHROMEOS):!1};cvox.Spannable=function(a,b){this.string_=a||"";this.spans_=[];if(goog.isDef(b)){var c=this.string_.length;this.spans_.push({value:b,start:0,end:c})}};cvox.Spannable.prototype.toString=function(){return this.string_};cvox.Spannable.prototype.getLength=function(){return this.string_.length};cvox.Spannable.prototype.setSpan=function(a,b,c){this.removeSpan(a);if(0<=b&&b<=c&&c<=this.string_.length)this.spans_.push({value:a,start:b,end:c});else throw new RangeError("span out of range");};
+cvox.Spannable.prototype.removeSpan=function(a){for(var b=this.spans_.length-1;0<=b;b--)this.spans_[b].value===a&&this.spans_.splice(b,1)};cvox.Spannable.prototype.append=function(a){if(a instanceof cvox.Spannable){var b=a,c=this.getLength();this.string_+=b.string_;a.spans_.forEach(goog.bind(function(a){this.setSpan(a.value,a.start+c,a.end+c)},this))}else"string"===typeof a&&(this.string_+=a)};
+cvox.Spannable.prototype.getSpan=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.start<=a&&a<c.end)return c.value}};cvox.Spannable.prototype.getSpanInstanceOf=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.value instanceof a)return c.value}};cvox.Spannable.prototype.getSpans=function(a){for(var b=[],c=0;c<this.spans_.length;c++){var d=this.spans_[c];d.start<=a&&a<d.end&&b.push(d.value)}return b};
+cvox.Spannable.prototype.getSpanStart=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.value===a)return c.start}return null};cvox.Spannable.prototype.getSpanEnd=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.value===a)return c.end}return null};
+cvox.Spannable.prototype.substring=function(a,b){var c=goog.isDef(b)?b:this.string_.length;if(0>a||c>this.string_.length||a>c)throw new RangeError("substring indices out of range");for(var d=new cvox.Spannable(this.string_.substring(a,c)),e=0;e<this.spans_.length;e++){var f=this.spans_[e];if(f.start<=c&&f.end>=a){var g=Math.max(0,f.start-a),h=Math.min(c-a,f.end-a);d.spans_.push({value:f.value,start:g,end:h})}}return d};
+cvox.Spannable.prototype.trim=function(){if(/^\s*$/.test(this.string_))return this.substring(0,0);var a=this.string_.match(/^\s*/)[0].length,b=this.string_.match(/\s*$/).index;return this.substring(a,b)};cvox.NavBraille=function(a){this.text=a.text instanceof cvox.Spannable?a.text:new cvox.Spannable(a.text);this.startIndex=a.startIndex?a.startIndex:0;this.endIndex=a.endIndex?a.endIndex:0};cvox.NavBraille.fromText=function(a){return new cvox.NavBraille({text:a})};cvox.NavBraille.prototype.isEmpty=function(){return 0==this.text.getLength()};cvox.NavBraille.prototype.toString=function(){return'NavBraille(text="'+this.text.toString()+'" startIndex="'+this.startIndex+'" endIndex="'+this.endIndex+'")'};
+cvox.NavBraille.prototype.toJson=function(){return{text:this.text.toString(),startIndex:this.startIndex,endIndex:this.endIndex}};cvox.NavBraille.prototype.write=function(){cvox.PlatformUtil.matchesPlatform(cvox.PlatformFilter.CHROMEOS|cvox.PlatformFilter.ANDROID)&&cvox.ChromeVox.braille.write(this)};cvox.BrailleKeyCommand={PAN_LEFT:"pan_left",PAN_RIGHT:"pan_right",LINE_UP:"line_up",LINE_DOWN:"line_down",TOP:"top",BOTTOM:"bottom",ROUTING:"routing",SECONDARY_ROUTING:"secondary_routing",DOTS:"dots",STANDARD_KEY:"standard_key"};cvox.BrailleKeyEvent={};cvox.BrailleInterface=function(){};cvox.BrailleInterface.prototype.write=function(){};cvox.AbstractBraille=function(){};cvox.AbstractHost=function(){};cvox.AbstractHost.State={ACTIVE:0,INACTIVE:1,KILLED:2};cvox.AbstractHost.prototype.init=function(){};cvox.AbstractHost.prototype.reinit=function(){};cvox.AbstractHost.prototype.onPageLoad=function(){};cvox.AbstractHost.prototype.getApiSrc=function(){return""};cvox.AbstractHost.prototype.getFileSrc=function(){return""};cvox.AbstractHost.prototype.hasTtsCallback=function(){return!0};cvox.AbstractHost.prototype.ttsLoaded=function(){return!0};
+cvox.AbstractHost.prototype.mustRedispatchClickEvent=function(){return!1};cvox.AbstractHost.prototype.activateOrDeactivateChromeVox=function(a){this.onStateChanged_(a?cvox.AbstractHost.State.ACTIVE:cvox.AbstractHost.State.INACTIVE)};cvox.AbstractHost.prototype.killChromeVox=function(){this.onStateChanged_(cvox.AbstractHost.State.KILLED)};
+cvox.AbstractHost.prototype.onStateChanged_=function(a){var b=a==cvox.AbstractHost.State.ACTIVE;if(b!=cvox.ChromeVox.isActive)switch(cvox.ChromeVoxEventWatcher.cleanup(window),a){case cvox.AbstractHost.State.ACTIVE:cvox.ChromeVox.isActive=!0;cvox.ChromeVox.navigationManager.showOrHideIndicator(!0);cvox.ChromeVoxEventWatcher.init(window);document.activeElement?(a=document.hasFocus()&&!document.webkitHidden,cvox.ApiImplementation.syncToNode(document.activeElement,a)):cvox.ChromeVox.navigationManager.updateIndicator();
+break;case cvox.AbstractHost.State.INACTIVE:cvox.ChromeVox.isActive=!1;cvox.ChromeVox.navigationManager.showOrHideIndicator(!1);cvox.ChromeVoxEventWatcher.init(window);break;case cvox.AbstractHost.State.KILLED:cvox.ChromeVox.isActive=!1,cvox.ChromeVox.navigationManager.showOrHideIndicator(!1)}};cvox.MathJaxInterface=function(){};cvox.MathJaxInterface.prototype.isMathjaxActive=function(){};cvox.MathJaxInterface.prototype.getAllJax=function(){};cvox.MathJaxInterface.prototype.registerSignal=function(){};cvox.MathJaxInterface.prototype.injectScripts=function(){};cvox.MathJaxInterface.prototype.configMediaWiki=function(){};cvox.MathJaxInterface.prototype.getTex=function(){};cvox.MathJaxInterface.prototype.getAsciiMath=function(){};cvox.AbstractMathJax=function(){};cvox.AbstractMathJax.prototype.getAllTexs=function(a){for(var b=document.querySelectorAll(cvox.DomUtil.altMathQuerySelector("tex")),c=0,d;d=b[c];c++)this.getTex(a,d)};cvox.AbstractMathJax.prototype.getAllAsciiMaths=function(a){for(var b=document.querySelectorAll(cvox.DomUtil.altMathQuerySelector("asciimath")),c=0,d;d=b[c];c++)this.getAsciiMath(a,d)};
+cvox.AbstractMathJax.prototype.convertMarkupToDom=function(a,b,c){if(b){var d=new DOMParser;b=b.replace(/>\s+</g,"><");a(d.parseFromString(b,"text/xml").firstChild,c)}};cvox.AbstractMsgs=function(){};cvox.AbstractMsgs.prototype.getMsg=function(){};cvox.AbstractMsgs.prototype.getNumber=function(){};cvox.HostFactory=function(){};cvox.HostFactory.getHost=function(){return new cvox.HostFactory.hostConstructor};cvox.HostFactory.getTts=function(){return new cvox.HostFactory.ttsConstructor};cvox.HostFactory.getBraille=function(){return new cvox.HostFactory.brailleConstructor};cvox.HostFactory.getMsgs=function(){return new cvox.HostFactory.msgsConstructor};cvox.HostFactory.getEarcons=function(){return new cvox.HostFactory.earconsConstructor};cvox.HostFactory.getMathJax=function(){return new cvox.HostFactory.mathJaxConstructor};cvox.SpokenMessage=function(){this.raw=this.id=this.count=null};cvox.SpokenMessages={};cvox.SpokenMessages.messages=[];cvox.SpokenMessages.speakFlush=function(){cvox.SpokenMessages.speak(cvox.AbstractTts.QUEUE_MODE_FLUSH)};cvox.SpokenMessages.speakQueued=function(){cvox.SpokenMessages.speak(cvox.AbstractTts.QUEUE_MODE_QUEUE)};
+cvox.SpokenMessages.speak=function(a){for(var b=0;b<cvox.SpokenMessages.messages.length;++b){var c=cvox.SpokenMessages.messages[b];if(!c||!c.id&&!c.raw)throw"Invalid message received.";var d="";if(null!=c.count)if(0>=c.count)try{d+=cvox.ChromeVox.msgs.getMsg(c.id[0]+"_optional_default")}catch(e){continue}else d=1==c.count?d+cvox.ChromeVox.msgs.getMsg(c.id[0]+"_singular"):d+cvox.ChromeVox.msgs.getMsg(c.id[0]+"_plural",[c.count]);else d=c.raw?d+c.raw:d+cvox.ChromeVox.msgs.getMsg.apply(cvox.ChromeVox.msgs,
+c.id);cvox.ChromeVox.tts.speak(d,a,cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT);a=cvox.AbstractTts.QUEUE_MODE_QUEUE}cvox.SpokenMessages.messages=[]};cvox.SpokenMessages.currentMessage=function(){if(0==cvox.SpokenMessages.messages.length)throw"Invalid usage of SpokenMessages; start the chain using $m()";return cvox.SpokenMessages.messages[cvox.SpokenMessages.messages.length-1]};cvox.SpokenMessages.withCount=function(a){cvox.SpokenMessages.currentMessage().count=a;return cvox.SpokenMessages};
+cvox.SpokenMessages.andIndexTotal=function(a,b){var c=new cvox.SpokenMessage;c.raw=cvox.ChromeVox.msgs.getMsg("index_total",[a,b]);cvox.SpokenMessages.messages.push(c);return cvox.SpokenMessages};cvox.SpokenMessages.andEnd=function(){return cvox.SpokenMessages.andMessage("end")};cvox.SpokenMessages.andMessage=function(a){var b=new cvox.SpokenMessage;b.id="string"==typeof a?[a]:a;cvox.SpokenMessages.messages.push(b);return cvox.SpokenMessages};
+cvox.SpokenMessages.andRawMessage=function(a){var b=new cvox.SpokenMessage;b.raw=a;cvox.SpokenMessages.messages.push(b);return cvox.SpokenMessages};cvox.SpokenMessages.andPause=function(){return cvox.SpokenMessages.andMessage("pause")};cvox.$m=cvox.SpokenMessages.andMessage;cvox.CompositeTts=function(){this.ttsEngines_=[]};cvox.CompositeTts.prototype.add=function(a){this.ttsEngines_.push(a);return this};cvox.CompositeTts.prototype.speak=function(a,b,c){this.ttsEngines_.forEach(function(d){d.speak(a,b,c)})};cvox.CompositeTts.prototype.isSpeaking=function(){return this.ttsEngines_.some(function(a){return a.isSpeaking()})};cvox.CompositeTts.prototype.stop=function(){this.ttsEngines_.forEach(function(a){a.stop()})};
+cvox.CompositeTts.prototype.increaseOrDecreaseProperty=function(a,b){this.ttsEngines_.forEach(function(c){c.increaseOrDecreaseProperty(a,b)})};cvox.CompositeTts.prototype.getDefaultProperty=function(a){for(var b=0,c;c=this.ttsEngines_[b];b++)if(c=c.getDefaultProperty(a))return c};cvox.BuildInfo={};cvox.BuildInfo.build="1384906195.369502";cvox.ChromeVoxJSON||(cvox.ChromeVoxJSON={});
+window.JSON&&"[object JSON]"==window.JSON.toString()?cvox.ChromeVoxJSON=window.JSON:function(){function a(a){return 10>a?"0"+a:a}function b(a){e.lastIndex=0;return e.test(a)?'"'+a.replace(e,function(a){var b=h[a];return"string"===typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function c(a,d){var e,h,n,s,u=f,t,r=d[a];r&&"object"===typeof r&&"function"===typeof r.toJSON&&(r=r.toJSON(a));"function"===typeof k&&(r=k.call(d,a,r));switch(typeof r){case "string":return b(r);
+case "number":return isFinite(r)?String(r):"null";case "boolean":case "null":return String(r);case "object":if(!r)return"null";f+=g;t=[];if("[object Array]"===Object.prototype.toString.apply(r)){s=r.length;for(e=0;e<s;e+=1)t[e]=c(e,r)||"null";n=0===t.length?"[]":f?"[\n"+f+t.join(",\n"+f)+"\n"+u+"]":"["+t.join(",")+"]";f=u;return n}if(k&&"object"===typeof k)for(s=k.length,e=0;e<s;e+=1)h=k[e],"string"===typeof h&&(n=c(h,r))&&t.push(b(h)+(f?": ":":")+n);else for(h in r)Object.hasOwnProperty.call(r,h)&&
+(n=c(h,r))&&t.push(b(h)+(f?": ":":")+n);n=0===t.length?"{}":f?"{\n"+f+t.join(",\n"+f)+"\n"+u+"}":"{"+t.join(",")+"}";f=u;return n}}"function"!==typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+a(this.getUTCMonth()+1)+"-"+a(this.getUTCDate())+"T"+a(this.getUTCHours())+":"+a(this.getUTCMinutes())+":"+a(this.getUTCSeconds())+"Z":"null"},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()});
+var d=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof cvox.ChromeVoxJSON.stringify&&(cvox.ChromeVoxJSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&&
+(g=d);if((k=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})});"function"!==typeof cvox.ChromeVoxJSON.parse&&(cvox.ChromeVoxJSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=String(a);d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));
+if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})}();"undefined"!=typeof goog&&goog.provide&&(cvox.ApiUtil={});window.cvox||(window.cvox={});cvox.ApiUtils=function(){};cvox.ApiUtils.nextCvoxId_=1;
+cvox.ApiUtils.makeNodeReference=function(a){if(a.id&&document.getElementById(a.id)==a)return{id:a.id};if(a instanceof HTMLElement){var b=cvox.ApiUtils.nextCvoxId_;a.setAttribute("cvoxid",b);cvox.ApiUtils.nextCvoxId_=(cvox.ApiUtils.nextCvoxId_+1)%100;return{cvoxid:b}}if(a.parentElement){for(var c=a.parentElement,d=-1,b=0;b<c.childNodes.length;b++)if(c.childNodes[b]==a){d=b;break}if(0<=d)return b=cvox.ApiUtils.nextCvoxId_,c.setAttribute("cvoxid",b),cvox.ApiUtils.nextCvoxId_=(cvox.ApiUtils.nextCvoxId_+
+1)%100,{cvoxid:b,childIndex:d}}throw"Cannot reference node: "+a;};cvox.ApiUtils.getNodeFromRef=function(a){if(a.id)return document.getElementById(a.id);if(a.cvoxid){var b='*[cvoxid="'+a.cvoxid+'"]';(b=document.querySelector(b))&&b.removeAttribute&&b.removeAttribute("cvoxid");return null!=a.childIndex?b.childNodes[a.childIndex]:b}throw"Bad node reference: "+cvox.ChromeVoxJSON.stringify(a);};cvox.ScriptInstaller={};
+cvox.ScriptInstaller.installScript=function(a,b,c,d){if(document.querySelector("script["+b+"]")||!a)return!1;for(var e=0,f;f=a[e];e++){var g=new XMLHttpRequest,h=f+"?"+(new Date).getTime();g.onreadystatechange=function(){if(4==g.readyState){var a=g.responseText,a=a+("\n//# sourceURL="+f+"\n"),c=document.createElement("script");c.type="text/javascript";c.setAttribute(b,"1");c.textContent=a;d&&c.setAttribute("chromevoxScriptBase",d);cvox.DomUtil.addNodeToHead(c)}};try{g.open("GET",h,!1),g.send(null)}catch(k){return window.console.log("Warning: ChromeVox external script loading for "+
+document.location+" stopped after failing to install "+f),!1}}c&&c();return!0};cvox.ApiImplementation=function(){};cvox.ApiImplementation.init=function(a){window.addEventListener("message",cvox.ApiImplementation.portSetup,!0);var b=[];b.push(cvox.ChromeVox.host.getFileSrc("chromevox/injected/api_util.js"));b.push(cvox.ChromeVox.host.getApiSrc());b.push(cvox.ApiImplementation.siteSpecificScriptLoader);a=cvox.ScriptInstaller.installScript(b,"cvoxapi",a,cvox.ApiImplementation.siteSpecificScriptBase);a||(window.location.href="javascript:cvox.Api.internalEnable();")};
+cvox.ApiImplementation.portSetup=function(a){return"cvox.PortSetup"==a.data?(cvox.ApiImplementation.port=a.ports[0],cvox.ApiImplementation.port.onmessage=function(a){cvox.ApiImplementation.dispatchApiMessage(cvox.ChromeVoxJSON.parse(a.data))},a.stopPropagation(),!1):!0};
+cvox.ApiImplementation.dispatchApiMessage=function(a){var b;switch(a.cmd){case "speak":b=cvox.ApiImplementation.speak;break;case "speakNodeRef":b=cvox.ApiImplementation.speakNodeRef;break;case "stop":b=cvox.ApiImplementation.stop;break;case "playEarcon":b=cvox.ApiImplementation.playEarcon;break;case "syncToNodeRef":b=cvox.ApiImplementation.syncToNodeRef;break;case "clickNodeRef":b=cvox.ApiImplementation.clickNodeRef;break;case "getBuild":b=cvox.ApiImplementation.getBuild;break;case "getVersion":b=
+cvox.ApiImplementation.getVersion;break;case "getCurrentNode":b=cvox.ApiImplementation.getCurrentNode;break;case "getCvoxModKeys":b=cvox.ApiImplementation.getCvoxModKeys;break;case "isKeyShortcut":b=cvox.ApiImplementation.isKeyShortcut;break;case "setKeyEcho":b=cvox.ApiImplementation.setKeyEcho;break;case "Math.defineRule":b=cvox.ApiImplementation.Math.defineRule}if(!b)throw"Unknown API call: "+a.cmd;b.apply(cvox.ApiImplementation,a.args)};
+function setupEndCallback_(a,b){var c=function(){cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:b}))};a&&(a.endCallback=c)}cvox.ApiImplementation.speak=function(a,b,c,d){cvox.ChromeVox.isActive&&(d||(d={}),setupEndCallback_(d,a),cvox.ChromeVox.tts.speak(b,c,d))};cvox.ApiImplementation.speakNode=function(a,b,c){cvox.ChromeVox.isActive&&cvox.ChromeVox.tts.speak(cvox.DomUtil.getName(a),b,c)};
+cvox.ApiImplementation.speakNodeRef=function(a,b,c,d){b=cvox.ApiUtils.getNodeFromRef(b);d||(d={});setupEndCallback_(d,a);cvox.ApiImplementation.speakNode(b,c,d)};cvox.ApiImplementation.stop=function(){cvox.ChromeVox.isActive&&cvox.ChromeVox.tts.stop()};cvox.ApiImplementation.playEarcon=function(a){cvox.ChromeVox.isActive&&cvox.ChromeVox.earcons.playEarconByName(a)};cvox.ApiImplementation.syncToNodeRef=function(a,b){var c=cvox.ApiUtils.getNodeFromRef(a);cvox.ApiImplementation.syncToNode(c,b)};
+cvox.ApiImplementation.syncToNode=function(a,b,c){cvox.ChromeVox.isActive&&(void 0==c&&(c=cvox.AbstractTts.QUEUE_MODE_FLUSH),cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(a,!0),cvox.ChromeVox.navigationManager.updateIndicator(),void 0==b&&(b=!1),cvox.AriaUtil.isHiddenRecursive(a)&&(b=!1),b&&cvox.ChromeVox.navigationManager.speakDescriptionArray(cvox.ApiImplementation.getDesc_(a),c,null),cvox.ChromeVox.navigationManager.getBraille().write(),cvox.ChromeVox.navigationManager.updatePosition(a))};
+cvox.ApiImplementation.getCurrentNode=function(a){var b=cvox.ChromeVox.navigationManager.getCurrentNode();cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,currentNode:cvox.ApiUtils.makeNodeReference(b)}))};
+cvox.ApiImplementation.getDesc_=function(a){if(!a.hasAttribute("cvoxnodedesc"))return cvox.ChromeVox.navigationManager.getDescription();a=cvox.ChromeVoxJSON.parse(a.getAttribute("cvoxnodedesc"));for(var b=[],c=0;c<a.length;++c){var d=a[c];b.push(new cvox.NavDescription({context:d.context,text:d.text,userValue:d.userValue,annotation:d.annotation}))}return b};cvox.ApiImplementation.clickNodeRef=function(a,b){cvox.DomUtil.clickElem(cvox.ApiUtils.getNodeFromRef(a),b,!1)};
+cvox.ApiImplementation.getBuild=function(a){cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,build:cvox.BuildInfo.build}))};cvox.ApiImplementation.getVersion=function(a){var b=cvox.ChromeVox.version;null==b?window.setTimeout(function(){cvox.ApiImplementation.getVersion(a)},1E3):cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,version:b}))};
+cvox.ApiImplementation.getCvoxModKeys=function(a){cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,keyCodes:cvox.KeyUtil.cvoxModKeyCodes()}))};cvox.ApiImplementation.isKeyShortcut=function(a,b){var c=cvox.KeyUtil.keyEventToKeySequence(b);cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,isHandled:cvox.ChromeVoxKbHandler.handlerKeyMap.hasKey(c)}))};
+cvox.ApiImplementation.setKeyEcho=function(a){var b=cvox.ChromeVox.keyEcho;b[document.location.href]=a;JSON.stringify(b)};cvox.ApiImplementation.Math=function(){};cvox.ApiImplementation.Math.defineRule=function(a,b,c,d,e){var f=cvox.MathmlStore.getInstance(),g=Array.prototype.slice.call(arguments,4),g=[a,b,c,d].concat(g);f.defineRule.apply(f,g)};cvox.ConsoleTts=function(){this.enabled_=!1};goog.addSingletonGetter(cvox.ConsoleTts);cvox.ConsoleTts.prototype.speak=function(a,b,c){if(this.enabled_&&window.console){var d="Speak",d=b==cvox.AbstractTts.QUEUE_MODE_FLUSH?d+" (I)":d+" (Q)",d=d+(' "'+a+'"');window.console.log(d);c&&void 0!=c.startCallback&&window.console.log(" using startCallback");c&&void 0!=c.endCallback&&window.console.log(" using endCallback")}return this};cvox.ConsoleTts.prototype.isSpeaking=function(){return!1};
+cvox.ConsoleTts.prototype.stop=function(){this.enabled_&&window.console.log("Stop")};cvox.ConsoleTts.prototype.increaseOrDecreaseProperty=function(){};cvox.ConsoleTts.prototype.setEnabled=function(a){this.enabled_=a};cvox.ConsoleTts.prototype.getDefaultProperty=function(){};cvox.ChromeVoxHTMLDateWidget=function(a,b){var c=this;this.pos_=0;var d=2;if("month"==a.type||"week"==a.type)d=1;this.maxPos_=d;this.dateElem_=a;this.dateTts_=b;this.pDay_=this.pWeek_=this.pMonth_=this.pYear_=-1;this.keyListener_=function(a){c.eventHandler_(a)};this.blurListener_=function(){c.shutdown()};0==this.dateElem_.value.length&&this.forceInitTime_();for(d=0;d<this.maxPos_;d++){var e=document.createEvent("KeyboardEvent");e.initKeyboardEvent("keydown",!0,!0,window,"Left",0,!1,!1,!1,!1);this.dateElem_.dispatchEvent(e);
+e=document.createEvent("KeyboardEvent");e.initKeyboardEvent("keyup",!0,!0,window,"Left",0,!1,!1,!1,!1);this.dateElem_.dispatchEvent(e)}this.dateElem_.addEventListener("keydown",this.keyListener_,!1);this.dateElem_.addEventListener("keyup",this.keyListener_,!1);this.dateElem_.addEventListener("blur",this.blurListener_,!1);this.update_(!0)};
+cvox.ChromeVoxHTMLDateWidget.prototype.shutdown=function(){this.dateElem_.removeEventListener("blur",this.blurListener_,!1);this.dateElem_.removeEventListener("keydown",this.keyListener_,!1);this.dateElem_.removeEventListener("keyup",this.keyListener_,!1)};
+cvox.ChromeVoxHTMLDateWidget.prototype.forceInitTime_=function(){var a=new Date,b="",b=a.getFullYear()+"",c=a.getMonth()+1+"";2>c.length&&(c="0"+c);var d=a.getDate()+"";switch(this.dateElem_.type){case "month":b=b+"-"+c;break;case "week":a.setHours(0,0,0);a.setDate(a.getDate()+4-(a.getDay()||7));c=new Date(a.getFullYear(),0,1);a=Math.ceil(((a-c)/864E5+1)/7)+"";2>a.length&&(a="0"+a);a="W"+a;b=b+"-"+a;break;default:b=b+"-"+c+"-"+d}this.dateElem_.setAttribute("value",b)};
+cvox.ChromeVoxHTMLDateWidget.prototype.handlePosChange_=function(){this.pos_=Math.max(this.pos_,0);this.pos_=Math.min(this.pos_,this.maxPos_);switch(this.pos_){case 0:"week"==this.dateElem_.type?this.pWeek_=-1:this.pMonth_=-1;break;case 1:"date"==this.dateElem_.type?this.pDay_=-1:this.pYear_=-1;break;case 2:this.pYear_=-1}};
+cvox.ChromeVoxHTMLDateWidget.prototype.update_=function(a){var b=this.dateElem_.value.split("-");if(1>b.length)this.forceInitTime_();else{var c=-1,d=-1,e=-1,f=-1,c=parseInt(b[0],10);"week"==this.dateElem_.type?e=parseInt(b[1].replace("W",""),10):"date"==this.dateElem_.type?(d=parseInt(b[1],10),f=parseInt(b[2],10)):d=parseInt(b[1],10);b="";a&&(b=cvox.DomUtil.getName(this.dateElem_,!0,!0)+"\n");e!=this.pWeek_&&(b=b+cvox.ChromeVox.msgs.getMsg("datewidget_week")+e+"\n",this.pWeek_=e);if(d!=this.pMonth_){a=
+"";switch(d){case 1:a=cvox.ChromeVox.msgs.getMsg("datewidget_january");break;case 2:a=cvox.ChromeVox.msgs.getMsg("datewidget_february");break;case 3:a=cvox.ChromeVox.msgs.getMsg("datewidget_march");break;case 4:a=cvox.ChromeVox.msgs.getMsg("datewidget_april");break;case 5:a=cvox.ChromeVox.msgs.getMsg("datewidget_may");break;case 6:a=cvox.ChromeVox.msgs.getMsg("datewidget_june");break;case 7:a=cvox.ChromeVox.msgs.getMsg("datewidget_july");break;case 8:a=cvox.ChromeVox.msgs.getMsg("datewidget_august");
+break;case 9:a=cvox.ChromeVox.msgs.getMsg("datewidget_september");break;case 10:a=cvox.ChromeVox.msgs.getMsg("datewidget_october");break;case 11:a=cvox.ChromeVox.msgs.getMsg("datewidget_november");break;case 12:a=cvox.ChromeVox.msgs.getMsg("datewidget_december")}b=b+a+"\n";this.pMonth_=d}f!=this.pDay_&&(b=b+f+"\n",this.pDay_=f);c!=this.pYear_&&(b=b+c+"\n",this.pYear_=c);0<b.length&&this.dateTts_.speak(b,0,null)}};
+cvox.ChromeVoxHTMLDateWidget.prototype.eventHandler_=function(a){var b=!1;if("keydown"==a.type){if(9==a.keyCode&&!a.shiftKey||39==a.keyCode)this.pos_++,this.handlePosChange_(),b=!0;if(9==a.keyCode&&a.shiftKey||37==a.keyCode)this.pos_--,this.handlePosChange_(),b=!0}this.update_(b)};cvox.BrailleTextHandler=function(a){this.braille_=a};cvox.BrailleTextHandler.prototype.changed=function(a,b,c,d){var e;d?(e=cvox.NavBraille.fromText(a),e.startIndex=b,e.endIndex=c):cvox.ChromeVox.navigationManager&&(e=cvox.ChromeVox.navigationManager.getBraille());e&&this.braille_.write(e)};cvox.ContentEditableExtractor=function(){this.text_="";this.end_=this.start_=0;this.lines_={};this.characterToLineMap_=[]};
+cvox.ContentEditableExtractor.prototype.update=function(a){for(var b={0:{startIndex:0,endIndex:0}},c=new cvox.Cursor(a,0,""),d=c.clone(),e=document.createRange(),f,g=0,h=null,k="",l=0,m=-1,p=-1,q=window.getSelection(),n=new cvox.Cursor(q.baseNode,q.baseOffset,""),q=new cvox.Cursor(q.extentNode,q.extentOffset,""),s=!1,u=!1;;){f=[];var t=[],r=cvox.TraverseUtil.forwardsChar(d,f,t),v=!1;r||(v=!0);for(f=0;f<t.length&&!v;f++)t[f]==a&&(v=!0);if(v)break;e.setStart(c.node,c.index);e.setEnd(d.node,d.index);
+if((f=e.getBoundingClientRect())&&0!=f.width&&0!=f.height){null!==h&&f.bottom!=h&&0<l&&k.substr(-1).match(/\S/)&&r.match(/\S/)&&(k+="\n",l++);if(c.node!=d.node&&0<d.index&&(e.setStart(d.node,d.index-1),f=e.getBoundingClientRect(),!f||0==f.width||0==f.height))continue;!s&&-1==m&&d.node==n.node&&d.index>=n.index&&(d.index>n.index?m=l:s=!0);!u&&-1==p&&d.node==q.node&&d.index>=q.index&&(d.index>q.index?p=l:u=!0);null===h?h=f.bottom:f.bottom!=h&&(b[g].endIndex=l,g++,b[g]={startIndex:l,endIndex:l},h=f.bottom);
+k+=r;l++;c=d.clone();s&&(m=l,s=!1);u&&(p=l,u=!1)}}b[g].endIndex=l;a=[];for(f=0;f<=g;f++)for(c=b[f].startIndex;c<=b[f].endIndex;c++)a[c]=f;this.text_=k;this.characterToLineMap_=a;this.lines_=b;this.start_=0<=m?m:k.length;this.end_=0<=p?p:k.length};cvox.ContentEditableExtractor.prototype.getText=function(){return this.text_};cvox.ContentEditableExtractor.prototype.getStartIndex=function(){return this.start_};cvox.ContentEditableExtractor.prototype.getEndIndex=function(){return this.end_};
+cvox.ContentEditableExtractor.prototype.getLineIndex=function(a){return this.characterToLineMap_[a]};cvox.ContentEditableExtractor.prototype.getLineStart=function(a){return this.lines_[a].startIndex};cvox.ContentEditableExtractor.prototype.getLineEnd=function(a){return this.lines_[a].endIndex};cvox.EditableTextAreaShadow=function(){this.shadowElement_=document.createElement("div");this.lines_={};this.characterToLineMap_=[]};
+cvox.EditableTextAreaShadow.prototype.update=function(a){for(document.body.appendChild(this.shadowElement_);this.shadowElement_.childNodes.length;)this.shadowElement_.removeChild(this.shadowElement_.childNodes[0]);this.shadowElement_.style.cssText=window.getComputedStyle(a,null).cssText;this.shadowElement_.style.position="absolute";this.shadowElement_.style.top=-9999;this.shadowElement_.style.left=-9999;this.shadowElement_.setAttribute("aria-hidden","true");var b=a.value,c=document.createTextNode(b+
+".");this.shadowElement_.appendChild(c);a={0:{startIndex:0,endIndex:0}};for(var d=document.createRange(),e=0,f=0,g=0,h=null,k=!1,l;e<=b.length;){d.setStart(c,e);if(e+8>b.length||0<=b.substr(e,8).indexOf("\n"))k=!0;k?(e++,d.setEnd(c,e),l=d.getBoundingClientRect()):(d.setEnd(c,e+8),l=d.getBoundingClientRect(),l.bottom==h?e+=8:(l&&null!==h&&(k=!0),e++,d.setEnd(c,e),l=d.getBoundingClientRect()));0<e&&"\n"==b[e-1]?(a[g].endIndex=e-1,g++,a[g]={startIndex:e,endIndex:e},h=null,k=!1,f=e):l&&null===h?h=l.bottom:
+l&&l.bottom!=h&&(a[g].endIndex=f,g++,a[g]={startIndex:f,endIndex:f},h=l?l.bottom:null,k=!1);l&&(f=e)}a[g].endIndex=b.length;b=[];for(c=0;c<=g;c++)for(d=a[c].startIndex;d<=a[c].endIndex;d++)b[d]=c;this.characterToLineMap_=b;this.lines_=a;document.body.removeChild(this.shadowElement_)};cvox.EditableTextAreaShadow.prototype.getLineIndex=function(a){return this.characterToLineMap_[a]};cvox.EditableTextAreaShadow.prototype.getLineStart=function(a){return this.lines_[a].startIndex};
+cvox.EditableTextAreaShadow.prototype.getLineEnd=function(a){return this.lines_[a].endIndex};cvox.TextChangeEvent=function(a,b,c,d){this.value=a;this.start=b;this.end=c;this.triggeredByUser=d;this.start>this.end&&(a=this.end,this.end=this.start,this.start=a)};cvox.TypingEcho={CHARACTER:0,WORD:1,CHARACTER_AND_WORD:2,NONE:3,COUNT:4};cvox.TypingEcho.cycle=function(a){return(a+1)%cvox.TypingEcho.COUNT};cvox.TypingEcho.shouldSpeakChar=function(a){return a==cvox.TypingEcho.CHARACTER_AND_WORD||a==cvox.TypingEcho.CHARACTER};cvox.TextHandlerInterface=function(){};
+cvox.TextHandlerInterface.prototype.changed=function(){};cvox.ChromeVoxEditableTextBase=function(a,b,c,d,e){this.value=a;this.start=b;this.end=c;this.isPassword=d;this.tts=e;this.multiline=!1;this.brailleHandler_=cvox.ChromeVox.braille?new cvox.BrailleTextHandler(cvox.ChromeVox.braille):void 0};cvox.ChromeVoxEditableTextBase.useIBeamCursor=cvox.ChromeVox.isMac;cvox.ChromeVoxEditableTextBase.eventTypingEcho=!1;cvox.ChromeVoxEditableTextBase.prototype.maxShortPhraseLen=60;
+cvox.ChromeVoxEditableTextBase.prototype.isPassword=!1;cvox.ChromeVoxEditableTextBase.prototype.lastChangeDescribed=!1;cvox.ChromeVoxEditableTextBase.prototype.getValue=function(){var a="";if(this.multiline){if(a+="multiline editable text. ",this.start==this.end)var b=this.getLine(this.getLineIndex(this.start)),a=b?a+b:a+"blank"}else a=this.node?a+cvox.DomUtil.getValue(this.node):a+this.value,a=a<=this.maxShortPhraseLen?a+", editable text":a.substring(0,this.maxShortPhraseLen)+", editable text";return a};
+cvox.ChromeVoxEditableTextBase.prototype.getLineIndex=function(){return 0};cvox.ChromeVoxEditableTextBase.prototype.getLineStart=function(){return 0};cvox.ChromeVoxEditableTextBase.prototype.getLineEnd=function(){return this.value.length};cvox.ChromeVoxEditableTextBase.prototype.getLine=function(a){var b=this.getLineStart(a);a=this.getLineEnd(a);b=this.value.substr(b,a-b);return b.replace(/^\s+|\s+$/g,"")};cvox.ChromeVoxEditableTextBase.prototype.isWordBreakChar=function(a){return!!a.match(/^\W$/)};
+cvox.ChromeVoxEditableTextBase.prototype.isLastChar=function(a){return void 0==this.getLineIndex(a.start+1)};cvox.ChromeVoxEditableTextBase.prototype.speak=function(a,b,c){if(!this.node||document.activeElement==this.node){var d=cvox.AbstractTts.QUEUE_MODE_QUEUE;!0===b&&(d=cvox.AbstractTts.QUEUE_MODE_FLUSH);this.tts.speak(a,d,c||{})}};
+cvox.ChromeVoxEditableTextBase.prototype.changed=function(a){if(a.value!=this.value||a.start!=this.start||a.end!=this.end||this.isLastChar(a)){if(a.value==this.value?this.describeSelectionChanged(a):this.describeTextChanged(a),this.lastChangeDescribed=!0,this.value=a.value,this.start=a.start,this.end=a.end,this.brailleHandler_){var b=this.getLine(this.getLineIndex(a.start)),c=this.getLineStart(this.getLineIndex(a.start)),d=a.start-c;a=a.end-c;this.brailleHandler_.changed(b,d,a,this.multiline)}}else this.lastChangeDescribed=
+!1};
+cvox.ChromeVoxEditableTextBase.prototype.describeSelectionChanged=function(a){if(this.isPassword)this.speak((new goog.i18n.MessageFormat(cvox.ChromeVox.msgs.getMsg("dot"))).format({COUNT:1}),a.triggeredByUser);else if(a.start==a.end)if(this.start!=this.end)this.speak(cvox.ChromeVox.msgs.getMsg("Unselected"),a.triggeredByUser);else if(this.getLineIndex(this.start)!=this.getLineIndex(a.start)){var b=this.getLine(this.getLineIndex(a.start));""==b&&(b=cvox.ChromeVox.msgs.getMsg("text_box_blank"));this.speak(b,
+a.triggeredByUser)}else this.start==a.start+1||this.start==a.start-1?cvox.ChromeVoxEditableTextBase.useIBeamCursor?this.speak(this.value.substr(Math.min(this.start,a.start),1),a.triggeredByUser,{phoneticCharacters:a.triggeredByUser}):a.start==this.value.length?this.speak(cvox.ChromeVox.msgs.getMsg("end"),a.triggeredByUser):this.speak(this.value.substr(a.start,1),a.triggeredByUser,{phoneticCharacters:a.triggeredByUser}):this.speak(this.value.substr(Math.min(this.start,a.start),Math.abs(this.start-
+a.start)),a.triggeredByUser);else this.start+1==a.start&&this.end==this.value.length&&a.end==this.value.length?(this.speak(this.value.substr(this.start,1),a.triggeredByUser),this.speak(this.value.substr(a.start))):this.start==this.end?(this.speak(this.value.substr(a.start,a.end-a.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("selected"))):this.start==a.start&&this.end<a.end?(this.speak(this.value.substr(this.end,a.end-this.end),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("added_to_selection"))):
+this.start==a.start&&this.end>a.end?(this.speak(this.value.substr(a.end,this.end-a.end),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("removed_from_selection"))):this.end==a.end&&this.start>a.start?(this.speak(this.value.substr(a.start,this.start-a.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("added_to_selection"))):this.end==a.end&&this.start<a.start?(this.speak(this.value.substr(this.start,a.start-this.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("removed_from_selection"))):
+(this.speak(this.value.substr(a.start,a.end-a.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("selected")))};
+cvox.ChromeVoxEditableTextBase.prototype.describeTextChanged=function(a){var b={};a.value.length<this.value.length&&(b=cvox.AbstractTts.PERSONALITY_DELETED);if(this.isPassword)this.speak((new goog.i18n.MessageFormat(cvox.ChromeVox.msgs.getMsg("dot"))).format({COUNT:1}),a.triggeredByUser,b);else{var c=this.value,d=c.length,e=a.value.length,f="",g=a.value,h=a.end;a.start<h&&h==e&&(f=g.substr(a.start),g=g.substr(0,a.start),h=a.start);var k=this.start,l=d-this.end;if(e>=k+l+(h-a.start)&&g.substr(0,k)==
+c.substr(0,k)&&g.substr(e-l)==c.substr(this.end))this instanceof cvox.ChromeVoxEditableContentEditable&&!(e<d||this.isWordBreakChar(a.value[e-1]||""))||this.describeTextChangedHelper(a,k,l,f,b);else if(k=a.start,l=e-h,this.start==this.end&&a.start==h&&g.substr(0,k)==c.substr(0,k)&&g.substr(e-l)==c.substr(d-l))this.describeTextChangedHelper(a,k,l,f,b);else{g+=f;if(g.length==c.length+1||g.length+1==c.length){if(g.length>c.length){if(0==g.indexOf(c)){this.speak(g[g.length-1],a.triggeredByUser,b);return}if(1==
+g.indexOf(c)){this.speak(g[0],a.triggeredByUser,b);return}}if(g.length<c.length){if(0==c.indexOf(g)){this.speak(c[c.length-1],a.triggeredByUser,b);return}if(1==c.indexOf(g)){this.speak(c[0],a.triggeredByUser,b);return}}}if(this.multiline)a.value.length<this.value.length&&this.speak(cvox.ChromeVox.msgs.getMsg("text_deleted"),a.triggeredByUser,b);else if(e<=this.maxShortPhraseLen)this.describeTextChangedHelper(a,0,0,"",b);else{for(k=0;k<d&&k<e&&c[k]==g[k];)k++;for(;0<k&&!this.isWordBreakChar(c[k-1]);)k--;
+for(l=0;l<d-k&&l<e-k&&c[d-l-1]==g[e-l-1];)l++;for(;0<l&&!this.isWordBreakChar(c[d-l]);)l--;this.describeTextChangedHelper(a,k,l,"",b)}}}};
+cvox.ChromeVoxEditableTextBase.prototype.describeTextChangedHelper=function(a,b,c,d,e){var f=this.value.length,g=a.value.length,f=f-b-c,h=this.value.substr(b,f),k=g-b-c;c=a.value.substr(b,k);var l="",g=a.triggeredByUser;if(1<k)l=c;else if(1==k)if((cvox.ChromeVox.typingEcho==cvox.TypingEcho.WORD||cvox.ChromeVox.typingEcho==cvox.TypingEcho.CHARACTER_AND_WORD)&&this.isWordBreakChar(c)&&0<b&&!this.isWordBreakChar(a.value.substr(b-1,1))){for(f=b;0<f&&!this.isWordBreakChar(a.value[f-1]);)f--;f<b?l=a.value.substr(f,
+b+1-f):(l=c,g=!1)}else{if(cvox.ChromeVox.typingEcho==cvox.TypingEcho.CHARACTER||cvox.ChromeVox.typingEcho==cvox.TypingEcho.CHARACTER_AND_WORD)l=cvox.ChromeVoxEditableTextBase.eventTypingEcho?"":c}else 1<f&&!d?l=h+", deleted":1==f&&(l=h);d&&l?l+=", "+d:d&&(l=d);l&&this.speak(l,g,e)};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextCharacter=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousCharacter=function(){return!1};
+cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextWord=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousWord=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextLine=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousLine=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextParagraph=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousParagraph=function(){return!1};
+cvox.ChromeVoxEditableElement=function(a,b,c,d,e,f){cvox.ChromeVoxEditableTextBase.call(this,b,c,d,e,f);this.node=a;this.justSpokeDescription_=!1};goog.inherits(cvox.ChromeVoxEditableElement,cvox.ChromeVoxEditableTextBase);cvox.ChromeVoxEditableElement.prototype.changed=function(a){this.justSpokeDescription_&&this.value==a.value&&(this.value=a.value,this.start=a.start,this.end=a.end,this.justSpokeDescription_=!1);cvox.ChromeVoxEditableElement.superClass_.changed.call(this,a)};
+cvox.ChromeVoxEditableElement.prototype.getValue=function(){this.justSpokeDescription_=!0;return cvox.ChromeVoxEditableElement.superClass_.getValue.call(this)};cvox.ChromeVoxEditableElement.prototype.moveCursorToNextCharacter=function(){var a=this.node;a.selectionEnd++;a.selectionStart=a.selectionEnd;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableElement.prototype.moveCursorToPreviousCharacter=function(){var a=this.node;a.selectionStart--;a.selectionEnd=a.selectionStart;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableElement.prototype.moveCursorToNextWord=function(){var a=this.node,b=a.value.length,c=/\W+/gm,d=a.value.substring(a.selectionEnd),e=c.exec(d);null!==e&&0==e.index&&(e=c.exec(d));b=null===e?b:e.index+a.selectionEnd;a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableElement.prototype.moveCursorToPreviousWord=function(){for(var a=this.node,b=/\W+/gm,c=a.value.substring(0,a.selectionStart),d=0;null!==b.exec(c);)b.lastIndex<a.selectionStart&&(d=b.lastIndex);a.selectionStart=a.selectionEnd=d;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableElement.prototype.moveCursorToNextParagraph=function(){var a=this.node,b=a.value.length,c=a.selectionEnd>=b?b:a.value.indexOf("\n",a.selectionEnd);0>c&&(c=b);a.selectionStart=a.selectionEnd=c+1;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableElement.prototype.moveCursorToPreviousParagraph=function(){var a=this.node,b=0>=a.selectionStart?0:a.value.lastIndexOf("\n",a.selectionStart-2)+1;0>b&&(b=0);a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEditableHTMLInput=function(a,b){cvox.ChromeVoxEditableElement.call(this,a,a.value,a.selectionStart,a.selectionEnd,"password"===a.type,b)};goog.inherits(cvox.ChromeVoxEditableHTMLInput,cvox.ChromeVoxEditableElement);
+cvox.ChromeVoxEditableHTMLInput.prototype.update=function(a){var b=this.node.value;a=new cvox.TextChangeEvent(b,this.node.selectionStart,this.node.selectionEnd,a);this.changed(a)};cvox.ChromeVoxEditableTextArea=function(a,b){cvox.ChromeVoxEditableElement.call(this,a,a.value,a.selectionStart,a.selectionEnd,!1,b);this.multiline=!0;this.shadowIsCurrent_=!1};goog.inherits(cvox.ChromeVoxEditableTextArea,cvox.ChromeVoxEditableElement);
+cvox.ChromeVoxEditableTextArea.prototype.update=function(a){this.node.value!=this.value&&(this.shadowIsCurrent_=!1);a=new cvox.TextChangeEvent(this.node.value,this.node.selectionStart,this.node.selectionEnd,a);this.changed(a)};cvox.ChromeVoxEditableTextArea.prototype.getLineIndex=function(a){return this.getShadow().getLineIndex(a)};cvox.ChromeVoxEditableTextArea.prototype.getLineStart=function(a){return this.getShadow().getLineStart(a)};cvox.ChromeVoxEditableTextArea.prototype.getLineEnd=function(a){return this.getShadow().getLineEnd(a)};
+cvox.ChromeVoxEditableTextArea.prototype.getShadow=function(){var a=cvox.ChromeVoxEditableTextArea.shadow_;a||(a=cvox.ChromeVoxEditableTextArea.shadow_=new cvox.EditableTextAreaShadow);this.shadowIsCurrent_||(a.update(this.node),this.shadowIsCurrent_=!0);return a};
+cvox.ChromeVoxEditableTextArea.prototype.moveCursorToNextLine=function(){var a=this.node,b=a.value.length;if(a.selectionEnd>=b)return!1;var c=this.getShadow(),d=c.getLineIndex(a.selectionEnd),e=c.getLineStart(d),e=a.selectionEnd-e,f=0==b?0:c.getLineIndex(b-1),b=d>=f?b:Math.min(c.getLineStart(d+1)+e,c.getLineEnd(d+1));a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableTextArea.prototype.moveCursorToPreviousLine=function(){var a=this.node;if(0>=a.selectionStart)return!1;var b=this.getShadow(),c=b.getLineIndex(a.selectionStart),d=b.getLineStart(c),d=a.selectionStart-d,b=0>=c?0:Math.min(b.getLineStart(c-1)+d,b.getLineEnd(c-1));a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableContentEditable=function(a,b){cvox.ChromeVoxEditableElement.call(this,a,"",0,0,!1,b);this.extractorIsCurrent_=!1;var c=this.getExtractor();this.value=c.getText();this.start=c.getStartIndex();this.end=c.getEndIndex();this.multiline=!0};goog.inherits(cvox.ChromeVoxEditableContentEditable,cvox.ChromeVoxEditableElement);
+cvox.ChromeVoxEditableContentEditable.prototype.update=function(a){this.extractorIsCurrent_=!1;a=new cvox.TextChangeEvent(this.getExtractor().getText(),this.getExtractor().getStartIndex(),this.getExtractor().getEndIndex(),a);this.changed(a)};cvox.ChromeVoxEditableContentEditable.prototype.getLineIndex=function(a){return this.getExtractor().getLineIndex(a)};cvox.ChromeVoxEditableContentEditable.prototype.getLineStart=function(a){return this.getExtractor().getLineStart(a)};
+cvox.ChromeVoxEditableContentEditable.prototype.getLineEnd=function(a){return this.getExtractor().getLineEnd(a)};cvox.ChromeVoxEditableContentEditable.prototype.getExtractor=function(){var a=cvox.ChromeVoxEditableContentEditable.extractor_;a||(a=cvox.ChromeVoxEditableContentEditable.extractor_=new cvox.ContentEditableExtractor);this.extractorIsCurrent_||(a.update(this.node),this.extractorIsCurrent_=!0);return a};
+cvox.ChromeVoxEditableContentEditable.prototype.describeSelectionChanged=function(a){a.triggeredByUser&&(this.start==this.end&&a.start==a.end&&1!=Math.abs(this.start-a.start)&&this.isLastChar(a)?this.speak(cvox.ChromeVox.msgs.getMsg("text_box_blank"),!0):cvox.ChromeVoxEditableContentEditable.superClass_.describeSelectionChanged.call(this,a))};
+cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToNextCharacter=function(){window.getSelection().modify("move","forward","character");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToPreviousCharacter=function(){window.getSelection().modify("move","backward","character");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};
+cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToNextParagraph=function(){window.getSelection().modify("move","forward","paragraph");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToPreviousParagraph=function(){window.getSelection().modify("move","backward","paragraph");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEventSuspender=function(){};cvox.ChromeVoxEventSuspender.suspendLevel_=0;cvox.ChromeVoxEventSuspender.enterSuspendEvents=function(){cvox.ChromeVoxEventSuspender.suspendLevel_+=1};cvox.ChromeVoxEventSuspender.exitSuspendEvents=function(){cvox.ChromeVoxEventSuspender.suspendLevel_-=1};cvox.ChromeVoxEventSuspender.areEventsSuspended=function(){return 0<cvox.ChromeVoxEventSuspender.suspendLevel_};
+cvox.ChromeVoxEventSuspender.withSuspendedEvents=function(a){return function(){cvox.ChromeVoxEventSuspender.enterSuspendEvents();var b=a.apply(this,arguments);cvox.ChromeVoxEventSuspender.exitSuspendEvents();return b}};cvox.ChromeVoxEventSuspender.makeSuspendableHandler=function(a,b){return function(){return cvox.ChromeVoxEventSuspender.areEventsSuspended()?b:a()}};cvox.Focuser={};
+cvox.Focuser.setFocus=function(a,b){var c=window.getSelection(),d;0<c.rangeCount&&(d=c.getRangeAt(0));document.activeElement&&!cvox.DomUtil.isDescendantOfNode(a,document.activeElement)&&document.activeElement.blur();a&&a.constructor==HTMLVideoElement&&(cvox.DomUtil.isFocusable(a)||a.setAttribute("tabIndex",0));if(b&&!cvox.DomUtil.isFocusable(a)){var e=cvox.DomUtil.findFocusableDescendant(a);e&&(a=e)}else for(;a&&!cvox.DomUtil.isFocusable(a);)a=a.parentNode;cvox.DomUtil.isFocusable(a)?"IFRAME"!=a.tagName&&
+(cvox.ChromeVoxEventSuspender.areEventsSuspended()?(cvox.Focuser.shouldEnterSuspendEvents_(a)&&cvox.ChromeVoxEventSuspender.enterSuspendEvents(),window.setTimeout(function(){a.focus();cvox.ChromeVoxEventSuspender.exitSuspendEvents()},0)):window.setTimeout(function(){a.focus()},0)):document.activeElement&&"BODY"!=document.activeElement.tagName&&document.activeElement.blur();cvox.DomUtil.isInputTypeText(a)?a.select():d&&(c.removeAllRanges(),c.addRange(d))};
+cvox.Focuser.shouldEnterSuspendEvents_=function(a){if(a.constructor&&a.constructor==HTMLVideoElement)return!1;if(a.hasAttribute)switch(a.getAttribute("type")){case "time":case "date":case "week":case "month":return!1}return!0};cvox.ChromeVoxHTMLMediaWidget=function(a){var b=this;this.mediaElem_=a;this.keyListener_=function(a){b.eventHandler_(a)};this.blurListener_=function(){b.shutdown()};this.mediaElem_.addEventListener("keydown",this.keyListener_,!1);this.mediaElem_.addEventListener("keyup",this.keyListener_,!1);this.mediaElem_.addEventListener("blur",this.blurListener_,!1)};
+cvox.ChromeVoxHTMLMediaWidget.prototype.shutdown=function(){this.mediaElem_.removeEventListener("blur",this.blurListener_,!1);this.mediaElem_.removeEventListener("keydown",this.keyListener_,!1);this.mediaElem_.removeEventListener("keyup",this.keyListener_,!1)};cvox.ChromeVoxHTMLMediaWidget.prototype.jumpToTime_=function(a){0>a&&(a=0);a>this.mediaElem_.duration&&(a=this.mediaElem_.duration);this.mediaElem_.currentTime=a};
+cvox.ChromeVoxHTMLMediaWidget.prototype.setVolume_=function(a){0>a&&(a=0);1<a&&(a=1);this.mediaElem_.volume=a};
+cvox.ChromeVoxHTMLMediaWidget.prototype.eventHandler_=function(a){"keydown"==a.type&&(13==a.keyCode||32==a.keyCode?this.mediaElem_.paused?this.mediaElem_.play():this.mediaElem_.pause():39==a.keyCode?this.jumpToTime_(this.mediaElem_.currentTime+this.mediaElem_.duration/10):37==a.keyCode?this.jumpToTime_(this.mediaElem_.currentTime-this.mediaElem_.duration/10):38==a.keyCode?this.setVolume_(this.mediaElem_.volume+0.1):40==a.keyCode&&this.setVolume_(this.mediaElem_.volume-0.1))};cvox.ChromeVoxHTMLTimeWidget=function(a,b){var c=this;this.timeElem_=a;this.timeTts_=b;this.pMinutes_=this.pHours_=-1;this.pMilliseconds_=this.pSeconds_=0;this.pAmpm_="";this.pos_=0;this.maxPos_=2;this.keyListener_=function(a){c.eventHandler_(a)};this.blurListener_=function(){c.shutdown()};if(this.timeElem_.hasAttribute("step")){var d=this.timeElem_.getAttribute("step");0<d&&(this.maxPos_=1<=d?3:4)}0==this.timeElem_.value.length&&this.forceInitTime_();for(d=0;d<this.maxPos_;d++){var e=document.createEvent("KeyboardEvent");
+e.initKeyboardEvent("keydown",!0,!0,window,"Left",0,!1,!1,!1,!1);this.timeElem_.dispatchEvent(e);e=document.createEvent("KeyboardEvent");e.initKeyboardEvent("keyup",!0,!0,window,"Left",0,!1,!1,!1,!1);this.timeElem_.dispatchEvent(e)}this.timeElem_.addEventListener("keydown",this.keyListener_,!1);this.timeElem_.addEventListener("keyup",this.keyListener_,!1);this.timeElem_.addEventListener("blur",this.blurListener_,!1);this.update_(!0)};
+cvox.ChromeVoxHTMLTimeWidget.prototype.shutdown=function(){this.timeElem_.removeEventListener("blur",this.blurListener_,!1);this.timeElem_.removeEventListener("keydown",this.keyListener_,!1);this.timeElem_.removeEventListener("keyup",this.keyListener_,!1)};cvox.ChromeVoxHTMLTimeWidget.prototype.forceInitTime_=function(){this.timeElem_.setAttribute("value","12:00")};
+cvox.ChromeVoxHTMLTimeWidget.prototype.handlePosChange_=function(){0>this.pos_&&(this.pos_=0);this.pos_>this.maxPos_&&(this.pos_=this.maxPos_);if(this.pos_==this.maxPos_)this.pAmpm_="";else switch(this.pos_){case 0:this.pHours_=-1;break;case 1:this.pMinutes_=-1;break;case 2:this.pSeconds_=-1;break;case 3:this.pMilliseconds_=-1}};
+cvox.ChromeVoxHTMLTimeWidget.prototype.update_=function(a){var b=this.timeElem_.value.split(":");if(1>b.length)this.forceInitTime_();else{var c=b[0],d=-1,e=0,f=0,g=cvox.ChromeVox.msgs.getMsg("timewidget_am");1<b.length&&(d=b[1]);2<b.length&&(b=b[2].split("."),e=b[0],1<b.length&&(f=b[1]));12<c&&(c-=12,g=cvox.ChromeVox.msgs.getMsg("timewidget_pm"));12==c&&(g=cvox.ChromeVox.msgs.getMsg("timewidget_pm"));0==c&&(c=12,g=cvox.ChromeVox.msgs.getMsg("timewidget_am"));b="";a&&(b=cvox.DomUtil.getName(this.timeElem_,
+!0,!0)+"\n");c!=this.pHours_&&(b=b+c+" "+cvox.ChromeVox.msgs.getMsg("timewidget_hours")+"\n",this.pHours_=c);d!=this.pMinutes_&&(b=b+d+" "+cvox.ChromeVox.msgs.getMsg("timewidget_minutes")+"\n",this.pMinutes_=d);e!=this.pSeconds_&&(b=b+e+" "+cvox.ChromeVox.msgs.getMsg("timewidget_seconds")+"\n",this.pSeconds_=e);f!=this.pMilliseconds_&&(b=b+f+" "+cvox.ChromeVox.msgs.getMsg("timewidget_milliseconds")+"\n",this.pMilliseconds_=f);g!=this.pAmpm_&&(b+=g,this.pAmpm_=g);0<b.length&&this.timeTts_.speak(b,
+0,null)}};cvox.ChromeVoxHTMLTimeWidget.prototype.eventHandler_=function(a){var b=!1;if("keydown"==a.type){if(9==a.keyCode&&!a.shiftKey||39==a.keyCode)this.pos_++,this.handlePosChange_(),b=!0;if(9==a.keyCode&&a.shiftKey||37==a.keyCode)this.pos_--,this.handlePosChange_(),b=!0}this.update_(b)};cvox.ActiveIndicator=function(){this.lastMoveTime_=0;this.zoom_=1;this.updateIndicatorTimeoutId_=this.lastClientRects_=this.lastSyncTarget_=this.container_=null;this.blurred_=!1;window.addEventListener("focus",goog.bind(function(){this.blurred_=!1;this.container_&&this.container_.classList.remove("cvox_indicator_window_not_focused")},this),!1);window.addEventListener("blur",goog.bind(function(){this.blurred_=!0;this.container_&&this.container_.classList.add("cvox_indicator_window_not_focused")},this),
+!1)};cvox.ActiveIndicator.STYLE=".cvox_indicator_container { position: absolute !important; left: 0 !important; top: 0 !important; z-index: 2147483647 !important; pointer-events: none !important;}.cvox_indicator_window_not_focused { visibility: hidden !important;}.cvox_indicator_pulsing { -webkit-animation: cvox_indicator_pulsing_animation 0s 2 alternate !important; -webkit-animation-timing-function: ease-in-out !important;}.cvox_indicator_region { opacity: 0 !important; -webkit-transition: opacity 1s !important;}.cvox_indicator_visible { opacity: 1 !important;}.cvox_indicator_container .cvox_indicator_region * { position:absolute !important; box-shadow: 0 0 4px 4px #f7983a !important; border-radius: 6px !important; -webkit-transition: none !important;}.cvox_indicator_animate_normal .cvox_indicator_region * { -webkit-transition: all 0.3s !important;}.cvox_indicator_animate_quick .cvox_indicator_region * { -webkit-transition: all 0.1s !important;}.cvox_indicator_top { border-radius: inherit inherit 0 0 !important;}.cvox_indicator_middle_nw { border-radius: inherit 0 0 0 !important;}.cvox_indicator_middle_ne { border-radius: 0 inherit 0 0 !important;}.cvox_indicator_middle_se { border-radius: 0 0 inherit 0 !important;}.cvox_indicator_middle_sw { border-radius: 0 0 0 inherit !important;}.cvox_indicator_bottom { border-radius: 0 0 inherit inherit !important;}@-webkit-keyframes cvox_indicator_pulsing_animation { 0% {opacity: 1.0} 50% {opacity: 0.5} 100% {opacity: 1.0}}";
+cvox.ActiveIndicator.QUICK_ANIM_DELAY_MS=100;cvox.ActiveIndicator.NORMAL_ANIM_DELAY_MS=300;cvox.ActiveIndicator.MARGIN=8;cvox.ActiveIndicator.prototype.removeFromDom=function(){this.container_&&this.container_.parentElement&&this.container_.parentElement.removeChild(this.container_)};cvox.ActiveIndicator.prototype.syncToNode=function(a){a&&(a==document.body?this.removeFromDom():this.syncToNodes([a]))};
+cvox.ActiveIndicator.prototype.syncToNodes=function(a){var b=this.clientRectsFromNodes_(a);this.moveIndicator_(b,cvox.ActiveIndicator.MARGIN);this.lastSyncTarget_=a;this.lastClientRects_=b;null!=this.updateIndicatorTimeoutId_&&(window.clearTimeout(this.updateIndicatorTimeoutId_),this.updateIndicatorTimeoutId_=null)};
+cvox.ActiveIndicator.prototype.syncToRange=function(a){var b=cvox.ActiveIndicator.MARGIN;a.startContainer==a.endContainer&&a.startOffset+1==a.endOffset&&(b=1);var c=a.getClientRects();this.moveIndicator_(c,b);this.lastSyncTarget_=a;this.lastClientRects_=c;null!=this.updateIndicatorTimeoutId_&&(window.clearTimeout(this.updateIndicatorTimeoutId_),this.updateIndicatorTimeoutId_=null)};
+cvox.ActiveIndicator.prototype.syncToCursorSelection=function(a){if(a.start.node==a.end.node&&a.start.index==a.end.index)this.syncToNode(a.start.node);else{var b=document.createRange();b.setStart(a.start.node,a.start.index);b.setEnd(a.end.node,a.end.index);this.syncToRange(b)}};cvox.ActiveIndicator.prototype.updateIndicatorIfChanged=function(){this.updateIndicatorTimeoutId_||(this.updateIndicatorTimeoutId_=window.setTimeout(goog.bind(function(){this.handleUpdateIndicatorIfChanged_()},this),100))};
+cvox.ActiveIndicator.prototype.handleUpdateIndicatorIfChanged_=function(){this.updateIndicatorTimeoutId_=null;if(this.lastSyncTarget_){var a;if((a=this.lastSyncTarget_ instanceof Array?this.clientRectsFromNodes_(this.lastSyncTarget_):this.lastSyncTarget_.getClientRects())&&0!=a.length){var b=!1;if(a.length!=this.lastClientRects_.length)b=!0;else for(var c=0;c<this.lastClientRects_.length;++c){var d=this.lastClientRects_[c],e=a[c];if(d.top!=e.top||d.right!=e.right||d.bottom!=e.bottom||d.left!=d.left){b=
+!0;break}}b&&(this.moveIndicator_(a,cvox.ActiveIndicator.MARGIN),this.lastClientRects_=a)}else this.syncToNode(document.body)}};cvox.ActiveIndicator.prototype.clientRectsFromNodes_=function(a){for(var b=[],c=0;c<a.length;++c){var d=a[c];if(d.constructor==Text){var e=document.createRange();e.selectNode(d);e=e.getClientRects()}else{for(;!d.getClientRects;)d=d.parentElement;e=d.getClientRects()}for(d=0;d<e.length;++d)b.push(e[d])}return b};
+cvox.ActiveIndicator.prototype.moveIndicator_=function(a,b){if(document.body.isContentEditable)this.removeFromDom();else{var c=a.length;if(0!=c){var d,e;"static"!=window.getComputedStyle(document.body,null).position?(d=-document.body.getBoundingClientRect().left,e=-document.body.getBoundingClientRect().top):"static"!=window.getComputedStyle(document.documentElement,null).position?(d=-document.documentElement.getBoundingClientRect().left,e=-document.documentElement.getBoundingClientRect().top):(d=
+window.pageXOffset,e=window.pageYOffset);for(var f=[],g=0;g<c;g++)f.push(this.inset_(a[g],d,e,-d,-e));if(!this.container_||!this.container_.parentElement){g=document.getElementsByClassName("cvox_indicator_container");for(c=0;d=g[c];c++)d.parentNode&&d.parentNode.removeChild(d);this.container_=this.createDiv_(document.body,"cvox_indicator_container",document.body.firstChild)}g=document.createElement("style");g.id="cvox_indicator_style";g.innerHTML=cvox.ActiveIndicator.STYLE;cvox.DomUtil.addNodeToHead(g,
+g.id);g=(new Date).getTime();c=g-this.lastMoveTime_;this.container_.className="cvox_indicator_container";document.hasFocus()&&!this.blurred_||this.container_.classList.add("cvox_indicator_window_not_focused");c>cvox.ActiveIndicator.NORMAL_ANIM_DELAY_MS?this.container_.classList.add("cvox_indicator_animate_normal"):c>cvox.ActiveIndicator.QUICK_ANIM_DELAY_MS&&this.container_.classList.add("cvox_indicator_animate_quick");this.lastMoveTime_=g;this.computeZoomLevel_();for(window.setTimeout(goog.bind(function(){this.container_.classList.add("cvox_indicator_pulsing")},
+this),0);1<this.container_.childElementCount;)this.container_.removeChild(this.container_.lastElementChild);d=[[f[0]]];e=[f[0]];for(g=1;g<f.length;g++){for(var h=!1,c=0;c<d.length&&!h;c++)this.intersects_(f[g],e[c])&&(d[c].push(f[g]),e[c]=this.union_(e[c],f[g]),h=!0);h||(d.push([f[g]]),e.push(f[g]))}do for(f=!1,g=0;g<d.length-1&&!f;g++)for(c=g+1;c<d.length&&!f;c++)this.intersects_(e[g],e[c])&&(d[g]=d[g].concat(d[c]),e[g]=this.union_(e[g],e[c]),d.splice(c,1),e.splice(c,1),f=!0);while(f);for(g=0;g<
+d.length;g++)d[g].sort(function(a,b){return a.top!=b.top?a.top-b.top:a.left-b.left});for(g=0;g<d.length;g++)f=null,0==g&&1==this.container_.childElementCount&&6==this.container_.children[0].childElementCount&&(f=this.container_.children[0]),this.updateIndicatorRegion_(d[g],f,b)}}};
+cvox.ActiveIndicator.prototype.updateIndicatorRegion_=function(a,b,c){if(b)var d=b.children[0],e=b.children[1],f=b.children[2],g=b.children[3],h=b.children[4],k=b.children[5];else b=this.createDiv_(this.container_,"cvox_indicator_region"),window.setTimeout(function(){b.classList.add("cvox_indicator_visible")},0),d=this.createDiv_(b,"cvox_indicator_top"),e=this.createDiv_(b,"cvox_indicator_middle_nw"),f=this.createDiv_(b,"cvox_indicator_middle_ne"),g=this.createDiv_(b,"cvox_indicator_middle_sw"),h=
+this.createDiv_(b,"cvox_indicator_middle_se"),k=this.createDiv_(b,"cvox_indicator_bottom");for(var l=a[0],m=Math.floor((l.top+l.bottom)/2),p=1,q=a.length;p<q&&a[p].top<m;)l=this.union_(l,a[p]),m=Math.floor((l.top+l.bottom)/2),p++;if(p==q)l=this.inset_(l,-c,-c,-c,-c),a=Math.floor((3*l.top+1*l.bottom)/4),c=Math.floor((2*l.top+2*l.bottom)/4),m=Math.floor((1*l.top+3*l.bottom)/4),this.setElementCoords_(d,l.left,l.top,l.right,a,!0,!0,!0,!1),this.setElementCoords_(e,l.left,a,l.left,c,!0,!0,!1,!1),this.setElementCoords_(g,
+l.left,c,l.left,m,!0,!1,!1,!0),this.setElementCoords_(f,l.right,a,l.right,c,!1,!0,!0,!1),this.setElementCoords_(h,l.right,c,l.right,m,!1,!1,!0,!0),this.setElementCoords_(k,l.left,m,l.right,l.bottom,!0,!1,!0,!0);else{for(var m=a[q-1],n=Math.floor((m.top+m.bottom)/2),q=q-2;0<=q&&a[q].bottom>n;)m=this.union_(m,a[q]),n=Math.floor((m.top+m.bottom)/2),q--;l=this.inset_(l,-c,-c,-c,c);m=this.inset_(m,-c,c,-c,-c);if(p>q)n=this.union_(l,m),n.top=l.bottom,n.bottom=m.top,n.height=Math.floor((n.top+n.bottom)/
+2);else{n=a[p];for(p+=1;p<=q;)n=this.union_(n,a[p]),p++;n=this.inset_(n,-c,-c,-c,-c);n.left=Math.min(n.left,l.left,m.left);n.right=Math.max(n.right,l.right,m.right);n.width=n.right-n.left}l.right>n.right-40&&(l.right=n.right,l.width=l.right-l.left);l.left<n.left+40&&(l.left=n.left,l.width=l.right-l.left);m.right>n.right-40&&(m.right=n.right,m.width=m.right-m.left);m.left<n.left+40&&(m.left=n.left,m.width=m.right-m.left);a=Math.floor((n.top+n.bottom)/2);this.setElementRect_(d,l,!0,!0,!0,!1);this.setElementRect_(k,
+m,!0,!1,!0,!0);this.setElementCoords_(e,n.left,l.bottom,l.left,a,!0,!0,!1,!1);this.setElementCoords_(f,l.right,l.bottom,n.right,a,!1,!0,!0,!1);this.setElementCoords_(g,n.left,a,m.left,m.top,!0,!1,!1,!0);this.setElementCoords_(h,m.right,a,n.right,m.top,!1,!1,!0,!0)}};cvox.ActiveIndicator.prototype.intersects_=function(a,b){var c=2*cvox.ActiveIndicator.MARGIN;return b.left<=a.right+c&&b.right>=a.left-c&&b.top<=a.bottom+c&&b.bottom>=a.top-c};
+cvox.ActiveIndicator.prototype.union_=function(a,b){var c={left:Math.min(a.left,b.left),top:Math.min(a.top,b.top),right:Math.max(a.right,b.right),bottom:Math.max(a.bottom,b.bottom)};c.width=c.right-c.left;c.height=c.bottom-c.top;return c};cvox.ActiveIndicator.prototype.inset_=function(a,b,c,d,e){a={left:a.left+b,top:a.top+c,right:a.right-d,bottom:a.bottom-e};a.width=a.right-a.left;a.height=a.bottom-a.top;return a};
+cvox.ActiveIndicator.prototype.createDiv_=function(a,b,c){var d=document.createElement("div");d.className=b;c?a.insertBefore(d,c):a.appendChild(d);return d};cvox.ActiveIndicator.prototype.fixZoom_=function(a){return(Math.round(a*this.zoom_)+0.1)/this.zoom_};cvox.ActiveIndicator.prototype.fixZoomSum_=function(a,b){var c=Math.round(a*this.zoom_),d=Math.round((a+b)*this.zoom_),c=d-c;return(c+0.1)/this.zoom_};
+cvox.ActiveIndicator.prototype.setElementCoords_=function(a,b,c,d,e,f,g,h,k){var l=d-b,m=e-c;d-=b;e-=c;var p=f?-20:0,q=g?-20:0,n=h?20:0,s=k?20:0;0==d&&(h?(b-=5,d+=5):f&&(d+=10),s=q=10,c-=10,e+=20);k||(e+=5);g||(c-=5,e+=5,q+=5,s+=5);n=0==n&&0==l?1:this.fixZoomSum_(b,n+l);s=this.fixZoomSum_(c,s+m);a.style.left=this.fixZoom_(b)+"px";a.style.top=this.fixZoom_(c)+"px";a.style.width=this.fixZoomSum_(b,d)+"px";a.style.height=this.fixZoomSum_(c,e)+"px";a.style.clip="rect("+[q,n,s,p].join("px ")+"px)"};
+cvox.ActiveIndicator.prototype.setElementRect_=function(a,b,c,d,e,f){this.setElementCoords_(a,b.left,b.top,b.right,b.bottom,c,d,e,f)};
+cvox.ActiveIndicator.prototype.computeZoomLevel_=function(){if(window.innerHeight!==this.innerHeight_||window.innerWidth!==this.innerWidth_){this.innerHeight_=window.innerHeight;this.innerWidth_=window.innerWidth;var a=document.createElement("div");a.innerHTML="X";a.setAttribute("style","font: 5000px/1em sans-serif !important; -webkit-text-size-adjust:none !important; visibility:hidden !important; left: -10000px !important; top: -10000px !important; position:absolute !important;");document.body.appendChild(a);
+var b=5E3/a.clientHeight,b=Math.round(500*b)/500;0.1<b&&10>b&&(this.zoom_=b);a.parentNode.removeChild(a)}};cvox.NodeBreadcrumb=function(){this.cvTagCounter_=0};goog.addSingletonGetter(cvox.NodeBreadcrumb);cvox.NodeBreadcrumb.TOUCHED_TAG="chromevoxtag";cvox.NodeBreadcrumb.NEEDED_TAG_="chromevoxneeded";
+cvox.NodeBreadcrumb.prototype.tagCurrentNode=function(){for(var a,b=cvox.ChromeVox.navigationManager.getCurrentNode();b&&!b.hasAttribute;)b=b.parentNode;b?b.hasAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG)?a=b.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG):(a=this.cvTagCounter_,b.setAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG,a),this.cvTagCounter_++):a=-1;return a};
+cvox.NodeBreadcrumb.prototype.smartStart_=function(a){for(var b=0;b<a.children.length;++b){var c=a.children[b];this.smartStart_(c);c.getAttribute&&!goog.isNull(c.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG))&&this.setNeeded_(c)}};cvox.NodeBreadcrumb.prototype.setNeeded_=function(a){a&&a.getAttribute&&goog.isNull(a.getAttribute(cvox.NodeBreadcrumb.NEEDED_TAG_))&&(a.setAttribute(cvox.NodeBreadcrumb.NEEDED_TAG_,!0),"body"!==a.nodeName&&this.setNeeded_(a.parentElement))};
+cvox.NodeBreadcrumb.prototype.smartClone_=function(a){var b={};b[cvox.NodeBreadcrumb.TOUCHED_TAG]=!0;b[cvox.NodeBreadcrumb.NEEDED_TAG_]=!0;if(a.getAttribute&&a.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG))return cvox.DomUtil.deepClone(a,b);for(var b=cvox.DomUtil.shallowChildlessClone(a,b),c=0;c<a.childNodes.length;++c){var d=a.childNodes[c];d.getAttribute&&!goog.isNull(d.getAttribute(cvox.NodeBreadcrumb.NEEDED_TAG_))&&b.appendChild(this.smartClone_(d))}return b};
+cvox.NodeBreadcrumb.prototype.dumpWalkedDom=function(){this.smartStart_(document.body);return this.smartClone_(document.body)};cvox.NodeBreadcrumb.getCurrentNodeTag=function(){for(var a=cvox.ChromeVox.navigationManager.getCurrentNode();a&&!a.hasAttribute;)a=a.parentNode;return a&&a.hasAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG)?a.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG):-1};cvox.HistoryEvent=function(a){this.spoken_=[];a?this.userCommand_=a.cmd:this.startTime_=(new Date).getTime()};cvox.HistoryEvent.prototype.withUserCommand=function(a){if(this.userCommand_)return window.console.error("Two user commands on "+a,this),this;this.userCommand_=a;return this};cvox.HistoryEvent.prototype.speak=function(a){this.spoken_.push(a);return this};
+cvox.HistoryEvent.prototype.done=function(){this.endTime_=(new Date).getTime();cvox.NodeBreadcrumb.getInstance().tagCurrentNode();window.console.log("User command done.",this);return this};cvox.HistoryEvent.prototype.outputObject=function(){return{start:this.startTime_,end:this.endTime_,cmd:this.userCommand_,spoken:this.spoken_}};
+cvox.HistoryEvent.prototype.outputHTML=function(){var a=document.createElement("div");a.className="cvoxHistoryEvent";var b=this.endTime_-this.startTime_;a.innerHTML=this.userCommand_+" ("+b+"ms)";for(b=0;b<this.spoken_.length;b++){var c=document.createElement("div");c.className="cvoxHistoryEventSpoken";c.innerHTML=this.spoken_[b].substr(0,20);20<this.spoken_[b].length&&(c.innerHTML+="...");a.appendChild(c)}return a};
+cvox.HistoryEvent.prototype.outputJs=function(){var a="this.waitForCalm(this.userCommand, '"+this.userCommand_+"')";return a=0<this.spoken_.length?a+("\n .waitForCalm(this.assertSpoken, '"+cvox.DomUtil.collapseWhitespace(this.spoken_.join(" "))+"');\n"):a+";\n"};cvox.History=function(){this.recording_=!1;this.events_=[];this.styleDiv_=this.listDiv_=this.mainDiv_=this.currentEvent_=null;this.nodeBreadcrumb_=cvox.NodeBreadcrumb.getInstance()};goog.addSingletonGetter(cvox.History);
+cvox.History.prototype.addListDiv_=function(){this.mainDiv_=document.createElement("div");this.mainDiv_.style.position="fixed";this.mainDiv_.style.bottom="0";this.mainDiv_.style.right="0";this.mainDiv_.style.zIndex="999";this.listDiv_=document.createElement("div");this.listDiv_.id="cvoxEventList";this.mainDiv_.appendChild(this.listDiv_);var a=document.createElement("div"),b=document.createElement("button");b.onclick=cvox.History.sendToFeedback;b.innerHTML="Create bug";a.appendChild(b);this.mainDiv_.appendChild(a);
+a=document.createElement("div");b=document.createElement("button");b.onclick=cvox.History.dumpJs;b.innerHTML="Dump test case";a.appendChild(b);this.mainDiv_.appendChild(a);document.body.appendChild(this.mainDiv_);this.styleDiv_=document.createElement("style");this.styleDiv_.innerHTML=".cvoxHistoryEventSpoken { color: gray; font-size: 75% }";document.body.appendChild(this.styleDiv_)};
+cvox.History.prototype.removeListDiv_=function(){document.body.removeChild(this.mainDiv_);document.body.removeChild(this.styleDiv_);this.styleDiv_=this.listDiv_=this.mainDiv_=null};
+cvox.History.prototype.addBigTextBox_=function(){function a(a,b){var c=document.createElement("button");c.onclick=b;c.innerHTML=a;d.appendChild(c)}var b=document.createElement("div");b.style.position="fixed";b.style.top="0";b.style.left="0";b.style.zIndex="999";var c=document.createElement("textarea");c.style.width="500px";c.style.height="500px";c.innerHTML=this.dumpJsOutput_();b.appendChild(c);var d=document.createElement("div");b.appendChild(d);a("Close dialog",function(){document.body.removeChild(b)});
+a("Remove fluff",goog.bind(function(){c.innerHTML=this.dumpJsOutput_(["stopSpeech","toggleKeyPrefix"])},this));document.body.appendChild(b)};cvox.History.prototype.startRecording=function(){this.recording_=!0;this.addListDiv_()};cvox.History.prototype.stopRecording=function(){this.recording_=!1;this.removeListDiv_();this.events_=[];this.currentEvent_=null};
+cvox.History.prototype.enterUserCommand=function(a){this.recording_&&(this.currentEvent_&&window.console.error("User command "+a+" overlaps current event",this.currentEvent_),this.currentEvent_=(new cvox.HistoryEvent).withUserCommand(a),this.events_.push(this.currentEvent_))};cvox.History.prototype.exitUserCommand=function(){this.recording_&&this.currentEvent_&&(this.currentEvent_.done(),this.listDiv_.appendChild(this.currentEvent_.outputHTML()),this.currentEvent_=null)};
+cvox.History.prototype.speak=function(a){if(!this.recording_)return this;if(!this.currentEvent_)return window.console.error("Speak called outside of a user command."),this;this.currentEvent_.speak(a);return this};cvox.History.prototype.isSpeaking=function(){return!1};cvox.History.prototype.stop=function(){};cvox.History.prototype.increaseOrDecreaseProperty=function(){};cvox.History.prototype.getDefaultProperty=function(){};
+cvox.History.dumpJs=function(){var a=cvox.History.getInstance();a.addBigTextBox_();window.console.log(a.dumpJsOutput_())};cvox.History.prototype.dumpJsOutput_=function(a){var b={};a&&a.forEach(function(a){b[a]=1});return["/*DOC: += ",this.nodeBreadcrumb_.dumpWalkedDom().innerHTML,"*/\n"].concat(this.events_.filter(function(a){return!(a.userCommand_ in b)}).map(function(a){return a.outputJs()})).join("")};
+cvox.History.sendToFeedback=function(){var a=cvox.History.getInstance(),a=a.events_.map(function(a){return a.outputObject()}),b=document.createElement("script");b.type="text/javascript";b.src="https://www.gstatic.com/feedback/api.js";var c=document.createElement("script");c.type="text/javascript";c.innerHTML="userfeedback.api.startFeedback({ productId: '76092' }, { cvoxHistory: "+cvox.ChromeVoxJSON.stringify(cvox.ChromeVoxJSON.stringify(a))+" });";b.onload=function(){document.body.appendChild(c)};
+document.body.appendChild(b)};cvox.KeySequence=function(a,b,c,d){this.doubleTap=!!d;this.cvoxModifier=void 0==b?this.isCVoxModifierActive(a):b;this.stickyMode=!!a.stickyMode;this.prefixKey=!!a.keyPrefix;this.skipStripping=!!c;if(this.stickyMode&&this.prefixKey)throw"Prefix key and sticky mode cannot both be enabled: "+a;a=this.resolveChromeOSSpecialKeys_(a);this.keys={ctrlKey:[],searchKeyHeld:[],altKey:[],altGraphKey:[],shiftKey:[],metaKey:[],keyCode:[]};this.extractKey_(a)};
+cvox.KeySequence.KEY_PRESS_CODE={39:222,44:188,45:189,46:190,47:191,59:186,91:219,92:220,93:221};cvox.KeySequence.doubleTapCache=[];cvox.KeySequence.prototype.addKeyEvent=function(a){if(1<this.keys.keyCode.length)return!1;this.extractKey_(a);return!0};cvox.KeySequence.prototype.equals=function(a){if(!this.checkKeyEquality_(a)||this.doubleTap!=a.doubleTap)return!1;if(this.cvoxModifier===a.cvoxModifier)return!0;a=this.cvoxModifier?a:this;return a.stickyMode||a.prefixKey};
+cvox.KeySequence.prototype.extractKey_=function(a){for(var b in this.keys)if("keyCode"==b){var c;"keypress"==a.type&&97<=a[b]&&122>=a[b]?c=a[b]-32:"keypress"==a.type&&(c=cvox.KeySequence.KEY_PRESS_CODE[a[b]]);this.keys[b].push(c||a[b])}else this.isKeyModifierActive(a,b)?this.keys[b].push(!0):this.keys[b].push(!1);this.cvoxModifier&&this.rationalizeKeys_()};
+cvox.KeySequence.prototype.rationalizeKeys_=function(){if(!this.skipStripping){var a=cvox.ChromeVox.modKeyStr.split(/\+/g),b=this.keys.keyCode.length-1;-1!=a.indexOf("Ctrl")&&(this.keys.ctrlKey[b]=!1);-1!=a.indexOf("Alt")&&(this.keys.altKey[b]=!1);-1!=a.indexOf("Shift")&&(this.keys.shiftKey[b]=!1);var c=this.getMetaKeyName_();if(-1!=a.indexOf(c))if("Search"==c)this.keys.searchKeyHeld[b]=!1;else if("Cmd"==c||"Win"==c)this.keys.metaKey[b]=!1}};
+cvox.KeySequence.prototype.getMetaKeyName_=function(){return cvox.ChromeVox.isChromeOS?"Search":cvox.ChromeVox.isMac?"Cmd":"Win"};cvox.KeySequence.prototype.checkKeyEquality_=function(a){for(var b in this.keys)for(var c=this.keys[b].length;c--;)if(this.keys[b][c]!==a.keys[b][c])return!1;return!0};cvox.KeySequence.prototype.length=function(){return this.keys.keyCode.length};cvox.KeySequence.prototype.isModifierKey=function(a){return 16==a||17==a||18==a||91==a||93==a};
+cvox.KeySequence.prototype.isCVoxModifierActive=function(a){var b=cvox.ChromeVox.modKeyStr.split(/\+/g);this.isKeyModifierActive(a,"ctrlKey")&&(b=b.filter(function(a){return"Ctrl"!=a}));this.isKeyModifierActive(a,"altKey")&&(b=b.filter(function(a){return"Alt"!=a}));this.isKeyModifierActive(a,"shiftKey")&&(b=b.filter(function(a){return"Shift"!=a}));if(this.isKeyModifierActive(a,"metaKey")||this.isKeyModifierActive(a,"searchKeyHeld"))var c=this.getMetaKeyName_(),b=b.filter(function(a){return a!=c});
+return 0==b.length};cvox.KeySequence.prototype.isKeyModifierActive=function(a,b){switch(b){case "ctrlKey":return a.ctrlKey||17==a.keyCode;case "altKey":return a.altKey||18==a.keyCode;case "shiftKey":return a.shiftKey||16==a.keyCode;case "metaKey":return a.metaKey||!cvox.ChromeVox.isChromeOS&&91==a.keyCode;case "searchKeyHeld":return cvox.ChromeVox.isChromeOS&&91==a.keyCode||a.searchKeyHeld}return!1};
+cvox.KeySequence.deserialize=function(a){var b={};b.stickyMode=void 0==a.stickyMode?!1:a.stickyMode;b.prefixKey=void 0==a.prefixKey?!1:a.prefixKey;var c=1<a.keys.keyCode.length,d={},e;for(e in a.keys)b[e]=a.keys[e][0],c&&(d[e]=a.keys[e][1]);e=new cvox.KeySequence(b,a.cvoxModifier,!0,a.doubleTap);c&&(cvox.ChromeVox.sequenceSwitchKeyCodes.push(new cvox.KeySequence(b,a.cvoxModifier)),e.addKeyEvent(d));a.doubleTap&&cvox.KeySequence.doubleTapCache.push(e);return e};
+cvox.KeySequence.fromStr=function(a){var b={},c={},d;d=-1==a.indexOf(">")?!1:!0;var e=!1;b.stickyMode=!1;b.prefixKey=!1;a=a.split("+");for(var f=0;f<a.length;f++)for(var g=a[f].split(">"),h=0;h<g.length;h++){if("#"==g[h].charAt(0)){var k=parseInt(g[h].substr(1),10);0<h?c.keyCode=k:b.keyCode=k}k=g[h];1==g[h].length?0<h?c.keyCode=g[h].charCodeAt(0):b.keyCode=g[h].charCodeAt(0):(0<h?cvox.KeySequence.setModifiersOnEvent_(k,c):cvox.KeySequence.setModifiersOnEvent_(k,b),"Cvox"==k&&(e=!0))}b=new cvox.KeySequence(b,
+e);d&&b.addKeyEvent(c);return b};cvox.KeySequence.setModifiersOnEvent_=function(a,b){"Ctrl"==a?(b.ctrlKey=!0,b.keyCode=17):"Alt"==a?(b.altKey=!0,b.keyCode=18):"Shift"==a?(b.shiftKey=!0,b.keyCode=16):"Search"==a?(b.searchKeyHeld=!0,b.keyCode=91):"Cmd"==a?(b.metaKey=!0,b.keyCode=91):"Win"==a?(b.metaKey=!0,b.keyCode=91):"Insert"==a&&(b.keyCode=45)};
+cvox.KeySequence.prototype.resolveChromeOSSpecialKeys_=function(a){if(!this.cvoxModifier||this.stickyMode||this.prefixKey||!cvox.ChromeVox.isChromeOS)return a;var b={},c;for(c in a)b[c]=a[c];switch(b.keyCode){case 33:b.keyCode=38;break;case 34:b.keyCode=40;break;case 35:b.keyCode=39;break;case 36:b.keyCode=37;break;case 45:b.keyCode=190;break;case 46:b.keyCode=8;break;case 112:b.keyCode=49;break;case 113:b.keyCode=50;break;case 114:b.keyCode=51;break;case 115:b.keyCode=52;break;case 116:b.keyCode=
+53;break;case 117:b.keyCode=54;break;case 118:b.keyCode=55;break;case 119:b.keyCode=56;break;case 120:b.keyCode=57;break;case 121:b.keyCode=48;break;case 122:b.keyCode=189;break;case 123:b.keyCode=187}return b};cvox.KeyUtil=function(){};cvox.KeyUtil.modeKeyPressTime=0;cvox.KeyUtil.sequencing=!1;cvox.KeyUtil.prevKeySequence=null;cvox.KeyUtil.stickyKeySequence=null;cvox.KeyUtil.maxSeqLength=2;
+cvox.KeyUtil.keyEventToKeySequence=function(a){var b=cvox.KeyUtil;b.prevKeySequence&&b.maxSeqLength==b.prevKeySequence.length()&&(b.sequencing=!1,b.prevKeySequence=null);var c=b.sequencing||a.keyPrefix||a.stickyMode,d=new cvox.KeySequence(a),e=d.cvoxModifier;if(c||e){if(!b.sequencing&&b.isSequenceSwitchKeyCode(d))return b.sequencing=!0,b.prevKeySequence=d;if(b.sequencing){if(b.prevKeySequence.addKeyEvent(a))return d=b.prevKeySequence,b.prevKeySequence=null,b.sequencing=!1,d;throw"Think sequencing is enabled, yet util.prevKeySequence alreadyhas two key codes"+
+b.prevKeySequence;}}else b.sequencing=!1;c=(new Date).getTime();if(cvox.KeyUtil.isDoubleTapKey(d)&&b.prevKeySequence&&d.equals(b.prevKeySequence)&&(e=b.modeKeyPressTime,0<e&&300>c-e))return d=b.prevKeySequence,d.doubleTap=!0,b.prevKeySequence=null,b.sequencing=!1,cvox.ChromeVox.isChromeOS&&a.keyCode==cvox.KeyUtil.getStickyKeyCode()&&(cvox.ChromeVox.searchKeyHeld=!1),d;b.prevKeySequence=d;b.modeKeyPressTime=c;return d};
+cvox.KeyUtil.keyCodeToString=function(a){return 17==a?"Ctrl":18==a?"Alt":16==a?"Shift":91==a||93==a?cvox.ChromeVox.isChromeOS?"Search":cvox.ChromeVox.isMac?"Cmd":"Win":45==a?"Insert":65<=a&&90>=a?String.fromCharCode(a):48<=a&&57>=a?String.fromCharCode(a):"#"+a};cvox.KeyUtil.modStringToKeyCode=function(a){switch(a){case "Ctrl":return 17;case "Alt":return 18;case "Shift":return 16;case "Cmd":case "Win":return 91}return-1};
+cvox.KeyUtil.cvoxModKeyCodes=function(){var a=cvox.ChromeVox.modKeyStr.split(/\+/g);return a=a.map(function(a){return cvox.KeyUtil.modStringToKeyCode(a)})};cvox.KeyUtil.isSequenceSwitchKeyCode=function(a){for(var b=0;b<cvox.ChromeVox.sequenceSwitchKeyCodes.length;b++){var c=cvox.ChromeVox.sequenceSwitchKeyCodes[b];if(c.equals(a))return!0}return!1};
+cvox.KeyUtil.getReadableNameForKeyCode=function(a){if(0==a)return"Power button";if(17==a)return"Control";if(18==a)return"Alt";if(16==a)return"Shift";if(9==a)return"Tab";if(91==a||93==a)return cvox.ChromeVox.isChromeOS?"Search":cvox.ChromeVox.isMac?"Cmd":"Win";if(8==a)return"Backspace";if(32==a)return"Space";if(35==a)return"end";if(36==a)return"home";if(37==a)return"Left arrow";if(38==a)return"Up arrow";if(39==a)return"Right arrow";if(40==a)return"Down arrow";if(45==a)return"Insert";if(13==a)return"Enter";
+if(27==a)return"Escape";if(112==a)return cvox.ChromeVox.isChromeOS?"Back":"F1";if(113==a)return cvox.ChromeVox.isChromeOS?"Forward":"F2";if(114==a)return cvox.ChromeVox.isChromeOS?"Refresh":"F3";if(115==a)return cvox.ChromeVox.isChromeOS?"Toggle full screen":"F4";if(116==a)return"F5";if(117==a)return"F6";if(118==a)return"F7";if(119==a)return"F8";if(120==a)return"F9";if(121==a)return"F10";if(122==a)return"F11";if(123==a)return"F12";if(186==a)return"Semicolon";if(187==a)return"Equal sign";if(188==a)return"Comma";
+if(189==a)return"Dash";if(190==a)return"Period";if(191==a)return"Forward slash";if(192==a)return"Grave accent";if(219==a)return"Open bracket";if(220==a)return"Back slash";if(221==a)return"Close bracket";if(222==a)return"Single quote";if(115==a)return"Toggle full screen";if(48<=a&&90>=a)return String.fromCharCode(a)};cvox.KeyUtil.getStickyKeyCode=function(){var a=45;if(cvox.ChromeVox.isChromeOS||cvox.ChromeVox.isMac)a=91;return a};
+cvox.KeyUtil.getStickyKeySequence=function(){if(null==cvox.KeyUtil.stickyKeySequence){var a=cvox.KeyUtil.getStickyKeyCode(),a={keyCode:a,stickyMode:!0},b=new cvox.KeySequence(a);b.addKeyEvent(a);cvox.KeyUtil.stickyKeySequence=b}return cvox.KeyUtil.stickyKeySequence};cvox.KeyUtil.getReadableNameForStr=function(){return null};
+cvox.KeyUtil.keySequenceToString=function(a,b,c){for(var d="",e=a.length(),f=0;f<e;f++){""==d||c?""!=d&&(d+="+"):d+=">";var g="",h;for(h in a.keys)if(a.keys[h][f]){var k="";switch(h){case "ctrlKey":k="Ctrl";break;case "searchKeyHeld":k=cvox.KeyUtil.getReadableNameForKeyCode(91);break;case "altKey":k="Alt";break;case "altGraphKey":k="AltGraph";break;case "shiftKey":k="Shift";break;case "metaKey":k=cvox.KeyUtil.getReadableNameForKeyCode(91);break;case "keyCode":var l=a.keys[h][f];a.isModifierKey(l)||
+c||(g=b?g+cvox.KeyUtil.getReadableNameForKeyCode(l):g+cvox.KeyUtil.keyCodeToString(l))}-1==d.indexOf(k)&&(g+=k+"+")}d+=g;"+"==d[d.length-1]&&(d=d.slice(0,-1))}a.cvoxModifier||a.prefixKey?d=""!=d?"Cvox+"+d:"Cvox":a.stickyMode&&(">"==d[d.length-1]&&(d=d.slice(0,-1)),d=d+"+"+d);return d};cvox.KeyUtil.isDoubleTapKey=function(a){var b=!1,c=a.doubleTap;a.doubleTap=!0;for(var d=0,e;e=cvox.KeySequence.doubleTapCache[d];d++)if(e.equals(a)){b=!0;break}a.doubleTap=c;return b};cvox.KeyMap=function(a){this.bindings_=a;this.commandToKey_={};this.buildCommandToKey_()};cvox.KeyMap.KEYMAP_PATH="chromevox/background/keymaps/";cvox.KeyMap.AVAILABLE_MAP_INFO={keymap_classic:{file:"classic_keymap.json"},keymap_flat:{file:"flat_keymap.json"},keymap_experimental:{file:"experimental.json"}};cvox.KeyMap.DEFAULT_KEYMAP=0;cvox.KeyMap.prototype.length=function(){return this.bindings_.length};cvox.KeyMap.prototype.keys=function(){return this.bindings_.map(function(a){return a.sequence})};
+cvox.KeyMap.prototype.bindings=function(){return this.bindings_};cvox.KeyMap.prototype.toJSON=function(){return JSON.stringify({bindings:this.bindings_})};cvox.KeyMap.prototype.hasKey=function(a){for(var b=0;b<this.bindings_.length;b++){var c=this.bindings_[b];if(c.sequence.equals(a))return!0}return!1};cvox.KeyMap.prototype.commandForKey=function(a){if(null!=a)for(var b=0;b<this.bindings_.length;b++){var c=this.bindings_[b];if(c.sequence.equals(a))return c.command}return null};
+cvox.KeyMap.fromDefaults=function(){return cvox.KeyMap.fromPath(cvox.KeyMap.KEYMAP_PATH+cvox.KeyMap.AVAILABLE_MAP_INFO.keymap_classic.file)};cvox.KeyMap.fromJSON=function(a){try{var b=JSON.parse(a).bindings,b=b.filter(function(a){return void 0===a.sequence.platformFilter||cvox.PlatformUtil.matchesPlatform(a.sequence.platformFilter)})}catch(c){return null}if("object"!=typeof b)return null;for(a=0;a<b.length;a++){if(void 0==b[a].command||void 0==b[a].sequence)return null;b[a].sequence=cvox.KeySequence.deserialize(b[a].sequence)}return new cvox.KeyMap(b)};
+cvox.KeyMap.fromLocalStorage=function(){return localStorage.keyBindings?cvox.KeyMap.fromJSON(localStorage.keyBindings):null};cvox.KeyMap.fromPath=function(a){return cvox.KeyMap.fromJSON(cvox.KeyMap.readJSON_(a))};cvox.KeyMap.fromCurrentKeyMap=function(){var a=localStorage.currentKeyMap;return a&&cvox.KeyMap.AVAILABLE_MAP_INFO[a]?cvox.KeyMap.fromPath(cvox.KeyMap.KEYMAP_PATH+cvox.KeyMap.AVAILABLE_MAP_INFO[a].file):cvox.KeyMap.fromDefaults()};
+cvox.KeyMap.readJSON_=function(a){var b=chrome.extension.getURL(a);if(!b)throw"Invalid path: "+a;a=new XMLHttpRequest;a.open("GET",b,!1);a.send();return a.responseText};cvox.KeyMap.prototype.buildCommandToKey_=function(){for(var a=0;a<this.bindings_.length;a++){var b=this.bindings_[a];void 0==this.commandToKey_[b.command]&&(this.commandToKey_[b.command]=b.sequence)}};cvox.CommandStore={};cvox.CommandStore.categories=function(){var a={},b;for(b in cvox.CommandStore.CMD_WHITELIST){var c=cvox.CommandStore.CMD_WHITELIST[b];c.category&&(a[c.category]=!0)}b=[];for(var d in a)b.push(d);return b};cvox.CommandStore.messageForCommand=function(a){return(cvox.CommandStore.CMD_WHITELIST[a]||{}).msgId};cvox.CommandStore.categoryForCommand=function(a){return(cvox.CommandStore.CMD_WHITELIST[a]||{}).category};
+cvox.CommandStore.commandsForCategory=function(a){var b=[],c;for(c in cvox.CommandStore.CMD_WHITELIST){var d=cvox.CommandStore.CMD_WHITELIST[c];a==d.category&&b.push(c)}return b};
+cvox.CommandStore.CMD_WHITELIST={toggleStickyMode:{announce:!1,msgId:"toggle_sticky_mode",disallowOOBE:!0,category:"modifier_keys"},toggleKeyPrefix:{announce:!1,skipInput:!0,msgId:"prefix_key",disallowOOBE:!0,category:"modifier_keys"},stopSpeech:{announce:!1,disallowContinuation:!0,doDefault:!0,msgId:"stop_speech_key",category:"controlling_speech"},toggleChromeVox:{announce:!1,platformFilter:cvox.PlatformFilter.WML,msgId:"toggle_chromevox_active",category:"controlling_speech"},decreaseTtsRate:{announce:!1,
+msgId:"decrease_tts_rate",category:"controlling_speech"},increaseTtsRate:{announce:!1,msgId:"increase_tts_rate",category:"controlling_speech"},decreaseTtsPitch:{announce:!1,msgId:"decrease_tts_pitch",category:"controlling_speech"},increaseTtsPitch:{announce:!1,msgId:"increase_tts_pitch",category:"controlling_speech"},decreaseTtsVolume:{announce:!1,msgId:"decrease_tts_volume",category:"controlling_speech"},increaseTtsVolume:{announce:!1,msgId:"increase_tts_volume",category:"controlling_speech"},cyclePunctuationEcho:{announce:!1,
+msgId:"cycle_punctuation_echo",category:"controlling_speech"},cycleTypingEcho:{announce:!1,msgId:"cycle_typing_echo",category:"controlling_speech"},toggleEarcons:{announce:!0,msgId:"toggle_earcons",category:"controlling_speech"},handleTab:{allowEvents:!0,msgId:"handle_tab_next",disallowContinuation:!0,category:"navigation"},handleTabPrev:{allowEvents:!0,msgId:"handle_tab_prev",disallowContinuation:!0,category:"navigation"},forward:{forward:!0,announce:!0,msgId:"forward",category:"navigation"},backward:{backward:!0,
+announce:!0,msgId:"backward",category:"navigation"},right:{forward:!0,announce:!0,msgId:"right",category:"navigation"},left:{backward:!0,announce:!0,msgId:"left",category:"navigation"},previousGranularity:{announce:!0,msgId:"previous_granularity",category:"navigation"},nextGranularity:{announce:!0,msgId:"next_granularity",category:"navigation"},previousCharacter:{backward:!0,announce:!0,msgId:"previous_character",skipInput:!0,category:"navigation"},nextCharacter:{forward:!0,announce:!0,msgId:"next_character",
+skipInput:!0,category:"navigation"},previousWord:{backward:!0,announce:!0,msgId:"previous_word",skipInput:!0,category:"navigation"},nextWord:{forward:!0,announce:!0,msgId:"next_word",skipInput:!0,category:"navigation"},previousLine:{backward:!0,announce:!0,msgId:"previous_line",category:"navigation"},nextLine:{forward:!0,announce:!0,msgId:"next_line",category:"navigation"},previousSentence:{backward:!0,announce:!0,msgId:"previous_sentence",skipInput:!0,category:"navigation"},nextSentence:{forward:!0,
+announce:!0,msgId:"next_sentence",skipInput:!0,category:"navigation"},previousObject:{backward:!0,announce:!0,msgId:"previous_object",skipInput:!0,category:"navigation"},nextObject:{forward:!0,announce:!0,msgId:"next_object",skipInput:!0,category:"navigation"},previousGroup:{backward:!0,announce:!0,msgId:"previous_group",skipInput:!0,category:"navigation"},nextGroup:{forward:!0,announce:!0,msgId:"next_group",skipInput:!0,category:"navigation"},jumpToTop:{forward:!0,announce:!0,msgId:"jump_to_top",
+category:"navigation"},jumpToBottom:{backward:!0,announce:!0,msgId:"jump_to_bottom",category:"navigation"},moveToStartOfLine:{forward:!0,announce:!0},moveToEndOfLine:{backward:!0,announce:!0},readFromHere:{forward:!0,announce:!1,msgId:"read_from_here",category:"navigation"},performDefaultAction:{disallowContinuation:!0,msgId:"perform_default_action",doDefault:!0,skipInput:!0,category:"navigation"},forceClickOnCurrentItem:{announce:!0,disallowContinuation:!0,allowEvents:!0,msgId:"force_click_on_current_item",
+category:"navigation"},forceDoubleClickOnCurrentItem:{announce:!0,allowEvents:!0,disallowContinuation:!0},readLinkURL:{announce:!1,msgId:"read_link_url",category:"information"},readCurrentTitle:{announce:!1,msgId:"read_current_title",category:"information"},readCurrentURL:{announce:!1,msgId:"read_current_url",category:"information"},fullyDescribe:{announce:!1,msgId:"fully_describe",category:"information"},speakTimeAndDate:{announce:!1,msgId:"speak_time_and_date",category:"information"},toggleSelection:{announce:!0,
+msgId:"toggle_selection",category:"information"},toggleSearchWidget:{announce:!1,disallowContinuation:!0,msgId:"toggle_search_widget",category:"information"},toggleKeyboardHelp:{announce:!1,disallowContinuation:!0,msgId:"show_power_key",category:"help_commands"},help:{announce:!1,msgId:"help",disallowOOBE:!0,disallowContinuation:!0,category:"help_commands"},contextMenu:{announce:!1,disallowContinuation:!0},showOptionsPage:{announce:!1,disallowContinuation:!0,msgId:"show_options_page",disallowOOBE:!0,
+category:"help_commands"},showKbExplorerPage:{announce:!1,disallowContinuation:!0,msgId:"show_kb_explorer_page",disallowOOBE:!0,category:"help_commands"},showFormsList:{announce:!1,disallowContinuation:!0,nodeList:"formField",msgId:"show_forms_list",category:"overview"},showHeadingsList:{announce:!1,nodeList:"heading",disallowContinuation:!0,msgId:"show_headings_list",category:"overview"},showLandmarksList:{announce:!1,nodeList:"landmark",disallowContinuation:!0,msgId:"show_landmarks_list",category:"overview"},
+showLinksList:{announce:!1,nodeList:"link",disallowContinuation:!0,msgId:"show_links_list",category:"overview"},showTablesList:{announce:!1,nodeList:"table",disallowContinuation:!0,msgId:"show_tables_list",category:"overview"},startHistoryRecording:{announce:!1},stopHistoryRecording:{announce:!1},enableConsoleTts:{announce:!1},autorunner:{announce:!1},nextArticle:{forward:!0,findNext:"article"},nextButton:{forward:!0,findNext:"button",msgId:"next_button",category:"jump_commands"},nextCheckbox:{forward:!0,
+findNext:"checkbox",msgId:"next_checkbox",category:"jump_commands"},nextComboBox:{forward:!0,findNext:"combobox",msgId:"next_combo_box",category:"jump_commands"},nextControl:{forward:!0,findNext:"control"},nextEditText:{forward:!0,findNext:"editText",msgId:"next_edit_text",category:"jump_commands"},nextFormField:{forward:!0,findNext:"formField",msgId:"next_form_field",category:"jump_commands"},nextGraphic:{forward:!0,findNext:"graphic",msgId:"next_graphic",category:"jump_commands"},nextHeading:{forward:!0,
+findNext:"heading",msgId:"next_heading",category:"jump_commands"},nextHeading1:{forward:!0,findNext:"heading1",msgId:"next_heading1",category:"jump_commands"},nextHeading2:{forward:!0,findNext:"heading2",msgId:"next_heading2",category:"jump_commands"},nextHeading3:{forward:!0,findNext:"heading3",msgId:"next_heading3",category:"jump_commands"},nextHeading4:{forward:!0,findNext:"heading4",msgId:"next_heading4",category:"jump_commands"},nextHeading5:{forward:!0,findNext:"heading5",msgId:"next_heading5",
+category:"jump_commands"},nextHeading6:{forward:!0,findNext:"heading6",msgId:"next_heading6",category:"jump_commands"},nextLandmark:{forward:!0,findNext:"landmark",msgId:"next_landmark",category:"jump_commands"},nextLink:{forward:!0,findNext:"link",msgId:"next_link",category:"jump_commands"},nextList:{forward:!0,findNext:"list",msgId:"next_list",category:"jump_commands"},nextListItem:{forward:!0,findNext:"listItem",msgId:"next_list_item",category:"jump_commands"},nextMath:{forward:!0,findNext:"math",
+msgId:"next_math",category:"jump_commands"},nextMedia:{forward:!0,findNext:"media",msgId:"next_media",category:"jump_commands"},nextRadio:{forward:!0,findNext:"radio",msgId:"next_radio",category:"jump_commands"},nextSection:{forward:!0,findNext:"section"},nextSlider:{forward:!0,findNext:"slider"},nextTable:{forward:!0,findNext:"table",msgId:"next_table",category:"jump_commands"},nextVisitedLink:{forward:!0,findNext:"visitedLink",msgId:"next_visited_link",category:"jump_commands"},previousArticle:{backward:!0,
+findNext:"article"},previousButton:{backward:!0,findNext:"button",msgId:"previous_button",category:"jump_commands"},previousCheckbox:{backward:!0,findNext:"checkbox",msgId:"previous_checkbox",category:"jump_commands"},previousComboBox:{backward:!0,findNext:"combobox",msgId:"previous_combo_box",category:"jump_commands"},previousControl:{backward:!0,findNext:"control"},previousEditText:{backward:!0,findNext:"editText",msgId:"previous_edit_text",category:"jump_commands"},previousFormField:{backward:!0,
+findNext:"formField",msgId:"previous_form_field",category:"jump_commands"},previousGraphic:{backward:!0,findNext:"graphic",msgId:"previous_graphic",category:"jump_commands"},previousHeading:{backward:!0,findNext:"heading",msgId:"previous_heading",category:"jump_commands"},previousHeading1:{backward:!0,findNext:"heading1",msgId:"previous_heading1",category:"jump_commands"},previousHeading2:{backward:!0,findNext:"heading2",msgId:"previous_heading2",category:"jump_commands"},previousHeading3:{backward:!0,
+findNext:"heading3",msgId:"previous_heading3",category:"jump_commands"},previousHeading4:{backward:!0,findNext:"heading4",msgId:"previous_heading4",category:"jump_commands"},previousHeading5:{backward:!0,findNext:"heading5",msgId:"previous_heading5",category:"jump_commands"},previousHeading6:{backward:!0,findNext:"heading6",msgId:"previous_heading6",category:"jump_commands"},previousLandmark:{backward:!0,findNext:"landmark",msgId:"previous_landmark",category:"jump_commands"},previousLink:{backward:!0,
+findNext:"link",msgId:"previous_link",category:"jump_commands"},previousList:{backward:!0,findNext:"list",msgId:"previous_list",category:"jump_commands"},previousListItem:{backward:!0,findNext:"listItem",msgId:"previous_list_item",category:"jump_commands"},previousMath:{backward:!0,findNext:"math",msgId:"previous_math",category:"jump_commands"},previousMedia:{backward:!0,findNext:"media",msgId:"previous_media",category:"jump_commands"},previousRadio:{backward:!0,findNext:"radio",msgId:"previous_radio",
+category:"jump_commands"},previousSection:{backward:!0,findNext:"section"},previousSlider:{backward:!0,findNext:"slider"},previousTable:{backward:!0,findNext:"table",msgId:"previous_table",category:"jump_commands"},previousVisitedLink:{backward:!0,findNext:"visitedLink",msgId:"previous_visited_link",category:"jump_commands"},announceHeaders:{announce:!1,msgId:"announce_headers",category:"tables"},speakTableLocation:{announce:!1,msgId:"speak_table_location",category:"tables"},goToFirstCell:{announce:!0,
+msgId:"skip_to_beginning",category:"tables"},goToLastCell:{announce:!0,msgId:"skip_to_end",category:"tables"},goToRowFirstCell:{announce:!0,msgId:"skip_to_row_beginning",category:"tables"},goToRowLastCell:{announce:!0,msgId:"skip_to_row_end",category:"tables"},goToColFirstCell:{announce:!0,msgId:"skip_to_col_beginning",category:"tables"},goToColLastCell:{announce:!0,msgId:"skip_to_col_end",category:"tables"},previousRow:{backward:!0,announce:!0,skipInput:!0},previousCol:{backward:!0,announce:!0,skipInput:!0},
+nextRow:{forward:!0,announce:!0,skipInput:!0},nextCol:{forward:!0,announce:!0,skipInput:!0},enterShifter:{announce:!0,msgId:"enter_content",category:"navigation"},exitShifter:{announce:!0,msgId:"exit_content",category:"navigation"},exitShifterContent:{announce:!0},openLongDesc:{announce:!1,msgId:"open_long_desc",category:"information"},pauseAllMedia:{announce:!1,msgId:"pause_all_media",category:"information"},toggleSemantics:{announce:!1,msgId:"toggle_semantics",category:"information"},routing:{announce:!0,
+msgId:"braille_routing",category:"braille"},pan_left:{backward:!0,announce:!0,msgId:"braille_pan_left",category:"braille"},pan_right:{forward:!0,announce:!0,msgId:"braille_pan_right",category:"braille"},line_up:{backward:!0,announce:!0,msgId:"braille_line_up",category:"braille"},line_down:{forward:!0,announce:!0,msgId:"braille_line_down",category:"braille"},top:{forward:!0,announce:!0,msgId:"braille_top",category:"braille"},bottom:{backward:!0,announce:!0,msgId:"braille_bottom",category:"braille"},
+debug:{announce:!1},nop:{announce:!1}};
+cvox.CommandStore.NODE_INFO_MAP={checkbox:{predicate:"checkboxPredicate",forwardError:"no_next_checkbox",backwardError:"no_previous_checkbox",typeMsg:"aria_role_checkbox"},radio:{predicate:"radioPredicate",forwardError:"no_next_radio_button",backwardError:"no_previous_radio_button",typeMsg:"aria_role_radio"},slider:{predicate:"sliderPredicate",forwardError:"no_next_slider",backwardError:"no_previous_slider",typeMsg:"aria_role_slider"},graphic:{predicate:"graphicPredicate",forwardError:"no_next_graphic",
+backwardError:"no_previous_graphic",typeMsg:"UNUSED"},article:{predicate:"articlePredicate",forwardError:"no_next_ARTICLE",backwardError:"no_previous_ARTICLE",typeMsg:"TAG_ARTICLE"},button:{predicate:"buttonPredicate",forwardError:"no_next_button",backwardError:"no_previous_button",typeMsg:"aria_role_button"},combobox:{predicate:"comboBoxPredicate",forwardError:"no_next_combo_box",backwardError:"no_previous_combo_box",typeMsg:"aria_role_combobox"},editText:{predicate:"editTextPredicate",forwardError:"no_next_edit_text",
+backwardError:"no_previous_edit_text",typeMsg:"input_type_text"},heading:{predicate:"headingPredicate",forwardError:"no_next_heading",backwardError:"no_previous_heading",typeMsg:"aria_role_heading"},heading1:{predicate:"heading1Predicate",forwardError:"no_next_heading_1",backwardError:"no_previous_heading_1"},heading2:{predicate:"heading2Predicate",forwardError:"no_next_heading_2",backwardError:"no_previous_heading_2"},heading3:{predicate:"heading3Predicate",forwardError:"no_next_heading_3",backwardError:"no_previous_heading_3"},
+heading4:{predicate:"heading4Predicate",forwardError:"no_next_heading_4",backwardError:"no_previous_heading_4"},heading5:{predicate:"heading5Predicate",forwardError:"no_next_heading_5",backwardError:"no_previous_heading_5"},heading6:{predicate:"heading6Predicate",forwardError:"no_next_heading_6",backwardError:"no_previous_heading_6"},link:{predicate:"linkPredicate",forwardError:"no_next_link",backwardError:"no_previous_link",typeMsg:"aria_role_link"},table:{predicate:"tablePredicate",forwardError:"no_next_table",
+backwardError:"no_previous_table",typeMsg:"table_strategy"},visitedLink:{predicate:"visitedLinkPredicate",forwardError:"no_next_visited_link",backwardError:"no_previous_visited_link",typeMsg:"tag_link"},list:{predicate:"listPredicate",forwardError:"no_next_list",backwardError:"no_previous_list",typeMsg:"aria_role_list"},listItem:{predicate:"listItemPredicate",forwardError:"no_next_list_item",backwardError:"no_previous_list_item",typeMsg:"aria_role_listitem"},formField:{predicate:"formFieldPredicate",
+forwardError:"no_next_form_field",backwardError:"no_previous_form_field",typeMsg:"aria_role_form"},landmark:{predicate:"landmarkPredicate",forwardError:"no_next_landmark",backwardError:"no_previous_landmark",typeMsg:"role_landmark"},math:{predicate:"mathPredicate",forwardError:"no_next_math",backwardError:"no_previous_math",typeMsg:"math_expr"},media:{predicate:"mediaPredicate",forwardError:"no_next_media_widget",backwardError:"no_previous_media_widget"},section:{predicate:"sectionPredicate",forwardError:"no_next_section",
+backwardError:"no_previous_section"},control:{predicate:"controlPredicate",forwardError:"no_next_control",backwardError:"no_previous_control"}};cvox.Widget=function(){this.active=!1;this.initialNode=null;cvox.Widget.ref_&&cvox.Widget.ref_.isActive()||(cvox.Widget.ref_=this)};cvox.Widget.prototype.isActive=function(){return this.active};
+cvox.Widget.prototype.show=function(){this.isActive()&&this.hide(!0);this.onKeyDown=goog.bind(this.onKeyDown,this);this.onKeyPress=goog.bind(this.onKeyPress,this);window.addEventListener("keydown",this.onKeyDown,!0);window.addEventListener("keypress",this.onKeyPress,!0);this.initialNode=cvox.ChromeVox.navigationManager.getCurrentNode();this.isStickyOn=cvox.ChromeVox.isStickyOn;this.getNameMsg()&&this.getHelpMsg()&&cvox.$m(this.getNameMsg()).andPause().andMessage(this.getHelpMsg()).speakFlush();cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.OBJECT_OPEN);
+this.active=!0};cvox.Widget.prototype.hide=function(a){window.removeEventListener("keypress",this.onKeyPress,!0);window.removeEventListener("keydown",this.onKeyDown,!0);cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.OBJECT_CLOSE);a||(this.initialNode=1==this.initialNode.nodeType?this.initialNode:this.initialNode.parentNode,cvox.ApiImplementation.syncToNode(this.initialNode,!0,cvox.AbstractTts.QUEUE_MODE_QUEUE));this.active=!1};
+cvox.Widget.prototype.toggle=function(){this.isActive()?this.hide():this.show()};cvox.Widget.prototype.onKeyDown=function(a){if(27==a.keyCode)return this.hide(),a.preventDefault(),!0;if(9==a.keyCode)return this.hide(),!0;17==a.keyCode&&cvox.ChromeVox.tts.stop();a.stopPropagation();return!0};cvox.Widget.prototype.onKeyPress=function(){return!1};cvox.Widget.isActive=function(){return cvox.Widget.ref_&&cvox.Widget.ref_.isActive()||!1};cvox.NavDescription=function(a){this.context=a.context?a.context:"";this.text=a.text?a.text:"";this.userValue=a.userValue?a.userValue:"";this.annotation=a.annotation?a.annotation:"";this.earcons=a.earcons?a.earcons:[];this.personality=a.personality};cvox.NavDescription.prototype.isEmpty=function(){return 0==this.context.length&&0==this.earcons.length&&0==this.text.length&&0==this.userValue.length&&0==this.annotation.length};
+cvox.NavDescription.prototype.toString=function(){return'NavDescription(context="'+this.context+'" text="'+this.text+'" userValue="'+this.userValue+'" annotation="'+this.annotation+'")'};cvox.NavDescription.prototype.pushEarcon=function(a){this.earcons.push(a)};
+cvox.NavDescription.prototype.speak=function(a,b,c){function d(){var a={},b=cvox.AbstractTts.PERSONALITY_ANNOTATION,c;for(c in b)a[c]=b[c];return a}var e=[];this.context&&(e.push([this.context,a,d()]),a=1);e.push([this.text,a,this.personality?this.personality:{}]);a=1;this.userValue&&e.push([this.userValue,a,{}]);this.annotation&&e.push([this.annotation,a,d()]);a=e.length;for(var f=0;f<a;f++)0==f&&b&&(e[f][2].startCallback=b),f==a-1&&c&&(e[f][2].endCallback=c),cvox.ChromeVox.tts.speak.apply(cvox.ChromeVox.tts,
+e[f])};cvox.NavDescription.prototype.equals=function(a){return this.context==a.context&&this.text==a.text&&this.userValue==a.userValue&&this.annotation==a.annotation};cvox.NavMathDescription=function(a){cvox.NavDescription.call(this,a);var b=this.personality?this.personality:{},c={};c.domain=a.domain?a.domain:"";c.style=a.style?a.style:"";b.math=c;this.personality=b};goog.inherits(cvox.NavMathDescription,cvox.NavDescription);cvox.SemanticUtil=function(){};cvox.SemanticUtil.objectsToKeys=function(a){a=Array.prototype.slice.call(arguments,0);var b=[];return b.concat.apply(b,a.map(Object.keys))};cvox.SemanticUtil.objectsToValues=function(a){a=Array.prototype.slice.call(arguments,0);var b=[],c=function(a){for(var c in a)b.push(a[c])};a.forEach(c);return b};
+cvox.SemanticUtil.unicodeToNumber=function(a){if(!a||2<a.length)return null;if(2==a.length){var b=a.charCodeAt(0);a=a.charCodeAt(1);return 55296<=b&&56319>=b&&!isNaN(a)?1024*(b-55296)+(a-56320)+65536:null}return a.charCodeAt(0)};cvox.SemanticUtil.numberToUnicode=function(a){if(65536<=a){var b=(a-65536)/1024+55296;a=(a-65536)%1024+56320;return String.fromCharCode(b,a)}return String.fromCharCode(a)};cvox.SemanticUtil.tagName=function(a){return a.tagName.toUpperCase()};cvox.SemanticUtil.IGNORETAGS="MERROR MPHANTOM MSPACE MACTION MALIGNGROUP MALIGNMARK MACTION".split(" ");
+cvox.SemanticUtil.EMPTYTAGS=["MATH","MROW","MPADDED","MSTYLE"];cvox.SemanticUtil.purgeNodes=function(a){for(var b=[],c=0,d;d=a[c];c++){var e=cvox.SemanticUtil.tagName(d);-1==cvox.SemanticUtil.IGNORETAGS.indexOf(e)&&(-1!=cvox.SemanticUtil.EMPTYTAGS.indexOf(e)&&0==d.childNodes.length||b.push(d))}return b};cvox.SemanticAttr=function(){this.generalPunctuations="!\"#%&'*,:;?@\\\u00a1\u00a7\u00b6\u00b7\u00bf\u2017\u2020\u2021\u2022\u2023\u2024\u2025\u2027\u2030\u2031\u2038\u203b\u203c\u203d\u203e\u2041\u2042\u2043\u2047\u2048\u2049\u204b\u204c\u204d\u204e\u204f\u2050\u2051\u2053\u2055\u2056\u2058\u2059\u205a\u205b\u205c\u205d\u205e\ufe10\ufe13\ufe14\ufe15\ufe16\ufe30\ufe45\ufe46\ufe49\ufe4a\ufe4b\ufe4c\ufe50\ufe54\ufe55\ufe56\ufe57\ufe5f\ufe60\ufe61\ufe68\ufe6a\ufe6b\uff01\uff02\uff03\uff05\uff06\uff07\uff0a\uff0c\uff0f\uff1a\uff1b\uff1f\uff20\uff3c".split("");
+this.invisibleComma_=cvox.SemanticUtil.numberToUnicode(8291);this.generalPunctuations.push(this.invisibleComma_);this.ellipses="\u2026\u22ee\u22ef\u22f0\u22f1\ufe19".split("");this.fullStops=[".","\ufe52","\uff0e"];this.dashes="\u2012\u2013\u2014\u2015\u301c\ufe31\ufe32\ufe58".split("");this.primes="\u2032\u2033\u2034\u2035\u2036\u2037\u2057".split("");this.openClosePairs={"(":")","[":"]","{":"}","\u2045":"\u2046","\u2329":"\u232a","\u2768":"\u2769","\u276a":"\u276b","\u276c":"\u276d","\u276e":"\u276f",
+"\u2770":"\u2771","\u2772":"\u2773","\u2774":"\u2775","\u27c5":"\u27c6","\u27e6":"\u27e7","\u27e8":"\u27e9","\u27ea":"\u27eb","\u27ec":"\u27ed","\u27ee":"\u27ef","\u2983":"\u2984","\u2985":"\u2986","\u2987":"\u2988","\u2989":"\u298a","\u298b":"\u298c","\u298d":"\u298e","\u298f":"\u2990","\u2991":"\u2992","\u2993":"\u2994","\u2995":"\u2996","\u2997":"\u2998","\u29d8":"\u29d9","\u29da":"\u29db","\u29fc":"\u29fd","\u2e22":"\u2e23","\u2e24":"\u2e25","\u2e26":"\u2e27","\u2e28":"\u2e29","\u3008":"\u3009",
+"\u300a":"\u300b","\u300c":"\u300d","\u300e":"\u300f","\u3010":"\u3011","\u3014":"\u3015","\u3016":"\u3017","\u3018":"\u3019","\u301a":"\u301b","\u301d":"\u301e","\ufd3e":"\ufd3f","\ufe17":"\ufe18","\ufe59":"\ufe5a","\ufe5b":"\ufe5c","\ufe5d":"\ufe5e","\uff08":"\uff09","\uff3b":"\uff3d","\uff5b":"\uff5d","\uff5f":"\uff60","\uff62":"\uff63","\u2308":"\u2309","\u230a":"\u230b","\u230c":"\u230d","\u230e":"\u230f","\u231c":"\u231d","\u231e":"\u231f","\u239b":"\u239e","\u239c":"\u239f","\u239d":"\u23a0",
+"\u23a1":"\u23a4","\u23a2":"\u23a5","\u23a3":"\u23a6","\u23a7":"\u23ab","\u23a8":"\u23ac","\u23a9":"\u23ad","\u23b0":"\u23b1","\u23b8":"\u23b9"};this.topBottomPairs={"\u23b4":"\u23b5","\u23dc":"\u23dd","\u23de":"\u23df","\u23e0":"\u23e1","\ufe35":"\ufe36","\ufe37":"\ufe38","\ufe39":"\ufe3a","\ufe3b":"\ufe3c","\ufe3d":"\ufe3e","\ufe3f":"\ufe40","\ufe41":"\ufe42","\ufe43":"\ufe44","\ufe47":"\ufe48"};this.leftFences=cvox.SemanticUtil.objectsToKeys(this.openClosePairs);this.rightFences=cvox.SemanticUtil.objectsToValues(this.openClosePairs);
+this.rightFences.push("\u301f");this.topFences=cvox.SemanticUtil.objectsToKeys(this.topBottomPairs);this.bottomFences=cvox.SemanticUtil.objectsToValues(this.topBottomPairs);this.neutralFences="|\u00a6\u2016\u2758\u2980\u2af4\uffe4\uff5c".split("");this.capitalLatin="ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");this.smallLatin="abcdefghijklmnopqrstuvwxyz\u0131\u0237".split("");this.capitalLatinFullWidth="\uff21\uff22\uff23\uff24\uff25\uff26\uff27\uff28\uff29\uff2a\uff2b\uff2c\uff2d\uff2e\uff2f\uff30\uff31\uff32\uff33\uff34\uff35\uff36\uff37\uff38\uff39\uff3a".split("");
+this.smallLatinFullWidth="\uff41\uff42\uff43\uff44\uff45\uff46\uff47\uff48\uff49\uff4a\uff4b\uff4c\uff4d\uff4e\uff4f\uff50\uff51\uff52\uff53\uff54\uff55\uff56\uff57\uff58\uff59\uff5a".split("");this.capitalLatinBold="\ud835\udc00 \ud835\udc01 \ud835\udc02 \ud835\udc03 \ud835\udc04 \ud835\udc05 \ud835\udc06 \ud835\udc07 \ud835\udc08 \ud835\udc09 \ud835\udc0a \ud835\udc0b \ud835\udc0c \ud835\udc0d \ud835\udc0e \ud835\udc0f \ud835\udc10 \ud835\udc11 \ud835\udc12 \ud835\udc13 \ud835\udc14 \ud835\udc15 \ud835\udc16 \ud835\udc17 \ud835\udc18 \ud835\udc19".split(" ");
+this.smallLatinBold="\ud835\udc1a \ud835\udc1b \ud835\udc1c \ud835\udc1d \ud835\udc1e \ud835\udc1f \ud835\udc20 \ud835\udc21 \ud835\udc22 \ud835\udc23 \ud835\udc24 \ud835\udc25 \ud835\udc26 \ud835\udc27 \ud835\udc28 \ud835\udc29 \ud835\udc2a \ud835\udc2b \ud835\udc2c \ud835\udc2d \ud835\udc2e \ud835\udc2f \ud835\udc30 \ud835\udc31 \ud835\udc32 \ud835\udc33".split(" ");this.capitalLatinItalic="\ud835\udc34 \ud835\udc35 \ud835\udc36 \ud835\udc37 \ud835\udc38 \ud835\udc39 \ud835\udc3a \ud835\udc3b \ud835\udc3c \ud835\udc3d \ud835\udc3e \ud835\udc3f \ud835\udc40 \ud835\udc41 \ud835\udc42 \ud835\udc43 \ud835\udc44 \ud835\udc45 \ud835\udc46 \ud835\udc47 \ud835\udc48 \ud835\udc49 \ud835\udc4a \ud835\udc4b \ud835\udc4c \ud835\udc4d".split(" ");
+this.smallLatinItalic="\ud835\udc4e \ud835\udc4f \ud835\udc50 \ud835\udc51 \ud835\udc52 \ud835\udc53 \ud835\udc54 \u210e \ud835\udc56 \ud835\udc57 \ud835\udc58 \ud835\udc59 \ud835\udc5a \ud835\udc5b \ud835\udc5c \ud835\udc5d \ud835\udc5e \ud835\udc5f \ud835\udc60 \ud835\udc61 \ud835\udc62 \ud835\udc63 \ud835\udc64 \ud835\udc65 \ud835\udc66 \ud835\udc67 \ud835\udea4 \ud835\udea5".split(" ");this.capitalLatinScript="\ud835\udc9c \u212c \ud835\udc9e \ud835\udc9f \u2130 \u2131 \ud835\udca2 \u210b \u2110 \ud835\udca5 \ud835\udca6 \u2112 \u2133 \ud835\udca9 \ud835\udcaa \ud835\udcab \ud835\udcac \u211b \ud835\udcae \ud835\udcaf \ud835\udcb0 \ud835\udcb1 \ud835\udcb2 \ud835\udcb3 \ud835\udcb4 \ud835\udcb5 \u2118".split(" ");
+this.smallLatinScript="\ud835\udcb6 \ud835\udcb7 \ud835\udcb8 \ud835\udcb9 \u212f \ud835\udcbb \u210a \ud835\udcbd \ud835\udcbe \ud835\udcbf \ud835\udcc0 \ud835\udcc1 \ud835\udcc2 \ud835\udcc3 \u2134 \ud835\udcc5 \ud835\udcc6 \ud835\udcc7 \ud835\udcc8 \ud835\udcc9 \ud835\udcca \ud835\udccb \ud835\udccc \ud835\udccd \ud835\udcce \ud835\udccf \u2113".split(" ");this.capitalLatinBoldScript="\ud835\udcd0 \ud835\udcd1 \ud835\udcd2 \ud835\udcd3 \ud835\udcd4 \ud835\udcd5 \ud835\udcd6 \ud835\udcd7 \ud835\udcd8 \ud835\udcd9 \ud835\udcda \ud835\udcdb \ud835\udcdc \ud835\udcdd \ud835\udcde \ud835\udcdf \ud835\udce0 \ud835\udce1 \ud835\udce2 \ud835\udce3 \ud835\udce4 \ud835\udce5 \ud835\udce6 \ud835\udce7 \ud835\udce8 \ud835\udce9".split(" ");
+this.smallLatinBoldScript="\ud835\udcea \ud835\udceb \ud835\udcec \ud835\udced \ud835\udcee \ud835\udcef \ud835\udcf0 \ud835\udcf1 \ud835\udcf2 \ud835\udcf3 \ud835\udcf4 \ud835\udcf5 \ud835\udcf6 \ud835\udcf7 \ud835\udcf8 \ud835\udcf9 \ud835\udcfa \ud835\udcfb \ud835\udcfc \ud835\udcfd \ud835\udcfe \ud835\udcff \ud835\udd00 \ud835\udd01 \ud835\udd02 \ud835\udd03".split(" ");this.capitalLatinFraktur="\ud835\udd04 \ud835\udd05 \u212d \ud835\udd07 \ud835\udd08 \ud835\udd09 \ud835\udd0a \u210c \u2111 \ud835\udd0d \ud835\udd0e \ud835\udd0f \ud835\udd10 \ud835\udd11 \ud835\udd12 \ud835\udd13 \ud835\udd14 \u211c \ud835\udd16 \ud835\udd17 \ud835\udd18 \ud835\udd19 \ud835\udd1a \ud835\udd1b \ud835\udd1c \u2128".split(" ");
+this.smallLatinFraktur="\ud835\udd1e \ud835\udd1f \ud835\udd20 \ud835\udd21 \ud835\udd22 \ud835\udd23 \ud835\udd24 \ud835\udd25 \ud835\udd26 \ud835\udd27 \ud835\udd28 \ud835\udd29 \ud835\udd2a \ud835\udd2b \ud835\udd2c \ud835\udd2d \ud835\udd2e \ud835\udd2f \ud835\udd30 \ud835\udd31 \ud835\udd32 \ud835\udd33 \ud835\udd34 \ud835\udd35 \ud835\udd36 \ud835\udd37".split(" ");this.capitalLatinDoubleStruck="\ud835\udd38 \ud835\udd39 \u2102 \ud835\udd3b \ud835\udd3c \ud835\udd3d \ud835\udd3e \u210d \ud835\udd40 \ud835\udd41 \ud835\udd42 \ud835\udd43 \ud835\udd44 \u2115 \ud835\udd46 \u2119 \u211a \u211d \ud835\udd4a \ud835\udd4b \ud835\udd4c \ud835\udd4d \ud835\udd4e \ud835\udd4f \ud835\udd50 \u2124".split(" ");
+this.smallLatinDoubleStruck="\ud835\udd52 \ud835\udd53 \ud835\udd54 \ud835\udd55 \ud835\udd56 \ud835\udd57 \ud835\udd58 \ud835\udd59 \ud835\udd5a \ud835\udd5b \ud835\udd5c \ud835\udd5d \ud835\udd5e \ud835\udd5f \ud835\udd60 \ud835\udd61 \ud835\udd62 \ud835\udd63 \ud835\udd64 \ud835\udd65 \ud835\udd66 \ud835\udd67 \ud835\udd68 \ud835\udd69 \ud835\udd6a \ud835\udd6b".split(" ");this.capitalLatinBoldFraktur="\ud835\udd6c \ud835\udd6d \ud835\udd6e \ud835\udd6f \ud835\udd70 \ud835\udd71 \ud835\udd72 \ud835\udd73 \ud835\udd74 \ud835\udd75 \ud835\udd76 \ud835\udd77 \ud835\udd78 \ud835\udd79 \ud835\udd7a \ud835\udd7b \ud835\udd7c \ud835\udd7d \ud835\udd7e \ud835\udd7f \ud835\udd80 \ud835\udd81 \ud835\udd82 \ud835\udd83 \ud835\udd84 \ud835\udd85".split(" ");
+this.smallLatinBoldFraktur="\ud835\udd86 \ud835\udd87 \ud835\udd88 \ud835\udd89 \ud835\udd8a \ud835\udd8b \ud835\udd8c \ud835\udd8d \ud835\udd8e \ud835\udd8f \ud835\udd90 \ud835\udd91 \ud835\udd92 \ud835\udd93 \ud835\udd94 \ud835\udd95 \ud835\udd96 \ud835\udd97 \ud835\udd98 \ud835\udd99 \ud835\udd9a \ud835\udd9b \ud835\udd9c \ud835\udd9d \ud835\udd9e \ud835\udd9f".split(" ");this.capitalLatinSansSerif="\ud835\udda0 \ud835\udda1 \ud835\udda2 \ud835\udda3 \ud835\udda4 \ud835\udda5 \ud835\udda6 \ud835\udda7 \ud835\udda8 \ud835\udda9 \ud835\uddaa \ud835\uddab \ud835\uddac \ud835\uddad \ud835\uddae \ud835\uddaf \ud835\uddb0 \ud835\uddb1 \ud835\uddb2 \ud835\uddb3 \ud835\uddb4 \ud835\uddb5 \ud835\uddb6 \ud835\uddb7 \ud835\uddb8 \ud835\uddb9".split(" ");
+this.smallLatinSansSerif="\ud835\uddba \ud835\uddbb \ud835\uddbc \ud835\uddbd \ud835\uddbe \ud835\uddbf \ud835\uddc0 \ud835\uddc1 \ud835\uddc2 \ud835\uddc3 \ud835\uddc4 \ud835\uddc5 \ud835\uddc6 \ud835\uddc7 \ud835\uddc8 \ud835\uddc9 \ud835\uddca \ud835\uddcb \ud835\uddcc \ud835\uddcd \ud835\uddce \ud835\uddcf \ud835\uddd0 \ud835\uddd1 \ud835\uddd2 \ud835\uddd3".split(" ");this.capitalLatinSansSerifBold="\ud835\uddd4 \ud835\uddd5 \ud835\uddd6 \ud835\uddd7 \ud835\uddd8 \ud835\uddd9 \ud835\uddda \ud835\udddb \ud835\udddc \ud835\udddd \ud835\uddde \ud835\udddf \ud835\udde0 \ud835\udde1 \ud835\udde2 \ud835\udde3 \ud835\udde4 \ud835\udde5 \ud835\udde6 \ud835\udde7 \ud835\udde8 \ud835\udde9 \ud835\uddea \ud835\uddeb \ud835\uddec \ud835\udded".split(" ");
+this.smallLatinSansSerifBold="\ud835\uddee \ud835\uddef \ud835\uddf0 \ud835\uddf1 \ud835\uddf2 \ud835\uddf3 \ud835\uddf4 \ud835\uddf5 \ud835\uddf6 \ud835\uddf7 \ud835\uddf8 \ud835\uddf9 \ud835\uddfa \ud835\uddfb \ud835\uddfc \ud835\uddfd \ud835\uddfe \ud835\uddff \ud835\ude00 \ud835\ude01 \ud835\ude02 \ud835\ude03 \ud835\ude04 \ud835\ude05 \ud835\ude06 \ud835\ude07".split(" ");this.capitalLatinSansSerifItalic="\ud835\ude08 \ud835\ude09 \ud835\ude0a \ud835\ude0b \ud835\ude0c \ud835\ude0d \ud835\ude0e \ud835\ude0f \ud835\ude10 \ud835\ude11 \ud835\ude12 \ud835\ude13 \ud835\ude14 \ud835\ude15 \ud835\ude16 \ud835\ude17 \ud835\ude18 \ud835\ude19 \ud835\ude1a \ud835\ude1b \ud835\ude1c \ud835\ude1d \ud835\ude1e \ud835\ude1f \ud835\ude20 \ud835\ude21".split(" ");
+this.smallLatinSansSerifItalic="\ud835\ude22 \ud835\ude23 \ud835\ude24 \ud835\ude25 \ud835\ude26 \ud835\ude27 \ud835\ude28 \ud835\ude29 \ud835\ude2a \ud835\ude2b \ud835\ude2c \ud835\ude2d \ud835\ude2e \ud835\ude2f \ud835\ude30 \ud835\ude31 \ud835\ude32 \ud835\ude33 \ud835\ude34 \ud835\ude35 \ud835\ude36 \ud835\ude37 \ud835\ude38 \ud835\ude39 \ud835\ude3a \ud835\ude3b".split(" ");this.capitalLatinMonospace="\ud835\ude70 \ud835\ude71 \ud835\ude72 \ud835\ude73 \ud835\ude74 \ud835\ude75 \ud835\ude76 \ud835\ude77 \ud835\ude78 \ud835\ude79 \ud835\ude7a \ud835\ude7b \ud835\ude7c \ud835\ude7d \ud835\ude7e \ud835\ude7f \ud835\ude80 \ud835\ude81 \ud835\ude82 \ud835\ude83 \ud835\ude84 \ud835\ude85 \ud835\ude86 \ud835\ude87 \ud835\ude88 \ud835\ude89".split(" ");
+this.smallLatinMonospace="\ud835\ude8a \ud835\ude8b \ud835\ude8c \ud835\ude8d \ud835\ude8e \ud835\ude8f \ud835\ude90 \ud835\ude91 \ud835\ude92 \ud835\ude93 \ud835\ude94 \ud835\ude95 \ud835\ude96 \ud835\ude97 \ud835\ude98 \ud835\ude99 \ud835\ude9a \ud835\ude9b \ud835\ude9c \ud835\ude9d \ud835\ude9e \ud835\ude9f \ud835\udea0 \ud835\udea1 \ud835\udea2 \ud835\udea3".split(" ");this.latinDoubleStruckItalic=["\u2145","\u2146","\u2147","\u2148","\u2149"];this.capitalGreek="\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039a\u039b\u039c\u039d\u039e\u039f\u03a0\u03a1\u03a3\u03a4\u03a5\u03a6\u03a7\u03a8\u03a9".split("");
+this.smallGreek="\u03b1\u03b2\u03b3\u03b4\u03b5\u03b6\u03b7\u03b8\u03b9\u03ba\u03bb\u03bc\u03bd\u03be\u03bf\u03c0\u03c1\u03c2\u03c3\u03c4\u03c5\u03c6\u03c7\u03c8\u03c9".split("");this.capitalGreekBold="\ud835\udea8 \ud835\udea9 \ud835\udeaa \ud835\udeab \ud835\udeac \ud835\udead \ud835\udeae \ud835\udeaf \ud835\udeb0 \ud835\udeb1 \ud835\udeb2 \ud835\udeb3 \ud835\udeb4 \ud835\udeb5 \ud835\udeb6 \ud835\udeb7 \ud835\udeb8 \ud835\udeba \ud835\udebb \ud835\udebc \ud835\udebd \ud835\udebe \ud835\udebf \ud835\udec0".split(" ");
+this.smallGreekBold="\ud835\udec2 \ud835\udec3 \ud835\udec4 \ud835\udec5 \ud835\udec6 \ud835\udec7 \ud835\udec8 \ud835\udec9 \ud835\udeca \ud835\udecb \ud835\udecc \ud835\udecd \ud835\udece \ud835\udecf \ud835\uded0 \ud835\uded1 \ud835\uded2 \ud835\uded3 \ud835\uded4 \ud835\uded5 \ud835\uded6 \ud835\uded7 \ud835\uded8 \ud835\uded9 \ud835\udeda".split(" ");this.capitalGreekItalic="\ud835\udee2 \ud835\udee3 \ud835\udee4 \ud835\udee5 \ud835\udee6 \ud835\udee7 \ud835\udee8 \ud835\udee9 \ud835\udeea \ud835\udeeb \ud835\udeec \ud835\udeed \ud835\udeee \ud835\udeef \ud835\udef0 \ud835\udef1 \ud835\udef2 \ud835\udef4 \ud835\udef5 \ud835\udef6 \ud835\udef7 \ud835\udef8 \ud835\udef9 \ud835\udefa".split(" ");
+this.smallGreekItalic="\ud835\udefc \ud835\udefd \ud835\udefe \ud835\udeff \ud835\udf00 \ud835\udf01 \ud835\udf02 \ud835\udf03 \ud835\udf04 \ud835\udf05 \ud835\udf06 \ud835\udf07 \ud835\udf08 \ud835\udf09 \ud835\udf0a \ud835\udf0b \ud835\udf0c \ud835\udf0d \ud835\udf0e \ud835\udf0f \ud835\udf10 \ud835\udf11 \ud835\udf12 \ud835\udf13 \ud835\udf14".split(" ");this.capitalGreekSansSerifBold="\ud835\udf56 \ud835\udf57 \ud835\udf58 \ud835\udf59 \ud835\udf5a \ud835\udf5b \ud835\udf5c \ud835\udf5d \ud835\udf5e \ud835\udf5f \ud835\udf60 \ud835\udf61 \ud835\udf62 \ud835\udf63 \ud835\udf64 \ud835\udf65 \ud835\udf66 \ud835\udf68 \ud835\udf69 \ud835\udf6a \ud835\udf6b \ud835\udf6c \ud835\udf6d \ud835\udf6e".split(" ");
+this.smallGreekSansSerifBold="\ud835\udf70 \ud835\udf71 \ud835\udf72 \ud835\udf73 \ud835\udf74 \ud835\udf75 \ud835\udf76 \ud835\udf77 \ud835\udf78 \ud835\udf79 \ud835\udf7a \ud835\udf7b \ud835\udf7c \ud835\udf7d \ud835\udf7e \ud835\udf7f \ud835\udf80 \ud835\udf81 \ud835\udf82 \ud835\udf83 \ud835\udf84 \ud835\udf85 \ud835\udf86 \ud835\udf87 \ud835\udf88".split(" ");this.greekDoubleStruck=["\u213c","\u213d","\u213e","\u213f"];this.hebrewLetters=["\u2135","\u2136","\u2137","\u2138"];this.additions="+\u00b1\u2213\u2214\u2227\u2228\u2229\u222a\u228c\u2293\u2294\u229d\u229e\u22a4\u22a5\u22ba\u22bb\u22bc\u22c4\u22ce\u22cf\u22d2\u22d3\u25b3\u25b7\u25bd\u25c1\u2a5e\u2295".split("");
+this.invisiblePlus_=cvox.SemanticUtil.numberToUnicode(8292);this.additions.push(this.invisiblePlus_);this.multiplications="\u2020\u2021\u2210\u2217\u2218\u2219\u2240\u229a\u229b\u22a0\u22a1\u22c5\u22c6\u22c7\u22c9\u22ca\u22cb\u22cc\u25cb".split("");this.invisibleTimes_=cvox.SemanticUtil.numberToUnicode(8290);this.multiplications.push(this.invisibleTimes_);this.subtractions="-\u2052\u207b\u208b\u2212\u2216\u2238\u2242\u2296\u229f\u2796\u2a29\u2a2a\u2a2b\u2a2c\u2a3a\u2a41\u2a6c\ufe63\uff0d\u2010\u2011".split("");
+this.divisions="/\u00f7\u2044\u2215\u2298\u27cc\u29bc\u2a38".split("");this.functionApplication_=cvox.SemanticUtil.numberToUnicode(8289);this.equalities="=~\u207c\u208c\u223c\u223d\u2243\u2245\u2248\u224a\u224b\u224c\u224d\u224e\u2251\u2252\u2253\u2254\u2255\u2256\u2257\u2258\u2259\u225a\u225b\u225c\u225d\u225e\u225f\u2261\u2263\u29e4\u2a66\u2a6e\u2a6f\u2a70\u2a71\u2a72\u2a73\u2a74\u2a75\u2a76\u2a77\u2a78\u22d5\u2a6d\u2a6a\u2a6b\u2a6c\ufe66\uff1d".split("");this.inequalities="<>\u2241\u2242\u2244\u2246\u2247\u2249\u224f\u2250\u2260\u2262\u2264\u2265\u2266\u2267\u2268\u2269\u226a\u226b\u226c\u226d\u226e\u226f\u2270\u2271\u2272\u2273\u2274\u2275\u2276\u2277\u2278\u2279\u227a\u227b\u227c\u227d\u227e\u227f\u2280\u2281\u22d6\u22d7\u22d8\u22d9\u22da\u22db\u22dc\u22dd\u22de\u22df\u22e0\u22e1\u22e2\u22e3\u22e4\u22e5\u22e6\u22e7\u22e8\u22e9\u2a79\u2a7a\u2a7b\u2a7c\u2a7d\u2a7e\u2a7f\u2a80\u2a81\u2a82\u2a83\u2a84\u2a85\u2a86\u2a87\u2a88\u2a89\u2a8a\u2a8b\u2a8c\u2a8d\u2a8e\u2a8f\u2a90\u2a91\u2a92\u2a93\u2a94\u2a95\u2a96\u2a97\u2a98\u2a99\u2a9a\u2a9b\u2a9c\u2a9d\u2a9e\u2a9f\u2aa0\u2aa1\u2aa2\u2aa3\u2aa4\u2aa5\u2aa6\u2aa7\u2aa8\u2aa9\u2aaa\u2aab\u2aac\u2aad\u2aae\u2aaf\u2ab0\u2ab1\u2ab2\u2ab3\u2ab4\u2ab5\u2ab6\u2ab7\u2ab8\u2ab9\u2aba\u2abb\u2abc\u2af7\u2af8\u2af9\u2afa\u29c0\u29c1\ufe64\ufe65\uff1c\uff1e".split("");
+this.relations=[];this.arrows="\u2190\u2191\u2192\u2193\u2194\u2195\u2196\u2197\u2198\u2199\u219a\u219b\u219c\u219d\u219e\u219f\u21a0\u21a1\u21a2\u21a3\u21a4\u21a5\u21a6\u21a7\u21a8\u21a9\u21aa\u21ab\u21ac\u21ad\u21ae\u21af\u21b0\u21b1\u21b2\u21b3\u21b4\u21b5\u21b6\u21b7\u21b8\u21b9\u21ba\u21bb\u21c4\u21c5\u21c6\u21c7\u21c8\u21c9\u21ca\u21cd\u21ce\u21cf\u21d0\u21d1\u21d2\u21d3\u21d4\u21d5\u21d6\u21d7\u21d8\u21d9\u21da\u21db\u21dc\u21dd\u21de\u21df\u21e0\u21e1\u21e2\u21e3\u21e4\u21e5\u21e6\u21e7\u21e8\u21e9\u21ea\u21eb\u21ec\u21ed\u21ee\u21ef\u21f0\u21f1\u21f2\u21f3\u21f4\u21f5\u21f6\u21f7\u21f8\u21f9\u21fa\u21fb\u21fc\u21fd\u21fe\u21ff\u2301\u2303\u2304\u2324\u238b\u2794\u2798\u2799\u279a\u279b\u279c\u279d\u279e\u279f\u27a0\u27a1\u27a2\u27a3\u27a4\u27a5\u27a6\u27a7\u27a8\u27a9\u27aa\u27ab\u27ac\u27ad\u27ae\u27af\u27b1\u27b2\u27b3\u27b4\u27b5\u27b6\u27b7\u27b8\u27b9\u27ba\u27bb\u27bc\u27bd\u27be\u27f0\u27f1\u27f2\u27f3\u27f4\u27f5\u27f6\u27f7\u27f8\u27f9\u27fa\u27fb\u27fc\u27fd\u27fe\u27ff\u2900\u2901\u2902\u2903\u2904\u2905\u2906\u2907\u2908\u2909\u290a\u290b\u290c\u290d\u290e\u290f\u2910\u2911\u2912\u2913\u2914\u2915\u2916\u2917\u2918\u2919\u291a\u291b\u291c\u291d\u291e\u291f\u2920\u2921\u2922\u2923\u2924\u2925\u2926\u2927\u2928\u2929\u292a\u292d\u292e\u292f\u2930\u2931\u2932\u2933\u2934\u2935\u2936\u2937\u2938\u2939\u293a\u293b\u293c\u293d\u293e\u293f\u2940\u2941\u2942\u2943\u2944\u2945\u2946\u2947\u2948\u2949\u2970\u2971\u2972\u2973\u2974\u2975\u2976\u2977\u2978\u2979\u297a\u297b\u29b3\u29b4\u29bd\u29ea\u29ec\u29ed\u2a17\u2b00\u2b01\u2b02\u2b03\u2b04\u2b05\u2b06\u2b07\u2b08\u2b09\u2b0a\u2b0b\u2b0c\u2b0d\u2b0e\u2b0f\u2b10\u2b11\u2b30\u2b31\u2b32\u2b33\u2b34\u2b35\u2b36\u2b37\u2b38\u2b39\u2b3a\u2b3b\u2b3c\u2b3d\u2b3e\u2b3f\u2b40\u2b41\u2b42\u2b43\u2b44\u2b45\u2b46\u2b47\u2b48\u2b49\u2b4a\u2b4b\u2b4c\uffe9\uffea\uffeb\uffec\u21bc\u21bd\u21be\u21bf\u21c0\u21c1\u21c2\u21c3\u21cb\u21cc\u294a\u294b\u294c\u294d\u294e\u294f\u2950\u2951\u2952\u2953\u2954\u2955\u2956\u2957\u2958\u2959\u295a\u295b\u295c\u295d\u295e\u295f\u2960\u2961\u2962\u2963\u2964\u2965\u2966\u2967\u2968\u2969\u296a\u296b\u296c\u296d\u296e\u296f\u297c\u297d\u297e\u297f".split("");
+this.sumOps="\u2140\u220f\u2210\u2211\u22c0\u22c1\u22c2\u22c3\u2a00\u2a01\u2a02\u2a03\u2a04\u2a05\u2a06\u2a07\u2a08\u2a09\u2a0a\u2a0b\u2afc\u2aff".split("");this.intOps="\u222b\u222c\u222d\u222e\u222f\u2230\u2231\u2232\u2233\u2a0c\u2a0d\u2a0e\u2a0f\u2a10\u2a11\u2a12\u2a13\u2a14\u2a15\u2a16\u2a17\u2a18\u2a19\u2a1a\u2a1b\u2a1c".split("");this.prefixOps=["\u2200","\u2203"];this.digitsNormal="0123456789".split("");this.digitsFullWidth="\uff10\uff11\uff12\uff13\uff14\uff15\uff16\uff17\uff18\uff19".split("");
+this.digitsBold="\ud835\udfce \ud835\udfcf \ud835\udfd0 \ud835\udfd1 \ud835\udfd2 \ud835\udfd3 \ud835\udfd4 \ud835\udfd5 \ud835\udfd6 \ud835\udfd7".split(" ");this.digitsDoubleStruck="\ud835\udfd8 \ud835\udfd9 \ud835\udfda \ud835\udfdb \ud835\udfdc \ud835\udfdd \ud835\udfde \ud835\udfdf \ud835\udfe0 \ud835\udfe1".split(" ");this.digitsSansSerif="\ud835\udfe2 \ud835\udfe3 \ud835\udfe4 \ud835\udfe5 \ud835\udfe6 \ud835\udfe7 \ud835\udfe8 \ud835\udfe9 \ud835\udfea \ud835\udfeb".split(" ");this.digitsSansSerifBold=
+"\ud835\udfec \ud835\udfed \ud835\udfee \ud835\udfef \ud835\udff0 \ud835\udff1 \ud835\udff2 \ud835\udff3 \ud835\udff4 \ud835\udff5".split(" ");this.digitsMonospace="\ud835\udff6 \ud835\udff7 \ud835\udff8 \ud835\udff9 \ud835\udffa \ud835\udffb \ud835\udffc \ud835\udffd \ud835\udffe \ud835\udfff".split(" ");this.digitsSuperscript="\u00b2\u00b3\u00b9\u2070\u2074\u2075\u2076\u2077\u2078\u2079".split("");this.digitsSubscript="\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089".split("");this.fractions=
+"\u00bc\u00bd\u00be\u2150\u2151\u2152\u2153\u2154\u2155\u2156\u2157\u2158\u2159\u215a\u215b\u215c\u215d\u215e\u215f\u2189".split("");this.enclosedNumbers="\u2460\u2461\u2462\u2463\u2464\u2465\u2466\u2467\u2468\u2469\u246a\u246b\u246c\u246d\u246e\u246f\u2470\u2471\u2472\u2473\u24ea\u24eb\u24ec\u24ed\u24ee\u24ef\u24f0\u24f1\u24f2\u24f3\u24f4\u24f5\u24f6\u24f7\u24f8\u24f9\u24fa\u24fb\u24fc\u24fd\u24fe\u24ff\u2776\u2777\u2778\u2779\u277a\u277b\u277c\u277d\u277e\u277f\u2780\u2781\u2782\u2783\u2784\u2785\u2786\u2787\u2788\u2789\u278a\u278b\u278c\u278d\u278e\u278f\u2790\u2791\u2792\u2793\u3248\u3249\u324a\u324b\u324c\u324d\u324e\u324f\u3251\u3252\u3253\u3254\u3255\u3256\u3257\u3258\u3259\u325a\u325b\u325c\u325d\u325e\u325f\u32b1\u32b2\u32b3\u32b4\u32b5\u32b6\u32b7\u32b8\u32b9\u32ba\u32bb\u32bc\u32bd\u32be\u32bf".split("");
+this.fencedNumbers="\u2474\u2475\u2476\u2477\u2478\u2479\u247a\u247b\u247c\u247d\u247e\u247f\u2480\u2481\u2482\u2483\u2484\u2485\u2486\u2487".split("");this.punctuatedNumbers="\u2488 \u2489 \u248a \u248b \u248c \u248d \u248e \u248f \u2490 \u2491 \u2492 \u2493 \u2494 \u2495 \u2496 \u2497 \u2498 \u2499 \u249a \u249b \ud83c\udd00 \ud83c\udd01 \ud83c\udd02 \ud83c\udd03 \ud83c\udd04 \ud83c\udd05 \ud83c\udd06 \ud83c\udd07 \ud83c\udd08 \ud83c\udd09 \ud83c\udd0a".split(" ");this.numbers=this.fractions.concat(this.digitsSuperscript,
+this.digitsSubscript,this.enclosedNumbers,this.fencedNumbers,this.punctuatedNumbers);this.trigonometricFunctions="cos cot csc sec sin tan arccos arccot arccsc arcsec arcsin arctan".split(" ");this.hyperbolicFunctions="cosh coth csch sech sinh tanh arcosh arcoth arcsch arsech arsinh artanh arccosh arccoth arccsch arcsech arcsinh arctanh".split(" ");this.algebraicFunctions="deg det dim hom ker Tr tr".split(" ");this.elementaryFunctions="log ln lg exp expt gcd gcd arg im re Pr".split(" ");this.prefixFunctions=
+this.trigonometricFunctions.concat(this.hyperbolicFunctions,this.algebraicFunctions,this.elementaryFunctions);this.limitFunctions="inf lim liminf limsup max min sup injlim projlim".split(" ");this.infixFunctions=["mod","rem"];this.symbolSetToSemantic_=[{set:this.generalPunctuations,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.UNKNOWN},{set:this.ellipses,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.ELLIPSIS},{set:this.fullStops,type:cvox.SemanticAttr.Type.PUNCTUATION,
+role:cvox.SemanticAttr.Role.FULLSTOP},{set:this.dashes,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.DASH},{set:this.primes,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.PRIME},{set:this.leftFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.OPEN},{set:this.rightFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.CLOSE},{set:this.topFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.TOP},{set:this.bottomFences,
+type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.BOTTOM},{set:this.neutralFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.NEUTRAL},{set:this.smallLatin,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.capitalLatin,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.smallLatinFullWidth,type:cvox.SemanticAttr.Type.IDENTIFIER,
+role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.capitalLatinFullWidth,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.smallLatinBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLD},{set:this.capitalLatinBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLD},
+{set:this.smallLatinItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.capitalLatinItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.smallLatinScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SCRIPT},{set:this.capitalLatinScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,
+font:cvox.SemanticAttr.Font.SCRIPT},{set:this.smallLatinBoldScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLDSCRIPT},{set:this.capitalLatinBoldScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLDSCRIPT},{set:this.smallLatinFraktur,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.FRAKTUR},{set:this.capitalLatinFraktur,
+type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.FRAKTUR},{set:this.smallLatinDoubleStruck,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.capitalLatinDoubleStruck,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.smallLatinBoldFraktur,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,
+font:cvox.SemanticAttr.Font.BOLDFRAKTUR},{set:this.capitalLatinBoldFraktur,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLDFRAKTUR},{set:this.smallLatinSansSerif,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIF},{set:this.capitalLatinSansSerif,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIF},{set:this.smallLatinSansSerifBold,
+type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.capitalLatinSansSerifBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.smallLatinSansSerifItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFITALIC},{set:this.capitalLatinSansSerifItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,
+role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFITALIC},{set:this.smallLatinMonospace,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.MONOSPACE},{set:this.capitalLatinMonospace,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.MONOSPACE},{set:this.latinDoubleStruckItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCKITALIC},
+{set:this.smallGreek,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.capitalGreek,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.smallGreekBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.BOLD},{set:this.capitalGreekBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,
+font:cvox.SemanticAttr.Font.BOLD},{set:this.smallGreekItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.capitalGreekItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.smallGreekSansSerifBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.capitalGreekSansSerifBold,
+type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.greekDoubleStruck,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.hebrewLetters,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.OTHERLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.digitsNormal,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,
+font:cvox.SemanticAttr.Font.NORMAL},{set:this.digitsFullWidth,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.digitsBold,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.BOLD},{set:this.digitsDoubleStruck,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.digitsSansSerif,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,
+font:cvox.SemanticAttr.Font.SANSSERIF},{set:this.digitsSansSerifBold,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.digitsMonospace,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.MONOSPACE},{set:this.numbers,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER},{set:this.additions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.ADDITION},
+{set:this.multiplications,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.MULTIPLICATION},{set:this.subtractions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.SUBTRACTION},{set:this.divisions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.DIVISION},{set:this.prefixOps,type:cvox.SemanticAttr.Type.PREFIXOP,role:cvox.SemanticAttr.Role.PREFIXFUNC},{set:this.equalities,type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.EQUALITY},{set:this.inequalities,
+type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.INEQUALITY},{set:this.relations,type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.UNKNOWN},{set:this.arrows,type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.ARROW},{set:this.sumOps,type:cvox.SemanticAttr.Type.LARGEOP,role:cvox.SemanticAttr.Role.SUM},{set:this.intOps,type:cvox.SemanticAttr.Type.LARGEOP,role:cvox.SemanticAttr.Role.INTEGRAL},{set:this.limitFunctions,type:cvox.SemanticAttr.Type.FUNCTION,role:cvox.SemanticAttr.Role.LIMFUNC},
+{set:this.prefixFunctions,type:cvox.SemanticAttr.Type.FUNCTION,role:cvox.SemanticAttr.Role.PREFIXFUNC},{set:this.infixFunctions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.MULTIPLICATION}]};goog.addSingletonGetter(cvox.SemanticAttr);
+cvox.SemanticAttr.Type={PUNCTUATION:"punctuation",FENCE:"fence",NUMBER:"number",IDENTIFIER:"identifier",TEXT:"text",OPERATOR:"operator",RELATION:"relation",LARGEOP:"largeop",FUNCTION:"function",ACCENT:"accent",FENCED:"fenced",FRACTION:"fraction",PUNCTUATED:"punctuated",RELSEQ:"relseq",MULTIREL:"multirel",INFIXOP:"infixop",PREFIXOP:"prefixop",POSTFIXOP:"postfixop",APPL:"appl",INTEGRAL:"integral",BIGOP:"bigop",SQRT:"sqrt",ROOT:"root",LIMUPPER:"limupper",LIMLOWER:"limlower",LIMBOTH:"limboth",SUBSCRIPT:"subscript",
+SUPERSCRIPT:"superscript",UNDERSCORE:"underscore",OVERSCORE:"overscore",TABLE:"table",MULTILINE:"multiline",MATRIX:"matrix",VECTOR:"vector",CASES:"cases",ROW:"row",LINE:"line",CELL:"cell",UNKNOWN:"unknown",EMPTY:"empty"};
+cvox.SemanticAttr.Role={ELLIPSIS:"ellipsis",FULLSTOP:"fullstop",DASH:"dash",PRIME:"prime",VBAR:"vbar",OPENFENCE:"openfence",CLOSEFENCE:"closefence",APPLICATION:"application",OPEN:"open",CLOSE:"close",TOP:"top",BOTTOM:"bottom",NEUTRAL:"neutral",LATINLETTER:"latinletter",GREEKLETTER:"greekletter",OTHERLETTER:"otherletter",INTEGER:"integer",FLOAT:"float",OTHERNUMBER:"othernumber",MULTIACCENT:"multiaccent",OVERACCENT:"overaccent",UNDERACCENT:"underaccent",LEFTRIGHT:"leftright",ABOVEBELOW:"abovebelow",
+SEQUENCE:"sequence",ENDPUNCT:"endpunct",STARTPUNCT:"startpunct",NEGATIVE:"negative",NEGATION:"negation",MULTIOP:"multiop",LIMFUNC:"limit function",INFIXFUNC:"infix function",PREFIXFUNC:"prefix function",POSTFIXFUNC:"postfix function",SUM:"sum",INTEGRAL:"integral",ADDITION:"addition",MULTIPLICATION:"multiplication",DIVISION:"division",SUBTRACTION:"subtraction",IMPLICIT:"implicit",EQUALITY:"equality",INEQUALITY:"inequality",ELEMENT:"element",BINREL:"binrel",ARROW:"arrow",MULTILINE:"multiline",MATRIX:"matrix",
+VECTOR:"vector",CASES:"cases",TABLE:"table",UNKNOWN:"unknown"};cvox.SemanticAttr.Font={BOLD:"bold",BOLDFRAKTUR:"bold-fraktur",BOLDITALIC:"bold-italic",BOLDSCRIPT:"bold-script",DOUBLESTRUCK:"double-struck",DOUBLESTRUCKITALIC:"double-struck-italic",FRAKTUR:"fraktur",ITALIC:"italic",MONOSPACE:"monospace",NORMAL:"normal",SCRIPT:"script",SANSSERIF:"sans-serif",SANSSERIFITALIC:"sans-serif-italic",SANSSERIFBOLD:"sans-serif-bold",SANSSERIFBOLDITALIC:"sans-serif-bold-italic",UNKNOWN:"unknown"};
+cvox.SemanticAttr.lookupMeaning=function(a){return cvox.SemanticAttr.getInstance().lookupMeaning_(a)};cvox.SemanticAttr.invisibleTimes=function(){return cvox.SemanticAttr.getInstance().invisibleTimes_};cvox.SemanticAttr.invisibleComma=function(){return cvox.SemanticAttr.getInstance().invisibleComma_};cvox.SemanticAttr.functionApplication=function(){return cvox.SemanticAttr.getInstance().functionApplication_};
+cvox.SemanticAttr.isMatchingFenceRole=function(a,b){return a==cvox.SemanticAttr.Role.OPEN&&b==cvox.SemanticAttr.Role.CLOSE||a==cvox.SemanticAttr.Role.NEUTRAL&&b==cvox.SemanticAttr.Role.NEUTRAL||a==cvox.SemanticAttr.Role.TOP&&b==cvox.SemanticAttr.Role.BOTTOM};cvox.SemanticAttr.isMatchingFence=function(a,b){return cvox.SemanticAttr.getInstance().isMatchingFence_(a,b)};cvox.SemanticAttr.isOpeningFence=function(a){return a==cvox.SemanticAttr.Role.OPEN||a==cvox.SemanticAttr.Role.NEUTRAL};
+cvox.SemanticAttr.isClosingFence=function(a){return a==cvox.SemanticAttr.Role.CLOSE||a==cvox.SemanticAttr.Role.NEUTRAL};cvox.SemanticAttr.isCharacterD=function(a){var b="d \u2146 \uff44 \ud835\udc1d \ud835\udc51 \ud835\udcb9 \ud835\udced \ud835\udd21 \ud835\udd55 \ud835\udd89 \ud835\uddbd \ud835\uddf1 \ud835\ude25 \ud835\ude8d".split(" ");return-1!=b.indexOf(a)};
+cvox.SemanticAttr.prototype.isMatchingFence_=function(a,b){return-1!=this.neutralFences.indexOf(a)?a==b:this.openClosePairs[a]==b||this.topBottomPairs[a]==b};
+cvox.SemanticAttr.prototype.lookupMeaning_=function(a){for(var b=0,c;c=this.symbolSetToSemantic_[b];b++)if(-1!=c.set.indexOf(a))return{role:c.role||cvox.SemanticAttr.Role.UNKNOWN,type:c.type||cvox.SemanticAttr.Type.UNKNOWN,font:c.font||cvox.SemanticAttr.Font.UNKNOWN};return{role:cvox.SemanticAttr.Role.UNKNOWN,type:cvox.SemanticAttr.Type.UNKNOWN,font:cvox.SemanticAttr.Font.UNKNOWN}};cvox.SemanticTree=function(a){this.idCounter_=0;this.mathml=a;this.root=this.parseMathml_(a)};cvox.SemanticTree.Node=function(a){this.id=a;this.mathml=[];this.parent=null;this.type=cvox.SemanticAttr.Type.UNKNOWN;this.role=cvox.SemanticAttr.Role.UNKNOWN;this.font=cvox.SemanticAttr.Font.UNKNOWN;this.childNodes=[];this.textContent="";this.contentNodes=[]};
+cvox.SemanticTree.Node.prototype.querySelectorAll=function(a){for(var b=[],c=0,d;d=this.childNodes[c];c++)b=b.concat(d.querySelectorAll(a));a(this)&&b.unshift(this);return b};cvox.SemanticTree.prototype.xml=function(a){var b=new DOMParser,b=b.parseFromString("<stree></stree>","text/xml");a=this.root.xml(b,a);b.childNodes[0].appendChild(a);return b.childNodes[0]};
+cvox.SemanticTree.Node.prototype.xml=function(a,b){var c=function(c,d){for(var g=d.map(function(c){return c.xml(a,b)}),h=a.createElement(c),k=0,l;l=g[k];k++)h.appendChild(l);return h},d=a.createElement(this.type);b||this.xmlAttributes_(d);d.textContent=this.textContent;0<this.contentNodes.length&&d.appendChild(c("content",this.contentNodes));0<this.childNodes.length&&d.appendChild(c("children",this.childNodes));return d};cvox.SemanticTree.prototype.toString=function(a){var b=new XMLSerializer;return b.serializeToString(this.xml(a))};
+cvox.SemanticTree.prototype.formatXml=function(a){a=this.toString(a);return cvox.SemanticTree.formatXml(a)};cvox.SemanticTree.formatXml=function(a){var b=/(>)(<)(\/*)/g;a=a.replace(b,"$1\r\n$2$3");b=/(>)(.+)(<c)/g;a=a.replace(b,"$1\r\n$2\r\n$3");var c="",d="";a.split("\r\n").forEach(function(a){a.match(/.+<\/\w[^>]*>$/)?c+=d+a+"\r\n":a.match(/^<\/\w/)?d&&(d=d.slice(2),c+=d+a+"\r\n"):a.match(/^<\w[^>]*[^\/]>.*$/)?(c+=d+a+"\r\n",d+=" "):c+=d+a+"\r\n"});return c};
+cvox.SemanticTree.Node.prototype.toString=function(a){var b=new XMLSerializer,c=new DOMParser,c=c.parseFromString("","text/xml");return b.serializeToString(this.xml(c,a))};cvox.SemanticTree.Node.prototype.xmlAttributes_=function(a){a.setAttribute("role",this.role);this.font!=cvox.SemanticAttr.Font.UNKNOWN&&a.setAttribute("font",this.font);a.setAttribute("id",this.id)};cvox.SemanticTree.prototype.createNode_=function(){return new cvox.SemanticTree.Node(this.idCounter_++)};
+cvox.SemanticTree.Node.prototype.updateContent_=function(a){a=a.trim();if(this.textContent!=a){var b=cvox.SemanticAttr.lookupMeaning(a);this.textContent=a;this.role=b.role;this.type=b.type;this.font=b.font}};cvox.SemanticTree.Node.prototype.addMathmlNodes_=function(a){for(var b=0,c;c=a[b];b++)-1==this.mathml.indexOf(c)&&this.mathml.push(c)};cvox.SemanticTree.Node.prototype.appendChild_=function(a){this.childNodes.push(a);this.addMathmlNodes_(a.mathml);a.parent=this};
+cvox.SemanticTree.Node.prototype.appendContentNode_=function(a){a&&(this.contentNodes.push(a),this.addMathmlNodes_(a.mathml),a.parent=this)};
+cvox.SemanticTree.prototype.parseMathml_=function(a){var b=cvox.DomUtil.toArray(a.children);switch(cvox.SemanticUtil.tagName(a)){case "MATH":case "MROW":case "MPADDED":case "MSTYLE":return b=cvox.SemanticUtil.purgeNodes(b),1==b.length?this.parseMathml_(b[0]):this.processRow_(this.parseMathmlChildren_(b));case "MFRAC":return a=this.makeBranchNode_(cvox.SemanticAttr.Type.FRACTION,[this.parseMathml_(b[0]),this.parseMathml_(b[1])],[]),a.role=cvox.SemanticAttr.Role.DIVISION,a;case "MSUB":case "MSUP":case "MSUBSUP":case "MOVER":case "MUNDER":case "MUNDEROVER":return this.makeLimitNode_(cvox.SemanticUtil.tagName(a),
+this.parseMathmlChildren_(b));case "MROOT":return this.makeBranchNode_(cvox.SemanticAttr.Type.ROOT,[this.parseMathml_(b[0]),this.parseMathml_(b[1])],[]);case "MSQRT":return b=this.parseMathmlChildren_(cvox.SemanticUtil.purgeNodes(b)),this.makeBranchNode_(cvox.SemanticAttr.Type.SQRT,[this.processRow_(b)],[]);case "MTABLE":return a=this.makeBranchNode_(cvox.SemanticAttr.Type.TABLE,this.parseMathmlChildren_(b),[]),cvox.SemanticTree.tableIsMultiline_(a)&&this.tableToMultiline_(a),a;case "MTR":return a=
+this.makeBranchNode_(cvox.SemanticAttr.Type.ROW,this.parseMathmlChildren_(b),[]),a.role=cvox.SemanticAttr.Role.TABLE,a;case "MTD":return b=this.parseMathmlChildren_(cvox.SemanticUtil.purgeNodes(b)),a=this.makeBranchNode_(cvox.SemanticAttr.Type.CELL,[this.processRow_(b)],[]),a.role=cvox.SemanticAttr.Role.TABLE,a;case "MTEXT":return a=this.makeLeafNode_(a),a.type=cvox.SemanticAttr.Type.TEXT,a;case "MI":return a=this.makeLeafNode_(a),a.type==cvox.SemanticAttr.Type.UNKNOWN&&(a.type=cvox.SemanticAttr.Type.IDENTIFIER),
+a;case "MN":return a=this.makeLeafNode_(a),a.type==cvox.SemanticAttr.Type.UNKNOWN&&(a.type=cvox.SemanticAttr.Type.NUMBER),a;case "MO":return a=this.makeLeafNode_(a),a.type==cvox.SemanticAttr.Type.UNKNOWN&&(a.type=cvox.SemanticAttr.Type.OPERATOR),a;default:return this.makeUnprocessed_(a)}};cvox.SemanticTree.prototype.parseMathmlChildren_=function(a){for(var b=[],c=0,d;d=a[c];c++)b.push(this.parseMathml_(d));return b};
+cvox.SemanticTree.prototype.makeUnprocessed_=function(a){var b=this.createNode_();b.mathml=[a];return b};cvox.SemanticTree.prototype.makeEmptyNode_=function(){var a=this.createNode_();a.type=cvox.SemanticAttr.Type.EMPTY;return a};cvox.SemanticTree.prototype.makeLeafNode_=function(a){var b=this.createNode_();b.mathml=[a];b.updateContent_(a.textContent);b.font=a.getAttribute("mathvariant")||b.font;return b};
+cvox.SemanticTree.prototype.makeBranchNode_=function(a,b,c,d){var e=this.createNode_();d&&e.updateContent_(d);e.type=a;e.childNodes=b;e.contentNodes=c;b.concat(c).forEach(function(a){a.parent=e;e.addMathmlNodes_(a.mathml)});return e};cvox.SemanticTree.prototype.makeImplicitNode_=function(a){if(1==a.length)return a[0];var b=this.createNode_();b.updateContent_(cvox.SemanticAttr.invisibleTimes());a=this.makeInfixNode_(a,b);a.role=cvox.SemanticAttr.Role.IMPLICIT;return a};
+cvox.SemanticTree.prototype.makeInfixNode_=function(a,b){return this.makeBranchNode_(cvox.SemanticAttr.Type.INFIXOP,a,[b],b.textContent)};cvox.SemanticTree.prototype.makeConcatNode_=function(a,b,c){if(0==b.length)return a;var d=b.map(function(a){return a.textContent}).join(" ");a=this.makeBranchNode_(c,[a],b,d);0<b.length&&(a.role=cvox.SemanticAttr.Role.MULTIOP);return a};
+cvox.SemanticTree.prototype.makePrefixNode_=function(a,b){for(var c=cvox.SemanticTree.partitionNodes_(b,cvox.SemanticTree.attrPred_("role","SUBTRACTION")),d=this.makeConcatNode_(a,c.comp.pop(),cvox.SemanticAttr.Type.PREFIXOP);0<c.rel.length;)d=this.makeConcatNode_(d,[c.rel.pop()],cvox.SemanticAttr.Type.PREFIXOP),d.role=cvox.SemanticAttr.Role.NEGATIVE,d=this.makeConcatNode_(d,c.comp.pop(),cvox.SemanticAttr.Type.PREFIXOP);return d};
+cvox.SemanticTree.prototype.makePostfixNode_=function(a,b){return this.makeConcatNode_(a,b,cvox.SemanticAttr.Type.POSTFIXOP)};cvox.SemanticTree.prototype.processRow_=function(a){if(0==a.length)return this.makeEmptyNode_();a=this.getFencesInRow_(a);a=this.processTablesInRow_(a);a=this.getPunctuationInRow_(a);a=this.getFunctionsInRow_(a);return this.processRelationsInRow_(a)};
+cvox.SemanticTree.prototype.processRelationsInRow_=function(a){var b=cvox.SemanticTree.partitionNodes_(a,cvox.SemanticTree.attrPred_("type","RELATION")),c=b.rel[0];if(!c)return this.processOperationsInRow_(a);if(1==a.length)return a[0];a=b.comp.map(goog.bind(this.processOperationsInRow_,this));return b.rel.every(function(a){return a.textContent==c.textContent})?this.makeBranchNode_(cvox.SemanticAttr.Type.RELSEQ,a,b.rel,c.textContent):this.makeBranchNode_(cvox.SemanticAttr.Type.MULTIREL,a,b.rel)};
+cvox.SemanticTree.prototype.processOperationsInRow_=function(a){if(0==a.length)return this.makeEmptyNode_();if(1==a.length)return a[0];for(var b=[];0<a.length&&a[0].type==cvox.SemanticAttr.Type.OPERATOR;)b.push(a.shift());if(0==a.length)return this.makePrefixNode_(b.pop(),b);if(1==a.length)return this.makePrefixNode_(a[0],b);a=cvox.SemanticTree.sliceNodes_(a,cvox.SemanticTree.attrPred_("type","OPERATOR"));b=this.makePrefixNode_(this.makeImplicitNode_(a.head),b);return a.div?this.makeOperationsTree_(a.tail,
+b,a.div):b};
+cvox.SemanticTree.prototype.makeOperationsTree_=function(a,b,c,d){d=d||[];if(0==a.length)return d.unshift(c),b.type==cvox.SemanticAttr.Type.INFIXOP?(d=this.makePostfixNode_(b.childNodes.pop(),d),b.appendChild_(d),b):this.makePostfixNode_(b,d);a=cvox.SemanticTree.sliceNodes_(a,cvox.SemanticTree.attrPred_("type","OPERATOR"));if(0==a.head.length)return d.push(a.div),this.makeOperationsTree_(a.tail,b,c,d);d=this.makePrefixNode_(this.makeImplicitNode_(a.head),d);b=this.appendOperand_(b,c,d);return a.div?
+this.makeOperationsTree_(a.tail,b,a.div,[]):b};cvox.SemanticTree.prototype.appendOperand_=function(a,b,c){return a.type!=cvox.SemanticAttr.Type.INFIXOP?this.makeInfixNode_([a,c],b):this.appendExistingOperator_(a,b,c)?a:b.role==cvox.SemanticAttr.Role.MULTIPLICATION?this.appendMultiplicativeOp_(a,b,c):this.appendAdditiveOp_(a,b,c)};
+cvox.SemanticTree.prototype.appendMultiplicativeOp_=function(a,b,c){for(var d=a,e=a.childNodes[a.childNodes.length-1];e&&e.type==cvox.SemanticAttr.Type.INFIXOP;)d=e,e=d.childNodes[a.childNodes.length-1];b=this.makeInfixNode_([d.childNodes.pop(),c],b);d.appendChild_(b);return a};cvox.SemanticTree.prototype.appendAdditiveOp_=function(a,b,c){return this.makeInfixNode_([a,c],b)};
+cvox.SemanticTree.prototype.appendExistingOperator_=function(a,b,c){if(!a||a.type!=cvox.SemanticAttr.Type.INFIXOP)return!1;if(a.textContent==b.textContent)return a.appendContentNode_(b),a.appendChild_(c),!0;this.appendExistingOperator_(a.childNodes[a.childNodes.length-1],b,c)};cvox.SemanticTree.prototype.getFencesInRow_=function(a){a=cvox.SemanticTree.partitionNodes_(a,cvox.SemanticTree.attrPred_("type","FENCE"));var b=a.comp.shift();return this.processFences_(a.rel,a.comp,[],[b])};
+cvox.SemanticTree.prototype.processFences_=function(a,b,c,d){if(0==a.length&&0==c.length)return d[0];var e=cvox.SemanticTree.attrPred_("role","OPEN");if(0==a.length){for(a=d.shift();0<c.length;){if(e(c[0]))b=c.shift(),cvox.SemanticTree.fenceToPunct_(b),a.push(b);else{c=cvox.SemanticTree.sliceNodes_(c,e);var f=c.head.length-1,g=this.processNeutralFences_(c.head,d.slice(0,f));d=d.slice(f);a.push.apply(a,g);c.div&&c.tail.unshift(c.div);c=c.tail}a.push.apply(a,d.shift())}return a}f=c[c.length-1];g=a[0].role;
+if(g==cvox.SemanticAttr.Role.OPEN||g==cvox.SemanticAttr.Role.NEUTRAL&&(!f||a[0].textContent!=f.textContent))return c.push(a.shift()),d.push(b.shift()),this.processFences_(a,b,c,d);if(f&&(g==cvox.SemanticAttr.Role.CLOSE&&f.role==cvox.SemanticAttr.Role.OPEN||g==cvox.SemanticAttr.Role.NEUTRAL&&a[0].textContent==f.textContent))return e=this.makeHorizontalFencedNode_(c.pop(),a.shift(),d.pop()),d.push(d.pop().concat([e],b.shift())),this.processFences_(a,b,c,d);if(f&&g==cvox.SemanticAttr.Role.CLOSE&&f.role==
+cvox.SemanticAttr.Role.NEUTRAL&&c.some(e))return c=cvox.SemanticTree.sliceNodes_(c,e,!0),e=d.pop(),f=d.length-c.tail.length+1,g=this.processNeutralFences_(c.tail,d.slice(f)),d=d.slice(0,f),e=this.makeHorizontalFencedNode_(c.div,a.shift(),d.pop().concat(g,e)),d.push(d.pop().concat([e],b.shift())),this.processFences_(a,b,c.head,d);e=a.shift();cvox.SemanticTree.fenceToPunct_(e);d.push(d.pop().concat([e],b.shift()));return this.processFences_(a,b,c,d)};
+cvox.SemanticTree.prototype.processNeutralFences_=function(a,b){if(0==a.length)return a;if(1==a.length)return cvox.SemanticTree.fenceToPunct_(a[0]),a;var c=a.shift(),d=cvox.SemanticTree.sliceNodes_(a,function(a){return a.textContent==c.textContent});if(!d.div){cvox.SemanticTree.fenceToPunct_(c);var e=b.shift();e.unshift(c);return e.concat(this.processNeutralFences_(a,b))}var f=this.combineFencedContent_(c,d.div,d.head,b);return 0<d.tail.length?(e=f.shift(),d=this.processNeutralFences_(d.tail,f),e.concat(d)):
+f[0]};cvox.SemanticTree.prototype.combineFencedContent_=function(a,b,c,d){if(0==c.length)return a=this.makeHorizontalFencedNode_(a,b,d.shift()),d.unshift(a),d;var e=d.shift(),f=c.length-1,g=d.slice(0,f);d=d.slice(f);f=d.shift();c=this.processNeutralFences_(c,g);e.push.apply(e,c);e.push.apply(e,f);a=this.makeHorizontalFencedNode_(a,b,e);0<d.length?d[0].unshift(a):d=[[a]];return d};
+cvox.SemanticTree.fenceToPunct_=function(a){a.type=cvox.SemanticAttr.Type.PUNCTUATION;switch(a.role){case cvox.SemanticAttr.Role.NEUTRAL:a.role=cvox.SemanticAttr.Role.VBAR;break;case cvox.SemanticAttr.Role.OPEN:a.role=cvox.SemanticAttr.Role.OPENFENCE;break;case cvox.SemanticAttr.Role.CLOSE:a.role=cvox.SemanticAttr.Role.CLOSEFENCE}};
+cvox.SemanticTree.prototype.makeHorizontalFencedNode_=function(a,b,c){c=this.processRow_(c);b=this.makeBranchNode_(cvox.SemanticAttr.Type.FENCED,[c],[a,b]);b.role=a.role==cvox.SemanticAttr.Role.OPEN?cvox.SemanticAttr.Role.LEFTRIGHT:a.role;return b};
+cvox.SemanticTree.prototype.getPunctuationInRow_=function(a){var b=cvox.SemanticTree.partitionNodes_(a,function(a){return cvox.SemanticTree.attrPred_("type","PUNCTUATION")(a)&&!cvox.SemanticTree.attrPred_("role","ELLIPSIS")(a)});if(0==b.rel.length)return a;a=[];var c=b.comp.shift();0<c.length&&a.push(this.processRow_(c));for(var d=0;0<b.comp.length;)a.push(b.rel[d++]),c=b.comp.shift(),0<c.length&&a.push(this.processRow_(c));return[this.makePunctuatedNode_(a,b.rel)]};
+cvox.SemanticTree.prototype.makePunctuatedNode_=function(a,b){var c=this.makeBranchNode_(cvox.SemanticAttr.Type.PUNCTUATED,a,b);c.role=1==b.length&&a[0].type==cvox.SemanticAttr.Type.PUNCTUATION?cvox.SemanticAttr.Role.STARTPUNCT:1==b.length&&a[a.length-1].type==cvox.SemanticAttr.Type.PUNCTUATION?cvox.SemanticAttr.Role.ENDPUNCT:cvox.SemanticAttr.Role.SEQUENCE;return c};
+cvox.SemanticTree.prototype.makeLimitNode_=function(a,b){var c=b[0],d=cvox.SemanticTree.attrPred_("type","FUNCTION")(c),d=cvox.SemanticTree.attrPred_("type","LARGEOP")(c)||cvox.SemanticTree.attrPred_("type","LIMBOTH")(c)||cvox.SemanticTree.attrPred_("type","LIMLOWER")(c)||cvox.SemanticTree.attrPred_("type","LIMUPPER")(c)||d&&cvox.SemanticTree.attrPred_("role","LIMFUNC")(c),e=cvox.SemanticAttr.Type.UNKNOWN;if(d)switch(a){case "MSUB":case "MUNDER":e=cvox.SemanticAttr.Type.LIMLOWER;break;case "MSUP":case "MOVER":e=
+cvox.SemanticAttr.Type.LIMUPPER;break;case "MSUBSUP":case "MUNDEROVER":e=cvox.SemanticAttr.Type.LIMBOTH}else switch(a){case "MSUB":e=cvox.SemanticAttr.Type.SUBSCRIPT;break;case "MSUP":e=cvox.SemanticAttr.Type.SUPERSCRIPT;break;case "MSUBSUP":d=this.makeBranchNode_(cvox.SemanticAttr.Type.SUBSCRIPT,[c,b[1]],[]);d.role=c.role;b=[d,b[2]];e=cvox.SemanticAttr.Type.SUPERSCRIPT;break;case "MOVER":e=cvox.SemanticAttr.Type.OVERSCORE;break;case "MUNDER":e=cvox.SemanticAttr.Type.UNDERSCORE;break;default:d=this.makeBranchNode_(cvox.SemanticAttr.Type.UNDERSCORE,
+[c,b[1]],[]),d.role=c.role,b=[d,b[2]],e=cvox.SemanticAttr.Type.OVERSCORE}d=this.makeBranchNode_(e,b,[]);d.role=c.role;return d};cvox.SemanticTree.prototype.getFunctionsInRow_=function(a,b){b=b||[];if(0==a.length)return b;var c=a.shift(),d=cvox.SemanticTree.classifyFunction_(c,a);if(!d)return b.push(c),this.getFunctionsInRow_(a,b);var e=this.getFunctionsInRow_(a,[]),c=this.getFunctionArgs_(c,e,d);return b.concat(c)};
+cvox.SemanticTree.classifyFunction_=function(a,b){if(a.type==cvox.SemanticAttr.Type.APPL||a.type==cvox.SemanticAttr.Type.BIGOP||a.type==cvox.SemanticAttr.Type.INTEGRAL)return"";if(b[0]&&b[0].textContent==cvox.SemanticAttr.functionApplication())return b.shift(),cvox.SemanticTree.propagatePrefixFunc_(a),"prefix";switch(a.role){case cvox.SemanticAttr.Role.INTEGRAL:return"integral";case cvox.SemanticAttr.Role.SUM:return"bigop";case cvox.SemanticAttr.Role.PREFIXFUNC:case cvox.SemanticAttr.Role.LIMFUNC:return"prefix";
+default:if(a.type==cvox.SemanticAttr.Type.IDENTIFIER)return"simple"}return""};cvox.SemanticTree.propagatePrefixFunc_=function(a){a&&(a.role=cvox.SemanticAttr.Role.PREFIXFUNC,cvox.SemanticTree.propagatePrefixFunc_(a.childNodes[0]))};
+cvox.SemanticTree.prototype.getFunctionArgs_=function(a,b,c){switch(c){case "integral":return b=this.getIntegralArgs_(b),c=this.processRow_(b.integrand),a=this.makeIntegralNode_(a,c,b.intvar),b.rest.unshift(a),b.rest;case "prefix":if(b[0]&&b[0].type==cvox.SemanticAttr.Type.FENCED)return a=this.makeFunctionNode_(a,b.shift()),b.unshift(a),b;case "bigop":b=cvox.SemanticTree.sliceNodes_(b,cvox.SemanticTree.prefixFunctionBoundary_);var d=this.processRow_(b.head);a="prefix"==c?this.makeFunctionNode_(a,
+d):this.makeBigOpNode_(a,d);b.div&&b.tail.unshift(b.div);b.tail.unshift(a);return b.tail;case "simple":if(0==b.length)return[a];c=b[0];if(c.type==cvox.SemanticAttr.Type.FENCED&&c.role!=cvox.SemanticAttr.Role.NEUTRAL&&this.simpleFunctionHeuristic_(c))return a=this.makeFunctionNode_(a,b.shift()),b.unshift(a),b;b.unshift(a);return b}};
+cvox.SemanticTree.prototype.getIntegralArgs_=function(a,b){b=b||[];if(0==a.length)return{integrand:b,intvar:null,rest:a};var c=a[0];if(cvox.SemanticTree.generalFunctionBoundary_(c))return{integrand:b,intvar:null,rest:a};if(cvox.SemanticTree.integralDxBoundarySingle_(c))return{integrand:b,intvar:c,rest:a.slice(1)};if(a[1]&&cvox.SemanticTree.integralDxBoundary_(c,a[1])){var d=this.createNode_();d.updateContent_(cvox.SemanticAttr.invisibleComma());c=this.makePunctuatedNode_([c,d,a[1]],[d]);c.role=cvox.SemanticAttr.Role.INTEGRAL;
+return{integrand:b,intvar:c,rest:a.slice(2)}}b.push(a.shift());return this.getIntegralArgs_(a,b)};cvox.SemanticTree.prototype.makeFunctionNode_=function(a,b){var c=this.createNode_();c.updateContent_(cvox.SemanticAttr.functionApplication());c.type=cvox.SemanticAttr.Type.PUNCTUATION;c.role=cvox.SemanticAttr.Role.APPLICATION;c=this.makeBranchNode_(cvox.SemanticAttr.Type.APPL,[a,b],[c]);c.role=a.role;return c};
+cvox.SemanticTree.prototype.makeBigOpNode_=function(a,b){var c=this.makeBranchNode_(cvox.SemanticAttr.Type.BIGOP,[a,b],[]);c.role=a.role;return c};cvox.SemanticTree.prototype.makeIntegralNode_=function(a,b,c){b=b||this.makeEmptyNode_();c=c||this.makeEmptyNode_();b=this.makeBranchNode_(cvox.SemanticAttr.Type.INTEGRAL,[a,b,c],[]);b.role=a.role;return b};
+cvox.SemanticTree.prototype.simpleFunctionHeuristic_=function(a){a=a.childNodes;if(0==a.length)return!0;if(1<a.length)return!1;a=a[0];return a.type!=cvox.SemanticAttr.Type.INFIXOP||a.role==cvox.SemanticAttr.Role.IMPLICIT&&!a.childNodes.some(cvox.SemanticTree.attrPred_("type","INFIXOP"))?!0:!1};cvox.SemanticTree.prefixFunctionBoundary_=function(a){return cvox.SemanticTree.attrPred_("type","OPERATOR")(a)||cvox.SemanticTree.generalFunctionBoundary_(a)};
+cvox.SemanticTree.integralDxBoundary_=function(a,b){return!!b&&cvox.SemanticTree.attrPred_("type","IDENTIFIER")(b)&&cvox.SemanticAttr.isCharacterD(a.textContent)};cvox.SemanticTree.integralDxBoundarySingle_=function(a){if(cvox.SemanticTree.attrPred_("type","IDENTIFIER")(a)){var b=a.textContent[0];return b&&a.textContent[1]&&cvox.SemanticAttr.isCharacterD(b)}return!1};
+cvox.SemanticTree.generalFunctionBoundary_=function(a){return cvox.SemanticTree.attrPred_("type","RELATION")(a)||cvox.SemanticTree.attrPred_("type","PUNCTUATION")(a)};
+cvox.SemanticTree.prototype.processTablesInRow_=function(a){a=cvox.SemanticTree.partitionNodes_(a,cvox.SemanticTree.tableIsMatrixOrVector_);for(var b=[],c=0,d;d=a.rel[c];c++)b=b.concat(a.comp.shift()),b.push(this.tableToMatrixOrVector_(d));b=b.concat(a.comp.shift());a=cvox.SemanticTree.partitionNodes_(b,cvox.SemanticTree.isTableOrMultiline_);b=[];for(c=0;d=a.rel[c];c++){var e=a.comp.shift();cvox.SemanticTree.tableIsCases_(d,e)&&this.tableToCases_(d,e.pop());b=b.concat(e);b.push(d)}return b.concat(a.comp.shift())};
+cvox.SemanticTree.isTableOrMultiline_=function(a){return!!a&&(cvox.SemanticTree.attrPred_("type","TABLE")(a)||cvox.SemanticTree.attrPred_("type","MULTILINE")(a))};cvox.SemanticTree.tableIsMatrixOrVector_=function(a){return!!a&&cvox.SemanticTree.attrPred_("type","FENCED")(a)&&cvox.SemanticTree.attrPred_("role","LEFTRIGHT")(a)&&1==a.childNodes.length&&cvox.SemanticTree.isTableOrMultiline_(a.childNodes[0])};
+cvox.SemanticTree.prototype.tableToMatrixOrVector_=function(a){var b=a.childNodes[0],c=cvox.SemanticTree.attrPred_("type","MULTILINE")(b)?"VECTOR":"MATRIX";b.type=cvox.SemanticAttr.Type[c];a.contentNodes.forEach(goog.bind(b.appendContentNode_,b));a=0;for(var d;d=b.childNodes[a];a++)cvox.SemanticTree.assignRoleToRow_(d,cvox.SemanticAttr.Role[c]);return b};cvox.SemanticTree.tableIsCases_=function(a,b){return 0<b.length&&cvox.SemanticTree.attrPred_("role","OPENFENCE")(b[b.length-1])};
+cvox.SemanticTree.prototype.tableToCases_=function(a,b){for(var c=0,d;d=a.childNodes[c];c++)cvox.SemanticTree.assignRoleToRow_(d,cvox.SemanticAttr.Role.CASES);a.type=cvox.SemanticAttr.Type.CASES;a.appendContentNode_(b);return a};cvox.SemanticTree.tableIsMultiline_=function(a){return a.childNodes.every(function(a){a=a.childNodes.length;return 1>=a})};
+cvox.SemanticTree.prototype.tableToMultiline_=function(a){a.type=cvox.SemanticAttr.Type.MULTILINE;for(var b=0,c;c=a.childNodes[b];b++)cvox.SemanticTree.rowToLine_(c,cvox.SemanticAttr.Role.MULTILINE)};cvox.SemanticTree.rowToLine_=function(a,b){b=b||cvox.SemanticAttr.Role.UNKNOWN;cvox.SemanticTree.attrPred_("type","ROW")(a)&&1==a.childNodes.length&&cvox.SemanticTree.attrPred_("type","CELL")(a.childNodes[0])&&(a.type=cvox.SemanticAttr.Type.LINE,a.role=b,a.childNodes=a.childNodes[0].childNodes)};
+cvox.SemanticTree.assignRoleToRow_=function(a,b){if(cvox.SemanticTree.attrPred_("type","LINE")(a))a.role=b;else if(cvox.SemanticTree.attrPred_("type","ROW")(a)){a.role=b;var c=cvox.SemanticTree.attrPred_("type","CELL");a.childNodes.forEach(function(a){c(a)&&(a.role=b)})}};
+cvox.SemanticTree.sliceNodes_=function(a,b,c){c&&a.reverse();for(var d=[],e=0,f;f=a[e];e++){if(b(f))return c?{head:a.slice(e+1).reverse(),div:f,tail:d.reverse()}:{head:d,div:f,tail:a.slice(e+1)};d.push(f)}return c?{head:[],div:null,tail:d.reverse()}:{head:d,div:null,tail:[]}};cvox.SemanticTree.partitionNodes_=function(a,b){var c=a,d=[],e=[];do{var f=cvox.SemanticTree.sliceNodes_(c,b);e.push(f.head);d.push(f.div);c=f.tail}while(f.div);d.pop();return{rel:d,comp:e}};
+cvox.SemanticTree.attrPred_=function(a,b){return function(c){var d;o:{switch(a){case "type":d=cvox.SemanticAttr.Type[b];break o;case "role":d=cvox.SemanticAttr.Role[b];break o;case "font":d=cvox.SemanticAttr.Font[b];break o}d=void 0}return c[a]==d}};cvox.TraverseMath=function(){this.activeNode=this.activeMath=null;this.allTexs_={};this.allMathjaxs_={};this.activeMathmlHost=null;this.domain="default";this.style="short";cvox.ChromeVox.mathJax&&(this.initializeMathjaxs(),this.initializeAltMaths())};goog.addSingletonGetter(cvox.TraverseMath);cvox.TraverseMath.setSemantic_=!1;cvox.TraverseMath.toggleSemantic=function(){return cvox.TraverseMath.setSemantic_=!cvox.TraverseMath.setSemantic_};
+cvox.TraverseMath.prototype.initialize=function(a){if(cvox.DomUtil.isMathImg(a)){if(!a.hasAttribute("cvoxid"))return;a=a.getAttribute("cvoxid");a=this.allTexs_[a]}cvox.DomUtil.isMathJax(a)&&(this.activeMathmlHost=this.allMathjaxs_[a.getAttribute("id")]);this.activeMath=this.activeMathmlHost||a;(this.activeNode=this.activeMathmlHost||a)&&cvox.TraverseMath.setSemantic_&&this.activeNode.nodeType==Node.ELEMENT_NODE&&(this.activeNode=(new cvox.SemanticTree(this.activeNode)).xml())};
+cvox.TraverseMath.prototype.addMathjax=function(a,b){var c=cvox.DomUtil.getMathSpanId(b);c?this.allMathjaxs_[c]=a:this.redoMathjaxs(a,b)};cvox.TraverseMath.prototype.redoMathjaxs=function(a,b){var c=goog.bind(function(){this.addMathjax(a,b)},this);setTimeout(c,500)};
+cvox.TraverseMath.prototype.initializeMathjaxs=function(){var a=goog.bind(function(a,c){this.addMathjax(a,c)},this);cvox.ChromeVox.mathJax.isMathjaxActive(function(b){b&&(cvox.ChromeVox.mathJax.getAllJax(a),cvox.ChromeVox.mathJax.registerSignal(a,"New Math"))})};
+cvox.TraverseMath.prototype.initializeAltMaths=function(){if(document.querySelector(cvox.DomUtil.altMathQuerySelector("tex")+", "+cvox.DomUtil.altMathQuerySelector("asciimath"))){var a=goog.bind(function(a,c){this.allTexs_[c]=a},this);cvox.ChromeVox.mathJax.injectScripts();cvox.ChromeVox.mathJax.isMathjaxActive(function(b){b&&(cvox.ChromeVox.mathJax.configMediaWiki(),cvox.ChromeVox.mathJax.getAllTexs(a),cvox.ChromeVox.mathJax.getAllAsciiMaths(a))})}};
+cvox.TraverseMath.prototype.nextSibling=function(a){if(!this.activeNode||!this.activeMath)return null;var b=this.activeNode,b=a?b.previousSibling:b.nextSibling;return b?this.activeNode=b:null};cvox.TraverseMath.prototype.nextParentChild=function(a){if(!this.activeNode||!this.activeMath||this.activeNode==this.activeMath&&a)return null;var b=this.activeNode,b=a?b.parentNode:b.firstChild;return b?this.activeNode=b:null};
+cvox.TraverseMath.prototype.getAttachedActiveNode=function(){var a=this.activeNode;if(!a||a.nodeType!=Node.ELEMENT_NODE)return null;a=a.getAttribute("spanID");return document.getElementById(a)};cvox.MathUtil={};cvox.MathUtil.isMathmlNodeOfClass_=function(a,b){return-1!=b.indexOf(a.tagName.toUpperCase())};cvox.MathUtil.isMathjaxNodeOfClass_=function(a,b){if("SPAN"==a.tagName){var c=a.className.split(" ");return c.some(function(a){return-1!=b.indexOf(a.toUpperCase())})}return!1};cvox.MathUtil.isMathNodeOfClass_=function(a,b){return a.nodeType==Node.ELEMENT_NODE&&(cvox.MathUtil.isMathmlNodeOfClass_(a,b)||cvox.MathUtil.isMathjaxNodeOfClass_(a,b))};cvox.MathUtil.TOKEN_LIST="MI MN MO MTEXT MSPACE MS".split(" ");
+cvox.MathUtil.isToken=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.TOKEN_LIST)};cvox.MathUtil.LAYOUT_LIST="MROW MFRAC MSQRT MROOT MSTYLE MERROR MPADDED MPHANTOM MFENCED MENCLOSE".split(" ");cvox.MathUtil.isLayout=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.LAYOUT_LIST)};cvox.MathUtil.SCRIPT_LIST="MSUB MSUP MSUBSUP MUNDER MOVER MUNDEROVER MMULTISCRIPTS MPRESCRIPTS".split(" ");
+cvox.MathUtil.isScript=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.SCRIPT_LIST)};cvox.MathUtil.TABLES_LIST="MTABLE MLABELEDTR MTR MTD MALIGNGROUP MALIGNMARK".split(" ");cvox.MathUtil.isTables=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.TABLES_LIST)};cvox.MathUtil.ELEMENTARY_LIST="MSTACK MLONGDIV MSGROUP MSROW MSCARRIES MSCARRY MSLINE".split(" ");cvox.MathUtil.isElementary=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.ELEMENTARY_LIST)};
+cvox.MathUtil.MATHML_TAG_LIST=[cvox.MathUtil.TOKEN_LIST,cvox.MathUtil.LAYOUT_LIST,cvox.MathUtil.SCRIPT_LIST,cvox.MathUtil.TABLES_LIST,cvox.MathUtil.ELEMENTARY_LIST].reduce(function(a,b){return a.concat(b)});cvox.MathUtil.isMathmlTag=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.MATHML_TAG_LIST)};cvox.MathUtil.WHITESPACE_LIST=["MSROW","MROW","MSPACE","MPHANTOM","MPADDED"];cvox.MathUtil.isWhitespace=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.WHITESPACE_LIST)};
+cvox.MathUtil.isNotWhitespace=function(a){return cvox.MathUtil.isMathmlTag(a)&&!cvox.MathUtil.isWhitespace(a)};cvox.MathUtil.union=function(a,b){return a.concat(b.filter(function(b){return 0>a.indexOf(b)}))};cvox.SpeechRule=function(a,b,c,d){this.name=a;this.dynamicCstr=b;this.precondition=c;this.action=d};cvox.SpeechRule.prototype.toString=function(){var a=[],b;for(b in this.dynamicCstr)a.push(this.dynamicCstr[b]);return this.name+" | "+a.join(".")+" | "+this.precondition.toString()+" ==> "+this.action.toString()};cvox.SpeechRule.Type={NODE:"NODE",MULTI:"MULTI",TEXT:"TEXT",PERSONALITY:"PERSONALITY"};
+cvox.SpeechRule.Type.fromString=function(a){switch(a){case "[n]":return cvox.SpeechRule.Type.NODE;case "[m]":return cvox.SpeechRule.Type.MULTI;case "[t]":return cvox.SpeechRule.Type.TEXT;case "[p]":return cvox.SpeechRule.Type.PERSONALITY;default:throw"Parse error: "+a;}};
+cvox.SpeechRule.Type.toString=function(a){switch(a){case cvox.SpeechRule.Type.NODE:return"[n]";case cvox.SpeechRule.Type.MULTI:return"[m]";case cvox.SpeechRule.Type.TEXT:return"[t]";case cvox.SpeechRule.Type.PERSONALITY:return"[p]";default:throw"Unknown type error: "+a;}};cvox.SpeechRule.Component=function(a){this.type=a.type;this.content=a.content};
+cvox.SpeechRule.Component.fromString=function(a){var b={};b.type=cvox.SpeechRule.Type.fromString(a.substring(0,3));a=a.slice(3).trimLeft();if(!a)throw new cvox.SpeechRule.OutputError("Missing content.");switch(b.type){case cvox.SpeechRule.Type.TEXT:if('"'==a[0]){var c=cvox.SpeechRule.splitString_(a,"\\(")[0].trim();if('"'!=c.slice(-1))throw new cvox.SpeechRule.OutputError("Invalid string syntax.");b.content=c;a=a.slice(c.length).trim();-1==a.indexOf("(")&&(a="");break}case cvox.SpeechRule.Type.NODE:case cvox.SpeechRule.Type.MULTI:c=
+a.indexOf(" (");if(-1==c){b.content=a.trim();a="";break}b.content=a.substring(0,c).trim();a=a.slice(c).trimLeft()}b=new cvox.SpeechRule.Component(b);a&&b.addAttributes(a);return b};cvox.SpeechRule.Component.prototype.toString=function(){var a="",a=a+cvox.SpeechRule.Type.toString(this.type),a=a+(this.content?" "+this.content:""),b=this.getAttributes();0<b.length&&(a+=" ("+b.join(", ")+")");return a};
+cvox.SpeechRule.Component.prototype.addAttribute=function(a){var b=a.indexOf(":");-1==b?this[a.trim()]="true":this[a.substring(0,b).trim()]=a.slice(b+1).trim()};cvox.SpeechRule.Component.prototype.addAttributes=function(a){if("("!=a[0]||")"!=a.slice(-1))throw new cvox.SpeechRule.OutputError("Invalid attribute expression: "+a);a=cvox.SpeechRule.splitString_(a.slice(1,-1),",");for(var b=0;b<a.length;b++)this.addAttribute(a[b])};
+cvox.SpeechRule.Component.prototype.getAttributes=function(){var a=[],b;for(b in this)"content"!=b&&"type"!=b&&"function"!=typeof this[b]&&a.push(b+":"+this[b]);return a};cvox.SpeechRule.Action=function(a){this.components=a};cvox.SpeechRule.Action.fromString=function(a){a=cvox.SpeechRule.splitString_(a,";").filter(function(a){return a.match(/\S/)}).map(function(a){return a.trim()});for(var b=[],c=0;c<a.length;c++){var d=cvox.SpeechRule.Component.fromString(a[c]);d&&b.push(d)}return new cvox.SpeechRule.Action(b)};
+cvox.SpeechRule.Action.prototype.toString=function(){var a=this.components.map(function(a){return a.toString()});return a.join("; ")};cvox.SpeechRule.Precondition=function(a,b){this.query=a;this.constraints=b||[]};cvox.SpeechRule.Precondition.prototype.toString=function(){var a=this.constraints.join(", ");return this.query+", "+a};
+cvox.SpeechRule.splitString_=function(a,b){for(var c=[],d="";""!=a;){var e=a.search(b);if(-1==e){if(0!=(a.match(/"/g)||[]).length%2)throw new cvox.SpeechRule.OutputError("Invalid string in expression: "+a);c.push(d+a);a=d=""}else if(0==(a.substring(0,e).match(/"/g)||[]).length%2)c.push(d+a.substring(0,e)),d="",a=a.substring(e+1);else{var f=a.substring(e).search('"');if(-1==f)throw new cvox.SpeechRule.OutputError("Invalid string in expression: "+a);d+=a.substring(0,e+f+1);a=a.substring(e+f+1)}}d&&
+c.push(d);return c};cvox.SpeechRule.DynamicCstrAttrib={STYLE:"style"};cvox.SpeechRule.OutputError=function(a){this.name="RuleError";this.message=a||""};goog.inherits(cvox.SpeechRule.OutputError,Error);cvox.SpeechRuleFunctions=function(){};cvox.SpeechRuleFunctions.Store_=function(a,b){this.prefix_=a;this.store_=b};cvox.SpeechRuleFunctions.Store_.prototype.add=function(a,b){this.checkCustomFunctionSyntax_(a)&&(this.store_[a]=b)};cvox.SpeechRuleFunctions.Store_.prototype.lookup=function(a){return this.store_[a]};cvox.SpeechRuleFunctions.CustomQueries=function(){var a={};cvox.SpeechRuleFunctions.Store_.call(this,"CQF",a)};goog.inherits(cvox.SpeechRuleFunctions.CustomQueries,cvox.SpeechRuleFunctions.Store_);
+cvox.SpeechRuleFunctions.CustomStrings=function(){var a={};cvox.SpeechRuleFunctions.Store_.call(this,"CSF",a)};goog.inherits(cvox.SpeechRuleFunctions.CustomStrings,cvox.SpeechRuleFunctions.Store_);cvox.SpeechRuleFunctions.ContextFunctions=function(){var a={};cvox.SpeechRuleFunctions.Store_.call(this,"CTXF",a)};goog.inherits(cvox.SpeechRuleFunctions.ContextFunctions,cvox.SpeechRuleFunctions.Store_);
+cvox.SpeechRuleFunctions.Store_.prototype.checkCustomFunctionSyntax_=function(a){var b=RegExp("^"+this.prefix_);return a.match(b)?!0:(console.log("FunctionError: Invalid function name. Expected prefix"+this.prefix_),!1)};cvox.BaseRuleStore=function(){this.customQueries=new cvox.SpeechRuleFunctions.CustomQueries;this.customStrings=new cvox.SpeechRuleFunctions.CustomStrings;this.contextFunctions=new cvox.SpeechRuleFunctions.ContextFunctions;this.speechRules_=[];this.dynamicCstrAttribs=[cvox.SpeechRule.DynamicCstrAttrib.STYLE];this.defaultTtsProps=[]};
+cvox.BaseRuleStore.prototype.lookupRule=function(a,b){if(!a||a.nodeType!=Node.ELEMENT_NODE&&a.nodeType!=Node.TEXT_NODE)return null;var c=this.speechRules_.filter(goog.bind(function(c){return this.testDynamicConstraints(b,c)&&this.testPrecondition_(a,c)},this));return 0<c.length?this.pickMostConstraint_(b,c):null};
+cvox.BaseRuleStore.prototype.defineRule=function(a,b,c,d,e){try{var f=cvox.SpeechRule.Action.fromString(c),g=Array.prototype.slice.call(arguments,4),h=new cvox.SpeechRule.Precondition(d,g),g={};g[cvox.SpeechRule.DynamicCstrAttrib.STYLE]=b;var k=new cvox.SpeechRule(a,g,h,f)}catch(l){if("RuleError"==l.name)return console.log("Rule Error ",d,"("+b+"):",l.message),null;throw l;}this.addRule(k);return k};cvox.BaseRuleStore.prototype.addRule=function(a){this.speechRules_.unshift(a)};
+cvox.BaseRuleStore.prototype.deleteRule=function(a){a=this.speechRules_.indexOf(a);-1!=a&&this.speechRules_.splice(a,1)};cvox.BaseRuleStore.prototype.findRule=function(a){for(var b=0,c;c=this.speechRules_[b];b++)if(a(c))return c;return null};cvox.BaseRuleStore.prototype.findAllRules=function(a){return this.speechRules_.filter(a)};cvox.BaseRuleStore.prototype.evaluateDefault=function(a){return[new cvox.NavDescription({text:a.textContent})]};
+cvox.BaseRuleStore.prototype.removeDuplicates=function(a){for(var b=this.speechRules_.length-1,c;c=this.speechRules_[b];b--)c!=a&&cvox.BaseRuleStore.compareDynamicConstraints_(c.dynamicCstr,a.dynamicCstr)&&cvox.BaseRuleStore.comparePreconditions_(c,a)&&this.speechRules_.splice(b,1)};cvox.BaseRuleStore.prototype.applyCustomQuery=function(a,b){var c=this.customQueries.lookup(b);return c?c(a):null};
+cvox.BaseRuleStore.prototype.applySelector=function(a,b){var c=this.applyCustomQuery(a,b);return c||cvox.XpathUtil.evalXPath(b,a)};cvox.BaseRuleStore.prototype.applyQuery=function(a,b){var c=this.applySelector(a,b);return 0<c.length?c[0]:null};cvox.BaseRuleStore.prototype.applyConstraint=function(a,b){var c=this.applyQuery(a,b);return!!c||cvox.XpathUtil.evaluateBoolean(b,a)};
+cvox.BaseRuleStore.prototype.testDynamicConstraints=function(a,b){var c=Object.keys(a);return c.every(function(c){return a[c]==b.dynamicCstr[c]||"default"==b.dynamicCstr[c]})};cvox.BaseRuleStore.prototype.getDynamicConstraintValues=function(){for(var a={},b=0,c;c=this.speechRules_[b];b++)for(var d in c.dynamicCstr){var e=[c.dynamicCstr[d]];a[d]=a[d]?cvox.MathUtil.union(a[d],e):e}return a};
+cvox.BaseRuleStore.prototype.countMatchingDynamicConstraintValues_=function(a,b){for(var c=0,d=0,e;e=this.dynamicCstrAttribs[d];d++)if(a[e]==b.dynamicCstr[e])c++;else break;return c};cvox.BaseRuleStore.prototype.pickMostConstraint_=function(a,b){b.sort(goog.bind(function(b,d){var e=this.countMatchingDynamicConstraintValues_(a,b),f=this.countMatchingDynamicConstraintValues_(a,d);return e>f?-1:f>e?1:d.precondition.constraints.length-b.precondition.constraints.length},this));return b[0]};
+cvox.BaseRuleStore.prototype.testPrecondition_=function(a,b){var c=b.precondition;return this.applyQuery(a,c.query)===a&&c.constraints.every(goog.bind(function(b){return this.applyConstraint(a,b)},this))};cvox.BaseRuleStore.compareDynamicConstraints_=function(a,b){if(Object.keys(a).length!=Object.keys(b).length)return!1;for(var c in a)if(!b[c]||a[c]!==b[c])return!1;return!0};
+cvox.BaseRuleStore.compareStaticConstraints_=function(a,b){if(a.length!=b.length)return!1;for(var c=0,d;d=a[c];c++)if(-1==b.indexOf(d))return!1;return!0};cvox.BaseRuleStore.comparePreconditions_=function(a,b){var c=a.precondition,d=b.precondition;return c.query!=d.query?!1:cvox.BaseRuleStore.compareStaticConstraints_(c.constraints,d.constraints)};cvox.MathStore=function(){cvox.BaseRuleStore.call(this);this.dynamicCstrAttribs=[cvox.SpeechRule.DynamicCstrAttrib.DOMAIN,cvox.SpeechRule.DynamicCstrAttrib.STYLE];this.defaultTtsProps=[cvox.AbstractTts.PITCH,cvox.AbstractTts.RATE]};goog.inherits(cvox.MathStore,cvox.BaseRuleStore);cvox.SpeechRule.DynamicCstrAttrib.DOMAIN="domain";
+cvox.MathStore.prototype.defineRule=function(a,b,c,d,e){var f=this.parseDynamicConstraint(b),g=Array.prototype.slice.call(arguments,4),g=cvox.MathStore.superClass_.defineRule.apply(this,[a,f[cvox.SpeechRule.DynamicCstrAttrib.STYLE],c,d].concat(g));g.dynamicCstr=f;this.removeDuplicates(g);return g};
+cvox.MathStore.prototype.parseDynamicConstraint=function(a){var b=a.split(".");if(!b[0]||!b[1])throw new cvox.SpeechRule.OutputError("Invalid domain assignment:"+a);return cvox.MathStore.createDynamicConstraint(b[0],b[1])};cvox.MathStore.createDynamicConstraint=function(a,b){var c={};c[cvox.SpeechRule.DynamicCstrAttrib.DOMAIN]=a;c[cvox.SpeechRule.DynamicCstrAttrib.STYLE]=b;return c};
+cvox.MathStore.prototype.defineRuleAlias=function(a,b,c){var d=this.findRule(function(b){return b.name==a});if(!d)throw new cvox.SpeechRule.OutputError("Rule with named "+a+" does not exist.");this.addAlias_(d,b,Array.prototype.slice.call(arguments,2))};cvox.MathStore.prototype.addAlias_=function(a,b,c){b=new cvox.SpeechRule.Precondition(b,c);b=new cvox.SpeechRule(a.name,a.dynamicCstr,b,a.action);b.name=a.name;this.addRule(b)};cvox.MathStore.prototype.evaluateDefault=function(a){return this.evaluateString_(a.textContent)};
+cvox.MathStore.prototype.evaluateString_=function(a){var b=[];if(a.match(/^\s+$/))return b;a=cvox.MathStore.removeEmpty_(a.replace(/\s/g," ").split(" "));for(var c=0,d;d=a[c];c++)if(1==d.length)b.push(this.evaluate_(d));else if(d.match(/^[a-zA-Z]+$/))b.push(this.evaluate_(d));else for(;d;){var e=d.match(/^\d+/),f=d.match(/^[a-zA-Z]+/);e?(b.push(this.evaluate_(e[0])),d=d.substring(e[0].length)):f?(b.push(this.evaluate_(f[0])),d=d.substring(f[0].length)):(e=d[0],e=e.charCodeAt(0),55296<=e&&56319>=e&&
+1<d.length&&!isNaN(d.charCodeAt(1))?(b.push(this.evaluate_(d.slice(0,2))),d=d.substring(2)):(b.push(this.evaluate_(d[0])),d=d.substring(1)))}return b};cvox.MathStore.prototype.evaluate_=function(a){return cvox.ChromeVox.host.mathMap?cvox.ChromeVox.host.mathMap.evaluate(a,cvox.TraverseMath.getInstance().domain,cvox.TraverseMath.getInstance().style):new cvox.NavMathDescription({text:a,domain:cvox.TraverseMath.getInstance().domain,style:cvox.TraverseMath.getInstance().style})};
+cvox.MathStore.removeEmpty_=function(a){return a.filter(function(a){return a})};cvox.MathmlStore=function(){cvox.MathStore.call(this)};goog.inherits(cvox.MathmlStore,cvox.MathStore);goog.addSingletonGetter(cvox.MathmlStore);cvox.MathmlStore.prototype.defineDefaultMathmlRule=function(a,b){this.defineRule(a,"default.default",b,"self::mathml:"+a)};cvox.SpeechRuleEngine=function(){this.activeStore_=null;this.dynamicCstr={};this.dynamicCstr[cvox.SpeechRule.DynamicCstrAttrib.STYLE]="short"};goog.addSingletonGetter(cvox.SpeechRuleEngine);cvox.SpeechRuleEngine.prototype.parameterize=function(a){try{a.initialize()}catch(b){if("StoreError"==b.name)console.log("Store Error:",b.message);else throw b;}this.activeStore_=a};cvox.SpeechRuleEngine.prototype.setDynamicConstraint=function(a){a&&(this.dynamicCstr=a)};
+cvox.SpeechRuleEngine.prototype.constructString=function(a,b){if(!b)return"";if('"'==b.charAt(0))return b.slice(1,-1);var c=this.activeStore_.customStrings.lookup(b);return c?c(a):cvox.XpathUtil.evaluateString(b,a)};cvox.SpeechRuleEngine.prototype.evaluateNode=function(a){return a?this.evaluateTree_(a):[]};
+cvox.SpeechRuleEngine.prototype.evaluateTree_=function(a){var b=this.activeStore_.lookupRule(a,this.dynamicCstr);if(!b)return this.activeStore_.evaluateDefault(a);for(var b=b.action.components,c=[],d=0,e;e=b[d];d++){var f=[],g=e.content||"";switch(e.type){case cvox.SpeechRule.Type.NODE:(g=this.activeStore_.applyQuery(a,g))&&(f=this.evaluateTree_(g));break;case cvox.SpeechRule.Type.MULTI:g=this.activeStore_.applySelector(a,g);0<g.length&&(f=this.evaluateNodeList_(g,e.sepFunc,this.constructString(a,
+e.separator),e.ctxtFunc,this.constructString(a,e.context)));break;case cvox.SpeechRule.Type.TEXT:(g=this.constructString(a,g))&&(f=[new cvox.NavDescription({text:g})]);break;default:f=[new cvox.NavDescription({text:g})]}f[0]&&e.context&&e.type!=cvox.SpeechRule.Type.MULTI&&(f[0].context=this.constructString(a,e.context)+(f[0].context||""));c=c.concat(this.addPersonality_(f,e))}return c};
+cvox.SpeechRuleEngine.prototype.evaluateNodeList_=function(a,b,c,d,e){if(a==[])return[];var f=c||"",g=e||"";c=(c=this.activeStore_.contextFunctions.lookup(d))?c(a,g):function(){return g};b=(b=this.activeStore_.contextFunctions.lookup(b))?b(a,f):function(){return f};d=[];e=0;for(var h;h=a[e];e++)h=this.evaluateTree_(h),0<h.length&&(h[0].context=c()+(h[0].context||""),d=d.concat(h),e<a.length-1&&(h=b())&&d.push(new cvox.NavDescription({text:h})));return d};
+cvox.SpeechRuleEngine.propMap={pitch:cvox.AbstractTts.RELATIVE_PITCH,rate:cvox.AbstractTts.RELATIVE_RATE,volume:cvox.AbstractTts.RELATIVE_VOLUME,pause:cvox.AbstractTts.PAUSE};cvox.SpeechRuleEngine.prototype.addPersonality_=function(a,b){var c={},d;for(d in cvox.SpeechRuleEngine.propMap){var e=parseFloat(b[d]);isNaN(e)||(c[cvox.SpeechRuleEngine.propMap[d]]=e)}a.forEach(goog.bind(function(a){this.addRelativePersonality_(a,c);this.resetPersonality_(a)},this));return a};
+cvox.SpeechRuleEngine.prototype.addRelativePersonality_=function(a,b){if(!a.personality)return a.personality=b,a;var c=a.personality,d;for(d in b)c[d]=c[d]&&"number"==typeof c[d]?c[d]+b[d]:b[d];return a};cvox.SpeechRuleEngine.prototype.resetPersonality_=function(a){if(this.activeStore_.defaultTtsProps)for(var b=0,c;c=this.activeStore_.defaultTtsProps[b];b++)a.personality[c]=cvox.ChromeVox.tts.getDefaultProperty(c)};cvox.SpeechRuleEngine.debugMode=!1;
+cvox.SpeechRuleEngine.outputDebug=function(a){if(cvox.SpeechRuleEngine.debugMode){var b=Array.prototype.slice.call(arguments,0);console.log.apply(console,["Speech Rule Engine Debugger:"].concat(b))}};cvox.SpeechRuleEngine.prototype.toString=function(){var a=this.activeStore_.findAllRules(function(){return!0});return a.map(function(a){return a.toString()}).join("\n")};
+cvox.SpeechRuleEngine.debugSpeechRule=function(a,b){var c=cvox.SpeechRuleEngine.getInstance().activeStore_;if(c){var d=a.precondition;cvox.SpeechRuleEngine.outputDebug(d.query,c.applyQuery(b,d.query));d.constraints.forEach(function(a){cvox.SpeechRuleEngine.outputDebug(a,c.applyConstraint(b,a))})}};
+cvox.SpeechRuleEngine.debugNamedSpeechRule=function(a,b){for(var c=cvox.SpeechRuleEngine.getInstance().activeStore_,c=c.findAllRules(function(b){return b.name==a}),d=0,e;e=c[d];d++)cvox.SpeechRuleEngine.outputDebug("Rule",a,"number",d),cvox.SpeechRuleEngine.debugSpeechRule(e,b)};cvox.AbstractWalker=function(){};cvox.AbstractWalker.prototype.begin=function(a){a=a||{reversed:!1};return this.sync(cvox.CursorSelection.fromBody().setReversed(a.reversed))};cvox.AbstractWalker.prototype.hasAction=function(a){return"function"==typeof this[a]};cvox.AbstractWalker.prototype.performAction=function(a,b){return this.hasAction(a)?this[a](b):null};cvox.AbstractNodeWalker=function(){this.wasBegin_=!1};goog.inherits(cvox.AbstractNodeWalker,cvox.AbstractWalker);cvox.AbstractNodeWalker.prototype.next=function(a){var b=a.isReversed();a=a.end.node||document.body;do if(a=cvox.DomUtil.directedNextLeafLikeNode(a,b,goog.bind(this.stopNodeDescent,this)),!a)return null;while(a&&!cvox.DomUtil.hasContent(a));return cvox.CursorSelection.fromNode(a).setReversed(b)};
+cvox.AbstractNodeWalker.prototype.sync=function(a){a=this.privateSync_(a);this.wasBegin_=!1;return a};
+cvox.AbstractNodeWalker.prototype.privateSync_=function(a){var b=a.isReversed();if(a.equals(cvox.CursorSelection.fromBody())){if(this.wasBegin_)return cvox.CursorSelection.fromBody().setReversed(b);this.wasBegin_=!0}for(a=a.start.node;a!=document.body&&a.parentNode&&this.stopNodeDescent(a.parentNode);)a=a.parentNode;for(;!this.stopNodeDescent(a);)a=cvox.DomUtil.directedFirstChild(a,b);var c=cvox.CursorSelection.fromNode(a);cvox.DomUtil.hasContent(a)||(c=this.next(cvox.CursorSelection.fromNode(a).setReversed(b)));
+return c?c.setReversed(b):this.begin({reversed:b})};cvox.BareObjectWalker=function(){cvox.AbstractNodeWalker.call(this)};goog.inherits(cvox.BareObjectWalker,cvox.AbstractNodeWalker);cvox.BareObjectWalker.prototype.stopNodeDescent=function(a){return cvox.DomUtil.isLeafNode(a)};cvox.AuralStyleConverter={};cvox.AuralStyleUtil={};
+cvox.AuralProperty={VOLUME:"VOLUME",SPEAK:"SPEAK",PAUSE_BEFORE:"PAUSE_BEFORE",PAUSE_AFTER:"PAUSE_AFTER",PAUSE:"PAUSE",CUE_BEFORE:"CUE_BEFORE",CUE_AFTER:"CUE_AFTER",CUE:"CUE",PLAY_DURING:"PLAY_DURING",AZIMUTH:"AZIMUTH",ELEVATION:"ELEVATION",SPEECH_RATE:"SPEECH_RATE",VOICE_FAMILY:"VOICE_FAMILY",PITCH:"PITCH",PITCH_RANGE:"PITCH_RANGE",STRESS:"STRESS",RICHNESS:"RICHNESS",SPEAK_PUNCTUATION:"SPEAK_PUNCTUATION",SPEAK_NUMERIAL:"SPEAK_NUMERIAL",SPEAK_HEADER:"SPEAK_HEADER",NONE:"NONE"};
+cvox.AuralStyleConverter.identity=function(a){return a};cvox.AuralStyleConverter.propertyTable={VOLUME:"volume",SPEAK:"no-op",PAUSE_BEFORE:"no-op",PAUSE_AFTER:"no-op",PAUSE:"no-op",CUE_BEFORE:"no-op",CUE_AFTER:"no-op",CUE:"no-op",PLAY_DURING:"no-op",AZIMUTH:"no-op",ELEVATION:"no-op",SPEECH_RATE:"relativeRate",VOICE_FAMILY:"no-op",PITCH:"relativePitch",PITCH_RANGE:"no-op",STRESS:"no-op",RICHNESS:"no-op",SPEAK_PUNCTUATION:"no-op",SPEAK_NUMERIAL:"no-op",SPEAK_HEADER:"no-op",NONE:"no-op"};
+cvox.AuralStyleConverter.valueTable={VOLUME:cvox.AuralStyleConverter.identity,SPEAK:cvox.AuralStyleConverter.identity,PAUSE_BEFORE:cvox.AuralStyleConverter.identity,PAUSE_AFTER:cvox.AuralStyleConverter.identity,PAUSE:cvox.AuralStyleConverter.identity,CUE_BEFORE:cvox.AuralStyleConverter.identity,CUE_AFTER:cvox.AuralStyleConverter.identity,CUE:cvox.AuralStyleConverter.identity,PLAY_DURING:cvox.AuralStyleConverter.identity,AZIMUTH:cvox.AuralStyleConverter.identity,ELEVATION:cvox.AuralStyleConverter.identity,
+SPEECH_RATE:cvox.AuralStyleConverter.identity,VOICE_FAMILY:cvox.AuralStyleConverter.identity,PITCH:cvox.AuralStyleConverter.identity,PITCH_RANGE:cvox.AuralStyleConverter.identity,STRESS:cvox.AuralStyleConverter.identity,RICHNESS:cvox.AuralStyleConverter.identity,SPEAK_PUNCTUATION:cvox.AuralStyleConverter.identity,SPEAK_NUMERIAL:cvox.AuralStyleConverter.identity,SPEAK_HEADER:cvox.AuralStyleConverter.identity,NONE:cvox.AuralStyleConverter.identity};
+cvox.AuralStyleConverter.convertRule=function(a,b){return{property:cvox.AuralStyleConverter.propertyTable[a],value:cvox.AuralStyleConverter.valueTable[a](b)}};cvox.AuralStyleConverter.convertStyle=function(a){var b={},c;for(c in a){var d=cvox.AuralStyleConverter.convertRule(c,a[c]);b[d.property]=d.value}return b};cvox.AuralStyleUtil.getStyleForNode=function(a){return(a=cvox.AuralStyleUtil.defaultStyles[a.tagName])?cvox.AuralStyleConverter.convertStyle(a):null};
+cvox.AuralStyleUtil.defaultStyles={ARTICLE:{PITCH:-0.1},ASIDE:{PITCH:-0.1},FOOTER:{PITCH:-0.1},H1:{PITCH:-0.3},H2:{PITCH:-0.25},H3:{PITCH:-0.2},H4:{PITCH:-0.15},H5:{PITCH:-0.1},H6:{PITCH:-0.05},HEADER:{PITCH:-0.1},HGROUP:{PITCH:-0.1},MARK:{PITCH:-0.1},NAV:{PITCH:-0.1},SECTION:{PITCH:-0.1},TIME:{PITCH:-0.1}};cvox.EarconUtil={};
+cvox.EarconUtil.getEarcon=function(a){var b=cvox.AriaUtil.getEarcon(a);if(null!=b)return b;switch(a.tagName){case "BUTTON":return cvox.AbstractEarcons.BUTTON;case "A":if(a.hasAttribute("href"))return cvox.AbstractEarcons.LINK;break;case "IMG":if(cvox.DomUtil.hasLongDesc(a))return cvox.AbstractEarcons.LONG_DESC;break;case "LI":return cvox.AbstractEarcons.LIST_ITEM;case "SELECT":return cvox.AbstractEarcons.LISTBOX;case "TEXTAREA":return cvox.AbstractEarcons.EDITABLE_TEXT;case "INPUT":switch(a.type){case "button":case "submit":case "reset":return cvox.AbstractEarcons.BUTTON;case "checkbox":case "radio":return a.checked?
+cvox.AbstractEarcons.CHECK_ON:cvox.AbstractEarcons.CHECK_OFF;default:if(cvox.DomUtil.isInputTypeText(a))return cvox.AbstractEarcons.EDITABLE_TEXT}}return null};cvox.DescriptionUtil={};cvox.DescriptionUtil.COLLECTION_NODE_TYPE={H1:!0,H2:!0,H3:!0,H4:!0,H5:!0,H6:!0};
+cvox.DescriptionUtil.getControlDescription=function(a,b){var c=[a];if(b&&0<b.length)c=b;else{var d=cvox.DomUtil.getSurroundingControl(a);d&&(c=[d,a])}c=cvox.DescriptionUtil.getDescriptionFromAncestors(c,!0,cvox.VERBOSITY_VERBOSE);if(d){var e=cvox.DomUtil.getName(d);0==e.length&&(e=cvox.DomUtil.getControlLabelHeuristics(d),0<e.length&&(c.context=e+" "+c.context))}else e=cvox.DomUtil.getName(a),0==e.length&&(e=cvox.DomUtil.getControlLabelHeuristics(a),0<e.length&&(c.text=cvox.DomUtil.collapseWhitespace(e))),
+d=cvox.DomUtil.getValue(a),0<d.length&&(c.userValue=cvox.DomUtil.collapseWhitespace(d));return c};
+cvox.DescriptionUtil.getDescriptionFromAncestors=function(a,b,c){"undefined"===typeof b&&(b=!0);var d=a.length,e="",f="",g="",h="",k=[],l=null;0<d&&(f=cvox.DomUtil.getName(a[d-1],b),g=cvox.DomUtil.getValue(a[d-1]));for(b=d-1;0<=b;b--){var m=a[b],p=m.getAttribute?m.getAttribute("role"):null;if("dialog"!=p&&"alertdialog"!=p){p=cvox.DomUtil.getRole(m,c);l||(l=cvox.AuralStyleUtil.getStyleForNode(m));if(b<d-1&&m.hasAttribute("role")){var q=cvox.DomUtil.getName(m,!1);q&&(p=q+" "+p)}0<p.length&&(0<e.length||
+0<h.length&&1<m.childElementCount?e=p+" "+cvox.DomUtil.getState(m,!1)+" "+e:h=0<h.length?h+(" "+p+" "+cvox.DomUtil.getState(m,!0)):p+" "+cvox.DomUtil.getState(m,!0));m=cvox.EarconUtil.getEarcon(m);null!=m&&-1==k.indexOf(m)&&k.push(m)}}return new cvox.NavDescription({context:cvox.DomUtil.collapseWhitespace(e),text:cvox.DomUtil.collapseWhitespace(f),userValue:cvox.DomUtil.collapseWhitespace(g),annotation:cvox.DomUtil.collapseWhitespace(h),earcons:k,personality:l})};
+cvox.DescriptionUtil.getDescriptionFromNavigation=function(a,b,c,d){if(!a||!b)return[];if(cvox.DomUtil.isMath(b)&&!cvox.AriaUtil.isMath(b))return cvox.DescriptionUtil.getMathDescription(b);if(cvox.DescriptionUtil.COLLECTION_NODE_TYPE[b.tagName])return cvox.DescriptionUtil.getCollectionDescription(cvox.CursorSelection.fromNode(a),cvox.CursorSelection.fromNode(b));var e=cvox.DomUtil.getUniqueAncestors(a,b,!0),e=cvox.DescriptionUtil.getDescriptionFromAncestors(e,c,d);a=cvox.DomUtil.getUniqueAncestors(b,
+a);cvox.DescriptionUtil.shouldDescribeExit_(a)&&(c=cvox.DescriptionUtil.getDescriptionFromAncestors(a,c,d),c.context&&!e.context&&(e.context=cvox.ChromeVox.msgs.getMsg("exited_container",[c.context])));return[e]};cvox.DescriptionUtil.getCollectionDescription=function(a,b){var c=cvox.DescriptionUtil.getRawDescriptions_(a,b);cvox.DescriptionUtil.insertCollectionDescription_(c);return c};cvox.DescriptionUtil.subWalker_=new cvox.BareObjectWalker;
+cvox.DescriptionUtil.getRawDescriptions_=function(a,b){var c=[];b=b.clone().setReversed(!1);var d=cvox.DescriptionUtil.subWalker_.sync(b).start.node,e=a.end.node,f=cvox.CursorSelection.fromNode(d);if(!f)return[];for(;cvox.DomUtil.isDescendantOfNode(d,b.start.node);){e=cvox.DomUtil.getUniqueAncestors(e,d);cvox.DomUtil.isMath(d)&&!cvox.AriaUtil.isMath(d)?c=c.concat(cvox.DescriptionUtil.getMathDescription(d)):(e=cvox.DescriptionUtil.getDescriptionFromAncestors(e,!0,cvox.ChromeVox.verbosity),c.push(e));
+f=cvox.DescriptionUtil.subWalker_.next(f);if(!f)break;e=d;d=f.start.node}return c};
+cvox.DescriptionUtil.getFullDescriptionsFromChildren=function(a,b){var c=[];if(!b)return c;var d;if(cvox.DomUtil.isLeafNode(b))return a?d=cvox.DomUtil.getUniqueAncestors(a,b):(d=[],d.push(b)),d=cvox.DescriptionUtil.getDescriptionFromAncestors(d,!0,cvox.ChromeVox.verbosity),c.push(d),c;d=b;var e=cvox.CursorSelection.fromNode(b);if(!e)return c;b=cvox.DescriptionUtil.subWalker_.sync(e).start.node;e=cvox.CursorSelection.fromNode(b);if(!e)return c;for(;cvox.DomUtil.isDescendantOfNode(b,d);){c=c.concat(cvox.DescriptionUtil.getFullDescriptionsFromChildren(a,
+b));e=cvox.DescriptionUtil.subWalker_.next(e);if(!e)break;a=b;b=e.start.node}return c};
+cvox.DescriptionUtil.insertCollectionDescription_=function(a){var b=cvox.DescriptionUtil.getAnnotations_(a);if(3<=a.length&&0==a[0].context.length&&1==b.length&&0<b[0].length&&cvox.DescriptionUtil.isAnnotationCollection_(b[0])){var b=b[0],c=a[0].context;a[0].context="";for(var d=0;d<a.length;d++)a[d].annotation="";a.splice(0,0,new cvox.NavDescription({context:c,text:"",annotation:cvox.ChromeVox.msgs.getMsg("collection",[b,cvox.ChromeVox.msgs.getNumber(a.length)])}))}};
+cvox.DescriptionUtil.getAnnotations_=function(a){for(var b=[],c=0;c<a.length;++c){var d=a[c];if(-1==b.indexOf(d.annotation)){var e=cvox.ChromeVox.msgs.getMsg("tag_link");-1!=d.annotation.toLowerCase().indexOf(e.toLowerCase())?-1==b.indexOf(e)&&b.push(e):b.push(d.annotation)}}return b};cvox.DescriptionUtil.isAnnotationCollection_=function(a){return a==cvox.ChromeVox.msgs.getMsg("tag_link")};cvox.DescriptionUtil.shouldDescribeExit_=function(a){return a.some(function(a){switch(a.tagName){case "TABLE":case "MATH":return!0}return cvox.AriaUtil.isLandmark(a)})};
+cvox.DescriptionUtil.getMathDescription=function(a){var b=cvox.SpeechRuleEngine.getInstance(),c=cvox.TraverseMath.getInstance();b.parameterize(cvox.MathmlStore.getInstance());c.initialize(a);a=b.evaluateNode(c.activeNode);if(a==[])return[new cvox.NavDescription({text:"empty math"})];cvox.ChromeVox.verbosity==cvox.VERBOSITY_VERBOSE&&(a[a.length-1].annotation="math");a[0].pushEarcon(cvox.AbstractEarcons.SPECIAL_CONTENT);return a};cvox.FindUtil={};cvox.FindUtil.objectWalker_=new cvox.BareObjectWalker;cvox.FindUtil.findNext=function(a,b,c){var d=a.isReversed();a=(new cvox.CursorSelection(a.absStart(),a.absStart())).setReversed(d);var e;if(e=b(cvox.DomUtil.getAncestors(a.start.node)))if(a=cvox.CursorSelection.fromNode(e).setReversed(d),c)return a;for(;a;){a=cvox.FindUtil.objectWalker_.next(a);c=null;if(!a||(c=b(cvox.DomUtil.getAncestors(a.start.node))))return c?cvox.CursorSelection.fromNode(c):null;if("IFRAME"==a.start.node.tagName)return a}return null};cvox.Interframe=function(){};cvox.Interframe.IF_MSG_PREFIX="cvox.INTERFRAME:";cvox.Interframe.SET_ID="cvox.INTERFRAME_SET_ID";cvox.Interframe.listeners=[];cvox.Interframe.allowAccessToIframeContentWindow=!0;
+cvox.Interframe.init=function(){cvox.Interframe.messageListener=function(a){if("string"===typeof a.data&&0==a.data.indexOf(cvox.Interframe.IF_MSG_PREFIX)){a=a.data.substr(cvox.Interframe.IF_MSG_PREFIX.length);a=cvox.ChromeVoxJSON.parse(a);a.command==cvox.Interframe.SET_ID&&(cvox.Interframe.id=a.id);for(var b=0,c;c=cvox.Interframe.listeners[b];b++)c(a)}return!1};window.addEventListener("message",cvox.Interframe.messageListener,!0)};
+cvox.Interframe.shutdown=function(){window.removeEventListener("message",cvox.Interframe.messageListener,!0)};cvox.Interframe.addListener=function(a){cvox.Interframe.listeners.push(a)};cvox.Interframe.sendMessageToWindow=function(a,b){var c=cvox.Interframe.IF_MSG_PREFIX+cvox.ChromeVoxJSON.stringify(a,null,null);b.postMessage(c,"*")};
+cvox.Interframe.sendMessageToIFrame=function(a,b){if(cvox.Interframe.allowAccessToIframeContentWindow&&b.contentWindow)cvox.Interframe.sendMessageToWindow(a,b.contentWindow);else{var c=cvox.Interframe.IF_MSG_PREFIX+cvox.ChromeVoxJSON.stringify(a,null,null),d=document.createElement("script");d.type="text/javascript";if(b.hasAttribute("id")&&document.getElementById(b.id)==b)d.innerHTML="document.getElementById(decodeURI('"+encodeURI(b.id)+"')).contentWindow.postMessage(decodeURI('"+encodeURI(c)+"'), '*');";
+else{var e="cvox_iframe"+a.id;""===b.className?b.className=e:-1==b.className.indexOf(e)&&(b.className+=" "+e);d.innerHTML="document.getElementsByClassName(decodeURI('"+encodeURI(e)+"'))[0].contentWindow.postMessage(decodeURI('"+encodeURI(c)+"'), '*');"}document.head.appendChild(d);window.setTimeout(function(){document.head.removeChild(d)},1E3)}};
+cvox.Interframe.sendMessageToParentWindow=function(a){cvox.Interframe.isIframe()&&(a.sourceId=cvox.Interframe.id,window.parent?cvox.Interframe.sendMessageToWindow(a,window.parent):(a=cvox.Interframe.IF_MSG_PREFIX+cvox.ChromeVoxJSON.stringify(a,null,null),window.location.href="javascript:window.parent.postMessage('"+encodeURI(a)+"', '*');"))};cvox.Interframe.sendIdToIFrame=function(a,b){var c={command:cvox.Interframe.SET_ID,id:a};cvox.Interframe.sendMessageToIFrame(c,b)};
+cvox.Interframe.isIframe=function(){return window!=window.parent};cvox.Interframe.init();cvox.PageSelection=function(a){this.sel_=a.clone();this.sel_.select();this.wasBegin_=!0};
+cvox.PageSelection.prototype.getDescription=function(a,b,c){var d=[];this.sel_.isReversed()!=c.isReversed()?(d=a.getDescription(c,b),d[0].annotation=cvox.ChromeVox.msgs.getMsg("describe_unselected"),d[0].pushEarcon(cvox.AbstractEarcons.SELECTION_REVERSE)):(d=a.getDescription(b,c),d[0].annotation=cvox.ChromeVox.msgs.getMsg("describe_selected"),d[0].pushEarcon(cvox.AbstractEarcons.SELECTION),!this.wasBegin_&&this.sel_.absEquals(c.clone().normalize())&&(a=a.getDescription(c,b),a[0].annotation=cvox.ChromeVox.msgs.getMsg("describe_unselected"),
+a[0].pushEarcon(cvox.AbstractEarcons.SELECTION_REVERSE),a[0].pushEarcon(cvox.AbstractEarcons.WRAP),d=a.concat(d)));return d};cvox.PageSelection.prototype.getFullDescription=function(){return[new cvox.NavDescription({text:window.getSelection().toString(),context:cvox.ChromeVox.msgs.getMsg("selection_is")})]};
+cvox.PageSelection.prototype.extend=function(a){this.sel_.directedBefore(a)?this.sel_.end=this.sel_.isReversed()==a.isReversed()?a.end.clone():a.start.clone():this.sel_=a.clone();this.sel_.select();this.wasBegin_=!1;return!this.sel_.absEquals(a)};cvox.BrailleUtil={};cvox.BrailleUtil.ITEM_SEPARATOR=" ";cvox.BrailleUtil.CONTAINER="tag_h1_brl tag_h2_brl tag_h3_brl tag_h4_brl tag_h5_brl tag_h6_brl".split(" ");
+cvox.BrailleUtil.TEMPLATE={base:"c n v r s",aria_role_button:"[n]",aria_role_textbox:"n: v r",input_type_button:"[n]",input_type_checkbox:"n (s)",input_type_email:"n: v r",input_type_number:"n: v r",input_type_password:"n: v r",input_type_search:"n: v r",input_type_submit:"[n]",input_type_text:"n: v r",input_type_tel:"n: v r",input_type_url:"n: v r",tag_button:"[n]",tag_textarea:"n: v r"};cvox.BrailleUtil.ValueSpan=function(a){this.offset=a};cvox.BrailleUtil.ValueSelectionSpan=function(){};
+cvox.BrailleUtil.getName=function(a){return a?cvox.DomUtil.getName(a).trim():""};cvox.BrailleUtil.getRoleMsg=function(a){if(!a)return"";(a=cvox.DomUtil.getRoleMsg(a,cvox.VERBOSITY_VERBOSE))&&(a=cvox.DomUtil.collapseWhitespace(a));a&&0<a.length&&cvox.ChromeVox.msgs.getMsg(a+"_brl")&&(a+="_brl");return a};cvox.BrailleUtil.getRole=function(a){return a?(a=cvox.BrailleUtil.getRoleMsg(a))?cvox.ChromeVox.msgs.getMsg(a):"":""};
+cvox.BrailleUtil.getState=function(a){return a?cvox.NodeStateUtil.expand(cvox.DomUtil.getStateMsgs(a,!0).map(function(a){cvox.ChromeVox.msgs.getMsg(a[0]+"_brl")&&(a[0]+="_brl");return a})):""};cvox.BrailleUtil.getContainer=function(a,b){if(!a||!b)return"";for(var c=cvox.DomUtil.getUniqueAncestors(a,b),d=0,e;e=c[d];d++)if((e=cvox.BrailleUtil.getRoleMsg(e))&&-1!=cvox.BrailleUtil.CONTAINER.indexOf(e))return cvox.ChromeVox.msgs.getMsg(e);return""};
+cvox.BrailleUtil.getValue=function(a){if(!a)return new cvox.Spannable;var b=new cvox.BrailleUtil.ValueSpan(0);if(cvox.DomUtil.isInputTypeText(a)){var c=a.value;"password"===a.type&&(c=c.replace(/./g,"*"));b=new cvox.Spannable(c,b);a===document.activeElement&&b.setSpan(new cvox.BrailleUtil.ValueSelectionSpan,a.selectionStart,a.selectionEnd);return b}if(a instanceof HTMLTextAreaElement){var d=new cvox.EditableTextAreaShadow;d.update(a);var e=d.getLineIndex(a.selectionEnd),c=d.getLineStart(e),d=d.getLineEnd(e),
+d=a.value.substring(c,d);b.offset=c;b=new cvox.Spannable(d,b);a===document.activeElement&&(d=Math.max(a.selectionStart-c,0),a=Math.min(a.selectionEnd-c,b.getLength()),b.setSpan(new cvox.BrailleUtil.ValueSelectionSpan,d,a));return b}return new cvox.Spannable(cvox.DomUtil.getValue(a),b)};
+cvox.BrailleUtil.getTemplated=function(a,b,c){c=c?c:{};for(var d=c.roleMsg||(b?cvox.DomUtil.getRoleMsg(b,cvox.VERBOSITY_VERBOSE):""),d=cvox.BrailleUtil.TEMPLATE[d]||cvox.BrailleUtil.TEMPLATE.base,e=new cvox.Spannable,f=function(d){switch(d){case "n":return c.name||cvox.BrailleUtil.getName(b);case "r":return c.role||cvox.BrailleUtil.getRole(b);case "s":return c.state||cvox.BrailleUtil.getState(b);case "c":return c.container||cvox.BrailleUtil.getContainer(a,b);case "v":return c.value?new cvox.Spannable(c.value,
+new cvox.BrailleUtil.ValueSpan(0)):cvox.BrailleUtil.getValue(b);default:return d}},g=0;g<d.length;g++){var h=f(d[g]);e.append(h);h.toString()||" "!=d[g+1]||g++}return e.trim()};cvox.MathmlStoreUtil={};cvox.MathmlStoreUtil.matchMathjaxToMathml=function(a){var b=cvox.TraverseMath.getInstance().activeMathmlHost;return b.querySelector("#"+a.id)};cvox.MathmlStoreUtil.retrieveMathjaxExtender=function(a){return(a=cvox.MathmlStoreUtil.matchMathjaxToMathml(a))?[a]:[]};cvox.MathmlStoreUtil.retrieveMathjaxLeaf=function(a){return(a=cvox.MathmlStoreUtil.matchMathjaxToMathml(a))?[a]:[]};
+cvox.MathmlStoreUtil.checkMathjaxTag=function(a,b){var c=cvox.MathmlStoreUtil.matchMathjaxToMathml(a);return c&&c.tagName.toUpperCase()==b?[c]:[]};cvox.MathmlStoreUtil.checkMathjaxMunder=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MUNDER")};cvox.MathmlStoreUtil.checkMathjaxMover=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MOVER")};cvox.MathmlStoreUtil.checkMathjaxMsub=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MSUB")};
+cvox.MathmlStoreUtil.checkMathjaxMsup=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MSUP")};cvox.MathmlStoreUtil.nextSeparatorFunction=function(a){if(a){if(a.match(/^\s+$/))return null;var b=a.replace(/\s/g,"").split("").filter(function(a){return a})}else b=[","];return function(){return 1<b.length?b.shift():b[0]}};cvox.MathmlStoreUtil.mfencedSeparators=function(a,b){var c=cvox.MathmlStoreUtil.nextSeparatorFunction(b);return function(){return c?c():""}};
+cvox.MathmlStoreUtil.contentIterator=function(a,b){var c=0<a.length?cvox.XpathUtil.evalXPath("../../content/*",a[0]):[];return function(){var a=c.shift();return b+(a?a.textContent:"")}};cvox.StoreUtil={};cvox.StoreUtil.nodeCounter=function(a,b){var c=a.length,d=0,e=b;b||(e="");return function(){d<c&&(d+=1);return e+" "+d}};cvox.MathmlStoreRules=function(){cvox.MathmlStoreRules.initCustomFunctions_();cvox.MathmlStoreRules.initDefaultRules_();cvox.MathmlStoreRules.initMathjaxRules_();cvox.MathmlStoreRules.initAliases_();cvox.MathmlStoreRules.initSpecializationRules_();cvox.MathmlStoreRules.initSemanticRules_()};goog.addSingletonGetter(cvox.MathmlStoreRules);cvox.MathmlStoreRules.mathStore=cvox.MathmlStore.getInstance();cvox.MathmlStoreRules.mathStore.initialize=cvox.MathmlStoreRules.getInstance;
+cvox.MathmlStoreRules.defineDefaultMathmlRule_=goog.bind(cvox.MathmlStoreRules.mathStore.defineDefaultMathmlRule,cvox.MathmlStoreRules.mathStore);cvox.MathmlStoreRules.defineRule_=goog.bind(cvox.MathmlStoreRules.mathStore.defineRule,cvox.MathmlStoreRules.mathStore);cvox.MathmlStoreRules.defineRuleAlias_=goog.bind(cvox.MathmlStoreRules.mathStore.defineRuleAlias,cvox.MathmlStoreRules.mathStore);
+cvox.MathmlStoreRules.addContextFunction_=goog.bind(cvox.MathmlStoreRules.mathStore.contextFunctions.add,cvox.MathmlStoreRules.mathStore.contextFunctions);cvox.MathmlStoreRules.addCustomQuery_=goog.bind(cvox.MathmlStoreRules.mathStore.customQueries.add,cvox.MathmlStoreRules.mathStore.customQueries);
+cvox.MathmlStoreRules.initCustomFunctions_=function(){(0,cvox.MathmlStoreRules.addContextFunction_)("CTXFnodeCounter",cvox.StoreUtil.nodeCounter);(0,cvox.MathmlStoreRules.addContextFunction_)("CTXFmfSeparators",cvox.MathmlStoreUtil.mfencedSeparators);(0,cvox.MathmlStoreRules.addContextFunction_)("CTXFcontentIterator",cvox.MathmlStoreUtil.contentIterator);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFextender",cvox.MathmlStoreUtil.retrieveMathjaxExtender);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmunder",
+cvox.MathmlStoreUtil.checkMathjaxMunder);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmover",cvox.MathmlStoreUtil.checkMathjaxMover);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmsub",cvox.MathmlStoreUtil.checkMathjaxMsub);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmsup",cvox.MathmlStoreUtil.checkMathjaxMsup);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFlookupleaf",cvox.MathmlStoreUtil.retrieveMathjaxLeaf)};
+cvox.MathmlStoreRules.initDefaultRules_=function(){(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("math","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mspace","[p] (pause:250)");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mstyle","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mpadded","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("merror","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mphantom","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mtext",
+"[t] text(); [p] (pause:200)");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mi","[n] text()");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mo","[n] text() (rate:-0.1)");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mn","[n] text()");(0,cvox.MathmlStoreRules.defineRule_)("mtext-variant","default.default",'[t] "begin"; [t] @mathvariant (pause:150);[t] text() (pause:150); [t] "end"; [t] @mathvariant (pause:200)',"self::mathml:mtext","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineRule_)("mi-variant",
+"default.default","[t] @mathvariant; [n] text()","self::mathml:mi","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mi-variant","self::mathml:mn","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineRule_)("mo-variant","default.default","[t] @mathvariant; [n] text() (rate:-0.1)","self::mathml:mo","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("ms",'[t] "string" (pitch:0.5, rate:0.5); [t] text()');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msup",
+'[n] ./*[1]; [t] "super";[n] ./*[2] (pitch:0.35); [p] (pause:300)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msubsup",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "super"; [n] ./*[3] (pitch:0.35); [p] (pause:300)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msub",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:300)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mover",'[n] ./*[2] (pitch:0.35); [p] (pause:200); [t] "over"; [n] ./*[1]; [p] (pause:400)');
+(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("munder",'[n] ./*[2] (pitch:-0.35); [t] "under"; [n] ./*[1]; [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("munderover",'[n] ./*[2] (pitch:-0.35); [t] "under and"; [n] ./*[3] (pitch:0.35); [t] "over"; [n] ./*[1]; [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mrow","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msqrt",'[t] "Square root of"; [m] ./* (rate:0.2); [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mroot",
+'[t] "root of order"; [n] ./*[2]; [t] "of";[n] ./*[1] (rate:0.2); [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mfrac",' [p] (pause:400); [n] ./*[1] (pitch:0.3); [t] "divided by"; [n] ./*[2] (pitch:-0.3); [p] (pause:400)');(0,cvox.MathmlStoreRules.defineRule_)("mfenced-single","default.default",'[t] @open (context:"opening"); [m] ./* (separator:@separators);[t] @close (context:"closing")',"self::mathml:mfenced","string-length(string(@separators))=1");(0,cvox.MathmlStoreRules.defineRule_)("mfenced-empty",
+"default.default",'[t] @open (context:"opening"); [m] ./*;[t] @close (context:"closing")',"self::mathml:mfenced","string-length(string(@separators))=1",'string(@separators)=" "');(0,cvox.MathmlStoreRules.defineRule_)("mfenced-comma","default.default",'[t] @open (context:"opening"); [m] ./* (separator:"comma");[t] @close (context:"closing")',"self::mathml:mfenced");(0,cvox.MathmlStoreRules.defineRule_)("mfenced-multi","default.default",'[t] @open (context:"opening"); [m] ./* (sepFunc:CTXFmfSeparators,separator:@separators); [t] @close (context:"closing")',
+"self::mathml:mfenced","string-length(string(@separators))>1");(0,cvox.MathmlStoreRules.defineRule_)("mtable","default.default",'[t] "matrix"; [m] ./* (ctxtFunc:CTXFnodeCounter,context:"row",pause:100)',"self::mathml:mtable");(0,cvox.MathmlStoreRules.defineRule_)("mtr","default.default",'[m] ./* (ctxtFunc:CTXFnodeCounter,context:"column",pause:100)',"self::mathml:mtr");(0,cvox.MathmlStoreRules.defineRule_)("mtd","default.default","[m] ./*","self::mathml:mtd");(0,cvox.MathmlStoreRules.defineRule_)("mtable",
+"default.superbrief",'[t] count(child::mathml:mtr); [t] "by";[t] count(child::mathml:mtr[1]/mathml:mtd); [t] "matrix";',"self::mathml:mtable");(0,cvox.MathmlStoreRules.defineRule_)("mtable","default.short",'[t] "matrix"; [m] ./*',"self::mathml:mtable");(0,cvox.MathmlStoreRules.defineRule_)("mtr","default.short","[m] ./*","self::mathml:mtr");(0,cvox.MathmlStoreRules.defineRule_)("mtd","default.short",'[t] "Element"; [t] count(./preceding-sibling::mathml:mtd)+1;[t] count(./parent::mathml:mtr/preceding-sibling::mathml:mtr)+1;[p] (pause:500); [m] ./*',
+"self::mathml:mtd");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-4","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);',"self::mathml:mmultiscripts");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-1","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);',
+"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-2","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);',"self::mathml:mmultiscripts","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-3",
+"default.default",'[n] ./*[1]; [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);',"self::mathml:mmultiscripts","./mathml:none=./*[5]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-4","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);',
+"self::mathml:mmultiscripts","./mathml:none=./*[6]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-2-1","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:300);',"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-1-1","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:300);',
+"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]","./mathml:none=./*[5]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-1-2","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);',"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]","./mathml:none=./*[6]")};
+cvox.MathmlStoreRules.initMathjaxRules_=function(){(0,cvox.MathmlStoreRules.defineRule_)("mj-math","default.default","[n] ./*[1]/*[1]/*[1]",'self::span[@class="math"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-leaf","default.default","[n] CQFlookupleaf",'self::span[@class="mi"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mo"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mn"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mtext"]');
+(0,cvox.MathmlStoreRules.defineRule_)("mj-mo-ext","default.default","[n] CQFextender",'self::span[@class="mo"]',"./*[1]/*[1]/text()","./*[1]/*[2]/text()");(0,cvox.MathmlStoreRules.defineRule_)("mj-texatom","default.default","[n] ./*[1]",'self::span[@class="texatom"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-msubsup","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub"; [n] ./*[1]/*[3]/*[1] (pitch:-0.35);[p] (pause:200); [t] "super"; [n] ./*[1]/*[2]/*[1] (pitch:0.35);[p] (pause:300)','self::span[@class="msubsup"]');
+(0,cvox.MathmlStoreRules.defineRule_)("mj-msub","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub";[n] ./*[1]/*[2]/*[1] (pitch:-0.35); [p] (pause:300)','self::span[@class="msub"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-msup","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "super";[n] ./*[1]/*[2]/*[1] (pitch:0.35); [p] (pause:300)','self::span[@class="msup"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-munderover","default.default",'[n] ./*[1]/*[2]/*[1] (pitch:0.35); [t] "under and";[n] ./*[1]/*[3]/*[1] (pitch:-0.35); [t] "over";[n] ./*[1]/*[1]/*[1]; [p] (pause:400)',
+'self::span[@class="munderover"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-munder","default.default",'[n] ./*[1]/*[2]/*[1] (pitch:0.35); [t] "under";[n] ./*[1]/*[1]/*[1]; [p] (pause:400)','self::span[@class="munder"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mover","default.default",'[n] ./*[1]/*[2]/*[1] (pitch:0.35); [t] "over";[n] ./*[1]/*[1]/*[1]; [p] (pause:400)','self::span[@class="mover"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mfrac","default.default",'[p] (pause:250); [n] ./*[1]/*[1]/*[1] (pitch:0.3); [p] (pause:250); [t] "divided by"; [n] ./*[1]/*[2]/*[1] (pitch:-0.3);[p] (pause:400)',
+'self::span[@class="mfrac"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-msqrt","default.default",'[t] "Square root of";[n] ./*[1]/*[1]/*[1] (rate:0.2); [p] (pause:400)','self::span[@class="msqrt"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mroot","default.default",'[t] "root of order"; [n] ./*[1]/*[4]/*[1]; [t] "of";[n] ./*[1]/*[1]/*[1] (rate:0.2); [p] (pause:400)','self::span[@class="mroot"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mfenced","default.default",'[t] "opening"; [n] ./*[1]; [m] ./*[position()>1 and position()<last()]; [t] "closing"; [n] ./*[last()]',
+'self::span[@class="mfenced"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mtable"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mmultiscripts"]')};
+cvox.MathmlStoreRules.initAliases_=function(){(0,cvox.MathmlStoreRules.defineRuleAlias_)("mspace",'self::span[@class="mspace"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mstyle",'self::span[@class="mstyle"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mpadded",'self::span[@class="mpadded"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("merror",'self::span[@class="merror"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mphantom",'self::span[@class="mphantom"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("ms",
+'self::span[@class="ms"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mrow",'self::span[@class="mrow"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-msub",'self::span[@class="msubsup"]',"CQFmathmlmsub");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-msup",'self::span[@class="msubsup"]',"CQFmathmlmsup");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-munder",'self::span[@class="munderover"]',"CQFmathmlmunder");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-mover",'self::span[@class="munderover"]',
+"CQFmathmlmover")};
+cvox.MathmlStoreRules.initSpecializationRules_=function(){(0,cvox.MathmlStoreRules.defineRule_)("square","default.default",'[n] ./*[1]; [t] "square" (pitch:0.35); [p] (pause:300)',"self::mathml:msup","./*[2][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("square","self::mathml:msup","./mathml:mrow=./*[2]","count(./*[2]/*)=1","./*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRule_)("cube","default.default",'[n] ./*[1]; [t] "cube" (pitch:0.35); [p] (pause:300)',"self::mathml:msup","./*[2][text()=3]");
+(0,cvox.MathmlStoreRules.defineRuleAlias_)("cube","self::mathml:msup","./mathml:mrow=./*[2]","count(./*[2]/*)=1","./*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRule_)("square-sub","default.default",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35);[p] (pause:300); [t] "square" (pitch:0.35); [p] (pause:400)',"self::mathml:msubsup","./*[3][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("square-sub","self::mathml:msubsup","./mathml:mrow=./*[3]","count(./*[3]/*)=1","./*[3]/*[1][text()=2]");
+(0,cvox.MathmlStoreRules.defineRule_)("cube-sub","default.default",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35);[p] (pause:300); [t] "cube" (pitch:0.35); [p] (pause:400)',"self::mathml:msubsup","./*[3][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("cube-sub","self::mathml:msubsup","./mathml:mrow=./*[3]","count(./*[3]/*)=1","./*[3]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRule_)("mj-square","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "square" (pitch:0.35); [p] (pause:300)','self::span[@class="msup"]',
+"./*[1]/*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square",'self::span[@class="msup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square",'self::span[@class="msubsup"]',"CQFmathmlmsup","./*[1]/*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square",'self::span[@class="msubsup"]',"CQFmathmlmsup",'./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',
+"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRule_)("mj-cube","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "cube" (pitch:0.35); [p] (pause:300)','self::span[@class="msup"]',"./*[1]/*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube",'self::span[@class="msup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube",
+'self::span[@class="msubsup"]',"CQFmathmlmsup","./*[1]/*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube",'self::span[@class="msubsup"]',"CQFmathmlmsup",'./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRule_)("mj-square-sub","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub"; [n] ./*[1]/*[3]/*[1] (pitch:-0.35); [p] (pause:300); [t] "square" (pitch:0.35); [p] (pause:400)','self::span[@class="msubsup"]',
+"./*[1]/*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square-sub",'self::span[@class="msubsup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRule_)("mj-cube-sub","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub"; [n] ./*[1]/*[3]/*[1] (pitch:-0.35); [p] (pause:300); [t] "cube" (pitch:0.35); [p] (pause:400)','self::span[@class="msubsup"]',"./*[1]/*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube-sub",
+'self::span[@class="msubsup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=3]")};
+cvox.MathmlStoreRules.initSemanticRules_=function(){(0,cvox.MathmlStoreRules.defineRule_)("stree","default.default","[n] ./*[1]","self::stree");(0,cvox.MathmlStoreRules.defineRule_)("multrel","default.default",'[t] "multirelation"; [m] children/* (sepFunc:CTXFcontentIterator)',"self::multirel");(0,cvox.MathmlStoreRules.defineRule_)("variable-equality","default.default",'[t] "equation sequence"; [m] ./children/* (context:"part",ctxtFunc:CTXFnodeCounter,separator:./text())','self::relseq[@role="equality"]',
+"count(./children/*)>2",'./children/punct[@role="ellipsis"]');(0,cvox.MathmlStoreRules.defineRule_)("multi-equality","default.default",'[t] "equation sequence"; [m] ./children/* (context:"part",ctxtFunc:CTXFnodeCounter,separator:./text())','self::relseq[@role="equality"]',"count(./children/*)>2");(0,cvox.MathmlStoreRules.defineRule_)("multi-equality","default.short",'[t] "equation sequence"; [m] ./children/* (separator:./text())','self::relseq[@role="equality"]',"count(./children/*)>2");(0,cvox.MathmlStoreRules.defineRule_)("equality",
+"default.default",'[t] "equation"; [t] "left hand side"; [n] children/*[1];[p] (pause:200); [n] text() (pause:200);[t] "right hand side"; [n] children/*[2]','self::relseq[@role="equality"]',"count(./children/*)=2");(0,cvox.MathmlStoreRules.defineRule_)("simple-equality","default.default","[n] children/*[1]; [p] (pause:200); [n] text() (pause:200);[n] children/*[2]",'self::relseq[@role="equality"]',"count(./children/*)=2","./children/identifier or ./children/number");(0,cvox.MathmlStoreRules.defineRule_)("simple-equality2",
+"default.default","[n] children/*[1]; [p] (pause:200); [n] text() (pause:200);[n] children/*[2]",'self::relseq[@role="equality"]',"count(./children/*)=2","./children/function or ./children/appl");(0,cvox.MathmlStoreRules.defineRule_)("multrel","default.default","[m] children/* (separator:./text())","self::relseq");(0,cvox.MathmlStoreRules.defineRule_)("binary-operation","default.default","[m] children/* (separator:text());","self::infixop");(0,cvox.MathmlStoreRules.defineRule_)("variable-addition",
+"default.default",'[t] "sum with variable number of summands";[p] (pause:400); [m] children/* (separator:./text())','self::infixop[@role="addition"]',"count(children/*)>2",'children/punct[@role="ellipsis"]');(0,cvox.MathmlStoreRules.defineRule_)("multi-addition","default.default",'[t] "sum with,"; [t] count(./children/*); [t] ", summands";[p] (pause:400); [m] ./children/* (separator:./text())','self::infixop[@role="addition"]',"count(./children/*)>2");(0,cvox.MathmlStoreRules.defineRule_)("prefix",
+"default.default",'[t] "prefix"; [n] text(); [t] "of" (pause 150);[n] children/*[1]',"self::prefixop");(0,cvox.MathmlStoreRules.defineRule_)("negative","default.default",'[t] "negative"; [n] children/*[1]',"self::prefixop",'self::prefixop[@role="negative"]');(0,cvox.MathmlStoreRules.defineRule_)("postfix","default.default",'[n] children/*[1]; [t] "postfix"; [n] text() (pause 300)',"self::postfixop");(0,cvox.MathmlStoreRules.defineRule_)("identifier","default.default","[n] text()","self::identifier");
+(0,cvox.MathmlStoreRules.defineRule_)("number","default.default","[n] text()","self::number");(0,cvox.MathmlStoreRules.defineRule_)("fraction","default.default",'[p] (pause:250); [n] children/*[1] (pitch:0.3); [p] (pause:250); [t] "divided by"; [n] children/*[2] (pitch:-0.3); [p] (pause:400)',"self::fraction");(0,cvox.MathmlStoreRules.defineRule_)("superscript","default.default",'[n] children/*[1]; [t] "super"; [n] children/*[2] (pitch:0.35);[p] (pause:300)',"self::superscript");(0,cvox.MathmlStoreRules.defineRule_)("subscript",
+"default.default",'[n] children/*[1]; [t] "sub"; [n] children/*[2] (pitch:-0.35);[p] (pause:300)',"self::subscript");(0,cvox.MathmlStoreRules.defineRule_)("ellipsis","default.default",'[p] (pause:200); [t] "dot dot dot"; [p] (pause:300)',"self::punct",'self::punct[@role="ellipsis"]');(0,cvox.MathmlStoreRules.defineRule_)("fence-single","default.default","[n] text()","self::punct",'self::punct[@role="openfence"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("fence-single","self::punct",'self::punct[@role="closefence"]');
+(0,cvox.MathmlStoreRules.defineRuleAlias_)("fence-single","self::punct",'self::punct[@role="vbar"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("fence-single","self::punct",'self::punct[@role="application"]');(0,cvox.MathmlStoreRules.defineRule_)("omit-punct","default.default","[p] (pause:200);","self::punct");(0,cvox.MathmlStoreRules.defineRule_)("omit-empty","default.default","","self::empty");(0,cvox.MathmlStoreRules.defineRule_)("fences-open-close","default.default",'[p] (pause:100); [t] "open"; [n] children/*[1]; [p] (pause:200);[t] "close"',
+'self::fenced[@role="leftright"]');(0,cvox.MathmlStoreRules.defineRule_)("fences-open-close-in-appl","default.default","[p] (pause:100); [n] children/*[1]; [p] (pause:200);",'self::fenced[@role="leftright"]',"./parent::children/parent::appl");(0,cvox.MathmlStoreRules.defineRule_)("fences-neutral","default.default",'[p] (pause:100); [t] "absolute value of"; [n] children/*[1];[p] (pause:350);',"self::fenced",'self::fenced[@role="neutral"]');(0,cvox.MathmlStoreRules.defineRule_)("omit-fences","default.default",
+"[p] (pause:500); [n] children/*[1]; [p] (pause:200);","self::fenced");(0,cvox.MathmlStoreRules.defineRule_)("matrix","default.default",'[t] "matrix"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"row",pause:100)',"self::matrix");(0,cvox.MathmlStoreRules.defineRule_)("matrix-row","default.default",'[m] children/* (ctxtFunc:CTXFnodeCounter,context:"column",pause:100)','self::row[@role="matrix"]');(0,cvox.MathmlStoreRules.defineRule_)("matrix-cell","default.default","[n] children/*[1]",'self::cell[@role="matrix"]');
+(0,cvox.MathmlStoreRules.defineRule_)("vector","default.default",'[t] "vector"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"element",pause:100)',"self::vector");(0,cvox.MathmlStoreRules.defineRule_)("cases","default.default",'[t] "case statement"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"case",pause:100)',"self::cases");(0,cvox.MathmlStoreRules.defineRule_)("cases-row","default.default","[m] children/*",'self::row[@role="cases"]');(0,cvox.MathmlStoreRules.defineRule_)("cases-cell",
+"default.default","[n] children/*[1]",'self::cell[@role="cases"]');(0,cvox.MathmlStoreRules.defineRule_)("row","default.default",'[m] ./* (ctxtFunc:CTXFnodeCounter,context:"column",pause:100)','self::row"');(0,cvox.MathmlStoreRules.defineRule_)("cases-end","default.default",'[t] "case statement"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"case",pause:100);[t] "end cases"',"self::cases","following-sibling::*");(0,cvox.MathmlStoreRules.defineRule_)("multiline","default.default",'[t] "multiline equation";[m] children/* (ctxtFunc:CTXFnodeCounter,context:"line",pause:100)',
+"self::multiline");(0,cvox.MathmlStoreRules.defineRule_)("line","default.default","[m] children/*","self::line");(0,cvox.MathmlStoreRules.defineRule_)("table","default.default",'[t] "multiline equation";[m] children/* (ctxtFunc:CTXFnodeCounter,context:"row",pause:200)',"self::table");(0,cvox.MathmlStoreRules.defineRule_)("table-row","default.default","[m] children/* (pause:100)",'self::row[@role="table"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("cases-cell",'self::cell[@role="table"]');(0,cvox.MathmlStoreRules.defineRule_)("end-punct",
+"default.default","[m] children/*; [p] (pause:300)","self::punctuated",'@role="endpunct"');(0,cvox.MathmlStoreRules.defineRule_)("start-punct","default.default","[n] content/*[1]; [p] (pause:200); [m] children/*","self::punctuated",'@role="startpunct"');(0,cvox.MathmlStoreRules.defineRule_)("integral-punct","default.default","[n] children/*[1] (rate:0.2); [n] children/*[3] (rate:0.2)","self::punctuated",'@role="integral"');(0,cvox.MathmlStoreRules.defineRule_)("punctuated","default.default","[m] children/* (pause:100)",
+"self::punctuated");(0,cvox.MathmlStoreRules.defineRule_)("function","default.default","[n] text()","self::function");(0,cvox.MathmlStoreRules.defineRule_)("appl","default.default","[n] children/*[1]; [n] content/*[1]; [n] children/*[2]","self::appl");(0,cvox.MathmlStoreRules.defineRule_)("limboth","default.default",'[n] children/*[1]; [t] "from"; [n] children/*[2]; [t] "to";[n] children/*[3]',"self::limboth");(0,cvox.MathmlStoreRules.defineRule_)("sum-only","default.default",'[n] children/*[1]; [p] (pause 100); [t] "over"; [n] children/*[2];[p] (pause 250);',
+"self::limboth",'self::limboth[@role="sum"]');(0,cvox.MathmlStoreRules.defineRule_)("limlower","default.default",'[n] children/*[1]; [t] "over"; [n] children/*[2];',"self::limlower");(0,cvox.MathmlStoreRules.defineRule_)("limupper","default.default",'[n] children/*[1]; [t] "under"; [n] children/*[2];',"self::limupper");(0,cvox.MathmlStoreRules.defineRule_)("largeop","default.default","[n] text()","self::largeop");(0,cvox.MathmlStoreRules.defineRule_)("bigop","default.default",'[n] children/*[1]; [p] (pause 100); [t] "over"; [n] children/*[2];[p] (pause 250);',
+"self::bigop");(0,cvox.MathmlStoreRules.defineRule_)("integral","default.default","[n] children/*[1]; [p] (pause 100); [n] children/*[2]; [p] (pause 200);[n] children/*[3] (rate:0.35);","self::integral");(0,cvox.MathmlStoreRules.defineRule_)("sqrt","default.default",'[t] "Square root of"; [n] children/*[1] (rate:0.2); [p] (pause:400)',"self::sqrt");(0,cvox.MathmlStoreRules.defineRule_)("square","default.default",'[n] children/*[1]; [t] "square" (pitch:0.35); [p] (pause:300)',"self::superscript","children/*[2][text()=2]");
+(0,cvox.MathmlStoreRules.defineRule_)("text-no-mult","default.default","[n] children/*[1]; [p] (pause:200); [n] children/*[2]","self::infixop","children/text")};cvox.AbstractShifter=function(){this.isSubnavigating_=!1};cvox.AbstractShifter.prototype.begin=function(a,b){return this.currentWalker_.begin(b)};cvox.AbstractShifter.prototype.makeLessGranular=function(){this.ensureNotSubnavigating()};cvox.AbstractShifter.prototype.makeMoreGranular=function(){this.ensureNotSubnavigating()};cvox.AbstractShifter.prototype.ensureSubnavigating=function(){!1==this.isSubnavigating_&&(this.makeMoreGranular(),this.isSubnavigating_=!0)};
+cvox.AbstractShifter.prototype.ensureNotSubnavigating=function(){!0==this.isSubnavigating_&&(this.isSubnavigating_=!1,this.makeLessGranular())};cvox.AbstractShifter.prototype.isSubnavigating=function(){return this.isSubnavigating_};cvox.AbstractShifter.prototype.hasAction=function(a){return this.currentWalker_.hasAction(a)};cvox.AbstractShifter.prototype.performAction=function(a,b){return this.currentWalker_.performAction(a,b)};cvox.MathShifter=function(a){cvox.AbstractShifter.call(this);this.level_=0;this.bumped_=this.direction_=!1;cvox.TraverseMath.getInstance().initialize(a.start.node)};goog.inherits(cvox.MathShifter,cvox.AbstractShifter);cvox.MathShifter.prototype.next=function(a){var b=a.isReversed();this.bumped_=!cvox.TraverseMath.getInstance().nextSibling(b);return(b=cvox.TraverseMath.getInstance().getAttachedActiveNode())?cvox.CursorSelection.fromNode(b):a};
+cvox.MathShifter.prototype.sync=function(a){var b=cvox.TraverseMath.getInstance().getAttachedActiveNode();return b?cvox.CursorSelection.fromNode(b):a};cvox.MathShifter.prototype.getName=function(){return cvox.ChromeVox.msgs.getMsg("math_shifter")};cvox.MathShifter.prototype.getDescription=function(){var a=cvox.SpeechRuleEngine.getInstance().evaluateNode(cvox.TraverseMath.getInstance().activeNode);this.bumped_&&0<a.length&&a[0].pushEarcon(cvox.AbstractEarcons.WRAP_EDGE);return a};
+cvox.MathShifter.prototype.getBraille=function(a,b){return new cvox.NavBraille({text:cvox.BrailleUtil.getTemplated(a.start.node,b.start.node)})};cvox.MathShifter.prototype.getGranularityMsg=function(){return this.direction_?"up to level "+this.level_:"down to level "+this.level_};cvox.MathShifter.prototype.makeLessGranular=function(){this.level_=0<this.level_?this.level_-1:0;this.direction_=!0;this.bumped_=!cvox.TraverseMath.getInstance().nextParentChild(!0)};
+cvox.MathShifter.prototype.makeMoreGranular=function(){this.direction_=!1;(this.bumped_=!cvox.TraverseMath.getInstance().nextParentChild(!1))||this.level_++};
+cvox.MathShifter.create=function(a){if(cvox.DomPredicates.mathPredicate(cvox.DomUtil.getAncestors(a.start.node))){var b=cvox.DomUtil.getContainingMath(a.end.node);cvox.TraverseMath.getInstance().initialize(b);cvox.SpeechRuleEngine.getInstance().parameterize(cvox.MathmlStore.getInstance());b=cvox.MathStore.createDynamicConstraint(cvox.TraverseMath.getInstance().domain,cvox.TraverseMath.getInstance().style);cvox.SpeechRuleEngine.getInstance().setDynamicConstraint(b);return new cvox.MathShifter(a)}return null};cvox.TableUtil={};cvox.TableUtil.checkIfHeader=function(a){return"TH"==a.tagName||a.hasAttribute("scope")||a.hasAttribute("role")&&("rowheader"==a.getAttribute("role")||"columnheader"==a.getAttribute("role"))};
+cvox.TableUtil.determineColGroups=function(a){var b=[];if(0==a.length)return b;for(var c=0;c<a.length;c++){var d=a[c],e=cvox.TableUtil.getColNodes(d);if(0<e.length)for(d=0;d<e.length;d++){var f=e[d];if(f.hasAttribute("span"))for(var f=parseInt(f.getAttribute("span"),10),g=0;g<f;g++)b.push(c);else b.push(c)}else if(d.hasAttribute("span"))for(f=parseInt(d.getAttribute("span"),10),g=0;g<f;g++)b.push(c);else b.push(c)}return b};cvox.TableUtil.pushIfNotContained=function(a,b){-1==a.indexOf(b)&&a.push(b)};
+cvox.TableUtil.getChildRows=function(a){return cvox.XpathUtil.evalXPath('child::tbody/tr | child::thead/tr | child::*[attribute::role="row"]',a)};cvox.TableUtil.getChildCells=function(a){return cvox.XpathUtil.evalXPath('child::td | child::th | child::*[attribute::role="gridcell"] |child::*[attribute::role="rowheader"] |child::*[attribute::role="columnheader"]',a)};cvox.TableUtil.getCellWithID=function(a,b){return cvox.XpathUtil.evalXPath("id('"+b+"')",a)};
+cvox.TableUtil.getColGroups=function(a){return cvox.XpathUtil.evalXPath("child::colgroup",a)};cvox.TableUtil.getColNodes=function(a){return cvox.XpathUtil.evalXPath("child::col",a)};function ShadowTableNode(){}ShadowTableNode.prototype.rowHeaderCells=[];ShadowTableNode.prototype.colHeaderCells=[];cvox.TraverseTable=function(a){this.activeTable_=null;this.shadowTable_=[];this.candidateHeaders_=[];this.idToShadowNode_=[];this.initialize(a)};cvox.TraverseTable.prototype.colCount=null;cvox.TraverseTable.prototype.rowCount=null;cvox.TraverseTable.prototype.tableRowHeaders=null;cvox.TraverseTable.prototype.tableColHeaders=null;
+cvox.TraverseTable.prototype.initialize=function(a){a&&a!=this.activeTable_&&(this.activeTable_=a,this.currentCellCursor=null,this.tableRowHeaders=[],this.tableColHeaders=[],this.buildShadowTable_(),this.colCount=this.shadowColCount_(),this.rowCount=this.countRows_(),this.findHeaderCells_(),this.activeTable_.addEventListener("DOMSubtreeModified",goog.bind(function(){this.buildShadowTable_();this.colCount=this.shadowColCount_();this.rowCount=this.countRows_();this.tableRowHeaders=[];this.tableColHeaders=
+[];this.findHeaderCells_();0==this.colCount&&0==this.rowCount||null!=this.getCell()||this.attachCursorToNearestCell_()},this),!1))};
+cvox.TraverseTable.prototype.findNearestCursor=function(a){for(;a.firstElementChild&&"TABLE"!=a.firstElementChild.tagName&&!cvox.AriaUtil.isGrid(a.firstElementChild);)a=a.firstElementChild;for(;!cvox.DomPredicates.cellPredicate(cvox.DomUtil.getAncestors(a));)if(a=cvox.DomUtil.directedNextLeafNode(a),!cvox.DomUtil.getContainingTable(a,{allowCaptions:!0}))return null;for(var b=0;b<this.rowCount;++b)for(var c=0;c<this.colCount;++c)if(this.shadowTable_[b][c]&&cvox.DomUtil.isDescendantOfNode(a,this.shadowTable_[b][c].activeCell))return[b,
+c];return null};cvox.TraverseTable.prototype.attachCursorToNearestCell_=function(){if(this.currentCellCursor){var a=this.currentCellCursor,b=this.shadowTable_[a[0]];if(b)this.currentCellCursor=[a[0],b.length-1];else if(b=this.shadowTable_.length,0==b)this.currentCellCursor=null;else{var c=this.shadowTable_[b-1][a[1]];c?this.currentCellCursor=[b-1,a[1]]:this.goToLastCell()}}else this.goToLastCell()};
+cvox.TraverseTable.prototype.buildShadowTable_=function(){this.shadowTable_=[];for(var a=cvox.TableUtil.getChildRows(this.activeTable_),b=null,c=null,d=cvox.TableUtil.getColGroups(this.activeTable_),d=cvox.TableUtil.determineColGroups(d),e=0;e<a.length;e++)this.shadowTable_.push([]);for(e=0;e<a.length;e++)for(var f=cvox.TableUtil.getChildCells(a[e]),g=0,h=0;g<f.length;)if(null==this.shadowTable_[e][h]){var k=f[g],l=1,m=1;k.hasAttribute("colspan")&&(l=parseInt(k.getAttribute("colspan"),10),isNaN(l)||
+0>=l)&&(l=1);k.hasAttribute("rowspan")&&(m=parseInt(k.getAttribute("rowspan"),10),isNaN(m)||0>=m)&&(m=1);for(var p=0;p<m;p++)for(var q=0;q<l;q++){var n=new ShadowTableNode;0==p&&0==q?(n.spanned=!1,n.rowSpan=!1,n.colSpan=!1):(n.spanned=!0,n.rowSpan=1<m,n.colSpan=1<l);n.i=e;n.j=h;n.activeCell=k;n.rowHeaderCells=[];n.colHeaderCells=[];n.isRowHeader=!1;n.isColHeader=!1;cvox.TableUtil.checkIfHeader(n.activeCell)?this.candidateHeaders_.push(n):n.activeCell.hasAttribute("headers")&&this.candidateHeaders_.push(n);
+null==b?(b=a[e].parentNode,c=0):a[e].parentNode!=b&&(b=a[e].parentNode,c+=1);n.rowGroup=c;n.colGroup=0<d.length?d[h]:0;n.spanned||null!=k.id&&(this.idToShadowNode_[k.id]=n);this.shadowTable_[e+p][h+q]=n}h+=l;g++}else h+=1;return this.shadowTable_};
+cvox.TraverseTable.prototype.findHeaderCells_=function(){for(var a=0;a<this.candidateHeaders_.length;a++){var b=this.candidateHeaders_[a],c=b.activeCell,d=null,e=null;if(!b.spanned){"TH"!=c.tagName||c.hasAttribute("scope")?c.hasAttribute("scope")?e=c.getAttribute("scope"):c.hasAttribute("role")&&"rowheader"==c.getAttribute("role")?e="row":c.hasAttribute("role")&&"columnheader"==c.getAttribute("role")&&(e="col"):(0<b.j?"TH"==this.shadowTable_[b.i][b.j-1].activeCell.tagName&&(d="col"):b.j<this.shadowTable_[b.i].length-
+1?"TH"==this.shadowTable_[b.i][b.j+1].activeCell.tagName&&(d="col"):d="col",null==d&&(0<b.i?"TH"==this.shadowTable_[b.i-1][b.j].activeCell.tagName&&(d="row"):b.i<this.shadowTable_.length-1?"TH"==this.shadowTable_[b.i+1][b.j].activeCell.tagName&&(d="row"):d="row"));if("row"==e||"row"==d){b.isRowHeader=!0;for(d=b.j;d<this.shadowTable_[b.i].length;d++)e=this.shadowTable_[b.i][d],e.rowHeaderCells.push(c);this.tableRowHeaders.push(c)}else if("col"==e||"col"==d){b.isColHeader=!0;for(e=b.i;e<this.shadowTable_.length;e++){d=
+this.shadowTable_[e][b.j];if(null==d)break;d.colHeaderCells.push(c)}this.tableColHeaders.push(c)}else if("rowgroup"==e){b.isRowHeader=!0;for(var f=b.rowGroup,d=b.j+1;d<this.shadowTable_[b.i].length;d++)this.shadowTable_[b.i][d].rowHeaderCells.push(c);for(e=b.i+1;e<this.shadowTable_.length&&this.shadowTable_[e][0].rowGroup==f;e++)for(d=0;d<this.shadowTable_[e].length;d++)this.shadowTable_[e][d].rowHeaderCells.push(c);this.tableRowHeaders.push(c)}else if("colgroup"==e){b.isColHeader=!0;f=b.colGroup;
+for(d=b.j+1;d<this.shadowTable_[b.i].length;d++)this.shadowTable_[b.i][d].colGroup==f&&this.shadowTable_[b.i][d].colHeaderCells.push(c);for(e=b.i+1;e<this.shadowTable_.length;e++)for(d=0;d<this.shadowTable_[e].length;d++)this.shadowTable_[e][d].colGroup==f&&this.shadowTable_[e][d].colHeaderCells.push(c);this.tableColHeaders.push(c)}c.hasAttribute("headers")&&this.findAttrbHeaders_(b);c.hasAttribute("aria-describedby")&&this.findAttrbDescribedBy_(b)}}};
+cvox.TraverseTable.prototype.findAttrbHeaders_=function(a){for(var b=a.activeCell,c=b.getAttribute("headers").split(" "),d=0;d<c.length;d++)for(var e=cvox.TableUtil.getCellWithID(this.activeTable_,c[d]),f=0;f<e.length&&e[f].id!=b.id;f++){var g=this.idToShadowNode_[e[f].id];if(!cvox.TableUtil.checkIfHeader(g.activeCell)){var h=Math.abs(g.i-a.i),k=Math.abs(g.j-a.j);0==h||h<k?(cvox.TableUtil.pushIfNotContained(a.rowHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableRowHeaders,g.activeCell)):
+(cvox.TableUtil.pushIfNotContained(a.colHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableColHeaders,g.activeCell))}}};
+cvox.TraverseTable.prototype.findAttrbDescribedBy_=function(a){for(var b=a.activeCell,c=b.getAttribute("aria-describedby").split(" "),d=0;d<c.length;d++)for(var e=cvox.TableUtil.getCellWithID(this.activeTable_,c[d]),f=0;f<e.length&&e[f].id!=b.id;f++){var g=this.idToShadowNode_[e[f].id];cvox.TableUtil.checkIfHeader(g.activeCell)||(g.activeCell.hasAttribute("role")&&"rowheader"==g.activeCell.getAttribute("role")?(cvox.TableUtil.pushIfNotContained(a.rowHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableRowHeaders,
+g.activeCell)):g.activeCell.hasAttribute("role")&&"columnheader"==g.activeCell.getAttribute("role")&&(cvox.TableUtil.pushIfNotContained(a.colHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableColHeaders,g.activeCell)))}};cvox.TraverseTable.prototype.getCell=function(){if(!this.currentCellCursor||!this.shadowTable_)return null;var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a&&a.activeCell};
+cvox.TraverseTable.prototype.getCellAt=function(a){return a[0]<this.rowCount&&0<=a[0]&&a[1]<this.colCount&&0<=a[1]&&(a=this.shadowTable_[a[0]][a[1]],null!=a)?a.activeCell:null};cvox.TraverseTable.prototype.getCellRowHeaders=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.rowHeaderCells};cvox.TraverseTable.prototype.getCellColHeaders=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.colHeaderCells};
+cvox.TraverseTable.prototype.isSpanned=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.spanned};cvox.TraverseTable.prototype.isRowHeader=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.isRowHeader};cvox.TraverseTable.prototype.isColHeader=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.isColHeader};
+cvox.TraverseTable.prototype.getCol=function(){for(var a=[],b=0;b<this.shadowTable_.length;b++)if(this.shadowTable_[b][this.currentCellCursor[1]]){var c=this.shadowTable_[b][this.currentCellCursor[1]];if(c.colSpan&&c.rowSpan){var d=a[a.length-1];d!=c.activeCell&&a.push(c.activeCell)}else!c.colSpan&&c.rowSpan||a.push(c.activeCell)}return a};cvox.TraverseTable.prototype.summaryText=function(){return this.activeTable_.hasAttribute("summary")?this.activeTable_.getAttribute("summary"):null};
+cvox.TraverseTable.prototype.shadowColCount_=function(){for(var a=0,b=0;b<this.shadowTable_.length;b++)this.shadowTable_[b].length>a&&(a=this.shadowTable_[b].length);return a};cvox.TraverseTable.prototype.countRows_=function(){var a=cvox.TableUtil.getChildRows(this.activeTable_);return a.length};cvox.TraverseTable.prototype.nextRow=function(){return this.currentCellCursor?this.goToRow(this.currentCellCursor[0]+1):this.goToRow(0)};
+cvox.TraverseTable.prototype.nextCol=function(){return this.currentCellCursor?this.goToCol(this.currentCellCursor[1]+1):this.goToCol(0)};cvox.TraverseTable.prototype.goToRow=function(a){return null!=this.shadowTable_[a]?(this.currentCellCursor=null==this.currentCellCursor?[a,0]:[a,this.currentCellCursor[1]],!0):!1};cvox.TraverseTable.prototype.goToCol=function(a){if(0>a||a>=this.colCount)return!1;this.currentCellCursor=null==this.currentCellCursor?[0,a]:[this.currentCellCursor[0],a];return!0};
+cvox.TraverseTable.prototype.goToCell=function(a){if(a[0]<this.rowCount&&0<=a[0]&&a[1]<this.colCount&&0<=a[1]){var b=this.shadowTable_[a[0]][a[1]];if(null!=b)return this.currentCellCursor=a,!0}return!1};cvox.TraverseTable.prototype.goToLastCell=function(){var a=this.shadowTable_.length;if(0==a)return!1;var b=this.shadowTable_[a-1],a=[a-1,b.length-1],b=this.shadowTable_[a[0]][a[1]];return null!=b?(this.currentCellCursor=a,!0):!1};
+cvox.TraverseTable.prototype.goToRowLastCell=function(){var a=this.currentCellCursor[0],a=[a,this.shadowTable_[a].length-1],b=this.shadowTable_[a[0]][a[1]];return null!=b?(this.currentCellCursor=a,!0):!1};cvox.TraverseTable.prototype.goToColLastCell=function(){var a=this.getCol(),a=[a.length-1,this.currentCellCursor[1]],b=this.shadowTable_[a[0]][a[1]];return null!=b?(this.currentCellCursor=a,!0):!1};cvox.TableWalker=function(){this.tt=new cvox.TraverseTable(null)};goog.inherits(cvox.TableWalker,cvox.AbstractWalker);cvox.TableWalker.prototype.next=function(a){return this.nextRow(a)};cvox.TableWalker.prototype.sync=function(a){return this.goTo_(a,goog.bind(function(a){return this.tt.goToCell(a)},this))};
+cvox.TableWalker.prototype.getDescription=function(a,b){var c=this.syncPosition_(b);if(!c)return[];this.tt.goToCell(c);c=cvox.DescriptionUtil.getCollectionDescription(a,b);0==c.length&&c.push(new cvox.NavDescription({annotation:cvox.ChromeVox.msgs.getMsg("empty_cell")}));return c};cvox.TableWalker.prototype.getBraille=function(a,b){new cvox.NavBraille({});var c=this.syncPosition_(b);if(c){var d=cvox.BrailleUtil.getTemplated(a.start.node,b.start.node);d.append(" "+ ++c[0]+"/"+ ++c[1])}return new cvox.NavBraille({text:d})};
+cvox.TableWalker.prototype.goToFirstCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToCell([0,0])},this))};cvox.TableWalker.prototype.goToLastCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToLastCell()},this))};cvox.TableWalker.prototype.goToRowFirstCell=function(a){return this.goTo_(a,goog.bind(function(a){return this.tt.goToCell([a[0],0])},this))};
+cvox.TableWalker.prototype.goToRowLastCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToRowLastCell()},this))};cvox.TableWalker.prototype.goToColFirstCell=function(a){return this.goTo_(a,goog.bind(function(a){return this.tt.goToCell([0,a[1]])},this))};cvox.TableWalker.prototype.goToColLastCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToColLastCell()},this))};
+cvox.TableWalker.prototype.nextRow=function(a){return this.goTo_(a,goog.bind(function(b){return this.tt.goToCell([b[0]+(a.isReversed()?-1:1),b[1]])},this))};cvox.TableWalker.prototype.nextCol=function(a){return this.goTo_(a,goog.bind(function(b){return this.tt.goToCell([b[0],b[1]+(a.isReversed()?-1:1)])},this))};cvox.TableWalker.prototype.announceHeaders=function(a){cvox.ChromeVox.tts.speak(this.getHeaderText_(a),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION);return a};
+cvox.TableWalker.prototype.speakTableLocation=function(a){cvox.ChromeVox.navigationManager.speakDescriptionArray(this.getLocationDescription_(a),cvox.AbstractTts.QUEUE_MODE_FLUSH,null);return a};cvox.TableWalker.prototype.exitShifterContent=function(a){a=this.getTableNode_(a);if(!a)return null;a=cvox.DomUtil.directedNextLeafNode(a,!1);return cvox.CursorSelection.fromNode(a)};
+cvox.TableWalker.prototype.getHeaderText_=function(a){this.tt.initialize(this.getTableNode_(a));return(a=this.tt.findNearestCursor(a.start.node))&&this.tt.goToCell(a)?this.getRowHeaderText_(a)+" "+this.getColHeaderText_(a):cvox.ChromeVox.msgs.getMsg("not_inside_table")};cvox.TableWalker.prototype.getLocationDescription_=function(a){a=this.getLocationInfo(a);return null==a?null:[new cvox.NavDescription({text:cvox.ChromeVox.msgs.getMsg("table_location",a)})]};
+cvox.TableWalker.prototype.getRowHeaderText_=function(a){var b="",c=this.tt.getCellRowHeaders();if(0==c.length)return c=this.tt.getCellAt([a[0],0]),b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c)+" "+cvox.DomUtil.getName(c)),cvox.ChromeVox.msgs.getMsg("row_header")+b;for(a=0;a<c.length;++a)b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c[a])+" "+cvox.DomUtil.getName(c[a]));return""==b?cvox.ChromeVox.msgs.getMsg("empty_row_header"):cvox.ChromeVox.msgs.getMsg("row_header")+b};
+cvox.TableWalker.prototype.getColHeaderText_=function(a){var b="",c=this.tt.getCellColHeaders();if(0==c.length)return c=this.tt.getCellAt([0,a[1]]),b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c)+" "+cvox.DomUtil.getName(c)),cvox.ChromeVox.msgs.getMsg("column_header")+b;for(a=0;a<c.length;++a)b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c[a])+" "+cvox.DomUtil.getName(c[a]));return""==b?cvox.ChromeVox.msgs.getMsg("empty_row_header"):cvox.ChromeVox.msgs.getMsg("column_header")+
+b};cvox.TableWalker.prototype.getLocationInfo=function(a){this.tt.initialize(this.getTableNode_(a));return(a=this.tt.findNearestCursor(a.start.node))?[a[0]+1,this.tt.rowCount,a[1]+1,this.tt.colCount].map(function(a){return cvox.ChromeVox.msgs.getNumber(a)}):null};
+cvox.TableWalker.prototype.goTo_=function(a,b){this.tt.initialize(this.getTableNode_(a));var c=this.tt.findNearestCursor(a.end.node);if(!c)return null;this.tt.goToCell(c);return b(c)?cvox.CursorSelection.fromNode(this.tt.getCell()).setReversed(a.isReversed()):null};cvox.TableWalker.prototype.getTableNode_=function(a){return cvox.DomUtil.getContainingTable(a.end.node)};cvox.TableWalker.prototype.syncPosition_=function(a){var b=this.getTableNode_(a);this.tt.initialize(b);return this.tt.findNearestCursor(a.end.node)};cvox.ColumnWalker=function(){cvox.TableWalker.call(this)};goog.inherits(cvox.ColumnWalker,cvox.TableWalker);cvox.ColumnWalker.prototype.next=function(a){return this.nextCol(a)};cvox.ColumnWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("column_granularity")};cvox.RowWalker=function(){cvox.TableWalker.call(this)};goog.inherits(cvox.RowWalker,cvox.TableWalker);cvox.RowWalker.prototype.next=function(a){return this.nextRow(a)};cvox.RowWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("row_granularity")};cvox.TableShifter=function(){this.rowWalker_=new cvox.RowWalker;this.columnWalker_=new cvox.ColumnWalker;this.currentWalker_=this.rowWalker_;this.bumpedEdge_=!1;this.begin_=!0;cvox.AbstractShifter.call(this)};goog.inherits(cvox.TableShifter,cvox.AbstractShifter);cvox.TableShifter.prototype.next=function(a){var b=this.currentWalker_.next(a);return b?b:(this.bumpedEdge_=!0,a)};
+cvox.TableShifter.prototype.sync=function(a){return"TABLE"==a.start.node.tagName?a.isReversed()?this.currentWalker_.goToLastCell(a):this.currentWalker_.goToFirstCell(a):this.currentWalker_.sync(a)};cvox.TableShifter.prototype.getName=function(){return cvox.ChromeVox.msgs.getMsg("table_shifter")};
+cvox.TableShifter.prototype.getDescription=function(a,b){var c=this.currentWalker_.getDescription(a,b);if(0<c.length&&(this.bumpedEdge_&&(c[0].pushEarcon(cvox.AbstractEarcons.WRAP_EDGE),this.bumpedEdge_=!1),this.begin_)){var d=this.currentWalker_.tt.summaryText(),e=this.currentWalker_.getLocationInfo(b);null!=e&&c.push(new cvox.NavDescription({context:cvox.ChromeVox.msgs.getMsg("table_location",e),text:"",annotation:d?d+" ":""}));this.currentWalker_.tt.isSpanned()&&c.push(new cvox.NavDescription({text:"",
+annotation:cvox.ChromeVox.msgs.getMsg("spanned")}));this.begin_=!1}return c};cvox.TableShifter.prototype.getBraille=function(a,b){return this.currentWalker_.getBraille(a,b)};cvox.TableShifter.prototype.getGranularityMsg=function(){return this.currentWalker_.getGranularityMsg()};cvox.TableShifter.prototype.makeLessGranular=function(){cvox.TableShifter.superClass_.makeLessGranular.call(this);this.currentWalker_=this.rowWalker_};
+cvox.TableShifter.prototype.makeMoreGranular=function(){cvox.TableShifter.superClass_.makeMoreGranular.call(this);this.currentWalker_=this.columnWalker_};cvox.TableShifter.create=function(a){a=cvox.DomUtil.getAncestors(a.start.node);return cvox.DomPredicates.tablePredicate(a)&&!cvox.DomPredicates.captionPredicate(a)?new cvox.TableShifter:null};cvox.NavigationHistory=function(){this.reset_()};cvox.NavigationHistory.MAX_HISTORY_LEN_=30;cvox.NavigationHistory.prototype.reset_=function(){var a=document.body;this.history_=[a];this.arrivedValid_=!0};cvox.NavigationHistory.prototype.update=function(a){var b=this.history_[0];a&&a!=b&&this.history_.unshift(a);this.history_.length>cvox.NavigationHistory.MAX_HISTORY_LEN_&&this.history_.pop();this.arrivedValid_=this.isValidNode_(a)};
+cvox.NavigationHistory.prototype.becomeInvalid=function(a){this.clean_();return this.arrivedValid_?!this.isValidNode_(a):(this.arrivedValid_=!0,!1)};cvox.NavigationHistory.prototype.revert=function(a){var b=document.activeElement;b!=document.body&&this.isValidNode_(b)&&this.update(b);if(a)for(;0<this.history_.length;){b=this.history_[0];if(a(b))break;this.history_.shift()}return{current:this.history_[0],previous:this.history_[1]}};
+cvox.NavigationHistory.prototype.clean_=function(){for(var a=!1,b=this.history_.length-1;0<=b;b--){var c=this.isValidNode_(this.history_[b]);c||(this.history_.splice(b,1),a=!0)}return a};cvox.NavigationHistory.prototype.isValidNode_=function(a){return cvox.DomUtil.isAttachedToDocument(a)&&cvox.DomUtil.isVisible(a)?!0:!1};cvox.TraverseContent=function(a){this.currentDomObj=null!=a?a:document.body;var b=document.createRange();try{b.selectNode(this.currentDomObj),this.startCursor_=new cvox.Cursor(b.startContainer,b.startOffset,cvox.TraverseUtil.getNodeText(b.startContainer)),this.endCursor_=new cvox.Cursor(b.endContainer,b.endOffset,cvox.TraverseUtil.getNodeText(b.endContainer))}catch(c){window.console.log("Error: Unselectable node:"),window.console.log(a)}};goog.addSingletonGetter(cvox.TraverseContent);
+cvox.TraverseContent.prototype.lastSelectionWasWhitespace=!1;cvox.TraverseContent.prototype.skipWhitespace=!1;cvox.TraverseContent.prototype.skipInvalidSelections=!0;cvox.TraverseContent.prototype.breakAtLinks=!0;cvox.TraverseContent.kCharacter="character";cvox.TraverseContent.kWord="word";cvox.TraverseContent.kSentence="sentence";cvox.TraverseContent.kLine="line";cvox.TraverseContent.kParagraph="paragraph";
+cvox.TraverseContent.kAllGrains=[cvox.TraverseContent.kParagraph,cvox.TraverseContent.kSentence,cvox.TraverseContent.kLine,cvox.TraverseContent.kWord,cvox.TraverseContent.kCharacter];cvox.TraverseContent.prototype.syncToCursorSelection=function(a){this.startCursor_=a.start.clone();this.endCursor_=a.end.clone()};cvox.TraverseContent.prototype.getCurrentCursorSelection=function(){return new cvox.CursorSelection(this.startCursor_,this.endCursor_)};
+cvox.TraverseContent.prototype.updateSelection=function(){cvox.TraverseUtil.setSelection(this.startCursor_,this.endCursor_);cvox.SelectionUtil.scrollToSelection(window.getSelection())};cvox.TraverseContent.prototype.getCurrentRange=function(){var a=document.createRange();try{a.setStart(this.startCursor_.node,this.startCursor_.index),a.setEnd(this.endCursor_.node,this.endCursor_.index)}catch(b){console.log("Invalid range ")}return a};cvox.TraverseContent.prototype.getCurrentText=function(){return cvox.SelectionUtil.getRangeText(this.getCurrentRange())};
+cvox.TraverseContent.prototype.collapseToEnd=function(){this.startCursor_=this.endCursor_.clone()};cvox.TraverseContent.prototype.collapseToStart=function(){this.endCursor_=this.startCursor_.clone()};
+cvox.TraverseContent.prototype.moveNext=function(a){var b=this.getBreakTags(),c=this.skipWhitespace,d=this.getCurrentRange();cvox.SelectionUtil.isRangeValid(d)||(c=!0);var e=[],f=[];do{a===cvox.TraverseContent.kSentence?d=cvox.TraverseUtil.getNextSentence(this.startCursor_,this.endCursor_,e,f,b):a===cvox.TraverseContent.kWord?d=cvox.TraverseUtil.getNextWord(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kCharacter?d=cvox.TraverseUtil.getNextChar(this.startCursor_,this.endCursor_,
+e,f,c):a===cvox.TraverseContent.kParagraph?d=cvox.TraverseUtil.getNextParagraph(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kLine?d=cvox.TraverseUtil.getNextLine(this.startCursor_,this.endCursor_,e,f,b):(window.console.log('Invalid selection granularity: "'+a+'"'),a=cvox.TraverseContent.kSentence,d=cvox.TraverseUtil.getNextSentence(this.startCursor_,this.endCursor_,e,f,b));if(null==d)return null;var d=this.getCurrentRange(),g=!d.getBoundingClientRect()}while(this.skipInvalidSelections&&
+g);if(cvox.SelectionUtil.isRangeValid(d))this.lastSelectionWasWhitespace=!1;else if(this.lastSelectionWasWhitespace||a!=cvox.TraverseContent.kCharacter)for(;!cvox.SelectionUtil.isRangeValid(this.getCurrentRange())&&null!=this.moveNext(a););else this.lastSelectionWasWhitespace=!0;return this.getCurrentText()};
+cvox.TraverseContent.prototype.movePrev=function(a){var b=this.getBreakTags(),c=this.skipWhitespace,d=this.getCurrentRange();cvox.SelectionUtil.isRangeValid(d)||(c=!0);var e=[],f=[];do{a===cvox.TraverseContent.kSentence?d=cvox.TraverseUtil.getPreviousSentence(this.startCursor_,this.endCursor_,e,f,b):a===cvox.TraverseContent.kWord?d=cvox.TraverseUtil.getPreviousWord(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kCharacter?d=cvox.TraverseUtil.getPreviousChar(this.startCursor_,this.endCursor_,
+e,f,c):a===cvox.TraverseContent.kParagraph?d=cvox.TraverseUtil.getPreviousParagraph(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kLine?d=cvox.TraverseUtil.getPreviousLine(this.startCursor_,this.endCursor_,e,f,b):(window.console.log('Invalid selection granularity: "'+a+'"'),a=cvox.TraverseContent.kSentence,d=cvox.TraverseUtil.getPreviousSentence(this.startCursor_,this.endCursor_,e,f,b));if(null==d)return null;var d=this.getCurrentRange(),g=!d.getBoundingClientRect()}while(this.skipInvalidSelections&&
+g);if(cvox.SelectionUtil.isRangeValid(d))this.lastSelectionWasWhitespace=!1;else if(this.lastSelectionWasWhitespace||a!=cvox.TraverseContent.kCharacter)for(;!cvox.SelectionUtil.isRangeValid(this.getCurrentRange())&&null!=this.movePrev(a););else this.lastSelectionWasWhitespace=!0;return this.getCurrentText()};cvox.TraverseContent.prototype.getBreakTags=function(){return{A:this.breakAtLinks,BR:!0,HR:!0}};
+cvox.TraverseContent.prototype.nextElement=function(a,b){null!=b&&(this.currentDomObj=b);var c=this.moveNext(a);return null==c||cvox.DomUtil.isDescendantOfNode(this.startCursor_.node,this.currentDomObj)&&cvox.DomUtil.isDescendantOfNode(this.endCursor_.node,this.currentDomObj)?c:null};
+cvox.TraverseContent.prototype.prevElement=function(a,b){null!=b&&(this.currentDomObj=b);var c=this.movePrev(a);return null==c||cvox.DomUtil.isDescendantOfNode(this.startCursor_.node,this.currentDomObj)&&cvox.DomUtil.isDescendantOfNode(this.endCursor_.node,this.currentDomObj)?c:null};cvox.TraverseContent.prototype.reset=function(){window.getSelection().removeAllRanges()};cvox.AbstractSelectionWalker=function(){this.objWalker_=new cvox.BareObjectWalker;this.tc_=cvox.TraverseContent.getInstance();this.grain=""};goog.inherits(cvox.AbstractSelectionWalker,cvox.AbstractWalker);
+cvox.AbstractSelectionWalker.prototype.next=function(a){var b=a.isReversed();this.tc_.syncToCursorSelection(a.clone().setReversed(!1));var c=b?this.tc_.prevElement(this.grain):this.tc_.nextElement(this.grain);if(null==c)return this.objWalker_.next(a);var c=this.tc_.getCurrentCursorSelection().setReversed(b),d=this.objWalker_.next(a),d=d?d.setReversed(b):null;return!d||"Text"==c.end.node.constructor.name&&"Text"==d.end.node.constructor.name||cvox.DomUtil.isDescendantOfNode(c.end.node,a.end.node)||
+cvox.DomUtil.isDescendantOfNode(c.end.node,d.end.node)?c:d};
+cvox.AbstractSelectionWalker.prototype.sync=function(a){var b=a.isReversed(),c=null;if(a.start.equals(a.end)&&"Text"!=a.start.node.constructor.name){for(c=a.start.node;c&&cvox.DomUtil.directedFirstChild(c,b)&&!cvox.TraverseUtil.treatAsLeafNode(c);){for(var d=cvox.DomUtil.directedFirstChild(c,b);d;)if(cvox.DomUtil.isVisible(d,{checkAncestors:!1,checkDescendants:!1})){c=d;break}else d=cvox.DomUtil.directedNextSibling(d,b);if(!d)break}c=cvox.CursorSelection.fromNode(c)}else c=a.clone(),b?c.start=c.end:
+c.end=c.start;c=this.next(c.setReversed(!1));d=(d=this.objWalker_.sync(a))?d.setReversed(b):null;if(!c)return d;c.setReversed(b);return!d||"Text"==c.end.node.constructor.name&&"Text"==d.end.node.constructor.name||cvox.DomUtil.isDescendantOfNode(c.end.node,a.end.node)||cvox.DomUtil.isDescendantOfNode(c.end.node,d.end.node)?c:d};
+cvox.AbstractSelectionWalker.prototype.getDescription=function(a,b){var c=cvox.DescriptionUtil.getDescriptionFromAncestors(cvox.DomUtil.getUniqueAncestors(a.end.node,b.start.node),!0,cvox.ChromeVox.verbosity);c.text=b.getText()||c.text;return[c]};cvox.AbstractSelectionWalker.prototype.getBraille=function(a,b){var c=b.absStart().node,d=cvox.TraverseUtil.getNodeText(c),e=new cvox.Spannable(d);e.setSpan(c,0,d.length);return new cvox.NavBraille({text:e,startIndex:b.absStart().index,endIndex:b.absEnd().index})};cvox.CharacterWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kCharacter};goog.inherits(cvox.CharacterWalker,cvox.AbstractSelectionWalker);cvox.CharacterWalker.prototype.getDescription=function(a,b){var c=cvox.CharacterWalker.superClass_.getDescription.call(this,a,b);c.forEach(function(a){a.personality||(a.personality={});a.personality.phoneticCharacters=!0});return c};cvox.CharacterWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("character_granularity")};cvox.GroupUtil={};cvox.GroupUtil.MAX_CHARCOUNT_=1500;cvox.GroupUtil.BREAKOUT_SELECTOR_='blockquote,button,code,form,frame,h1,h2,h3,h4,h5,h6,hr,iframe,input,object,ol,p,pre,select,table,tr,ul,math,span.math,[role~="alert alertdialog button checkbox combobox dialog log marquee menubar progressbar radio radiogroup scrollbar slider spinbutton status tab tabpanel textbox toolbar tooltip treeitem article document group heading img list math region row separator"]';
+cvox.GroupUtil.isLeafNode=function(a){if("LABEL"==a.tagName)return cvox.DomUtil.isLeafNode(a);if(cvox.DomUtil.isLeafNode(a))return!0;if(!cvox.DomUtil.isSemanticElt(a))for(var b=a.querySelectorAll(cvox.GroupUtil.BREAKOUT_SELECTOR_),c=0;c<b.length;++c)if(cvox.DomUtil.hasContent(b[c]))return!1;if(cvox.AriaUtil.isCompositeControl(a)&&!cvox.DomUtil.isFocusable(a))return!1;a=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getName(a));return a.length>cvox.GroupUtil.MAX_CHARCOUNT_||
+""===a.replace(/\s/g,"")?!1:!0};cvox.GroupWalker=function(){cvox.AbstractNodeWalker.call(this)};goog.inherits(cvox.GroupWalker,cvox.AbstractNodeWalker);cvox.GroupWalker.prototype.getDescription=function(a,b){return cvox.DescriptionUtil.getCollectionDescription(a,b)};cvox.GroupWalker.prototype.getBraille=function(){throw"getBraille is unsupported";};cvox.GroupWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("group_strategy")};cvox.GroupWalker.prototype.stopNodeDescent=function(a){return cvox.GroupUtil.isLeafNode(a)};cvox.StructuralLineWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kLine};goog.inherits(cvox.StructuralLineWalker,cvox.AbstractSelectionWalker);cvox.StructuralLineWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("structural_line")};
+cvox.StructuralLineWalker.prototype.getDescription=function(a,b){var c=cvox.StructuralLineWalker.superClass_.getDescription.call(this,a,b);c[0].text=cvox.DomUtil.getPrefixText(b.absStart().node,b.absStart().index)+c[0].text;return c};
+cvox.StructuralLineWalker.prototype.getBraille=function(a,b){var c=cvox.StructuralLineWalker.superClass_.getBraille.call(this,a,b),d=this.objWalker_.sync(b).absStart().node,e=a.absEnd().node,f=void 0;b.start.equals(b.end)||cvox.DomPredicates.editTextPredicate([d])||(f=cvox.DomUtil.getPrefixText(b.absStart().node,b.absStart().index),f+=b.getText());e=cvox.BrailleUtil.getTemplated(e,d,{name:f});e.setSpan(d,0,e.getLength());c.text=e;c.startIndex=0;c.endIndex=0;return c};cvox.LayoutLineWalker=function(){this.subWalker_=new cvox.StructuralLineWalker};goog.inherits(cvox.LayoutLineWalker,cvox.AbstractWalker);cvox.LayoutLineWalker.prototype.next=function(a){var b=new cvox.CursorSelection(a.end,a.end,a.isReversed()),c=this.subWalker_.sync(b);if(!c)return null;b=this.subWalker_.next(b);if(!b)return null;b.setReversed(a.isReversed());return this.extend_(b).setReversed(!1)};
+cvox.LayoutLineWalker.prototype.sync=function(a){var b=this.subWalker_.sync(a);if(!b)return null;var c=this.extend_(b),b=this.extend_(b.setReversed(!b.isReversed()));return new cvox.CursorSelection(b.end,c.end,a.isReversed())};
+cvox.LayoutLineWalker.prototype.getDescription=function(a,b){var c=[],d=a,e=b.clone().setReversed(!1),f=new cvox.CursorSelection(e.start,e.start),f=this.subWalker_.sync(f);if(!f)return[];if(e.start.node==e.end.node)return this.subWalker_.getDescription(a,b);for(;f&&!f.end.equals(e.end);)c.push.apply(c,this.subWalker_.getDescription(d,f)),d=f,f=this.subWalker_.next(f);f&&c.push.apply(c,this.subWalker_.getDescription(d,f));return c};
+cvox.LayoutLineWalker.prototype.getBraille=function(a,b){var c=new cvox.NavBraille({}),d=this.subWalker_.sync(b.clone().setReversed(!1)),e=this.sync(b).setReversed(!1);if(!e||!d)return c;var f=new cvox.CursorSelection(e.start,e.start),f=this.subWalker_.sync(f);if(!f)return c;for(;f&&!f.end.equals(e.end);)this.appendBraille_(a,d,f,c),a=f,f=this.subWalker_.next(f);f&&this.appendBraille_(a,d,f,c);return c};cvox.LayoutLineWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("layout_line")};
+cvox.LayoutLineWalker.prototype.isVisualLineBreak_=function(a,b){if(this.wantsOwnLine_(a.end.node)||this.wantsOwnLine_(b.start.node))return!0;var c=a.getRange().getBoundingClientRect(),d=b.getRange().getBoundingClientRect();0==c.width&&0==c.height&&a.end.node.nodeType==Node.ELEMENT_NODE&&(c=a.end.node.getBoundingClientRect());0==d.width&&0==d.height&&b.start.node.nodeType==Node.ELEMENT_NODE&&(d=b.start.node.getBoundingClientRect());return c.bottom!=d.bottom};
+cvox.LayoutLineWalker.prototype.wantsOwnLine_=function(a){return a instanceof HTMLTextAreaElement||a.parentNode instanceof HTMLTextAreaElement};cvox.LayoutLineWalker.prototype.extend_=function(a){var b=a,c=a;do b=c,c=this.subWalker_.next(b);while(c&&!this.isVisualLineBreak_(b,c));return new cvox.CursorSelection(a.start,b.end,a.isReversed())};
+cvox.LayoutLineWalker.prototype.appendBraille_=function(a,b,c,d){a=this.subWalker_.getBraille(a,c).text;var e=a.getSpanInstanceOf(cvox.BrailleUtil.ValueSelectionSpan);0<d.text.getLength()&&d.text.append(cvox.BrailleUtil.ITEM_SEPARATOR);for(var f=c.start.node;f.parentNode&&cvox.DomUtil.isLeafNode(f.parentNode);)f=f.parentNode;var g=d.text.getLength(),h=g+a.getLength();d.text.append(a.toString());d.text.setSpan(f,g,h);b&&c.absEquals(b)&&(e?(d.startIndex=g+a.getSpanStart(e),d.endIndex=g+a.getSpanEnd(e)):
+(d.startIndex=g,d.endIndex=g+1))};cvox.ObjectWalker=function(){cvox.AbstractNodeWalker.call(this)};goog.inherits(cvox.ObjectWalker,cvox.AbstractNodeWalker);cvox.ObjectWalker.prototype.stopNodeDescent=function(a){return cvox.DomUtil.isLeafNode(a)};cvox.AbstractNodeWalker.prototype.getDescription=function(a,b){return cvox.DescriptionUtil.getDescriptionFromNavigation(a.end.node,b.start.node,!0,cvox.ChromeVox.verbosity)};cvox.ObjectWalker.prototype.getBraille=function(){throw"getBraille is unsupported";};
+cvox.ObjectWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("object_strategy")};cvox.SentenceWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kSentence};goog.inherits(cvox.SentenceWalker,cvox.AbstractSelectionWalker);cvox.SentenceWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("sentence_granularity")};cvox.WordWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kWord};goog.inherits(cvox.WordWalker,cvox.AbstractSelectionWalker);cvox.WordWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("word_granularity")};cvox.NavigationShifter=function(){this.reset_();cvox.AbstractShifter.call(this)};goog.inherits(cvox.NavigationShifter,cvox.AbstractShifter);cvox.NavigationShifter.GRANULARITIES={CHARACTER:0,WORD:1,LINE:2,SENTENCE:3,OBJECT:4,GROUP:5};cvox.NavigationShifter.prototype.storeOn=function(a){a.granularity=this.getGranularity()};cvox.NavigationShifter.prototype.readFrom=function(a){this.setGranularity(a.granularity)};
+cvox.NavigationShifter.prototype.next=function(a){a=this.currentWalker_.next(a);this.currentWalkerIndex_<=cvox.NavigationShifter.GRANULARITIES.LINE&&a&&(cvox.TraverseContent.getInstance().syncToCursorSelection(a.clone().setReversed(!1)),cvox.TraverseContent.getInstance().updateSelection());return a};cvox.NavigationShifter.prototype.sync=function(a){return this.currentWalker_.sync(a)};cvox.NavigationShifter.prototype.getName=function(){return cvox.ChromeVox.msgs.getMsg("navigation_shifter")};
+cvox.NavigationShifter.prototype.getDescription=function(a,b){return this.currentWalker_.getDescription(a,b)};cvox.NavigationShifter.prototype.getBraille=function(a,b){return this.lineWalker_.getBraille(a,b)};cvox.NavigationShifter.prototype.getGranularityMsg=function(){return this.currentWalker_.getGranularityMsg()};
+cvox.NavigationShifter.prototype.makeMoreGranular=function(){cvox.NavigationShifter.superClass_.makeMoreGranular.call(this);this.currentWalkerIndex_=Math.max(this.currentWalkerIndex_-1,0);cvox.NavigationShifter.allowSentence||this.currentWalkerIndex_!=cvox.NavigationShifter.GRANULARITIES.SENTENCE||this.currentWalkerIndex_--;this.currentWalker_=this.walkers_[this.currentWalkerIndex_]};
+cvox.NavigationShifter.prototype.makeLessGranular=function(){cvox.NavigationShifter.superClass_.makeLessGranular.call(this);this.currentWalkerIndex_=Math.min(this.currentWalkerIndex_+1,this.walkers_.length-1);cvox.NavigationShifter.allowSentence||this.currentWalkerIndex_!=cvox.NavigationShifter.GRANULARITIES.SENTENCE||this.currentWalkerIndex_++;this.currentWalker_=this.walkers_[this.currentWalkerIndex_]};
+cvox.NavigationShifter.prototype.setGranularity=function(a){this.ensureNotSubnavigating();this.currentWalkerIndex_=a;this.currentWalker_=this.walkers_[this.currentWalkerIndex_]};cvox.NavigationShifter.prototype.getGranularity=function(){var a=this.isSubnavigating();this.ensureNotSubnavigating();var b=this.currentWalkerIndex_;a&&this.ensureSubnavigating();return b};
+cvox.NavigationShifter.prototype.hasAction=function(a){return"toggleLineType"==a?!0:cvox.NavigationShifter.superClass_.hasAction.call(this,a)};cvox.NavigationShifter.create=function(){return new cvox.NavigationShifter};
+cvox.NavigationShifter.prototype.reset_=function(){this.groupWalker_=new cvox.GroupWalker;this.objectWalker_=new cvox.ObjectWalker;this.sentenceWalker_=new cvox.SentenceWalker;this.lineWalker_=new cvox.LayoutLineWalker;this.wordWalker_=new cvox.WordWalker;this.characterWalker_=new cvox.CharacterWalker;this.walkers_=[this.characterWalker_,this.wordWalker_,this.lineWalker_,this.sentenceWalker_,this.objectWalker_,this.groupWalker_];this.currentWalkerIndex_=this.walkers_.indexOf(this.groupWalker_);this.currentWalker_=
+this.walkers_[this.currentWalkerIndex_]};cvox.NavigationShifter.allowSentence=!1;cvox.NavigationSpeaker=function(){this.stopReading=!1;this.id_=1};
+cvox.NavigationSpeaker.prototype.speakDescriptionArray=function(a,b,c){a=this.reorderAnnotations(a);this.stopReading=!1;this.id_=(this.id_+1)%1E4;var d=this,e=function(b,g,h){var k=a[b];if(k&&!d.stopReading&&d.id_==h){var l=function(){for(var a=0;a<k.earcons.length;a++)cvox.ChromeVox.earcons.playEarcon(k.earcons[a])},m=function(){e(b+1,cvox.AbstractTts.QUEUE_MODE_QUEUE,h)},p=function(){k.personality&&k.personality[cvox.AbstractTts.PAUSE]&&"number"==typeof k.personality[cvox.AbstractTts.PAUSE]?setTimeout(m,
+k.personality[cvox.AbstractTts.PAUSE]):m();b==a.length-1&&c&&c()};k.isEmpty()?(l(),p()):(k.speak(g,l,p),cvox.ChromeVox.host.hasTtsCallback()||(l(),p()))}};e(0,b,this.id_);0==a.length&&c&&c()};cvox.NavigationSpeaker.structuredElement=function(a){switch(a){case "table":case "Math":return!0}return!1};
+cvox.NavigationSpeaker.prototype.reorderAnnotations=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c];cvox.NavigationSpeaker.structuredElement(d.annotation)&&(b.push(new cvox.NavDescription({text:"",annotation:d.annotation})),d.annotation="");b.push(d)}return b};cvox.NavigationManager=function(){this.addInterframeListener_();this.reset()};cvox.NavigationManager.prototype.storeOn=function(a){a.reversed=this.isReversed();a.keepReading=this.keepReading_;a.findNext=this.predicate_;this.shifter_.storeOn(a)};cvox.NavigationManager.prototype.readFrom=function(a){this.curSel_.setReversed(a.reversed);this.shifter_.readFrom(a);a.keepReading&&this.startReading(cvox.AbstractTts.QUEUE_MODE_FLUSH)};
+cvox.NavigationManager.prototype.reset=function(){this.navSpeaker_=new cvox.NavigationSpeaker;this.shifterTypes_=[cvox.NavigationShifter,cvox.TableShifter,cvox.MathShifter];this.shifterStack_=[];this.shifter_=new cvox.NavigationShifter;this.curSel_=document.activeElement!=document.body?cvox.CursorSelection.fromNode(document.activeElement):this.shifter_.begin(this.curSel_,{reversed:!1});this.prevSel_=this.curSel_.clone();this.ignoreIframesNoMatterWhat_=this.exitedShifter_=this.enteredShifter_=this.pageEndAnnounced_=
+this.pageEnd_=this.keepReading_=this.recovered_=this.skipped_=!1;this.pageSel_=null;this.predicate_="";this.saveSel_=null;this.activeIndicator&&this.activeIndicator.removeFromDom();this.activeIndicator=new cvox.ActiveIndicator;this.navigationHistory_=new cvox.NavigationHistory;this.focusRecovery_="chrome:"!=window.location.protocol;this.iframeIdMap={};this.nextIframeId=1;document.activeElement!=document.body&&this.sync();cvox.TraverseMath.getInstance()};
+cvox.NavigationManager.prototype.resolve=function(a){if(!this.getFocusRecovery())return!0;var b=this.getCurrentNode();if(!this.navigationHistory_.becomeInvalid(b)||this.hasNext_())return!0;b=this.navigationHistory_.revert(a);if(!b.current)return!0;a=cvox.CursorSelection.fromNode(b.current);b=cvox.CursorSelection.fromNode(b.previous);a=a||cvox.CursorSelection.fromBody();b=b||cvox.CursorSelection.fromBody();a.setReversed(this.isReversed());this.updateSel(a,b);this.recovered_=!0;return!1};
+cvox.NavigationManager.prototype.getFocusRecovery=function(){return this.focusRecovery_};cvox.NavigationManager.prototype.setFocusRecovery=function(a){this.focusRecovery_=a};cvox.NavigationManager.prototype.next_=function(a){return this.tryBoundaries_(this.shifter_.next(this.curSel_),a)?(this.pageSel_&&this.pageSel_.extend(this.curSel_),!0):!1};
+cvox.NavigationManager.prototype.hasNext_=function(){if(0<this.shifterStack_.length)return!0;var a=this.curSel_.clone(),b=!1,c=new cvox.NavigationShifter;c.setGranularity(this.shifter_.getGranularity());c.sync(a);c.next(a)&&(b=!0);return b};
+cvox.NavigationManager.prototype.findNext=function(a,b,c){this.predicate_=b||"";this.resolve();this.shifter_=this.shifterStack_[0]||this.shifter_;this.shifterStack_=[];a=cvox.FindUtil.findNext(this.curSel_,a,c);this.ignoreIframesNoMatterWhat_||this.tryIframe_(a&&a.start.node);a&&this.updateSelToArbitraryNode(a.start.node);this.predicate_="";return a};cvox.NavigationManager.prototype.sync=function(){this.resolve();var a=this.shifter_.sync(this.curSel_);a&&(this.curSel_=a)};
+cvox.NavigationManager.prototype.syncAll=function(a){this.sync();this.setFocus(a);this.updateIndicator()};cvox.NavigationManager.prototype.clearPageSel=function(a){var b=!!this.pageSel_;b&&a&&(a=cvox.ChromeVox.msgs.getMsg("clear_page_selection"),cvox.ChromeVox.tts.speak(a,cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION));this.pageSel_=null;return b};
+cvox.NavigationManager.prototype.togglePageSel=function(){this.pageSel_=this.pageSel_?null:new cvox.PageSelection(this.curSel_.setReversed(!1));return!!this.pageSel_};
+cvox.NavigationManager.prototype.getDescription=function(){if(this.getCurrentNode().hasAttribute&&this.getCurrentNode().hasAttribute("cvoxnodedesc")){for(var a=cvox.ChromeVoxJSON.parse(this.getCurrentNode().getAttribute("cvoxnodedesc")),b=[],c=0;c<a.length;++c){var d=a[c];b.push(new cvox.NavDescription({context:d.context,text:d.text,userValue:d.userValue,annotation:d.annotation}))}return b}var e=this.pageSel_?this.pageSel_.getDescription(this.shifter_,this.prevSel_,this.curSel_):this.shifter_.getDescription(this.prevSel_,
+this.curSel_),a=[];this.skipped_&&(a.push(cvox.AbstractEarcons.PARAGRAPH_BREAK),this.skipped_=!1);this.recovered_&&(a.push(cvox.AbstractEarcons.FONT_CHANGE),this.recovered_=!1);this.pageEnd_&&(a.push(cvox.AbstractEarcons.WRAP),this.pageEnd_=!1);this.enteredShifter_&&(a.push(cvox.AbstractEarcons.OBJECT_ENTER),this.enteredShifter_=!1);this.exitedShifter_&&(a.push(cvox.AbstractEarcons.OBJECT_EXIT),this.exitedShifter_=!1);0<a.length&&0<e.length&&a.forEach(function(a){e[0].pushEarcon(a)});return e};
+cvox.NavigationManager.prototype.getBraille=function(){return cvox.PlatformUtil.matchesPlatform(cvox.PlatformFilter.ANDROID|cvox.PlatformFilter.CHROMEOS)?this.shifter_.getBraille(this.prevSel_,this.curSel_):new cvox.NavBraille({})};
+cvox.NavigationManager.prototype.performAction=function(a){switch(a){case "enterShifter":case "enterShifterSilently":for(var b=this.shifterTypes_.length-1,c;c=this.shifterTypes_[b];b--)if((c=c.create(this.curSel_))&&c.getName()!=this.shifter_.getName()){this.shifterStack_.push(this.shifter_);this.shifter_=c;this.sync();this.enteredShifter_="enterShifterSilently"!=a;break}else if(c&&this.shifter_.getName()==c.getName())break;break;case "exitShifter":if(0==this.shifterStack_.length)return!1;this.shifter_=
+this.shifterStack_.pop();this.sync();this.exitedShifter_=!0;break;case "exitShifterContent":if(0==this.shifterStack_.length)return!1;this.updateSel(this.shifter_.performAction(a,this.curSel_));this.shifter_=this.shifterStack_.pop()||this.shifter_;this.sync();this.exitedShifter_=!0;break;default:return this.shifter_.hasAction(a)?this.updateSel(this.shifter_.performAction(a,this.curSel_)):!1}return!0};cvox.NavigationManager.prototype.getGranularityMsg=function(){return this.shifter_.getGranularityMsg()};
+cvox.NavigationManager.prototype.makeMoreGranular=function(a){this.shifter_.makeMoreGranular();this.sync();this.persistGranularity_(a)};cvox.NavigationManager.prototype.makeLessGranular=function(a){this.shifter_.makeLessGranular();this.sync();this.persistGranularity_(a)};cvox.NavigationManager.prototype.setGranularity=function(a,b,c){!b&&0<this.shifterStack_.length||(this.shifter_=this.shifterStack_.shift()||this.shifter_,this.shifter_.setGranularity(a),this.persistGranularity_(c))};
+cvox.NavigationManager.prototype.getGranularity=function(){var a=this.shifterStack_[0]||this.shifter_;return a.getGranularity()};cvox.NavigationManager.prototype.ensureSubnavigating=function(){this.shifter_.isSubnavigating()||(this.shifter_.ensureSubnavigating(),this.sync())};cvox.NavigationManager.prototype.ensureNotSubnavigating=function(){this.shifter_.isSubnavigating()&&(this.shifter_.ensureNotSubnavigating(),this.sync())};
+cvox.NavigationManager.prototype.speakDescriptionArray=function(a,b,c,d){d&&a.every(function(a){a.personality||(a.personality=d)});this.navSpeaker_.speakDescriptionArray(a,b,c)};cvox.NavigationManager.prototype.updatePosition=function(a){var b=cvox.ChromeVox.position;b[document.location.href]=cvox.DomUtil.elementToPoint(a);JSON.stringify(b)};
+cvox.NavigationManager.prototype.finishNavCommand=function(a,b,c,d){if(this.pageEnd_&&!this.pageEndAnnounced_)this.pageEndAnnounced_=!0,cvox.ChromeVox.tts.stop(),cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),cvox.ChromeVox.verbosity===cvox.VERBOSITY_VERBOSE&&(a=cvox.ChromeVox.msgs.getMsg("wrapped_to_top"),this.isReversed()&&(a=cvox.ChromeVox.msgs.getMsg("wrapped_to_bottom")),cvox.ChromeVox.tts.speak(a,cvox.AbstractTts.QUEUE_MODE_QUEUE,cvox.AbstractTts.PERSONALITY_ANNOTATION));else{if(this.enteredShifter_||
+this.exitedShifter_)a=cvox.ChromeVox.msgs.getMsg("enter_content_say",[this.shifter_.getName()]);var e=cvox.ChromeVox.navigationManager.getDescription();(b=void 0===b?!0:b)&&this.setFocus();this.updateIndicator();b=c||cvox.AbstractTts.QUEUE_MODE_FLUSH;a&&(cvox.ChromeVox.tts.speak(a,b,cvox.AbstractTts.PERSONALITY_ANNOTATION),b=cvox.AbstractTts.QUEUE_MODE_QUEUE);this.speakDescriptionArray(e,b,d||null);this.getBraille().write();this.updatePosition(this.getCurrentNode())}};
+cvox.NavigationManager.prototype.navigate=function(a,b){this.pageEndAnnounced_=!1;if(this.pageEnd_)return this.pageEnd_=!1,this.syncToBeginning(a),!0;if(!this.resolve())return!1;this.ensureNotSubnavigating();void 0!==b&&(b!==this.getGranularity()||0<this.shifterStack_.length)&&(this.setGranularity(b,!0),this.sync());return this.next_(!a)};cvox.NavigationManager.prototype.subnavigate=function(){this.pageEndAnnounced_=!1;this.resolve()&&(this.ensureSubnavigating(),this.next_(!0))};
+cvox.NavigationManager.prototype.skip=function(){if(!this.keepReading_)return!1;cvox.ChromeVox.host.hasTtsCallback()&&(this.skipped_=!0,this.setReversed(!1),this.startCallbackReading_(cvox.AbstractTts.QUEUE_MODE_FLUSH));return!0};cvox.NavigationManager.prototype.startReading=function(a){this.keepReading_=!0;cvox.ChromeVox.host.hasTtsCallback()?this.startCallbackReading_(a):this.startNonCallbackReading_(a);this.prevStickyState_=cvox.ChromeVox.isStickyOn};
+cvox.NavigationManager.prototype.stopReading=function(a){this.keepReading_=!1;this.navSpeaker_.stopReading=!0;a&&cvox.ChromeVox.tts.stop();void 0!=this.prevStickyState_&&(this.prevStickyState_=void 0)};cvox.NavigationManager.prototype.isReading=function(){return this.keepReading_};
+cvox.NavigationManager.prototype.startCallbackReading_=cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(a){this.finishNavCommand("",!0,a,goog.bind(function(){this.next_(!0)&&this.keepReading_&&this.startCallbackReading_(cvox.AbstractTts.QUEUE_MODE_QUEUE)},this))});
+cvox.NavigationManager.prototype.startNonCallbackReading_=cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(a){this.keepReading_&&(cvox.ChromeVox.tts.isSpeaking()||(this.finishNavCommand("",!0,a,null),this.next_(!0)||(this.keepReading_=!1)),window.setTimeout(goog.bind(this.startNonCallbackReading_,this),1E3))});
+cvox.NavigationManager.prototype.getFullDescription=function(){return this.pageSel_?this.pageSel_.getFullDescription():[cvox.DescriptionUtil.getDescriptionFromAncestors(cvox.DomUtil.getAncestors(this.curSel_.start.node),!0,cvox.ChromeVox.verbosity)]};cvox.NavigationManager.prototype.setFocus=function(a){this.pageSel_||a&&this.curSel_.start.node.constructor==Text||cvox.Focuser.setFocus(this.curSel_.start.node)};cvox.NavigationManager.prototype.getCurrentNode=function(){return this.curSel_.absStart().node};
+cvox.NavigationManager.prototype.addInterframeListener_=function(){var a=this;cvox.Interframe.addListener(function(b){if("enterIframe"==b.command||"exitIframe"==b.command)cvox.ChromeVox.serializer.readFrom(b),a.keepReading_||cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(){window.focus();if(b.findNext){var c=b.findNext,d=cvox.DomPredicates[c],c=a.findNext(d,c,!0);if(d&&(!c||"IFRAME"==c.start.node.tagName))return}else if("exitIframe"==b.command)d=b.sourceId,d=a.iframeIdMap[d],c=b.reversed,
+d&&a.updateSel(cvox.CursorSelection.fromNode(d)),a.setReversed(c),a.sync(),a.navigate();else if(a.syncToBeginning(),!cvox.DomUtil.hasContent(document.body)){a.tryIframe_(null);return}a.finishNavCommand("",!0)})()})};cvox.NavigationManager.prototype.updateIndicator=function(){this.activeIndicator.syncToCursorSelection(this.curSel_)};cvox.NavigationManager.prototype.updateIndicatorIfChanged=function(){this.activeIndicator.updateIndicatorIfChanged()};
+cvox.NavigationManager.prototype.showOrHideIndicator=function(a){a||this.activeIndicator.removeFromDom()};cvox.NavigationManager.prototype.collapseSelection=function(){this.curSel_.collapse()};cvox.NavigationManager.prototype.updateSelToArbitraryNode=function(a,b){a?(this.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0),this.updateSel(cvox.CursorSelection.fromNode(a)),b||this.sync()):this.syncToBeginning()};
+cvox.NavigationManager.prototype.updateSel=function(a,b){a&&(this.prevSel_=b||this.curSel_,this.curSel_=a);var c=this.getCurrentNode();this.navigationHistory_.update(c);return!!a};cvox.NavigationManager.prototype.setReversed=function(a){this.curSel_.setReversed(a)};cvox.NavigationManager.prototype.isReversed=function(){return this.curSel_.isReversed()};
+cvox.NavigationManager.prototype.tryBoundaries_=function(a,b){b=!!b&&!this.ignoreIframesNoMatterWhat_||!1;this.pageEnd_=!1;if(b&&this.tryIframe_(a&&a.start.node))return!0;if(a)return this.updateSel(a),!0;if(0<this.shifterStack_.length)return!0;this.syncToBeginning(!b);this.clearPageSel(!0);this.stopReading(!0);this.pageEnd_=!0;return!1};
+cvox.NavigationManager.prototype.tryIframe_=function(a){if(null==a&&cvox.Interframe.isIframe()){var b={command:"exitIframe",reversed:this.isReversed(),granularity:this.getGranularity()};cvox.ChromeVox.serializer.storeOn(b);cvox.Interframe.sendMessageToParentWindow(b);return!0}if(null==a||"IFRAME"!=a.tagName||!a.src)return!1;var c=void 0;for(b in this.iframeIdMap)if(this.iframeIdMap[b]==a){c=b;break}void 0==c&&(c=this.nextIframeId,this.nextIframeId++,this.iframeIdMap[c]=a,cvox.Interframe.sendIdToIFrame(c,
+a));b={command:"enterIframe",id:c};cvox.ChromeVox.serializer.storeOn(b);cvox.Interframe.sendMessageToIFrame(b,a);return!0};cvox.NavigationManager.prototype.syncToBeginning=function(a){var b=this.shifter_.begin(this.curSel_,{reversed:this.curSel_.isReversed()});!a&&this.tryIframe_(b&&b.start.node)||this.updateSel(b)};cvox.NavigationManager.prototype.ignoreIframesNoMatterWhat=function(){this.ignoreIframesNoMatterWhat_=!0};cvox.NavigationManager.prototype.saveSel=function(){this.saveSel_=this.curSel_};
+cvox.NavigationManager.prototype.restoreSel=function(){this.curSel_=this.saveSel_||this.curSel_};cvox.NavigationManager.prototype.persistGranularity_=function(a){(a=void 0===a?!1:a)&&this.getGranularity()};cvox.SearchWidget=function(){this.txtNode_=this.containerNode_=null;this.PROMPT_="Search:";this.hasMatch_=this.caseSensitive_=!1;cvox.Widget.call(this)};goog.inherits(cvox.SearchWidget,cvox.Widget);goog.addSingletonGetter(cvox.SearchWidget);
+cvox.SearchWidget.prototype.show=function(){cvox.SearchWidget.superClass_.show.call(this);this.active=!0;this.hasMatch_=!1;cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0,!1);cvox.ChromeVox.navigationManager.setReversed(!1);this.focusRecovery_=cvox.ChromeVox.navigationManager.getFocusRecovery();cvox.ChromeVox.navigationManager.setFocusRecovery(!1);var a=this.createContainerNode_();this.containerNode_=a;var b=this.createOverlayNode_();a.appendChild(b);
+var c=document.createElement("span");c.innerHTML=this.PROMPT_;b.appendChild(c);this.txtNode_=this.createTextAreaNode_();b.appendChild(this.txtNode_);document.body.appendChild(a);this.txtNode_.focus();window.setTimeout(function(){a.style.opacity="1.0"},0)};
+cvox.SearchWidget.prototype.hide=function(a){if(this.isActive()){var b=this.containerNode_;b.style.opacity="0.0";window.setTimeout(function(){document.body.removeChild(b)},1E3);this.txtNode_=null;cvox.SearchWidget.containerNode=null;cvox.ChromeVox.navigationManager.setFocusRecovery(this.focusRecovery_);this.active=!1}cvox.$m("choice_widget_exited").andPause().andMessage(this.getNameMsg()).speakFlush();this.hasMatch_&&a||cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(this.initialNode);cvox.ChromeVoxEventSuspender.withSuspendedEvents(goog.bind(cvox.ChromeVox.navigationManager.syncAll,
+cvox.ChromeVox.navigationManager))(!0);cvox.ChromeVox.navigationManager.speakDescriptionArray(cvox.ChromeVox.navigationManager.getDescription(),cvox.AbstractTts.QUEUE_MODE_QUEUE,null,cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT);a=this.textFromCurrentDescription_();cvox.ChromeVox.braille.write(new cvox.NavBraille({text:a,startIndex:0,endIndex:0}));cvox.SearchWidget.superClass_.hide.call(this,!0)};cvox.SearchWidget.prototype.getNameMsg=function(){return["search_widget_intro"]};
+cvox.SearchWidget.prototype.getHelpMsg=function(){return"search_widget_intro_help"};
+cvox.SearchWidget.prototype.onKeyDown=function(a){if(!this.isActive())return!1;var b=this.txtNode_.value;if(8==a.keyCode)0<b.length?(b=b.substring(0,b.length-1),this.txtNode_.value=b,this.beginSearch_(b)):(cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(this.initialNode),cvox.ChromeVox.navigationManager.syncAll());else if(40==a.keyCode)this.next_(b,!1);else if(38==a.keyCode)this.next_(b,!0);else if(13==a.keyCode)this.hide(!0);else if(27==a.keyCode)this.hide(!1);else if(a.ctrlKey&&67==a.keyCode)this.toggleCaseSensitivity_();
+else return cvox.SearchWidget.superClass_.onKeyDown.call(this,a);a.preventDefault();a.stopPropagation();return!0};cvox.SearchWidget.prototype.onKeyPress=function(a){if(!this.isActive())return!1;this.txtNode_.value+=String.fromCharCode(a.charCode);var b=this.txtNode_.value;this.beginSearch_(b);a.preventDefault();a.stopPropagation();return!0};cvox.SearchWidget.prototype.onNavigate=function(){};cvox.SearchWidget.prototype.getPredicate=function(){return null};
+cvox.SearchWidget.prototype.nextResult=function(a){if(!this.isActive())return null;var b=this.txtNode_.value;return this.next_(b,a)};cvox.SearchWidget.prototype.createContainerNode_=function(){var a=document.createElement("div");a.id="cvox-search";a.style.position="fixed";a.style.top="50%";a.style.left="50%";a.style["-webkit-transition"]="all 0.3s ease-in";a.style.opacity="0.0";a.style["z-index"]="2147483647";a.setAttribute("aria-hidden","true");return a};
+cvox.SearchWidget.prototype.createOverlayNode_=function(){var a=document.createElement("div");a.style.position="relative";a.style.left="-50%";a.style.top="-40px";a.style["line-height"]="1.2em";a.style["font-size"]="20px";a.style.padding="30px";a.style["min-width"]="150px";a.style.color="#fff";a.style["background-color"]="rgba(0, 0, 0, 0.7)";a.style["border-radius"]="10px";return a};
+cvox.SearchWidget.prototype.createTextAreaNode_=function(){var a=document.createElement("textarea");a.setAttribute("aria-hidden","true");a.setAttribute("rows","1");a.style.color="#fff";a.style["background-color"]="rgba(0, 0, 0, 0.7)";a.style["vertical-align"]="middle";a.addEventListener("textInput",this.handleSearchChanged_,!1);return a};
+cvox.SearchWidget.prototype.toggleCaseSensitivity_=function(){this.caseSensitive_?(cvox.SearchWidget.caseSensitive_=!1,cvox.ChromeVox.tts.speak("Ignoring case.",0,null)):(this.caseSensitive_=!0,cvox.ChromeVox.tts.speak("Case sensitive.",0,null))};
+cvox.SearchWidget.prototype.getNextResult_=function(a){var b=cvox.ChromeVox.navigationManager.isReversed();this.caseSensitive_||(a=a.toLowerCase());cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0,!1);do{if(this.getPredicate()){var c=this.getPredicate()(cvox.DomUtil.getAncestors(cvox.ChromeVox.navigationManager.getCurrentNode()));if(!c)continue}for(var c=cvox.ChromeVox.navigationManager.getDescription(),d=0;d<c.length;d++){var e=this.caseSensitive_?c[d].text:
+c[d].text.toLowerCase(),f=e.indexOf(a);-1!=f&&e.length>a.length&&(c[d].text=cvox.DomUtil.collapseWhitespace(e.substring(0,f))+", "+a+", "+e.substring(f+a.length),c[d].text=cvox.DomUtil.collapseWhitespace(c[d].text));if(-1!=f)return c}cvox.ChromeVox.navigationManager.setReversed(b)}while(cvox.ChromeVox.navigationManager.navigate(!0,cvox.NavigationShifter.GRANULARITIES.OBJECT))};cvox.SearchWidget.prototype.beginSearch_=function(a){var b=this.getNextResult_(a);this.outputSearchResult_(b,a);this.onNavigate()};
+cvox.SearchWidget.prototype.next_=function(a,b){cvox.ChromeVox.navigationManager.setReversed(!!b);var c=!1;this.getPredicate()?(c=cvox.ChromeVox.navigationManager.findNext(this.getPredicate()),cvox.ChromeVox.navigationManager.setReversed(!!b),c||(cvox.ChromeVox.navigationManager.syncToBeginning(),cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),c=!0)):c=cvox.ChromeVox.navigationManager.navigate(!0);c=c?this.getNextResult_(a):null;this.outputSearchResult_(c,a);this.onNavigate();return c};
+cvox.SearchWidget.prototype.outputSearchResult_=function(a,b){cvox.ChromeVox.tts.stop();a?(this.hasMatch_=!0,cvox.ChromeVoxEventSuspender.withSuspendedEvents(goog.bind(cvox.ChromeVox.navigationManager.syncAll,cvox.ChromeVox.navigationManager))(!0),cvox.ChromeVox.navigationManager.speakDescriptionArray(a,cvox.AbstractTts.QUEUE_MODE_FLUSH,null,cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT),cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("search_help_item"),cvox.AbstractTts.QUEUE_MODE_QUEUE,cvox.AbstractTts.PERSONALITY_ANNOTATION),
+this.outputSearchResultToBraille_(b)):(cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),this.hasMatch_=!1)};
+cvox.SearchWidget.prototype.outputSearchResultToBraille_=function(a){if(cvox.ChromeVox.braille){var b=this.textFromCurrentDescription_(),c=this.caseSensitive_?b:b.toLowerCase();a=this.caseSensitive_?a:a.toLowerCase();c=c.indexOf(a);if(-1==c)console.log("Search string not in result when preparing for Braille.");else{var d=b.length,b=cvox.ChromeVox.msgs.getMsg("mark_as_search_result_brl",[b]),e=b.length,c=c+(e-d);cvox.ChromeVox.braille.write(new cvox.NavBraille({text:b,startIndex:c+a.length,endIndex:c+
+a.length}))}}};cvox.SearchWidget.prototype.textFromCurrentDescription_=function(){for(var a=cvox.ChromeVox.navigationManager.getDescription(),b="",c=0;c<a.length;c++)b+=a[c].text+" ";return b};cvox.SearchWidget.prototype.handleSearchChanged_=function(a){a=a.target.value+a.data;cvox.SearchWidget.prototype.beginSearch_(a)};cvox.OverlayWidget=function(a){cvox.SearchWidget.call(this);this.snippet_=a};goog.inherits(cvox.OverlayWidget,cvox.SearchWidget);
+cvox.OverlayWidget.prototype.show=function(){cvox.OverlayWidget.superClass_.show.call(this);var a=document.createElement("DIV");a.innerHTML=this.snippet_;var b=cvox.DomUtil.elementToPoint(cvox.ChromeVox.navigationManager.getCurrentNode());a.style.position="absolute";a.style.left=b.x;a.style.top=b.y;document.body.appendChild(a);cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(a);this.host_=a};cvox.OverlayWidget.prototype.hide=function(){this.host_.remove();cvox.OverlayWidget.superClass_.hide.call(this)};
+cvox.OverlayWidget.prototype.onKeyDown=function(a){cvox.OverlayWidget.superClass_.onKeyDown.call(this,a);if(13==a.keyCode||27==a.keyCode)return!0;a=cvox.ChromeVox.navigationManager.isReversed();cvox.DomUtil.isDescendantOfNode(cvox.ChromeVox.navigationManager.getCurrentNode(),this.host_)||(a?cvox.ChromeVox.navigationManager.syncToBeginning():cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(this.host_),this.onNavigate(),cvox.ChromeVox.navigationManager.speakDescriptionArray(cvox.ChromeVox.navigationManager.getDescription(),
+0,null))};cvox.KeyboardHelpWidget=function(){cvox.OverlayWidget.call(this,"");this.container_=document.createElement("div");var a=cvox.ChromeVoxKbHandler.handlerKeyMap;a.bindings().forEach(goog.bind(function(a){var c=a.command;a=a.sequence;var d=c;try{var e=cvox.CommandStore.messageForCommand(c);if(!e)return;d=cvox.ChromeVox.msgs.getMsg(e)}catch(f){}e=document.createElement("p");e.id=c;e.setAttribute("role","menuitem");e.textContent=d+" - "+cvox.KeyUtil.keySequenceToString(a,!0);this.container_.appendChild(e)},
+this))};goog.inherits(cvox.KeyboardHelpWidget,cvox.OverlayWidget);goog.addSingletonGetter(cvox.KeyboardHelpWidget);cvox.KeyboardHelpWidget.prototype.show=function(){cvox.KeyboardHelpWidget.superClass_.show.call(this);this.host_.appendChild(this.container_)};cvox.KeyboardHelpWidget.prototype.getNameMsg=function(){return["keyboard_help_intro"]};
+cvox.KeyboardHelpWidget.prototype.onKeyDown=function(a){if(13==a.keyCode){var b=cvox.ChromeVox.navigationManager.getCurrentNode().parentNode.id;this.hide();cvox.ChromeVoxEventSuspender.withSuspendedEvents(cvox.ChromeVoxUserCommands.commands[b])();a.preventDefault();a.stopPropagation();return!0}return cvox.KeyboardHelpWidget.superClass_.onKeyDown.call(this,a)};goog.object={};goog.object.forEach=function(a,b,c){for(var d in a)b.call(c,a[d],d,a)};goog.object.filter=function(a,b,c){var d={},e;for(e in a)b.call(c,a[e],e,a)&&(d[e]=a[e]);return d};goog.object.map=function(a,b,c){var d={},e;for(e in a)d[e]=b.call(c,a[e],e,a);return d};goog.object.some=function(a,b,c){for(var d in a)if(b.call(c,a[d],d,a))return!0;return!1};goog.object.every=function(a,b,c){for(var d in a)if(!b.call(c,a[d],d,a))return!1;return!0};
+goog.object.getCount=function(a){var b=0,c;for(c in a)b++;return b};goog.object.getAnyKey=function(a){for(var b in a)return b};goog.object.getAnyValue=function(a){for(var b in a)return a[b]};goog.object.contains=function(a,b){return goog.object.containsValue(a,b)};goog.object.getValues=function(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b};goog.object.getKeys=function(a){var b=[],c=0,d;for(d in a)b[c++]=d;return b};
+goog.object.getValueByKeys=function(a,b){for(var c=goog.isArrayLike(b),d=c?b:arguments,c=c?0:1;c<d.length&&(a=a[d[c]],goog.isDef(a));c++);return a};goog.object.containsKey=function(a,b){return b in a};goog.object.containsValue=function(a,b){for(var c in a)if(a[c]==b)return!0;return!1};goog.object.findKey=function(a,b,c){for(var d in a)if(b.call(c,a[d],d,a))return d};goog.object.findValue=function(a,b,c){return(b=goog.object.findKey(a,b,c))&&a[b]};
+goog.object.isEmpty=function(a){for(var b in a)return!1;return!0};goog.object.clear=function(a){for(var b in a)delete a[b]};goog.object.remove=function(a,b){var c;(c=b in a)&&delete a[b];return c};goog.object.add=function(a,b,c){if(b in a)throw Error('The object already contains the key "'+b+'"');goog.object.set(a,b,c)};goog.object.get=function(a,b,c){return b in a?a[b]:c};goog.object.set=function(a,b,c){a[b]=c};goog.object.setIfUndefined=function(a,b,c){return b in a?a[b]:a[b]=c};
+goog.object.clone=function(a){var b={},c;for(c in a)b[c]=a[c];return b};goog.object.unsafeClone=function(a){var b=goog.typeOf(a);if("object"==b||"array"==b){if(a.clone)return a.clone();var b="array"==b?[]:{},c;for(c in a)b[c]=goog.object.unsafeClone(a[c]);return b}return a};goog.object.transpose=function(a){var b={},c;for(c in a)b[a[c]]=c;return b};goog.object.PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
+goog.object.extend=function(a,b){for(var c,d,e=1;e<arguments.length;e++){d=arguments[e];for(c in d)a[c]=d[c];for(var f=0;f<goog.object.PROTOTYPE_FIELDS_.length;f++)c=goog.object.PROTOTYPE_FIELDS_[f],Object.prototype.hasOwnProperty.call(d,c)&&(a[c]=d[c])}};
+goog.object.create=function(a){var b=arguments.length;if(1==b&&goog.isArray(arguments[0]))return goog.object.create.apply(null,arguments[0]);if(b%2)throw Error("Uneven number of arguments");for(var c={},d=0;d<b;d+=2)c[arguments[d]]=arguments[d+1];return c};goog.object.createSet=function(a){var b=arguments.length;if(1==b&&goog.isArray(arguments[0]))return goog.object.createSet.apply(null,arguments[0]);for(var c={},d=0;d<b;d++)c[arguments[d]]=!0;return c};
+goog.object.createImmutableView=function(a){var b=a;Object.isFrozen&&!Object.isFrozen(a)&&(b=Object.create(a),Object.freeze(b));return b};goog.object.isImmutableView=function(a){return!!Object.isFrozen&&Object.isFrozen(a)};cvox.UserEventDetail=function(a){this.command=this.category="";-1!=cvox.UserEventDetail.JUMP_COMMANDS.indexOf(a.command)&&(this.command=a.command,this.category=cvox.UserEventDetail.Category.JUMP);this.customCommand="";a.customCommand&&(this.customCommand=a.customCommand,this.category=cvox.UserEventDetail.Category.CUSTOM);this.status=cvox.UserEventDetail.Status.PENDING;switch(a.status){case cvox.UserEventDetail.Status.SUCCESS:this.status=cvox.UserEventDetail.Status.SUCCESS;break;case cvox.UserEventDetail.Status.FAILURE:this.status=
+cvox.UserEventDetail.Status.FAILURE}this.resultNode=null;a.resultNode&&cvox.DomUtil.isAttachedToDocument(a.resultNode)&&(this.resultNode=a.resultNode)};cvox.UserEventDetail.Category={JUMP:"ATJumpEvent",CUSTOM:"ATCustomEvent"};cvox.UserEventDetail.Status={PENDING:"PENDING",SUCCESS:"SUCCESS",FAILURE:"FAILURE"};cvox.UserEventDetail.JUMP_COMMANDS="nextCheckbox previousCheckbox nextRadio previousRadio nextSlider previousSlider nextGraphic previousGraphic nextButton previousButton nextComboBox previousComboBox nextEditText previousEditText nextHeading previousHeading nextHeading1 previousHeading1 nextHeading2 previousHeading2 nextHeading3 previousHeading3 nextHeading4 previousHeading4 nextHeading5 previousHeading5 nextHeading6 previousHeading6 nextLink previousLink nextMath previousMath nextTable previousTable nextList previousList nextListItem previousListItem nextFormField previousFormField nextLandmark previousLandmark nextSection previousSection nextControl previousControl".split(" ");
+cvox.UserEventDetail.prototype.createEventObject=function(){var a=document.createEvent("CustomEvent");a.initCustomEvent(this.category,!0,!0,this);return a};var extractMenuList_=function(a){for(;a!==document;){var b=a.getAttribute("contextMenuActions");if(b)return JSON.parse(b);a=a.parentNode}return null},getCurrentElement_=function(){for(var a=cvox.ChromeVox.navigationManager.getCurrentNode();a.nodeType!==Node.ELEMENT_NODE;)a=a.parentNode;return a};
+cvox.ContextMenuWidget=function(){cvox.OverlayWidget.call(this,"");this.container_=document.createElement("div");this.triggerElement_=getCurrentElement_();(this.menuList=extractMenuList_(this.triggerElement_))?this.menuList.forEach(goog.bind(function(a){if(a.desc||a.cmd){var b=a.desc;a=a.cmd;var c=document.createElement("p");c.id=a;c.textContent=b;c.setAttribute("role","menuitem");this.container_.appendChild(c)}},this)):console.log("No context menu found.")};goog.inherits(cvox.ContextMenuWidget,cvox.OverlayWidget);
+cvox.ContextMenuWidget.prototype.show=function(){this.menuList&&(cvox.ContextMenuWidget.superClass_.show.call(this),this.host_.appendChild(this.container_))};cvox.ContextMenuWidget.prototype.getNameMsg=function(){return["context_menu_intro"]};
+cvox.ContextMenuWidget.prototype.onKeyDown=function(a){if(13==a.keyCode){var b=cvox.ChromeVox.navigationManager.getCurrentNode(),b=b.parentNode.id,b=new cvox.UserEventDetail({customCommand:b}),b=b.createEventObject();this.triggerElement_.dispatchEvent(b);this.hide();a.preventDefault();a.stopPropagation();return!0}return cvox.ContextMenuWidget.superClass_.onKeyDown.call(this,a)};cvox.NodeSearchWidget=function(a,b){this.typeMsg_=a;this.predicate_=b;cvox.SearchWidget.call(this)};goog.inherits(cvox.NodeSearchWidget,cvox.SearchWidget);cvox.NodeSearchWidget.prototype.getNameMsg=function(){return["choice_widget_name",[cvox.ChromeVox.msgs.getMsg(this.typeMsg_)]]};cvox.NodeSearchWidget.prototype.getHelpMsg=function(){return"choice_widget_help"};cvox.NodeSearchWidget.prototype.getPredicate=function(){return this.predicate_};
+cvox.NodeSearchWidget.create=function(a,b){return new cvox.NodeSearchWidget(a,b)};cvox.SelectWidget=function(a){cvox.OverlayWidget.call(this,"");this.selectNode_=a};goog.inherits(cvox.SelectWidget,cvox.OverlayWidget);
+cvox.SelectWidget.prototype.show=function(){cvox.SelectWidget.superClass_.show.call(this);var a=document.createElement("div");a.setAttribute("role","menu");for(var b=0,c=null;c=this.selectNode_.options[b];b++){var d=document.createElement("p");d.innerHTML=c.innerHTML;d.id=b;d.setAttribute("role","menuitem");a.appendChild(d)}this.host_.appendChild(a);b=this.selectNode_.selectedIndex;"number"==typeof b&&cvox.ChromeVox.syncToNode(a.children[b],!0)};
+cvox.SelectWidget.prototype.hide=function(){var a=document.createEvent("Event");a.initEvent("change",!1,!1);this.selectNode_.dispatchEvent(a);cvox.SelectWidget.superClass_.hide.call(this,!0)};cvox.SelectWidget.prototype.onNavigate=function(){var a=this;cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(){var b=cvox.ChromeVox.navigationManager.getCurrentNode().parentNode.id;a.selectNode_.selectedIndex=b})()};cvox.SelectWidget.prototype.getNameMsg=function(){return["aria_role_menu"]};cvox.FocusUtil=function(){};cvox.FocusUtil.INPUT_TYPE_ACCEPTS_SELECTION_TABLE={hidden:!1,text:!0,search:!0,tel:!0,url:!0,email:!0,password:!0,datetime:!1,date:!1,month:!1,week:!1,time:!1,"datetime-local":!1,number:!1,range:!1,color:!1,checkbox:!1,radio:!1,file:!1,submit:!1,image:!1,reset:!1,button:!1};
+cvox.FocusUtil.isFocusInTextInputField=function(){var a=document.activeElement;return a?a.isContentEditable||"textbox"==a.getAttribute("role")?!0:"true"==a.getAttribute("readOnly")?!1:"TEXTAREA"===a.tagName||"SELECT"===a.tagName?!0:"INPUT"===a.tagName?a.hasAttribute("type")?(a=a.getAttribute("type").toLowerCase(),cvox.FocusUtil.INPUT_TYPE_ACCEPTS_SELECTION_TABLE[a]):!0:!1:!1};cvox.SpokenListBuilder=function(){this.list_=[]};cvox.SpokenListBuilder.prototype.flush=function(a){this.list_.push([a,cvox.AbstractTts.QUEUE_MODE_FLUSH]);return this};cvox.SpokenListBuilder.prototype.build=function(){return this.list_};cvox.RunnerInterface=function(){};cvox.RunnerInterface.prototype.setFocus=function(){};cvox.AbstractTestCase=function(){};cvox.TestTts=function(){cvox.AbstractTts.call(this);this.utterances_=[]};goog.inherits(cvox.TestTts,cvox.AbstractTts);cvox.TestTts.prototype.sentinelText_="@@@STOP@@@";cvox.TestTts.prototype.speak=function(a,b,c){this.utterances_.push({text:a,queueMode:b});c&&void 0!=c.endCallback&&(a=this.utterances_.length,this.utterances_[a-1].text!=this.sentinelText_&&c.endCallback())};cvox.HostFactory.ttsConstructor=cvox.TestTts;cvox.AutoRunner=function(){new cvox.TestTts};cvox.AutoRunner.TestSummary=function(a,b,c,d){this.tag=a;this.status=c;this.scope=d};cvox.AutoRunner.PASS="pass";cvox.AutoRunner.FAIL="fail";cvox.AutoRunner.prototype.setFocus=function(a){document.getElementById(a).focus();return this};cvox.ChromeVoxUserCommands={};cvox.ChromeVoxUserCommands.init_=function(){if(!cvox.ChromeVoxUserCommands.commands){cvox.ChromeVoxUserCommands.commands={};for(var a in cvox.CommandStore.CMD_WHITELIST)cvox.ChromeVoxUserCommands.commands[a]=cvox.ChromeVoxUserCommands.createCommand_(a)}};cvox.ChromeVoxUserCommands.wasMouseClicked=!1;cvox.ChromeVoxUserCommands.enableCommandDispatchingToPage=!0;
+cvox.ChromeVoxUserCommands.handleTabAction_=function(){cvox.ChromeVox.tts.stop();if(!cvox.ChromeVox.navigationManager.resolve(cvox.DomUtil.isFocusable))return cvox.ChromeVox.navigationManager.setFocus(),!1;var a=cvox.ChromeVoxUserCommands.isFocusedOnLinkControl_();if(a)return!0;var b=a=null,b=window.getSelection();cvox.ChromeVoxUserCommands.wasMouseClicked?cvox.ChromeVoxUserCommands.wasMouseClicked=!1:b=null;null==b||null==b.anchorNode||null==b.focusNode?(a=cvox.ChromeVox.navigationManager.getCurrentNode(),
+b=cvox.ChromeVox.navigationManager.getCurrentNode()):(a=b.anchorNode,b=b.focusNode);if(null==a||null==b)return!0;if(cvox.DomUtil.isFocusable(a))return a.focus(),!0;if(cvox.DomUtil.isFocusable(b))return b.focus(),!0;if(cvox.DomUtil.isFocusable(a.parentNode))return a.parentNode.focus(),!0;if(cvox.DomUtil.isFocusable(b.parentNode))return b.parentNode.focus(),!0;b=cvox.ChromeVoxUserCommands.createTabDummySpan_();a.parentNode.insertBefore(b,a);b.focus();return!0};
+cvox.ChromeVoxUserCommands.isFocusedOnLinkControl_=function(){var a="A";return document.activeElement.tagName==a||cvox.DomUtil.isControl(document.activeElement)?!0:!1};cvox.ChromeVoxUserCommands.removeTabDummySpan=function(){var a=document.getElementById("ChromeVoxTabDummySpan");a&&document.activeElement!=a&&a.parentNode.removeChild(a)};cvox.ChromeVoxUserCommands.createTabDummySpan_=function(){var a=document.createElement("span");a.id="ChromeVoxTabDummySpan";a.tabIndex=-1;return a};
+cvox.ChromeVoxUserCommands.createCommand_=function(a){return goog.bind(function(b){b=cvox.ChromeVoxUserCommands.lookupCommand_(a,b);return cvox.ChromeVoxUserCommands.dispatchCommand_(b)},cvox.ChromeVoxUserCommands)};
+cvox.ChromeVoxUserCommands.dispatchCommand_=function(a){if(cvox.Widget.isActive()||!cvox.PlatformUtil.matchesPlatform(a.platformFilter)||a.skipInput&&cvox.FocusUtil.isFocusInTextInputField())return!0;if(cvox.ChromeVoxUserCommands.enableCommandDispatchingToPage&&-1!=cvox.UserEventDetail.JUMP_COMMANDS.indexOf(a.command)){a=new cvox.UserEventDetail({command:a.command});a=a.createEventObject();var b=cvox.ChromeVox.navigationManager.getCurrentNode();b||(b=document.body);b.dispatchEvent(a);return!1}return cvox.ChromeVoxUserCommands.doCommand_(a)};
+cvox.ChromeVoxUserCommands.doCommand_=function(a){if(cvox.Widget.isActive()||!cvox.PlatformUtil.matchesPlatform(a.platformFilter)||a.skipInput&&cvox.FocusUtil.isFocusInTextInputField()||a.disallowOOBE&&document.URL.match(/^chrome:\/\/oobe/i))return!0;var b=a.command;a.allowEvents||cvox.ChromeVoxEventSuspender.enterSuspendEvents();a.disallowContinuation&&cvox.ChromeVox.navigationManager.stopReading(!0);a.forward?cvox.ChromeVox.navigationManager.setReversed(!1):a.backward&&cvox.ChromeVox.navigationManager.setReversed(!0);
+a.findNext&&(b="find",a.announce=!0);var c="",d="",e=!1;switch(b){case "handleTab":case "handleTabPrev":e=cvox.ChromeVoxUserCommands.handleTabAction_();break;case "forward":case "backward":e=!cvox.ChromeVox.navigationManager.navigate();break;case "right":case "left":cvox.ChromeVox.navigationManager.subnavigate();break;case "find":if(!a.findNext)throw"Invalid find command.";var f=cvox.CommandStore.NODE_INFO_MAP[a.findNext],g=f.predicate,h=cvox.DomPredicates[g],k="",l="";a.forward?(l=cvox.ChromeVox.msgs.getMsg("wrapped_to_top"),
+k=cvox.ChromeVox.msgs.getMsg(f.forwardError)):a.backward&&(l=cvox.ChromeVox.msgs.getMsg("wrapped_to_bottom"),k=cvox.ChromeVox.msgs.getMsg(f.backwardError));var f=null,m=a.status||cvox.UserEventDetail.Status.PENDING,p=a.resultNode||null;switch(m){case cvox.UserEventDetail.Status.SUCCESS:p&&cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(p,!0);break;case cvox.UserEventDetail.Status.FAILURE:d=k;break;default:f=cvox.ChromeVox.navigationManager.findNext(h,g),f||(cvox.ChromeVox.navigationManager.saveSel(),
+d=l,cvox.ChromeVox.navigationManager.syncToBeginning(),cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),f=cvox.ChromeVox.navigationManager.findNext(h,g,!0),f||(d=k,cvox.ChromeVox.navigationManager.restoreSel()))}f&&"IFRAME"==f.start.node.tagName&&(a.announce=!1);break;case "previousGranularity":cvox.ChromeVox.navigationManager.makeLessGranular(!0);d=cvox.ChromeVox.navigationManager.getGranularityMsg();break;case "nextGranularity":cvox.ChromeVox.navigationManager.makeMoreGranular(!0);d=
+cvox.ChromeVox.navigationManager.getGranularityMsg();break;case "previousCharacter":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.CHARACTER);break;case "nextCharacter":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.CHARACTER);break;case "previousWord":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.WORD);break;case "nextWord":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.WORD);
+break;case "previousSentence":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.SENTENCE);break;case "nextSentence":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.SENTENCE);break;case "previousLine":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.LINE);break;case "nextLine":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.LINE);break;case "previousObject":cvox.ChromeVox.navigationManager.navigate(!1,
+cvox.NavigationShifter.GRANULARITIES.OBJECT);break;case "nextObject":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.OBJECT);break;case "previousGroup":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.GROUP);break;case "nextGroup":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.GROUP);break;case "previousRow":case "previousCol":b="previousRow"==b?"nextRow":"nextCol";case "nextRow":case "nextCol":cvox.ChromeVox.navigationManager.performAction("enterShifterSilently");
+cvox.ChromeVox.navigationManager.performAction(b);break;case "moveToStartOfLine":case "moveToEndOfLine":cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.LINE);cvox.ChromeVox.navigationManager.sync();cvox.ChromeVox.navigationManager.collapseSelection();break;case "readFromHere":cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0,!0);cvox.ChromeVox.navigationManager.startReading(cvox.AbstractTts.QUEUE_MODE_FLUSH);break;case "cycleTypingEcho":break;
+case "jumpToTop":case cvox.BrailleKeyCommand.TOP:cvox.ChromeVox.navigationManager.syncToBeginning();break;case "jumpToBottom":case cvox.BrailleKeyCommand.BOTTOM:cvox.ChromeVox.navigationManager.syncToBeginning();break;case "stopSpeech":cvox.ChromeVox.navigationManager.stopReading(!0);break;case "toggleKeyboardHelp":cvox.KeyboardHelpWidget.getInstance().toggle();break;case "help":cvox.ChromeVox.tts.stop();break;case "contextMenu":g=cvox.ChromeVox.navigationManager.getCurrentNode();"SELECT"!=g.tagName||
+g.multiple?(g=new cvox.ContextMenuWidget,g.toggle()):(new cvox.SelectWidget(g)).show();break;case "showBookmarkManager":break;case "showOptionsPage":cvox.ChromeVox.tts.stop();break;case "showKbExplorerPage":cvox.ChromeVox.tts.stop();break;case "readLinkURL":g=document.activeElement;h=window.getSelection().anchorNode;k="";"A"==g.tagName?k=cvox.DomUtil.getLinkURL(g):h&&(k=cvox.DomUtil.getLinkURL(h.parentNode));""!=k?cvox.ChromeVox.tts.speak(k):cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("no_url_found"));
+break;case "readCurrentTitle":cvox.ChromeVox.tts.speak(document.title);break;case "readCurrentURL":cvox.ChromeVox.tts.speak(document.URL);break;case "performDefaultAction":cvox.DomPredicates.linkPredicate([document.activeElement])&&(a.announce=!0,cvox.DomUtil.isInternalLink(document.activeElement)&&(cvox.DomUtil.syncInternalLink(document.activeElement),cvox.ChromeVox.navigationManager.sync()));break;case "forceClickOnCurrentItem":d=cvox.ChromeVox.msgs.getMsg("element_clicked");g=cvox.ChromeVox.navigationManager.getCurrentNode();
+cvox.DomUtil.clickElem(g,!1,!1);break;case "forceDoubleClickOnCurrentItem":d=cvox.ChromeVox.msgs.getMsg("element_double_clicked");g=cvox.ChromeVox.navigationManager.getCurrentNode();cvox.DomUtil.clickElem(g,!1,!1,!0);break;case "toggleChromeVox":break;case "fullyDescribe":g=cvox.ChromeVox.navigationManager.getFullDescription();cvox.ChromeVox.navigationManager.speakDescriptionArray(g,cvox.AbstractTts.QUEUE_MODE_FLUSH,null);break;case "speakTimeAndDate":g=new Date;cvox.ChromeVox.tts.speak(g.toLocaleTimeString()+
+", "+g.toLocaleDateString());break;case "toggleSelection":d=cvox.ChromeVox.navigationManager.togglePageSel();d=cvox.ChromeVox.msgs.getMsg(d?"begin_selection":"end_selection");break;case "startHistoryRecording":cvox.History.getInstance().startRecording();break;case "stopHistoryRecording":cvox.History.getInstance().stopRecording();break;case "enableConsoleTts":cvox.ConsoleTts.getInstance().setEnabled(!0);break;case "goToFirstCell":case "goToLastCell":case "goToRowFirstCell":case "goToRowLastCell":case "goToColFirstCell":case "goToColLastCell":case "announceHeaders":case "speakTableLocation":case "exitShifterContent":cvox.DomPredicates.tablePredicate(cvox.DomUtil.getAncestors(cvox.ChromeVox.navigationManager.getCurrentNode()))&&
+cvox.ChromeVox.navigationManager.performAction(b)||(c="not_inside_table");break;case "enterShifter":case "exitShifter":cvox.ChromeVox.navigationManager.performAction(b);break;case "decreaseTtsRate":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.RATE,!1);break;case "increaseTtsRate":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.RATE,!0);break;case "decreaseTtsPitch":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.PITCH,!1);break;case "increaseTtsPitch":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.PITCH,
+!0);break;case "decreaseTtsVolume":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.VOLUME,!1);break;case "increaseTtsVolume":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.VOLUME,!0);break;case "cyclePunctuationEcho":break;case "toggleStickyMode":break;case "toggleKeyPrefix":cvox.ChromeVox.keyPrefixOn=!cvox.ChromeVox.keyPrefixOn;break;case "toggleSearchWidget":cvox.SearchWidget.getInstance().toggle();break;case "toggleEarcons":d=cvox.ChromeVox.earcons.toggle()?cvox.ChromeVox.msgs.getMsg("earcons_on"):
+cvox.ChromeVox.msgs.getMsg("earcons_off");break;case "showHeadingsList":case "showLinksList":case "showFormsList":case "showTablesList":case "showLandmarksList":if(!a.nodeList)break;g=cvox.CommandStore.NODE_INFO_MAP[a.nodeList];cvox.NodeSearchWidget.create(g.typeMsg,cvox.DomPredicates[g.predicate]).show();break;case "openLongDesc":g=cvox.ChromeVox.navigationManager.getCurrentNode();cvox.DomUtil.hasLongDesc(g)||cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("no_long_desc"),cvox.AbstractTts.QUEUE_MODE_FLUSH,
+cvox.AbstractTts.PERSONALITY_ANNOTATION);break;case "pauseAllMedia":k=document.getElementsByTagName("VIDEO");for(g=0;h=k[g];g++)h.pause();k=document.getElementsByTagName("AUDIO");for(g=0;h=k[g];g++)h.pause();break;case "toggleSemantics":cvox.TraverseMath.toggleSemantic()?cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("semantics_on")):cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("semantics_off"));break;case cvox.BrailleKeyCommand.ROUTING:g=cvox.ChromeVox.navigationManager.getBraille();
+g=g.text.getSpans(a.displayPosition||0);g=g.filter(function(a){return a instanceof Node})[0];cvox.DomUtil.clickElem(g||cvox.ChromeVox.navigationManager.getCurrentNode(),!1,!0);break;case cvox.BrailleKeyCommand.PAN_LEFT:case cvox.BrailleKeyCommand.LINE_UP:case cvox.BrailleKeyCommand.PAN_RIGHT:case cvox.BrailleKeyCommand.LINE_DOWN:cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.LINE);break;case "debug":break;case "nop":break;default:throw"Command behavior not defined: "+
+b;}""!=c?cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg(c),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION):cvox.ChromeVox.navigationManager.isReading()?a.disallowContinuation?cvox.ChromeVox.navigationManager.stopReading(!0):"readFromHere"!=b&&cvox.ChromeVox.navigationManager.skip():a.announce&&cvox.ChromeVox.navigationManager.finishNavCommand(d);a.allowEvents||cvox.ChromeVoxEventSuspender.exitSuspendEvents();return!!a.doDefault||e};
+cvox.ChromeVoxUserCommands.handleChromeVoxUserEvent=function(a){a=new cvox.UserEventDetail(a.detail);a.command&&cvox.ChromeVoxUserCommands.doCommand_(cvox.ChromeVoxUserCommands.lookupCommand_(a.command,a))};cvox.ChromeVoxUserCommands.lookupCommand_=function(a,b){var c=cvox.CommandStore.CMD_WHITELIST[a];if(!c)throw"Invalid command: "+a;c=goog.object.clone(c);c.command=a;b&&goog.object.extend(c,b);return c};cvox.ChromeVoxUserCommands.init_();cvox.ChromeVoxKbHandler={};cvox.ChromeVoxKbHandler.loadKeyToFunctionsTable=function(a){window.JSON&&(cvox.ChromeVoxKbHandler.handlerKeyMap=cvox.KeyMap.fromJSON(a))};cvox.ChromeVoxKbHandler.sortKeyToFunctionsTable_=function(a){function b(a,b){return a[0].length<b[0].length?-1:b[0].length<a[0].length?1:a[0].localeCompare(b[0])}var c=[],d;for(d in a)c.push([d,a[d]]);c.sort(b);return c};
+cvox.ChromeVoxKbHandler.basicKeyDownActionsListener=function(a){var b=cvox.KeyUtil.keyEventToKeySequence(a);a=void 0!=cvox.ChromeVoxKbHandler.handlerKeyMap?cvox.ChromeVoxKbHandler.handlerKeyMap.commandForKey(b):null;if(!a)return!cvox.KeyUtil.sequencing;if(!cvox.ChromeVox.isActive&&"toggleChromeVox"!=a)return!0;var c=!0,d=cvox.ChromeVoxUserCommands.commands[a];d?(b=cvox.History.getInstance(),b.enterUserCommand(a),c=d(),b.exitUserCommand(a)):b.cvoxModifier&&(c=!1);cvox.ChromeVox.entireDocumentIsHidden&&
+(c=!0);return c};cvox.LiveRegions=function(){};cvox.LiveRegions.pageLoadTime=null;cvox.LiveRegions.INITIAL_SILENCE_MS=2E3;cvox.LiveRegions.lastAnnouncedMap={};cvox.LiveRegions.MAX_DISCARD_DUPS_MS=2E3;cvox.LiveRegions.lastAnnouncedTime=null;cvox.LiveRegions.nodesAlreadyHandled=[];
+cvox.LiveRegions.init=function(a,b,c){void 0==b&&(b=cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.LiveRegions.pageLoadTime=a;if(c||!document.hasFocus())return!1;var d=!1;a=cvox.AriaUtil.getLiveRegions(document.body);for(c=0;c<a.length;c++)cvox.LiveRegions.handleOneChangedNode(a[c],a[c],!1,!1,function(a,c){a||b!=cvox.AbstractTts.QUEUE_MODE_FLUSH||(b=cvox.AbstractTts.QUEUE_MODE_QUEUE);var g=new cvox.NavigationSpeaker;g.speakDescriptionArray(c,b,null);d=!0});cvox.Interframe.addListener(function(a){if("speakLiveRegion"==
+a.command)for(var b=document.getElementsByTagName("iframe"),c=0,d;d=b[c];c++)if(d.src==a.src){if(!cvox.DomUtil.isVisible(d))break;d=JSON.parse(a.content);for(var k=[],l=0,m;m=d[l];l++)k.push(new cvox.NavDescription(m));(new cvox.NavigationSpeaker).speakDescriptionArray(k,a.queueMode,null)}});return d};
+cvox.LiveRegions.processMutations=function(a,b){cvox.LiveRegions.nodesAlreadyHandled=[];a.forEach(function(a){if(!a.target.hasAttribute||!a.target.hasAttribute("cvoxIgnore")){if(a.addedNodes)for(var d=0;d<a.addedNodes.length;d++)a.addedNodes[d].hasAttribute&&a.addedNodes[d].hasAttribute("cvoxIgnore")||cvox.LiveRegions.handleOneChangedNode(a.addedNodes[d],a.target,!1,!0,b);if(a.removedNodes)for(d=0;d<a.removedNodes.length;d++)a.removedNodes[d].hasAttribute&&a.removedNodes[d].hasAttribute("cvoxIgnore")||
+cvox.LiveRegions.handleOneChangedNode(a.removedNodes[d],a.target,!0,!1,b);"characterData"==a.type&&cvox.LiveRegions.handleOneChangedNode(a.target,a.target,!1,!1,b);if("class"==a.attributeName||"style"==a.attributeName||"hidden"==a.attributeName){var e=a.attributeName,d=a.target,f=!cvox.DomUtil.isVisible(d),g=document.createElement("div");g.setAttribute("cvoxIgnore","1");g.setAttribute("class",d.getAttribute("class"));g.setAttribute("style",d.getAttribute("style"));g.setAttribute("hidden",d.getAttribute("hidden"));
+g.setAttribute(e,a.oldValue);e=!0;d.parentElement?(d.parentElement.appendChild(g),e=!cvox.DomUtil.isVisible(g),d.parentElement.removeChild(g)):e=!cvox.DomUtil.isVisible(g);!0===e&&!1===f?cvox.LiveRegions.handleOneChangedNode(a.target,a.target,!1,!0,b):!1===e&&!0===f&&cvox.LiveRegions.handleOneChangedNode(a.target,a.target,!0,!1,b)}}});cvox.LiveRegions.nodesAlreadyHandled.length=0};
+cvox.LiveRegions.handleOneChangedNode=function(a,b,c,d,e){var f=c?b:a;f instanceof Element||(f=f.parentElement);for(;f&&!cvox.AriaUtil.getAriaLive(f);)f=f.parentElement;if(!f){if(d&&a!=document.body)for(a=cvox.AriaUtil.getLiveRegions(a),d=0;d<a.length;d++)cvox.LiveRegions.handleOneChangedNode(a[d],b,c,!1,e)}else if(!(0<=cvox.LiveRegions.nodesAlreadyHandled.indexOf(a)||(cvox.LiveRegions.nodesAlreadyHandled.push(a),cvox.AriaUtil.getAriaBusy(f)))){if(c){if(!cvox.AriaUtil.getAriaRelevant(f,"removals"))return}else if(!cvox.AriaUtil.getAriaRelevant(f,
+"additions"))return;cvox.LiveRegions.announceChange(a,f,c,e)}};
+cvox.LiveRegions.announceChange=function(a,b,c,d){var e=new Date-cvox.LiveRegions.pageLoadTime;if(!("alert"!=cvox.AriaUtil.getRoleAttribute(b)&&e<cvox.LiveRegions.INITIAL_SILENCE_MS)&&cvox.DomUtil.isVisible(b)){if(a!=b)for(var f=a.parentElement;f;){(cvox.AriaUtil.getAriaAtomic(f)||cvox.AriaUtil.isLeafElement(f)||cvox.AriaUtil.isControlWidget(f))&&!cvox.AriaUtil.isCompositeControl(f)&&(a=f);if(f==b)break;f=f.parentElement}a=cvox.LiveRegions.getNavDescriptionsRecursive(a);if(0!=a.length){c&&(a=[new cvox.NavDescription({context:cvox.ChromeVox.msgs.getMsg("live_regions_removed"),
+text:""})].concat(a));if("alert"==cvox.AriaUtil.getRoleAttribute(b)&&e<cvox.LiveRegions.INITIAL_SILENCE_MS){c="";for(e=0;e<a.length;e++)c+=a[e].text,c+=a[e].userValue;if(""==cvox.DomUtil.collapseWhitespace(c))return}c=new Date;for(var g in cvox.LiveRegions.lastAnnouncedMap)c-cvox.LiveRegions.lastAnnouncedMap[g]>cvox.LiveRegions.MAX_DISCARD_DUPS_MS&&delete cvox.LiveRegions.lastAnnouncedMap[g];g=a.reduce(function(a,b){return a+"|"+b.text},"");cvox.LiveRegions.lastAnnouncedMap[g]||(cvox.LiveRegions.lastAnnouncedMap[g]=
+c,b="assertive"==cvox.AriaUtil.getAriaLive(b),cvox.Interframe.isIframe()&&!document.hasFocus()?cvox.Interframe.sendMessageToParentWindow({command:"speakLiveRegion",content:JSON.stringify(a),queueMode:b?0:1,src:window.location.href}):d(b,a))}}};
+cvox.LiveRegions.getNavDescriptionsRecursive=function(a){return cvox.AriaUtil.getAriaAtomic(a)||cvox.DomUtil.isLeafNode(a)?(a=cvox.DescriptionUtil.getDescriptionFromAncestors([a],!0,cvox.ChromeVox.verbosity),a.isEmpty()?[]:[a]):cvox.DescriptionUtil.getFullDescriptionsFromChildren(null,a)};cvox.LiveRegionsDeprecated=function(){};cvox.LiveRegionsDeprecated.trackedRegions=[];cvox.LiveRegionsDeprecated.previousRegionValue=[];cvox.LiveRegionsDeprecated.pageLoadTime=null;cvox.LiveRegionsDeprecated.INITIAL_SILENCE_MS=2E3;
+cvox.LiveRegionsDeprecated.init=function(a,b,c){void 0==b&&(b=cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.LiveRegionsDeprecated.pageLoadTime=a;a=!1;for(var d=cvox.AriaUtil.getLiveRegions(document.body),e=0;e<d.length;e++)cvox.LiveRegionsDeprecated.updateLiveRegion(d[e],b,c)&&(a=!0,b=cvox.AbstractTts.QUEUE_MODE_QUEUE);return a};
+cvox.LiveRegionsDeprecated.updateLiveRegion=function(a,b,c){if(cvox.AriaUtil.getAriaBusy(a)||!cvox.DomUtil.isVisible(a))return!1;var d=cvox.LiveRegionsDeprecated.trackedRegions.indexOf(a),e;0<=d?e=cvox.LiveRegionsDeprecated.previousRegionValue[d]:(d=cvox.LiveRegionsDeprecated.trackedRegions.length,e=[],cvox.LiveRegionsDeprecated.trackedRegions.push(a),cvox.LiveRegionsDeprecated.previousRegionValue.push([]));var f=cvox.LiveRegionsDeprecated.buildCurrentLiveRegionValue(a),g=new Date-cvox.LiveRegionsDeprecated.pageLoadTime;
+if("alert"!=cvox.AriaUtil.getRoleAttribute(a)&&g<cvox.LiveRegionsDeprecated.INITIAL_SILENCE_MS)return cvox.LiveRegionsDeprecated.previousRegionValue[d]=f,!1;if("alert"==cvox.AriaUtil.getRoleAttribute(a)&&g<cvox.LiveRegionsDeprecated.INITIAL_SILENCE_MS){for(var h="",g=0;g<f.length;g++)h+=f[g].text,h+=f[g].userValue;if(""==cvox.DomUtil.collapseWhitespace(h))return cvox.LiveRegionsDeprecated.previousRegionValue[d]=f,!1}for(var k={},g=0;g<e.length;g++)k[e[g].toString()]=!0;for(var l={},g=0;g<f.length;g++)l[f[g].toString()]=
+!0;h=[];if(cvox.AriaUtil.getAriaRelevant(a,"additions"))for(g=0;g<f.length;g++)k[f[g].toString()]||h.push(f[g]);k=[];if(cvox.AriaUtil.getAriaRelevant(a,"removals"))for(g=0;g<e.length;g++)l[e[g].toString()]||k.push(e[g]);e=[];e=0==h.length&&0<k.length?[new cvox.NavDescription({context:cvox.ChromeVox.msgs.getMsg("live_regions_removed"),text:""})].concat(k):h;cvox.LiveRegionsDeprecated.previousRegionValue[d]=f;if(c||0==e.length)return!1;a=cvox.AriaUtil.getAriaLive(a);"polite"==a&&(b=cvox.AbstractTts.QUEUE_MODE_QUEUE);
+for(g=0;g<e.length;g++)e[g].speak(b),b=cvox.AbstractTts.QUEUE_MODE_QUEUE;return!0};
+cvox.LiveRegionsDeprecated.buildCurrentLiveRegionValue=function(a){if(cvox.AriaUtil.getAriaAtomic(a)||cvox.DomUtil.isLeafNode(a)){var b=cvox.DescriptionUtil.getDescriptionFromAncestors([a],!0,cvox.ChromeVox.verbosity);return b.isEmpty()?[]:[b]}var c=[],b=cvox.DescriptionUtil.getDescriptionFromAncestors([a],!1,cvox.ChromeVox.verbosity);b.isEmpty()||c.push(b);for(b=0;b<a.childNodes.length;b++){var d=a.childNodes[b];cvox.DomUtil.isVisible(d,{checkAncestors:!1})&&!cvox.AriaUtil.isHidden(d)&&(d=cvox.LiveRegionsDeprecated.buildCurrentLiveRegionValue(d),
+c=c.concat(d))}return c};cvox.ChromeVoxEventWatcherUtil={};cvox.ChromeVoxEventWatcher=function(){};cvox.ChromeVoxEventWatcher.MAX_WAIT_TIME_MS_=50;cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_=10;cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_DURATION_=1E3;cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_COUNT_LIMIT_=3;cvox.ChromeVoxEventWatcher.MAX_LIVE_REGIONS_=5;cvox.ChromeVoxEventWatcher.shouldEchoKeys=!0;cvox.ChromeVoxEventWatcher.processing_=!1;
+cvox.ChromeVoxEventWatcher.init=function(a){cvox.ChromeVoxEventWatcher.lastFocusedNode=null;cvox.ChromeVoxEventWatcher.announcedMouseOverNode=null;cvox.ChromeVoxEventWatcher.pendingMouseOverNode=null;cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null;cvox.ChromeVoxEventWatcher.lastFocusedNodeValue=null;cvox.ChromeVoxEventWatcher.eventToEat=null;cvox.ChromeVoxEventWatcher.currentTextControl=null;cvox.ChromeVoxEventWatcher.currentTextHandler=null;cvox.ChromeVoxEventWatcher.lastKeypressTime=0;cvox.ChromeVoxEventWatcher.listeners_=
+[];cvox.ChromeVoxEventWatcher.mutationObserver_=null;cvox.ChromeVoxEventWatcher.focusFollowsMouse=!1;cvox.ChromeVoxEventWatcher.mouseoverDelayMs=500;cvox.ChromeVoxEventWatcher.events_=[];cvox.ChromeVoxEventWatcher.lastEventTime=0;cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime=-1;cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!1;cvox.ChromeVoxEventWatcher.readyCallbacks_=[];cvox.ChromeVox.searchKeyHeld=!1;cvox.ChromeVoxEventWatcher.textMutationObserver_=null;cvox.ChromeVoxEventWatcher.addEventListeners_(a);
+cvox.ChromeVoxEventWatcher.lastSubtreeModifiedEventBurstTime_=0;cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_=0};cvox.ChromeVoxEventWatcher.storeOn=function(a){a.searchKeyHeld=cvox.ChromeVox.searchKeyHeld};cvox.ChromeVoxEventWatcher.readFrom=function(a){cvox.ChromeVox.searchKeyHeld=a.searchKeyHeld};
+cvox.ChromeVoxEventWatcher.addEvent=function(a){if(!cvox.ChromeVox.isActive||document.webkitHidden)return!1;cvox.ChromeVoxEventWatcher.events_.push(a);cvox.ChromeVoxEventWatcher.lastEventTime=(new Date).getTime();-1==cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime&&(cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime=(new Date).getTime());cvox.ChromeVoxEventWatcher.queueProcessingScheduled_||(cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!0,window.setTimeout(cvox.ChromeVoxEventWatcher.processQueue_,
+cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_))};cvox.ChromeVoxEventWatcher.addReadyCallback=function(a){cvox.ChromeVoxEventWatcher.readyCallbacks_.push(a);cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_()};cvox.ChromeVoxEventWatcher.hasPendingEvents_=function(){return-1!=cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime||cvox.ChromeVoxEventWatcher.queueProcessingScheduled_};cvox.ChromeVoxEventWatcher.readyCallbackRunning_=!1;
+cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_=function(){cvox.ChromeVoxEventWatcher.readyCallbackRunning_||(cvox.ChromeVoxEventWatcher.readyCallbackRunning_=!0,window.setTimeout(function(){cvox.ChromeVoxEventWatcher.readyCallbackRunning_=!1;!cvox.ChromeVoxEventWatcher.hasPendingEvents_()&&!cvox.ChromeVoxEventWatcher.queueProcessingScheduled_&&0<cvox.ChromeVoxEventWatcher.readyCallbacks_.length&&(cvox.ChromeVoxEventWatcher.readyCallbacks_.shift()(),cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_())},
+5))};
+cvox.ChromeVoxEventWatcher.addEventListeners_=function(a){cvox.ChromeVoxEventWatcher.addEventListener_(a,"keydown",cvox.ChromeVoxEventWatcher.keyDownEventWatcher,!0);if(cvox.ChromeVox.isActive&&!cvox.ChromeVox.entireDocumentIsHidden)if(cvox.ChromeVoxEventWatcher.addEventListener_(a,"keypress",cvox.ChromeVoxEventWatcher.keyPressEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"keyup",cvox.ChromeVoxEventWatcher.keyUpEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,cvox.UserEventDetail.Category.JUMP,
+cvox.ChromeVoxUserCommands.handleChromeVoxUserEvent,!1),cvox.ChromeVoxEventWatcher.addEventListener_(a,"focus",cvox.ChromeVoxEventWatcher.focusEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"blur",cvox.ChromeVoxEventWatcher.blurEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"change",cvox.ChromeVoxEventWatcher.changeEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"copy",cvox.ChromeVoxEventWatcher.clipboardEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,
+"cut",cvox.ChromeVoxEventWatcher.clipboardEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"paste",cvox.ChromeVoxEventWatcher.clipboardEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"select",cvox.ChromeVoxEventWatcher.selectEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"webkitvisibilitychange",cvox.ChromeVoxEventWatcher.visibilityChangeWatcher,!0),cvox.ChromeVoxEventWatcher.events_=[],cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!1,cvox.ChromeVoxEventWatcher.addEventListener_(a,
+"mouseover",cvox.ChromeVoxEventWatcher.mouseOverEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"mouseout",cvox.ChromeVoxEventWatcher.mouseOutEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"click",cvox.ChromeVoxEventWatcher.mouseClickEventWatcher,!0),"undefined"!=typeof WebKitMutationObserver){cvox.ChromeVoxEventWatcher.mutationObserver_=new WebKitMutationObserver(cvox.ChromeVoxEventWatcher.mutationHandler);var b=null;a.documentElement?b=a.documentElement:a.document&&
+a.document.documentElement&&(b=a.document.documentElement);b&&cvox.ChromeVoxEventWatcher.mutationObserver_.observe(b,{childList:!0,attributes:!0,characterData:!0,subtree:!0,attributeOldValue:!0,characterDataOldValue:!0})}else cvox.ChromeVoxEventWatcher.addEventListener_(a,"DOMSubtreeModified",cvox.ChromeVoxEventWatcher.subtreeModifiedEventWatcher,!0)};
+cvox.ChromeVoxEventWatcher.cleanup=function(a){for(var b=0;b<cvox.ChromeVoxEventWatcher.listeners_.length;b++){var c=cvox.ChromeVoxEventWatcher.listeners_[b];a.removeEventListener(c.type,c.listener,c.useCapture)}cvox.ChromeVoxEventWatcher.listeners_=[];cvox.ChromeVoxEventWatcher.currentDateHandler&&cvox.ChromeVoxEventWatcher.currentDateHandler.shutdown();cvox.ChromeVoxEventWatcher.currentTimeHandler&&cvox.ChromeVoxEventWatcher.currentTimeHandler.shutdown();cvox.ChromeVoxEventWatcher.currentMediaHandler&&
+cvox.ChromeVoxEventWatcher.currentMediaHandler.shutdown();cvox.ChromeVoxEventWatcher.mutationObserver_&&cvox.ChromeVoxEventWatcher.mutationObserver_.disconnect();cvox.ChromeVoxEventWatcher.mutationObserver_=null};cvox.ChromeVoxEventWatcher.addEventListener_=function(a,b,c,d){cvox.ChromeVoxEventWatcher.listeners_.push({type:b,listener:c,useCapture:d});a.addEventListener(b,c,d)};cvox.ChromeVoxEventWatcher.getLastFocusedNode=function(){return cvox.ChromeVoxEventWatcher.lastFocusedNode};
+cvox.ChromeVoxEventWatcher.setLastFocusedNode_=function(a){cvox.ChromeVoxEventWatcher.lastFocusedNode=a;cvox.ChromeVoxEventWatcher.lastFocusedNodeValue=a?cvox.DomUtil.getControlValueAndStateString(a):null};
+cvox.ChromeVoxEventWatcher.mutationHandler=function(a){if(cvox.ChromeVoxEventSuspender.areEventsSuspended())return!0;cvox.ChromeVox.navigationManager.updateIndicatorIfChanged();cvox.LiveRegions.processMutations(a,function(a,c){var d=new window.Event("LiveRegion");d.navDescriptions=c;d.assertive=a;cvox.ChromeVoxEventWatcher.addEvent(d);return!0})};
+cvox.ChromeVoxEventWatcher.mouseClickEventWatcher=function(a){cvox.PlatformUtil.matchesPlatform(cvox.PlatformFilter.WML)&&!a.fromCvox&&cvox.ApiImplementation.syncToNode(a.target,!0);return cvox.ChromeVox.host.mustRedispatchClickEvent()&&!a.fromCvox?(cvox.ChromeVoxUserCommands.wasMouseClicked=!0,a.stopPropagation(),a.preventDefault(),cvox.Focuser.setFocus(cvox.ChromeVox.navigationManager.getCurrentNode()),cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("element_clicked"),cvox.AbstractTts.QUEUE_MODE_FLUSH,
+cvox.AbstractTts.PERSONALITY_ANNOTATION),a=cvox.ChromeVox.navigationManager.getCurrentNode(),cvox.DomUtil.clickElem(a,!1,!0),!1):cvox.ChromeVoxUserCommands.wasMouseClicked=!0};
+cvox.ChromeVoxEventWatcher.mouseOverEventWatcher=function(a){if(!cvox.ChromeVoxEventWatcher.focusFollowsMouse||cvox.DomUtil.isDescendantOfNode(cvox.ChromeVoxEventWatcher.announcedMouseOverNode,a.target)||a.target==cvox.ChromeVoxEventWatcher.pendingMouseOverNode)return!0;cvox.ChromeVoxEventWatcher.pendingMouseOverNode=a.target;cvox.ChromeVoxEventWatcher.mouseOverTimeoutId&&(window.clearTimeout(cvox.ChromeVoxEventWatcher.mouseOverTimeoutId),cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null);if(a.target.tagName&&
+"BODY"==a.target.tagName)return cvox.ChromeVoxEventWatcher.pendingMouseOverNode=null,cvox.ChromeVoxEventWatcher.announcedMouseOverNode=null,!0;cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=window.setTimeout(function(){cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null;if(a.target==cvox.ChromeVoxEventWatcher.pendingMouseOverNode){cvox.ChromeVox.navigationManager.stopReading(!0);var b=a.target;cvox.Focuser.setFocus(b);cvox.ApiImplementation.syncToNode(b,!0,cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.ChromeVoxEventWatcher.announcedMouseOverNode=
+b}},cvox.ChromeVoxEventWatcher.mouseoverDelayMs);return!0};cvox.ChromeVoxEventWatcher.mouseOutEventWatcher=function(a){a.target==cvox.ChromeVoxEventWatcher.pendingMouseOverNode&&(cvox.ChromeVoxEventWatcher.pendingMouseOverNode=null,cvox.ChromeVoxEventWatcher.mouseOverTimeoutId&&(window.clearTimeout(cvox.ChromeVoxEventWatcher.mouseOverTimeoutId),cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null));return!0};
+cvox.ChromeVoxEventWatcher.focusEventWatcher=function(a){cvox.ChromeVoxUserCommands.removeTabDummySpan();cvox.ChromeVoxEventSuspender.areEventsSuspended()?a.target&&a.target.nodeType==Node.ELEMENT_NODE&&cvox.ChromeVoxEventWatcher.setLastFocusedNode_(a.target):cvox.ChromeVoxEventWatcher.addEvent(a);return!0};
+cvox.ChromeVoxEventWatcher.focusHandler=function(a){if(a.target&&a.target.hasAttribute&&"true"==a.target.getAttribute("aria-hidden")&&"true"!=a.target.getAttribute("chromevoxignoreariahidden"))cvox.ChromeVoxEventWatcher.setLastFocusedNode_(null),cvox.ChromeVoxEventWatcher.setUpTextHandler();else if(a.target&&a.target!=window){var b=a.target,c=cvox.DomUtil.getSurroundingControl(b);if(c&&c==cvox.ChromeVoxEventWatcher.lastFocusedNode)cvox.ChromeVoxEventWatcher.handleControlChanged(b);else{c?cvox.ChromeVoxEventWatcher.setLastFocusedNode_(c):
+cvox.ChromeVoxEventWatcher.setLastFocusedNode_(b);c=cvox.ChromeVoxEventWatcher.queueMode_();if(cvox.ChromeVoxEventWatcher.getInitialVisibility()||cvox.ChromeVoxEventWatcher.handleDialogFocus(b))c=cvox.AbstractTts.QUEUE_MODE_QUEUE;cvox.ChromeVox.navigationManager.clearPageSel(!0)&&(c=cvox.AbstractTts.QUEUE_MODE_QUEUE);cvox.ApiImplementation.syncToNode(b,!document.webkitHidden,c);if(a.target.constructor==HTMLVideoElement||a.target.constructor==HTMLAudioElement)cvox.ChromeVoxEventWatcher.setUpMediaHandler_();
+else{if(a.target.hasAttribute)switch(a=a.target.getAttribute("type"),a){case "time":cvox.ChromeVoxEventWatcher.setUpTimeHandler_();return;case "date":case "month":case "week":cvox.ChromeVoxEventWatcher.setUpDateHandler_();return}cvox.ChromeVoxEventWatcher.setUpTextHandler()}}}else cvox.ChromeVoxEventWatcher.setLastFocusedNode_(null)};
+cvox.ChromeVoxEventWatcher.blurEventWatcher=function(a){window.setTimeout(function(){document.activeElement||(cvox.ChromeVoxEventWatcher.setLastFocusedNode_(null),cvox.ChromeVoxEventWatcher.addEvent(a))},0);return!0};
+cvox.ChromeVoxEventWatcher.keyDownEventWatcher=function(a){cvox.ChromeVox.isChromeOS&&91==a.keyCode&&(cvox.ChromeVox.searchKeyHeld=!0);a.searchKeyHeld=cvox.ChromeVox.searchKeyHeld&&cvox.ChromeVox.isActive;a.stickyMode=cvox.ChromeVox.isStickyOn&&cvox.ChromeVox.isActive;a.keyPrefix=cvox.ChromeVox.keyPrefixOn&&cvox.ChromeVox.isActive;cvox.ChromeVox.keyPrefixOn=!1;cvox.ChromeVoxEventWatcher.eventToEat=null;if(!cvox.ChromeVoxKbHandler.basicKeyDownActionsListener(a)||cvox.ChromeVoxEventWatcher.handleControlAction(a))return a.preventDefault(),
+a.stopPropagation(),cvox.ChromeVoxEventWatcher.eventToEat=a,!1;cvox.ChromeVoxEventWatcher.addEvent(a);return!0};cvox.ChromeVoxEventWatcher.keyUpEventWatcher=function(a){91==a.keyCode&&(cvox.ChromeVox.searchKeyHeld=!1);return cvox.ChromeVoxEventWatcher.eventToEat&&a.keyCode==cvox.ChromeVoxEventWatcher.eventToEat.keyCode?(a.stopPropagation(),a.preventDefault(),!1):!0};
+cvox.ChromeVoxEventWatcher.keyPressEventWatcher=function(a){var b=document.location.href,c=cvox.TypingEcho.shouldSpeakChar(cvox.ChromeVox.typingEcho);"undefined"!==typeof cvox.ChromeVox.keyEcho[b]&&(c=cvox.ChromeVox.keyEcho[b]);cvox.ChromeVoxEditableTextBase.eventTypingEcho&&c&&cvox.DomPredicates.editTextPredicate([document.activeElement])&&"password"!==document.activeElement.type&&(b=(new Date).getTime(),150<b-cvox.ChromeVoxEventWatcher.lastKeypressTime&&cvox.ChromeVox.tts.stop(),cvox.ChromeVoxEventWatcher.lastKeypressTime=
+b,cvox.ChromeVox.tts.speak(String.fromCharCode(a.charCode),1,{relativeRate:2}));cvox.ChromeVoxEventWatcher.addEvent(a);return cvox.ChromeVoxEventWatcher.eventToEat&&a.keyCode==cvox.ChromeVoxEventWatcher.eventToEat.keyCode?(a.preventDefault(),a.stopPropagation(),!1):!0};cvox.ChromeVoxEventWatcher.changeEventWatcher=function(a){cvox.ChromeVoxEventWatcher.addEvent(a);return!0};
+cvox.ChromeVoxEventWatcher.clipboardEventWatcher=function(a){cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg(a.type).toLowerCase());var b="";switch(a.type){case "paste":b=a.clipboardData.getData("text");break;case "copy":case "cut":b=window.getSelection().toString()}cvox.ChromeVox.tts.speak(b,cvox.AbstractTts.QUEUE_MODE_QUEUE);cvox.ChromeVox.navigationManager.clearPageSel();return!0};
+cvox.ChromeVoxEventWatcher.changeHandler=function(a){cvox.ChromeVoxEventWatcher.setUpTextHandler()||document.activeElement==a.target&&cvox.ChromeVoxEventWatcher.handleControlChanged(document.activeElement)};cvox.ChromeVoxEventWatcher.selectEventWatcher=function(a){cvox.ChromeVoxEventWatcher.addEvent(a);return!0};cvox.ChromeVoxEventWatcher.subtreeModifiedEventWatcher=function(a){if(!a||!a.target)return!0;cvox.ChromeVoxEventWatcher.addEvent(a);return!0};
+cvox.ChromeVoxEventWatcher.visibilityChangeWatcher=function(){cvox.ChromeVoxEventWatcher.initialVisibility=!document.webkitHidden;document.webkitHidden&&cvox.ChromeVox.navigationManager.stopReading(!0)};cvox.ChromeVoxEventWatcher.getInitialVisibility=function(){var a=cvox.ChromeVoxEventWatcher.initialVisibility;cvox.ChromeVoxEventWatcher.initialVisibility=!1;return a};
+cvox.ChromeVoxEventWatcher.speakLiveRegion_=function(a,b){var c=cvox.ChromeVoxEventWatcher.queueMode_();a||c!=cvox.AbstractTts.QUEUE_MODE_FLUSH||(c=cvox.AbstractTts.QUEUE_MODE_QUEUE);var d=new cvox.NavigationSpeaker;d.speakDescriptionArray(b,c,null)};
+cvox.ChromeVoxEventWatcher.subtreeModifiedHandler=function(a){var b=(new Date).getTime();if(cvox.ChromeVoxEventWatcher.lastSubtreeModifiedEventBurstTime_+cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_DURATION_>b){if(cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_++,cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_>cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_COUNT_LIMIT_)return}else cvox.ChromeVoxEventWatcher.lastSubtreeModifiedEventBurstTime_=b,cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_=
+1;if(a&&a.target)for(a=a.target,a=cvox.AriaUtil.getLiveRegions(a),b=0;b<a.length&&b<cvox.ChromeVoxEventWatcher.MAX_LIVE_REGIONS_;b++)cvox.LiveRegionsDeprecated.updateLiveRegion(a[b],cvox.ChromeVoxEventWatcher.queueMode_(),!1)};
+cvox.ChromeVoxEventWatcher.setUpTextHandler=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);if(a!=cvox.ChromeVoxEventWatcher.currentTextControl){cvox.ChromeVoxEventWatcher.currentTextControl&&(cvox.ChromeVoxEventWatcher.currentTextControl.removeEventListener("input",cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),cvox.ChromeVoxEventWatcher.currentTextControl.removeEventListener("click",
+cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),cvox.ChromeVoxEventWatcher.textMutationObserver_&&(cvox.ChromeVoxEventWatcher.textMutationObserver_.disconnect(),cvox.ChromeVoxEventWatcher.textMutationObserver_=null));cvox.ChromeVoxEventWatcher.currentTextControl=null;cvox.ChromeVoxEventWatcher.currentTextHandler=null;if(null==a)return!1;if(a.constructor==HTMLInputElement&&cvox.DomUtil.isInputTypeText(a)&&cvox.ChromeVoxEventWatcher.shouldEchoKeys)cvox.ChromeVoxEventWatcher.currentTextControl=a,cvox.ChromeVoxEventWatcher.currentTextHandler=
+new cvox.ChromeVoxEditableHTMLInput(a,cvox.ChromeVox.tts);else if(a.constructor==HTMLTextAreaElement&&cvox.ChromeVoxEventWatcher.shouldEchoKeys)cvox.ChromeVoxEventWatcher.currentTextControl=a,cvox.ChromeVoxEventWatcher.currentTextHandler=new cvox.ChromeVoxEditableTextArea(a,cvox.ChromeVox.tts);else if(a.isContentEditable||"textbox"==a.getAttribute("role"))cvox.ChromeVoxEventWatcher.currentTextControl=a,cvox.ChromeVoxEventWatcher.currentTextHandler=new cvox.ChromeVoxEditableContentEditable(a,cvox.ChromeVox.tts);
+cvox.ChromeVoxEventWatcher.currentTextControl&&(cvox.ChromeVoxEventWatcher.currentTextControl.addEventListener("input",cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),cvox.ChromeVoxEventWatcher.currentTextControl.addEventListener("click",cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),window.WebKitMutationObserver&&(cvox.ChromeVoxEventWatcher.textMutationObserver_=new WebKitMutationObserver(cvox.ChromeVoxEventWatcher.onTextMutation),cvox.ChromeVoxEventWatcher.textMutationObserver_.observe(cvox.ChromeVoxEventWatcher.currentTextControl,
+{childList:!0,attributes:!0,subtree:!0,attributeOldValue:!1,characterDataOldValue:!1})),cvox.ChromeVoxEventSuspender.areEventsSuspended()||cvox.ChromeVox.navigationManager.updateSel(cvox.CursorSelection.fromNode(cvox.ChromeVoxEventWatcher.currentTextControl)));return null!=cvox.ChromeVoxEventWatcher.currentTextHandler}};cvox.ChromeVoxEventWatcher.handleTextChanged=function(a){if(cvox.ChromeVoxEventWatcher.currentTextHandler){var b=cvox.ChromeVoxEventWatcher.currentTextHandler;b.update(a);return!0}return!1};
+cvox.ChromeVoxEventWatcher.onTextMutation=function(){cvox.ChromeVoxEventWatcher.currentTextHandler&&window.setTimeout(function(){cvox.ChromeVoxEventWatcher.handleTextChanged(!1)},cvox.ChromeVoxEventWatcher.MAX_WAIT_TIME_MS_)};
+cvox.ChromeVoxEventWatcher.handleControlChanged=function(a){var b=cvox.DomUtil.getControlValueAndStateString(a),c=cvox.DomUtil.getSurroundingControl(a),d=!1;if(a!=cvox.ChromeVoxEventWatcher.lastFocusedNode&&(null==c||c!=cvox.ChromeVoxEventWatcher.lastFocusedNode))cvox.ChromeVoxEventWatcher.setLastFocusedNode_(a);else if(b==cvox.ChromeVoxEventWatcher.lastFocusedNodeValue)return;cvox.ChromeVoxEventWatcher.lastFocusedNodeValue=b;if(cvox.DomPredicates.checkboxPredicate([a])||cvox.DomPredicates.radioPredicate([a]))d=
+!0,a.checked?cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.CHECK_ON):cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.CHECK_OFF);"SELECT"==a.tagName&&(d=!0);if("INPUT"==a.tagName)switch(a.type){case "color":case "datetime":case "datetime-local":case "range":d=!0}a.hasAttribute&&a.hasAttribute("role")&&(d=!0);c&&c!=a&&document.activeElement==a?(cvox.ApiImplementation.syncToNode(a,!0,cvox.AbstractTts.QUEUE_MODE_FLUSH),d=!1):cvox.AriaUtil.getActiveDescendant(a)&&(cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(cvox.AriaUtil.getActiveDescendant(a),
+!0),d=!0);d&&!cvox.ChromeVoxEventSuspender.areEventsSuspended()&&(cvox.ChromeVox.tts.speak(b,cvox.ChromeVoxEventWatcher.queueMode_(),null),cvox.NavBraille.fromText(b).write())};
+cvox.ChromeVoxEventWatcher.handleControlAction=function(a){if(!cvox.ChromeVox.isActive)return!1;var b=a.target;if("SELECT"==b.tagName&&1>=b.size&&(13==a.keyCode||32==a.keyCode))return a.preventDefault(),a.stopPropagation(),!0;if("INPUT"==b.tagName&&"range"==b.type){var c=parseFloat(b.value),d;b.step&&0<b.step?d=b.step:b.min&&b.max?(d=b.max-b.min,d=2<d&&31>d?1:(b.max-b.min)/10):d=1;if(37==a.keyCode||38==a.keyCode)c-=d;else if(39==a.keyCode||40==a.keyCode)c+=d;b.max&&c>b.max&&(c=b.max);b.min&&c<b.min&&
+(c=b.min);b.value=c}return!1};
+cvox.ChromeVoxEventWatcher.handleDialogFocus=function(a){for(;a;){if(a.hasAttribute){var b=a.getAttribute("role");if("dialog"==b||"alertdialog"==b)break}a=a.parentElement}if(a==cvox.ChromeVox.navigationManager.currentDialog)return!1;if(cvox.ChromeVox.navigationManager.currentDialog&&!a){if(!cvox.DomUtil.isDescendantOfNode(document.activeElement,cvox.ChromeVox.navigationManager.currentDialog))return cvox.ChromeVox.navigationManager.currentDialog=null,cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("exiting_dialog"),cvox.AbstractTts.QUEUE_MODE_FLUSH,
+cvox.AbstractTts.PERSONALITY_ANNOTATION),!0}else if(a)return cvox.ChromeVox.navigationManager.currentDialog=a,cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("entering_dialog"),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION),a=cvox.DescriptionUtil.getFullDescriptionsFromChildren(null,a),b=new cvox.NavigationSpeaker,b.speakDescriptionArray(a,cvox.AbstractTts.QUEUE_MODE_QUEUE,null),!0;return!1};
+cvox.ChromeVoxEventWatcherUtil.shouldWaitToProcess=function(a,b,c){a=c-a;b=c-b;return a<cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_&&b<cvox.ChromeVoxEventWatcher.MAX_WAIT_TIME_MS_};cvox.ChromeVoxEventWatcher.queueMode_=function(){return cvox.ChromeVoxEventWatcher.processing_?cvox.AbstractTts.QUEUE_MODE_QUEUE:cvox.AbstractTts.QUEUE_MODE_FLUSH};
+cvox.ChromeVoxEventWatcher.processQueue_=function(){if(0!=cvox.ChromeVoxEventWatcher.events_.length){var a=cvox.ChromeVoxEventWatcher.events_,b=-1,c=0,d,e;for(e=0;d=a[e];e++)"focus"==d.type&&(b=e,c=d.timeStamp);cvox.ChromeVoxEventWatcher.events_=[];for(e=0;d=a[e];e++){var f=a[e-1]||{};!(e>=b||"LiveRegion"==d.type||"DOMSubtreeModified"==d.type)||"focus"==f.type&&"change"==d.type||cvox.ChromeVoxEventWatcher.events_.push(d)}cvox.ChromeVoxEventWatcher.events_.sort(function(a,b){return"LiveRegion"!=b.type&&
+"LiveRegion"==a.type||"DOMSubtreeModified"!=b.type&&"DOMSubtreeModified"==a.type?1:-1});a=(new Date).getTime();if(0<=b&&cvox.ChromeVoxEventWatcherUtil.shouldWaitToProcess(c,cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime,a))window.setTimeout(cvox.ChromeVoxEventWatcher.processQueue_,cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_);else{for(e=0;d=cvox.ChromeVoxEventWatcher.events_[e];e++)cvox.ChromeVoxEventWatcher.handleEvent_(d),cvox.ChromeVoxEventWatcher.processing_=!0;cvox.ChromeVoxEventWatcher.processing_=
+!1;cvox.ChromeVoxEventWatcher.events_=[];cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime=-1;cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!1;cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_()}}};
+cvox.ChromeVoxEventWatcher.handleEvent_=function(a){switch(a.type){case "keydown":cvox.ChromeVoxEventWatcher.setUpTextHandler();if(cvox.ChromeVoxEventWatcher.currentTextControl&&(cvox.ChromeVoxEventWatcher.handleTextChanged(!0),(a=cvox.ChromeVoxEventWatcher.currentTextHandler)&&a.lastChangeDescribed))break;cvox.ChromeVoxEventWatcher.handleControlChanged(document.activeElement);break;case "keypress":cvox.ChromeVoxEventWatcher.setUpTextHandler();break;case "focus":cvox.ChromeVoxEventWatcher.focusHandler(a);
+break;case "blur":cvox.ChromeVoxEventWatcher.setUpTextHandler();break;case "change":cvox.ChromeVoxEventWatcher.changeHandler(a);break;case "select":cvox.ChromeVoxEventWatcher.setUpTextHandler();break;case "LiveRegion":cvox.ChromeVoxEventWatcher.speakLiveRegion_(a.assertive,a.navDescriptions);break;case "DOMSubtreeModified":cvox.ChromeVoxEventWatcher.subtreeModifiedHandler(a)}};
+cvox.ChromeVoxEventWatcher.setUpTimeHandler_=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);cvox.ChromeVoxEventWatcher.currentTimeHandler=a.constructor==HTMLInputElement&&a.type&&"time"==a.type?new cvox.ChromeVoxHTMLTimeWidget(a,cvox.ChromeVox.tts):null;return null!=cvox.ChromeVoxEventWatcher.currentTimeHandler};
+cvox.ChromeVoxEventWatcher.setUpMediaHandler_=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);cvox.ChromeVoxEventWatcher.currentMediaHandler=a.constructor==HTMLVideoElement||a.constructor==HTMLAudioElement?new cvox.ChromeVoxHTMLMediaWidget(a,cvox.ChromeVox.tts):null;return null!=cvox.ChromeVoxEventWatcher.currentMediaHandler};
+cvox.ChromeVoxEventWatcher.setUpDateHandler_=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);cvox.ChromeVoxEventWatcher.currentDateHandler=a.constructor!=HTMLInputElement||!a.type||"date"!=a.type&&"month"!=a.type&&"week"!=a.type?null:new cvox.ChromeVoxHTMLDateWidget(a,cvox.ChromeVox.tts);return null!=cvox.ChromeVoxEventWatcher.currentDateHandler};cvox.Serializer=function(){};cvox.Serializer.prototype.storeOn=function(a){cvox.ChromeVox.storeOn(a);cvox.ChromeVoxEventWatcher.storeOn(a)};cvox.Serializer.prototype.readFrom=function(a){cvox.ChromeVox.readFrom(a);cvox.ChromeVoxEventWatcher.readFrom(a)};cvox.InitGlobals=function(){};
+cvox.InitGlobals.initGlobals=function(){cvox.ChromeVox.host||(cvox.ChromeVox.host=cvox.HostFactory.getHost());cvox.ChromeVox.tts=(new cvox.CompositeTts).add(cvox.HostFactory.getTts()).add(cvox.History.getInstance()).add(cvox.ConsoleTts.getInstance());cvox.ChromeVox.braille||(cvox.ChromeVox.braille=cvox.HostFactory.getBraille());cvox.ChromeVox.mathJax=cvox.HostFactory.getMathJax();cvox.ChromeVox.earcons=cvox.HostFactory.getEarcons();cvox.ChromeVox.msgs=cvox.HostFactory.getMsgs();cvox.ChromeVox.isActive=
+!0;cvox.ChromeVox.navigationManager=new cvox.NavigationManager;cvox.ChromeVox.navigationManager.updateIndicator();cvox.ChromeVox.syncToNode=cvox.ApiImplementation.syncToNode;cvox.ChromeVox.speakNode=cvox.ApiImplementation.speakNode;cvox.ChromeVox.serializer=new cvox.Serializer;cvox.ChromeVox.host.init();cvox.ChromeVoxEventWatcher.init(window);cvox.ChromeVox.executeUserCommand=function(a){cvox.ChromeVoxUserCommands.commands[a]()};cvox.ChromeVox.host.onPageLoad()};cvox.ChromeVoxInit={};cvox.ChromeVox.initTimeout_=100;cvox.ChromeVox.recallInit_=function(a){window.console.log(a+" Will try again in "+cvox.ChromeVox.initTimeout_+"ms");window.setTimeout(cvox.ChromeVox.initDocument,cvox.ChromeVox.initTimeout_);cvox.ChromeVox.initTimeout_*=2};
+cvox.ChromeVox.initDocument=function(){document.body?(cvox.ChromeVox.host=cvox.HostFactory.getHost(),cvox.ChromeVox.host.ttsLoaded()?(window.console.log("Starting ChromeVox."),cvox.InitGlobals.initGlobals(),window.disableChromeVox=function(){cvox.ChromeVox.host.killChromeVox()}):cvox.ChromeVox.recallInit_("ChromeVox not starting; waiting for TTS. "+document.location.href+".")):cvox.ChromeVox.recallInit_("ChromeVox not starting on unloaded page: "+document.location.href+".")};
+cvox.ChromeVox.reinit=function(){cvox.ChromeVox.host.reinit();cvox.ChromeVox.initDocument()};cvox.AndroidBraille=function(){};goog.inherits(cvox.AndroidBraille,cvox.AbstractBraille);cvox.AndroidBraille.prototype.write=function(a){accessibility.braille&&accessibility.braille(JSON.stringify(a.toJson()))};cvox.HostFactory.brailleConstructor=cvox.AndroidBraille;cvox.AndroidEarcons=function(){cvox.AbstractEarcons.call(this);this.audioMap={}};goog.inherits(cvox.AndroidEarcons,cvox.AbstractEarcons);cvox.AndroidEarcons.BASE_URL="https://ssl.gstatic.com/accessibility/javascript/android/earcons/";
+cvox.AndroidEarcons.prototype.playEarcon=function(a){if(this.earconsAvailable()){cvox.AndroidEarcons.superClass_.playEarcon.call(this,a);this.currentAudio=this.audioMap[a];this.currentAudio||(this.currentAudio=new Audio(cvox.AndroidEarcons.BASE_URL+this.getEarconFilename(a)),this.audioMap[a]=this.currentAudio);try{this.currentAudio.currentTime=0}catch(b){}this.currentAudio.paused&&this.currentAudio.play()}};
+cvox.AndroidEarcons.prototype.earconsAvailable=function(){return-1==navigator.userAgent.indexOf("Chrome")?!1:!0};cvox.HostFactory.earconsConstructor=cvox.AndroidEarcons;"undefined"!=typeof goog&&goog.provide&&(cvox.Api={},cvox.Api.Math={});
+(function(){function a(){d&&(d.port1.close(),d.port2.close(),d=null);d=new MessageChannel;window.postMessage("cvox.PortSetup",[d.port2],"*");d.port1.onmessage=function(a){"cvox.Disconnect"==a.data&&(d=null);try{var b=JSON.parse(a.data);b.id&&g[b.id]&&(g[b.id](b),delete g[b.id])}catch(c){}}}function b(a,b){var c=f;f++;void 0===a.args&&(a.args=[]);a.args=[c].concat(a.args);g[c]=b;d.port1.postMessage(JSON.stringify(a))}function c(a,c){var d=null;c&&c.endCallback&&(d=c.endCallback);b(a,d)}var d,e=!1,
+f=1,g={};window.cvox||(window.cvox={});var h=window.cvox,k=null;"undefined"!=typeof h.ApiImplementation&&(k=h.ApiImplementation);h.Api=function(){};h.Api.internalEnable=function(){e=!0;k||a();var b=document.createEvent("UIEvents");b.initEvent("chromeVoxLoaded",!0,!1);document.dispatchEvent(b)};h.Api.internalDisable=function(){e=!1;d=null;var a=document.createEvent("UIEvents");a.initEvent("chromeVoxUnloaded",!0,!1);document.dispatchEvent(a)};h.Api.isChromeVoxActive=function(){return k?e:!!d};h.Api.speak=
+function(a,b,d){h.Api.isChromeVoxActive()&&(k?k.speak(a,b,d):(a={cmd:"speak",args:[a,b,d]},c(a,d)))};h.Api.speakNode=function(a,b,d){h.Api.isChromeVoxActive()&&(k?k.speak(h.DomUtil.getName(a),b,d):(a={cmd:"speakNodeRef",args:[h.ApiUtils.makeNodeReference(a),b,d]},c(a,d)))};h.Api.stop=function(){if(h.Api.isChromeVoxActive())if(k)k.stop();else{var a={cmd:"stop"};d.port1.postMessage(JSON.stringify(a))}};h.Api.playEarcon=function(a){h.Api.isChromeVoxActive()&&(k?k.playEarcon(a):(a={cmd:"playEarcon",args:[a]},
+d.port1.postMessage(JSON.stringify(a))))};h.Api.syncToNode=function(a,b){if(h.Api.isChromeVoxActive()&&a)if(k)k.syncToNode(a,b);else{var c={cmd:"syncToNodeRef",args:[h.ApiUtils.makeNodeReference(a),b]};d.port1.postMessage(JSON.stringify(c))}};h.Api.getCurrentNode=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.ChromeVox.navigationManager.getCurrentNode()):b({cmd:"getCurrentNode"},function(b){a(h.ApiUtils.getNodeFromRef(b.currentNode))}))};h.Api.setSpeechForNode=function(a,b){h.Api.isChromeVoxActive()&&
+a&&b&&a.setAttribute("cvoxnodedesc",JSON.stringify(b))};h.Api.click=function(a,b){if(h.Api.isChromeVoxActive()&&a)if(k)h.DomUtil.clickElem(a,b,!0);else{var c={cmd:"clickNodeRef",args:[h.ApiUtils.makeNodeReference(a),b]};d.port1.postMessage(JSON.stringify(c))}};h.Api.getBuild=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.BuildInfo.build):b({cmd:"getBuild"},function(b){a(b.build)}))};h.Api.getVersion=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.ChromeVox.version+""):b({cmd:"getVersion"},function(b){a(b.version)}))};
+h.Api.getCvoxModifierKeys=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.KeyUtil.cvoxModKeyCodes()):b({cmd:"getCvoxModKeys"},function(b){a(b.keyCodes)}))};h.Api.isKeyShortcut=function(a,c){if(c)if(h.Api.isChromeVoxActive()){var d=[37,39];if(!d.indexOf(a.keyCode)||a.altKey||a.shiftKey||a.ctrlKey||a.metaKey)if(k){var e=h.KeyUtil.keyEventToKeySequence(a);c(h.ChromeVoxKbHandler.handlerKeyMap.hasKey(e))}else{var d={},f=["target","srcElement","currentTarget","view"];for(e in a)-1===f.indexOf(e)&&(d[e]=
+a[e]);e={cmd:"isKeyShortcut",args:[d]};b(e,function(a){c(a.isHandled)})}else c(!1)}else c(!1)};h.Api.setKeyEcho=function(a){h.Api.isChromeVoxActive()&&(k?k.setKeyEcho(a):(a={cmd:"setKeyEcho",args:[a]},d.port1.postMessage(JSON.stringify(a))))};h.Api.Math=function(){};h.Api.Math.defineRule=function(a,b,c,e,f){if(h.Api.isChromeVoxActive()){var g=Array.prototype.slice.call(arguments,4),g=[a,b,c,e].concat(g);k?k.Math.defineRule.apply(k.Math,g):(g={cmd:"Math.defineRule",args:g},d.port1.postMessage(JSON.stringify(g)))}};
+h.Api.internalEnable();h.NodeDescription=function(a,b,c,d){this.context=a?a:"";this.text=b?b:"";this.userValue=c?c:"";this.annotation=d?d:""}})();cvox.InitialSpeech={};window.INJECTED_AFTER_LOAD||(window.INJECTED_AFTER_LOAD=!1);
+cvox.InitialSpeech.speak=function(){var a=window.INJECTED_AFTER_LOAD;if(!cvox.ChromeVox.isActive||document.webkitHidden)a=!0;window.top==window&&document.title&&!a&&cvox.ChromeVox.tts.speak(document.title,cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.LiveRegions.init(new Date,cvox.AbstractTts.QUEUE_MODE_QUEUE,a);document.hasFocus()&&document.activeElement==document.body&&cvox.ChromeVox.navigationManager.syncToBeginning();if(cvox.ChromeVox.position[document.location.href]){var b=cvox.ChromeVox.position[document.location.href];
+cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(document.elementFromPoint(b.x,b.y))}document.hasFocus()&&(a||cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(){cvox.ChromeVox.navigationManager.finishNavCommand("",!0,cvox.AbstractTts.QUEUE_MODE_QUEUE)})())};cvox.AndroidKeyMap=function(){};
+cvox.AndroidKeyMap.getStringifiedKeyMap=function(){return cvox.ChromeVoxJSON.stringify({'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[17]}}':"stopSpeech",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[9]}}':"handleTab",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[9]}}':"handleTabPrev",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[38]}}':"backward",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[40]}}':"forward",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[37]}}':"previousGranularity",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[39]}}':"nextGranularity",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[13]}}':"forceClickOnCurrentItem",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[40]}}':"readFromHere",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[85]}}':"readLinkURL",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[75]}}':"fullyDescribe",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[189]}}':"decreaseTtsPitch",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[187]}}':"increaseTtsPitch",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[219]}}':"decreaseTtsRate",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[221]}}':"increaseTtsRate",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[81]}}':"cyclePunctuationLevel",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[49]}}':"nextHeading1",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[49]}}':"previousHeading1",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[50]}}':"nextHeading2",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[50]}}':"previousHeading2",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[51]}}':"nextHeading3",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[51]}}':"previousHeading3",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[52]}}':"nextHeading4",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[52]}}':"previousHeading4",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[53]}}':"nextHeading5",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[53]}}':"previousHeading5",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[54]}}':"nextHeading6",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[54]}}':"previousHeading6",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[67]}}':"nextComboBox",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[67]}}':"previousComboBox",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[69]}}':"nextEditText",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[69]}}':"previousEditText",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[70]}}':"nextFormField",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[70]}}':"previousFormField",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[71]}}':"nextGraphic",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[71]}}':"previousGraphic",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[72]}}':"nextHeading",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[72]}}':"previousHeading",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[73]}}':"nextListItem",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[73]}}':"previousListItem",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[76]}}':"nextLink",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[76]}}':"previousLink",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[79]}}':"nextList",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[79]}}':"previousList",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[82]}}':"nextRadio",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[82]}}':"previousRadio",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[84]}}':"nextTable",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[84]}}':"previousTable",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[66]}}':"nextButton",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[66]}}':"previousButton",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[88]}}':"nextCheckbox",
+'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[88]}}':"previousCheckbox",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[186]}}':"nextLandmark",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[186]}}':"previousLandmark"})};cvox.MathSimpleStore=function(){cvox.MathStore.call(this)};goog.inherits(cvox.MathSimpleStore,cvox.MathStore);cvox.MathSimpleStore.prototype.defineRulesFromMappings=function(a,b,c){for(var d in c)for(var e in c[d]){var f=c[d][e],g='self::text() = "'+b+'"';this.defineRule(a,d+"."+e,'[t] "'+f+'"',"self::text()",g)}};cvox.MathCompoundStore=function(){this.subStores_={}};goog.addSingletonGetter(cvox.MathCompoundStore);
+cvox.MathCompoundStore.prototype.defineRules=function(a,b,c){var d=new cvox.MathSimpleStore;d.defineRulesFromMappings(a,b,c);this.subStores_[b]=d};cvox.MathCompoundStore.prototype.addSymbolRules=function(a){var b=cvox.MathSimpleStore.parseUnicode_(a.key);this.defineRules(a.key,b,a.mappings)};cvox.MathCompoundStore.prototype.addFunctionRules=function(a){var b=a.names;a=a.mappings;for(var c=0,d;d=b[c];c++)this.defineRules(d,d,a)};
+cvox.MathCompoundStore.prototype.lookupRule=function(a,b){var c=this.subStores_[a.textContent];if(c)return c.lookupRule(a,b)};cvox.MathCompoundStore.prototype.lookupString=function(a,b){var c=document.createTextNode(a);return(c=this.lookupRule(c,b))?c.action.components.map(function(a){return a.content.slice(1,-1)}).join(" "):""};
+cvox.MathCompoundStore.prototype.getDynamicConstraintValues=function(){var a={},b;for(b in this.subStores_){var c=this.subStores_[b].getDynamicConstraintValues(),d;for(d in c){var e=a[d];a[d]=e?cvox.MathUtil.union(e,c[d]):c[d]}}return a};cvox.MathSimpleStore.parseUnicode_=function(a){var b=parseInt(a,16);if(65536>b)return String.fromCharCode(b);b-=65536;a=(b>>10)+55296;b=(b&1023)+56320;return String.fromCharCode(a,b)};cvox.AndroidMathMap=function(){this.store_=cvox.MathCompoundStore.getInstance();cvox.AndroidMathMap.FUNCTION_MAPPINGS_.forEach(goog.bind(this.store_.addFunctionRules,this.store_));cvox.AndroidMathMap.SYMBOL_MAPPINGS_.forEach(goog.bind(this.store_.addSymbolRules,this.store_));this.store_.getDynamicConstraintValues()};
+cvox.AndroidMathMap.prototype.evaluate=function(a,b,c){var d="";b=cvox.MathStore.createDynamicConstraint(b,c);d=this.store_.lookupString(a,b);return new cvox.NavDescription({text:d?d:a})};
+cvox.AndroidMathMap.SYMBOL_MAPPINGS_=[{category:"Po",mappings:{"default":{"default":"exclamation mark"}},key:"0021"},{category:"Po",mappings:{"default":{"default":"quotation mark"}},key:"0022"},{category:"Po",mappings:{"default":{"default":"number sign",alternative:"hash","short":"number"}},key:"0023"},{category:"Sc",mappings:{"default":{"default":"dollar sign","short":"dollar"}},key:"0024"},{category:"Po",mappings:{"default":{"default":"percent sign","short":"percent"}},key:"0025"},{category:"Po",
+mappings:{"default":{"default":"ampersand"}},key:"0026"},{category:"Po",mappings:{"default":{"default":"apostrophe",alternative:"apostrophe quote"}},key:"0027"},{category:"Po",mappings:{"default":{"default":"asterisk"}},key:"002A"},{category:"Sm",mappings:{"default":{"default":"plus sign","short":"plus"}},key:"002B"},{category:"Po",mappings:{"default":{"default":"comma"}},key:"002C"},{category:"Pd",mappings:{"default":{"default":"hyphen minus","short":"minus"}},key:"002D"},{category:"Po",mappings:{"default":{"default":"full stop",
+alternative:"period"}},key:"002E"},{category:"Po",mappings:{"default":{"default":"solidus",alternative:"slash"}},key:"002F"},{category:"Po",mappings:{"default":{"default":"colon"}},key:"003A"},{category:"Po",mappings:{"default":{"default":"semicolon"}},key:"003B"},{category:"Sm",mappings:{"default":{"default":"less than sign","short":"less than"}},key:"003C"},{category:"Sm",mappings:{"default":{"default":"equals sign","short":"equals"}},key:"003D"},{category:"Sm",mappings:{"default":{"default":"greater than sign",
+"short":"greater than"}},key:"003E"},{category:"Po",mappings:{"default":{"default":"question mark"}},key:"003F"},{category:"Po",mappings:{"default":{"default":"commercial at","short":"at"}},key:"0040"},{category:"Po",mappings:{"default":{"default":"reverse solidus",alternative:"backslash"}},key:"005C"},{category:"Sk",mappings:{"default":{"default":"circumflex accent",alternative:"spacing circumflex","short":"hat"}},key:"005E"},{category:"Pc",mappings:{"default":{"default":"low line",alternative:"spacing underscore"}},
+key:"005F"},{category:"Sk",mappings:{"default":{"default":"grave accent",alternative:"spacing grave","short":"grave"}},key:"0060"},{category:"Sm",mappings:{"default":{"default":"vertical line",alternative:"vertical bar"}},key:"007C"},{category:"Sm",mappings:{"default":{"default":"tilde"}},key:"007E"},{category:"Po",mappings:{"default":{"default":"inverted exclamation mark"}},key:"00A1"},{category:"Sc",mappings:{"default":{"default":"cent sign","short":"cent"}},key:"00A2"},{category:"Sc",mappings:{"default":{"default":"pound sign",
+"short":"pound"}},key:"00A3"},{category:"Sc",mappings:{"default":{"default":"currency sign","short":"currency"}},key:"00A4"},{category:"Sc",mappings:{"default":{"default":"yen sign","short":"yen"}},key:"00A5"},{category:"So",mappings:{"default":{"default":"broken bar",alternative:"broken vertical bar"}},key:"00A6"},{category:"Po",mappings:{"default":{"default":"section sign","short":"section"}},key:"00A7"},{category:"Sk",mappings:{"default":{"default":"diaeresis",alternative:"spacing diaeresis","short":"double dot"}},
+key:"00A8"},{category:"So",mappings:{"default":{"default":"copyright sign","short":"copyright"}},key:"00A9"},{category:"Lo",mappings:{"default":{"default":"feminine ordinal indicator"}},key:"00AA"},{category:"Pi",mappings:{"default":{"default":"left pointing double angle quotation mark",alternative:"left pointing guillemet"}},key:"00AB"},{category:"Sm",mappings:{"default":{"default":"not sign","short":"not"}},key:"00AC"},{category:"So",mappings:{"default":{"default":"registered sign",alternative:"registered trade mark sign",
+"short":"registered"}},key:"00AE"},{category:"Sk",mappings:{"default":{"default":"macron",alternative:"spacing macron"}},key:"00AF"},{category:"So",mappings:{"default":{"default":"degree sign","short":"degree"}},key:"00B0"},{category:"Sm",mappings:{"default":{"default":"plus minus sign",alternative:"plus or minus sign","short":"plus minus"}},key:"00B1"},{category:"Sk",mappings:{"default":{"default":"acute accent",alternative:"spacing acute","short":"acute"}},key:"00B4"},{category:"Ll",mappings:{"default":{"default":"micro sign",
+"short":"micro"}},key:"00B5"},{category:"Po",mappings:{"default":{"default":"pilcrow sign",alternative:"paragraph sign","short":"pilcrow"}},key:"00B6"},{category:"Po",mappings:{"default":{"default":"middle dot"}},key:"00B7"},{category:"Sk",mappings:{"default":{"default":"cedilla",alternative:"spacing cedilla"}},key:"00B8"},{category:"Lo",mappings:{"default":{"default":"masculine ordinal indicator"}},key:"00BA"},{category:"Pf",mappings:{"default":{"default":"right pointing double angle quotation mark",
+alternative:"right pointing guillemet"}},key:"00BB"},{category:"Po",mappings:{"default":{"default":"inverted question mark"}},key:"00BF"},{category:"Sm",mappings:{"default":{"default":"multiplication sign","short":"multiplication"}},key:"00D7"},{category:"Sm",mappings:{"default":{"default":"division sign","short":"division"}},key:"00F7"},{category:"Sk",mappings:{"default":{"default":"breve",alternative:"spacing breve"}},key:"02D8"},{category:"Sk",mappings:{"default":{"default":"dot above",alternative:"spacing dot above"}},
+key:"02D9"},{category:"Sk",mappings:{"default":{"default":"ring above",alternative:"spacing ring above"}},key:"02DA"},{category:"Sk",mappings:{"default":{"default":"ogonek",alternative:"spacing ogonek"}},key:"02DB"},{category:"Sk",mappings:{"default":{"default":"small tilde",alternative:"spacing tilde"}},key:"02DC"},{category:"Sk",mappings:{"default":{"default":"double acute accent",alternative:"spacing double acute"}},key:"02DD"},{category:"Pd",mappings:{"default":{"default":"hyphen"}},key:"2010"},
+{category:"Pd",mappings:{"default":{"default":"non breaking hyphen"}},key:"2011"},{category:"Pd",mappings:{"default":{"default":"figure dash"}},key:"2012"},{category:"Pd",mappings:{"default":{"default":"en dash"}},key:"2013"},{category:"Pd",mappings:{"default":{"default":"em dash"}},key:"2014"},{category:"Pd",mappings:{"default":{"default":"horizontal bar",alternative:"quotation dash"}},key:"2015"},{category:"Po",mappings:{"default":{"default":"double vertical line",alternative:"double vertical bar"}},
+key:"2016"},{category:"Po",mappings:{"default":{"default":"double low line",alternative:"spacing double underscore"}},key:"2017"},{category:"Pi",mappings:{"default":{"default":"left single quotation mark",alternative:"single turned comma quotation mark"}},key:"2018"},{category:"Pf",mappings:{"default":{"default":"right single quotation mark",alternative:"single comma quotation mark"}},key:"2019"},{category:"Ps",mappings:{"default":{"default":"single low 9 quotation mark",alternative:"low single comma quotation mark"}},
+key:"201A"},{category:"Pi",mappings:{"default":{"default":"single high reversed 9 quotation mark",alternative:"single reversed comma quotation mark"}},key:"201B"},{category:"Pi",mappings:{"default":{"default":"left double quotation mark",alternative:"double turned comma quotation mark"}},key:"201C"},{category:"Pf",mappings:{"default":{"default":"right double quotation mark",alternative:"double comma quotation mark"}},key:"201D"},{category:"Ps",mappings:{"default":{"default":"double low 9 quotation mark",
+alternative:"low double comma quotation mark"}},key:"201E"},{category:"Pi",mappings:{"default":{"default":"double high reversed 9 quotation mark",alternative:"double reversed comma quotation mark"}},key:"201F"},{category:"Po",mappings:{"default":{"default":"dagger"}},key:"2020"},{category:"Po",mappings:{"default":{"default":"double dagger"}},key:"2021"},{category:"Po",mappings:{"default":{"default":"bullet"}},key:"2022"},{category:"Po",mappings:{"default":{"default":"triangular bullet"}},key:"2023"},
+{category:"Po",mappings:{"default":{"default":"one dot leader"}},key:"2024"},{category:"Po",mappings:{"default":{"default":"two dot leader"}},key:"2025"},{category:"Po",mappings:{"default":{"default":"horizontal ellipsis"}},key:"2026"},{category:"Po",mappings:{"default":{"default":"hyphenation point"}},key:"2027"},{category:"Po",mappings:{"default":{"default":"per mille sign","short":"per mille"}},key:"2030"},{category:"Po",mappings:{"default":{"default":"per ten thousand sign","short":"per ten thousand"}},
+key:"2031"},{category:"Po",mappings:{"default":{"default":"prime"}},key:"2032"},{category:"Po",mappings:{"default":{"default":"double prime"}},key:"2033"},{category:"Po",mappings:{"default":{"default":"triple prime"}},key:"2034"},{category:"Po",mappings:{"default":{"default":"reversed prime"}},key:"2035"},{category:"Po",mappings:{"default":{"default":"reversed double prime"}},key:"2036"},{category:"Po",mappings:{"default":{"default":"reversed triple prime"}},key:"2037"},{category:"Po",mappings:{"default":{"default":"caret"}},
+key:"2038"},{category:"Pi",mappings:{"default":{"default":"single left pointing angle quotation mark",alternative:"left pointing single guillemet"}},key:"2039"},{category:"Pf",mappings:{"default":{"default":"single right pointing angle quotation mark",alternative:"right pointing single guillemet"}},key:"203A"},{category:"Po",mappings:{"default":{"default":"reference mark"}},key:"203B"},{category:"Po",mappings:{"default":{"default":"double exclamation mark"}},key:"203C"},{category:"Po",mappings:{"default":{"default":"interrobang"}},
+key:"203D"},{category:"Po",mappings:{"default":{"default":"overline",alternative:"spacing overscore"}},key:"203E"},{category:"Pc",mappings:{"default":{"default":"undertie"}},key:"203F"},{category:"Pc",mappings:{"default":{"default":"character tie"}},key:"2040"},{category:"Po",mappings:{"default":{"default":"caret insertion point"}},key:"2041"},{category:"Po",mappings:{"default":{"default":"asterism"}},key:"2042"},{category:"Po",mappings:{"default":{"default":"hyphen bullet"}},key:"2043"},{category:"Sm",
+mappings:{"default":{"default":"fraction slash"}},key:"2044"},{category:"Po",mappings:{"default":{"default":"double question mark"}},key:"2047"},{category:"Po",mappings:{"default":{"default":"question exclamation mark"}},key:"2048"},{category:"Po",mappings:{"default":{"default":"exclamation question mark"}},key:"2049"},{category:"Po",mappings:{"default":{"default":"reversed pilcrow sign","short":"reversed pilcrow"}},key:"204B"},{category:"Po",mappings:{"default":{"default":"black leftwards bullet"}},
+key:"204C"},{category:"Po",mappings:{"default":{"default":"black rightwards bullet"}},key:"204D"},{category:"Po",mappings:{"default":{"default":"low asterisk"}},key:"204E"},{category:"Po",mappings:{"default":{"default":"reversed semicolon"}},key:"204F"},{category:"Po",mappings:{"default":{"default":"close up"}},key:"2050"},{category:"Po",mappings:{"default":{"default":"two asterisks aligned vertically"}},key:"2051"},{category:"Sm",mappings:{"default":{"default":"commercial minus sign","short":"commercial minus"}},
+key:"2052"},{category:"Po",mappings:{"default":{"default":"swung dash"}},key:"2053"},{category:"Pc",mappings:{"default":{"default":"inverted undertie"}},key:"2054"},{category:"Po",mappings:{"default":{"default":"flower punctuation mark"}},key:"2055"},{category:"Po",mappings:{"default":{"default":"three dot punctuation"}},key:"2056"},{category:"Po",mappings:{"default":{"default":"quadruple prime"}},key:"2057"},{category:"Po",mappings:{"default":{"default":"four dot punctuation"}},key:"2058"},{category:"Po",
+mappings:{"default":{"default":"five dot punctuation"}},key:"2059"},{category:"Po",mappings:{"default":{"default":"two dot punctuation"}},key:"205A"},{category:"Po",mappings:{"default":{"default":"four dot mark"}},key:"205B"},{category:"Po",mappings:{"default":{"default":"dotted cross"}},key:"205C"},{category:"Po",mappings:{"default":{"default":"tricolon"}},key:"205D"},{category:"Po",mappings:{"default":{"default":"vertical four dots"}},key:"205E"},{category:"Sm",mappings:{"default":{"default":"superscript plus sign",
+"short":"superscript plus"}},key:"207A"},{category:"Sm",mappings:{"default":{"default":"superscript minus",alternative:"superscript hyphen minus"}},key:"207B"},{category:"Sm",mappings:{"default":{"default":"superscript equals sign","short":"superscript equals"}},key:"207C"},{category:"Ps",mappings:{"default":{"default":"superscript left parenthesis",alternative:"superscript opening parenthesis"}},key:"207D"},{category:"Pe",mappings:{"default":{"default":"superscript right parenthesis",alternative:"superscript closing parenthesis"}},
+key:"207E"},{category:"Sm",mappings:{"default":{"default":"subscript plus sign","short":"subscript plus"}},key:"208A"},{category:"Sm",mappings:{"default":{"default":"subscript minus",alternative:"subscript hyphen minus"}},key:"208B"},{category:"Sm",mappings:{"default":{"default":"subscript equals sign","short":"subscript equals"}},key:"208C"},{category:"Ps",mappings:{"default":{"default":"subscript left parenthesis",alternative:"subscript opening parenthesis"}},key:"208D"},{category:"Pe",mappings:{"default":{"default":"subscript right parenthesis",
+alternative:"subscript closing parenthesis"}},key:"208E"},{category:"So",mappings:{"default":{"default":"property line"}},key:"214A"},{category:"Sm",mappings:{"default":{"default":"turned ampersand"}},key:"214B"},{category:"So",mappings:{"default":{"default":"per sign","short":"per"}},key:"214C"},{category:"So",mappings:{"default":{"default":"aktieselskab"}},key:"214D"},{category:"Ll",mappings:{"default":{"default":"turned small f"}},key:"214E"},{category:"Sm",mappings:{"default":{"default":"for all"}},
+key:"2200"},{category:"Sm",mappings:{"default":{"default":"complement"}},key:"2201"},{category:"Sm",mappings:{"default":{"default":"partial differential"}},key:"2202"},{category:"Sm",mappings:{"default":{"default":"there exists"}},key:"2203"},{category:"Sm",mappings:{"default":{"default":"there does not exist"}},key:"2204"},{category:"Sm",mappings:{"default":{"default":"empty set"}},key:"2205"},{category:"Sm",mappings:{"default":{"default":"increment"}},key:"2206"},{category:"Sm",mappings:{"default":{"default":"nabla"}},
+key:"2207"},{category:"Sm",mappings:{"default":{"default":"element of"}},key:"2208"},{category:"Sm",mappings:{"default":{"default":"not an element of"}},key:"2209"},{category:"Sm",mappings:{"default":{"default":"small element of"}},key:"220A"},{category:"Sm",mappings:{"default":{"default":"contains as member"}},key:"220B"},{category:"Sm",mappings:{"default":{"default":"does not contain as member"}},key:"220C"},{category:"Sm",mappings:{"default":{"default":"small contains as member"}},key:"220D"},
+{category:"Sm",mappings:{"default":{"default":"end of proof"}},key:"220E"},{category:"Sm",mappings:{"default":{"default":"n ary product"}},key:"220F"},{category:"Sm",mappings:{"default":{"default":"n ary coproduct"}},key:"2210"},{category:"Sm",mappings:{"default":{"default":"n ary summation"}},key:"2211"},{category:"Sm",mappings:{"default":{"default":"minus sign","short":"minus"}},key:"2212"},{category:"Sm",mappings:{"default":{"default":"minus or plus sign","short":"minus or plus"}},key:"2213"},
+{category:"Sm",mappings:{"default":{"default":"dot plus"}},key:"2214"},{category:"Sm",mappings:{"default":{"default":"division slash"}},key:"2215"},{category:"Sm",mappings:{"default":{"default":"set minus"}},key:"2216"},{category:"Sm",mappings:{"default":{"default":"asterisk operator"}},key:"2217"},{category:"Sm",mappings:{"default":{"default":"ring operator"}},key:"2218"},{category:"Sm",mappings:{"default":{"default":"bullet operator"}},key:"2219"},{category:"Sm",mappings:{"default":{"default":"square root"}},
+key:"221A"},{category:"Sm",mappings:{"default":{"default":"cube root"}},key:"221B"},{category:"Sm",mappings:{"default":{"default":"fourth root"}},key:"221C"},{category:"Sm",mappings:{"default":{"default":"proportional to"}},key:"221D"},{category:"Sm",mappings:{"default":{"default":"infinity"}},key:"221E"},{category:"Sm",mappings:{"default":{"default":"right angle"}},key:"221F"},{category:"Sm",mappings:{"default":{"default":"angle"}},key:"2220"},{category:"Sm",mappings:{"default":{"default":"measured angle"}},
+key:"2221"},{category:"Sm",mappings:{"default":{"default":"spherical angle"}},key:"2222"},{category:"Sm",mappings:{"default":{"default":"divides","short":"bar"}},key:"2223"},{category:"Sm",mappings:{"default":{"default":"does not divide"}},key:"2224"},{category:"Sm",mappings:{"default":{"default":"parallel to"}},key:"2225"},{category:"Sm",mappings:{"default":{"default":"not parallel to"}},key:"2226"},{category:"Sm",mappings:{"default":{"default":"logical and"}},key:"2227"},{category:"Sm",mappings:{"default":{"default":"logical or"}},
+key:"2228"},{category:"Sm",mappings:{"default":{"default":"intersection"}},key:"2229"},{category:"Sm",mappings:{"default":{"default":"union"}},key:"222A"},{category:"Sm",mappings:{"default":{"default":"integral"}},key:"222B"},{category:"Sm",mappings:{"default":{"default":"double integral"}},key:"222C"},{category:"Sm",mappings:{"default":{"default":"triple integral"}},key:"222D"},{category:"Sm",mappings:{"default":{"default":"contour integral"}},key:"222E"},{category:"Sm",mappings:{"default":{"default":"surface integral"}},
+key:"222F"},{category:"Sm",mappings:{"default":{"default":"volume integral"}},key:"2230"},{category:"Sm",mappings:{"default":{"default":"clockwise integral"}},key:"2231"},{category:"Sm",mappings:{"default":{"default":"clockwise contour integral"}},key:"2232"},{category:"Sm",mappings:{"default":{"default":"anticlockwise contour integral"}},key:"2233"},{category:"Sm",mappings:{"default":{"default":"therefore"}},key:"2234"},{category:"Sm",mappings:{"default":{"default":"because"}},key:"2235"},{category:"Sm",
+mappings:{"default":{"default":"ratio"}},key:"2236"},{category:"Sm",mappings:{"default":{"default":"proportion"}},key:"2237"},{category:"Sm",mappings:{"default":{"default":"dot minus"}},key:"2238"},{category:"Sm",mappings:{"default":{"default":"excess"}},key:"2239"},{category:"Sm",mappings:{"default":{"default":"geometric proportion"}},key:"223A"},{category:"Sm",mappings:{"default":{"default":"homothetic"}},key:"223B"},{category:"Sm",mappings:{"default":{"default":"tilde operator"}},key:"223C"},{category:"Sm",
+mappings:{"default":{"default":"reversed tilde"}},key:"223D"},{category:"Sm",mappings:{"default":{"default":"inverted lazy s"}},key:"223E"},{category:"Sm",mappings:{"default":{"default":"sine wave"}},key:"223F"},{category:"Sm",mappings:{"default":{"default":"wreath product"}},key:"2240"},{category:"Sm",mappings:{"default":{"default":"not tilde"}},key:"2241"},{category:"Sm",mappings:{"default":{"default":"minus tilde"}},key:"2242"},{category:"Sm",mappings:{"default":{"default":"asymptotically equal to"}},
+key:"2243"},{category:"Sm",mappings:{"default":{"default":"not asymptotically equal to"}},key:"2244"},{category:"Sm",mappings:{"default":{"default":"approximately equal to"}},key:"2245"},{category:"Sm",mappings:{"default":{"default":"approximately but not actually equal to"}},key:"2246"},{category:"Sm",mappings:{"default":{"default":"neither approximately nor actually equal to"}},key:"2247"},{category:"Sm",mappings:{"default":{"default":"almost equal to"}},key:"2248"},{category:"Sm",mappings:{"default":{"default":"not almost equal to"}},
+key:"2249"},{category:"Sm",mappings:{"default":{"default":"almost equal or equal to"}},key:"224A"},{category:"Sm",mappings:{"default":{"default":"triple tilde"}},key:"224B"},{category:"Sm",mappings:{"default":{"default":"all equal to"}},key:"224C"},{category:"Sm",mappings:{"default":{"default":"equivalent to"}},key:"224D"},{category:"Sm",mappings:{"default":{"default":"geometrically equivalent to"}},key:"224E"},{category:"Sm",mappings:{"default":{"default":"difference between"}},key:"224F"},{category:"Sm",
+mappings:{"default":{"default":"approaches the limit"}},key:"2250"},{category:"Sm",mappings:{"default":{"default":"geometrically equal to"}},key:"2251"},{category:"Sm",mappings:{"default":{"default":"approximately equal to or the image of"}},key:"2252"},{category:"Sm",mappings:{"default":{"default":"image of or approximately equal to"}},key:"2253"},{category:"Sm",mappings:{"default":{"default":"colon equals",alternative:"colon equal"}},key:"2254"},{category:"Sm",mappings:{"default":{"default":"equals colon",
+alternative:"equal colon"}},key:"2255"},{category:"Sm",mappings:{"default":{"default":"ring in equal to"}},key:"2256"},{category:"Sm",mappings:{"default":{"default":"ring equal to"}},key:"2257"},{category:"Sm",mappings:{"default":{"default":"corresponds to"}},key:"2258"},{category:"Sm",mappings:{"default":{"default":"estimates"}},key:"2259"},{category:"Sm",mappings:{"default":{"default":"equiangular to"}},key:"225A"},{category:"Sm",mappings:{"default":{"default":"star equals"}},key:"225B"},{category:"Sm",
+mappings:{"default":{"default":"delta equal to"}},key:"225C"},{category:"Sm",mappings:{"default":{"default":"equal to by definition"}},key:"225D"},{category:"Sm",mappings:{"default":{"default":"measured by"}},key:"225E"},{category:"Sm",mappings:{"default":{"default":"questioned equal to"}},key:"225F"},{category:"Sm",mappings:{"default":{"default":"not equal to"}},key:"2260"},{category:"Sm",mappings:{"default":{"default":"identical to"}},key:"2261"},{category:"Sm",mappings:{"default":{"default":"not identical to"}},
+key:"2262"},{category:"Sm",mappings:{"default":{"default":"strictly equivalent to"}},key:"2263"},{category:"Sm",mappings:{"default":{"default":"less than or equal to",alternative:"less than or equal to"}},key:"2264"},{category:"Sm",mappings:{"default":{"default":"greater than or equal to",alternative:"greater than or equal to"}},key:"2265"},{category:"Sm",mappings:{"default":{"default":"less than over equal to",alternative:"less than over equal to"}},key:"2266"},{category:"Sm",mappings:{"default":{"default":"greater than over equal to",
+alternative:"greater than over equal to"}},key:"2267"},{category:"Sm",mappings:{"default":{"default":"less than but not equal to",alternative:"less than but not equal to"}},key:"2268"},{category:"Sm",mappings:{"default":{"default":"greater than but not equal to",alternative:"greater than but not equal to"}},key:"2269"},{category:"Sm",mappings:{"default":{"default":"much less than",alternative:"much less than"}},key:"226A"},{category:"Sm",mappings:{"default":{"default":"much greater than",alternative:"much greater than"}},
+key:"226B"},{category:"Sm",mappings:{"default":{"default":"between"}},key:"226C"},{category:"Sm",mappings:{"default":{"default":"not equivalent to"}},key:"226D"},{category:"Sm",mappings:{"default":{"default":"not less than",alternative:"not less than"}},key:"226E"},{category:"Sm",mappings:{"default":{"default":"not greater than",alternative:"not greater than"}},key:"226F"},{category:"Sm",mappings:{"default":{"default":"neither less than nor equal to",alternative:"neither less than nor equal to"}},
+key:"2270"},{category:"Sm",mappings:{"default":{"default":"neither greater than nor equal to",alternative:"neither greater than nor equal to"}},key:"2271"},{category:"Sm",mappings:{"default":{"default":"less than or equivalent to",alternative:"less than or equivalent to"}},key:"2272"},{category:"Sm",mappings:{"default":{"default":"greater than or equivalent to",alternative:"greater than or equivalent to"}},key:"2273"},{category:"Sm",mappings:{"default":{"default":"neither less than nor equivalent to",
+alternative:"neither less than nor equivalent to"}},key:"2274"},{category:"Sm",mappings:{"default":{"default":"neither greater than nor equivalent to",alternative:"neither greater than nor equivalent to"}},key:"2275"},{category:"Sm",mappings:{"default":{"default":"less than or greater than",alternative:"less than or greater than"}},key:"2276"},{category:"Sm",mappings:{"default":{"default":"greater than or less than",alternative:"greater than or less than"}},key:"2277"},{category:"Sm",mappings:{"default":{"default":"neither less than nor greater than",
+alternative:"neither less than nor greater than"}},key:"2278"},{category:"Sm",mappings:{"default":{"default":"neither greater than nor less than",alternative:"neither greater than nor less than"}},key:"2279"},{category:"Sm",mappings:{"default":{"default":"precedes"}},key:"227A"},{category:"Sm",mappings:{"default":{"default":"succeeds"}},key:"227B"},{category:"Sm",mappings:{"default":{"default":"precedes or equal to"}},key:"227C"},{category:"Sm",mappings:{"default":{"default":"succeeds or equal to"}},
+key:"227D"},{category:"Sm",mappings:{"default":{"default":"precedes or equivalent to"}},key:"227E"},{category:"Sm",mappings:{"default":{"default":"succeeds or equivalent to"}},key:"227F"},{category:"Sm",mappings:{"default":{"default":"does not precede"}},key:"2280"},{category:"Sm",mappings:{"default":{"default":"does not succeed"}},key:"2281"},{category:"Sm",mappings:{"default":{"default":"subset of"}},key:"2282"},{category:"Sm",mappings:{"default":{"default":"superset of"}},key:"2283"},{category:"Sm",
+mappings:{"default":{"default":"not a subset of"}},key:"2284"},{category:"Sm",mappings:{"default":{"default":"not a superset of"}},key:"2285"},{category:"Sm",mappings:{"default":{"default":"subset of or equal to"}},key:"2286"},{category:"Sm",mappings:{"default":{"default":"superset of or equal to"}},key:"2287"},{category:"Sm",mappings:{"default":{"default":"neither a subset of nor equal to"}},key:"2288"},{category:"Sm",mappings:{"default":{"default":"neither a superset of nor equal to"}},key:"2289"},
+{category:"Sm",mappings:{"default":{"default":"subset of with not equal to",alternative:"subset of or not equal to","short":"subset of or not equal to"}},key:"228A"},{category:"Sm",mappings:{"default":{"default":"superset of with not equal to",alternative:"superset of or not equal to","short":"superset of or not equal to"}},key:"228B"},{category:"Sm",mappings:{"default":{"default":"multiset"}},key:"228C"},{category:"Sm",mappings:{"default":{"default":"multiset multiplication"}},key:"228D"},{category:"Sm",
+mappings:{"default":{"default":"multiset union"}},key:"228E"},{category:"Sm",mappings:{"default":{"default":"square image of"}},key:"228F"},{category:"Sm",mappings:{"default":{"default":"square original of"}},key:"2290"},{category:"Sm",mappings:{"default":{"default":"square image of or equal to"}},key:"2291"},{category:"Sm",mappings:{"default":{"default":"square original of or equal to"}},key:"2292"},{category:"Sm",mappings:{"default":{"default":"square cap"}},key:"2293"},{category:"Sm",mappings:{"default":{"default":"square cup"}},
+key:"2294"},{category:"Sm",mappings:{"default":{"default":"circled plus"}},key:"2295"},{category:"Sm",mappings:{"default":{"default":"circled minus"}},key:"2296"},{category:"Sm",mappings:{"default":{"default":"circled times"}},key:"2297"},{category:"Sm",mappings:{"default":{"default":"circled division slash"}},key:"2298"},{category:"Sm",mappings:{"default":{"default":"circled dot operator"}},key:"2299"},{category:"Sm",mappings:{"default":{"default":"circled ring operator"}},key:"229A"},{category:"Sm",
+mappings:{"default":{"default":"circled asterisk operator"}},key:"229B"},{category:"Sm",mappings:{"default":{"default":"circled equals"}},key:"229C"},{category:"Sm",mappings:{"default":{"default":"circled dash"}},key:"229D"},{category:"Sm",mappings:{"default":{"default":"squared plus"}},key:"229E"},{category:"Sm",mappings:{"default":{"default":"squared minus"}},key:"229F"},{category:"Sm",mappings:{"default":{"default":"squared times"}},key:"22A0"},{category:"Sm",mappings:{"default":{"default":"squared dot operator"}},
+key:"22A1"},{category:"Sm",mappings:{"default":{"default":"right tack"}},key:"22A2"},{category:"Sm",mappings:{"default":{"default":"left tack"}},key:"22A3"},{category:"Sm",mappings:{"default":{"default":"down tack"}},key:"22A4"},{category:"Sm",mappings:{"default":{"default":"up tack"}},key:"22A5"},{category:"Sm",mappings:{"default":{"default":"assertion"}},key:"22A6"},{category:"Sm",mappings:{"default":{"default":"models"}},key:"22A7"},{category:"Sm",mappings:{"default":{"default":"true"}},key:"22A8"},
+{category:"Sm",mappings:{"default":{"default":"forces"}},key:"22A9"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar right turnstile"}},key:"22AA"},{category:"Sm",mappings:{"default":{"default":"double vertical bar double right turnstile"}},key:"22AB"},{category:"Sm",mappings:{"default":{"default":"does not prove"}},key:"22AC"},{category:"Sm",mappings:{"default":{"default":"not true"}},key:"22AD"},{category:"Sm",mappings:{"default":{"default":"does not force"}},key:"22AE"},{category:"Sm",
+mappings:{"default":{"default":"negated double vertical bar double right turnstile"}},key:"22AF"},{category:"Sm",mappings:{"default":{"default":"precedes under relation"}},key:"22B0"},{category:"Sm",mappings:{"default":{"default":"succeeds under relation"}},key:"22B1"},{category:"Sm",mappings:{"default":{"default":"normal subgroup of"}},key:"22B2"},{category:"Sm",mappings:{"default":{"default":"contains as normal subgroup"}},key:"22B3"},{category:"Sm",mappings:{"default":{"default":"normal subgroup of or equal to"}},
+key:"22B4"},{category:"Sm",mappings:{"default":{"default":"contains as normal subgroup or equal to"}},key:"22B5"},{category:"Sm",mappings:{"default":{"default":"original of"}},key:"22B6"},{category:"Sm",mappings:{"default":{"default":"image of"}},key:"22B7"},{category:"Sm",mappings:{"default":{"default":"multimap"}},key:"22B8"},{category:"Sm",mappings:{"default":{"default":"hermitian conjugate matrix"}},key:"22B9"},{category:"Sm",mappings:{"default":{"default":"intercalate"}},key:"22BA"},{category:"Sm",
+mappings:{"default":{"default":"xor"}},key:"22BB"},{category:"Sm",mappings:{"default":{"default":"nand"}},key:"22BC"},{category:"Sm",mappings:{"default":{"default":"nor"}},key:"22BD"},{category:"Sm",mappings:{"default":{"default":"right triangle"}},key:"22BF"},{category:"Sm",mappings:{"default":{"default":"n ary logical and"}},key:"22C0"},{category:"Sm",mappings:{"default":{"default":"n ary logical or"}},key:"22C1"},{category:"Sm",mappings:{"default":{"default":"n ary intersection"}},key:"22C2"},
+{category:"Sm",mappings:{"default":{"default":"n ary union"}},key:"22C3"},{category:"Sm",mappings:{"default":{"default":"diamond operator"}},key:"22C4"},{category:"Sm",mappings:{"default":{"default":"dot operator"}},key:"22C5"},{category:"Sm",mappings:{"default":{"default":"star operator"}},key:"22C6"},{category:"Sm",mappings:{"default":{"default":"division times"}},key:"22C7"},{category:"Sm",mappings:{"default":{"default":"bowtie"}},key:"22C8"},{category:"Sm",mappings:{"default":{"default":"left normal factor semidirect product"}},
+key:"22C9"},{category:"Sm",mappings:{"default":{"default":"right normal factor semidirect product"}},key:"22CA"},{category:"Sm",mappings:{"default":{"default":"left semidirect product"}},key:"22CB"},{category:"Sm",mappings:{"default":{"default":"right semidirect product"}},key:"22CC"},{category:"Sm",mappings:{"default":{"default":"reversed tilde equals"}},key:"22CD"},{category:"Sm",mappings:{"default":{"default":"curly logical or"}},key:"22CE"},{category:"Sm",mappings:{"default":{"default":"curly logical and"}},
+key:"22CF"},{category:"Sm",mappings:{"default":{"default":"double subset"}},key:"22D0"},{category:"Sm",mappings:{"default":{"default":"double superset"}},key:"22D1"},{category:"Sm",mappings:{"default":{"default":"double intersection"}},key:"22D2"},{category:"Sm",mappings:{"default":{"default":"double union"}},key:"22D3"},{category:"Sm",mappings:{"default":{"default":"pitchfork"}},key:"22D4"},{category:"Sm",mappings:{"default":{"default":"equal and parallel to"}},key:"22D5"},{category:"Sm",mappings:{"default":{"default":"less than with dot",
+alternative:"less than with dot","short":"less than dot"}},key:"22D6"},{category:"Sm",mappings:{"default":{"default":"greater than with dot",alternative:"greater than with dot","short":"greater than dot"}},key:"22D7"},{category:"Sm",mappings:{"default":{"default":"very much less than",alternative:"very much less than"}},key:"22D8"},{category:"Sm",mappings:{"default":{"default":"very much greater than",alternative:"very much greater than"}},key:"22D9"},{category:"Sm",mappings:{"default":{"default":"less than equal to or greater than",
+alternative:"less than equal to or greater than"}},key:"22DA"},{category:"Sm",mappings:{"default":{"default":"greater than equal to or less than",alternative:"greater than equal to or less than"}},key:"22DB"},{category:"Sm",mappings:{"default":{"default":"equal to or less than",alternative:"equal to or less than"}},key:"22DC"},{category:"Sm",mappings:{"default":{"default":"equal to or greater than",alternative:"equal to or greater than"}},key:"22DD"},{category:"Sm",mappings:{"default":{"default":"equal to or precedes"}},
+key:"22DE"},{category:"Sm",mappings:{"default":{"default":"equal to or succeeds"}},key:"22DF"},{category:"Sm",mappings:{"default":{"default":"does not precede or equal"}},key:"22E0"},{category:"Sm",mappings:{"default":{"default":"does not succeed or equal"}},key:"22E1"},{category:"Sm",mappings:{"default":{"default":"not square image of or equal to"}},key:"22E2"},{category:"Sm",mappings:{"default":{"default":"not square original of or equal to"}},key:"22E3"},{category:"Sm",mappings:{"default":{"default":"square image of or not equal to"}},
+key:"22E4"},{category:"Sm",mappings:{"default":{"default":"square original of or not equal to"}},key:"22E5"},{category:"Sm",mappings:{"default":{"default":"less than but not equivalent to",alternative:"less than but not equivalent to"}},key:"22E6"},{category:"Sm",mappings:{"default":{"default":"greater than but not equivalent to",alternative:"greater than but not equivalent to"}},key:"22E7"},{category:"Sm",mappings:{"default":{"default":"precedes but not equivalent to"}},key:"22E8"},{category:"Sm",
+mappings:{"default":{"default":"succeeds but not equivalent to"}},key:"22E9"},{category:"Sm",mappings:{"default":{"default":"not normal subgroup of"}},key:"22EA"},{category:"Sm",mappings:{"default":{"default":"does not contain as normal subgroup"}},key:"22EB"},{category:"Sm",mappings:{"default":{"default":"not normal subgroup of or equal to"}},key:"22EC"},{category:"Sm",mappings:{"default":{"default":"does not contain as normal subgroup or equal"}},key:"22ED"},{category:"Sm",mappings:{"default":{"default":"vertical ellipsis",
+"short":"dot dot dot"}},key:"22EE"},{category:"Sm",mappings:{"default":{"default":"midline horizontal ellipsis","short":"dot dot dot"}},key:"22EF"},{category:"Sm",mappings:{"default":{"default":"up right diagonal ellipsis","short":"diagonal dot dot dot"}},key:"22F0"},{category:"Sm",mappings:{"default":{"default":"down right diagonal ellipsis","short":"diagonal dot dot dot"}},key:"22F1"},{category:"Sm",mappings:{"default":{"default":"element of with long horizontal stroke"}},key:"22F2"},{category:"Sm",
+mappings:{"default":{"default":"element of with vertical bar at end of horizontal stroke"}},key:"22F3"},{category:"Sm",mappings:{"default":{"default":"small element of with vertical bar at end of horizontal stroke"}},key:"22F4"},{category:"Sm",mappings:{"default":{"default":"element of with dot above"}},key:"22F5"},{category:"Sm",mappings:{"default":{"default":"element of with overbar"}},key:"22F6"},{category:"Sm",mappings:{"default":{"default":"small element of with overbar"}},key:"22F7"},{category:"Sm",
+mappings:{"default":{"default":"element of with underbar"}},key:"22F8"},{category:"Sm",mappings:{"default":{"default":"element of with two horizontal strokes"}},key:"22F9"},{category:"Sm",mappings:{"default":{"default":"contains with long horizontal stroke"}},key:"22FA"},{category:"Sm",mappings:{"default":{"default":"contains with vertical bar at end of horizontal stroke"}},key:"22FB"},{category:"Sm",mappings:{"default":{"default":"small contains with vertical bar at end of horizontal stroke"}},key:"22FC"},
+{category:"Sm",mappings:{"default":{"default":"contains with overbar"}},key:"22FD"},{category:"Sm",mappings:{"default":{"default":"small contains with overbar"}},key:"22FE"},{category:"Sm",mappings:{"default":{"default":"z notation bag membership"}},key:"22FF"},{category:"So",mappings:{"default":{"default":"diameter sign","short":"diameter"}},key:"2300"},{category:"So",mappings:{"default":{"default":"house"}},key:"2302"},{category:"So",mappings:{"default":{"default":"projective"}},key:"2305"},{category:"So",
+mappings:{"default":{"default":"perspective"}},key:"2306"},{category:"So",mappings:{"default":{"default":"wavy line"}},key:"2307"},{category:"So",mappings:{"default":{"default":"reversed not sign","short":"reversed not"}},key:"2310"},{category:"So",mappings:{"default":{"default":"square lozenge"}},key:"2311"},{category:"So",mappings:{"default":{"default":"arc"}},key:"2312"},{category:"So",mappings:{"default":{"default":"segment"}},key:"2313"},{category:"So",mappings:{"default":{"default":"sector"}},
+key:"2314"},{category:"So",mappings:{"default":{"default":"heavy plus sign",alternative:"heavy plus","short":"bold plus"}},key:"2795"},{category:"So",mappings:{"default":{"default":"heavy minus sign",alternative:"heavy minus","short":"bold minus"}},key:"2796"},{category:"So",mappings:{"default":{"default":"heavy division sign",alternative:"heavy division","short":"bold division"}},key:"2797"},{category:"So",mappings:{"default":{"default":"curly loop"}},key:"27B0"},{category:"So",mappings:{"default":{"default":"double curly loop"}},
+key:"27BF"},{category:"Sm",mappings:{"default":{"default":"white triangle containing small white triangle"}},key:"27C1"},{category:"Sm",mappings:{"default":{"default":"perpendicular"}},key:"27C2"},{category:"Sm",mappings:{"default":{"default":"open subset"}},key:"27C3"},{category:"Sm",mappings:{"default":{"default":"open superset"}},key:"27C4"},{category:"Sm",mappings:{"default":{"default":"or with dot inside"}},key:"27C7"},{category:"Sm",mappings:{"default":{"default":"reverse solidus preceding subset"}},
+key:"27C8"},{category:"Sm",mappings:{"default":{"default":"superset preceding solidus"}},key:"27C9"},{category:"Sm",mappings:{"default":{"default":"vertical bar with horizontal stroke"}},key:"27CA"},{category:"Sm",mappings:{"default":{"default":"mathematical rising diagonal"}},key:"27CB"},{category:"Sm",mappings:{"default":{"default":"long division"}},key:"27CC"},{category:"Sm",mappings:{"default":{"default":"mathematical falling diagonal"}},key:"27CD"},{category:"Sm",mappings:{"default":{"default":"squared logical and"}},
+key:"27CE"},{category:"Sm",mappings:{"default":{"default":"squared logical or"}},key:"27CF"},{category:"Sm",mappings:{"default":{"default":"white diamond with centered dot"}},key:"27D0"},{category:"Sm",mappings:{"default":{"default":"and with dot"}},key:"27D1"},{category:"Sm",mappings:{"default":{"default":"element of opening upwards"}},key:"27D2"},{category:"Sm",mappings:{"default":{"default":"lower right corner with dot"}},key:"27D3"},{category:"Sm",mappings:{"default":{"default":"upper left corner with dot"}},
+key:"27D4"},{category:"Sm",mappings:{"default":{"default":"left outer join"}},key:"27D5"},{category:"Sm",mappings:{"default":{"default":"right outer join"}},key:"27D6"},{category:"Sm",mappings:{"default":{"default":"full outer join"}},key:"27D7"},{category:"Sm",mappings:{"default":{"default":"large up tack"}},key:"27D8"},{category:"Sm",mappings:{"default":{"default":"large down tack"}},key:"27D9"},{category:"Sm",mappings:{"default":{"default":"left and right double turnstile"}},key:"27DA"},{category:"Sm",
+mappings:{"default":{"default":"left and right tack"}},key:"27DB"},{category:"Sm",mappings:{"default":{"default":"left multimap"}},key:"27DC"},{category:"Sm",mappings:{"default":{"default":"long right tack"}},key:"27DD"},{category:"Sm",mappings:{"default":{"default":"long left tack"}},key:"27DE"},{category:"Sm",mappings:{"default":{"default":"up tack with circle above"}},key:"27DF"},{category:"Sm",mappings:{"default":{"default":"lozenge divided by horizontal rule"}},key:"27E0"},{category:"Sm",mappings:{"default":{"default":"white concave sided diamond"}},
+key:"27E1"},{category:"Sm",mappings:{"default":{"default":"white concave sided diamond with leftwards tick"}},key:"27E2"},{category:"Sm",mappings:{"default":{"default":"white concave sided diamond with rightwards tick"}},key:"27E3"},{category:"Sm",mappings:{"default":{"default":"white square with leftwards tick"}},key:"27E4"},{category:"Sm",mappings:{"default":{"default":"white square with rightwards tick"}},key:"27E5"},{category:"Sm",mappings:{"default":{"default":"rising diagonal crossing falling diagonal"}},
+key:"292B"},{category:"Sm",mappings:{"default":{"default":"falling diagonal crossing rising diagonal"}},key:"292C"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar delimiter"}},key:"2980"},{category:"Sm",mappings:{"default":{"default":"z notation spot"}},key:"2981"},{category:"Sm",mappings:{"default":{"default":"z notation type colon"}},key:"2982"},{category:"Sm",mappings:{"default":{"default":"dotted fence"}},key:"2999"},{category:"Sm",mappings:{"default":{"default":"vertical zigzag line"}},
+key:"299A"},{category:"Sm",mappings:{"default":{"default":"reversed empty set"}},key:"29B0"},{category:"Sm",mappings:{"default":{"default":"empty set with overbar"}},key:"29B1"},{category:"Sm",mappings:{"default":{"default":"empty set with small circle above"}},key:"29B2"},{category:"Sm",mappings:{"default":{"default":"circle with horizontal bar"}},key:"29B5"},{category:"Sm",mappings:{"default":{"default":"circled vertical bar"}},key:"29B6"},{category:"Sm",mappings:{"default":{"default":"circled parallel"}},
+key:"29B7"},{category:"Sm",mappings:{"default":{"default":"circled reverse solidus"}},key:"29B8"},{category:"Sm",mappings:{"default":{"default":"circled perpendicular"}},key:"29B9"},{category:"Sm",mappings:{"default":{"default":"circle divided by horizontal bar and top half divided by vertical bar"}},key:"29BA"},{category:"Sm",mappings:{"default":{"default":"circle with superimposed x"}},key:"29BB"},{category:"Sm",mappings:{"default":{"default":"circled anticlockwise rotated division sign","short":"circled anticlockwise rotated division"}},
+key:"29BC"},{category:"Sm",mappings:{"default":{"default":"circled white bullet"}},key:"29BE"},{category:"Sm",mappings:{"default":{"default":"circled bullet"}},key:"29BF"},{category:"Sm",mappings:{"default":{"default":"circled less than"}},key:"29C0"},{category:"Sm",mappings:{"default":{"default":"circled greater than"}},key:"29C1"},{category:"Sm",mappings:{"default":{"default":"circle with small circle to the right"}},key:"29C2"},{category:"Sm",mappings:{"default":{"default":"circle with two horizontal strokes to the right"}},
+key:"29C3"},{category:"Sm",mappings:{"default":{"default":"squared rising diagonal slash"}},key:"29C4"},{category:"Sm",mappings:{"default":{"default":"squared falling diagonal slash"}},key:"29C5"},{category:"Sm",mappings:{"default":{"default":"squared asterisk"}},key:"29C6"},{category:"Sm",mappings:{"default":{"default":"squared small circle"}},key:"29C7"},{category:"Sm",mappings:{"default":{"default":"squared square"}},key:"29C8"},{category:"Sm",mappings:{"default":{"default":"two joined squares"}},
+key:"29C9"},{category:"Sm",mappings:{"default":{"default":"triangle with dot above"}},key:"29CA"},{category:"Sm",mappings:{"default":{"default":"triangle with underbar"}},key:"29CB"},{category:"Sm",mappings:{"default":{"default":"s in triangle"}},key:"29CC"},{category:"Sm",mappings:{"default":{"default":"triangle with serifs at bottom"}},key:"29CD"},{category:"Sm",mappings:{"default":{"default":"right triangle above left triangle"}},key:"29CE"},{category:"Sm",mappings:{"default":{"default":"left triangle beside vertical bar"}},
+key:"29CF"},{category:"Sm",mappings:{"default":{"default":"vertical bar beside right triangle"}},key:"29D0"},{category:"Sm",mappings:{"default":{"default":"bowtie with left half black"}},key:"29D1"},{category:"Sm",mappings:{"default":{"default":"bowtie with right half black"}},key:"29D2"},{category:"Sm",mappings:{"default":{"default":"black bowtie"}},key:"29D3"},{category:"Sm",mappings:{"default":{"default":"times with left half black"}},key:"29D4"},{category:"Sm",mappings:{"default":{"default":"times with right half black"}},
+key:"29D5"},{category:"Sm",mappings:{"default":{"default":"white hourglass"}},key:"29D6"},{category:"Sm",mappings:{"default":{"default":"black hourglass"}},key:"29D7"},{category:"Sm",mappings:{"default":{"default":"incomplete infinity"}},key:"29DC"},{category:"Sm",mappings:{"default":{"default":"tie over infinity"}},key:"29DD"},{category:"Sm",mappings:{"default":{"default":"infinity negated with vertical bar"}},key:"29DE"},{category:"Sm",mappings:{"default":{"default":"double ended multimap"}},key:"29DF"},
+{category:"Sm",mappings:{"default":{"default":"square with contoured outline"}},key:"29E0"},{category:"Sm",mappings:{"default":{"default":"increases as"}},key:"29E1"},{category:"Sm",mappings:{"default":{"default":"shuffle product"}},key:"29E2"},{category:"Sm",mappings:{"default":{"default":"equals sign and slanted parallel"}},key:"29E3"},{category:"Sm",mappings:{"default":{"default":"equals sign and slanted parallel with tilde above"}},key:"29E4"},{category:"Sm",mappings:{"default":{"default":"identical to and slanted parallel"}},
+key:"29E5"},{category:"Sm",mappings:{"default":{"default":"gleich stark"}},key:"29E6"},{category:"Sm",mappings:{"default":{"default":"thermodynamic"}},key:"29E7"},{category:"Sm",mappings:{"default":{"default":"down pointing triangle with left half black"}},key:"29E8"},{category:"Sm",mappings:{"default":{"default":"down pointing triangle with right half black"}},key:"29E9"},{category:"Sm",mappings:{"default":{"default":"black lozenge"}},key:"29EB"},{category:"Sm",mappings:{"default":{"default":"error barred white square"}},
+key:"29EE"},{category:"Sm",mappings:{"default":{"default":"error barred black square"}},key:"29EF"},{category:"Sm",mappings:{"default":{"default":"error barred white diamond"}},key:"29F0"},{category:"Sm",mappings:{"default":{"default":"error barred black diamond"}},key:"29F1"},{category:"Sm",mappings:{"default":{"default":"error barred white circle"}},key:"29F2"},{category:"Sm",mappings:{"default":{"default":"error barred black circle"}},key:"29F3"},{category:"Sm",mappings:{"default":{"default":"rule delayed"}},
+key:"29F4"},{category:"Sm",mappings:{"default":{"default":"reverse solidus operator"}},key:"29F5"},{category:"Sm",mappings:{"default":{"default":"solidus with overbar"}},key:"29F6"},{category:"Sm",mappings:{"default":{"default":"reverse solidus with horizontal stroke"}},key:"29F7"},{category:"Sm",mappings:{"default":{"default":"big solidus"}},key:"29F8"},{category:"Sm",mappings:{"default":{"default":"big reverse solidus"}},key:"29F9"},{category:"Sm",mappings:{"default":{"default":"double plus"}},
+key:"29FA"},{category:"Sm",mappings:{"default":{"default":"triple plus"}},key:"29FB"},{category:"Sm",mappings:{"default":{"default":"tiny"}},key:"29FE"},{category:"Sm",mappings:{"default":{"default":"miny"}},key:"29FF"},{category:"Sm",mappings:{"default":{"default":"n ary circled dot operator"}},key:"2A00"},{category:"Sm",mappings:{"default":{"default":"n ary circled plus operator"}},key:"2A01"},{category:"Sm",mappings:{"default":{"default":"n ary circled times operator"}},key:"2A02"},{category:"Sm",
+mappings:{"default":{"default":"n ary union operator with dot"}},key:"2A03"},{category:"Sm",mappings:{"default":{"default":"n ary union operator with plus"}},key:"2A04"},{category:"Sm",mappings:{"default":{"default":"n ary square intersection operator"}},key:"2A05"},{category:"Sm",mappings:{"default":{"default":"n ary square union operator"}},key:"2A06"},{category:"Sm",mappings:{"default":{"default":"two logical and operator"}},key:"2A07"},{category:"Sm",mappings:{"default":{"default":"two logical or operator"}},
+key:"2A08"},{category:"Sm",mappings:{"default":{"default":"n ary times operator"}},key:"2A09"},{category:"Sm",mappings:{"default":{"default":"modulo two sum"}},key:"2A0A"},{category:"Sm",mappings:{"default":{"default":"summation with integral"}},key:"2A0B"},{category:"Sm",mappings:{"default":{"default":"quadruple integral operator"}},key:"2A0C"},{category:"Sm",mappings:{"default":{"default":"finite part integral"}},key:"2A0D"},{category:"Sm",mappings:{"default":{"default":"integral with double stroke"}},
+key:"2A0E"},{category:"Sm",mappings:{"default":{"default":"integral average with slash"}},key:"2A0F"},{category:"Sm",mappings:{"default":{"default":"circulation function"}},key:"2A10"},{category:"Sm",mappings:{"default":{"default":"anticlockwise integration"}},key:"2A11"},{category:"Sm",mappings:{"default":{"default":"line integration with rectangular path around pole"}},key:"2A12"},{category:"Sm",mappings:{"default":{"default":"line integration with semicircular path around pole"}},key:"2A13"},{category:"Sm",
+mappings:{"default":{"default":"line integration not including the pole"}},key:"2A14"},{category:"Sm",mappings:{"default":{"default":"integral around a point operator"}},key:"2A15"},{category:"Sm",mappings:{"default":{"default":"quaternion integral operator"}},key:"2A16"},{category:"Sm",mappings:{"default":{"default":"integral with times sign","short":"integral with times"}},key:"2A18"},{category:"Sm",mappings:{"default":{"default":"integral with intersection"}},key:"2A19"},{category:"Sm",mappings:{"default":{"default":"integral with union"}},
+key:"2A1A"},{category:"Sm",mappings:{"default":{"default":"integral with overbar"}},key:"2A1B"},{category:"Sm",mappings:{"default":{"default":"integral with underbar"}},key:"2A1C"},{category:"Sm",mappings:{"default":{"default":"join"}},key:"2A1D"},{category:"Sm",mappings:{"default":{"default":"large left triangle operator"}},key:"2A1E"},{category:"Sm",mappings:{"default":{"default":"z notation schema composition"}},key:"2A1F"},{category:"Sm",mappings:{"default":{"default":"z notation schema piping"}},
+key:"2A20"},{category:"Sm",mappings:{"default":{"default":"z notation schema projection"}},key:"2A21"},{category:"Sm",mappings:{"default":{"default":"plus sign with small circle above","short":"plus with circle above"}},key:"2A22"},{category:"Sm",mappings:{"default":{"default":"plus sign with circumflex accent above","short":"plus hat"}},key:"2A23"},{category:"Sm",mappings:{"default":{"default":"plus sign with tilde above","short":"plus tilde"}},key:"2A24"},{category:"Sm",mappings:{"default":{"default":"plus sign with dot below",
+"short":"plus underdot"}},key:"2A25"},{category:"Sm",mappings:{"default":{"default":"plus sign with tilde below"}},key:"2A26"},{category:"Sm",mappings:{"default":{"default":"plus sign with subscript two"}},key:"2A27"},{category:"Sm",mappings:{"default":{"default":"plus sign with black triangle"}},key:"2A28"},{category:"Sm",mappings:{"default":{"default":"minus sign with comma above"}},key:"2A29"},{category:"Sm",mappings:{"default":{"default":"minus sign with dot below"}},key:"2A2A"},{category:"Sm",
+mappings:{"default":{"default":"minus sign with falling dots"}},key:"2A2B"},{category:"Sm",mappings:{"default":{"default":"minus sign with rising dots"}},key:"2A2C"},{category:"Sm",mappings:{"default":{"default":"plus sign in left half circle"}},key:"2A2D"},{category:"Sm",mappings:{"default":{"default":"plus sign in right half circle"}},key:"2A2E"},{category:"Sm",mappings:{"default":{"default":"vector or cross product"}},key:"2A2F"},{category:"Sm",mappings:{"default":{"default":"multiplication sign with dot above"}},
+key:"2A30"},{category:"Sm",mappings:{"default":{"default":"multiplication sign with underbar"}},key:"2A31"},{category:"Sm",mappings:{"default":{"default":"semidirect product with bottom closed"}},key:"2A32"},{category:"Sm",mappings:{"default":{"default":"smash product"}},key:"2A33"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in left half circle"}},key:"2A34"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in right half circle"}},key:"2A35"},{category:"Sm",
+mappings:{"default":{"default":"circled multiplication sign with circumflex accent"}},key:"2A36"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in double circle"}},key:"2A37"},{category:"Sm",mappings:{"default":{"default":"circled division sign","short":"circled division"}},key:"2A38"},{category:"Sm",mappings:{"default":{"default":"plus sign in triangle"}},key:"2A39"},{category:"Sm",mappings:{"default":{"default":"minus sign in triangle"}},key:"2A3A"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in triangle"}},
+key:"2A3B"},{category:"Sm",mappings:{"default":{"default":"interior product"}},key:"2A3C"},{category:"Sm",mappings:{"default":{"default":"righthand interior product"}},key:"2A3D"},{category:"Sm",mappings:{"default":{"default":"z notation relational composition"}},key:"2A3E"},{category:"Sm",mappings:{"default":{"default":"amalgamation or coproduct"}},key:"2A3F"},{category:"Sm",mappings:{"default":{"default":"intersection with dot"}},key:"2A40"},{category:"Sm",mappings:{"default":{"default":"union with minus sign",
+"short":"union with minus"}},key:"2A41"},{category:"Sm",mappings:{"default":{"default":"union with overbar"}},key:"2A42"},{category:"Sm",mappings:{"default":{"default":"intersection with overbar"}},key:"2A43"},{category:"Sm",mappings:{"default":{"default":"intersection with logical and"}},key:"2A44"},{category:"Sm",mappings:{"default":{"default":"union with logical or"}},key:"2A45"},{category:"Sm",mappings:{"default":{"default":"union above intersection"}},key:"2A46"},{category:"Sm",mappings:{"default":{"default":"intersection above union"}},
+key:"2A47"},{category:"Sm",mappings:{"default":{"default":"union above bar above intersection"}},key:"2A48"},{category:"Sm",mappings:{"default":{"default":"intersection above bar above union"}},key:"2A49"},{category:"Sm",mappings:{"default":{"default":"union beside and joined with union"}},key:"2A4A"},{category:"Sm",mappings:{"default":{"default":"intersection beside and joined with intersection"}},key:"2A4B"},{category:"Sm",mappings:{"default":{"default":"closed union with serifs"}},key:"2A4C"},
+{category:"Sm",mappings:{"default":{"default":"closed intersection with serifs"}},key:"2A4D"},{category:"Sm",mappings:{"default":{"default":"double square intersection"}},key:"2A4E"},{category:"Sm",mappings:{"default":{"default":"double square union"}},key:"2A4F"},{category:"Sm",mappings:{"default":{"default":"closed union with serifs and smash product"}},key:"2A50"},{category:"Sm",mappings:{"default":{"default":"logical and with dot above"}},key:"2A51"},{category:"Sm",mappings:{"default":{"default":"logical or with dot above"}},
+key:"2A52"},{category:"Sm",mappings:{"default":{"default":"double logical and"}},key:"2A53"},{category:"Sm",mappings:{"default":{"default":"double logical or"}},key:"2A54"},{category:"Sm",mappings:{"default":{"default":"two intersecting logical and"}},key:"2A55"},{category:"Sm",mappings:{"default":{"default":"two intersecting logical or"}},key:"2A56"},{category:"Sm",mappings:{"default":{"default":"sloping large or"}},key:"2A57"},{category:"Sm",mappings:{"default":{"default":"sloping large and"}},
+key:"2A58"},{category:"Sm",mappings:{"default":{"default":"logical or overlapping logical and"}},key:"2A59"},{category:"Sm",mappings:{"default":{"default":"logical and with middle stem"}},key:"2A5A"},{category:"Sm",mappings:{"default":{"default":"logical or with middle stem"}},key:"2A5B"},{category:"Sm",mappings:{"default":{"default":"logical and with horizontal dash"}},key:"2A5C"},{category:"Sm",mappings:{"default":{"default":"logical or with horizontal dash"}},key:"2A5D"},{category:"Sm",mappings:{"default":{"default":"logical and with double overbar"}},
+key:"2A5E"},{category:"Sm",mappings:{"default":{"default":"logical and with underbar"}},key:"2A5F"},{category:"Sm",mappings:{"default":{"default":"logical and with double underbar"}},key:"2A60"},{category:"Sm",mappings:{"default":{"default":"small vee with underbar"}},key:"2A61"},{category:"Sm",mappings:{"default":{"default":"logical or with double overbar"}},key:"2A62"},{category:"Sm",mappings:{"default":{"default":"logical or with double underbar"}},key:"2A63"},{category:"Sm",mappings:{"default":{"default":"z notation domain antirestriction"}},
+key:"2A64"},{category:"Sm",mappings:{"default":{"default":"z notation range antirestriction"}},key:"2A65"},{category:"Sm",mappings:{"default":{"default":"equals sign with dot below"}},key:"2A66"},{category:"Sm",mappings:{"default":{"default":"identical with dot above"}},key:"2A67"},{category:"Sm",mappings:{"default":{"default":"triple horizontal bar with double vertical stroke"}},key:"2A68"},{category:"Sm",mappings:{"default":{"default":"triple horizontal bar with triple vertical stroke"}},key:"2A69"},
+{category:"Sm",mappings:{"default":{"default":"tilde operator with dot above"}},key:"2A6A"},{category:"Sm",mappings:{"default":{"default":"tilde operator with rising dots"}},key:"2A6B"},{category:"Sm",mappings:{"default":{"default":"similar minus similar"}},key:"2A6C"},{category:"Sm",mappings:{"default":{"default":"congruent with dot above"}},key:"2A6D"},{category:"Sm",mappings:{"default":{"default":"equals with asterisk"}},key:"2A6E"},{category:"Sm",mappings:{"default":{"default":"almost equal to with circumflex accent",
+"short":"almost equal hat"}},key:"2A6F"},{category:"Sm",mappings:{"default":{"default":"approximately equal or equal to"}},key:"2A70"},{category:"Sm",mappings:{"default":{"default":"equals sign above plus sign","short":"equals above plus"}},key:"2A71"},{category:"Sm",mappings:{"default":{"default":"plus sign above equals sign","short":"plus above equals"}},key:"2A72"},{category:"Sm",mappings:{"default":{"default":"equals sign above tilde operator","short":"equals above tilde operator"}},key:"2A73"},
+{category:"Sm",mappings:{"default":{"default":"double colon equal"}},key:"2A74"},{category:"Sm",mappings:{"default":{"default":"two consecutive equals signs","short":"two consecutive equals"}},key:"2A75"},{category:"Sm",mappings:{"default":{"default":"three consecutive equals signs","short":"three consecutive equals"}},key:"2A76"},{category:"Sm",mappings:{"default":{"default":"equals sign with two dots above and two dots below"}},key:"2A77"},{category:"Sm",mappings:{"default":{"default":"equivalent with four dots above"}},
+key:"2A78"},{category:"Sm",mappings:{"default":{"default":"less than with circle inside"}},key:"2A79"},{category:"Sm",mappings:{"default":{"default":"greater than with circle inside"}},key:"2A7A"},{category:"Sm",mappings:{"default":{"default":"less than with question mark above"}},key:"2A7B"},{category:"Sm",mappings:{"default":{"default":"greater than with question mark above"}},key:"2A7C"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to"}},key:"2A7D"},{category:"Sm",
+mappings:{"default":{"default":"greater than or slanted equal to"}},key:"2A7E"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to with dot inside"}},key:"2A7F"},{category:"Sm",mappings:{"default":{"default":"greater than or slanted equal to with dot inside"}},key:"2A80"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to with dot above"}},key:"2A81"},{category:"Sm",mappings:{"default":{"default":"greater than or slanted equal to with dot above"}},
+key:"2A82"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to with dot above right"}},key:"2A83"},{category:"Sm",mappings:{"default":{"default":"greater than or slanted equal to with dot above left"}},key:"2A84"},{category:"Sm",mappings:{"default":{"default":"less than or approximate"}},key:"2A85"},{category:"Sm",mappings:{"default":{"default":"greater than or approximate"}},key:"2A86"},{category:"Sm",mappings:{"default":{"default":"less than and single line not equal to"}},
+key:"2A87"},{category:"Sm",mappings:{"default":{"default":"greater than and single line not equal to"}},key:"2A88"},{category:"Sm",mappings:{"default":{"default":"less than and not approximate"}},key:"2A89"},{category:"Sm",mappings:{"default":{"default":"greater than and not approximate"}},key:"2A8A"},{category:"Sm",mappings:{"default":{"default":"less than above double line equal above greater than"}},key:"2A8B"},{category:"Sm",mappings:{"default":{"default":"greater than above double line equal above less than"}},
+key:"2A8C"},{category:"Sm",mappings:{"default":{"default":"less than above similar or equal"}},key:"2A8D"},{category:"Sm",mappings:{"default":{"default":"greater than above similar or equal"}},key:"2A8E"},{category:"Sm",mappings:{"default":{"default":"less than above similar above greater than"}},key:"2A8F"},{category:"Sm",mappings:{"default":{"default":"greater than above similar above less than"}},key:"2A90"},{category:"Sm",mappings:{"default":{"default":"less than above greater than above double line equal"}},
+key:"2A91"},{category:"Sm",mappings:{"default":{"default":"greater than above less than above double line equal"}},key:"2A92"},{category:"Sm",mappings:{"default":{"default":"less than above slanted equal above greater than above slanted equal"}},key:"2A93"},{category:"Sm",mappings:{"default":{"default":"greater than above slanted equal above less than above slanted equal"}},key:"2A94"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or less than"}},key:"2A95"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or greater than"}},
+key:"2A96"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or less than with dot inside"}},key:"2A97"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or greater than with dot inside"}},key:"2A98"},{category:"Sm",mappings:{"default":{"default":"double line equal to or less than"}},key:"2A99"},{category:"Sm",mappings:{"default":{"default":"double line equal to or greater than"}},key:"2A9A"},{category:"Sm",mappings:{"default":{"default":"double line slanted equal to or less than"}},
+key:"2A9B"},{category:"Sm",mappings:{"default":{"default":"double line slanted equal to or greater than"}},key:"2A9C"},{category:"Sm",mappings:{"default":{"default":"similar or less than"}},key:"2A9D"},{category:"Sm",mappings:{"default":{"default":"similar or greater than"}},key:"2A9E"},{category:"Sm",mappings:{"default":{"default":"similar above less than above equals sign"}},key:"2A9F"},{category:"Sm",mappings:{"default":{"default":"similar above greater than above equals sign"}},key:"2AA0"},{category:"Sm",
+mappings:{"default":{"default":"double nested less than"}},key:"2AA1"},{category:"Sm",mappings:{"default":{"default":"double nested greater than"}},key:"2AA2"},{category:"Sm",mappings:{"default":{"default":"double nested less than with underbar"}},key:"2AA3"},{category:"Sm",mappings:{"default":{"default":"greater than overlapping less than"}},key:"2AA4"},{category:"Sm",mappings:{"default":{"default":"greater than beside less than"}},key:"2AA5"},{category:"Sm",mappings:{"default":{"default":"less than closed by curve"}},
+key:"2AA6"},{category:"Sm",mappings:{"default":{"default":"greater than closed by curve"}},key:"2AA7"},{category:"Sm",mappings:{"default":{"default":"less than closed by curve above slanted equal"}},key:"2AA8"},{category:"Sm",mappings:{"default":{"default":"greater than closed by curve above slanted equal"}},key:"2AA9"},{category:"Sm",mappings:{"default":{"default":"smaller than"}},key:"2AAA"},{category:"Sm",mappings:{"default":{"default":"larger than"}},key:"2AAB"},{category:"Sm",mappings:{"default":{"default":"smaller than or equal to"}},
+key:"2AAC"},{category:"Sm",mappings:{"default":{"default":"larger than or equal to"}},key:"2AAD"},{category:"Sm",mappings:{"default":{"default":"equals sign with bumpy above"}},key:"2AAE"},{category:"Sm",mappings:{"default":{"default":"precedes above single line equals sign"}},key:"2AAF"},{category:"Sm",mappings:{"default":{"default":"succeeds above single line equals sign"}},key:"2AB0"},{category:"Sm",mappings:{"default":{"default":"precedes above single line not equal to"}},key:"2AB1"},{category:"Sm",
+mappings:{"default":{"default":"succeeds above single line not equal to"}},key:"2AB2"},{category:"Sm",mappings:{"default":{"default":"precedes above equals sign"}},key:"2AB3"},{category:"Sm",mappings:{"default":{"default":"succeeds above equals sign"}},key:"2AB4"},{category:"Sm",mappings:{"default":{"default":"precedes above not equal to"}},key:"2AB5"},{category:"Sm",mappings:{"default":{"default":"succeeds above not equal to"}},key:"2AB6"},{category:"Sm",mappings:{"default":{"default":"precedes above almost equal to"}},
+key:"2AB7"},{category:"Sm",mappings:{"default":{"default":"succeeds above almost equal to"}},key:"2AB8"},{category:"Sm",mappings:{"default":{"default":"precedes above not almost equal to"}},key:"2AB9"},{category:"Sm",mappings:{"default":{"default":"succeeds above not almost equal to"}},key:"2ABA"},{category:"Sm",mappings:{"default":{"default":"double precedes"}},key:"2ABB"},{category:"Sm",mappings:{"default":{"default":"double succeeds"}},key:"2ABC"},{category:"Sm",mappings:{"default":{"default":"subset with dot"}},
+key:"2ABD"},{category:"Sm",mappings:{"default":{"default":"superset with dot"}},key:"2ABE"},{category:"Sm",mappings:{"default":{"default":"subset with plus sign below"}},key:"2ABF"},{category:"Sm",mappings:{"default":{"default":"superset with plus sign below"}},key:"2AC0"},{category:"Sm",mappings:{"default":{"default":"subset with multiplication sign below"}},key:"2AC1"},{category:"Sm",mappings:{"default":{"default":"superset with multiplication sign below"}},key:"2AC2"},{category:"Sm",mappings:{"default":{"default":"subset of or equal to with dot above"}},
+key:"2AC3"},{category:"Sm",mappings:{"default":{"default":"superset of or equal to with dot above"}},key:"2AC4"},{category:"Sm",mappings:{"default":{"default":"subset of above equals sign"}},key:"2AC5"},{category:"Sm",mappings:{"default":{"default":"superset of above equals sign"}},key:"2AC6"},{category:"Sm",mappings:{"default":{"default":"subset of above tilde operator"}},key:"2AC7"},{category:"Sm",mappings:{"default":{"default":"superset of above tilde operator"}},key:"2AC8"},{category:"Sm",mappings:{"default":{"default":"subset of above almost equal to"}},
+key:"2AC9"},{category:"Sm",mappings:{"default":{"default":"superset of above almost equal to"}},key:"2ACA"},{category:"Sm",mappings:{"default":{"default":"subset of above not equal to"}},key:"2ACB"},{category:"Sm",mappings:{"default":{"default":"superset of above not equal to"}},key:"2ACC"},{category:"Sm",mappings:{"default":{"default":"square left open box operator"}},key:"2ACD"},{category:"Sm",mappings:{"default":{"default":"square right open box operator"}},key:"2ACE"},{category:"Sm",mappings:{"default":{"default":"closed subset"}},
+key:"2ACF"},{category:"Sm",mappings:{"default":{"default":"closed superset"}},key:"2AD0"},{category:"Sm",mappings:{"default":{"default":"closed subset or equal to"}},key:"2AD1"},{category:"Sm",mappings:{"default":{"default":"closed superset or equal to"}},key:"2AD2"},{category:"Sm",mappings:{"default":{"default":"subset above superset"}},key:"2AD3"},{category:"Sm",mappings:{"default":{"default":"superset above subset"}},key:"2AD4"},{category:"Sm",mappings:{"default":{"default":"subset above subset"}},
+key:"2AD5"},{category:"Sm",mappings:{"default":{"default":"superset above superset"}},key:"2AD6"},{category:"Sm",mappings:{"default":{"default":"superset beside subset"}},key:"2AD7"},{category:"Sm",mappings:{"default":{"default":"superset beside and joined by dash with subset"}},key:"2AD8"},{category:"Sm",mappings:{"default":{"default":"element of opening downwards"}},key:"2AD9"},{category:"Sm",mappings:{"default":{"default":"pitchfork with tee top"}},key:"2ADA"},{category:"Sm",mappings:{"default":{"default":"transversal intersection"}},
+key:"2ADB"},{category:"Sm",mappings:{"default":{"default":"forking"}},key:"2ADC"},{category:"Sm",mappings:{"default":{"default":"nonforking"}},key:"2ADD"},{category:"Sm",mappings:{"default":{"default":"short left tack"}},key:"2ADE"},{category:"Sm",mappings:{"default":{"default":"short down tack"}},key:"2ADF"},{category:"Sm",mappings:{"default":{"default":"short up tack"}},key:"2AE0"},{category:"Sm",mappings:{"default":{"default":"perpendicular with s"}},key:"2AE1"},{category:"Sm",mappings:{"default":{"default":"vertical bar triple right turnstile"}},
+key:"2AE2"},{category:"Sm",mappings:{"default":{"default":"double vertical bar left turnstile"}},key:"2AE3"},{category:"Sm",mappings:{"default":{"default":"vertical bar double left turnstile"}},key:"2AE4"},{category:"Sm",mappings:{"default":{"default":"double vertical bar double left turnstile"}},key:"2AE5"},{category:"Sm",mappings:{"default":{"default":"long dash from left member of double vertical"}},key:"2AE6"},{category:"Sm",mappings:{"default":{"default":"short down tack with overbar"}},key:"2AE7"},
+{category:"Sm",mappings:{"default":{"default":"short up tack with underbar"}},key:"2AE8"},{category:"Sm",mappings:{"default":{"default":"short up tack above short down tack"}},key:"2AE9"},{category:"Sm",mappings:{"default":{"default":"double down tack"}},key:"2AEA"},{category:"Sm",mappings:{"default":{"default":"double up tack"}},key:"2AEB"},{category:"Sm",mappings:{"default":{"default":"double stroke not sign"}},key:"2AEC"},{category:"Sm",mappings:{"default":{"default":"reversed double stroke not sign"}},
+key:"2AED"},{category:"Sm",mappings:{"default":{"default":"does not divide with reversed negation slash"}},key:"2AEE"},{category:"Sm",mappings:{"default":{"default":"vertical line with circle above"}},key:"2AEF"},{category:"Sm",mappings:{"default":{"default":"vertical line with circle below"}},key:"2AF0"},{category:"Sm",mappings:{"default":{"default":"down tack with circle below"}},key:"2AF1"},{category:"Sm",mappings:{"default":{"default":"parallel with horizontal stroke"}},key:"2AF2"},{category:"Sm",
+mappings:{"default":{"default":"parallel with tilde operator"}},key:"2AF3"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar binary relation"}},key:"2AF4"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar with horizontal stroke"}},key:"2AF5"},{category:"Sm",mappings:{"default":{"default":"triple colon operator"}},key:"2AF6"},{category:"Sm",mappings:{"default":{"default":"triple nested less than"}},key:"2AF7"},{category:"Sm",mappings:{"default":{"default":"triple nested greater than"}},
+key:"2AF8"},{category:"Sm",mappings:{"default":{"default":"double line slanted less than or equal to"}},key:"2AF9"},{category:"Sm",mappings:{"default":{"default":"double line slanted greater than or equal to"}},key:"2AFA"},{category:"Sm",mappings:{"default":{"default":"triple solidus binary relation"}},key:"2AFB"},{category:"Sm",mappings:{"default":{"default":"large triple vertical bar operator"}},key:"2AFC"},{category:"Sm",mappings:{"default":{"default":"double solidus operator"}},key:"2AFD"},{category:"Sm",
+mappings:{"default":{"default":"white vertical bar"}},key:"2AFE"},{category:"Sm",mappings:{"default":{"default":"n ary white vertical bar"}},key:"2AFF"},{category:"Pd",mappings:{"default":{"default":"wave dash"}},key:"301C"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical comma"}},key:"FE10"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical colon"}},key:"FE13"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical semicolon"}},
+key:"FE14"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical exclamation mark"}},key:"FE15"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical question mark"}},key:"FE16"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical horizontal ellipsis"}},key:"FE19"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical two dot leader",alternative:"glyph for vertical two dot leader"}},key:"FE30"},{category:"Pd",
+mappings:{"default":{"default":"presentation form for vertical em dash",alternative:"glyph for vertical em dash"}},key:"FE31"},{category:"Pd",mappings:{"default":{"default":"presentation form for vertical en dash",alternative:"glyph for vertical en dash"}},key:"FE32"},{category:"Pc",mappings:{"default":{"default":"presentation form for vertical low line",alternative:"glyph for vertical spacing underscore"}},key:"FE33"},{category:"Pc",mappings:{"default":{"default":"presentation form for vertical wavy low line",
+alternative:"glyph for vertical spacing wavy underscore"}},key:"FE34"},{category:"Po",mappings:{"default":{"default":"sesame dot"}},key:"FE45"},{category:"Po",mappings:{"default":{"default":"white sesame dot"}},key:"FE46"},{category:"Po",mappings:{"default":{"default":"dashed overline",alternative:"spacing dashed overscore"}},key:"FE49"},{category:"Po",mappings:{"default":{"default":"centerline overline",alternative:"spacing centerline overscore"}},key:"FE4A"},{category:"Po",mappings:{"default":{"default":"wavy overline",
+alternative:"spacing wavy overscore"}},key:"FE4B"},{category:"Po",mappings:{"default":{"default":"double wavy overline",alternative:"spacing double wavy overscore"}},key:"FE4C"},{category:"Pc",mappings:{"default":{"default":"dashed low line",alternative:"spacing dashed underscore"}},key:"FE4D"},{category:"Pc",mappings:{"default":{"default":"centerline low line",alternative:"spacing centerline underscore"}},key:"FE4E"},{category:"Pc",mappings:{"default":{"default":"wavy low line",alternative:"spacing wavy underscore"}},
+key:"FE4F"},{category:"Po",mappings:{"default":{"default":"small comma"}},key:"FE50"},{category:"Po",mappings:{"default":{"default":"small full stop",alternative:"small period"}},key:"FE52"},{category:"Po",mappings:{"default":{"default":"small semicolon"}},key:"FE54"},{category:"Po",mappings:{"default":{"default":"small colon"}},key:"FE55"},{category:"Po",mappings:{"default":{"default":"small question mark"}},key:"FE56"},{category:"Po",mappings:{"default":{"default":"small exclamation mark"}},key:"FE57"},
+{category:"Pd",mappings:{"default":{"default":"small em dash"}},key:"FE58"},{category:"Po",mappings:{"default":{"default":"small number sign"}},key:"FE5F"},{category:"Po",mappings:{"default":{"default":"small ampersand"}},key:"FE60"},{category:"Po",mappings:{"default":{"default":"small asterisk"}},key:"FE61"},{category:"Sm",mappings:{"default":{"default":"small plus sign"}},key:"FE62"},{category:"Pd",mappings:{"default":{"default":"small hyphen minus"}},key:"FE63"},{category:"Sm",mappings:{"default":{"default":"small less than sign"}},
+key:"FE64"},{category:"Sm",mappings:{"default":{"default":"small greater than sign"}},key:"FE65"},{category:"Sm",mappings:{"default":{"default":"small equals sign"}},key:"FE66"},{category:"Po",mappings:{"default":{"default":"small reverse solidus",alternative:"small backslash"}},key:"FE68"},{category:"Sc",mappings:{"default":{"default":"small dollar sign"}},key:"FE69"},{category:"Po",mappings:{"default":{"default":"small percent sign"}},key:"FE6A"},{category:"Po",mappings:{"default":{"default":"small commercial at"}},
+key:"FE6B"},{category:"Po",mappings:{"default":{"default":"fullwidth exclamation mark"}},key:"FF01"},{category:"Po",mappings:{"default":{"default":"fullwidth quotation mark"}},key:"FF02"},{category:"Po",mappings:{"default":{"default":"fullwidth number sign"}},key:"FF03"},{category:"Sc",mappings:{"default":{"default":"fullwidth dollar sign"}},key:"FF04"},{category:"Po",mappings:{"default":{"default":"fullwidth percent sign"}},key:"FF05"},{category:"Po",mappings:{"default":{"default":"fullwidth ampersand"}},
+key:"FF06"},{category:"Po",mappings:{"default":{"default":"fullwidth apostrophe"}},key:"FF07"},{category:"Po",mappings:{"default":{"default":"fullwidth asterisk"}},key:"FF0A"},{category:"Sm",mappings:{"default":{"default":"fullwidth plus sign"}},key:"FF0B"},{category:"Po",mappings:{"default":{"default":"fullwidth comma"}},key:"FF0C"},{category:"Pd",mappings:{"default":{"default":"fullwidth hyphen minus"}},key:"FF0D"},{category:"Po",mappings:{"default":{"default":"fullwidth full stop",alternative:"fullwidth period"}},
+key:"FF0E"},{category:"Po",mappings:{"default":{"default":"fullwidth solidus",alternative:"fullwidth slash"}},key:"FF0F"},{category:"Po",mappings:{"default":{"default":"fullwidth colon"}},key:"FF1A"},{category:"Po",mappings:{"default":{"default":"fullwidth semicolon"}},key:"FF1B"},{category:"Sm",mappings:{"default":{"default":"fullwidth less than sign"}},key:"FF1C"},{category:"Sm",mappings:{"default":{"default":"fullwidth equals sign"}},key:"FF1D"},{category:"Sm",mappings:{"default":{"default":"fullwidth greater than sign"}},
+key:"FF1E"},{category:"Po",mappings:{"default":{"default":"fullwidth question mark"}},key:"FF1F"},{category:"Po",mappings:{"default":{"default":"fullwidth commercial at"}},key:"FF20"},{category:"Po",mappings:{"default":{"default":"fullwidth reverse solidus",alternative:"fullwidth backslash"}},key:"FF3C"},{category:"Sk",mappings:{"default":{"default":"fullwidth circumflex accent",alternative:"fullwidth spacing circumflex"}},key:"FF3E"},{category:"Pc",mappings:{"default":{"default":"fullwidth low line",
+alternative:"fullwidth spacing underscore"}},key:"FF3F"},{category:"Sk",mappings:{"default":{"default":"fullwidth grave accent",alternative:"fullwidth spacing grave"}},key:"FF40"},{category:"Sm",mappings:{"default":{"default":"fullwidth vertical line",alternative:"fullwidth vertical bar"}},key:"FF5C"},{category:"Sm",mappings:{"default":{"default":"fullwidth tilde",alternative:"fullwidth spacing tilde"}},key:"FF5E"},{category:"Sc",mappings:{"default":{"default":"fullwidth cent sign"}},key:"FFE0"},
+{category:"Sc",mappings:{"default":{"default":"fullwidth pound sign"}},key:"FFE1"},{category:"Sm",mappings:{"default":{"default":"fullwidth not sign"}},key:"FFE2"},{category:"Sk",mappings:{"default":{"default":"fullwidth macron",alternative:"fullwidth spacing macron"}},key:"FFE3"},{category:"So",mappings:{"default":{"default":"fullwidth broken bar",alternative:"fullwidth broken vertical bar"}},key:"FFE4"},{category:"Sc",mappings:{"default":{"default":"fullwidth yen sign"}},key:"FFE5"},{category:"Sc",
+mappings:{"default":{"default":"fullwidth won sign"}},key:"FFE6"},{category:"So",mappings:{"default":{"default":"halfwidth forms light vertical"}},key:"FFE8"},{category:"So",mappings:{"default":{"default":"halfwidth black square"}},key:"FFED"},{category:"So",mappings:{"default":{"default":"halfwidth white circle"}},key:"FFEE"},{category:"Ll",names:[],key:"03B1",mappings:{"default":{"default":"greek small letter alpha","short":"alpha"}}},{category:"Ll",names:[],key:"03B2",mappings:{"default":{"default":"greek small letter beta",
+"short":"beta"}}},{category:"Ll",names:[],key:"03B3",mappings:{"default":{"default":"greek small letter gamma","short":"gamma"}}},{category:"Ll",names:[],key:"03B4",mappings:{"default":{"default":"greek small letter delta","short":"delta"}}},{category:"Ll",names:[],key:"03B5",mappings:{"default":{"default":"greek small letter epsilon","short":"epsilon"}}},{category:"Ll",names:[],key:"03B6",mappings:{"default":{"default":"greek small letter zeta","short":"zeta"}}},{category:"Ll",names:[],key:"03B7",
+mappings:{"default":{"default":"greek small letter eta","short":"eta"}}},{category:"Ll",names:[],key:"03B8",mappings:{"default":{"default":"greek small letter theta","short":"theta"}}},{category:"Ll",names:[],key:"03B9",mappings:{"default":{"default":"greek small letter iota","short":"iota"}}},{category:"Ll",names:[],key:"03BA",mappings:{"default":{"default":"greek small letter kappa","short":"kappa"}}},{category:"Ll",names:[],key:"03BB",mappings:{"default":{"default":"greek small letter lamda",alternative:"greek small letter lambda",
+"short":"lamda"}}},{category:"Ll",names:[],key:"03BC",mappings:{"default":{"default":"greek small letter mu","short":"mu"}}},{category:"Ll",names:[],key:"03BD",mappings:{"default":{"default":"greek small letter nu","short":"nu"}}},{category:"Ll",names:[],key:"03BE",mappings:{"default":{"default":"greek small letter xi","short":"xi"}}},{category:"Ll",names:[],key:"03BF",mappings:{"default":{"default":"greek small letter omicron","short":"omicron"}}},{category:"Ll",names:[],key:"03C0",mappings:{"default":{"default":"greek small letter pi",
+"short":"pi"}}},{category:"Ll",names:[],key:"03C1",mappings:{"default":{"default":"greek small letter rho","short":"rho"}}},{category:"Ll",names:[],key:"03C2",mappings:{"default":{"default":"greek small letter final sigma","short":"final sigma"}}},{category:"Ll",names:[],key:"03C3",mappings:{"default":{"default":"greek small letter sigma","short":"sigma"}}},{category:"Ll",names:[],key:"03C4",mappings:{"default":{"default":"greek small letter tau","short":"tau"}}},{category:"Ll",names:[],key:"03C5",
+mappings:{"default":{"default":"greek small letter upsilon","short":"upsilon"}}},{category:"Ll",names:[],key:"03C6",mappings:{"default":{"default":"greek small letter phi","short":"phi"}}},{category:"Ll",names:[],key:"03C7",mappings:{"default":{"default":"greek small letter chi","short":"chi"}}},{category:"Ll",names:[],key:"03C8",mappings:{"default":{"default":"greek small letter psi","short":"psi"}}},{category:"Ll",names:[],key:"03C9",mappings:{"default":{"default":"greek small letter omega","short":"omega"}}},
+{category:"Ll",mappings:{"default":{"default":"greek beta symbol",alternative:"greek small letter curled beta","short":"beta"}},key:"03D0"},{category:"Ll",mappings:{"default":{"default":"greek theta symbol",alternative:"greek small letter script theta","short":"theta"}},key:"03D1"},{category:"Ll",mappings:{"default":{"default":"greek phi symbol",alternative:"greek small letter script phi","short":"phi"}},key:"03D5"},{category:"Ll",mappings:{"default":{"default":"greek pi symbol",alternative:"greek small letter omega pi",
+"short":"pi"}},key:"03D6"},{category:"Ll",mappings:{"default":{"default":"greek kai symbol","short":"kai"}},key:"03D7"},{category:"Ll",mappings:{"default":{"default":"greek kappa symbol",alternative:"greek small letter script kappa","short":"kappa"}},key:"03F0"},{category:"Ll",mappings:{"default":{"default":"greek rho symbol",alternative:"greek small letter tailed rho","short":"rho"}},key:"03F1"},{category:"Ll",mappings:{"default":{"default":"greek lunate epsilon symbol","short":"epsilon"}},key:"03F5"},
+{category:"Sm",mappings:{"default":{"default":"greek reversed lunate epsilon symbol","short":"reversed epsilon"}},key:"03F6"},{category:"Lu",names:[],key:"0391",mappings:{"default":{"default":"greek capital letter alpha","short":"cap alpha"}}},{category:"Lu",names:[],key:"0392",mappings:{"default":{"default":"greek capital letter beta","short":"cap beta"}}},{category:"Lu",names:[],key:"0393",mappings:{"default":{"default":"greek capital letter gamma","short":"cap gamma"}}},{category:"Lu",names:[],
+key:"0394",mappings:{"default":{"default":"greek capital letter delta","short":"cap delta"}}},{category:"Lu",names:[],key:"0395",mappings:{"default":{"default":"greek capital letter epsilon","short":"cap epsilon"}}},{category:"Lu",names:[],key:"0396",mappings:{"default":{"default":"greek capital letter zeta","short":"cap zeta"}}},{category:"Lu",names:[],key:"0397",mappings:{"default":{"default":"greek capital letter eta","short":"cap eta"}}},{category:"Lu",names:[],key:"0398",mappings:{"default":{"default":"greek capital letter theta",
+"short":"cap theta"}}},{category:"Lu",names:[],key:"0399",mappings:{"default":{"default":"greek capital letter iota","short":"cap iota"}}},{category:"Lu",names:[],key:"039A",mappings:{"default":{"default":"greek capital letter kappa","short":"cap kappa"}}},{category:"Lu",names:[],key:"039B",mappings:{"default":{"default":"greek capital letter lamda",alternative:"greek capital letter lambda","short":"cap lamda"}}},{category:"Lu",names:[],key:"039C",mappings:{"default":{"default":"greek capital letter mu",
+"short":"cap mu"}}},{category:"Lu",names:[],key:"039D",mappings:{"default":{"default":"greek capital letter nu","short":"cap nu"}}},{category:"Lu",names:[],key:"039E",mappings:{"default":{"default":"greek capital letter xi","short":"cap xi"}}},{category:"Lu",names:[],key:"039F",mappings:{"default":{"default":"greek capital letter omicron","short":"cap omicron"}}},{category:"Lu",names:[],key:"03A0",mappings:{"default":{"default":"greek capital letter pi","short":"cap pi"}}},{category:"Lu",names:[],
+key:"03A1",mappings:{"default":{"default":"greek capital letter rho","short":"cap rho"}}},{category:"Lu",names:[],key:"03A3",mappings:{"default":{"default":"greek capital letter sigma","short":"cap sigma"}}},{category:"Lu",names:[],key:"03A4",mappings:{"default":{"default":"greek capital letter tau","short":"cap tau"}}},{category:"Lu",names:[],key:"03A5",mappings:{"default":{"default":"greek capital letter upsilon","short":"cap upsilon"}}},{category:"Lu",names:[],key:"03A6",mappings:{"default":{"default":"greek capital letter phi",
+"short":"cap phi"}}},{category:"Lu",names:[],key:"03A7",mappings:{"default":{"default":"greek capital letter chi","short":"cap chi"}}},{category:"Lu",names:[],key:"03A8",mappings:{"default":{"default":"greek capital letter psi","short":"cap psi"}}},{category:"Lu",names:[],key:"03A9",mappings:{"default":{"default":"greek capital letter omega","short":"cap omega"}}},{category:"Lu",mappings:{"default":{"default":"greek capital theta symbol","short":"cap theta"}},key:"03F4"},{category:"Ps",mappings:{"default":{"default":"left parenthesis",
+alternative:"opening parenthesis"}},key:"0028"},{category:"Pe",mappings:{"default":{"default":"right parenthesis",alternative:"closing parenthesis"}},key:"0029"},{category:"Ps",mappings:{"default":{"default":"left square bracket",alternative:"opening square bracket"}},key:"005B"},{category:"Pe",mappings:{"default":{"default":"right square bracket",alternative:"closing square bracket"}},key:"005D"},{category:"Ps",mappings:{"default":{"default":"left curly bracket",alternative:"opening curly bracket"}},
+key:"007B"},{category:"Pe",mappings:{"default":{"default":"right curly bracket",alternative:"closing curly bracket"}},key:"007D"},{category:"Ps",mappings:{"default":{"default":"left square bracket with quill"}},key:"2045"},{category:"Pe",mappings:{"default":{"default":"right square bracket with quill"}},key:"2046"},{category:"Sm",mappings:{"default":{"default":"left ceiling"}},key:"2308"},{category:"Sm",mappings:{"default":{"default":"right ceiling"}},key:"2309"},{category:"Sm",mappings:{"default":{"default":"left floor"}},
+key:"230A"},{category:"Sm",mappings:{"default":{"default":"right floor"}},key:"230B"},{category:"So",mappings:{"default":{"default":"bottom right crop"}},key:"230C"},{category:"So",mappings:{"default":{"default":"bottom left crop"}},key:"230D"},{category:"So",mappings:{"default":{"default":"top right crop"}},key:"230E"},{category:"So",mappings:{"default":{"default":"top left crop"}},key:"230F"},{category:"So",mappings:{"default":{"default":"top left corner"}},key:"231C"},{category:"So",mappings:{"default":{"default":"top right corner"}},
+key:"231D"},{category:"So",mappings:{"default":{"default":"bottom left corner"}},key:"231E"},{category:"So",mappings:{"default":{"default":"bottom right corner"}},key:"231F"},{category:"Sm",mappings:{"default":{"default":"top half integral"}},key:"2320"},{category:"Sm",mappings:{"default":{"default":"bottom half integral"}},key:"2321"},{category:"Ps",mappings:{"default":{"default":"left pointing angle bracket",alternative:"bra"}},key:"2329"},{category:"Pe",mappings:{"default":{"default":"right pointing angle bracket",
+alternative:"ket"}},key:"232A"},{category:"Sm",mappings:{"default":{"default":"left parenthesis upper hook"}},key:"239B"},{category:"Sm",mappings:{"default":{"default":"left parenthesis extension"}},key:"239C"},{category:"Sm",mappings:{"default":{"default":"left parenthesis lower hook"}},key:"239D"},{category:"Sm",mappings:{"default":{"default":"right parenthesis upper hook"}},key:"239E"},{category:"Sm",mappings:{"default":{"default":"right parenthesis extension"}},key:"239F"},{category:"Sm",mappings:{"default":{"default":"right parenthesis lower hook"}},
+key:"23A0"},{category:"Sm",mappings:{"default":{"default":"left square bracket upper corner"}},key:"23A1"},{category:"Sm",mappings:{"default":{"default":"left square bracket extension"}},key:"23A2"},{category:"Sm",mappings:{"default":{"default":"left square bracket lower corner"}},key:"23A3"},{category:"Sm",mappings:{"default":{"default":"right square bracket upper corner"}},key:"23A4"},{category:"Sm",mappings:{"default":{"default":"right square bracket extension"}},key:"23A5"},{category:"Sm",mappings:{"default":{"default":"right square bracket lower corner"}},
+key:"23A6"},{category:"Sm",mappings:{"default":{"default":"left curly bracket upper hook"}},key:"23A7"},{category:"Sm",mappings:{"default":{"default":"left curly bracket middle piece"}},key:"23A8"},{category:"Sm",mappings:{"default":{"default":"left curly bracket lower hook"}},key:"23A9"},{category:"Sm",mappings:{"default":{"default":"curly bracket extension"}},key:"23AA"},{category:"Sm",mappings:{"default":{"default":"right curly bracket upper hook"}},key:"23AB"},{category:"Sm",mappings:{"default":{"default":"right curly bracket middle piece"}},
+key:"23AC"},{category:"Sm",mappings:{"default":{"default":"right curly bracket lower hook"}},key:"23AD"},{category:"Sm",mappings:{"default":{"default":"integral extension"}},key:"23AE"},{category:"Sm",mappings:{"default":{"default":"horizontal line extension"}},key:"23AF"},{category:"Sm",mappings:{"default":{"default":"upper left or lower right curly bracket section"}},key:"23B0"},{category:"Sm",mappings:{"default":{"default":"upper right or lower left curly bracket section"}},key:"23B1"},{category:"Sm",
+mappings:{"default":{"default":"summation top"}},key:"23B2"},{category:"Sm",mappings:{"default":{"default":"summation bottom"}},key:"23B3"},{category:"So",mappings:{"default":{"default":"top square bracket"}},key:"23B4"},{category:"So",mappings:{"default":{"default":"bottom square bracket"}},key:"23B5"},{category:"So",mappings:{"default":{"default":"bottom square bracket over top square bracket"}},key:"23B6"},{category:"So",mappings:{"default":{"default":"radical symbol bottom"}},key:"23B7"},{category:"So",
+mappings:{"default":{"default":"left vertical box line"}},key:"23B8"},{category:"So",mappings:{"default":{"default":"right vertical box line"}},key:"23B9"},{category:"Sm",mappings:{"default":{"default":"top parenthesis"}},key:"23DC"},{category:"Sm",mappings:{"default":{"default":"bottom parenthesis"}},key:"23DD"},{category:"Sm",mappings:{"default":{"default":"top curly bracket"}},key:"23DE"},{category:"Sm",mappings:{"default":{"default":"bottom curly bracket"}},key:"23DF"},{category:"Sm",mappings:{"default":{"default":"top tortoise shell bracket"}},
+key:"23E0"},{category:"Sm",mappings:{"default":{"default":"bottom tortoise shell bracket"}},key:"23E1"},{category:"Ps",mappings:{"default":{"default":"medium left parenthesis ornament"}},key:"2768"},{category:"Pe",mappings:{"default":{"default":"medium right parenthesis ornament"}},key:"2769"},{category:"Ps",mappings:{"default":{"default":"medium flattened left parenthesis ornament"}},key:"276A"},{category:"Pe",mappings:{"default":{"default":"medium flattened right parenthesis ornament"}},key:"276B"},
+{category:"Ps",mappings:{"default":{"default":"medium left pointing angle bracket ornament"}},key:"276C"},{category:"Pe",mappings:{"default":{"default":"medium right pointing angle bracket ornament"}},key:"276D"},{category:"Ps",mappings:{"default":{"default":"heavy left pointing angle quotation mark ornament"}},key:"276E"},{category:"Pe",mappings:{"default":{"default":"heavy right pointing angle quotation mark ornament"}},key:"276F"},{category:"Ps",mappings:{"default":{"default":"heavy left pointing angle bracket ornament"}},
+key:"2770"},{category:"Pe",mappings:{"default":{"default":"heavy right pointing angle bracket ornament"}},key:"2771"},{category:"Ps",mappings:{"default":{"default":"light left tortoise shell bracket ornament"}},key:"2772"},{category:"Pe",mappings:{"default":{"default":"light right tortoise shell bracket ornament"}},key:"2773"},{category:"Ps",mappings:{"default":{"default":"medium left curly bracket ornament"}},key:"2774"},{category:"Pe",mappings:{"default":{"default":"medium right curly bracket ornament"}},
+key:"2775"},{category:"Ps",mappings:{"default":{"default":"left s shaped bag delimiter"}},key:"27C5"},{category:"Pe",mappings:{"default":{"default":"right s shaped bag delimiter"}},key:"27C6"},{category:"Ps",mappings:{"default":{"default":"mathematical left white square bracket"}},key:"27E6"},{category:"Pe",mappings:{"default":{"default":"mathematical right white square bracket"}},key:"27E7"},{category:"Ps",mappings:{"default":{"default":"mathematical left angle bracket"}},key:"27E8"},{category:"Pe",
+mappings:{"default":{"default":"mathematical right angle bracket"}},key:"27E9"},{category:"Ps",mappings:{"default":{"default":"mathematical left double angle bracket"}},key:"27EA"},{category:"Pe",mappings:{"default":{"default":"mathematical right double angle bracket"}},key:"27EB"},{category:"Ps",mappings:{"default":{"default":"mathematical left white tortoise shell bracket"}},key:"27EC"},{category:"Pe",mappings:{"default":{"default":"mathematical right white tortoise shell bracket"}},key:"27ED"},
+{category:"Ps",mappings:{"default":{"default":"mathematical left flattened parenthesis"}},key:"27EE"},{category:"Pe",mappings:{"default":{"default":"mathematical right flattened parenthesis"}},key:"27EF"},{category:"Ps",mappings:{"default":{"default":"left white curly bracket"}},key:"2983"},{category:"Pe",mappings:{"default":{"default":"right white curly bracket"}},key:"2984"},{category:"Ps",mappings:{"default":{"default":"left white parenthesis"}},key:"2985"},{category:"Pe",mappings:{"default":{"default":"right white parenthesis"}},
+key:"2986"},{category:"Ps",mappings:{"default":{"default":"z notation left image bracket"}},key:"2987"},{category:"Pe",mappings:{"default":{"default":"z notation right image bracket"}},key:"2988"},{category:"Ps",mappings:{"default":{"default":"z notation left binding bracket"}},key:"2989"},{category:"Pe",mappings:{"default":{"default":"z notation right binding bracket"}},key:"298A"},{category:"Ps",mappings:{"default":{"default":"left square bracket with underbar"}},key:"298B"},{category:"Pe",mappings:{"default":{"default":"right square bracket with underbar"}},
+key:"298C"},{category:"Ps",mappings:{"default":{"default":"left square bracket with tick in top corner"}},key:"298D"},{category:"Pe",mappings:{"default":{"default":"right square bracket with tick in bottom corner"}},key:"298E"},{category:"Ps",mappings:{"default":{"default":"left square bracket with tick in bottom corner"}},key:"298F"},{category:"Pe",mappings:{"default":{"default":"right square bracket with tick in top corner"}},key:"2990"},{category:"Ps",mappings:{"default":{"default":"left angle bracket with dot"}},
+key:"2991"},{category:"Pe",mappings:{"default":{"default":"right angle bracket with dot"}},key:"2992"},{category:"Ps",mappings:{"default":{"default":"left arc less than bracket"}},key:"2993"},{category:"Pe",mappings:{"default":{"default":"right arc greater than bracket"}},key:"2994"},{category:"Ps",mappings:{"default":{"default":"double left arc greater than bracket"}},key:"2995"},{category:"Pe",mappings:{"default":{"default":"double right arc less than bracket"}},key:"2996"},{category:"Ps",mappings:{"default":{"default":"left black tortoise shell bracket"}},
+key:"2997"},{category:"Pe",mappings:{"default":{"default":"right black tortoise shell bracket"}},key:"2998"},{category:"Ps",mappings:{"default":{"default":"left wiggly fence"}},key:"29D8"},{category:"Pe",mappings:{"default":{"default":"right wiggly fence"}},key:"29D9"},{category:"Ps",mappings:{"default":{"default":"left double wiggly fence"}},key:"29DA"},{category:"Pe",mappings:{"default":{"default":"right double wiggly fence"}},key:"29DB"},{category:"Ps",mappings:{"default":{"default":"left pointing curved angle bracket"}},
+key:"29FC"},{category:"Pe",mappings:{"default":{"default":"right pointing curved angle bracket"}},key:"29FD"},{category:"Ps",mappings:{"default":{"default":"top left half bracket"}},key:"2E22"},{category:"Pe",mappings:{"default":{"default":"top right half bracket"}},key:"2E23"},{category:"Ps",mappings:{"default":{"default":"bottom left half bracket"}},key:"2E24"},{category:"Pe",mappings:{"default":{"default":"bottom right half bracket"}},key:"2E25"},{category:"Ps",mappings:{"default":{"default":"left sideways u bracket"}},
+key:"2E26"},{category:"Pe",mappings:{"default":{"default":"right sideways u bracket"}},key:"2E27"},{category:"Ps",mappings:{"default":{"default":"left double parenthesis"}},key:"2E28"},{category:"Pe",mappings:{"default":{"default":"right double parenthesis"}},key:"2E29"},{category:"Ps",mappings:{"default":{"default":"left angle bracket",alternative:"opening angle bracket"}},key:"3008"},{category:"Pe",mappings:{"default":{"default":"right angle bracket",alternative:"closing angle bracket"}},key:"3009"},
+{category:"Ps",mappings:{"default":{"default":"left double angle bracket",alternative:"opening double angle bracket"}},key:"300A"},{category:"Pe",mappings:{"default":{"default":"right double angle bracket",alternative:"closing double angle bracket"}},key:"300B"},{category:"Ps",mappings:{"default":{"default":"left corner bracket",alternative:"opening corner bracket"}},key:"300C"},{category:"Pe",mappings:{"default":{"default":"right corner bracket",alternative:"closing corner bracket"}},key:"300D"},
+{category:"Ps",mappings:{"default":{"default":"left white corner bracket",alternative:"opening white corner bracket"}},key:"300E"},{category:"Pe",mappings:{"default":{"default":"right white corner bracket",alternative:"closing white corner bracket"}},key:"300F"},{category:"Ps",mappings:{"default":{"default":"left black lenticular bracket",alternative:"opening black lenticular bracket"}},key:"3010"},{category:"Pe",mappings:{"default":{"default":"right black lenticular bracket",alternative:"closing black lenticular bracket"}},
+key:"3011"},{category:"Ps",mappings:{"default":{"default":"left tortoise shell bracket",alternative:"opening tortoise shell bracket"}},key:"3014"},{category:"Pe",mappings:{"default":{"default":"right tortoise shell bracket",alternative:"closing tortoise shell bracket"}},key:"3015"},{category:"Ps",mappings:{"default":{"default":"left white lenticular bracket",alternative:"opening white lenticular bracket"}},key:"3016"},{category:"Pe",mappings:{"default":{"default":"right white lenticular bracket",
+alternative:"closing white lenticular bracket"}},key:"3017"},{category:"Ps",mappings:{"default":{"default":"left white tortoise shell bracket",alternative:"opening white tortoise shell bracket"}},key:"3018"},{category:"Pe",mappings:{"default":{"default":"right white tortoise shell bracket",alternative:"closing white tortoise shell bracket"}},key:"3019"},{category:"Ps",mappings:{"default":{"default":"left white square bracket",alternative:"opening white square bracket"}},key:"301A"},{category:"Pe",
+mappings:{"default":{"default":"right white square bracket",alternative:"closing white square bracket"}},key:"301B"},{category:"Ps",mappings:{"default":{"default":"reversed double prime quotation mark"}},key:"301D"},{category:"Pe",mappings:{"default":{"default":"double prime quotation mark"}},key:"301E"},{category:"Pe",mappings:{"default":{"default":"low double prime quotation mark"}},key:"301F"},{category:"Ps",mappings:{"default":{"default":"ornate left parenthesis"}},key:"FD3E"},{category:"Pe",
+mappings:{"default":{"default":"ornate right parenthesis"}},key:"FD3F"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left white lenticular bracket"}},key:"FE17"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right white lenticular bracket"}},key:"FE18"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left parenthesis",alternative:"glyph for vertical opening parenthesis"}},key:"FE35"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right parenthesis",
+alternative:"glyph for vertical closing parenthesis"}},key:"FE36"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left curly bracket",alternative:"glyph for vertical opening curly bracket"}},key:"FE37"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right curly bracket",alternative:"glyph for vertical closing curly bracket"}},key:"FE38"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left tortoise shell bracket",
+alternative:"glyph for vertical opening tortoise shell bracket"}},key:"FE39"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right tortoise shell bracket",alternative:"glyph for vertical closing tortoise shell bracket"}},key:"FE3A"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left black lenticular bracket",alternative:"glyph for vertical opening black lenticular bracket"}},key:"FE3B"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right black lenticular bracket",
+alternative:"glyph for vertical closing black lenticular bracket"}},key:"FE3C"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left double angle bracket",alternative:"glyph for vertical opening double angle bracket"}},key:"FE3D"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right double angle bracket",alternative:"glyph for vertical closing double angle bracket"}},key:"FE3E"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left angle bracket",
+alternative:"glyph for vertical opening angle bracket"}},key:"FE3F"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right angle bracket",alternative:"glyph for vertical closing angle bracket"}},key:"FE40"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left corner bracket",alternative:"glyph for vertical opening corner bracket"}},key:"FE41"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right corner bracket",
+alternative:"glyph for vertical closing corner bracket"}},key:"FE42"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left white corner bracket",alternative:"glyph for vertical opening white corner bracket"}},key:"FE43"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right white corner bracket",alternative:"glyph for vertical closing white corner bracket"}},key:"FE44"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left square bracket"}},
+key:"FE47"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right square bracket"}},key:"FE48"},{category:"Ps",mappings:{"default":{"default":"small left parenthesis",alternative:"small opening parenthesis"}},key:"FE59"},{category:"Pe",mappings:{"default":{"default":"small right parenthesis",alternative:"small closing parenthesis"}},key:"FE5A"},{category:"Ps",mappings:{"default":{"default":"small left curly bracket",alternative:"small opening curly bracket"}},key:"FE5B"},
+{category:"Pe",mappings:{"default":{"default":"small right curly bracket",alternative:"small closing curly bracket"}},key:"FE5C"},{category:"Ps",mappings:{"default":{"default":"small left tortoise shell bracket",alternative:"small opening tortoise shell bracket"}},key:"FE5D"},{category:"Pe",mappings:{"default":{"default":"small right tortoise shell bracket",alternative:"small closing tortoise shell bracket"}},key:"FE5E"},{category:"Ps",mappings:{"default":{"default":"fullwidth left parenthesis",alternative:"fullwidth opening parenthesis"}},
+key:"FF08"},{category:"Pe",mappings:{"default":{"default":"fullwidth right parenthesis",alternative:"fullwidth closing parenthesis"}},key:"FF09"},{category:"Ps",mappings:{"default":{"default":"fullwidth left square bracket",alternative:"fullwidth opening square bracket"}},key:"FF3B"},{category:"Pe",mappings:{"default":{"default":"fullwidth right square bracket",alternative:"fullwidth closing square bracket"}},key:"FF3D"},{category:"Ps",mappings:{"default":{"default":"fullwidth left curly bracket",
+alternative:"fullwidth opening curly bracket"}},key:"FF5B"},{category:"Pe",mappings:{"default":{"default":"fullwidth right curly bracket",alternative:"fullwidth closing curly bracket"}},key:"FF5D"},{category:"Ps",mappings:{"default":{"default":"fullwidth left white parenthesis"}},key:"FF5F"},{category:"Pe",mappings:{"default":{"default":"fullwidth right white parenthesis"}},key:"FF60"},{category:"Ps",mappings:{"default":{"default":"halfwidth left corner bracket",alternative:"halfwidth opening corner bracket"}},
+key:"FF62"},{category:"Pe",mappings:{"default":{"default":"halfwidth right corner bracket",alternative:"halfwidth closing corner bracket"}},key:"FF63"}];
+cvox.AndroidMathMap.FUNCTION_MAPPINGS_=[{category:"Elementary",mappings:{"default":{"default":"logarithm",alternative:"logarithm function","short":"log"}},key:"log",names:["log"]},{category:"Elementary",mappings:{"default":{"default":"natural logarithm",alternative:"natural logarithm function","short":"natural log"}},key:"ln",names:["ln"]},{category:"Elementary",mappings:{"default":{"default":"logarithm base 10","short":"log base 10"}},key:"lg",names:["lg"]},{category:"Elementary",mappings:{"default":{"default":"exponential",
+alternative:"exponential function","short":"exp"}},key:"exp",names:["exp","expt"]},{category:"Elementary",mappings:{"default":{"default":"greatest common divisor","short":"gcd"}},key:"gcd",names:["gcd"]},{category:"Elementary",mappings:{"default":{"default":"least common multiple","short":"lcm"}},key:"gcd",names:["gcd"]},{category:"Complex",mappings:{"default":{"default":"argument","short":"arg"}},key:"arg",names:["arg"]},{category:"Complex",mappings:{"default":{"default":"imaginary part","short":"imaginary"}},
+key:"im",names:["im"]},{category:"Complex",mappings:{"default":{"default":"real part","short":"real"}},key:"re",names:["re"]},{category:"Limits",mappings:{"default":{"default":"infimum","short":"inf"}},key:"inf",names:["inf"]},{category:"Limits",mappings:{"default":{"default":"limit","short":"lim"}},key:"lim",names:["lim"]},{category:"Limits",mappings:{"default":{"default":"infimum default",alternative:"inferior limit","short":"liminf"}},key:"liminf",names:["lim inf"]},{category:"Limits",mappings:{"default":{"default":"supremum limit",
+alternative:"superior limit","short":"limsup"}},key:"limsup",names:["lim sup"]},{category:"Limits",mappings:{"default":{"default":"maximum","short":"max"}},key:"max",names:["max"]},{category:"Limits",mappings:{"default":{"default":"minimum","short":"min"}},key:"min",names:["min"]},{category:"Limits",mappings:{"default":{"default":"supremum","short":"sup"}},key:"sup",names:["sup"]},{category:"Limits",mappings:{"default":{"default":"injective limit",alternative:"direct limit","short":"colimit"}},key:"injlim",
+names:["injlim","inj lim"]},{category:"Limits",mappings:{"default":{"default":"projective limit",alternative:"inverse limit","short":"limit"}},key:"projlim",names:["projlim","proj lim"]},{category:"Elementary",mappings:{"default":{"default":"modulo","short":"mod"}},key:"mod",names:["mod"]},{category:"Probability",mappings:{"default":{"default":"probability"}},key:"Pr",names:["Pr"]},{category:"Trigonometric",mappings:{"default":{"default":"cosine function","short":"cosine"}},key:"cos",names:["cos",
+"cosine"]},{category:"Trigonometric",mappings:{"default":{"default":"cotangent function","short":"cotangent"}},key:"cot",names:["cot"]},{category:"Trigonometric",mappings:{"default":{"default":"cosecant function","short":"cosecant"}},key:"csc",names:["csc"]},{category:"Trigonometric",mappings:{"default":{"default":"secant function","short":"secant"}},key:"sec",names:["sec"]},{category:"Trigonometric",mappings:{"default":{"default":"sine function",alternative:"sine function","short":"sine"}},key:"sin",
+names:["sin","sine"]},{category:"Trigonometric",mappings:{"default":{"default":"tangent function","short":"tangent"}},key:"tan",names:["tan"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse cosine function",alternative:"arc cosine function","short":"arc cosine"}},key:"arccos",names:["arccos"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse cotangent function",alternative:"arc cotangent function","short":"arc cotangent"}},key:"arccot",names:["arccot"]},{category:"Cyclometric",
+mappings:{"default":{"default":"inverse cosecant function",alternative:"arc cosecant function","short":"arc cosecant"}},key:"arccsc",names:["arccsc"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse secant function",alternative:"arc secant function","short":"arc secant"}},key:"arcsec",names:["arcsec"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse sine function",alternative:"arc sine function","short":"arc sine"}},key:"arcsin",names:["arcsin"]},{category:"Cyclometric",
+mappings:{"default":{"default":"inverse tangent function",alternative:"arc tangent function","short":"arc tangent"}},key:"arctan",names:["arctan"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic cosine function","short":"hyperbolic cosine"}},key:"cosh",names:["cosh"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic cotangent function","short":"hyperbolic cotangent"}},key:"coth",names:["coth"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic cosecant function",
+"short":"hyperbolic cosecant"}},key:"csch",names:["csch"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic secant function","short":"hyperbolic secant"}},key:"sech",names:["sech"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic sine function","short":"hyperbolic sine"}},key:"sinh",names:["sinh"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic tangent function","short":"hyperbolic tangent"}},key:"tanh",names:["tanh"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic cosine function",
+alternative:"area hyperbolic cosine function","short":"area hyperbolic cosine"}},key:"arcosh",names:["arcosh","arccosh"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic cotangent function",alternative:"area hyperbolic cotangent function","short":"area hyperbolic cotangent"}},key:"arcoth",names:["arcoth","arccoth"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic cosecant function",alternative:"area hyperbolic cosecant function","short":"area hyperbolic cosecant"}},
+key:"arcsch",names:["arcsch","arccsch"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic secant function",alternative:"area hyperbolic secant function","short":"area hyperbolic secant"}},key:"arsech",names:["arsech","arcsech"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic sine function",alternative:"area hyperbolic sine function","short":"area hyperbolic sine"}},key:"arsinh",names:["arsinh","arcsinh"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic tangent function",
+alternative:"area hyperbolic tangent function","short":"area hyperbolic tangent"}},key:"artanh",names:["artanh","arctanh"]},{category:"Algebra",mappings:{"default":{"default":"degree"}},key:"deg",names:["deg"]},{category:"Algebra",mappings:{"default":{"default":"determinant","short":"det"}},key:"det",names:["det"]},{category:"Algebra",mappings:{"default":{"default":"dimension"}},key:"dim",names:["dim"]},{category:"Algebra",mappings:{"default":{"default":"homomorphism","short":"hom"}},key:"hom",names:["hom",
+"Hom"]},{category:"Algebra",mappings:{"default":{"default":"kernel"}},key:"ker",names:["ker"]},{category:"Algebra",mappings:{"default":{"default":"trace"}},key:"Tr",names:["Tr","tr"]}];cvox.AndroidVox=function(){cvox.ChromeVox.navigationManager.ignoreIframesNoMatterWhat()};goog.exportSymbol("cvox.AndroidVox",cvox.AndroidVox);
+cvox.AndroidVox.performAction=function(a){var b=JSON.parse(a);a=b.action;var c=b.granularity,b=b.element,d=cvox.SearchWidget.getInstance().isActive();16==c&&512==a&&(cvox.ChromeVox.navigationManager.setReversed(!1),cvox.ChromeVox.navigationManager.syncToBeginning(),cvox.ChromeVox.navigationManager.updateIndicator());if(16==c)return cvox.ChromeVoxUserCommands.commands.readFromHere(),!0;cvox.ChromeVoxUserCommands.commands.stopSpeech();if(256==a||512==a)d||cvox.ChromeVoxEventWatcher.setUpTextHandler();
+var e=cvox.ChromeVoxEventWatcher.currentTextHandler;e||document.activeElement==document.body||console.log("no text handler, but there is an active element",document.activeElement);if(e&&1==c){if(256==a)return e.moveCursorToNextCharacter();if(512==a)return e.moveCursorToPreviousCharacter()}else if(e&&2==c){if(256==a)return e.moveCursorToNextWord();if(512==a)return e.moveCursorToPreviousWord()}else if(e&&8==c){if(256==a)return e.moveCursorToNextParagraph();if(512==a)return e.moveCursorToPreviousParagraph()}else if(e&&
+4==c){var f=!1;256==a?f=e.moveCursorToNextLine():512==a&&(f=e.moveCursorToPreviousLine());if(f)return!0}switch(c){case -1:return cvox.ChromeVox.navigationManager.finishNavCommand(""),!0;case -2:return cvox.ChromeVoxUserCommands.commands.readCurrentTitle(),!0;case -3:return!0;case -4:return 512==a?cvox.ChromeVoxUserCommands.commands.exitShifter():cvox.ChromeVoxUserCommands.commands.enterShifter(),!0;case -5:return cvox.SearchWidget.getInstance().toggle(),!0}if(-275999999<=c&&-275E6>=c){cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("element_clicked"),
+cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION);a=cvox.ChromeVox.navigationManager.getBraille();b=-275E6-c;if(c=a.text.getSpan(b))a=b-a.text.getSpanStart(c),cvox.AndroidVox.performClickAction(c,a);return!0}if(0>c)return!1;e=[];e[8]=cvox.NavigationShifter.GRANULARITIES.GROUP;e[4]=cvox.NavigationShifter.GRANULARITIES.LINE;e[2]=cvox.NavigationShifter.GRANULARITIES.WORD;e[1]=cvox.NavigationShifter.GRANULARITIES.CHARACTER;d||(c=c?e[c]:cvox.NavigationShifter.GRANULARITIES.OBJECT,
+cvox.ChromeVox.navigationManager.setGranularity(c));c=!1;switch(a){case 16:if(d)break;cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("element_clicked"),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION);(c=cvox.ChromeVox.navigationManager.getCurrentNode())&&cvox.AndroidVox.performClickAction(c);c=!0;break;case 1024:switch(b){case "SECTION":c=!cvox.ChromeVoxUserCommands.commands.nextSection();break;case "LIST":c=!cvox.ChromeVoxUserCommands.commands.nextList();break;case "CONTROL":c=
+!cvox.ChromeVoxUserCommands.commands.nextControl()}if(c)break;case 256:d?(cvox.SearchWidget.getInstance().nextResult(!1),c=!0):c=!cvox.ChromeVoxUserCommands.commands.forward();break;case 2048:switch(b){case "SECTION":c=!cvox.ChromeVoxUserCommands.commands.previousSection();break;case "LIST":c=!cvox.ChromeVoxUserCommands.commands.previousList();break;case "CONTROL":c=!cvox.ChromeVoxUserCommands.commands.previousControl()}if(c)break;case 512:d?(cvox.SearchWidget.getInstance().nextResult(!0),c=!0):c=
+!cvox.ChromeVoxUserCommands.commands.backward()}return c};goog.exportSymbol("cvox.AndroidVox.performAction",cvox.AndroidVox.performAction);
+cvox.AndroidVox.performClickAction=function(a,b){cvox.ChromeVox.navigationManager.getCurrentNode()!=a&&cvox.ApiImplementation.syncToNode(a,!1);cvox.Focuser.setFocus(a);var c=cvox.DomUtil.isInputTypeText(a)||a instanceof HTMLTextAreaElement;if(goog.isDef(b)&&c){var d=cvox.BrailleUtil.getTemplated(null,a),c=d.getSpanInstanceOf(cvox.BrailleUtil.ValueSpan),e=d.getSpanStart(c),d=d.getSpanEnd(c);e<=b&&b<=d&&(c=b-e+c.offset,a.selectionStart=a.selectionEnd=c,cvox.ChromeVoxEventWatcher.handleTextChanged(!0))}cvox.DomUtil.clickElem(a,
+!1,!0)};cvox.AndroidHost=function(){};goog.inherits(cvox.AndroidHost,cvox.AbstractHost);
+cvox.AndroidHost.prototype.init=function(){cvox.ChromeVox.version="AndroidVox";var a=cvox.AndroidKeyMap.getStringifiedKeyMap();cvox.ChromeVoxKbHandler.loadKeyToFunctionsTable(a);cvox.ApiImplementation.siteSpecificScriptLoader="";cvox.ApiImplementation.siteSpecificScriptBase="";cvox.ApiImplementation.init();cvox.ChromeVox.earcons.earconsAvailable()&&(cvox.ChromeVox.verbosity=cvox.VERBOSITY_BRIEF);new cvox.AndroidMathMap;cvox.InitialSpeech.speak()};cvox.AndroidHost.prototype.reinit=function(){};
+cvox.AndroidHost.prototype.onPageLoad=function(){cvox.ChromeVoxEventWatcher.focusFollowsMouse=!0;cvox.ChromeVoxEventWatcher.mouseoverDelayMs=0};cvox.AndroidHost.prototype.ttsLoaded=function(){return"undefined"!=typeof accessibility};cvox.AndroidHost.prototype.getApiSrc=function(){return""};cvox.AndroidHost.prototype.hasTtsCallback=function(){return!1};cvox.AndroidHost.prototype.mustRedispatchClickEvent=function(){return!0};
+cvox.AndroidHost.prototype.activateOrDeactivateChromeVox=function(a){cvox.ChromeVox.tts.stop();cvox.AndroidHost.superClass_.activateOrDeactivateChromeVox.call(this,a);this.onPageLoad()};goog.exportSymbol("cvox.AndroidHost.prototype.activateOrDeactivateChromeVox",cvox.AndroidHost.prototype.activateOrDeactivateChromeVox);cvox.HostFactory.hostConstructor=cvox.AndroidHost;window.cvox||(window.cvox={});cvox.MathJaxExternalUtil=function(){};cvox.MathJaxExternalUtil.mmlAttr=function(){return""};
+cvox.MathJaxExternalUtil.mfenced=function(a){null==a&&(a="");var b=[a+'<mrow mfenced="true"'+this.toMathMLattributes()+">"],c=a+" ";this.data.open&&b.push(this.data.open.toMathML(c));null!=this.data[0]&&b.push(this.data[0].toMathML(c));for(var d=1,e=this.data.length;d<e;d++)this.data[d]&&(this.data["sep"+d]&&b.push(this.data["sep"+d].toMathML(c)),b.push(this.data[d].toMathML(c)));this.data.close&&b.push(this.data.close.toMathML(c));b.push(a+"</mrow>");return b.join("\n")};
+cvox.MathJaxExternalUtil.getMathml=function(a,b){var c=MathJax.ElementJax.mml.mbase.prototype,d=MathJax.ElementJax.mml.mfenced.prototype;this.mmlAttr=c.toMathMLattributes;var e=d.toMathML;try{c.toMathMLattributes=cvox.MathJaxExternalUtil.mbase;d.toMathML=cvox.MathJaxExternalUtil.mfenced;var f=a.root.toMathML("");c.toMathMLattributes=this.mmlAttr;d.toMathML=e;MathJax.Callback(b)(f)}catch(g){c.toMathMLattributes=this.mmlAttr;d.toMathML=e;if(!g.restart)throw g;return MathJax.Callback.After([cvox.MathJaxExternalUtil.getMathml,
+a,b],g.restart)}};cvox.MathJaxExternalUtil.mbase=function(){var a=cvox.MathJaxExternalUtil.mmlAttr.call(this);if(null!=this.spanID)var b=(this.id||"MathJax-Span-"+this.spanID)+MathJax.OutputJax["HTML-CSS"].idPostfix,a=a+(' spanID="'+b+'"');null!=this.texClass&&(a+=' texClass="'+this.texClass+'"');return a};cvox.MathJaxExternalUtil.isActive=function(){return"undefined"!=typeof MathJax&&"undefined"!=typeof MathJax.Hub&&"undefined"!=typeof MathJax.ElementJax&&"undefined"!=typeof MathJax.InputJax};
+cvox.MathJaxExternalUtil.getMathjaxCallback_=function(a,b){cvox.MathJaxExternalUtil.getMathml(b,function(c){b.root.inputID&&a(c,b.root.inputID)})};cvox.MathJaxExternalUtil.registerSignal=function(a,b){MathJax.Hub.Register.MessageHook(b,function(b){b=MathJax.Hub.getJaxFor(b[1]);cvox.MathJaxExternalUtil.getMathjaxCallback_(a,b)})};cvox.MathJaxExternalUtil.getAllJax=function(a){var b=MathJax.Hub.getAllJax();b&&b.forEach(function(b){b.root.spanID&&cvox.MathJaxExternalUtil.getMathjaxCallback_(a,b)})};
+cvox.MathJaxExternalUtil.injectConfigScript=function(){var a=document.createElement("script");a.setAttribute("type","text/x-mathjax-config");a.textContent='MathJax.Hub.Config({\n jax: ["input/AsciiMath", "input/TeX"],\n extensions: ["toMathML.js"],\n skipStartupTypeset: true,\n messageStyle: "none",\n TeX: {extensions: ["AMSmath.js","AMSsymbols.js"]}\n});\nMathJax.Hub.Queue(\n function() {MathJax.Hub.inputJax["math/asciimath"].Process();\n MathJax.Hub.inputJax["math/tex"].Process()}\n);\n//\n// Prevent these from being loaded\n//\nif (!MathJax.Extension.MathMenu) {MathJax.Extension.MathMenu = {}};\nif (!MathJax.Extension.MathZoom) {MathJax.Extension.MathZoom = {}};';
+document.activeElement.appendChild(a)};cvox.MathJaxExternalUtil.injectLoadScript=function(){var a=document.createElement("script");a.setAttribute("type","text/javascript");a.setAttribute("src","http://cdn.mathjax.org/mathjax/latest/MathJax.js");document.activeElement.appendChild(a)};
+cvox.MathJaxExternalUtil.configMediaWiki=function(){mediaWiki&&MathJax.Hub.Register.StartupHook("TeX Jax Ready",function(){var a=MathJax.ElementJax.mml;MathJax.Hub.Insert(MathJax.InputJax.TeX.Definitions,{mathchar0mi:{thetasym:"03B8",koppa:"03DF",stigma:"03DB",varstigma:"03DB",coppa:"03D9",varcoppa:"03D9",sampi:"03E1",C:["0043",{mathvariant:a.VARIANT.DOUBLESTRUCK}],cnums:["0043",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Complex:["0043",{mathvariant:a.VARIANT.DOUBLESTRUCK}],H:["210D",{mathvariant:a.VARIANT.DOUBLESTRUCK}],
+N:["004E",{mathvariant:a.VARIANT.DOUBLESTRUCK}],natnums:["004E",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Q:["0051",{mathvariant:a.VARIANT.DOUBLESTRUCK}],R:["0052",{mathvariant:a.VARIANT.DOUBLESTRUCK}],reals:["0052",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Reals:["0052",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Z:["005A",{mathvariant:a.VARIANT.DOUBLESTRUCK}],sect:"00A7",P:"00B6",AA:["00C5",{mathvariant:a.VARIANT.NORMAL}],alef:["2135",{mathvariant:a.VARIANT.NORMAL}],alefsym:["2135",{mathvariant:a.VARIANT.NORMAL}],
+weierp:["2118",{mathvariant:a.VARIANT.NORMAL}],real:["211C",{mathvariant:a.VARIANT.NORMAL}],part:["2202",{mathvariant:a.VARIANT.NORMAL}],infin:["221E",{mathvariant:a.VARIANT.NORMAL}],empty:["2205",{mathvariant:a.VARIANT.NORMAL}],O:["2205",{mathvariant:a.VARIANT.NORMAL}],ang:["2220",{mathvariant:a.VARIANT.NORMAL}],exist:["2203",{mathvariant:a.VARIANT.NORMAL}],clubs:["2663",{mathvariant:a.VARIANT.NORMAL}],diamonds:["2662",{mathvariant:a.VARIANT.NORMAL}],hearts:["2661",{mathvariant:a.VARIANT.NORMAL}],
+spades:["2660",{mathvariant:a.VARIANT.NORMAL}],textvisiblespace:"2423",geneuro:"20AC",euro:"20AC"},mathchar0mo:{and:"2227",or:"2228",bull:"2219",plusmn:"00B1",sdot:"22C5",Dagger:"2021",sup:"2283",sub:"2282",supe:"2287",sube:"2286",isin:"2208",hAar:"21D4",hArr:"21D4",Harr:"21D4",Lrarr:"21D4",lrArr:"21D4",lArr:"21D0",Larr:"21D0",rArr:"21D2",Rarr:"21D2",harr:"2194",lrarr:"2194",larr:"2190",gets:"2190",rarr:"2192",oiint:["222F",{texClass:a.TEXCLASS.OP}],oiiint:["2230",{texClass:a.TEXCLASS.OP}]},mathchar7:{Alpha:"0391",
+Beta:"0392",Epsilon:"0395",Zeta:"0396",Eta:"0397",Iota:"0399",Kappa:"039A",Mu:"039C",Nu:"039D",Omicron:"039F",Rho:"03A1",Tau:"03A4",Chi:"03A7",Koppa:"03DE",Stigma:"03DA",Digamma:"03DC",Coppa:"03D8",Sampi:"03E0"},delimiter:{"\\uarr":"2191","\\darr":"2193","\\Uarr":"21D1","\\uArr":"21D1","\\Darr":"21D3","\\dArr":"21D3","\\rang":"27E9","\\lang":"27E8"},macros:{sgn:"NamedFn",arccot:"NamedFn",arcsec:"NamedFn",arccsc:"NamedFn",sen:"NamedFn",image:["Macro","\\Im"],bold:["Macro","\\mathbf{#1}",1],pagecolor:["Macro",
+"",1],emph:["Macro","\\textit{#1}",1],textsf:["Macro","\\mathord{\\sf{\\text{#1}}}",1],texttt:["Macro","\\mathord{\\tt{\\text{#1}}}",1],vline:["Macro","\\smash{\\large\\lvert}",0]}})})};
+cvox.MathJaxExternalUtil.convertToMml=function(a,b,c,d,e,f){var g=MathJax.HTML.Element("script",{type:c},[b]),g={math:b,script:g};MathJax.InputJax[d].prefilterHooks.Execute(g);var h;try{h=f(g.math)}catch(k){if(k[e])h=MathJax.ElementJax.mml.merror(k.message.replace(/\n.*/,""));else{if(k.restart)return MathJax.Callback.After([cvox.MathJaxExternalUtil.convertToMml,a,b,c,d,e,f],k.restart);throw k;}}h=h.inferred?MathJax.ElementJax.mml.apply(MathJax.ElementJax,h.data):MathJax.ElementJax.mml(h);h.root.display=
+"block";g.math=h;g.script.MathJax={};MathJax.InputJax[d].postfilterHooks.Execute(g);return cvox.MathJaxExternalUtil.getMathml(g.math,a)};cvox.MathJaxExternalUtil.texToMml=function(a,b){cvox.MathJaxExternalUtil.convertToMml(a,b,"math/tex;mode=display","TeX","texError",function(a){return MathJax.InputJax.TeX.Parse(a).mml()})};cvox.MathJaxExternalUtil.asciiMathToMml=function(a,b){cvox.MathJaxExternalUtil.convertToMml(a,b,"math/asciimath","AsciiMath","asciimathError",MathJax.InputJax.AsciiMath.AM.parseMath)};cvox.AndroidMathJax=function(){this.altMathNodeId_=0};goog.inherits(cvox.AndroidMathJax,cvox.AbstractMathJax);cvox.AndroidMathJax.prototype.getMathmlToDomCallback_=function(a){return goog.bind(function(b,c){return this.convertMarkupToDom(a,b,c)},this)};cvox.AndroidMathJax.prototype.isMathjaxActive=function(a){var b=0,c=function(){b++;cvox.MathJaxExternalUtil.isActive()?a(!0):5>b&&setTimeout(c,1E3)};c()};cvox.AndroidMathJax.prototype.getAllJax=function(a){cvox.MathJaxExternalUtil.getAllJax(this.getMathmlToDomCallback_(a))};
+cvox.AndroidMathJax.prototype.registerSignal=function(a,b){cvox.MathJaxExternalUtil.registerSignal(this.getMathmlToDomCallback_(a),b)};cvox.AndroidMathJax.prototype.injectScripts=function(){cvox.MathJaxExternalUtil.injectConfigScript();cvox.MathJaxExternalUtil.injectLoadScript()};cvox.AndroidMathJax.prototype.configMediaWiki=function(){cvox.MathJaxExternalUtil.configMediaWiki()};
+cvox.AndroidMathJax.prototype.getTex=function(a,b){var c=b.alt||b.title;if(c){var d="cvoxId-"+this.altMathNodeId_++;b.setAttribute("cvoxId",d);cvox.MathJaxExternalUtil.texToMml(goog.bind(function(b){this.convertMarkupToDom(a,b,d)},this),c)}};cvox.AndroidMathJax.prototype.getAsciiMath=function(a,b){var c=b.alt||b.title;if(c){var d="cvoxId-"+this.altMathNodeId_++;b.setAttribute("cvoxId",d);cvox.MathJaxExternalUtil.asciiMathToMml(goog.bind(function(b){this.convertMarkupToDom(a,b,d)},this),c)}};
+cvox.HostFactory.mathJaxConstructor=cvox.AndroidMathJax;cvox.AndroidTts=function(){cvox.AbstractTts.call(this);this.ttsProperties.rate=0.5;this.ttsProperties.pitch=0.5;this.ttsProperties.volume=1};goog.inherits(cvox.AndroidTts,cvox.AbstractTts);cvox.AndroidTts.prototype.speak=function(a,b,c){cvox.AndroidTts.superClass_.speak.call(this,a,b,c);c=this.mergeProperties(c);accessibility.speak(a,b,c);return this};cvox.AndroidTts.prototype.isSpeaking=function(){cvox.AndroidTts.superClass_.isSpeaking.call(this);return accessibility.isSpeaking()};
+cvox.AndroidTts.prototype.stop=function(){cvox.AndroidTts.superClass_.stop.call(this);accessibility.stop()};cvox.HostFactory.ttsConstructor=cvox.AndroidTts;cvox.TestMessages={locale:{message:"en"},chromevox_name:{message:"ChromeVox"},chromevox_description:{message:"ChromeVox - Giving Voice to Chrome"},chromevox_stop_speech_key:{message:"Stop speech"},chromevox_toggle_sticky_mode:{message:"Enable/Disable sticky mode"},chromevox_prefix_key:{message:"Prefix key"},chromevox_handle_tab_next:{message:"Jump to next focusable item"},chromevox_handle_tab_prev:{message:"Jump to previous focusable item"},chromevox_backward:{message:"Navigate backward"},chromevox_forward:{message:"Navigate forward"},
+chromevox_left:{message:"Move left"},chromevox_right:{message:"Move right"},chromevox_skip_backward:{message:"Skip backward during continuous reading"},chromevox_skip_forward:{message:"Skip forward during continuous reading"},chromevox_previous_granularity:{message:"Decrease navigation granularity"},chromevox_next_granularity:{message:"Increase navigation granularity"},chromevox_act_on_current_item:{message:"Take action on current item"},chromevox_force_click_on_current_item:{message:"Click on current item"},
+chromevox_read_link_url:{message:"Announce the URL behind a link"},chromevox_read_current_title:{message:"Announce the title of the current page"},chromevox_read_current_url:{message:"Announce the URL of the current page"},chromevox_read_from_here:{message:"Start reading from current location"},chromevox_show_power_key:{message:"Open ChromeVox keyboard help"},chromevox_hide_power_key:{message:"Hide ChromeVox help"},chromevox_power_key_help:{message:"Press up or down to review commands, press enter to activate"},
+chromevox_help:{message:"Open ChromeVox tutorial"},chromevox_toggle_search_widget:{message:"Toggle search widget"},chromevox_show_options_page:{message:"Open options page"},chromevox_show_kb_explorer_page:{message:"Open keyboard explorer"},chromevox_decrease_tts_rate:{message:"Decrease rate of speech"},chromevox_increase_tts_rate:{message:"Increase rate of speech"},chromevox_decrease_tts_pitch:{message:"Decrease pitch"},chromevox_increase_tts_pitch:{message:"Increase pitch"},chromevox_decrease_tts_volume:{message:"Decrease speech volume"},
+chromevox_increase_tts_volume:{message:"Increase speech volume"},chromevox_show_forms_list:{message:"Show forms list"},chromevox_show_headings_list:{message:"Show headings list"},chromevox_show_links_list:{message:"Show links list"},chromevox_show_tables_list:{message:"Show tables list"},chromevox_show_landmarks_list:{message:"Show landmarks list"},chromevox_previous_row:{message:"Previous table row"},chromevox_next_row:{message:"Next table row"},chromevox_previous_col:{message:"Previous table column"},
+chromevox_next_col:{message:"Next table column"},chromevox_announce_headers:{message:"Announce the headers of the current cell"},chromevox_speak_table_location:{message:"Announce current cell coordinates"},chromevox_guess_row_header:{message:"Make a guess at the row header of the current cell"},chromevox_guess_col_header:{message:"Make a guess at the column header of the current cell"},chromevox_skip_to_beginning:{message:"Go to beginning of table"},chromevox_skip_to_end:{message:"Go to end of table"},
+chromevox_skip_to_row_beginning:{message:"Go to beginning of the current row"},chromevox_skip_to_row_end:{message:"Go to end of the current row"},chromevox_skip_to_col_beginning:{message:"Go to beginning of the current column"},chromevox_skip_to_col_end:{message:"Go to end of the current column"},chromevox_next_heading1:{message:"Next level 1 heading"},chromevox_previous_heading1:{message:"Previous level 1 heading"},chromevox_next_heading2:{message:"Next level 2 heading"},chromevox_previous_heading2:{message:"Previous level 2 heading"},
+chromevox_next_heading3:{message:"Next level 3 heading"},chromevox_previous_heading3:{message:"Previous level 3 heading"},chromevox_next_heading4:{message:"Next level 4 heading"},chromevox_previous_heading4:{message:"Previous level 4 heading"},chromevox_next_heading5:{message:"Next level 5 heading"},chromevox_previous_heading5:{message:"Previous level 5 heading"},chromevox_next_heading6:{message:"Next level 6 heading"},chromevox_previous_heading6:{message:"Previous level 6 heading"},chromevox_next_combo_box:{message:"Next combo box"},
+chromevox_previous_combo_box:{message:"Previous combo box"},chromevox_next_edit_text:{message:"Next editable text area"},chromevox_previous_edit_text:{message:"Previous editable text area"},chromevox_next_form_field:{message:"Next form field"},chromevox_previous_form_field:{message:"Previous form field"},chromevox_next_graphic:{message:"Next graphic"},chromevox_previous_graphic:{message:"Previous graphic"},chromevox_next_heading:{message:"Next heading"},chromevox_previous_heading:{message:"Previous heading"},
+chromevox_next_list_item:{message:"Next list item"},chromevox_previous_list_item:{message:"Previous list item"},chromevox_next_jump:{message:"Next jump"},chromevox_previous_jump:{message:"Previous jump"},chromevox_next_link:{message:"Next link"},chromevox_previous_link:{message:"Previous link"},chromevox_next_list:{message:"Next list"},chromevox_previous_list:{message:"Previous list"},chromevox_next_math:{message:"Next math"},chromevox_previous_math:{message:"Previous math"},chromevox_next_media:{message:"Next media"},
+chromevox_previous_media:{message:"Previous media"},chromevox_next_blockquote:{message:"Next block quote"},chromevox_previous_blockquote:{message:"Previous block quote"},chromevox_next_radio:{message:"Next radio button"},chromevox_previous_radio:{message:"Previous radio button"},chromevox_next_slider:{message:"Next slider"},chromevox_previous_slider:{message:"Previous slider"},chromevox_next_table:{message:"Next table"},chromevox_next_visited_link:{message:"Next visited link"},chromevox_previous_table:{message:"Previous table"},
+chromevox_previous_visited_link:{message:"Previous visited link"},chromevox_next_button:{message:"Next button"},chromevox_previous_button:{message:"Previous button"},chromevox_next_checkbox:{message:"Next checkbox"},chromevox_previous_checkbox:{message:"Previous checkbox"},chromevox_next_landmark:{message:"Next landmark"},chromevox_previous_landmark:{message:"Previous landmark"},chromevox_benchmark:{message:"Debug benchmark"},chromevox_announce_position:{message:"Announces a brief description of the current position"},
+chromevox_fully_describe:{message:"Announces a complete description of the current position"},chromevox_options_page_title:{message:"ChromeVox Options"},chromevox_options_page_summary:{message:"Use the options below to customize ChromeVox. Changes take effect immediately."},chromevox_options_mouse_focus_follows:{message:"Use the mouse to change focus."},chromevox_options_site_specific_enhancements:{message:"Enhance specific sites (like Google Search)."},chromevox_options_verbosity_verbose:{message:"Enable verbose descriptions."},
+chromevox_options_cursor_between_characters:{message:"Place cursor between characters when editing text (like Mac OS X)."},chromevox_options_magnifier_show_checkbox:{message:"Show a magnified view of the page content."},chromevox_options_voices:{message:"Voices"},chromevox_options_voices_description:{message:"Change the current voice by selecting an option from the list below."},chromevox_options_braille:{message:"Braille"},chromevox_options_braille_table_type_6:{message:"Switch to 8 dot braille"},
+chromevox_options_braille_table_type_8:{message:"Switch to 6 dot braille"},chromevox_options_braille_description_6:{message:"Change the current 6 dot braille table by selecting an option from the list below."},chromevox_options_braille_locale_grade:{message:"$1, Grade $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_options_braille_description_8:{message:"Change the current 8 dot braille table by selecting an option from the list below."},chromevox_options_keyboard_shortcuts:{message:"Keyboard shortcuts"},
+chromevox_options_keymap_description:{message:"Change the current keymap by selecting an option from the list below."},chromevox_options_select_keys:{message:"Reset current keymap"},chromevox_options_shortcuts_description:{message:"Customize keyboard shortcuts for frequently used commands by typing them into the corresponding fields below."},chromevox_options_modifier_keys:{message:"Modifier keys"},chromevox_options_cvox_modifier_key:{message:"ChromeVox modifier key"},chromevox_kbexplorer_title:{message:"ChromeOS Keyboard Explorer"},
+chromevox_kbexplorer_instructions:{message:"Press any key to learn its name. Ctrl+W will close the keyboard explorer."},chromevox_chrome_system_need_restart:{message:"System was updated. Restart is recommended."},chromevox_chrome_brightness_changed:{message:"Brightness $1 percent",placeholders:{1:{content:"$1"}}},chromevox_chrome_tab_created:{message:"tab created"},chromevox_chrome_tab_selected:{message:"$1, tab",placeholders:{1:{content:"$1"}}},chromevox_chrome_normal_window_selected:{message:"window $1 tab",
+placeholders:{1:{content:"$1"}}},chromevox_chrome_incognito_window_selected:{message:"incognito window $1 tab",placeholders:{1:{content:"$1"}}},chromevox_chrome_menu_opened:{message:"$1 menu opened",placeholders:{1:{content:"$1"}}},chromevox_describe_checkbox_checked:{message:"$1 checkbox checked",placeholders:{1:{content:"$1"}}},chromevox_checkbox_checked_state:{message:"checked"},chromevox_checkbox_checked_state_brl:{message:"x"},chromevox_describe_checkbox_unchecked:{message:"$1, checkbox not checked",
+placeholders:{1:{content:"$1"}}},chromevox_checkbox_unchecked_state:{message:"not checked"},chromevox_checkbox_unchecked_state_brl:{message:" "},chromevox_describe_radio_selected:{message:"$1, radio button selected",placeholders:{1:{content:"$1"}}},chromevox_radio_selected_state:{message:"selected"},chromevox_radio_selected_state_brl:{message:"x"},chromevox_describe_radio_unselected:{message:"$1, radio button unselected",placeholders:{1:{content:"$1"}}},chromevox_radio_unselected_state:{message:"unselected"},
+chromevox_radio_unselected_state_brl:{message:" "},chromevox_describe_menu:{message:"$1, menu",placeholders:{1:{content:"$1"}}},chromevox_describe_menu_item:{message:"$1, menu item",placeholders:{1:{content:"$1"}}},chromevox_describe_menu_item_with_submenu:{message:"$1, menu item, with submenu",placeholders:{1:{content:"$1"}}},chromevox_describe_window:{message:"$1, window",placeholders:{1:{content:"$1"}}},chromevox_describe_textbox:{message:"$1, $2, text box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},
+chromevox_describe_unnamed_textbox:{message:"$1, text box",placeholders:{1:{content:"$1"}}},chromevox_describe_password:{message:"$1, $2, password text box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_unnamed_password:{message:"$1, password text box",placeholders:{1:{content:"$1"}}},chromevox_describe_button:{message:"$1, button",placeholders:{1:{content:"$1"}}},chromevox_describe_combobox:{message:"$1, $2, combo box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_unnamed_combobox:{message:"$1, combo box",
+placeholders:{1:{content:"$1"}}},chromevox_describe_listbox:{message:"$1, $2, list box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_unnamed_listbox:{message:"$1, list box",placeholders:{1:{content:"$1"}}},chromevox_describe_link:{message:"$1, link",placeholders:{1:{content:"$1"}}},chromevox_describe_tab:{message:"$1, tab",placeholders:{1:{content:"$1"}}},chromevox_describe_slider:{message:"$1, $2, slider",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_selected:{message:", selected"},
+chromevox_describe_unselected:{message:", unselected"},chromevox_describe_index:{message:" $1 of $2 ",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_announce_rate:{message:"Rate $1 percent",placeholders:{1:{content:"$1"}}},chromevox_announce_pitch:{message:"Pitch $1 percent",placeholders:{1:{content:"$1"}}},chromevox_announce_volume:{message:"Volume $1 percent",placeholders:{1:{content:"$1"}}},chromevox_exiting_dialog:{message:"Exited dialog."},chromevox_exited_container:{message:"Exited $1.",
+placeholders:{1:{content:"$1"}}},chromevox_entering_dialog:{message:"Entered dialog"},chromevox_live_regions_removed:{message:"removed:"},chromevox_sticky_mode_enabled:{message:"Sticky mode enabled"},chromevox_sticky_mode_disabled:{message:"Sticky mode disabled"},chromevox_keyboard_help_intro:{message:"Keyboard Help"},chromevox_context_menu_intro:{message:"Context Menu"},chromevox_choice_widget_name:{message:"$1 list.",placeholders:{1:{content:"$1"}}},chromevox_choice_widget_help:{message:"Use up and down arrow keys to browse, or type to search."},
+chromevox_choice_widget_exited:{message:"Exited"},chromevox_choice_widget_type_generic:{message:" "},chromevox_end_of_cell:{message:"End of cell."},chromevox_no_url_found:{message:"No URL found"},chromevox_leaving_table:{message:"Leaving table."},chromevox_leaving_grid:{message:"Leaving grid."},chromevox_inside_table:{message:"Inside table"},chromevox_no_tables:{message:"No table found."},chromevox_not_inside_table:{message:"Not inside table."},chromevox_no_cell_below:{message:"No cell below."},chromevox_no_cell_above:{message:"No cell above."},
+chromevox_no_cell_right:{message:"No cell right."},chromevox_no_cell_left:{message:"No cell left."},chromevox_empty_cell:{message:"Empty cell."},chromevox_spanned:{message:"Spanned."},chromevox_row_header:{message:"Row header:"},chromevox_empty_row_header:{message:"Empty row header"},chromevox_column_header:{message:"Column header:"},chromevox_empty_column_header:{message:"Empty column header"},chromevox_no_headers:{message:"No headers"},chromevox_empty_headers:{message:"Empty headers"},chromevox_table_location:{message:"Row $1 of $2, Column $3 of $4",
+placeholders:{1:{content:"$1"},2:{content:"$2"},3:{content:"$3"},4:{content:"$4"}}},chromevox_no_next_checkbox:{message:"No next checkbox."},chromevox_no_previous_checkbox:{message:"No previous checkbox."},chromevox_no_next_edit_text:{message:"No next editable text field."},chromevox_no_previous_edit_text:{message:"No previous editable text field."},chromevox_no_next_heading:{message:"No next heading."},chromevox_no_previous_heading:{message:"No previous heading."},chromevox_no_next_heading_1:{message:"No next level 1 heading."},
+chromevox_no_previous_heading_1:{message:"No previous level 1 heading."},chromevox_no_next_heading_2:{message:"No next level 2 heading."},chromevox_no_previous_heading_2:{message:"No previous level 2 heading."},chromevox_no_next_heading_3:{message:"No next level 3 heading."},chromevox_no_previous_heading_3:{message:"No previous level 3 heading."},chromevox_no_next_heading_4:{message:"No next level 4 heading."},chromevox_no_previous_heading_4:{message:"No previous level 4 heading."},chromevox_no_next_heading_5:{message:"No next level 5 heading."},
+chromevox_no_previous_heading_5:{message:"No previous level 5 heading."},chromevox_no_next_heading_6:{message:"No next level 6 heading."},chromevox_no_previous_heading_6:{message:"No previous level 6 heading."},chromevox_no_next_not_link:{message:"No next item that isn't a link."},chromevox_no_previous_not_link:{message:"No previous item that isn't a link."},chromevox_no_next_anchor:{message:"No next anchor."},chromevox_no_previous_anchor:{message:"No previous anchor."},chromevox_no_next_link:{message:"No next link."},
+chromevox_no_previous_link:{message:"No previous link."},chromevox_no_next_table:{message:"No next table."},chromevox_no_previous_table:{message:"No previous table."},chromevox_no_next_visited_link:{message:"No next visited link."},chromevox_no_previous_visited_link:{message:"No previous visited link."},chromevox_no_next_math:{message:"No next math expression."},chromevox_no_previous_math:{message:"No previous math expression."},chromevox_no_next_media_widget:{message:"No next media widget."},chromevox_no_previous_media_widget:{message:"No previous media widget."},
+chromevox_no_next_list:{message:"No next list."},chromevox_no_previous_list:{message:"No previous list."},chromevox_no_next_list_item:{message:"No next list item."},chromevox_no_previous_list_item:{message:"No previous list item."},chromevox_no_next_blockquote:{message:"No next blockquote."},chromevox_no_previous_blockquote:{message:"No previous blockquote."},chromevox_no_next_form_field:{message:"No next form field."},chromevox_no_previous_form_field:{message:"No previous form field."},chromevox_no_next_jump:{message:"No next jump point."},
+chromevox_no_previous_jump:{message:"No previous jump point."},chromevox_no_next_landmark:{message:"No next ARIA landmark."},chromevox_no_previous_landmark:{message:"No previous ARIA landmark."},chromevox_no_next_combo_box:{message:"No next combo box."},chromevox_no_previous_combo_box:{message:"No previous combo box."},chromevox_no_next_button:{message:"No next button."},chromevox_no_previous_button:{message:"No previous button."},chromevox_no_next_graphic:{message:"No next graphic."},chromevox_no_previous_graphic:{message:"No previous graphic."},
+chromevox_no_next_slider:{message:"No next slider."},chromevox_no_previous_slider:{message:"No previous slider."},chromevox_no_next_radio_button:{message:"No next radio button."},chromevox_no_previous_radio_button:{message:"No previous radio button."},chromevox_no_next_section:{message:"No next section."},chromevox_no_previous_section:{message:"No previous section."},chromevox_no_next_control:{message:"No next control."},chromevox_no_previous_control:{message:"No previous control."},chromevox_element_clicked:{message:"Clicked"},
+chromevox_element_double_clicked:{message:"double clicked"},chromevox_powerkey_no_headings:{message:"No headings."},chromevox_powerkey_no_links:{message:"No links."},chromevox_powerkey_no_forms:{message:"No forms."},chromevox_powerkey_no_tables:{message:"No tables."},chromevox_powerkey_no_landmarks:{message:"No ARIA landmarks."},chromevox_powerkey_no_jumps:{message:"No jumps."},chromevox_list_position:{message:"$1 of $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_list_position_brl:{message:"$1/$2",
+placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_aria_has_submenu:{message:"has submenu"},chromevox_aria_has_submenu_brl:{message:"+submnu"},chromevox_aria_has_popup:{message:"has pop up"},chromevox_aria_has_popup_brl:{message:"+popup"},chromevox_aria_value_min:{message:"Min $1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_min_brl:{message:"min:$1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_max:{message:"Max $1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_max_brl:{message:"max:$1",
+placeholders:{1:{content:"$1"}}},chromevox_aria_value_now:{message:"$1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_now_brl:{message:"$1",placeholders:{1:{content:"$1"}}},chromevox_aria_role_alert:{message:"Alert"},chromevox_aria_role_alert_brl:{message:"alrt"},chromevox_aria_role_alertdialog:{message:"Alert dialog"},chromevox_aria_role_alertdialog_brl:{message:"alrt dlg"},chromevox_aria_role_button:{message:"Button"},chromevox_aria_role_button_brl:{message:"btn"},chromevox_aria_role_checkbox:{message:"Check box"},
+chromevox_aria_role_checkbox_brl:{message:"chx"},chromevox_aria_role_combobox:{message:"Combo box"},chromevox_aria_role_combobox_brl:{message:"cbx"},chromevox_aria_role_dialog:{message:"Dialog"},chromevox_aria_role_dialog_brl:{message:"dlg"},chromevox_aria_role_grid:{message:"Grid"},chromevox_aria_role_grid_brl:{message:"grd"},chromevox_aria_role_gridcell:{message:"Cell"},chromevox_aria_role_gridcell_brl:{message:"cl"},chromevox_aria_role_gridcell_pos:{message:"row $1 column $2",placeholders:{1:{content:"$1"},
+2:{content:"$2"}}},chromevox_aria_role_link:{message:"Link"},chromevox_aria_role_link_brl:{message:"lnk"},chromevox_aria_role_link_singular:{message:"1 link"},chromevox_aria_role_link_plural:{message:"$1 links",placeholders:{1:{content:"$1"}}},chromevox_aria_role_listbox:{message:"List box"},chromevox_aria_role_listbox_brl:{message:"lstbx"},chromevox_aria_role_log:{message:"Log"},chromevox_aria_role_log_brl:{message:"log"},chromevox_aria_role_marquee:{message:"Marquee"},chromevox_aria_role_marquee_brl:{message:"maqe"},
+chromevox_aria_role_menu:{message:"Menu"},chromevox_aria_role_menu_brl:{message:"mnu"},chromevox_aria_role_menubar:{message:"Menu bar"},chromevox_aria_role_menubar_brl:{message:"mnu br"},chromevox_aria_role_menuitem:{message:"Menu item"},chromevox_aria_role_menuitem_brl:{message:"mnu itm"},chromevox_aria_role_menuitemcheckbox:{message:"Menu item check box"},chromevox_aria_role_menuitemcheckbox_brl:{message:"mnu itm chx"},chromevox_aria_role_menuitemradio:{message:"Menu item radio button"},chromevox_aria_role_menuitemradio_brl:{message:"mnu itm rd"},
+chromevox_aria_role_option:{message:" "},chromevox_aria_role_option_brl:{message:" "},chromevox_aria_role_popup_button:{message:"Pop-up button"},chromevox_aria_role_popup_button_brl:{message:"pup btn"},chromevox_aria_role_progressbar:{message:"Progress bar"},chromevox_aria_role_progressbar_brl:{message:"prog br"},chromevox_aria_role_radio:{message:"Radio button"},chromevox_aria_role_radio_brl:{message:"rd"},chromevox_aria_role_radiogroup:{message:"Radio button group"},chromevox_aria_role_radiogroup_brl:{message:"rd grp"},
+chromevox_aria_role_scrollbar:{message:"Scroll bar"},chromevox_aria_role_scrollbar_brl:{message:"scr br"},chromevox_aria_role_slider:{message:"Slider"},chromevox_aria_role_slider_brl:{message:"slr"},chromevox_aria_role_spinbutton:{message:"Spin button"},chromevox_aria_role_spinbutton_brl:{message:"spn btn"},chromevox_aria_role_status:{message:"Status"},chromevox_aria_role_status_brl:{message:"sts"},chromevox_aria_role_tab:{message:"Tab"},chromevox_aria_role_tab_brl:{message:"tab"},chromevox_aria_role_tabpanel:{message:"Tab panel"},
+chromevox_aria_role_tabpanel_brl:{message:"tab pnl"},chromevox_aria_role_textbox:{message:"Text box"},chromevox_aria_role_textbox_brl:{message:"txtbx"},chromevox_aria_role_timer:{message:"Timer"},chromevox_aria_role_timer_brl:{message:"tmr"},chromevox_aria_role_toolbar:{message:"Tool bar"},chromevox_aria_role_toolbar_brl:{message:"tl br"},chromevox_aria_role_tooltip:{message:"Tool tip"},chromevox_aria_role_tooltip_brl:{message:"tl tp"},chromevox_aria_role_treeitem:{message:"Tree item"},chromevox_aria_role_treeitem_brl:{message:"tr itm"},
+chromevox_aria_role_article:{message:"Article"},chromevox_aria_role_article_brl:{message:"acl"},chromevox_aria_role_application:{message:"Application"},chromevox_aria_role_application_brl:{message:"app"},chromevox_aria_role_banner:{message:"Banner"},chromevox_aria_role_banner_brl:{message:"bnr"},chromevox_aria_role_columnheader:{message:"Column header"},chromevox_aria_role_columnheader_brl:{message:"clm hd"},chromevox_aria_role_complementary:{message:"Complementary"},chromevox_aria_role_complementary_brl:{message:"cmpy"},
+chromevox_aria_role_contentinfo:{message:"Content info"},chromevox_aria_role_contentinfo_brl:{message:"cnt in"},chromevox_aria_role_definition:{message:"Definition"},chromevox_aria_role_definition_brl:{message:"def"},chromevox_aria_role_directory:{message:"Directory"},chromevox_aria_role_directory_brl:{message:"dir"},chromevox_aria_role_document:{message:"Document"},chromevox_aria_role_document_brl:{message:"doc"},chromevox_aria_role_form:{message:"Form"},chromevox_aria_role_form_brl:{message:"frm"},
+chromevox_aria_role_form_singular:{message:"1 form"},chromevox_aria_role_form_plural:{message:"$1 forms",placeholders:{1:{content:"$1"}}},chromevox_aria_role_group:{message:"Group"},chromevox_aria_role_group_brl:{message:"grp"},chromevox_aria_role_heading:{message:"Heading"},chromevox_aria_role_heading_brl:{message:"hd"},chromevox_aria_role_img:{message:"Image"},chromevox_aria_role_img_brl:{message:"img"},chromevox_aria_role_list:{message:"List"},chromevox_aria_role_list_brl:{message:"lst"},chromevox_aria_role_listitem:{message:"List item"},
+chromevox_aria_role_listitem_brl:{message:"lstitm"},chromevox_aria_role_main:{message:"Main"},chromevox_aria_role_main_brl:{message:"main"},chromevox_aria_role_math:{message:"Math"},chromevox_aria_role_math_brl:{message:"math"},chromevox_aria_role_navigation:{message:"Navigation"},chromevox_aria_role_navigation_brl:{message:"nav"},chromevox_aria_role_note:{message:"Note"},chromevox_aria_role_note_brl:{message:"note"},chromevox_aria_role_region:{message:"Region"},chromevox_aria_role_region_brl:{message:"rgn"},
+chromevox_aria_role_rowheader:{message:"Row header"},chromevox_aria_role_rowheader_brl:{message:"rw hd"},chromevox_aria_role_search:{message:"Search"},chromevox_aria_role_search_brl:{message:"srch"},chromevox_aria_role_separator:{message:"Separator"},chromevox_aria_role_separator_brl:{message:"sprtr"},chromevox_aria_autocomplete_inline:{message:"Autocompletion inline"},chromevox_aria_autocomplete_inline_brl:{message:"autocomplete"},chromevox_aria_autocomplete_list:{message:"Autocompletion list"},
+chromevox_aria_autocomplete_list_brl:{message:"autocomplete lst"},chromevox_aria_autocomplete_both:{message:"Autocompletion inline and list"},chromevox_aria_autocomplete_both_brl:{message:"autocomplete lst"},chromevox_aria_checked_true:{message:"Checked"},chromevox_aria_checked_true_brl:{message:"x"},chromevox_aria_checked_false:{message:"Not checked"},chromevox_aria_checked_false_brl:{message:" "},chromevox_aria_checked_mixed:{message:"Partially checked"},chromevox_aria_checked_mixed_brl:{message:"/x"},
+chromevox_aria_disabled_true:{message:"Disabled"},chromevox_aria_disabled_true_brl:{message:"="},chromevox_aria_expanded_true:{message:"Expanded"},chromevox_aria_expanded_true_brl:{message:">"},chromevox_aria_expanded_false:{message:"Collapsed"},chromevox_aria_expanded_false_brl:{message:"<"},chromevox_aria_invalid_true:{message:"Invalid input"},chromevox_aria_invalid_true_brl:{message:"!"},chromevox_aria_invalid_grammar:{message:"Grammatical mistake detected"},chromevox_aria_invalid_grammar_brl:{message:"Grammatical mistake detected"},
+chromevox_aria_invalid_spelling:{message:"Spelling mistake detected"},chromevox_aria_invalid_spelling_brl:{message:"misspelled"},chromevox_aria_multiline_true:{message:"Multi line"},chromevox_aria_multiline_true_brl:{message:"mult ln"},chromevox_aria_multiselectable_true:{message:"Multi select"},chromevox_aria_multiselectable_true_brl:{message:"mult sel"},chromevox_aria_pressed_true:{message:"Pressed"},chromevox_aria_pressed_true_brl:{message:"x"},chromevox_aria_pressed_false:{message:"Not pressed"},
+chromevox_aria_pressed_false_brl:{message:" "},chromevox_aria_pressed_mixed:{message:"Partially pressed"},chromevox_aria_pressed_mixed_brl:{message:"/x"},chromevox_aria_readonly_true:{message:"Read only"},chromevox_aria_readonly_true_brl:{message:"rdonly"},chromevox_aria_required_true:{message:"Required"},chromevox_aria_required_true_brl:{message:"req"},chromevox_aria_selected_true:{message:"Selected"},chromevox_aria_selected_true_brl:{message:"x"},chromevox_aria_selected_false:{message:"Not selected"},
+chromevox_aria_selected_false_brl:{message:" "},chromevox_tag_link:{message:"Link"},chromevox_tag_link_brl:{message:"lnk"},chromevox_tag_button:{message:"Button"},chromevox_tag_button_brl:{message:"btn"},chromevox_tag_h1:{message:"Heading 1"},chromevox_tag_h1_brl:{message:"h1"},chromevox_tag_h2:{message:"Heading 2"},chromevox_tag_h2_brl:{message:"h2"},chromevox_tag_h3:{message:"Heading 3"},chromevox_tag_h3_brl:{message:"h3"},chromevox_tag_h4:{message:"Heading 4"},chromevox_tag_h4_brl:{message:"h4"},
+chromevox_tag_h5:{message:"Heading 5"},chromevox_tag_h5_brl:{message:"h5"},chromevox_tag_h6:{message:"Heading 6"},chromevox_tag_h6_brl:{message:"h6"},chromevox_tag_li:{message:"List item"},chromevox_tag_li_brl:{message:"lstitm"},chromevox_tag_ol:{message:"Ordered List"},chromevox_tag_ol_brl:{message:"lst"},chromevox_tag_select:{message:"Combo box"},chromevox_tag_select_brl:{message:"cbx"},chromevox_tag_textarea:{message:"Text area"},chromevox_tag_textarea_brl:{message:"txta"},chromevox_tag_table:{message:"table"},
+chromevox_tag_table_brl:{message:"tbl"},chromevox_tag_ul:{message:"List"},chromevox_tag_ul_brl:{message:"lst"},chromevox_tag_section:{message:"Section"},chromevox_tag_section_brl:{message:"stn"},chromevox_tag_nav:{message:"Navigation"},chromevox_tag_nav_brl:{message:"nav"},chromevox_tag_article:{message:"Article"},chromevox_tag_article_brl:{message:"article"},chromevox_tag_aside:{message:"Aside"},chromevox_tag_aside_brl:{message:"aside"},chromevox_tag_hgroup:{message:"Heading group"},chromevox_tag_hgroup_brl:{message:"hgrp"},
+chromevox_tag_header:{message:"Header"},chromevox_tag_header_brl:{message:"hdr"},chromevox_tag_footer:{message:"Footer"},chromevox_tag_footer_brl:{message:"ftr"},chromevox_tag_time:{message:"Time"},chromevox_tag_time_brl:{message:" "},chromevox_tag_mark:{message:"Mark"},chromevox_tag_mark_brl:{message:"mark"},chromevox_tag_video:{message:"Video"},chromevox_tag_video_brl:{message:"video"},chromevox_tag_audio:{message:"Audio"},chromevox_tag_audio_brl:{message:"audio"},chromevox_input_type_button:{message:"Button"},
+chromevox_input_type_button_brl:{message:"btn"},chromevox_input_type_checkbox:{message:"Check box"},chromevox_input_type_checkbox_brl:{message:"chx"},chromevox_input_type_color:{message:"Color picker"},chromevox_input_type_color_brl:{message:"color picker"},chromevox_input_type_datetime:{message:"Date time control"},chromevox_input_type_datetime_brl:{message:"date time"},chromevox_input_type_datetime_local:{message:"Date time control"},chromevox_input_type_datetime_local_brl:{message:"date time"},
+chromevox_input_type_date:{message:"Date control"},chromevox_input_type_date_brl:{message:"date"},chromevox_input_type_email:{message:"Edit text, email entry"},chromevox_input_type_email_brl:{message:"edtxt email"},chromevox_input_type_file:{message:"File selection"},chromevox_input_type_file_brl:{message:"file"},chromevox_input_type_image:{message:"Button"},chromevox_input_type_image_brl:{message:"btn"},chromevox_input_type_month:{message:"Month control"},chromevox_input_type_month_brl:{message:"month"},
+chromevox_input_type_number:{message:"Edit text numeric only"},chromevox_input_type_number_brl:{message:"edtxt#"},chromevox_input_type_password:{message:"Password edit text"},chromevox_input_type_password_brl:{message:"pwd edtxt"},chromevox_input_type_radio:{message:"Radio button"},chromevox_input_type_radio_brl:{message:"rd btn"},chromevox_input_type_range:{message:"Slider"},chromevox_input_type_range_brl:{message:"slr"},chromevox_input_type_reset:{message:"Reset"},chromevox_input_type_reset_brl:{message:"reset"},
+chromevox_input_type_search:{message:"Edit text, search entry"},chromevox_input_type_search_brl:{message:"search edtxt"},chromevox_input_type_submit:{message:"Button"},chromevox_input_type_submit_brl:{message:"btn"},chromevox_input_type_tel:{message:"Edit text, number entry"},chromevox_input_type_tel_brl:{message:"tele# edtxt"},chromevox_input_type_text:{message:"Edit text"},chromevox_input_type_text_brl:{message:"edtxt"},chromevox_input_type_url:{message:"Edit text, URL entry"},chromevox_input_type_url_brl:{message:"url edtxt"},
+chromevox_input_type_week:{message:"Week of the year control"},chromevox_input_type_week_brl:{message:"week"},chromevox_internal_link:{message:"Internal link"},chromevox_internal_link_brl:{message:"int lnk"},chromevox_text_box_blank:{message:"Blank"},chromevox_list_with_items:{message:"with $1 items",placeholders:{1:{content:"$1"}}},chromevox_list_with_items_brl:{message:"+$1",placeholders:{1:{content:"$1"}}},chromevox_state_percent:{message:"$1%",placeholders:{1:{content:"$1"}}},chromevox_state_percent_brl:{message:"$1%",
+placeholders:{1:{content:"$1"}}},chromevox_has_submenu:{message:"with submenu"},chromevox_has_submenu_brl:{message:"+submnu"},chromevox_has_popup:{message:"has popup"},chromevox_has_popup_brl:{message:"has popup"},chromevox_collection:{message:"$1 collection with $2 items",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_enter_key:{message:"Enter"},chromevox_space_key:{message:"Space"},chromevox_backspace_key:{message:"Backspace"},chromevox_tab_key:{message:"Tab"},chromevox_left_key:{message:"Left"},
+chromevox_up_key:{message:"Up"},chromevox_right_key:{message:"Right"},chromevox_down_key:{message:"Down"},chromevox_unknown_link:{message:"Unknown link"},chromevox_toggle_chromevox_active:{message:"Toggle ChromeVox active or inactive."},chromevox_chromevox_inactive:{message:"ChromeVox is now inactive."},chromevox_pause:{message:", "},chromevox_end:{message:". "},chromevox_previous_different_element:{message:"Previous different element."},chromevox_next_different_element:{message:"Next different element."},
+chromevox_previous_similar_element:{message:"Previous similar element."},chromevox_next_similar_element:{message:"Next similar element."},chromevox_no_more_similar_elements:{message:"No more similar elements."},chromevox_no_more_different_elements:{message:"No more different elements."},chromevox_index_total:{message:"$1 of $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_enter_css_space:{message:"Enter group exploration"},chromevox_enter_group_exploration:{message:"Exploring groups"},
+chromevox_pdf_header:{message:'This page contains the text automatically extracted from the PDF file <b>$1</b>. <a href="$2">Click here for the original.</a>',placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_object_strategy:{message:"Object"},chromevox_group_strategy:{message:"Group"},chromevox_table_strategy:{message:"Table"},chromevox_row_granularity:{message:"Row"},chromevox_column_granularity:{message:"Column"},chromevox_mathml_tree_granularity:{message:"Math ML Tree"},chromevox_mathml_layout_granularity:{message:"Math ML Layout"},
+chromevox_mathml_token_granularity:{message:"Math ML Token"},chromevox_mathml_leaf_granularity:{message:"Math ML Leaf"},chromevox_visual_strategy:{message:"Visual"},chromevox_custom_strategy:{message:"Custom"},chromevox_line_granularity:{message:"Line"},chromevox_sentence_granularity:{message:"Sentence"},chromevox_word_granularity:{message:"Word"},chromevox_character_granularity:{message:"Character"},chromevox_search_widget_intro:{message:"Find in page."},chromevox_search_widget_intro_help:{message:"Enter a search query."},
+chromevox_search_widget_outro:{message:"Exited find in page."},chromevox_search_widget_no_results:{message:"No more results."},chromevox_modifier_keys:{message:"Modifier Keys"},chromevox_navigation:{message:"ChromeVox Navigation"},chromevox_information:{message:"Information"},chromevox_help_commands:{message:"Help Commands"},chromevox_controlling_speech:{message:"Controlling Speech"},chromevox_overview:{message:"Overview"},chromevox_tables:{message:"Tables"},chromevox_jump_commands:{message:"Jump Commands"},
+chromevox_braille:{message:"Braille"},chromevox_developer:{message:"Developer"},chromevox_keymap_classic:{message:"Classic keymap"},chromevox_keymap_flat:{message:"Flat keymap"},chromevox_keymap_experimental:{message:"Experimental keymap"},chromevox_enable_tts_log:{message:"Enable TTS logging"},chromevox_begin_selection:{message:"Start selection"},chromevox_end_selection:{message:"End selection"},chromevox_selection_is:{message:"Selection is "},chromevox_toggle_selection:{message:"Start or end selection."},
+chromevox_copy:{message:"copy."},chromevox_cut:{message:"cut."},chromevox_paste:{message:"paste."},chromevox_selected:{message:"selected"},chromevox_unselected:{message:"unselected"},chromevox_added_to_selection:{message:"added to selection"},chromevox_removed_from_selection:{message:"removed from selection"},chromevox_then:{message:"then"},chromevox_followed_by:{message:"followed by"},chromevox_modifier_key:{message:"ChromeVox modifier"},chromevox_key_conflict:{message:"$1 is already assigned to a command.",
+placeholders:{1:{content:"$1"}}},chromevox_math_expr:{message:"Math"},chromevox_math_expr_brl:{message:"Math"},chromevox_not_inside_math:{message:"Not inside math"},chromevox_timewidget_ampm:{message:"AM PM"},chromevox_timewidget_hours:{message:"hours"},chromevox_timewidget_minutes:{message:"minutes"},chromevox_timewidget_seconds:{message:"seconds"},chromevox_timewidget_milliseconds:{message:"milliseconds"},chromevox_timewidget_am:{message:"AM"},chromevox_timewidget_pm:{message:"PM"},chromevox_datewidget_week:{message:"week"},
+chromevox_datewidget_january:{message:"January"},chromevox_datewidget_february:{message:"February"},chromevox_datewidget_march:{message:"March"},chromevox_datewidget_april:{message:"April"},chromevox_datewidget_may:{message:"May"},chromevox_datewidget_june:{message:"June"},chromevox_datewidget_july:{message:"July"},chromevox_datewidget_august:{message:"August"},chromevox_datewidget_september:{message:"September"},chromevox_datewidget_october:{message:"October"},chromevox_datewidget_november:{message:"November"},
+chromevox_datewidget_december:{message:"December"},chromevox_no_punctuation:{message:"No punctuation"},chromevox_some_punctuation:{message:"Some punctuation"},chromevox_all_punctuation:{message:"All punctuation"},chromevox_search_help_item:{message:"Press enter to accept or escape to cancel, down for next and up for previous."},chromevox_clickable:{message:"clickable"},chromevox_clickable_brl:{message:"clickable"},chromevox_previous_character:{message:"Previous Character"},chromevox_next_character:{message:"Next Character"},
+chromevox_previous_word:{message:"Previous Word"},chromevox_next_word:{message:"Next Word"},chromevox_previous_sentence:{message:"Previous Sentence"},chromevox_next_sentence:{message:"Next Sentence"},chromevox_previous_line:{message:"Previous Line"},chromevox_next_line:{message:"Next Line"},chromevox_previous_object:{message:"Previous Object"},chromevox_next_object:{message:"Next Object"},chromevox_previous_group:{message:"Previous Group"},chromevox_next_group:{message:"Next Group"},chromevox_role_landmark:{message:"Landmark"},
+chromevox_modifier_entry_error:{message:"No modifier pressed; please press and hold one or more modifiers; lift your fingers once done and you will hear the keys set. Tab to exit."},chromevox_modifier_entry_set:{message:"$1 is now the new ChromeVox modifier.",placeholders:{1:{content:"$1"}}},chromevox_keymap_reset:{message:"$1 has been reset.",placeholders:{1:{content:"$1"}}},chromevox_keymap_switch:{message:"Switched to $1.",placeholders:{1:{content:"$1"}}},chromevox_jump_to_top:{message:"Jump to the top of the page"},
+chromevox_jump_to_bottom:{message:"Jump to the bottom of the page"},chromevox_wrapped_to_top:{message:"Wrapped to top"},chromevox_wrapped_to_bottom:{message:"Wrapped to bottom"},chromevox_cycle_punctuation_echo:{message:"Cycle punctuation echo"},chromevox_cycle_typing_echo:{message:"Cycle typing echo"},chromevox_pause_all_media:{message:"Pauses all currently playing media widgets"},chromevox_open_long_desc:{message:"Open long description in a new tab"},chromevox_no_long_desc:{message:"No long description"},
+chromevox_image_with_long_desc:{message:"Image with long description"},chromevox_selected_options_value:{message:"$1 to $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_selected_options_value_brl:{message:"$1-$2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_selected_options_state:{message:"selected $1 items",placeholders:{1:{content:"$1"}}},chromevox_selected_options_state_brl:{message:"sld $1",placeholders:{1:{content:"$1"}}},chromevox_clear_page_selection:{message:"cleared selection"},
+chromevox_character_echo:{message:"character echo"},chromevox_word_echo:{message:"word echo"},chromevox_character_and_word_echo:{message:"character and word echo"},chromevox_none_echo:{message:"no typing echo"},chromevox_enter_content:{message:"enter structured content, such as tables"},chromevox_exit_content:{message:"exit structured content, such as tables"},chromevox_enter_content_say:{message:"entered $1",placeholders:{1:{content:"$1"}}},chromevox_structural_line:{message:"structural line"},chromevox_layout_line:{message:"line"},
+chromevox_toggle_line_type:{message:"Toggle line type between structural or layout"},chromevox_table_shifter:{message:"table"},chromevox_navigation_shifter:{message:"default navigation"},chromevox_math_shifter:{message:"math"},chromevox_toggle_semantics:{message:"Toggle interpretation of math expressions between structural and semantic"},chromevox_semantics_on:{message:"Semantics on"},chromevox_semantics_off:{message:"Semantics off"},chromevox_phonetic_map:{message:'{"a": "alpha", "b": "bravo", "c": "charlie", "d": "delta", "e": "echo", "f": "foxtrot", "g": "golf", "h": "hotel", "i": "india", "j": "juliet","k": "kilo", "l": "lima", "m": "mike", "n": "november", "o": "oscar","p": "papa", "q": "quebec", "r": "romeo", "s": "sierra", "t": "tango", "u": "uniform", "v": "victor", "w": "whiskey","x": "xray", "y": "yankee", "z": "zulu"}'},
+chromevox_page_has_one_alert_singular:{message:"This page has 1 alert"},chromevox_page_has_alerts_plural:{message:"This page has $1 alerts",placeholders:{1:{content:"$1"}}},chromevox_review_alerts:{message:"Press Alt+Shift+A to review alerts"},chromevox_no_next_article:{message:"No next article."},chromevox_no_previous_article:{message:"No previous article."},chromevox_chromevox_intro:{message:"ChromeVox spoken feedback is ready"},chromevox_intro_brl:{message:"ChromeVox ready"},chromevox_earcons_on:{message:"Earcons on"},
+chromevox_earcons_off:{message:"Earcons off"},chromevox_toggle_earcons:{message:"Turn sound feedback (earcons) on or off."},chromevox_speak_time_and_date:{message:"Speak the current time and date."},chromevox_mark_as_search_result_brl:{message:"S:$1",placeholders:{1:{content:"$1"}}},chromevox_text_deleted:{message:"Deleted"},chromevox_perform_default_action:{message:"Perform default action"},chromevox_visited_url:{message:"visited"},chromevox_visited_url_brl:{message:"visited"},chromevox_exclamation:{message:"{COUNT, plural, =1 {exclamation point}other {# exclamation points}}"},
+chromevox_space:{message:"{COUNT, plural, =1 {space}other {# spaces}}"},chromevox_backtick:{message:"{COUNT, plural, =1 {backtick}other {# backticks}}"},chromevox_tilde:{message:"{COUNT, plural, =1 {TILDE}other {# tildes}}"},chromevox_at:{message:"{COUNT, plural, =1 {at}other {# at signs}}"},chromevox_pound:{message:"{COUNT, plural, =1 {pound}other {# pound signs}}"},chromevox_dollar:{message:"{COUNT, plural, =1 {dollar}other {# dollar signs}}"},chromevox_percent:{message:"{COUNT, plural, =1 {percent}other {# percent signs}}"},
+chromevox_caret:{message:"{COUNT, plural, =1 {caret}other {# carets}}"},chromevox_ampersand:{message:"{COUNT, plural, =1 {ampersand}other {# ampersands}}"},chromevox_asterisk:{message:"{COUNT, plural, =1 {asterisk}other {# asterisks}}"},chromevox_open_paren:{message:"{COUNT, plural, =1 {open paren}other {# open parens}}"},chromevox_close_paren:{message:"{COUNT, plural, =1 {close paren}other {# close parens}}"},chromevox_dash:{message:"{COUNT, plural, =1 {dash}other {# dashes}}"},chromevox_underscore:{message:"{COUNT, plural, =1 {underscore}other {# underscores}}"},
+chromevox_equals:{message:"{COUNT, plural, =1 {equal}other {# equal signs}}"},chromevox_plus:{message:"{COUNT, plural, =1 {plus}other {# plus signs}}"},chromevox_left_bracket:{message:"{COUNT, plural, =1 {left bracket}other {# left brackets}}"},chromevox_right_bracket:{message:"{COUNT, plural, =1 {right bracket}other {# right brackets}}"},chromevox_left_brace:{message:"{COUNT, plural, =1 {left brace}other {# left braces}}"},chromevox_right_brace:{message:"{COUNT, plural, =1 {right brace}other {# right braces}}"},
+chromevox_pipe:{message:"{COUNT, plural, =1 {pipe}other {# vertical pipes}}"},chromevox_semicolon:{message:"{COUNT, plural, =1 {semicolon}other {# semicolons}}"},chromevox_colon:{message:"{COUNT, plural, =1 {colon}other {# colons}}"},chromevox_comma:{message:"{COUNT, plural, =1 {comma}other {# commas}}"},chromevox_dot:{message:"{COUNT, plural, =1 {dot}=3 {ellipsis}other {# dots}}"},chromevox_less_than:{message:"{COUNT, plural, =1 {less than}other {# less than signs}}"},chromevox_greater_than:{message:"{COUNT, plural, =1 {greater than}other {# greater than signs}}"},
+chromevox_slash:{message:"{COUNT, plural, =1 {slash}other {# slashes}}"},chromevox_question_mark:{message:"{COUNT, plural, =1 {question mark}other {# question marks}}"},chromevox_quote:{message:"{COUNT, plural, =1 {quote}other {# quotes}}"},chromevox_apostrophe:{message:"{COUNT, plural, =1 {apostrophe}other {# apostrophes}}"},chromevox_tab:{message:"{COUNT, plural, =1 {tab}other {# tabs}}"},chromevox_backslash:{message:"{COUNT, plural, =1 {backslash}other {# backslashes}}"},chromevox_braille_routing:{message:"Click the item under a routing key"},
+chromevox_braille_pan_left:{message:"Pan backward"},chromevox_braille_pan_right:{message:"Pan bforward"},chromevox_braille_line_up:{message:"Braille previous Line"},chromevox_braille_line_down:{message:"Braille next Line"},chromevox_braille_top:{message:"Move braille display to top of page"},chromevox_braille_bottom:{message:"Move braille display to bottom of page"},chromevox_access_key:{message:"has access key, $1",placeholders:{1:{content:"$1"}}},chromevox_locale_dict:{message:'{"ar": "Arabic","bg": "Bulgarian","ca": "Catalan","hr": "Croatian","cs": "Czech","da": "Danish","nl": "Dutch","en_CA": "English (Canada)","en_GB": "English (United Kingdom)","en_US": "English (United States)","et": "Estonian","fr": "French","fr_CA": "French (Canada)","fr_FR": "French (France)","fi": "Finnish","de": "German","de_CH": "German (Switzerland)","de_DE": "German (Germany)","el": "Greek","hi": "Hindi","hu": "Hungarian","is": "Icelandic","it": "Italian","lv": "Latvian","lt": "Lithuanian","nb": "Norwegian Bokm\u00e5l","pl": "Polish","pt": "Portuguese","ro": "Romanian","ru": "Russian","sr": "Serbian","sk": "Slovak","sl": "Slovenian","es": "Spanish","sv": "Swedish","tr": "Turkish","vi": "Vietnamese","zh": "Chinese","zh_TW": "Chinese (Traditional Han)"}'}};cvox.TestMsgs=function(){};goog.inherits(cvox.TestMsgs,cvox.AbstractMsgs);cvox.TestMsgs.prototype.getMsg=function(a,b){if(!a){var c=Error();c.message="Message id required";throw c;}c=cvox.TestMessages["chromevox_"+a];if(void 0==c)throw c=Error(),c.message="missing-msg: "+a,c;var d=c.message;if(b)for(var e=0;e<b.length;e++){var f=c.placeholders[e+1];if(!f)throw c=Error(),c.message="Bad placeholder "+e+" for message id "+a,c;f=c.placeholders[e+1].content;d=d.replace(f,b[e])}return d};
+cvox.TestMsgs.prototype.getNumber=function(a){return""+a};cvox.HostFactory.msgsConstructor=cvox.TestMsgs;cvox.ChromeVox.initDocument();
diff --git a/StoneIsland/platforms/android/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js b/StoneIsland/platforms/android/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js
new file mode 100644
index 00000000..f5d0aaf7
--- /dev/null
+++ b/StoneIsland/platforms/android/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js
@@ -0,0 +1,53 @@
+cordova.define("phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications", function(require, exports, module) {
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+/**
+ * Mobile Accessibility Notification event constants
+ */
+module.exports = {
+ /* MobileAccessibility window events */
+ SCREEN_READER_STATUS_CHANGED : "screenreaderstatuschanged",
+ CLOSED_CAPTIONING_STATUS_CHANGED : "closedcaptioningstatuschanged",
+ GUIDED_ACCESS_STATUS_CHANGED : "guidedaccessstatuschanged",
+ INVERT_COLORS_STATUS_CHANGED : "invertcolorsstatuschanged",
+ MONO_AUDIO_STATUS_CHANGED : "monoaudiostatuschanged",
+ REDUCE_MOTION_STATUS_CHANGED : "reducemotionstatuschanged",
+ TOUCH_EXPLORATION_STATUS_CHANGED : "touchexplorationstatechanged",
+ BOLD_TEXT_STATUS_CHANGED : "boldtextstatuschanged",
+ DARKER_SYSTEM_COLORS_STATUS_CHANGED : "darkersystemcolorsstatuschanged",
+ GRAYSCALE_STATUS_CHANGED : "grayscalestatuschanged",
+ REDUCE_TRANSPARENCY_STATUS_CHANGED : "reducetransparencystatuschanged",
+ SPEAK_SCREEN_STATUS_CHANGED : "speakscreenstatuschanged",
+ SPEAK_SELECTION_STATUS_CHANGED : "speakselectionstatuschanged",
+ SWITCH_CONTROL_STATUS_CHANGED : "switchcontrolstatuschanged",
+
+ /* iOS specific UIAccessibilityNotifications */
+ SCREEN_CHANGED : 1000,
+ LAYOUT_CHANGED : 1001,
+ ANNOUNCEMENT : 1008,
+ PAGE_SCROLLED : 1009,
+
+ /* Windows specific high contrast event */
+ HIGH_CONTRAST_CHANGED : "highcontrastchanged"
+};
+
+});
diff --git a/StoneIsland/platforms/android/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js b/StoneIsland/platforms/android/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js
new file mode 100644
index 00000000..852b8d34
--- /dev/null
+++ b/StoneIsland/platforms/android/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js
@@ -0,0 +1,502 @@
+cordova.define("phonegap-plugin-mobile-accessibility.mobile-accessibility", function(require, exports, module) {
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+var argscheck = require('cordova/argscheck'),
+ utils = require('cordova/utils'),
+ exec = require('cordova/exec'),
+ device = require('cordova-plugin-device.device'),
+ network = require('cordova-plugin-network-information.network'),
+ connection = require('cordova-plugin-network-information.Connection'),
+ MobileAccessibilityNotifications = require('phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications');
+
+var MobileAccessibility = function() {
+ this._isBoldTextEnabled = false;
+ this._isClosedCaptioningEnabled = false;
+ this._isDarkerSystemColorsEnabled = false;
+ this._isGrayscaleEnabled = false;
+ this._isGuidedAccessEnabled = false;
+ this._isInvertColorsEnabled = false;
+ this._isMonoAudioEnabled = false;
+ this._isReduceMotionEnabled = false;
+ this._isReduceTransparencyEnabled = false;
+ this._isScreenReaderRunning = false;
+ this._isSpeakScreenEnabled = false;
+ this._isSpeakSelectionEnabled = false;
+ this._isSwitchControlRunning = false;
+ this._isTouchExplorationEnabled = false;
+ this._usePreferredTextZoom = false;
+ this._isHighContrastEnabled = false;
+ this._highContrastScheme = undefined;
+
+ // Create new event handlers on the window (returns a channel instance)
+ this.channels = {
+ boldtextstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.BOLD_TEXT_STATUS_CHANGED),
+ closedcaptioningstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.CLOSED_CAPTIONING_STATUS_CHANGED),
+ darkersystemcolorsstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.DARKER_SYSTEM_COLORS_STATUS_CHANGED),
+ grayscalestatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.GRAYSCALE_STATUS_CHANGED),
+ guidedaccessstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.GUIDED_ACCESS_STATUS_CHANGED),
+ invertcolorsstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.INVERT_COLORS_STATUS_CHANGED),
+ monoaudiostatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.MONO_AUDIO_STATUS_CHANGED),
+ reducemotionstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.REDUCE_MOTION_STATUS_CHANGED),
+ reducetransparencystatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.REDUCE_TRANSPARENCY_STATUS_CHANGED),
+ screenreaderstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SCREEN_READER_STATUS_CHANGED),
+ speakscreenstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SPEAK_SCREEN_STATUS_CHANGED),
+ speakselectionstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SPEAK_SELECTION_STATUS_CHANGED),
+ switchcontrolstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SWITCH_CONTROL_STATUS_CHANGED),
+ touchexplorationstatechanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.TOUCH_EXPLORATION_STATUS_CHANGED),
+ highcontrastchanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.HIGH_CONTRAST_CHANGED)
+ };
+ for (var key in this.channels) {
+ this.channels[key].onHasSubscribersChange = MobileAccessibility.onHasSubscribersChange;
+ }
+};
+
+/**
+ * @private
+ * @ignore
+ */
+function handlers() {
+ return mobileAccessibility.channels.boldtextstatuschanged.numHandlers +
+ mobileAccessibility.channels.closedcaptioningstatuschanged.numHandlers +
+ mobileAccessibility.channels.darkersystemcolorsstatuschanged.numHandlers +
+ mobileAccessibility.channels.grayscalestatuschanged.numHandlers +
+ mobileAccessibility.channels.guidedaccessstatuschanged.numHandlers +
+ mobileAccessibility.channels.invertcolorsstatuschanged.numHandlers +
+ mobileAccessibility.channels.monoaudiostatuschanged.numHandlers +
+ mobileAccessibility.channels.reducemotionstatuschanged.numHandlers +
+ mobileAccessibility.channels.reducetransparencystatuschanged.numHandlers +
+ mobileAccessibility.channels.screenreaderstatuschanged.numHandlers +
+ mobileAccessibility.channels.speakscreenstatuschanged.numHandlers +
+ mobileAccessibility.channels.speakselectionstatuschanged.numHandlers +
+ mobileAccessibility.channels.switchcontrolstatuschanged.numHandlers +
+ mobileAccessibility.channels.touchexplorationstatechanged.numHandlers +
+ mobileAccessibility.channels.highcontrastchanged.numHandlers;
+};
+
+/**
+ *
+ * Event handlers for when callback methods get registered for mobileAccessibility.
+ * Keep track of how many handlers we have so we can start and stop the native MobileAccessibility listener
+ * appropriately.
+ * @private
+ * @ignore
+ */
+MobileAccessibility.onHasSubscribersChange = function() {
+ // If we just registered the first handler, make sure native listener is started.
+ if (this.numHandlers === 1 && handlers() === 1) {
+ exec(mobileAccessibility._status, mobileAccessibility._error, "MobileAccessibility", "start", []);
+ } else if (handlers() === 0) {
+ exec(null, null, "MobileAccessibility", "stop", []);
+ }
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility determine if a screen reader is running.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isScreenReaderRunning = function(callback) {
+ exec(function(bool) {
+ mobileAccessibility.activateOrDeactivateChromeVox(bool);
+ callback(Boolean(bool));
+ }, null, "MobileAccessibility", "isScreenReaderRunning", []);
+};
+MobileAccessibility.prototype.isVoiceOverRunning = function(callback) {
+ if (device.platform.toLowerCase() === "ios") {
+ MobileAccessibility.prototype.isScreenReaderRunning(callback);
+ } else {
+ callback(false);
+ }
+};
+MobileAccessibility.prototype.isTalkBackRunning = function(callback) {
+ if (device.platform.toLowerCase() === "android" || device.platform.toLowerCase() === "amazon-fireos") {
+ MobileAccessibility.prototype.isScreenReaderRunning(callback);
+ } else {
+ callback(false);
+ }
+};
+MobileAccessibility.prototype.isChromeVoxActive = function () {
+ return typeof cvox !== "undefined" && cvox.ChromeVox.host.ttsLoaded() && cvox.Api.isChromeVoxActive();
+};
+MobileAccessibility.prototype.activateOrDeactivateChromeVox = function(bool) {
+ if (device.platform !== "Android") return;
+ if (typeof cvox === "undefined") {
+ if (bool) {
+ console.warn('A screen reader is running but ChromeVox has failed to initialize.');
+ if (navigator.connection.type === Connection.UNKNOWN || navigator.connection.type === Connection.NONE) {
+ mobileAccessibility.injectLocalAndroidVoxScript();
+ }
+ }
+ } else {
+ // activate or deactivate ChromeVox based on whether or not or not the screen reader is running.
+ try {
+ cvox.ChromeVox.host.activateOrDeactivateChromeVox(bool);
+ } catch (err) {
+ console.error(err);
+ }
+ }
+
+ if (bool) {
+ if (!mobileAccessibility.hasOrientationChangeListener) {
+ window.addEventListener("orientationchange", mobileAccessibility.onOrientationChange);
+ mobileAccessibility.hasOrientationChangeListener = true;
+ }
+ } else if(mobileAccessibility.hasOrientationChangeListener) {
+ window.removeEventListener("orientationchange", mobileAccessibility.onOrientationChange);
+ mobileAccessibility.hasOrientationChangeListener = false;
+ }
+};
+
+MobileAccessibility.prototype.hasOrientationChangeListener = false;
+MobileAccessibility.prototype.onOrientationChange = function(event) {
+ if (!mobileAccessibility.isChromeVoxActive()) return;
+ cvox.ChromeVox.navigationManager.updateIndicator();
+};
+
+MobileAccessibility.prototype.scriptInjected = false;
+MobileAccessibility.prototype.injectLocalAndroidVoxScript = function() {
+ var versionsplit = device.version.split('.');
+ if (device.platform !== "Android" ||
+ !(versionsplit[0] > 4 || (versionsplit[0] == 4 && versionsplit[1] >= 1)) ||
+ typeof cvox !== "undefined" || mobileAccessibility.scriptInjected) return;
+ var script = document.createElement('script');
+ script.type = 'text/javascript';
+ script.async = true;
+ script.onload = function(){
+ // console.log(this.src + ' has loaded');
+ if (mobileAccessibility.isChromeVoxActive()) {
+ cordova.fireWindowEvent("screenreaderstatuschanged", {
+ isScreenReaderRunning: true
+ });
+ }
+ };
+
+ script.src = (versionsplit[0] > 4 || versionsplit[1] > 3)
+ ? "plugins/com.phonegap.plugin.mobile-accessibility/android/chromeandroidvox.js"
+ : "plugins/com.phonegap.plugin.mobile-accessibility/android/AndroidVox_v1.js";
+ document.getElementsByTagName('head')[0].appendChild(script);
+ mobileAccessibility.scriptInjected = true;
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Bold Text is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isBoldTextEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isBoldTextEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Closed Captioning is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isClosedCaptioningEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isClosedCaptioningEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Darker System Colors are enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isDarkerSystemColorsEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isDarkerSystemColorsEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Grayscale is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isGrayscaleEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isGrayscaleEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Guided Access is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isGuidedAccessEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isGuidedAccessEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if the display colors have been inverted.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isInvertColorsEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isInvertColorsEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Mono Audio is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isMonoAudioEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isMonoAudioEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Reduce Motion is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isReduceMotionEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isReduceMotionEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Reduce Transparency is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isReduceTransparencyEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isReduceTransparencyEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Speak Screen is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isSpeakScreenEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isSpeakScreenEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Speak Selection is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isSpeakSelectionEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isSpeakSelectionEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Switch Control is running.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isSwitchControlRunning = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isSwitchControlRunning", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Touch Exploration is enabled on Android.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isTouchExplorationEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isTouchExplorationEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if High Contrast is enabled on Windows.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isHighContrastEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isHighContrastEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to return the current text zoom percent value for the WebView.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.getTextZoom = function(callback) {
+ exec(callback, null, "MobileAccessibility", "getTextZoom", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to set the current text zoom percent value for the WebView.
+ * @param {Number} textZoom A percentage value by which text in the WebView should be scaled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.setTextZoom = function(textZoom, callback) {
+ exec(callback, null, "MobileAccessibility", "setTextZoom", [textZoom]);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to retrieve the user's preferred text zoom from system settings and apply it to the application WebView.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.updateTextZoom = function(callback) {
+ exec(callback, null, "MobileAccessibility", "updateTextZoom", []);
+};
+
+MobileAccessibility.prototype.usePreferredTextZoom = function(bool) {
+ var currentValue = window.localStorage.getItem("MobileAccessibility.usePreferredTextZoom") === "true";
+
+ if (arguments.length === 0) {
+ return currentValue;
+ }
+
+ if (currentValue != bool) {
+ window.localStorage.setItem("MobileAccessibility.usePreferredTextZoom", bool);
+ }
+
+ var callback = function(){
+ // Wrapping updateTextZoom call in a function to stop
+ // the event parameter propagation. This fixes an error
+ // on resume where cordova tried to call apply() on the
+ // event, expecting a function.
+ mobileAccessibility.updateTextZoom();
+ };
+
+ document.removeEventListener("resume", callback);
+
+ if (bool) {
+ // console.log("We should update the text zoom at this point: " + bool)
+ document.addEventListener("resume", callback, false);
+ mobileAccessibility.updateTextZoom();
+ } else {
+ mobileAccessibility.setTextZoom(100);
+ }
+
+ return Boolean(bool);
+};
+
+MobileAccessibility.prototype.MobileAccessibilityNotifications = MobileAccessibilityNotifications;
+
+/**
+ * Posts a notification with a string for a screen reader to announce, if it is running.
+ * @param {uint} mobileAccessibilityNotification A numeric constant for the type of notification to send. Constants are defined in MobileAccessibility.MobileAccessibilityNotifications.
+ * @param {string} string A string to be announced by a screen reader.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility, when the announcement is finished, the function should expect an object containing the stringValue that was voiced and a boolean indicating that the announcement wasSuccessful.
+ */
+MobileAccessibility.prototype.postNotification = function(mobileAccessibilityNotification, string, callback) {
+ exec(callback, null, "MobileAccessibility", "postNotification", [mobileAccessibilityNotification, string]);
+};
+
+/**
+ * Speaks the given string, and if ChromeVox is active, it will use the specified queueMode and properties.
+ * @param {string} string A string to be announced by a screen reader.
+ * @param {number} [queueMode] Optional number. Valid modes are 0 for flush; 1 for queue.
+ * @param {Object} [properties] Speech properties to use for this utterance.
+ */
+MobileAccessibility.prototype.speak = function(string, queueMode, properties) {
+ if (this.isChromeVoxActive()) {
+ cvox.ChromeVox.tts.speak(string, queueMode, properties);
+ } else {
+ exec(null, null, "MobileAccessibility", "postNotification", [MobileAccessibilityNotifications.ANNOUNCEMENT, string]);
+ }
+}
+
+/**
+ * Stops speech.
+ */
+MobileAccessibility.prototype.stop = function() {
+ if (this.isChromeVoxActive()) {
+ cvox.ChromeVox.tts.stop();
+ } else {
+ exec(null, null, "MobileAccessibility", "postNotification", [MobileAccessibilityNotifications.ANNOUNCEMENT, "\u200b"]);
+ }
+}
+
+/**
+ * Callback from native MobileAccessibility returning an object which describes the status of MobileAccessibility features.
+ *
+ * @param {Object} info
+ * @config {Boolean} [isBoldTextEnabled] Boolean to indicate bold text status (ios).
+ * @config {Boolean} [isClosedCaptioningEnabled] Boolean to indicate closed captioning status.
+ * @config {Boolean} [isDarkerSystemColorsEnabled] Boolean to indicate darker system colors status (ios).
+ * @config {Boolean} [isGrayscaleEnabled] Boolean to indicate grayscale status (ios).
+ * @config {Boolean} [isGuidedAccessEnabled] Boolean to indicate guided access status (ios).
+ * @config {Boolean} [isInvertColorsEnabled] Boolean to indicate invert colors status (ios).
+ * @config {Boolean} [isMonoAudioEnabled] Boolean to indicate mono audio status (ios).
+ * @config {Boolean} [isReduceMotionEnabled] Boolean to indicate reduce motion status (ios).
+ * @config {Boolean} [isReduceTransparencyEnabled] Boolean to indicate reduce transparency status (ios).
+ * @config {Boolean} [isScreenReaderRunning] Boolean to indicate screen reader status.
+ * @config {Boolean} [isSpeakScreenEnabled] Boolean to indicate speak screen status (ios).
+ * @config {Boolean} [isSpeakSelectionEnabled] Boolean to indicate speak selection status (ios).
+ * @config {Boolean} [isSwitchControlRunning] Boolean to indicate switch control status (ios).
+ * @config {Boolean} [isTouchExplorationEnabled] Boolean to indicate touch exploration status (android).
+ */
+MobileAccessibility.prototype._status = function(info) {
+ if (info) {
+ mobileAccessibility.activateOrDeactivateChromeVox(info.isScreenReaderRunning);
+ if (mobileAccessibility._isBoldTextEnabled !== info.isBoldTextEnabled) {
+ mobileAccessibility._isBoldTextEnabled = info.isBoldTextEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.BOLD_TEXT_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isClosedCaptioningEnabled !== info.isClosedCaptioningEnabled) {
+ mobileAccessibility._isClosedCaptioningEnabled = info.isClosedCaptioningEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.CLOSED_CAPTIONING_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isDarkerSystemColorsEnabled !== info.isDarkerSystemColorsEnabled) {
+ mobileAccessibility._isDarkerSystemColorsEnabled = info.isDarkerSystemColorsEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.DARKER_SYSTEM_COLORS_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isGrayscaleEnabled !== info.isGrayscaleEnabled) {
+ mobileAccessibility._isGrayscaleEnabled = info.isGrayscaleEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.GRAYSCALE_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isGuidedAccessEnabled !== info.isGuidedAccessEnabled) {
+ mobileAccessibility._isGuidedAccessEnabled = info.isGuidedAccessEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.GUIDED_ACCESS_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isInvertColorsEnabled !== info.isInvertColorsEnabled) {
+ mobileAccessibility._isInvertColorsEnabled = info.isInvertColorsEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.INVERT_COLORS_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isMonoAudioEnabled !== info.isMonoAudioEnabled) {
+ mobileAccessibility._isMonoAudioEnabled = info.isMonoAudioEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.MONO_AUDIO_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isReduceMotionEnabled !== info.isReduceMotionEnabled) {
+ mobileAccessibility._isReduceMotionEnabled = info.isReduceMotionEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.REDUCE_MOTION_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isReduceTransparencyEnabled !== info.isReduceTransparencyEnabled) {
+ mobileAccessibility._isReduceTransparencyEnabled = info.isReduceTransparencyEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.REDUCE_TRANSPARENCY_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isScreenReaderRunning !== info.isScreenReaderRunning) {
+ mobileAccessibility._isScreenReaderRunning = info.isScreenReaderRunning;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.SCREEN_READER_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isSpeakScreenEnabled !== info.isSpeakScreenEnabled) {
+ mobileAccessibility._isSpeakScreenEnabled = info.isSpeakScreenEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.SPEAK_SCREEN_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isSpeakSelectionEnabled !== info.isSpeakSelectionEnabled) {
+ mobileAccessibility._isSpeakSelectionEnabled = info.isSpeakSelectionEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.SPEAK_SELECTION_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isSwitchControlRunning !== info.isSwitchControlRunning) {
+ mobileAccessibility._isSwitchControlRunning = info.isSwitchControlRunning;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.SWITCH_CONTROL_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isTouchExplorationEnabled !== info.isTouchExplorationEnabled) {
+ mobileAccessibility._isTouchExplorationEnabled = info.isTouchExplorationEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.TOUCH_EXPLORATION_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isHighContrastEnabled !== info.isHighContrastEnabled) {
+ mobileAccessibility._isHighContrastEnabled = info.isHighContrastEnabled;
+ mobileAccessibility._highContrastScheme = info.highContrastScheme;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.HIGH_CONTRAST_CHANGED, info);
+ }
+ }
+};
+
+/**
+ * Error callback for MobileAccessibility start
+ */
+MobileAccessibility.prototype._error = function(e) {
+ console.log("Error initializing MobileAccessibility: " + e);
+};
+
+var mobileAccessibility = new MobileAccessibility();
+
+module.exports = mobileAccessibility;
+
+});
diff --git a/StoneIsland/platforms/android/res/xml/config.xml b/StoneIsland/platforms/android/res/xml/config.xml
index dc38ba1b..940d11f9 100644
--- a/StoneIsland/platforms/android/res/xml/config.xml
+++ b/StoneIsland/platforms/android/res/xml/config.xml
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
-<widget android-versionCode="6110" id="us.okfoc.stoneisland" version="1.1.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
+<widget android-versionCode="6121" id="us.okfoc.stoneisland" version="1.2.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<feature name="InAppBrowser">
<param name="android-package" value="org.apache.cordova.inappbrowser.InAppBrowser" />
</feature>
@@ -76,5 +76,10 @@
<preference name="AutoHideSplashScreen" value="true" />
<preference name="AllowInlineMediaPlayback" value="true" />
<preference name="AndroidLaunchMode" value="singleTop" />
- <preference name="android-minSdkVersion" value="26" />
+ <preference name="android-minSdkVersion" value="28" />
+ <preference name="android-targetSdkVersion" value="28" />
+ <access origin="https://ssl.gstatic.com/accessibility/javascript/android/*" />
+ <feature name="MobileAccessibility">
+ <param name="android-package" value="com.phonegap.plugin.mobileaccessibility.MobileAccessibility" />
+ </feature>
</widget>
diff --git a/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/AbstractMobileAccessibilityHelper.java b/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/AbstractMobileAccessibilityHelper.java
new file mode 100644
index 00000000..d76a951f
--- /dev/null
+++ b/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/AbstractMobileAccessibilityHelper.java
@@ -0,0 +1,41 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+package com.phonegap.plugin.mobileaccessibility;
+
+import android.view.ViewParent;
+
+abstract class AbstractMobileAccessibilityHelper {
+ MobileAccessibility mMobileAccessibility;
+ ViewParent mParent;
+ public abstract void initialize(MobileAccessibility mobileAccessibility);
+ public abstract boolean isClosedCaptioningEnabled();
+ public abstract boolean isScreenReaderRunning();
+ public abstract boolean isTouchExplorationEnabled();
+ public abstract void onAccessibilityStateChanged(boolean enabled);
+ public abstract void onCaptioningEnabledChanged(boolean enabled);
+ public abstract void onTouchExplorationStateChanged(boolean enabled);
+ public abstract void addStateChangeListeners();
+ public abstract void removeStateChangeListeners();
+ public abstract void announceForAccessibility(CharSequence text);
+ public abstract double getTextZoom();
+ public abstract void setTextZoom(double textZoom);
+}
diff --git a/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/DonutMobileAccessibilityHelper.java b/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/DonutMobileAccessibilityHelper.java
new file mode 100644
index 00000000..e6972719
--- /dev/null
+++ b/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/DonutMobileAccessibilityHelper.java
@@ -0,0 +1,187 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+package com.phonegap.plugin.mobileaccessibility;
+
+import android.annotation.TargetApi;
+import android.content.Context;
+import android.os.Build;
+import android.view.accessibility.AccessibilityEvent;
+import android.view.accessibility.AccessibilityManager;
+import android.view.View;
+import android.webkit.WebSettings;
+import android.webkit.WebView;
+
+import java.lang.IllegalAccessException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+@TargetApi(Build.VERSION_CODES.DONUT)
+public class DonutMobileAccessibilityHelper extends
+ AbstractMobileAccessibilityHelper {
+ AccessibilityManager mAccessibilityManager;
+ View mView;
+
+ @Override
+ public void initialize(MobileAccessibility mobileAccessibility) {
+ mMobileAccessibility = mobileAccessibility;
+ WebView view;
+ try {
+ view = (WebView) mobileAccessibility.webView;
+ mView = view;
+ } catch(ClassCastException ce) { // cordova-android 4.0+
+ try {
+ Method getView = mobileAccessibility.webView.getClass().getMethod("getView");
+ mView = (View) getView.invoke(mobileAccessibility.webView);
+ } catch (NoSuchMethodException e) {
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ }
+
+ mAccessibilityManager = (AccessibilityManager) mMobileAccessibility.cordova.getActivity().getSystemService(Context.ACCESSIBILITY_SERVICE);
+ }
+
+ @Override
+ public boolean isClosedCaptioningEnabled() {
+ return false;
+ }
+
+ @Override
+ public boolean isScreenReaderRunning() {
+ return mAccessibilityManager.isEnabled();
+ }
+
+ @Override
+ public boolean isTouchExplorationEnabled() {
+ return false;
+ }
+
+ @Override
+ public void onAccessibilityStateChanged(boolean enabled) {
+ mMobileAccessibility.onAccessibilityStateChanged(enabled);
+ }
+
+ @Override
+ public void onCaptioningEnabledChanged(boolean enabled) {
+ mMobileAccessibility.onCaptioningEnabledChanged(enabled);
+ }
+
+ @Override
+ public void onTouchExplorationStateChanged(boolean enabled) {
+ mMobileAccessibility.onTouchExplorationStateChanged(enabled);
+ }
+
+ @Override
+ public void addStateChangeListeners() {
+ }
+
+ @Override
+ public void removeStateChangeListeners() {
+ }
+
+ @Override
+ public void announceForAccessibility(CharSequence text) {
+ if (!mAccessibilityManager.isEnabled()) {
+ return;
+ }
+
+ final int eventType = AccessibilityEvent.TYPE_VIEW_FOCUSED;
+ final AccessibilityEvent event = AccessibilityEvent.obtain(eventType);
+ event.getText().add(text);
+ event.setEnabled(mView.isEnabled());
+ event.setClassName(mView.getClass().getName());
+ event.setPackageName(mView.getContext().getPackageName());
+ event.setContentDescription(null);
+
+ mAccessibilityManager.sendAccessibilityEvent(event);
+ }
+
+ @SuppressWarnings("deprecation")
+ @Override
+ public double getTextZoom() {
+ double zoom = 100;
+ WebSettings.TextSize wTextSize = WebSettings.TextSize.NORMAL;
+
+ try {
+ Method getSettings = mView.getClass().getMethod("getSettings");
+ Object wSettings = getSettings.invoke(mView);
+ Method getTextSize = wSettings.getClass().getMethod("getTextSize");
+ wTextSize = (WebSettings.TextSize) getTextSize.invoke(wSettings);
+ } catch(ClassCastException ce) {
+ ce.printStackTrace();
+ } catch (NoSuchMethodException e) {
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ }
+
+ switch (wTextSize) {
+ case LARGEST:
+ zoom = 200;
+ break;
+ case LARGER:
+ zoom = 150;
+ break;
+ case SMALLER:
+ zoom = 75;
+ break;
+ case SMALLEST:
+ zoom = 50;
+ break;
+ }
+
+ return zoom;
+ }
+
+ @SuppressWarnings("deprecation")
+ @Override
+ public void setTextZoom(double textZoom) {
+ WebSettings.TextSize wTextSize = WebSettings.TextSize.SMALLEST;
+ if (textZoom > 115) {
+ wTextSize = WebSettings.TextSize.LARGEST;
+ } else if (textZoom > 100) {
+ wTextSize = WebSettings.TextSize.LARGER;
+ } else if (textZoom == 100) {
+ wTextSize = WebSettings.TextSize.NORMAL;
+ } else if (textZoom > 50) {
+ wTextSize = WebSettings.TextSize.SMALLER;
+ }
+ //Log.i("MobileAccessibility", "fontScale = " + zoom + ", WebSettings.TextSize = " + wTextSize.toString());
+ try {
+ Method getSettings = mView.getClass().getMethod("getSettings");
+ Object wSettings = getSettings.invoke(mView);
+ Method setTextSize = wSettings.getClass().getMethod("setTextSize", WebSettings.TextSize.class);
+ setTextSize.invoke(wSettings, wTextSize);
+ } catch (NoSuchMethodException e) {
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/IceCreamSandwichMobileAccessibilityHelper.java b/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/IceCreamSandwichMobileAccessibilityHelper.java
new file mode 100644
index 00000000..f0cd252e
--- /dev/null
+++ b/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/IceCreamSandwichMobileAccessibilityHelper.java
@@ -0,0 +1,104 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+package com.phonegap.plugin.mobileaccessibility;
+
+import android.accessibilityservice.AccessibilityServiceInfo;
+import android.annotation.TargetApi;
+import android.os.Build;
+import android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener;
+
+import java.lang.IllegalAccessException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
+public class IceCreamSandwichMobileAccessibilityHelper extends
+ DonutMobileAccessibilityHelper {
+ private AccessibilityStateChangeListener mAccessibilityStateChangeListener;
+
+ @Override
+ public boolean isScreenReaderRunning() {
+ return mAccessibilityManager.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_SPOKEN).size() > 0;
+ }
+
+ @Override
+ public void addStateChangeListeners() {
+ if (mAccessibilityStateChangeListener == null) {
+ mAccessibilityStateChangeListener = new InternalAccessibilityStateChangeListener();
+ }
+ mAccessibilityManager.addAccessibilityStateChangeListener(mAccessibilityStateChangeListener);
+ }
+
+ @Override
+ public void removeStateChangeListeners() {
+ mAccessibilityManager.removeAccessibilityStateChangeListener(mAccessibilityStateChangeListener);
+ mAccessibilityStateChangeListener = null;
+ }
+
+ @Override
+ public double getTextZoom() {
+ double zoom = 100;
+ try {
+ Method getSettings = mView.getClass().getMethod("getSettings");
+ Object wSettings = getSettings.invoke(mView);
+ Method getTextZoom = wSettings.getClass().getMethod("getTextZoom");
+ zoom = Double.valueOf(getTextZoom.invoke(wSettings).toString());
+ } catch (ClassCastException ce) {
+ ce.printStackTrace();
+ } catch (NoSuchMethodException e) {
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ return zoom;
+ }
+
+ @Override
+ public void setTextZoom(double textZoom) {
+ //Log.i("MobileAccessibility", "setTextZoom(" + zoom + ")");
+ try {
+ Method getSettings = mView.getClass().getMethod("getSettings");
+ Object wSettings = getSettings.invoke(mView);
+ Method setTextZoom = wSettings.getClass().getMethod("setTextZoom", Integer.TYPE);
+ setTextZoom.invoke(wSettings, (int) textZoom);
+ } catch (ClassCastException ce) {
+ ce.printStackTrace();
+ } catch (NoSuchMethodException e) {
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private class InternalAccessibilityStateChangeListener
+ implements AccessibilityStateChangeListener {
+
+ @Override
+ public void onAccessibilityStateChanged(boolean enabled) {
+ mMobileAccessibility.onAccessibilityStateChanged(enabled);
+ }
+ }
+}
diff --git a/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/JellyBeanMobileAccessibilityHelper.java b/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/JellyBeanMobileAccessibilityHelper.java
new file mode 100644
index 00000000..7c97d247
--- /dev/null
+++ b/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/JellyBeanMobileAccessibilityHelper.java
@@ -0,0 +1,52 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+package com.phonegap.plugin.mobileaccessibility;
+
+import com.phonegap.plugin.mobileaccessibility.MobileAccessibility;
+
+import android.annotation.TargetApi;
+import android.os.Build;
+import android.view.accessibility.AccessibilityEvent;
+
+@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
+public class JellyBeanMobileAccessibilityHelper extends
+ IceCreamSandwichMobileAccessibilityHelper {
+
+ @Override
+ public void initialize(MobileAccessibility mobileAccessibility) {
+ super.initialize(mobileAccessibility);
+ mParent = mView.getParentForAccessibility();
+ }
+
+ @Override
+ public void announceForAccessibility(CharSequence text) {
+ if (mAccessibilityManager.isEnabled() && mParent != null) {
+ mAccessibilityManager.interrupt();
+ AccessibilityEvent event = AccessibilityEvent.obtain(
+ AccessibilityEvent.TYPE_ANNOUNCEMENT);
+ mView.onInitializeAccessibilityEvent(event);
+ event.getText().add(text);
+ event.setContentDescription(null);
+ mParent.requestSendAccessibilityEvent(mView, event);
+ }
+ }
+}
diff --git a/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/KitKatMobileAccessibilityHelper.java b/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/KitKatMobileAccessibilityHelper.java
new file mode 100644
index 00000000..11d342cb
--- /dev/null
+++ b/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/KitKatMobileAccessibilityHelper.java
@@ -0,0 +1,99 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+package com.phonegap.plugin.mobileaccessibility;
+
+import android.accessibilityservice.AccessibilityServiceInfo;
+import android.annotation.TargetApi;
+import android.content.Context;
+import android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener;
+import android.view.accessibility.CaptioningManager;
+import android.view.accessibility.CaptioningManager.CaptioningChangeListener;
+
+@TargetApi(19)
+public class KitKatMobileAccessibilityHelper extends
+ JellyBeanMobileAccessibilityHelper {
+ private CaptioningManager mCaptioningManager;
+ private CaptioningChangeListener mCaptioningChangeListener;
+ private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener;
+
+ @Override
+ public void initialize(MobileAccessibility mobileAccessibility) {
+ super.initialize(mobileAccessibility);
+ mCaptioningManager = (CaptioningManager) mobileAccessibility.cordova.getActivity().getSystemService(Context.CAPTIONING_SERVICE);
+ }
+
+ @Override
+ public boolean isScreenReaderRunning() {
+ return mAccessibilityManager.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_BRAILLE | AccessibilityServiceInfo.FEEDBACK_SPOKEN).size() > 0;
+ }
+
+ @Override
+ public boolean isClosedCaptioningEnabled() {
+ return mCaptioningManager.isEnabled();
+ }
+
+ @Override
+ public boolean isTouchExplorationEnabled() {
+ return mAccessibilityManager.isTouchExplorationEnabled();
+ }
+
+ @Override
+ public void addStateChangeListeners() {
+ super.addStateChangeListeners();
+ if (mCaptioningChangeListener == null) {
+ mCaptioningChangeListener = new CaptioningChangeListener() {
+ @Override
+ public void onEnabledChanged(boolean enabled) {
+ onCaptioningEnabledChanged(enabled);
+ }
+ };
+ }
+ mCaptioningManager.addCaptioningChangeListener(mCaptioningChangeListener);
+
+ if (mTouchExplorationStateChangeListener == null) {
+ mTouchExplorationStateChangeListener = new InternalTouchExplorationStateChangeListener();
+ }
+ mAccessibilityManager.addTouchExplorationStateChangeListener(mTouchExplorationStateChangeListener);
+ }
+
+ @Override
+ public void removeStateChangeListeners() {
+ super.removeStateChangeListeners();
+ if (mCaptioningChangeListener != null) {
+ mCaptioningManager.removeCaptioningChangeListener(mCaptioningChangeListener);
+ mCaptioningChangeListener = null;
+ }
+ if (mTouchExplorationStateChangeListener != null) {
+ mAccessibilityManager.removeTouchExplorationStateChangeListener(mTouchExplorationStateChangeListener);
+ mTouchExplorationStateChangeListener = null;
+ }
+ }
+
+ private class InternalTouchExplorationStateChangeListener
+ implements TouchExplorationStateChangeListener {
+
+ @Override
+ public void onTouchExplorationStateChanged(boolean enabled) {
+ mMobileAccessibility.onTouchExplorationStateChanged(enabled);
+ }
+ }
+}
diff --git a/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/MobileAccessibility.java b/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/MobileAccessibility.java
new file mode 100644
index 00000000..a979420e
--- /dev/null
+++ b/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/MobileAccessibility.java
@@ -0,0 +1,330 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+package com.phonegap.plugin.mobileaccessibility;
+
+import org.apache.cordova.CallbackContext;
+import org.apache.cordova.CordovaInterface;
+import org.apache.cordova.CordovaPlugin;
+import org.apache.cordova.CordovaWebView;
+import org.apache.cordova.PluginResult;
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import android.os.Build;
+import android.webkit.WebView;
+
+import java.lang.IllegalAccessException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+/**
+ * This class provides information on the status of native accessibility services to JavaScript.
+ */
+public class MobileAccessibility extends CordovaPlugin {
+ private AbstractMobileAccessibilityHelper mMobileAccessibilityHelper;
+ private CallbackContext mCallbackContext = null;
+ private boolean mIsScreenReaderRunning = false;
+ private boolean mClosedCaptioningEnabled = false;
+ private boolean mTouchExplorationEnabled = false;
+ private boolean mCachedIsScreenReaderRunning = false;
+ private float mFontScale = 1;
+
+ @Override
+ public void initialize(CordovaInterface cordova, CordovaWebView webView) {
+ super.initialize(cordova, webView);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
+ mMobileAccessibilityHelper = new KitKatMobileAccessibilityHelper();
+ } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
+ mMobileAccessibilityHelper = new JellyBeanMobileAccessibilityHelper();
+ } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
+ mMobileAccessibilityHelper = new IceCreamSandwichMobileAccessibilityHelper();
+ } else {
+ mMobileAccessibilityHelper = new DonutMobileAccessibilityHelper();
+ }
+ mMobileAccessibilityHelper.initialize(this);
+ }
+
+ @Override
+ public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
+ try {
+ if (action.equals("isScreenReaderRunning")) {
+ isScreenReaderRunning(callbackContext);
+ return true;
+ } else if (action.equals("isClosedCaptioningEnabled")) {
+ isClosedCaptioningEnabled(callbackContext);
+ return true;
+ } else if (action.equals("isTouchExplorationEnabled")) {
+ isTouchExplorationEnabled(callbackContext);
+ return true;
+ } else if (action.equals("postNotification")) {
+ if (args.length() > 1) {
+ String string = args.getString(1);
+ if (!string.isEmpty()) {
+ announceForAccessibility(string, callbackContext);
+ }
+ }
+ return true;
+ } else if(action.equals("getTextZoom")) {
+ getTextZoom(callbackContext);
+ return true;
+ } else if(action.equals("setTextZoom")) {
+ if (args.length() > 0) {
+ double textZoom = args.getDouble(0);
+ if (textZoom > 0) {
+ setTextZoom(textZoom, callbackContext);
+ }
+ }
+ return true;
+ } else if(action.equals("updateTextZoom")) {
+ updateTextZoom(callbackContext);
+ return true;
+ } else if (action.equals("start")) {
+ start(callbackContext);
+ return true;
+ } else if (action.equals("stop")) {
+ stop();
+ return true;
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
+ }
+ return false;
+ }
+
+ /**
+ * Called when the system is about to pause the current activity
+ *
+ * @param multitasking Flag indicating if multitasking is turned on for app
+ */
+ @Override
+ public void onPause(boolean multitasking) {
+ //Log.i("MobileAccessibility", "onPause");
+ mCachedIsScreenReaderRunning = mIsScreenReaderRunning;
+ }
+
+ /**
+ * Called when the activity will start interacting with the user.
+ *
+ * @param multitasking Flag indicating if multitasking is turned on for app
+ */
+ @Override
+ public void onResume(boolean multitasking) {
+ //Log.i("MobileAccessibility", "onResume");
+ if (mIsScreenReaderRunning && !mCachedIsScreenReaderRunning) {
+ //Log.i("MobileAccessibility", "Reloading page on reload because the Accessibility State has changed.");
+ mCachedIsScreenReaderRunning = mIsScreenReaderRunning;
+ stop();
+ cordova.getActivity().runOnUiThread(new Runnable() {
+ public void run() {
+ WebView view;
+ try {
+ view = (WebView) webView;
+ view.reload();
+ } catch(ClassCastException ce) { // cordova-android 4.0+
+ try { // cordova-android 4.0+
+ Method getView = webView.getClass().getMethod("getView");
+ Method reload = getView.invoke(webView).getClass().getMethod("reload");
+ reload.invoke(webView);
+ } catch (NoSuchMethodException e) {
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ });
+ }
+ }
+
+ /**
+ * The final call you receive before your activity is destroyed.
+ */
+ public void onDestroy() {
+ stop();
+ }
+
+ private void isScreenReaderRunning(final CallbackContext callbackContext) {
+ mIsScreenReaderRunning = mMobileAccessibilityHelper.isScreenReaderRunning();
+ cordova.getThreadPool().execute(new Runnable() {
+ public void run() {
+ callbackContext.success(mIsScreenReaderRunning ? 1 : 0);
+ }
+ });
+ }
+
+ protected boolean isScreenReaderRunning() {
+ mIsScreenReaderRunning = mMobileAccessibilityHelper.isScreenReaderRunning();
+ return mIsScreenReaderRunning;
+ }
+
+ private void isClosedCaptioningEnabled(final CallbackContext callbackContext) {
+ mClosedCaptioningEnabled = mMobileAccessibilityHelper.isClosedCaptioningEnabled();
+ cordova.getThreadPool().execute(new Runnable() {
+ public void run() {
+ callbackContext.success(mClosedCaptioningEnabled ? 1 : 0);
+ }
+ });
+ }
+
+ protected boolean isClosedCaptioningEnabled() {
+ mClosedCaptioningEnabled = mMobileAccessibilityHelper.isClosedCaptioningEnabled();
+ return mClosedCaptioningEnabled;
+ }
+
+ private void isTouchExplorationEnabled(final CallbackContext callbackContext) {
+ mTouchExplorationEnabled= mMobileAccessibilityHelper.isTouchExplorationEnabled();
+ cordova.getThreadPool().execute(new Runnable() {
+ public void run() {
+ callbackContext.success(mTouchExplorationEnabled ? 1 : 0);
+ }
+ });
+ }
+
+ protected boolean isTouchExplorationEnabled() {
+ mTouchExplorationEnabled = mMobileAccessibilityHelper.isTouchExplorationEnabled();
+ return mTouchExplorationEnabled;
+ }
+
+ private void announceForAccessibility(CharSequence text, final CallbackContext callbackContext) {
+ mMobileAccessibilityHelper.announceForAccessibility(text);
+ if (callbackContext != null) {
+ JSONObject info = new JSONObject();
+ try {
+ info.put("stringValue", text);
+ info.put("wasSuccessful", mIsScreenReaderRunning);
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ callbackContext.success(info);
+ }
+ }
+
+ public void onAccessibilityStateChanged(boolean enabled) {
+ mIsScreenReaderRunning = enabled;
+ cordova.getActivity().runOnUiThread(new Runnable() {
+ public void run() {
+ sendMobileAccessibilityStatusChangedCallback();
+ }
+ });
+ }
+
+ public void onCaptioningEnabledChanged(boolean enabled) {
+ mClosedCaptioningEnabled = enabled;
+ cordova.getActivity().runOnUiThread(new Runnable() {
+ public void run() {
+ sendMobileAccessibilityStatusChangedCallback();
+ }
+ });
+ }
+
+ public void onTouchExplorationStateChanged(boolean enabled) {
+ mTouchExplorationEnabled = enabled;
+ cordova.getActivity().runOnUiThread(new Runnable() {
+ public void run() {
+ sendMobileAccessibilityStatusChangedCallback();
+ }
+ });
+ }
+
+ private void getTextZoom(final CallbackContext callbackContext) {
+ cordova.getActivity().runOnUiThread(new Runnable() {
+ public void run() {
+ final double textZoom = mMobileAccessibilityHelper.getTextZoom();
+ if (callbackContext != null) {
+ callbackContext.success((int) textZoom);
+ }
+ }
+ });
+ }
+
+ private void setTextZoom(final double textZoom, final CallbackContext callbackContext) {
+ cordova.getActivity().runOnUiThread(new Runnable() {
+ public void run() {
+ mMobileAccessibilityHelper.setTextZoom(textZoom);
+ if (callbackContext != null) {
+ callbackContext.success((int) mMobileAccessibilityHelper.getTextZoom());
+ }
+ }
+ });
+ }
+
+ public void setTextZoom(final double textZoom) {
+ cordova.getActivity().runOnUiThread(new Runnable() {
+ public void run() {
+ mMobileAccessibilityHelper.setTextZoom(textZoom);
+ }
+ });
+ }
+
+ private void updateTextZoom(final CallbackContext callbackContext) {
+ float fontScale = cordova.getActivity().getResources().getConfiguration().fontScale;
+ if (fontScale != mFontScale) {
+ mFontScale = fontScale;
+ }
+ final double textZoom = Math.round(mFontScale * 100);
+ setTextZoom(textZoom, callbackContext);
+ }
+
+ private void sendMobileAccessibilityStatusChangedCallback() {
+ if (this.mCallbackContext != null) {
+ PluginResult result = new PluginResult(PluginResult.Status.OK, getMobileAccessibilityStatus());
+ result.setKeepCallback(true);
+ this.mCallbackContext.sendPluginResult(result);
+ }
+ }
+
+ /* Get the current mobile accessibility status. */
+ private JSONObject getMobileAccessibilityStatus() {
+ JSONObject status = new JSONObject();
+ try {
+ status.put("isScreenReaderRunning", mIsScreenReaderRunning);
+ status.put("isClosedCaptioningEnabled", mClosedCaptioningEnabled);
+ status.put("isTouchExplorationEnabled", mTouchExplorationEnabled);
+ //Log.i("MobileAccessibility", "MobileAccessibility.isScreenReaderRunning == " + status.getString("isScreenReaderRunning") +
+ // "\nMobileAccessibility.isClosedCaptioningEnabled == " + status.getString("isClosedCaptioningEnabled") +
+ // "\nMobileAccessibility.isTouchExplorationEnabled == " + status.getString("isTouchExplorationEnabled") );
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ return status;
+ }
+
+ private void start(CallbackContext callbackContext) {
+ //Log.i("MobileAccessibility", "MobileAccessibility.start");
+ mCallbackContext = callbackContext;
+ mMobileAccessibilityHelper.addStateChangeListeners();
+ sendMobileAccessibilityStatusChangedCallback();
+ }
+
+ private void stop() {
+ //Log.i("MobileAccessibility", "MobileAccessibility.stop");
+ if (mCallbackContext != null) {
+ sendMobileAccessibilityStatusChangedCallback();
+ mMobileAccessibilityHelper.removeStateChangeListeners();
+ mCallbackContext = null;
+ }
+ }
+}
diff --git a/StoneIsland/platforms/ios/CordovaLib/CordovaLib.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist b/StoneIsland/platforms/ios/CordovaLib/CordovaLib.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist
index 54b0db05..3038bdb4 100644
--- a/StoneIsland/platforms/ios/CordovaLib/CordovaLib.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/StoneIsland/platforms/ios/CordovaLib/CordovaLib.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -9,11 +9,21 @@
<key>orderHint</key>
<integer>4</integer>
</dict>
+ <key>Cordova.xcscheme_^#shared#^_</key>
+ <dict>
+ <key>orderHint</key>
+ <integer>4</integer>
+ </dict>
<key>CordovaLib.xcscheme</key>
<dict>
<key>orderHint</key>
<integer>3</integer>
</dict>
+ <key>CordovaLib.xcscheme_^#shared#^_</key>
+ <dict>
+ <key>orderHint</key>
+ <integer>2</integer>
+ </dict>
</dict>
</dict>
</plist>
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Info.plist b/StoneIsland/platforms/ios/Stone Island.xcarchive/Info.plist
index 1887e791..cc6e8127 100644
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Info.plist
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Info.plist
@@ -9,9 +9,9 @@
<key>CFBundleIdentifier</key>
<string>us.okfoc.stoneisland</string>
<key>CFBundleShortVersionString</key>
- <string>1.1.0</string>
+ <string>1.2.0</string>
<key>CFBundleVersion</key>
- <string>1.1.0</string>
+ <string>1.2.0</string>
<key>SigningIdentity</key>
<string>iPhone Developer: Francesca Agusani (3ECUPBTQ5W)</string>
<key>Team</key>
@@ -20,7 +20,7 @@
<key>ArchiveVersion</key>
<integer>2</integer>
<key>CreationDate</key>
- <date>2018-10-03T01:34:31Z</date>
+ <date>2019-07-20T21:50:15Z</date>
<key>Name</key>
<string>Stone Island</string>
<key>SchemeName</key>
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Assets.car b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Assets.car
index 271f6e3d..55f50424 100644
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Assets.car
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Assets.car
Binary files differ
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib
index e6db4716..e17d27b4 100644
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib
Binary files differ
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib
index 69123580..f8eb3a7b 100644
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib
Binary files differ
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Info.plist b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Info.plist
index be04aaa5..37dcf003 100644
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Info.plist
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Info.plist
Binary files differ
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/MainViewController.nib b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/MainViewController.nib
index d05862db..75695f93 100644
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/MainViewController.nib
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/MainViewController.nib
Binary files differ
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Stone Island b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Stone Island
index e729e8f5..21e77b9e 100755
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Stone Island
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Stone Island
Binary files differ
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/_CodeSignature/CodeResources b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/_CodeSignature/CodeResources
index 58cd9606..3938505b 100644
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/_CodeSignature/CodeResources
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/_CodeSignature/CodeResources
@@ -94,11 +94,11 @@
</data>
<key>Assets.car</key>
<data>
- QBTHoRJ0x8xv/TSloxDRiFB1FMc=
+ 69hIIqyEMar3UEkA8JsMFO3uaO8=
</data>
<key>CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib</key>
<data>
- gXqcDJNrIf7qR1DKI9ch+1V9PDU=
+ ExIp2biIZjh9RH83tZQL47EPOTE=
</data>
<key>CDVLaunchScreen.storyboardc/Info.plist</key>
<data>
@@ -106,7 +106,7 @@
</data>
<key>CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib</key>
<data>
- 1mmKAwCFy4227LZ0S7gS6/Du8O8=
+ yVCnEoCa72AVBAbPs/7h/te1m9M=
</data>
<key>CDVNotification.bundle/beep.wav</key>
<data>
@@ -114,11 +114,11 @@
</data>
<key>Info.plist</key>
<data>
- JSI5Ec8Q4kW5bUuZV6ovXqPRDw0=
+ +QdQhFsRxf+QQtWfQrsRuS3/xV0=
</data>
<key>MainViewController.nib</key>
<data>
- VnEob4dYi3BF3NfvgMSVbBvdp70=
+ DC0L5nLOzRhZk1hZ2zgu/BVRZwg=
</data>
<key>PkgInfo</key>
<data>
@@ -126,11 +126,11 @@
</data>
<key>config.xml</key>
<data>
- bfkQF8MbJwqxyLtjkZ/gpbN5XUs=
+ LTVqO8XFZVQhqUOeZQEy7meNw1c=
</data>
<key>embedded.mobileprovision</key>
<data>
- WLS7bPgkyLNAOPSGAH/RMV9viq4=
+ l8wkj9UX5I2v1dBJQvQf/lTQiew=
</data>
<key>www/cordova-js-src/exec.js</key>
<data>
@@ -158,15 +158,15 @@
</data>
<key>www/css/account.css</key>
<data>
- QleBinpy/MrHuJ0RNanvPLTucXY=
+ fXiIrfC1WC8u+wfH1t+SfL20R5U=
</data>
<key>www/css/blogs.css</key>
<data>
- Z4GX/8DuhS7JcIqtnsSaH3JMtq0=
+ iGcvIKIRYvcNDhnGcyMiEjNAIgQ=
</data>
<key>www/css/cart.css</key>
<data>
- Ng3YvYgB2WSweFsmVC2E1h+W84A=
+ xeHWGQYuz0O3L8nz+SST95Gf7qg=
</data>
<key>www/css/fonts/andale_mono.ttf</key>
<data>
@@ -222,15 +222,15 @@
</data>
<key>www/css/index.css</key>
<data>
- lWAy1S7uziY189/RAGKaev7ICcE=
+ w2WshgNfe4vVQH0iROkZQDGsnsI=
</data>
<key>www/css/nav.css</key>
<data>
- m/IdwEAy3GdFXoqWuEdHjDT/Z1c=
+ AxqGmgOBTnKOkigwb9PUW8RbjBg=
</data>
<key>www/css/products.css</key>
<data>
- zTG+7VrnL91c3P843JhNb3p9cDQ=
+ KYbJvjbQPtfzN2/ZJ7m9zvMdRK4=
</data>
<key>www/css/vendor/flickity.css</key>
<data>
@@ -350,11 +350,11 @@
</data>
<key>www/index.html</key>
<data>
- WfmLMrq2VwoMbLb2pXyFB7HO8RA=
+ aTA/jaWobJdPi8nuMjMiLB2cM4A=
</data>
<key>www/js/index.js</key>
<data>
- Ln7g2gyVP8A++JMCVaE6MrE+vts=
+ MXHwod7HThPUBz8txlOmjvcslaA=
</data>
<key>www/js/lib/_router.js</key>
<data>
@@ -362,7 +362,7 @@
</data>
<key>www/js/lib/account/AccountView.js</key>
<data>
- aVpIFnEgArttSQ+Hhv6TuJfBU4A=
+ bIokk6jby9kV70sP6mwSQYyWt9o=
</data>
<key>www/js/lib/account/ConsentModal.js</key>
<data>
@@ -402,7 +402,7 @@
</data>
<key>www/js/lib/blogs/ArchiveView.js</key>
<data>
- 0MoYu/cf89T9Yj3/GqkxVS5Kn0s=
+ RNMEI9bRqHA+xQBp5J42b4eHTe0=
</data>
<key>www/js/lib/blogs/BlogView.js</key>
<data>
@@ -410,7 +410,7 @@
</data>
<key>www/js/lib/blogs/HubView.js</key>
<data>
- JoWqvJNyRivH1RTOWttHCXFw1fQ=
+ 1g7GG1e0AQLjJG18Y02rg4Rm8A8=
</data>
<key>www/js/lib/blogs/PageView.js</key>
<data>
@@ -418,7 +418,7 @@
</data>
<key>www/js/lib/blogs/StoryView.js</key>
<data>
- 0uCBjGnwq8xsO5chZu/C1rGZ/SQ=
+ 213XVfJUJtaxCHV7FFbjga5hs7o=
</data>
<key>www/js/lib/cart/CartConfirm.js</key>
<data>
@@ -438,7 +438,7 @@
</data>
<key>www/js/lib/cart/CartSummary.js</key>
<data>
- YYiOPlDBi/ESvBJZ+bBt5ElQ254=
+ wKti0DCO29c0cz8v1a3rocKnBFg=
</data>
<key>www/js/lib/cart/CartThanks.js</key>
<data>
@@ -448,6 +448,10 @@
<data>
+kmEZ9ukx0LiHKArz7oWZyBZr/4=
</data>
+ <key>www/js/lib/etc/accessibility.js</key>
+ <data>
+ QgUYQBmm2miX0dNrFsIf9Szkt8M=
+ </data>
<key>www/js/lib/etc/backup_db.js</key>
<data>
AvuTNjwsRzwgVY0NwLUgrknX60M=
@@ -470,11 +474,11 @@
</data>
<key>www/js/lib/nav/AddressView.js</key>
<data>
- ftShfH+ffLTkwffJ5JT5/V/TpRo=
+ 0eDtFKXnaHon167o7b/jNuJOBxw=
</data>
<key>www/js/lib/nav/CreditCardView.js</key>
<data>
- uV1Y5XohZktnJXSKPs/gt/vhlzk=
+ gVL/tg/yUhmm+DeTTphe5rsyHrk=
</data>
<key>www/js/lib/nav/CurtainView.js</key>
<data>
@@ -506,19 +510,19 @@
</data>
<key>www/js/lib/products/CollectionView.js</key>
<data>
- dZYIlXKeCgVJVU3GHPND6CLid+w=
+ jAdRAZPg6wq2IpgL00kFG/bsV7I=
</data>
<key>www/js/lib/products/GalleryView.js</key>
<data>
- 5rrxB1zyClIfmelN6ylnF/wLAU4=
+ PlTNRrOKZ/pThjhfJGIhPyF0vF8=
</data>
<key>www/js/lib/products/ProductView.js</key>
<data>
- OvyCvqKno4Hvm5R6fcB5SHDfj+s=
+ /82lnayY7RllLikHb4Gf5NX84MY=
</data>
<key>www/js/lib/products/Selector.js</key>
<data>
- QxR583tVoXxutmfsJwO9Trbb8QE=
+ EKBEgRJvD6J4pdql7rZuk0Hf1ss=
</data>
<key>www/js/lib/products/filters/CategoryFilter.js</key>
<data>
@@ -542,7 +546,7 @@
</data>
<key>www/js/lib/view/Serializable.js</key>
<data>
- 0E+pHfC1nUz8TPY9jKCYZZUBV/E=
+ h9Z7w1U81a/0iSk1479BPPEWbt0=
</data>
<key>www/js/lib/view/View.js</key>
<data>
@@ -945,22 +949,22 @@
<dict>
<key>hash</key>
<data>
- QBTHoRJ0x8xv/TSloxDRiFB1FMc=
+ 69hIIqyEMar3UEkA8JsMFO3uaO8=
</data>
<key>hash2</key>
<data>
- TPY2WEVP1NprXT8QrFED0SnysoNbEX77Bo0ohK1Q1FM=
+ FLGkfRiKT6eCA0D6oCruKdRSScEgK8YKQlHMNoMn7EU=
</data>
</dict>
<key>CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib</key>
<dict>
<key>hash</key>
<data>
- gXqcDJNrIf7qR1DKI9ch+1V9PDU=
+ ExIp2biIZjh9RH83tZQL47EPOTE=
</data>
<key>hash2</key>
<data>
- 7B1IaTogj84Gr05DmyNhEgxjlAnFyDzSc9oB1y/0pms=
+ 0KKFtnFhrHHqIoY42bZrcoPHNgAIin93f9Ptl9Ccb98=
</data>
</dict>
<key>CDVLaunchScreen.storyboardc/Info.plist</key>
@@ -978,11 +982,11 @@
<dict>
<key>hash</key>
<data>
- 1mmKAwCFy4227LZ0S7gS6/Du8O8=
+ yVCnEoCa72AVBAbPs/7h/te1m9M=
</data>
<key>hash2</key>
<data>
- WKlHZ6y3qNoMdkAFGx778YJ+mhDt18wMn4RY+glb8k4=
+ 2ik2cAY8YQ/XXZUfhBAqDlVMDnTJhNMQaymb2NCELhw=
</data>
</dict>
<key>CDVNotification.bundle/beep.wav</key>
@@ -1000,33 +1004,33 @@
<dict>
<key>hash</key>
<data>
- VnEob4dYi3BF3NfvgMSVbBvdp70=
+ DC0L5nLOzRhZk1hZ2zgu/BVRZwg=
</data>
<key>hash2</key>
<data>
- uluxF5ka8nGH0NgslihktESpYM3yuAveL0rutQZLjEo=
+ G8GWdegzY7yih60B4ea3Ct0sx+/nVwyayzU1FKkPt0s=
</data>
</dict>
<key>config.xml</key>
<dict>
<key>hash</key>
<data>
- bfkQF8MbJwqxyLtjkZ/gpbN5XUs=
+ LTVqO8XFZVQhqUOeZQEy7meNw1c=
</data>
<key>hash2</key>
<data>
- 7WmvJuHvQdc7/6q41PdabIVMeOTfwLjGwHq8OchRmLw=
+ mfaY/1RPelG0Ck+46NFWVIw4g+RQljUwp3QE54ZMZJ4=
</data>
</dict>
<key>embedded.mobileprovision</key>
<dict>
<key>hash</key>
<data>
- WLS7bPgkyLNAOPSGAH/RMV9viq4=
+ l8wkj9UX5I2v1dBJQvQf/lTQiew=
</data>
<key>hash2</key>
<data>
- P4d1qHmYFGlLUCMl/C9wnQiYd1vWXFMxT4JmJRgUxSI=
+ EkGKDjJhII43Qn+PEmfD7sVHEiZWrPJeyGj1aKMzEco=
</data>
</dict>
<key>www/cordova-js-src/exec.js</key>
@@ -1099,33 +1103,33 @@
<dict>
<key>hash</key>
<data>
- QleBinpy/MrHuJ0RNanvPLTucXY=
+ fXiIrfC1WC8u+wfH1t+SfL20R5U=
</data>
<key>hash2</key>
<data>
- iG3ony/fJ708Vgul9dITTPufcs7dDxPfJxdQbTDV08w=
+ GEe0cIiEYcwOQI+uDZovkUI2WNg4HPUcRv5Amn6wiSk=
</data>
</dict>
<key>www/css/blogs.css</key>
<dict>
<key>hash</key>
<data>
- Z4GX/8DuhS7JcIqtnsSaH3JMtq0=
+ iGcvIKIRYvcNDhnGcyMiEjNAIgQ=
</data>
<key>hash2</key>
<data>
- /kKdvfkHYtRA/JOtOpK2KoSpFf+XojJTnEae/1wHJck=
+ p0SOmpABcUNvkVAj1taiqvH8vVFMBuT30lxdN0Ywp2k=
</data>
</dict>
<key>www/css/cart.css</key>
<dict>
<key>hash</key>
<data>
- Ng3YvYgB2WSweFsmVC2E1h+W84A=
+ xeHWGQYuz0O3L8nz+SST95Gf7qg=
</data>
<key>hash2</key>
<data>
- gEc385vNfLCGA1boJOmO5fkqBtmWjHZ5TfFDFn1RjdI=
+ 12MfXOBwnH2gkNUou3QVM37uuiadDPUATkTvQv/l0tk=
</data>
</dict>
<key>www/css/fonts/andale_mono.ttf</key>
@@ -1275,33 +1279,33 @@
<dict>
<key>hash</key>
<data>
- lWAy1S7uziY189/RAGKaev7ICcE=
+ w2WshgNfe4vVQH0iROkZQDGsnsI=
</data>
<key>hash2</key>
<data>
- 7zr0oTSoxWrh2Lyb7N/a6vwbE4xmn6Vqj0UJvXVUeJU=
+ vekNt7VayK8g7ig3J1LQxCPooFK5Hu7U7Rv+FWMmibo=
</data>
</dict>
<key>www/css/nav.css</key>
<dict>
<key>hash</key>
<data>
- m/IdwEAy3GdFXoqWuEdHjDT/Z1c=
+ AxqGmgOBTnKOkigwb9PUW8RbjBg=
</data>
<key>hash2</key>
<data>
- MtRdAFiYLEZFwIaHll90exG5yyXlWPejuG2if/SYhVo=
+ 8CzYKZKf8C4/0g4qxjhJBiDYQCqtbCpu5Itm3+4mEOY=
</data>
</dict>
<key>www/css/products.css</key>
<dict>
<key>hash</key>
<data>
- zTG+7VrnL91c3P843JhNb3p9cDQ=
+ KYbJvjbQPtfzN2/ZJ7m9zvMdRK4=
</data>
<key>hash2</key>
<data>
- H/BhL6QJGpSW6N5Xqn/riK8xtmJy51CQemobDb6442c=
+ wK+MKtz0FScRFmprN3Oh48s6fMP9/RG20PD8a9wSHcw=
</data>
</dict>
<key>www/css/vendor/flickity.css</key>
@@ -1627,22 +1631,22 @@
<dict>
<key>hash</key>
<data>
- WfmLMrq2VwoMbLb2pXyFB7HO8RA=
+ aTA/jaWobJdPi8nuMjMiLB2cM4A=
</data>
<key>hash2</key>
<data>
- Z5SztGcvL5GvvJA/izhKa2N937u6THJcoDuSKChyFNQ=
+ wYgF/pbxmsnsSOjIn5MzsEKOoZZl3bSE9yQgqpyfaow=
</data>
</dict>
<key>www/js/index.js</key>
<dict>
<key>hash</key>
<data>
- Ln7g2gyVP8A++JMCVaE6MrE+vts=
+ MXHwod7HThPUBz8txlOmjvcslaA=
</data>
<key>hash2</key>
<data>
- MBzYe9TIGKaAR4s4Si/uXlHZS2JSer0fm7oGfdGl/m4=
+ OEUgyhHsaNXVdy8V4Vpa314+drterkwuRaZIrNVYfN4=
</data>
</dict>
<key>www/js/lib/_router.js</key>
@@ -1660,11 +1664,11 @@
<dict>
<key>hash</key>
<data>
- aVpIFnEgArttSQ+Hhv6TuJfBU4A=
+ bIokk6jby9kV70sP6mwSQYyWt9o=
</data>
<key>hash2</key>
<data>
- iG1tranbNydzGN9uEJs6u4YvjBTjDUH6+Ey2GuOskx0=
+ qw6F4bORmnvL3BJtoUXmhTR1r9tTeRaRrBdrlkRM+sE=
</data>
</dict>
<key>www/js/lib/account/ConsentModal.js</key>
@@ -1770,11 +1774,11 @@
<dict>
<key>hash</key>
<data>
- 0MoYu/cf89T9Yj3/GqkxVS5Kn0s=
+ RNMEI9bRqHA+xQBp5J42b4eHTe0=
</data>
<key>hash2</key>
<data>
- v3axxDFmZxOIUfaVfkbvZECsJNT7TIo2cw8PXjfm2P8=
+ 950niUjIaOBT5K04BEdj+5ZV+MiCOhuaCZZWcsfk99o=
</data>
</dict>
<key>www/js/lib/blogs/BlogView.js</key>
@@ -1792,11 +1796,11 @@
<dict>
<key>hash</key>
<data>
- JoWqvJNyRivH1RTOWttHCXFw1fQ=
+ 1g7GG1e0AQLjJG18Y02rg4Rm8A8=
</data>
<key>hash2</key>
<data>
- lez4v0kNzHIjx8HbZND8dA0vuTWpx1OCauojRkWVgYk=
+ VMh3rW84afsZangutatzZ9iccywOIK3PUk+bMNJD06E=
</data>
</dict>
<key>www/js/lib/blogs/PageView.js</key>
@@ -1814,11 +1818,11 @@
<dict>
<key>hash</key>
<data>
- 0uCBjGnwq8xsO5chZu/C1rGZ/SQ=
+ 213XVfJUJtaxCHV7FFbjga5hs7o=
</data>
<key>hash2</key>
<data>
- P24JvyHX4Qjfs2Qa+rzt0M9SmSftEC6wuXzTPYoun9k=
+ fLjidG11pbtfFh/nqU4M5rRlhShzP1Zibag7Bhdzcsw=
</data>
</dict>
<key>www/js/lib/cart/CartConfirm.js</key>
@@ -1869,11 +1873,11 @@
<dict>
<key>hash</key>
<data>
- YYiOPlDBi/ESvBJZ+bBt5ElQ254=
+ wKti0DCO29c0cz8v1a3rocKnBFg=
</data>
<key>hash2</key>
<data>
- ctAGdJM1VwXGTVUdpT9sXBETsIAdWS5Rbl/NGP/Qkic=
+ QhLWBCUa8g9fG9HCGHzGcxrTyNUWiuZrAbFgnXNnsSc=
</data>
</dict>
<key>www/js/lib/cart/CartThanks.js</key>
@@ -1898,6 +1902,17 @@
FQeeZlPKs/Ma/jhjSRzHRtl4LTWr5JJMQAyutOIbmbo=
</data>
</dict>
+ <key>www/js/lib/etc/accessibility.js</key>
+ <dict>
+ <key>hash</key>
+ <data>
+ QgUYQBmm2miX0dNrFsIf9Szkt8M=
+ </data>
+ <key>hash2</key>
+ <data>
+ jC9n971PJzqeInvOHeN/WbHxpDCswD3NCi3L/PFg6sY=
+ </data>
+ </dict>
<key>www/js/lib/etc/backup_db.js</key>
<dict>
<key>hash</key>
@@ -1957,22 +1972,22 @@
<dict>
<key>hash</key>
<data>
- ftShfH+ffLTkwffJ5JT5/V/TpRo=
+ 0eDtFKXnaHon167o7b/jNuJOBxw=
</data>
<key>hash2</key>
<data>
- IF3wmk5ZDgUnFwKsRgs1TC43obu2cQQui4Ksg3OINNQ=
+ ofls7To+oOrL/cOmRaHIYvTPVrePqhqdEDB4giV+A5o=
</data>
</dict>
<key>www/js/lib/nav/CreditCardView.js</key>
<dict>
<key>hash</key>
<data>
- uV1Y5XohZktnJXSKPs/gt/vhlzk=
+ gVL/tg/yUhmm+DeTTphe5rsyHrk=
</data>
<key>hash2</key>
<data>
- kTv/+Lvcpehdpd3a6ZDzFFKSBtfBm5D77mIZwNOusHE=
+ KvyNAr/6lvXIWychhPUOZCzTM7bNdBs4RSEA8evPEZs=
</data>
</dict>
<key>www/js/lib/nav/CurtainView.js</key>
@@ -2056,44 +2071,44 @@
<dict>
<key>hash</key>
<data>
- dZYIlXKeCgVJVU3GHPND6CLid+w=
+ jAdRAZPg6wq2IpgL00kFG/bsV7I=
</data>
<key>hash2</key>
<data>
- F3m7DIDNcROqnCiN7Ebm2xWV6CT1KmGrxZ5Pi7nclsY=
+ iNILJ6ah4YAnR3q0hFXoMLHRZD3Wp/f3EUfW2di9LUo=
</data>
</dict>
<key>www/js/lib/products/GalleryView.js</key>
<dict>
<key>hash</key>
<data>
- 5rrxB1zyClIfmelN6ylnF/wLAU4=
+ PlTNRrOKZ/pThjhfJGIhPyF0vF8=
</data>
<key>hash2</key>
<data>
- CV7mdRSIzMi0B8qk+VkV7mErkQvlKQaNOnwJNAJElOg=
+ GGDqzbrlfnfziT6ikQX/loU9bpQ6vZap1bCH/cx0Nr0=
</data>
</dict>
<key>www/js/lib/products/ProductView.js</key>
<dict>
<key>hash</key>
<data>
- OvyCvqKno4Hvm5R6fcB5SHDfj+s=
+ /82lnayY7RllLikHb4Gf5NX84MY=
</data>
<key>hash2</key>
<data>
- d0gYTwzKDGmRJ6k+2KgDNMGQbsYiqJFK3ZijApq0GaM=
+ 58Evlb8Vgr4xG+NgL6k+xGQZyXFgdrGzDVSFx7F73jc=
</data>
</dict>
<key>www/js/lib/products/Selector.js</key>
<dict>
<key>hash</key>
<data>
- QxR583tVoXxutmfsJwO9Trbb8QE=
+ EKBEgRJvD6J4pdql7rZuk0Hf1ss=
</data>
<key>hash2</key>
<data>
- KDQ0bOdXozaa7mbPZwIkDY0Vm4va6sTjWqOg1TLsNPY=
+ TQ/ftb1qu0XUvp/7TD82sPiFYa+Kyyvh4UbWak4z5h0=
</data>
</dict>
<key>www/js/lib/products/filters/CategoryFilter.js</key>
@@ -2155,11 +2170,11 @@
<dict>
<key>hash</key>
<data>
- 0E+pHfC1nUz8TPY9jKCYZZUBV/E=
+ h9Z7w1U81a/0iSk1479BPPEWbt0=
</data>
<key>hash2</key>
<data>
- 4INR1sh3+lJOWANxVYuZkYJZKmHCSA1hOYkpX/9z6Xs=
+ 2ZAp4f934QdZjKaeD0kh0Y6R3kIuZunfnHdEWAdIax0=
</data>
</dict>
<key>www/js/lib/view/View.js</key>
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/config.xml b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/config.xml
index d4267d95..f9f29075 100755
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/config.xml
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/config.xml
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
-<widget android-versionCode="6110" id="us.okfoc.stoneisland" version="1.1.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
+<widget android-versionCode="6120" id="us.okfoc.stoneisland" version="1.2.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<feature name="LocalStorage">
<param name="ios-package" value="CDVLocalStorage" />
</feature>
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/embedded.mobileprovision b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/embedded.mobileprovision
index 487c9919..7ec4c547 100644
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/embedded.mobileprovision
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/embedded.mobileprovision
Binary files differ
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/account.css b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/account.css
index 32c7df79..be82a4c7 100755
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/account.css
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/account.css
@@ -67,7 +67,7 @@
content:'';
width:calc(100% + 100px);
height:1px;
- background:#bbb;
+ background:#666;
position:absolute;
bottom:0;
left:-50px;
@@ -122,12 +122,23 @@
text-align: center;
margin: 0;
padding: 20px 10px 8px 10px;
- font-size: 14px;
+ font-size: 16px;
color: #000;
letter-spacing: 1px;
font-weight: bold;
}
+label {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+ font-size: 16px;
+ color: #000;
+ letter-spacing:1px;
+ text-transform:uppercase;
+ height: 48px;
+}
input[type=text], input[type=password], input[type=number], input[type=date], input[type=email] {
font-family:pfd, sans-serif;
font-size:14px;
@@ -135,13 +146,13 @@ input[type=text], input[type=password], input[type=number], input[type=date], in
color:#000;
letter-spacing:1px;
text-transform:uppercase;
- height:35px;
+ height: 48px;
text-align:center;
margin: 0px auto;
display:block;
- margin-top:4px;
+ margin-top: 0px;
width: calc(100vw - 10px);
- border:1px solid #a9a9a9;
+ border:1px solid #696969;
padding: 0;
border-radius: 0;
}
@@ -149,27 +160,35 @@ input[type=text], input[type=password], input[type=number], input[type=date], in
input[type=text], input[type=password], input[type=number], input[type=email] {
-webkit-appearance: none;
}
-
+input[type=text]:focus, input[type=password]:focus, input[type=number]:focus, input[type=email] {
+ border-width: 2px;
+}
.half-input {
margin: 0px auto;
- display: block;
+ display: flex;
+ flex-direction: row;
+ justify-content: flex-start;
+ align-items: center;
margin-top: 4px;
width: calc(100vw - 10px);
overflow: auto;
}
+.half-input label {
+ width: 50%;
+}
.half-input input, .half-input select {
position: relative;
margin: 0;
border:none;
box-sizing: border-box;
float: left;
- border: 1px solid #a9a9a9;
+ border: 1px solid #696969;
width: 50%;
}
.half-input > input:first-child {
- border-right: 1px solid #a9a9a9;
+ border-right: 1px solid #696969;
}
#signup .toggle-container, #profile .toggle-container {
@@ -179,7 +198,7 @@ input[type=text], input[type=password], input[type=number], input[type=email] {
width: calc(100vw - 10px);
box-sizing: border-box;
padding:0px 18px 2px;
- font-size:14px;
+ font-size:16px;
}
#settings .toggle-container {
@@ -189,7 +208,7 @@ input[type=text], input[type=password], input[type=number], input[type=email] {
width: calc(100vw - 10px);
box-sizing: border-box;
padding:10px 18px 2px;
- font-size:14px;
+ font-size:16px;
}
.toggle-row {
@@ -296,10 +315,12 @@ input.switch:checked + label:after {
.container-fill {
min-height:80px;
+ display: flex;
flex: 1;
align-items: center;
justify-content: center;
position:relative;
+ flex-direction: column;
}
.container-fill-condensed {
@@ -317,26 +338,27 @@ input.switch:checked + label:after {
width:calc(100vw - 10px);
box-sizing:border-box;
margin:10px auto 0;
- position:relative
+ position:relative;
}
.container-row .container-message-condensed {
margin: 2px auto!important
}
.container-fill .container-message {
- font-size:12px;
+ font-size:14px;
letter-spacing:0.5px;
text-align:center;
- position:absolute;
- top:50%;
- left:50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
width:100%;
- -webkit-transform: translateX(-50%) translateY(-50%);
- transform: translateX(-50%) translateY(-50%);
+ min-height: 48px;
color:#000;
}
-
+.billing-container a {
+ text-decoration: none;
+}
.premessage {
top:calc(50% - 20px)!important;
@@ -351,7 +373,7 @@ input.switch:checked + label:after {
}
.checkbox-container {
- font-size:11px;
+ font-size:14px;
width:calc(100vw - 10px);
display:table;
box-sizing:border-box;
@@ -381,6 +403,7 @@ input.switch:checked + label:after {
vertical-align:middle;
display:table-cell;
box-sizing:border-box;
+ text-align: left;
}
.billing-container .checkbox-caption {
@@ -442,10 +465,6 @@ input.switch:checked + label:after {
}
.privacy-msg {
- left: 50%;
- display: inline-block;
- position: relative;
- transform: translateX(-50%);
padding-top: 15px;
padding-bottom: 80px;
}
@@ -463,46 +482,50 @@ input.switch:checked + label:after {
color: #000;
letter-spacing: 1px;
text-transform: uppercase;
- height: 35px;
+ height: 48px;
text-align: center;
margin: 0px auto;
display: block;
margin-top: 4px;
width: calc(100vw - 10px);
- border: 1px solid #a9a9a9;
+ border: 1px solid #696969;
}
.date-wrapper span {
display: block;
}
.half-input .select-wrapper {
+ display: flex;
+ align-items: center;
+ justify-content: center;
width: 50%;
border: 0;
margin-top: 0px;
float: left;
box-sizing: border-box;
- border: 1px solid #a9a9a9;
+ border: 1px solid #696969;
+}
+.half-input .select-wrapper:nth-child(2) {
border-left: 0px;
}
.half-input .select-wrapper span {
- top: 8px;
color: #aaa;
+ top: 0;
}
.select-wrapper [type=date] {
opacity: 0;
width: 100%;
- height: 35px;
- line-height: 35px;
+ height: 48px;
+ line-height: 48px;
position: absolute;
top: -5px;
left: -1px;
- width: 1px; height: 1px;
}
.select-wrapper select {
opacity: 0;
width: 100%;
- height: 35px;
- line-height: 35px;
+ height: 48px;
+ line-height: 48px;
position: absolute;
top: 0; left: 0;
box-sizing: border-box;
@@ -512,8 +535,8 @@ input.switch:checked + label:after {
}
.select-wrapper span {
position: relative;
- top: 8px;
- color: #888;
+ top: 15px;
+ color: #666;
}
.select-wrapper.picked span {
color: #000;
@@ -521,33 +544,29 @@ input.switch:checked + label:after {
.country-wrapper-static {
text-align: center;
- color: #a9a9a9;
+ color: #696969;
border: 1px solid;
- padding-top: 9px;
+ border-left: 0;
font-size: 14px;
- height: 35px;
+ height: 48px;
box-sizing: border-box;
-}
-
-.container-row input:first-child {
-margin-top:10px
+ width: 50%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
}
.container-row .half-input input {
margin-top:0px
}
-#login .container-row input:first-child {
-margin-bottom:9px!important
-}
-
.newuser {
display:inline-block;
- padding:14px;
+ padding:18px;
text-decoration:underline
}
.forgotpassword {
- padding:14px;
+ padding:18px;
text-decoration:underline
} \ No newline at end of file
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/blogs.css b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/blogs.css
index bf5ab68f..0834912e 100755
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/blogs.css
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/blogs.css
@@ -6,11 +6,19 @@
margin: 15px 0 0;
text-align: center;
text-transform:uppercase;
+ display:flex;
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
}
#story .links li {
- padding: 10px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ height: 48px;
+ padding: 0 15px;
list-style-type: none;
- display: inline-block;
+ font-size: 16px;
}
#story .links li:before {
content: ' | ',
@@ -57,7 +65,7 @@ animation: mfadein 0.6s;
#hub .content .body, #story .content .body {
letter-spacing:0.35px;
- font-size:12px;
+ font-size:16px;
width:calc(100vw - 40px);
box-sizing:border-box;
margin:10px auto 20px;
@@ -65,7 +73,7 @@ animation: mfadein 0.6s;
}
#hub .content .body:last-child {
- margin:10px auto 100px;
+ margin:20px auto 100px;
}
#story .content .body:last-child {
@@ -85,14 +93,14 @@ animation: mfadein 0.6s;
.content-header .title, .content-header .subtitle {
display:block;
font-weight:bold;
- font-size:14px;
+ font-size:16px;
text-transform:uppercase
}
.content-header .title {
margin:0;
padding:0;
- line-height:13px;
+ line-height:1.4em;
}
.content-header .subtitle {
@@ -101,12 +109,17 @@ animation: mfadein 0.6s;
.content-share {
border:1px solid black;
- padding:4px 8px 2px;
+ padding: 0 12px;
+ height: 48px;
+ font-size: 16px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
float:right
}
.content-header span.date, .content-header span.store {
- font-size:10px;
+ font-size:16px;
}
/* NOTE: optional arrows */
@@ -118,8 +131,8 @@ animation: mfadein 0.6s;
background-size:5px 10px;
background-repeat:no-repeat;
background-position:center;
- width:15px;
- height:30px;
+ width:24px;
+ height:48px;
top:26vh;
content:'';
transform:translateY(-50%);
@@ -130,7 +143,6 @@ animation: mfadein 0.6s;
z-index:2;
position:absolute;
display:block;
- animation: gallery-fade 4s forwards;
}
.gallery-right {
border:1px solid black;
@@ -139,8 +151,8 @@ animation: mfadein 0.6s;
background-size:5px 10px;
background-repeat:no-repeat;
background-position:center;
- width:15px;
- height:30px;
+ width:24px;
+ height:48px;
top:26vh;
content:'';
transform:translateY(-50%);
@@ -151,7 +163,6 @@ animation: mfadein 0.6s;
z-index:2;
position:absolute;
display:block;
- animation: gallery-fade 4s forwards;
}
@-webkit-keyframes gallery-fade {
@@ -220,7 +231,7 @@ ul.links {
margin:0 0 12px;
padding:0;
font-weight:bold;
- font-size:14px;
+ font-size:16px;
}
@@ -233,7 +244,7 @@ ul.links {
}
.archive .body {
font-size: 14px;
- line-height: 1.2em;
+ line-height: 1.4em;
font-weight: 100;
}
@@ -278,11 +289,14 @@ ul.links {
}
#archive .menu .item {
width: 100%;
- text-align: center;
+ display: flex;
+ justify-content: center;
+ align-items: center;
border-bottom: 1px solid black;
background: white;
- padding:12px 0;
- font-size:14px;
+ padding:0;
+ height: 48px;
+ font-size:16px;
letter-spacing:0.7px
}
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/cart.css b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/cart.css
index 7619a82b..c5725349 100755
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/cart.css
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/cart.css
@@ -6,20 +6,24 @@
#cart .steps {
width: 100%;
- border-bottom: 1px solid #bbb;
+ border-bottom: 1px solid #666;
font-size: 0;
+ display: flex;
+ flex-direction: row;
}
#cart .steps span {
- display: inline-block;
- font-size: 13px;
+ display: flex;
+ font-size: 16px;
text-align: center;
- padding: 11px 0 10px;
- color: #bbb;
+ color: #666;
width: 33%;
position:relative;
+ height: 48px;
+ justify-content: center;
+ align-items: center;
}
.summary_step, .shipping_step {
- border-right: 1px solid #bbb
+ border-right: 1px solid #666;
}
#cart.summary .summary_step,
@@ -109,7 +113,12 @@
#cart h3 {
padding-left: 5px;
- font-size:12px;
+ font-size:16px;
+ height: 48px;
+ display: flex;
+ justify-content: flex-start;
+ align-items: center;
+ font-size: 16px;
}
.cart_item_row {
@@ -153,9 +162,9 @@ padding-left:5px;
.cart_item_price .remove {
display:block;
-width:20px;
-height:20px;
-border:1px solid #d2d2d2;
+width:48px;
+height:48px;
+border:1px solid #b2b2b2;
float:right;
margin-bottom:10px;
position:relative;
@@ -164,8 +173,8 @@ position:relative;
.cart_item_price .remove:after {
content:'';
width:1px;
-height:22px;
-background:#bbb;
+height:48px;
+background:#333;
position:absolute;
top:50%;
left:50%;
@@ -177,8 +186,8 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%)
.cart_item_price .remove:before {
content:'';
width:1px;
- height:22px;
- background:#bbb;
+ height:48px;
+ background:#333;
position:absolute;
top:50%;
left:50%;
@@ -188,27 +197,27 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%)
}
.cart_item_price .price {
- font-size:11px;
+ font-size:16px;
font-weight:bold;
display:block
}
.cart_item_info .sku {
- font-size:10px;
+ font-size:16px;
font-weight:bold;
- display:block
+ display:block;
}
.cart_item_info .title {
- font-size:10px;
+ font-size:16px;
font-weight:bold;
display:block;
- line-height:12px;
+ line-height:1.4em;
text-transform:uppercase;
}
.cart_item_info .type {
- font-size:10px;
+ font-size:16px;
font-weight:bold;
display:block;
text-transform:capitalize;
@@ -217,7 +226,7 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%)
.cart_item_info .meta {
padding-top:5px;
letter-spacing:.75px;
- font-size:8px;
+ font-size:14px;
}
.order_section .rows {
@@ -241,8 +250,8 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%)
width:calc(100vw - 30px);
margin:0 auto;
display:table;
- color:#bbb;
- font-size:11px;
+ color:#666;
+ font-size:16px;
}
.cart-summary-row {
@@ -274,7 +283,7 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%)
#orders .order_section {
padding-bottom: 16px;
- border-bottom: 1px solid #bbb;
+ border-bottom: 1px solid #666;
}
@@ -294,9 +303,10 @@ color:#000;
position:relative;
text-align:right;
width:calc(100vw - 10px);
- margin:0 auto;
+ margin:0 auto 20px 0;
box-sizing:border-box;
-
+ display: flex;
+ flex-direction: column;
}
.dropdown-wrapper .add_edit {
@@ -308,11 +318,15 @@ color:#000;
}
.dropdown-wrapper .dropdown {
- font-size:14px;
+ font-size:16px;
box-sizing:border-box;
+ display: flex;
+ justify-content: center;
align-items: center;
text-align: center;
- padding:10px 0;
+ height: 48px;
+ margin-left: 3px;
+ padding:0;
border:1px solid #a9a9a9;
position:relative;
}
@@ -355,6 +369,9 @@ color:#000;
margin-left:5px;
margin-bottom:6px;
}
+#cart .cc_confirm h3 {
+ justify-content: center
+}
#cart_shipping input:first-child {
margin-top:10px
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/index.css b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/index.css
index 4d8e5514..fa3dae54 100755
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/index.css
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/index.css
@@ -17,9 +17,12 @@ body {
-webkit-user-select: none; /* prevent copy paste, to allow, change 'none' to 'text' */
background: #fff;
font-family: pfd, sans-serif;
- font-size: 12px;
+ font-size: 14px;
padding-top: constant(safe-area-inset-top);
}
+a, a:visited {
+ color: #000;
+}
.loader {
z-index: 2;
@@ -60,3 +63,15 @@ body {
color: red !important;
border-color: red !important;
}
+.error_hilite ~ span.err {
+ display: flex;
+}
+span.err {
+ display: none;
+ text-align: center;
+ justify-content: center;
+ align-items: center;
+ font-size: 14px;
+ height: 48px;
+ color: red !important;
+}
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/nav.css b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/nav.css
index b7002f20..5c7b8a09 100755
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/nav.css
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/nav.css
@@ -35,7 +35,7 @@
}
#nav .menu span {
display: block;
- font-size: 14px;
+ font-size: 16px;
letter-spacing:1.25px;
text-shadow:0px 0px 1px rgba(0,0,0,.2);
color: #000;
@@ -77,9 +77,9 @@
#nav .submenu span {
display: block;
- font-size: 14px;
+ font-size: 16px;
letter-spacing:1.25px;
- color: #bbb;
+ color: #666;
padding: 4px 0 12px 20px
}
@@ -94,7 +94,7 @@
float: left;
width: 61px;
border-left: 1px solid #ddd;
- color: #bbb;
+ color: #666;
font-size: 18px;
padding: 5px 0;
text-align: center;
@@ -137,10 +137,13 @@ padding-bottom:0px;
}
#intro div {
position: absolute;
- top: 50%; left: 50%;
+ top: 50%;
+ left: 50%;
width: 200px;
- padding: 50px;
- text-align: center;
+ height: 100px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
font-size: 17px;
}
#intro #compass {
@@ -198,7 +201,7 @@ padding-bottom:0px;
display: block;
position: absolute;
top: 0; left: 0; width: 100%;
- height: 42px;
+ height: 48px;
border-bottom: 1px solid black;
}
#header .logo {
@@ -207,42 +210,42 @@ padding-bottom:0px;
background-position: center center;
position: absolute;
background-size: contain;
- width: 100px; height: 40px;
- left: 50%; top: -4px;
+ width: 100px; height: 48px;
+ left: 50%; top: -3px;
margin-left: -50px;
top:0px;
}
#header .burger {
display: inline-block;
font-size: 24px;
- padding: 9px 10px 5px;
+ padding: 12px 13px 7px;
}
#header .cart_rapper {
- display: inline-block;
+ display: flex;
+ justify-content: center;
+ align-items: flex-end;
position: relative;
float: right;
- width: 40px; height: 40px;
+ width: 44px; height: 48px;
}
#header .cart {
position: relative;
- float: right;
width: 18px;
- top: 15px;
+ margin-bottom: 10px;
height: 18px;
- margin-right: 18px;
background: #fff;
background-image:url(../img/cart-box.png);
background-size:100%;
background-repeat:no-repeat;
}
-.cart .cart_count {
+#header .cart .cart_count {
position: absolute;
top: 50%;
left: 50%;
transform: translateY(-50%) translateX(-50%);
- color: #bbb;
+ color: #666;
font-size:12.35px;
}
@@ -273,12 +276,16 @@ padding-bottom:0px;
}
#footer div {
width: 50%;
+ height: 48px;
text-align: center;
- padding: 10px 0;
color: #000;
float: left;
- font-size:14px;
+ font-size: 16px;
font-weight:bold;
+ padding: 0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
}
#footer .ok {
color: #000;
@@ -287,7 +294,7 @@ padding-bottom:0px;
width: 100%;
}
#footer .ok.disabled {
- color: #bbb;
+ color: #666;
}
@@ -300,8 +307,10 @@ padding-bottom:0px;
width: 100%; height: 100%;
background: rgba(255,255,255,0.8);
opacity: 0;
- -webkit-transition: opacity 0.2s;
- transition: opacity 0.2s;
+ -webkit-transition: opacity 0.2s, -webkit-transform 0.2s;
+ transition: opacity 0.2s, transform 0.2s;
+ -webkit-transform: translateZ(0) translateX(0);
+ transform: translateZ(0) translateX(0);
}
#curtain.visible {
pointer-events: auto;
@@ -346,13 +355,14 @@ padding-bottom:0px;
#consent_modal {
display: none;
z-index: 2;
+ font-size: 16px;
}
#consent_modal a {
color: black;
}
.modal button {
font-family: pfd, sans-serif;
- font-size: 12px;
+ font-size: 14px;
padding: 10px;
box-sizing: border-box;
margin: 0;
@@ -400,7 +410,7 @@ padding-bottom:0px;
#selector:not(.selector-outer-wrap) .options div {
background: white;
text-align: center;
- padding: 7px 12px;
+ padding: 12px 12px;
box-sizing:border-box;
font-size: 14px;
border-left:1px solid black;
@@ -462,28 +472,31 @@ padding-bottom:0px;
#cart,
#profile, #shipping, #payment, #settings, #orders {
position: absolute;
- top: 43px;
- height: -webkit-calc(100% - 43px - 39px);
- height: calc(100% - 43px - 39px);
+ top: 49px;
+ height: -webkit-calc(100% - 49px - 39px);
+ height: calc(100% - 49px - 39px);
width: 100%;
overflow: hidden;
}
#collection.single {
- height: -webkit-calc(100% - 43px);
- height: calc(100% - 43px);
+ height: -webkit-calc(100% - 49px);
+ height: calc(100% - 49px);
}
#story, #hub, #archive, .page, #closed {
/* these things do not have a footer */
- height: -webkit-calc(100% - 43px);
- height: calc(100% - 43px);
+ height: -webkit-calc(100% - 49px);
+ height: calc(100% - 49px);
}
h1 {
text-align: center;
margin: 0;
- padding: 16px 10px 12px 10px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
border-bottom: 1px solid #000;
- font-size: 14px;
+ height: 48px;
+ font-size: 16px;
color: #000;
letter-spacing: 1px;
font-weight: bold;
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/products.css b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/products.css
index 59bb403f..fbc22d28 100755
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/products.css
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/products.css
@@ -103,7 +103,7 @@
}
.product .product-header {
- font-size:14px;
+ font-size:16px;
margin:18px 0 0;
max-width:60%;
position:relative;
@@ -136,33 +136,49 @@
}
.product .style {
- padding:4px 9px;
+ padding: 0;
border:1px solid black;
float:left
}
.product .share {
float:right;
- padding:4px 9px;
+ padding: 0 12px;
+ height: 48px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
border:1px solid black;
}
.product .type {
display:table-cell;
- font-size:14px;
+ font-size:16px;
}
-.product .size {
- padding-right:16px;
+.product .size-color {
+ display: flex;
+ flex-direction: row;
+}
+.product .size-color span {
position:relative;
- box-sizing:border-box
+ box-sizing:border-box;
+ padding: 0 12px;
+ height: 48px;
+ font-size: 16px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+.product .size-color span.size {
+ border-right: 1px solid #444;
}
.product .price {
display:table-cell;
- font-size:14px;
+ font-size:16px;
text-align:right;
- vertical-align:bottom
+ vertical-align:bottom;
}
.product .price, .product .type {
@@ -179,12 +195,12 @@
.style-share {
letter-spacing:0.5px;
- font-size:12.35px
+ font-size:16px;
}
.size-color {
position:relative;
- font-size:12.35px
+ font-size:16px;
}
.type-price, .style-share {
@@ -194,7 +210,7 @@
}
-.size::after {
+/*.size::after {
content: '';
display: inline-block;
width: 1px;
@@ -205,7 +221,7 @@
right:5px;
background: #999;
}
-
+*/
.product .fit,
.product .notAvailableInCanada {
@@ -232,7 +248,8 @@
#product .content .body {
letter-spacing:0.35px;
- font-size:12px;
+ font-size:16px;
+ line-height: 1.4em;
box-sizing:border-box;
margin:0px auto 20px;
clear:both;
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/index.html b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/index.html
index b6fc8317..664b2df0 100755
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/index.html
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/index.html
@@ -28,103 +28,96 @@
<link rel="stylesheet" type="text/css" href="css/blogs.css">
<title>Stone Island</title>
</head>
-<body class="loading">
+<body class="loading" role="application">
-<div id="nav">
+<div id="nav" role="directory">
<div id="nav-container">
<div id="nav-row">
<!-- flex -->
- <span class="menu">
- <div class="logo"></div>
- <div class="main_menu">
- <span class="store">STORE</span>
- <span class="hub">HUB</span>
- <span class="story">STORY</span>
- <span class="archive">ARCHIVE</span>
+ <span role="menu" class="menu">
+ <div class="logo" aria-label="Stone Island"></div>
+ <div role="menu" aria-label="Main Menu" class="main_menu">
+ <span role="menuitem" class="store">STORE</span>
+ <span role="menuitem" class="hub">HUB</span>
+ <span role="menuitem" class="story">STORY</span>
+ <span role="menuitem" class="archive">ARCHIVE</span>
</div>
- <div class="account_menu">
- <span class="account_back menu-emphasis">&lt; MY ACCOUNT</span>
- <span class="profile">MY PROFILE</span>
- <span class="payment">MY CARD</span>
- <span class="shipping">ADDRESS BOOK</span>
- <span class="orders">MY ORDERS</span>
- <span class="return_link">RETURNS</span>
- <span class="settings">NOTIFICATIONS</span>
+ <div role="menu" aria-label="Account Menu" class="account_menu">
+ <span role="menuitem" class="account_back menu-emphasis">&lt; MY ACCOUNT</span>
+ <span role="menuitem" class="profile">MY PROFILE</span>
+ <span role="menuitem" class="payment">MY CARD</span>
+ <span role="menuitem" class="shipping">ADDRESS BOOK</span>
+ <span role="menuitem" class="orders">MY ORDERS</span>
+ <span role="menuitem" class="return_link">RETURNS</span>
+ <span role="menuitem" class="settings">NOTIFICATIONS</span>
</div>
- <div class="faq_menu">
- <span class="faq_back menu-emphasis">&lt; FAQ</span>
- <span class="privacy">PRIVACY POLICY</span>
- <span class="account_terms">MY ACCOUNT TERMS AND CONDITIONS OF USE</span>
- <span class="terms">TERMS AND CONDITIONS</span>
- <span class="returns">RETURN POLICY</span>
- <span class="care">CUSTOMER CARE</span>
+ <div role="menu" aria-label="FAQ Menu" class="faq_menu">
+ <span role="menuitem" class="faq_back menu-emphasis">&lt; FAQ</span>
+ <span role="menuitem" class="privacy">PRIVACY POLICY</span>
+ <span role="menuitem" class="account_terms">MY ACCOUNT TERMS AND CONDITIONS OF USE</span>
+ <span role="menuitem" class="terms">TERMS AND CONDITIONS</span>
+ <span role="menuitem" class="returns">RETURN POLICY</span>
+ <span role="menuitem" class="care">CUSTOMER CARE</span>
</div>
</span>
</div>
<div id="nav-fill">
<!-- flex fill -->
- <span class="submenu">
+ <span role="menu" class="submenu">
<div class="main_menu">
- <span class="account">MY ACCOUNT</span>
- <span class="login">LOGIN</span>
- <span class="faq">FAQ</span>
+ <span role="menuitem" class="account">MY ACCOUNT</span>
+ <span role="menuitem" class="login">LOGIN</span>
+ <span role="menuitem" class="faq">FAQ</span>
</div>
<div class="account_menu">
- <span class="logout">LOGOUT</span>
- <span class="faq">FAQ</span>
- <span class="main">MAIN MENU</span>
+ <span role="menuitem" class="logout">LOGOUT</span>
+ <span role="menuitem" class="faq">FAQ</span>
+ <span role="menuitem" class="main">MAIN MENU</span>
</div>
<div class="faq_menu">
- <span class="account">MY ACCOUNT</span>
- <span class="login">LOGIN</span>
- <span class="logout">LOGOUT</span>
- <span class="main">MAIN MENU</span>
+ <span role="menuitem" class="account">MY ACCOUNT</span>
+ <span role="menuitem" class="login">LOGIN</span>
+ <span role="menuitem" class="logout">LOGOUT</span>
+ <span role="menuitem" class="main">MAIN MENU</span>
</div>
</span>
</div>
<!-- end flex -->
</div>
- <span class="social">
- <span class="fb ion-social-facebook"></span>
- <span class="insta ion-social-instagram-outline"></span>
- <span class="tw ion-social-twitter"></span>
- <span class="yt ion-social-youtube"></span>
+ <span class="social" role="list" aria-label="Social Links">
+ <span role="menuitem" class="fb ion-social-facebook"></span>
+ <span role="menuitem" class="insta ion-social-instagram-outline"></span>
+ <span role="menuitem" class="tw ion-social-twitter"></span>
+ <span role="menuitem" class="yt ion-social-youtube"></span>
</span>
</div>
<div id="content">
- <div id="intro">
+ <div id="intro" role="menu" aria-label="Stone Island Home Screen">
<div id="compass"></div>
- <div class="store">STORE</div>
- <div class="hub">HUB</div>
- <div class="story">STORY</div>
- <div class="archive">ARCHIVE</div>
+ <div role="menuitem" class="store">STORE</div>
+ <div role="menuitem" class="hub">HUB</div>
+ <div role="menuitem" class="story">STORY</div>
+ <div role="menuitem" class="archive">ARCHIVE</div>
<div class="alert"></div>
- <span class="latlng">+40&deg; 58' 90.9" N&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;74&deg; 04' 46.3" W</span>
+ <span class="latlng" role="note" aria-label="Your Latitude and Longitude">+40&deg; 58' 90.9" N&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;74&deg; 04' 46.3" W</span>
</div>
- <div id="header">
- <span class="burger ion-android-menu"></span>
- <span class="logo"></span>
- <span class="cart_rapper"><span class="cart"><span class="cart_count">0</span></span></span>
- </div>
-
- <div id="footer">
- <!-- 'Cancel' i think needs to go BACK in the navigation.. rather than jumping to the home screen -->
- <div class="cancel">CANCEL</div>
- <div class="ok">OK</div>
+ <div id="header" role="menubar" aria-label="Menu bar">
+ <span role="menu" aria-label="Show main menu" class="burger ion-android-menu"></span>
+ <span role="link" aria-label="Homepage. Stone Island logo" class="logo"></span>
+ <span role="link" aria-label="View cart" class="cart_rapper"><span class="cart"><span role="display" class="cart_count">0</span></span></span>
</div>
-
<!-- BLOGS ================================================ -->
- <div id="story">
+ <div id="story" role="region" aria-label="Stone Island Story">
<div class="scroll">
- <h1>STORY</h1>
+ <h1 aria-label="Current section: Stone Island Story">STORY</h1>
<img>
<ul class="links"></ul>
<div class="content">
@@ -137,21 +130,21 @@
</div>
</div>
- <div id="hub">
+ <div id="hub" role="region" aria-label="Stone Island Hub">
<div class="scroll">
- <h1>HUB</h1>
+ <h1 aria-label="Current section: Stone Island Hub">HUB</h1>
<div class="content">
<script type="text/html" class="template">
<div class="hub_item" data-id="{{id}}">
- <div class="gallery gallery-{{id}}"></div>
- <div class="gallery-left"></div>
- <div class="gallery-right"></div>
- <div class="content-header">
- <div class="content-share">
- SHARE +
+ <div class="gallery gallery-{{id}}" role="carousel"></div>
+ <div role="button" class="gallery-left"></div>
+ <div role="button" class="gallery-right"></div>
+ <div role="heading" class="content-header">
+ <div role="button" class="content-share">
+ SHARE +
</div>
- <span class="title">{{title}}</span>
- <span class="subtitle">{{subtitle}}</span>
+ <span role="heading" aria-details="{{cleantitle}}" class="title">{{title}}</span>
+ <span role="heading" aria-details="{{cleansubtitle}}"class="subtitle">{{subtitle}}</span>
<span class="date">
{{date}}
<span class="store">
@@ -167,7 +160,7 @@
<div class="fade-cover"></div>
</div>
- <div id="archive">
+ <div id="archive" role="region" aria-label="Stone Island Archive">
<div class="scroll">
<div class="content">
@@ -187,28 +180,29 @@
</div>
</div>
- <div class="menu">
+ <div class="menu" role="menu">
<div class="items">
<script type="text/html" class="template">
- <div class="item">{{title}}</div>
+ <div role="button" class="item">{{title}}</div>
</script>
</div>
</div>
<div class="heading">
- <h1>ARCHIVE</h1>
- <div class="subtitle">'982'015</div>
+ <h1 role="heading" aria-label="Current section: Stone Island Archive">ARCHIVE</h1>
+ <div role="heading" class="subtitle" aria-label="1982 to 2015">'982'015</div>
</div>
</div>
- <div id="privacy" class="page">
+ <div id="privacy" role="region" aria-label="Privacy Policy" class="page">
<div class="scroll">
- <h1>PRIVACY POLICY</h1>
+ <h1 aria-label="Current section: Privacy Policy">PRIVACY POLICY</h1>
<div class="content"></div>
</div>
</div>
- <div id="account_terms" class="page">
+
+ <div id="account_terms" role="region" aria-label="My Account Terms and Conditions of Use" class="page">
<div class="scroll">
- <h1>MY ACCOUNT TERMS AND CONDITIONS OF USE</h1>
+ <h1 aria-label="Current section: My Account terms and conditions of use">MY ACCOUNT TERMS AND CONDITIONS OF USE</h1>
<div class="content">
<h2>1. Services</h2>
<p>
@@ -261,21 +255,24 @@
</div>
</div>
</div>
- <div id="terms" class="page">
+
+ <div id="terms" role="region" aria-label="Terms and Conditions" class="page">
<div class="scroll">
- <h1>TERMS AND CONDITIONS</h1>
+ <h1 aria-label="Current section: Terms and conditions">TERMS AND CONDITIONS</h1>
<div class="content"></div>
</div>
</div>
- <div id="returns" class="page">
+
+ <div id="returns" role="region" aria-label="Return Policy" class="page">
<div class="scroll">
- <h1>RETURN POLICY</h1>
+ <h1 aria-label="Current section: Return policy">RETURN POLICY</h1>
<div class="content"></div>
</div>
</div>
- <div id="care" class="page">
+
+ <div id="care" role="region" aria-label="Customer Care" class="page">
<div class="scroll">
- <h1>CUSTOMER CARE</h1>
+ <h1 aria-label="Current section: Customer care">CUSTOMER CARE</h1>
<div class="content"></div>
</div>
</div>
@@ -283,42 +280,42 @@
<!-- STORE ================================================ -->
- <div id="collection">
+ <div id="collection" role="region" aria-label="Store">
<div class="scroll">
- <h1>LOADING...</h1>
+ <h1 aria-label="Current section: Store">LOADING...</h1>
<div class="loader"></div>
<div class="content">
<script type="text/html" class="template">
- <div class="item" data-code="{{code8}}">
- <img src="{{image}}">
+ <div role="link" class="item" data-code="{{code8}}">
+ <img src="{{image}}" alt="{{title}}">
</div>
</script>
</div>
</div>
</div>
- <div id="search">
+ <div id="search" role="search" aria-label="Search">
<div class="scroll">
- <h1>SEARCH</h1>
+ <h1 aria-label="Current section: Search">SEARCH</h1>
<div class="form">
<input type="text" class="q" placeholder="ENTER YOUR SEARCH">
</div>
</div>
</div>
- <div id="product">
+ <div id="product" role="region" aria-label="Product view">
<div class="scroll">
<div class="loader"></div>
- <div id="gallery" class="gallery">
+ <div id="gallery" class="gallery" role="carousel">
<script type="text/html" class="template">
- <div class="item" style="background-image:url({{image}})"></div>
+ <div role="link" class="item" aria-label="{{alt}}" style="background-image:url({{image}})"></div>
</script>
</div>
- <div class="gallery-left"></div>
- <div class="gallery-right"></div>
+ <div role="button" class="gallery-left" aria-label="Scroll gallery left"></div>
+ <div role="button" class="gallery-right" aria-label="Scroll gallery right"></div>
<div class="content">
<div class="product-header">
- <span class="title"></span>
+ <span role="heading" class="title"></span>
</div>
<div class="type-price">
<span class="type"></span>
@@ -327,11 +324,11 @@
<div class="style-share">
<span class="style">
<div class="size-color">
- <span class="size"></span>
- <span class="color"></span>
+ <span role="button" class="size" aria-label="Tap to select size. Current size"></span>
+ <span role="button" class="color" aria-label="Tap to select color. Current color"></span>
</div>
</span>
- <span class="share">SHARE +</span>
+ <span role="button" class="share">SHARE +</span>
</div>
<div class="fit">Fits Large</div>
<div class='fitHeader'></div>
@@ -347,14 +344,14 @@
</div>
</div>
- <div id="closed">
+ <div id="closed" role="region" aria-label="The store is closed">
<div class="closed_store_msg">
<h3>
LOADING THE STORE, PLEASE WAIT
</h3>
<h4>
</h4>
- <div class="website_link">
+ <div role="link" class="website_link">
visit<br>
<b>www.stoneisland.com</b>
</div>
@@ -364,33 +361,38 @@
<!-- ACCOUNT ================================================ -->
- <div id="login">
+ <div id="login" role="region" aria-label="Log In">
<div class="scroll">
- <h1>LOGIN</h1>
+ <h1 aria-label="Current section: Log In">LOGIN</h1>
<div class="form">
<div class="container">
<div class="container-row">
- <input type="email" name="Email" placeholder="EMAIL ADDRESS" required tabindex="1">
- <form><input type="password" name="Password" placeholder="PASSWORD" required tabindex="2"></form>
+ <label for="login_email_address">Email Address</label>
+ <input type="email" id="login_email_address" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="1">
+ <span class='err'></span>
+
+ <label for="login_password">Password</label>
+ <form><input type="password" id="login_password" name="Password" aria-placeholder="PASSWORD" required tabindex="2"></form>
+ <span class='err'></span>
</div>
<div class="container-fill">
<div class="container-message premessage">
- <div class="newuser">New User?</div>
- <div class="forgotpassword">Forgot Password?</div>
+ <div rel="link" class="newuser">New User?</div>
+ <div rel="link" class="forgotpassword">Forgot Password?</div>
</div>
<div class="container-message submessage">
<span class="msg"></span>
</div>
</div>
</div>
- <input type="submit" style="position: absolute; left: -9999px; width: 1px; height: 1px;">
+ <input type="submit" aria-label="Submit form" style="position: absolute; left: -9999px; width: 1px; height: 1px;">
</div>
</div>
</div>
- <div id="logout">
+ <div id="logout" role="region" aria-label="You are now logged out">
<div class="scroll">
- <h1>LOGOUT</h1>
+ <h1 aria-label="Current section: You are now Logged Out">LOGOUT</h1>
<div class="container">
<div class="container-fill">
<span class="container-message msg">
@@ -401,52 +403,71 @@
</div>
</div>
- <div id="signup">
+ <div id="signup" role="region" aria-label="New User. Create an account">
<div class="scroll">
- <h1>NEW USER</h1>
+ <h1 aria-label="Current section: New User. Create an account">NEW USER</h1>
<div class="form">
<div class="container">
<div class="container-row">
- <input type="text" name="Name" placeholder="FIRST NAME" required tabindex="1">
- <input type="text" name="Surname" placeholder="LAST NAME" required tabindex="2">
- <input type="email" name="Email" placeholder="EMAIL ADDRESS" required tabindex="3">
- <input type="email" name="ConfirmEmail" placeholder="CONFIRM EMAIL ADDRESS" required tabindex="4">
+ <label for="signup_name">First Name</label>
+ <input type="text" id="signup_name" name="Name" aria-placeholder="FIRST NAME" required tabindex="1">
+ <span class='err'></span>
+
+ <label for="signup_surname">Last Name</label>
+ <input type="text" id="signup_surname" name="Surname" aria-placeholder="LAST NAME" required tabindex="2">
+ <span class='err'></span>
+
+ <label for="signup_email">Email Address</label>
+ <input type="email" id="signup_email" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="3">
+ <span class='err'></span>
+
+ <label for="signup_confirmemail">Confirm Email Address</label>
+ <input type="email" id="signup_confirmemail" name="ConfirmEmail" aria-placeholder="CONFIRM EMAIL ADDRESS" required tabindex="4">
+ <span class='err'></span>
+
+ <label for="signup_birthday">Birthday (MM/DD/YYYY)</label>
<div class="select-wrapper date-wrapper">
- <span>BIRTHDAY (MM/DD/YYYY)</span>
- <input type="date" name="BirthDay" min="1900-01-01" placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="5">
+ <span></span>
+ <input type="date" id="signup_birthday" name="BirthDay" aria-label="Birthday" min="1900-01-01" aria-placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="5">
</div>
+ <span class='err'></span>
<h2>PASSWORD</h2>
- <input type="password" name="Password" placeholder="PASSWORD (7 CHARACTERS OR MORE)" required tabindex="6">
- <input type="password" name="Password2" placeholder="CONFIRM PASSWORD" required tabindex="7">
+ <label for="signup_password">Password (7 Characters or more)</label>
+ <input type="password" id="signup_password" name="Password" aria-placeholder="PASSWORD (7 CHARACTERS OR MORE)" required tabindex="6">
+ <span class='err'></span>
+
+ <label for="signup_confirm_password">Confirm Password</label>
+ <input type="password" id="signup_confirm_password" name="Password2" aria-placeholder="CONFIRM PASSWORD" required tabindex="7">
+ <span class='err'></span>
</div>
<div class="container-row">
- <div class="checkbox-container ">
+ <div class="checkbox-container">
<div class="checkbox-row">
<div class="checkbox-toggle">
- <input type="checkbox" id="checkbox-data-profiling" name="YooxLetter" value="true" required tabindex="8">
+ <input type="checkbox" id="checkbox-data-profiling" aria-labelledby="checkbox-data-profiling-label" name="YooxLetter" value="true" required tabindex="8">
<label for="checkbox-data-profiling"></label>
</div>
- <label class="checkbox-caption" for="checkbox-data-profiling">
+ <label class="checkbox-caption" for="checkbox-data-profiling" id="checkbox-data-profiling-label">
I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION FOR MARKETING PURPOSES.
</label>
</div>
<div class="checkbox-row">
<div class="checkbox-toggle">
- <input type="checkbox" id="checkbox-shopping-data-profiling" name="DataProfiling" value="true" required tabindex="9">
+ <input type="checkbox" id="checkbox-shopping-data-profiling" aria-labelledby="checkbox-shopping-data-profiling-label" name="DataProfiling" value="true" required tabindex="9">
<label for="checkbox-shopping-data-profiling"></label>
</div>
- <label class="checkbox-caption" for="checkbox-shopping-data-profiling">
+ <label class="checkbox-caption" for="checkbox-shopping-data-profiling" id="checkbox-shopping-data-profiling-label">
I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION TO CUSTOMIZE MY SHOPPING EXPERIENCE BASED ON MY INTERESTS AND HABITS.
</label>
</div>
<div class="checkbox-row">
<div class="checkbox-toggle">
- <input type="checkbox" id="checkbox-shopping-account-terms" name="GdprTerms" value="true" required tabindex="10">
+ <input type="checkbox" id="checkbox-shopping-account-terms" aria-labelledby="checkbox-gdpr-terms-label" name="GdprTerms" value="true" required tabindex="10">
<label for="checkbox-shopping-data-profiling"></label>
</div>
- <label class="checkbox-caption" for="checkbox-shopping-account-terms">
+ <label class="checkbox-caption" for="checkbox-shopping-account-terms" id="checkbox-gdpr-terms-label">
I ACCEPT MY ACCOUNT TERMS AND CONDITIONS OF USE *
</label>
</div>
@@ -465,54 +486,71 @@
</div>
</div>
- <div id="profile">
+ <div id="profile" role="region" aria-label="My Profile">
<div class="scroll">
- <h1>MY PROFILE</h1>
+ <h1 aria-label="Current section: My Profile">MY PROFILE</h1>
<div class="form">
<div class="container">
<div class="container-row">
- <input type="text" name="Name" placeholder="FIRST NAME" required tabindex="1">
- <input type="text" name="Surname" placeholder="LAST NAME" required tabindex="2">
- <input type="email" name="Email" placeholder="EMAIL ADDRESS" required tabindex="3">
+ <label for="profile_name">First Name</label>
+ <input type="text" id="profile_name" name="Name" aria-placeholder="FIRST NAME" required tabindex="1">
+ <span class='err'></span>
+
+ <label for="profile_surname">Last Name</label>
+ <input type="text" id="profile_surname" name="Surname" aria-placeholder="LAST NAME" required tabindex="2">
+ <span class='err'></span>
+
+ <label for="profile_email">Email Address</label>
+ <input type="email" id="profile_email" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="3">
+ <span class='err'></span>
+
+ <label for="profile_birthday">Birthday (MM/DD/YYYY)</label>
<div class="select-wrapper date-wrapper">
- <span>BIRTHDAY (MM/DD/YYYY)</span>
- <input type="date" name="BirthDay" min="1900-01-01" placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="4">
+ <span></span>
+ <input type="date" id="profile_birthday" name="BirthDay" aria-label="Birthday" min="1900-01-01" aria-placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="5">
</div>
+ <span class='err'></span>
<h2>CHANGE PASSWORD</h2>
- <input type="password" name="CurrentPassword" placeholder="CURRENT PASSWORD" required>
- <input type="password" name="NewPassword" placeholder="NEW PASSWORD (7 CHARACTERS OR MORE)" required tabindex="5">
- <div class="container-fill container-fill-condensed">
- <div class="container-message container-message-condensed">
- <span class="msg msg-condensed">
- </span>
- </div>
+ <label for="profile_password">Current Password</label>
+ <input type="password" id="profile_password" name="CurrentPassword" aria-placeholder="CURRENT PASSWORD" required tabindex="6">
+ <span class='err'></span>
+
+ <label for="profile_confirm_password">New Password (7 characters or more)</label>
+ <input type="password" id="profile_confirm_password" name="NewPassword" aria-placeholder="NEW PASSWORD (7 CHARACTERS OR MORE)" required tabindex="7">
+ <span class='err'></span>
+ </div>
+
+ <div class="container-fill container-fill-condensed">
+ <div class="container-message container-message-condensed">
+ <span class="msg msg-condensed">
+ </span>
</div>
- <div class="container-row">
- <div class="checkbox-container">
- <div class="checkbox-row">
- <div class="checkbox-toggle">
- <input type="checkbox" id="checkbox-data-profiling-profile" name="YooxLetter" value="true" required tabindex="7">
- <label for="checkbox-data-profiling-profile"></label>
- </div>
- <label class="checkbox-caption" for="checkbox-data-profiling-profile">
- I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION FOR MARKETING PURPOSES.
- </label>
- </div>
- <div class="checkbox-row">
- <div class="checkbox-toggle">
- <input type="checkbox" id="checkbox-shopping-data-profiling-profile" name="DataProfiling" value="true" required tabindex="8">
- <label for="checkbox-shopping-data-profiling-profile"></label>
- </div>
- <label class="checkbox-caption" for="checkbox-shopping-data-profiling-profile">
- I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION TO CUSTOMIZE MY SHOPPING EXPERIENCE BASED ON MY INTERESTS AND HABITS.
- </label>
+ </div>
+ <div class="container-row">
+ <div class="checkbox-container">
+ <div class="checkbox-row">
+ <div class="checkbox-toggle">
+ <input type="checkbox" id="checkbox-data-profiling-profile" aria-labelledby="yoox-letter-checkbox" name="YooxLetter" value="true" required tabindex="7">
+ <label for="checkbox-data-profiling-profile"></label>
</div>
- <div class="privacy-msg">
- Personal data will be electronically processed by SPORTSWEAR COMPANY and YOOX NET-A-PORTER GROUP in order to complete your request. Please note that you are responsible for third party data that you disclose to SPORTSWEAR COMPANY and YOOX NET-A-PORTER GROUP.
- <br>
- Consult our <a href="#/page/privacy">PRIVACY POLICY</a> for further information.
+ <label class="checkbox-caption" for="checkbox-data-profiling-profile" id="yoox-letter-checkbox">
+ I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION FOR MARKETING PURPOSES.
+ </label>
+ </div>
+ <div class="checkbox-row">
+ <div class="checkbox-toggle">
+ <input type="checkbox" id="checkbox-shopping-data-profiling-profile" aria-labelledby="yoox-data-profiling-checkbox" name="DataProfiling" value="true" required tabindex="8">
+ <label for="checkbox-shopping-data-profiling-profile"></label>
</div>
+ <label class="checkbox-caption" for="checkbox-shopping-data-profiling-profile" id="yoox-data-profiling-checkbox">
+ I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION TO CUSTOMIZE MY SHOPPING EXPERIENCE BASED ON MY INTERESTS AND HABITS.
+ </label>
+ </div>
+ <div class="privacy-msg">
+ Personal data will be electronically processed by SPORTSWEAR COMPANY and YOOX NET-A-PORTER GROUP in order to complete your request. Please note that you are responsible for third party data that you disclose to SPORTSWEAR COMPANY and YOOX NET-A-PORTER GROUP.
+ <br>
+ Consult our <a href="#/page/privacy">PRIVACY POLICY</a> for further information.
</div>
</div>
</div>
@@ -520,11 +558,10 @@
</div>
</div>
</div>
-
- <div id="shipping">
+ <div id="shipping" role="region" aria-label="Address Book">
<div class="scroll">
- <h1>ADDRESS BOOK</h1>
+ <h1 aria-label="Current section: Your address book">ADDRESS BOOK</h1>
<div class="form">
<div class="container">
<div class="container-row">
@@ -537,7 +574,7 @@
information will always remain private
</span>
</div>
- <div class="privacy-msg">
+ <div rel="link" class="privacy-msg">
Consult our <u>PRIVACY POLICY</u> for further information.
</div>
</div>
@@ -546,9 +583,9 @@
</div>
</div>
- <div id="payment">
+ <div id="payment" role="region" aria-label="My Card">
<div class="scroll">
- <h1>MY CARD</h1>
+ <h1 aria-label="Current section: My Card">MY CARD</h1>
<div class="form">
<div class="container">
<div class="container-row">
@@ -562,7 +599,7 @@
information will always remain private
</span>
</div>
- <div class="privacy-msg">
+ <div rel="link" class="privacy-msg">
Consult our <u>PRIVACY POLICY</u> for further information.
</div>
</div>
@@ -571,9 +608,9 @@
</div>
</div>
- <div id="settings">
+ <div id="settings" role="region" aria-label="Notifications">
<div class="scroll">
- <h1>NOTIFICATIONS</h1>
+ <h1 aria-label="Current section: Notifications">NOTIFICATIONS</h1>
<div class="form">
<div class="toggle-container">
<div class="toggle-row">
@@ -582,7 +619,7 @@
Receive notifications for Store
</div>
<div class="toggle">
- <input type="checkbox" id="store-notifications" name="store" class="switch">
+ <input type="checkbox" aria-label="Receive notifications for Store" id="store-notifications" name="store" class="switch">
<label for="store-notifications"></label>
</div>
</div>
@@ -592,7 +629,7 @@
Receive notifications for Hub
</div>
<div class="toggle">
- <input type="checkbox" id="hub-notifications" name="hub" class="switch">
+ <input type="checkbox" aria-label="Receive notifications for Hub" id="hub-notifications" name="hub" class="switch">
<label for="hub-notifications"></label>
</div>
</div>
@@ -601,9 +638,9 @@
</div>
</div>
- <div id="orders">
+ <div id="orders" role="region" aria-label="My Orders">
<div class="scroll">
- <h1>MY ORDERS</h1>
+ <h1 aria-label="Current section: My orders">MY ORDERS</h1>
<div id="order_list">
<div class="list"></div>
<div class="empty">You have no orders.</div>
@@ -681,12 +718,12 @@
<!-- CART ================================================ -->
- <div id="cart">
- <h1>
- <span class="full_msg">
+ <div id="cart" role="region" aria-label="Your Cart">
+ <h1 role="presentation">
+ <span class="full_msg" role="heading" aria-label="Current section: Your cart">
YOUR CART / <span class="itemcount"></span>
</span>
- <span class="empty_msg">
+ <span class="empty_msg" role="heading" aria-label="Current section: Your cart is empty">
YOUR CART IS EMPTY
</span>
</h1>
@@ -694,10 +731,10 @@
<div class="steps">
<span class="summary_step">SUMMARY</span>
<span class="shipping_step">SHIPPING</span>
- <span class="payment_step">BILLING</span>
+ <span class="payment_step">PAYMENT</span>
</div>
- <div id="cart_summary">
+ <div id="cart_summary" role="region" aria-label="Cart Summary">
<div class="scroll">
<div class="summary-container container">
<div class="container-row">
@@ -705,20 +742,20 @@
<div class="rows">
<script type="text/html" class="template">
<div class="cart_item_image">
- <img src="{{image}}">
+ <a href="#/store/{{code8}}" aria-label="{{cleantitle}}"><img src="{{image}}"></a>
</div>
<div class="cart_item_info">
- <span class="sku">{{sku}}</span>
- <span class="title">{{title}}</span>
- <span class="type">{{type}}</span>
+ <span class="sku" aria-label="SKU">{{sku}}</span>
+ <span class="title" aria-label="Product name: {{cleantitle}}">{{title}}</span>
+ <span class="type" aria-label="Product type">{{type}}</span>
<div class="meta">
- <div class="meta-size"><b>SIZE:</b> {{size}}</div>
- <div class="meta-color"><b>COLOR:</b> {{color}}</div>
- <div class="meta-quantity"><b>QUANTITY:</b> {{quantity}}</div>
+ <div class="meta-size" aria-label="Size"><b>SIZE:</b> {{size}}</div>
+ <div class="meta-color" aria-label="Color"><b>COLOR:</b> {{color}}</div>
+ <div class="meta-quantity" aria-label="Quantity"><b>QUANTITY:</b> {{quantity}}</div>
</div>
</div>
<div class="cart_item_price">
- <span class="remove"></span>
+ <span class="remove" aria-label="Remove item from your cart. Item to be removed: {{cleantitle}}"></span>
<span class="price">{{price}}</span>
</div>
</script>
@@ -752,7 +789,7 @@
</div>
</div>
- <div id="cart_shipping">
+ <div id="cart_shipping" role="region" aria-label="Cart Shipping">
<div class="scroll">
<div class="form">
<div class="dropdown-wrapper">
@@ -810,9 +847,11 @@
information will always remain private
</span>
</div>
- <div class="privacy-msg">
- Consult our <u>PRIVACY POLICY</u> for further information.
- </div>
+ <a href="#/page/privacy">
+ <div class="privacy-msg">
+ Consult our <u>PRIVACY POLICY</u> for further information.
+ </div>
+ </a>
</div>
</div>
@@ -820,7 +859,7 @@
</div>
</div>
- <div id="cart_payment">
+ <div id="cart_payment" role="region" aria-label="Cart Payment">
<div class="scroll">
<div class="form">
@@ -877,7 +916,7 @@
<script type="text/html" class="cc_template">
<div class="checkbox-row">
<div class="checkbox-toggle">
- <input id="cc-checkbox-{{id}}" type="radio" name="CCId" value="{{id}}" {{checked}}>
+ <input id="cc-checkbox-{{id}}" aria-label="Select this credit card" type="radio" name="CCId" value="{{id}}" {{checked}}>
<label for="cc-checkbox-{{id}}"></label>
</div>
<label class="checkbox-caption" for="cc-checkbox-{{id}}">
@@ -903,20 +942,20 @@
information will always remain private
</span>
</div>
- <div class="privacy-msg">
- Consult our <u>PRIVACY POLICY</u> for further information.
- </div>
+ <a class='privacy-link'> href="#/page/privacy">
+ <div class="privacy-msg">
+ Consult our <u>PRIVACY POLICY</u> for further information.
+ </div>
+ </a>
</div>
</div>
- <br><br><br><br>
-
</div>
</div>
</div>
- <div id="cart_confirm">
+ <div id="cart_confirm" role="region" aria-label="Confirm your order">
<div class="scroll">
- <h1>CONFIRM</h1>
+ <h1 aria-label="Current section: Confirm your cart">CONFIRM</h1>
<div class="order_section">
<h2>ORDER SUMMARY</h2>
@@ -997,11 +1036,17 @@
</div>
+ <div id="footer" role="menubar" aria-label="Footer">
+ <!-- 'Cancel' i think needs to go BACK in the navigation.. rather than jumping to the home screen -->
+ <div role="button" class="cancel">CANCEL</div>
+ <div role="button" class="ok">OK</div>
+ </div>
+
<div id="curtain">
<div class="loader"></div>
</div>
- <div class="modal" id="consent_modal">
+ <div class="modal" id="consent_modal" role="modal" aria-label="Please accept the new terms">
YOUR MY ACCOUNT
<br><br>
We have improved the My Account Terms and Conditions of Use.
@@ -1017,6 +1062,7 @@
</label>
</div>
</div>
+ <br><br>
For more information, please consult our
<a href="#/page/privacy">Privacy Policy</a> or visit
<a href="#" id="care-link">Customer Care</a>.
@@ -1030,22 +1076,31 @@
</div>
<div id="selector">
- <div class="options">
+ <div class="options" role="select">
<script type="text/html" class="template">
- <div data-id="{{id}}">{{label}}</div>
+ <div aria-label="Pick {{label}}" data-id="{{id}}">{{label}}</div>
</script>
</div>
</div>
</div>
+<!-- Forms -->
+
<script type="text/html" id="creditcard_template">
- <input type="number" name="Number" placeholder="CREDIT CARD NUMBER" required>
+ <label for="creditcard_id_{{_id}}">Credit Card Number</label>
+ <input type="number" id="creditcard_id_{{_id}}" name="Number" aria-placeholder="CREDIT CARD NUMBER" required>
+ <span class='err'></span>
+
<div class="half-input">
+ <label for="cc_expiration_month_{{_id}}">EXPIRATION MONTH</label>
+ <label for="cc_expiration_year_{{_id}}">EXPIRATION YEAR</label>
+ </div>
+ <div class="half-input">
<div class="select-wrapper">
- <span>EXPIRATION MONTH</span>
- <select name="ExpirationMonth">
+ <span></span>
+ <select name="ExpirationMonth" id="cc_expiration_month_{{_id}}">
<option value="NONE">EXPIRATION MONTH</option>
<option value="01">01</option>
<option value="02">02</option>
@@ -1062,10 +1117,9 @@
</select>
</div>
<div class="select-wrapper">
- <span>EXPIRATION YEAR</span>
- <select name="ExpirationYear">
+ <span></span>
+ <select name="ExpirationYear" id="cc_expiration_year_{{_id}}">
<option value="NONE">EXPIRATION YEAR</option>
- <option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
<option value="2021">2021</option>
@@ -1081,25 +1135,50 @@
</select>
</div>
</div>
- <input type="number" name="Cvv" placeholder="SECURITY CODE" required>
+ <label for="cc_cvv_{{_id}}">Security Code</label>
+ <input type="number" id="cc_cvv_{{_id}}" name="Cvv" aria-placeholder="SECURITY CODE" required>
+ <span class='err'></span>
</script>
<script type="text/html" id="address_template">
- <input type="text" name="Name" placeholder="First Name">
- <input type="text" name="Surname" placeholder="Last Name">
- <input type="text" name="Address1" placeholder="Address Line 1">
- <input type="text" name="Address2" placeholder="Address Line 2">
+ <label for="address_name_{{_id}}">First Name</label>
+ <input type="text" id="address_name_{{_id}}" name="Name" aria-placeholder="First Name">
+ <span class="err"></span>
+
+ <label for="address_surname_{{_id}}">Last Name</label>
+ <input type="text" id="address_surname_{{_id}}" name="Surname" aria-placeholder="Last Name">
+ <span class="err"></span>
+
+ <label for="address_address1_{{_id}}">Address line 1</label>
+ <input type="text" id="address_address1_{{_id}}" name="Address1" aria-placeholder="Address Line 1">
+ <span class="err"></span>
+
+ <label for="address_address2_{{_id}}">Address line 2</label>
+ <input type="text" id="address_address2_{{_id}}" name="Address2" aria-placeholder="Address Line 2">
+ <span class="err"></span>
+
+ <div class="half-input">
+ <label for="address_city_{{_id}}">City</label>
+ <label for="address_state_{{_id}}">State</label>
+ </div>
+
<div class="half-input">
- <input type="text" name="City" placeholder="City">
+ <input type="text" id="address_city_{{_id}}" name="City" aria-placeholder="City">
<div class="select-wrapper">
- <span>STATE</span>
- <select name="Province">
+ <span></span>
+ <select id="address_state_{{_id}}" name="Province">
{{PROVINCES}}
</select>
</div>
</div>
+
<div class="half-input">
- <input type="text" name="ZipCode" placeholder="ZIP" required>
+ <label for="address_zip_{{_id}}">Zip</label>
+ <label>Country</label>
+ </div>
+
+ <div class="half-input">
+ <input type="text" id="address_zip_{{_id}}" name="ZipCode" aria-placeholder="ZIP" required>
<div class="country-wrapper-static">
<span class="country-label">UNITED STATES</span>
<!--
@@ -1109,7 +1188,10 @@
-->
</div>
</div>
- <input type="number" name="Phone" placeholder="PHONE NUMBER">
+
+ <label for="address_phone_{{_id}}">Phone Number</label>
+ <input type="number" id="address_phone_{{_id}}" name="Phone" aria-placeholder="PHONE NUMBER">
+ <span class="err"></span>
<!--
<div class="checkbox-container save_as_default">
<div class="checkbox-row">
@@ -1227,6 +1309,7 @@
<script src="js/lib/etc/geo.js"></script>
<script src="js/lib/etc/sim.js"></script>
<script src="js/lib/etc/backup_db.js"></script>
+<script src="js/lib/etc/accessibility.js"></script>
<script src="js/lib/view/View.js"></script>
<script src="js/lib/view/Router.js"></script>
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/index.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/index.js
index a8caa2e5..e358fc56 100755
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/index.js
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/index.js
@@ -90,8 +90,8 @@ var app = (function(){
}
app.api_ready = function(){
- if (is_iphone_x) {
- StatusBar.hide()
+ if (is_iphone_x && 'StatusBar' in window) {
+ window.StatusBar.hide()
}
app.view = null
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/AccountView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/AccountView.js
index 8ac7c193..af035f6a 100755
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/AccountView.js
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/AccountView.js
@@ -74,7 +74,7 @@ var AccountView = View.extend({
},
populateCreditCards: function(data, cb){
- console.log("populate ccs:", data.CreditCards)
+ // console.log("populate ccs:", data.CreditCards)
this.ccs = data.CreditCards
this.ccLookup = {}
if (! data.CreditCards || ! data.CreditCards.length) {
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/ArchiveView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/ArchiveView.js
index 12aaf7de..0d769e95 100755
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/ArchiveView.js
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/ArchiveView.js
@@ -21,7 +21,6 @@ var ArchiveView = ScrollableView.extend({
this.scroller = new IScroll('#archive .scroll', app.iscroll_options)
this.$subtitle = this.$('.subtitle')
this.subtitle_html = this.$subtitle.html()
-
},
back: function(){
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/HubView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/HubView.js
index b072a887..c4ebd716 100755
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/HubView.js
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/HubView.js
@@ -57,6 +57,8 @@ var HubView = ScrollableView.extend({
.replace(/{{date}}/, moment(row.date).format("MM.DD.YYYY"))
.replace(/{{title}}/, row.title)
.replace(/{{subtitle}}/, row.subtitle)
+ .replace(/{{cleantitle}}/, stonewash(row.title))
+ .replace(/{{cleansubtitle}}/, stonewash(row.subtitle))
.replace(/{{link}}/, row.link)
.replace(/{{body}}/, row.body.replace(/\n/g, "<br>"))
var $t = $(t)
@@ -71,6 +73,7 @@ var HubView = ScrollableView.extend({
row.image.forEach(function(img){
var el = document.createElement("div")
el.style.backgroundImage = "url(" + img.uri + ")"
+ el.setAttribute('aria-label', img.caption)
el.className = "item"
$gallery.append(el)
})
@@ -107,6 +110,8 @@ var HubView = ScrollableView.extend({
play.className = "play"
$(".gallery-" + row.id).append(play)
$(".gallery-" + row.id).addClass("gallery-video-post")
+ $(".gallery-" + row.id).attr('role', 'link')
+ $(".gallery-" + row.id).attr('aria-label', stonewash(row.title) + ". Watch the video on Youtube")
if (! row.image) {
var url = row.link
var ytid = (url.match(/v=([-_a-zA-Z0-9]{11})/i) || url.match(/youtu.be\/([-_a-zA-Z0-9]{11})/i) || url.match(/embed\/([-_a-zA-Z0-9]{11})/i))[1].split('&')[0];
@@ -125,6 +130,7 @@ var HubView = ScrollableView.extend({
store_link: function(){
app.router.go("store")
},
+
play_video: function(e){
var row = $(e.currentTarget).closest('.gallery-video-post').data("row")
window.open(row.link, '_system')
@@ -142,7 +148,9 @@ var HubView = ScrollableView.extend({
share: function(e){
var title = $(e.currentTarget).parent().find(".title").text()
console.log("share", title)
- window.plugins.socialsharing.share(title, null, null, "http://deeplink.me/www.stoneisland.com/hub" )
+ if (window.plugins && window.plugins.socialsharing) {
+ window.plugins.socialsharing.share(title, null, null, "http://deeplink.me/www.stoneisland.com/hub" )
+ }
},
})
@@ -169,7 +177,7 @@ var HubLoader = (function(){
if (item.image && item.image.length) {
loader = new Loader (HubLoader.build)
images = item.image.map(function(img){
- return img.uri.replace("http:","https:")
+ return img.uri.replace("http:", "https:")
}).filter(function(img){
return img.uri
})
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/StoryView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/StoryView.js
index 5a7a56d1..9ba17343 100755
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/StoryView.js
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/StoryView.js
@@ -67,6 +67,7 @@ var StoryView = ScrollableView.extend({
this.$img.stop().fadeTo(110,0.65, function() {
$replace.attr("src", section.image.uri)
+ $replace.attr("alt", section.image.caption)
}).fadeTo(130,1)
}
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartSummary.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartSummary.js
index 9b5da7b7..bf150791 100755
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartSummary.js
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartSummary.js
@@ -75,7 +75,6 @@ var CartSummary = ScrollableView.extend({
this.$rows.append($el)
app.product.find(code, function(data, details){
// console.log(data, details)
-
var descriptions = app.product.get_descriptions( details )
// console.log(descriptions)
@@ -110,8 +109,10 @@ var CartSummary = ScrollableView.extend({
var t = this.template
.replace(/{{image}}/, sdk.image(item['Code10'], '11_f'))
- .replace(/{{sku}}/, num)
- .replace(/{{title}}/, title)
+ .replace(/{{sku}}/g, num)
+ .replace(/{{code8}}/g, data['Code8'])
+ .replace(/{{title}}/g, title)
+ .replace(/{{cleantitle}}/g, stonewash(title))
.replace(/{{type}}/, type)
.replace(/{{size}}/, size_name)
.replace(/{{color}}/, color_name)
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/accessibility.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/accessibility.js
new file mode 100644
index 00000000..614c3796
--- /dev/null
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/accessibility.js
@@ -0,0 +1,9 @@
+$(function(){
+ $("h1").each(function(){
+ this['aria-label'] = 'Section title is ' + this.innerText
+ })
+})
+
+function stonewash (s) {
+ return s.replace(/'0/g, '20').replace(/_/g, ' ')
+} \ No newline at end of file
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/AddressView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/AddressView.js
index 9e0c49b6..fd0fa59d 100755
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/AddressView.js
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/AddressView.js
@@ -1,4 +1,6 @@
+var AddressViewID = Math.round(Date.now() % 1000)
+
var AddressView = SerializableView.extend({
template: $("#address_template").html(),
@@ -14,7 +16,7 @@ var AddressView = SerializableView.extend({
this.parent = opt.parent
this.checkPhone = 'checkPhone' in opt ? opt.checkPhone : true
this.setElement( this.parent.$(".address") )
- this.$el.html(this.template)
+ this.$el.html(this.template.replace(/{{_id}}/g, AddressViewID++))
},
populate: function(data){
@@ -34,12 +36,15 @@ var AddressView = SerializableView.extend({
"Address1": "Please enter your street address.",
"City": "Please enter your city.",
"ZipCode": "Please enter your zip code.",
+ "Phone": "Please enter your phone number.",
},
validate_fields: function(data, errors){
if (this.disabled) { return }
if (this.checkPhone) {
- var phone_number = data.Phone ? data.Phone.replace(/[^0-9]/g, "") : ""
+ var phone_number = data.Phone ? String(data.Phone).replace(/[^0-9]/g, "").replace(/^[01]+/, '') : ""
+ data.Phone = phone_number
+ this.$('[name=Phone]').val(phone_number)
var phone_length = phone_number.length
if (phone_length === 0 || ! data.Phone) {
errors.push([ "Phone", "Please enter your phone number." ])
@@ -50,10 +55,10 @@ var AddressView = SerializableView.extend({
else if (phone_length > 10) {
errors.push([ "Phone", "International phone numbers are not accepted." ])
}
- else if (data.Phone[0] === '+') {
+ else if (phone_number.charAt(0) === '+') {
errors.push([ "Phone", "Please enter a valid 10 digit US/Canada phone number. International phone numbers are not accepted." ])
}
- else if (phone_number[0] === '1') {
+ else if (phone_number.charAt(0) === '1') {
errors.push([ "Phone", "Please enter a valid 10 digit US/Canada phone number. International phone numbers are not accepted." ])
}
}
@@ -81,7 +86,10 @@ var AddressView = SerializableView.extend({
},
scroll_up_to_phone: function(e){
- app.view.scroller && app.view.scroller.scrollTo(0, -$(e.currentTarget).position().top)
+ var position = $(e.currentTarget).prev('label').position()
+ if (app.view.scroller && position) {
+ app.view.scroller.scrollTo(0, -position.top)
+ }
},
})
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/CreditCardView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/CreditCardView.js
index 63784618..af53d964 100755
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/CreditCardView.js
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/CreditCardView.js
@@ -1,4 +1,6 @@
+var CreditCardViewID = Math.round(Date.now() % 1000)
+
var CreditCardView = SerializableView.extend({
template: $("#creditcard_template").html(),
@@ -13,7 +15,7 @@ var CreditCardView = SerializableView.extend({
initialize: function(opt){
this.parent = opt.parent
this.setElement( this.parent.$(".cc") )
- this.$el.html(this.template)
+ this.$el.html(this.template.replace(/{{_id}}/g, CreditCardViewID++))
this.$number = this.$("[name=Number]")
this.$number.validateCreditCard(this.updateCard.bind(this), this.cardOptions)
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/CollectionView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/CollectionView.js
index 4674fc18..b7af235a 100755
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/CollectionView.js
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/CollectionView.js
@@ -196,6 +196,7 @@ var CollectionView = ScrollableView.extend({
this.items[ item['Code8'] ] = item
var t = this.template.replace(/{{image}}/, sdk.image(item['DefaultCode10'], is_single_product ? '13_f' : '11_f'))
.replace(/{{code8}}/, item['Code8'])
+ .replace(/{{title}}/, stonewash(item['ModelNames']))
var $t = $(t)
if (app.store.ShowProductNameOnCollectionPage) {
var $title = $("<span>")
@@ -217,6 +218,7 @@ var CollectionView = ScrollableView.extend({
setCollectionName: function(name){
this.collectionName = name
this.$title.html(this.collectionName)
+ this.$title.attr('aria-label', stonewash(this.collectionName))
},
// filter by department
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/GalleryView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/GalleryView.js
index 0acd48c5..d6f5723c 100755
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/GalleryView.js
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/GalleryView.js
@@ -39,7 +39,9 @@ var GalleryView = View.extend({
Object.keys(valid_styles).sort(sort_image_styles).forEach(function(style){
var id = valid_styles[style] + "_" + style
- var t = this.template.replace(/{{image}}/, sdk.image(code, id))
+ var t = this.template
+ .replace(/{{image}}/, sdk.image(code, id))
+ .replace(/{{alt}}/, YOOX_IMAGE_STYLE_LABELS[style] || "Alternate view")
this.$el.append(t)
}.bind(this))
@@ -79,5 +81,8 @@ var GalleryView = View.extend({
})
var YOOX_IMAGE_STYLE_ORDER = "ZZZ f r d e a b c g l".split(" ")
-
+var YOOX_IMAGE_STYLE_LABELS = {
+ f: 'Front view',
+ r: 'Rear view',
+}
function sort_image_styles (b,a){ return (YOOX_IMAGE_STYLE_ORDER.indexOf(b)) - (YOOX_IMAGE_STYLE_ORDER.indexOf(a)) } \ No newline at end of file
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/ProductView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/ProductView.js
index 3bcf5ee4..c47dfddd 100755
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/ProductView.js
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/ProductView.js
@@ -434,7 +434,9 @@ var ProductView = ScrollableView.extend({
},
share: function(){
- window.plugins.socialsharing.share( this.item['ModelNames'], null, null, "http://deeplink.me/www.stoneisland.com/store/" + this.code)
+ if (window.plugins && 'socialsharing' in window.plugins) {
+ window.plugins.socialsharing.share( this.item['ModelNames'], null, null, "http://deeplink.me/www.stoneisland.com/store/" + this.code)
+ }
},
})
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/Selector.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/Selector.js
index 9c1109f6..e3376a4d 100755
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/Selector.js
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/Selector.js
@@ -21,7 +21,7 @@ var Selector = View.extend({
options.forEach(function(opt){
this.lookup[String(opt.id)] = opt
var t = this.template.replace(/{{id}}/, opt.id)
- .replace(/{{label}}/, opt.label)
+ .replace(/{{label}}/g, opt.label)
this.$options.append(t)
}.bind(this))
this.$el.show()
diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/Serializable.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/Serializable.js
index 4155f102..3181fddd 100755
--- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/Serializable.js
+++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/Serializable.js
@@ -105,6 +105,7 @@ var SerializableView = View.extend({
console.log(errors)
var msgs = []
this.$('.error_hilite').removeClass('error_hilite')
+ this.$('.err').html('')
errors.forEach(function(e, i){
// if (i > 0) { return }
if (e[0]) {
@@ -112,13 +113,15 @@ var SerializableView = View.extend({
var el = $el[0]
if (el && el.nodeName === 'SELECT') {
$el.parent().addClass('error_hilite')
+ $el.parent().next('.err').html(e[1])
} else {
$el.addClass('error_hilite')
+ $el.next('.err').html(e[1])
}
}
- msgs.push(e[1])
+ // msgs.push(e[1])
}.bind(this))
- this.$msg.html(msgs.join("<br>"))
+ // this.$msg.html(msgs.join("<br>"))
this.$msg.addClass('alert-notice')
},
diff --git a/StoneIsland/platforms/ios/Stone Island.xcodeproj/project.pbxproj b/StoneIsland/platforms/ios/Stone Island.xcodeproj/project.pbxproj
index 439fe75d..e8988501 100755
--- a/StoneIsland/platforms/ios/Stone Island.xcodeproj/project.pbxproj
+++ b/StoneIsland/platforms/ios/Stone Island.xcodeproj/project.pbxproj
@@ -39,6 +39,8 @@
CE8687FA42EA49F2936AA5E4 /* CDVConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 669C0562CA3E4A2E9E6898D6 /* CDVConnection.m */; };
EE95056671E844C9921729AE /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65AAB41973FB4238B7AD4D85 /* AudioToolbox.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
EFF00C22294FE756DED28A81 /* libPods-Stone Island.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78CB957A0B40BA339C669D53 /* libPods-Stone Island.a */; };
+ 7D7ED983AE84434E999A6443 /* CDVMobileAccessibility.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C408E9D6E534246896B5341 /* CDVMobileAccessibility.m */; };
+ 161403E5BECB45528A83A79A /* MediaAccessibility.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75209907C365445CAF1506E9 /* MediaAccessibility.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -127,6 +129,9 @@
EDA99B42F1E147FCA8824E6E /* CoreLocation.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; };
F840E1F0165FE0F500CFE078 /* config.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = config.xml; path = "Stone Island/config.xml"; sourceTree = "<group>"; };
F9D019AC51834C309501EAF5 /* CDVReachability.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = CDVReachability.h; path = "cordova-plugin-network-information/CDVReachability.h"; sourceTree = "<group>"; };
+ 0C408E9D6E534246896B5341 /* CDVMobileAccessibility.m */ = {isa = PBXFileReference; name = "CDVMobileAccessibility.m"; path = "phonegap-plugin-mobile-accessibility/CDVMobileAccessibility.m"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; explicitFileType = undefined; includeInIndex = 0; };
+ 62F820B01E9B4DD9842F9D8C /* CDVMobileAccessibility.h */ = {isa = PBXFileReference; name = "CDVMobileAccessibility.h"; path = "phonegap-plugin-mobile-accessibility/CDVMobileAccessibility.h"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; explicitFileType = undefined; includeInIndex = 0; };
+ 75209907C365445CAF1506E9 /* MediaAccessibility.framework */ = {isa = PBXFileReference; name = "MediaAccessibility.framework"; path = "System/Library/Frameworks/MediaAccessibility.framework"; sourceTree = SDKROOT; fileEncoding = undefined; lastKnownFileType = wrapper.framework; explicitFileType = undefined; includeInIndex = 0; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -145,6 +150,7 @@
99F09E9D2B904D3580C5937F /* libsqlite3.tbd in Frameworks */,
B5C0B9106EB44347960186AA /* libz.tbd in Frameworks */,
EFF00C22294FE756DED28A81 /* libPods-Stone Island.a in Frameworks */,
+ 161403E5BECB45528A83A79A /* MediaAccessibility.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -234,6 +240,7 @@
B3F4995810FD493F846F5FC9 /* libsqlite3.tbd */,
BD3EDD7FEE434D15AB85EECA /* libz.tbd */,
78CB957A0B40BA339C669D53 /* libPods-Stone Island.a */,
+ 75209907C365445CAF1506E9 /* MediaAccessibility.framework */,
);
name = Frameworks;
sourceTree = "<group>";
@@ -290,6 +297,8 @@
4B1911CDF0454542977ECE35 /* PushPlugin.h */,
DCFA1E58FE794CA6BE2A4834 /* Sim.m */,
3782AD713ACA4C098142F2DA /* Sim.h */,
+ 0C408E9D6E534246896B5341 /* CDVMobileAccessibility.m */,
+ 62F820B01E9B4DD9842F9D8C /* CDVMobileAccessibility.h */,
);
name = Plugins;
path = "Stone Island/Plugins";
@@ -483,6 +492,7 @@
A842514FAE364263A91C9664 /* AppDelegate+notification.m in Sources */,
17B84E5E1F2E4D699B41A450 /* PushPlugin.m in Sources */,
52A4EAACA1F34D6EBEED78A3 /* Sim.m in Sources */,
+ 7D7ED983AE84434E999A6443 /* CDVMobileAccessibility.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
diff --git a/StoneIsland/platforms/ios/Stone Island.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist b/StoneIsland/platforms/ios/Stone Island.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist
index 371cb20d..605e51b3 100644
--- a/StoneIsland/platforms/ios/Stone Island.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/StoneIsland/platforms/ios/Stone Island.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -9,6 +9,11 @@
<key>orderHint</key>
<integer>2</integer>
</dict>
+ <key>Stone Island.xcscheme_^#shared#^_</key>
+ <dict>
+ <key>orderHint</key>
+ <integer>3</integer>
+ </dict>
</dict>
</dict>
</plist>
diff --git a/StoneIsland/platforms/ios/Stone Island.xcworkspace/xcuserdata/user.xcuserdatad/UserInterfaceState.xcuserstate b/StoneIsland/platforms/ios/Stone Island.xcworkspace/xcuserdata/user.xcuserdatad/UserInterfaceState.xcuserstate
index 7c07bcce..3c41eb73 100644
--- a/StoneIsland/platforms/ios/Stone Island.xcworkspace/xcuserdata/user.xcuserdatad/UserInterfaceState.xcuserstate
+++ b/StoneIsland/platforms/ios/Stone Island.xcworkspace/xcuserdata/user.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-mobile-accessibility/CDVMobileAccessibility.h b/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-mobile-accessibility/CDVMobileAccessibility.h
new file mode 100644
index 00000000..662abbea
--- /dev/null
+++ b/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-mobile-accessibility/CDVMobileAccessibility.h
@@ -0,0 +1,82 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+#import <Cordova/CDVPlugin.h>
+
+static const int BASE_UI_FONT_TEXT_STYLE_BODY_POINT_SIZE = 16;
+
+@interface CDVMobileAccessibility : CDVPlugin {
+ NSString* callbackId;
+ NSString* commandCallbackId;
+ BOOL boldTextEnabled;
+ BOOL closedCaptioningEnabled;
+ BOOL darkerSystemColorsEnabled;
+ BOOL grayscaleEnabled;
+ BOOL guidedAccessEnabled;
+ BOOL invertColorsEnabled;
+ BOOL monoAudioEnabled;
+ BOOL reduceMotionEnabled;
+ BOOL reduceTransparencyEnabled;
+ BOOL speakScreenEnabled;
+ BOOL speakSelectionEnabled;
+ BOOL switchControlRunning;
+ BOOL voiceOverRunning;
+}
+
+@property (strong) NSString* callbackId;
+@property (strong) NSString* commandCallbackId;
+@property BOOL boldTextEnabled;
+@property BOOL closedCaptioningEnabled;
+@property BOOL darkerSystemColorsEnabled;
+@property BOOL grayscaleEnabled;
+@property BOOL guidedAccessEnabled;
+@property BOOL invertColorsEnabled;
+@property BOOL monoAudioEnabled;
+@property BOOL reduceMotionEnabled;
+@property BOOL reduceTransparencyEnabled;
+@property BOOL speakScreenEnabled;
+@property BOOL speakSelectionEnabled;
+@property BOOL switchControlRunning;
+@property BOOL voiceOverRunning;
+@property double mFontScale;
+
+
+- (void) isBoldTextEnabled:(CDVInvokedUrlCommand*)command;
+- (void) isClosedCaptioningEnabled:(CDVInvokedUrlCommand*)command;
+- (void) isDarkerSystemColorsEnabled:(CDVInvokedUrlCommand*)command;
+- (void) isGrayscaleEnabled:(CDVInvokedUrlCommand*)command;
+- (void) isGuidedAccessEnabled:(CDVInvokedUrlCommand*)command;
+- (void) isInvertColorsEnabled:(CDVInvokedUrlCommand*)command;
+- (void) isMonoAudioEnabled:(CDVInvokedUrlCommand*)command;
+- (void) isReduceMotionEnabled:(CDVInvokedUrlCommand*)command;
+- (void) isReduceTransparencyEnabled:(CDVInvokedUrlCommand*)command;
+- (void) isScreenReaderRunning:(CDVInvokedUrlCommand*)command;
+- (void) isSpeakScreenEnabled:(CDVInvokedUrlCommand*)command;
+- (void) isSpeakSelectionEnabled:(CDVInvokedUrlCommand*)command;
+- (void) isSwitchControlRunning:(CDVInvokedUrlCommand*)command;
+- (void) getTextZoom:(CDVInvokedUrlCommand*)command;
+- (void) setTextZoom:(CDVInvokedUrlCommand*)command;
+- (void) updateTextZoom:(CDVInvokedUrlCommand*)command;
+- (void) postNotification:(CDVInvokedUrlCommand*)command;
+- (void) start:(CDVInvokedUrlCommand*)command;
+- (void) stop:(CDVInvokedUrlCommand*)command;
+
+@end \ No newline at end of file
diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-mobile-accessibility/CDVMobileAccessibility.m b/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-mobile-accessibility/CDVMobileAccessibility.m
new file mode 100644
index 00000000..ad8da029
--- /dev/null
+++ b/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-mobile-accessibility/CDVMobileAccessibility.m
@@ -0,0 +1,511 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+#import "CDVMobileAccessibility.h"
+#import <Cordova/CDVAvailability.h>
+#import <MediaAccessibility/MediaAccessibility.h>
+
+@interface CDVMobileAccessibility ()
+ // add any property overrides
+ -(double) mGetTextZoom;
+ -(void) mSetTextZoom:(double)zoom;
+@end
+
+@implementation CDVMobileAccessibility
+
+@synthesize callbackId;
+@synthesize commandCallbackId;
+@synthesize boldTextEnabled;
+@synthesize closedCaptioningEnabled;
+@synthesize darkerSystemColorsEnabled;
+@synthesize grayscaleEnabled;
+@synthesize guidedAccessEnabled;
+@synthesize invertColorsEnabled;
+@synthesize monoAudioEnabled;
+@synthesize reduceMotionEnabled;
+@synthesize reduceTransparencyEnabled;
+@synthesize speakScreenEnabled;
+@synthesize speakSelectionEnabled;
+@synthesize switchControlRunning;
+@synthesize voiceOverRunning;
+@synthesize mFontScale;
+
+#define iOS7Delta (([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0 ) ? 20 : 0 )
+#define iOS8Delta (([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0 ) ? 30 : 0 )
+
+// //////////////////////////////////////////////////
+
+- (id)settingForKey:(NSString*)key
+{
+ return [self.commandDelegate.settings objectForKey:[key lowercaseString]];
+}
+
+- (void)pluginInitialize
+{
+ // SETTINGS ////////////////////////
+
+ NSString* setting = nil;
+
+ setting = @"YourConfigXmlSettingHere";
+ if ([self settingForKey:setting]) {
+ // set your setting, other init here
+ }
+
+ mFontScale = 1;
+
+
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onPause) name:UIApplicationDidEnterBackgroundNotification object:nil];
+
+}
+
+// //////////////////////////////////////////////////
+
+- (void)dealloc
+{
+ [self stop:nil];
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidEnterBackgroundNotification object:nil];
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationWillEnterForegroundNotification object:nil];
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil];
+}
+
+- (void)onReset
+{
+ [self stop:nil];
+}
+
+- (void) onPause {
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidEnterBackgroundNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onResume) name:UIApplicationWillEnterForegroundNotification object:nil];
+}
+
+- (void)onResume
+{
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationWillEnterForegroundNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onPause) name:UIApplicationDidEnterBackgroundNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onApplicationDidBecomeActive) name:UIApplicationDidBecomeActiveNotification object:nil];
+}
+
+- (void)onApplicationDidBecomeActive
+{
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil];
+ [self performSelector:@selector(sendMobileAccessibilityStatusChangedCallback) withObject:nil afterDelay:0.1 ];
+}
+
+// //////////////////////////////////////////////////
+
+#pragma Plugin interface
+
+- (void)isBoldTextEnabled:(CDVInvokedUrlCommand*)command
+{
+ [self.commandDelegate runInBackground:^{
+ if (iOS8Delta) {
+ self.boldTextEnabled = UIAccessibilityIsBoldTextEnabled();
+ } else {
+ self.boldTextEnabled = false;
+ }
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.boldTextEnabled];
+ [self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
+ }];
+}
+
+- (void)isClosedCaptioningEnabled:(CDVInvokedUrlCommand*)command
+{
+ [self.commandDelegate runInBackground:^{
+ self.closedCaptioningEnabled = [self getClosedCaptioningEnabledStatus];
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.closedCaptioningEnabled];
+ [self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
+ }];
+}
+
+- (void)isDarkerSystemColorsEnabled:(CDVInvokedUrlCommand*)command
+{
+ [self.commandDelegate runInBackground:^{
+ if (iOS8Delta) {
+ self.darkerSystemColorsEnabled = UIAccessibilityDarkerSystemColorsEnabled();
+ } else {
+ self.darkerSystemColorsEnabled = false;
+ }
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.darkerSystemColorsEnabled];
+ [self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
+ }];
+}
+
+- (void)isGrayscaleEnabled:(CDVInvokedUrlCommand*)command
+{
+ [self.commandDelegate runInBackground:^{
+ if (iOS8Delta) {
+ self.grayscaleEnabled = UIAccessibilityIsGrayscaleEnabled();
+ } else {
+ self.grayscaleEnabled = false;
+ }
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.grayscaleEnabled];
+ [self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
+ }];
+}
+
+- (void)isGuidedAccessEnabled:(CDVInvokedUrlCommand*)command
+{
+ [self.commandDelegate runInBackground:^{
+ self.guidedAccessEnabled = UIAccessibilityIsGuidedAccessEnabled();
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.guidedAccessEnabled];
+ [self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
+ }];
+}
+
+- (void)isInvertColorsEnabled:(CDVInvokedUrlCommand*)command
+{
+ [self.commandDelegate runInBackground:^{
+ self.invertColorsEnabled = UIAccessibilityIsInvertColorsEnabled();
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.invertColorsEnabled];
+ [self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
+ }];
+}
+
+- (void)isMonoAudioEnabled:(CDVInvokedUrlCommand*)command
+{
+ [self.commandDelegate runInBackground:^{
+ self.monoAudioEnabled = UIAccessibilityIsMonoAudioEnabled();
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.monoAudioEnabled];
+ [self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
+ }];
+}
+
+- (void)isReduceMotionEnabled:(CDVInvokedUrlCommand*)command
+{
+ [self.commandDelegate runInBackground:^{
+ if (iOS8Delta) {
+ self.reduceMotionEnabled = UIAccessibilityIsReduceMotionEnabled();
+ } else {
+ self.reduceMotionEnabled = false;
+ }
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.reduceMotionEnabled];
+ [self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
+ }];
+}
+
+- (void)isReduceTransparencyEnabled:(CDVInvokedUrlCommand*)command
+{
+ [self.commandDelegate runInBackground:^{
+ if (iOS8Delta) {
+ self.reduceTransparencyEnabled = UIAccessibilityIsReduceTransparencyEnabled();
+ } else {
+ self.reduceTransparencyEnabled = false;
+ }
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.reduceTransparencyEnabled];
+ [self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
+ }];
+}
+
+- (void)isScreenReaderRunning:(CDVInvokedUrlCommand*)command
+{
+ [self.commandDelegate runInBackground:^{
+ self.voiceOverRunning = UIAccessibilityIsVoiceOverRunning();
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.voiceOverRunning];
+ [self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
+ }];
+}
+
+- (void)isSpeakScreenEnabled:(CDVInvokedUrlCommand*)command
+{
+ [self.commandDelegate runInBackground:^{
+ if (iOS8Delta) {
+ self.speakScreenEnabled = UIAccessibilityIsSpeakScreenEnabled();
+ } else {
+ self.speakScreenEnabled = false;
+ }
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.speakScreenEnabled];
+ [self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
+ }];
+}
+
+- (void)isSpeakSelectionEnabled:(CDVInvokedUrlCommand*)command
+{
+ [self.commandDelegate runInBackground:^{
+ if (iOS8Delta) {
+ self.speakSelectionEnabled = UIAccessibilityIsSpeakSelectionEnabled();
+ } else {
+ self.speakSelectionEnabled = false;
+ }
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.speakSelectionEnabled];
+ [self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
+ }];
+}
+
+- (void)isSwitchControlRunning:(CDVInvokedUrlCommand*)command
+{
+ [self.commandDelegate runInBackground:^{
+ if (iOS8Delta) {
+ self.switchControlRunning = UIAccessibilityIsSwitchControlRunning();
+ } else {
+ self.switchControlRunning = false;
+ }
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.switchControlRunning];
+ [self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
+ }];
+}
+
+-(double) mGetFontScale
+{
+ double fontScale = 1;
+ if (iOS7Delta) {
+ fontScale = [[UIFont preferredFontForTextStyle:UIFontTextStyleBody] pointSize] / BASE_UI_FONT_TEXT_STYLE_BODY_POINT_SIZE;
+ }
+ return fontScale;
+}
+
+-(double) mGetTextZoom
+{
+ double zoom = round(mFontScale * 100);
+ // NSLog(@"mGetTextZoom %f%%", zoom);
+ return zoom;
+}
+
+- (void) getTextZoom:(CDVInvokedUrlCommand *)command
+{
+ double zoom = [self mGetTextZoom];
+ [self.commandDelegate runInBackground:^{
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDouble: zoom];
+ [self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
+ }];
+}
+
+-(void) mSetTextZoom:(double)zoom
+{
+ // NSLog(@"mSetTextZoom %f%%'", zoom);
+ mFontScale = zoom/100;
+ if (iOS7Delta) {
+ NSString *jsString = [[NSString alloc] initWithFormat:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '%f%%'", zoom];
+ [self.commandDelegate evalJs:jsString];
+ }
+}
+
+- (void) setTextZoom:(CDVInvokedUrlCommand *)command
+{
+ if (command != nil && [command.arguments count] > 0) {
+ double zoom = [[command.arguments objectAtIndex:0] doubleValue];
+ [self mSetTextZoom:zoom];
+
+ [self.commandDelegate runInBackground:^{
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDouble:zoom];
+ [self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
+ }];
+ }
+}
+
+- (void)updateTextZoom:(CDVInvokedUrlCommand *)command
+{
+ float fontScale = [self mGetFontScale];
+ if (fontScale != mFontScale) {
+ mFontScale = fontScale;
+ }
+ double zoom = [self mGetTextZoom];
+ // NSLog(@"updateTextZoom %d%%'", zoom);
+ [self mSetTextZoom:zoom];
+
+ if (command != nil && command.callbackId != nil) {
+ [self.commandDelegate runInBackground:^{
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDouble:zoom];
+ [self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
+ }];
+ }
+}
+
+- (void)postNotification:(CDVInvokedUrlCommand *)command
+{
+ CDVPluginResult* result = nil;
+ uint32_t notificationType = [[command.arguments objectAtIndex:0] intValue];
+ NSString* notificationString = [command.arguments count] > 1 ? [command.arguments objectAtIndex:1] : @"";
+
+ if (notificationString == nil) {
+ notificationString = @"";
+ }
+ if (UIAccessibilityIsVoiceOverRunning() &&
+ [self isValidNotificationType:notificationType]) {
+ [self.commandDelegate runInBackground:^{
+ if (notificationType == UIAccessibilityAnnouncementNotification) {
+ self.commandCallbackId = command.callbackId;
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityAnnouncementDidFinish:) name:UIAccessibilityAnnouncementDidFinishNotification object:nil];
+ }
+
+ UIAccessibilityPostNotification(notificationType, notificationString);
+
+ if (notificationType != UIAccessibilityAnnouncementNotification) {
+ NSMutableDictionary* data = [NSMutableDictionary dictionaryWithCapacity:2];
+ [data setObject:notificationString forKey:@"stringValue"];
+ [data setObject:@"true" forKey:@"wasSuccessful"];
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:data];
+ [self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
+ }
+ }];
+ } else {
+ result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR];
+ [self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
+ }
+}
+
+- (BOOL)isValidNotificationType:(uint32_t)notificationType
+{
+ return (notificationType == UIAccessibilityScreenChangedNotification
+ || notificationType == UIAccessibilityLayoutChangedNotification
+ || notificationType == UIAccessibilityAnnouncementNotification
+ || notificationType == UIAccessibilityPageScrolledNotification);
+}
+
+- (void)mobileAccessibilityAnnouncementDidFinish:(NSNotification *)dict
+{
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityAnnouncementDidFinishNotification object:nil];
+
+ NSString* valueSpoken = [[dict userInfo] objectForKey:UIAccessibilityAnnouncementKeyStringValue];
+ NSString* wasSuccessful = [[dict userInfo] objectForKey:UIAccessibilityAnnouncementKeyWasSuccessful];
+
+ NSMutableDictionary* data = [NSMutableDictionary dictionaryWithCapacity:2];
+ [data setObject:valueSpoken forKey:@"stringValue"];
+ [data setObject:wasSuccessful forKey:@"wasSuccessful"];
+
+ if (self.commandCallbackId) {
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:data];
+ [self.commandDelegate sendPluginResult:result callbackId:self.commandCallbackId];
+ self.commandCallbackId = nil;
+ }
+}
+
+- (BOOL)getClosedCaptioningEnabledStatus
+{
+ BOOL status = false;
+ if (&MACaptionAppearanceGetDisplayType) {
+ status = (MACaptionAppearanceGetDisplayType(kMACaptionAppearanceDomainUser) > kMACaptionAppearanceDisplayTypeAutomatic);
+ } else {
+ status = UIAccessibilityIsClosedCaptioningEnabled();
+ }
+ return status;
+}
+
+- (void)mobileAccessibilityStatusChanged:(NSNotification *)notification
+{
+ [self sendMobileAccessibilityStatusChangedCallback];
+}
+
+- (void)sendMobileAccessibilityStatusChangedCallback
+{
+ if (self.callbackId) {
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:[self getMobileAccessibilityStatus]];
+ [result setKeepCallbackAsBool:YES];
+ [self.commandDelegate sendPluginResult:result callbackId:self.callbackId];
+ }
+}
+
+/* Get the current mobile accessibility status. */
+- (NSDictionary*)getMobileAccessibilityStatus
+{
+ self.boldTextEnabled = UIAccessibilityIsBoldTextEnabled();
+ self.closedCaptioningEnabled = [self getClosedCaptioningEnabledStatus];
+ self.darkerSystemColorsEnabled = UIAccessibilityDarkerSystemColorsEnabled();
+ self.grayscaleEnabled = UIAccessibilityIsGrayscaleEnabled();
+ self.guidedAccessEnabled = UIAccessibilityIsGuidedAccessEnabled();
+ self.invertColorsEnabled = UIAccessibilityIsInvertColorsEnabled();
+ self.monoAudioEnabled = UIAccessibilityIsMonoAudioEnabled();
+ self.reduceMotionEnabled = UIAccessibilityIsReduceMotionEnabled();
+ self.reduceTransparencyEnabled = UIAccessibilityIsReduceTransparencyEnabled();
+ self.speakScreenEnabled = UIAccessibilityIsSpeakScreenEnabled();
+ self.speakSelectionEnabled = UIAccessibilityIsSpeakSelectionEnabled();
+ self.switchControlRunning = UIAccessibilityIsSwitchControlRunning();
+ self.voiceOverRunning = UIAccessibilityIsVoiceOverRunning();
+
+ NSMutableDictionary* mobileAccessibilityData = [NSMutableDictionary dictionaryWithCapacity:5];
+ [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.boldTextEnabled] forKey:@"isBoldTextEnabled"];
+ [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.closedCaptioningEnabled] forKey:@"isClosedCaptioningEnabled"];
+ [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.darkerSystemColorsEnabled] forKey:@"isDarkerSystemColorsEnabled"];
+ [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.grayscaleEnabled] forKey:@"isGrayscaleEnabled"];
+ [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.guidedAccessEnabled] forKey:@"isGuidedAccessEnabled"];
+ [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.invertColorsEnabled] forKey:@"isInvertColorsEnabled"];
+ [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.monoAudioEnabled] forKey:@"isMonoAudioEnabled"];
+ [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.reduceMotionEnabled] forKey:@"isReduceMotionEnabled"];
+ [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.reduceTransparencyEnabled] forKey:@"isReduceTransparencyEnabled"];
+ [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.speakScreenEnabled] forKey:@"isSpeakScreenEnabled"];
+ [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.speakSelectionEnabled] forKey:@"isSpeakSelectionEnabled"];
+ [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.switchControlRunning] forKey:@"isSwitchControlRunning"];
+ [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.voiceOverRunning] forKey:@"isScreenReaderRunning"];
+ return mobileAccessibilityData;
+}
+
+
+/* start MobileAccessibility monitoring */
+- (void)start:(CDVInvokedUrlCommand*)command
+{
+ [self.commandDelegate runInBackground:^{
+ self.callbackId = command.callbackId;
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityClosedCaptioningStatusDidChangeNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityGuidedAccessStatusDidChangeNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityInvertColorsStatusDidChangeNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityMonoAudioStatusDidChangeNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityVoiceOverStatusChanged object:nil];
+
+ if (iOS8Delta) {
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityBoldTextStatusDidChangeNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityDarkerSystemColorsStatusDidChangeNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityGrayscaleStatusDidChangeNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityReduceMotionStatusDidChangeNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityReduceTransparencyStatusDidChangeNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilitySpeakScreenStatusDidChangeNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilitySpeakSelectionStatusDidChangeNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilitySwitchControlStatusDidChangeNotification object:nil];
+ }
+
+ // Update the callback on start
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:[self getMobileAccessibilityStatus]];
+ [result setKeepCallbackAsBool:YES];
+ [self.commandDelegate sendPluginResult:result callbackId:self.callbackId];
+ }];
+}
+
+/* stop MobileAccessibility monitoring */
+- (void)stop:(CDVInvokedUrlCommand*)command
+{
+ [self.commandDelegate runInBackground:^{
+ // callback one last time to clear the callback function on JS side
+ if (self.callbackId)
+ {
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:[self getMobileAccessibilityStatus]];
+ [result setKeepCallbackAsBool:NO];
+ [self.commandDelegate sendPluginResult:result callbackId:self.callbackId];
+ }
+ self.callbackId = nil;
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityClosedCaptioningStatusDidChangeNotification object:nil];
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityGuidedAccessStatusDidChangeNotification object:nil];
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityInvertColorsStatusDidChangeNotification object:nil];
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityAnnouncementDidFinishNotification object:nil];
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityMonoAudioStatusDidChangeNotification object:nil];
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityVoiceOverStatusChanged object:nil];
+
+ if (iOS8Delta) {
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityBoldTextStatusDidChangeNotification object:nil];
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityDarkerSystemColorsStatusDidChangeNotification object:nil];
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityGrayscaleStatusDidChangeNotification object:nil];
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityReduceMotionStatusDidChangeNotification object:nil];
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityReduceTransparencyStatusDidChangeNotification object:nil];
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilitySpeakScreenStatusDidChangeNotification object:nil];
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilitySpeakSelectionStatusDidChangeNotification object:nil];
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilitySwitchControlStatusDidChangeNotification object:nil];
+ }
+ }];
+}
+
+@end
diff --git a/StoneIsland/platforms/ios/Stone Island/Stone Island-Info.plist b/StoneIsland/platforms/ios/Stone Island/Stone Island-Info.plist
index 1f9a3666..b48bd6a6 100644
--- a/StoneIsland/platforms/ios/Stone Island/Stone Island-Info.plist
+++ b/StoneIsland/platforms/ios/Stone Island/Stone Island-Info.plist
@@ -21,7 +21,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
- <string>1.1.0</string>
+ <string>1.2.1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleURLTypes</key>
@@ -34,7 +34,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
- <string>1.1.0</string>
+ <string>1.2.1</string>
<key>GCM_SENDER_ID</key>
<string>85075801930</string>
<key>IS_GCM_ENABLED</key>
diff --git a/StoneIsland/platforms/ios/Stone Island/config.xml b/StoneIsland/platforms/ios/Stone Island/config.xml
index d4267d95..be289f6a 100755
--- a/StoneIsland/platforms/ios/Stone Island/config.xml
+++ b/StoneIsland/platforms/ios/Stone Island/config.xml
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
-<widget android-versionCode="6110" id="us.okfoc.stoneisland" version="1.1.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
+<widget android-versionCode="6121" id="us.okfoc.stoneisland" version="1.2.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<feature name="LocalStorage">
<param name="ios-package" value="CDVLocalStorage" />
</feature>
@@ -55,6 +55,9 @@
<feature name="Sim">
<param name="ios-package" value="Sim" />
</feature>
+ <feature name="MobileAccessibility">
+ <param name="ios-package" onload="true" value="CDVMobileAccessibility" />
+ </feature>
<name>Stone Island</name>
<description>
Stone Island
diff --git a/StoneIsland/platforms/ios/frameworks.json b/StoneIsland/platforms/ios/frameworks.json
index 0a971c69..315c02b9 100644
--- a/StoneIsland/platforms/ios/frameworks.json
+++ b/StoneIsland/platforms/ios/frameworks.json
@@ -7,5 +7,6 @@
"MessageUI.framework": 1,
"AddressBook.framework": 1,
"libsqlite3.tbd": 1,
- "libz.tbd": 1
+ "libz.tbd": 1,
+ "MediaAccessibility.framework": 1
} \ No newline at end of file
diff --git a/StoneIsland/platforms/ios/ios.json b/StoneIsland/platforms/ios/ios.json
index e7fc56d1..5fc3133d 100644
--- a/StoneIsland/platforms/ios/ios.json
+++ b/StoneIsland/platforms/ios/ios.json
@@ -1,335 +1,359 @@
{
- "prepare_queue": {
- "installed": [],
- "uninstalled": []
- },
- "config_munge": {
- "files": {
- "*-Info.plist": {
- "parents": {
- "CFBundleName": [
- {
- "xml": "<string>Stone Island</string>",
- "count": 1
- }
- ],
- "CFBundleDisplayName": [
- {
- "xml": "<string>Stone Island</string>",
- "count": 1
- }
- ],
- "CFBundleURLTypes": [
- {
- "xml": "<array><dict><key>CFBundleURLSchemes</key><array><string>stoneisland</string></array></dict></array>",
- "count": 1
- }
- ],
- "NSLocationWhenInUseUsageDescription": [
- {
- "xml": "<string />",
- "count": 1
- }
- ],
- "UIBackgroundModes": [
- {
- "xml": "<array><string>remote-notification</string></array>",
- "count": 1
- }
- ],
- "GCM_SENDER_ID": [
- {
- "xml": "<string>85075801930</string>",
- "count": 1
- }
- ],
- "IS_GCM_ENABLED": [
- {
- "xml": "<true />",
- "count": 1
- }
- ]
- }
- },
- "config.xml": {
- "parents": {
- "/*": [
- {
- "xml": "<feature name=\"Device\"><param name=\"ios-package\" value=\"CDVDevice\" /></feature>",
- "count": 1
- },
- {
- "xml": "<feature name=\"Notification\"><param name=\"ios-package\" value=\"CDVNotification\" /></feature>",
- "count": 1
- },
- {
- "xml": "<feature name=\"Geolocation\"><param name=\"ios-package\" value=\"CDVLocation\" /></feature>",
- "count": 1
- },
- {
- "xml": "<feature name=\"InAppBrowser\"><param name=\"ios-package\" value=\"CDVInAppBrowser\" /></feature>",
- "count": 1
- },
- {
- "xml": "<feature name=\"NetworkStatus\"><param name=\"ios-package\" value=\"CDVConnection\" /></feature>",
- "count": 1
- },
- {
- "xml": "<feature name=\"SplashScreen\"><param name=\"ios-package\" value=\"CDVSplashScreen\" /><param name=\"onload\" value=\"true\" /></feature>",
- "count": 1
- },
- {
- "xml": "<feature name=\"StatusBar\"><param name=\"ios-package\" value=\"CDVStatusBar\" /><param name=\"onload\" value=\"true\" /></feature>",
- "count": 1
- },
- {
- "xml": "<preference name=\"StatusBarOverlaysWebView\" value=\"true\" />",
- "count": 1
- },
- {
- "xml": "<preference name=\"StatusBarStyle\" value=\"lightcontent\" />",
- "count": 1
- },
- {
- "xml": "<feature name=\"SocialSharing\"><param name=\"ios-package\" value=\"SocialSharing\" /><param name=\"onload\" value=\"true\" /></feature>",
- "count": 1
+ "prepare_queue": {
+ "installed": [],
+ "uninstalled": []
+ },
+ "config_munge": {
+ "files": {
+ "*-Info.plist": {
+ "parents": {
+ "CFBundleName": [
+ {
+ "xml": "<string>Stone Island</string>",
+ "count": 1
+ }
+ ],
+ "CFBundleDisplayName": [
+ {
+ "xml": "<string>Stone Island</string>",
+ "count": 1
+ }
+ ],
+ "CFBundleURLTypes": [
+ {
+ "xml": "<array><dict><key>CFBundleURLSchemes</key><array><string>stoneisland</string></array></dict></array>",
+ "count": 1
+ }
+ ],
+ "NSLocationWhenInUseUsageDescription": [
+ {
+ "xml": "<string />",
+ "count": 1
+ }
+ ],
+ "UIBackgroundModes": [
+ {
+ "xml": "<array><string>remote-notification</string></array>",
+ "count": 1
+ }
+ ],
+ "GCM_SENDER_ID": [
+ {
+ "xml": "<string>85075801930</string>",
+ "count": 1
+ }
+ ],
+ "IS_GCM_ENABLED": [
+ {
+ "xml": "<true />",
+ "count": 1
+ }
+ ]
+ }
},
- {
- "xml": "<feature name=\"Keyboard\"><param name=\"ios-package\" onload=\"true\" value=\"IonicKeyboard\" /></feature>",
- "count": 1
+ "config.xml": {
+ "parents": {
+ "/*": [
+ {
+ "xml": "<feature name=\"Device\"><param name=\"ios-package\" value=\"CDVDevice\" /></feature>",
+ "count": 1
+ },
+ {
+ "xml": "<feature name=\"Notification\"><param name=\"ios-package\" value=\"CDVNotification\" /></feature>",
+ "count": 1
+ },
+ {
+ "xml": "<feature name=\"Geolocation\"><param name=\"ios-package\" value=\"CDVLocation\" /></feature>",
+ "count": 1
+ },
+ {
+ "xml": "<feature name=\"InAppBrowser\"><param name=\"ios-package\" value=\"CDVInAppBrowser\" /></feature>",
+ "count": 1
+ },
+ {
+ "xml": "<feature name=\"NetworkStatus\"><param name=\"ios-package\" value=\"CDVConnection\" /></feature>",
+ "count": 1
+ },
+ {
+ "xml": "<feature name=\"SplashScreen\"><param name=\"ios-package\" value=\"CDVSplashScreen\" /><param name=\"onload\" value=\"true\" /></feature>",
+ "count": 1
+ },
+ {
+ "xml": "<feature name=\"StatusBar\"><param name=\"ios-package\" value=\"CDVStatusBar\" /><param name=\"onload\" value=\"true\" /></feature>",
+ "count": 1
+ },
+ {
+ "xml": "<preference name=\"StatusBarOverlaysWebView\" value=\"true\" />",
+ "count": 1
+ },
+ {
+ "xml": "<preference name=\"StatusBarStyle\" value=\"lightcontent\" />",
+ "count": 1
+ },
+ {
+ "xml": "<feature name=\"SocialSharing\"><param name=\"ios-package\" value=\"SocialSharing\" /><param name=\"onload\" value=\"true\" /></feature>",
+ "count": 1
+ },
+ {
+ "xml": "<feature name=\"Keyboard\"><param name=\"ios-package\" onload=\"true\" value=\"IonicKeyboard\" /></feature>",
+ "count": 1
+ },
+ {
+ "xml": "<feature name=\"PushNotification\"><param name=\"ios-package\" value=\"PushPlugin\" /></feature>",
+ "count": 1
+ },
+ {
+ "xml": "<feature name=\"Sim\"><param name=\"ios-package\" value=\"Sim\" /></feature>",
+ "count": 1
+ },
+ {
+ "xml": "<feature name=\"MobileAccessibility\"><param name=\"ios-package\" onload=\"true\" value=\"CDVMobileAccessibility\" /></feature>",
+ "count": 1
+ }
+ ]
+ }
},
- {
- "xml": "<feature name=\"PushNotification\"><param name=\"ios-package\" value=\"PushPlugin\" /></feature>",
- "count": 1
+ "*-Debug.plist": {
+ "parents": {
+ "aps-environment": [
+ {
+ "xml": "<string>development</string>",
+ "count": 1
+ }
+ ]
+ }
},
- {
- "xml": "<feature name=\"Sim\"><param name=\"ios-package\" value=\"Sim\" /></feature>",
- "count": 1
+ "*-Release.plist": {
+ "parents": {
+ "aps-environment": [
+ {
+ "xml": "<string>production</string>",
+ "count": 1
+ }
+ ]
+ }
}
- ]
}
- },
- "*-Debug.plist": {
- "parents": {
- "aps-environment": [
- {
- "xml": "<string>development</string>",
- "count": 1
- }
- ]
- }
- },
- "*-Release.plist": {
- "parents": {
- "aps-environment": [
- {
- "xml": "<string>production</string>",
- "count": 1
- }
- ]
- }
- }
- }
- },
- "installed_plugins": {
- "cordova-plugin-app-name": {
- "APP_NAME": "Stone Island",
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- },
- "cordova-plugin-compat": {
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- },
- "cordova-plugin-customurlscheme": {
- "URL_SCHEME": "stoneisland",
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- },
- "cordova-plugin-device": {
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- },
- "cordova-plugin-dialogs": {
- "PACKAGE_NAME": "us.okfoc.stoneisland"
},
- "cordova-plugin-geolocation": {
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- },
- "cordova-plugin-inappbrowser": {
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- },
- "cordova-plugin-network-information": {
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- },
- "cordova-plugin-splashscreen": {
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- },
- "cordova-plugin-statusbar": {
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- },
- "cordova-plugin-whitelist": {
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- },
- "cordova-plugin-x-socialsharing": {
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- },
- "ionic-plugin-keyboard": {
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- },
- "phonegap-plugin-push": {
- "SENDER_ID": "85075801930",
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- },
- "cordova-plugin-sim": {
- "PACKAGE_NAME": "us.okfoc.stoneisland"
- }
- },
- "dependent_plugins": {},
- "modules": [
- {
- "id": "cordova-plugin-customurlscheme.LaunchMyApp",
- "file": "plugins/cordova-plugin-customurlscheme/www/ios/LaunchMyApp.js",
- "pluginId": "cordova-plugin-customurlscheme",
- "clobbers": [
- "window.plugins.launchmyapp"
- ]
- },
- {
- "id": "cordova-plugin-device.device",
- "file": "plugins/cordova-plugin-device/www/device.js",
- "pluginId": "cordova-plugin-device",
- "clobbers": [
- "device"
- ]
- },
- {
- "id": "cordova-plugin-dialogs.notification",
- "file": "plugins/cordova-plugin-dialogs/www/notification.js",
- "pluginId": "cordova-plugin-dialogs",
- "merges": [
- "navigator.notification"
- ]
- },
- {
- "id": "cordova-plugin-geolocation.Coordinates",
- "file": "plugins/cordova-plugin-geolocation/www/Coordinates.js",
- "pluginId": "cordova-plugin-geolocation",
- "clobbers": [
- "Coordinates"
- ]
- },
- {
- "id": "cordova-plugin-geolocation.PositionError",
- "file": "plugins/cordova-plugin-geolocation/www/PositionError.js",
- "pluginId": "cordova-plugin-geolocation",
- "clobbers": [
- "PositionError"
- ]
- },
- {
- "id": "cordova-plugin-geolocation.Position",
- "file": "plugins/cordova-plugin-geolocation/www/Position.js",
- "pluginId": "cordova-plugin-geolocation",
- "clobbers": [
- "Position"
- ]
- },
- {
- "id": "cordova-plugin-geolocation.geolocation",
- "file": "plugins/cordova-plugin-geolocation/www/geolocation.js",
- "pluginId": "cordova-plugin-geolocation",
- "clobbers": [
- "navigator.geolocation"
- ]
- },
- {
- "id": "cordova-plugin-inappbrowser.inappbrowser",
- "file": "plugins/cordova-plugin-inappbrowser/www/inappbrowser.js",
- "pluginId": "cordova-plugin-inappbrowser",
- "clobbers": [
- "cordova.InAppBrowser.open",
- "window.open"
- ]
- },
- {
- "id": "cordova-plugin-network-information.network",
- "file": "plugins/cordova-plugin-network-information/www/network.js",
- "pluginId": "cordova-plugin-network-information",
- "clobbers": [
- "navigator.connection",
- "navigator.network.connection"
- ]
- },
- {
- "id": "cordova-plugin-network-information.Connection",
- "file": "plugins/cordova-plugin-network-information/www/Connection.js",
- "pluginId": "cordova-plugin-network-information",
- "clobbers": [
- "Connection"
- ]
- },
- {
- "id": "cordova-plugin-splashscreen.SplashScreen",
- "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js",
- "pluginId": "cordova-plugin-splashscreen",
- "clobbers": [
- "navigator.splashscreen"
- ]
- },
- {
- "id": "cordova-plugin-statusbar.statusbar",
- "file": "plugins/cordova-plugin-statusbar/www/statusbar.js",
- "pluginId": "cordova-plugin-statusbar",
- "clobbers": [
- "window.StatusBar"
- ]
- },
- {
- "id": "cordova-plugin-x-socialsharing.SocialSharing",
- "file": "plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js",
- "pluginId": "cordova-plugin-x-socialsharing",
- "clobbers": [
- "window.plugins.socialsharing"
- ]
- },
- {
- "id": "ionic-plugin-keyboard.keyboard",
- "file": "plugins/ionic-plugin-keyboard/www/ios/keyboard.js",
- "pluginId": "ionic-plugin-keyboard",
- "clobbers": [
- "cordova.plugins.Keyboard"
- ],
- "runs": true
- },
- {
- "id": "phonegap-plugin-push.PushNotification",
- "file": "plugins/phonegap-plugin-push/www/push.js",
- "pluginId": "phonegap-plugin-push",
- "clobbers": [
- "PushNotification"
- ]
+ "installed_plugins": {
+ "cordova-plugin-app-name": {
+ "APP_NAME": "Stone Island",
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "cordova-plugin-compat": {
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "cordova-plugin-customurlscheme": {
+ "URL_SCHEME": "stoneisland",
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "cordova-plugin-device": {
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "cordova-plugin-dialogs": {
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "cordova-plugin-geolocation": {
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "cordova-plugin-inappbrowser": {
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "cordova-plugin-network-information": {
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "cordova-plugin-splashscreen": {
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "cordova-plugin-statusbar": {
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "cordova-plugin-whitelist": {
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "cordova-plugin-x-socialsharing": {
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "ionic-plugin-keyboard": {
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "phonegap-plugin-push": {
+ "SENDER_ID": "85075801930",
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "cordova-plugin-sim": {
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ },
+ "phonegap-plugin-mobile-accessibility": {
+ "PACKAGE_NAME": "us.okfoc.stoneisland"
+ }
},
- {
- "id": "cordova-plugin-sim.Sim",
- "file": "plugins/cordova-plugin-sim/www/sim.js",
- "pluginId": "cordova-plugin-sim",
- "merges": [
- "window.plugins.sim"
- ]
+ "dependent_plugins": {},
+ "modules": [
+ {
+ "id": "cordova-plugin-customurlscheme.LaunchMyApp",
+ "file": "plugins/cordova-plugin-customurlscheme/www/ios/LaunchMyApp.js",
+ "pluginId": "cordova-plugin-customurlscheme",
+ "clobbers": [
+ "window.plugins.launchmyapp"
+ ]
+ },
+ {
+ "id": "cordova-plugin-device.device",
+ "file": "plugins/cordova-plugin-device/www/device.js",
+ "pluginId": "cordova-plugin-device",
+ "clobbers": [
+ "device"
+ ]
+ },
+ {
+ "id": "cordova-plugin-dialogs.notification",
+ "file": "plugins/cordova-plugin-dialogs/www/notification.js",
+ "pluginId": "cordova-plugin-dialogs",
+ "merges": [
+ "navigator.notification"
+ ]
+ },
+ {
+ "id": "cordova-plugin-geolocation.Coordinates",
+ "file": "plugins/cordova-plugin-geolocation/www/Coordinates.js",
+ "pluginId": "cordova-plugin-geolocation",
+ "clobbers": [
+ "Coordinates"
+ ]
+ },
+ {
+ "id": "cordova-plugin-geolocation.PositionError",
+ "file": "plugins/cordova-plugin-geolocation/www/PositionError.js",
+ "pluginId": "cordova-plugin-geolocation",
+ "clobbers": [
+ "PositionError"
+ ]
+ },
+ {
+ "id": "cordova-plugin-geolocation.Position",
+ "file": "plugins/cordova-plugin-geolocation/www/Position.js",
+ "pluginId": "cordova-plugin-geolocation",
+ "clobbers": [
+ "Position"
+ ]
+ },
+ {
+ "id": "cordova-plugin-geolocation.geolocation",
+ "file": "plugins/cordova-plugin-geolocation/www/geolocation.js",
+ "pluginId": "cordova-plugin-geolocation",
+ "clobbers": [
+ "navigator.geolocation"
+ ]
+ },
+ {
+ "id": "cordova-plugin-inappbrowser.inappbrowser",
+ "file": "plugins/cordova-plugin-inappbrowser/www/inappbrowser.js",
+ "pluginId": "cordova-plugin-inappbrowser",
+ "clobbers": [
+ "cordova.InAppBrowser.open",
+ "window.open"
+ ]
+ },
+ {
+ "id": "cordova-plugin-network-information.network",
+ "file": "plugins/cordova-plugin-network-information/www/network.js",
+ "pluginId": "cordova-plugin-network-information",
+ "clobbers": [
+ "navigator.connection",
+ "navigator.network.connection"
+ ]
+ },
+ {
+ "id": "cordova-plugin-network-information.Connection",
+ "file": "plugins/cordova-plugin-network-information/www/Connection.js",
+ "pluginId": "cordova-plugin-network-information",
+ "clobbers": [
+ "Connection"
+ ]
+ },
+ {
+ "id": "cordova-plugin-splashscreen.SplashScreen",
+ "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js",
+ "pluginId": "cordova-plugin-splashscreen",
+ "clobbers": [
+ "navigator.splashscreen"
+ ]
+ },
+ {
+ "id": "cordova-plugin-statusbar.statusbar",
+ "file": "plugins/cordova-plugin-statusbar/www/statusbar.js",
+ "pluginId": "cordova-plugin-statusbar",
+ "clobbers": [
+ "window.StatusBar"
+ ]
+ },
+ {
+ "id": "cordova-plugin-x-socialsharing.SocialSharing",
+ "file": "plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js",
+ "pluginId": "cordova-plugin-x-socialsharing",
+ "clobbers": [
+ "window.plugins.socialsharing"
+ ]
+ },
+ {
+ "id": "ionic-plugin-keyboard.keyboard",
+ "file": "plugins/ionic-plugin-keyboard/www/ios/keyboard.js",
+ "pluginId": "ionic-plugin-keyboard",
+ "clobbers": [
+ "cordova.plugins.Keyboard"
+ ],
+ "runs": true
+ },
+ {
+ "id": "phonegap-plugin-push.PushNotification",
+ "file": "plugins/phonegap-plugin-push/www/push.js",
+ "pluginId": "phonegap-plugin-push",
+ "clobbers": [
+ "PushNotification"
+ ]
+ },
+ {
+ "id": "cordova-plugin-sim.Sim",
+ "file": "plugins/cordova-plugin-sim/www/sim.js",
+ "pluginId": "cordova-plugin-sim",
+ "merges": [
+ "window.plugins.sim"
+ ]
+ },
+ {
+ "id": "phonegap-plugin-mobile-accessibility.mobile-accessibility",
+ "file": "plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js",
+ "pluginId": "phonegap-plugin-mobile-accessibility",
+ "clobbers": [
+ "window.MobileAccessibility"
+ ]
+ },
+ {
+ "id": "phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications",
+ "file": "plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js",
+ "pluginId": "phonegap-plugin-mobile-accessibility",
+ "clobbers": [
+ "MobileAccessibilityNotifications"
+ ]
+ }
+ ],
+ "plugin_metadata": {
+ "cordova-plugin-app-name": "1.0.4",
+ "cordova-plugin-compat": "1.1.0",
+ "cordova-plugin-customurlscheme": "4.2.0",
+ "cordova-plugin-device": "1.1.3",
+ "cordova-plugin-dialogs": "1.3.0",
+ "cordova-plugin-geolocation": "2.4.0",
+ "cordova-plugin-inappbrowser": "1.5.0",
+ "cordova-plugin-network-information": "1.3.0",
+ "cordova-plugin-splashscreen": "4.0.3",
+ "cordova-plugin-statusbar": "2.2.3",
+ "cordova-plugin-whitelist": "1.3.0",
+ "cordova-plugin-x-socialsharing": "5.1.3",
+ "ionic-plugin-keyboard": "2.2.1",
+ "phonegap-plugin-push": "1.9.2",
+ "cordova-plugin-sim": "1.3.3",
+ "phonegap-plugin-mobile-accessibility": "1.0.5-dev"
}
- ],
- "plugin_metadata": {
- "cordova-plugin-app-name": "1.0.4",
- "cordova-plugin-compat": "1.1.0",
- "cordova-plugin-customurlscheme": "4.2.0",
- "cordova-plugin-device": "1.1.3",
- "cordova-plugin-dialogs": "1.3.0",
- "cordova-plugin-geolocation": "2.4.0",
- "cordova-plugin-inappbrowser": "1.5.0",
- "cordova-plugin-network-information": "1.3.0",
- "cordova-plugin-splashscreen": "4.0.3",
- "cordova-plugin-statusbar": "2.2.3",
- "cordova-plugin-whitelist": "1.3.0",
- "cordova-plugin-x-socialsharing": "5.1.3",
- "ionic-plugin-keyboard": "2.2.1",
- "phonegap-plugin-push": "1.9.2",
- "cordova-plugin-sim": "1.3.3"
- }
} \ No newline at end of file
diff --git a/StoneIsland/platforms/ios/platform_www/cordova_plugins.js b/StoneIsland/platforms/ios/platform_www/cordova_plugins.js
index 32af05ac..8469b08b 100644
--- a/StoneIsland/platforms/ios/platform_www/cordova_plugins.js
+++ b/StoneIsland/platforms/ios/platform_www/cordova_plugins.js
@@ -130,6 +130,22 @@ module.exports = [
"merges": [
"window.plugins.sim"
]
+ },
+ {
+ "id": "phonegap-plugin-mobile-accessibility.mobile-accessibility",
+ "file": "plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js",
+ "pluginId": "phonegap-plugin-mobile-accessibility",
+ "clobbers": [
+ "window.MobileAccessibility"
+ ]
+ },
+ {
+ "id": "phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications",
+ "file": "plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js",
+ "pluginId": "phonegap-plugin-mobile-accessibility",
+ "clobbers": [
+ "MobileAccessibilityNotifications"
+ ]
}
];
module.exports.metadata =
@@ -149,7 +165,8 @@ module.exports.metadata =
"cordova-plugin-x-socialsharing": "5.1.3",
"ionic-plugin-keyboard": "2.2.1",
"phonegap-plugin-push": "1.9.2",
- "cordova-plugin-sim": "1.3.3"
+ "cordova-plugin-sim": "1.3.3",
+ "phonegap-plugin-mobile-accessibility": "1.0.5-dev"
};
// BOTTOM OF METADATA
}); \ No newline at end of file
diff --git a/StoneIsland/platforms/ios/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js b/StoneIsland/platforms/ios/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js
new file mode 100644
index 00000000..f5d0aaf7
--- /dev/null
+++ b/StoneIsland/platforms/ios/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js
@@ -0,0 +1,53 @@
+cordova.define("phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications", function(require, exports, module) {
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+/**
+ * Mobile Accessibility Notification event constants
+ */
+module.exports = {
+ /* MobileAccessibility window events */
+ SCREEN_READER_STATUS_CHANGED : "screenreaderstatuschanged",
+ CLOSED_CAPTIONING_STATUS_CHANGED : "closedcaptioningstatuschanged",
+ GUIDED_ACCESS_STATUS_CHANGED : "guidedaccessstatuschanged",
+ INVERT_COLORS_STATUS_CHANGED : "invertcolorsstatuschanged",
+ MONO_AUDIO_STATUS_CHANGED : "monoaudiostatuschanged",
+ REDUCE_MOTION_STATUS_CHANGED : "reducemotionstatuschanged",
+ TOUCH_EXPLORATION_STATUS_CHANGED : "touchexplorationstatechanged",
+ BOLD_TEXT_STATUS_CHANGED : "boldtextstatuschanged",
+ DARKER_SYSTEM_COLORS_STATUS_CHANGED : "darkersystemcolorsstatuschanged",
+ GRAYSCALE_STATUS_CHANGED : "grayscalestatuschanged",
+ REDUCE_TRANSPARENCY_STATUS_CHANGED : "reducetransparencystatuschanged",
+ SPEAK_SCREEN_STATUS_CHANGED : "speakscreenstatuschanged",
+ SPEAK_SELECTION_STATUS_CHANGED : "speakselectionstatuschanged",
+ SWITCH_CONTROL_STATUS_CHANGED : "switchcontrolstatuschanged",
+
+ /* iOS specific UIAccessibilityNotifications */
+ SCREEN_CHANGED : 1000,
+ LAYOUT_CHANGED : 1001,
+ ANNOUNCEMENT : 1008,
+ PAGE_SCROLLED : 1009,
+
+ /* Windows specific high contrast event */
+ HIGH_CONTRAST_CHANGED : "highcontrastchanged"
+};
+
+});
diff --git a/StoneIsland/platforms/ios/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js b/StoneIsland/platforms/ios/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js
new file mode 100644
index 00000000..852b8d34
--- /dev/null
+++ b/StoneIsland/platforms/ios/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js
@@ -0,0 +1,502 @@
+cordova.define("phonegap-plugin-mobile-accessibility.mobile-accessibility", function(require, exports, module) {
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+var argscheck = require('cordova/argscheck'),
+ utils = require('cordova/utils'),
+ exec = require('cordova/exec'),
+ device = require('cordova-plugin-device.device'),
+ network = require('cordova-plugin-network-information.network'),
+ connection = require('cordova-plugin-network-information.Connection'),
+ MobileAccessibilityNotifications = require('phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications');
+
+var MobileAccessibility = function() {
+ this._isBoldTextEnabled = false;
+ this._isClosedCaptioningEnabled = false;
+ this._isDarkerSystemColorsEnabled = false;
+ this._isGrayscaleEnabled = false;
+ this._isGuidedAccessEnabled = false;
+ this._isInvertColorsEnabled = false;
+ this._isMonoAudioEnabled = false;
+ this._isReduceMotionEnabled = false;
+ this._isReduceTransparencyEnabled = false;
+ this._isScreenReaderRunning = false;
+ this._isSpeakScreenEnabled = false;
+ this._isSpeakSelectionEnabled = false;
+ this._isSwitchControlRunning = false;
+ this._isTouchExplorationEnabled = false;
+ this._usePreferredTextZoom = false;
+ this._isHighContrastEnabled = false;
+ this._highContrastScheme = undefined;
+
+ // Create new event handlers on the window (returns a channel instance)
+ this.channels = {
+ boldtextstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.BOLD_TEXT_STATUS_CHANGED),
+ closedcaptioningstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.CLOSED_CAPTIONING_STATUS_CHANGED),
+ darkersystemcolorsstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.DARKER_SYSTEM_COLORS_STATUS_CHANGED),
+ grayscalestatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.GRAYSCALE_STATUS_CHANGED),
+ guidedaccessstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.GUIDED_ACCESS_STATUS_CHANGED),
+ invertcolorsstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.INVERT_COLORS_STATUS_CHANGED),
+ monoaudiostatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.MONO_AUDIO_STATUS_CHANGED),
+ reducemotionstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.REDUCE_MOTION_STATUS_CHANGED),
+ reducetransparencystatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.REDUCE_TRANSPARENCY_STATUS_CHANGED),
+ screenreaderstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SCREEN_READER_STATUS_CHANGED),
+ speakscreenstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SPEAK_SCREEN_STATUS_CHANGED),
+ speakselectionstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SPEAK_SELECTION_STATUS_CHANGED),
+ switchcontrolstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SWITCH_CONTROL_STATUS_CHANGED),
+ touchexplorationstatechanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.TOUCH_EXPLORATION_STATUS_CHANGED),
+ highcontrastchanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.HIGH_CONTRAST_CHANGED)
+ };
+ for (var key in this.channels) {
+ this.channels[key].onHasSubscribersChange = MobileAccessibility.onHasSubscribersChange;
+ }
+};
+
+/**
+ * @private
+ * @ignore
+ */
+function handlers() {
+ return mobileAccessibility.channels.boldtextstatuschanged.numHandlers +
+ mobileAccessibility.channels.closedcaptioningstatuschanged.numHandlers +
+ mobileAccessibility.channels.darkersystemcolorsstatuschanged.numHandlers +
+ mobileAccessibility.channels.grayscalestatuschanged.numHandlers +
+ mobileAccessibility.channels.guidedaccessstatuschanged.numHandlers +
+ mobileAccessibility.channels.invertcolorsstatuschanged.numHandlers +
+ mobileAccessibility.channels.monoaudiostatuschanged.numHandlers +
+ mobileAccessibility.channels.reducemotionstatuschanged.numHandlers +
+ mobileAccessibility.channels.reducetransparencystatuschanged.numHandlers +
+ mobileAccessibility.channels.screenreaderstatuschanged.numHandlers +
+ mobileAccessibility.channels.speakscreenstatuschanged.numHandlers +
+ mobileAccessibility.channels.speakselectionstatuschanged.numHandlers +
+ mobileAccessibility.channels.switchcontrolstatuschanged.numHandlers +
+ mobileAccessibility.channels.touchexplorationstatechanged.numHandlers +
+ mobileAccessibility.channels.highcontrastchanged.numHandlers;
+};
+
+/**
+ *
+ * Event handlers for when callback methods get registered for mobileAccessibility.
+ * Keep track of how many handlers we have so we can start and stop the native MobileAccessibility listener
+ * appropriately.
+ * @private
+ * @ignore
+ */
+MobileAccessibility.onHasSubscribersChange = function() {
+ // If we just registered the first handler, make sure native listener is started.
+ if (this.numHandlers === 1 && handlers() === 1) {
+ exec(mobileAccessibility._status, mobileAccessibility._error, "MobileAccessibility", "start", []);
+ } else if (handlers() === 0) {
+ exec(null, null, "MobileAccessibility", "stop", []);
+ }
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility determine if a screen reader is running.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isScreenReaderRunning = function(callback) {
+ exec(function(bool) {
+ mobileAccessibility.activateOrDeactivateChromeVox(bool);
+ callback(Boolean(bool));
+ }, null, "MobileAccessibility", "isScreenReaderRunning", []);
+};
+MobileAccessibility.prototype.isVoiceOverRunning = function(callback) {
+ if (device.platform.toLowerCase() === "ios") {
+ MobileAccessibility.prototype.isScreenReaderRunning(callback);
+ } else {
+ callback(false);
+ }
+};
+MobileAccessibility.prototype.isTalkBackRunning = function(callback) {
+ if (device.platform.toLowerCase() === "android" || device.platform.toLowerCase() === "amazon-fireos") {
+ MobileAccessibility.prototype.isScreenReaderRunning(callback);
+ } else {
+ callback(false);
+ }
+};
+MobileAccessibility.prototype.isChromeVoxActive = function () {
+ return typeof cvox !== "undefined" && cvox.ChromeVox.host.ttsLoaded() && cvox.Api.isChromeVoxActive();
+};
+MobileAccessibility.prototype.activateOrDeactivateChromeVox = function(bool) {
+ if (device.platform !== "Android") return;
+ if (typeof cvox === "undefined") {
+ if (bool) {
+ console.warn('A screen reader is running but ChromeVox has failed to initialize.');
+ if (navigator.connection.type === Connection.UNKNOWN || navigator.connection.type === Connection.NONE) {
+ mobileAccessibility.injectLocalAndroidVoxScript();
+ }
+ }
+ } else {
+ // activate or deactivate ChromeVox based on whether or not or not the screen reader is running.
+ try {
+ cvox.ChromeVox.host.activateOrDeactivateChromeVox(bool);
+ } catch (err) {
+ console.error(err);
+ }
+ }
+
+ if (bool) {
+ if (!mobileAccessibility.hasOrientationChangeListener) {
+ window.addEventListener("orientationchange", mobileAccessibility.onOrientationChange);
+ mobileAccessibility.hasOrientationChangeListener = true;
+ }
+ } else if(mobileAccessibility.hasOrientationChangeListener) {
+ window.removeEventListener("orientationchange", mobileAccessibility.onOrientationChange);
+ mobileAccessibility.hasOrientationChangeListener = false;
+ }
+};
+
+MobileAccessibility.prototype.hasOrientationChangeListener = false;
+MobileAccessibility.prototype.onOrientationChange = function(event) {
+ if (!mobileAccessibility.isChromeVoxActive()) return;
+ cvox.ChromeVox.navigationManager.updateIndicator();
+};
+
+MobileAccessibility.prototype.scriptInjected = false;
+MobileAccessibility.prototype.injectLocalAndroidVoxScript = function() {
+ var versionsplit = device.version.split('.');
+ if (device.platform !== "Android" ||
+ !(versionsplit[0] > 4 || (versionsplit[0] == 4 && versionsplit[1] >= 1)) ||
+ typeof cvox !== "undefined" || mobileAccessibility.scriptInjected) return;
+ var script = document.createElement('script');
+ script.type = 'text/javascript';
+ script.async = true;
+ script.onload = function(){
+ // console.log(this.src + ' has loaded');
+ if (mobileAccessibility.isChromeVoxActive()) {
+ cordova.fireWindowEvent("screenreaderstatuschanged", {
+ isScreenReaderRunning: true
+ });
+ }
+ };
+
+ script.src = (versionsplit[0] > 4 || versionsplit[1] > 3)
+ ? "plugins/com.phonegap.plugin.mobile-accessibility/android/chromeandroidvox.js"
+ : "plugins/com.phonegap.plugin.mobile-accessibility/android/AndroidVox_v1.js";
+ document.getElementsByTagName('head')[0].appendChild(script);
+ mobileAccessibility.scriptInjected = true;
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Bold Text is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isBoldTextEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isBoldTextEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Closed Captioning is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isClosedCaptioningEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isClosedCaptioningEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Darker System Colors are enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isDarkerSystemColorsEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isDarkerSystemColorsEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Grayscale is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isGrayscaleEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isGrayscaleEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Guided Access is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isGuidedAccessEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isGuidedAccessEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if the display colors have been inverted.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isInvertColorsEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isInvertColorsEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Mono Audio is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isMonoAudioEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isMonoAudioEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Reduce Motion is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isReduceMotionEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isReduceMotionEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Reduce Transparency is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isReduceTransparencyEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isReduceTransparencyEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Speak Screen is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isSpeakScreenEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isSpeakScreenEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Speak Selection is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isSpeakSelectionEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isSpeakSelectionEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Switch Control is running.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isSwitchControlRunning = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isSwitchControlRunning", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Touch Exploration is enabled on Android.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isTouchExplorationEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isTouchExplorationEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if High Contrast is enabled on Windows.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isHighContrastEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isHighContrastEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to return the current text zoom percent value for the WebView.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.getTextZoom = function(callback) {
+ exec(callback, null, "MobileAccessibility", "getTextZoom", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to set the current text zoom percent value for the WebView.
+ * @param {Number} textZoom A percentage value by which text in the WebView should be scaled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.setTextZoom = function(textZoom, callback) {
+ exec(callback, null, "MobileAccessibility", "setTextZoom", [textZoom]);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to retrieve the user's preferred text zoom from system settings and apply it to the application WebView.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.updateTextZoom = function(callback) {
+ exec(callback, null, "MobileAccessibility", "updateTextZoom", []);
+};
+
+MobileAccessibility.prototype.usePreferredTextZoom = function(bool) {
+ var currentValue = window.localStorage.getItem("MobileAccessibility.usePreferredTextZoom") === "true";
+
+ if (arguments.length === 0) {
+ return currentValue;
+ }
+
+ if (currentValue != bool) {
+ window.localStorage.setItem("MobileAccessibility.usePreferredTextZoom", bool);
+ }
+
+ var callback = function(){
+ // Wrapping updateTextZoom call in a function to stop
+ // the event parameter propagation. This fixes an error
+ // on resume where cordova tried to call apply() on the
+ // event, expecting a function.
+ mobileAccessibility.updateTextZoom();
+ };
+
+ document.removeEventListener("resume", callback);
+
+ if (bool) {
+ // console.log("We should update the text zoom at this point: " + bool)
+ document.addEventListener("resume", callback, false);
+ mobileAccessibility.updateTextZoom();
+ } else {
+ mobileAccessibility.setTextZoom(100);
+ }
+
+ return Boolean(bool);
+};
+
+MobileAccessibility.prototype.MobileAccessibilityNotifications = MobileAccessibilityNotifications;
+
+/**
+ * Posts a notification with a string for a screen reader to announce, if it is running.
+ * @param {uint} mobileAccessibilityNotification A numeric constant for the type of notification to send. Constants are defined in MobileAccessibility.MobileAccessibilityNotifications.
+ * @param {string} string A string to be announced by a screen reader.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility, when the announcement is finished, the function should expect an object containing the stringValue that was voiced and a boolean indicating that the announcement wasSuccessful.
+ */
+MobileAccessibility.prototype.postNotification = function(mobileAccessibilityNotification, string, callback) {
+ exec(callback, null, "MobileAccessibility", "postNotification", [mobileAccessibilityNotification, string]);
+};
+
+/**
+ * Speaks the given string, and if ChromeVox is active, it will use the specified queueMode and properties.
+ * @param {string} string A string to be announced by a screen reader.
+ * @param {number} [queueMode] Optional number. Valid modes are 0 for flush; 1 for queue.
+ * @param {Object} [properties] Speech properties to use for this utterance.
+ */
+MobileAccessibility.prototype.speak = function(string, queueMode, properties) {
+ if (this.isChromeVoxActive()) {
+ cvox.ChromeVox.tts.speak(string, queueMode, properties);
+ } else {
+ exec(null, null, "MobileAccessibility", "postNotification", [MobileAccessibilityNotifications.ANNOUNCEMENT, string]);
+ }
+}
+
+/**
+ * Stops speech.
+ */
+MobileAccessibility.prototype.stop = function() {
+ if (this.isChromeVoxActive()) {
+ cvox.ChromeVox.tts.stop();
+ } else {
+ exec(null, null, "MobileAccessibility", "postNotification", [MobileAccessibilityNotifications.ANNOUNCEMENT, "\u200b"]);
+ }
+}
+
+/**
+ * Callback from native MobileAccessibility returning an object which describes the status of MobileAccessibility features.
+ *
+ * @param {Object} info
+ * @config {Boolean} [isBoldTextEnabled] Boolean to indicate bold text status (ios).
+ * @config {Boolean} [isClosedCaptioningEnabled] Boolean to indicate closed captioning status.
+ * @config {Boolean} [isDarkerSystemColorsEnabled] Boolean to indicate darker system colors status (ios).
+ * @config {Boolean} [isGrayscaleEnabled] Boolean to indicate grayscale status (ios).
+ * @config {Boolean} [isGuidedAccessEnabled] Boolean to indicate guided access status (ios).
+ * @config {Boolean} [isInvertColorsEnabled] Boolean to indicate invert colors status (ios).
+ * @config {Boolean} [isMonoAudioEnabled] Boolean to indicate mono audio status (ios).
+ * @config {Boolean} [isReduceMotionEnabled] Boolean to indicate reduce motion status (ios).
+ * @config {Boolean} [isReduceTransparencyEnabled] Boolean to indicate reduce transparency status (ios).
+ * @config {Boolean} [isScreenReaderRunning] Boolean to indicate screen reader status.
+ * @config {Boolean} [isSpeakScreenEnabled] Boolean to indicate speak screen status (ios).
+ * @config {Boolean} [isSpeakSelectionEnabled] Boolean to indicate speak selection status (ios).
+ * @config {Boolean} [isSwitchControlRunning] Boolean to indicate switch control status (ios).
+ * @config {Boolean} [isTouchExplorationEnabled] Boolean to indicate touch exploration status (android).
+ */
+MobileAccessibility.prototype._status = function(info) {
+ if (info) {
+ mobileAccessibility.activateOrDeactivateChromeVox(info.isScreenReaderRunning);
+ if (mobileAccessibility._isBoldTextEnabled !== info.isBoldTextEnabled) {
+ mobileAccessibility._isBoldTextEnabled = info.isBoldTextEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.BOLD_TEXT_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isClosedCaptioningEnabled !== info.isClosedCaptioningEnabled) {
+ mobileAccessibility._isClosedCaptioningEnabled = info.isClosedCaptioningEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.CLOSED_CAPTIONING_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isDarkerSystemColorsEnabled !== info.isDarkerSystemColorsEnabled) {
+ mobileAccessibility._isDarkerSystemColorsEnabled = info.isDarkerSystemColorsEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.DARKER_SYSTEM_COLORS_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isGrayscaleEnabled !== info.isGrayscaleEnabled) {
+ mobileAccessibility._isGrayscaleEnabled = info.isGrayscaleEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.GRAYSCALE_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isGuidedAccessEnabled !== info.isGuidedAccessEnabled) {
+ mobileAccessibility._isGuidedAccessEnabled = info.isGuidedAccessEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.GUIDED_ACCESS_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isInvertColorsEnabled !== info.isInvertColorsEnabled) {
+ mobileAccessibility._isInvertColorsEnabled = info.isInvertColorsEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.INVERT_COLORS_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isMonoAudioEnabled !== info.isMonoAudioEnabled) {
+ mobileAccessibility._isMonoAudioEnabled = info.isMonoAudioEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.MONO_AUDIO_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isReduceMotionEnabled !== info.isReduceMotionEnabled) {
+ mobileAccessibility._isReduceMotionEnabled = info.isReduceMotionEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.REDUCE_MOTION_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isReduceTransparencyEnabled !== info.isReduceTransparencyEnabled) {
+ mobileAccessibility._isReduceTransparencyEnabled = info.isReduceTransparencyEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.REDUCE_TRANSPARENCY_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isScreenReaderRunning !== info.isScreenReaderRunning) {
+ mobileAccessibility._isScreenReaderRunning = info.isScreenReaderRunning;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.SCREEN_READER_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isSpeakScreenEnabled !== info.isSpeakScreenEnabled) {
+ mobileAccessibility._isSpeakScreenEnabled = info.isSpeakScreenEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.SPEAK_SCREEN_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isSpeakSelectionEnabled !== info.isSpeakSelectionEnabled) {
+ mobileAccessibility._isSpeakSelectionEnabled = info.isSpeakSelectionEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.SPEAK_SELECTION_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isSwitchControlRunning !== info.isSwitchControlRunning) {
+ mobileAccessibility._isSwitchControlRunning = info.isSwitchControlRunning;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.SWITCH_CONTROL_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isTouchExplorationEnabled !== info.isTouchExplorationEnabled) {
+ mobileAccessibility._isTouchExplorationEnabled = info.isTouchExplorationEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.TOUCH_EXPLORATION_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isHighContrastEnabled !== info.isHighContrastEnabled) {
+ mobileAccessibility._isHighContrastEnabled = info.isHighContrastEnabled;
+ mobileAccessibility._highContrastScheme = info.highContrastScheme;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.HIGH_CONTRAST_CHANGED, info);
+ }
+ }
+};
+
+/**
+ * Error callback for MobileAccessibility start
+ */
+MobileAccessibility.prototype._error = function(e) {
+ console.log("Error initializing MobileAccessibility: " + e);
+};
+
+var mobileAccessibility = new MobileAccessibility();
+
+module.exports = mobileAccessibility;
+
+});
diff --git a/StoneIsland/platforms/ios/www/cordova_plugins.js b/StoneIsland/platforms/ios/www/cordova_plugins.js
index 32af05ac..8469b08b 100644
--- a/StoneIsland/platforms/ios/www/cordova_plugins.js
+++ b/StoneIsland/platforms/ios/www/cordova_plugins.js
@@ -130,6 +130,22 @@ module.exports = [
"merges": [
"window.plugins.sim"
]
+ },
+ {
+ "id": "phonegap-plugin-mobile-accessibility.mobile-accessibility",
+ "file": "plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js",
+ "pluginId": "phonegap-plugin-mobile-accessibility",
+ "clobbers": [
+ "window.MobileAccessibility"
+ ]
+ },
+ {
+ "id": "phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications",
+ "file": "plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js",
+ "pluginId": "phonegap-plugin-mobile-accessibility",
+ "clobbers": [
+ "MobileAccessibilityNotifications"
+ ]
}
];
module.exports.metadata =
@@ -149,7 +165,8 @@ module.exports.metadata =
"cordova-plugin-x-socialsharing": "5.1.3",
"ionic-plugin-keyboard": "2.2.1",
"phonegap-plugin-push": "1.9.2",
- "cordova-plugin-sim": "1.3.3"
+ "cordova-plugin-sim": "1.3.3",
+ "phonegap-plugin-mobile-accessibility": "1.0.5-dev"
};
// BOTTOM OF METADATA
}); \ No newline at end of file
diff --git a/StoneIsland/platforms/ios/www/css/account.css b/StoneIsland/platforms/ios/www/css/account.css
index 32c7df79..12adb2d9 100755
--- a/StoneIsland/platforms/ios/www/css/account.css
+++ b/StoneIsland/platforms/ios/www/css/account.css
@@ -67,7 +67,7 @@
content:'';
width:calc(100% + 100px);
height:1px;
- background:#bbb;
+ background:#666;
position:absolute;
bottom:0;
left:-50px;
@@ -77,7 +77,7 @@
position:relative;
font-weight:bold;
letter-spacing:0.2px;
- font-size:11px;
+ font-size: 0.688rem;
margin-bottom:10px;
width:100%;
box-sizing:border-box;
@@ -122,26 +122,37 @@
text-align: center;
margin: 0;
padding: 20px 10px 8px 10px;
- font-size: 14px;
+ font-size: 1rem;
color: #000;
letter-spacing: 1px;
font-weight: bold;
}
+label {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+ font-size: 1rem;
+ color: #000;
+ letter-spacing:1px;
+ text-transform:uppercase;
+ height: 48px;
+}
input[type=text], input[type=password], input[type=number], input[type=date], input[type=email] {
font-family:pfd, sans-serif;
- font-size:14px;
+ font-size: 0.875rem;
outline:none!important;
color:#000;
letter-spacing:1px;
text-transform:uppercase;
- height:35px;
+ height: 48px;
text-align:center;
margin: 0px auto;
display:block;
- margin-top:4px;
+ margin-top: 0px;
width: calc(100vw - 10px);
- border:1px solid #a9a9a9;
+ border:1px solid #696969;
padding: 0;
border-radius: 0;
}
@@ -149,27 +160,35 @@ input[type=text], input[type=password], input[type=number], input[type=date], in
input[type=text], input[type=password], input[type=number], input[type=email] {
-webkit-appearance: none;
}
-
+input[type=text]:focus, input[type=password]:focus, input[type=number]:focus, input[type=email] {
+ border-width: 2px;
+}
.half-input {
margin: 0px auto;
- display: block;
+ display: flex;
+ flex-direction: row;
+ justify-content: flex-start;
+ align-items: center;
margin-top: 4px;
width: calc(100vw - 10px);
overflow: auto;
}
+.half-input label {
+ width: 50%;
+}
.half-input input, .half-input select {
position: relative;
margin: 0;
border:none;
box-sizing: border-box;
float: left;
- border: 1px solid #a9a9a9;
+ border: 1px solid #696969;
width: 50%;
}
.half-input > input:first-child {
- border-right: 1px solid #a9a9a9;
+ border-right: 1px solid #696969;
}
#signup .toggle-container, #profile .toggle-container {
@@ -179,7 +198,7 @@ input[type=text], input[type=password], input[type=number], input[type=email] {
width: calc(100vw - 10px);
box-sizing: border-box;
padding:0px 18px 2px;
- font-size:14px;
+ font-size: 1rem;
}
#settings .toggle-container {
@@ -189,7 +208,7 @@ input[type=text], input[type=password], input[type=number], input[type=email] {
width: calc(100vw - 10px);
box-sizing: border-box;
padding:10px 18px 2px;
- font-size:14px;
+ font-size: 1rem;
}
.toggle-row {
@@ -296,10 +315,12 @@ input.switch:checked + label:after {
.container-fill {
min-height:80px;
+ display: flex;
flex: 1;
align-items: center;
justify-content: center;
position:relative;
+ flex-direction: column;
}
.container-fill-condensed {
@@ -317,26 +338,27 @@ input.switch:checked + label:after {
width:calc(100vw - 10px);
box-sizing:border-box;
margin:10px auto 0;
- position:relative
+ position:relative;
}
.container-row .container-message-condensed {
margin: 2px auto!important
}
.container-fill .container-message {
- font-size:12px;
+ font-size: 0.875rem;
letter-spacing:0.5px;
text-align:center;
- position:absolute;
- top:50%;
- left:50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
width:100%;
- -webkit-transform: translateX(-50%) translateY(-50%);
- transform: translateX(-50%) translateY(-50%);
+ min-height: 48px;
color:#000;
}
-
+.billing-container a {
+ text-decoration: none;
+}
.premessage {
top:calc(50% - 20px)!important;
@@ -351,7 +373,7 @@ input.switch:checked + label:after {
}
.checkbox-container {
- font-size:11px;
+ font-size: 0.875rem;
width:calc(100vw - 10px);
display:table;
box-sizing:border-box;
@@ -381,6 +403,7 @@ input.switch:checked + label:after {
vertical-align:middle;
display:table-cell;
box-sizing:border-box;
+ text-align: left;
}
.billing-container .checkbox-caption {
@@ -442,10 +465,6 @@ input.switch:checked + label:after {
}
.privacy-msg {
- left: 50%;
- display: inline-block;
- position: relative;
- transform: translateX(-50%);
padding-top: 15px;
padding-bottom: 80px;
}
@@ -458,51 +477,55 @@ input.switch:checked + label:after {
text-align: center;
overflow: hidden;
- font-size: 14px;
+ font-size: 0.875rem;
outline: none !important;
color: #000;
letter-spacing: 1px;
text-transform: uppercase;
- height: 35px;
+ height: 48px;
text-align: center;
margin: 0px auto;
display: block;
margin-top: 4px;
width: calc(100vw - 10px);
- border: 1px solid #a9a9a9;
+ border: 1px solid #696969;
}
.date-wrapper span {
display: block;
}
.half-input .select-wrapper {
+ display: flex;
+ align-items: center;
+ justify-content: center;
width: 50%;
border: 0;
margin-top: 0px;
float: left;
box-sizing: border-box;
- border: 1px solid #a9a9a9;
+ border: 1px solid #696969;
+}
+.half-input .select-wrapper:nth-child(2) {
border-left: 0px;
}
.half-input .select-wrapper span {
- top: 8px;
color: #aaa;
+ top: 0;
}
.select-wrapper [type=date] {
opacity: 0;
width: 100%;
- height: 35px;
- line-height: 35px;
+ height: 48px;
+ line-height: 48px;
position: absolute;
top: -5px;
left: -1px;
- width: 1px; height: 1px;
}
.select-wrapper select {
opacity: 0;
width: 100%;
- height: 35px;
- line-height: 35px;
+ height: 48px;
+ line-height: 48px;
position: absolute;
top: 0; left: 0;
box-sizing: border-box;
@@ -512,8 +535,8 @@ input.switch:checked + label:after {
}
.select-wrapper span {
position: relative;
- top: 8px;
- color: #888;
+ top: 15px;
+ color: #666;
}
.select-wrapper.picked span {
color: #000;
@@ -521,33 +544,29 @@ input.switch:checked + label:after {
.country-wrapper-static {
text-align: center;
- color: #a9a9a9;
+ color: #696969;
border: 1px solid;
- padding-top: 9px;
- font-size: 14px;
- height: 35px;
+ border-left: 0;
+ font-size: 0.875rem;
+ height: 48px;
box-sizing: border-box;
-}
-
-.container-row input:first-child {
-margin-top:10px
+ width: 50%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
}
.container-row .half-input input {
margin-top:0px
}
-#login .container-row input:first-child {
-margin-bottom:9px!important
-}
-
.newuser {
display:inline-block;
- padding:14px;
+ padding:18px;
text-decoration:underline
}
.forgotpassword {
- padding:14px;
+ padding:18px;
text-decoration:underline
} \ No newline at end of file
diff --git a/StoneIsland/platforms/ios/www/css/blogs.css b/StoneIsland/platforms/ios/www/css/blogs.css
index bf5ab68f..2d4a52c3 100755
--- a/StoneIsland/platforms/ios/www/css/blogs.css
+++ b/StoneIsland/platforms/ios/www/css/blogs.css
@@ -6,17 +6,22 @@
margin: 15px 0 0;
text-align: center;
text-transform:uppercase;
+ display:flex;
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
+ flex-wrap: wrap;
}
#story .links li {
- padding: 10px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ height: 48px;
+ padding: 0 8px;
list-style-type: none;
- display: inline-block;
-}
-#story .links li:before {
- content: ' | ',
-}
-#story .links li:first-child:before {
- content: '',
+ font-size: 1rem;
+ border: 1px solid black;
+ margin: 5px;
}
#story .links li.active {
font-weight: bold;
@@ -57,7 +62,7 @@ animation: mfadein 0.6s;
#hub .content .body, #story .content .body {
letter-spacing:0.35px;
- font-size:12px;
+ font-size: 1rem;
width:calc(100vw - 40px);
box-sizing:border-box;
margin:10px auto 20px;
@@ -65,7 +70,7 @@ animation: mfadein 0.6s;
}
#hub .content .body:last-child {
- margin:10px auto 100px;
+ margin:20px auto 100px;
}
#story .content .body:last-child {
@@ -85,14 +90,14 @@ animation: mfadein 0.6s;
.content-header .title, .content-header .subtitle {
display:block;
font-weight:bold;
- font-size:14px;
+ font-size: 1rem;
text-transform:uppercase
}
.content-header .title {
margin:0;
padding:0;
- line-height:13px;
+ line-height:1.4em;
}
.content-header .subtitle {
@@ -101,12 +106,17 @@ animation: mfadein 0.6s;
.content-share {
border:1px solid black;
- padding:4px 8px 2px;
+ padding: 0 12px;
+ height: 48px;
+ font-size: 1rem;
+ display: flex;
+ justify-content: center;
+ align-items: center;
float:right
}
.content-header span.date, .content-header span.store {
- font-size:10px;
+ font-size: 1rem;
}
/* NOTE: optional arrows */
@@ -118,19 +128,18 @@ animation: mfadein 0.6s;
background-size:5px 10px;
background-repeat:no-repeat;
background-position:center;
- width:15px;
- height:30px;
+ width:24px;
+ height:48px;
top:26vh;
content:'';
transform:translateY(-50%);
transform-origin:top right;
left:20px;
- font-size:18px;
+ font-size: 1.125rem;
padding:3px 3px 3px 1px;
z-index:2;
position:absolute;
display:block;
- animation: gallery-fade 4s forwards;
}
.gallery-right {
border:1px solid black;
@@ -139,19 +148,18 @@ animation: mfadein 0.6s;
background-size:5px 10px;
background-repeat:no-repeat;
background-position:center;
- width:15px;
- height:30px;
+ width:24px;
+ height:48px;
top:26vh;
content:'';
transform:translateY(-50%);
transform-origin:top right;
right:20px;
- font-size:18px;
+ font-size: 1.125rem;
padding:3px 1px 3px 3px;
z-index:2;
position:absolute;
display:block;
- animation: gallery-fade 4s forwards;
}
@-webkit-keyframes gallery-fade {
@@ -183,7 +191,7 @@ animation: mfadein 0.6s;
transform:scale(1,.5) translateY(-50%);
transform-origin:bottom right;
content:'\25BC';
- font-size:17px;
+ font-size: 1.063rem;
padding:9px 11px;
z-index:999;
position:absolute;
@@ -205,11 +213,11 @@ ul.links {
}
.archive h1 {
- font-size:26px;
+ font-size: 1.625rem;
border-bottom:0;
- margin-top:8px;
+ margin-top: 8px;
padding-bottom:0;
- line-height:24px;
+ line-height: 1;
}
.archive .subtitle {
@@ -220,20 +228,20 @@ ul.links {
margin:0 0 12px;
padding:0;
font-weight:bold;
- font-size:14px;
+ font-size: 1rem;
}
.archive h2 {
- font-size: 25px;
+ font-size: 1.563rem;
font-weight: normal;
}
.archive h2 b {
- font-size: 28px;
+ font-size: 1.75rem;
}
.archive .body {
- font-size: 14px;
- line-height: 1.2em;
+ font-size: 0.875rem;
+ line-height: 1.4rem;
font-weight: 100;
}
@@ -252,6 +260,13 @@ ul.links {
transform: translateZ(0) translateX(-50%) translateY(-50%);
}
+.accessible #archive .row .image,
+.accessible #archive .row .text {
+ position: relative;
+ top: auto; left: auto;
+ transform: translateZ(0);
+}
+
#archive .menu .items {
border-top: 1px solid transparent;
}
@@ -278,11 +293,14 @@ ul.links {
}
#archive .menu .item {
width: 100%;
- text-align: center;
+ display: flex;
+ justify-content: center;
+ align-items: center;
border-bottom: 1px solid black;
background: white;
- padding:12px 0;
- font-size:14px;
+ padding:0;
+ height: 48px;
+ font-size: 1rem;
letter-spacing:0.7px
}
@@ -318,6 +336,17 @@ ul.links {
#archive .row .text {
width: 80%;
}
+.accessible #archive .row .image {
+ display: block;
+ height: 50vh;
+ opacity: 1 !important;
+}
+.accessible #archive .row .text {
+ display: block;
+ margin: 0 auto;
+ opacity: 1 !important;
+ width: 90%;
+}
.gallery-video-post {
position:relative;
diff --git a/StoneIsland/platforms/ios/www/css/cart.css b/StoneIsland/platforms/ios/www/css/cart.css
index 7619a82b..36a446a7 100755
--- a/StoneIsland/platforms/ios/www/css/cart.css
+++ b/StoneIsland/platforms/ios/www/css/cart.css
@@ -6,20 +6,24 @@
#cart .steps {
width: 100%;
- border-bottom: 1px solid #bbb;
+ border-bottom: 1px solid #666;
font-size: 0;
+ display: flex;
+ flex-direction: row;
}
#cart .steps span {
- display: inline-block;
- font-size: 13px;
+ display: flex;
+ font-size: 1rem;
text-align: center;
- padding: 11px 0 10px;
- color: #bbb;
+ color: #666;
width: 33%;
position:relative;
+ height: 48px;
+ justify-content: center;
+ align-items: center;
}
.summary_step, .shipping_step {
- border-right: 1px solid #bbb
+ border-right: 1px solid #666;
}
#cart.summary .summary_step,
@@ -95,7 +99,7 @@
min-height:50px;
max-width: 50%;
text-align: center;
- font-size: 18px;
+ font-size: 1.125rem;
}
.summary-container {
@@ -109,7 +113,11 @@
#cart h3 {
padding-left: 5px;
- font-size:12px;
+ height: 48px;
+ display: flex;
+ justify-content: flex-start;
+ align-items: center;
+ font-size: 1rem;
}
.cart_item_row {
@@ -153,9 +161,9 @@ padding-left:5px;
.cart_item_price .remove {
display:block;
-width:20px;
-height:20px;
-border:1px solid #d2d2d2;
+width:48px;
+height:48px;
+border:1px solid #b2b2b2;
float:right;
margin-bottom:10px;
position:relative;
@@ -164,8 +172,8 @@ position:relative;
.cart_item_price .remove:after {
content:'';
width:1px;
-height:22px;
-background:#bbb;
+height:48px;
+background:#333;
position:absolute;
top:50%;
left:50%;
@@ -177,8 +185,8 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%)
.cart_item_price .remove:before {
content:'';
width:1px;
- height:22px;
- background:#bbb;
+ height:48px;
+ background:#333;
position:absolute;
top:50%;
left:50%;
@@ -188,27 +196,27 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%)
}
.cart_item_price .price {
- font-size:11px;
+ font-size: 1rem;
font-weight:bold;
display:block
}
.cart_item_info .sku {
- font-size:10px;
+ font-size: 1rem;
font-weight:bold;
- display:block
+ display:block;
}
.cart_item_info .title {
- font-size:10px;
+ font-size: 1rem;
font-weight:bold;
display:block;
- line-height:12px;
+ line-height:1.4em;
text-transform:uppercase;
}
.cart_item_info .type {
- font-size:10px;
+ font-size: 1rem;
font-weight:bold;
display:block;
text-transform:capitalize;
@@ -216,8 +224,8 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%)
.cart_item_info .meta {
padding-top:5px;
- letter-spacing:.75px;
- font-size:8px;
+ letter-spacing: 0.047rem;
+ font-size:0.875rem;
}
.order_section .rows {
@@ -229,7 +237,7 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%)
width:calc(100vw - 30px);
margin:15px auto;
text-decoration:underline;
- font-size:11px;
+ font-size: 0.688rem;
}
.order_section_container {
@@ -241,8 +249,8 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%)
width:calc(100vw - 30px);
margin:0 auto;
display:table;
- color:#bbb;
- font-size:11px;
+ color:#666;
+ font-size: 1rem;
}
.cart-summary-row {
@@ -274,7 +282,7 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%)
#orders .order_section {
padding-bottom: 16px;
- border-bottom: 1px solid #bbb;
+ border-bottom: 1px solid #666;
}
@@ -294,25 +302,30 @@ color:#000;
position:relative;
text-align:right;
width:calc(100vw - 10px);
- margin:0 auto;
+ margin:0 auto 20px 0;
box-sizing:border-box;
-
+ display: flex;
+ flex-direction: column;
}
.dropdown-wrapper .add_edit {
padding:10px;
letter-spacing:0.5px;
- font-size:12px;
+ font-size: 0.75rem;
color:#a9a9a9;
box-sizing:border-box;
}
.dropdown-wrapper .dropdown {
- font-size:14px;
+ font-size: 1rem;
box-sizing:border-box;
+ display: flex;
+ justify-content: center;
align-items: center;
text-align: center;
- padding:10px 0;
+ height: 48px;
+ margin-left: 3px;
+ padding:0;
border:1px solid #a9a9a9;
position:relative;
}
@@ -355,6 +368,9 @@ color:#000;
margin-left:5px;
margin-bottom:6px;
}
+#cart .cc_confirm h3 {
+ justify-content: center
+}
#cart_shipping input:first-child {
margin-top:10px
diff --git a/StoneIsland/platforms/ios/www/css/index.css b/StoneIsland/platforms/ios/www/css/index.css
index 4d8e5514..88022823 100755
--- a/StoneIsland/platforms/ios/www/css/index.css
+++ b/StoneIsland/platforms/ios/www/css/index.css
@@ -17,9 +17,12 @@ body {
-webkit-user-select: none; /* prevent copy paste, to allow, change 'none' to 'text' */
background: #fff;
font-family: pfd, sans-serif;
- font-size: 12px;
+ font-size: 0.875rem;
padding-top: constant(safe-area-inset-top);
}
+a, a:visited {
+ color: #000;
+}
.loader {
z-index: 2;
@@ -60,3 +63,15 @@ body {
color: red !important;
border-color: red !important;
}
+.error_hilite ~ span.err {
+ display: flex;
+}
+span.err {
+ display: none;
+ text-align: center;
+ justify-content: center;
+ align-items: center;
+ font-size: 0.875rem;
+ height: 48px;
+ color: red !important;
+}
diff --git a/StoneIsland/platforms/ios/www/css/nav.css b/StoneIsland/platforms/ios/www/css/nav.css
index b7002f20..f555ce99 100755
--- a/StoneIsland/platforms/ios/www/css/nav.css
+++ b/StoneIsland/platforms/ios/www/css/nav.css
@@ -35,7 +35,7 @@
}
#nav .menu span {
display: block;
- font-size: 14px;
+ font-size: 1rem;
letter-spacing:1.25px;
text-shadow:0px 0px 1px rgba(0,0,0,.2);
color: #000;
@@ -77,9 +77,9 @@
#nav .submenu span {
display: block;
- font-size: 14px;
+ font-size: 1rem;
letter-spacing:1.25px;
- color: #bbb;
+ color: #666;
padding: 4px 0 12px 20px
}
@@ -94,8 +94,8 @@
float: left;
width: 61px;
border-left: 1px solid #ddd;
- color: #bbb;
- font-size: 18px;
+ color: #666;
+ font-size: 1.125rem;
padding: 5px 0;
text-align: center;
}
@@ -137,11 +137,14 @@ padding-bottom:0px;
}
#intro div {
position: absolute;
- top: 50%; left: 50%;
+ top: 50%;
+ left: 50%;
width: 200px;
- padding: 50px;
- text-align: center;
- font-size: 17px;
+ height: 100px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 1.063rem;
}
#intro #compass {
pointer-events: none;
@@ -177,7 +180,7 @@ padding-bottom:0px;
box-sizing: border-box;
width: calc(100vw);
text-align: center;
- font-size: 14pt;
+ font-size: 0.875rem;
font-weight: bold;
line-height: 0;
text-transform: uppercase;
@@ -198,7 +201,7 @@ padding-bottom:0px;
display: block;
position: absolute;
top: 0; left: 0; width: 100%;
- height: 42px;
+ height: 48px;
border-bottom: 1px solid black;
}
#header .logo {
@@ -207,43 +210,43 @@ padding-bottom:0px;
background-position: center center;
position: absolute;
background-size: contain;
- width: 100px; height: 40px;
- left: 50%; top: -4px;
+ width: 100px; height: 48px;
+ left: 50%; top: -3px;
margin-left: -50px;
top:0px;
}
#header .burger {
display: inline-block;
font-size: 24px;
- padding: 9px 10px 5px;
+ padding: 12px 13px 7px;
}
#header .cart_rapper {
- display: inline-block;
+ display: flex;
+ justify-content: center;
+ align-items: flex-end;
position: relative;
float: right;
- width: 40px; height: 40px;
+ width: 44px; height: 48px;
}
#header .cart {
position: relative;
- float: right;
width: 18px;
- top: 15px;
+ margin-bottom: 10px;
height: 18px;
- margin-right: 18px;
background: #fff;
background-image:url(../img/cart-box.png);
background-size:100%;
background-repeat:no-repeat;
}
-.cart .cart_count {
+#header .cart .cart_count {
position: absolute;
top: 50%;
left: 50%;
transform: translateY(-50%) translateX(-50%);
- color: #bbb;
- font-size:12.35px;
+ color: #666;
+ font-size: 12.35px;
}
#header .cart::before {
@@ -273,12 +276,16 @@ padding-bottom:0px;
}
#footer div {
width: 50%;
+ height: 48px;
text-align: center;
- padding: 10px 0;
color: #000;
float: left;
- font-size:14px;
+ font-size: 1rem;
font-weight:bold;
+ padding: 0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
}
#footer .ok {
color: #000;
@@ -287,7 +294,7 @@ padding-bottom:0px;
width: 100%;
}
#footer .ok.disabled {
- color: #bbb;
+ color: #666;
}
@@ -300,8 +307,10 @@ padding-bottom:0px;
width: 100%; height: 100%;
background: rgba(255,255,255,0.8);
opacity: 0;
- -webkit-transition: opacity 0.2s;
- transition: opacity 0.2s;
+ -webkit-transition: opacity 0.2s, -webkit-transform 0.2s;
+ transition: opacity 0.2s, transform 0.2s;
+ -webkit-transform: translateZ(0) translateX(0);
+ transform: translateZ(0) translateX(0);
}
#curtain.visible {
pointer-events: auto;
@@ -346,13 +355,14 @@ padding-bottom:0px;
#consent_modal {
display: none;
z-index: 2;
+ font-size: 1rem;
}
#consent_modal a {
color: black;
}
.modal button {
font-family: pfd, sans-serif;
- font-size: 12px;
+ font-size: 0.875rem;
padding: 10px;
box-sizing: border-box;
margin: 0;
@@ -400,9 +410,9 @@ padding-bottom:0px;
#selector:not(.selector-outer-wrap) .options div {
background: white;
text-align: center;
- padding: 7px 12px;
+ padding: 12px 12px;
box-sizing:border-box;
- font-size: 14px;
+ font-size: 0.875rem;
border-left:1px solid black;
border-right:1px solid black;
border-top:1px solid black;
@@ -437,7 +447,7 @@ padding-bottom:0px;
background: white;
text-align: center;
padding: 7px 12px;
- font-size:14px!important;
+ font-size: 0.875rem!important;
}
.selector-outer-wrap .options div:nth-of-type(odd){
@@ -462,28 +472,31 @@ padding-bottom:0px;
#cart,
#profile, #shipping, #payment, #settings, #orders {
position: absolute;
- top: 43px;
- height: -webkit-calc(100% - 43px - 39px);
- height: calc(100% - 43px - 39px);
+ top: 49px;
+ height: -webkit-calc(100% - 49px - 39px);
+ height: calc(100% - 49px - 39px);
width: 100%;
overflow: hidden;
}
#collection.single {
- height: -webkit-calc(100% - 43px);
- height: calc(100% - 43px);
+ height: -webkit-calc(100% - 49px);
+ height: calc(100% - 49px);
}
#story, #hub, #archive, .page, #closed {
/* these things do not have a footer */
- height: -webkit-calc(100% - 43px);
- height: calc(100% - 43px);
+ height: -webkit-calc(100% - 49px);
+ height: calc(100% - 49px);
}
h1 {
text-align: center;
margin: 0;
- padding: 16px 10px 12px 10px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
border-bottom: 1px solid #000;
- font-size: 14px;
+ height: 48px;
+ font-size: 1rem;
color: #000;
letter-spacing: 1px;
font-weight: bold;
diff --git a/StoneIsland/platforms/ios/www/css/products.css b/StoneIsland/platforms/ios/www/css/products.css
index 59bb403f..63e9b020 100755
--- a/StoneIsland/platforms/ios/www/css/products.css
+++ b/StoneIsland/platforms/ios/www/css/products.css
@@ -103,7 +103,7 @@
}
.product .product-header {
- font-size:14px;
+ font-size: 1rem;
margin:18px 0 0;
max-width:60%;
position:relative;
@@ -118,7 +118,7 @@
margin-bottom: 18px;
font-weight: bold;
text-align: center;
- font-size: 17px;
+ font-size: 1.063rem;
}
.product-group:first-child {
margin-top: 0;
@@ -136,33 +136,49 @@
}
.product .style {
- padding:4px 9px;
+ padding: 0;
border:1px solid black;
float:left
}
.product .share {
float:right;
- padding:4px 9px;
+ padding: 0 12px;
+ height: 48px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
border:1px solid black;
}
.product .type {
display:table-cell;
- font-size:14px;
+ font-size: 1rem;
}
-.product .size {
- padding-right:16px;
+.product .size-color {
+ display: flex;
+ flex-direction: row;
+}
+.product .size-color span {
position:relative;
- box-sizing:border-box
+ box-sizing:border-box;
+ padding: 0 12px;
+ height: 48px;
+ font-size: 1rem;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+.product .size-color span.size {
+ border-right: 1px solid #444;
}
.product .price {
display:table-cell;
- font-size:14px;
+ font-size: 1rem;
text-align:right;
- vertical-align:bottom
+ vertical-align:bottom;
}
.product .price, .product .type {
@@ -179,12 +195,12 @@
.style-share {
letter-spacing:0.5px;
- font-size:12.35px
+ font-size: 1rem;
}
.size-color {
position:relative;
- font-size:12.35px
+ font-size: 1rem;
}
.type-price, .style-share {
@@ -194,7 +210,7 @@
}
-.size::after {
+/*.size::after {
content: '';
display: inline-block;
width: 1px;
@@ -205,12 +221,12 @@
right:5px;
background: #999;
}
-
+*/
.product .fit,
.product .notAvailableInCanada {
clear:both;
- font-size:9px;
+ font-size: 0.563rem;
letter-spacing:0.5px;
text-decoration:underline;
text-transform:uppercase;
@@ -218,7 +234,7 @@
}
.product .fitHeader {
clear:both;
- font-size:9px;
+ font-size: 0.563rem;
letter-spacing:0.5px;
text-decoration: none;
text-transform:uppercase;
@@ -232,7 +248,8 @@
#product .content .body {
letter-spacing:0.35px;
- font-size:12px;
+ font-size: 1rem;
+ line-height: 1.4em;
box-sizing:border-box;
margin:0px auto 20px;
clear:both;
diff --git a/StoneIsland/platforms/ios/www/css/vendor/flickity.css b/StoneIsland/platforms/ios/www/css/vendor/flickity.css
index b8eca4e4..99a09e72 100755
--- a/StoneIsland/platforms/ios/www/css/vendor/flickity.css
+++ b/StoneIsland/platforms/ios/www/css/vendor/flickity.css
@@ -105,7 +105,7 @@ http://flickity.metafizzy.co
/* color & size if no SVG - IE8 and Android 2.3 */
.flickity-prev-next-button.no-svg {
color: #333;
- font-size: 26px;
+ font-size: 1.625rem;
}
/* ---- page dots ---- */
diff --git a/StoneIsland/platforms/ios/www/index.html b/StoneIsland/platforms/ios/www/index.html
index b6fc8317..c46e37c3 100755
--- a/StoneIsland/platforms/ios/www/index.html
+++ b/StoneIsland/platforms/ios/www/index.html
@@ -28,103 +28,97 @@
<link rel="stylesheet" type="text/css" href="css/blogs.css">
<title>Stone Island</title>
</head>
-<body class="loading">
+<body class="loading" role="application">
-<div id="nav">
+<div id="nav" role="directory">
<div id="nav-container">
<div id="nav-row">
<!-- flex -->
- <span class="menu">
- <div class="logo"></div>
- <div class="main_menu">
- <span class="store">STORE</span>
- <span class="hub">HUB</span>
- <span class="story">STORY</span>
- <span class="archive">ARCHIVE</span>
+ <span role="menu" class="menu">
+ <div class="logo" aria-label="Stone Island"></div>
+ <div role="menu" aria-label="Main Menu" class="main_menu">
+ <span role="menuitem" class="store">STORE</span>
+ <span role="menuitem" class="hub">HUB</span>
+ <span role="menuitem" class="story">STORY</span>
+ <span role="menuitem" class="archive">ARCHIVE</span>
</div>
- <div class="account_menu">
- <span class="account_back menu-emphasis">&lt; MY ACCOUNT</span>
- <span class="profile">MY PROFILE</span>
- <span class="payment">MY CARD</span>
- <span class="shipping">ADDRESS BOOK</span>
- <span class="orders">MY ORDERS</span>
- <span class="return_link">RETURNS</span>
- <span class="settings">NOTIFICATIONS</span>
+ <div role="menu" aria-label="Account Menu" class="account_menu">
+ <span role="menuitem" class="account_back menu-emphasis">&lt; MY ACCOUNT</span>
+ <span role="menuitem" class="profile">MY PROFILE</span>
+ <span role="menuitem" class="payment">MY CARD</span>
+ <span role="menuitem" class="shipping">ADDRESS BOOK</span>
+ <span role="menuitem" class="orders">MY ORDERS</span>
+ <span role="menuitem" class="return_link_us">RETURNS (US)</span>
+ <span role="menuitem" class="return_link_ca">RETURNS (CANADA)</span>
+ <span role="menuitem" class="settings">NOTIFICATIONS</span>
</div>
- <div class="faq_menu">
- <span class="faq_back menu-emphasis">&lt; FAQ</span>
- <span class="privacy">PRIVACY POLICY</span>
- <span class="account_terms">MY ACCOUNT TERMS AND CONDITIONS OF USE</span>
- <span class="terms">TERMS AND CONDITIONS</span>
- <span class="returns">RETURN POLICY</span>
- <span class="care">CUSTOMER CARE</span>
+ <div role="menu" aria-label="FAQ Menu" class="faq_menu">
+ <span role="menuitem" class="faq_back menu-emphasis">&lt; FAQ</span>
+ <span role="menuitem" class="privacy">PRIVACY POLICY</span>
+ <span role="menuitem" class="account_terms">MY ACCOUNT TERMS AND CONDITIONS OF USE</span>
+ <span role="menuitem" class="terms">TERMS AND CONDITIONS</span>
+ <span role="menuitem" class="returns">RETURN POLICY</span>
+ <span role="menuitem" class="care">CUSTOMER CARE</span>
</div>
</span>
</div>
<div id="nav-fill">
<!-- flex fill -->
- <span class="submenu">
+ <span role="menu" class="submenu">
<div class="main_menu">
- <span class="account">MY ACCOUNT</span>
- <span class="login">LOGIN</span>
- <span class="faq">FAQ</span>
+ <span role="menuitem" class="account">MY ACCOUNT</span>
+ <span role="menuitem" class="login">LOGIN</span>
+ <span role="menuitem" class="faq">FAQ</span>
</div>
<div class="account_menu">
- <span class="logout">LOGOUT</span>
- <span class="faq">FAQ</span>
- <span class="main">MAIN MENU</span>
+ <span role="menuitem" class="logout">LOGOUT</span>
+ <span role="menuitem" class="faq">FAQ</span>
+ <span role="menuitem" class="main">MAIN MENU</span>
</div>
<div class="faq_menu">
- <span class="account">MY ACCOUNT</span>
- <span class="login">LOGIN</span>
- <span class="logout">LOGOUT</span>
- <span class="main">MAIN MENU</span>
+ <span role="menuitem" class="account">MY ACCOUNT</span>
+ <span role="menuitem" class="login">LOGIN</span>
+ <span role="menuitem" class="logout">LOGOUT</span>
+ <span role="menuitem" class="main">MAIN MENU</span>
</div>
</span>
</div>
<!-- end flex -->
</div>
- <span class="social">
- <span class="fb ion-social-facebook"></span>
- <span class="insta ion-social-instagram-outline"></span>
- <span class="tw ion-social-twitter"></span>
- <span class="yt ion-social-youtube"></span>
+ <span class="social" role="list" aria-label="Social Links">
+ <span role="menuitem" class="fb ion-social-facebook"></span>
+ <span role="menuitem" class="insta ion-social-instagram-outline"></span>
+ <span role="menuitem" class="tw ion-social-twitter"></span>
+ <span role="menuitem" class="yt ion-social-youtube"></span>
</span>
</div>
<div id="content">
- <div id="intro">
+ <div id="intro" role="menu" aria-label="Stone Island Home Screen">
<div id="compass"></div>
- <div class="store">STORE</div>
- <div class="hub">HUB</div>
- <div class="story">STORY</div>
- <div class="archive">ARCHIVE</div>
+ <div role="menuitem" class="store">STORE</div>
+ <div role="menuitem" class="hub">HUB</div>
+ <div role="menuitem" class="story">STORY</div>
+ <div role="menuitem" class="archive">ARCHIVE</div>
<div class="alert"></div>
- <span class="latlng">+40&deg; 58' 90.9" N&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;74&deg; 04' 46.3" W</span>
+ <span class="latlng" role="note" aria-label="Your Latitude and Longitude">+40&deg; 58' 90.9" N&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;74&deg; 04' 46.3" W</span>
</div>
- <div id="header">
- <span class="burger ion-android-menu"></span>
- <span class="logo"></span>
- <span class="cart_rapper"><span class="cart"><span class="cart_count">0</span></span></span>
- </div>
-
- <div id="footer">
- <!-- 'Cancel' i think needs to go BACK in the navigation.. rather than jumping to the home screen -->
- <div class="cancel">CANCEL</div>
- <div class="ok">OK</div>
+ <div id="header" role="menubar" aria-label="Menu bar">
+ <span role="menu" aria-label="Show main menu" class="burger ion-android-menu"></span>
+ <span role="link" aria-label="Homepage. Stone Island logo" class="logo"></span>
+ <span role="link" aria-label="View cart" class="cart_rapper"><span class="cart"><span role="display" class="cart_count">0</span></span></span>
</div>
-
<!-- BLOGS ================================================ -->
- <div id="story">
+ <div id="story" role="region" aria-label="Stone Island Story">
<div class="scroll">
- <h1>STORY</h1>
+ <h1 aria-label="Current section: Stone Island Story">STORY</h1>
<img>
<ul class="links"></ul>
<div class="content">
@@ -137,21 +131,21 @@
</div>
</div>
- <div id="hub">
+ <div id="hub" role="region" aria-label="Stone Island Hub">
<div class="scroll">
- <h1>HUB</h1>
+ <h1 aria-label="Current section: Stone Island Hub">HUB</h1>
<div class="content">
<script type="text/html" class="template">
<div class="hub_item" data-id="{{id}}">
- <div class="gallery gallery-{{id}}"></div>
- <div class="gallery-left"></div>
- <div class="gallery-right"></div>
- <div class="content-header">
- <div class="content-share">
- SHARE +
+ <div class="gallery gallery-{{id}}" role="carousel"></div>
+ <div role="button" class="gallery-left"></div>
+ <div role="button" class="gallery-right"></div>
+ <div role="heading" class="content-header">
+ <div role="button" class="content-share">
+ SHARE +
</div>
- <span class="title">{{title}}</span>
- <span class="subtitle">{{subtitle}}</span>
+ <span role="heading" aria-details="{{cleantitle}}" class="title">{{title}}</span>
+ <span role="heading" aria-details="{{cleansubtitle}}"class="subtitle">{{subtitle}}</span>
<span class="date">
{{date}}
<span class="store">
@@ -167,7 +161,7 @@
<div class="fade-cover"></div>
</div>
- <div id="archive">
+ <div id="archive" role="region" aria-label="Stone Island Archive">
<div class="scroll">
<div class="content">
@@ -187,28 +181,29 @@
</div>
</div>
- <div class="menu">
+ <div class="menu" role="menu">
<div class="items">
<script type="text/html" class="template">
- <div class="item">{{title}}</div>
+ <div role="button" class="item">{{title}}</div>
</script>
</div>
</div>
<div class="heading">
- <h1>ARCHIVE</h1>
- <div class="subtitle">'982'015</div>
+ <h1 role="heading" aria-label="Current section: Stone Island Archive">ARCHIVE</h1>
+ <div role="heading" class="subtitle" aria-label="1982 to 2015">'982'015</div>
</div>
</div>
- <div id="privacy" class="page">
+ <div id="privacy" role="region" aria-label="Privacy Policy" class="page">
<div class="scroll">
- <h1>PRIVACY POLICY</h1>
+ <h1 aria-label="Current section: Privacy Policy">PRIVACY POLICY</h1>
<div class="content"></div>
</div>
</div>
- <div id="account_terms" class="page">
+
+ <div id="account_terms" role="region" aria-label="My Account Terms and Conditions of Use" class="page">
<div class="scroll">
- <h1>MY ACCOUNT TERMS AND CONDITIONS OF USE</h1>
+ <h1 aria-label="Current section: My Account terms and conditions of use">MY ACCOUNT TERMS AND CONDITIONS OF USE</h1>
<div class="content">
<h2>1. Services</h2>
<p>
@@ -261,21 +256,24 @@
</div>
</div>
</div>
- <div id="terms" class="page">
+
+ <div id="terms" role="region" aria-label="Terms and Conditions" class="page">
<div class="scroll">
- <h1>TERMS AND CONDITIONS</h1>
+ <h1 aria-label="Current section: Terms and conditions">TERMS AND CONDITIONS</h1>
<div class="content"></div>
</div>
</div>
- <div id="returns" class="page">
+
+ <div id="returns" role="region" aria-label="Return Policy" class="page">
<div class="scroll">
- <h1>RETURN POLICY</h1>
+ <h1 aria-label="Current section: Return policy">RETURN POLICY</h1>
<div class="content"></div>
</div>
</div>
- <div id="care" class="page">
+
+ <div id="care" role="region" aria-label="Customer Care" class="page">
<div class="scroll">
- <h1>CUSTOMER CARE</h1>
+ <h1 aria-label="Current section: Customer care">CUSTOMER CARE</h1>
<div class="content"></div>
</div>
</div>
@@ -283,42 +281,42 @@
<!-- STORE ================================================ -->
- <div id="collection">
+ <div id="collection" role="region" aria-label="Store">
<div class="scroll">
- <h1>LOADING...</h1>
+ <h1 aria-label="Current section: Store">LOADING...</h1>
<div class="loader"></div>
<div class="content">
<script type="text/html" class="template">
- <div class="item" data-code="{{code8}}">
- <img src="{{image}}">
+ <div role="link" class="item" data-code="{{code8}}">
+ <img src="{{image}}" alt="{{title}}">
</div>
</script>
</div>
</div>
</div>
- <div id="search">
+ <div id="search" role="search" aria-label="Search">
<div class="scroll">
- <h1>SEARCH</h1>
+ <h1 aria-label="Current section: Search">SEARCH</h1>
<div class="form">
<input type="text" class="q" placeholder="ENTER YOUR SEARCH">
</div>
</div>
</div>
- <div id="product">
+ <div id="product" role="region" aria-label="Product view">
<div class="scroll">
<div class="loader"></div>
- <div id="gallery" class="gallery">
+ <div id="gallery" class="gallery" role="carousel">
<script type="text/html" class="template">
- <div class="item" style="background-image:url({{image}})"></div>
+ <div role="link" class="item" aria-label="{{alt}}" style="background-image:url({{image}})"></div>
</script>
</div>
- <div class="gallery-left"></div>
- <div class="gallery-right"></div>
+ <div role="button" class="gallery-left" aria-label="Scroll gallery left"></div>
+ <div role="button" class="gallery-right" aria-label="Scroll gallery right"></div>
<div class="content">
<div class="product-header">
- <span class="title"></span>
+ <span role="heading" class="title"></span>
</div>
<div class="type-price">
<span class="type"></span>
@@ -327,11 +325,11 @@
<div class="style-share">
<span class="style">
<div class="size-color">
- <span class="size"></span>
- <span class="color"></span>
+ <span role="button" class="size" aria-label="Tap to select size. Current size"></span>
+ <span role="button" class="color" aria-label="Tap to select color. Current color"></span>
</div>
</span>
- <span class="share">SHARE +</span>
+ <span role="button" class="share">SHARE +</span>
</div>
<div class="fit">Fits Large</div>
<div class='fitHeader'></div>
@@ -347,14 +345,14 @@
</div>
</div>
- <div id="closed">
+ <div id="closed" role="region" aria-label="The store is closed">
<div class="closed_store_msg">
<h3>
LOADING THE STORE, PLEASE WAIT
</h3>
<h4>
</h4>
- <div class="website_link">
+ <div role="link" class="website_link">
visit<br>
<b>www.stoneisland.com</b>
</div>
@@ -364,33 +362,38 @@
<!-- ACCOUNT ================================================ -->
- <div id="login">
+ <div id="login" role="region" aria-label="Log In">
<div class="scroll">
- <h1>LOGIN</h1>
+ <h1 aria-label="Current section: Log In">LOGIN</h1>
<div class="form">
<div class="container">
<div class="container-row">
- <input type="email" name="Email" placeholder="EMAIL ADDRESS" required tabindex="1">
- <form><input type="password" name="Password" placeholder="PASSWORD" required tabindex="2"></form>
+ <label for="login_email_address">Email Address</label>
+ <input type="email" id="login_email_address" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="1">
+ <span class='err'></span>
+
+ <label for="login_password">Password</label>
+ <form><input type="password" id="login_password" name="Password" aria-placeholder="PASSWORD" required tabindex="2"></form>
+ <span class='err'></span>
</div>
<div class="container-fill">
<div class="container-message premessage">
- <div class="newuser">New User?</div>
- <div class="forgotpassword">Forgot Password?</div>
+ <div rel="link" class="newuser">New User?</div>
+ <div rel="link" class="forgotpassword">Forgot Password?</div>
</div>
<div class="container-message submessage">
<span class="msg"></span>
</div>
</div>
</div>
- <input type="submit" style="position: absolute; left: -9999px; width: 1px; height: 1px;">
+ <input type="submit" aria-label="Submit form" style="position: absolute; left: -9999px; width: 1px; height: 1px;">
</div>
</div>
</div>
- <div id="logout">
+ <div id="logout" role="region" aria-label="You are now logged out">
<div class="scroll">
- <h1>LOGOUT</h1>
+ <h1 aria-label="Current section: You are now Logged Out">LOGOUT</h1>
<div class="container">
<div class="container-fill">
<span class="container-message msg">
@@ -401,52 +404,71 @@
</div>
</div>
- <div id="signup">
+ <div id="signup" role="region" aria-label="New User. Create an account">
<div class="scroll">
- <h1>NEW USER</h1>
+ <h1 aria-label="Current section: New User. Create an account">NEW USER</h1>
<div class="form">
<div class="container">
<div class="container-row">
- <input type="text" name="Name" placeholder="FIRST NAME" required tabindex="1">
- <input type="text" name="Surname" placeholder="LAST NAME" required tabindex="2">
- <input type="email" name="Email" placeholder="EMAIL ADDRESS" required tabindex="3">
- <input type="email" name="ConfirmEmail" placeholder="CONFIRM EMAIL ADDRESS" required tabindex="4">
+ <label for="signup_name">First Name</label>
+ <input type="text" id="signup_name" name="Name" aria-placeholder="FIRST NAME" required tabindex="1">
+ <span class='err'></span>
+
+ <label for="signup_surname">Last Name</label>
+ <input type="text" id="signup_surname" name="Surname" aria-placeholder="LAST NAME" required tabindex="2">
+ <span class='err'></span>
+
+ <label for="signup_email">Email Address</label>
+ <input type="email" id="signup_email" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="3">
+ <span class='err'></span>
+
+ <label for="signup_confirmemail">Confirm Email Address</label>
+ <input type="email" id="signup_confirmemail" name="ConfirmEmail" aria-placeholder="CONFIRM EMAIL ADDRESS" required tabindex="4">
+ <span class='err'></span>
+
+ <label for="signup_birthday">Birthday (MM/DD/YYYY)</label>
<div class="select-wrapper date-wrapper">
- <span>BIRTHDAY (MM/DD/YYYY)</span>
- <input type="date" name="BirthDay" min="1900-01-01" placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="5">
+ <span></span>
+ <input type="date" id="signup_birthday" name="BirthDay" aria-label="Birthday" min="1900-01-01" aria-placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="5">
</div>
+ <span class='err'></span>
<h2>PASSWORD</h2>
- <input type="password" name="Password" placeholder="PASSWORD (7 CHARACTERS OR MORE)" required tabindex="6">
- <input type="password" name="Password2" placeholder="CONFIRM PASSWORD" required tabindex="7">
+ <label for="signup_password">Password (7 Characters or more)</label>
+ <input type="password" id="signup_password" name="Password" aria-placeholder="PASSWORD (7 CHARACTERS OR MORE)" required tabindex="6">
+ <span class='err'></span>
+
+ <label for="signup_confirm_password">Confirm Password</label>
+ <input type="password" id="signup_confirm_password" name="Password2" aria-placeholder="CONFIRM PASSWORD" required tabindex="7">
+ <span class='err'></span>
</div>
<div class="container-row">
- <div class="checkbox-container ">
+ <div class="checkbox-container">
<div class="checkbox-row">
<div class="checkbox-toggle">
- <input type="checkbox" id="checkbox-data-profiling" name="YooxLetter" value="true" required tabindex="8">
+ <input type="checkbox" id="checkbox-data-profiling" aria-labelledby="checkbox-data-profiling-label" name="YooxLetter" value="true" required tabindex="8">
<label for="checkbox-data-profiling"></label>
</div>
- <label class="checkbox-caption" for="checkbox-data-profiling">
+ <label class="checkbox-caption" for="checkbox-data-profiling" id="checkbox-data-profiling-label">
I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION FOR MARKETING PURPOSES.
</label>
</div>
<div class="checkbox-row">
<div class="checkbox-toggle">
- <input type="checkbox" id="checkbox-shopping-data-profiling" name="DataProfiling" value="true" required tabindex="9">
+ <input type="checkbox" id="checkbox-shopping-data-profiling" aria-labelledby="checkbox-shopping-data-profiling-label" name="DataProfiling" value="true" required tabindex="9">
<label for="checkbox-shopping-data-profiling"></label>
</div>
- <label class="checkbox-caption" for="checkbox-shopping-data-profiling">
+ <label class="checkbox-caption" for="checkbox-shopping-data-profiling" id="checkbox-shopping-data-profiling-label">
I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION TO CUSTOMIZE MY SHOPPING EXPERIENCE BASED ON MY INTERESTS AND HABITS.
</label>
</div>
<div class="checkbox-row">
<div class="checkbox-toggle">
- <input type="checkbox" id="checkbox-shopping-account-terms" name="GdprTerms" value="true" required tabindex="10">
+ <input type="checkbox" id="checkbox-shopping-account-terms" aria-labelledby="checkbox-gdpr-terms-label" name="GdprTerms" value="true" required tabindex="10">
<label for="checkbox-shopping-data-profiling"></label>
</div>
- <label class="checkbox-caption" for="checkbox-shopping-account-terms">
+ <label class="checkbox-caption" for="checkbox-shopping-account-terms" id="checkbox-gdpr-terms-label">
I ACCEPT MY ACCOUNT TERMS AND CONDITIONS OF USE *
</label>
</div>
@@ -465,54 +487,71 @@
</div>
</div>
- <div id="profile">
+ <div id="profile" role="region" aria-label="My Profile">
<div class="scroll">
- <h1>MY PROFILE</h1>
+ <h1 aria-label="Current section: My Profile">MY PROFILE</h1>
<div class="form">
<div class="container">
<div class="container-row">
- <input type="text" name="Name" placeholder="FIRST NAME" required tabindex="1">
- <input type="text" name="Surname" placeholder="LAST NAME" required tabindex="2">
- <input type="email" name="Email" placeholder="EMAIL ADDRESS" required tabindex="3">
+ <label for="profile_name">First Name</label>
+ <input type="text" id="profile_name" name="Name" aria-placeholder="FIRST NAME" required tabindex="1">
+ <span class='err'></span>
+
+ <label for="profile_surname">Last Name</label>
+ <input type="text" id="profile_surname" name="Surname" aria-placeholder="LAST NAME" required tabindex="2">
+ <span class='err'></span>
+
+ <label for="profile_email">Email Address</label>
+ <input type="email" id="profile_email" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="3">
+ <span class='err'></span>
+
+ <label for="profile_birthday">Birthday (MM/DD/YYYY)</label>
<div class="select-wrapper date-wrapper">
- <span>BIRTHDAY (MM/DD/YYYY)</span>
- <input type="date" name="BirthDay" min="1900-01-01" placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="4">
+ <span></span>
+ <input type="date" id="profile_birthday" name="BirthDay" aria-label="Birthday" min="1900-01-01" aria-placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="5">
</div>
+ <span class='err'></span>
<h2>CHANGE PASSWORD</h2>
- <input type="password" name="CurrentPassword" placeholder="CURRENT PASSWORD" required>
- <input type="password" name="NewPassword" placeholder="NEW PASSWORD (7 CHARACTERS OR MORE)" required tabindex="5">
- <div class="container-fill container-fill-condensed">
- <div class="container-message container-message-condensed">
- <span class="msg msg-condensed">
- </span>
- </div>
+ <label for="profile_password">Current Password</label>
+ <input type="password" id="profile_password" name="CurrentPassword" aria-placeholder="CURRENT PASSWORD" required tabindex="6">
+ <span class='err'></span>
+
+ <label for="profile_confirm_password">New Password (7 characters or more)</label>
+ <input type="password" id="profile_confirm_password" name="NewPassword" aria-placeholder="NEW PASSWORD (7 CHARACTERS OR MORE)" required tabindex="7">
+ <span class='err'></span>
+ </div>
+
+ <div class="container-fill container-fill-condensed">
+ <div class="container-message container-message-condensed">
+ <span class="msg msg-condensed">
+ </span>
</div>
- <div class="container-row">
- <div class="checkbox-container">
- <div class="checkbox-row">
- <div class="checkbox-toggle">
- <input type="checkbox" id="checkbox-data-profiling-profile" name="YooxLetter" value="true" required tabindex="7">
- <label for="checkbox-data-profiling-profile"></label>
- </div>
- <label class="checkbox-caption" for="checkbox-data-profiling-profile">
- I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION FOR MARKETING PURPOSES.
- </label>
- </div>
- <div class="checkbox-row">
- <div class="checkbox-toggle">
- <input type="checkbox" id="checkbox-shopping-data-profiling-profile" name="DataProfiling" value="true" required tabindex="8">
- <label for="checkbox-shopping-data-profiling-profile"></label>
- </div>
- <label class="checkbox-caption" for="checkbox-shopping-data-profiling-profile">
- I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION TO CUSTOMIZE MY SHOPPING EXPERIENCE BASED ON MY INTERESTS AND HABITS.
- </label>
+ </div>
+ <div class="container-row">
+ <div class="checkbox-container">
+ <div class="checkbox-row">
+ <div class="checkbox-toggle">
+ <input type="checkbox" id="checkbox-data-profiling-profile" aria-labelledby="yoox-letter-checkbox" name="YooxLetter" value="true" required tabindex="7">
+ <label for="checkbox-data-profiling-profile"></label>
</div>
- <div class="privacy-msg">
- Personal data will be electronically processed by SPORTSWEAR COMPANY and YOOX NET-A-PORTER GROUP in order to complete your request. Please note that you are responsible for third party data that you disclose to SPORTSWEAR COMPANY and YOOX NET-A-PORTER GROUP.
- <br>
- Consult our <a href="#/page/privacy">PRIVACY POLICY</a> for further information.
+ <label class="checkbox-caption" for="checkbox-data-profiling-profile" id="yoox-letter-checkbox">
+ I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION FOR MARKETING PURPOSES.
+ </label>
+ </div>
+ <div class="checkbox-row">
+ <div class="checkbox-toggle">
+ <input type="checkbox" id="checkbox-shopping-data-profiling-profile" aria-labelledby="yoox-data-profiling-checkbox" name="DataProfiling" value="true" required tabindex="8">
+ <label for="checkbox-shopping-data-profiling-profile"></label>
</div>
+ <label class="checkbox-caption" for="checkbox-shopping-data-profiling-profile" id="yoox-data-profiling-checkbox">
+ I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION TO CUSTOMIZE MY SHOPPING EXPERIENCE BASED ON MY INTERESTS AND HABITS.
+ </label>
+ </div>
+ <div class="privacy-msg">
+ Personal data will be electronically processed by SPORTSWEAR COMPANY and YOOX NET-A-PORTER GROUP in order to complete your request. Please note that you are responsible for third party data that you disclose to SPORTSWEAR COMPANY and YOOX NET-A-PORTER GROUP.
+ <br>
+ Consult our <a href="#/page/privacy">PRIVACY POLICY</a> for further information.
</div>
</div>
</div>
@@ -520,11 +559,10 @@
</div>
</div>
</div>
-
- <div id="shipping">
+ <div id="shipping" role="region" aria-label="Address Book">
<div class="scroll">
- <h1>ADDRESS BOOK</h1>
+ <h1 aria-label="Current section: Your address book">ADDRESS BOOK</h1>
<div class="form">
<div class="container">
<div class="container-row">
@@ -537,7 +575,7 @@
information will always remain private
</span>
</div>
- <div class="privacy-msg">
+ <div rel="link" class="privacy-msg">
Consult our <u>PRIVACY POLICY</u> for further information.
</div>
</div>
@@ -546,9 +584,9 @@
</div>
</div>
- <div id="payment">
+ <div id="payment" role="region" aria-label="My Card">
<div class="scroll">
- <h1>MY CARD</h1>
+ <h1 aria-label="Current section: My Card">MY CARD</h1>
<div class="form">
<div class="container">
<div class="container-row">
@@ -562,7 +600,7 @@
information will always remain private
</span>
</div>
- <div class="privacy-msg">
+ <div rel="link" class="privacy-msg">
Consult our <u>PRIVACY POLICY</u> for further information.
</div>
</div>
@@ -571,9 +609,9 @@
</div>
</div>
- <div id="settings">
+ <div id="settings" role="region" aria-label="Notifications">
<div class="scroll">
- <h1>NOTIFICATIONS</h1>
+ <h1 aria-label="Current section: Notifications">NOTIFICATIONS</h1>
<div class="form">
<div class="toggle-container">
<div class="toggle-row">
@@ -582,7 +620,7 @@
Receive notifications for Store
</div>
<div class="toggle">
- <input type="checkbox" id="store-notifications" name="store" class="switch">
+ <input type="checkbox" aria-label="Receive notifications for Store" id="store-notifications" name="store" class="switch">
<label for="store-notifications"></label>
</div>
</div>
@@ -592,7 +630,7 @@
Receive notifications for Hub
</div>
<div class="toggle">
- <input type="checkbox" id="hub-notifications" name="hub" class="switch">
+ <input type="checkbox" aria-label="Receive notifications for Hub" id="hub-notifications" name="hub" class="switch">
<label for="hub-notifications"></label>
</div>
</div>
@@ -601,9 +639,9 @@
</div>
</div>
- <div id="orders">
+ <div id="orders" role="region" aria-label="My Orders">
<div class="scroll">
- <h1>MY ORDERS</h1>
+ <h1 aria-label="Current section: My orders">MY ORDERS</h1>
<div id="order_list">
<div class="list"></div>
<div class="empty">You have no orders.</div>
@@ -681,12 +719,12 @@
<!-- CART ================================================ -->
- <div id="cart">
- <h1>
- <span class="full_msg">
+ <div id="cart" role="region" aria-label="Your Cart">
+ <h1 role="presentation">
+ <span class="full_msg" role="heading" aria-label="Current section: Your cart">
YOUR CART / <span class="itemcount"></span>
</span>
- <span class="empty_msg">
+ <span class="empty_msg" role="heading" aria-label="Current section: Your cart is empty">
YOUR CART IS EMPTY
</span>
</h1>
@@ -694,10 +732,10 @@
<div class="steps">
<span class="summary_step">SUMMARY</span>
<span class="shipping_step">SHIPPING</span>
- <span class="payment_step">BILLING</span>
+ <span class="payment_step">PAYMENT</span>
</div>
- <div id="cart_summary">
+ <div id="cart_summary" role="region" aria-label="Cart Summary">
<div class="scroll">
<div class="summary-container container">
<div class="container-row">
@@ -705,20 +743,20 @@
<div class="rows">
<script type="text/html" class="template">
<div class="cart_item_image">
- <img src="{{image}}">
+ <a href="#/store/{{code8}}" aria-label="{{cleantitle}}"><img src="{{image}}"></a>
</div>
<div class="cart_item_info">
- <span class="sku">{{sku}}</span>
- <span class="title">{{title}}</span>
- <span class="type">{{type}}</span>
+ <span class="sku" aria-label="SKU">{{sku}}</span>
+ <span class="title" aria-label="Product name: {{cleantitle}}">{{title}}</span>
+ <span class="type" aria-label="Product type">{{type}}</span>
<div class="meta">
- <div class="meta-size"><b>SIZE:</b> {{size}}</div>
- <div class="meta-color"><b>COLOR:</b> {{color}}</div>
- <div class="meta-quantity"><b>QUANTITY:</b> {{quantity}}</div>
+ <div class="meta-size" aria-label="Size"><b>SIZE:</b> {{size}}</div>
+ <div class="meta-color" aria-label="Color"><b>COLOR:</b> {{color}}</div>
+ <div class="meta-quantity" aria-label="Quantity"><b>QUANTITY:</b> {{quantity}}</div>
</div>
</div>
<div class="cart_item_price">
- <span class="remove"></span>
+ <span class="remove" aria-label="Remove item from your cart. Item to be removed: {{cleantitle}}"></span>
<span class="price">{{price}}</span>
</div>
</script>
@@ -752,7 +790,7 @@
</div>
</div>
- <div id="cart_shipping">
+ <div id="cart_shipping" role="region" aria-label="Cart Shipping">
<div class="scroll">
<div class="form">
<div class="dropdown-wrapper">
@@ -810,9 +848,11 @@
information will always remain private
</span>
</div>
- <div class="privacy-msg">
- Consult our <u>PRIVACY POLICY</u> for further information.
- </div>
+ <a href="#/page/privacy">
+ <div class="privacy-msg">
+ Consult our <u>PRIVACY POLICY</u> for further information.
+ </div>
+ </a>
</div>
</div>
@@ -820,7 +860,7 @@
</div>
</div>
- <div id="cart_payment">
+ <div id="cart_payment" role="region" aria-label="Cart Payment">
<div class="scroll">
<div class="form">
@@ -877,7 +917,7 @@
<script type="text/html" class="cc_template">
<div class="checkbox-row">
<div class="checkbox-toggle">
- <input id="cc-checkbox-{{id}}" type="radio" name="CCId" value="{{id}}" {{checked}}>
+ <input id="cc-checkbox-{{id}}" aria-label="Select this credit card" type="radio" name="CCId" value="{{id}}" {{checked}}>
<label for="cc-checkbox-{{id}}"></label>
</div>
<label class="checkbox-caption" for="cc-checkbox-{{id}}">
@@ -903,20 +943,20 @@
information will always remain private
</span>
</div>
- <div class="privacy-msg">
- Consult our <u>PRIVACY POLICY</u> for further information.
- </div>
+ <a class='privacy-link'> href="#/page/privacy">
+ <div class="privacy-msg">
+ Consult our <u>PRIVACY POLICY</u> for further information.
+ </div>
+ </a>
</div>
</div>
- <br><br><br><br>
-
</div>
</div>
</div>
- <div id="cart_confirm">
+ <div id="cart_confirm" role="region" aria-label="Confirm your order">
<div class="scroll">
- <h1>CONFIRM</h1>
+ <h1 aria-label="Current section: Confirm your cart">CONFIRM</h1>
<div class="order_section">
<h2>ORDER SUMMARY</h2>
@@ -997,11 +1037,17 @@
</div>
+ <div id="footer" role="menubar" aria-label="Footer">
+ <!-- 'Cancel' i think needs to go BACK in the navigation.. rather than jumping to the home screen -->
+ <div role="button" class="cancel">CANCEL</div>
+ <div role="button" class="ok">OK</div>
+ </div>
+
<div id="curtain">
<div class="loader"></div>
</div>
- <div class="modal" id="consent_modal">
+ <div class="modal" id="consent_modal" role="modal" aria-label="Please accept the new terms">
YOUR MY ACCOUNT
<br><br>
We have improved the My Account Terms and Conditions of Use.
@@ -1017,6 +1063,7 @@
</label>
</div>
</div>
+ <br><br>
For more information, please consult our
<a href="#/page/privacy">Privacy Policy</a> or visit
<a href="#" id="care-link">Customer Care</a>.
@@ -1030,22 +1077,31 @@
</div>
<div id="selector">
- <div class="options">
+ <div class="options" role="select">
<script type="text/html" class="template">
- <div data-id="{{id}}">{{label}}</div>
+ <div aria-label="Pick {{label}}" data-id="{{id}}">{{label}}</div>
</script>
</div>
</div>
</div>
+<!-- Forms -->
+
<script type="text/html" id="creditcard_template">
- <input type="number" name="Number" placeholder="CREDIT CARD NUMBER" required>
+ <label for="creditcard_id_{{_id}}">Credit Card Number</label>
+ <input type="number" id="creditcard_id_{{_id}}" name="Number" aria-placeholder="CREDIT CARD NUMBER" required>
+ <span class='err'></span>
+
<div class="half-input">
+ <label for="cc_expiration_month_{{_id}}">EXPIRATION MONTH</label>
+ <label for="cc_expiration_year_{{_id}}">EXPIRATION YEAR</label>
+ </div>
+ <div class="half-input">
<div class="select-wrapper">
- <span>EXPIRATION MONTH</span>
- <select name="ExpirationMonth">
+ <span></span>
+ <select name="ExpirationMonth" id="cc_expiration_month_{{_id}}">
<option value="NONE">EXPIRATION MONTH</option>
<option value="01">01</option>
<option value="02">02</option>
@@ -1062,10 +1118,9 @@
</select>
</div>
<div class="select-wrapper">
- <span>EXPIRATION YEAR</span>
- <select name="ExpirationYear">
+ <span></span>
+ <select name="ExpirationYear" id="cc_expiration_year_{{_id}}">
<option value="NONE">EXPIRATION YEAR</option>
- <option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
<option value="2021">2021</option>
@@ -1081,25 +1136,50 @@
</select>
</div>
</div>
- <input type="number" name="Cvv" placeholder="SECURITY CODE" required>
+ <label for="cc_cvv_{{_id}}">Security Code</label>
+ <input type="number" id="cc_cvv_{{_id}}" name="Cvv" aria-placeholder="SECURITY CODE" required>
+ <span class='err'></span>
</script>
<script type="text/html" id="address_template">
- <input type="text" name="Name" placeholder="First Name">
- <input type="text" name="Surname" placeholder="Last Name">
- <input type="text" name="Address1" placeholder="Address Line 1">
- <input type="text" name="Address2" placeholder="Address Line 2">
+ <label for="address_name_{{_id}}">First Name</label>
+ <input type="text" id="address_name_{{_id}}" name="Name" aria-placeholder="First Name">
+ <span class="err"></span>
+
+ <label for="address_surname_{{_id}}">Last Name</label>
+ <input type="text" id="address_surname_{{_id}}" name="Surname" aria-placeholder="Last Name">
+ <span class="err"></span>
+
+ <label for="address_address1_{{_id}}">Address line 1</label>
+ <input type="text" id="address_address1_{{_id}}" name="Address1" aria-placeholder="Address Line 1">
+ <span class="err"></span>
+
+ <label for="address_address2_{{_id}}">Address line 2</label>
+ <input type="text" id="address_address2_{{_id}}" name="Address2" aria-placeholder="Address Line 2">
+ <span class="err"></span>
+
+ <div class="half-input">
+ <label for="address_city_{{_id}}">City</label>
+ <label for="address_state_{{_id}}">State</label>
+ </div>
+
<div class="half-input">
- <input type="text" name="City" placeholder="City">
+ <input type="text" id="address_city_{{_id}}" name="City" aria-placeholder="City">
<div class="select-wrapper">
- <span>STATE</span>
- <select name="Province">
+ <span></span>
+ <select id="address_state_{{_id}}" name="Province">
{{PROVINCES}}
</select>
</div>
</div>
+
<div class="half-input">
- <input type="text" name="ZipCode" placeholder="ZIP" required>
+ <label for="address_zip_{{_id}}">Zip</label>
+ <label>Country</label>
+ </div>
+
+ <div class="half-input">
+ <input type="text" id="address_zip_{{_id}}" name="ZipCode" aria-placeholder="ZIP" required>
<div class="country-wrapper-static">
<span class="country-label">UNITED STATES</span>
<!--
@@ -1109,7 +1189,10 @@
-->
</div>
</div>
- <input type="number" name="Phone" placeholder="PHONE NUMBER">
+
+ <label for="address_phone_{{_id}}">Phone Number</label>
+ <input type="number" id="address_phone_{{_id}}" name="Phone" aria-placeholder="PHONE NUMBER">
+ <span class="err"></span>
<!--
<div class="checkbox-container save_as_default">
<div class="checkbox-row">
@@ -1227,6 +1310,7 @@
<script src="js/lib/etc/geo.js"></script>
<script src="js/lib/etc/sim.js"></script>
<script src="js/lib/etc/backup_db.js"></script>
+<script src="js/lib/etc/accessibility.js"></script>
<script src="js/lib/view/View.js"></script>
<script src="js/lib/view/Router.js"></script>
diff --git a/StoneIsland/platforms/ios/www/js/index.js b/StoneIsland/platforms/ios/www/js/index.js
index a8caa2e5..69a0a3e0 100755
--- a/StoneIsland/platforms/ios/www/js/index.js
+++ b/StoneIsland/platforms/ios/www/js/index.js
@@ -18,6 +18,9 @@ var app = (function(){
app.iscroll_options = {
mouseWheel: true,
scrollbars: true,
+ disablePointer: is_android ? true : false, // important to disable the pointer events that causes the issues
+ disableTouch: false, // false if you want the slider to be usable with touch devices
+ disableMouse: false // false if you want the slider to be usable with a mouse (desktop)
}
if (window.cordova) {
@@ -83,6 +86,15 @@ var app = (function(){
sim.fetch(app.api_ready)
var image = new Image
image.src = "./img/compass-logo.png"
+
+ MobileAccessibility.usePreferredTextZoom(true);
+ MobileAccessibility.getTextZoom(function getTextZoomCallback(textZoom) {
+ console.log('WebView text should be scaled to the preferred value ' + textZoom + '%')
+ if (textZoom > 100) {
+ app.accessible = true
+ $("html").addClass('accessible')
+ }
+ });
}
else {
app.api_ready()
@@ -90,8 +102,8 @@ var app = (function(){
}
app.api_ready = function(){
- if (is_iphone_x) {
- StatusBar.hide()
+ if (is_iphone_x && 'StatusBar' in window) {
+ window.StatusBar.hide()
}
app.view = null
diff --git a/StoneIsland/platforms/ios/www/js/lib/account/AccountView.js b/StoneIsland/platforms/ios/www/js/lib/account/AccountView.js
index 8ac7c193..af035f6a 100755
--- a/StoneIsland/platforms/ios/www/js/lib/account/AccountView.js
+++ b/StoneIsland/platforms/ios/www/js/lib/account/AccountView.js
@@ -74,7 +74,7 @@ var AccountView = View.extend({
},
populateCreditCards: function(data, cb){
- console.log("populate ccs:", data.CreditCards)
+ // console.log("populate ccs:", data.CreditCards)
this.ccs = data.CreditCards
this.ccLookup = {}
if (! data.CreditCards || ! data.CreditCards.length) {
diff --git a/StoneIsland/platforms/ios/www/js/lib/blogs/ArchiveView.js b/StoneIsland/platforms/ios/www/js/lib/blogs/ArchiveView.js
index 12aaf7de..0d769e95 100755
--- a/StoneIsland/platforms/ios/www/js/lib/blogs/ArchiveView.js
+++ b/StoneIsland/platforms/ios/www/js/lib/blogs/ArchiveView.js
@@ -21,7 +21,6 @@ var ArchiveView = ScrollableView.extend({
this.scroller = new IScroll('#archive .scroll', app.iscroll_options)
this.$subtitle = this.$('.subtitle')
this.subtitle_html = this.$subtitle.html()
-
},
back: function(){
diff --git a/StoneIsland/platforms/ios/www/js/lib/blogs/HubView.js b/StoneIsland/platforms/ios/www/js/lib/blogs/HubView.js
index b072a887..c4ebd716 100755
--- a/StoneIsland/platforms/ios/www/js/lib/blogs/HubView.js
+++ b/StoneIsland/platforms/ios/www/js/lib/blogs/HubView.js
@@ -57,6 +57,8 @@ var HubView = ScrollableView.extend({
.replace(/{{date}}/, moment(row.date).format("MM.DD.YYYY"))
.replace(/{{title}}/, row.title)
.replace(/{{subtitle}}/, row.subtitle)
+ .replace(/{{cleantitle}}/, stonewash(row.title))
+ .replace(/{{cleansubtitle}}/, stonewash(row.subtitle))
.replace(/{{link}}/, row.link)
.replace(/{{body}}/, row.body.replace(/\n/g, "<br>"))
var $t = $(t)
@@ -71,6 +73,7 @@ var HubView = ScrollableView.extend({
row.image.forEach(function(img){
var el = document.createElement("div")
el.style.backgroundImage = "url(" + img.uri + ")"
+ el.setAttribute('aria-label', img.caption)
el.className = "item"
$gallery.append(el)
})
@@ -107,6 +110,8 @@ var HubView = ScrollableView.extend({
play.className = "play"
$(".gallery-" + row.id).append(play)
$(".gallery-" + row.id).addClass("gallery-video-post")
+ $(".gallery-" + row.id).attr('role', 'link')
+ $(".gallery-" + row.id).attr('aria-label', stonewash(row.title) + ". Watch the video on Youtube")
if (! row.image) {
var url = row.link
var ytid = (url.match(/v=([-_a-zA-Z0-9]{11})/i) || url.match(/youtu.be\/([-_a-zA-Z0-9]{11})/i) || url.match(/embed\/([-_a-zA-Z0-9]{11})/i))[1].split('&')[0];
@@ -125,6 +130,7 @@ var HubView = ScrollableView.extend({
store_link: function(){
app.router.go("store")
},
+
play_video: function(e){
var row = $(e.currentTarget).closest('.gallery-video-post').data("row")
window.open(row.link, '_system')
@@ -142,7 +148,9 @@ var HubView = ScrollableView.extend({
share: function(e){
var title = $(e.currentTarget).parent().find(".title").text()
console.log("share", title)
- window.plugins.socialsharing.share(title, null, null, "http://deeplink.me/www.stoneisland.com/hub" )
+ if (window.plugins && window.plugins.socialsharing) {
+ window.plugins.socialsharing.share(title, null, null, "http://deeplink.me/www.stoneisland.com/hub" )
+ }
},
})
@@ -169,7 +177,7 @@ var HubLoader = (function(){
if (item.image && item.image.length) {
loader = new Loader (HubLoader.build)
images = item.image.map(function(img){
- return img.uri.replace("http:","https:")
+ return img.uri.replace("http:", "https:")
}).filter(function(img){
return img.uri
})
diff --git a/StoneIsland/platforms/ios/www/js/lib/blogs/StoryView.js b/StoneIsland/platforms/ios/www/js/lib/blogs/StoryView.js
index 5a7a56d1..924a7355 100755
--- a/StoneIsland/platforms/ios/www/js/lib/blogs/StoryView.js
+++ b/StoneIsland/platforms/ios/www/js/lib/blogs/StoryView.js
@@ -41,6 +41,7 @@ var StoryView = ScrollableView.extend({
var li = document.createElement("li")
li.dataset.id = row.id
li.innerHTML = row.title
+ li.role = "button"
this.sections[row.id] = row
this.$links.append(li)
this.$content.append(t)
@@ -67,6 +68,7 @@ var StoryView = ScrollableView.extend({
this.$img.stop().fadeTo(110,0.65, function() {
$replace.attr("src", section.image.uri)
+ $replace.attr("alt", section.image.caption)
}).fadeTo(130,1)
}
diff --git a/StoneIsland/platforms/ios/www/js/lib/cart/CartSummary.js b/StoneIsland/platforms/ios/www/js/lib/cart/CartSummary.js
index 9b5da7b7..bf150791 100755
--- a/StoneIsland/platforms/ios/www/js/lib/cart/CartSummary.js
+++ b/StoneIsland/platforms/ios/www/js/lib/cart/CartSummary.js
@@ -75,7 +75,6 @@ var CartSummary = ScrollableView.extend({
this.$rows.append($el)
app.product.find(code, function(data, details){
// console.log(data, details)
-
var descriptions = app.product.get_descriptions( details )
// console.log(descriptions)
@@ -110,8 +109,10 @@ var CartSummary = ScrollableView.extend({
var t = this.template
.replace(/{{image}}/, sdk.image(item['Code10'], '11_f'))
- .replace(/{{sku}}/, num)
- .replace(/{{title}}/, title)
+ .replace(/{{sku}}/g, num)
+ .replace(/{{code8}}/g, data['Code8'])
+ .replace(/{{title}}/g, title)
+ .replace(/{{cleantitle}}/g, stonewash(title))
.replace(/{{type}}/, type)
.replace(/{{size}}/, size_name)
.replace(/{{color}}/, color_name)
diff --git a/StoneIsland/platforms/ios/www/js/lib/etc/accessibility.js b/StoneIsland/platforms/ios/www/js/lib/etc/accessibility.js
new file mode 100644
index 00000000..614c3796
--- /dev/null
+++ b/StoneIsland/platforms/ios/www/js/lib/etc/accessibility.js
@@ -0,0 +1,9 @@
+$(function(){
+ $("h1").each(function(){
+ this['aria-label'] = 'Section title is ' + this.innerText
+ })
+})
+
+function stonewash (s) {
+ return s.replace(/'0/g, '20').replace(/_/g, ' ')
+} \ No newline at end of file
diff --git a/StoneIsland/platforms/ios/www/js/lib/nav/AddressView.js b/StoneIsland/platforms/ios/www/js/lib/nav/AddressView.js
index 9e0c49b6..fd0fa59d 100755
--- a/StoneIsland/platforms/ios/www/js/lib/nav/AddressView.js
+++ b/StoneIsland/platforms/ios/www/js/lib/nav/AddressView.js
@@ -1,4 +1,6 @@
+var AddressViewID = Math.round(Date.now() % 1000)
+
var AddressView = SerializableView.extend({
template: $("#address_template").html(),
@@ -14,7 +16,7 @@ var AddressView = SerializableView.extend({
this.parent = opt.parent
this.checkPhone = 'checkPhone' in opt ? opt.checkPhone : true
this.setElement( this.parent.$(".address") )
- this.$el.html(this.template)
+ this.$el.html(this.template.replace(/{{_id}}/g, AddressViewID++))
},
populate: function(data){
@@ -34,12 +36,15 @@ var AddressView = SerializableView.extend({
"Address1": "Please enter your street address.",
"City": "Please enter your city.",
"ZipCode": "Please enter your zip code.",
+ "Phone": "Please enter your phone number.",
},
validate_fields: function(data, errors){
if (this.disabled) { return }
if (this.checkPhone) {
- var phone_number = data.Phone ? data.Phone.replace(/[^0-9]/g, "") : ""
+ var phone_number = data.Phone ? String(data.Phone).replace(/[^0-9]/g, "").replace(/^[01]+/, '') : ""
+ data.Phone = phone_number
+ this.$('[name=Phone]').val(phone_number)
var phone_length = phone_number.length
if (phone_length === 0 || ! data.Phone) {
errors.push([ "Phone", "Please enter your phone number." ])
@@ -50,10 +55,10 @@ var AddressView = SerializableView.extend({
else if (phone_length > 10) {
errors.push([ "Phone", "International phone numbers are not accepted." ])
}
- else if (data.Phone[0] === '+') {
+ else if (phone_number.charAt(0) === '+') {
errors.push([ "Phone", "Please enter a valid 10 digit US/Canada phone number. International phone numbers are not accepted." ])
}
- else if (phone_number[0] === '1') {
+ else if (phone_number.charAt(0) === '1') {
errors.push([ "Phone", "Please enter a valid 10 digit US/Canada phone number. International phone numbers are not accepted." ])
}
}
@@ -81,7 +86,10 @@ var AddressView = SerializableView.extend({
},
scroll_up_to_phone: function(e){
- app.view.scroller && app.view.scroller.scrollTo(0, -$(e.currentTarget).position().top)
+ var position = $(e.currentTarget).prev('label').position()
+ if (app.view.scroller && position) {
+ app.view.scroller.scrollTo(0, -position.top)
+ }
},
})
diff --git a/StoneIsland/platforms/ios/www/js/lib/nav/CreditCardView.js b/StoneIsland/platforms/ios/www/js/lib/nav/CreditCardView.js
index 63784618..af53d964 100755
--- a/StoneIsland/platforms/ios/www/js/lib/nav/CreditCardView.js
+++ b/StoneIsland/platforms/ios/www/js/lib/nav/CreditCardView.js
@@ -1,4 +1,6 @@
+var CreditCardViewID = Math.round(Date.now() % 1000)
+
var CreditCardView = SerializableView.extend({
template: $("#creditcard_template").html(),
@@ -13,7 +15,7 @@ var CreditCardView = SerializableView.extend({
initialize: function(opt){
this.parent = opt.parent
this.setElement( this.parent.$(".cc") )
- this.$el.html(this.template)
+ this.$el.html(this.template.replace(/{{_id}}/g, CreditCardViewID++))
this.$number = this.$("[name=Number]")
this.$number.validateCreditCard(this.updateCard.bind(this), this.cardOptions)
diff --git a/StoneIsland/platforms/ios/www/js/lib/nav/NavView.js b/StoneIsland/platforms/ios/www/js/lib/nav/NavView.js
index 86c8ecaf..958bc8ad 100755
--- a/StoneIsland/platforms/ios/www/js/lib/nav/NavView.js
+++ b/StoneIsland/platforms/ios/www/js/lib/nav/NavView.js
@@ -23,7 +23,8 @@ var NavView = View.extend({
"click .shipping": "shipping",
"click .settings": "settings",
"click .orders": "orders",
- "click .return_link": "return_link",
+ "click .return_link_us": "return_link_us",
+ "click .return_link_ca": "return_link_ca",
"click .faq_back": "back",
"click .privacy": "privacy",
@@ -115,8 +116,11 @@ var NavView = View.extend({
this.hide()
app.router.go("account/settings")
},
- return_link: function(){
- window.open("http://www.stoneisland.com/yTos/Plugins/AreaLocalizer/Redirectarea?area=ProductExchange&controllerName=SearchOrder&actionName=Index", '_system')
+ return_link_us: function(){
+ window.open("https://www.stoneisland.com/us/ProductExchange/SearchOrder/Index?utm_source=AppMobile&utm_medium=referral&utm_campaign=ReturnForm", '_system')
+ },
+ return_link_ca: function(){
+ window.open("https://www.stoneisland.com/ca/ProductExchange/SearchOrder/Index?utm_source=AppMobile&utm_medium=referral&utm_campaign=ReturnForm", '_system')
},
@@ -141,7 +145,7 @@ var NavView = View.extend({
},
care: function(e){
e.preventDefault()
- window.open("http://www.stoneisland.com/system/web/custom/hp/email.jsp", '_system')
+ window.open("https://www.stoneisland.com/customercare?utm_source=AppMobile&utm_medium=referral&utm_campaign=CustomerCare", '_system')
},
diff --git a/StoneIsland/platforms/ios/www/js/lib/products/CollectionView.js b/StoneIsland/platforms/ios/www/js/lib/products/CollectionView.js
index 4674fc18..b7af235a 100755
--- a/StoneIsland/platforms/ios/www/js/lib/products/CollectionView.js
+++ b/StoneIsland/platforms/ios/www/js/lib/products/CollectionView.js
@@ -196,6 +196,7 @@ var CollectionView = ScrollableView.extend({
this.items[ item['Code8'] ] = item
var t = this.template.replace(/{{image}}/, sdk.image(item['DefaultCode10'], is_single_product ? '13_f' : '11_f'))
.replace(/{{code8}}/, item['Code8'])
+ .replace(/{{title}}/, stonewash(item['ModelNames']))
var $t = $(t)
if (app.store.ShowProductNameOnCollectionPage) {
var $title = $("<span>")
@@ -217,6 +218,7 @@ var CollectionView = ScrollableView.extend({
setCollectionName: function(name){
this.collectionName = name
this.$title.html(this.collectionName)
+ this.$title.attr('aria-label', stonewash(this.collectionName))
},
// filter by department
diff --git a/StoneIsland/platforms/ios/www/js/lib/products/GalleryView.js b/StoneIsland/platforms/ios/www/js/lib/products/GalleryView.js
index 0acd48c5..d6f5723c 100755
--- a/StoneIsland/platforms/ios/www/js/lib/products/GalleryView.js
+++ b/StoneIsland/platforms/ios/www/js/lib/products/GalleryView.js
@@ -39,7 +39,9 @@ var GalleryView = View.extend({
Object.keys(valid_styles).sort(sort_image_styles).forEach(function(style){
var id = valid_styles[style] + "_" + style
- var t = this.template.replace(/{{image}}/, sdk.image(code, id))
+ var t = this.template
+ .replace(/{{image}}/, sdk.image(code, id))
+ .replace(/{{alt}}/, YOOX_IMAGE_STYLE_LABELS[style] || "Alternate view")
this.$el.append(t)
}.bind(this))
@@ -79,5 +81,8 @@ var GalleryView = View.extend({
})
var YOOX_IMAGE_STYLE_ORDER = "ZZZ f r d e a b c g l".split(" ")
-
+var YOOX_IMAGE_STYLE_LABELS = {
+ f: 'Front view',
+ r: 'Rear view',
+}
function sort_image_styles (b,a){ return (YOOX_IMAGE_STYLE_ORDER.indexOf(b)) - (YOOX_IMAGE_STYLE_ORDER.indexOf(a)) } \ No newline at end of file
diff --git a/StoneIsland/platforms/ios/www/js/lib/products/ProductView.js b/StoneIsland/platforms/ios/www/js/lib/products/ProductView.js
index 3bcf5ee4..c47dfddd 100755
--- a/StoneIsland/platforms/ios/www/js/lib/products/ProductView.js
+++ b/StoneIsland/platforms/ios/www/js/lib/products/ProductView.js
@@ -434,7 +434,9 @@ var ProductView = ScrollableView.extend({
},
share: function(){
- window.plugins.socialsharing.share( this.item['ModelNames'], null, null, "http://deeplink.me/www.stoneisland.com/store/" + this.code)
+ if (window.plugins && 'socialsharing' in window.plugins) {
+ window.plugins.socialsharing.share( this.item['ModelNames'], null, null, "http://deeplink.me/www.stoneisland.com/store/" + this.code)
+ }
},
})
diff --git a/StoneIsland/platforms/ios/www/js/lib/products/Selector.js b/StoneIsland/platforms/ios/www/js/lib/products/Selector.js
index 9c1109f6..e3376a4d 100755
--- a/StoneIsland/platforms/ios/www/js/lib/products/Selector.js
+++ b/StoneIsland/platforms/ios/www/js/lib/products/Selector.js
@@ -21,7 +21,7 @@ var Selector = View.extend({
options.forEach(function(opt){
this.lookup[String(opt.id)] = opt
var t = this.template.replace(/{{id}}/, opt.id)
- .replace(/{{label}}/, opt.label)
+ .replace(/{{label}}/g, opt.label)
this.$options.append(t)
}.bind(this))
this.$el.show()
diff --git a/StoneIsland/platforms/ios/www/js/lib/view/Serializable.js b/StoneIsland/platforms/ios/www/js/lib/view/Serializable.js
index 4155f102..3181fddd 100755
--- a/StoneIsland/platforms/ios/www/js/lib/view/Serializable.js
+++ b/StoneIsland/platforms/ios/www/js/lib/view/Serializable.js
@@ -105,6 +105,7 @@ var SerializableView = View.extend({
console.log(errors)
var msgs = []
this.$('.error_hilite').removeClass('error_hilite')
+ this.$('.err').html('')
errors.forEach(function(e, i){
// if (i > 0) { return }
if (e[0]) {
@@ -112,13 +113,15 @@ var SerializableView = View.extend({
var el = $el[0]
if (el && el.nodeName === 'SELECT') {
$el.parent().addClass('error_hilite')
+ $el.parent().next('.err').html(e[1])
} else {
$el.addClass('error_hilite')
+ $el.next('.err').html(e[1])
}
}
- msgs.push(e[1])
+ // msgs.push(e[1])
}.bind(this))
- this.$msg.html(msgs.join("<br>"))
+ // this.$msg.html(msgs.join("<br>"))
this.$msg.addClass('alert-notice')
},
diff --git a/StoneIsland/platforms/ios/www/js/vendor/iscroll-5.1.3.js b/StoneIsland/platforms/ios/www/js/vendor/iscroll-5.1.3.js
new file mode 100755
index 00000000..8bd2b8da
--- /dev/null
+++ b/StoneIsland/platforms/ios/www/js/vendor/iscroll-5.1.3.js
@@ -0,0 +1,2011 @@
+/*! iScroll v5.1.3 ~ (c) 2008-2014 Matteo Spinelli ~ http://cubiq.org/license */
+(function (window, document, Math) {
+var rAF = window.requestAnimationFrame ||
+ window.webkitRequestAnimationFrame ||
+ window.mozRequestAnimationFrame ||
+ window.oRequestAnimationFrame ||
+ window.msRequestAnimationFrame ||
+ function (callback) { window.setTimeout(callback, 1000 / 60); };
+
+var utils = (function () {
+ var me = {};
+
+ var _elementStyle = document.createElement('div').style;
+ var _vendor = (function () {
+ var vendors = ['t', 'webkitT', 'MozT', 'msT', 'OT'],
+ transform,
+ i = 0,
+ l = vendors.length;
+
+ for ( ; i < l; i++ ) {
+ transform = vendors[i] + 'ransform';
+ if ( transform in _elementStyle ) return vendors[i].substr(0, vendors[i].length-1);
+ }
+
+ return false;
+ })();
+
+ function _prefixStyle (style) {
+ if ( _vendor === false ) return false;
+ if ( _vendor === '' ) return style;
+ return _vendor + style.charAt(0).toUpperCase() + style.substr(1);
+ }
+
+ me.getTime = Date.now || function getTime () { return new Date().getTime(); };
+
+ me.extend = function (target, obj) {
+ for ( var i in obj ) {
+ target[i] = obj[i];
+ }
+ };
+
+ me.addEvent = function (el, type, fn, capture) {
+ el.addEventListener(type, fn, !!capture);
+ };
+
+ me.removeEvent = function (el, type, fn, capture) {
+ el.removeEventListener(type, fn, !!capture);
+ };
+
+ me.prefixPointerEvent = function (pointerEvent) {
+ return window.MSPointerEvent ?
+ 'MSPointer' + pointerEvent.charAt(9).toUpperCase() + pointerEvent.substr(10):
+ pointerEvent;
+ };
+
+ me.momentum = function (current, start, time, lowerMargin, wrapperSize, deceleration) {
+ var distance = current - start,
+ speed = Math.abs(distance) / time,
+ destination,
+ duration;
+
+ deceleration = deceleration === undefined ? 0.0006 : deceleration;
+
+ destination = current + ( speed * speed ) / ( 2 * deceleration ) * ( distance < 0 ? -1 : 1 );
+ duration = speed / deceleration;
+
+ if ( destination < lowerMargin ) {
+ destination = wrapperSize ? lowerMargin - ( wrapperSize / 2.5 * ( speed / 8 ) ) : lowerMargin;
+ distance = Math.abs(destination - current);
+ duration = distance / speed;
+ } else if ( destination > 0 ) {
+ destination = wrapperSize ? wrapperSize / 2.5 * ( speed / 8 ) : 0;
+ distance = Math.abs(current) + destination;
+ duration = distance / speed;
+ }
+
+ return {
+ destination: Math.round(destination),
+ duration: duration
+ };
+ };
+
+ var _transform = _prefixStyle('transform');
+
+ me.extend(me, {
+ hasTransform: _transform !== false,
+ hasPerspective: _prefixStyle('perspective') in _elementStyle,
+ hasTouch: 'ontouchstart' in window,
+ hasPointer: window.PointerEvent || window.MSPointerEvent, // IE10 is prefixed
+ hasTransition: _prefixStyle('transition') in _elementStyle
+ });
+
+ // This should find all Android browsers lower than build 535.19 (both stock browser and webview)
+ me.isBadAndroid = /Android /.test(window.navigator.appVersion) && !(/Chrome\/\d/.test(window.navigator.appVersion));
+
+ me.extend(me.style = {}, {
+ transform: _transform,
+ transitionTimingFunction: _prefixStyle('transitionTimingFunction'),
+ transitionDuration: _prefixStyle('transitionDuration'),
+ transitionDelay: _prefixStyle('transitionDelay'),
+ transformOrigin: _prefixStyle('transformOrigin')
+ });
+
+ me.hasClass = function (e, c) {
+ var re = new RegExp("(^|\\s)" + c + "(\\s|$)");
+ return re.test(e.className);
+ };
+
+ me.addClass = function (e, c) {
+ if ( me.hasClass(e, c) ) {
+ return;
+ }
+
+ var newclass = e.className.split(' ');
+ newclass.push(c);
+ e.className = newclass.join(' ');
+ };
+
+ me.removeClass = function (e, c) {
+ if ( !me.hasClass(e, c) ) {
+ return;
+ }
+
+ var re = new RegExp("(^|\\s)" + c + "(\\s|$)", 'g');
+ e.className = e.className.replace(re, ' ');
+ };
+
+ me.offset = function (el) {
+ var left = -el.offsetLeft,
+ top = -el.offsetTop;
+
+ // jshint -W084
+ while (el = el.offsetParent) {
+ left -= el.offsetLeft;
+ top -= el.offsetTop;
+ }
+ // jshint +W084
+
+ return {
+ left: left,
+ top: top
+ };
+ };
+
+ me.preventDefaultException = function (el, exceptions) {
+ for ( var i in exceptions ) {
+ if ( exceptions[i].test(el[i]) ) {
+ return true;
+ }
+ }
+
+ return false;
+ };
+
+ me.extend(me.eventType = {}, {
+ touchstart: 1,
+ touchmove: 1,
+ touchend: 1,
+
+ mousedown: 2,
+ mousemove: 2,
+ mouseup: 2,
+
+ pointerdown: 3,
+ pointermove: 3,
+ pointerup: 3,
+
+ MSPointerDown: 3,
+ MSPointerMove: 3,
+ MSPointerUp: 3
+ });
+
+ me.extend(me.ease = {}, {
+ quadratic: {
+ style: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',
+ fn: function (k) {
+ return k * ( 2 - k );
+ }
+ },
+ circular: {
+ style: 'cubic-bezier(0.1, 0.57, 0.1, 1)', // Not properly "circular" but this looks better, it should be (0.075, 0.82, 0.165, 1)
+ fn: function (k) {
+ return Math.sqrt( 1 - ( --k * k ) );
+ }
+ },
+ back: {
+ style: 'cubic-bezier(0.175, 0.885, 0.32, 1.275)',
+ fn: function (k) {
+ var b = 4;
+ return ( k = k - 1 ) * k * ( ( b + 1 ) * k + b ) + 1;
+ }
+ },
+ bounce: {
+ style: '',
+ fn: function (k) {
+ if ( ( k /= 1 ) < ( 1 / 2.75 ) ) {
+ return 7.5625 * k * k;
+ } else if ( k < ( 2 / 2.75 ) ) {
+ return 7.5625 * ( k -= ( 1.5 / 2.75 ) ) * k + 0.75;
+ } else if ( k < ( 2.5 / 2.75 ) ) {
+ return 7.5625 * ( k -= ( 2.25 / 2.75 ) ) * k + 0.9375;
+ } else {
+ return 7.5625 * ( k -= ( 2.625 / 2.75 ) ) * k + 0.984375;
+ }
+ }
+ },
+ elastic: {
+ style: '',
+ fn: function (k) {
+ var f = 0.22,
+ e = 0.4;
+
+ if ( k === 0 ) { return 0; }
+ if ( k == 1 ) { return 1; }
+
+ return ( e * Math.pow( 2, - 10 * k ) * Math.sin( ( k - f / 4 ) * ( 2 * Math.PI ) / f ) + 1 );
+ }
+ }
+ });
+
+ me.tap = function (e, eventName) {
+ var ev = document.createEvent('Event');
+ ev.initEvent(eventName, true, true);
+ ev.pageX = e.pageX;
+ ev.pageY = e.pageY;
+ e.target.dispatchEvent(ev);
+ };
+
+ me.click = function (e) {
+ var target = e.target,
+ ev;
+
+ if ( !(/(SELECT|INPUT|TEXTAREA)/i).test(target.tagName) ) {
+ ev = document.createEvent('MouseEvents');
+ ev.initMouseEvent('click', true, true, e.view, 1,
+ target.screenX, target.screenY, target.clientX, target.clientY,
+ e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,
+ 0, null);
+
+ ev._constructed = true;
+ target.dispatchEvent(ev);
+ }
+ };
+
+ return me;
+})();
+
+function IScroll (el, options) {
+ this.wrapper = typeof el == 'string' ? document.querySelector(el) : el;
+ this.scroller = this.wrapper.children[0];
+ this.scrollerStyle = this.scroller.style; // cache style for better performance
+
+ this.options = {
+
+ resizeScrollbars: true,
+
+ mouseWheelSpeed: 20,
+
+ snapThreshold: 0.334,
+
+// INSERT POINT: OPTIONS
+
+ startX: 0,
+ startY: 0,
+ scrollY: true,
+ directionLockThreshold: 5,
+ momentum: true,
+
+ bounce: true,
+ bounceTime: 600,
+ bounceEasing: '',
+
+ preventDefault: true,
+ preventDefaultException: { tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT)$/ },
+
+ HWCompositing: true,
+ useTransition: true,
+ useTransform: true
+ };
+
+ for ( var i in options ) {
+ this.options[i] = options[i];
+ }
+
+ // Normalize options
+ this.translateZ = this.options.HWCompositing && utils.hasPerspective ? ' translateZ(0)' : '';
+
+ this.options.useTransition = utils.hasTransition && this.options.useTransition;
+ this.options.useTransform = utils.hasTransform && this.options.useTransform;
+
+ this.options.eventPassthrough = this.options.eventPassthrough === true ? 'vertical' : this.options.eventPassthrough;
+ this.options.preventDefault = !this.options.eventPassthrough && this.options.preventDefault;
+
+ // If you want eventPassthrough I have to lock one of the axes
+ this.options.scrollY = this.options.eventPassthrough == 'vertical' ? false : this.options.scrollY;
+ this.options.scrollX = this.options.eventPassthrough == 'horizontal' ? false : this.options.scrollX;
+
+ // With eventPassthrough we also need lockDirection mechanism
+ this.options.freeScroll = this.options.freeScroll && !this.options.eventPassthrough;
+ this.options.directionLockThreshold = this.options.eventPassthrough ? 0 : this.options.directionLockThreshold;
+
+ this.options.bounceEasing = typeof this.options.bounceEasing == 'string' ? utils.ease[this.options.bounceEasing] || utils.ease.circular : this.options.bounceEasing;
+
+ this.options.resizePolling = this.options.resizePolling === undefined ? 60 : this.options.resizePolling;
+
+ if ( this.options.tap === true ) {
+ this.options.tap = 'tap';
+ }
+
+ if ( this.options.shrinkScrollbars == 'scale' ) {
+ this.options.useTransition = false;
+ }
+
+ this.options.invertWheelDirection = this.options.invertWheelDirection ? -1 : 1;
+
+// INSERT POINT: NORMALIZATION
+
+ // Some defaults
+ this.x = 0;
+ this.y = 0;
+ this.directionX = 0;
+ this.directionY = 0;
+ this._events = {};
+
+// INSERT POINT: DEFAULTS
+
+ this._init();
+ this.refresh();
+
+ this.scrollTo(this.options.startX, this.options.startY);
+ this.enable();
+}
+
+IScroll.prototype = {
+ version: '5.1.3',
+
+ _init: function () {
+ this._initEvents();
+
+ if ( this.options.scrollbars || this.options.indicators ) {
+ this._initIndicators();
+ }
+
+ if ( this.options.mouseWheel ) {
+ this._initWheel();
+ }
+
+ if ( this.options.snap ) {
+ this._initSnap();
+ }
+
+ if ( this.options.keyBindings ) {
+ this._initKeys();
+ }
+
+// INSERT POINT: _init
+
+ },
+
+ destroy: function () {
+ this._initEvents(true);
+
+ this._execEvent('destroy');
+ },
+
+ _transitionEnd: function (e) {
+ if ( e.target != this.scroller || !this.isInTransition ) {
+ return;
+ }
+
+ this._transitionTime();
+ if ( !this.resetPosition(this.options.bounceTime) ) {
+ this.isInTransition = false;
+ this._execEvent('scrollEnd');
+ }
+ },
+
+ _start: function (e) {
+ // React to left mouse button only
+ if ( utils.eventType[e.type] != 1 ) {
+ if ( e.button !== 0 ) {
+ return;
+ }
+ }
+
+ if ( !this.enabled || (this.initiated && utils.eventType[e.type] !== this.initiated) ) {
+ return;
+ }
+
+ if ( this.options.preventDefault && !utils.isBadAndroid && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) {
+ e.preventDefault();
+ }
+
+ var point = e.touches ? e.touches[0] : e,
+ pos;
+
+ this.initiated = utils.eventType[e.type];
+ this.moved = false;
+ this.distX = 0;
+ this.distY = 0;
+ this.directionX = 0;
+ this.directionY = 0;
+ this.directionLocked = 0;
+
+ this._transitionTime();
+
+ this.startTime = utils.getTime();
+
+ if ( this.options.useTransition && this.isInTransition ) {
+ this.isInTransition = false;
+ pos = this.getComputedPosition();
+ this._translate(Math.round(pos.x), Math.round(pos.y));
+ this._execEvent('scrollEnd');
+ } else if ( !this.options.useTransition && this.isAnimating ) {
+ this.isAnimating = false;
+ this._execEvent('scrollEnd');
+ }
+
+ this.startX = this.x;
+ this.startY = this.y;
+ this.absStartX = this.x;
+ this.absStartY = this.y;
+ this.pointX = point.pageX;
+ this.pointY = point.pageY;
+
+ this._execEvent('beforeScrollStart');
+ },
+
+ _move: function (e) {
+ if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) {
+ return;
+ }
+
+ if ( this.options.preventDefault ) { // increases performance on Android? TODO: check!
+ e.preventDefault();
+ }
+
+ var point = e.touches ? e.touches[0] : e,
+ deltaX = point.pageX - this.pointX,
+ deltaY = point.pageY - this.pointY,
+ timestamp = utils.getTime(),
+ newX, newY,
+ absDistX, absDistY;
+
+ this.pointX = point.pageX;
+ this.pointY = point.pageY;
+
+ this.distX += deltaX;
+ this.distY += deltaY;
+ absDistX = Math.abs(this.distX);
+ absDistY = Math.abs(this.distY);
+
+ // We need to move at least 10 pixels for the scrolling to initiate
+ if ( timestamp - this.endTime > 300 && (absDistX < 10 && absDistY < 10) ) {
+ return;
+ }
+
+ // If you are scrolling in one direction lock the other
+ if ( !this.directionLocked && !this.options.freeScroll ) {
+ if ( absDistX > absDistY + this.options.directionLockThreshold ) {
+ this.directionLocked = 'h'; // lock horizontally
+ } else if ( absDistY >= absDistX + this.options.directionLockThreshold ) {
+ this.directionLocked = 'v'; // lock vertically
+ } else {
+ this.directionLocked = 'n'; // no lock
+ }
+ }
+
+ if ( this.directionLocked == 'h' ) {
+ if ( this.options.eventPassthrough == 'vertical' ) {
+ e.preventDefault();
+ } else if ( this.options.eventPassthrough == 'horizontal' ) {
+ this.initiated = false;
+ return;
+ }
+
+ deltaY = 0;
+ } else if ( this.directionLocked == 'v' ) {
+ if ( this.options.eventPassthrough == 'horizontal' ) {
+ e.preventDefault();
+ } else if ( this.options.eventPassthrough == 'vertical' ) {
+ this.initiated = false;
+ return;
+ }
+
+ deltaX = 0;
+ }
+
+ deltaX = this.hasHorizontalScroll ? deltaX : 0;
+ deltaY = this.hasVerticalScroll ? deltaY : 0;
+
+ newX = this.x + deltaX;
+ newY = this.y + deltaY;
+
+ // Slow down if outside of the boundaries
+ if ( newX > 0 || newX < this.maxScrollX ) {
+ newX = this.options.bounce ? this.x + deltaX / 3 : newX > 0 ? 0 : this.maxScrollX;
+ }
+ if ( newY > 0 || newY < this.maxScrollY ) {
+ newY = this.options.bounce ? this.y + deltaY / 3 : newY > 0 ? 0 : this.maxScrollY;
+ }
+
+ this.directionX = deltaX > 0 ? -1 : deltaX < 0 ? 1 : 0;
+ this.directionY = deltaY > 0 ? -1 : deltaY < 0 ? 1 : 0;
+
+ if ( !this.moved ) {
+ this._execEvent('scrollStart');
+ }
+
+ this.moved = true;
+
+ this._translate(newX, newY);
+
+/* REPLACE START: _move */
+
+ if ( timestamp - this.startTime > 300 ) {
+ this.startTime = timestamp;
+ this.startX = this.x;
+ this.startY = this.y;
+ }
+
+/* REPLACE END: _move */
+
+ },
+
+ _end: function (e) {
+ if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) {
+ return;
+ }
+
+ if ( this.options.preventDefault && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) {
+ e.preventDefault();
+ }
+
+ var point = e.changedTouches ? e.changedTouches[0] : e,
+ momentumX,
+ momentumY,
+ duration = utils.getTime() - this.startTime,
+ newX = Math.round(this.x),
+ newY = Math.round(this.y),
+ distanceX = Math.abs(newX - this.startX),
+ distanceY = Math.abs(newY - this.startY),
+ time = 0,
+ easing = '';
+
+ this.isInTransition = 0;
+ this.initiated = 0;
+ this.endTime = utils.getTime();
+
+ // reset if we are outside of the boundaries
+ if ( this.resetPosition(this.options.bounceTime) ) {
+ return;
+ }
+
+ this.scrollTo(newX, newY); // ensures that the last position is rounded
+
+ // we scrolled less than 10 pixels
+ if ( !this.moved ) {
+ if ( this.options.tap ) {
+ utils.tap(e, this.options.tap);
+ }
+
+ if ( this.options.click ) {
+ utils.click(e);
+ }
+
+ this._execEvent('scrollCancel');
+ return;
+ }
+
+ if ( this._events.flick && duration < 200 && distanceX < 100 && distanceY < 100 ) {
+ this._execEvent('flick');
+ return;
+ }
+
+ // start momentum animation if needed
+ if ( this.options.momentum && duration < 300 ) {
+ momentumX = this.hasHorizontalScroll ? utils.momentum(this.x, this.startX, duration, this.maxScrollX, this.options.bounce ? this.wrapperWidth : 0, this.options.deceleration) : { destination: newX, duration: 0 };
+ momentumY = this.hasVerticalScroll ? utils.momentum(this.y, this.startY, duration, this.maxScrollY, this.options.bounce ? this.wrapperHeight : 0, this.options.deceleration) : { destination: newY, duration: 0 };
+ newX = momentumX.destination;
+ newY = momentumY.destination;
+ time = Math.max(momentumX.duration, momentumY.duration);
+ this.isInTransition = 1;
+ }
+
+
+ if ( this.options.snap ) {
+ var snap = this._nearestSnap(newX, newY);
+ this.currentPage = snap;
+ time = this.options.snapSpeed || Math.max(
+ Math.max(
+ Math.min(Math.abs(newX - snap.x), 1000),
+ Math.min(Math.abs(newY - snap.y), 1000)
+ ), 300);
+ newX = snap.x;
+ newY = snap.y;
+
+ this.directionX = 0;
+ this.directionY = 0;
+ easing = this.options.bounceEasing;
+ }
+
+// INSERT POINT: _end
+
+ if ( newX != this.x || newY != this.y ) {
+ // change easing function when scroller goes out of the boundaries
+ if ( newX > 0 || newX < this.maxScrollX || newY > 0 || newY < this.maxScrollY ) {
+ easing = utils.ease.quadratic;
+ }
+
+ this.scrollTo(newX, newY, time, easing);
+ return;
+ }
+
+ this._execEvent('scrollEnd');
+ },
+
+ _resize: function () {
+ var that = this;
+
+ clearTimeout(this.resizeTimeout);
+
+ this.resizeTimeout = setTimeout(function () {
+ that.refresh();
+ }, this.options.resizePolling);
+ },
+
+ resetPosition: function (time) {
+ var x = this.x,
+ y = this.y;
+
+ time = time || 0;
+
+ if ( !this.hasHorizontalScroll || this.x > 0 ) {
+ x = 0;
+ } else if ( this.x < this.maxScrollX ) {
+ x = this.maxScrollX;
+ }
+
+ if ( !this.hasVerticalScroll || this.y > 0 ) {
+ y = 0;
+ } else if ( this.y < this.maxScrollY ) {
+ y = this.maxScrollY;
+ }
+
+ if ( x == this.x && y == this.y ) {
+ return false;
+ }
+
+ this.scrollTo(x, y, time, this.options.bounceEasing);
+
+ return true;
+ },
+
+ disable: function () {
+ this.enabled = false;
+ },
+
+ enable: function () {
+ this.enabled = true;
+ },
+
+ refresh: function () {
+ var rf = this.wrapper.offsetHeight; // Force reflow
+
+ this.wrapperWidth = this.wrapper.clientWidth;
+ this.wrapperHeight = this.wrapper.clientHeight;
+
+/* REPLACE START: refresh */
+
+ this.scrollerWidth = this.scroller.offsetWidth;
+ this.scrollerHeight = this.scroller.offsetHeight;
+
+ this.maxScrollX = this.wrapperWidth - this.scrollerWidth;
+ this.maxScrollY = this.wrapperHeight - this.scrollerHeight;
+
+/* REPLACE END: refresh */
+
+ this.hasHorizontalScroll = this.options.scrollX && this.maxScrollX < 0;
+ this.hasVerticalScroll = this.options.scrollY && this.maxScrollY < 0;
+
+ if ( !this.hasHorizontalScroll ) {
+ this.maxScrollX = 0;
+ this.scrollerWidth = this.wrapperWidth;
+ }
+
+ if ( !this.hasVerticalScroll ) {
+ this.maxScrollY = 0;
+ this.scrollerHeight = this.wrapperHeight;
+ }
+
+ this.endTime = 0;
+ this.directionX = 0;
+ this.directionY = 0;
+
+ this.wrapperOffset = utils.offset(this.wrapper);
+
+ this._execEvent('refresh');
+
+ this.resetPosition();
+
+// INSERT POINT: _refresh
+
+ },
+
+ on: function (type, fn) {
+ if ( !this._events[type] ) {
+ this._events[type] = [];
+ }
+
+ this._events[type].push(fn);
+ },
+
+ off: function (type, fn) {
+ if ( !this._events[type] ) {
+ return;
+ }
+
+ var index = this._events[type].indexOf(fn);
+
+ if ( index > -1 ) {
+ this._events[type].splice(index, 1);
+ }
+ },
+
+ _execEvent: function (type) {
+ if ( !this._events[type] ) {
+ return;
+ }
+
+ var i = 0,
+ l = this._events[type].length;
+
+ if ( !l ) {
+ return;
+ }
+
+ for ( ; i < l; i++ ) {
+ this._events[type][i].apply(this, [].slice.call(arguments, 1));
+ }
+ },
+
+ scrollBy: function (x, y, time, easing) {
+ x = this.x + x;
+ y = this.y + y;
+ time = time || 0;
+
+ this.scrollTo(x, y, time, easing);
+ },
+
+ scrollTo: function (x, y, time, easing) {
+ easing = easing || utils.ease.circular;
+
+ this.isInTransition = this.options.useTransition && time > 0;
+
+ if ( !time || (this.options.useTransition && easing.style) ) {
+ this._transitionTimingFunction(easing.style);
+ this._transitionTime(time);
+ this._translate(x, y);
+ } else {
+ this._animate(x, y, time, easing.fn);
+ }
+ },
+
+ scrollToElement: function (el, time, offsetX, offsetY, easing) {
+ el = el.nodeType ? el : this.scroller.querySelector(el);
+
+ if ( !el ) {
+ return;
+ }
+
+ var pos = utils.offset(el);
+
+ pos.left -= this.wrapperOffset.left;
+ pos.top -= this.wrapperOffset.top;
+
+ // if offsetX/Y are true we center the element to the screen
+ if ( offsetX === true ) {
+ offsetX = Math.round(el.offsetWidth / 2 - this.wrapper.offsetWidth / 2);
+ }
+ if ( offsetY === true ) {
+ offsetY = Math.round(el.offsetHeight / 2 - this.wrapper.offsetHeight / 2);
+ }
+
+ pos.left -= offsetX || 0;
+ pos.top -= offsetY || 0;
+
+ pos.left = pos.left > 0 ? 0 : pos.left < this.maxScrollX ? this.maxScrollX : pos.left;
+ pos.top = pos.top > 0 ? 0 : pos.top < this.maxScrollY ? this.maxScrollY : pos.top;
+
+ time = time === undefined || time === null || time === 'auto' ? Math.max(Math.abs(this.x-pos.left), Math.abs(this.y-pos.top)) : time;
+
+ this.scrollTo(pos.left, pos.top, time, easing);
+ },
+
+ _transitionTime: function (time) {
+ time = time || 0;
+
+ this.scrollerStyle[utils.style.transitionDuration] = time + 'ms';
+
+ if ( !time && utils.isBadAndroid ) {
+ this.scrollerStyle[utils.style.transitionDuration] = '0.001s';
+ }
+
+
+ if ( this.indicators ) {
+ for ( var i = this.indicators.length; i--; ) {
+ this.indicators[i].transitionTime(time);
+ }
+ }
+
+
+// INSERT POINT: _transitionTime
+
+ },
+
+ _transitionTimingFunction: function (easing) {
+ this.scrollerStyle[utils.style.transitionTimingFunction] = easing;
+
+
+ if ( this.indicators ) {
+ for ( var i = this.indicators.length; i--; ) {
+ this.indicators[i].transitionTimingFunction(easing);
+ }
+ }
+
+
+// INSERT POINT: _transitionTimingFunction
+
+ },
+
+ _translate: function (x, y) {
+ if ( this.options.useTransform ) {
+
+/* REPLACE START: _translate */
+
+ this.scrollerStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.translateZ;
+
+/* REPLACE END: _translate */
+
+ } else {
+ x = Math.round(x);
+ y = Math.round(y);
+ this.scrollerStyle.left = x + 'px';
+ this.scrollerStyle.top = y + 'px';
+ }
+
+ this.x = x;
+ this.y = y;
+
+
+ if ( this.indicators ) {
+ for ( var i = this.indicators.length; i--; ) {
+ this.indicators[i].updatePosition();
+ }
+ }
+
+
+// INSERT POINT: _translate
+
+ },
+
+ _initEvents: function (remove) {
+ var eventType = remove ? utils.removeEvent : utils.addEvent,
+ target = this.options.bindToWrapper ? this.wrapper : window;
+
+ eventType(window, 'orientationchange', this);
+ eventType(window, 'resize', this);
+
+ if ( this.options.click ) {
+ eventType(this.wrapper, 'click', this, true);
+ }
+
+ if ( !this.options.disableMouse ) {
+ eventType(this.wrapper, 'mousedown', this);
+ eventType(target, 'mousemove', this);
+ eventType(target, 'mousecancel', this);
+ eventType(target, 'mouseup', this);
+ }
+
+ if ( utils.hasPointer && !this.options.disablePointer ) {
+ eventType(this.wrapper, utils.prefixPointerEvent('pointerdown'), this);
+ eventType(target, utils.prefixPointerEvent('pointermove'), this);
+ eventType(target, utils.prefixPointerEvent('pointercancel'), this);
+ eventType(target, utils.prefixPointerEvent('pointerup'), this);
+ }
+
+ if ( utils.hasTouch && !this.options.disableTouch ) {
+ eventType(this.wrapper, 'touchstart', this);
+ eventType(target, 'touchmove', this);
+ eventType(target, 'touchcancel', this);
+ eventType(target, 'touchend', this);
+ }
+
+ eventType(this.scroller, 'transitionend', this);
+ eventType(this.scroller, 'webkitTransitionEnd', this);
+ eventType(this.scroller, 'oTransitionEnd', this);
+ eventType(this.scroller, 'MSTransitionEnd', this);
+ },
+
+ getComputedPosition: function () {
+ var matrix = window.getComputedStyle(this.scroller, null),
+ x, y;
+
+ if ( this.options.useTransform ) {
+ matrix = matrix[utils.style.transform].split(')')[0].split(', ');
+ x = +(matrix[12] || matrix[4]);
+ y = +(matrix[13] || matrix[5]);
+ } else {
+ x = +matrix.left.replace(/[^-\d.]/g, '');
+ y = +matrix.top.replace(/[^-\d.]/g, '');
+ }
+
+ return { x: x, y: y };
+ },
+
+ _initIndicators: function () {
+ var interactive = this.options.interactiveScrollbars,
+ customStyle = typeof this.options.scrollbars != 'string',
+ indicators = [],
+ indicator;
+
+ var that = this;
+
+ this.indicators = [];
+
+ if ( this.options.scrollbars ) {
+ // Vertical scrollbar
+ if ( this.options.scrollY ) {
+ indicator = {
+ el: createDefaultScrollbar('v', interactive, this.options.scrollbars),
+ interactive: interactive,
+ defaultScrollbars: true,
+ customStyle: customStyle,
+ resize: this.options.resizeScrollbars,
+ shrink: this.options.shrinkScrollbars,
+ fade: this.options.fadeScrollbars,
+ listenX: false
+ };
+
+ this.wrapper.appendChild(indicator.el);
+ indicators.push(indicator);
+ }
+
+ // Horizontal scrollbar
+ if ( this.options.scrollX ) {
+ indicator = {
+ el: createDefaultScrollbar('h', interactive, this.options.scrollbars),
+ interactive: interactive,
+ defaultScrollbars: true,
+ customStyle: customStyle,
+ resize: this.options.resizeScrollbars,
+ shrink: this.options.shrinkScrollbars,
+ fade: this.options.fadeScrollbars,
+ listenY: false
+ };
+
+ this.wrapper.appendChild(indicator.el);
+ indicators.push(indicator);
+ }
+ }
+
+ if ( this.options.indicators ) {
+ // TODO: check concat compatibility
+ indicators = indicators.concat(this.options.indicators);
+ }
+
+ for ( var i = indicators.length; i--; ) {
+ this.indicators.push( new Indicator(this, indicators[i]) );
+ }
+
+ // TODO: check if we can use array.map (wide compatibility and performance issues)
+ function _indicatorsMap (fn) {
+ for ( var i = that.indicators.length; i--; ) {
+ fn.call(that.indicators[i]);
+ }
+ }
+
+ if ( this.options.fadeScrollbars ) {
+ this.on('scrollEnd', function () {
+ _indicatorsMap(function () {
+ this.fade();
+ });
+ });
+
+ this.on('scrollCancel', function () {
+ _indicatorsMap(function () {
+ this.fade();
+ });
+ });
+
+ this.on('scrollStart', function () {
+ _indicatorsMap(function () {
+ this.fade(1);
+ });
+ });
+
+ this.on('beforeScrollStart', function () {
+ _indicatorsMap(function () {
+ this.fade(1, true);
+ });
+ });
+ }
+
+
+ this.on('refresh', function () {
+ _indicatorsMap(function () {
+ this.refresh();
+ });
+ });
+
+ this.on('destroy', function () {
+ _indicatorsMap(function () {
+ this.destroy();
+ });
+
+ delete this.indicators;
+ });
+ },
+
+ _initWheel: function () {
+ utils.addEvent(this.wrapper, 'wheel', this);
+ utils.addEvent(this.wrapper, 'mousewheel', this);
+ utils.addEvent(this.wrapper, 'DOMMouseScroll', this);
+
+ this.on('destroy', function () {
+ utils.removeEvent(this.wrapper, 'wheel', this);
+ utils.removeEvent(this.wrapper, 'mousewheel', this);
+ utils.removeEvent(this.wrapper, 'DOMMouseScroll', this);
+ });
+ },
+
+ _wheel: function (e) {
+ if ( !this.enabled ) {
+ return;
+ }
+
+ e.preventDefault();
+ e.stopPropagation();
+
+ var wheelDeltaX, wheelDeltaY,
+ newX, newY,
+ that = this;
+
+ if ( this.wheelTimeout === undefined ) {
+ that._execEvent('scrollStart');
+ }
+
+ // Execute the scrollEnd event after 400ms the wheel stopped scrolling
+ clearTimeout(this.wheelTimeout);
+ this.wheelTimeout = setTimeout(function () {
+ that._execEvent('scrollEnd');
+ that.wheelTimeout = undefined;
+ }, 400);
+
+ if ( 'deltaX' in e ) {
+ if (e.deltaMode === 1) {
+ wheelDeltaX = -e.deltaX * this.options.mouseWheelSpeed;
+ wheelDeltaY = -e.deltaY * this.options.mouseWheelSpeed;
+ } else {
+ wheelDeltaX = -e.deltaX;
+ wheelDeltaY = -e.deltaY;
+ }
+ } else if ( 'wheelDeltaX' in e ) {
+ wheelDeltaX = e.wheelDeltaX / 120 * this.options.mouseWheelSpeed;
+ wheelDeltaY = e.wheelDeltaY / 120 * this.options.mouseWheelSpeed;
+ } else if ( 'wheelDelta' in e ) {
+ wheelDeltaX = wheelDeltaY = e.wheelDelta / 120 * this.options.mouseWheelSpeed;
+ } else if ( 'detail' in e ) {
+ wheelDeltaX = wheelDeltaY = -e.detail / 3 * this.options.mouseWheelSpeed;
+ } else {
+ return;
+ }
+
+ wheelDeltaX *= this.options.invertWheelDirection;
+ wheelDeltaY *= this.options.invertWheelDirection;
+
+ if ( !this.hasVerticalScroll ) {
+ wheelDeltaX = wheelDeltaY;
+ wheelDeltaY = 0;
+ }
+
+ if ( this.options.snap ) {
+ newX = this.currentPage.pageX;
+ newY = this.currentPage.pageY;
+
+ if ( wheelDeltaX > 0 ) {
+ newX--;
+ } else if ( wheelDeltaX < 0 ) {
+ newX++;
+ }
+
+ if ( wheelDeltaY > 0 ) {
+ newY--;
+ } else if ( wheelDeltaY < 0 ) {
+ newY++;
+ }
+
+ this.goToPage(newX, newY);
+
+ return;
+ }
+
+ newX = this.x + Math.round(this.hasHorizontalScroll ? wheelDeltaX : 0);
+ newY = this.y + Math.round(this.hasVerticalScroll ? wheelDeltaY : 0);
+
+ if ( newX > 0 ) {
+ newX = 0;
+ } else if ( newX < this.maxScrollX ) {
+ newX = this.maxScrollX;
+ }
+
+ if ( newY > 0 ) {
+ newY = 0;
+ } else if ( newY < this.maxScrollY ) {
+ newY = this.maxScrollY;
+ }
+
+ this.scrollTo(newX, newY, 0);
+
+// INSERT POINT: _wheel
+ },
+
+ _initSnap: function () {
+ this.currentPage = {};
+
+ if ( typeof this.options.snap == 'string' ) {
+ this.options.snap = this.scroller.querySelectorAll(this.options.snap);
+ }
+
+ this.on('refresh', function () {
+ var i = 0, l,
+ m = 0, n,
+ cx, cy,
+ x = 0, y,
+ stepX = this.options.snapStepX || this.wrapperWidth,
+ stepY = this.options.snapStepY || this.wrapperHeight,
+ el;
+
+ this.pages = [];
+
+ if ( !this.wrapperWidth || !this.wrapperHeight || !this.scrollerWidth || !this.scrollerHeight ) {
+ return;
+ }
+
+ if ( this.options.snap === true ) {
+ cx = Math.round( stepX / 2 );
+ cy = Math.round( stepY / 2 );
+
+ while ( x > -this.scrollerWidth ) {
+ this.pages[i] = [];
+ l = 0;
+ y = 0;
+
+ while ( y > -this.scrollerHeight ) {
+ this.pages[i][l] = {
+ x: Math.max(x, this.maxScrollX),
+ y: Math.max(y, this.maxScrollY),
+ width: stepX,
+ height: stepY,
+ cx: x - cx,
+ cy: y - cy
+ };
+
+ y -= stepY;
+ l++;
+ }
+
+ x -= stepX;
+ i++;
+ }
+ } else {
+ el = this.options.snap;
+ l = el.length;
+ n = -1;
+
+ for ( ; i < l; i++ ) {
+ if ( i === 0 || el[i].offsetLeft <= el[i-1].offsetLeft ) {
+ m = 0;
+ n++;
+ }
+
+ if ( !this.pages[m] ) {
+ this.pages[m] = [];
+ }
+
+ x = Math.max(-el[i].offsetLeft, this.maxScrollX);
+ y = Math.max(-el[i].offsetTop, this.maxScrollY);
+ cx = x - Math.round(el[i].offsetWidth / 2);
+ cy = y - Math.round(el[i].offsetHeight / 2);
+
+ this.pages[m][n] = {
+ x: x,
+ y: y,
+ width: el[i].offsetWidth,
+ height: el[i].offsetHeight,
+ cx: cx,
+ cy: cy
+ };
+
+ if ( x > this.maxScrollX ) {
+ m++;
+ }
+ }
+ }
+
+ this.goToPage(this.currentPage.pageX || 0, this.currentPage.pageY || 0, 0);
+
+ // Update snap threshold if needed
+ if ( this.options.snapThreshold % 1 === 0 ) {
+ this.snapThresholdX = this.options.snapThreshold;
+ this.snapThresholdY = this.options.snapThreshold;
+ } else {
+ this.snapThresholdX = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].width * this.options.snapThreshold);
+ this.snapThresholdY = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].height * this.options.snapThreshold);
+ }
+ });
+
+ this.on('flick', function () {
+ var time = this.options.snapSpeed || Math.max(
+ Math.max(
+ Math.min(Math.abs(this.x - this.startX), 1000),
+ Math.min(Math.abs(this.y - this.startY), 1000)
+ ), 300);
+
+ this.goToPage(
+ this.currentPage.pageX + this.directionX,
+ this.currentPage.pageY + this.directionY,
+ time
+ );
+ });
+ },
+
+ _nearestSnap: function (x, y) {
+ if ( !this.pages.length ) {
+ return { x: 0, y: 0, pageX: 0, pageY: 0 };
+ }
+
+ var i = 0,
+ l = this.pages.length,
+ m = 0;
+
+ // Check if we exceeded the snap threshold
+ if ( Math.abs(x - this.absStartX) < this.snapThresholdX &&
+ Math.abs(y - this.absStartY) < this.snapThresholdY ) {
+ return this.currentPage;
+ }
+
+ if ( x > 0 ) {
+ x = 0;
+ } else if ( x < this.maxScrollX ) {
+ x = this.maxScrollX;
+ }
+
+ if ( y > 0 ) {
+ y = 0;
+ } else if ( y < this.maxScrollY ) {
+ y = this.maxScrollY;
+ }
+
+ for ( ; i < l; i++ ) {
+ if ( x >= this.pages[i][0].cx ) {
+ x = this.pages[i][0].x;
+ break;
+ }
+ }
+
+ l = this.pages[i].length;
+
+ for ( ; m < l; m++ ) {
+ if ( y >= this.pages[0][m].cy ) {
+ y = this.pages[0][m].y;
+ break;
+ }
+ }
+
+ if ( i == this.currentPage.pageX ) {
+ i += this.directionX;
+
+ if ( i < 0 ) {
+ i = 0;
+ } else if ( i >= this.pages.length ) {
+ i = this.pages.length - 1;
+ }
+
+ x = this.pages[i][0].x;
+ }
+
+ if ( m == this.currentPage.pageY ) {
+ m += this.directionY;
+
+ if ( m < 0 ) {
+ m = 0;
+ } else if ( m >= this.pages[0].length ) {
+ m = this.pages[0].length - 1;
+ }
+
+ y = this.pages[0][m].y;
+ }
+
+ return {
+ x: x,
+ y: y,
+ pageX: i,
+ pageY: m
+ };
+ },
+
+ goToPage: function (x, y, time, easing) {
+ easing = easing || this.options.bounceEasing;
+
+ if ( x >= this.pages.length ) {
+ x = this.pages.length - 1;
+ } else if ( x < 0 ) {
+ x = 0;
+ }
+
+ if ( y >= this.pages[x].length ) {
+ y = this.pages[x].length - 1;
+ } else if ( y < 0 ) {
+ y = 0;
+ }
+
+ var posX = this.pages[x][y].x,
+ posY = this.pages[x][y].y;
+
+ time = time === undefined ? this.options.snapSpeed || Math.max(
+ Math.max(
+ Math.min(Math.abs(posX - this.x), 1000),
+ Math.min(Math.abs(posY - this.y), 1000)
+ ), 300) : time;
+
+ this.currentPage = {
+ x: posX,
+ y: posY,
+ pageX: x,
+ pageY: y
+ };
+
+ this.scrollTo(posX, posY, time, easing);
+ },
+
+ next: function (time, easing) {
+ var x = this.currentPage.pageX,
+ y = this.currentPage.pageY;
+
+ x++;
+
+ if ( x >= this.pages.length && this.hasVerticalScroll ) {
+ x = 0;
+ y++;
+ }
+
+ this.goToPage(x, y, time, easing);
+ },
+
+ prev: function (time, easing) {
+ var x = this.currentPage.pageX,
+ y = this.currentPage.pageY;
+
+ x--;
+
+ if ( x < 0 && this.hasVerticalScroll ) {
+ x = 0;
+ y--;
+ }
+
+ this.goToPage(x, y, time, easing);
+ },
+
+ _initKeys: function (e) {
+ // default key bindings
+ var keys = {
+ pageUp: 33,
+ pageDown: 34,
+ end: 35,
+ home: 36,
+ left: 37,
+ up: 38,
+ right: 39,
+ down: 40
+ };
+ var i;
+
+ // if you give me characters I give you keycode
+ if ( typeof this.options.keyBindings == 'object' ) {
+ for ( i in this.options.keyBindings ) {
+ if ( typeof this.options.keyBindings[i] == 'string' ) {
+ this.options.keyBindings[i] = this.options.keyBindings[i].toUpperCase().charCodeAt(0);
+ }
+ }
+ } else {
+ this.options.keyBindings = {};
+ }
+
+ for ( i in keys ) {
+ this.options.keyBindings[i] = this.options.keyBindings[i] || keys[i];
+ }
+
+ utils.addEvent(window, 'keydown', this);
+
+ this.on('destroy', function () {
+ utils.removeEvent(window, 'keydown', this);
+ });
+ },
+
+ _key: function (e) {
+ if ( !this.enabled ) {
+ return;
+ }
+
+ var snap = this.options.snap, // we are using this alot, better to cache it
+ newX = snap ? this.currentPage.pageX : this.x,
+ newY = snap ? this.currentPage.pageY : this.y,
+ now = utils.getTime(),
+ prevTime = this.keyTime || 0,
+ acceleration = 0.250,
+ pos;
+
+ if ( this.options.useTransition && this.isInTransition ) {
+ pos = this.getComputedPosition();
+
+ this._translate(Math.round(pos.x), Math.round(pos.y));
+ this.isInTransition = false;
+ }
+
+ this.keyAcceleration = now - prevTime < 200 ? Math.min(this.keyAcceleration + acceleration, 50) : 0;
+
+ switch ( e.keyCode ) {
+ case this.options.keyBindings.pageUp:
+ if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) {
+ newX += snap ? 1 : this.wrapperWidth;
+ } else {
+ newY += snap ? 1 : this.wrapperHeight;
+ }
+ break;
+ case this.options.keyBindings.pageDown:
+ if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) {
+ newX -= snap ? 1 : this.wrapperWidth;
+ } else {
+ newY -= snap ? 1 : this.wrapperHeight;
+ }
+ break;
+ case this.options.keyBindings.end:
+ newX = snap ? this.pages.length-1 : this.maxScrollX;
+ newY = snap ? this.pages[0].length-1 : this.maxScrollY;
+ break;
+ case this.options.keyBindings.home:
+ newX = 0;
+ newY = 0;
+ break;
+ case this.options.keyBindings.left:
+ newX += snap ? -1 : 5 + this.keyAcceleration>>0;
+ break;
+ case this.options.keyBindings.up:
+ newY += snap ? 1 : 5 + this.keyAcceleration>>0;
+ break;
+ case this.options.keyBindings.right:
+ newX -= snap ? -1 : 5 + this.keyAcceleration>>0;
+ break;
+ case this.options.keyBindings.down:
+ newY -= snap ? 1 : 5 + this.keyAcceleration>>0;
+ break;
+ default:
+ return;
+ }
+
+ if ( snap ) {
+ this.goToPage(newX, newY);
+ return;
+ }
+
+ if ( newX > 0 ) {
+ newX = 0;
+ this.keyAcceleration = 0;
+ } else if ( newX < this.maxScrollX ) {
+ newX = this.maxScrollX;
+ this.keyAcceleration = 0;
+ }
+
+ if ( newY > 0 ) {
+ newY = 0;
+ this.keyAcceleration = 0;
+ } else if ( newY < this.maxScrollY ) {
+ newY = this.maxScrollY;
+ this.keyAcceleration = 0;
+ }
+
+ this.scrollTo(newX, newY, 0);
+
+ this.keyTime = now;
+ },
+
+ _animate: function (destX, destY, duration, easingFn) {
+ var that = this,
+ startX = this.x,
+ startY = this.y,
+ startTime = utils.getTime(),
+ destTime = startTime + duration;
+
+ function step () {
+ var now = utils.getTime(),
+ newX, newY,
+ easing;
+
+ if ( now >= destTime ) {
+ that.isAnimating = false;
+ that._translate(destX, destY);
+
+ if ( !that.resetPosition(that.options.bounceTime) ) {
+ that._execEvent('scrollEnd');
+ }
+
+ return;
+ }
+
+ now = ( now - startTime ) / duration;
+ easing = easingFn(now);
+ newX = ( destX - startX ) * easing + startX;
+ newY = ( destY - startY ) * easing + startY;
+ that._translate(newX, newY);
+
+ if ( that.isAnimating ) {
+ rAF(step);
+ }
+ }
+
+ this.isAnimating = true;
+ step();
+ },
+ handleEvent: function (e) {
+ switch ( e.type ) {
+ case 'touchstart':
+ case 'pointerdown':
+ case 'MSPointerDown':
+ case 'mousedown':
+ this._start(e);
+ break;
+ case 'touchmove':
+ case 'pointermove':
+ case 'MSPointerMove':
+ case 'mousemove':
+ this._move(e);
+ break;
+ case 'touchend':
+ case 'pointerup':
+ case 'MSPointerUp':
+ case 'mouseup':
+ case 'touchcancel':
+ case 'pointercancel':
+ case 'MSPointerCancel':
+ case 'mousecancel':
+ this._end(e);
+ break;
+ case 'orientationchange':
+ case 'resize':
+ this._resize();
+ break;
+ case 'transitionend':
+ case 'webkitTransitionEnd':
+ case 'oTransitionEnd':
+ case 'MSTransitionEnd':
+ this._transitionEnd(e);
+ break;
+ case 'wheel':
+ case 'DOMMouseScroll':
+ case 'mousewheel':
+ this._wheel(e);
+ break;
+ case 'keydown':
+ this._key(e);
+ break;
+ case 'click':
+ if ( !e._constructed ) {
+ e.preventDefault();
+ e.stopPropagation();
+ }
+ break;
+ }
+ }
+};
+function createDefaultScrollbar (direction, interactive, type) {
+ var scrollbar = document.createElement('div'),
+ indicator = document.createElement('div');
+
+ if ( type === true ) {
+ scrollbar.style.cssText = 'position:absolute;z-index:9999';
+ indicator.style.cssText = '-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);border-radius:3px';
+ }
+
+ indicator.className = 'iScrollIndicator';
+
+ if ( direction == 'h' ) {
+ if ( type === true ) {
+ scrollbar.style.cssText += ';height:7px;left:2px;right:2px;bottom:0';
+ indicator.style.height = '100%';
+ }
+ scrollbar.className = 'iScrollHorizontalScrollbar';
+ } else {
+ if ( type === true ) {
+ scrollbar.style.cssText += ';width:7px;bottom:2px;top:2px;right:1px';
+ indicator.style.width = '100%';
+ }
+ scrollbar.className = 'iScrollVerticalScrollbar';
+ }
+
+ scrollbar.style.cssText += ';overflow:hidden';
+
+ if ( !interactive ) {
+ scrollbar.style.pointerEvents = 'none';
+ }
+
+ scrollbar.appendChild(indicator);
+
+ return scrollbar;
+}
+
+function Indicator (scroller, options) {
+ this.wrapper = typeof options.el == 'string' ? document.querySelector(options.el) : options.el;
+ this.wrapperStyle = this.wrapper.style;
+ this.indicator = this.wrapper.children[0];
+ this.indicatorStyle = this.indicator.style;
+ this.scroller = scroller;
+
+ this.options = {
+ listenX: true,
+ listenY: true,
+ interactive: false,
+ resize: true,
+ defaultScrollbars: false,
+ shrink: false,
+ fade: false,
+ speedRatioX: 0,
+ speedRatioY: 0
+ };
+
+ for ( var i in options ) {
+ this.options[i] = options[i];
+ }
+
+ this.sizeRatioX = 1;
+ this.sizeRatioY = 1;
+ this.maxPosX = 0;
+ this.maxPosY = 0;
+
+ if ( this.options.interactive ) {
+ if ( !this.options.disableTouch ) {
+ utils.addEvent(this.indicator, 'touchstart', this);
+ utils.addEvent(window, 'touchend', this);
+ }
+ if ( !this.options.disablePointer ) {
+ utils.addEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this);
+ utils.addEvent(window, utils.prefixPointerEvent('pointerup'), this);
+ }
+ if ( !this.options.disableMouse ) {
+ utils.addEvent(this.indicator, 'mousedown', this);
+ utils.addEvent(window, 'mouseup', this);
+ }
+ }
+
+ if ( this.options.fade ) {
+ this.wrapperStyle[utils.style.transform] = this.scroller.translateZ;
+ this.wrapperStyle[utils.style.transitionDuration] = utils.isBadAndroid ? '0.001s' : '0ms';
+ this.wrapperStyle.opacity = '0';
+ }
+}
+
+Indicator.prototype = {
+ handleEvent: function (e) {
+ switch ( e.type ) {
+ case 'touchstart':
+ case 'pointerdown':
+ case 'MSPointerDown':
+ case 'mousedown':
+ this._start(e);
+ break;
+ case 'touchmove':
+ case 'pointermove':
+ case 'MSPointerMove':
+ case 'mousemove':
+ this._move(e);
+ break;
+ case 'touchend':
+ case 'pointerup':
+ case 'MSPointerUp':
+ case 'mouseup':
+ case 'touchcancel':
+ case 'pointercancel':
+ case 'MSPointerCancel':
+ case 'mousecancel':
+ this._end(e);
+ break;
+ }
+ },
+
+ destroy: function () {
+ if ( this.options.interactive ) {
+ utils.removeEvent(this.indicator, 'touchstart', this);
+ utils.removeEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this);
+ utils.removeEvent(this.indicator, 'mousedown', this);
+
+ utils.removeEvent(window, 'touchmove', this);
+ utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this);
+ utils.removeEvent(window, 'mousemove', this);
+
+ utils.removeEvent(window, 'touchend', this);
+ utils.removeEvent(window, utils.prefixPointerEvent('pointerup'), this);
+ utils.removeEvent(window, 'mouseup', this);
+ }
+
+ if ( this.options.defaultScrollbars ) {
+ this.wrapper.parentNode.removeChild(this.wrapper);
+ }
+ },
+
+ _start: function (e) {
+ var point = e.touches ? e.touches[0] : e;
+
+ e.preventDefault();
+ e.stopPropagation();
+
+ this.transitionTime();
+
+ this.initiated = true;
+ this.moved = false;
+ this.lastPointX = point.pageX;
+ this.lastPointY = point.pageY;
+
+ this.startTime = utils.getTime();
+
+ if ( !this.options.disableTouch ) {
+ utils.addEvent(window, 'touchmove', this);
+ }
+ if ( !this.options.disablePointer ) {
+ utils.addEvent(window, utils.prefixPointerEvent('pointermove'), this);
+ }
+ if ( !this.options.disableMouse ) {
+ utils.addEvent(window, 'mousemove', this);
+ }
+
+ this.scroller._execEvent('beforeScrollStart');
+ },
+
+ _move: function (e) {
+ var point = e.touches ? e.touches[0] : e,
+ deltaX, deltaY,
+ newX, newY,
+ timestamp = utils.getTime();
+
+ if ( !this.moved ) {
+ this.scroller._execEvent('scrollStart');
+ }
+
+ this.moved = true;
+
+ deltaX = point.pageX - this.lastPointX;
+ this.lastPointX = point.pageX;
+
+ deltaY = point.pageY - this.lastPointY;
+ this.lastPointY = point.pageY;
+
+ newX = this.x + deltaX;
+ newY = this.y + deltaY;
+
+ this._pos(newX, newY);
+
+// INSERT POINT: indicator._move
+
+ e.preventDefault();
+ e.stopPropagation();
+ },
+
+ _end: function (e) {
+ if ( !this.initiated ) {
+ return;
+ }
+
+ this.initiated = false;
+
+ e.preventDefault();
+ e.stopPropagation();
+
+ utils.removeEvent(window, 'touchmove', this);
+ utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this);
+ utils.removeEvent(window, 'mousemove', this);
+
+ if ( this.scroller.options.snap ) {
+ var snap = this.scroller._nearestSnap(this.scroller.x, this.scroller.y);
+
+ var time = this.options.snapSpeed || Math.max(
+ Math.max(
+ Math.min(Math.abs(this.scroller.x - snap.x), 1000),
+ Math.min(Math.abs(this.scroller.y - snap.y), 1000)
+ ), 300);
+
+ if ( this.scroller.x != snap.x || this.scroller.y != snap.y ) {
+ this.scroller.directionX = 0;
+ this.scroller.directionY = 0;
+ this.scroller.currentPage = snap;
+ this.scroller.scrollTo(snap.x, snap.y, time, this.scroller.options.bounceEasing);
+ }
+ }
+
+ if ( this.moved ) {
+ this.scroller._execEvent('scrollEnd');
+ }
+ },
+
+ transitionTime: function (time) {
+ time = time || 0;
+ this.indicatorStyle[utils.style.transitionDuration] = time + 'ms';
+
+ if ( !time && utils.isBadAndroid ) {
+ this.indicatorStyle[utils.style.transitionDuration] = '0.001s';
+ }
+ },
+
+ transitionTimingFunction: function (easing) {
+ this.indicatorStyle[utils.style.transitionTimingFunction] = easing;
+ },
+
+ refresh: function () {
+ this.transitionTime();
+
+ if ( this.options.listenX && !this.options.listenY ) {
+ this.indicatorStyle.display = this.scroller.hasHorizontalScroll ? 'block' : 'none';
+ } else if ( this.options.listenY && !this.options.listenX ) {
+ this.indicatorStyle.display = this.scroller.hasVerticalScroll ? 'block' : 'none';
+ } else {
+ this.indicatorStyle.display = this.scroller.hasHorizontalScroll || this.scroller.hasVerticalScroll ? 'block' : 'none';
+ }
+
+ if ( this.scroller.hasHorizontalScroll && this.scroller.hasVerticalScroll ) {
+ utils.addClass(this.wrapper, 'iScrollBothScrollbars');
+ utils.removeClass(this.wrapper, 'iScrollLoneScrollbar');
+
+ if ( this.options.defaultScrollbars && this.options.customStyle ) {
+ if ( this.options.listenX ) {
+ this.wrapper.style.right = '8px';
+ } else {
+ this.wrapper.style.bottom = '8px';
+ }
+ }
+ } else {
+ utils.removeClass(this.wrapper, 'iScrollBothScrollbars');
+ utils.addClass(this.wrapper, 'iScrollLoneScrollbar');
+
+ if ( this.options.defaultScrollbars && this.options.customStyle ) {
+ if ( this.options.listenX ) {
+ this.wrapper.style.right = '2px';
+ } else {
+ this.wrapper.style.bottom = '2px';
+ }
+ }
+ }
+
+ var r = this.wrapper.offsetHeight; // force refresh
+
+ if ( this.options.listenX ) {
+ this.wrapperWidth = this.wrapper.clientWidth;
+ if ( this.options.resize ) {
+ this.indicatorWidth = Math.max(Math.round(this.wrapperWidth * this.wrapperWidth / (this.scroller.scrollerWidth || this.wrapperWidth || 1)), 8);
+ this.indicatorStyle.width = this.indicatorWidth + 'px';
+ } else {
+ this.indicatorWidth = this.indicator.clientWidth;
+ }
+
+ this.maxPosX = this.wrapperWidth - this.indicatorWidth;
+
+ if ( this.options.shrink == 'clip' ) {
+ this.minBoundaryX = -this.indicatorWidth + 8;
+ this.maxBoundaryX = this.wrapperWidth - 8;
+ } else {
+ this.minBoundaryX = 0;
+ this.maxBoundaryX = this.maxPosX;
+ }
+
+ this.sizeRatioX = this.options.speedRatioX || (this.scroller.maxScrollX && (this.maxPosX / this.scroller.maxScrollX));
+ }
+
+ if ( this.options.listenY ) {
+ this.wrapperHeight = this.wrapper.clientHeight;
+ if ( this.options.resize ) {
+ this.indicatorHeight = Math.max(Math.round(this.wrapperHeight * this.wrapperHeight / (this.scroller.scrollerHeight || this.wrapperHeight || 1)), 8);
+ this.indicatorStyle.height = this.indicatorHeight + 'px';
+ } else {
+ this.indicatorHeight = this.indicator.clientHeight;
+ }
+
+ this.maxPosY = this.wrapperHeight - this.indicatorHeight;
+
+ if ( this.options.shrink == 'clip' ) {
+ this.minBoundaryY = -this.indicatorHeight + 8;
+ this.maxBoundaryY = this.wrapperHeight - 8;
+ } else {
+ this.minBoundaryY = 0;
+ this.maxBoundaryY = this.maxPosY;
+ }
+
+ this.maxPosY = this.wrapperHeight - this.indicatorHeight;
+ this.sizeRatioY = this.options.speedRatioY || (this.scroller.maxScrollY && (this.maxPosY / this.scroller.maxScrollY));
+ }
+
+ this.updatePosition();
+ },
+
+ updatePosition: function () {
+ var x = this.options.listenX && Math.round(this.sizeRatioX * this.scroller.x) || 0,
+ y = this.options.listenY && Math.round(this.sizeRatioY * this.scroller.y) || 0;
+
+ if ( !this.options.ignoreBoundaries ) {
+ if ( x < this.minBoundaryX ) {
+ if ( this.options.shrink == 'scale' ) {
+ this.width = Math.max(this.indicatorWidth + x, 8);
+ this.indicatorStyle.width = this.width + 'px';
+ }
+ x = this.minBoundaryX;
+ } else if ( x > this.maxBoundaryX ) {
+ if ( this.options.shrink == 'scale' ) {
+ this.width = Math.max(this.indicatorWidth - (x - this.maxPosX), 8);
+ this.indicatorStyle.width = this.width + 'px';
+ x = this.maxPosX + this.indicatorWidth - this.width;
+ } else {
+ x = this.maxBoundaryX;
+ }
+ } else if ( this.options.shrink == 'scale' && this.width != this.indicatorWidth ) {
+ this.width = this.indicatorWidth;
+ this.indicatorStyle.width = this.width + 'px';
+ }
+
+ if ( y < this.minBoundaryY ) {
+ if ( this.options.shrink == 'scale' ) {
+ this.height = Math.max(this.indicatorHeight + y * 3, 8);
+ this.indicatorStyle.height = this.height + 'px';
+ }
+ y = this.minBoundaryY;
+ } else if ( y > this.maxBoundaryY ) {
+ if ( this.options.shrink == 'scale' ) {
+ this.height = Math.max(this.indicatorHeight - (y - this.maxPosY) * 3, 8);
+ this.indicatorStyle.height = this.height + 'px';
+ y = this.maxPosY + this.indicatorHeight - this.height;
+ } else {
+ y = this.maxBoundaryY;
+ }
+ } else if ( this.options.shrink == 'scale' && this.height != this.indicatorHeight ) {
+ this.height = this.indicatorHeight;
+ this.indicatorStyle.height = this.height + 'px';
+ }
+ }
+
+ this.x = x;
+ this.y = y;
+
+ if ( this.scroller.options.useTransform ) {
+ this.indicatorStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.scroller.translateZ;
+ } else {
+ this.indicatorStyle.left = x + 'px';
+ this.indicatorStyle.top = y + 'px';
+ }
+ },
+
+ _pos: function (x, y) {
+ if ( x < 0 ) {
+ x = 0;
+ } else if ( x > this.maxPosX ) {
+ x = this.maxPosX;
+ }
+
+ if ( y < 0 ) {
+ y = 0;
+ } else if ( y > this.maxPosY ) {
+ y = this.maxPosY;
+ }
+
+ x = this.options.listenX ? Math.round(x / this.sizeRatioX) : this.scroller.x;
+ y = this.options.listenY ? Math.round(y / this.sizeRatioY) : this.scroller.y;
+
+ this.scroller.scrollTo(x, y);
+ },
+
+ fade: function (val, hold) {
+ if ( hold && !this.visible ) {
+ return;
+ }
+
+ clearTimeout(this.fadeTimeout);
+ this.fadeTimeout = null;
+
+ var time = val ? 250 : 500,
+ delay = val ? 0 : 300;
+
+ val = val ? '1' : '0';
+
+ this.wrapperStyle[utils.style.transitionDuration] = time + 'ms';
+
+ this.fadeTimeout = setTimeout((function (val) {
+ this.wrapperStyle.opacity = val;
+ this.visible = +val;
+ }).bind(this, val), delay);
+ }
+};
+
+IScroll.utils = utils;
+
+if ( typeof module != 'undefined' && module.exports ) {
+ module.exports = IScroll;
+} else {
+ window.IScroll = IScroll;
+}
+
+})(window, document, Math); \ No newline at end of file
diff --git a/StoneIsland/platforms/ios/www/js/vendor/iscroll.js b/StoneIsland/platforms/ios/www/js/vendor/iscroll.js
index 8bd2b8da..09e07d69 100755..100644
--- a/StoneIsland/platforms/ios/www/js/vendor/iscroll.js
+++ b/StoneIsland/platforms/ios/www/js/vendor/iscroll.js
@@ -1,2011 +1,2170 @@
-/*! iScroll v5.1.3 ~ (c) 2008-2014 Matteo Spinelli ~ http://cubiq.org/license */
+/*! iScroll v5.2.0-snapshot ~ (c) 2008-2017 Matteo Spinelli ~ http://cubiq.org/license */
(function (window, document, Math) {
-var rAF = window.requestAnimationFrame ||
- window.webkitRequestAnimationFrame ||
- window.mozRequestAnimationFrame ||
- window.oRequestAnimationFrame ||
- window.msRequestAnimationFrame ||
- function (callback) { window.setTimeout(callback, 1000 / 60); };
+var rAF = window.requestAnimationFrame ||
+ window.webkitRequestAnimationFrame ||
+ window.mozRequestAnimationFrame ||
+ window.oRequestAnimationFrame ||
+ window.msRequestAnimationFrame ||
+ function (callback) { window.setTimeout(callback, 1000 / 60); };
var utils = (function () {
- var me = {};
+ var me = {};
- var _elementStyle = document.createElement('div').style;
- var _vendor = (function () {
- var vendors = ['t', 'webkitT', 'MozT', 'msT', 'OT'],
- transform,
- i = 0,
- l = vendors.length;
+ var _elementStyle = document.createElement('div').style;
+ var _vendor = (function () {
+ var vendors = ['t', 'webkitT', 'MozT', 'msT', 'OT'],
+ transform,
+ i = 0,
+ l = vendors.length;
- for ( ; i < l; i++ ) {
- transform = vendors[i] + 'ransform';
- if ( transform in _elementStyle ) return vendors[i].substr(0, vendors[i].length-1);
- }
+ for ( ; i < l; i++ ) {
+ transform = vendors[i] + 'ransform';
+ if ( transform in _elementStyle ) return vendors[i].substr(0, vendors[i].length-1);
+ }
- return false;
- })();
+ return false;
+ })();
- function _prefixStyle (style) {
- if ( _vendor === false ) return false;
- if ( _vendor === '' ) return style;
- return _vendor + style.charAt(0).toUpperCase() + style.substr(1);
- }
+ function _prefixStyle (style) {
+ if ( _vendor === false ) return false;
+ if ( _vendor === '' ) return style;
+ return _vendor + style.charAt(0).toUpperCase() + style.substr(1);
+ }
- me.getTime = Date.now || function getTime () { return new Date().getTime(); };
+ me.getTime = Date.now || function getTime () { return new Date().getTime(); };
- me.extend = function (target, obj) {
- for ( var i in obj ) {
- target[i] = obj[i];
- }
- };
+ me.extend = function (target, obj) {
+ for ( var i in obj ) {
+ target[i] = obj[i];
+ }
+ };
- me.addEvent = function (el, type, fn, capture) {
- el.addEventListener(type, fn, !!capture);
- };
+ me.addEvent = function (el, type, fn, capture) {
+ el.addEventListener(type, fn, !!capture);
+ };
- me.removeEvent = function (el, type, fn, capture) {
- el.removeEventListener(type, fn, !!capture);
- };
+ me.removeEvent = function (el, type, fn, capture) {
+ el.removeEventListener(type, fn, !!capture);
+ };
- me.prefixPointerEvent = function (pointerEvent) {
- return window.MSPointerEvent ?
- 'MSPointer' + pointerEvent.charAt(9).toUpperCase() + pointerEvent.substr(10):
- pointerEvent;
- };
+ me.prefixPointerEvent = function (pointerEvent) {
+ return window.MSPointerEvent ?
+ 'MSPointer' + pointerEvent.charAt(7).toUpperCase() + pointerEvent.substr(8):
+ pointerEvent;
+ };
- me.momentum = function (current, start, time, lowerMargin, wrapperSize, deceleration) {
- var distance = current - start,
- speed = Math.abs(distance) / time,
- destination,
- duration;
+ me.momentum = function (current, start, time, lowerMargin, wrapperSize, deceleration) {
+ var distance = current - start,
+ speed = Math.abs(distance) / time,
+ destination,
+ duration;
- deceleration = deceleration === undefined ? 0.0006 : deceleration;
+ deceleration = deceleration === undefined ? 0.0006 : deceleration;
- destination = current + ( speed * speed ) / ( 2 * deceleration ) * ( distance < 0 ? -1 : 1 );
- duration = speed / deceleration;
+ destination = current + ( speed * speed ) / ( 2 * deceleration ) * ( distance < 0 ? -1 : 1 );
+ duration = speed / deceleration;
- if ( destination < lowerMargin ) {
- destination = wrapperSize ? lowerMargin - ( wrapperSize / 2.5 * ( speed / 8 ) ) : lowerMargin;
- distance = Math.abs(destination - current);
- duration = distance / speed;
- } else if ( destination > 0 ) {
- destination = wrapperSize ? wrapperSize / 2.5 * ( speed / 8 ) : 0;
- distance = Math.abs(current) + destination;
- duration = distance / speed;
- }
+ if ( destination < lowerMargin ) {
+ destination = wrapperSize ? lowerMargin - ( wrapperSize / 2.5 * ( speed / 8 ) ) : lowerMargin;
+ distance = Math.abs(destination - current);
+ duration = distance / speed;
+ } else if ( destination > 0 ) {
+ destination = wrapperSize ? wrapperSize / 2.5 * ( speed / 8 ) : 0;
+ distance = Math.abs(current) + destination;
+ duration = distance / speed;
+ }
- return {
- destination: Math.round(destination),
- duration: duration
- };
- };
+ return {
+ destination: Math.round(destination),
+ duration: duration
+ };
+ };
- var _transform = _prefixStyle('transform');
+ var _transform = _prefixStyle('transform');
- me.extend(me, {
- hasTransform: _transform !== false,
- hasPerspective: _prefixStyle('perspective') in _elementStyle,
- hasTouch: 'ontouchstart' in window,
- hasPointer: window.PointerEvent || window.MSPointerEvent, // IE10 is prefixed
- hasTransition: _prefixStyle('transition') in _elementStyle
- });
+ me.extend(me, {
+ hasTransform: _transform !== false,
+ hasPerspective: _prefixStyle('perspective') in _elementStyle,
+ hasTouch: 'ontouchstart' in window,
+ hasPointer: !!(window.PointerEvent || window.MSPointerEvent), // IE10 is prefixed
+ hasTransition: _prefixStyle('transition') in _elementStyle
+ });
- // This should find all Android browsers lower than build 535.19 (both stock browser and webview)
- me.isBadAndroid = /Android /.test(window.navigator.appVersion) && !(/Chrome\/\d/.test(window.navigator.appVersion));
+ /*
+ This should find all Android browsers lower than build 535.19 (both stock browser and webview)
+ - galaxy S2 is ok
+ - 2.3.6 : `AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1`
+ - 4.0.4 : `AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30`
+ - galaxy S3 is badAndroid (stock brower, webview)
+ `AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30`
+ - galaxy S4 is badAndroid (stock brower, webview)
+ `AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30`
+ - galaxy S5 is OK
+ `AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.36 (Chrome/)`
+ - galaxy S6 is OK
+ `AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.36 (Chrome/)`
+ */
+ me.isBadAndroid = (function() {
+ var appVersion = window.navigator.appVersion;
+ // Android browser is not a chrome browser.
+ if (/Android/.test(appVersion) && !(/Chrome\/\d/.test(appVersion))) {
+ var safariVersion = appVersion.match(/Safari\/(\d+.\d)/);
+ if(safariVersion && typeof safariVersion === "object" && safariVersion.length >= 2) {
+ return parseFloat(safariVersion[1]) < 535.19;
+ } else {
+ return true;
+ }
+ } else {
+ return false;
+ }
+ })();
- me.extend(me.style = {}, {
- transform: _transform,
- transitionTimingFunction: _prefixStyle('transitionTimingFunction'),
- transitionDuration: _prefixStyle('transitionDuration'),
- transitionDelay: _prefixStyle('transitionDelay'),
- transformOrigin: _prefixStyle('transformOrigin')
- });
+ me.extend(me.style = {}, {
+ transform: _transform,
+ transitionTimingFunction: _prefixStyle('transitionTimingFunction'),
+ transitionDuration: _prefixStyle('transitionDuration'),
+ transitionDelay: _prefixStyle('transitionDelay'),
+ transformOrigin: _prefixStyle('transformOrigin'),
+ touchAction: _prefixStyle('touchAction')
+ });
- me.hasClass = function (e, c) {
- var re = new RegExp("(^|\\s)" + c + "(\\s|$)");
- return re.test(e.className);
- };
+ me.hasClass = function (e, c) {
+ var re = new RegExp("(^|\\s)" + c + "(\\s|$)");
+ return re.test(e.className);
+ };
- me.addClass = function (e, c) {
- if ( me.hasClass(e, c) ) {
- return;
- }
+ me.addClass = function (e, c) {
+ if ( me.hasClass(e, c) ) {
+ return;
+ }
- var newclass = e.className.split(' ');
- newclass.push(c);
- e.className = newclass.join(' ');
- };
+ var newclass = e.className.split(' ');
+ newclass.push(c);
+ e.className = newclass.join(' ');
+ };
- me.removeClass = function (e, c) {
- if ( !me.hasClass(e, c) ) {
- return;
- }
+ me.removeClass = function (e, c) {
+ if ( !me.hasClass(e, c) ) {
+ return;
+ }
- var re = new RegExp("(^|\\s)" + c + "(\\s|$)", 'g');
- e.className = e.className.replace(re, ' ');
- };
+ var re = new RegExp("(^|\\s)" + c + "(\\s|$)", 'g');
+ e.className = e.className.replace(re, ' ');
+ };
- me.offset = function (el) {
- var left = -el.offsetLeft,
- top = -el.offsetTop;
+ me.offset = function (el) {
+ var left = -el.offsetLeft,
+ top = -el.offsetTop;
- // jshint -W084
- while (el = el.offsetParent) {
- left -= el.offsetLeft;
- top -= el.offsetTop;
- }
- // jshint +W084
+ // jshint -W084
+ while (el = el.offsetParent) {
+ left -= el.offsetLeft;
+ top -= el.offsetTop;
+ }
+ // jshint +W084
- return {
- left: left,
- top: top
- };
- };
+ return {
+ left: left,
+ top: top
+ };
+ };
- me.preventDefaultException = function (el, exceptions) {
- for ( var i in exceptions ) {
- if ( exceptions[i].test(el[i]) ) {
- return true;
- }
- }
+ me.preventDefaultException = function (el, exceptions) {
+ for ( var i in exceptions ) {
+ if ( exceptions[i].test(el[i]) ) {
+ return true;
+ }
+ }
- return false;
- };
+ return false;
+ };
- me.extend(me.eventType = {}, {
- touchstart: 1,
- touchmove: 1,
- touchend: 1,
+ me.extend(me.eventType = {}, {
+ touchstart: 1,
+ touchmove: 1,
+ touchend: 1,
- mousedown: 2,
- mousemove: 2,
- mouseup: 2,
+ mousedown: 2,
+ mousemove: 2,
+ mouseup: 2,
- pointerdown: 3,
- pointermove: 3,
- pointerup: 3,
+ pointerdown: 3,
+ pointermove: 3,
+ pointerup: 3,
- MSPointerDown: 3,
- MSPointerMove: 3,
- MSPointerUp: 3
- });
+ MSPointerDown: 3,
+ MSPointerMove: 3,
+ MSPointerUp: 3
+ });
- me.extend(me.ease = {}, {
- quadratic: {
- style: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',
- fn: function (k) {
- return k * ( 2 - k );
- }
- },
- circular: {
- style: 'cubic-bezier(0.1, 0.57, 0.1, 1)', // Not properly "circular" but this looks better, it should be (0.075, 0.82, 0.165, 1)
- fn: function (k) {
- return Math.sqrt( 1 - ( --k * k ) );
- }
- },
- back: {
- style: 'cubic-bezier(0.175, 0.885, 0.32, 1.275)',
- fn: function (k) {
- var b = 4;
- return ( k = k - 1 ) * k * ( ( b + 1 ) * k + b ) + 1;
- }
- },
- bounce: {
- style: '',
- fn: function (k) {
- if ( ( k /= 1 ) < ( 1 / 2.75 ) ) {
- return 7.5625 * k * k;
- } else if ( k < ( 2 / 2.75 ) ) {
- return 7.5625 * ( k -= ( 1.5 / 2.75 ) ) * k + 0.75;
- } else if ( k < ( 2.5 / 2.75 ) ) {
- return 7.5625 * ( k -= ( 2.25 / 2.75 ) ) * k + 0.9375;
- } else {
- return 7.5625 * ( k -= ( 2.625 / 2.75 ) ) * k + 0.984375;
- }
- }
- },
- elastic: {
- style: '',
- fn: function (k) {
- var f = 0.22,
- e = 0.4;
+ me.extend(me.ease = {}, {
+ quadratic: {
+ style: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',
+ fn: function (k) {
+ return k * ( 2 - k );
+ }
+ },
+ circular: {
+ style: 'cubic-bezier(0.1, 0.57, 0.1, 1)', // Not properly "circular" but this looks better, it should be (0.075, 0.82, 0.165, 1)
+ fn: function (k) {
+ return Math.sqrt( 1 - ( --k * k ) );
+ }
+ },
+ back: {
+ style: 'cubic-bezier(0.175, 0.885, 0.32, 1.275)',
+ fn: function (k) {
+ var b = 4;
+ return ( k = k - 1 ) * k * ( ( b + 1 ) * k + b ) + 1;
+ }
+ },
+ bounce: {
+ style: '',
+ fn: function (k) {
+ if ( ( k /= 1 ) < ( 1 / 2.75 ) ) {
+ return 7.5625 * k * k;
+ } else if ( k < ( 2 / 2.75 ) ) {
+ return 7.5625 * ( k -= ( 1.5 / 2.75 ) ) * k + 0.75;
+ } else if ( k < ( 2.5 / 2.75 ) ) {
+ return 7.5625 * ( k -= ( 2.25 / 2.75 ) ) * k + 0.9375;
+ } else {
+ return 7.5625 * ( k -= ( 2.625 / 2.75 ) ) * k + 0.984375;
+ }
+ }
+ },
+ elastic: {
+ style: '',
+ fn: function (k) {
+ var f = 0.22,
+ e = 0.4;
- if ( k === 0 ) { return 0; }
- if ( k == 1 ) { return 1; }
+ if ( k === 0 ) { return 0; }
+ if ( k == 1 ) { return 1; }
- return ( e * Math.pow( 2, - 10 * k ) * Math.sin( ( k - f / 4 ) * ( 2 * Math.PI ) / f ) + 1 );
- }
- }
- });
+ return ( e * Math.pow( 2, - 10 * k ) * Math.sin( ( k - f / 4 ) * ( 2 * Math.PI ) / f ) + 1 );
+ }
+ }
+ });
- me.tap = function (e, eventName) {
- var ev = document.createEvent('Event');
- ev.initEvent(eventName, true, true);
- ev.pageX = e.pageX;
- ev.pageY = e.pageY;
- e.target.dispatchEvent(ev);
- };
+ me.tap = function (e, eventName) {
+ var ev = document.createEvent('Event');
+ ev.initEvent(eventName, true, true);
+ ev.pageX = e.pageX;
+ ev.pageY = e.pageY;
+ e.target.dispatchEvent(ev);
+ };
- me.click = function (e) {
- var target = e.target,
- ev;
+ me.click = function (e) {
+ var target = e.target,
+ ev;
- if ( !(/(SELECT|INPUT|TEXTAREA)/i).test(target.tagName) ) {
- ev = document.createEvent('MouseEvents');
- ev.initMouseEvent('click', true, true, e.view, 1,
- target.screenX, target.screenY, target.clientX, target.clientY,
- e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,
- 0, null);
+ if ( !(/(SELECT|INPUT|TEXTAREA)/i).test(target.tagName) ) {
+ // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/initMouseEvent
+ // initMouseEvent is deprecated.
+ ev = document.createEvent(window.MouseEvent ? 'MouseEvents' : 'Event');
+ ev.initEvent('click', true, true);
+ ev.view = e.view || window;
+ ev.detail = 1;
+ ev.screenX = target.screenX || 0;
+ ev.screenY = target.screenY || 0;
+ ev.clientX = target.clientX || 0;
+ ev.clientY = target.clientY || 0;
+ ev.ctrlKey = !!e.ctrlKey;
+ ev.altKey = !!e.altKey;
+ ev.shiftKey = !!e.shiftKey;
+ ev.metaKey = !!e.metaKey;
+ ev.button = 0;
+ ev.relatedTarget = null;
+ ev._constructed = true;
+ target.dispatchEvent(ev);
+ }
+ };
- ev._constructed = true;
- target.dispatchEvent(ev);
- }
- };
+ me.getTouchAction = function(eventPassthrough, addPinch) {
+ var touchAction = 'none';
+ if ( eventPassthrough === 'vertical' ) {
+ touchAction = 'pan-y';
+ } else if (eventPassthrough === 'horizontal' ) {
+ touchAction = 'pan-x';
+ }
+ if (addPinch && touchAction != 'none') {
+ // add pinch-zoom support if the browser supports it, but if not (eg. Chrome <55) do nothing
+ touchAction += ' pinch-zoom';
+ }
+ return touchAction;
+ };
- return me;
-})();
+ me.getRect = function(el) {
+ if (el instanceof SVGElement) {
+ var rect = el.getBoundingClientRect();
+ return {
+ top : rect.top,
+ left : rect.left,
+ width : rect.width,
+ height : rect.height
+ };
+ } else {
+ return {
+ top : el.offsetTop,
+ left : el.offsetLeft,
+ width : el.offsetWidth,
+ height : el.offsetHeight
+ };
+ }
+ };
+ return me;
+})();
function IScroll (el, options) {
- this.wrapper = typeof el == 'string' ? document.querySelector(el) : el;
- this.scroller = this.wrapper.children[0];
- this.scrollerStyle = this.scroller.style; // cache style for better performance
+ this.wrapper = typeof el == 'string' ? document.querySelector(el) : el;
+ this.scroller = this.wrapper.children[0];
+ this.scrollerStyle = this.scroller.style; // cache style for better performance
- this.options = {
+ this.options = {
- resizeScrollbars: true,
+ resizeScrollbars: true,
- mouseWheelSpeed: 20,
+ mouseWheelSpeed: 20,
- snapThreshold: 0.334,
+ snapThreshold: 0.334,
-// INSERT POINT: OPTIONS
+// INSERT POINT: OPTIONS
+ disablePointer : !utils.hasPointer,
+ disableTouch : utils.hasPointer || !utils.hasTouch,
+ disableMouse : utils.hasPointer || utils.hasTouch,
+ startX: 0,
+ startY: 0,
+ scrollY: true,
+ directionLockThreshold: 5,
+ momentum: true,
- startX: 0,
- startY: 0,
- scrollY: true,
- directionLockThreshold: 5,
- momentum: true,
+ bounce: true,
+ bounceTime: 600,
+ bounceEasing: '',
- bounce: true,
- bounceTime: 600,
- bounceEasing: '',
+ preventDefault: true,
+ preventDefaultException: { tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT)$/ },
- preventDefault: true,
- preventDefaultException: { tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT)$/ },
+ HWCompositing: true,
+ useTransition: true,
+ useTransform: true,
+ bindToWrapper: typeof window.onmousedown === "undefined"
+ };
- HWCompositing: true,
- useTransition: true,
- useTransform: true
- };
+ for ( var i in options ) {
+ this.options[i] = options[i];
+ }
- for ( var i in options ) {
- this.options[i] = options[i];
- }
+ // Normalize options
+ this.translateZ = this.options.HWCompositing && utils.hasPerspective ? ' translateZ(0)' : '';
- // Normalize options
- this.translateZ = this.options.HWCompositing && utils.hasPerspective ? ' translateZ(0)' : '';
+ this.options.useTransition = utils.hasTransition && this.options.useTransition;
+ this.options.useTransform = utils.hasTransform && this.options.useTransform;
- this.options.useTransition = utils.hasTransition && this.options.useTransition;
- this.options.useTransform = utils.hasTransform && this.options.useTransform;
+ this.options.eventPassthrough = this.options.eventPassthrough === true ? 'vertical' : this.options.eventPassthrough;
+ this.options.preventDefault = !this.options.eventPassthrough && this.options.preventDefault;
- this.options.eventPassthrough = this.options.eventPassthrough === true ? 'vertical' : this.options.eventPassthrough;
- this.options.preventDefault = !this.options.eventPassthrough && this.options.preventDefault;
+ // If you want eventPassthrough I have to lock one of the axes
+ this.options.scrollY = this.options.eventPassthrough == 'vertical' ? false : this.options.scrollY;
+ this.options.scrollX = this.options.eventPassthrough == 'horizontal' ? false : this.options.scrollX;
- // If you want eventPassthrough I have to lock one of the axes
- this.options.scrollY = this.options.eventPassthrough == 'vertical' ? false : this.options.scrollY;
- this.options.scrollX = this.options.eventPassthrough == 'horizontal' ? false : this.options.scrollX;
+ // With eventPassthrough we also need lockDirection mechanism
+ this.options.freeScroll = this.options.freeScroll && !this.options.eventPassthrough;
+ this.options.directionLockThreshold = this.options.eventPassthrough ? 0 : this.options.directionLockThreshold;
- // With eventPassthrough we also need lockDirection mechanism
- this.options.freeScroll = this.options.freeScroll && !this.options.eventPassthrough;
- this.options.directionLockThreshold = this.options.eventPassthrough ? 0 : this.options.directionLockThreshold;
+ this.options.bounceEasing = typeof this.options.bounceEasing == 'string' ? utils.ease[this.options.bounceEasing] || utils.ease.circular : this.options.bounceEasing;
- this.options.bounceEasing = typeof this.options.bounceEasing == 'string' ? utils.ease[this.options.bounceEasing] || utils.ease.circular : this.options.bounceEasing;
+ this.options.resizePolling = this.options.resizePolling === undefined ? 60 : this.options.resizePolling;
- this.options.resizePolling = this.options.resizePolling === undefined ? 60 : this.options.resizePolling;
+ if ( this.options.tap === true ) {
+ this.options.tap = 'tap';
+ }
- if ( this.options.tap === true ) {
- this.options.tap = 'tap';
- }
+ // https://github.com/cubiq/iscroll/issues/1029
+ if (!this.options.useTransition && !this.options.useTransform) {
+ if(!(/relative|absolute/i).test(this.scrollerStyle.position)) {
+ this.scrollerStyle.position = "relative";
+ }
+ }
- if ( this.options.shrinkScrollbars == 'scale' ) {
- this.options.useTransition = false;
- }
+ if ( this.options.shrinkScrollbars == 'scale' ) {
+ this.options.useTransition = false;
+ }
- this.options.invertWheelDirection = this.options.invertWheelDirection ? -1 : 1;
+ this.options.invertWheelDirection = this.options.invertWheelDirection ? -1 : 1;
// INSERT POINT: NORMALIZATION
- // Some defaults
- this.x = 0;
- this.y = 0;
- this.directionX = 0;
- this.directionY = 0;
- this._events = {};
+ // Some defaults
+ this.x = 0;
+ this.y = 0;
+ this.directionX = 0;
+ this.directionY = 0;
+ this._events = {};
// INSERT POINT: DEFAULTS
- this._init();
- this.refresh();
+ this._init();
+ this.refresh();
- this.scrollTo(this.options.startX, this.options.startY);
- this.enable();
+ this.scrollTo(this.options.startX, this.options.startY);
+ this.enable();
}
IScroll.prototype = {
- version: '5.1.3',
+ version: '5.2.0-snapshot',
- _init: function () {
- this._initEvents();
+ _init: function () {
+ this._initEvents();
- if ( this.options.scrollbars || this.options.indicators ) {
- this._initIndicators();
- }
+ if ( this.options.scrollbars || this.options.indicators ) {
+ this._initIndicators();
+ }
- if ( this.options.mouseWheel ) {
- this._initWheel();
- }
+ if ( this.options.mouseWheel ) {
+ this._initWheel();
+ }
- if ( this.options.snap ) {
- this._initSnap();
- }
+ if ( this.options.snap ) {
+ this._initSnap();
+ }
- if ( this.options.keyBindings ) {
- this._initKeys();
- }
+ if ( this.options.keyBindings ) {
+ this._initKeys();
+ }
// INSERT POINT: _init
- },
-
- destroy: function () {
- this._initEvents(true);
-
- this._execEvent('destroy');
- },
+ },
- _transitionEnd: function (e) {
- if ( e.target != this.scroller || !this.isInTransition ) {
- return;
- }
+ destroy: function () {
+ this._initEvents(true);
+ clearTimeout(this.resizeTimeout);
+ this.resizeTimeout = null;
+ this._execEvent('destroy');
+ },
- this._transitionTime();
- if ( !this.resetPosition(this.options.bounceTime) ) {
- this.isInTransition = false;
- this._execEvent('scrollEnd');
- }
- },
+ _transitionEnd: function (e) {
+ if ( e.target != this.scroller || !this.isInTransition ) {
+ return;
+ }
- _start: function (e) {
- // React to left mouse button only
- if ( utils.eventType[e.type] != 1 ) {
- if ( e.button !== 0 ) {
- return;
- }
- }
+ this._transitionTime();
+ if ( !this.resetPosition(this.options.bounceTime) ) {
+ this.isInTransition = false;
+ this._execEvent('scrollEnd');
+ }
+ },
- if ( !this.enabled || (this.initiated && utils.eventType[e.type] !== this.initiated) ) {
- return;
- }
+ _start: function (e) {
+ // React to left mouse button only
+ if ( utils.eventType[e.type] != 1 ) {
+ // for button property
+ // http://unixpapa.com/js/mouse.html
+ var button;
+ if (!e.which) {
+ /* IE case */
+ button = (e.button < 2) ? 0 :
+ ((e.button == 4) ? 1 : 2);
+ } else {
+ /* All others */
+ button = e.button;
+ }
+ if ( button !== 0 ) {
+ return;
+ }
+ }
- if ( this.options.preventDefault && !utils.isBadAndroid && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) {
- e.preventDefault();
- }
+ if ( !this.enabled || (this.initiated && utils.eventType[e.type] !== this.initiated) ) {
+ return;
+ }
- var point = e.touches ? e.touches[0] : e,
- pos;
+ if ( this.options.preventDefault && !utils.isBadAndroid && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) {
+ e.preventDefault();
+ }
- this.initiated = utils.eventType[e.type];
- this.moved = false;
- this.distX = 0;
- this.distY = 0;
- this.directionX = 0;
- this.directionY = 0;
- this.directionLocked = 0;
+ var point = e.touches ? e.touches[0] : e,
+ pos;
- this._transitionTime();
+ this.initiated = utils.eventType[e.type];
+ this.moved = false;
+ this.distX = 0;
+ this.distY = 0;
+ this.directionX = 0;
+ this.directionY = 0;
+ this.directionLocked = 0;
- this.startTime = utils.getTime();
+ this.startTime = utils.getTime();
- if ( this.options.useTransition && this.isInTransition ) {
- this.isInTransition = false;
- pos = this.getComputedPosition();
- this._translate(Math.round(pos.x), Math.round(pos.y));
- this._execEvent('scrollEnd');
- } else if ( !this.options.useTransition && this.isAnimating ) {
- this.isAnimating = false;
- this._execEvent('scrollEnd');
- }
+ if ( this.options.useTransition && this.isInTransition ) {
+ this._transitionTime();
+ this.isInTransition = false;
+ pos = this.getComputedPosition();
+ this._translate(Math.round(pos.x), Math.round(pos.y));
+ this._execEvent('scrollEnd');
+ } else if ( !this.options.useTransition && this.isAnimating ) {
+ this.isAnimating = false;
+ this._execEvent('scrollEnd');
+ }
- this.startX = this.x;
- this.startY = this.y;
- this.absStartX = this.x;
- this.absStartY = this.y;
- this.pointX = point.pageX;
- this.pointY = point.pageY;
+ this.startX = this.x;
+ this.startY = this.y;
+ this.absStartX = this.x;
+ this.absStartY = this.y;
+ this.pointX = point.pageX;
+ this.pointY = point.pageY;
- this._execEvent('beforeScrollStart');
- },
+ this._execEvent('beforeScrollStart');
+ },
- _move: function (e) {
- if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) {
- return;
- }
+ _move: function (e) {
+ if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) {
+ return;
+ }
- if ( this.options.preventDefault ) { // increases performance on Android? TODO: check!
- e.preventDefault();
- }
+ if ( this.options.preventDefault ) { // increases performance on Android? TODO: check!
+ e.preventDefault();
+ }
- var point = e.touches ? e.touches[0] : e,
- deltaX = point.pageX - this.pointX,
- deltaY = point.pageY - this.pointY,
- timestamp = utils.getTime(),
- newX, newY,
- absDistX, absDistY;
+ var point = e.touches ? e.touches[0] : e,
+ deltaX = point.pageX - this.pointX,
+ deltaY = point.pageY - this.pointY,
+ timestamp = utils.getTime(),
+ newX, newY,
+ absDistX, absDistY;
- this.pointX = point.pageX;
- this.pointY = point.pageY;
+ this.pointX = point.pageX;
+ this.pointY = point.pageY;
- this.distX += deltaX;
- this.distY += deltaY;
- absDistX = Math.abs(this.distX);
- absDistY = Math.abs(this.distY);
+ this.distX += deltaX;
+ this.distY += deltaY;
+ absDistX = Math.abs(this.distX);
+ absDistY = Math.abs(this.distY);
- // We need to move at least 10 pixels for the scrolling to initiate
- if ( timestamp - this.endTime > 300 && (absDistX < 10 && absDistY < 10) ) {
- return;
- }
+ // We need to move at least 10 pixels for the scrolling to initiate
+ if ( timestamp - this.endTime > 300 && (absDistX < 10 && absDistY < 10) ) {
+ return;
+ }
- // If you are scrolling in one direction lock the other
- if ( !this.directionLocked && !this.options.freeScroll ) {
- if ( absDistX > absDistY + this.options.directionLockThreshold ) {
- this.directionLocked = 'h'; // lock horizontally
- } else if ( absDistY >= absDistX + this.options.directionLockThreshold ) {
- this.directionLocked = 'v'; // lock vertically
- } else {
- this.directionLocked = 'n'; // no lock
- }
- }
+ // If you are scrolling in one direction lock the other
+ if ( !this.directionLocked && !this.options.freeScroll ) {
+ if ( absDistX > absDistY + this.options.directionLockThreshold ) {
+ this.directionLocked = 'h'; // lock horizontally
+ } else if ( absDistY >= absDistX + this.options.directionLockThreshold ) {
+ this.directionLocked = 'v'; // lock vertically
+ } else {
+ this.directionLocked = 'n'; // no lock
+ }
+ }
- if ( this.directionLocked == 'h' ) {
- if ( this.options.eventPassthrough == 'vertical' ) {
- e.preventDefault();
- } else if ( this.options.eventPassthrough == 'horizontal' ) {
- this.initiated = false;
- return;
- }
+ if ( this.directionLocked == 'h' ) {
+ if ( this.options.eventPassthrough == 'vertical' ) {
+ e.preventDefault();
+ } else if ( this.options.eventPassthrough == 'horizontal' ) {
+ this.initiated = false;
+ return;
+ }
- deltaY = 0;
- } else if ( this.directionLocked == 'v' ) {
- if ( this.options.eventPassthrough == 'horizontal' ) {
- e.preventDefault();
- } else if ( this.options.eventPassthrough == 'vertical' ) {
- this.initiated = false;
- return;
- }
+ deltaY = 0;
+ } else if ( this.directionLocked == 'v' ) {
+ if ( this.options.eventPassthrough == 'horizontal' ) {
+ e.preventDefault();
+ } else if ( this.options.eventPassthrough == 'vertical' ) {
+ this.initiated = false;
+ return;
+ }
- deltaX = 0;
- }
+ deltaX = 0;
+ }
- deltaX = this.hasHorizontalScroll ? deltaX : 0;
- deltaY = this.hasVerticalScroll ? deltaY : 0;
+ deltaX = this.hasHorizontalScroll ? deltaX : 0;
+ deltaY = this.hasVerticalScroll ? deltaY : 0;
- newX = this.x + deltaX;
- newY = this.y + deltaY;
+ newX = this.x + deltaX;
+ newY = this.y + deltaY;
- // Slow down if outside of the boundaries
- if ( newX > 0 || newX < this.maxScrollX ) {
- newX = this.options.bounce ? this.x + deltaX / 3 : newX > 0 ? 0 : this.maxScrollX;
- }
- if ( newY > 0 || newY < this.maxScrollY ) {
- newY = this.options.bounce ? this.y + deltaY / 3 : newY > 0 ? 0 : this.maxScrollY;
- }
+ // Slow down if outside of the boundaries
+ if ( newX > 0 || newX < this.maxScrollX ) {
+ newX = this.options.bounce ? this.x + deltaX / 3 : newX > 0 ? 0 : this.maxScrollX;
+ }
+ if ( newY > 0 || newY < this.maxScrollY ) {
+ newY = this.options.bounce ? this.y + deltaY / 3 : newY > 0 ? 0 : this.maxScrollY;
+ }
- this.directionX = deltaX > 0 ? -1 : deltaX < 0 ? 1 : 0;
- this.directionY = deltaY > 0 ? -1 : deltaY < 0 ? 1 : 0;
+ this.directionX = deltaX > 0 ? -1 : deltaX < 0 ? 1 : 0;
+ this.directionY = deltaY > 0 ? -1 : deltaY < 0 ? 1 : 0;
- if ( !this.moved ) {
- this._execEvent('scrollStart');
- }
+ if ( !this.moved ) {
+ this._execEvent('scrollStart');
+ }
- this.moved = true;
+ this.moved = true;
- this._translate(newX, newY);
+ this._translate(newX, newY);
/* REPLACE START: _move */
- if ( timestamp - this.startTime > 300 ) {
- this.startTime = timestamp;
- this.startX = this.x;
- this.startY = this.y;
- }
+ if ( timestamp - this.startTime > 300 ) {
+ this.startTime = timestamp;
+ this.startX = this.x;
+ this.startY = this.y;
+ }
/* REPLACE END: _move */
- },
+ },
- _end: function (e) {
- if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) {
- return;
- }
+ _end: function (e) {
+ if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) {
+ return;
+ }
- if ( this.options.preventDefault && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) {
- e.preventDefault();
- }
+ if ( this.options.preventDefault && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) {
+ e.preventDefault();
+ }
- var point = e.changedTouches ? e.changedTouches[0] : e,
- momentumX,
- momentumY,
- duration = utils.getTime() - this.startTime,
- newX = Math.round(this.x),
- newY = Math.round(this.y),
- distanceX = Math.abs(newX - this.startX),
- distanceY = Math.abs(newY - this.startY),
- time = 0,
- easing = '';
+ var point = e.changedTouches ? e.changedTouches[0] : e,
+ momentumX,
+ momentumY,
+ duration = utils.getTime() - this.startTime,
+ newX = Math.round(this.x),
+ newY = Math.round(this.y),
+ distanceX = Math.abs(newX - this.startX),
+ distanceY = Math.abs(newY - this.startY),
+ time = 0,
+ easing = '';
- this.isInTransition = 0;
- this.initiated = 0;
- this.endTime = utils.getTime();
+ this.isInTransition = 0;
+ this.initiated = 0;
+ this.endTime = utils.getTime();
- // reset if we are outside of the boundaries
- if ( this.resetPosition(this.options.bounceTime) ) {
- return;
- }
+ // reset if we are outside of the boundaries
+ if ( this.resetPosition(this.options.bounceTime) ) {
+ return;
+ }
- this.scrollTo(newX, newY); // ensures that the last position is rounded
+ this.scrollTo(newX, newY); // ensures that the last position is rounded
- // we scrolled less than 10 pixels
- if ( !this.moved ) {
- if ( this.options.tap ) {
- utils.tap(e, this.options.tap);
- }
+ // we scrolled less than 10 pixels
+ if ( !this.moved ) {
+ if ( this.options.tap ) {
+ utils.tap(e, this.options.tap);
+ }
- if ( this.options.click ) {
- utils.click(e);
- }
+ if ( this.options.click ) {
+ utils.click(e);
+ }
- this._execEvent('scrollCancel');
- return;
- }
+ this._execEvent('scrollCancel');
+ return;
+ }
- if ( this._events.flick && duration < 200 && distanceX < 100 && distanceY < 100 ) {
- this._execEvent('flick');
- return;
- }
+ if ( this._events.flick && duration < 200 && distanceX < 100 && distanceY < 100 ) {
+ this._execEvent('flick');
+ return;
+ }
- // start momentum animation if needed
- if ( this.options.momentum && duration < 300 ) {
- momentumX = this.hasHorizontalScroll ? utils.momentum(this.x, this.startX, duration, this.maxScrollX, this.options.bounce ? this.wrapperWidth : 0, this.options.deceleration) : { destination: newX, duration: 0 };
- momentumY = this.hasVerticalScroll ? utils.momentum(this.y, this.startY, duration, this.maxScrollY, this.options.bounce ? this.wrapperHeight : 0, this.options.deceleration) : { destination: newY, duration: 0 };
- newX = momentumX.destination;
- newY = momentumY.destination;
- time = Math.max(momentumX.duration, momentumY.duration);
- this.isInTransition = 1;
- }
+ // start momentum animation if needed
+ if ( this.options.momentum && duration < 300 ) {
+ momentumX = this.hasHorizontalScroll ? utils.momentum(this.x, this.startX, duration, this.maxScrollX, this.options.bounce ? this.wrapperWidth : 0, this.options.deceleration) : { destination: newX, duration: 0 };
+ momentumY = this.hasVerticalScroll ? utils.momentum(this.y, this.startY, duration, this.maxScrollY, this.options.bounce ? this.wrapperHeight : 0, this.options.deceleration) : { destination: newY, duration: 0 };
+ newX = momentumX.destination;
+ newY = momentumY.destination;
+ time = Math.max(momentumX.duration, momentumY.duration);
+ this.isInTransition = 1;
+ }
- if ( this.options.snap ) {
- var snap = this._nearestSnap(newX, newY);
- this.currentPage = snap;
- time = this.options.snapSpeed || Math.max(
- Math.max(
- Math.min(Math.abs(newX - snap.x), 1000),
- Math.min(Math.abs(newY - snap.y), 1000)
- ), 300);
- newX = snap.x;
- newY = snap.y;
+ if ( this.options.snap ) {
+ var snap = this._nearestSnap(newX, newY);
+ this.currentPage = snap;
+ time = this.options.snapSpeed || Math.max(
+ Math.max(
+ Math.min(Math.abs(newX - snap.x), 1000),
+ Math.min(Math.abs(newY - snap.y), 1000)
+ ), 300);
+ newX = snap.x;
+ newY = snap.y;
- this.directionX = 0;
- this.directionY = 0;
- easing = this.options.bounceEasing;
- }
+ this.directionX = 0;
+ this.directionY = 0;
+ easing = this.options.bounceEasing;
+ }
// INSERT POINT: _end
- if ( newX != this.x || newY != this.y ) {
- // change easing function when scroller goes out of the boundaries
- if ( newX > 0 || newX < this.maxScrollX || newY > 0 || newY < this.maxScrollY ) {
- easing = utils.ease.quadratic;
- }
+ if ( newX != this.x || newY != this.y ) {
+ // change easing function when scroller goes out of the boundaries
+ if ( newX > 0 || newX < this.maxScrollX || newY > 0 || newY < this.maxScrollY ) {
+ easing = utils.ease.quadratic;
+ }
- this.scrollTo(newX, newY, time, easing);
- return;
- }
+ this.scrollTo(newX, newY, time, easing);
+ return;
+ }
- this._execEvent('scrollEnd');
- },
+ this._execEvent('scrollEnd');
+ },
- _resize: function () {
- var that = this;
+ _resize: function () {
+ var that = this;
- clearTimeout(this.resizeTimeout);
+ clearTimeout(this.resizeTimeout);
- this.resizeTimeout = setTimeout(function () {
- that.refresh();
- }, this.options.resizePolling);
- },
+ this.resizeTimeout = setTimeout(function () {
+ that.refresh();
+ }, this.options.resizePolling);
+ },
- resetPosition: function (time) {
- var x = this.x,
- y = this.y;
+ resetPosition: function (time) {
+ var x = this.x,
+ y = this.y;
- time = time || 0;
+ time = time || 0;
- if ( !this.hasHorizontalScroll || this.x > 0 ) {
- x = 0;
- } else if ( this.x < this.maxScrollX ) {
- x = this.maxScrollX;
- }
+ if ( !this.hasHorizontalScroll || this.x > 0 ) {
+ x = 0;
+ } else if ( this.x < this.maxScrollX ) {
+ x = this.maxScrollX;
+ }
- if ( !this.hasVerticalScroll || this.y > 0 ) {
- y = 0;
- } else if ( this.y < this.maxScrollY ) {
- y = this.maxScrollY;
- }
+ if ( !this.hasVerticalScroll || this.y > 0 ) {
+ y = 0;
+ } else if ( this.y < this.maxScrollY ) {
+ y = this.maxScrollY;
+ }
- if ( x == this.x && y == this.y ) {
- return false;
- }
+ if ( x == this.x && y == this.y ) {
+ return false;
+ }
- this.scrollTo(x, y, time, this.options.bounceEasing);
+ this.scrollTo(x, y, time, this.options.bounceEasing);
- return true;
- },
+ return true;
+ },
- disable: function () {
- this.enabled = false;
- },
+ disable: function () {
+ this.enabled = false;
+ },
- enable: function () {
- this.enabled = true;
- },
+ enable: function () {
+ this.enabled = true;
+ },
- refresh: function () {
- var rf = this.wrapper.offsetHeight; // Force reflow
+ refresh: function () {
+ utils.getRect(this.wrapper); // Force reflow
- this.wrapperWidth = this.wrapper.clientWidth;
- this.wrapperHeight = this.wrapper.clientHeight;
+ this.wrapperWidth = this.wrapper.clientWidth;
+ this.wrapperHeight = this.wrapper.clientHeight;
+ var rect = utils.getRect(this.scroller);
/* REPLACE START: refresh */
- this.scrollerWidth = this.scroller.offsetWidth;
- this.scrollerHeight = this.scroller.offsetHeight;
+ this.scrollerWidth = rect.width;
+ this.scrollerHeight = rect.height;
- this.maxScrollX = this.wrapperWidth - this.scrollerWidth;
- this.maxScrollY = this.wrapperHeight - this.scrollerHeight;
+ this.maxScrollX = this.wrapperWidth - this.scrollerWidth;
+ this.maxScrollY = this.wrapperHeight - this.scrollerHeight;
/* REPLACE END: refresh */
- this.hasHorizontalScroll = this.options.scrollX && this.maxScrollX < 0;
- this.hasVerticalScroll = this.options.scrollY && this.maxScrollY < 0;
+ this.hasHorizontalScroll = this.options.scrollX && this.maxScrollX < 0;
+ this.hasVerticalScroll = this.options.scrollY && this.maxScrollY < 0;
+
+ if ( !this.hasHorizontalScroll ) {
+ this.maxScrollX = 0;
+ this.scrollerWidth = this.wrapperWidth;
+ }
- if ( !this.hasHorizontalScroll ) {
- this.maxScrollX = 0;
- this.scrollerWidth = this.wrapperWidth;
- }
+ if ( !this.hasVerticalScroll ) {
+ this.maxScrollY = 0;
+ this.scrollerHeight = this.wrapperHeight;
+ }
- if ( !this.hasVerticalScroll ) {
- this.maxScrollY = 0;
- this.scrollerHeight = this.wrapperHeight;
- }
+ this.endTime = 0;
+ this.directionX = 0;
+ this.directionY = 0;
+
+ if(utils.hasPointer && !this.options.disablePointer) {
+ // The wrapper should have `touchAction` property for using pointerEvent.
+ this.wrapper.style[utils.style.touchAction] = utils.getTouchAction(this.options.eventPassthrough, true);
- this.endTime = 0;
- this.directionX = 0;
- this.directionY = 0;
+ // case. not support 'pinch-zoom'
+ // https://github.com/cubiq/iscroll/issues/1118#issuecomment-270057583
+ if (!this.wrapper.style[utils.style.touchAction]) {
+ this.wrapper.style[utils.style.touchAction] = utils.getTouchAction(this.options.eventPassthrough, false);
+ }
+ }
+ this.wrapperOffset = utils.offset(this.wrapper);
- this.wrapperOffset = utils.offset(this.wrapper);
+ this._execEvent('refresh');
- this._execEvent('refresh');
-
- this.resetPosition();
+ this.resetPosition();
// INSERT POINT: _refresh
- },
-
- on: function (type, fn) {
- if ( !this._events[type] ) {
- this._events[type] = [];
- }
+ },
- this._events[type].push(fn);
- },
+ on: function (type, fn) {
+ if ( !this._events[type] ) {
+ this._events[type] = [];
+ }
- off: function (type, fn) {
- if ( !this._events[type] ) {
- return;
- }
+ this._events[type].push(fn);
+ },
- var index = this._events[type].indexOf(fn);
+ off: function (type, fn) {
+ if ( !this._events[type] ) {
+ return;
+ }
- if ( index > -1 ) {
- this._events[type].splice(index, 1);
- }
- },
+ var index = this._events[type].indexOf(fn);
- _execEvent: function (type) {
- if ( !this._events[type] ) {
- return;
- }
+ if ( index > -1 ) {
+ this._events[type].splice(index, 1);
+ }
+ },
- var i = 0,
- l = this._events[type].length;
+ _execEvent: function (type) {
+ if ( !this._events[type] ) {
+ return;
+ }
- if ( !l ) {
- return;
- }
+ var i = 0,
+ l = this._events[type].length;
- for ( ; i < l; i++ ) {
- this._events[type][i].apply(this, [].slice.call(arguments, 1));
- }
- },
+ if ( !l ) {
+ return;
+ }
- scrollBy: function (x, y, time, easing) {
- x = this.x + x;
- y = this.y + y;
- time = time || 0;
+ for ( ; i < l; i++ ) {
+ this._events[type][i].apply(this, [].slice.call(arguments, 1));
+ }
+ },
- this.scrollTo(x, y, time, easing);
- },
+ scrollBy: function (x, y, time, easing) {
+ x = this.x + x;
+ y = this.y + y;
+ time = time || 0;
- scrollTo: function (x, y, time, easing) {
- easing = easing || utils.ease.circular;
+ this.scrollTo(x, y, time, easing);
+ },
- this.isInTransition = this.options.useTransition && time > 0;
+ scrollTo: function (x, y, time, easing) {
+ easing = easing || utils.ease.circular;
- if ( !time || (this.options.useTransition && easing.style) ) {
- this._transitionTimingFunction(easing.style);
- this._transitionTime(time);
- this._translate(x, y);
- } else {
- this._animate(x, y, time, easing.fn);
- }
- },
+ this.isInTransition = this.options.useTransition && time > 0;
+ var transitionType = this.options.useTransition && easing.style;
+ if ( !time || transitionType ) {
+ if(transitionType) {
+ this._transitionTimingFunction(easing.style);
+ this._transitionTime(time);
+ }
+ this._translate(x, y);
+ } else {
+ this._animate(x, y, time, easing.fn);
+ }
+ },
- scrollToElement: function (el, time, offsetX, offsetY, easing) {
- el = el.nodeType ? el : this.scroller.querySelector(el);
+ scrollToElement: function (el, time, offsetX, offsetY, easing) {
+ el = el.nodeType ? el : this.scroller.querySelector(el);
- if ( !el ) {
- return;
- }
+ if ( !el ) {
+ return;
+ }
- var pos = utils.offset(el);
+ var pos = utils.offset(el);
- pos.left -= this.wrapperOffset.left;
- pos.top -= this.wrapperOffset.top;
+ pos.left -= this.wrapperOffset.left;
+ pos.top -= this.wrapperOffset.top;
- // if offsetX/Y are true we center the element to the screen
- if ( offsetX === true ) {
- offsetX = Math.round(el.offsetWidth / 2 - this.wrapper.offsetWidth / 2);
- }
- if ( offsetY === true ) {
- offsetY = Math.round(el.offsetHeight / 2 - this.wrapper.offsetHeight / 2);
- }
+ // if offsetX/Y are true we center the element to the screen
+ var elRect = utils.getRect(el);
+ var wrapperRect = utils.getRect(this.wrapper);
+ if ( offsetX === true ) {
+ offsetX = Math.round(elRect.width / 2 - wrapperRect.width / 2);
+ }
+ if ( offsetY === true ) {
+ offsetY = Math.round(elRect.height / 2 - wrapperRect.height / 2);
+ }
- pos.left -= offsetX || 0;
- pos.top -= offsetY || 0;
+ pos.left -= offsetX || 0;
+ pos.top -= offsetY || 0;
- pos.left = pos.left > 0 ? 0 : pos.left < this.maxScrollX ? this.maxScrollX : pos.left;
- pos.top = pos.top > 0 ? 0 : pos.top < this.maxScrollY ? this.maxScrollY : pos.top;
+ pos.left = pos.left > 0 ? 0 : pos.left < this.maxScrollX ? this.maxScrollX : pos.left;
+ pos.top = pos.top > 0 ? 0 : pos.top < this.maxScrollY ? this.maxScrollY : pos.top;
- time = time === undefined || time === null || time === 'auto' ? Math.max(Math.abs(this.x-pos.left), Math.abs(this.y-pos.top)) : time;
+ time = time === undefined || time === null || time === 'auto' ? Math.max(Math.abs(this.x-pos.left), Math.abs(this.y-pos.top)) : time;
- this.scrollTo(pos.left, pos.top, time, easing);
- },
+ this.scrollTo(pos.left, pos.top, time, easing);
+ },
- _transitionTime: function (time) {
- time = time || 0;
+ _transitionTime: function (time) {
+ if (!this.options.useTransition) {
+ return;
+ }
+ time = time || 0;
+ var durationProp = utils.style.transitionDuration;
+ if(!durationProp) {
+ return;
+ }
- this.scrollerStyle[utils.style.transitionDuration] = time + 'ms';
+ this.scrollerStyle[durationProp] = time + 'ms';
- if ( !time && utils.isBadAndroid ) {
- this.scrollerStyle[utils.style.transitionDuration] = '0.001s';
- }
+ if ( !time && utils.isBadAndroid ) {
+ this.scrollerStyle[durationProp] = '0.0001ms';
+ // remove 0.0001ms
+ var self = this;
+ rAF(function() {
+ if(self.scrollerStyle[durationProp] === '0.0001ms') {
+ self.scrollerStyle[durationProp] = '0s';
+ }
+ });
+ }
- if ( this.indicators ) {
- for ( var i = this.indicators.length; i--; ) {
- this.indicators[i].transitionTime(time);
- }
- }
+ if ( this.indicators ) {
+ for ( var i = this.indicators.length; i--; ) {
+ this.indicators[i].transitionTime(time);
+ }
+ }
// INSERT POINT: _transitionTime
- },
+ },
- _transitionTimingFunction: function (easing) {
- this.scrollerStyle[utils.style.transitionTimingFunction] = easing;
+ _transitionTimingFunction: function (easing) {
+ this.scrollerStyle[utils.style.transitionTimingFunction] = easing;
- if ( this.indicators ) {
- for ( var i = this.indicators.length; i--; ) {
- this.indicators[i].transitionTimingFunction(easing);
- }
- }
+ if ( this.indicators ) {
+ for ( var i = this.indicators.length; i--; ) {
+ this.indicators[i].transitionTimingFunction(easing);
+ }
+ }
// INSERT POINT: _transitionTimingFunction
- },
+ },
- _translate: function (x, y) {
- if ( this.options.useTransform ) {
+ _translate: function (x, y) {
+ if ( this.options.useTransform ) {
/* REPLACE START: _translate */
- this.scrollerStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.translateZ;
+ this.scrollerStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.translateZ;
/* REPLACE END: _translate */
- } else {
- x = Math.round(x);
- y = Math.round(y);
- this.scrollerStyle.left = x + 'px';
- this.scrollerStyle.top = y + 'px';
- }
+ } else {
+ x = Math.round(x);
+ y = Math.round(y);
+ this.scrollerStyle.left = x + 'px';
+ this.scrollerStyle.top = y + 'px';
+ }
- this.x = x;
- this.y = y;
+ this.x = x;
+ this.y = y;
- if ( this.indicators ) {
- for ( var i = this.indicators.length; i--; ) {
- this.indicators[i].updatePosition();
- }
- }
+ if ( this.indicators ) {
+ for ( var i = this.indicators.length; i--; ) {
+ this.indicators[i].updatePosition();
+ }
+ }
// INSERT POINT: _translate
- },
+ },
- _initEvents: function (remove) {
- var eventType = remove ? utils.removeEvent : utils.addEvent,
- target = this.options.bindToWrapper ? this.wrapper : window;
+ _initEvents: function (remove) {
+ var eventType = remove ? utils.removeEvent : utils.addEvent,
+ target = this.options.bindToWrapper ? this.wrapper : window;
- eventType(window, 'orientationchange', this);
- eventType(window, 'resize', this);
+ eventType(window, 'orientationchange', this);
+ eventType(window, 'resize', this);
- if ( this.options.click ) {
- eventType(this.wrapper, 'click', this, true);
- }
+ if ( this.options.click ) {
+ eventType(this.wrapper, 'click', this, true);
+ }
- if ( !this.options.disableMouse ) {
- eventType(this.wrapper, 'mousedown', this);
- eventType(target, 'mousemove', this);
- eventType(target, 'mousecancel', this);
- eventType(target, 'mouseup', this);
- }
+ if ( !this.options.disableMouse ) {
+ eventType(this.wrapper, 'mousedown', this);
+ eventType(target, 'mousemove', this);
+ eventType(target, 'mousecancel', this);
+ eventType(target, 'mouseup', this);
+ }
- if ( utils.hasPointer && !this.options.disablePointer ) {
- eventType(this.wrapper, utils.prefixPointerEvent('pointerdown'), this);
- eventType(target, utils.prefixPointerEvent('pointermove'), this);
- eventType(target, utils.prefixPointerEvent('pointercancel'), this);
- eventType(target, utils.prefixPointerEvent('pointerup'), this);
- }
+ if ( utils.hasPointer && !this.options.disablePointer ) {
+ eventType(this.wrapper, utils.prefixPointerEvent('pointerdown'), this);
+ eventType(target, utils.prefixPointerEvent('pointermove'), this);
+ eventType(target, utils.prefixPointerEvent('pointercancel'), this);
+ eventType(target, utils.prefixPointerEvent('pointerup'), this);
+ }
- if ( utils.hasTouch && !this.options.disableTouch ) {
- eventType(this.wrapper, 'touchstart', this);
- eventType(target, 'touchmove', this);
- eventType(target, 'touchcancel', this);
- eventType(target, 'touchend', this);
- }
+ if ( utils.hasTouch && !this.options.disableTouch ) {
+ eventType(this.wrapper, 'touchstart', this);
+ eventType(target, 'touchmove', this);
+ eventType(target, 'touchcancel', this);
+ eventType(target, 'touchend', this);
+ }
- eventType(this.scroller, 'transitionend', this);
- eventType(this.scroller, 'webkitTransitionEnd', this);
- eventType(this.scroller, 'oTransitionEnd', this);
- eventType(this.scroller, 'MSTransitionEnd', this);
- },
+ eventType(this.scroller, 'transitionend', this);
+ eventType(this.scroller, 'webkitTransitionEnd', this);
+ eventType(this.scroller, 'oTransitionEnd', this);
+ eventType(this.scroller, 'MSTransitionEnd', this);
+ },
- getComputedPosition: function () {
- var matrix = window.getComputedStyle(this.scroller, null),
- x, y;
+ getComputedPosition: function () {
+ var matrix = window.getComputedStyle(this.scroller, null),
+ x, y;
- if ( this.options.useTransform ) {
- matrix = matrix[utils.style.transform].split(')')[0].split(', ');
- x = +(matrix[12] || matrix[4]);
- y = +(matrix[13] || matrix[5]);
- } else {
- x = +matrix.left.replace(/[^-\d.]/g, '');
- y = +matrix.top.replace(/[^-\d.]/g, '');
- }
+ if ( this.options.useTransform ) {
+ matrix = matrix[utils.style.transform].split(')')[0].split(', ');
+ x = +(matrix[12] || matrix[4]);
+ y = +(matrix[13] || matrix[5]);
+ } else {
+ x = +matrix.left.replace(/[^-\d.]/g, '');
+ y = +matrix.top.replace(/[^-\d.]/g, '');
+ }
- return { x: x, y: y };
- },
+ return { x: x, y: y };
+ },
+ _initIndicators: function () {
+ var interactive = this.options.interactiveScrollbars,
+ customStyle = typeof this.options.scrollbars != 'string',
+ indicators = [],
+ indicator;
- _initIndicators: function () {
- var interactive = this.options.interactiveScrollbars,
- customStyle = typeof this.options.scrollbars != 'string',
- indicators = [],
- indicator;
+ var that = this;
- var that = this;
+ this.indicators = [];
- this.indicators = [];
+ if ( this.options.scrollbars ) {
+ // Vertical scrollbar
+ if ( this.options.scrollY ) {
+ indicator = {
+ el: createDefaultScrollbar('v', interactive, this.options.scrollbars),
+ interactive: interactive,
+ defaultScrollbars: true,
+ customStyle: customStyle,
+ resize: this.options.resizeScrollbars,
+ shrink: this.options.shrinkScrollbars,
+ fade: this.options.fadeScrollbars,
+ listenX: false
+ };
- if ( this.options.scrollbars ) {
- // Vertical scrollbar
- if ( this.options.scrollY ) {
- indicator = {
- el: createDefaultScrollbar('v', interactive, this.options.scrollbars),
- interactive: interactive,
- defaultScrollbars: true,
- customStyle: customStyle,
- resize: this.options.resizeScrollbars,
- shrink: this.options.shrinkScrollbars,
- fade: this.options.fadeScrollbars,
- listenX: false
- };
+ this.wrapper.appendChild(indicator.el);
+ indicators.push(indicator);
+ }
- this.wrapper.appendChild(indicator.el);
- indicators.push(indicator);
- }
+ // Horizontal scrollbar
+ if ( this.options.scrollX ) {
+ indicator = {
+ el: createDefaultScrollbar('h', interactive, this.options.scrollbars),
+ interactive: interactive,
+ defaultScrollbars: true,
+ customStyle: customStyle,
+ resize: this.options.resizeScrollbars,
+ shrink: this.options.shrinkScrollbars,
+ fade: this.options.fadeScrollbars,
+ listenY: false
+ };
- // Horizontal scrollbar
- if ( this.options.scrollX ) {
- indicator = {
- el: createDefaultScrollbar('h', interactive, this.options.scrollbars),
- interactive: interactive,
- defaultScrollbars: true,
- customStyle: customStyle,
- resize: this.options.resizeScrollbars,
- shrink: this.options.shrinkScrollbars,
- fade: this.options.fadeScrollbars,
- listenY: false
- };
+ this.wrapper.appendChild(indicator.el);
+ indicators.push(indicator);
+ }
+ }
- this.wrapper.appendChild(indicator.el);
- indicators.push(indicator);
- }
- }
+ if ( this.options.indicators ) {
+ // TODO: check concat compatibility
+ indicators = indicators.concat(this.options.indicators);
+ }
- if ( this.options.indicators ) {
- // TODO: check concat compatibility
- indicators = indicators.concat(this.options.indicators);
- }
+ for ( var i = indicators.length; i--; ) {
+ this.indicators.push( new Indicator(this, indicators[i]) );
+ }
- for ( var i = indicators.length; i--; ) {
- this.indicators.push( new Indicator(this, indicators[i]) );
- }
+ // TODO: check if we can use array.map (wide compatibility and performance issues)
+ function _indicatorsMap (fn) {
+ if (that.indicators) {
+ for ( var i = that.indicators.length; i--; ) {
+ fn.call(that.indicators[i]);
+ }
+ }
+ }
- // TODO: check if we can use array.map (wide compatibility and performance issues)
- function _indicatorsMap (fn) {
- for ( var i = that.indicators.length; i--; ) {
- fn.call(that.indicators[i]);
- }
- }
+ if ( this.options.fadeScrollbars ) {
+ this.on('scrollEnd', function () {
+ _indicatorsMap(function () {
+ this.fade();
+ });
+ });
- if ( this.options.fadeScrollbars ) {
- this.on('scrollEnd', function () {
- _indicatorsMap(function () {
- this.fade();
- });
- });
+ this.on('scrollCancel', function () {
+ _indicatorsMap(function () {
+ this.fade();
+ });
+ });
- this.on('scrollCancel', function () {
- _indicatorsMap(function () {
- this.fade();
- });
- });
+ this.on('scrollStart', function () {
+ _indicatorsMap(function () {
+ this.fade(1);
+ });
+ });
- this.on('scrollStart', function () {
- _indicatorsMap(function () {
- this.fade(1);
- });
- });
+ this.on('beforeScrollStart', function () {
+ _indicatorsMap(function () {
+ this.fade(1, true);
+ });
+ });
+ }
- this.on('beforeScrollStart', function () {
- _indicatorsMap(function () {
- this.fade(1, true);
- });
- });
- }
+ this.on('refresh', function () {
+ _indicatorsMap(function () {
+ this.refresh();
+ });
+ });
- this.on('refresh', function () {
- _indicatorsMap(function () {
- this.refresh();
- });
- });
+ this.on('destroy', function () {
+ _indicatorsMap(function () {
+ this.destroy();
+ });
- this.on('destroy', function () {
- _indicatorsMap(function () {
- this.destroy();
- });
+ delete this.indicators;
+ });
+ },
- delete this.indicators;
- });
- },
+ _initWheel: function () {
+ utils.addEvent(this.wrapper, 'wheel', this);
+ utils.addEvent(this.wrapper, 'mousewheel', this);
+ utils.addEvent(this.wrapper, 'DOMMouseScroll', this);
- _initWheel: function () {
- utils.addEvent(this.wrapper, 'wheel', this);
- utils.addEvent(this.wrapper, 'mousewheel', this);
- utils.addEvent(this.wrapper, 'DOMMouseScroll', this);
+ this.on('destroy', function () {
+ clearTimeout(this.wheelTimeout);
+ this.wheelTimeout = null;
+ utils.removeEvent(this.wrapper, 'wheel', this);
+ utils.removeEvent(this.wrapper, 'mousewheel', this);
+ utils.removeEvent(this.wrapper, 'DOMMouseScroll', this);
+ });
+ },
- this.on('destroy', function () {
- utils.removeEvent(this.wrapper, 'wheel', this);
- utils.removeEvent(this.wrapper, 'mousewheel', this);
- utils.removeEvent(this.wrapper, 'DOMMouseScroll', this);
- });
- },
+ _wheel: function (e) {
+ if ( !this.enabled ) {
+ return;
+ }
- _wheel: function (e) {
- if ( !this.enabled ) {
- return;
- }
+ e.preventDefault();
- e.preventDefault();
- e.stopPropagation();
+ var wheelDeltaX, wheelDeltaY,
+ newX, newY,
+ that = this;
- var wheelDeltaX, wheelDeltaY,
- newX, newY,
- that = this;
+ if ( this.wheelTimeout === undefined ) {
+ that._execEvent('scrollStart');
+ }
- if ( this.wheelTimeout === undefined ) {
- that._execEvent('scrollStart');
- }
+ // Execute the scrollEnd event after 400ms the wheel stopped scrolling
+ clearTimeout(this.wheelTimeout);
+ this.wheelTimeout = setTimeout(function () {
+ if(!that.options.snap) {
+ that._execEvent('scrollEnd');
+ }
+ that.wheelTimeout = undefined;
+ }, 400);
- // Execute the scrollEnd event after 400ms the wheel stopped scrolling
- clearTimeout(this.wheelTimeout);
- this.wheelTimeout = setTimeout(function () {
- that._execEvent('scrollEnd');
- that.wheelTimeout = undefined;
- }, 400);
+ if ( 'deltaX' in e ) {
+ if (e.deltaMode === 1) {
+ wheelDeltaX = -e.deltaX * this.options.mouseWheelSpeed;
+ wheelDeltaY = -e.deltaY * this.options.mouseWheelSpeed;
+ } else {
+ wheelDeltaX = -e.deltaX;
+ wheelDeltaY = -e.deltaY;
+ }
+ } else if ( 'wheelDeltaX' in e ) {
+ wheelDeltaX = e.wheelDeltaX / 120 * this.options.mouseWheelSpeed;
+ wheelDeltaY = e.wheelDeltaY / 120 * this.options.mouseWheelSpeed;
+ } else if ( 'wheelDelta' in e ) {
+ wheelDeltaX = wheelDeltaY = e.wheelDelta / 120 * this.options.mouseWheelSpeed;
+ } else if ( 'detail' in e ) {
+ wheelDeltaX = wheelDeltaY = -e.detail / 3 * this.options.mouseWheelSpeed;
+ } else {
+ return;
+ }
- if ( 'deltaX' in e ) {
- if (e.deltaMode === 1) {
- wheelDeltaX = -e.deltaX * this.options.mouseWheelSpeed;
- wheelDeltaY = -e.deltaY * this.options.mouseWheelSpeed;
- } else {
- wheelDeltaX = -e.deltaX;
- wheelDeltaY = -e.deltaY;
- }
- } else if ( 'wheelDeltaX' in e ) {
- wheelDeltaX = e.wheelDeltaX / 120 * this.options.mouseWheelSpeed;
- wheelDeltaY = e.wheelDeltaY / 120 * this.options.mouseWheelSpeed;
- } else if ( 'wheelDelta' in e ) {
- wheelDeltaX = wheelDeltaY = e.wheelDelta / 120 * this.options.mouseWheelSpeed;
- } else if ( 'detail' in e ) {
- wheelDeltaX = wheelDeltaY = -e.detail / 3 * this.options.mouseWheelSpeed;
- } else {
- return;
- }
+ wheelDeltaX *= this.options.invertWheelDirection;
+ wheelDeltaY *= this.options.invertWheelDirection;
- wheelDeltaX *= this.options.invertWheelDirection;
- wheelDeltaY *= this.options.invertWheelDirection;
+ if ( !this.hasVerticalScroll ) {
+ wheelDeltaX = wheelDeltaY;
+ wheelDeltaY = 0;
+ }
- if ( !this.hasVerticalScroll ) {
- wheelDeltaX = wheelDeltaY;
- wheelDeltaY = 0;
- }
+ if ( this.options.snap ) {
+ newX = this.currentPage.pageX;
+ newY = this.currentPage.pageY;
- if ( this.options.snap ) {
- newX = this.currentPage.pageX;
- newY = this.currentPage.pageY;
+ if ( wheelDeltaX > 0 ) {
+ newX--;
+ } else if ( wheelDeltaX < 0 ) {
+ newX++;
+ }
- if ( wheelDeltaX > 0 ) {
- newX--;
- } else if ( wheelDeltaX < 0 ) {
- newX++;
- }
+ if ( wheelDeltaY > 0 ) {
+ newY--;
+ } else if ( wheelDeltaY < 0 ) {
+ newY++;
+ }
- if ( wheelDeltaY > 0 ) {
- newY--;
- } else if ( wheelDeltaY < 0 ) {
- newY++;
- }
+ this.goToPage(newX, newY);
- this.goToPage(newX, newY);
+ return;
+ }
- return;
- }
+ newX = this.x + Math.round(this.hasHorizontalScroll ? wheelDeltaX : 0);
+ newY = this.y + Math.round(this.hasVerticalScroll ? wheelDeltaY : 0);
- newX = this.x + Math.round(this.hasHorizontalScroll ? wheelDeltaX : 0);
- newY = this.y + Math.round(this.hasVerticalScroll ? wheelDeltaY : 0);
+ this.directionX = wheelDeltaX > 0 ? -1 : wheelDeltaX < 0 ? 1 : 0;
+ this.directionY = wheelDeltaY > 0 ? -1 : wheelDeltaY < 0 ? 1 : 0;
- if ( newX > 0 ) {
- newX = 0;
- } else if ( newX < this.maxScrollX ) {
- newX = this.maxScrollX;
- }
+ if ( newX > 0 ) {
+ newX = 0;
+ } else if ( newX < this.maxScrollX ) {
+ newX = this.maxScrollX;
+ }
- if ( newY > 0 ) {
- newY = 0;
- } else if ( newY < this.maxScrollY ) {
- newY = this.maxScrollY;
- }
+ if ( newY > 0 ) {
+ newY = 0;
+ } else if ( newY < this.maxScrollY ) {
+ newY = this.maxScrollY;
+ }
- this.scrollTo(newX, newY, 0);
+ this.scrollTo(newX, newY, 0);
// INSERT POINT: _wheel
- },
+ },
- _initSnap: function () {
- this.currentPage = {};
+ _initSnap: function () {
+ this.currentPage = {};
- if ( typeof this.options.snap == 'string' ) {
- this.options.snap = this.scroller.querySelectorAll(this.options.snap);
- }
+ if ( typeof this.options.snap == 'string' ) {
+ this.options.snap = this.scroller.querySelectorAll(this.options.snap);
+ }
- this.on('refresh', function () {
- var i = 0, l,
- m = 0, n,
- cx, cy,
- x = 0, y,
- stepX = this.options.snapStepX || this.wrapperWidth,
- stepY = this.options.snapStepY || this.wrapperHeight,
- el;
+ this.on('refresh', function () {
+ var i = 0, l,
+ m = 0, n,
+ cx, cy,
+ x = 0, y,
+ stepX = this.options.snapStepX || this.wrapperWidth,
+ stepY = this.options.snapStepY || this.wrapperHeight,
+ el,
+ rect;
- this.pages = [];
+ this.pages = [];
- if ( !this.wrapperWidth || !this.wrapperHeight || !this.scrollerWidth || !this.scrollerHeight ) {
- return;
- }
+ if ( !this.wrapperWidth || !this.wrapperHeight || !this.scrollerWidth || !this.scrollerHeight ) {
+ return;
+ }
- if ( this.options.snap === true ) {
- cx = Math.round( stepX / 2 );
- cy = Math.round( stepY / 2 );
+ if ( this.options.snap === true ) {
+ cx = Math.round( stepX / 2 );
+ cy = Math.round( stepY / 2 );
- while ( x > -this.scrollerWidth ) {
- this.pages[i] = [];
- l = 0;
- y = 0;
+ while ( x > -this.scrollerWidth ) {
+ this.pages[i] = [];
+ l = 0;
+ y = 0;
- while ( y > -this.scrollerHeight ) {
- this.pages[i][l] = {
- x: Math.max(x, this.maxScrollX),
- y: Math.max(y, this.maxScrollY),
- width: stepX,
- height: stepY,
- cx: x - cx,
- cy: y - cy
- };
+ while ( y > -this.scrollerHeight ) {
+ this.pages[i][l] = {
+ x: Math.max(x, this.maxScrollX),
+ y: Math.max(y, this.maxScrollY),
+ width: stepX,
+ height: stepY,
+ cx: x - cx,
+ cy: y - cy
+ };
- y -= stepY;
- l++;
- }
+ y -= stepY;
+ l++;
+ }
- x -= stepX;
- i++;
- }
- } else {
- el = this.options.snap;
- l = el.length;
- n = -1;
+ x -= stepX;
+ i++;
+ }
+ } else {
+ el = this.options.snap;
+ l = el.length;
+ n = -1;
- for ( ; i < l; i++ ) {
- if ( i === 0 || el[i].offsetLeft <= el[i-1].offsetLeft ) {
- m = 0;
- n++;
- }
+ for ( ; i < l; i++ ) {
+ rect = utils.getRect(el[i]);
+ if ( i === 0 || rect.left <= utils.getRect(el[i-1]).left ) {
+ m = 0;
+ n++;
+ }
- if ( !this.pages[m] ) {
- this.pages[m] = [];
- }
+ if ( !this.pages[m] ) {
+ this.pages[m] = [];
+ }
- x = Math.max(-el[i].offsetLeft, this.maxScrollX);
- y = Math.max(-el[i].offsetTop, this.maxScrollY);
- cx = x - Math.round(el[i].offsetWidth / 2);
- cy = y - Math.round(el[i].offsetHeight / 2);
+ x = Math.max(-rect.left, this.maxScrollX);
+ y = Math.max(-rect.top, this.maxScrollY);
+ cx = x - Math.round(rect.width / 2);
+ cy = y - Math.round(rect.height / 2);
- this.pages[m][n] = {
- x: x,
- y: y,
- width: el[i].offsetWidth,
- height: el[i].offsetHeight,
- cx: cx,
- cy: cy
- };
+ this.pages[m][n] = {
+ x: x,
+ y: y,
+ width: rect.width,
+ height: rect.height,
+ cx: cx,
+ cy: cy
+ };
- if ( x > this.maxScrollX ) {
- m++;
- }
- }
- }
+ if ( x > this.maxScrollX ) {
+ m++;
+ }
+ }
+ }
- this.goToPage(this.currentPage.pageX || 0, this.currentPage.pageY || 0, 0);
+ this.goToPage(this.currentPage.pageX || 0, this.currentPage.pageY || 0, 0);
- // Update snap threshold if needed
- if ( this.options.snapThreshold % 1 === 0 ) {
- this.snapThresholdX = this.options.snapThreshold;
- this.snapThresholdY = this.options.snapThreshold;
- } else {
- this.snapThresholdX = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].width * this.options.snapThreshold);
- this.snapThresholdY = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].height * this.options.snapThreshold);
- }
- });
+ // Update snap threshold if needed
+ if ( this.options.snapThreshold % 1 === 0 ) {
+ this.snapThresholdX = this.options.snapThreshold;
+ this.snapThresholdY = this.options.snapThreshold;
+ } else {
+ this.snapThresholdX = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].width * this.options.snapThreshold);
+ this.snapThresholdY = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].height * this.options.snapThreshold);
+ }
+ });
- this.on('flick', function () {
- var time = this.options.snapSpeed || Math.max(
- Math.max(
- Math.min(Math.abs(this.x - this.startX), 1000),
- Math.min(Math.abs(this.y - this.startY), 1000)
- ), 300);
+ this.on('flick', function () {
+ var time = this.options.snapSpeed || Math.max(
+ Math.max(
+ Math.min(Math.abs(this.x - this.startX), 1000),
+ Math.min(Math.abs(this.y - this.startY), 1000)
+ ), 300);
- this.goToPage(
- this.currentPage.pageX + this.directionX,
- this.currentPage.pageY + this.directionY,
- time
- );
- });
- },
+ this.goToPage(
+ this.currentPage.pageX + this.directionX,
+ this.currentPage.pageY + this.directionY,
+ time
+ );
+ });
+ },
- _nearestSnap: function (x, y) {
- if ( !this.pages.length ) {
- return { x: 0, y: 0, pageX: 0, pageY: 0 };
- }
+ _nearestSnap: function (x, y) {
+ if ( !this.pages.length ) {
+ return { x: 0, y: 0, pageX: 0, pageY: 0 };
+ }
- var i = 0,
- l = this.pages.length,
- m = 0;
+ var i = 0,
+ l = this.pages.length,
+ m = 0;
- // Check if we exceeded the snap threshold
- if ( Math.abs(x - this.absStartX) < this.snapThresholdX &&
- Math.abs(y - this.absStartY) < this.snapThresholdY ) {
- return this.currentPage;
- }
+ // Check if we exceeded the snap threshold
+ if ( Math.abs(x - this.absStartX) < this.snapThresholdX &&
+ Math.abs(y - this.absStartY) < this.snapThresholdY ) {
+ return this.currentPage;
+ }
- if ( x > 0 ) {
- x = 0;
- } else if ( x < this.maxScrollX ) {
- x = this.maxScrollX;
- }
+ if ( x > 0 ) {
+ x = 0;
+ } else if ( x < this.maxScrollX ) {
+ x = this.maxScrollX;
+ }
- if ( y > 0 ) {
- y = 0;
- } else if ( y < this.maxScrollY ) {
- y = this.maxScrollY;
- }
+ if ( y > 0 ) {
+ y = 0;
+ } else if ( y < this.maxScrollY ) {
+ y = this.maxScrollY;
+ }
- for ( ; i < l; i++ ) {
- if ( x >= this.pages[i][0].cx ) {
- x = this.pages[i][0].x;
- break;
- }
- }
+ for ( ; i < l; i++ ) {
+ if ( x >= this.pages[i][0].cx ) {
+ x = this.pages[i][0].x;
+ break;
+ }
+ }
- l = this.pages[i].length;
+ l = this.pages[i].length;
- for ( ; m < l; m++ ) {
- if ( y >= this.pages[0][m].cy ) {
- y = this.pages[0][m].y;
- break;
- }
- }
+ for ( ; m < l; m++ ) {
+ if ( y >= this.pages[0][m].cy ) {
+ y = this.pages[0][m].y;
+ break;
+ }
+ }
- if ( i == this.currentPage.pageX ) {
- i += this.directionX;
+ if ( i == this.currentPage.pageX ) {
+ i += this.directionX;
- if ( i < 0 ) {
- i = 0;
- } else if ( i >= this.pages.length ) {
- i = this.pages.length - 1;
- }
+ if ( i < 0 ) {
+ i = 0;
+ } else if ( i >= this.pages.length ) {
+ i = this.pages.length - 1;
+ }
- x = this.pages[i][0].x;
- }
+ x = this.pages[i][0].x;
+ }
- if ( m == this.currentPage.pageY ) {
- m += this.directionY;
+ if ( m == this.currentPage.pageY ) {
+ m += this.directionY;
- if ( m < 0 ) {
- m = 0;
- } else if ( m >= this.pages[0].length ) {
- m = this.pages[0].length - 1;
- }
+ if ( m < 0 ) {
+ m = 0;
+ } else if ( m >= this.pages[0].length ) {
+ m = this.pages[0].length - 1;
+ }
- y = this.pages[0][m].y;
- }
+ y = this.pages[0][m].y;
+ }
- return {
- x: x,
- y: y,
- pageX: i,
- pageY: m
- };
- },
+ return {
+ x: x,
+ y: y,
+ pageX: i,
+ pageY: m
+ };
+ },
- goToPage: function (x, y, time, easing) {
- easing = easing || this.options.bounceEasing;
+ goToPage: function (x, y, time, easing) {
+ easing = easing || this.options.bounceEasing;
- if ( x >= this.pages.length ) {
- x = this.pages.length - 1;
- } else if ( x < 0 ) {
- x = 0;
- }
+ if ( x >= this.pages.length ) {
+ x = this.pages.length - 1;
+ } else if ( x < 0 ) {
+ x = 0;
+ }
- if ( y >= this.pages[x].length ) {
- y = this.pages[x].length - 1;
- } else if ( y < 0 ) {
- y = 0;
- }
+ if ( y >= this.pages[x].length ) {
+ y = this.pages[x].length - 1;
+ } else if ( y < 0 ) {
+ y = 0;
+ }
- var posX = this.pages[x][y].x,
- posY = this.pages[x][y].y;
+ var posX = this.pages[x][y].x,
+ posY = this.pages[x][y].y;
- time = time === undefined ? this.options.snapSpeed || Math.max(
- Math.max(
- Math.min(Math.abs(posX - this.x), 1000),
- Math.min(Math.abs(posY - this.y), 1000)
- ), 300) : time;
+ time = time === undefined ? this.options.snapSpeed || Math.max(
+ Math.max(
+ Math.min(Math.abs(posX - this.x), 1000),
+ Math.min(Math.abs(posY - this.y), 1000)
+ ), 300) : time;
- this.currentPage = {
- x: posX,
- y: posY,
- pageX: x,
- pageY: y
- };
+ this.currentPage = {
+ x: posX,
+ y: posY,
+ pageX: x,
+ pageY: y
+ };
- this.scrollTo(posX, posY, time, easing);
- },
+ this.scrollTo(posX, posY, time, easing);
+ },
- next: function (time, easing) {
- var x = this.currentPage.pageX,
- y = this.currentPage.pageY;
+ next: function (time, easing) {
+ var x = this.currentPage.pageX,
+ y = this.currentPage.pageY;
- x++;
+ x++;
- if ( x >= this.pages.length && this.hasVerticalScroll ) {
- x = 0;
- y++;
- }
+ if ( x >= this.pages.length && this.hasVerticalScroll ) {
+ x = 0;
+ y++;
+ }
- this.goToPage(x, y, time, easing);
- },
+ this.goToPage(x, y, time, easing);
+ },
- prev: function (time, easing) {
- var x = this.currentPage.pageX,
- y = this.currentPage.pageY;
+ prev: function (time, easing) {
+ var x = this.currentPage.pageX,
+ y = this.currentPage.pageY;
- x--;
+ x--;
- if ( x < 0 && this.hasVerticalScroll ) {
- x = 0;
- y--;
- }
+ if ( x < 0 && this.hasVerticalScroll ) {
+ x = 0;
+ y--;
+ }
- this.goToPage(x, y, time, easing);
- },
+ this.goToPage(x, y, time, easing);
+ },
- _initKeys: function (e) {
- // default key bindings
- var keys = {
- pageUp: 33,
- pageDown: 34,
- end: 35,
- home: 36,
- left: 37,
- up: 38,
- right: 39,
- down: 40
- };
- var i;
+ _initKeys: function (e) {
+ // default key bindings
+ var keys = {
+ pageUp: 33,
+ pageDown: 34,
+ end: 35,
+ home: 36,
+ left: 37,
+ up: 38,
+ right: 39,
+ down: 40
+ };
+ var i;
- // if you give me characters I give you keycode
- if ( typeof this.options.keyBindings == 'object' ) {
- for ( i in this.options.keyBindings ) {
- if ( typeof this.options.keyBindings[i] == 'string' ) {
- this.options.keyBindings[i] = this.options.keyBindings[i].toUpperCase().charCodeAt(0);
- }
- }
- } else {
- this.options.keyBindings = {};
- }
+ // if you give me characters I give you keycode
+ if ( typeof this.options.keyBindings == 'object' ) {
+ for ( i in this.options.keyBindings ) {
+ if ( typeof this.options.keyBindings[i] == 'string' ) {
+ this.options.keyBindings[i] = this.options.keyBindings[i].toUpperCase().charCodeAt(0);
+ }
+ }
+ } else {
+ this.options.keyBindings = {};
+ }
- for ( i in keys ) {
- this.options.keyBindings[i] = this.options.keyBindings[i] || keys[i];
- }
+ for ( i in keys ) {
+ this.options.keyBindings[i] = this.options.keyBindings[i] || keys[i];
+ }
- utils.addEvent(window, 'keydown', this);
+ utils.addEvent(window, 'keydown', this);
- this.on('destroy', function () {
- utils.removeEvent(window, 'keydown', this);
- });
- },
+ this.on('destroy', function () {
+ utils.removeEvent(window, 'keydown', this);
+ });
+ },
- _key: function (e) {
- if ( !this.enabled ) {
- return;
- }
+ _key: function (e) {
+ if ( !this.enabled ) {
+ return;
+ }
- var snap = this.options.snap, // we are using this alot, better to cache it
- newX = snap ? this.currentPage.pageX : this.x,
- newY = snap ? this.currentPage.pageY : this.y,
- now = utils.getTime(),
- prevTime = this.keyTime || 0,
- acceleration = 0.250,
- pos;
+ var snap = this.options.snap, // we are using this alot, better to cache it
+ newX = snap ? this.currentPage.pageX : this.x,
+ newY = snap ? this.currentPage.pageY : this.y,
+ now = utils.getTime(),
+ prevTime = this.keyTime || 0,
+ acceleration = 0.250,
+ pos;
- if ( this.options.useTransition && this.isInTransition ) {
- pos = this.getComputedPosition();
+ if ( this.options.useTransition && this.isInTransition ) {
+ pos = this.getComputedPosition();
- this._translate(Math.round(pos.x), Math.round(pos.y));
- this.isInTransition = false;
- }
+ this._translate(Math.round(pos.x), Math.round(pos.y));
+ this.isInTransition = false;
+ }
- this.keyAcceleration = now - prevTime < 200 ? Math.min(this.keyAcceleration + acceleration, 50) : 0;
+ this.keyAcceleration = now - prevTime < 200 ? Math.min(this.keyAcceleration + acceleration, 50) : 0;
- switch ( e.keyCode ) {
- case this.options.keyBindings.pageUp:
- if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) {
- newX += snap ? 1 : this.wrapperWidth;
- } else {
- newY += snap ? 1 : this.wrapperHeight;
- }
- break;
- case this.options.keyBindings.pageDown:
- if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) {
- newX -= snap ? 1 : this.wrapperWidth;
- } else {
- newY -= snap ? 1 : this.wrapperHeight;
- }
- break;
- case this.options.keyBindings.end:
- newX = snap ? this.pages.length-1 : this.maxScrollX;
- newY = snap ? this.pages[0].length-1 : this.maxScrollY;
- break;
- case this.options.keyBindings.home:
- newX = 0;
- newY = 0;
- break;
- case this.options.keyBindings.left:
- newX += snap ? -1 : 5 + this.keyAcceleration>>0;
- break;
- case this.options.keyBindings.up:
- newY += snap ? 1 : 5 + this.keyAcceleration>>0;
- break;
- case this.options.keyBindings.right:
- newX -= snap ? -1 : 5 + this.keyAcceleration>>0;
- break;
- case this.options.keyBindings.down:
- newY -= snap ? 1 : 5 + this.keyAcceleration>>0;
- break;
- default:
- return;
- }
+ switch ( e.keyCode ) {
+ case this.options.keyBindings.pageUp:
+ if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) {
+ newX += snap ? 1 : this.wrapperWidth;
+ } else {
+ newY += snap ? 1 : this.wrapperHeight;
+ }
+ break;
+ case this.options.keyBindings.pageDown:
+ if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) {
+ newX -= snap ? 1 : this.wrapperWidth;
+ } else {
+ newY -= snap ? 1 : this.wrapperHeight;
+ }
+ break;
+ case this.options.keyBindings.end:
+ newX = snap ? this.pages.length-1 : this.maxScrollX;
+ newY = snap ? this.pages[0].length-1 : this.maxScrollY;
+ break;
+ case this.options.keyBindings.home:
+ newX = 0;
+ newY = 0;
+ break;
+ case this.options.keyBindings.left:
+ newX += snap ? -1 : 5 + this.keyAcceleration>>0;
+ break;
+ case this.options.keyBindings.up:
+ newY += snap ? 1 : 5 + this.keyAcceleration>>0;
+ break;
+ case this.options.keyBindings.right:
+ newX -= snap ? -1 : 5 + this.keyAcceleration>>0;
+ break;
+ case this.options.keyBindings.down:
+ newY -= snap ? 1 : 5 + this.keyAcceleration>>0;
+ break;
+ default:
+ return;
+ }
- if ( snap ) {
- this.goToPage(newX, newY);
- return;
- }
+ if ( snap ) {
+ this.goToPage(newX, newY);
+ return;
+ }
- if ( newX > 0 ) {
- newX = 0;
- this.keyAcceleration = 0;
- } else if ( newX < this.maxScrollX ) {
- newX = this.maxScrollX;
- this.keyAcceleration = 0;
- }
+ if ( newX > 0 ) {
+ newX = 0;
+ this.keyAcceleration = 0;
+ } else if ( newX < this.maxScrollX ) {
+ newX = this.maxScrollX;
+ this.keyAcceleration = 0;
+ }
- if ( newY > 0 ) {
- newY = 0;
- this.keyAcceleration = 0;
- } else if ( newY < this.maxScrollY ) {
- newY = this.maxScrollY;
- this.keyAcceleration = 0;
- }
+ if ( newY > 0 ) {
+ newY = 0;
+ this.keyAcceleration = 0;
+ } else if ( newY < this.maxScrollY ) {
+ newY = this.maxScrollY;
+ this.keyAcceleration = 0;
+ }
- this.scrollTo(newX, newY, 0);
+ this.scrollTo(newX, newY, 0);
- this.keyTime = now;
- },
+ this.keyTime = now;
+ },
- _animate: function (destX, destY, duration, easingFn) {
- var that = this,
- startX = this.x,
- startY = this.y,
- startTime = utils.getTime(),
- destTime = startTime + duration;
+ _animate: function (destX, destY, duration, easingFn) {
+ var that = this,
+ startX = this.x,
+ startY = this.y,
+ startTime = utils.getTime(),
+ destTime = startTime + duration;
- function step () {
- var now = utils.getTime(),
- newX, newY,
- easing;
+ function step () {
+ var now = utils.getTime(),
+ newX, newY,
+ easing;
- if ( now >= destTime ) {
- that.isAnimating = false;
- that._translate(destX, destY);
+ if ( now >= destTime ) {
+ that.isAnimating = false;
+ that._translate(destX, destY);
- if ( !that.resetPosition(that.options.bounceTime) ) {
- that._execEvent('scrollEnd');
- }
+ if ( !that.resetPosition(that.options.bounceTime) ) {
+ that._execEvent('scrollEnd');
+ }
- return;
- }
+ return;
+ }
- now = ( now - startTime ) / duration;
- easing = easingFn(now);
- newX = ( destX - startX ) * easing + startX;
- newY = ( destY - startY ) * easing + startY;
- that._translate(newX, newY);
+ now = ( now - startTime ) / duration;
+ easing = easingFn(now);
+ newX = ( destX - startX ) * easing + startX;
+ newY = ( destY - startY ) * easing + startY;
+ that._translate(newX, newY);
- if ( that.isAnimating ) {
- rAF(step);
- }
- }
+ if ( that.isAnimating ) {
+ rAF(step);
+ }
+ }
- this.isAnimating = true;
- step();
- },
- handleEvent: function (e) {
- switch ( e.type ) {
- case 'touchstart':
- case 'pointerdown':
- case 'MSPointerDown':
- case 'mousedown':
- this._start(e);
- break;
- case 'touchmove':
- case 'pointermove':
- case 'MSPointerMove':
- case 'mousemove':
- this._move(e);
- break;
- case 'touchend':
- case 'pointerup':
- case 'MSPointerUp':
- case 'mouseup':
- case 'touchcancel':
- case 'pointercancel':
- case 'MSPointerCancel':
- case 'mousecancel':
- this._end(e);
- break;
- case 'orientationchange':
- case 'resize':
- this._resize();
- break;
- case 'transitionend':
- case 'webkitTransitionEnd':
- case 'oTransitionEnd':
- case 'MSTransitionEnd':
- this._transitionEnd(e);
- break;
- case 'wheel':
- case 'DOMMouseScroll':
- case 'mousewheel':
- this._wheel(e);
- break;
- case 'keydown':
- this._key(e);
- break;
- case 'click':
- if ( !e._constructed ) {
- e.preventDefault();
- e.stopPropagation();
- }
- break;
- }
- }
+ this.isAnimating = true;
+ step();
+ },
+ handleEvent: function (e) {
+ switch ( e.type ) {
+ case 'touchstart':
+ case 'pointerdown':
+ case 'MSPointerDown':
+ case 'mousedown':
+ this._start(e);
+ break;
+ case 'touchmove':
+ case 'pointermove':
+ case 'MSPointerMove':
+ case 'mousemove':
+ this._move(e);
+ break;
+ case 'touchend':
+ case 'pointerup':
+ case 'MSPointerUp':
+ case 'mouseup':
+ case 'touchcancel':
+ case 'pointercancel':
+ case 'MSPointerCancel':
+ case 'mousecancel':
+ this._end(e);
+ break;
+ case 'orientationchange':
+ case 'resize':
+ this._resize();
+ break;
+ case 'transitionend':
+ case 'webkitTransitionEnd':
+ case 'oTransitionEnd':
+ case 'MSTransitionEnd':
+ this._transitionEnd(e);
+ break;
+ case 'wheel':
+ case 'DOMMouseScroll':
+ case 'mousewheel':
+ this._wheel(e);
+ break;
+ case 'keydown':
+ this._key(e);
+ break;
+ case 'click':
+ if ( this.enabled && !e._constructed ) {
+ e.preventDefault();
+ e.stopPropagation();
+ }
+ break;
+ }
+ }
};
function createDefaultScrollbar (direction, interactive, type) {
- var scrollbar = document.createElement('div'),
- indicator = document.createElement('div');
+ var scrollbar = document.createElement('div'),
+ indicator = document.createElement('div');
- if ( type === true ) {
- scrollbar.style.cssText = 'position:absolute;z-index:9999';
- indicator.style.cssText = '-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);border-radius:3px';
- }
+ if ( type === true ) {
+ scrollbar.style.cssText = 'position:absolute;z-index:9999';
+ indicator.style.cssText = '-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);border-radius:3px';
+ }
- indicator.className = 'iScrollIndicator';
+ indicator.className = 'iScrollIndicator';
- if ( direction == 'h' ) {
- if ( type === true ) {
- scrollbar.style.cssText += ';height:7px;left:2px;right:2px;bottom:0';
- indicator.style.height = '100%';
- }
- scrollbar.className = 'iScrollHorizontalScrollbar';
- } else {
- if ( type === true ) {
- scrollbar.style.cssText += ';width:7px;bottom:2px;top:2px;right:1px';
- indicator.style.width = '100%';
- }
- scrollbar.className = 'iScrollVerticalScrollbar';
- }
+ if ( direction == 'h' ) {
+ if ( type === true ) {
+ scrollbar.style.cssText += ';height:7px;left:2px;right:2px;bottom:0';
+ indicator.style.height = '100%';
+ }
+ scrollbar.className = 'iScrollHorizontalScrollbar';
+ } else {
+ if ( type === true ) {
+ scrollbar.style.cssText += ';width:7px;bottom:2px;top:2px;right:1px';
+ indicator.style.width = '100%';
+ }
+ scrollbar.className = 'iScrollVerticalScrollbar';
+ }
- scrollbar.style.cssText += ';overflow:hidden';
+ scrollbar.style.cssText += ';overflow:hidden';
- if ( !interactive ) {
- scrollbar.style.pointerEvents = 'none';
- }
+ if ( !interactive ) {
+ scrollbar.style.pointerEvents = 'none';
+ }
- scrollbar.appendChild(indicator);
+ scrollbar.appendChild(indicator);
- return scrollbar;
+ return scrollbar;
}
function Indicator (scroller, options) {
- this.wrapper = typeof options.el == 'string' ? document.querySelector(options.el) : options.el;
- this.wrapperStyle = this.wrapper.style;
- this.indicator = this.wrapper.children[0];
- this.indicatorStyle = this.indicator.style;
- this.scroller = scroller;
+ this.wrapper = typeof options.el == 'string' ? document.querySelector(options.el) : options.el;
+ this.wrapperStyle = this.wrapper.style;
+ this.indicator = this.wrapper.children[0];
+ this.indicatorStyle = this.indicator.style;
+ this.scroller = scroller;
- this.options = {
- listenX: true,
- listenY: true,
- interactive: false,
- resize: true,
- defaultScrollbars: false,
- shrink: false,
- fade: false,
- speedRatioX: 0,
- speedRatioY: 0
- };
+ this.options = {
+ listenX: true,
+ listenY: true,
+ interactive: false,
+ resize: true,
+ defaultScrollbars: false,
+ shrink: false,
+ fade: false,
+ speedRatioX: 0,
+ speedRatioY: 0
+ };
- for ( var i in options ) {
- this.options[i] = options[i];
- }
+ for ( var i in options ) {
+ this.options[i] = options[i];
+ }
- this.sizeRatioX = 1;
- this.sizeRatioY = 1;
- this.maxPosX = 0;
- this.maxPosY = 0;
+ this.sizeRatioX = 1;
+ this.sizeRatioY = 1;
+ this.maxPosX = 0;
+ this.maxPosY = 0;
- if ( this.options.interactive ) {
- if ( !this.options.disableTouch ) {
- utils.addEvent(this.indicator, 'touchstart', this);
- utils.addEvent(window, 'touchend', this);
- }
- if ( !this.options.disablePointer ) {
- utils.addEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this);
- utils.addEvent(window, utils.prefixPointerEvent('pointerup'), this);
- }
- if ( !this.options.disableMouse ) {
- utils.addEvent(this.indicator, 'mousedown', this);
- utils.addEvent(window, 'mouseup', this);
- }
- }
+ if ( this.options.interactive ) {
+ if ( !this.options.disableTouch ) {
+ utils.addEvent(this.indicator, 'touchstart', this);
+ utils.addEvent(window, 'touchend', this);
+ }
+ if ( !this.options.disablePointer ) {
+ utils.addEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this);
+ utils.addEvent(window, utils.prefixPointerEvent('pointerup'), this);
+ }
+ if ( !this.options.disableMouse ) {
+ utils.addEvent(this.indicator, 'mousedown', this);
+ utils.addEvent(window, 'mouseup', this);
+ }
+ }
- if ( this.options.fade ) {
- this.wrapperStyle[utils.style.transform] = this.scroller.translateZ;
- this.wrapperStyle[utils.style.transitionDuration] = utils.isBadAndroid ? '0.001s' : '0ms';
- this.wrapperStyle.opacity = '0';
- }
+ if ( this.options.fade ) {
+ this.wrapperStyle[utils.style.transform] = this.scroller.translateZ;
+ var durationProp = utils.style.transitionDuration;
+ if(!durationProp) {
+ return;
+ }
+ this.wrapperStyle[durationProp] = utils.isBadAndroid ? '0.0001ms' : '0ms';
+ // remove 0.0001ms
+ var self = this;
+ if(utils.isBadAndroid) {
+ rAF(function() {
+ if(self.wrapperStyle[durationProp] === '0.0001ms') {
+ self.wrapperStyle[durationProp] = '0s';
+ }
+ });
+ }
+ this.wrapperStyle.opacity = '0';
+ }
}
Indicator.prototype = {
- handleEvent: function (e) {
- switch ( e.type ) {
- case 'touchstart':
- case 'pointerdown':
- case 'MSPointerDown':
- case 'mousedown':
- this._start(e);
- break;
- case 'touchmove':
- case 'pointermove':
- case 'MSPointerMove':
- case 'mousemove':
- this._move(e);
- break;
- case 'touchend':
- case 'pointerup':
- case 'MSPointerUp':
- case 'mouseup':
- case 'touchcancel':
- case 'pointercancel':
- case 'MSPointerCancel':
- case 'mousecancel':
- this._end(e);
- break;
- }
- },
+ handleEvent: function (e) {
+ switch ( e.type ) {
+ case 'touchstart':
+ case 'pointerdown':
+ case 'MSPointerDown':
+ case 'mousedown':
+ this._start(e);
+ break;
+ case 'touchmove':
+ case 'pointermove':
+ case 'MSPointerMove':
+ case 'mousemove':
+ this._move(e);
+ break;
+ case 'touchend':
+ case 'pointerup':
+ case 'MSPointerUp':
+ case 'mouseup':
+ case 'touchcancel':
+ case 'pointercancel':
+ case 'MSPointerCancel':
+ case 'mousecancel':
+ this._end(e);
+ break;
+ }
+ },
- destroy: function () {
- if ( this.options.interactive ) {
- utils.removeEvent(this.indicator, 'touchstart', this);
- utils.removeEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this);
- utils.removeEvent(this.indicator, 'mousedown', this);
+ destroy: function () {
+ if ( this.options.fadeScrollbars ) {
+ clearTimeout(this.fadeTimeout);
+ this.fadeTimeout = null;
+ }
+ if ( this.options.interactive ) {
+ utils.removeEvent(this.indicator, 'touchstart', this);
+ utils.removeEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this);
+ utils.removeEvent(this.indicator, 'mousedown', this);
- utils.removeEvent(window, 'touchmove', this);
- utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this);
- utils.removeEvent(window, 'mousemove', this);
+ utils.removeEvent(window, 'touchmove', this);
+ utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this);
+ utils.removeEvent(window, 'mousemove', this);
- utils.removeEvent(window, 'touchend', this);
- utils.removeEvent(window, utils.prefixPointerEvent('pointerup'), this);
- utils.removeEvent(window, 'mouseup', this);
- }
+ utils.removeEvent(window, 'touchend', this);
+ utils.removeEvent(window, utils.prefixPointerEvent('pointerup'), this);
+ utils.removeEvent(window, 'mouseup', this);
+ }
- if ( this.options.defaultScrollbars ) {
- this.wrapper.parentNode.removeChild(this.wrapper);
- }
- },
+ if ( this.options.defaultScrollbars && this.wrapper.parentNode ) {
+ this.wrapper.parentNode.removeChild(this.wrapper);
+ }
+ },
- _start: function (e) {
- var point = e.touches ? e.touches[0] : e;
+ _start: function (e) {
+ var point = e.touches ? e.touches[0] : e;
- e.preventDefault();
- e.stopPropagation();
+ e.preventDefault();
+ e.stopPropagation();
- this.transitionTime();
+ this.transitionTime();
- this.initiated = true;
- this.moved = false;
- this.lastPointX = point.pageX;
- this.lastPointY = point.pageY;
+ this.initiated = true;
+ this.moved = false;
+ this.lastPointX = point.pageX;
+ this.lastPointY = point.pageY;
- this.startTime = utils.getTime();
+ this.startTime = utils.getTime();
- if ( !this.options.disableTouch ) {
- utils.addEvent(window, 'touchmove', this);
- }
- if ( !this.options.disablePointer ) {
- utils.addEvent(window, utils.prefixPointerEvent('pointermove'), this);
- }
- if ( !this.options.disableMouse ) {
- utils.addEvent(window, 'mousemove', this);
- }
+ if ( !this.options.disableTouch ) {
+ utils.addEvent(window, 'touchmove', this);
+ }
+ if ( !this.options.disablePointer ) {
+ utils.addEvent(window, utils.prefixPointerEvent('pointermove'), this);
+ }
+ if ( !this.options.disableMouse ) {
+ utils.addEvent(window, 'mousemove', this);
+ }
- this.scroller._execEvent('beforeScrollStart');
- },
+ this.scroller._execEvent('beforeScrollStart');
+ },
- _move: function (e) {
- var point = e.touches ? e.touches[0] : e,
- deltaX, deltaY,
- newX, newY,
- timestamp = utils.getTime();
+ _move: function (e) {
+ var point = e.touches ? e.touches[0] : e,
+ deltaX, deltaY,
+ newX, newY,
+ timestamp = utils.getTime();
- if ( !this.moved ) {
- this.scroller._execEvent('scrollStart');
- }
+ if ( !this.moved ) {
+ this.scroller._execEvent('scrollStart');
+ }
- this.moved = true;
+ this.moved = true;
- deltaX = point.pageX - this.lastPointX;
- this.lastPointX = point.pageX;
+ deltaX = point.pageX - this.lastPointX;
+ this.lastPointX = point.pageX;
- deltaY = point.pageY - this.lastPointY;
- this.lastPointY = point.pageY;
+ deltaY = point.pageY - this.lastPointY;
+ this.lastPointY = point.pageY;
- newX = this.x + deltaX;
- newY = this.y + deltaY;
+ newX = this.x + deltaX;
+ newY = this.y + deltaY;
- this._pos(newX, newY);
+ this._pos(newX, newY);
// INSERT POINT: indicator._move
- e.preventDefault();
- e.stopPropagation();
- },
+ e.preventDefault();
+ e.stopPropagation();
+ },
+
+ _end: function (e) {
+ if ( !this.initiated ) {
+ return;
+ }
- _end: function (e) {
- if ( !this.initiated ) {
- return;
- }
+ this.initiated = false;
- this.initiated = false;
+ e.preventDefault();
+ e.stopPropagation();
- e.preventDefault();
- e.stopPropagation();
+ utils.removeEvent(window, 'touchmove', this);
+ utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this);
+ utils.removeEvent(window, 'mousemove', this);
- utils.removeEvent(window, 'touchmove', this);
- utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this);
- utils.removeEvent(window, 'mousemove', this);
+ if ( this.scroller.options.snap ) {
+ var snap = this.scroller._nearestSnap(this.scroller.x, this.scroller.y);
- if ( this.scroller.options.snap ) {
- var snap = this.scroller._nearestSnap(this.scroller.x, this.scroller.y);
+ var time = this.options.snapSpeed || Math.max(
+ Math.max(
+ Math.min(Math.abs(this.scroller.x - snap.x), 1000),
+ Math.min(Math.abs(this.scroller.y - snap.y), 1000)
+ ), 300);
- var time = this.options.snapSpeed || Math.max(
- Math.max(
- Math.min(Math.abs(this.scroller.x - snap.x), 1000),
- Math.min(Math.abs(this.scroller.y - snap.y), 1000)
- ), 300);
+ if ( this.scroller.x != snap.x || this.scroller.y != snap.y ) {
+ this.scroller.directionX = 0;
+ this.scroller.directionY = 0;
+ this.scroller.currentPage = snap;
+ this.scroller.scrollTo(snap.x, snap.y, time, this.scroller.options.bounceEasing);
+ }
+ }
- if ( this.scroller.x != snap.x || this.scroller.y != snap.y ) {
- this.scroller.directionX = 0;
- this.scroller.directionY = 0;
- this.scroller.currentPage = snap;
- this.scroller.scrollTo(snap.x, snap.y, time, this.scroller.options.bounceEasing);
- }
- }
+ if ( this.moved ) {
+ this.scroller._execEvent('scrollEnd');
+ }
+ },
- if ( this.moved ) {
- this.scroller._execEvent('scrollEnd');
- }
- },
+ transitionTime: function (time) {
+ time = time || 0;
+ var durationProp = utils.style.transitionDuration;
+ if(!durationProp) {
+ return;
+ }
- transitionTime: function (time) {
- time = time || 0;
- this.indicatorStyle[utils.style.transitionDuration] = time + 'ms';
+ this.indicatorStyle[durationProp] = time + 'ms';
- if ( !time && utils.isBadAndroid ) {
- this.indicatorStyle[utils.style.transitionDuration] = '0.001s';
- }
- },
+ if ( !time && utils.isBadAndroid ) {
+ this.indicatorStyle[durationProp] = '0.0001ms';
+ // remove 0.0001ms
+ var self = this;
+ rAF(function() {
+ if(self.indicatorStyle[durationProp] === '0.0001ms') {
+ self.indicatorStyle[durationProp] = '0s';
+ }
+ });
+ }
+ },
- transitionTimingFunction: function (easing) {
- this.indicatorStyle[utils.style.transitionTimingFunction] = easing;
- },
+ transitionTimingFunction: function (easing) {
+ this.indicatorStyle[utils.style.transitionTimingFunction] = easing;
+ },
- refresh: function () {
- this.transitionTime();
+ refresh: function () {
+ this.transitionTime();
- if ( this.options.listenX && !this.options.listenY ) {
- this.indicatorStyle.display = this.scroller.hasHorizontalScroll ? 'block' : 'none';
- } else if ( this.options.listenY && !this.options.listenX ) {
- this.indicatorStyle.display = this.scroller.hasVerticalScroll ? 'block' : 'none';
- } else {
- this.indicatorStyle.display = this.scroller.hasHorizontalScroll || this.scroller.hasVerticalScroll ? 'block' : 'none';
- }
+ if ( this.options.listenX && !this.options.listenY ) {
+ this.indicatorStyle.display = this.scroller.hasHorizontalScroll ? 'block' : 'none';
+ } else if ( this.options.listenY && !this.options.listenX ) {
+ this.indicatorStyle.display = this.scroller.hasVerticalScroll ? 'block' : 'none';
+ } else {
+ this.indicatorStyle.display = this.scroller.hasHorizontalScroll || this.scroller.hasVerticalScroll ? 'block' : 'none';
+ }
- if ( this.scroller.hasHorizontalScroll && this.scroller.hasVerticalScroll ) {
- utils.addClass(this.wrapper, 'iScrollBothScrollbars');
- utils.removeClass(this.wrapper, 'iScrollLoneScrollbar');
+ if ( this.scroller.hasHorizontalScroll && this.scroller.hasVerticalScroll ) {
+ utils.addClass(this.wrapper, 'iScrollBothScrollbars');
+ utils.removeClass(this.wrapper, 'iScrollLoneScrollbar');
- if ( this.options.defaultScrollbars && this.options.customStyle ) {
- if ( this.options.listenX ) {
- this.wrapper.style.right = '8px';
- } else {
- this.wrapper.style.bottom = '8px';
- }
- }
- } else {
- utils.removeClass(this.wrapper, 'iScrollBothScrollbars');
- utils.addClass(this.wrapper, 'iScrollLoneScrollbar');
+ if ( this.options.defaultScrollbars && this.options.customStyle ) {
+ if ( this.options.listenX ) {
+ this.wrapper.style.right = '8px';
+ } else {
+ this.wrapper.style.bottom = '8px';
+ }
+ }
+ } else {
+ utils.removeClass(this.wrapper, 'iScrollBothScrollbars');
+ utils.addClass(this.wrapper, 'iScrollLoneScrollbar');
- if ( this.options.defaultScrollbars && this.options.customStyle ) {
- if ( this.options.listenX ) {
- this.wrapper.style.right = '2px';
- } else {
- this.wrapper.style.bottom = '2px';
- }
- }
- }
+ if ( this.options.defaultScrollbars && this.options.customStyle ) {
+ if ( this.options.listenX ) {
+ this.wrapper.style.right = '2px';
+ } else {
+ this.wrapper.style.bottom = '2px';
+ }
+ }
+ }
- var r = this.wrapper.offsetHeight; // force refresh
+ utils.getRect(this.wrapper); // force refresh
- if ( this.options.listenX ) {
- this.wrapperWidth = this.wrapper.clientWidth;
- if ( this.options.resize ) {
- this.indicatorWidth = Math.max(Math.round(this.wrapperWidth * this.wrapperWidth / (this.scroller.scrollerWidth || this.wrapperWidth || 1)), 8);
- this.indicatorStyle.width = this.indicatorWidth + 'px';
- } else {
- this.indicatorWidth = this.indicator.clientWidth;
- }
+ if ( this.options.listenX ) {
+ this.wrapperWidth = this.wrapper.clientWidth;
+ if ( this.options.resize ) {
+ this.indicatorWidth = Math.max(Math.round(this.wrapperWidth * this.wrapperWidth / (this.scroller.scrollerWidth || this.wrapperWidth || 1)), 8);
+ this.indicatorStyle.width = this.indicatorWidth + 'px';
+ } else {
+ this.indicatorWidth = this.indicator.clientWidth;
+ }
- this.maxPosX = this.wrapperWidth - this.indicatorWidth;
+ this.maxPosX = this.wrapperWidth - this.indicatorWidth;
- if ( this.options.shrink == 'clip' ) {
- this.minBoundaryX = -this.indicatorWidth + 8;
- this.maxBoundaryX = this.wrapperWidth - 8;
- } else {
- this.minBoundaryX = 0;
- this.maxBoundaryX = this.maxPosX;
- }
+ if ( this.options.shrink == 'clip' ) {
+ this.minBoundaryX = -this.indicatorWidth + 8;
+ this.maxBoundaryX = this.wrapperWidth - 8;
+ } else {
+ this.minBoundaryX = 0;
+ this.maxBoundaryX = this.maxPosX;
+ }
- this.sizeRatioX = this.options.speedRatioX || (this.scroller.maxScrollX && (this.maxPosX / this.scroller.maxScrollX));
- }
+ this.sizeRatioX = this.options.speedRatioX || (this.scroller.maxScrollX && (this.maxPosX / this.scroller.maxScrollX));
+ }
- if ( this.options.listenY ) {
- this.wrapperHeight = this.wrapper.clientHeight;
- if ( this.options.resize ) {
- this.indicatorHeight = Math.max(Math.round(this.wrapperHeight * this.wrapperHeight / (this.scroller.scrollerHeight || this.wrapperHeight || 1)), 8);
- this.indicatorStyle.height = this.indicatorHeight + 'px';
- } else {
- this.indicatorHeight = this.indicator.clientHeight;
- }
+ if ( this.options.listenY ) {
+ this.wrapperHeight = this.wrapper.clientHeight;
+ if ( this.options.resize ) {
+ this.indicatorHeight = Math.max(Math.round(this.wrapperHeight * this.wrapperHeight / (this.scroller.scrollerHeight || this.wrapperHeight || 1)), 8);
+ this.indicatorStyle.height = this.indicatorHeight + 'px';
+ } else {
+ this.indicatorHeight = this.indicator.clientHeight;
+ }
- this.maxPosY = this.wrapperHeight - this.indicatorHeight;
+ this.maxPosY = this.wrapperHeight - this.indicatorHeight;
- if ( this.options.shrink == 'clip' ) {
- this.minBoundaryY = -this.indicatorHeight + 8;
- this.maxBoundaryY = this.wrapperHeight - 8;
- } else {
- this.minBoundaryY = 0;
- this.maxBoundaryY = this.maxPosY;
- }
+ if ( this.options.shrink == 'clip' ) {
+ this.minBoundaryY = -this.indicatorHeight + 8;
+ this.maxBoundaryY = this.wrapperHeight - 8;
+ } else {
+ this.minBoundaryY = 0;
+ this.maxBoundaryY = this.maxPosY;
+ }
- this.maxPosY = this.wrapperHeight - this.indicatorHeight;
- this.sizeRatioY = this.options.speedRatioY || (this.scroller.maxScrollY && (this.maxPosY / this.scroller.maxScrollY));
- }
+ this.maxPosY = this.wrapperHeight - this.indicatorHeight;
+ this.sizeRatioY = this.options.speedRatioY || (this.scroller.maxScrollY && (this.maxPosY / this.scroller.maxScrollY));
+ }
- this.updatePosition();
- },
+ this.updatePosition();
+ },
- updatePosition: function () {
- var x = this.options.listenX && Math.round(this.sizeRatioX * this.scroller.x) || 0,
- y = this.options.listenY && Math.round(this.sizeRatioY * this.scroller.y) || 0;
+ updatePosition: function () {
+ var x = this.options.listenX && Math.round(this.sizeRatioX * this.scroller.x) || 0,
+ y = this.options.listenY && Math.round(this.sizeRatioY * this.scroller.y) || 0;
- if ( !this.options.ignoreBoundaries ) {
- if ( x < this.minBoundaryX ) {
- if ( this.options.shrink == 'scale' ) {
- this.width = Math.max(this.indicatorWidth + x, 8);
- this.indicatorStyle.width = this.width + 'px';
- }
- x = this.minBoundaryX;
- } else if ( x > this.maxBoundaryX ) {
- if ( this.options.shrink == 'scale' ) {
- this.width = Math.max(this.indicatorWidth - (x - this.maxPosX), 8);
- this.indicatorStyle.width = this.width + 'px';
- x = this.maxPosX + this.indicatorWidth - this.width;
- } else {
- x = this.maxBoundaryX;
- }
- } else if ( this.options.shrink == 'scale' && this.width != this.indicatorWidth ) {
- this.width = this.indicatorWidth;
- this.indicatorStyle.width = this.width + 'px';
- }
+ if ( !this.options.ignoreBoundaries ) {
+ if ( x < this.minBoundaryX ) {
+ if ( this.options.shrink == 'scale' ) {
+ this.width = Math.max(this.indicatorWidth + x, 8);
+ this.indicatorStyle.width = this.width + 'px';
+ }
+ x = this.minBoundaryX;
+ } else if ( x > this.maxBoundaryX ) {
+ if ( this.options.shrink == 'scale' ) {
+ this.width = Math.max(this.indicatorWidth - (x - this.maxPosX), 8);
+ this.indicatorStyle.width = this.width + 'px';
+ x = this.maxPosX + this.indicatorWidth - this.width;
+ } else {
+ x = this.maxBoundaryX;
+ }
+ } else if ( this.options.shrink == 'scale' && this.width != this.indicatorWidth ) {
+ this.width = this.indicatorWidth;
+ this.indicatorStyle.width = this.width + 'px';
+ }
- if ( y < this.minBoundaryY ) {
- if ( this.options.shrink == 'scale' ) {
- this.height = Math.max(this.indicatorHeight + y * 3, 8);
- this.indicatorStyle.height = this.height + 'px';
- }
- y = this.minBoundaryY;
- } else if ( y > this.maxBoundaryY ) {
- if ( this.options.shrink == 'scale' ) {
- this.height = Math.max(this.indicatorHeight - (y - this.maxPosY) * 3, 8);
- this.indicatorStyle.height = this.height + 'px';
- y = this.maxPosY + this.indicatorHeight - this.height;
- } else {
- y = this.maxBoundaryY;
- }
- } else if ( this.options.shrink == 'scale' && this.height != this.indicatorHeight ) {
- this.height = this.indicatorHeight;
- this.indicatorStyle.height = this.height + 'px';
- }
- }
+ if ( y < this.minBoundaryY ) {
+ if ( this.options.shrink == 'scale' ) {
+ this.height = Math.max(this.indicatorHeight + y * 3, 8);
+ this.indicatorStyle.height = this.height + 'px';
+ }
+ y = this.minBoundaryY;
+ } else if ( y > this.maxBoundaryY ) {
+ if ( this.options.shrink == 'scale' ) {
+ this.height = Math.max(this.indicatorHeight - (y - this.maxPosY) * 3, 8);
+ this.indicatorStyle.height = this.height + 'px';
+ y = this.maxPosY + this.indicatorHeight - this.height;
+ } else {
+ y = this.maxBoundaryY;
+ }
+ } else if ( this.options.shrink == 'scale' && this.height != this.indicatorHeight ) {
+ this.height = this.indicatorHeight;
+ this.indicatorStyle.height = this.height + 'px';
+ }
+ }
- this.x = x;
- this.y = y;
+ this.x = x;
+ this.y = y;
- if ( this.scroller.options.useTransform ) {
- this.indicatorStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.scroller.translateZ;
- } else {
- this.indicatorStyle.left = x + 'px';
- this.indicatorStyle.top = y + 'px';
- }
- },
+ if ( this.scroller.options.useTransform ) {
+ this.indicatorStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.scroller.translateZ;
+ } else {
+ this.indicatorStyle.left = x + 'px';
+ this.indicatorStyle.top = y + 'px';
+ }
+ },
- _pos: function (x, y) {
- if ( x < 0 ) {
- x = 0;
- } else if ( x > this.maxPosX ) {
- x = this.maxPosX;
- }
+ _pos: function (x, y) {
+ if ( x < 0 ) {
+ x = 0;
+ } else if ( x > this.maxPosX ) {
+ x = this.maxPosX;
+ }
- if ( y < 0 ) {
- y = 0;
- } else if ( y > this.maxPosY ) {
- y = this.maxPosY;
- }
+ if ( y < 0 ) {
+ y = 0;
+ } else if ( y > this.maxPosY ) {
+ y = this.maxPosY;
+ }
- x = this.options.listenX ? Math.round(x / this.sizeRatioX) : this.scroller.x;
- y = this.options.listenY ? Math.round(y / this.sizeRatioY) : this.scroller.y;
+ x = this.options.listenX ? Math.round(x / this.sizeRatioX) : this.scroller.x;
+ y = this.options.listenY ? Math.round(y / this.sizeRatioY) : this.scroller.y;
- this.scroller.scrollTo(x, y);
- },
+ this.scroller.scrollTo(x, y);
+ },
- fade: function (val, hold) {
- if ( hold && !this.visible ) {
- return;
- }
+ fade: function (val, hold) {
+ if ( hold && !this.visible ) {
+ return;
+ }
- clearTimeout(this.fadeTimeout);
- this.fadeTimeout = null;
+ clearTimeout(this.fadeTimeout);
+ this.fadeTimeout = null;
- var time = val ? 250 : 500,
- delay = val ? 0 : 300;
+ var time = val ? 250 : 500,
+ delay = val ? 0 : 300;
- val = val ? '1' : '0';
+ val = val ? '1' : '0';
- this.wrapperStyle[utils.style.transitionDuration] = time + 'ms';
+ this.wrapperStyle[utils.style.transitionDuration] = time + 'ms';
- this.fadeTimeout = setTimeout((function (val) {
- this.wrapperStyle.opacity = val;
- this.visible = +val;
- }).bind(this, val), delay);
- }
+ this.fadeTimeout = setTimeout((function (val) {
+ this.wrapperStyle.opacity = val;
+ this.visible = +val;
+ }).bind(this, val), delay);
+ }
};
IScroll.utils = utils;
if ( typeof module != 'undefined' && module.exports ) {
- module.exports = IScroll;
+ module.exports = IScroll;
+} else if ( typeof define == 'function' && define.amd ) {
+ define( function () { return IScroll; } );
} else {
- window.IScroll = IScroll;
+ window.IScroll = IScroll;
}
})(window, document, Math); \ No newline at end of file
diff --git a/StoneIsland/platforms/ios/www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js b/StoneIsland/platforms/ios/www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js
new file mode 100644
index 00000000..f5d0aaf7
--- /dev/null
+++ b/StoneIsland/platforms/ios/www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js
@@ -0,0 +1,53 @@
+cordova.define("phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications", function(require, exports, module) {
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+/**
+ * Mobile Accessibility Notification event constants
+ */
+module.exports = {
+ /* MobileAccessibility window events */
+ SCREEN_READER_STATUS_CHANGED : "screenreaderstatuschanged",
+ CLOSED_CAPTIONING_STATUS_CHANGED : "closedcaptioningstatuschanged",
+ GUIDED_ACCESS_STATUS_CHANGED : "guidedaccessstatuschanged",
+ INVERT_COLORS_STATUS_CHANGED : "invertcolorsstatuschanged",
+ MONO_AUDIO_STATUS_CHANGED : "monoaudiostatuschanged",
+ REDUCE_MOTION_STATUS_CHANGED : "reducemotionstatuschanged",
+ TOUCH_EXPLORATION_STATUS_CHANGED : "touchexplorationstatechanged",
+ BOLD_TEXT_STATUS_CHANGED : "boldtextstatuschanged",
+ DARKER_SYSTEM_COLORS_STATUS_CHANGED : "darkersystemcolorsstatuschanged",
+ GRAYSCALE_STATUS_CHANGED : "grayscalestatuschanged",
+ REDUCE_TRANSPARENCY_STATUS_CHANGED : "reducetransparencystatuschanged",
+ SPEAK_SCREEN_STATUS_CHANGED : "speakscreenstatuschanged",
+ SPEAK_SELECTION_STATUS_CHANGED : "speakselectionstatuschanged",
+ SWITCH_CONTROL_STATUS_CHANGED : "switchcontrolstatuschanged",
+
+ /* iOS specific UIAccessibilityNotifications */
+ SCREEN_CHANGED : 1000,
+ LAYOUT_CHANGED : 1001,
+ ANNOUNCEMENT : 1008,
+ PAGE_SCROLLED : 1009,
+
+ /* Windows specific high contrast event */
+ HIGH_CONTRAST_CHANGED : "highcontrastchanged"
+};
+
+});
diff --git a/StoneIsland/platforms/ios/www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js b/StoneIsland/platforms/ios/www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js
new file mode 100644
index 00000000..852b8d34
--- /dev/null
+++ b/StoneIsland/platforms/ios/www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js
@@ -0,0 +1,502 @@
+cordova.define("phonegap-plugin-mobile-accessibility.mobile-accessibility", function(require, exports, module) {
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+var argscheck = require('cordova/argscheck'),
+ utils = require('cordova/utils'),
+ exec = require('cordova/exec'),
+ device = require('cordova-plugin-device.device'),
+ network = require('cordova-plugin-network-information.network'),
+ connection = require('cordova-plugin-network-information.Connection'),
+ MobileAccessibilityNotifications = require('phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications');
+
+var MobileAccessibility = function() {
+ this._isBoldTextEnabled = false;
+ this._isClosedCaptioningEnabled = false;
+ this._isDarkerSystemColorsEnabled = false;
+ this._isGrayscaleEnabled = false;
+ this._isGuidedAccessEnabled = false;
+ this._isInvertColorsEnabled = false;
+ this._isMonoAudioEnabled = false;
+ this._isReduceMotionEnabled = false;
+ this._isReduceTransparencyEnabled = false;
+ this._isScreenReaderRunning = false;
+ this._isSpeakScreenEnabled = false;
+ this._isSpeakSelectionEnabled = false;
+ this._isSwitchControlRunning = false;
+ this._isTouchExplorationEnabled = false;
+ this._usePreferredTextZoom = false;
+ this._isHighContrastEnabled = false;
+ this._highContrastScheme = undefined;
+
+ // Create new event handlers on the window (returns a channel instance)
+ this.channels = {
+ boldtextstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.BOLD_TEXT_STATUS_CHANGED),
+ closedcaptioningstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.CLOSED_CAPTIONING_STATUS_CHANGED),
+ darkersystemcolorsstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.DARKER_SYSTEM_COLORS_STATUS_CHANGED),
+ grayscalestatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.GRAYSCALE_STATUS_CHANGED),
+ guidedaccessstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.GUIDED_ACCESS_STATUS_CHANGED),
+ invertcolorsstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.INVERT_COLORS_STATUS_CHANGED),
+ monoaudiostatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.MONO_AUDIO_STATUS_CHANGED),
+ reducemotionstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.REDUCE_MOTION_STATUS_CHANGED),
+ reducetransparencystatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.REDUCE_TRANSPARENCY_STATUS_CHANGED),
+ screenreaderstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SCREEN_READER_STATUS_CHANGED),
+ speakscreenstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SPEAK_SCREEN_STATUS_CHANGED),
+ speakselectionstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SPEAK_SELECTION_STATUS_CHANGED),
+ switchcontrolstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SWITCH_CONTROL_STATUS_CHANGED),
+ touchexplorationstatechanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.TOUCH_EXPLORATION_STATUS_CHANGED),
+ highcontrastchanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.HIGH_CONTRAST_CHANGED)
+ };
+ for (var key in this.channels) {
+ this.channels[key].onHasSubscribersChange = MobileAccessibility.onHasSubscribersChange;
+ }
+};
+
+/**
+ * @private
+ * @ignore
+ */
+function handlers() {
+ return mobileAccessibility.channels.boldtextstatuschanged.numHandlers +
+ mobileAccessibility.channels.closedcaptioningstatuschanged.numHandlers +
+ mobileAccessibility.channels.darkersystemcolorsstatuschanged.numHandlers +
+ mobileAccessibility.channels.grayscalestatuschanged.numHandlers +
+ mobileAccessibility.channels.guidedaccessstatuschanged.numHandlers +
+ mobileAccessibility.channels.invertcolorsstatuschanged.numHandlers +
+ mobileAccessibility.channels.monoaudiostatuschanged.numHandlers +
+ mobileAccessibility.channels.reducemotionstatuschanged.numHandlers +
+ mobileAccessibility.channels.reducetransparencystatuschanged.numHandlers +
+ mobileAccessibility.channels.screenreaderstatuschanged.numHandlers +
+ mobileAccessibility.channels.speakscreenstatuschanged.numHandlers +
+ mobileAccessibility.channels.speakselectionstatuschanged.numHandlers +
+ mobileAccessibility.channels.switchcontrolstatuschanged.numHandlers +
+ mobileAccessibility.channels.touchexplorationstatechanged.numHandlers +
+ mobileAccessibility.channels.highcontrastchanged.numHandlers;
+};
+
+/**
+ *
+ * Event handlers for when callback methods get registered for mobileAccessibility.
+ * Keep track of how many handlers we have so we can start and stop the native MobileAccessibility listener
+ * appropriately.
+ * @private
+ * @ignore
+ */
+MobileAccessibility.onHasSubscribersChange = function() {
+ // If we just registered the first handler, make sure native listener is started.
+ if (this.numHandlers === 1 && handlers() === 1) {
+ exec(mobileAccessibility._status, mobileAccessibility._error, "MobileAccessibility", "start", []);
+ } else if (handlers() === 0) {
+ exec(null, null, "MobileAccessibility", "stop", []);
+ }
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility determine if a screen reader is running.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isScreenReaderRunning = function(callback) {
+ exec(function(bool) {
+ mobileAccessibility.activateOrDeactivateChromeVox(bool);
+ callback(Boolean(bool));
+ }, null, "MobileAccessibility", "isScreenReaderRunning", []);
+};
+MobileAccessibility.prototype.isVoiceOverRunning = function(callback) {
+ if (device.platform.toLowerCase() === "ios") {
+ MobileAccessibility.prototype.isScreenReaderRunning(callback);
+ } else {
+ callback(false);
+ }
+};
+MobileAccessibility.prototype.isTalkBackRunning = function(callback) {
+ if (device.platform.toLowerCase() === "android" || device.platform.toLowerCase() === "amazon-fireos") {
+ MobileAccessibility.prototype.isScreenReaderRunning(callback);
+ } else {
+ callback(false);
+ }
+};
+MobileAccessibility.prototype.isChromeVoxActive = function () {
+ return typeof cvox !== "undefined" && cvox.ChromeVox.host.ttsLoaded() && cvox.Api.isChromeVoxActive();
+};
+MobileAccessibility.prototype.activateOrDeactivateChromeVox = function(bool) {
+ if (device.platform !== "Android") return;
+ if (typeof cvox === "undefined") {
+ if (bool) {
+ console.warn('A screen reader is running but ChromeVox has failed to initialize.');
+ if (navigator.connection.type === Connection.UNKNOWN || navigator.connection.type === Connection.NONE) {
+ mobileAccessibility.injectLocalAndroidVoxScript();
+ }
+ }
+ } else {
+ // activate or deactivate ChromeVox based on whether or not or not the screen reader is running.
+ try {
+ cvox.ChromeVox.host.activateOrDeactivateChromeVox(bool);
+ } catch (err) {
+ console.error(err);
+ }
+ }
+
+ if (bool) {
+ if (!mobileAccessibility.hasOrientationChangeListener) {
+ window.addEventListener("orientationchange", mobileAccessibility.onOrientationChange);
+ mobileAccessibility.hasOrientationChangeListener = true;
+ }
+ } else if(mobileAccessibility.hasOrientationChangeListener) {
+ window.removeEventListener("orientationchange", mobileAccessibility.onOrientationChange);
+ mobileAccessibility.hasOrientationChangeListener = false;
+ }
+};
+
+MobileAccessibility.prototype.hasOrientationChangeListener = false;
+MobileAccessibility.prototype.onOrientationChange = function(event) {
+ if (!mobileAccessibility.isChromeVoxActive()) return;
+ cvox.ChromeVox.navigationManager.updateIndicator();
+};
+
+MobileAccessibility.prototype.scriptInjected = false;
+MobileAccessibility.prototype.injectLocalAndroidVoxScript = function() {
+ var versionsplit = device.version.split('.');
+ if (device.platform !== "Android" ||
+ !(versionsplit[0] > 4 || (versionsplit[0] == 4 && versionsplit[1] >= 1)) ||
+ typeof cvox !== "undefined" || mobileAccessibility.scriptInjected) return;
+ var script = document.createElement('script');
+ script.type = 'text/javascript';
+ script.async = true;
+ script.onload = function(){
+ // console.log(this.src + ' has loaded');
+ if (mobileAccessibility.isChromeVoxActive()) {
+ cordova.fireWindowEvent("screenreaderstatuschanged", {
+ isScreenReaderRunning: true
+ });
+ }
+ };
+
+ script.src = (versionsplit[0] > 4 || versionsplit[1] > 3)
+ ? "plugins/com.phonegap.plugin.mobile-accessibility/android/chromeandroidvox.js"
+ : "plugins/com.phonegap.plugin.mobile-accessibility/android/AndroidVox_v1.js";
+ document.getElementsByTagName('head')[0].appendChild(script);
+ mobileAccessibility.scriptInjected = true;
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Bold Text is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isBoldTextEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isBoldTextEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Closed Captioning is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isClosedCaptioningEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isClosedCaptioningEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Darker System Colors are enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isDarkerSystemColorsEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isDarkerSystemColorsEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Grayscale is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isGrayscaleEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isGrayscaleEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Guided Access is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isGuidedAccessEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isGuidedAccessEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if the display colors have been inverted.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isInvertColorsEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isInvertColorsEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Mono Audio is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isMonoAudioEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isMonoAudioEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Reduce Motion is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isReduceMotionEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isReduceMotionEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Reduce Transparency is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isReduceTransparencyEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isReduceTransparencyEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Speak Screen is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isSpeakScreenEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isSpeakScreenEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Speak Selection is enabled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isSpeakSelectionEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isSpeakSelectionEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Switch Control is running.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isSwitchControlRunning = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isSwitchControlRunning", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if Touch Exploration is enabled on Android.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isTouchExplorationEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isTouchExplorationEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to determine if High Contrast is enabled on Windows.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.isHighContrastEnabled = function(callback) {
+ exec(callback, null, "MobileAccessibility", "isHighContrastEnabled", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to return the current text zoom percent value for the WebView.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.getTextZoom = function(callback) {
+ exec(callback, null, "MobileAccessibility", "getTextZoom", []);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to set the current text zoom percent value for the WebView.
+ * @param {Number} textZoom A percentage value by which text in the WebView should be scaled.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.setTextZoom = function(textZoom, callback) {
+ exec(callback, null, "MobileAccessibility", "setTextZoom", [textZoom]);
+};
+
+/**
+ * Asynchronous call to native MobileAccessibility to retrieve the user's preferred text zoom from system settings and apply it to the application WebView.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility.
+ */
+MobileAccessibility.prototype.updateTextZoom = function(callback) {
+ exec(callback, null, "MobileAccessibility", "updateTextZoom", []);
+};
+
+MobileAccessibility.prototype.usePreferredTextZoom = function(bool) {
+ var currentValue = window.localStorage.getItem("MobileAccessibility.usePreferredTextZoom") === "true";
+
+ if (arguments.length === 0) {
+ return currentValue;
+ }
+
+ if (currentValue != bool) {
+ window.localStorage.setItem("MobileAccessibility.usePreferredTextZoom", bool);
+ }
+
+ var callback = function(){
+ // Wrapping updateTextZoom call in a function to stop
+ // the event parameter propagation. This fixes an error
+ // on resume where cordova tried to call apply() on the
+ // event, expecting a function.
+ mobileAccessibility.updateTextZoom();
+ };
+
+ document.removeEventListener("resume", callback);
+
+ if (bool) {
+ // console.log("We should update the text zoom at this point: " + bool)
+ document.addEventListener("resume", callback, false);
+ mobileAccessibility.updateTextZoom();
+ } else {
+ mobileAccessibility.setTextZoom(100);
+ }
+
+ return Boolean(bool);
+};
+
+MobileAccessibility.prototype.MobileAccessibilityNotifications = MobileAccessibilityNotifications;
+
+/**
+ * Posts a notification with a string for a screen reader to announce, if it is running.
+ * @param {uint} mobileAccessibilityNotification A numeric constant for the type of notification to send. Constants are defined in MobileAccessibility.MobileAccessibilityNotifications.
+ * @param {string} string A string to be announced by a screen reader.
+ * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility, when the announcement is finished, the function should expect an object containing the stringValue that was voiced and a boolean indicating that the announcement wasSuccessful.
+ */
+MobileAccessibility.prototype.postNotification = function(mobileAccessibilityNotification, string, callback) {
+ exec(callback, null, "MobileAccessibility", "postNotification", [mobileAccessibilityNotification, string]);
+};
+
+/**
+ * Speaks the given string, and if ChromeVox is active, it will use the specified queueMode and properties.
+ * @param {string} string A string to be announced by a screen reader.
+ * @param {number} [queueMode] Optional number. Valid modes are 0 for flush; 1 for queue.
+ * @param {Object} [properties] Speech properties to use for this utterance.
+ */
+MobileAccessibility.prototype.speak = function(string, queueMode, properties) {
+ if (this.isChromeVoxActive()) {
+ cvox.ChromeVox.tts.speak(string, queueMode, properties);
+ } else {
+ exec(null, null, "MobileAccessibility", "postNotification", [MobileAccessibilityNotifications.ANNOUNCEMENT, string]);
+ }
+}
+
+/**
+ * Stops speech.
+ */
+MobileAccessibility.prototype.stop = function() {
+ if (this.isChromeVoxActive()) {
+ cvox.ChromeVox.tts.stop();
+ } else {
+ exec(null, null, "MobileAccessibility", "postNotification", [MobileAccessibilityNotifications.ANNOUNCEMENT, "\u200b"]);
+ }
+}
+
+/**
+ * Callback from native MobileAccessibility returning an object which describes the status of MobileAccessibility features.
+ *
+ * @param {Object} info
+ * @config {Boolean} [isBoldTextEnabled] Boolean to indicate bold text status (ios).
+ * @config {Boolean} [isClosedCaptioningEnabled] Boolean to indicate closed captioning status.
+ * @config {Boolean} [isDarkerSystemColorsEnabled] Boolean to indicate darker system colors status (ios).
+ * @config {Boolean} [isGrayscaleEnabled] Boolean to indicate grayscale status (ios).
+ * @config {Boolean} [isGuidedAccessEnabled] Boolean to indicate guided access status (ios).
+ * @config {Boolean} [isInvertColorsEnabled] Boolean to indicate invert colors status (ios).
+ * @config {Boolean} [isMonoAudioEnabled] Boolean to indicate mono audio status (ios).
+ * @config {Boolean} [isReduceMotionEnabled] Boolean to indicate reduce motion status (ios).
+ * @config {Boolean} [isReduceTransparencyEnabled] Boolean to indicate reduce transparency status (ios).
+ * @config {Boolean} [isScreenReaderRunning] Boolean to indicate screen reader status.
+ * @config {Boolean} [isSpeakScreenEnabled] Boolean to indicate speak screen status (ios).
+ * @config {Boolean} [isSpeakSelectionEnabled] Boolean to indicate speak selection status (ios).
+ * @config {Boolean} [isSwitchControlRunning] Boolean to indicate switch control status (ios).
+ * @config {Boolean} [isTouchExplorationEnabled] Boolean to indicate touch exploration status (android).
+ */
+MobileAccessibility.prototype._status = function(info) {
+ if (info) {
+ mobileAccessibility.activateOrDeactivateChromeVox(info.isScreenReaderRunning);
+ if (mobileAccessibility._isBoldTextEnabled !== info.isBoldTextEnabled) {
+ mobileAccessibility._isBoldTextEnabled = info.isBoldTextEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.BOLD_TEXT_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isClosedCaptioningEnabled !== info.isClosedCaptioningEnabled) {
+ mobileAccessibility._isClosedCaptioningEnabled = info.isClosedCaptioningEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.CLOSED_CAPTIONING_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isDarkerSystemColorsEnabled !== info.isDarkerSystemColorsEnabled) {
+ mobileAccessibility._isDarkerSystemColorsEnabled = info.isDarkerSystemColorsEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.DARKER_SYSTEM_COLORS_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isGrayscaleEnabled !== info.isGrayscaleEnabled) {
+ mobileAccessibility._isGrayscaleEnabled = info.isGrayscaleEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.GRAYSCALE_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isGuidedAccessEnabled !== info.isGuidedAccessEnabled) {
+ mobileAccessibility._isGuidedAccessEnabled = info.isGuidedAccessEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.GUIDED_ACCESS_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isInvertColorsEnabled !== info.isInvertColorsEnabled) {
+ mobileAccessibility._isInvertColorsEnabled = info.isInvertColorsEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.INVERT_COLORS_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isMonoAudioEnabled !== info.isMonoAudioEnabled) {
+ mobileAccessibility._isMonoAudioEnabled = info.isMonoAudioEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.MONO_AUDIO_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isReduceMotionEnabled !== info.isReduceMotionEnabled) {
+ mobileAccessibility._isReduceMotionEnabled = info.isReduceMotionEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.REDUCE_MOTION_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isReduceTransparencyEnabled !== info.isReduceTransparencyEnabled) {
+ mobileAccessibility._isReduceTransparencyEnabled = info.isReduceTransparencyEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.REDUCE_TRANSPARENCY_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isScreenReaderRunning !== info.isScreenReaderRunning) {
+ mobileAccessibility._isScreenReaderRunning = info.isScreenReaderRunning;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.SCREEN_READER_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isSpeakScreenEnabled !== info.isSpeakScreenEnabled) {
+ mobileAccessibility._isSpeakScreenEnabled = info.isSpeakScreenEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.SPEAK_SCREEN_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isSpeakSelectionEnabled !== info.isSpeakSelectionEnabled) {
+ mobileAccessibility._isSpeakSelectionEnabled = info.isSpeakSelectionEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.SPEAK_SELECTION_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isSwitchControlRunning !== info.isSwitchControlRunning) {
+ mobileAccessibility._isSwitchControlRunning = info.isSwitchControlRunning;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.SWITCH_CONTROL_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isTouchExplorationEnabled !== info.isTouchExplorationEnabled) {
+ mobileAccessibility._isTouchExplorationEnabled = info.isTouchExplorationEnabled;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.TOUCH_EXPLORATION_STATUS_CHANGED, info);
+ }
+ if (mobileAccessibility._isHighContrastEnabled !== info.isHighContrastEnabled) {
+ mobileAccessibility._isHighContrastEnabled = info.isHighContrastEnabled;
+ mobileAccessibility._highContrastScheme = info.highContrastScheme;
+ cordova.fireWindowEvent(MobileAccessibilityNotifications.HIGH_CONTRAST_CHANGED, info);
+ }
+ }
+};
+
+/**
+ * Error callback for MobileAccessibility start
+ */
+MobileAccessibility.prototype._error = function(e) {
+ console.log("Error initializing MobileAccessibility: " + e);
+};
+
+var mobileAccessibility = new MobileAccessibility();
+
+module.exports = mobileAccessibility;
+
+});