cesium 1.18.0 → 1.23.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/Cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml +2 -3
- data/app/assets/javascripts/Cesium/Assets/approximateTerrainHeights.json +1 -0
- data/app/assets/javascripts/Cesium/Cesium.js +26 -7
- data/app/assets/javascripts/Cesium/Core/ArcGisImageServerTerrainProvider.js +2 -2
- data/app/assets/javascripts/Cesium/Core/AssociativeArray.js +1 -1
- data/app/assets/javascripts/Cesium/Core/AttributeCompression.js +1 -1
- data/app/assets/javascripts/Cesium/Core/AxisAlignedBoundingBox.js +1 -1
- data/app/assets/javascripts/Cesium/Core/BingMapsApi.js +19 -3
- data/app/assets/javascripts/Cesium/Core/BoundingRectangle.js +60 -1
- data/app/assets/javascripts/Cesium/Core/BoundingSphere.js +1 -1
- data/app/assets/javascripts/Cesium/Core/BoxGeometry.js +7 -38
- data/app/assets/javascripts/Cesium/Core/BoxOutlineGeometry.js +6 -2
- data/app/assets/javascripts/Cesium/Core/Cartesian2.js +56 -1
- data/app/assets/javascripts/Cesium/Core/Cartesian3.js +125 -39
- data/app/assets/javascripts/Cesium/Core/Cartesian4.js +56 -1
- data/app/assets/javascripts/Cesium/Core/Cartographic.js +1 -1
- data/app/assets/javascripts/Cesium/Core/CatmullRomSpline.js +1 -1
- data/app/assets/javascripts/Cesium/Core/CesiumTerrainProvider.js +3 -3
- data/app/assets/javascripts/Cesium/Core/CircleGeometry.js +15 -5
- data/app/assets/javascripts/Cesium/Core/CircleOutlineGeometry.js +2 -5
- data/app/assets/javascripts/Cesium/Core/Clock.js +177 -73
- data/app/assets/javascripts/Cesium/Core/ClockRange.js +1 -1
- data/app/assets/javascripts/Cesium/Core/ClockStep.js +1 -1
- data/app/assets/javascripts/Cesium/Core/Color.js +238 -20
- data/app/assets/javascripts/Cesium/Core/ColorGeometryInstanceAttribute.js +1 -1
- data/app/assets/javascripts/Cesium/Core/ComponentDatatype.js +1 -1
- data/app/assets/javascripts/Cesium/Core/CornerType.js +1 -1
- data/app/assets/javascripts/Cesium/Core/CorridorGeometry.js +154 -11
- data/app/assets/javascripts/Cesium/Core/CorridorGeometryLibrary.js +1 -26
- data/app/assets/javascripts/Cesium/Core/CorridorOutlineGeometry.js +13 -10
- data/app/assets/javascripts/Cesium/Core/Credit.js +1 -1
- data/app/assets/javascripts/Cesium/Core/CubicRealPolynomial.js +1 -1
- data/app/assets/javascripts/Cesium/Core/CylinderGeometry.js +15 -14
- data/app/assets/javascripts/Cesium/Core/CylinderGeometryLibrary.js +1 -1
- data/app/assets/javascripts/Cesium/Core/CylinderOutlineGeometry.js +15 -14
- data/app/assets/javascripts/Cesium/Core/DefaultProxy.js +1 -1
- data/app/assets/javascripts/Cesium/Core/DeveloperError.js +7 -1
- data/app/assets/javascripts/Cesium/Core/EarthOrientationParameters.js +1 -1
- data/app/assets/javascripts/Cesium/Core/EarthOrientationParametersSample.js +1 -1
- data/app/assets/javascripts/Cesium/Core/EasingFunction.js +1 -1
- data/app/assets/javascripts/Cesium/Core/EllipseGeometry.js +75 -12
- data/app/assets/javascripts/Cesium/Core/EllipseGeometryLibrary.js +1 -1
- data/app/assets/javascripts/Cesium/Core/EllipseOutlineGeometry.js +11 -13
- data/app/assets/javascripts/Cesium/Core/Ellipsoid.js +1 -1
- data/app/assets/javascripts/Cesium/Core/EllipsoidGeodesic.js +1 -1
- data/app/assets/javascripts/Cesium/Core/EllipsoidGeometry.js +30 -7
- data/app/assets/javascripts/Cesium/Core/EllipsoidOutlineGeometry.js +8 -3
- data/app/assets/javascripts/Cesium/Core/EllipsoidTangentPlane.js +1 -1
- data/app/assets/javascripts/Cesium/Core/EllipsoidTerrainProvider.js +1 -1
- data/app/assets/javascripts/Cesium/Core/EllipsoidalOccluder.js +1 -43
- data/app/assets/javascripts/Cesium/Core/EncodedCartesian3.js +1 -1
- data/app/assets/javascripts/Cesium/Core/Event.js +1 -1
- data/app/assets/javascripts/Cesium/Core/EventHelper.js +1 -1
- data/app/assets/javascripts/Cesium/Core/ExtrapolationType.js +1 -1
- data/app/assets/javascripts/Cesium/Core/FeatureDetection.js +1 -1
- data/app/assets/javascripts/Cesium/Core/Fullscreen.js +9 -9
- data/app/assets/javascripts/Cesium/Core/GeographicProjection.js +1 -1
- data/app/assets/javascripts/Cesium/Core/GeographicTilingScheme.js +1 -1
- data/app/assets/javascripts/Cesium/Core/Geometry.js +1 -1
- data/app/assets/javascripts/Cesium/Core/GeometryAttribute.js +1 -1
- data/app/assets/javascripts/Cesium/Core/GeometryAttributes.js +1 -1
- data/app/assets/javascripts/Cesium/Core/GeometryInstance.js +1 -1
- data/app/assets/javascripts/Cesium/Core/GeometryInstanceAttribute.js +1 -1
- data/app/assets/javascripts/Cesium/Core/GeometryPipeline.js +94 -32
- data/app/assets/javascripts/Cesium/Core/GeometryType.js +1 -1
- data/app/assets/javascripts/Cesium/Core/GregorianDate.js +1 -1
- data/app/assets/javascripts/Cesium/Core/HeadingPitchRange.js +1 -1
- data/app/assets/javascripts/Cesium/Core/HeightmapTerrainData.js +19 -15
- data/app/assets/javascripts/Cesium/Core/HeightmapTessellator.js +2 -2
- data/app/assets/javascripts/Cesium/Core/HermitePolynomialApproximation.js +1 -1
- data/app/assets/javascripts/Cesium/Core/HermiteSpline.js +1 -1
- data/app/assets/javascripts/Cesium/Core/Iau2000Orientation.js +1 -1
- data/app/assets/javascripts/Cesium/Core/Iau2006XysData.js +1 -1
- data/app/assets/javascripts/Cesium/Core/Iau2006XysSample.js +1 -1
- data/app/assets/javascripts/Cesium/Core/IauOrientationAxes.js +1 -1
- data/app/assets/javascripts/Cesium/Core/IauOrientationParameters.js +1 -1
- data/app/assets/javascripts/Cesium/Core/IndexDatatype.js +1 -1
- data/app/assets/javascripts/Cesium/Core/InterpolationAlgorithm.js +1 -1
- data/app/assets/javascripts/Cesium/Core/Intersect.js +1 -1
- data/app/assets/javascripts/Cesium/Core/IntersectionTests.js +19 -6
- data/app/assets/javascripts/Cesium/Core/Intersections2D.js +1 -1
- data/app/assets/javascripts/Cesium/Core/Interval.js +1 -1
- data/app/assets/javascripts/Cesium/Core/Iso8601.js +1 -1
- data/app/assets/javascripts/Cesium/Core/JulianDate.js +3 -3
- data/app/assets/javascripts/Cesium/Core/KeyboardEventModifier.js +1 -1
- data/app/assets/javascripts/Cesium/Core/LagrangePolynomialApproximation.js +1 -1
- data/app/assets/javascripts/Cesium/Core/LeapSecond.js +1 -1
- data/app/assets/javascripts/Cesium/Core/LinearApproximation.js +1 -1
- data/app/assets/javascripts/Cesium/Core/LinearSpline.js +1 -1
- data/app/assets/javascripts/Cesium/Core/MapProjection.js +1 -1
- data/app/assets/javascripts/Cesium/Core/MapboxApi.js +1 -1
- data/app/assets/javascripts/Cesium/Core/Math.js +1 -1
- data/app/assets/javascripts/Cesium/Core/Matrix2.js +17 -1
- data/app/assets/javascripts/Cesium/Core/Matrix3.js +17 -1
- data/app/assets/javascripts/Cesium/Core/Matrix4.js +103 -40
- data/app/assets/javascripts/Cesium/Core/NearFarScalar.js +1 -1
- data/app/assets/javascripts/Cesium/Core/Occluder.js +1 -1
- data/app/assets/javascripts/Cesium/Core/OrientedBoundingBox.js +33 -17
- data/app/assets/javascripts/Cesium/Core/Packable.js +1 -1
- data/app/assets/javascripts/Cesium/Core/PackableForInterpolation.js +1 -1
- data/app/assets/javascripts/Cesium/Core/PinBuilder.js +1 -1
- data/app/assets/javascripts/Cesium/Core/PixelFormat.js +1 -1
- data/app/assets/javascripts/Cesium/Core/Plane.js +1 -1
- data/app/assets/javascripts/Cesium/Core/PointGeometry.js +1 -1
- data/app/assets/javascripts/Cesium/Core/PolygonGeometry.js +291 -114
- data/app/assets/javascripts/Cesium/Core/PolygonGeometryLibrary.js +67 -26
- data/app/assets/javascripts/Cesium/Core/PolygonHierarchy.js +1 -1
- data/app/assets/javascripts/Cesium/Core/PolygonOutlineGeometry.js +30 -23
- data/app/assets/javascripts/Cesium/Core/PolygonPipeline.js +15 -759
- data/app/assets/javascripts/Cesium/Core/PolylineGeometry.js +6 -4
- data/app/assets/javascripts/Cesium/Core/PolylinePipeline.js +2 -59
- data/app/assets/javascripts/Cesium/Core/PolylineVolumeGeometry.js +4 -4
- data/app/assets/javascripts/Cesium/Core/PolylineVolumeGeometryLibrary.js +1 -1
- data/app/assets/javascripts/Cesium/Core/PolylineVolumeOutlineGeometry.js +4 -4
- data/app/assets/javascripts/Cesium/Core/PrimitiveType.js +1 -1
- data/app/assets/javascripts/Cesium/Core/QuadraticRealPolynomial.js +1 -1
- data/app/assets/javascripts/Cesium/Core/QuantizedMeshTerrainData.js +8 -4
- data/app/assets/javascripts/Cesium/Core/QuarticRealPolynomial.js +1 -1
- data/app/assets/javascripts/Cesium/Core/Quaternion.js +1 -1
- data/app/assets/javascripts/Cesium/Core/QuaternionSpline.js +1 -1
- data/app/assets/javascripts/Cesium/Core/Queue.js +1 -1
- data/app/assets/javascripts/Cesium/Core/Ray.js +1 -1
- data/app/assets/javascripts/Cesium/Core/Rectangle.js +58 -1
- data/app/assets/javascripts/Cesium/Core/RectangleGeometry.js +68 -10
- data/app/assets/javascripts/Cesium/Core/RectangleGeometryLibrary.js +1 -1
- data/app/assets/javascripts/Cesium/Core/RectangleOutlineGeometry.js +10 -7
- data/app/assets/javascripts/Cesium/Core/ReferenceFrame.js +1 -1
- data/app/assets/javascripts/Cesium/Core/RequestErrorEvent.js +1 -1
- data/app/assets/javascripts/Cesium/Core/RuntimeError.js +8 -1
- data/app/assets/javascripts/Cesium/Core/ScreenSpaceEventHandler.js +32 -11
- data/app/assets/javascripts/Cesium/Core/ScreenSpaceEventType.js +1 -1
- data/app/assets/javascripts/Cesium/Core/ShowGeometryInstanceAttribute.js +1 -2
- data/app/assets/javascripts/Cesium/Core/Simon1994PlanetaryPositions.js +1 -1
- data/app/assets/javascripts/Cesium/Core/SimplePolylineGeometry.js +1 -1
- data/app/assets/javascripts/Cesium/Core/SphereGeometry.js +1 -1
- data/app/assets/javascripts/Cesium/Core/SphereOutlineGeometry.js +1 -1
- data/app/assets/javascripts/Cesium/Core/Spherical.js +1 -1
- data/app/assets/javascripts/Cesium/Core/Spline.js +1 -1
- data/app/assets/javascripts/Cesium/Core/TaskProcessor.js +1 -1
- data/app/assets/javascripts/Cesium/Core/TerrainData.js +3 -1
- data/app/assets/javascripts/Cesium/Core/TerrainEncoding.js +1 -1
- data/app/assets/javascripts/Cesium/Core/TerrainMesh.js +8 -2
- data/app/assets/javascripts/Cesium/Core/TerrainProvider.js +1 -1
- data/app/assets/javascripts/Cesium/Core/TerrainQuantization.js +1 -1
- data/app/assets/javascripts/Cesium/Core/TileProviderError.js +1 -1
- data/app/assets/javascripts/Cesium/Core/TilingScheme.js +1 -1
- data/app/assets/javascripts/Cesium/Core/TimeConstants.js +1 -1
- data/app/assets/javascripts/Cesium/Core/TimeInterval.js +3 -3
- data/app/assets/javascripts/Cesium/Core/TimeIntervalCollection.js +3 -3
- data/app/assets/javascripts/Cesium/Core/TimeStandard.js +1 -1
- data/app/assets/javascripts/Cesium/Core/Tipsify.js +1 -1
- data/app/assets/javascripts/Cesium/Core/Transforms.js +141 -1
- data/app/assets/javascripts/Cesium/Core/TranslationRotationScale.js +2 -2
- data/app/assets/javascripts/Cesium/Core/TridiagonalSystemSolver.js +1 -1
- data/app/assets/javascripts/Cesium/Core/VRTheWorldTerrainProvider.js +2 -2
- data/app/assets/javascripts/Cesium/Core/VertexFormat.js +1 -1
- data/app/assets/javascripts/Cesium/Core/VideoSynchronizer.js +1 -1
- data/app/assets/javascripts/Cesium/Core/Visibility.js +1 -1
- data/app/assets/javascripts/Cesium/Core/WallGeometry.js +5 -7
- data/app/assets/javascripts/Cesium/Core/WallGeometryLibrary.js +20 -9
- data/app/assets/javascripts/Cesium/Core/WallOutlineGeometry.js +3 -6
- data/app/assets/javascripts/Cesium/Core/WebMercatorProjection.js +1 -1
- data/app/assets/javascripts/Cesium/Core/WebMercatorTilingScheme.js +1 -1
- data/app/assets/javascripts/Cesium/Core/WindingOrder.js +1 -1
- data/app/assets/javascripts/Cesium/Core/appendForwardSlash.js +1 -1
- data/app/assets/javascripts/Cesium/Core/arrayRemoveDuplicates.js +101 -0
- data/app/assets/javascripts/Cesium/Core/barycentricCoordinates.js +1 -1
- data/app/assets/javascripts/Cesium/Core/binarySearch.js +1 -1
- data/app/assets/javascripts/Cesium/Core/buildModuleUrl.js +4 -2
- data/app/assets/javascripts/Cesium/Core/cancelAnimationFrame.js +2 -2
- data/app/assets/javascripts/Cesium/Core/clone.js +1 -1
- data/app/assets/javascripts/Cesium/Core/combine.js +1 -1
- data/app/assets/javascripts/Cesium/Core/createGuid.js +1 -1
- data/app/assets/javascripts/Cesium/Core/defaultValue.js +1 -1
- data/app/assets/javascripts/Cesium/Core/defineProperties.js +1 -1
- data/app/assets/javascripts/Cesium/Core/defined.js +2 -2
- data/app/assets/javascripts/Cesium/Core/deprecationWarning.js +7 -10
- data/app/assets/javascripts/Cesium/Core/destroyObject.js +1 -1
- data/app/assets/javascripts/Cesium/Core/formatError.js +1 -1
- data/app/assets/javascripts/Cesium/Core/freezeObject.js +1 -1
- data/app/assets/javascripts/Cesium/Core/getAbsoluteUri.js +1 -1
- data/app/assets/javascripts/Cesium/Core/getBaseUri.js +6 -6
- data/app/assets/javascripts/Cesium/Core/getExtensionFromUri.js +1 -1
- data/app/assets/javascripts/Cesium/Core/getFilenameFromUri.js +1 -1
- data/app/assets/javascripts/Cesium/Core/getImagePixels.js +1 -1
- data/app/assets/javascripts/Cesium/Core/getMagic.js +1 -1
- data/app/assets/javascripts/Cesium/Core/getStringFromTypedArray.js +1 -1
- data/app/assets/javascripts/Cesium/Core/getTimestamp.js +1 -1
- data/app/assets/javascripts/Cesium/Core/isArray.js +1 -1
- data/app/assets/javascripts/Cesium/Core/isCrossOriginUrl.js +1 -1
- data/app/assets/javascripts/Cesium/Core/isLeapYear.js +1 -1
- data/app/assets/javascripts/Cesium/Core/joinUrls.js +9 -11
- data/app/assets/javascripts/Cesium/Core/loadArrayBuffer.js +1 -1
- data/app/assets/javascripts/Cesium/Core/loadBlob.js +1 -1
- data/app/assets/javascripts/Cesium/Core/loadImage.js +1 -1
- data/app/assets/javascripts/Cesium/Core/loadImageFromTypedArray.js +1 -1
- data/app/assets/javascripts/Cesium/Core/loadImageViaBlob.js +1 -1
- data/app/assets/javascripts/Cesium/Core/loadJson.js +1 -1
- data/app/assets/javascripts/Cesium/Core/loadJsonp.js +1 -1
- data/app/assets/javascripts/Cesium/Core/loadText.js +1 -1
- data/app/assets/javascripts/Cesium/Core/loadWithXhr.js +1 -1
- data/app/assets/javascripts/Cesium/Core/loadXML.js +1 -1
- data/app/assets/javascripts/Cesium/Core/mergeSort.js +1 -1
- data/app/assets/javascripts/Cesium/Core/objectToQuery.js +1 -1
- data/app/assets/javascripts/Cesium/Core/oneTimeWarning.js +52 -0
- data/app/assets/javascripts/Cesium/Core/parseResponseHeaders.js +1 -1
- data/app/assets/javascripts/Cesium/Core/pointInsideTriangle.js +1 -1
- data/app/assets/javascripts/Cesium/Core/queryToObject.js +1 -1
- data/app/assets/javascripts/Cesium/Core/requestAnimationFrame.js +2 -2
- data/app/assets/javascripts/Cesium/Core/sampleTerrain.js +2 -2
- data/app/assets/javascripts/Cesium/Core/scaleToGeodeticSurface.js +1 -1
- data/app/assets/javascripts/Cesium/Core/subdivideArray.js +1 -1
- data/app/assets/javascripts/Cesium/Core/throttleRequestByServer.js +1 -1
- data/app/assets/javascripts/Cesium/Core/wrapFunction.js +1 -1
- data/app/assets/javascripts/Cesium/Core/writeTextToCanvas.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/BillboardGraphics.js +17 -3
- data/app/assets/javascripts/Cesium/DataSources/BillboardVisualizer.js +20 -4
- data/app/assets/javascripts/Cesium/DataSources/BoundingSphereState.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/BoxGeometryUpdater.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/BoxGraphics.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/CallbackProperty.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/CheckerboardMaterialProperty.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/ColorMaterialProperty.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/CompositeEntityCollection.js +15 -2
- data/app/assets/javascripts/Cesium/DataSources/CompositeMaterialProperty.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/CompositePositionProperty.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/CompositeProperty.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/ConstantPositionProperty.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/ConstantProperty.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/CorridorGeometryUpdater.js +85 -27
- data/app/assets/javascripts/Cesium/DataSources/CorridorGraphics.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/CustomDataSource.js +14 -1
- data/app/assets/javascripts/Cesium/DataSources/CylinderGeometryUpdater.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/CylinderGraphics.js +3 -6
- data/app/assets/javascripts/Cesium/DataSources/CzmlDataSource.js +461 -229
- data/app/assets/javascripts/Cesium/DataSources/DataSource.js +9 -1
- data/app/assets/javascripts/Cesium/DataSources/DataSourceClock.js +17 -13
- data/app/assets/javascripts/Cesium/DataSources/DataSourceCollection.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/DataSourceDisplay.js +18 -2
- data/app/assets/javascripts/Cesium/DataSources/DynamicGeometryUpdater.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/EllipseGeometryUpdater.js +86 -27
- data/app/assets/javascripts/Cesium/DataSources/EllipseGraphics.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/EllipsoidGeometryUpdater.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/EllipsoidGraphics.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/Entity.js +2 -2
- data/app/assets/javascripts/Cesium/DataSources/EntityCollection.js +72 -5
- data/app/assets/javascripts/Cesium/DataSources/EntityView.js +13 -17
- data/app/assets/javascripts/Cesium/DataSources/GeoJsonDataSource.js +95 -47
- data/app/assets/javascripts/Cesium/DataSources/GeometryUpdater.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/GeometryVisualizer.js +25 -14
- data/app/assets/javascripts/Cesium/DataSources/GridMaterialProperty.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/ImageMaterialProperty.js +31 -13
- data/app/assets/javascripts/Cesium/DataSources/KmlDataSource.js +999 -177
- data/app/assets/javascripts/Cesium/DataSources/LabelGraphics.js +14 -1
- data/app/assets/javascripts/Cesium/DataSources/LabelVisualizer.js +14 -5
- data/app/assets/javascripts/Cesium/DataSources/MaterialProperty.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/ModelGraphics.js +41 -2
- data/app/assets/javascripts/Cesium/DataSources/ModelVisualizer.js +19 -3
- data/app/assets/javascripts/Cesium/DataSources/NodeTransformationProperty.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/PathGraphics.js +2 -2
- data/app/assets/javascripts/Cesium/DataSources/PathVisualizer.js +5 -2
- data/app/assets/javascripts/Cesium/DataSources/PointGraphics.js +14 -2
- data/app/assets/javascripts/Cesium/DataSources/PointVisualizer.js +170 -24
- data/app/assets/javascripts/Cesium/DataSources/PolygonGeometryUpdater.js +113 -34
- data/app/assets/javascripts/Cesium/DataSources/PolygonGraphics.js +27 -3
- data/app/assets/javascripts/Cesium/DataSources/PolylineArrowMaterialProperty.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/PolylineGeometryUpdater.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/PolylineGlowMaterialProperty.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/PolylineGraphics.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/PolylineOutlineMaterialProperty.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/PolylineVolumeGeometryUpdater.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/PolylineVolumeGraphics.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/PositionProperty.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/PositionPropertyArray.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/Property.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/PropertyArray.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/PropertyBag.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/RectangleGeometryUpdater.js +86 -25
- data/app/assets/javascripts/Cesium/DataSources/RectangleGraphics.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/ReferenceProperty.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/Rotation.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/SampledPositionProperty.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/SampledProperty.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/ScaledPositionProperty.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/StaticGeometryColorBatch.js +3 -1
- data/app/assets/javascripts/Cesium/DataSources/StaticGeometryPerMaterialBatch.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/StaticGroundGeometryColorBatch.js +336 -0
- data/app/assets/javascripts/Cesium/DataSources/StaticOutlineGeometryBatch.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/StripeMaterialProperty.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/StripeOrientation.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/TimeIntervalCollectionPositionProperty.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/TimeIntervalCollectionProperty.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/VelocityOrientationProperty.js +19 -61
- data/app/assets/javascripts/Cesium/DataSources/VelocityVectorProperty.js +187 -0
- data/app/assets/javascripts/Cesium/DataSources/Visualizer.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/WallGeometryUpdater.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/WallGraphics.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/createMaterialPropertyDescriptor.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/createPropertyDescriptor.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/createRawPropertyDescriptor.js +1 -1
- data/app/assets/javascripts/Cesium/DataSources/dynamicGeometryGetBoundingSphere.js +10 -3
- data/app/assets/javascripts/Cesium/Renderer/AutomaticUniforms.js +25 -1
- data/app/assets/javascripts/Cesium/Renderer/Buffer.js +1 -1
- data/app/assets/javascripts/Cesium/Renderer/BufferUsage.js +1 -1
- data/app/assets/javascripts/Cesium/Renderer/ClearCommand.js +1 -1
- data/app/assets/javascripts/Cesium/Renderer/ComputeCommand.js +1 -1
- data/app/assets/javascripts/Cesium/Renderer/ComputeEngine.js +1 -1
- data/app/assets/javascripts/Cesium/Renderer/Context.js +16 -18
- data/app/assets/javascripts/Cesium/Renderer/ContextLimits.js +1 -1
- data/app/assets/javascripts/Cesium/Renderer/CubeMap.js +2 -2
- data/app/assets/javascripts/Cesium/Renderer/CubeMapFace.js +1 -1
- data/app/assets/javascripts/Cesium/Renderer/DrawCommand.js +312 -30
- data/app/assets/javascripts/Cesium/Renderer/Framebuffer.js +2 -2
- data/app/assets/javascripts/Cesium/Renderer/MipmapHint.js +1 -1
- data/app/assets/javascripts/Cesium/Renderer/PassState.js +1 -1
- data/app/assets/javascripts/Cesium/Renderer/PickFramebuffer.js +1 -1
- data/app/assets/javascripts/Cesium/Renderer/PixelDatatype.js +1 -1
- data/app/assets/javascripts/Cesium/Renderer/RenderState.js +2 -2
- data/app/assets/javascripts/Cesium/Renderer/Renderbuffer.js +1 -1
- data/app/assets/javascripts/Cesium/Renderer/RenderbufferFormat.js +1 -1
- data/app/assets/javascripts/Cesium/Renderer/Sampler.js +1 -1
- data/app/assets/javascripts/Cesium/Renderer/ShaderCache.js +1 -1
- data/app/assets/javascripts/Cesium/Renderer/ShaderProgram.js +3 -4
- data/app/assets/javascripts/Cesium/Renderer/ShaderSource.js +32 -1
- data/app/assets/javascripts/Cesium/Renderer/Texture.js +1 -1
- data/app/assets/javascripts/Cesium/Renderer/TextureMagnificationFilter.js +1 -1
- data/app/assets/javascripts/Cesium/Renderer/TextureMinificationFilter.js +1 -1
- data/app/assets/javascripts/Cesium/Renderer/TextureWrap.js +1 -1
- data/app/assets/javascripts/Cesium/Renderer/UniformState.js +36 -11
- data/app/assets/javascripts/Cesium/Renderer/VertexArray.js +1 -1
- data/app/assets/javascripts/Cesium/Renderer/VertexArrayFacade.js +1 -1
- data/app/assets/javascripts/Cesium/Renderer/WebGLConstants.js +1 -1
- data/app/assets/javascripts/Cesium/Renderer/createUniform.js +1 -1
- data/app/assets/javascripts/Cesium/Renderer/createUniformArray.js +1 -1
- data/app/assets/javascripts/Cesium/Renderer/loadCubeMap.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/Appearance.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/ArcGisMapServerImageryProvider.js +5 -4
- data/app/assets/javascripts/Cesium/Scene/Billboard.js +25 -37
- data/app/assets/javascripts/Cesium/Scene/BillboardCollection.js +49 -25
- data/app/assets/javascripts/Cesium/Scene/BingMapsImageryProvider.js +11 -4
- data/app/assets/javascripts/Cesium/Scene/BingMapsStyle.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/BlendEquation.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/BlendFunction.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/BlendingState.js +2 -2
- data/app/assets/javascripts/Cesium/Scene/Camera.js +397 -187
- data/app/assets/javascripts/Cesium/Scene/CameraEventAggregator.js +2 -2
- data/app/assets/javascripts/Cesium/Scene/CameraEventType.js +2 -2
- data/app/assets/javascripts/Cesium/Scene/CameraFlightPath.js +4 -5
- data/app/assets/javascripts/Cesium/Scene/CreditDisplay.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/CullFace.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/CullingVolume.js +75 -2
- data/app/assets/javascripts/Cesium/Scene/DebugAppearance.js +2 -2
- data/app/assets/javascripts/Cesium/Scene/DebugModelMatrixPrimitive.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/DepthFunction.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/DepthPlane.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/DeviceOrientationCameraController.js +14 -5
- data/app/assets/javascripts/Cesium/Scene/DiscardMissingTileImagePolicy.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/EllipsoidPrimitive.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/EllipsoidSurfaceAppearance.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/FXAA.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/Fog.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/FrameRateMonitor.js +9 -9
- data/app/assets/javascripts/Cesium/Scene/FrameState.js +39 -1
- data/app/assets/javascripts/Cesium/Scene/FrustumCommands.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/GetFeatureInfoFormat.js +2 -4
- data/app/assets/javascripts/Cesium/Scene/Globe.js +89 -17
- data/app/assets/javascripts/Cesium/Scene/GlobeDepth.js +4 -6
- data/app/assets/javascripts/Cesium/Scene/GlobeSurfaceShaderSet.js +17 -9
- data/app/assets/javascripts/Cesium/Scene/GlobeSurfaceTile.js +24 -6
- data/app/assets/javascripts/Cesium/Scene/GlobeSurfaceTileProvider.js +171 -118
- data/app/assets/javascripts/Cesium/Scene/GoogleEarthImageryProvider.js +2 -2
- data/app/assets/javascripts/Cesium/Scene/GridImageryProvider.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/GroundPrimitive.js +335 -91
- data/app/assets/javascripts/Cesium/Scene/HeightReference.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/HorizontalOrigin.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/Imagery.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/ImageryLayer.js +32 -5
- data/app/assets/javascripts/Cesium/Scene/ImageryLayerCollection.js +27 -1
- data/app/assets/javascripts/Cesium/Scene/ImageryLayerFeatureInfo.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/ImageryProvider.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/ImageryState.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/Label.js +26 -11
- data/app/assets/javascripts/Cesium/Scene/LabelCollection.js +11 -7
- data/app/assets/javascripts/Cesium/Scene/LabelStyle.js +2 -2
- data/app/assets/javascripts/Cesium/Scene/MapMode2D.js +32 -0
- data/app/assets/javascripts/Cesium/Scene/MapboxImageryProvider.js +4 -4
- data/app/assets/javascripts/Cesium/Scene/Material.js +6 -6
- data/app/assets/javascripts/Cesium/Scene/MaterialAppearance.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/Model.js +675 -160
- data/app/assets/javascripts/Cesium/Scene/ModelAnimation.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/ModelAnimationCache.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/ModelAnimationCollection.js +8 -6
- data/app/assets/javascripts/Cesium/Scene/ModelAnimationLoop.js +2 -2
- data/app/assets/javascripts/Cesium/Scene/ModelAnimationState.js +2 -2
- data/app/assets/javascripts/Cesium/Scene/ModelMaterial.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/ModelMesh.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/ModelNode.js +2 -2
- data/app/assets/javascripts/Cesium/Scene/Moon.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/NeverTileDiscardPolicy.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/OIT.js +66 -33
- data/app/assets/javascripts/Cesium/Scene/OrthographicFrustum.js +2 -2
- data/app/assets/javascripts/Cesium/Scene/Pass.js +12 -8
- data/app/assets/javascripts/Cesium/Scene/PerInstanceColorAppearance.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/PerformanceDisplay.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/PerspectiveFrustum.js +3 -3
- data/app/assets/javascripts/Cesium/Scene/PerspectiveOffCenterFrustum.js +4 -4
- data/app/assets/javascripts/Cesium/Scene/PickDepth.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/PointAppearance.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/PointPrimitive.js +5 -13
- data/app/assets/javascripts/Cesium/Scene/PointPrimitiveCollection.js +8 -8
- data/app/assets/javascripts/Cesium/Scene/Polyline.js +5 -3
- data/app/assets/javascripts/Cesium/Scene/PolylineCollection.js +51 -23
- data/app/assets/javascripts/Cesium/Scene/PolylineColorAppearance.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/PolylineMaterialAppearance.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/Primitive.js +75 -46
- data/app/assets/javascripts/Cesium/Scene/PrimitiveCollection.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/PrimitivePipeline.js +3 -3
- data/app/assets/javascripts/Cesium/Scene/PrimitiveState.js +2 -2
- data/app/assets/javascripts/Cesium/Scene/QuadtreeOccluders.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/QuadtreePrimitive.js +80 -41
- data/app/assets/javascripts/Cesium/Scene/QuadtreeTile.js +5 -11
- data/app/assets/javascripts/Cesium/Scene/QuadtreeTileLoadState.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/QuadtreeTileProvider.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/Scene.js +529 -92
- data/app/assets/javascripts/Cesium/Scene/SceneMode.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/SceneTransforms.js +129 -49
- data/app/assets/javascripts/Cesium/Scene/SceneTransitioner.js +476 -337
- data/app/assets/javascripts/Cesium/Scene/ScreenSpaceCameraController.js +127 -30
- data/app/assets/javascripts/Cesium/Scene/ShadowMap.js +1640 -0
- data/app/assets/javascripts/Cesium/Scene/ShadowMapShader.js +341 -0
- data/app/assets/javascripts/Cesium/Scene/SingleTileImageryProvider.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/SkyAtmosphere.js +101 -33
- data/app/assets/javascripts/Cesium/Scene/SkyBox.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/StencilFunction.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/StencilOperation.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/Sun.js +8 -3
- data/app/assets/javascripts/Cesium/Scene/SunPostProcess.js +6 -2
- data/app/assets/javascripts/Cesium/Scene/TerrainState.js +2 -2
- data/app/assets/javascripts/Cesium/Scene/TextureAtlas.js +21 -43
- data/app/assets/javascripts/Cesium/Scene/TileBoundingBox.js +2 -2
- data/app/assets/javascripts/Cesium/Scene/TileCoordinatesImageryProvider.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/TileDiscardPolicy.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/TileImagery.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/TileReplacementQueue.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/TileState.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/TileTerrain.js +8 -15
- data/app/assets/javascripts/Cesium/Scene/TweenCollection.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/UrlTemplateImageryProvider.js +9 -9
- data/app/assets/javascripts/Cesium/Scene/VerticalOrigin.js +2 -2
- data/app/assets/javascripts/Cesium/Scene/ViewportQuad.js +2 -2
- data/app/assets/javascripts/Cesium/Scene/WebMapServiceImageryProvider.js +2 -2
- data/app/assets/javascripts/Cesium/Scene/WebMapTileServiceImageryProvider.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/createOpenStreetMapImageryProvider.js +6 -5
- data/app/assets/javascripts/Cesium/Scene/createTangentSpaceDebugPrimitive.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/createTileMapServiceImageryProvider.js +23 -26
- data/app/assets/javascripts/Cesium/Scene/getModelAccessor.js +1 -1
- data/app/assets/javascripts/Cesium/Scene/modelMaterialsCommon.js +1 -1
- data/app/assets/javascripts/Cesium/Shaders/AdjustTranslucentFS.js +14 -11
- data/app/assets/javascripts/Cesium/Shaders/Appearances/AllMaterialAppearanceFS.js +18 -14
- data/app/assets/javascripts/Cesium/Shaders/Appearances/AllMaterialAppearanceVS.js +13 -9
- data/app/assets/javascripts/Cesium/Shaders/Appearances/BasicMaterialAppearanceFS.js +15 -11
- data/app/assets/javascripts/Cesium/Shaders/Appearances/BasicMaterialAppearanceVS.js +10 -6
- data/app/assets/javascripts/Cesium/Shaders/Appearances/EllipsoidSurfaceAppearanceFS.js +24 -15
- data/app/assets/javascripts/Cesium/Shaders/Appearances/EllipsoidSurfaceAppearanceVS.js +11 -7
- data/app/assets/javascripts/Cesium/Shaders/Appearances/PerInstanceColorAppearanceFS.js +15 -11
- data/app/assets/javascripts/Cesium/Shaders/Appearances/PerInstanceColorAppearanceVS.js +11 -7
- data/app/assets/javascripts/Cesium/Shaders/Appearances/PerInstanceFlatColorAppearanceFS.js +3 -2
- data/app/assets/javascripts/Cesium/Shaders/Appearances/PerInstanceFlatColorAppearanceVS.js +9 -5
- data/app/assets/javascripts/Cesium/Shaders/Appearances/PointAppearanceFS.js +4 -2
- data/app/assets/javascripts/Cesium/Shaders/Appearances/PointAppearanceVS.js +8 -5
- data/app/assets/javascripts/Cesium/Shaders/Appearances/PolylineColorAppearanceVS.js +16 -11
- data/app/assets/javascripts/Cesium/Shaders/Appearances/PolylineMaterialAppearanceVS.js +17 -12
- data/app/assets/javascripts/Cesium/Shaders/Appearances/TexturedMaterialAppearanceFS.js +16 -12
- data/app/assets/javascripts/Cesium/Shaders/Appearances/TexturedMaterialAppearanceVS.js +11 -7
- data/app/assets/javascripts/Cesium/Shaders/BillboardCollectionFS.js +16 -12
- data/app/assets/javascripts/Cesium/Shaders/BillboardCollectionVS.glsl +9 -14
- data/app/assets/javascripts/Cesium/Shaders/BillboardCollectionVS.js +197 -142
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/degreesPerRadian.js +17 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/depthRange.js +15 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/epsilon1.js +8 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/epsilon2.js +8 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/epsilon3.js +8 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/epsilon4.js +8 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/epsilon5.js +8 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/epsilon6.js +8 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/epsilon7.js +8 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/infinity.js +8 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/oneOverPi.js +17 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/oneOverTwoPi.js +17 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passCompute.glsl +9 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passCompute.js +14 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passEnvironment.glsl +9 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passEnvironment.js +14 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passGlobe.glsl +9 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passGlobe.js +14 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passGround.glsl +9 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passGround.js +14 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passOpaque.glsl +9 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passOpaque.js +14 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passOverlay.glsl +9 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passOverlay.js +14 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passTranslucent.glsl +9 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/passTranslucent.js +14 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/pi.js +17 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/piOverFour.js +17 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/piOverSix.js +17 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/piOverThree.js +17 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/piOverTwo.js +17 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/radiansPerDegree.js +17 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/sceneMode2D.js +12 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/sceneMode3D.js +12 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/sceneModeColumbusView.js +12 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/sceneModeMorphing.js +12 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/solarRadius.js +14 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/threePiOver2.js +17 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/twoPi.js +17 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Constants/webMercatorMaxLatitude.js +17 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/CzmBuiltins.js +43 -1
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/RGBToXYZ.js +29 -11
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/XYZToRGB.js +29 -10
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/alphaWeight.js +24 -19
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/antialias.js +35 -10
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/cascadeColor.glsl +8 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/cascadeColor.js +13 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/cascadeDistance.glsl +7 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/cascadeDistance.js +12 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/cascadeMatrix.glsl +10 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/cascadeMatrix.js +15 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/cascadeWeights.glsl +10 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/cascadeWeights.js +15 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/columbusViewMorph.js +11 -4
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/computePosition.js +23 -2
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/cosineAndSine.js +208 -162
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/decompressTextureCoordinates.js +17 -8
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/eastNorthUpToEyeCoordinates.js +32 -9
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/ellipsoidContainsPoint.js +11 -4
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/ellipsoidNew.js +13 -6
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/ellipsoidWgs84TextureCoordinates.js +9 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/equalsEpsilon.js +30 -6
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/eyeOffset.js +19 -7
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/eyeToWindowCoordinates.js +31 -6
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/fog.js +18 -5
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/geodeticSurfaceNormal.js +15 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/getDefaultMaterial.js +26 -10
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/getLambertDiffuse.js +22 -5
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/getSpecular.js +26 -7
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/getWaterNoise.js +36 -25
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/getWgs84EllipsoidEC.js +20 -7
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/hue.js +29 -13
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/isEmpty.js +18 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/isFull.js +18 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/latitudeToWebMercatorFraction.js +20 -5
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/luminance.js +19 -4
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/metersPerPixel.js +40 -27
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/modelToWindowCoordinates.js +36 -6
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/multiplyWithColorBalance.js +17 -8
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/nearFarScalar.js +25 -9
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/octDecode.js +65 -31
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/packDepth.js +17 -6
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/phong.js +53 -23
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/pointAlongRay.js +18 -3
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/rayEllipsoidIntersectionInterval.js +82 -71
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/saturation.js +21 -5
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/shadowDepthCompare.glsl +24 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/shadowDepthCompare.js +29 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/shadowVisibility.glsl +66 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/shadowVisibility.js +72 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/signNotZero.js +20 -8
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/tangentToEyeSpaceMatrix.js +24 -8
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/translateRelativeToEye.js +39 -5
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/translucentPhong.js +29 -17
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/transpose.js +38 -14
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/unpackDepth.js +17 -5
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Functions/windowToEyeCoordinates.js +34 -9
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Structs/depthRangeStruct.js +9 -6
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Structs/ellipsoid.js +12 -8
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Structs/material.js +22 -10
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Structs/materialInput.js +22 -10
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Structs/ray.js +11 -6
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Structs/raySegment.js +24 -4
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Structs/shadowParameters.glsl +15 -0
- data/app/assets/javascripts/Cesium/Shaders/Builtin/Structs/shadowParameters.js +20 -0
- data/app/assets/javascripts/Cesium/Shaders/CompositeOITFS.js +18 -8
- data/app/assets/javascripts/Cesium/Shaders/DepthPlaneFS.js +18 -15
- data/app/assets/javascripts/Cesium/Shaders/DepthPlaneVS.js +6 -5
- data/app/assets/javascripts/Cesium/Shaders/EllipsoidFS.js +87 -56
- data/app/assets/javascripts/Cesium/Shaders/EllipsoidVS.js +22 -6
- data/app/assets/javascripts/Cesium/Shaders/GlobeFS.glsl +2 -2
- data/app/assets/javascripts/Cesium/Shaders/GlobeFS.js +184 -101
- data/app/assets/javascripts/Cesium/Shaders/GlobeVS.glsl +8 -7
- data/app/assets/javascripts/Cesium/Shaders/GlobeVS.js +86 -56
- data/app/assets/javascripts/Cesium/Shaders/GroundAtmosphere.js +107 -44
- data/app/assets/javascripts/Cesium/Shaders/Materials/BumpMapMaterial.js +25 -18
- data/app/assets/javascripts/Cesium/Shaders/Materials/CheckerboardMaterial.js +23 -14
- data/app/assets/javascripts/Cesium/Shaders/Materials/DotMaterial.js +12 -7
- data/app/assets/javascripts/Cesium/Shaders/Materials/FadeMaterial.js +25 -19
- data/app/assets/javascripts/Cesium/Shaders/Materials/GridMaterial.js +45 -30
- data/app/assets/javascripts/Cesium/Shaders/Materials/NormalMapMaterial.js +15 -12
- data/app/assets/javascripts/Cesium/Shaders/Materials/PolylineArrowMaterial.js +52 -40
- data/app/assets/javascripts/Cesium/Shaders/Materials/PolylineGlowMaterial.js +12 -7
- data/app/assets/javascripts/Cesium/Shaders/Materials/PolylineOutlineMaterial.js +22 -14
- data/app/assets/javascripts/Cesium/Shaders/Materials/RimLightingMaterial.js +13 -8
- data/app/assets/javascripts/Cesium/Shaders/Materials/StripeMaterial.js +16 -10
- data/app/assets/javascripts/Cesium/Shaders/Materials/Water.js +47 -21
- data/app/assets/javascripts/Cesium/Shaders/PointPrimitiveCollectionFS.js +20 -15
- data/app/assets/javascripts/Cesium/Shaders/PointPrimitiveCollectionVS.js +128 -82
- data/app/assets/javascripts/Cesium/Shaders/PolylineCommon.glsl +2 -2
- data/app/assets/javascripts/Cesium/Shaders/PolylineCommon.js +87 -68
- data/app/assets/javascripts/Cesium/Shaders/PolylineFS.js +11 -9
- data/app/assets/javascripts/Cesium/Shaders/PolylineVS.js +45 -40
- data/app/assets/javascripts/Cesium/Shaders/PostProcessFilters/AdditiveBlend.js +10 -6
- data/app/assets/javascripts/Cesium/Shaders/PostProcessFilters/BrightPass.js +20 -11
- data/app/assets/javascripts/Cesium/Shaders/PostProcessFilters/FXAA.js +223 -136
- data/app/assets/javascripts/Cesium/Shaders/PostProcessFilters/GaussianBlur1D.js +29 -17
- data/app/assets/javascripts/Cesium/Shaders/PostProcessFilters/PassThrough.js +5 -3
- data/app/assets/javascripts/Cesium/Shaders/ReprojectWebMercatorFS.js +4 -2
- data/app/assets/javascripts/Cesium/Shaders/ReprojectWebMercatorVS.js +6 -3
- data/app/assets/javascripts/Cesium/Shaders/ShadowVolumeFS.js +9 -6
- data/app/assets/javascripts/Cesium/Shaders/ShadowVolumeVS.js +12 -7
- data/app/assets/javascripts/Cesium/Shaders/SkyAtmosphereFS.glsl +47 -7
- data/app/assets/javascripts/Cesium/Shaders/SkyAtmosphereFS.js +90 -10
- data/app/assets/javascripts/Cesium/Shaders/SkyAtmosphereVS.glsl +52 -51
- data/app/assets/javascripts/Cesium/Shaders/SkyAtmosphereVS.js +115 -61
- data/app/assets/javascripts/Cesium/Shaders/SkyBoxFS.js +5 -3
- data/app/assets/javascripts/Cesium/Shaders/SkyBoxVS.js +6 -4
- data/app/assets/javascripts/Cesium/Shaders/SunFS.js +4 -2
- data/app/assets/javascripts/Cesium/Shaders/SunTextureFS.js +45 -21
- data/app/assets/javascripts/Cesium/Shaders/SunVS.js +24 -17
- data/app/assets/javascripts/Cesium/Shaders/ViewportQuadFS.js +15 -11
- data/app/assets/javascripts/Cesium/Shaders/ViewportQuadVS.js +7 -6
- data/app/assets/javascripts/Cesium/ThirdParty/NoSleep.js +2 -2
- data/app/assets/javascripts/Cesium/ThirdParty/earcut-2.1.1.js +649 -0
- data/app/assets/javascripts/Cesium/ThirdParty/knockout-3.4.0.js +123 -0
- data/app/assets/javascripts/Cesium/ThirdParty/knockout.js +2 -2
- data/app/assets/javascripts/Cesium/Widgets/Animation/Animation.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/Animation/AnimationViewModel.js +4 -24
- data/app/assets/javascripts/Cesium/Widgets/BaseLayerPicker/BaseLayerPicker.js +5 -5
- data/app/assets/javascripts/Cesium/Widgets/BaseLayerPicker/BaseLayerPickerViewModel.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/BaseLayerPicker/ProviderViewModel.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/BaseLayerPicker/createDefaultImageryProviderViewModels.js +14 -14
- data/app/assets/javascripts/Cesium/Widgets/BaseLayerPicker/createDefaultTerrainProviderViewModels.js +2 -2
- data/app/assets/javascripts/Cesium/Widgets/CesiumInspector/CesiumInspector.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/CesiumInspector/CesiumInspectorViewModel.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/CesiumWidget/CesiumWidget.js +10 -4
- data/app/assets/javascripts/Cesium/Widgets/ClockViewModel.js +76 -133
- data/app/assets/javascripts/Cesium/Widgets/Command.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/FullscreenButton/FullscreenButton.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/FullscreenButton/FullscreenButtonViewModel.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/Geocoder/Geocoder.js +2 -2
- data/app/assets/javascripts/Cesium/Widgets/Geocoder/GeocoderViewModel.js +9 -5
- data/app/assets/javascripts/Cesium/Widgets/HomeButton/HomeButton.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/HomeButton/HomeButtonViewModel.js +2 -47
- data/app/assets/javascripts/Cesium/Widgets/InfoBox/InfoBox.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/InfoBox/InfoBoxViewModel.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/NavigationHelpButton/NavigationHelpButton.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/NavigationHelpButton/NavigationHelpButtonViewModel.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/PerformanceWatchdog/PerformanceWatchdogViewModel.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/SceneModePicker/SceneModePicker.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/SceneModePicker/SceneModePickerViewModel.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/SelectionIndicator/SelectionIndicator.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/SelectionIndicator/SelectionIndicatorViewModel.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/SvgPathBindingHandler.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/Timeline/Timeline.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/Timeline/TimelineHighlightRange.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/Timeline/TimelineTrack.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/ToggleButtonViewModel.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/VRButton/VRButton.js +2 -3
- data/app/assets/javascripts/Cesium/Widgets/VRButton/VRButtonViewModel.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/Viewer/Viewer.js +130 -38
- data/app/assets/javascripts/Cesium/Widgets/Viewer/viewerCesiumInspectorMixin.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/Viewer/viewerDragDropMixin.js +27 -5
- data/app/assets/javascripts/Cesium/Widgets/Viewer/viewerPerformanceWatchdogMixin.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/createCommand.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/getElement.js +1 -1
- data/app/assets/javascripts/Cesium/Widgets/subscribeAndEvaluate.js +1 -1
- data/app/assets/javascripts/Cesium/Workers/cesiumWorkerBootstrapper.js +1 -23
- data/app/assets/javascripts/Cesium/Workers/combineGeometry.js +801 -190
- data/app/assets/javascripts/Cesium/Workers/createBoxGeometry.js +404 -155
- data/app/assets/javascripts/Cesium/Workers/createBoxOutlineGeometry.js +402 -118
- data/app/assets/javascripts/Cesium/Workers/createCircleGeometry.js +5844 -318
- data/app/assets/javascripts/Cesium/Workers/createCircleOutlineGeometry.js +411 -137
- data/app/assets/javascripts/Cesium/Workers/createCorridorGeometry.js +2273 -277
- data/app/assets/javascripts/Cesium/Workers/createCorridorOutlineGeometry.js +2131 -275
- data/app/assets/javascripts/Cesium/Workers/createCylinderGeometry.js +466 -134
- data/app/assets/javascripts/Cesium/Workers/createCylinderOutlineGeometry.js +465 -133
- data/app/assets/javascripts/Cesium/Workers/createEllipseGeometry.js +5829 -313
- data/app/assets/javascripts/Cesium/Workers/createEllipseOutlineGeometry.js +409 -132
- data/app/assets/javascripts/Cesium/Workers/createEllipsoidGeometry.js +480 -126
- data/app/assets/javascripts/Cesium/Workers/createEllipsoidOutlineGeometry.js +405 -120
- data/app/assets/javascripts/Cesium/Workers/createGeometry.js +801 -190
- data/app/assets/javascripts/Cesium/Workers/createPointGeometry.js +397 -117
- data/app/assets/javascripts/Cesium/Workers/createPolygonGeometry.js +2020 -1892
- data/app/assets/javascripts/Cesium/Workers/createPolygonOutlineGeometry.js +1748 -1845
- data/app/assets/javascripts/Cesium/Workers/createPolylineGeometry.js +755 -211
- data/app/assets/javascripts/Cesium/Workers/createPolylineVolumeGeometry.js +7848 -7187
- data/app/assets/javascripts/Cesium/Workers/createPolylineVolumeOutlineGeometry.js +9211 -8612
- data/app/assets/javascripts/Cesium/Workers/createRectangleGeometry.js +1758 -1929
- data/app/assets/javascripts/Cesium/Workers/createRectangleOutlineGeometry.js +1657 -1945
- data/app/assets/javascripts/Cesium/Workers/createSimplePolylineGeometry.js +649 -207
- data/app/assets/javascripts/Cesium/Workers/createSphereGeometry.js +481 -127
- data/app/assets/javascripts/Cesium/Workers/createSphereOutlineGeometry.js +406 -121
- data/app/assets/javascripts/Cesium/Workers/createTaskProcessorWorker.js +1 -1
- data/app/assets/javascripts/Cesium/Workers/createVerticesFromHeightmap.js +778 -213
- data/app/assets/javascripts/Cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +783 -531
- data/app/assets/javascripts/Cesium/Workers/createWallGeometry.js +2323 -1870
- data/app/assets/javascripts/Cesium/Workers/createWallOutlineGeometry.js +2320 -1868
- data/app/assets/javascripts/Cesium/Workers/transferTypedArrayTest.js +1 -1
- data/app/assets/javascripts/Cesium/Workers/upsampleQuantizedTerrainMesh.js +780 -214
- data/app/assets/javascripts/Cesium/main.js +1 -1
- data/lib/cesium/engine.rb +0 -2
- data/lib/cesium/version.rb +1 -1
- data/test/dummy/log/development.log +7 -0
- data/test/dummy/tmp/cache/assets/B70/EA0/sprockets%2F415763926244628691463c356154a895 +0 -0
- data/test/dummy/tmp/cache/assets/BA3/7C0/sprockets%2F9199311873d9097949e7e43421215154 +0 -0
- data/test/dummy/tmp/cache/assets/BB8/EE0/sprockets%2F22646b151508362346e2037627746ed0 +0 -0
- data/test/dummy/tmp/cache/assets/BD4/E30/sprockets%2F63f08889074483c4176494c5763b2291 +0 -0
- data/test/dummy/tmp/cache/assets/BD8/B40/sprockets%2F164720065103c7505436426a256c0e0f +0 -0
- data/test/dummy/tmp/cache/assets/BE6/130/sprockets%2Fa803162154793f1463540d2c30093d69 +0 -0
- data/test/dummy/tmp/cache/assets/C00/920/sprockets%2F4168a71e5976c541d561972b17848434 +0 -0
- data/test/dummy/tmp/cache/assets/C08/870/sprockets%2F36f6990a925f3931d77806412c968733 +0 -0
- data/test/dummy/tmp/cache/assets/C09/580/sprockets%2F249187d5a491008c57209948c865893e +0 -0
- data/test/dummy/tmp/cache/assets/C11/130/sprockets%2F1b030e38f01f4166e1164512847193d4 +0 -0
- data/test/dummy/tmp/cache/assets/C16/010/sprockets%2F44d3496a9801634301be407503c78c05 +0 -0
- data/test/dummy/tmp/cache/assets/C16/BE0/sprockets%2F730c481502395cc21463bcc305986308 +0 -0
- data/test/dummy/tmp/cache/assets/C1D/0F0/sprockets%2Fd185114097044d84160c2b2c197a8776 +0 -0
- data/test/dummy/tmp/cache/assets/C1D/8C0/sprockets%2F5e27813463747ac2a868260fb4224370 +0 -0
- data/test/dummy/tmp/cache/assets/C21/280/sprockets%2F501c5298f4631437a27a6b514783e851 +0 -0
- data/test/dummy/tmp/cache/assets/C23/D40/sprockets%2F6a100052cb79899083d4e93c16294192 +0 -0
- data/test/dummy/tmp/cache/assets/C28/C50/sprockets%2Fa0547c4859498c809088a437023bd254 +0 -0
- data/test/dummy/tmp/cache/assets/C2B/E00/sprockets%2Fc04978048739428a79d6348576ab030a +0 -0
- data/test/dummy/tmp/cache/assets/C2D/2B0/sprockets%2F8fb4c07a40972c58848150577f808351 +0 -0
- data/test/dummy/tmp/cache/assets/C2E/360/sprockets%2F318d19847257c8325ae5d1768373109f +0 -0
- data/test/dummy/tmp/cache/assets/C30/6A0/sprockets%2F86639346b855d519444548bde64d2080 +0 -0
- data/test/dummy/tmp/cache/assets/C31/430/sprockets%2F757866099770079f1160438af16a47dc +0 -0
- data/test/dummy/tmp/cache/assets/C31/890/sprockets%2F82ba164b323d36f31099766199596f73 +0 -0
- data/test/dummy/tmp/cache/assets/C38/390/sprockets%2F1a55d53525172efa026d840b35506014 +0 -0
- data/test/dummy/tmp/cache/assets/C3B/500/sprockets%2F8a8546745e8f5486045f7797c1619b11 +0 -0
- data/test/dummy/tmp/cache/assets/C3C/000/sprockets%2F849cf39629892037a0d865817086d8c3 +0 -0
- data/test/dummy/tmp/cache/assets/C3E/980/sprockets%2F00fce10d03861d2101743695f0716c66 +0 -0
- data/test/dummy/tmp/cache/assets/C41/190/sprockets%2F93fc2cf200a5a781542882095101d056 +0 -0
- data/test/dummy/tmp/cache/assets/C43/910/sprockets%2Fa5310b505465cfc5091562a24c787505 +0 -0
- data/test/dummy/tmp/cache/assets/C44/EF0/sprockets%2F240e8542975a86810b0a22a9b1a67146 +0 -0
- data/test/dummy/tmp/cache/assets/C45/280/sprockets%2F17431114665e693186d90f05f4c0c30a +0 -0
- data/test/dummy/tmp/cache/assets/C48/170/sprockets%2F433accb9424237a1971b90769d040725 +0 -0
- data/test/dummy/tmp/cache/assets/C48/A40/sprockets%2F8019259f130684d1a510dbc34203f887 +0 -0
- data/test/dummy/tmp/cache/assets/C49/100/sprockets%2F2803de2f7f2329384d141864d40005e5 +0 -0
- data/test/dummy/tmp/cache/assets/C4A/720/sprockets%2F7b3e799b999140224211f208a43640ac +0 -0
- data/test/dummy/tmp/cache/assets/C4A/930/sprockets%2Fd88401412b1d606300ec88f32478098a +0 -0
- data/test/dummy/tmp/cache/assets/C4A/B10/sprockets%2F6a04d003d41e0b3667c93653d6406948 +0 -0
- data/test/dummy/tmp/cache/assets/C4A/CD0/sprockets%2F56c4436d8128b0781f3e27192f22a206 +0 -0
- data/test/dummy/tmp/cache/assets/C4A/FE0/sprockets%2F9d13c5426cd241c98670a8c203452455 +0 -0
- data/test/dummy/tmp/cache/assets/C4C/690/sprockets%2F68055490815dd241d825a63e5207de50 +0 -0
- data/test/dummy/tmp/cache/assets/C4C/840/sprockets%2F4a4840159653544c8405091bf3c8b7b2 +0 -0
- data/test/dummy/tmp/cache/assets/C4C/870/sprockets%2F87d9111687142ac781f1436630eb4b16 +0 -0
- data/test/dummy/tmp/cache/assets/C4C/970/sprockets%2F6d3aaf87a41246f4c815449565022901 +0 -0
- data/test/dummy/tmp/cache/assets/C4D/7F0/sprockets%2F7a1a613e8e51e07f56097180649134b2 +0 -0
- data/test/dummy/tmp/cache/assets/C4E/0E0/sprockets%2F45db287304280bac49d406998e341171 +0 -0
- data/test/dummy/tmp/cache/assets/C4E/2C0/sprockets%2F201e128c44919bc76a327a949149d711 +0 -0
- data/test/dummy/tmp/cache/assets/C4E/E90/sprockets%2F94236344d8f073e0855073e296b1c1c2 +0 -0
- data/test/dummy/tmp/cache/assets/C4F/690/sprockets%2F771870445807107490b63bfd6e0b543d +0 -0
- data/test/dummy/tmp/cache/assets/C53/290/sprockets%2Fccc1d66149733e921216e73563904e09 +0 -0
- data/test/dummy/tmp/cache/assets/C53/EC0/sprockets%2F50d8a6419663d2122f30958ca747557a +0 -0
- data/test/dummy/tmp/cache/assets/C53/F70/sprockets%2F2593d93f154598557e0b3c52110f4a93 +0 -0
- data/test/dummy/tmp/cache/assets/C54/680/sprockets%2F31c6133a4541f42b507e5689b076759f +0 -0
- data/test/dummy/tmp/cache/assets/C54/DB0/sprockets%2F2719348e2d22ac92794d138751f702f2 +0 -0
- data/test/dummy/tmp/cache/assets/C55/190/sprockets%2F4954963bb7014c50075c9955e92117ad +0 -0
- data/test/dummy/tmp/cache/assets/C55/260/sprockets%2F327e55ae4e55071a665577d8204068a7 +0 -0
- data/test/dummy/tmp/cache/assets/C56/F70/sprockets%2Fb7936623915940a2406637b4cf39a6a8 +0 -0
- data/test/dummy/tmp/cache/assets/C57/090/sprockets%2F1da581873ec878f18603d04d08628271 +0 -0
- data/test/dummy/tmp/cache/assets/C57/690/sprockets%2F8ec676600b031750853c8417840dd96f +0 -0
- data/test/dummy/tmp/cache/assets/C58/E80/sprockets%2F5a04e8d5c583fd764108461d70570658 +0 -0
- data/test/dummy/tmp/cache/assets/C5A/A30/sprockets%2F72626d58007d569ee313823e7c081c59 +0 -0
- data/test/dummy/tmp/cache/assets/C5C/600/sprockets%2F6ec94c904254580e8691821109d6ad57 +0 -0
- data/test/dummy/tmp/cache/assets/C5D/920/sprockets%2F02a0a3531eb2547a50108216af76052e +0 -0
- data/test/dummy/tmp/cache/assets/C5D/D20/sprockets%2F0a72b69dd9748ee93063018a88534418 +0 -0
- data/test/dummy/tmp/cache/assets/C5F/0D0/sprockets%2F55884638b487591e0c6a547e164d41e3 +0 -0
- data/test/dummy/tmp/cache/assets/C5F/8E0/sprockets%2F05629754bf709956d70b6145a8a538e5 +0 -0
- data/test/dummy/tmp/cache/assets/C60/9A0/sprockets%2F8e864573639a6852d1dac09861431a88 +0 -0
- data/test/dummy/tmp/cache/assets/C61/690/sprockets%2Fef30d34398c6492a49253844e5705f84 +0 -0
- data/test/dummy/tmp/cache/assets/C62/AE0/sprockets%2F73190d40c15416381cfb235a40290a0d +0 -0
- data/test/dummy/tmp/cache/assets/C64/8F0/sprockets%2Fd004e9ae71630e404522735a44c52a11 +0 -0
- data/test/dummy/tmp/cache/assets/C67/000/sprockets%2F459162b63f85d762351846ff602c978e +0 -0
- data/test/dummy/tmp/cache/assets/C67/440/sprockets%2F7b39936ea20f266108d772fa98474956 +0 -0
- data/test/dummy/tmp/cache/assets/C69/C10/sprockets%2F0d7a126eccc4329435124e522220378a +0 -0
- data/test/dummy/tmp/cache/assets/C6A/290/sprockets%2F080307eac72147555366d0e64d1023ab +0 -0
- data/test/dummy/tmp/cache/assets/C6A/A20/sprockets%2F700c900bd7b522d041681823904ae2e4 +0 -0
- data/test/dummy/tmp/cache/assets/C6B/180/sprockets%2Fc06c1202213e2846058431e3e707a2ff +0 -0
- data/test/dummy/tmp/cache/assets/C6C/810/sprockets%2F2718853497b7c397d445ef31f934d458 +0 -0
- data/test/dummy/tmp/cache/assets/C6D/BE0/sprockets%2F64a2905185a109011db1f405b65e267d +0 -0
- data/test/dummy/tmp/cache/assets/C6E/7D0/sprockets%2F86970687f69e155a83e951cec4596043 +0 -0
- data/test/dummy/tmp/cache/assets/C6F/200/sprockets%2F077d53f7ba6e3516496c867968b27774 +0 -0
- data/test/dummy/tmp/cache/assets/C6F/3B0/sprockets%2F072048ba3124b22756e3f534e390f16a +0 -0
- data/test/dummy/tmp/cache/assets/C6F/DF0/sprockets%2F19b991b49958f790691b43cc876c9441 +0 -0
- data/test/dummy/tmp/cache/assets/C70/1B0/sprockets%2F4811e0613a227e101b26d64ffe154683 +0 -0
- data/test/dummy/tmp/cache/assets/C70/1F0/sprockets%2F22a273052fb00b84bce2849f13982530 +0 -0
- data/test/dummy/tmp/cache/assets/C70/580/sprockets%2Fe894a965928c1287872a0fd297b99353 +0 -0
- data/test/dummy/tmp/cache/assets/C70/850/sprockets%2F7be0213040c3acb682e573608e441970 +0 -0
- data/test/dummy/tmp/cache/assets/C70/920/sprockets%2F962b044631a652d42417c109eb24ec81 +0 -0
- data/test/dummy/tmp/cache/assets/C72/120/sprockets%2F0e1a725795d10e13e4164c31e88351d1 +0 -0
- data/test/dummy/tmp/cache/assets/C72/AC0/sprockets%2F44b7435a96cd144c4b5250e01855a821 +0 -0
- data/test/dummy/tmp/cache/assets/C73/5C0/sprockets%2F2080c93263c030d48dc94ea39305327c +0 -0
- data/test/dummy/tmp/cache/assets/C73/DA0/sprockets%2F7181b49b99a79c76839798190aa6059f +0 -0
- data/test/dummy/tmp/cache/assets/C75/FB0/sprockets%2F93279bdd44712b4008b4d29051904f0c +0 -0
- data/test/dummy/tmp/cache/assets/C76/7D0/sprockets%2F4d655f939b8b1a2462ea13042b367711 +0 -0
- data/test/dummy/tmp/cache/assets/C77/780/sprockets%2F8638238293665a14e6ce2dca0a402363 +0 -0
- data/test/dummy/tmp/cache/assets/C7A/080/sprockets%2Fb7920ad71b46043c642816643ce1a795 +0 -0
- data/test/dummy/tmp/cache/assets/C7A/410/sprockets%2F55d7ac1c22d7347551e2a65251d17288 +0 -0
- data/test/dummy/tmp/cache/assets/C7C/060/sprockets%2F32694b33b7720372b42698cc49dab360 +0 -0
- data/test/dummy/tmp/cache/assets/C7C/820/sprockets%2F75345871dc6b88eb502f1ec014518621 +0 -0
- data/test/dummy/tmp/cache/assets/C7C/C90/sprockets%2F92c082511a234b21cf6c479b6f507576 +0 -0
- data/test/dummy/tmp/cache/assets/C7D/2C0/sprockets%2F510dcf322fa428af8292d31657315757 +0 -0
- data/test/dummy/tmp/cache/assets/C7D/600/sprockets%2F24302027765679153e1c3da944e4af4f +0 -0
- data/test/dummy/tmp/cache/assets/C7D/950/sprockets%2F6c0363b13959ad48161b25b1c835657e +0 -0
- data/test/dummy/tmp/cache/assets/C7E/020/sprockets%2Fb4872fbe9811293022084aa304d9864e +0 -0
- data/test/dummy/tmp/cache/assets/C7E/C90/sprockets%2F1f75e76943967aa1351a564142fa052f +0 -0
- data/test/dummy/tmp/cache/assets/C7F/C80/sprockets%2F172018043d58cd572b8e4914de134a79 +0 -0
- data/test/dummy/tmp/cache/assets/C7F/DE0/sprockets%2F20684b3051676c77e9b2fa423363ee71 +0 -0
- data/test/dummy/tmp/cache/assets/C80/0C0/sprockets%2F3400b37f7b6f95f54bf7768165200b32 +0 -0
- data/test/dummy/tmp/cache/assets/C80/140/sprockets%2F171f748250c3977590f1318aa18dd4d2 +0 -0
- data/test/dummy/tmp/cache/assets/C80/6D0/sprockets%2F307ca271082e5c14996c36267a288df0 +0 -0
- data/test/dummy/tmp/cache/assets/C80/710/sprockets%2F41b1692a0f1a77581854ee4b7709913a +0 -0
- data/test/dummy/tmp/cache/assets/C80/CD0/sprockets%2F0032971af77940c1af9e2f460177809a +0 -0
- data/test/dummy/tmp/cache/assets/C81/1D0/sprockets%2F2a5c1b8466476169a6e9127cd511e183 +0 -0
- data/test/dummy/tmp/cache/assets/C82/D20/sprockets%2F16a1605945c145b495cb85886de4603a +0 -0
- data/test/dummy/tmp/cache/assets/C83/180/sprockets%2F49eb5e9d119c601182d7359d1663420f +0 -0
- data/test/dummy/tmp/cache/assets/C83/380/sprockets%2F5e3f360822828773e961b800b9d0f1b5 +0 -0
- data/test/dummy/tmp/cache/assets/C83/520/sprockets%2F04723d8215f9557d6d801cf6b713824b +0 -0
- data/test/dummy/tmp/cache/assets/C83/7D0/sprockets%2F8a78d82e23b532c404b638c51b772855 +0 -0
- data/test/dummy/tmp/cache/assets/C83/A10/sprockets%2F888080c85be8f70236b191a37c1954a1 +0 -0
- data/test/dummy/tmp/cache/assets/C83/C20/sprockets%2F9399873eb3e83ae6409c409311aa0337 +0 -0
- data/test/dummy/tmp/cache/assets/C83/CF0/sprockets%2Fbf48616ee2905ea86820e1435287d601 +0 -0
- data/test/dummy/tmp/cache/assets/C84/090/sprockets%2F8b3262ab072d0c591f8919887aa69150 +0 -0
- data/test/dummy/tmp/cache/assets/C84/1B0/sprockets%2Ff5833fd0038d74016a792bf285d31819 +0 -0
- data/test/dummy/tmp/cache/assets/C84/510/sprockets%2F230e7994085286b76d2ed057d4b453d0 +0 -0
- data/test/dummy/tmp/cache/assets/C84/9D0/sprockets%2F95037f9678608da3a107e507baf73432 +0 -0
- data/test/dummy/tmp/cache/assets/C84/9F0/sprockets%2F93ea52b0048348f92586340f39ad471d +0 -0
- data/test/dummy/tmp/cache/assets/C86/1A0/sprockets%2F46d3f6f265fce039f207282c09068182 +0 -0
- data/test/dummy/tmp/cache/assets/C86/390/sprockets%2Fbf94371a30ea291d595677637e50e136 +0 -0
- data/test/dummy/tmp/cache/assets/C86/F40/sprockets%2Fa74f2353732b85185fdb46302b91796e +0 -0
- data/test/dummy/tmp/cache/assets/C86/FD0/sprockets%2F95be23334957f803517b6b4d2f18e704 +0 -0
- data/test/dummy/tmp/cache/assets/C87/130/sprockets%2F70284d571d967d3e17b3151d58e3d419 +0 -0
- data/test/dummy/tmp/cache/assets/C87/860/sprockets%2F06a90e1784696233013dd6ee75e4549b +0 -0
- data/test/dummy/tmp/cache/assets/C87/990/sprockets%2Fe99c6569107adae32564262cf9313175 +0 -0
- data/test/dummy/tmp/cache/assets/C87/9E0/sprockets%2F6830a5d84c87260428ec40874d25d2f6 +0 -0
- data/test/dummy/tmp/cache/assets/C88/480/sprockets%2Fa10a30c47b2a89644c3971c78845479f +0 -0
- data/test/dummy/tmp/cache/assets/C88/F80/sprockets%2F40018b3244b595e623d6183e8e7d89f1 +0 -0
- data/test/dummy/tmp/cache/assets/C89/C70/sprockets%2F8dfab10881842fb5e999140013f60769 +0 -0
- data/test/dummy/tmp/cache/assets/C8A/970/sprockets%2F9ac0c50557820ea3209b5e8f87182994 +0 -0
- data/test/dummy/tmp/cache/assets/C8B/280/sprockets%2F531c75712039f5913a77f3f8a37c429f +0 -0
- data/test/dummy/tmp/cache/assets/C8B/2B0/sprockets%2F757dfb06ec7a511563928862c5e94611 +0 -0
- data/test/dummy/tmp/cache/assets/C8C/2C0/sprockets%2F440b422a30853a03a2fd5902b62a62d2 +0 -0
- data/test/dummy/tmp/cache/assets/C8E/560/sprockets%2Fd689186c39da83044435b63c38ff6316 +0 -0
- data/test/dummy/tmp/cache/assets/C8E/B50/sprockets%2F1dd74756236ef168e5378ab072486f43 +0 -0
- data/test/dummy/tmp/cache/assets/C8F/000/sprockets%2F01a04205ee116fbb2683034aa55c8720 +0 -0
- data/test/dummy/tmp/cache/assets/C8F/2D0/sprockets%2F04cb2049579f1d33989f85c4333fe058 +0 -0
- data/test/dummy/tmp/cache/assets/C8F/3D0/sprockets%2F9a11673b79cf574111cca89f08768617 +0 -0
- data/test/dummy/tmp/cache/assets/C8F/780/sprockets%2Fe8d1b692466401f8a06c4697ff368280 +0 -0
- data/test/dummy/tmp/cache/assets/C90/3E0/sprockets%2Fed300792c820da1a4a180f3620e15530 +0 -0
- data/test/dummy/tmp/cache/assets/C90/640/sprockets%2Fa6375818960a576f5f7322f600487dcf +0 -0
- data/test/dummy/tmp/cache/assets/C90/F70/sprockets%2F58e63190d56e5b6e83e6487a84e35141 +0 -0
- data/test/dummy/tmp/cache/assets/C91/0D0/sprockets%2F5bd71287903ba95d2fb5743719549e92 +0 -0
- data/test/dummy/tmp/cache/assets/C91/8A0/sprockets%2Fe02395f83f6f5201913e1b888f46f645 +0 -0
- data/test/dummy/tmp/cache/assets/C91/9F0/sprockets%2F6c7a863808922147872566c40f7bcbd9 +0 -0
- data/test/dummy/tmp/cache/assets/C92/590/sprockets%2Fc853abc9c15987065c59c7395f328414 +0 -0
- data/test/dummy/tmp/cache/assets/C92/9A0/sprockets%2F6c85f9c609287aa6552391f576f0f405 +0 -0
- data/test/dummy/tmp/cache/assets/C92/C30/sprockets%2F2377b6f8d46f2a90820935754366f5ce +0 -0
- data/test/dummy/tmp/cache/assets/C92/DE0/sprockets%2F4e99f3610096e97c1287705d942ffb41 +0 -0
- data/test/dummy/tmp/cache/assets/C94/D10/sprockets%2F903d696bc385f21c973d97789a31e504 +0 -0
- data/test/dummy/tmp/cache/assets/C94/EC0/sprockets%2F1b6eff75c92917925b99948d113705d1 +0 -0
- data/test/dummy/tmp/cache/assets/C94/F40/sprockets%2F9a37284984ca20b598cc83b76d792166 +0 -0
- data/test/dummy/tmp/cache/assets/C95/B00/sprockets%2F4c52f13c15086198d5664ea4f775499f +0 -0
- data/test/dummy/tmp/cache/assets/C95/C40/sprockets%2F5215355bd83595661d71909bd8d896be +0 -0
- data/test/dummy/tmp/cache/assets/C95/E80/sprockets%2F188cbb0b17651c27b776977a9965e618 +0 -0
- data/test/dummy/tmp/cache/assets/C95/F70/sprockets%2F7d9b253e09f897f582400c3796c573b4 +0 -0
- data/test/dummy/tmp/cache/assets/C96/130/sprockets%2F65282946954409cc01f088f5c79ac68d +0 -0
- data/test/dummy/tmp/cache/assets/C96/1F0/sprockets%2Fc53ab6d278f5853970ef30296977572b +0 -0
- data/test/dummy/tmp/cache/assets/C96/290/sprockets%2Fa3d8033501e001f443c63c158a3a539d +0 -0
- data/test/dummy/tmp/cache/assets/C96/4C0/sprockets%2F289f946909e090b275a6b4e618a636d9 +0 -0
- data/test/dummy/tmp/cache/assets/C98/010/sprockets%2F3298073c8f769e62c70743ba5e93e945 +0 -0
- data/test/dummy/tmp/cache/assets/C98/D10/sprockets%2F26c19ec2f71a6305b43a823df0301254 +0 -0
- data/test/dummy/tmp/cache/assets/C99/370/sprockets%2F31a8306eb0a214485560f618913aec0a +0 -0
- data/test/dummy/tmp/cache/assets/C99/F10/sprockets%2F42347073fbba17e3be3883820c1000a8 +0 -0
- data/test/dummy/tmp/cache/assets/C9A/D60/sprockets%2F1c018c69d4f01ec016141ee18702b931 +0 -0
- data/test/dummy/tmp/cache/assets/C9B/380/sprockets%2F4e74f5a9e474b193de760499b1924795 +0 -0
- data/test/dummy/tmp/cache/assets/C9B/3A0/sprockets%2Fc094497ae817a3b6ea351032b105e620 +0 -0
- data/test/dummy/tmp/cache/assets/C9B/DF0/sprockets%2Ff7f415b64653f36815f3768c916666ec +0 -0
- data/test/dummy/tmp/cache/assets/C9C/120/sprockets%2F839161c85f65ed8f68d928b6e4041188 +0 -0
- data/test/dummy/tmp/cache/assets/C9C/D40/sprockets%2F72242032d5981411677a1ba91a2dafb6 +0 -0
- data/test/dummy/tmp/cache/assets/C9D/160/sprockets%2Fe44f317cb4c4d30720950d9028ee0121 +0 -0
- data/test/dummy/tmp/cache/assets/C9D/630/sprockets%2Fc6e27b659f5002ae303131e6d14b5371 +0 -0
- data/test/dummy/tmp/cache/assets/C9D/800/sprockets%2F35555164855b7b54f987dcf843cf8608 +0 -0
- data/test/dummy/tmp/cache/assets/C9E/160/sprockets%2F77816cc31480820ade5356034adeb311 +0 -0
- data/test/dummy/tmp/cache/assets/C9E/810/sprockets%2F7b91bc41a55d3247e3d1602637ab4037 +0 -0
- data/test/dummy/tmp/cache/assets/C9F/3A0/sprockets%2F2469356cd21d5a5902b06584ea0b20d5 +0 -0
- data/test/dummy/tmp/cache/assets/CA0/050/sprockets%2Fd4520f127c13e5a8423f01f67c5a4326 +0 -0
- data/test/dummy/tmp/cache/assets/CA0/600/sprockets%2F1554ed77fd047e539e9f682d35088991 +0 -0
- data/test/dummy/tmp/cache/assets/CA0/F30/sprockets%2F982647a591ddc998757090e366d275ed +0 -0
- data/test/dummy/tmp/cache/assets/CA1/7D0/sprockets%2F50a78c30747ead33523476cb40a059c2 +0 -0
- data/test/dummy/tmp/cache/assets/CA1/9B0/sprockets%2F45053226eab1846002ea7c538960dec2 +0 -0
- data/test/dummy/tmp/cache/assets/CA2/AB0/sprockets%2F407fea2123617145a476051d92e05efc +0 -0
- data/test/dummy/tmp/cache/assets/CA2/BC0/sprockets%2F336f5a0e85027c07c4460b10d548a7d4 +0 -0
- data/test/dummy/tmp/cache/assets/CA2/BD0/sprockets%2F49a81581024283ecaadb62346b47f006 +0 -0
- data/test/dummy/tmp/cache/assets/CA5/400/sprockets%2F2b82a7e99c0e05652445e06c1d17d051 +0 -0
- data/test/dummy/tmp/cache/assets/CA5/830/sprockets%2F410b486189cd22c6aa26437262e4fb16 +0 -0
- data/test/dummy/tmp/cache/assets/CA5/CE0/sprockets%2F849135fbf223644334ec2581842bb0ac +0 -0
- data/test/dummy/tmp/cache/assets/CA5/E50/sprockets%2F3e4d2074451614cfb807084ca42447dd +0 -0
- data/test/dummy/tmp/cache/assets/CA6/050/sprockets%2F0870154ae63a5f7c83121ef17d0846b2 +0 -0
- data/test/dummy/tmp/cache/assets/CA6/700/sprockets%2F60e083d5d4a45568066fad1d33b03519 +0 -0
- data/test/dummy/tmp/cache/assets/CA6/AD0/sprockets%2F288da8bd123c34371e2401459e8bd504 +0 -0
- data/test/dummy/tmp/cache/assets/CA7/070/sprockets%2F2d0497e8544ea11f3981814312abd3b5 +0 -0
- data/test/dummy/tmp/cache/assets/CA7/760/sprockets%2Fa271c3b894511332a0e1ab2589f46f39 +0 -0
- data/test/dummy/tmp/cache/assets/CA7/D20/sprockets%2F1f594f974f38ae85702ec10ae4233000 +0 -0
- data/test/dummy/tmp/cache/assets/CA7/D40/sprockets%2F09291437a41fbc8b0053920f836c4b9a +0 -0
- data/test/dummy/tmp/cache/assets/CA8/4C0/sprockets%2F921af2e1125bd4e722b86684326fd251 +0 -0
- data/test/dummy/tmp/cache/assets/CA8/790/sprockets%2F53bf33929435986dd2a0af314b2860b1 +0 -0
- data/test/dummy/tmp/cache/assets/CA8/8A0/sprockets%2F09a719af6b910a477a8e63a67016400e +0 -0
- data/test/dummy/tmp/cache/assets/CA8/A70/sprockets%2F2747015d607d40e647d84f4a7d02b51c +0 -0
- data/test/dummy/tmp/cache/assets/CA8/CF0/sprockets%2F13bc06476e3f5fa270409bd41c760791 +0 -0
- data/test/dummy/tmp/cache/assets/CA8/ED0/sprockets%2F95a93b16c02b6e70c4c44c8497153a22 +0 -0
- data/test/dummy/tmp/cache/assets/CA8/F50/sprockets%2F6c3b801a4e229736f0b183c35d542e29 +0 -0
- data/test/dummy/tmp/cache/assets/CAA/8B0/sprockets%2Ffcec766b6270b4380670c04215991b4c +0 -0
- data/test/dummy/tmp/cache/assets/CAA/8D0/sprockets%2Fb49800d7d861022a35878a725b5f15ab +0 -0
- data/test/dummy/tmp/cache/assets/CAA/BC0/sprockets%2F42078e308f64bba6180ed593c1257a08 +0 -0
- data/test/dummy/tmp/cache/assets/CAA/EF0/sprockets%2F13b3f1125490c5a2e82e24d64f780e39 +0 -0
- data/test/dummy/tmp/cache/assets/CAB/320/sprockets%2F78ac4929439bc866a653a2a12a2a5165 +0 -0
- data/test/dummy/tmp/cache/assets/CAB/4D0/sprockets%2F21a12d7663bea8213a833927457ed4f4 +0 -0
- data/test/dummy/tmp/cache/assets/CAB/720/sprockets%2F491d20bb57b07051ed188bd0f7028894 +0 -0
- data/test/dummy/tmp/cache/assets/CAB/750/sprockets%2F212a47ef9bbb0b0a425335683067f878 +0 -0
- data/test/dummy/tmp/cache/assets/CAB/890/sprockets%2F2f32992c977b6a811f0e38c6110434cb +0 -0
- data/test/dummy/tmp/cache/assets/CAB/D10/sprockets%2F27544d50488ac62f23e860d2f51307ea +0 -0
- data/test/dummy/tmp/cache/assets/CAC/F40/sprockets%2Fcce78188e804745f718a00dc1410e254 +0 -0
- data/test/dummy/tmp/cache/assets/CAD/4B0/sprockets%2F37111738f65d62046cb8e56440fc4ab6 +0 -0
- data/test/dummy/tmp/cache/assets/CAD/6C0/sprockets%2Fe836e0b2710029315f25e31966fa86ae +0 -0
- data/test/dummy/tmp/cache/assets/CAD/7F0/sprockets%2F52a078730ed34d144927702ecd5dc475 +0 -0
- data/test/dummy/tmp/cache/assets/CAD/890/sprockets%2F0b64e08b0310b5955e4274998de205ce +0 -0
- data/test/dummy/tmp/cache/assets/CAD/B70/sprockets%2F57254337db5e0be73c242ea5066744f5 +0 -0
- data/test/dummy/tmp/cache/assets/CAD/BE0/sprockets%2Fb4ae46150b8011119cd56d3789cf2288 +0 -0
- data/test/dummy/tmp/cache/assets/CAE/200/sprockets%2F48c74ad503720c817e9ba301f1b89583 +0 -0
- data/test/dummy/tmp/cache/assets/CAE/290/sprockets%2F8078875c0d64178ad1a11991d25bb44c +0 -0
- data/test/dummy/tmp/cache/assets/CAE/490/sprockets%2F51e43a989180ced34952a2b8c644c530 +0 -0
- data/test/dummy/tmp/cache/assets/CAE/630/sprockets%2F9d24d9f35a4650e41b4645c5d81b0842 +0 -0
- data/test/dummy/tmp/cache/assets/CAE/660/sprockets%2F15b8345da313eea0a96760340c9559e7 +0 -0
- data/test/dummy/tmp/cache/assets/CAE/880/sprockets%2Fd6c9a58dd76ec050444d324819262e20 +0 -0
- data/test/dummy/tmp/cache/assets/CAE/900/sprockets%2F0e397258561ee4b801e90c11134c9a8f +0 -0
- data/test/dummy/tmp/cache/assets/CAE/A40/sprockets%2F037f34c1814912af7f1f5d81080dd962 +0 -0
- data/test/dummy/tmp/cache/assets/CAF/8F0/sprockets%2Fdfb0351981258b34aa1a77478e5027e7 +0 -0
- data/test/dummy/tmp/cache/assets/CAF/F30/sprockets%2F93a3cb60248afb131545f47709fb6645 +0 -0
- data/test/dummy/tmp/cache/assets/CB0/240/sprockets%2F6e09e74c352d05b8f80699035203a1ef +0 -0
- data/test/dummy/tmp/cache/assets/CB0/6C0/sprockets%2Fb052b2fcf6576527d249d81d9251304f +0 -0
- data/test/dummy/tmp/cache/assets/CB0/6E0/sprockets%2Fb6374ab19b20f2254690b9099d1e73b8 +0 -0
- data/test/dummy/tmp/cache/assets/CB0/CB0/sprockets%2F4cf4d8b16152352bc516a4985b74d159 +0 -0
- data/test/dummy/tmp/cache/assets/CB0/CE0/sprockets%2F27b63550e66772dd1a53c2f583f1e921 +0 -0
- data/test/dummy/tmp/cache/assets/CB0/DA0/sprockets%2F4b44084421b0deeb1d2586e46b676793 +0 -0
- data/test/dummy/tmp/cache/assets/CB0/EF0/sprockets%2Fa01136a757d377c8efd38821723f82c0 +0 -0
- data/test/dummy/tmp/cache/assets/CB1/370/sprockets%2F590488652cd4303cc682fe9c941400cc +0 -0
- data/test/dummy/tmp/cache/assets/CB1/720/sprockets%2F018fab435fc393f71862ec3d10737934 +0 -0
- data/test/dummy/tmp/cache/assets/CB1/EA0/sprockets%2F4759506f0564d9c58127be282a1dbd51 +0 -0
- data/test/dummy/tmp/cache/assets/CB1/EE0/sprockets%2F931d2725b8c14ed84a31e373fc813188 +0 -0
- data/test/dummy/tmp/cache/assets/CB2/300/sprockets%2F224075f1624945daf1f76df5b3689c00 +0 -0
- data/test/dummy/tmp/cache/assets/CB2/360/sprockets%2F837c1d6062902933d1293dc73a7cdf47 +0 -0
- data/test/dummy/tmp/cache/assets/CB2/5A0/sprockets%2F434a0c6d7c301964022e91e8f99bb727 +0 -0
- data/test/dummy/tmp/cache/assets/CB2/E80/sprockets%2F4745738104a5b1a1952a3df67955e8da +0 -0
- data/test/dummy/tmp/cache/assets/CB3/360/sprockets%2F957ef101ecd45863632de600c9597a30 +0 -0
- data/test/dummy/tmp/cache/assets/CB3/720/sprockets%2F9d2028796498a1ab2c9bbb05665a0964 +0 -0
- data/test/dummy/tmp/cache/assets/CB3/AA0/sprockets%2F1a5341f5bbe847df26e716510318779c +0 -0
- data/test/dummy/tmp/cache/assets/CB3/CA0/sprockets%2F1d2306c646f5e2bf436be4914a949364 +0 -0
- data/test/dummy/tmp/cache/assets/CB3/F40/sprockets%2F65e40dc324ca81a9e17856342a77e591 +0 -0
- data/test/dummy/tmp/cache/assets/CB4/240/sprockets%2F940b55ae0d29d6602ca1776712f6f928 +0 -0
- data/test/dummy/tmp/cache/assets/CB4/790/sprockets%2F7dd7073112b9c5019e753ffa56463b66 +0 -0
- data/test/dummy/tmp/cache/assets/CB4/890/sprockets%2F7f8ab6f90720f3f6b19243c41b366465 +0 -0
- data/test/dummy/tmp/cache/assets/CB4/A60/sprockets%2Fa8fe69f6103d6939050046f08db165b5 +0 -0
- data/test/dummy/tmp/cache/assets/CB4/C50/sprockets%2Ff9ed4040f57f633876cd232780fa0128 +0 -0
- data/test/dummy/tmp/cache/assets/CB4/D90/sprockets%2F5fb974e230f8a43f0146694636b621fc +0 -0
- data/test/dummy/tmp/cache/assets/CB5/200/sprockets%2F769c51757781c4a190185baf1297eb3a +0 -0
- data/test/dummy/tmp/cache/assets/CB5/220/sprockets%2F014337688f75cc53366e1dee09642f0c +0 -0
- data/test/dummy/tmp/cache/assets/CB5/310/sprockets%2F2833f6b19a5ac7453729822f259b2db6 +0 -0
- data/test/dummy/tmp/cache/assets/CB5/610/sprockets%2F33ac72c81dc2a77850687691f1172c8d +0 -0
- data/test/dummy/tmp/cache/assets/CB5/B60/sprockets%2Fd29dae0ef3568721735ec72217826a28 +0 -0
- data/test/dummy/tmp/cache/assets/CB5/D90/sprockets%2F794b6d6ac1939404bb8e644725c0f155 +0 -0
- data/test/dummy/tmp/cache/assets/CB6/110/sprockets%2Fef8631566777061408af1c64bd43b3d9 +0 -0
- data/test/dummy/tmp/cache/assets/CB6/2C0/sprockets%2F84ca6c105bf1676b9b712908174747de +0 -0
- data/test/dummy/tmp/cache/assets/CB7/2E0/sprockets%2Ff1ed26933745612dc769d5fb75c17321 +0 -0
- data/test/dummy/tmp/cache/assets/CB7/A10/sprockets%2Fd34b045e6d4215367bcf6f08e4638926 +0 -0
- data/test/dummy/tmp/cache/assets/CB7/C10/sprockets%2F262600ead4686290c10b01aa60e0ce20 +0 -0
- data/test/dummy/tmp/cache/assets/CB7/D40/sprockets%2F699ef7310dacea441646312a965f7923 +0 -0
- data/test/dummy/tmp/cache/assets/CB7/D70/sprockets%2F2cdf87e3d1b3659309903e519a7251f5 +0 -0
- data/test/dummy/tmp/cache/assets/CB7/F00/sprockets%2F4e642eb013c8669a50db2fa895234779 +0 -0
- data/test/dummy/tmp/cache/assets/CB7/FA0/sprockets%2Fe11b1d418699c10ce19c92b8a8562992 +0 -0
- data/test/dummy/tmp/cache/assets/CB8/3B0/sprockets%2Ff293c101ef37e37fad1336567f288805 +0 -0
- data/test/dummy/tmp/cache/assets/CB8/550/sprockets%2F4979e71c0cc90484d185942e6ba104e7 +0 -0
- data/test/dummy/tmp/cache/assets/CB8/740/sprockets%2F86f24d82550d1d67070d828c593cda29 +0 -0
- data/test/dummy/tmp/cache/assets/CB8/7F0/sprockets%2F09b29c8ae26818da63953740870abb86 +0 -0
- data/test/dummy/tmp/cache/assets/CB8/980/sprockets%2F49c37cd6ce40901b895305f7393e53a5 +0 -0
- data/test/dummy/tmp/cache/assets/CB8/AC0/sprockets%2F31296d9a08823af1b68971b91645fb5c +0 -0
- data/test/dummy/tmp/cache/assets/CB8/B30/sprockets%2F13f7cb02749922719ffa184c96160a8f +0 -0
- data/test/dummy/tmp/cache/assets/CB8/CE0/sprockets%2Fd82b3fa60209f7b3e19775f13806785a +0 -0
- data/test/dummy/tmp/cache/assets/CB9/260/sprockets%2F7cfb2307bb86615c7743d75d164e9354 +0 -0
- data/test/dummy/tmp/cache/assets/CB9/680/sprockets%2F769814cdb49069f4d3c4d73317a360b8 +0 -0
- data/test/dummy/tmp/cache/assets/CB9/BE0/sprockets%2F5616190f6338dd921fae3517868cc8a2 +0 -0
- data/test/dummy/tmp/cache/assets/CB9/D80/sprockets%2Fb71db9a0566b74607e170a9679c5276d +0 -0
- data/test/dummy/tmp/cache/assets/CB9/FB0/sprockets%2F284a0fe46e42c9d28f912830cf479604 +0 -0
- data/test/dummy/tmp/cache/assets/CB9/FC0/sprockets%2Fae273d06916808a44c8c47b744d2883e +0 -0
- data/test/dummy/tmp/cache/assets/CB9/FD0/sprockets%2F868358f2ee30f4326e761014cd2576ee +0 -0
- data/test/dummy/tmp/cache/assets/CBA/1A0/sprockets%2F8d919816a78bf3c2342a9810f35c26c8 +0 -0
- data/test/dummy/tmp/cache/assets/CBA/FE0/sprockets%2Fbcdc17a3d142901246f0010d01d63a92 +0 -0
- data/test/dummy/tmp/cache/assets/CBB/4A0/sprockets%2F836b47264a423975db0f9b8d494424fb +0 -0
- data/test/dummy/tmp/cache/assets/CBB/5D0/sprockets%2F7965dc683e03140b80566dbd76677f0c +0 -0
- data/test/dummy/tmp/cache/assets/CBB/A70/sprockets%2F7d2284b9010bf8c6791f192496a48f3c +0 -0
- data/test/dummy/tmp/cache/assets/CBB/C00/sprockets%2Ff9a9076aa8206b5af62e6759423c3459 +0 -0
- data/test/dummy/tmp/cache/assets/CBC/B00/sprockets%2F781e0bd52bee4781ff663069a5941079 +0 -0
- data/test/dummy/tmp/cache/assets/CBD/1B0/sprockets%2F8d8816a2a02333e97652d4be4d5c7977 +0 -0
- data/test/dummy/tmp/cache/assets/CBD/8F0/sprockets%2Fa06568f2e94fe5040f3f1f18e0965476 +0 -0
- data/test/dummy/tmp/cache/assets/CBD/F90/sprockets%2F96237bbf67793f5df1545a4608345b1f +0 -0
- data/test/dummy/tmp/cache/assets/CBE/150/sprockets%2F6709c8934146f58d1d8e0386b385b1dc +0 -0
- data/test/dummy/tmp/cache/assets/CBE/C50/sprockets%2Ff9a19372c0905a91eb97d9798b131c55 +0 -0
- data/test/dummy/tmp/cache/assets/CBE/C70/sprockets%2F0b854864714ec43d7fd4d62a495d1894 +0 -0
- data/test/dummy/tmp/cache/assets/CBF/0B0/sprockets%2F8b64669d931f40a85fb4b56431769fb2 +0 -0
- data/test/dummy/tmp/cache/assets/CBF/2F0/sprockets%2F663199019e22fac7e8f7dbc876443721 +0 -0
- data/test/dummy/tmp/cache/assets/CBF/8B0/sprockets%2F97895a24c544a015857f2fc94b47d53d +0 -0
- data/test/dummy/tmp/cache/assets/CBF/E20/sprockets%2Fc0e317c628dccdb0418071361a11b342 +0 -0
- data/test/dummy/tmp/cache/assets/CC0/1E0/sprockets%2F153766c84f6119b4238b753ff92cc57e +0 -0
- data/test/dummy/tmp/cache/assets/CC0/3A0/sprockets%2F26cd86b84410a02a601212bd2236f6da +0 -0
- data/test/dummy/tmp/cache/assets/CC1/0C0/sprockets%2Ff1db17a26e4b3c3570f9972f57940779 +0 -0
- data/test/dummy/tmp/cache/assets/CC1/3B0/sprockets%2F737207abfffd639437c1659e439629d0 +0 -0
- data/test/dummy/tmp/cache/assets/CC1/AA0/sprockets%2F267c43786e51759667824117ceea5ade +0 -0
- data/test/dummy/tmp/cache/assets/CC1/E10/sprockets%2F6a72d98c94d5e89008d0515f0467fb47 +0 -0
- data/test/dummy/tmp/cache/assets/CC1/EA0/sprockets%2Fc361f5bd9186644d45e91e77e8700c65 +0 -0
- data/test/dummy/tmp/cache/assets/CC2/070/sprockets%2F50f57bd3b454979837b58a044d892a9c +0 -0
- data/test/dummy/tmp/cache/assets/CC2/820/sprockets%2F9723ad49856657ae3df92c726914a5b4 +0 -0
- data/test/dummy/tmp/cache/assets/CC2/850/sprockets%2F0991ccdfb7d10695d34851e69d719735 +0 -0
- data/test/dummy/tmp/cache/assets/CC2/B00/sprockets%2F75f12caf383557d3a572971d099566fd +0 -0
- data/test/dummy/tmp/cache/assets/CC3/1D0/sprockets%2Fe05f83785d87559e712ef7331136b7fa +0 -0
- data/test/dummy/tmp/cache/assets/CC3/2F0/sprockets%2Fa76e9c1a4024f8697e1493825e4f239f +0 -0
- data/test/dummy/tmp/cache/assets/CC3/520/sprockets%2Faaa0355000f0805367da5825e31e5b2d +0 -0
- data/test/dummy/tmp/cache/assets/CC3/CD0/sprockets%2F4ff64f374e84188231f8460486f4d4cb +0 -0
- data/test/dummy/tmp/cache/assets/CC3/FE0/sprockets%2F6a49a6093617b8d69096cd49d86801af +0 -0
- data/test/dummy/tmp/cache/assets/CC4/210/sprockets%2F941735f953ac8c797ab549ee3063e815 +0 -0
- data/test/dummy/tmp/cache/assets/CC4/610/sprockets%2F0f600ac692c703702d410becdb436560 +0 -0
- data/test/dummy/tmp/cache/assets/CC5/340/sprockets%2F79c459809c63e81dbf88caa155961760 +0 -0
- data/test/dummy/tmp/cache/assets/CC5/FB0/sprockets%2F80e0c2f9390c8a479972b8841e949cb3 +0 -0
- data/test/dummy/tmp/cache/assets/CC6/340/sprockets%2Faf04460bb9266d71004db70120f0ed74 +0 -0
- data/test/dummy/tmp/cache/assets/CC7/560/sprockets%2F749218952e9de9fd31469d955da0a770 +0 -0
- data/test/dummy/tmp/cache/assets/CC7/C90/sprockets%2F86038323baeaf54599ae8856744f297c +0 -0
- data/test/dummy/tmp/cache/assets/CC8/2A0/sprockets%2F3a8642f97f97582307a90a8414e7de9e +0 -0
- data/test/dummy/tmp/cache/assets/CC8/5C0/sprockets%2F623593ea6c022c4642dd63c52ae1201e +0 -0
- data/test/dummy/tmp/cache/assets/CC8/B10/sprockets%2Fd9164d28d858d600bd68333f9c17796f +0 -0
- data/test/dummy/tmp/cache/assets/CC9/1B0/sprockets%2F4d312d451724beb0b28b853dc259401a +0 -0
- data/test/dummy/tmp/cache/assets/CC9/200/sprockets%2F742fb8ce196abf238199836fd7457166 +0 -0
- data/test/dummy/tmp/cache/assets/CC9/720/sprockets%2F4640bd1191bd9e37a578f8799c3757c7 +0 -0
- data/test/dummy/tmp/cache/assets/CC9/7B0/sprockets%2Fabc7b6219110ac27372a23cc6956513b +0 -0
- data/test/dummy/tmp/cache/assets/CC9/E30/sprockets%2F77b10d6c0995c9d5691faa55783887f2 +0 -0
- data/test/dummy/tmp/cache/assets/CC9/EA0/sprockets%2Fa571e551db777b73999fc805787b306f +0 -0
- data/test/dummy/tmp/cache/assets/CCA/380/sprockets%2Fe073c91452b0924043eb4dd1d3a3626b +0 -0
- data/test/dummy/tmp/cache/assets/CCA/920/sprockets%2F215205e30fddd55921aa2e9086730c0b +0 -0
- data/test/dummy/tmp/cache/assets/CCB/0F0/sprockets%2Fb7445a8b50d583c3401b86c1b6c304d0 +0 -0
- data/test/dummy/tmp/cache/assets/CCB/380/sprockets%2F36b8a4080e2a0dc2a4f43aa933945423 +0 -0
- data/test/dummy/tmp/cache/assets/CCB/E20/sprockets%2F79ec53487306397cd3e8569fbb27581d +0 -0
- data/test/dummy/tmp/cache/assets/CCC/080/sprockets%2F1d990a5a2f7133c864bdc253de820001 +0 -0
- data/test/dummy/tmp/cache/assets/CCC/9C0/sprockets%2F9c4f952df49a196a50e49f848c056657 +0 -0
- data/test/dummy/tmp/cache/assets/CCD/2A0/sprockets%2Fd8e7588c5343d749e07d68a53931df93 +0 -0
- data/test/dummy/tmp/cache/assets/CCD/320/sprockets%2F39bf4604985317d62f187f34f76c9f5e +0 -0
- data/test/dummy/tmp/cache/assets/CCD/400/sprockets%2Ff7db620709d9861e813887a2b485f88f +0 -0
- data/test/dummy/tmp/cache/assets/CCD/540/sprockets%2Fe0a827b1d64b02b6c604f39208723ae2 +0 -0
- data/test/dummy/tmp/cache/assets/CCE/890/sprockets%2F9103b5078baff06bf0b346b0a3637850 +0 -0
- data/test/dummy/tmp/cache/assets/CCF/5D0/sprockets%2F231033ec0602e5e3479e9e45a32dc2a5 +0 -0
- data/test/dummy/tmp/cache/assets/CCF/A80/sprockets%2Fb1ee31427714b62bf2715112e59eee11 +0 -0
- data/test/dummy/tmp/cache/assets/CCF/DB0/sprockets%2F65ae3451660470d13147eaed413eac55 +0 -0
- data/test/dummy/tmp/cache/assets/CCF/DD0/sprockets%2F48b052bf1038b30ff6ca155265c3b276 +0 -0
- data/test/dummy/tmp/cache/assets/CD0/040/sprockets%2Fc7969f4117330ae6bc1626e100c02ae8 +0 -0
- data/test/dummy/tmp/cache/assets/CD0/060/sprockets%2F194200d1635fd24089c114cace0fd809 +0 -0
- data/test/dummy/tmp/cache/assets/CD0/310/sprockets%2F825eb4414b555ce140fc46ad24b48061 +0 -0
- data/test/dummy/tmp/cache/assets/CD0/CC0/sprockets%2F771b3a4436b40d00e3890464eb91cbd3 +0 -0
- data/test/dummy/tmp/cache/assets/CD2/3D0/sprockets%2F71f7f67333976f4c98c59233dd3827ff +0 -0
- data/test/dummy/tmp/cache/assets/CD2/4A0/sprockets%2F991fe86378937a4f7e4e5819e5c34e14 +0 -0
- data/test/dummy/tmp/cache/assets/CD2/790/sprockets%2F4c0c03eb3164a4f3b90d114c8862592f +0 -0
- data/test/dummy/tmp/cache/assets/CD2/A70/sprockets%2Fafa74f1e22c50a7d66281a60d0341795 +0 -0
- data/test/dummy/tmp/cache/assets/CD2/BD0/sprockets%2F4903eb530840a7a76ee4fa931e108b12 +0 -0
- data/test/dummy/tmp/cache/assets/CD3/940/sprockets%2F641b837eeb02a10631a0d20acd987887 +0 -0
- data/test/dummy/tmp/cache/assets/CD3/EF0/sprockets%2F90c59425e8b8e5aa14316c4301b71bc6 +0 -0
- data/test/dummy/tmp/cache/assets/CD4/5E0/sprockets%2Fa205678e1618b5bc0332f74f062ab8b6 +0 -0
- data/test/dummy/tmp/cache/assets/CD4/8F0/sprockets%2Ff6b7441a9ecc030939344a1c4e6c1028 +0 -0
- data/test/dummy/tmp/cache/assets/CD4/950/sprockets%2Fa9d42b8887502bfbaea025306a772550 +0 -0
- data/test/dummy/tmp/cache/assets/CD4/A30/sprockets%2Ff3112c09e4e2e532317914748bd0df0d +0 -0
- data/test/dummy/tmp/cache/assets/CD4/A70/sprockets%2F3583df2e043a1b817e472354c2b7d1a7 +0 -0
- data/test/dummy/tmp/cache/assets/CD4/B00/sprockets%2F0111854211a8785de20af26e9e8d5bb1 +0 -0
- data/test/dummy/tmp/cache/assets/CD4/BD0/sprockets%2Fb805aac67c1040af26d8e841804d7308 +0 -0
- data/test/dummy/tmp/cache/assets/CD4/C30/sprockets%2F8146caa7c2d5a8410bf19b14d4602893 +0 -0
- data/test/dummy/tmp/cache/assets/CD4/D30/sprockets%2F6741dd0454f9080fa418ed09a192ab40 +0 -0
- data/test/dummy/tmp/cache/assets/CD5/900/sprockets%2F0603a31cdcdf8ec2872219242c65f336 +0 -0
- data/test/dummy/tmp/cache/assets/CD5/CC0/sprockets%2F843089224034e8c141f9c547cb00bdcd +0 -0
- data/test/dummy/tmp/cache/assets/CD5/F50/sprockets%2F120f1500069ba842c60db619f9e6ac85 +0 -0
- data/test/dummy/tmp/cache/assets/CD6/0D0/sprockets%2F3dc8011007c8862be4e12b98cf691a40 +0 -0
- data/test/dummy/tmp/cache/assets/CD6/510/sprockets%2F15410f3d417f3870b7b09f9f3a0c5b43 +0 -0
- data/test/dummy/tmp/cache/assets/CD6/A10/sprockets%2F2fe23b7d391780f61215a714e2b7ec05 +0 -0
- data/test/dummy/tmp/cache/assets/CD6/A90/sprockets%2F667a0820029dd4632401c94ef04cdfd5 +0 -0
- data/test/dummy/tmp/cache/assets/CD6/D70/sprockets%2Fb3ac25a40753c9b2472e3e759334ae61 +0 -0
- data/test/dummy/tmp/cache/assets/CD7/370/sprockets%2F71dd9364063592e030066a72ba77ddbc +0 -0
- data/test/dummy/tmp/cache/assets/CD7/720/sprockets%2F2d8001653bf8cf5347a1cb3836e257d0 +0 -0
- data/test/dummy/tmp/cache/assets/CD7/760/sprockets%2F7a82d6b6895ca9a5e3a414318f11a430 +0 -0
- data/test/dummy/tmp/cache/assets/CD7/780/sprockets%2F08596628d7b1440d26ba09e251ffe2a0 +0 -0
- data/test/dummy/tmp/cache/assets/CD7/AF0/sprockets%2F8ea5147f262ca0db032440670e576f7d +0 -0
- data/test/dummy/tmp/cache/assets/CD7/FE0/sprockets%2Fc1900103439ec4a366c54f6574f48aba +0 -0
- data/test/dummy/tmp/cache/assets/CD8/B20/sprockets%2F364405189b0c5f332ae0fe14a05f95d8 +0 -0
- data/test/dummy/tmp/cache/assets/CD8/C00/sprockets%2Fe3431564d507425b4d87a2d48aa8a34d +0 -0
- data/test/dummy/tmp/cache/assets/CD8/D10/sprockets%2F443f419118cbe6bf5e16765d32a9400a +0 -0
- data/test/dummy/tmp/cache/assets/CD9/200/sprockets%2F3427d0dd3c506916339cf92e307ae04d +0 -0
- data/test/dummy/tmp/cache/assets/CD9/3C0/sprockets%2Fb082b86281b7a873eb2250f31854afd4 +0 -0
- data/test/dummy/tmp/cache/assets/CD9/830/sprockets%2F056590d09da88c9b1920143a3b37d6ea +0 -0
- data/test/dummy/tmp/cache/assets/CD9/8D0/sprockets%2F7d0adf8915d0b1fca18f919929104220 +0 -0
- data/test/dummy/tmp/cache/assets/CDA/2C0/sprockets%2F40a829c1758af25c8238f3070ab5d0c9 +0 -0
- data/test/dummy/tmp/cache/assets/CDA/700/sprockets%2F24c5884ae3352ca70a9546d02bb6e844 +0 -0
- data/test/dummy/tmp/cache/assets/CDA/8B0/sprockets%2F14f573b31a508fc9a74d384a82104ec7 +0 -0
- data/test/dummy/tmp/cache/assets/CDB/360/sprockets%2F840a5e454cf0a80d6c294432eac39258 +0 -0
- data/test/dummy/tmp/cache/assets/CDB/390/sprockets%2F53426e5c2fbb6e454271f97b01b872c1 +0 -0
- data/test/dummy/tmp/cache/assets/CDB/FE0/sprockets%2F010d42b73ce096ab163fc07b846f4697 +0 -0
- data/test/dummy/tmp/cache/assets/CDB/FF0/sprockets%2F28a75074023f9a605dc4578ecfd2e122 +0 -0
- data/test/dummy/tmp/cache/assets/CDC/3A0/sprockets%2F2bdb3f8510205db3f3bf4605947851f7 +0 -0
- data/test/dummy/tmp/cache/assets/CDC/910/sprockets%2F4127b7bf7565f5eb82a54f5012c7512d +0 -0
- data/test/dummy/tmp/cache/assets/CDC/9C0/sprockets%2F81c08804c53996c9cbbbb9c5b0471025 +0 -0
- data/test/dummy/tmp/cache/assets/CDC/C80/sprockets%2F0bfd35e879aa5b71147405519bff2622 +0 -0
- data/test/dummy/tmp/cache/assets/CDC/C90/sprockets%2Fdf275148311cc0a3c977d1d52683e4a7 +0 -0
- data/test/dummy/tmp/cache/assets/CDC/D70/sprockets%2F3a839de3659ba10d4f72a04e624327d7 +0 -0
- data/test/dummy/tmp/cache/assets/CDC/E00/sprockets%2Fc1f1468ab4aee474745a15710e4a9538 +0 -0
- data/test/dummy/tmp/cache/assets/CDC/F20/sprockets%2Fc35c0a48695530638225806ba4fae6bf +0 -0
- data/test/dummy/tmp/cache/assets/CDC/F40/sprockets%2Fc342722b6d9e42814386ef1de21b8a53 +0 -0
- data/test/dummy/tmp/cache/assets/CDD/3E0/sprockets%2Fa8a24b94a9671009427cea4d884aa256 +0 -0
- data/test/dummy/tmp/cache/assets/CDD/4E0/sprockets%2F7a22053281c92bb5f06995dcb1bc5866 +0 -0
- data/test/dummy/tmp/cache/assets/CDD/5A0/sprockets%2Fb7dfa40599517f39400db36240fa16c9 +0 -0
- data/test/dummy/tmp/cache/assets/CDD/770/sprockets%2F29c146b4b8a6109f305da7a6d47386a5 +0 -0
- data/test/dummy/tmp/cache/assets/CDD/820/sprockets%2F013468b4581ca790dae9f03f70071fd8 +0 -0
- data/test/dummy/tmp/cache/assets/CDD/8C0/sprockets%2Fbee326071215e6c434c0f091f38c5e88 +0 -0
- data/test/dummy/tmp/cache/assets/CDD/B20/sprockets%2Ff408a3907451b845100f92d7e904fbfa +0 -0
- data/test/dummy/tmp/cache/assets/CDD/BE0/sprockets%2F8756a8072a115c8ec63a7ec2461485ba +0 -0
- data/test/dummy/tmp/cache/assets/CDD/C10/sprockets%2Fcc0b9b27c73e2960c038ff5112b38666 +0 -0
- data/test/dummy/tmp/cache/assets/CDD/D40/sprockets%2F57d10e644e2935b92803de4516fa3b5c +0 -0
- data/test/dummy/tmp/cache/assets/CDE/400/sprockets%2F1a1e6562a81a5be59fe6c205797711d3 +0 -0
- data/test/dummy/tmp/cache/assets/CDE/5B0/sprockets%2F2949a1487f82baa4bb0121945db7d288 +0 -0
- data/test/dummy/tmp/cache/assets/CDE/640/sprockets%2F39d72e391539a0a64982ecde1200f66a +0 -0
- data/test/dummy/tmp/cache/assets/CDE/660/sprockets%2F7a61352a3829824ad29457df3e23eca4 +0 -0
- data/test/dummy/tmp/cache/assets/CDF/3A0/sprockets%2F3ae02eef2a1aa9779480d1027828c865 +0 -0
- data/test/dummy/tmp/cache/assets/CDF/400/sprockets%2Fa008852da54f1bf9693830b51658ac7b +0 -0
- data/test/dummy/tmp/cache/assets/CDF/410/sprockets%2F72f4f8b59311d00416f921a7a9c7fe14 +0 -0
- data/test/dummy/tmp/cache/assets/CDF/610/sprockets%2F50b229b6ae22759d78144894a10dfb4e +0 -0
- data/test/dummy/tmp/cache/assets/CDF/6C0/sprockets%2F44a74e092fc54e346f6a361f056503fe +0 -0
- data/test/dummy/tmp/cache/assets/CDF/750/sprockets%2F150a7c3c91a07a30e664fa886693ad67 +0 -0
- data/test/dummy/tmp/cache/assets/CDF/A70/sprockets%2F06f44917744447f1655c4d2aad5d0de4 +0 -0
- data/test/dummy/tmp/cache/assets/CDF/B40/sprockets%2Fbb77dbf8982340452a6bda4e53053494 +0 -0
- data/test/dummy/tmp/cache/assets/CDF/B40/sprockets%2Fd90abc6d71641d7c219031c864af9754 +0 -0
- data/test/dummy/tmp/cache/assets/CE0/0A0/sprockets%2F9f83fa0f5605423cc68165c3b7f1b831 +0 -0
- data/test/dummy/tmp/cache/assets/CE0/150/sprockets%2Fff06616bc548913b33660c93ea6663ac +0 -0
- data/test/dummy/tmp/cache/assets/CE0/310/sprockets%2F9ee5a8c15b510b043e88f5826cc33409 +0 -0
- data/test/dummy/tmp/cache/assets/CE0/340/sprockets%2F284aa881b4e78191f904a950baf6209b +0 -0
- data/test/dummy/tmp/cache/assets/CE0/6A0/sprockets%2Fbc57607042f83d29d06adb986528c31b +0 -0
- data/test/dummy/tmp/cache/assets/CE0/DE0/sprockets%2F39b36b9c6a734b4dad50930d88540d72 +0 -0
- data/test/dummy/tmp/cache/assets/CE1/0C0/sprockets%2Fc394dea3dc5163500f7a9eb265953347 +0 -0
- data/test/dummy/tmp/cache/assets/CE1/470/sprockets%2F983d99d27b4b3592a5e6ac7d073010f2 +0 -0
- data/test/dummy/tmp/cache/assets/CE1/4D0/sprockets%2F6225b3f8be16410c0c82288fb84944cf +0 -0
- data/test/dummy/tmp/cache/assets/CE1/6D0/sprockets%2Ff9c5663fd99dc061ae23541a08e40680 +0 -0
- data/test/dummy/tmp/cache/assets/CE1/710/sprockets%2F26af7b6d5c4ba2939130f3984b3f6415 +0 -0
- data/test/dummy/tmp/cache/assets/CE1/DD0/sprockets%2F92603e14dbdc46d0105d70a886889f0e +0 -0
- data/test/dummy/tmp/cache/assets/CE1/E50/sprockets%2F3c417ddc0b7d41ef67749ca332316578 +0 -0
- data/test/dummy/tmp/cache/assets/CE1/F70/sprockets%2F344548525d95f8dcb0f266cf75ba4220 +0 -0
- data/test/dummy/tmp/cache/assets/CE2/2E0/sprockets%2F43321dc8922d569786f3e3493b1aca2e +0 -0
- data/test/dummy/tmp/cache/assets/CE2/3B0/sprockets%2F8553af0a6d6470721b885f1f072fe2c7 +0 -0
- data/test/dummy/tmp/cache/assets/CE2/500/sprockets%2F30f8a44a9e40ac4f70d91679a90a8607 +0 -0
- data/test/dummy/tmp/cache/assets/CE2/6F0/sprockets%2F804bb91ff37d3660bff1145654590bd7 +0 -0
- data/test/dummy/tmp/cache/assets/CE2/870/sprockets%2Fdfc00541846d52d8664d7090e03b9eb8 +0 -0
- data/test/dummy/tmp/cache/assets/CE2/8A0/sprockets%2Fa2c93e9943480db60c7708231eda937b +0 -0
- data/test/dummy/tmp/cache/assets/CE2/950/sprockets%2F663338454ffec19c3c93b8006070d5de +0 -0
- data/test/dummy/tmp/cache/assets/CE2/9E0/sprockets%2F66a32be0e7d4510279e1fd8671a74d83 +0 -0
- data/test/dummy/tmp/cache/assets/CE2/F10/sprockets%2Fa5794166683dc3f6ef423306a092ec4c +0 -0
- data/test/dummy/tmp/cache/assets/CE3/160/sprockets%2F9b7a40c1f4ef4229b043a96698de4234 +0 -0
- data/test/dummy/tmp/cache/assets/CE3/290/sprockets%2F2b7625038f6f3a615b5d49c507eb638c +0 -0
- data/test/dummy/tmp/cache/assets/CE3/470/sprockets%2Fa13229635ceb37ef34c94f4a1877117f +0 -0
- data/test/dummy/tmp/cache/assets/CE3/4B0/sprockets%2F4ef804e2710c5921fd770bf913ae8068 +0 -0
- data/test/dummy/tmp/cache/assets/CE3/520/sprockets%2F6476f636c225ae17b555e2f90322b8fc +0 -0
- data/test/dummy/tmp/cache/assets/CE3/5A0/sprockets%2F13f6bb14f6138bc58c48704d03378d9d +0 -0
- data/test/dummy/tmp/cache/assets/CE3/B60/sprockets%2Fa2e894941598cd923e2c4c9052e03af1 +0 -0
- data/test/dummy/tmp/cache/assets/CE3/E60/sprockets%2Ffb6b2018c00f29225e926afcd3788863 +0 -0
- data/test/dummy/tmp/cache/assets/CE3/FC0/sprockets%2F66711511a9b1286d5548c6bf1c7bf3e8 +0 -0
- data/test/dummy/tmp/cache/assets/CE4/0C0/sprockets%2F54039551e7915c9bb5d514c4be46d27e +0 -0
- data/test/dummy/tmp/cache/assets/CE4/130/sprockets%2F9a139942cd593a872cd21af5372ff235 +0 -0
- data/test/dummy/tmp/cache/assets/CE4/140/sprockets%2F95c089facf860ae0b332b6671642917e +0 -0
- data/test/dummy/tmp/cache/assets/CE4/970/sprockets%2F32866ea407500e99bb62e5c62a8617df +0 -0
- data/test/dummy/tmp/cache/assets/CE5/2C0/sprockets%2F2e7e02748f316add5563de824b9526d2 +0 -0
- data/test/dummy/tmp/cache/assets/CE5/380/sprockets%2F2b93db591cc871673288fe40d14f360e +0 -0
- data/test/dummy/tmp/cache/assets/CE5/840/sprockets%2F11b05d355ea016da79fe243f9805999b +0 -0
- data/test/dummy/tmp/cache/assets/CE5/A40/sprockets%2Fb3d6e316b2b9e457c2f7037a96d01859 +0 -0
- data/test/dummy/tmp/cache/assets/CE5/C80/sprockets%2F37e6a27fa0588533d06cb58e09b4b584 +0 -0
- data/test/dummy/tmp/cache/assets/CE6/0B0/sprockets%2Fb3e8c9040f2df4229b9d142588b59c16 +0 -0
- data/test/dummy/tmp/cache/assets/CE6/210/sprockets%2F6b9b4b82ed79654259f177c02d8bc040 +0 -0
- data/test/dummy/tmp/cache/assets/CE6/250/sprockets%2Fed7d322e28c360a5be419f8c83557534 +0 -0
- data/test/dummy/tmp/cache/assets/CE6/320/sprockets%2Fed9936a17a2843e6059215d19fb209ed +0 -0
- data/test/dummy/tmp/cache/assets/CE6/380/sprockets%2Fd01c51f0838d8e83705f7ce63225b97b +0 -0
- data/test/dummy/tmp/cache/assets/CE6/DD0/sprockets%2Ffd590df3a5e39763c7258802d8233c1c +0 -0
- data/test/dummy/tmp/cache/assets/CE7/7E0/sprockets%2F9081847a834bbf79fd76a55c1148dc20 +0 -0
- data/test/dummy/tmp/cache/assets/CE7/950/sprockets%2Fff862019c138153201ac6ccd597987ed +0 -0
- data/test/dummy/tmp/cache/assets/CE7/9F0/sprockets%2F037a29d79b76c928626f3a3bcd87310e +0 -0
- data/test/dummy/tmp/cache/assets/CE7/F00/sprockets%2Fe93ef14e64157334de37b164fa2d1589 +0 -0
- data/test/dummy/tmp/cache/assets/CE8/2C0/sprockets%2F1fd87d34113f4744598518fe09ddd0e0 +0 -0
- data/test/dummy/tmp/cache/assets/CE8/870/sprockets%2F1574e536fd30e824bb3e916f82a9066f +0 -0
- data/test/dummy/tmp/cache/assets/CE8/910/sprockets%2F080f8c0b62830c954799a2d5edf591d2 +0 -0
- data/test/dummy/tmp/cache/assets/CE8/CD0/sprockets%2F93de125e583b5e116af4d5159af69076 +0 -0
- data/test/dummy/tmp/cache/assets/CE8/FB0/sprockets%2F2c33796115a3ea9eead9620776473eb8 +0 -0
- data/test/dummy/tmp/cache/assets/CE9/380/sprockets%2Fdb39605a961a8c0f9150d48ca81938f7 +0 -0
- data/test/dummy/tmp/cache/assets/CE9/8F0/sprockets%2F505f0e4ca77daae7369943e392a85607 +0 -0
- data/test/dummy/tmp/cache/assets/CE9/9C0/sprockets%2Fbf411959ef26087692cb04c7a98f4a50 +0 -0
- data/test/dummy/tmp/cache/assets/CE9/C60/sprockets%2F7eef977dbc06c32f097f2825166603b3 +0 -0
- data/test/dummy/tmp/cache/assets/CE9/DA0/sprockets%2F44572af4a8be42d567e38e80a729651d +0 -0
- data/test/dummy/tmp/cache/assets/CEA/310/sprockets%2Ff042d3ef9f0b34c3996563990f703a7b +0 -0
- data/test/dummy/tmp/cache/assets/CEA/650/sprockets%2F23e7e5e0a1649a489dd3ef092e851933 +0 -0
- data/test/dummy/tmp/cache/assets/CEA/790/sprockets%2F08888489e9e0723c2ee23b2e13f0ee36 +0 -0
- data/test/dummy/tmp/cache/assets/CEA/8C0/sprockets%2F4d757db04f37413787a19a4579bb5bb9 +0 -0
- data/test/dummy/tmp/cache/assets/CEA/8F0/sprockets%2F9a6c20bb09238891ef59fc17547b286a +0 -0
- data/test/dummy/tmp/cache/assets/CEA/D20/sprockets%2F1976f0ca183934d8bc849b53f170ef08 +0 -0
- data/test/dummy/tmp/cache/assets/CEA/D40/sprockets%2F13f82f6e55726a092f6718777cb3ab3e +0 -0
- data/test/dummy/tmp/cache/assets/CEB/130/sprockets%2F80df7fdb158154fe724b345592f274b7 +0 -0
- data/test/dummy/tmp/cache/assets/CEB/1D0/sprockets%2Fb3014c30d4b5ad090fb00a5a303b7929 +0 -0
- data/test/dummy/tmp/cache/assets/CEB/570/sprockets%2Fa479c9185e3057b9044491bc5bf6fb38 +0 -0
- data/test/dummy/tmp/cache/assets/CEB/660/sprockets%2F8d5dac99dad6219456d03326811e58e7 +0 -0
- data/test/dummy/tmp/cache/assets/CEB/8A0/sprockets%2F159eb5218f66cb1523956585e1add78c +0 -0
- data/test/dummy/tmp/cache/assets/CEB/E20/sprockets%2F2392417f6ade39578bbc805a7f15458d +0 -0
- data/test/dummy/tmp/cache/assets/CEC/230/sprockets%2F06c6439d6734e9122d0429d99bd76ceb +0 -0
- data/test/dummy/tmp/cache/assets/CEC/290/sprockets%2F7077b1e5731389d9236ffae8142e8bd3 +0 -0
- data/test/dummy/tmp/cache/assets/CEC/350/sprockets%2F6e753e09528676b0667afde7e251c8b0 +0 -0
- data/test/dummy/tmp/cache/assets/CEC/4C0/sprockets%2Fdd5b21c9738f4781b4d32d6425835fd8 +0 -0
- data/test/dummy/tmp/cache/assets/CEC/700/sprockets%2F41fb69b7745f7118f9fd12843d354d1d +0 -0
- data/test/dummy/tmp/cache/assets/CEC/830/sprockets%2Fc4e97e059861f48bd5d644184e14b8a1 +0 -0
- data/test/dummy/tmp/cache/assets/CEC/9B0/sprockets%2F623d2921e3b7bd6cbe9288253e18e776 +0 -0
- data/test/dummy/tmp/cache/assets/CEC/FC0/sprockets%2F0d2e77a643248769fd2f6c6d34389bc0 +0 -0
- data/test/dummy/tmp/cache/assets/CED/3F0/sprockets%2F2e9385419f85782925bea76024cddde0 +0 -0
- data/test/dummy/tmp/cache/assets/CED/4D0/sprockets%2F370f12be838ce375948b6d4f37a46c37 +0 -0
- data/test/dummy/tmp/cache/assets/CED/610/sprockets%2F8f08d75c4e213f271c616476ee59d8b2 +0 -0
- data/test/dummy/tmp/cache/assets/CED/610/sprockets%2Fc464c2668d8d57244934c45b9a28e7ba +0 -0
- data/test/dummy/tmp/cache/assets/CED/820/sprockets%2F95259b083f2fe5806fc98b262fca2437 +0 -0
- data/test/dummy/tmp/cache/assets/CED/9C0/sprockets%2F25aa2692a87f9b8f53c70b525997e42b +0 -0
- data/test/dummy/tmp/cache/assets/CEE/280/sprockets%2F76be09b87b67819e2d65b3ac61910d96 +0 -0
- data/test/dummy/tmp/cache/assets/CEE/320/sprockets%2F6ef494b9dfed486274ef54901251c172 +0 -0
- data/test/dummy/tmp/cache/assets/CEE/440/sprockets%2F05a5ffa8911066898ad595b4b9971d1c +0 -0
- data/test/dummy/tmp/cache/assets/CEE/5E0/sprockets%2Fcd968453ce27bc7dc058e871c6976111 +0 -0
- data/test/dummy/tmp/cache/assets/CEF/F90/sprockets%2Fb3af8b93c6e451443df642e6846179f4 +0 -0
- data/test/dummy/tmp/cache/assets/CEF/FB0/sprockets%2F1344982637e6864df2f0e60bcfcc9745 +0 -0
- data/test/dummy/tmp/cache/assets/CEF/FF0/sprockets%2F616967591b95dfe51f4eb048f0ed4426 +0 -0
- data/test/dummy/tmp/cache/assets/CF0/2D0/sprockets%2F2a12ef035037b0440f54e40e6ad2db70 +0 -0
- data/test/dummy/tmp/cache/assets/CF0/3E0/sprockets%2F0219f445a952da190d37779cef6ea499 +0 -0
- data/test/dummy/tmp/cache/assets/CF0/8D0/sprockets%2Fd87a027ff95cd7b9080555d76f16824a +0 -0
- data/test/dummy/tmp/cache/assets/CF0/C60/sprockets%2F6dd5c450564d64588695223ef7d2fe4a +0 -0
- data/test/dummy/tmp/cache/assets/CF0/CD0/sprockets%2F4452429dc09139968df6e8b57bb8ad24 +0 -0
- data/test/dummy/tmp/cache/assets/CF0/D70/sprockets%2Fef73b2f0c344ef70e7935b876d544187 +0 -0
- data/test/dummy/tmp/cache/assets/CF1/2F0/sprockets%2F7259bd2bd5768d0f7fc5176be3884614 +0 -0
- data/test/dummy/tmp/cache/assets/CF1/7D0/sprockets%2F66b85d77b399e98bc9387a3811ab1d14 +0 -0
- data/test/dummy/tmp/cache/assets/CF2/740/sprockets%2F8729f01be5f82ddd5185b7e38773708a +0 -0
- data/test/dummy/tmp/cache/assets/CF2/970/sprockets%2F9d71592e5dd487a7135c722e2a7f45f9 +0 -0
- data/test/dummy/tmp/cache/assets/CF3/1F0/sprockets%2F022005741ac6e3b8b0d0b3d64c29b92b +0 -0
- data/test/dummy/tmp/cache/assets/CF3/200/sprockets%2F86629853277ff066ff97a8f0d1b3a5a4 +0 -0
- data/test/dummy/tmp/cache/assets/CF3/3C0/sprockets%2F51e42f76f5859c6497179b22b40c8dde +0 -0
- data/test/dummy/tmp/cache/assets/CF3/620/sprockets%2F6e512892899d83e072fcffd654254b1d +0 -0
- data/test/dummy/tmp/cache/assets/CF3/850/sprockets%2Fb94be7f87b7b2159d9909e90e0f90620 +0 -0
- data/test/dummy/tmp/cache/assets/CF3/8F0/sprockets%2F979d1a04836f5c2e9c291e23ef79367a +0 -0
- data/test/dummy/tmp/cache/assets/CF4/230/sprockets%2Ff23ca5926549df84d0e5744bf881628e +0 -0
- data/test/dummy/tmp/cache/assets/CF4/2A0/sprockets%2F7fe03b6e6847eaaf067731842957d92f +0 -0
- data/test/dummy/tmp/cache/assets/CF4/4B0/sprockets%2Fe71842466354e399f04d0ce8c6fe953d +0 -0
- data/test/dummy/tmp/cache/assets/CF4/5E0/sprockets%2F9796c9a8269cae458eb3537f9b30c234 +0 -0
- data/test/dummy/tmp/cache/assets/CF4/6F0/sprockets%2F9cb6c3571023113b0af4a1a326fb7b29 +0 -0
- data/test/dummy/tmp/cache/assets/CF4/9E0/sprockets%2F3ec2020f0e16ea2409a9ab577e013a35 +0 -0
- data/test/dummy/tmp/cache/assets/CF5/050/sprockets%2F9bbb9f0428f7f282017d43ed8376758f +0 -0
- data/test/dummy/tmp/cache/assets/CF5/E20/sprockets%2F0081f109024251dfd417f9f1a6cd0ba1 +0 -0
- data/test/dummy/tmp/cache/assets/CF5/E70/sprockets%2F234ba1c230c43ee15548087dc4a3f04a +0 -0
- data/test/dummy/tmp/cache/assets/CF6/3F0/sprockets%2Fc8a187687d86c86d20ccd8d39258428a +0 -0
- data/test/dummy/tmp/cache/assets/CF6/880/sprockets%2Ff7f85513ffd669855b1bd5358193d5d2 +0 -0
- data/test/dummy/tmp/cache/assets/CF7/900/sprockets%2F25954532c431e017d2233aed3dd10edc +0 -0
- data/test/dummy/tmp/cache/assets/CF7/F70/sprockets%2Fae6e6576ed90a32b820967df2b797397 +0 -0
- data/test/dummy/tmp/cache/assets/CF8/420/sprockets%2F646a9a8f589a6440b5a91498666ffbb5 +0 -0
- data/test/dummy/tmp/cache/assets/CF8/460/sprockets%2Fed2bf0482ac1b94d79998947722594bf +0 -0
- data/test/dummy/tmp/cache/assets/CF8/D50/sprockets%2F85b7586ada7412939757fedf63a8b644 +0 -0
- data/test/dummy/tmp/cache/assets/CF8/E50/sprockets%2F6728e09dd75320afa91170a4bfbb0030 +0 -0
- data/test/dummy/tmp/cache/assets/CF9/710/sprockets%2Fa6680189367ffaf80c58dc19d6583e38 +0 -0
- data/test/dummy/tmp/cache/assets/CF9/CA0/sprockets%2Fe3287c6767a894efd1e4461ae21599e8 +0 -0
- data/test/dummy/tmp/cache/assets/CFA/070/sprockets%2F242580b78eb63aa6b89e6b62789796ee +0 -0
- data/test/dummy/tmp/cache/assets/CFA/0D0/sprockets%2F05ccf5ba00db8fbb271a929924530043 +0 -0
- data/test/dummy/tmp/cache/assets/CFA/2C0/sprockets%2F1d13d50c44706754611cd6b6d1cc30ed +0 -0
- data/test/dummy/tmp/cache/assets/CFA/570/sprockets%2F71fa5e8db4d49036a8b201022d54cb23 +0 -0
- data/test/dummy/tmp/cache/assets/CFA/640/sprockets%2Ff60ca5388719314b4780ba2eba530a1a +0 -0
- data/test/dummy/tmp/cache/assets/CFA/720/sprockets%2Fdc2ea106de9ab60be261248f21059224 +0 -0
- data/test/dummy/tmp/cache/assets/CFA/B50/sprockets%2F8505a240bc3a2e4b1a953417c73ebc72 +0 -0
- data/test/dummy/tmp/cache/assets/CFA/DC0/sprockets%2F7fd2f2c83201801df1a530c2f650f26a +0 -0
- data/test/dummy/tmp/cache/assets/CFA/E80/sprockets%2F1e3305c0e72303f1d85bc3e7d5a1b067 +0 -0
- data/test/dummy/tmp/cache/assets/CFB/180/sprockets%2Fac8c5119b033c030096e7e37e0a95a0c +0 -0
- data/test/dummy/tmp/cache/assets/CFB/980/sprockets%2F7d6839a51b968136f9f8d2bf3349e53e +0 -0
- data/test/dummy/tmp/cache/assets/CFB/AB0/sprockets%2F4310d259c9d51b895d0b3c1a6eb031d2 +0 -0
- data/test/dummy/tmp/cache/assets/CFC/0E0/sprockets%2Fe99f6ace35113dfc044311e14a605a51 +0 -0
- data/test/dummy/tmp/cache/assets/CFC/260/sprockets%2F0e71d529f601042aaf154b7d7a7d7b10 +0 -0
- data/test/dummy/tmp/cache/assets/CFC/530/sprockets%2F30c81913fe6fa70899924896cbe78bc7 +0 -0
- data/test/dummy/tmp/cache/assets/CFC/9F0/sprockets%2F7922cd5ca1a340f4b4d450bad4551916 +0 -0
- data/test/dummy/tmp/cache/assets/CFC/D80/sprockets%2F077bef6b6c40a38e35144a20051c5f1f +0 -0
- data/test/dummy/tmp/cache/assets/CFC/FB0/sprockets%2F2b13bc27bbe25b0e17b73e567734700c +0 -0
- data/test/dummy/tmp/cache/assets/CFD/170/sprockets%2F42cfd4e964989e13191824ef9fc548d4 +0 -0
- data/test/dummy/tmp/cache/assets/CFD/400/sprockets%2F0dfc8e84ff74a1051c840840aab16051 +0 -0
- data/test/dummy/tmp/cache/assets/CFD/470/sprockets%2Fd1eb4316039dba02de282ac28358b913 +0 -0
- data/test/dummy/tmp/cache/assets/CFD/530/sprockets%2Fc3236310ab22e4d1c9519d3f33bf62a8 +0 -0
- data/test/dummy/tmp/cache/assets/CFD/B10/sprockets%2Fd709e935422bb4948d69e2c744ff695f +0 -0
- data/test/dummy/tmp/cache/assets/CFD/C30/sprockets%2F4861b94cbe06b03c26bb73d6e0e43213 +0 -0
- data/test/dummy/tmp/cache/assets/CFE/0C0/sprockets%2F2751741fbca2a0c193703763ff6c13da +0 -0
- data/test/dummy/tmp/cache/assets/CFE/A80/sprockets%2F9331b1565d97cf408ab413022ec07ccb +0 -0
- data/test/dummy/tmp/cache/assets/CFE/AE0/sprockets%2F7c886a80519554ea620aac2325bb1ce0 +0 -0
- data/test/dummy/tmp/cache/assets/CFE/AF0/sprockets%2Fcf3dde9e1202c5192390b23371a4b37c +0 -0
- data/test/dummy/tmp/cache/assets/CFF/030/sprockets%2F67435e26ad42d483d12a4aeb5f04802b +0 -0
- data/test/dummy/tmp/cache/assets/CFF/070/sprockets%2F1b3bc280c5e8d2f2e426d75064f310b4 +0 -0
- data/test/dummy/tmp/cache/assets/CFF/0E0/sprockets%2Ff63db558958bc9e0278f78a6f7d72705 +0 -0
- data/test/dummy/tmp/cache/assets/CFF/1A0/sprockets%2F39530e913daa380b1b4fd535119f1e0e +0 -0
- data/test/dummy/tmp/cache/assets/CFF/220/sprockets%2F99056183f5c3e22ebe6a63c2323a1ab2 +0 -0
- data/test/dummy/tmp/cache/assets/CFF/670/sprockets%2F9376a8c2f4a797fec7d6492bf8208594 +0 -0
- data/test/dummy/tmp/cache/assets/CFF/860/sprockets%2F5c7d2a10419532611c629aef1e62ed3b +0 -0
- data/test/dummy/tmp/cache/assets/CFF/8A0/sprockets%2F8bbd3b8c70a0998b0703d3222d4a3c45 +0 -0
- data/test/dummy/tmp/cache/assets/D00/180/sprockets%2Fc46253339a0af89b71ab34d039ad82b0 +0 -0
- data/test/dummy/tmp/cache/assets/D00/1C0/sprockets%2F1003ca26c60873d279c257fdea14ea25 +0 -0
- data/test/dummy/tmp/cache/assets/D00/5E0/sprockets%2F40611fe44dda10993c1b28b4b93225cf +0 -0
- data/test/dummy/tmp/cache/assets/D00/C10/sprockets%2F169d5c9cc4598e63f95577f52e9da370 +0 -0
- data/test/dummy/tmp/cache/assets/D00/F60/sprockets%2Fb032c07696f4ff12c2024db22555f6ad +0 -0
- data/test/dummy/tmp/cache/assets/D01/0E0/sprockets%2F134d0dd2f5cfc525b317e232a479e900 +0 -0
- data/test/dummy/tmp/cache/assets/D01/A60/sprockets%2F3ca75cfcf2037d5364e4531448da120d +0 -0
- data/test/dummy/tmp/cache/assets/D02/5F0/sprockets%2F47c2f882e0175d7d56d9d885f7bf2597 +0 -0
- data/test/dummy/tmp/cache/assets/D02/9C0/sprockets%2F4bdf76951ce2310ecc12870dac901904 +0 -0
- data/test/dummy/tmp/cache/assets/D03/620/sprockets%2F81d03fe39eae417f80342ae66242af10 +0 -0
- data/test/dummy/tmp/cache/assets/D03/8B0/sprockets%2Febcb583b805d6193b261002efcf52067 +0 -0
- data/test/dummy/tmp/cache/assets/D03/A20/sprockets%2Fe530a3ae26f349ac8c10647e621b2f36 +0 -0
- data/test/dummy/tmp/cache/assets/D04/3A0/sprockets%2F2d5c0cc93688011b7d71a3aa5373b48e +0 -0
- data/test/dummy/tmp/cache/assets/D04/B00/sprockets%2F00735a4a37eb6126f08bd35c3488cda5 +0 -0
- data/test/dummy/tmp/cache/assets/D04/B30/sprockets%2F2f43c49fb8c3d1d80ba81307c44821c3 +0 -0
- data/test/dummy/tmp/cache/assets/D04/CD0/sprockets%2Fceb7645ca4df4b8e5d42161232623c70 +0 -0
- data/test/dummy/tmp/cache/assets/D05/3B0/sprockets%2F61fc14de47c1d0400f5fdc17565e9033 +0 -0
- data/test/dummy/tmp/cache/assets/D05/430/sprockets%2F76629c52ae8228b6f4d8ded97d691888 +0 -0
- data/test/dummy/tmp/cache/assets/D05/4A0/sprockets%2F61c2c0d2ca2aa0fcf877c81532257469 +0 -0
- data/test/dummy/tmp/cache/assets/D05/930/sprockets%2F5ed590a61f704c61e17d72ca2af87103 +0 -0
- data/test/dummy/tmp/cache/assets/D05/EB0/sprockets%2F88780a60baac2a29c14c09a2f3c95229 +0 -0
- data/test/dummy/tmp/cache/assets/D05/F90/sprockets%2Ff656115176f84c4fb4790c03aa11cdf1 +0 -0
- data/test/dummy/tmp/cache/assets/D06/010/sprockets%2Fd3f70dc8d4dbb2b2590212294418cf27 +0 -0
- data/test/dummy/tmp/cache/assets/D06/300/sprockets%2F5e2e9da172903ee0aa476447f0a4d217 +0 -0
- data/test/dummy/tmp/cache/assets/D06/FE0/sprockets%2F9a0cd09294a56d31c4390b823ad51e7d +0 -0
- data/test/dummy/tmp/cache/assets/D07/1F0/sprockets%2F5635d72ea41c7982ec9323d125ba02ed +0 -0
- data/test/dummy/tmp/cache/assets/D07/390/sprockets%2Fdd33e50087f613fb14d4a22f7bc63807 +0 -0
- data/test/dummy/tmp/cache/assets/D07/680/sprockets%2F2921bb7defb45d60b04558a3e012686f +0 -0
- data/test/dummy/tmp/cache/assets/D07/8D0/sprockets%2F823cf8df688427fe2569f999750f23eb +0 -0
- data/test/dummy/tmp/cache/assets/D08/7C0/sprockets%2F5b865128ca116b17bb159d968e6aae10 +0 -0
- data/test/dummy/tmp/cache/assets/D08/A10/sprockets%2F7764ebd1a9c4f03b9f2d3a52232026e8 +0 -0
- data/test/dummy/tmp/cache/assets/D08/C30/sprockets%2F25800231754c73509b45efc8caaf52cf +0 -0
- data/test/dummy/tmp/cache/assets/D08/E10/sprockets%2Fd004e64e4981c97f2046e2cb5e6ba420 +0 -0
- data/test/dummy/tmp/cache/assets/D09/0E0/sprockets%2F861a0a04ea603309d93a883f25f9fb2c +0 -0
- data/test/dummy/tmp/cache/assets/D09/100/sprockets%2Fd696fb8fbd707484e69f9815a79387d2 +0 -0
- data/test/dummy/tmp/cache/assets/D09/210/sprockets%2F0c57094235e32edddcc747ed202873b3 +0 -0
- data/test/dummy/tmp/cache/assets/D09/3D0/sprockets%2F724ad72478f44b426da0224da92cee54 +0 -0
- data/test/dummy/tmp/cache/assets/D09/5E0/sprockets%2F3318d97233cc6ec853c21cb33f8a190d +0 -0
- data/test/dummy/tmp/cache/assets/D09/680/sprockets%2F6e5aeb11318f3a858b8c24d0038474eb +0 -0
- data/test/dummy/tmp/cache/assets/D09/820/sprockets%2F85b308247d96cd3f111ad8a444cd841b +0 -0
- data/test/dummy/tmp/cache/assets/D09/940/sprockets%2F117b8bef6f033eabf80c8376160b4247 +0 -0
- data/test/dummy/tmp/cache/assets/D09/B40/sprockets%2Fdc13f0ec5c52056111f8d7ab958343d7 +0 -0
- data/test/dummy/tmp/cache/assets/D0A/0E0/sprockets%2F4b9ea32c5ae7b75b362b7071b35d2739 +0 -0
- data/test/dummy/tmp/cache/assets/D0A/1A0/sprockets%2F0dadca80c1376047e97c5256acd77127 +0 -0
- data/test/dummy/tmp/cache/assets/D0A/300/sprockets%2F00165b651485bfc396a57ea3951aca9c +0 -0
- data/test/dummy/tmp/cache/assets/D0A/590/sprockets%2F660e4ed70999ad0fb5402f2b8322f0e2 +0 -0
- data/test/dummy/tmp/cache/assets/D0A/720/sprockets%2F3f99583002696fb4d521dee231e2a3da +0 -0
- data/test/dummy/tmp/cache/assets/D0A/810/sprockets%2F9cc7c89425ba1686a18a1d8beb005209 +0 -0
- data/test/dummy/tmp/cache/assets/D0A/890/sprockets%2F8a5a29d81021eced955403acf246c790 +0 -0
- data/test/dummy/tmp/cache/assets/D0A/B90/sprockets%2F84a57505123dc77ee41c5b9261cd52cd +0 -0
- data/test/dummy/tmp/cache/assets/D0A/CB0/sprockets%2F01b7bc8d4406b16b212891ef72eeb775 +0 -0
- data/test/dummy/tmp/cache/assets/D0A/F30/sprockets%2F64a591be6f28b5b7124aa6053fb6490e +0 -0
- data/test/dummy/tmp/cache/assets/D0B/130/sprockets%2F42a66ff402fe17f41184d0ecb68c6424 +0 -0
- data/test/dummy/tmp/cache/assets/D0B/220/sprockets%2F282c3ab5703c68d4a44172e8a3d665de +0 -0
- data/test/dummy/tmp/cache/assets/D0B/430/sprockets%2F946f48f97b74e7c38a90b851d7899c6e +0 -0
- data/test/dummy/tmp/cache/assets/D0B/5F0/sprockets%2Feed5c02da0683664c842f6cc009b8632 +0 -0
- data/test/dummy/tmp/cache/assets/D0B/640/sprockets%2F9366c3e436388b239ebcda0fc24520f1 +0 -0
- data/test/dummy/tmp/cache/assets/D0B/730/sprockets%2F72842ad2887cb116fae708af921a4c16 +0 -0
- data/test/dummy/tmp/cache/assets/D0B/800/sprockets%2F128694f9db7bd2ff0bac9c0322372453 +0 -0
- data/test/dummy/tmp/cache/assets/D0B/B00/sprockets%2F75a80653b8109c70d939afa19cd31db2 +0 -0
- data/test/dummy/tmp/cache/assets/D0B/C90/sprockets%2Fbb750bf14bd815c15c9d372358a29c91 +0 -0
- data/test/dummy/tmp/cache/assets/D0B/E60/sprockets%2F5d8a090323b68ecf521164e70eff23b7 +0 -0
- data/test/dummy/tmp/cache/assets/D0C/090/sprockets%2F3bf824532b35b3d3fe6a08c4185e0e95 +0 -0
- data/test/dummy/tmp/cache/assets/D0C/1C0/sprockets%2Fee732f263dba34752073c7ff91361ad4 +0 -0
- data/test/dummy/tmp/cache/assets/D0C/430/sprockets%2Fd02a0759b11f6518dcf0ed0894a760e8 +0 -0
- data/test/dummy/tmp/cache/assets/D0C/570/sprockets%2Fcd362c2a0626ffdf755b794076a40a82 +0 -0
- data/test/dummy/tmp/cache/assets/D0C/610/sprockets%2Fd5649ac600c7962a0883a78a9cc1da05 +0 -0
- data/test/dummy/tmp/cache/assets/D0C/6B0/sprockets%2Fd18e543f7d154cc106243bf2f6c27f72 +0 -0
- data/test/dummy/tmp/cache/assets/D0C/760/sprockets%2F5043d114bc66f610c93969ca647deaf0 +0 -0
- data/test/dummy/tmp/cache/assets/D0C/C30/sprockets%2F3ea6ea3b7d011db381536746695e5dd2 +0 -0
- data/test/dummy/tmp/cache/assets/D0D/090/sprockets%2F53622478b6257527acbb51c6f9bbb42f +0 -0
- data/test/dummy/tmp/cache/assets/D0D/570/sprockets%2F72ee1883b6c0209c1611a552a8eb7ef9 +0 -0
- data/test/dummy/tmp/cache/assets/D0D/980/sprockets%2F41ef6c755cac1d2da9e452d238603197 +0 -0
- data/test/dummy/tmp/cache/assets/D0D/ED0/sprockets%2F3788b0aca5aec5145a257eb5955507f3 +0 -0
- data/test/dummy/tmp/cache/assets/D0D/F70/sprockets%2Fcbe13926041dc94c8ddb4a781146249e +0 -0
- data/test/dummy/tmp/cache/assets/D0E/220/sprockets%2Fcbf6939f3475ee87b88994b97b7715d6 +0 -0
- data/test/dummy/tmp/cache/assets/D0E/290/sprockets%2F059437fa9369eff7004cdb1f0b36380b +0 -0
- data/test/dummy/tmp/cache/assets/D0E/2E0/sprockets%2F2a282da6089ac07527d4eb070f6f758b +0 -0
- data/test/dummy/tmp/cache/assets/D0E/3C0/sprockets%2F5c55a77e185d6b730fcf1b1297b431d5 +0 -0
- data/test/dummy/tmp/cache/assets/D0E/620/sprockets%2F3de38432c45ddc16e6d8553416c1cf26 +0 -0
- data/test/dummy/tmp/cache/assets/D0E/9C0/sprockets%2F5cd42d2b2e5d7839ef077276b52b9a00 +0 -0
- data/test/dummy/tmp/cache/assets/D0E/A10/sprockets%2F05ebd4b57720dbc2c207882946bd47a9 +0 -0
- data/test/dummy/tmp/cache/assets/D0E/C00/sprockets%2F010b6f849ec9259fa3de514a18e74a32 +0 -0
- data/test/dummy/tmp/cache/assets/D0E/FB0/sprockets%2F211db87b55b9f2ec7d75111aa1922f99 +0 -0
- data/test/dummy/tmp/cache/assets/D0F/000/sprockets%2F483b8bb18b87ece00226c80fb1f61965 +0 -0
- data/test/dummy/tmp/cache/assets/D0F/560/sprockets%2F18f67b27b2141576c51de1c3d2b9f38e +0 -0
- data/test/dummy/tmp/cache/assets/D0F/560/sprockets%2F5f923aab9c0522298d836e8ae0c1426f +0 -0
- data/test/dummy/tmp/cache/assets/D0F/870/sprockets%2F2e97e46c0514892b18bbb2d7a4e4862a +0 -0
- data/test/dummy/tmp/cache/assets/D0F/980/sprockets%2Fdaa14ed9a3657161c56c66483e2d17e4 +0 -0
- data/test/dummy/tmp/cache/assets/D0F/DE0/sprockets%2F69bf7ad2a1388f3e306a7320a882af38 +0 -0
- data/test/dummy/tmp/cache/assets/D10/300/sprockets%2F21c9f4b074feb773e4e223e35691f30e +0 -0
- data/test/dummy/tmp/cache/assets/D10/410/sprockets%2F5fa7802b4854988b4cb0bee2e0d34491 +0 -0
- data/test/dummy/tmp/cache/assets/D10/730/sprockets%2F3dab68310e657844a5adcb9e180790c7 +0 -0
- data/test/dummy/tmp/cache/assets/D10/850/sprockets%2Fc9d90745ea3ca04d148d40409e9b82f4 +0 -0
- data/test/dummy/tmp/cache/assets/D10/8F0/sprockets%2F9ced9499938561d5a5889d9a93c08d9f +0 -0
- data/test/dummy/tmp/cache/assets/D10/CB0/sprockets%2F732e6da303a457dd84651c7a746ed9b1 +0 -0
- data/test/dummy/tmp/cache/assets/D10/EF0/sprockets%2F346fda251eb63406780ce6e3c337a88d +0 -0
- data/test/dummy/tmp/cache/assets/D10/FC0/sprockets%2F563f9f7eb632fc32ab885a1bc2127429 +0 -0
- data/test/dummy/tmp/cache/assets/D11/2F0/sprockets%2Fe6f61417924f79c80bbe47a75b08a03b +0 -0
- data/test/dummy/tmp/cache/assets/D11/510/sprockets%2F48f352a44fa4fc68f850537d1c6c06c2 +0 -0
- data/test/dummy/tmp/cache/assets/D11/660/sprockets%2F18364ce3b27ed0747916df341d8fad14 +0 -0
- data/test/dummy/tmp/cache/assets/D11/AD0/sprockets%2F3c0e80cb649c82b7c42d0914be888a36 +0 -0
- data/test/dummy/tmp/cache/assets/D11/C40/sprockets%2F04aecf869ffe1036d6a34e5412b37548 +0 -0
- data/test/dummy/tmp/cache/assets/D11/CA0/sprockets%2F771462dbc4b5ca18a79675e303a9f1e5 +0 -0
- data/test/dummy/tmp/cache/assets/D11/F80/sprockets%2F708e296fdc9635072ba21545affaf452 +0 -0
- data/test/dummy/tmp/cache/assets/D12/320/sprockets%2F45d98b1a0f4df9794921bed2f0f71015 +0 -0
- data/test/dummy/tmp/cache/assets/D12/6A0/sprockets%2Fb27002b49aed22f5f982089695eba4c4 +0 -0
- data/test/dummy/tmp/cache/assets/D12/7C0/sprockets%2F1f2db5b36886d30af1f230790f3e8f47 +0 -0
- data/test/dummy/tmp/cache/assets/D12/890/sprockets%2F4a3f3b35d4b821627f348b7db2268ec9 +0 -0
- data/test/dummy/tmp/cache/assets/D13/0B0/sprockets%2F8fa65d01a766afba41822191f99ab685 +0 -0
- data/test/dummy/tmp/cache/assets/D13/2B0/sprockets%2F2f9ce439715127b74621f3dbb6bc861f +0 -0
- data/test/dummy/tmp/cache/assets/D13/380/sprockets%2Fc3f62e9c3083521dff321d75592b99aa +0 -0
- data/test/dummy/tmp/cache/assets/D13/490/sprockets%2F6fdcca903e16974a7065620d8e8a155d +0 -0
- data/test/dummy/tmp/cache/assets/D13/740/sprockets%2Ffe5b9163b9c64525852a6cdb161cb783 +0 -0
- data/test/dummy/tmp/cache/assets/D13/9A0/sprockets%2F3813c433df54f19eb7257aed6e2287c1 +0 -0
- data/test/dummy/tmp/cache/assets/D13/9D0/sprockets%2F8ce730879e6e086a1e53115b046d1dff +0 -0
- data/test/dummy/tmp/cache/assets/D13/E70/sprockets%2Ff65d6f1d244dc0a17109771f887f3a3d +0 -0
- data/test/dummy/tmp/cache/assets/D14/0F0/sprockets%2Ff82e9e555d5326ff2226159aeec16c12 +0 -0
- data/test/dummy/tmp/cache/assets/D14/220/sprockets%2F84a72d24ac9ea56176e018ee138d9f05 +0 -0
- data/test/dummy/tmp/cache/assets/D14/3F0/sprockets%2F719e0a69eb9aa68caa2d672675b62660 +0 -0
- data/test/dummy/tmp/cache/assets/D14/400/sprockets%2F049f119c2b9b2da78355c1187fdc865a +0 -0
- data/test/dummy/tmp/cache/assets/D14/8B0/sprockets%2Fc08dff89cf0e8ba261b442283749e062 +0 -0
- data/test/dummy/tmp/cache/assets/D14/C90/sprockets%2F33b03169fab0ff73ae417887b690a4f9 +0 -0
- data/test/dummy/tmp/cache/assets/D14/CE0/sprockets%2F9d9cc6b0e34afb42924876e23963b50b +0 -0
- data/test/dummy/tmp/cache/assets/D15/010/sprockets%2F7d43d9dd12a5902d5eb03e8061e689e6 +0 -0
- data/test/dummy/tmp/cache/assets/D15/030/sprockets%2Fa5affe567dc74a8321744f5902f6d531 +0 -0
- data/test/dummy/tmp/cache/assets/D15/4B0/sprockets%2F643ea4288c39b957a82be0621f4a9d4c +0 -0
- data/test/dummy/tmp/cache/assets/D15/4D0/sprockets%2F3ff5fa34513b93faa9fc167536585a52 +0 -0
- data/test/dummy/tmp/cache/assets/D15/6B0/sprockets%2F3bfbac97eb5796307418d0f0e679144a +0 -0
- data/test/dummy/tmp/cache/assets/D15/790/sprockets%2F1c3f4f891ad225c51c5f71e7e6847e22 +0 -0
- data/test/dummy/tmp/cache/assets/D15/7D0/sprockets%2F326e2817cf99c2e9a933a936b3ca126d +0 -0
- data/test/dummy/tmp/cache/assets/D15/7F0/sprockets%2F747aa65b72a2066c93638af05bfc49f6 +0 -0
- data/test/dummy/tmp/cache/assets/D15/DC0/sprockets%2Fe0070306dd5f89aebbe73936d01e9990 +0 -0
- data/test/dummy/tmp/cache/assets/D16/0C0/sprockets%2F58fb9abfdb670a8502813dc88487711a +0 -0
- data/test/dummy/tmp/cache/assets/D16/200/sprockets%2Fc74cd1183d9a36031f7961945ec7bed4 +0 -0
- data/test/dummy/tmp/cache/assets/D16/2C0/sprockets%2Fa90ad78854c9bd1156e3866eb0e234f5 +0 -0
- data/test/dummy/tmp/cache/assets/D16/350/sprockets%2F481fad5a50bfc8c5b239b627690669f1 +0 -0
- data/test/dummy/tmp/cache/assets/D16/4D0/sprockets%2Fc39108a25f0ff6c6c087932b9ed0e565 +0 -0
- data/test/dummy/tmp/cache/assets/D16/E90/sprockets%2Ff6f373fe403f4421e5eef7cf14870118 +0 -0
- data/test/dummy/tmp/cache/assets/D16/F50/sprockets%2F64609577d7841668dec220ed4d0ccd1f +0 -0
- data/test/dummy/tmp/cache/assets/D17/040/sprockets%2F8ad5a2866ec65662f970520395ecbaf2 +0 -0
- data/test/dummy/tmp/cache/assets/D17/160/sprockets%2Fbae77b58c1fd2e9072306427e86727cc +0 -0
- data/test/dummy/tmp/cache/assets/D17/350/sprockets%2F872313faadc302ebc49306696cc9689d +0 -0
- data/test/dummy/tmp/cache/assets/D17/4F0/sprockets%2Fb75a0450ac61cf9f16983cee94b76165 +0 -0
- data/test/dummy/tmp/cache/assets/D17/720/sprockets%2Fd88740a269159b5ed542cac385cc5a94 +0 -0
- data/test/dummy/tmp/cache/assets/D17/780/sprockets%2Fd5c58fccc3367e80721dc613866bf660 +0 -0
- data/test/dummy/tmp/cache/assets/D17/860/sprockets%2F138e6bcec6692bd3e6760d23a49e2287 +0 -0
- data/test/dummy/tmp/cache/assets/D17/AA0/sprockets%2Fc0f895b740d8d572e5d1495f80a23e6a +0 -0
- data/test/dummy/tmp/cache/assets/D17/C50/sprockets%2Fc3f3c439bf5e484757eee298b106062a +0 -0
- data/test/dummy/tmp/cache/assets/D17/F70/sprockets%2F9c39629de564e4a296b2db0c471fb941 +0 -0
- data/test/dummy/tmp/cache/assets/D18/280/sprockets%2Fc70f5cc8315cd0dc493329f9463c8b56 +0 -0
- data/test/dummy/tmp/cache/assets/D18/290/sprockets%2F5cb980f53c999c04b9b0b930dd08266e +0 -0
- data/test/dummy/tmp/cache/assets/D18/300/sprockets%2F4b5e886e88a00ab8ad527b679cc12179 +0 -0
- data/test/dummy/tmp/cache/assets/D18/540/sprockets%2F2e14b68eb93ccb58bf790f0715166f19 +0 -0
- data/test/dummy/tmp/cache/assets/D18/5B0/sprockets%2Faab076893f33e5c552fb70c1827c8d96 +0 -0
- data/test/dummy/tmp/cache/assets/D18/5C0/sprockets%2F806ddba8f1127fcc8e5a108b86937744 +0 -0
- data/test/dummy/tmp/cache/assets/D18/610/sprockets%2Ffb8ca45b4472354d827192c7ea25f89a +0 -0
- data/test/dummy/tmp/cache/assets/D18/690/sprockets%2F2273c14180eb2ce398b7f4fec8188f26 +0 -0
- data/test/dummy/tmp/cache/assets/D18/790/sprockets%2Fd685dcaf46894a095d72ae68035e2d05 +0 -0
- data/test/dummy/tmp/cache/assets/D18/960/sprockets%2Fb2599041fd51dcfc454185da95ee2396 +0 -0
- data/test/dummy/tmp/cache/assets/D18/A30/sprockets%2Fed6c096e33c730609fd681f9c342a86a +0 -0
- data/test/dummy/tmp/cache/assets/D18/B30/sprockets%2F1ef8de2df042157368b285697adb538a +0 -0
- data/test/dummy/tmp/cache/assets/D19/220/sprockets%2Fd109923d72986131f9ceb24d65dc92fb +0 -0
- data/test/dummy/tmp/cache/assets/D19/420/sprockets%2F379a804e588c4e9ca18e4ee3306653ac +0 -0
- data/test/dummy/tmp/cache/assets/D19/730/sprockets%2Fce771c3ae2127f91a0f67f7f2f571774 +0 -0
- data/test/dummy/tmp/cache/assets/D19/AE0/sprockets%2F29dd77cb7d01481f308397bbb7618b9c +0 -0
- data/test/dummy/tmp/cache/assets/D19/CF0/sprockets%2Ff8dda9781cbd3a795752581028d4e70a +0 -0
- data/test/dummy/tmp/cache/assets/D1A/5D0/sprockets%2F5131b11116be12111ba22e43df8f2fec +0 -0
- data/test/dummy/tmp/cache/assets/D1A/630/sprockets%2F2174485dc959e692517f81ebccc18ad1 +0 -0
- data/test/dummy/tmp/cache/assets/D1A/670/sprockets%2F4f45089e5678ba2b1c06518bde98a7d4 +0 -0
- data/test/dummy/tmp/cache/assets/D1A/AB0/sprockets%2F3c731bd6b32d6881f6724639e47fcee1 +0 -0
- data/test/dummy/tmp/cache/assets/D1A/D80/sprockets%2Fe285d6ec19c323360f5f5495befa8345 +0 -0
- data/test/dummy/tmp/cache/assets/D1B/000/sprockets%2F33b9a53497029670f2a64dc3fb9fdc86 +0 -0
- data/test/dummy/tmp/cache/assets/D1B/000/sprockets%2Fe9444b550979532e5dc13f0e0f177eff +0 -0
- data/test/dummy/tmp/cache/assets/D1B/0C0/sprockets%2F7ca1fa05d6f3e9394ed1439949cb2690 +0 -0
- data/test/dummy/tmp/cache/assets/D1B/B70/sprockets%2F68152d6df8d2af0717e60e5387e8ac18 +0 -0
- data/test/dummy/tmp/cache/assets/D1B/D20/sprockets%2Fa8faebab8e88716f8f6a373628203364 +0 -0
- data/test/dummy/tmp/cache/assets/D1B/D60/sprockets%2Fb70f31481add8338f2d9c64e6187bc95 +0 -0
- data/test/dummy/tmp/cache/assets/D1B/E30/sprockets%2Fae987ee8829c3e5b215bc5f323d61627 +0 -0
- data/test/dummy/tmp/cache/assets/D1B/F30/sprockets%2Fd0809029790934fadf2cbc395a548cf8 +0 -0
- data/test/dummy/tmp/cache/assets/D1C/030/sprockets%2Fdee6c3ab722997fff9127c31767e0415 +0 -0
- data/test/dummy/tmp/cache/assets/D1C/230/sprockets%2F064c29ce898edd6351a50e4179c4a6e8 +0 -0
- data/test/dummy/tmp/cache/assets/D1C/280/sprockets%2Ff7739e72d2907f6dbda12ba3896e0619 +0 -0
- data/test/dummy/tmp/cache/assets/D1C/470/sprockets%2F377c82344c98c9a1f1a984a2fda5d683 +0 -0
- data/test/dummy/tmp/cache/assets/D1C/540/sprockets%2F334e02662b45fcc11013c90d2ebaad05 +0 -0
- data/test/dummy/tmp/cache/assets/D1C/8F0/sprockets%2F95222ee74605c7485eee7a0f703dce68 +0 -0
- data/test/dummy/tmp/cache/assets/D1D/010/sprockets%2Fe9ee683526f75ecb43b74f4d834012b9 +0 -0
- data/test/dummy/tmp/cache/assets/D1D/460/sprockets%2Fc964116863a0e39db98ac9ba1c1f8976 +0 -0
- data/test/dummy/tmp/cache/assets/D1D/4B0/sprockets%2Fe238270322125853fceb96fd7e4f95ee +0 -0
- data/test/dummy/tmp/cache/assets/D1D/7C0/sprockets%2F2658affbe8bc283984784335105edea6 +0 -0
- data/test/dummy/tmp/cache/assets/D1D/C90/sprockets%2Fa688522a4494897a6f6a5e6b80b0c4ff +0 -0
- data/test/dummy/tmp/cache/assets/D1D/FC0/sprockets%2F71971d1f863f746f20a99bbd62de51d7 +0 -0
- data/test/dummy/tmp/cache/assets/D1E/280/sprockets%2Faf6e30265d55b19575089dd09eb9f44e +0 -0
- data/test/dummy/tmp/cache/assets/D1E/360/sprockets%2Facdf07f1f658079c6e3d916663b26d56 +0 -0
- data/test/dummy/tmp/cache/assets/D1E/550/sprockets%2F8e92d88c23785f2b3b11ce99ac06936c +0 -0
- data/test/dummy/tmp/cache/assets/D1E/640/sprockets%2Fb6659a71e769a42269dbf4f3c358e21f +0 -0
- data/test/dummy/tmp/cache/assets/D1E/650/sprockets%2Fcdcfe9d0458130ee48e49b14977353f4 +0 -0
- data/test/dummy/tmp/cache/assets/D1E/DC0/sprockets%2F645b6ef3a71597548d3e8f7a5043ff0d +0 -0
- data/test/dummy/tmp/cache/assets/D1F/2D0/sprockets%2Fe03a6cf19f5d7f693510d90b62f569c9 +0 -0
- data/test/dummy/tmp/cache/assets/D1F/4E0/sprockets%2F77275f55c523218e6d47af5fa85ad29e +0 -0
- data/test/dummy/tmp/cache/assets/D1F/640/sprockets%2Ff2cc190ca52597fd57599f41a7a9723e +0 -0
- data/test/dummy/tmp/cache/assets/D1F/8A0/sprockets%2F28491fd6bb09d8836c1cc0f05f9797a5 +0 -0
- data/test/dummy/tmp/cache/assets/D1F/AA0/sprockets%2F458c88821b0948ba750dd2ea679ae86d +0 -0
- data/test/dummy/tmp/cache/assets/D1F/E60/sprockets%2F07f2a6848ce8d680ba61f828bb9d3890 +0 -0
- data/test/dummy/tmp/cache/assets/D21/2E0/sprockets%2Fc795f0286e2ec5f0d79f179eac158731 +0 -0
- data/test/dummy/tmp/cache/assets/D21/4E0/sprockets%2F15129dcb96697f9eb74fe1fe82a17316 +0 -0
- data/test/dummy/tmp/cache/assets/D21/6C0/sprockets%2F7dbd24986e6074d4907487ab2fc7ce72 +0 -0
- data/test/dummy/tmp/cache/assets/D21/AF0/sprockets%2F8d56bc7093bd548af93f398c08c28c70 +0 -0
- data/test/dummy/tmp/cache/assets/D22/810/sprockets%2F95f75e1268ef8fce5d69b01157e3109e +0 -0
- data/test/dummy/tmp/cache/assets/D22/990/sprockets%2F1bc4ab3477ad23231f11422f42fdda18 +0 -0
- data/test/dummy/tmp/cache/assets/D22/B50/sprockets%2Ff9319c6e43e983c216f99aca73c4844b +0 -0
- data/test/dummy/tmp/cache/assets/D22/E10/sprockets%2F65e527527104f4eb64e9afd7856fe3f3 +0 -0
- data/test/dummy/tmp/cache/assets/D23/150/sprockets%2F030c2207a3052f84ecfa2b05af8c42a8 +0 -0
- data/test/dummy/tmp/cache/assets/D23/1B0/sprockets%2F3ae20324133b89e4391da32bbd1af23d +0 -0
- data/test/dummy/tmp/cache/assets/D23/3E0/sprockets%2F89eb745583edfe3c2f09a856c61c7651 +0 -0
- data/test/dummy/tmp/cache/assets/D23/550/sprockets%2F8ae9f4f4e1c90f843150364d8e8e595a +0 -0
- data/test/dummy/tmp/cache/assets/D23/5B0/sprockets%2F1f95e34b784460e6699debf56b6a4e15 +0 -0
- data/test/dummy/tmp/cache/assets/D23/5F0/sprockets%2F8b8841f36e4be6308855d6cfb4409e9b +0 -0
- data/test/dummy/tmp/cache/assets/D23/B10/sprockets%2Fc06e6ed7f709f8005e084ddd989269b0 +0 -0
- data/test/dummy/tmp/cache/assets/D24/770/sprockets%2F1e5491fe1b520f41a6cfb52d46da0003 +0 -0
- data/test/dummy/tmp/cache/assets/D24/8B0/sprockets%2Ff465f90a8991a2c4986f13b87f9c0fb2 +0 -0
- data/test/dummy/tmp/cache/assets/D24/9A0/sprockets%2F723667858e3fc7af44b1f68c9e17d2e2 +0 -0
- data/test/dummy/tmp/cache/assets/D24/AC0/sprockets%2F8d22996f1c4a36f3d49a1e5997aa7e56 +0 -0
- data/test/dummy/tmp/cache/assets/D24/EB0/sprockets%2F9d429705deb41789a37705f3c67ee4ee +0 -0
- data/test/dummy/tmp/cache/assets/D25/220/sprockets%2F608588a7c74acdb9e9f13b9a66b46953 +0 -0
- data/test/dummy/tmp/cache/assets/D25/590/sprockets%2Faa1c19bcc0b1257c0b1987c82825b0c1 +0 -0
- data/test/dummy/tmp/cache/assets/D25/5B0/sprockets%2F56355268a998595bebb9b6c42ba875af +0 -0
- data/test/dummy/tmp/cache/assets/D25/A10/sprockets%2F8459d7a6e879de2a674d224bd7b960d5 +0 -0
- data/test/dummy/tmp/cache/assets/D25/B10/sprockets%2F31587c7769f852ce8f3fe4064ec14c7c +0 -0
- data/test/dummy/tmp/cache/assets/D26/090/sprockets%2F96098fae84af37c7199177bea92533af +0 -0
- data/test/dummy/tmp/cache/assets/D26/8D0/sprockets%2Fdd06c9b99fe167f48a99d1350c837d35 +0 -0
- data/test/dummy/tmp/cache/assets/D26/C90/sprockets%2F211f9fe1812bba01a705b8207daa239f +0 -0
- data/test/dummy/tmp/cache/assets/D26/C90/sprockets%2Fb09f146e78fc920d934ee9e19dc92284 +0 -0
- data/test/dummy/tmp/cache/assets/D26/C90/sprockets%2Ff78c003cad298697456d86b714e36eff +0 -0
- data/test/dummy/tmp/cache/assets/D27/800/sprockets%2Fbda3823ab830a10b16a96087f6ca6c03 +0 -0
- data/test/dummy/tmp/cache/assets/D28/800/sprockets%2F3c02ffc712301d473a7af7719ca3ab31 +0 -0
- data/test/dummy/tmp/cache/assets/D28/950/sprockets%2Ff17a0aaa22dc704c67096b804c5ab471 +0 -0
- data/test/dummy/tmp/cache/assets/D28/B20/sprockets%2F09f462027d72b7e7de9fd98087dfc373 +0 -0
- data/test/dummy/tmp/cache/assets/D29/040/sprockets%2F02b88051f350e24596d3fe3340bacbaa +0 -0
- data/test/dummy/tmp/cache/assets/D29/840/sprockets%2F402201ec92b1b3bb45245e5a6bdda948 +0 -0
- data/test/dummy/tmp/cache/assets/D29/950/sprockets%2F2a027eeac6051acbc93563ef44345d01 +0 -0
- data/test/dummy/tmp/cache/assets/D29/BD0/sprockets%2F8c85bb6d4859250bcff55847487d65bd +0 -0
- data/test/dummy/tmp/cache/assets/D29/F00/sprockets%2F40adb76487003a4ab13615c01fc97ead +0 -0
- data/test/dummy/tmp/cache/assets/D29/F80/sprockets%2F3d888988ef5e7292bf1f181eb622b19f +0 -0
- data/test/dummy/tmp/cache/assets/D2A/530/sprockets%2Fc3c476dc0fef40502fa3c935a10330c8 +0 -0
- data/test/dummy/tmp/cache/assets/D2A/5A0/sprockets%2Fd520d019a6a1ba7853bc8ab0c25445c8 +0 -0
- data/test/dummy/tmp/cache/assets/D2A/8A0/sprockets%2Fc2ae580fda7ad422395ab21533a72e33 +0 -0
- data/test/dummy/tmp/cache/assets/D2A/E70/sprockets%2Fb3dc3e00630d3fbac07174c782331c9d +0 -0
- data/test/dummy/tmp/cache/assets/D2C/090/sprockets%2F37e2bcd7a00ea56b8a58181023a3f71d +0 -0
- data/test/dummy/tmp/cache/assets/D2C/200/sprockets%2Fea42ef470e90c4282457aaab741e1d20 +0 -0
- data/test/dummy/tmp/cache/assets/D2C/230/sprockets%2Ff9ed5894f5a416a7c4bf59117d792f49 +0 -0
- data/test/dummy/tmp/cache/assets/D2C/2D0/sprockets%2Fc3d17948d766d978e393bdd1781cc49d +0 -0
- data/test/dummy/tmp/cache/assets/D2C/420/sprockets%2Fff47f6f47f5fb84b813d75969c12d436 +0 -0
- data/test/dummy/tmp/cache/assets/D2C/C30/sprockets%2F4c45fa4505e5938b24204663eaacbba1 +0 -0
- data/test/dummy/tmp/cache/assets/D2C/C90/sprockets%2F4a6a04460007524debf322dbd2d748ed +0 -0
- data/test/dummy/tmp/cache/assets/D2C/CF0/sprockets%2Fbe3d5250223d54ca33db9039b92ad36b +0 -0
- data/test/dummy/tmp/cache/assets/D2D/750/sprockets%2F7fa91d4380a87f8be94605bd49949fd6 +0 -0
- data/test/dummy/tmp/cache/assets/D2D/860/sprockets%2Ff5003f0f4a20770b1d06e19b980c2fec +0 -0
- data/test/dummy/tmp/cache/assets/D2E/170/sprockets%2F74d1aebb319115da8451b4e00ae8f338 +0 -0
- data/test/dummy/tmp/cache/assets/D2E/170/sprockets%2Fe6a334436c00a177c4ba453a4df309fe +0 -0
- data/test/dummy/tmp/cache/assets/D2E/AA0/sprockets%2F3995ff450d69e4f972be748ca7834ab8 +0 -0
- data/test/dummy/tmp/cache/assets/D2F/750/sprockets%2Fe2a3783cf749ff959ee3128ce923b994 +0 -0
- data/test/dummy/tmp/cache/assets/D2F/950/sprockets%2F8f1c56d5b377af88a8896e279b2f634e +0 -0
- data/test/dummy/tmp/cache/assets/D2F/B90/sprockets%2F348310802c3fd47de3854ad2c73adda0 +0 -0
- data/test/dummy/tmp/cache/assets/D30/020/sprockets%2F505a1083ccd6e6787acd291db05a3a35 +0 -0
- data/test/dummy/tmp/cache/assets/D30/200/sprockets%2Fa2f1ab1cf6a773164ef3a240b092876c +0 -0
- data/test/dummy/tmp/cache/assets/D30/280/sprockets%2F1b72a1bc53ae152e338bac388742df35 +0 -0
- data/test/dummy/tmp/cache/assets/D30/380/sprockets%2Fcae2f87a008a1175c61745cdad2780a4 +0 -0
- data/test/dummy/tmp/cache/assets/D30/800/sprockets%2F29aa0abdc4d9559d0106c227f385ca60 +0 -0
- data/test/dummy/tmp/cache/assets/D30/860/sprockets%2F54721d2472da2b68b4117ae416bdcdc7 +0 -0
- data/test/dummy/tmp/cache/assets/D30/9F0/sprockets%2Fd45b9299eb2827664ff94f548daf518e +0 -0
- data/test/dummy/tmp/cache/assets/D30/A60/sprockets%2Fb8f58930c97253b39abcc115acc124a1 +0 -0
- data/test/dummy/tmp/cache/assets/D30/AE0/sprockets%2F04ac8121e3246b33cdfa62f905bb49f3 +0 -0
- data/test/dummy/tmp/cache/assets/D30/BF0/sprockets%2Fe4e84f11d27afb83120e34ad54f01a48 +0 -0
- data/test/dummy/tmp/cache/assets/D30/C70/sprockets%2F54f1716129d313e30dff8f21cd00a4ee +0 -0
- data/test/dummy/tmp/cache/assets/D30/D00/sprockets%2Fa4278112be39200de394ca5c5aeb7b46 +0 -0
- data/test/dummy/tmp/cache/assets/D30/F10/sprockets%2F465c3d452345580daadcf5932c0fc1a3 +0 -0
- data/test/dummy/tmp/cache/assets/D31/F40/sprockets%2F98e56dbef366363d878197884bd2daf5 +0 -0
- data/test/dummy/tmp/cache/assets/D32/540/sprockets%2F4dce62322241cbf7de05fd80342e8a61 +0 -0
- data/test/dummy/tmp/cache/assets/D32/A20/sprockets%2F312a5122c497e50fb1a32e4fc7c5ea77 +0 -0
- data/test/dummy/tmp/cache/assets/D32/B10/sprockets%2F2a27e017a0c879621dcbf40fe91ba238 +0 -0
- data/test/dummy/tmp/cache/assets/D32/D70/sprockets%2Fda7da389106c83aafd914ca2e4014608 +0 -0
- data/test/dummy/tmp/cache/assets/D33/020/sprockets%2F01c4a2531f1c7324d8dbef0645f0e6e7 +0 -0
- data/test/dummy/tmp/cache/assets/D33/060/sprockets%2F117f814b864eaf00a3a91f89a4dbb062 +0 -0
- data/test/dummy/tmp/cache/assets/D33/4B0/sprockets%2F880ea9eead5c5dd1216b9563038a4a00 +0 -0
- data/test/dummy/tmp/cache/assets/D33/570/sprockets%2F4ee3083a14b4cba4158cb3d527ed2495 +0 -0
- data/test/dummy/tmp/cache/assets/D33/890/sprockets%2Fbcb860ab607140a1d739f8c127fe057b +0 -0
- data/test/dummy/tmp/cache/assets/D33/A10/sprockets%2F252c911c7ecb3b378ca58511ba79a42c +0 -0
- data/test/dummy/tmp/cache/assets/D33/BE0/sprockets%2F962b00cab2180a85c58ca205de7565ee +0 -0
- data/test/dummy/tmp/cache/assets/D34/1D0/sprockets%2F311225bc49faae3c839eb24232fe76d1 +0 -0
- data/test/dummy/tmp/cache/assets/D34/650/sprockets%2Fb741123e3d70c9ec63515d194a1cfd7a +0 -0
- data/test/dummy/tmp/cache/assets/D34/880/sprockets%2F6ea174533a4ab2c4455f56e4ccb4811f +0 -0
- data/test/dummy/tmp/cache/assets/D34/950/sprockets%2Fa9ab3c0627dd00d6b037ddf42259448d +0 -0
- data/test/dummy/tmp/cache/assets/D34/AB0/sprockets%2Ffd3bd7d7ca6b39b102f2e286f0461107 +0 -0
- data/test/dummy/tmp/cache/assets/D34/CF0/sprockets%2F4f93aa82b61ce48090350e1e4ce204ef +0 -0
- data/test/dummy/tmp/cache/assets/D34/E10/sprockets%2F74034ea037bd6434c8eb68ccf2b3026d +0 -0
- data/test/dummy/tmp/cache/assets/D34/F10/sprockets%2F8e2570cc10ce5d1a88cb70e23ba80783 +0 -0
- data/test/dummy/tmp/cache/assets/D35/4B0/sprockets%2Fe0e3c624373b0c0038ccd087f9a8d4d3 +0 -0
- data/test/dummy/tmp/cache/assets/D35/9C0/sprockets%2Ffd51df36dcc611642a50f460a4c197c6 +0 -0
- data/test/dummy/tmp/cache/assets/D35/DC0/sprockets%2F4271a256db0b166be553384b7e8ccad4 +0 -0
- data/test/dummy/tmp/cache/assets/D36/020/sprockets%2F7e78b42ca2f717752a2b1d262a5ad27f +0 -0
- data/test/dummy/tmp/cache/assets/D36/0F0/sprockets%2Fcc0211f5aa98029c59d8ff0e055c9b10 +0 -0
- data/test/dummy/tmp/cache/assets/D36/220/sprockets%2F6246256acf41d8b8c1551b905db32ddd +0 -0
- data/test/dummy/tmp/cache/assets/D36/230/sprockets%2F3c16319ad1da2566bea8d38ad5a77325 +0 -0
- data/test/dummy/tmp/cache/assets/D36/860/sprockets%2F6e22ec7ea9943cbab166c291b711472a +0 -0
- data/test/dummy/tmp/cache/assets/D36/990/sprockets%2F2508cad8b402c37cc09f6dfa6222c476 +0 -0
- data/test/dummy/tmp/cache/assets/D36/AD0/sprockets%2Fbb238ccd373ef74d05ba241c5f810729 +0 -0
- data/test/dummy/tmp/cache/assets/D36/E50/sprockets%2F43b67afc1a948300095d5f0fc3e41ea7 +0 -0
- data/test/dummy/tmp/cache/assets/D37/190/sprockets%2F1b0a29942409f65198f4dd0b107ddabf +0 -0
- data/test/dummy/tmp/cache/assets/D37/2B0/sprockets%2F3941d2daeba5fdb39206366a69b645a1 +0 -0
- data/test/dummy/tmp/cache/assets/D37/340/sprockets%2F9b14483f8eabb0bb815c1275b05f67a5 +0 -0
- data/test/dummy/tmp/cache/assets/D37/3D0/sprockets%2F8f6dcfb531329d1ea60dc0983f41d033 +0 -0
- data/test/dummy/tmp/cache/assets/D37/780/sprockets%2Fec34f1a3407b6838dd62343a4cf3e1c7 +0 -0
- data/test/dummy/tmp/cache/assets/D37/900/sprockets%2Febe3008d566af1190d271b270e74c9bf +0 -0
- data/test/dummy/tmp/cache/assets/D37/990/sprockets%2F08438adf3e196cbe41a39a50a34d6f43 +0 -0
- data/test/dummy/tmp/cache/assets/D37/B20/sprockets%2F3ce30ec934ca2db7968dc170e2206a66 +0 -0
- data/test/dummy/tmp/cache/assets/D37/DD0/sprockets%2F5596e2d48f78dc5962ee112fe8d9399f +0 -0
- data/test/dummy/tmp/cache/assets/D37/DE0/sprockets%2F92e9570516bd069ed02b6b54be113eea +0 -0
- data/test/dummy/tmp/cache/assets/D37/F00/sprockets%2F18060fd4371473efaa135cea6076ced7 +0 -0
- data/test/dummy/tmp/cache/assets/D37/F00/sprockets%2F390cea618b99119ed0464d6a81b4bb2a +0 -0
- data/test/dummy/tmp/cache/assets/D37/F20/sprockets%2F16df6ed68997bc0c45996cff6797760b +0 -0
- data/test/dummy/tmp/cache/assets/D37/FB0/sprockets%2Fa91fcd2fc7631616b25bb8522a7d45a6 +0 -0
- data/test/dummy/tmp/cache/assets/D38/140/sprockets%2F4079eb6113850c5bb0bf8d1bd29e941d +0 -0
- data/test/dummy/tmp/cache/assets/D38/200/sprockets%2Fbc07f823d9abf9115b066cf67b26c051 +0 -0
- data/test/dummy/tmp/cache/assets/D38/250/sprockets%2F7701084fe6eb8e57c306d1ceeb0015e5 +0 -0
- data/test/dummy/tmp/cache/assets/D38/3A0/sprockets%2F17e2b185c523471dbc3fce74385d34bb +0 -0
- data/test/dummy/tmp/cache/assets/D38/570/sprockets%2F61b134e50dc0762f5fa4b92e68a802fd +0 -0
- data/test/dummy/tmp/cache/assets/D38/5A0/sprockets%2F05c60f19fe5c929377109d0acb6bc1d2 +0 -0
- data/test/dummy/tmp/cache/assets/D38/A90/sprockets%2Fe5d173da497d0b0ec3e1e93f5d472213 +0 -0
- data/test/dummy/tmp/cache/assets/D38/C20/sprockets%2F3d9fb25a1f0def521f89bc71092a4901 +0 -0
- data/test/dummy/tmp/cache/assets/D38/C60/sprockets%2F35b3e86d753c2ace3d20b3fa5459e091 +0 -0
- data/test/dummy/tmp/cache/assets/D38/C80/sprockets%2F0c40fce56bb9b9d01f5112c7974a22f7 +0 -0
- data/test/dummy/tmp/cache/assets/D39/050/sprockets%2F3406276fc15fbf075d244d2b7d5d9ac1 +0 -0
- data/test/dummy/tmp/cache/assets/D39/090/sprockets%2F391807084d2d05fb51a6f857cb3cfb3a +0 -0
- data/test/dummy/tmp/cache/assets/D39/180/sprockets%2F81a53f304a41a21977cecb8ab3568f4e +0 -0
- data/test/dummy/tmp/cache/assets/D39/180/sprockets%2F893de2bf113e285c30b3d74e146fa7a4 +0 -0
- data/test/dummy/tmp/cache/assets/D39/2E0/sprockets%2F9eb5ff48d2360d72d896595f71ef77f9 +0 -0
- data/test/dummy/tmp/cache/assets/D39/440/sprockets%2Fc0b90a4d3bc660db1e865f329364d9b3 +0 -0
- data/test/dummy/tmp/cache/assets/D39/570/sprockets%2F00640f4a599ee9f23b4f2377d1ba0c7b +0 -0
- data/test/dummy/tmp/cache/assets/D39/670/sprockets%2F3ceb02555854acc1e9b950f80d1a6f80 +0 -0
- data/test/dummy/tmp/cache/assets/D39/970/sprockets%2F74cbac51616a63a922f1ea7716e169cd +0 -0
- data/test/dummy/tmp/cache/assets/D39/E60/sprockets%2Fb2b694b416276b2ced81c926c65bcb60 +0 -0
- data/test/dummy/tmp/cache/assets/D39/F30/sprockets%2F1f5d352f97c8a3828dda9014611caed0 +0 -0
- data/test/dummy/tmp/cache/assets/D3A/050/sprockets%2F2da25665d8a0f229b1509e86afec2b80 +0 -0
- data/test/dummy/tmp/cache/assets/D3A/140/sprockets%2F01ee9c5ce6ab0fd011b0584955fe7337 +0 -0
- data/test/dummy/tmp/cache/assets/D3A/340/sprockets%2Ffa4cc89d1060a2e28c618df61b12875c +0 -0
- data/test/dummy/tmp/cache/assets/D3A/480/sprockets%2F2c623b9833b72f21230c6d7b9ec5fa6c +0 -0
- data/test/dummy/tmp/cache/assets/D3A/720/sprockets%2Fb5b3e2f3157e0c52d380fe3f94b96d01 +0 -0
- data/test/dummy/tmp/cache/assets/D3A/8A0/sprockets%2F91b4d0e462a4a841d5a7df5562de72e2 +0 -0
- data/test/dummy/tmp/cache/assets/D3A/9E0/sprockets%2F62f2cbed105a1411ff3e9f2f7167089a +0 -0
- data/test/dummy/tmp/cache/assets/D3A/F00/sprockets%2Fa682b6bc9df4741b972e1f371d70d0c0 +0 -0
- data/test/dummy/tmp/cache/assets/D3B/080/sprockets%2F007cc1999cf3c568c32d35a48bcb343b +0 -0
- data/test/dummy/tmp/cache/assets/D3B/1B0/sprockets%2F3aa8045c2b099ad8a5f37d9523bb6b55 +0 -0
- data/test/dummy/tmp/cache/assets/D3B/2C0/sprockets%2F5f98712fffc4d6ac560ec126317c3d10 +0 -0
- data/test/dummy/tmp/cache/assets/D3B/760/sprockets%2F22c078eb83157c2b38a1a5d6d6aef925 +0 -0
- data/test/dummy/tmp/cache/assets/D3B/8C0/sprockets%2Fe4622c65b4e60b1c9464a7f08ebeb903 +0 -0
- data/test/dummy/tmp/cache/assets/D3B/950/sprockets%2F5d83f8acdd5d02159e10e0532c682e8b +0 -0
- data/test/dummy/tmp/cache/assets/D3B/F70/sprockets%2F20db54bbc3acc7e74e591466a75522c9 +0 -0
- data/test/dummy/tmp/cache/assets/D3C/0D0/sprockets%2F073ca7ba66cd78eaa19534bc574d5317 +0 -0
- data/test/dummy/tmp/cache/assets/D3C/0E0/sprockets%2F143b7730fcb2613d79af709c3a8fa55c +0 -0
- data/test/dummy/tmp/cache/assets/D3C/870/sprockets%2F51d9cef4de63228a0c0a41ac89b49258 +0 -0
- data/test/dummy/tmp/cache/assets/D3C/980/sprockets%2F003e4c454b7d12de5a863b45e94ec47d +0 -0
- data/test/dummy/tmp/cache/assets/D3C/9B0/sprockets%2Fee4a76b790fba505cf9b577321118cb3 +0 -0
- data/test/dummy/tmp/cache/assets/D3C/A80/sprockets%2Fb1b8fb435100acde83b7794667d0f55b +0 -0
- data/test/dummy/tmp/cache/assets/D3C/C20/sprockets%2F36ebf6fae0ed08d0366818a4e63830d1 +0 -0
- data/test/dummy/tmp/cache/assets/D3C/D60/sprockets%2Fc7ba7158b9c4d176fd4c0230069ea5d6 +0 -0
- data/test/dummy/tmp/cache/assets/D3C/FD0/sprockets%2F4b44f3268c024ed9995b52ad30c3c8bc +0 -0
- data/test/dummy/tmp/cache/assets/D3C/FE0/sprockets%2F24f6d543983043d0d1feefacb090196e +0 -0
- data/test/dummy/tmp/cache/assets/D3D/210/sprockets%2F28a6f4bdaf689094b6a09121dbbe1476 +0 -0
- data/test/dummy/tmp/cache/assets/D3D/970/sprockets%2F8c3fa39c04a27661633af6952dace4e3 +0 -0
- data/test/dummy/tmp/cache/assets/D3D/C10/sprockets%2F48581f8b1580d984413b3fab2dd9bcb0 +0 -0
- data/test/dummy/tmp/cache/assets/D3D/C30/sprockets%2Fc5213c2edff881f6715b82f148cd007b +0 -0
- data/test/dummy/tmp/cache/assets/D3D/D80/sprockets%2F9c0cbc841bf606ddec0963173c2894a4 +0 -0
- data/test/dummy/tmp/cache/assets/D3E/0B0/sprockets%2Fc1186ea6268e63a1f7a660dd1768bd3b +0 -0
- data/test/dummy/tmp/cache/assets/D3E/240/sprockets%2Fd40ed280ab0708b0e619f709eb68c9c4 +0 -0
- data/test/dummy/tmp/cache/assets/D3E/2B0/sprockets%2F4d280812e44d52559f57e2afdd1bca56 +0 -0
- data/test/dummy/tmp/cache/assets/D3E/500/sprockets%2Fe0d19b79ad67649fb3c1cf715a11a393 +0 -0
- data/test/dummy/tmp/cache/assets/D3E/520/sprockets%2F4765d7ea3ba6a5d16231c29de0d958c4 +0 -0
- data/test/dummy/tmp/cache/assets/D3E/880/sprockets%2Fb745e535cb3165fc1882efcd903ed034 +0 -0
- data/test/dummy/tmp/cache/assets/D3E/A00/sprockets%2F5f0492202676cecb4d3ffa49d610d65e +0 -0
- data/test/dummy/tmp/cache/assets/D3E/A50/sprockets%2F1b32762a6614ecff6b77934ff9b0a5a1 +0 -0
- data/test/dummy/tmp/cache/assets/D3E/AD0/sprockets%2F933941a230bea56ca69e1df56d5f07f2 +0 -0
- data/test/dummy/tmp/cache/assets/D3E/ED0/sprockets%2F3d738409aa99ac466e77d0aeb2cd6150 +0 -0
- data/test/dummy/tmp/cache/assets/D3E/F00/sprockets%2F8f159505cdb7a6e1170b91ff5c2c18e3 +0 -0
- data/test/dummy/tmp/cache/assets/D3F/280/sprockets%2F13e050b7a477cc5fd1ee4083bd599e71 +0 -0
- data/test/dummy/tmp/cache/assets/D3F/3E0/sprockets%2Fef152ffc3b86506be616e326f20c27f5 +0 -0
- data/test/dummy/tmp/cache/assets/D3F/570/sprockets%2Fa33a6f2619d9e53bad331f8e04b738a9 +0 -0
- data/test/dummy/tmp/cache/assets/D3F/590/sprockets%2F94fabee73d36410bdd216a2547f99b16 +0 -0
- data/test/dummy/tmp/cache/assets/D3F/5E0/sprockets%2Fcbf1d7fac4114ec9059f87f2a0936342 +0 -0
- data/test/dummy/tmp/cache/assets/D3F/B90/sprockets%2Fb98ad8b0651a07fa27790a1cc977be16 +0 -0
- data/test/dummy/tmp/cache/assets/D40/2A0/sprockets%2F6e3ea5fbeff0a58c3782e181e5430472 +0 -0
- data/test/dummy/tmp/cache/assets/D40/350/sprockets%2Fb8d0e083f40a26ff64f605285045fcef +0 -0
- data/test/dummy/tmp/cache/assets/D40/740/sprockets%2F263bd7c97b6f2a3f3c82c6c1d6a41873 +0 -0
- data/test/dummy/tmp/cache/assets/D40/810/sprockets%2F6003489e39c622ea2527b9ec61e7ecbb +0 -0
- data/test/dummy/tmp/cache/assets/D40/880/sprockets%2F7813c7a2e234b7d2dcca77bff3315587 +0 -0
- data/test/dummy/tmp/cache/assets/D40/9A0/sprockets%2Fb09fd34326b7d7a238e247c9f2aa2b87 +0 -0
- data/test/dummy/tmp/cache/assets/D40/D20/sprockets%2F47e105703f9f1ea7c8da4508b7763cca +0 -0
- data/test/dummy/tmp/cache/assets/D40/F10/sprockets%2F8149df5844bbe3a8205c469a29b3c2eb +0 -0
- data/test/dummy/tmp/cache/assets/D41/410/sprockets%2F22edb903fc08a47f75beb47d5e096361 +0 -0
- data/test/dummy/tmp/cache/assets/D41/540/sprockets%2Ff05b4b5481ce50788dd254f33bd77aa7 +0 -0
- data/test/dummy/tmp/cache/assets/D41/5E0/sprockets%2F79d1b0f2ef48f72114cfc1e7189f41c1 +0 -0
- data/test/dummy/tmp/cache/assets/D41/C00/sprockets%2F08791f8723ba99285dc032a1febcfe05 +0 -0
- data/test/dummy/tmp/cache/assets/D41/E30/sprockets%2F0a50215c4d6fb949f17fa6c69c05e4e5 +0 -0
- data/test/dummy/tmp/cache/assets/D41/F00/sprockets%2Ff9b62079e2c23fb68ec4e34b2f52921b +0 -0
- data/test/dummy/tmp/cache/assets/D42/0C0/sprockets%2Fae17be1f5b63976f45fdb0d45e240287 +0 -0
- data/test/dummy/tmp/cache/assets/D42/180/sprockets%2F9f136ad5150d873084dfc8fc4ef20e52 +0 -0
- data/test/dummy/tmp/cache/assets/D42/6C0/sprockets%2Feefb3bf65b9531ae414d60991a54a568 +0 -0
- data/test/dummy/tmp/cache/assets/D42/740/sprockets%2Fd671638ace8452e53de83b0b8f21dc73 +0 -0
- data/test/dummy/tmp/cache/assets/D42/AC0/sprockets%2Fc5ae257ce91660cf1d694bd7f283180b +0 -0
- data/test/dummy/tmp/cache/assets/D43/010/sprockets%2F99f2034c5afbf60c8d6d7a9b52615b80 +0 -0
- data/test/dummy/tmp/cache/assets/D43/180/sprockets%2F77aa2f22b06e86bde4652662f7f3fb44 +0 -0
- data/test/dummy/tmp/cache/assets/D43/3C0/sprockets%2F0bbea991fc5823892656b5cf52a26bf3 +0 -0
- data/test/dummy/tmp/cache/assets/D43/770/sprockets%2F54f1826aad6b2ffd39e74741a4567a1f +0 -0
- data/test/dummy/tmp/cache/assets/D44/2B0/sprockets%2F3ad39d2fc61e52af9f763e55526ae811 +0 -0
- data/test/dummy/tmp/cache/assets/D44/410/sprockets%2Faff2c973a38dda06b82fe9250757c146 +0 -0
- data/test/dummy/tmp/cache/assets/D44/500/sprockets%2F21a29ea628b20f49e94865c60bcb8dd7 +0 -0
- data/test/dummy/tmp/cache/assets/D44/610/sprockets%2F015d093ebf54e2bd91f81f7c4c85a098 +0 -0
- data/test/dummy/tmp/cache/assets/D44/740/sprockets%2F3ab786df73a67cab584b9e533f634d11 +0 -0
- data/test/dummy/tmp/cache/assets/D44/840/sprockets%2F9fbf3c57246341509cc2b79b1ca4f9c6 +0 -0
- data/test/dummy/tmp/cache/assets/D44/970/sprockets%2F648de6a616d5c62248ffe00859dc0c1e +0 -0
- data/test/dummy/tmp/cache/assets/D44/CF0/sprockets%2F612899c13686e28debad09c5df15c2d1 +0 -0
- data/test/dummy/tmp/cache/assets/D45/0C0/sprockets%2F516fc9d887a1ad9640352f26fcd2a90e +0 -0
- data/test/dummy/tmp/cache/assets/D45/3D0/sprockets%2F55e171c4e73a7d6485c6ba5c1663afe8 +0 -0
- data/test/dummy/tmp/cache/assets/D45/630/sprockets%2F4057a5865c88d6bff9e4ff43f50a1b10 +0 -0
- data/test/dummy/tmp/cache/assets/D45/7F0/sprockets%2F204e7166ba9740fdd44ecf84ff4d4470 +0 -0
- data/test/dummy/tmp/cache/assets/D45/BD0/sprockets%2Fbc5657521c68a4d1a48decf5649365da +0 -0
- data/test/dummy/tmp/cache/assets/D46/0B0/sprockets%2Fe25e1919f53af4fe48caa29a4039719c +0 -0
- data/test/dummy/tmp/cache/assets/D46/2A0/sprockets%2F298292c84f0e15f90bfc6aa75cd039f3 +0 -0
- data/test/dummy/tmp/cache/assets/D46/5B0/sprockets%2F5d006b6678e543be4caf73ac762d755f +0 -0
- data/test/dummy/tmp/cache/assets/D46/610/sprockets%2F0f7fe1a1c4c86f26d477a1a4f4c88906 +0 -0
- data/test/dummy/tmp/cache/assets/D46/6D0/sprockets%2F5c5c2ed4c5b6ef33d157f955d7e41902 +0 -0
- data/test/dummy/tmp/cache/assets/D46/890/sprockets%2F5ca5e9e8272bf7e14e20f4ea81078d91 +0 -0
- data/test/dummy/tmp/cache/assets/D46/910/sprockets%2F8953f1c40aae7d8a9a7196e34b3148de +0 -0
- data/test/dummy/tmp/cache/assets/D46/A00/sprockets%2Fd15c6cb08ebf8797713e952ab6f154d1 +0 -0
- data/test/dummy/tmp/cache/assets/D46/C30/sprockets%2Ff5ac37c7c007684e128ebb4c387f8b09 +0 -0
- data/test/dummy/tmp/cache/assets/D46/D20/sprockets%2Fafcff74e0c596d4014caf09274253e89 +0 -0
- data/test/dummy/tmp/cache/assets/D46/E30/sprockets%2F2743604000c3caab937a02accd3c71bb +0 -0
- data/test/dummy/tmp/cache/assets/D46/E90/sprockets%2F2c2cf7b08d87d19e01573e9c0d972af5 +0 -0
- data/test/dummy/tmp/cache/assets/D47/250/sprockets%2Ff454a48261a92c98e55a9b2e9acff430 +0 -0
- data/test/dummy/tmp/cache/assets/D47/2E0/sprockets%2F704ecaf274e48a7580b3aae979a97c50 +0 -0
- data/test/dummy/tmp/cache/assets/D47/3B0/sprockets%2F7ff55581118e0181ecf59a7a5cb3cf48 +0 -0
- data/test/dummy/tmp/cache/assets/D47/5C0/sprockets%2F68f9e6a027bd2b7aeb7751454d7af247 +0 -0
- data/test/dummy/tmp/cache/assets/D47/A40/sprockets%2F8f06e434276a6eced1522deb9d9d8027 +0 -0
- data/test/dummy/tmp/cache/assets/D47/D90/sprockets%2Fe1c556e7d92e1d2b512e547746d73bef +0 -0
- data/test/dummy/tmp/cache/assets/D47/F30/sprockets%2F95b3748e9aae1797d3cb5cc720c1f266 +0 -0
- data/test/dummy/tmp/cache/assets/D48/0B0/sprockets%2F30a04c89c989d773b306c21bf8d64def +0 -0
- data/test/dummy/tmp/cache/assets/D48/140/sprockets%2Fe57106ab8293a7f3d776e690bbd447dc +0 -0
- data/test/dummy/tmp/cache/assets/D48/180/sprockets%2F760b662df9e52cdf625807f2d5a51a9e +0 -0
- data/test/dummy/tmp/cache/assets/D48/210/sprockets%2F32168c495dbc6784b0f398dc9a8cae12 +0 -0
- data/test/dummy/tmp/cache/assets/D48/2D0/sprockets%2F0be50e01c1aee3d2e4b1167bc704b150 +0 -0
- data/test/dummy/tmp/cache/assets/D48/3B0/sprockets%2Fd8418ab89f1d64859a83ed83bde050a3 +0 -0
- data/test/dummy/tmp/cache/assets/D48/3F0/sprockets%2F95af62f8399e2434dddaa8e622073b3f +0 -0
- data/test/dummy/tmp/cache/assets/D48/610/sprockets%2F04cb90fbd5ec4f92106f6268f2987b2e +0 -0
- data/test/dummy/tmp/cache/assets/D48/F10/sprockets%2Fb3111df9478d4ad38897db3a4fb286c5 +0 -0
- data/test/dummy/tmp/cache/assets/D48/F70/sprockets%2F773649806672f43eb7429cdfac0febb1 +0 -0
- data/test/dummy/tmp/cache/assets/D49/000/sprockets%2Fd94896eee0f35a0a966393090fcc3fc1 +0 -0
- data/test/dummy/tmp/cache/assets/D49/370/sprockets%2F56bf43f01cedd6c95f90f37cd5331757 +0 -0
- data/test/dummy/tmp/cache/assets/D49/D70/sprockets%2Fb9e7a4cd11a1fbd665187834e795b44f +0 -0
- data/test/dummy/tmp/cache/assets/D49/F00/sprockets%2F6a89ca8c96f50072b95d70df61cc7b80 +0 -0
- data/test/dummy/tmp/cache/assets/D4A/0B0/sprockets%2Fa339d447533dfdab55192ed95e5e91c6 +0 -0
- data/test/dummy/tmp/cache/assets/D4A/580/sprockets%2F9ec98f3f247fb14bf451730449d1cb7e +0 -0
- data/test/dummy/tmp/cache/assets/D4A/650/sprockets%2F824d6a94276cdd80a615348f4cb7dfe5 +0 -0
- data/test/dummy/tmp/cache/assets/D4A/9C0/sprockets%2Fb33796ae4af40993b4e8c7ef324f06f3 +0 -0
- data/test/dummy/tmp/cache/assets/D4A/B40/sprockets%2Fbf77934b4ad18295b9eae7a5f32c9316 +0 -0
- data/test/dummy/tmp/cache/assets/D4A/BF0/sprockets%2Fc564d4cc768137c7f5a3ffad2166684c +0 -0
- data/test/dummy/tmp/cache/assets/D4A/CE0/sprockets%2Fc6f977bde89d1a1910507fa495290bcf +0 -0
- data/test/dummy/tmp/cache/assets/D4A/EF0/sprockets%2Fb6b3aa8642c8fa584f0376d4648d7c8b +0 -0
- data/test/dummy/tmp/cache/assets/D4B/3C0/sprockets%2F26891ba685ff4c6f9d4f2f1c6242f03f +0 -0
- data/test/dummy/tmp/cache/assets/D4B/430/sprockets%2F3717d58544de674bf0f87b1fd67a45ac +0 -0
- data/test/dummy/tmp/cache/assets/D4B/440/sprockets%2F0f661ce7dd63adff2444327c83c5f678 +0 -0
- data/test/dummy/tmp/cache/assets/D4B/4F0/sprockets%2Fd57bb48b0c6ea8859a4fda0d88592624 +0 -0
- data/test/dummy/tmp/cache/assets/D4B/920/sprockets%2F3f9aa27e107a5a864ed768825d47bbe7 +0 -0
- data/test/dummy/tmp/cache/assets/D4B/CE0/sprockets%2F2e96cfae6d4a435e37970c055ac589e4 +0 -0
- data/test/dummy/tmp/cache/assets/D4B/D30/sprockets%2Ff7549dc58e2b8520272e8db83ea6ac65 +0 -0
- data/test/dummy/tmp/cache/assets/D4B/EB0/sprockets%2F90e1f184458ccb432d9fddb8994423af +0 -0
- data/test/dummy/tmp/cache/assets/D4B/F30/sprockets%2F87e2067c8a98c80860ca18525aefaff4 +0 -0
- data/test/dummy/tmp/cache/assets/D4C/B10/sprockets%2F8885160be6866e27b6e5fa2c49a4c5da +0 -0
- data/test/dummy/tmp/cache/assets/D4D/6B0/sprockets%2F42f643654eb2b4737e87decb738fc6a5 +0 -0
- data/test/dummy/tmp/cache/assets/D4D/8F0/sprockets%2F81f8c1d4e17c7829dbdef5171e84d561 +0 -0
- data/test/dummy/tmp/cache/assets/D4E/0F0/sprockets%2F1ec59da25b29654f5ce86a66c999ba22 +0 -0
- data/test/dummy/tmp/cache/assets/D4E/110/sprockets%2Fcf0a2ac2c576aa71029323062dfb5a1c +0 -0
- data/test/dummy/tmp/cache/assets/D4E/4C0/sprockets%2Ff1bec818b617e964d6a5f1ef8f339540 +0 -0
- data/test/dummy/tmp/cache/assets/D4E/8E0/sprockets%2F0d70620be0274ccaa6743a0b2092bded +0 -0
- data/test/dummy/tmp/cache/assets/D4E/DD0/sprockets%2F287ba626c4f5b4639b2890e9d8f5eb2c +0 -0
- data/test/dummy/tmp/cache/assets/D4E/DE0/sprockets%2F382aafa1acb033c709e7789d9878bd59 +0 -0
- data/test/dummy/tmp/cache/assets/D4F/360/sprockets%2F91ecbdd16b46d37e46b95d95347b68f1 +0 -0
- data/test/dummy/tmp/cache/assets/D4F/400/sprockets%2Fa39424f3692471f84bf5f4ca5d3f92ff +0 -0
- data/test/dummy/tmp/cache/assets/D4F/470/sprockets%2F3370d5f56c376be2ee02890a6a7f9f9f +0 -0
- data/test/dummy/tmp/cache/assets/D4F/A60/sprockets%2F7e7b2a309fe6c9274de094b52d7399cc +0 -0
- data/test/dummy/tmp/cache/assets/D4F/AD0/sprockets%2F4940ada070aac964e8964c9429c9ff7c +0 -0
- data/test/dummy/tmp/cache/assets/D4F/AF0/sprockets%2F7c58e3c84ea677f3767d4e2b44d02c6f +0 -0
- data/test/dummy/tmp/cache/assets/D4F/D40/sprockets%2Fc00fd09b0c72bd4124b2509ccab6d252 +0 -0
- data/test/dummy/tmp/cache/assets/D50/1C0/sprockets%2Ff3d4c379e548c6a635cf4c71959be1c5 +0 -0
- data/test/dummy/tmp/cache/assets/D50/3F0/sprockets%2F10bbd58b768f6ca68f89872d5ca21c59 +0 -0
- data/test/dummy/tmp/cache/assets/D50/9E0/sprockets%2F8a6f447c87a7b29a5cfe7f6a631563d5 +0 -0
- data/test/dummy/tmp/cache/assets/D50/BB0/sprockets%2F4544b5c9d81fdc942637568eefe0a17f +0 -0
- data/test/dummy/tmp/cache/assets/D50/DE0/sprockets%2F4fb7cab2cc42720412e2831b096bcac0 +0 -0
- data/test/dummy/tmp/cache/assets/D50/EB0/sprockets%2Fb1701915ee2cfa8987fa97f45d757ca3 +0 -0
- data/test/dummy/tmp/cache/assets/D50/F40/sprockets%2F0a264e8ef7b828ffbc499e545d1d3554 +0 -0
- data/test/dummy/tmp/cache/assets/D51/0C0/sprockets%2F4c68994d9a5d43eeaa94f0bf98c35162 +0 -0
- data/test/dummy/tmp/cache/assets/D51/5A0/sprockets%2F5f73f98cef4232f98131ab3c913f7e9c +0 -0
- data/test/dummy/tmp/cache/assets/D51/6A0/sprockets%2F46a61332ec4d9db317f5981f96f5e4ef +0 -0
- data/test/dummy/tmp/cache/assets/D51/860/sprockets%2F0559a601f98ad9e14ad85d9e9866bc3b +0 -0
- data/test/dummy/tmp/cache/assets/D51/A80/sprockets%2F0e4ebc3cb443fe89e96507429a729ed8 +0 -0
- data/test/dummy/tmp/cache/assets/D51/EC0/sprockets%2F741e01ffc618da7e6ee5a5f3945c5499 +0 -0
- data/test/dummy/tmp/cache/assets/D51/FD0/sprockets%2F8f7fe2bcf6a3682bfe40832d8d258098 +0 -0
- data/test/dummy/tmp/cache/assets/D52/210/sprockets%2F0c6c258182a5a7ee4fb499eff8545a68 +0 -0
- data/test/dummy/tmp/cache/assets/D52/3A0/sprockets%2F1f04f799cc97cceef1c984f78120441f +0 -0
- data/test/dummy/tmp/cache/assets/D52/7B0/sprockets%2F7222c931fe78519f9cc9ccf345e6b7e1 +0 -0
- data/test/dummy/tmp/cache/assets/D52/C10/sprockets%2Fdf92f8b92422d0c6196e986b0fa84d8d +0 -0
- data/test/dummy/tmp/cache/assets/D52/D80/sprockets%2F5138aadb7a52a3ad1d4af165703360bd +0 -0
- data/test/dummy/tmp/cache/assets/D53/070/sprockets%2F29887b939a9adbb8873cfb30b56c3e56 +0 -0
- data/test/dummy/tmp/cache/assets/D53/0B0/sprockets%2F3ce0380426fadc73b3e4b21a4b305d6a +0 -0
- data/test/dummy/tmp/cache/assets/D54/580/sprockets%2F69ee693f2337e2f1728399dcafe06b6c +0 -0
- data/test/dummy/tmp/cache/assets/D54/590/sprockets%2F8a3d4f1829a4de0f63886028ef75efe6 +0 -0
- data/test/dummy/tmp/cache/assets/D54/6D0/sprockets%2Fb6963f0e4a080df49a6956dff72591ff +0 -0
- data/test/dummy/tmp/cache/assets/D54/6F0/sprockets%2F1d0a638a1dd4b3b5810da3be81d02e29 +0 -0
- data/test/dummy/tmp/cache/assets/D54/860/sprockets%2F1f59eedd506ee9d285b6c631f87e2348 +0 -0
- data/test/dummy/tmp/cache/assets/D54/D40/sprockets%2F8bf7c2fe4d4a3b4379ce3509ce827598 +0 -0
- data/test/dummy/tmp/cache/assets/D54/E60/sprockets%2Fc730209ccf9b67f94d9da6252738dff6 +0 -0
- data/test/dummy/tmp/cache/assets/D55/050/sprockets%2Ff8a1519f64f695a48b04fc494d7fce19 +0 -0
- data/test/dummy/tmp/cache/assets/D55/3B0/sprockets%2F44413599bec29f9eef497bec466b91a3 +0 -0
- data/test/dummy/tmp/cache/assets/D55/4E0/sprockets%2F5a973d4e0e4688e594eb63cfa5f2649c +0 -0
- data/test/dummy/tmp/cache/assets/D55/880/sprockets%2F34928d8459d36e97d1eded237f5c3bf3 +0 -0
- data/test/dummy/tmp/cache/assets/D55/AB0/sprockets%2F78cc27be14be303abe1e433ff002271b +0 -0
- data/test/dummy/tmp/cache/assets/D55/BD0/sprockets%2Fb0f1d009a6c45a8184050ccaad0f625f +0 -0
- data/test/dummy/tmp/cache/assets/D57/5C0/sprockets%2F2da710dd9256d942b03cfcac3602ca16 +0 -0
- data/test/dummy/tmp/cache/assets/D57/730/sprockets%2F40eb1d78a46bf0f79687cf21d959ee85 +0 -0
- data/test/dummy/tmp/cache/assets/D57/AC0/sprockets%2F33ea84ea0fb3021aa76691135ac4de0f +0 -0
- data/test/dummy/tmp/cache/assets/D57/D80/sprockets%2F5ab6d5ee29c4c9d4e9652b8c50488a99 +0 -0
- data/test/dummy/tmp/cache/assets/D57/D90/sprockets%2F263b732a422b1beaac8e30dbda198076 +0 -0
- data/test/dummy/tmp/cache/assets/D58/8C0/sprockets%2F513d20cb6d72b9f39bbf979ff682d696 +0 -0
- data/test/dummy/tmp/cache/assets/D58/DA0/sprockets%2F21200e25aa4eb27fe8bc2d5a25a874f0 +0 -0
- data/test/dummy/tmp/cache/assets/D59/110/sprockets%2F2ec0c121af2f7eb46d4a164c3fd75032 +0 -0
- data/test/dummy/tmp/cache/assets/D59/930/sprockets%2F220a1dbf7192adca0582f12665ceba47 +0 -0
- data/test/dummy/tmp/cache/assets/D59/A10/sprockets%2Fb5b42410db439e79bbbc0dd4413c181d +0 -0
- data/test/dummy/tmp/cache/assets/D59/C80/sprockets%2Fe8f792ea1f2a5de6742e7df3856494f4 +0 -0
- data/test/dummy/tmp/cache/assets/D59/F50/sprockets%2F9f2c7e737ba13a57c6ff589292d86fa7 +0 -0
- data/test/dummy/tmp/cache/assets/D5A/430/sprockets%2Fac7b33b9eb700ba71fa400a4552cf495 +0 -0
- data/test/dummy/tmp/cache/assets/D5B/130/sprockets%2Fcef83ae8e7e6449d6eca77c857293055 +0 -0
- data/test/dummy/tmp/cache/assets/D5B/260/sprockets%2F6879e30caa1f296ed0c48e8469989fbb +0 -0
- data/test/dummy/tmp/cache/assets/D5B/9C0/sprockets%2Fca567b8e449bf9f055ae5bd9e7593359 +0 -0
- data/test/dummy/tmp/cache/assets/D5B/BF0/sprockets%2F333e7d5ac1b4a512eee0f75f3a253b60 +0 -0
- data/test/dummy/tmp/cache/assets/D5B/CD0/sprockets%2F6d8f1d103ecb952adc2baa442720692b +0 -0
- data/test/dummy/tmp/cache/assets/D5B/E70/sprockets%2F1d7605e68cbf7122108b1dbbe2a24a6e +0 -0
- data/test/dummy/tmp/cache/assets/D5C/060/sprockets%2F37c94f0ca9c109c8e7ec4698883eaf49 +0 -0
- data/test/dummy/tmp/cache/assets/D5C/370/sprockets%2Ff6f72925d6c49e05e66faa4765fe8c57 +0 -0
- data/test/dummy/tmp/cache/assets/D5C/430/sprockets%2F957422a30de2a26d2dae2def5c2b9320 +0 -0
- data/test/dummy/tmp/cache/assets/D5C/7C0/sprockets%2F15ecba65509f6d4dc40d0d30b132bf39 +0 -0
- data/test/dummy/tmp/cache/assets/D5C/AF0/sprockets%2Fd78d099f5f2b643966ae56fb9c94b38a +0 -0
- data/test/dummy/tmp/cache/assets/D5C/F90/sprockets%2Fee2c3661a4544caac83916b15db071ae +0 -0
- data/test/dummy/tmp/cache/assets/D5D/3B0/sprockets%2Fd5471e7133cf16e6a11bbee20f2a0b79 +0 -0
- data/test/dummy/tmp/cache/assets/D5D/6A0/sprockets%2F6f3ce4b9a631e869f04f1f88e4f6783f +0 -0
- data/test/dummy/tmp/cache/assets/D5D/6F0/sprockets%2F4d0b9aae508a3e10ecdd0b2f36283727 +0 -0
- data/test/dummy/tmp/cache/assets/D5D/E70/sprockets%2F14c8120abdb1d9e80d0e71f7553aa84a +0 -0
- data/test/dummy/tmp/cache/assets/D5E/470/sprockets%2Fed21b8ab1bd015d1eb827132abe96765 +0 -0
- data/test/dummy/tmp/cache/assets/D5E/540/sprockets%2F989fc9956e6f8db3448a45ffca0e2834 +0 -0
- data/test/dummy/tmp/cache/assets/D5E/7F0/sprockets%2F1ce2528ff4137bc28b310d70192ccdaf +0 -0
- data/test/dummy/tmp/cache/assets/D5E/F40/sprockets%2F796de867fd6629cdddac27c884f77042 +0 -0
- data/test/dummy/tmp/cache/assets/D5E/FF0/sprockets%2F16a29a82bcd0a5fc4eeba77012b60594 +0 -0
- data/test/dummy/tmp/cache/assets/D5F/860/sprockets%2F2d0c3d64d14c238086a2ea4be4b15fd8 +0 -0
- data/test/dummy/tmp/cache/assets/D5F/A40/sprockets%2F210ff6cd4eb7b47969889b99ed462cf5 +0 -0
- data/test/dummy/tmp/cache/assets/D5F/DE0/sprockets%2Fe3e9357da07a01a5624f34f90b4cac2c +0 -0
- data/test/dummy/tmp/cache/assets/D5F/F10/sprockets%2F1561addd40bda45d5c5c66f106f0157e +0 -0
- data/test/dummy/tmp/cache/assets/D60/150/sprockets%2F43ad144a2b48d3a43acf3c8a26f5d393 +0 -0
- data/test/dummy/tmp/cache/assets/D60/550/sprockets%2F7f69dde6b042535a50e04be0ef504db0 +0 -0
- data/test/dummy/tmp/cache/assets/D60/760/sprockets%2Ff2488acab1571bcae10c7c23d5f64606 +0 -0
- data/test/dummy/tmp/cache/assets/D60/7F0/sprockets%2F1b74fae303ee4342b07f231ccb853b9e +0 -0
- data/test/dummy/tmp/cache/assets/D61/0A0/sprockets%2F379b37d8874599b67afd82ecfd3c892a +0 -0
- data/test/dummy/tmp/cache/assets/D61/1E0/sprockets%2F2525c7f31cf412e0259a1feb68dc2c2c +0 -0
- data/test/dummy/tmp/cache/assets/D61/290/sprockets%2Fc9f8e96feacec3e16f533698428348e7 +0 -0
- data/test/dummy/tmp/cache/assets/D61/500/sprockets%2F2d4aaa4e27206670c2f90c48bfc33c6d +0 -0
- data/test/dummy/tmp/cache/assets/D61/550/sprockets%2Fad72362d0158ce06f1d5b3bb95a3c18e +0 -0
- data/test/dummy/tmp/cache/assets/D61/590/sprockets%2F10b1195e9b551779d1a1f41ac5dde5ab +0 -0
- data/test/dummy/tmp/cache/assets/D61/A70/sprockets%2F80d5badad75248c606accd813d27235a +0 -0
- data/test/dummy/tmp/cache/assets/D62/AC0/sprockets%2Fe923a17641d1cdb9a430439e4dabd2f4 +0 -0
- data/test/dummy/tmp/cache/assets/D62/D00/sprockets%2Fbb112cb101c984bf728881d13ddc7d3d +0 -0
- data/test/dummy/tmp/cache/assets/D62/D60/sprockets%2F445fcd788beb7311a3e01c084554cacb +0 -0
- data/test/dummy/tmp/cache/assets/D62/E40/sprockets%2F20ec5093a0bdf38b6a0dc4136729f5dd +0 -0
- data/test/dummy/tmp/cache/assets/D62/E70/sprockets%2F0777c54fb10d608e142dbdc660fae80a +0 -0
- data/test/dummy/tmp/cache/assets/D63/190/sprockets%2Fbd70e9419cd66b14aa1bb3b0d616e783 +0 -0
- data/test/dummy/tmp/cache/assets/D63/2C0/sprockets%2Fb29b4f22c11cdf82445a279ce2b3e08b +0 -0
- data/test/dummy/tmp/cache/assets/D63/580/sprockets%2F03cf42442c9a0f798d2e3bb265b6dca1 +0 -0
- data/test/dummy/tmp/cache/assets/D63/5B0/sprockets%2Fde6d630c9345ce06a5bf31c3f2d2a482 +0 -0
- data/test/dummy/tmp/cache/assets/D63/C60/sprockets%2F232faf0ad8939d4700feb135e3b22bf6 +0 -0
- data/test/dummy/tmp/cache/assets/D63/CF0/sprockets%2Fc2365f12ddb086ab82c1855e8a11e5ea +0 -0
- data/test/dummy/tmp/cache/assets/D63/E80/sprockets%2F73ef5a22222bb8eb6077a1fa57da08d5 +0 -0
- data/test/dummy/tmp/cache/assets/D64/0E0/sprockets%2Fa2d2eccd78b41ae522541165640efed7 +0 -0
- data/test/dummy/tmp/cache/assets/D64/0F0/sprockets%2F4dab4a89380cac7b55ffc425c247103d +0 -0
- data/test/dummy/tmp/cache/assets/D64/200/sprockets%2F76e44dde04df41070e90db2d4f3de232 +0 -0
- data/test/dummy/tmp/cache/assets/D64/2C0/sprockets%2Fbe3e2f353562d4e253db14b4942cc9ba +0 -0
- data/test/dummy/tmp/cache/assets/D64/3E0/sprockets%2F0a6e1743aaa90ed05f89e69db02fd042 +0 -0
- data/test/dummy/tmp/cache/assets/D64/470/sprockets%2F64fc35191d5a0ea77ee0a5b16b1c9f51 +0 -0
- data/test/dummy/tmp/cache/assets/D64/EC0/sprockets%2Febd1142b05d915ae2188315d4e6bee9a +0 -0
- data/test/dummy/tmp/cache/assets/D64/FB0/sprockets%2F0a322e44c856469dc2aac61b4e8ac0f8 +0 -0
- data/test/dummy/tmp/cache/assets/D65/0D0/sprockets%2F67a08a07bbdfa66813323ebdf632f4d2 +0 -0
- data/test/dummy/tmp/cache/assets/D65/390/sprockets%2F5a8932bfeba07d1607613f62bf1b9e1b +0 -0
- data/test/dummy/tmp/cache/assets/D65/760/sprockets%2F2a2bda980cf5457127a83de17ea4c3c4 +0 -0
- data/test/dummy/tmp/cache/assets/D65/790/sprockets%2F2af45a2e4693e5d26d2aab1606f3a4f8 +0 -0
- data/test/dummy/tmp/cache/assets/D65/7A0/sprockets%2F4e227e9ffe7b3dab051940801cd2fb42 +0 -0
- data/test/dummy/tmp/cache/assets/D65/AB0/sprockets%2F6e53b6197c5eb11f5bc0ca1bf430b589 +0 -0
- data/test/dummy/tmp/cache/assets/D65/F00/sprockets%2F3e71c0da28fc232d8817c52481ddc4cb +0 -0
- data/test/dummy/tmp/cache/assets/D66/150/sprockets%2Fe66cc7f2bdbbc467b20a58f00812a936 +0 -0
- data/test/dummy/tmp/cache/assets/D66/580/sprockets%2F6a12a93be78ba78bc1b4d8a532392da5 +0 -0
- data/test/dummy/tmp/cache/assets/D66/610/sprockets%2Fcb8fee59849ef8f859aa853d091e2938 +0 -0
- data/test/dummy/tmp/cache/assets/D66/680/sprockets%2Feac220c53d6b904767a143f4fd1f66cb +0 -0
- data/test/dummy/tmp/cache/assets/D66/AA0/sprockets%2Fec6cda6a541188dc413a263fd6424c7c +0 -0
- data/test/dummy/tmp/cache/assets/D66/B30/sprockets%2F6992569d033bfa4f4beb0af2132ce4b5 +0 -0
- data/test/dummy/tmp/cache/assets/D66/BD0/sprockets%2F6a4c066ff4c7ce5e545a7c3133a31de3 +0 -0
- data/test/dummy/tmp/cache/assets/D66/D60/sprockets%2Fd116910cf8d03281dfa078d9c81af3ca +0 -0
- data/test/dummy/tmp/cache/assets/D66/F50/sprockets%2F3f8db65ac02247d21db75d02af68e9b1 +0 -0
- data/test/dummy/tmp/cache/assets/D66/FF0/sprockets%2Fa7b86be98c5a2d12a8c24023e8ae26a5 +0 -0
- data/test/dummy/tmp/cache/assets/D67/370/sprockets%2Facdaf6f0e62abf292b09712d9045e517 +0 -0
- data/test/dummy/tmp/cache/assets/D67/4D0/sprockets%2F3e38546657770aba0636bc5bdfee1da0 +0 -0
- data/test/dummy/tmp/cache/assets/D67/540/sprockets%2F2451fa1457a12b81ae27acc885d1cf9f +0 -0
- data/test/dummy/tmp/cache/assets/D67/B20/sprockets%2F21d840a6b2f0d40810f667fd47affaf4 +0 -0
- data/test/dummy/tmp/cache/assets/D67/F30/sprockets%2Fa1c2a19503d7136786bf4c98fdb0cda3 +0 -0
- data/test/dummy/tmp/cache/assets/D68/4E0/sprockets%2F013c5d547bd5e3350f8f5fe1f4eb03e3 +0 -0
- data/test/dummy/tmp/cache/assets/D68/7B0/sprockets%2F01f91bbce586ad5a7181d176fa5bc454 +0 -0
- data/test/dummy/tmp/cache/assets/D68/A40/sprockets%2Fbcbde6fb3133581e518637e4fab224d5 +0 -0
- data/test/dummy/tmp/cache/assets/D68/AC0/sprockets%2Fbe5cf99c151ee682d96f9588d57866cc +0 -0
- data/test/dummy/tmp/cache/assets/D68/BA0/sprockets%2F5f1ba7106c2c359ba063f98f1dba38a9 +0 -0
- data/test/dummy/tmp/cache/assets/D68/BB0/sprockets%2F5ee24cf41716a40da7a8c8dd1cc21488 +0 -0
- data/test/dummy/tmp/cache/assets/D69/720/sprockets%2Fcfca87f8a37e2336a3b36d231326f7bb +0 -0
- data/test/dummy/tmp/cache/assets/D69/E80/sprockets%2F1223e38f9d64debba29b6de61af70441 +0 -0
- data/test/dummy/tmp/cache/assets/D6A/3D0/sprockets%2Fcf97f9bd0e343d50ae3b006654b65bd5 +0 -0
- data/test/dummy/tmp/cache/assets/D6A/410/sprockets%2F8003e6c1bfdd8215d846b4a9b2d8d15d +0 -0
- data/test/dummy/tmp/cache/assets/D6A/4F0/sprockets%2Fe4fa6346422a8dce6bad5025dd95a059 +0 -0
- data/test/dummy/tmp/cache/assets/D6A/DF0/sprockets%2F44fc4a3f2b6657a6d1369aab8a3356cd +0 -0
- data/test/dummy/tmp/cache/assets/D6B/110/sprockets%2Fdd0933d445b1d5fcb5c3718b956bb46a +0 -0
- data/test/dummy/tmp/cache/assets/D6B/550/sprockets%2F11c395f147e050afeefb528d228ec4e4 +0 -0
- data/test/dummy/tmp/cache/assets/D6B/950/sprockets%2F088ce0fca047df84da4162b4a57197ae +0 -0
- data/test/dummy/tmp/cache/assets/D6B/960/sprockets%2Fa94ad11312cbf8b365c85da4c79f6a80 +0 -0
- data/test/dummy/tmp/cache/assets/D6B/970/sprockets%2F1d2049a78db9cb5f916bc1123a785edb +0 -0
- data/test/dummy/tmp/cache/assets/D6B/990/sprockets%2F24de0146ba11805f7ed595d1e19dfdf2 +0 -0
- data/test/dummy/tmp/cache/assets/D6B/AD0/sprockets%2F6f2bc7cfcfc77277a912a6216db416d0 +0 -0
- data/test/dummy/tmp/cache/assets/D6B/CB0/sprockets%2F17feb2110d6ccedb3694d955515b6a8b +0 -0
- data/test/dummy/tmp/cache/assets/D6B/ED0/sprockets%2F0d47f0db16fd911acd461da4f6690d67 +0 -0
- data/test/dummy/tmp/cache/assets/D6B/FF0/sprockets%2Ff807f9367e272ada8d2e137e31bbb5a2 +0 -0
- data/test/dummy/tmp/cache/assets/D6C/4D0/sprockets%2F56c8e1e02c020eb9e6a54e4827dbe74c +0 -0
- data/test/dummy/tmp/cache/assets/D6D/000/sprockets%2Fbf8570a4b7a458df4b0d8a190c9b38b3 +0 -0
- data/test/dummy/tmp/cache/assets/D6D/5A0/sprockets%2F93cdc99cc7adf79210460311d71cfae4 +0 -0
- data/test/dummy/tmp/cache/assets/D6D/5B0/sprockets%2F99c1095648b73ceac5e30e9b40fdb20d +0 -0
- data/test/dummy/tmp/cache/assets/D6D/AB0/sprockets%2F3c94b5eff3b7d0b9750583b08240cfcc +0 -0
- data/test/dummy/tmp/cache/assets/D6D/DF0/sprockets%2F839c9b7b20c2a49bd9516a84bec6a61a +0 -0
- data/test/dummy/tmp/cache/assets/D6E/260/sprockets%2F9e08f2ce1f70279b622b9e1dfda1642c +0 -0
- data/test/dummy/tmp/cache/assets/D6E/300/sprockets%2F3ad5a388b388247dd303bdbbf73b3f57 +0 -0
- data/test/dummy/tmp/cache/assets/D6E/3D0/sprockets%2F2de147b15cce533a83e64b8ea6492ff1 +0 -0
- data/test/dummy/tmp/cache/assets/D6E/470/sprockets%2F71df3138a1fe8b97f7fadb7dc1203714 +0 -0
- data/test/dummy/tmp/cache/assets/D6E/6D0/sprockets%2Ffc7d3ba0ef7c52a8455bf1268a29623e +0 -0
- data/test/dummy/tmp/cache/assets/D6F/0C0/sprockets%2F877dcbc20a7c9c5290c2430dc8cf2d95 +0 -0
- data/test/dummy/tmp/cache/assets/D6F/590/sprockets%2F8944d5a80e04dc5ffc31a0e96f8c1f21 +0 -0
- data/test/dummy/tmp/cache/assets/D6F/840/sprockets%2F6ab574d92e8d730d1b2c4afc5c6635b8 +0 -0
- data/test/dummy/tmp/cache/assets/D6F/9D0/sprockets%2F175ffadaff090cf9a26072c1191ef476 +0 -0
- data/test/dummy/tmp/cache/assets/D6F/B30/sprockets%2F891af7ae615030666e4a3d6d3beb9f2d +0 -0
- data/test/dummy/tmp/cache/assets/D6F/FF0/sprockets%2Fc74fa24a4bb8a8c9e77cfd024536324e +0 -0
- data/test/dummy/tmp/cache/assets/D70/1F0/sprockets%2F33fed3bb84d5fc46d5768330d03e5ef0 +0 -0
- data/test/dummy/tmp/cache/assets/D70/710/sprockets%2F4ffb8a8a4d611869018aae84f17a2d4d +0 -0
- data/test/dummy/tmp/cache/assets/D71/180/sprockets%2F2574c07ca5ce6516e7813cfc4327ffae +0 -0
- data/test/dummy/tmp/cache/assets/D71/1B0/sprockets%2F6292986fc0a384bdb1bed92a6c6a294c +0 -0
- data/test/dummy/tmp/cache/assets/D71/B60/sprockets%2F32bc9f57ad1fe2d506fd74cc913b8633 +0 -0
- data/test/dummy/tmp/cache/assets/D72/210/sprockets%2F601cebd8e41a363fe7522e78a814bfd9 +0 -0
- data/test/dummy/tmp/cache/assets/D72/260/sprockets%2F805c75a5e038c51b5bab63f7af785ef3 +0 -0
- data/test/dummy/tmp/cache/assets/D72/530/sprockets%2F7aa68b6e5a14184724c816b06f8fdebd +0 -0
- data/test/dummy/tmp/cache/assets/D72/550/sprockets%2Fdc8a1e3cc36d42587cd9c5750e703e4d +0 -0
- data/test/dummy/tmp/cache/assets/D72/A70/sprockets%2F36ee7d5d6c2a8f6e74cfa1cd25259105 +0 -0
- data/test/dummy/tmp/cache/assets/D72/AD0/sprockets%2F73ce023923f93c1f4dd858d329d4adda +0 -0
- data/test/dummy/tmp/cache/assets/D72/B60/sprockets%2Ff4caba13e07f3458c6c603ca9de96098 +0 -0
- data/test/dummy/tmp/cache/assets/D72/BE0/sprockets%2F88fc2b40cd6bb985b28a0c16808ade85 +0 -0
- data/test/dummy/tmp/cache/assets/D72/CE0/sprockets%2Fbcea4cc992dbbf24281d0e85292667b6 +0 -0
- data/test/dummy/tmp/cache/assets/D72/DF0/sprockets%2Ff47176999aaa4b50b1e4b3ffa58c255d +0 -0
- data/test/dummy/tmp/cache/assets/D73/1B0/sprockets%2F75c7059fe58fbcc1cb01309e6aed7923 +0 -0
- data/test/dummy/tmp/cache/assets/D73/1E0/sprockets%2F2028a62d96b8b021e87ea2c9dded688a +0 -0
- data/test/dummy/tmp/cache/assets/D73/400/sprockets%2F0dc6b3f8a8f917a2d8f3923cd952ba43 +0 -0
- data/test/dummy/tmp/cache/assets/D73/600/sprockets%2F7e3978b4100bece3fc9d5c61c31fc729 +0 -0
- data/test/dummy/tmp/cache/assets/D73/830/sprockets%2F14dea579703e5a5dcc0f680a9b9c763c +0 -0
- data/test/dummy/tmp/cache/assets/D73/920/sprockets%2F77a5d5acdcd4b3629277aa338f8d7e12 +0 -0
- data/test/dummy/tmp/cache/assets/D73/B20/sprockets%2Fce034e90f2e3d630d09ac39e8782f6db +0 -0
- data/test/dummy/tmp/cache/assets/D73/C10/sprockets%2Fe4408813823d9a881c9b12eaefdb5ef2 +0 -0
- data/test/dummy/tmp/cache/assets/D74/730/sprockets%2F4ff3e7892bfe3b71c2813a34ffe2a654 +0 -0
- data/test/dummy/tmp/cache/assets/D74/A30/sprockets%2Fb9a16284ea2f906ecfe15f36a88fb612 +0 -0
- data/test/dummy/tmp/cache/assets/D74/AF0/sprockets%2Fac41667bf3be098b78246d4a741faf9a +0 -0
- data/test/dummy/tmp/cache/assets/D74/BD0/sprockets%2F8cc50b95ff7a60e1b5628a2c883db54f +0 -0
- data/test/dummy/tmp/cache/assets/D74/F00/sprockets%2F35bfb58f60c6bdd9076b5319d09d4b3f +0 -0
- data/test/dummy/tmp/cache/assets/D74/FD0/sprockets%2F64dbb94566f1a107a8a455fa7cb76ff4 +0 -0
- data/test/dummy/tmp/cache/assets/D75/2B0/sprockets%2F960435d4e7acc5e18decf3134e5df258 +0 -0
- data/test/dummy/tmp/cache/assets/D75/2C0/sprockets%2F5580e9bd1b1d8e6bf3ea14e7b3568d73 +0 -0
- data/test/dummy/tmp/cache/assets/D75/2D0/sprockets%2Fe39e053e9582b104e24e9b7d2edcb7a9 +0 -0
- data/test/dummy/tmp/cache/assets/D75/420/sprockets%2F8fd813d3c06bf1cb2727c578384cfba9 +0 -0
- data/test/dummy/tmp/cache/assets/D75/7B0/sprockets%2F2537b4b5fdfadf6053ce17e04f4f8890 +0 -0
- data/test/dummy/tmp/cache/assets/D75/BB0/sprockets%2Feb3518880cfef75fa6a3873b0c3f307f +0 -0
- data/test/dummy/tmp/cache/assets/D76/0E0/sprockets%2F33f18c25f3ed89ad276e43c3dae675d2 +0 -0
- data/test/dummy/tmp/cache/assets/D76/670/sprockets%2F63bc78b4f8df84d0e1bc584fc636802a +0 -0
- data/test/dummy/tmp/cache/assets/D76/6C0/sprockets%2F619dedc58b2e260e9b216ae485e34fd6 +0 -0
- data/test/dummy/tmp/cache/assets/D76/740/sprockets%2F4b1a5581b16ee55d84da6f0d929ede65 +0 -0
- data/test/dummy/tmp/cache/assets/D76/7B0/sprockets%2F58ef2a5a5d3c11dbd386ff366768be24 +0 -0
- data/test/dummy/tmp/cache/assets/D76/7E0/sprockets%2F650e53bd32a8419c790dc9ef01ef7e9a +0 -0
- data/test/dummy/tmp/cache/assets/D76/920/sprockets%2Ff7e0984c14c72fe461748e6bcc82c0bd +0 -0
- data/test/dummy/tmp/cache/assets/D76/AF0/sprockets%2F2ce576e1efea17e381f625a88df04e16 +0 -0
- data/test/dummy/tmp/cache/assets/D76/C20/sprockets%2Fc67cdf7b14fc589f68b2cb349b124c43 +0 -0
- data/test/dummy/tmp/cache/assets/D77/010/sprockets%2F5beb73eeeb35746142ffc7497d4d2a54 +0 -0
- data/test/dummy/tmp/cache/assets/D77/090/sprockets%2F73f172c5a4c42c57d53ed87cded7d427 +0 -0
- data/test/dummy/tmp/cache/assets/D77/190/sprockets%2Fbbe597fc66514ba44231e1a83fd8ce98 +0 -0
- data/test/dummy/tmp/cache/assets/D77/430/sprockets%2Fed6b89a0c3f2b7153d1937a99ffd360d +0 -0
- data/test/dummy/tmp/cache/assets/D77/450/sprockets%2F5e321bdeefaf01a41af98f3e58824859 +0 -0
- data/test/dummy/tmp/cache/assets/D77/5B0/sprockets%2F4f5ccf72b681c291f2f3c7d929a35bb7 +0 -0
- data/test/dummy/tmp/cache/assets/D77/9B0/sprockets%2F9c114f8c77c699c1c75155d15ab6dfbb +0 -0
- data/test/dummy/tmp/cache/assets/D77/AE0/sprockets%2F5668bbe7bf9792cfd8da59d01b7a1061 +0 -0
- data/test/dummy/tmp/cache/assets/D77/C20/sprockets%2Fa02eda53d75b86e6c7429f8ea538e04e +0 -0
- data/test/dummy/tmp/cache/assets/D78/1A0/sprockets%2F48db88a2a7fbc0c663be27cc938552c9 +0 -0
- data/test/dummy/tmp/cache/assets/D78/780/sprockets%2Fdeeca354e12c8ebcd89967558b2b4505 +0 -0
- data/test/dummy/tmp/cache/assets/D78/7B0/sprockets%2F26b674a8dec384b76fc39ee7241ddc06 +0 -0
- data/test/dummy/tmp/cache/assets/D78/AF0/sprockets%2F99e5bb91d87451ad1e01fe3fe9ef4017 +0 -0
- data/test/dummy/tmp/cache/assets/D79/4F0/sprockets%2Ff0b9f7193991dc74a2a2dec06eaf7990 +0 -0
- data/test/dummy/tmp/cache/assets/D79/550/sprockets%2Ff3f804b18df8bd2952d33b5ff26c7d28 +0 -0
- data/test/dummy/tmp/cache/assets/D79/740/sprockets%2F9026180d0eee8e48c1cf6c4be16d59f7 +0 -0
- data/test/dummy/tmp/cache/assets/D7A/3F0/sprockets%2Fbf3d583f5ba468586a1db5f56e52ef61 +0 -0
- data/test/dummy/tmp/cache/assets/D7B/0E0/sprockets%2F76df5edda070b0c17b5caa61132a303a +0 -0
- data/test/dummy/tmp/cache/assets/D7B/230/sprockets%2F4e473cebde712a45d9879939c2e2bec1 +0 -0
- data/test/dummy/tmp/cache/assets/D7B/260/sprockets%2F0d277dabe82a3ad3ec30ce2a14a52303 +0 -0
- data/test/dummy/tmp/cache/assets/D7B/8B0/sprockets%2F17fce732f3ce6957611ea1f69cedd571 +0 -0
- data/test/dummy/tmp/cache/assets/D7B/9C0/sprockets%2Ff3ce94c1f45e20a6f74da8fb849e5353 +0 -0
- data/test/dummy/tmp/cache/assets/D7B/F40/sprockets%2Fb0ea1b768efb8e8e732928bcf530379c +0 -0
- data/test/dummy/tmp/cache/assets/D7C/510/sprockets%2F51792eee7e8f3e3c4b3983fc4e0b96a0 +0 -0
- data/test/dummy/tmp/cache/assets/D7C/530/sprockets%2F185e7a53a16cf20abab0b1013da4a9c7 +0 -0
- data/test/dummy/tmp/cache/assets/D7C/C40/sprockets%2Fbc948d13a994b95d1f250eb7cdea1799 +0 -0
- data/test/dummy/tmp/cache/assets/D7C/FB0/sprockets%2Fe8f0b9a5d83e431c3d687b93bd59e34c +0 -0
- data/test/dummy/tmp/cache/assets/D7C/FD0/sprockets%2Fcd25fd762489e5a66a627b705a7fae8c +0 -0
- data/test/dummy/tmp/cache/assets/D7D/680/sprockets%2F70e6dd79d693fca593c6e42a42534fde +0 -0
- data/test/dummy/tmp/cache/assets/D7D/6B0/sprockets%2Fffb153cefdcc93107bb26ee973299377 +0 -0
- data/test/dummy/tmp/cache/assets/D7D/920/sprockets%2F0300aeaf0de1fa392f1025d1f258bb3c +0 -0
- data/test/dummy/tmp/cache/assets/D7D/B10/sprockets%2Fd9a65b96e6fabd9d045d957eb910c165 +0 -0
- data/test/dummy/tmp/cache/assets/D7D/B10/sprockets%2Fe2e97e13d5d14ac9f868a362ef7d50c7 +0 -0
- data/test/dummy/tmp/cache/assets/D7D/EA0/sprockets%2F538fa5b5f9fd9825a1c8f0ec03915ee6 +0 -0
- data/test/dummy/tmp/cache/assets/D7D/EB0/sprockets%2F14fa9ab07afd1b4052fd1aa23b143f61 +0 -0
- data/test/dummy/tmp/cache/assets/D7E/0B0/sprockets%2F643779cbba8d11c9e2eb528ffd5a4588 +0 -0
- data/test/dummy/tmp/cache/assets/D7E/0D0/sprockets%2Fab73d771fed0a1998e9fe9514ce645b2 +0 -0
- data/test/dummy/tmp/cache/assets/D7E/1A0/sprockets%2Fdf486db981c919371a42cc58caffd717 +0 -0
- data/test/dummy/tmp/cache/assets/D7E/2E0/sprockets%2Fc7778ea99de21bd0506ad2d88b7772ed +0 -0
- data/test/dummy/tmp/cache/assets/D7E/560/sprockets%2Fe54ec5189221ce385cdcd73eb9c3889a +0 -0
- data/test/dummy/tmp/cache/assets/D7E/850/sprockets%2Fdb6ad325585d3ff7b7d446575e17dd9a +0 -0
- data/test/dummy/tmp/cache/assets/D7E/D70/sprockets%2F91e9640cd916be3c33ecd97cf4376fe2 +0 -0
- data/test/dummy/tmp/cache/assets/D7E/E60/sprockets%2Fe9c9bfeabf98e3403ff02021c677a898 +0 -0
- data/test/dummy/tmp/cache/assets/D7F/080/sprockets%2F7511d57cb850c808dcda48e7bfb6e968 +0 -0
- data/test/dummy/tmp/cache/assets/D7F/5C0/sprockets%2Fdf992dbdcd26ad9963f461f9b570270e +0 -0
- data/test/dummy/tmp/cache/assets/D7F/A00/sprockets%2Fa938e14849c6af6006d4fd18e9f63deb +0 -0
- data/test/dummy/tmp/cache/assets/D7F/AB0/sprockets%2F3af0782e9feb5df9e522505fd783f54b +0 -0
- data/test/dummy/tmp/cache/assets/D7F/AC0/sprockets%2F29f29d0d2da6f272ca5dbf8826ed5787 +0 -0
- data/test/dummy/tmp/cache/assets/D7F/B50/sprockets%2F68870658f9d7af2ea3cd8ead3a4346f3 +0 -0
- data/test/dummy/tmp/cache/assets/D80/000/sprockets%2F77deac6031fb485e38f2ecf0f84677c7 +0 -0
- data/test/dummy/tmp/cache/assets/D80/100/sprockets%2F7659e9f48a711ecf468fc5c2e3d3a42f +0 -0
- data/test/dummy/tmp/cache/assets/D80/4A0/sprockets%2Fc0322f552fc7ddecd97889feaf544660 +0 -0
- data/test/dummy/tmp/cache/assets/D80/720/sprockets%2Fedc921d9f96f2b7d68b2312f0347d9ff +0 -0
- data/test/dummy/tmp/cache/assets/D80/730/sprockets%2F3f9f174f1045e0bddcf4ce3887596f7a +0 -0
- data/test/dummy/tmp/cache/assets/D80/A00/sprockets%2Fdcdd788a82dd3d594a7a95089372fec0 +0 -0
- data/test/dummy/tmp/cache/assets/D80/F00/sprockets%2F99f3e81bfe55e0a17f38598c4a4e7c0d +0 -0
- data/test/dummy/tmp/cache/assets/D80/FA0/sprockets%2F3ef6904ed431cff977ca415fd457ec75 +0 -0
- data/test/dummy/tmp/cache/assets/D81/200/sprockets%2Fcde5804f6925f2aa9d8f82bdb9e80960 +0 -0
- data/test/dummy/tmp/cache/assets/D81/3B0/sprockets%2Fe2694a510e4ee49c9c3682bd4c8e76ef +0 -0
- data/test/dummy/tmp/cache/assets/D81/A80/sprockets%2Fbeed9454c399e752c2bd365e58f8a4e1 +0 -0
- data/test/dummy/tmp/cache/assets/D82/510/sprockets%2Ffc2d84d9484e82de8bd3204edc4558d9 +0 -0
- data/test/dummy/tmp/cache/assets/D82/9C0/sprockets%2Fc5ffb04889e82819aeb546956da7ca5b +0 -0
- data/test/dummy/tmp/cache/assets/D82/B60/sprockets%2Feda7e9086b9d09ed40ccb598e8a20994 +0 -0
- data/test/dummy/tmp/cache/assets/D83/B30/sprockets%2F99bf9d4676359727ea4c7c91c71bbadc +0 -0
- data/test/dummy/tmp/cache/assets/D83/FD0/sprockets%2F0f6d83f8774197ccf51bcfa3b73887cd +0 -0
- data/test/dummy/tmp/cache/assets/D84/2E0/sprockets%2F65d3cce2c12c7ff8864738c338acff88 +0 -0
- data/test/dummy/tmp/cache/assets/D85/050/sprockets%2Fd5cf44ed1bc6b22a2da566f014181b0d +0 -0
- data/test/dummy/tmp/cache/assets/D85/3C0/sprockets%2F505849fee2f95e1c009dc56b859cff7b +0 -0
- data/test/dummy/tmp/cache/assets/D85/460/sprockets%2F9692ef5b8c5e2f3352659f6a64baff7b +0 -0
- data/test/dummy/tmp/cache/assets/D85/4F0/sprockets%2F0c5495b8ef9e647ac6b68efc85155f0e +0 -0
- data/test/dummy/tmp/cache/assets/D85/9A0/sprockets%2F8c7269a7c4a7f26474a48fafdaf7f943 +0 -0
- data/test/dummy/tmp/cache/assets/D86/6D0/sprockets%2Fdfcd0a634b6506b2339e7a13c160acdb +0 -0
- data/test/dummy/tmp/cache/assets/D86/8B0/sprockets%2Ff347b2ca9e265abe21b3eedda2325004 +0 -0
- data/test/dummy/tmp/cache/assets/D86/8D0/sprockets%2F01297d1e51cdfbcce40ca119a6af0291 +0 -0
- data/test/dummy/tmp/cache/assets/D86/A60/sprockets%2F8332efdcd639e759be83060dd8b8d59d +0 -0
- data/test/dummy/tmp/cache/assets/D87/470/sprockets%2F87dbc8969c4a3129ab6bc6d1599e7d7e +0 -0
- data/test/dummy/tmp/cache/assets/D87/6A0/sprockets%2F3024cda74ce7bdc0ba63109371bca58c +0 -0
- data/test/dummy/tmp/cache/assets/D87/CA0/sprockets%2F7acb8148c7874a46f4ae6f5f75c939ea +0 -0
- data/test/dummy/tmp/cache/assets/D87/DE0/sprockets%2F7bc000a5f5d8b65381a03a0c0eafc9a8 +0 -0
- data/test/dummy/tmp/cache/assets/D87/DE0/sprockets%2Fc5f4e0bb142bc8012baa649fe1b7804a +0 -0
- data/test/dummy/tmp/cache/assets/D88/6E0/sprockets%2F2d8c8f5d9e37f75a0a9b68b5cb9485e4 +0 -0
- data/test/dummy/tmp/cache/assets/D88/FF0/sprockets%2F3eef071767aaed7df6558367a9a94c8f +0 -0
- data/test/dummy/tmp/cache/assets/D89/800/sprockets%2Fdb9ee8f27df0f998275d5683d5fb07a2 +0 -0
- data/test/dummy/tmp/cache/assets/D89/A50/sprockets%2F41cb1394fafc7abb3bc2b4c2824647a1 +0 -0
- data/test/dummy/tmp/cache/assets/D89/DF0/sprockets%2Fb8ca8ddcdf983496f377059c08f04e6f +0 -0
- data/test/dummy/tmp/cache/assets/D8A/310/sprockets%2Fd0e01c2266c1b24db1bc158e2ad689ec +0 -0
- data/test/dummy/tmp/cache/assets/D8B/150/sprockets%2F4fd00aad1dc612897da021f51761cdde +0 -0
- data/test/dummy/tmp/cache/assets/D8B/600/sprockets%2F9eca92c03896a5795e29dae9549b4def +0 -0
- data/test/dummy/tmp/cache/assets/D8B/830/sprockets%2F8ac41fd80222d4c3fcea24c74e01c24f +0 -0
- data/test/dummy/tmp/cache/assets/D8B/F60/sprockets%2Fa9def494f7c9af6b76470759db7d75c0 +0 -0
- data/test/dummy/tmp/cache/assets/D8C/040/sprockets%2Faf41f9126938112fcfbb0aa0e1d4f35c +0 -0
- data/test/dummy/tmp/cache/assets/D8C/4A0/sprockets%2F6690479190c88cefdafc6fa781f93fe4 +0 -0
- data/test/dummy/tmp/cache/assets/D8C/730/sprockets%2Fee55e710a1ca60d3e1b16ce45fd72a80 +0 -0
- data/test/dummy/tmp/cache/assets/D8C/8D0/sprockets%2F86b26909aa44e265f9e7f7ddc89f3d7b +0 -0
- data/test/dummy/tmp/cache/assets/D8C/DF0/sprockets%2F9913ce78d96ec81886b1dc37dee17af8 +0 -0
- data/test/dummy/tmp/cache/assets/D8D/190/sprockets%2F81a3e60dea0c6e6a27930ba0d4d557bc +0 -0
- data/test/dummy/tmp/cache/assets/D8D/1D0/sprockets%2F0106dd9cc3e02cfb7b7ea5a95a4a2561 +0 -0
- data/test/dummy/tmp/cache/assets/D8D/1D0/sprockets%2F4a0deb3ad4d6092ff232e0b2d0787cb5 +0 -0
- data/test/dummy/tmp/cache/assets/D8D/3D0/sprockets%2Fa8544ad386345d5602b5ecaebbea0f21 +0 -0
- data/test/dummy/tmp/cache/assets/D8D/520/sprockets%2Fa63eeeb1e03332dbc79b344dc8ba2650 +0 -0
- data/test/dummy/tmp/cache/assets/D8D/690/sprockets%2Ff1c775ec217ba4a2a4826cd7a5c3a4b2 +0 -0
- data/test/dummy/tmp/cache/assets/D8E/050/sprockets%2Fa10db95bdc04a123f348f9c5b4b66fa1 +0 -0
- data/test/dummy/tmp/cache/assets/D8E/490/sprockets%2Fb3bbafaeec7ec0d139168652b6a30660 +0 -0
- data/test/dummy/tmp/cache/assets/D8E/5F0/sprockets%2F123b3f0aaa8ab1864ed5d6e29d2167ca +0 -0
- data/test/dummy/tmp/cache/assets/D8E/7D0/sprockets%2F3b423339b9a58aa6dc2d31c6a65ba7ca +0 -0
- data/test/dummy/tmp/cache/assets/D8E/8E0/sprockets%2Fb0085b1cac2fa3c4dd069337f6f3cb08 +0 -0
- data/test/dummy/tmp/cache/assets/D8F/880/sprockets%2F1aea781830ad62c59bfdb0105c2d7cb9 +0 -0
- data/test/dummy/tmp/cache/assets/D8F/880/sprockets%2F6142d4acf06317a0e6bd7eaedc630d74 +0 -0
- data/test/dummy/tmp/cache/assets/D8F/910/sprockets%2F7d5608304cdbab9a0268c0aeff125aa9 +0 -0
- data/test/dummy/tmp/cache/assets/D8F/950/sprockets%2F7e9bec4920660226bb1fbcca051ad4d8 +0 -0
- data/test/dummy/tmp/cache/assets/D90/240/sprockets%2Fcf46450118b8f3035dbdfe16d0eea3b3 +0 -0
- data/test/dummy/tmp/cache/assets/D90/980/sprockets%2F2f09c8074c7a0ae04c15ea39cb660fea +0 -0
- data/test/dummy/tmp/cache/assets/D90/9F0/sprockets%2Fde504d63ac1099d80ce9ce127cb21b2c +0 -0
- data/test/dummy/tmp/cache/assets/D90/C00/sprockets%2Fab691533f1127900c07c2debabd7ff5c +0 -0
- data/test/dummy/tmp/cache/assets/D90/D90/sprockets%2F04de7f181beb223838a0749abccc1d6a +0 -0
- data/test/dummy/tmp/cache/assets/D90/D90/sprockets%2Fd83620dddcc6284fa7a3cf29e1c0a232 +0 -0
- data/test/dummy/tmp/cache/assets/D91/8C0/sprockets%2F69a1d40bebf6a37342dd10ff2140ee9d +0 -0
- data/test/dummy/tmp/cache/assets/D91/B00/sprockets%2F0ef14a0b942c845028bae00ff7dcfb83 +0 -0
- data/test/dummy/tmp/cache/assets/D92/040/sprockets%2F0552b8b24c29c61b4d7c4ab1f348edea +0 -0
- data/test/dummy/tmp/cache/assets/D92/350/sprockets%2Fe4d921372a1656b3c0cbca2ff9a60ee5 +0 -0
- data/test/dummy/tmp/cache/assets/D92/6A0/sprockets%2F3f4a4fe919134a90fa8ebb33a58b40aa +0 -0
- data/test/dummy/tmp/cache/assets/D92/720/sprockets%2F5b4face0a381590dcceb7193e3343d2d +0 -0
- data/test/dummy/tmp/cache/assets/D92/890/sprockets%2F62fb2a4be25fd586be41b0dba2c49922 +0 -0
- data/test/dummy/tmp/cache/assets/D92/A70/sprockets%2F2bcbeb2844be03b4b7e8360c15f98b2a +0 -0
- data/test/dummy/tmp/cache/assets/D92/F40/sprockets%2Fed082888eb327fe45fef49d795af1f87 +0 -0
- data/test/dummy/tmp/cache/assets/D93/090/sprockets%2F156a2a85d3d5e762c16aefdd6fa2b313 +0 -0
- data/test/dummy/tmp/cache/assets/D93/5E0/sprockets%2Fbbf15a3789bac5f814c71ba5ca20e465 +0 -0
- data/test/dummy/tmp/cache/assets/D93/F00/sprockets%2F2ba869ab341ca37f23fad244dde2a279 +0 -0
- data/test/dummy/tmp/cache/assets/D94/2F0/sprockets%2Fa2c5fc3aeb5c324d627c470d5ec1646e +0 -0
- data/test/dummy/tmp/cache/assets/D94/890/sprockets%2F2b94cea2022c41c5dede8ae3e3b97281 +0 -0
- data/test/dummy/tmp/cache/assets/D94/CA0/sprockets%2F75e7eecfe153f1887f36dff6784fd159 +0 -0
- data/test/dummy/tmp/cache/assets/D94/DD0/sprockets%2F5daec387012d6ac7fa18308f72de0b6a +0 -0
- data/test/dummy/tmp/cache/assets/D95/520/sprockets%2F33bd6dfe5c00aa43d1ea876bb44a6578 +0 -0
- data/test/dummy/tmp/cache/assets/D95/740/sprockets%2Fcd50ae7710f3d5fe0a830bc9eec26039 +0 -0
- data/test/dummy/tmp/cache/assets/D95/C60/sprockets%2F29af5d21e0bd908bd45226fa3de9ec11 +0 -0
- data/test/dummy/tmp/cache/assets/D96/240/sprockets%2F86a05986a3bad6ea7fd18ce16c2b0b42 +0 -0
- data/test/dummy/tmp/cache/assets/D96/240/sprockets%2Fff9b4efbe49d65b80d2d121640aa840a +0 -0
- data/test/dummy/tmp/cache/assets/D96/580/sprockets%2F6fcae2137e71a0b9ad0c6ce48740be29 +0 -0
- data/test/dummy/tmp/cache/assets/D96/5B0/sprockets%2Fbce441e010b4da916725de2ede99e1a6 +0 -0
- data/test/dummy/tmp/cache/assets/D96/780/sprockets%2F3bcb836f508c1b30f559ab5bdc3f344e +0 -0
- data/test/dummy/tmp/cache/assets/D96/9A0/sprockets%2Fec9907bade1891db6bc20180a843cec3 +0 -0
- data/test/dummy/tmp/cache/assets/D96/B40/sprockets%2F90a85be6000c45257cc63dec8c1bcf8b +0 -0
- data/test/dummy/tmp/cache/assets/D96/BD0/sprockets%2Febabcba3d82ef0278f9402ba24f29950 +0 -0
- data/test/dummy/tmp/cache/assets/D96/E80/sprockets%2Fbd9f655dd12709f8b5aadfa16b0f0720 +0 -0
- data/test/dummy/tmp/cache/assets/D96/EE0/sprockets%2Fdaf746b24a37f32faf161e018f93ca4c +0 -0
- data/test/dummy/tmp/cache/assets/D97/150/sprockets%2F50048750bbbe1bb32fe83a8a6f9cd52f +0 -0
- data/test/dummy/tmp/cache/assets/D97/3D0/sprockets%2F44b63b15cae4c6f7d5b04ed3754f41be +0 -0
- data/test/dummy/tmp/cache/assets/D97/420/sprockets%2F8e834e0e5c0fd8de55d5a45200ad91ac +0 -0
- data/test/dummy/tmp/cache/assets/D97/520/sprockets%2Fbfb270b07453b284dca3ecdb95ca7179 +0 -0
- data/test/dummy/tmp/cache/assets/D97/680/sprockets%2F45bdc5ddcb2f81c449e13a775b2bc651 +0 -0
- data/test/dummy/tmp/cache/assets/D97/8E0/sprockets%2F00fa20f763bafd6ae82c8f3d1c70d774 +0 -0
- data/test/dummy/tmp/cache/assets/D97/A10/sprockets%2Ff1fe3b6160ec3da42f287aed3d3235c9 +0 -0
- data/test/dummy/tmp/cache/assets/D97/C80/sprockets%2F5e0eb6a40b9b9d214d8cb3935c8dad41 +0 -0
- data/test/dummy/tmp/cache/assets/D97/F90/sprockets%2F4ed9ede531aa0b2b7ae19ec6a6783530 +0 -0
- data/test/dummy/tmp/cache/assets/D98/0E0/sprockets%2Fde97f1af4c83632e5a03dc3043c8b5af +0 -0
- data/test/dummy/tmp/cache/assets/D98/620/sprockets%2F4739cf0d47eb5ca845b2e43bfc7d0c21 +0 -0
- data/test/dummy/tmp/cache/assets/D98/6E0/sprockets%2F05b7f7fbcaf3804c457ae14c0bb285c9 +0 -0
- data/test/dummy/tmp/cache/assets/D98/A50/sprockets%2F0523ed18a9ed1f98e35ba5f38c1fab20 +0 -0
- data/test/dummy/tmp/cache/assets/D98/E50/sprockets%2Faef92317051bbb1338e0ffd234d99daf +0 -0
- data/test/dummy/tmp/cache/assets/D99/270/sprockets%2Fb6e2851b3cb1de64b763a733fb2d73df +0 -0
- data/test/dummy/tmp/cache/assets/D99/3B0/sprockets%2Ff16c9f0ce8f0ad8036433b8ddc30fe41 +0 -0
- data/test/dummy/tmp/cache/assets/D99/540/sprockets%2F54daaf4bbbfb679b5175a258f0580c5a +0 -0
- data/test/dummy/tmp/cache/assets/D99/550/sprockets%2F4f1ced696bba05434d705a9e16bbf34e +0 -0
- data/test/dummy/tmp/cache/assets/D99/9F0/sprockets%2Fa0d4d37b20b6df5f06092917eb7febe3 +0 -0
- data/test/dummy/tmp/cache/assets/D99/B80/sprockets%2F51f06ed4d0554dd5b308a8a70fc7dad8 +0 -0
- data/test/dummy/tmp/cache/assets/D9A/CD0/sprockets%2F8de942d2fae072b4bda81e0f0570d95d +0 -0
- data/test/dummy/tmp/cache/assets/D9B/500/sprockets%2F19629c0bef01845ebb045a81d7cfe6dc +0 -0
- data/test/dummy/tmp/cache/assets/D9B/830/sprockets%2Fb6c854eff56bcf61aa456259233c2aea +0 -0
- data/test/dummy/tmp/cache/assets/D9B/890/sprockets%2F5fbe783dc1df2d081a95b1fea3700a89 +0 -0
- data/test/dummy/tmp/cache/assets/D9B/C30/sprockets%2F16ae5460a9ba6ac7d19afd0c50f953d9 +0 -0
- data/test/dummy/tmp/cache/assets/D9B/D60/sprockets%2Fcfedc7bc416b3291dcb16761509eb8d3 +0 -0
- data/test/dummy/tmp/cache/assets/D9B/D80/sprockets%2Faba1c493f2a8d60f352727aedf4b557e +0 -0
- data/test/dummy/tmp/cache/assets/D9B/EB0/sprockets%2Fbccb6fe3223846961bdabb25a4095fe8 +0 -0
- data/test/dummy/tmp/cache/assets/D9C/230/sprockets%2F5126f140ae32b9557afd23d7f8cbdbc9 +0 -0
- data/test/dummy/tmp/cache/assets/D9C/3B0/sprockets%2F753bd274643e017fee5cbe0ec9ee04d2 +0 -0
- data/test/dummy/tmp/cache/assets/D9C/830/sprockets%2F262d680e9978a830c4b9db0ccac64cba +0 -0
- data/test/dummy/tmp/cache/assets/D9C/920/sprockets%2F8fdd5d884c80b3ff0b5e63ccc0453e11 +0 -0
- data/test/dummy/tmp/cache/assets/D9C/A00/sprockets%2F693526f5730d6efccbae008e0c348fca +0 -0
- data/test/dummy/tmp/cache/assets/D9C/CA0/sprockets%2F38552a482bd034bdebb8dafe16b8e448 +0 -0
- data/test/dummy/tmp/cache/assets/D9C/CA0/sprockets%2F81e4c6aa40ffcb2dd9a756391fac5660 +0 -0
- data/test/dummy/tmp/cache/assets/D9C/E60/sprockets%2Fec59dcd3aa8d87bf031a0cf41a084995 +0 -0
- data/test/dummy/tmp/cache/assets/D9C/F80/sprockets%2F92177152ae69fdafa3d0446ebb7ac71f +0 -0
- data/test/dummy/tmp/cache/assets/D9D/240/sprockets%2Fabd46ee901845237db0ead67fce673d0 +0 -0
- data/test/dummy/tmp/cache/assets/D9D/450/sprockets%2Fcc373a7814f46e9e68d3cb8ab0ec6a20 +0 -0
- data/test/dummy/tmp/cache/assets/D9D/660/sprockets%2F72b3ef3c70cb276766e5fb2d2bff2e14 +0 -0
- data/test/dummy/tmp/cache/assets/D9D/700/sprockets%2F7843bf281aaa9b81391767dbb3fabca8 +0 -0
- data/test/dummy/tmp/cache/assets/D9D/940/sprockets%2Fafb8efc8d08a26c3335ff3640db8b074 +0 -0
- data/test/dummy/tmp/cache/assets/D9D/D20/sprockets%2F8905ebdedf20eb708ab7c2445b3833df +0 -0
- data/test/dummy/tmp/cache/assets/D9D/DF0/sprockets%2F14d420aaa32413baa042bddcad2811ee +0 -0
- data/test/dummy/tmp/cache/assets/D9D/E00/sprockets%2F62f7d32b35fb23cc6360fbedd75c6e17 +0 -0
- data/test/dummy/tmp/cache/assets/D9D/E10/sprockets%2F75f56ca3a7a4b2b2e57ea289ec91a62c +0 -0
- data/test/dummy/tmp/cache/assets/D9D/ED0/sprockets%2F823cdb7734aa042f363e8befdbc8367a +0 -0
- data/test/dummy/tmp/cache/assets/D9D/ED0/sprockets%2Ff6d62e6a1bf51a917bed5a28184e53fa +0 -0
- data/test/dummy/tmp/cache/assets/D9E/190/sprockets%2F2ee4d943af5dd25b6a9cf42a4f4d6306 +0 -0
- data/test/dummy/tmp/cache/assets/D9E/5E0/sprockets%2F468b16b0cb34e9d09ac36ff74180bcff +0 -0
- data/test/dummy/tmp/cache/assets/D9E/690/sprockets%2F68ab8c1d75a9b4a2ae4b123e77be99c1 +0 -0
- data/test/dummy/tmp/cache/assets/D9E/750/sprockets%2F3ab32a9aab15487d6b9be355c37dfe92 +0 -0
- data/test/dummy/tmp/cache/assets/D9E/7A0/sprockets%2Fb11b94cd6be9b556afbc550e1438e9b5 +0 -0
- data/test/dummy/tmp/cache/assets/D9F/280/sprockets%2F35ad5fcec037a9fcdf43a55c925a9730 +0 -0
- data/test/dummy/tmp/cache/assets/D9F/680/sprockets%2Fedd2d4c5656b3b159d6eb04bef0289a7 +0 -0
- data/test/dummy/tmp/cache/assets/D9F/6B0/sprockets%2Fc8fc14cce588a0bb6514e68c43d15b6f +0 -0
- data/test/dummy/tmp/cache/assets/D9F/6E0/sprockets%2Fbb0a236a70758a95bbcb8e66e588c2cd +0 -0
- data/test/dummy/tmp/cache/assets/D9F/700/sprockets%2F2588f3481ab1859aff3cbc0e9dd0c2d5 +0 -0
- data/test/dummy/tmp/cache/assets/D9F/790/sprockets%2F4d9649c0c0fdecf285b30fa1474b59db +0 -0
- data/test/dummy/tmp/cache/assets/D9F/9C0/sprockets%2Fffc7d816802d6a5085e5b3e3f93bb4aa +0 -0
- data/test/dummy/tmp/cache/assets/D9F/A40/sprockets%2Fda603c8efc43cd83b238627eebf591c1 +0 -0
- data/test/dummy/tmp/cache/assets/DA0/120/sprockets%2F1dae5fb238ce54be6de6f83f3c302628 +0 -0
- data/test/dummy/tmp/cache/assets/DA0/2C0/sprockets%2Fc509492337bcf5c07fd36f1d55ccc4fb +0 -0
- data/test/dummy/tmp/cache/assets/DA0/6A0/sprockets%2F64ef7b9a2cab3451d2256c5be08fb7f8 +0 -0
- data/test/dummy/tmp/cache/assets/DA0/730/sprockets%2F06dc5952fd6bd4577e9ea2b800cc3b5e +0 -0
- data/test/dummy/tmp/cache/assets/DA0/AF0/sprockets%2Ffd5bb98b534294f62b14ee8cd1b0e29b +0 -0
- data/test/dummy/tmp/cache/assets/DA1/330/sprockets%2Fc31e85029f1c94c22757fffa32e7abfc +0 -0
- data/test/dummy/tmp/cache/assets/DA1/480/sprockets%2Fe751abde7804d66263e93ee7e1bbf03d +0 -0
- data/test/dummy/tmp/cache/assets/DA1/4C0/sprockets%2Fe2f4888fb4302a6bfe7f729ccb074aa3 +0 -0
- data/test/dummy/tmp/cache/assets/DA1/4E0/sprockets%2F25ee9aeeca7f9706b117dae5f79152a0 +0 -0
- data/test/dummy/tmp/cache/assets/DA1/620/sprockets%2Ff46117893705b0f59fae35babd8cc1ee +0 -0
- data/test/dummy/tmp/cache/assets/DA1/AC0/sprockets%2Fd0938e403e53c41dd397bebfc38c3ae8 +0 -0
- data/test/dummy/tmp/cache/assets/DA1/BE0/sprockets%2F4571a9660eeadd8a7dbc0977b0ddb564 +0 -0
- data/test/dummy/tmp/cache/assets/DA2/210/sprockets%2Fcf1005ebeb968dc1a3ecd75b93391c79 +0 -0
- data/test/dummy/tmp/cache/assets/DA2/250/sprockets%2Fd07b798cc1eda20971c7f55c843eeea1 +0 -0
- data/test/dummy/tmp/cache/assets/DA2/4A0/sprockets%2F670f4ee452da78be3f04a9a2b13f76ff +0 -0
- data/test/dummy/tmp/cache/assets/DA2/720/sprockets%2F5839bafde83c10bce89de12e12f884c0 +0 -0
- data/test/dummy/tmp/cache/assets/DA2/900/sprockets%2F1cbafbc425d5ab9ea9052687c35a98f6 +0 -0
- data/test/dummy/tmp/cache/assets/DA2/990/sprockets%2F41dbab3891e458ea9da2ee49acd08295 +0 -0
- data/test/dummy/tmp/cache/assets/DA2/A00/sprockets%2Fbba663f59b4fb86f900bd856bfcb5125 +0 -0
- data/test/dummy/tmp/cache/assets/DA2/C20/sprockets%2Fd1af091c8ebf55de949cfb5b431167e2 +0 -0
- data/test/dummy/tmp/cache/assets/DA3/310/sprockets%2F81215b7f845fbe20efd6db7f15c1dc77 +0 -0
- data/test/dummy/tmp/cache/assets/DA3/7B0/sprockets%2Fb20f9d42c879feea70b12b6fe9a7443c +0 -0
- data/test/dummy/tmp/cache/assets/DA3/BE0/sprockets%2F77794cc60c4f48ea4b38e1f3cfbee230 +0 -0
- data/test/dummy/tmp/cache/assets/DA4/160/sprockets%2Fa219e9635b17ec93e0bc88fe03aae4f8 +0 -0
- data/test/dummy/tmp/cache/assets/DA4/210/sprockets%2Fe226ea6c238496afd62bb59d6b93af2d +0 -0
- data/test/dummy/tmp/cache/assets/DA4/440/sprockets%2Ff72d59f3ce546ce02fedb09f6423cc71 +0 -0
- data/test/dummy/tmp/cache/assets/DA4/570/sprockets%2F9cb40f555575a9ebc3df1fc70ff350a9 +0 -0
- data/test/dummy/tmp/cache/assets/DA4/7D0/sprockets%2Ff785329b1ea2cd8b6aecafb93316892c +0 -0
- data/test/dummy/tmp/cache/assets/DA4/E60/sprockets%2F9cc625acbeceed27b29b6240774f564e +0 -0
- data/test/dummy/tmp/cache/assets/DA5/4E0/sprockets%2F7ee781cfeeb8b125b6449b27ace16a84 +0 -0
- data/test/dummy/tmp/cache/assets/DA5/670/sprockets%2Faf276cef126bb7e149702ae3e4d9ed49 +0 -0
- data/test/dummy/tmp/cache/assets/DA5/7D0/sprockets%2F9e21aaec784efd03d75b6260c838f9ca +0 -0
- data/test/dummy/tmp/cache/assets/DA5/850/sprockets%2Fd349efeb6bc4a914c6c961bea4f56408 +0 -0
- data/test/dummy/tmp/cache/assets/DA5/B00/sprockets%2F9a65bfffad606825b2df851d823b77ba +0 -0
- data/test/dummy/tmp/cache/assets/DA5/D50/sprockets%2F506747a2fdb15aacde9e38e4398f3a5d +0 -0
- data/test/dummy/tmp/cache/assets/DA6/AF0/sprockets%2F6e8c46cad9893b1bd8af6e35130dee26 +0 -0
- data/test/dummy/tmp/cache/assets/DA6/B40/sprockets%2Fb8d0ca6785a2c51f875de5ebf5e760b4 +0 -0
- data/test/dummy/tmp/cache/assets/DA6/E70/sprockets%2F9b696267509c0edcbd4d5fe5b39da42b +0 -0
- data/test/dummy/tmp/cache/assets/DA6/FC0/sprockets%2Fa9a778bdcdfa61b7a896175bece25271 +0 -0
- data/test/dummy/tmp/cache/assets/DA7/180/sprockets%2Fd73e504186ef5af78cdf7c24cfc3f620 +0 -0
- data/test/dummy/tmp/cache/assets/DA7/2E0/sprockets%2F4ad87d35f9e6da4d35a39e9d503cc1a9 +0 -0
- data/test/dummy/tmp/cache/assets/DA7/670/sprockets%2F7b1860c85ed37bbedb85689652dae2bb +0 -0
- data/test/dummy/tmp/cache/assets/DA7/690/sprockets%2Fc49a7fa0c7dc57f03aa9f4fdb3994291 +0 -0
- data/test/dummy/tmp/cache/assets/DA7/E80/sprockets%2Fa0227f61714ce886a5ee8c2dafed6e75 +0 -0
- data/test/dummy/tmp/cache/assets/DA7/EC0/sprockets%2Fb6fb402b414a93e9155ff708edbf99ea +0 -0
- data/test/dummy/tmp/cache/assets/DA8/670/sprockets%2F7fa8cffb6c3f4080dc45367eb638b80e +0 -0
- data/test/dummy/tmp/cache/assets/DA8/7A0/sprockets%2Febee8835fef38639b31ed381026aeb4f +0 -0
- data/test/dummy/tmp/cache/assets/DA8/9D0/sprockets%2Fcae25fa34b675c9c4c476bcc58e73c57 +0 -0
- data/test/dummy/tmp/cache/assets/DA8/B70/sprockets%2F3ddd853d4c7253dc5ab53748cc7e4f5f +0 -0
- data/test/dummy/tmp/cache/assets/DA9/0F0/sprockets%2Fc5ee1745b2af4a8400b8ffd943e89cf5 +0 -0
- data/test/dummy/tmp/cache/assets/DA9/520/sprockets%2Feb3fb449864678a9bf1b81fd651aa4fc +0 -0
- data/test/dummy/tmp/cache/assets/DA9/6C0/sprockets%2Fcab86eb3c55f4cec292978700c79bfb4 +0 -0
- data/test/dummy/tmp/cache/assets/DA9/6C0/sprockets%2Fff22f389eaabe920d9917593f53d0add +0 -0
- data/test/dummy/tmp/cache/assets/DA9/B10/sprockets%2Feee74b1f0ee7c04ce8a936a84634f9b4 +0 -0
- data/test/dummy/tmp/cache/assets/DA9/B50/sprockets%2F33bf06585f1ea78e692c673fbd5fddc0 +0 -0
- data/test/dummy/tmp/cache/assets/DAA/3C0/sprockets%2Fd98d9a4aacaf34f7c2c80215ee96a588 +0 -0
- data/test/dummy/tmp/cache/assets/DAA/A70/sprockets%2Ff91185ef25f2a8cc36a7ec6f9f6114fa +0 -0
- data/test/dummy/tmp/cache/assets/DAA/AC0/sprockets%2F3c3b0b95fdbaa97909ef9294cb5465dc +0 -0
- data/test/dummy/tmp/cache/assets/DAA/D30/sprockets%2Fba92440f66d3ab82ccfcd4f86e899a16 +0 -0
- data/test/dummy/tmp/cache/assets/DAA/FD0/sprockets%2Fed079f328d7bec564dc4ce6c43792dd1 +0 -0
- data/test/dummy/tmp/cache/assets/DAB/300/sprockets%2Fe822e0c7ed2416485de1f78ded67ed0f +0 -0
- data/test/dummy/tmp/cache/assets/DAB/5A0/sprockets%2F567452effadda63e1508f90dbbd749d8 +0 -0
- data/test/dummy/tmp/cache/assets/DAB/6A0/sprockets%2F12f3e9f27333f32b79e8bc767becabe8 +0 -0
- data/test/dummy/tmp/cache/assets/DAB/B40/sprockets%2Fe7a1c88beb7a5f83f45fb0e891d7238a +0 -0
- data/test/dummy/tmp/cache/assets/DAC/C10/sprockets%2Fcaf97fa0f6dc423148fc81fcc9a95745 +0 -0
- data/test/dummy/tmp/cache/assets/DAC/F40/sprockets%2F3fe1cc6f892dead945802da28ef59e05 +0 -0
- data/test/dummy/tmp/cache/assets/DAD/170/sprockets%2F33a1add4ee0283afc041dc1f00089bbc +0 -0
- data/test/dummy/tmp/cache/assets/DAD/970/sprockets%2Ff79fae2ac5d828366ed1bf9c37c90a19 +0 -0
- data/test/dummy/tmp/cache/assets/DAD/C30/sprockets%2Fc367fd7fbb14376f138cb80c5e8dfd84 +0 -0
- data/test/dummy/tmp/cache/assets/DAD/D40/sprockets%2F6d8bbc6aa4f33f5a67f0890b89a8da96 +0 -0
- data/test/dummy/tmp/cache/assets/DAE/8E0/sprockets%2Faee3dc2a887eeee336ef1893818372bd +0 -0
- data/test/dummy/tmp/cache/assets/DAE/EC0/sprockets%2F709cc8de3d84dd37b9f9890b46ba2ec2 +0 -0
- data/test/dummy/tmp/cache/assets/DAE/F00/sprockets%2F872b872dfa0f87e987bff32f5a1a54be +0 -0
- data/test/dummy/tmp/cache/assets/DAF/0B0/sprockets%2F127d0c8a454b2b959c5effcc6ff7d829 +0 -0
- data/test/dummy/tmp/cache/assets/DAF/250/sprockets%2Fbea10954ca85a6d397d894df6c8b8ed2 +0 -0
- data/test/dummy/tmp/cache/assets/DAF/790/sprockets%2F87f6dce871aee8d0ae1345c1dd799b56 +0 -0
- data/test/dummy/tmp/cache/assets/DB0/5E0/sprockets%2F111dcb8dd1015bcb905d15ca50d5ef3b +0 -0
- data/test/dummy/tmp/cache/assets/DB0/960/sprockets%2Fdca36b7d8f8dc27d38094987cf2aae55 +0 -0
- data/test/dummy/tmp/cache/assets/DB0/D90/sprockets%2Fc73eda334eac400b1cc12732b90dde0f +0 -0
- data/test/dummy/tmp/cache/assets/DB1/010/sprockets%2Fe4b277e9d34f824ce15c697ff7d1aca9 +0 -0
- data/test/dummy/tmp/cache/assets/DB2/A30/sprockets%2Fdf6f888ba2c274b3982978dc7b30dbfd +0 -0
- data/test/dummy/tmp/cache/assets/DB2/FF0/sprockets%2F42d355fbbe8da4ff9d9c27695194dc5c +0 -0
- data/test/dummy/tmp/cache/assets/DB3/2B0/sprockets%2F89f4a28a5f96c6c9dd5043abe7c5ed85 +0 -0
- data/test/dummy/tmp/cache/assets/DB3/2E0/sprockets%2F67b0e900efa0080eaa416eb03cd2db8c +0 -0
- data/test/dummy/tmp/cache/assets/DB3/3A0/sprockets%2F0fec5ca6626996faa5b0d6569fc98e5c +0 -0
- data/test/dummy/tmp/cache/assets/DB3/3F0/sprockets%2F8b3975e48c4b9ca4685fbd9d0ca595eb +0 -0
- data/test/dummy/tmp/cache/assets/DB3/400/sprockets%2Fb34576fbf3a08f9e99aed924aa68b79a +0 -0
- data/test/dummy/tmp/cache/assets/DB3/560/sprockets%2F09265ecfe8875619e47c3f4deda73cdc +0 -0
- data/test/dummy/tmp/cache/assets/DB3/9C0/sprockets%2Ff15f826b5db25c2055ce9dff84898eeb +0 -0
- data/test/dummy/tmp/cache/assets/DB3/B20/sprockets%2F2c83285ff94ab2f4a688c71eafffa399 +0 -0
- data/test/dummy/tmp/cache/assets/DB4/4F0/sprockets%2F296e2f64ef5c7fe29d69fbac5cb29714 +0 -0
- data/test/dummy/tmp/cache/assets/DB4/5A0/sprockets%2Ff6c4c504c300bcf2baa95ca8923dcb10 +0 -0
- data/test/dummy/tmp/cache/assets/DB4/670/sprockets%2F2b5f4f8f5ad218e9ec53f9fde943254e +0 -0
- data/test/dummy/tmp/cache/assets/DB4/730/sprockets%2F22a0f9985f2ee491b998e9a3dfbbb7c6 +0 -0
- data/test/dummy/tmp/cache/assets/DB4/A70/sprockets%2F11aaa7b192ebb5a461e5bed0138e4a7b +0 -0
- data/test/dummy/tmp/cache/assets/DB4/F60/sprockets%2F60712b2ed0cb5fc6cb6442fae3cd203b +0 -0
- data/test/dummy/tmp/cache/assets/DB5/460/sprockets%2Fd2eaa3b6abf0aded1e25055b303b9691 +0 -0
- data/test/dummy/tmp/cache/assets/DB5/F30/sprockets%2Fd5925f7c79df0ad0e8d956eed84483ab +0 -0
- data/test/dummy/tmp/cache/assets/DB6/320/sprockets%2Fe559edb9cc5663f6d55937a68eb4d4bc +0 -0
- data/test/dummy/tmp/cache/assets/DB6/860/sprockets%2F1081c1eb464dd58cacda381baed4b314 +0 -0
- data/test/dummy/tmp/cache/assets/DB6/AB0/sprockets%2F3e996efd32efb4a9e4d66b63ee960e90 +0 -0
- data/test/dummy/tmp/cache/assets/DB6/DF0/sprockets%2Ff660ad1581acfc05d77bd33fa14bb1a2 +0 -0
- data/test/dummy/tmp/cache/assets/DB7/BB0/sprockets%2Fde6bb518e6ea4e2e15095c2ba0f01ba3 +0 -0
- data/test/dummy/tmp/cache/assets/DB7/D70/sprockets%2F4f4fff578c1ce749a4765f8a896aa4ca +0 -0
- data/test/dummy/tmp/cache/assets/DB8/2C0/sprockets%2F9e22b0c5e3ecd370519aa5bf003bdaa9 +0 -0
- data/test/dummy/tmp/cache/assets/DB9/3C0/sprockets%2Fdba147ede0e572d80d29cf00bc52c2c1 +0 -0
- data/test/dummy/tmp/cache/assets/DB9/430/sprockets%2F6f49fd89105cc57e75ce798e62a9aaeb +0 -0
- data/test/dummy/tmp/cache/assets/DB9/990/sprockets%2F2b66d14fe1dcac5ca8f422b112af50e7 +0 -0
- data/test/dummy/tmp/cache/assets/DB9/9A0/sprockets%2F24cedfba35e2cda224264eda76d120a8 +0 -0
- data/test/dummy/tmp/cache/assets/DB9/BC0/sprockets%2F48ba40ced57f11b12ceae162c9bef050 +0 -0
- data/test/dummy/tmp/cache/assets/DBA/3B0/sprockets%2Ffd06bc030bc3ae7a13682ad3ce3e37f4 +0 -0
- data/test/dummy/tmp/cache/assets/DBA/E30/sprockets%2F6542cedc93fecba4076b31ea1221aae7 +0 -0
- data/test/dummy/tmp/cache/assets/DBB/3C0/sprockets%2Fa56fb241a0612acb8b6b88ae23c6ce5a +0 -0
- data/test/dummy/tmp/cache/assets/DBB/450/sprockets%2F4d412bacafeebff011918e21e201de68 +0 -0
- data/test/dummy/tmp/cache/assets/DBB/950/sprockets%2Fbb3a309979ecb4dbf669f6fe2778e5c7 +0 -0
- data/test/dummy/tmp/cache/assets/DBB/B70/sprockets%2Fd1997fbb98dd249b8586fe8e127bc4af +0 -0
- data/test/dummy/tmp/cache/assets/DBB/FF0/sprockets%2F071723b7dec01ca21f5d72c4d7b3cfea +0 -0
- data/test/dummy/tmp/cache/assets/DBC/A70/sprockets%2F0f7da71f1d2e23fc55bc2441e0efa41f +0 -0
- data/test/dummy/tmp/cache/assets/DBC/C20/sprockets%2Ffb9d59e753f1e696fc861e74a6cf0d6f +0 -0
- data/test/dummy/tmp/cache/assets/DBC/D60/sprockets%2Fa5d629edbdaa0ee111fe4170093a6de4 +0 -0
- data/test/dummy/tmp/cache/assets/DBC/FD0/sprockets%2Fcb32366dc0b2c1f2a69ebe48dbb139c0 +0 -0
- data/test/dummy/tmp/cache/assets/DBC/FE0/sprockets%2Fe78f2cc2dd0bd01854bf2bb3bd1e0276 +0 -0
- data/test/dummy/tmp/cache/assets/DBD/040/sprockets%2Fbab3c9aeedf12b684be7a100458ad308 +0 -0
- data/test/dummy/tmp/cache/assets/DBD/3E0/sprockets%2Fdee13da1110dd9fafe3495e91da40d03 +0 -0
- data/test/dummy/tmp/cache/assets/DBD/B10/sprockets%2Ff56450f3fc25ab33ef1114be384acafb +0 -0
- data/test/dummy/tmp/cache/assets/DBD/C00/sprockets%2Fc10a55b9aebe3ad6d5730d08c029bb7d +0 -0
- data/test/dummy/tmp/cache/assets/DBD/DF0/sprockets%2F687f97d06e7aab4e768668ffbe5f2f0d +0 -0
- data/test/dummy/tmp/cache/assets/DBE/150/sprockets%2F2b5bf9bf22a03d0919cf1bab468a8a2d +0 -0
- data/test/dummy/tmp/cache/assets/DBE/2C0/sprockets%2F551e2bb3e1bc603f1d8e829b24bf4ada +0 -0
- data/test/dummy/tmp/cache/assets/DBE/3F0/sprockets%2F98ba39074d64ed3c3d0ab1a8adc3f13a +0 -0
- data/test/dummy/tmp/cache/assets/DBE/880/sprockets%2F90cda2c525af06a2df3314ff03fe8e0d +0 -0
- data/test/dummy/tmp/cache/assets/DBE/EB0/sprockets%2F472ff473ee0da1ca1f0ab06578b38bca +0 -0
- data/test/dummy/tmp/cache/assets/DBE/EF0/sprockets%2Fab6106e1a9bb5bcda65cb06d8e9801c3 +0 -0
- data/test/dummy/tmp/cache/assets/DBF/060/sprockets%2Ff0805abfb20e90ee57bc466cab5cb514 +0 -0
- data/test/dummy/tmp/cache/assets/DBF/290/sprockets%2F8acf830eb40f48cfb303c151edb4b25f +0 -0
- data/test/dummy/tmp/cache/assets/DBF/A50/sprockets%2Fb61db5cd1576d6aacf374dbcd02a8217 +0 -0
- data/test/dummy/tmp/cache/assets/DBF/B00/sprockets%2Fec730ac85ab0e8ccfaf212b57b083f07 +0 -0
- data/test/dummy/tmp/cache/assets/DC0/1A0/sprockets%2Fc9de417a45eea1220205b4ecdc5e7d7a +0 -0
- data/test/dummy/tmp/cache/assets/DC0/8A0/sprockets%2F923f5de8d5a0de54dec61b9002cdad11 +0 -0
- data/test/dummy/tmp/cache/assets/DC0/A30/sprockets%2F2e07ac4a2323f9fca40c5defbc8a6317 +0 -0
- data/test/dummy/tmp/cache/assets/DC0/D50/sprockets%2Fa097614dbabbcbf1b8cd36b662d64c24 +0 -0
- data/test/dummy/tmp/cache/assets/DC0/E00/sprockets%2Ffc5fa9a7e991958a6576b725fdbdcc89 +0 -0
- data/test/dummy/tmp/cache/assets/DC0/F50/sprockets%2Fcec2b1e1bda6d7a4b0ef3a381837f930 +0 -0
- data/test/dummy/tmp/cache/assets/DC1/610/sprockets%2Fec13df1137f894b0c53bdbb8751abaa7 +0 -0
- data/test/dummy/tmp/cache/assets/DC2/120/sprockets%2Fec38aced45c12d13f8c60e0b4dc36d45 +0 -0
- data/test/dummy/tmp/cache/assets/DC2/330/sprockets%2Fbd56a181b5c2e63215f0b46acc9fdd3e +0 -0
- data/test/dummy/tmp/cache/assets/DC2/4A0/sprockets%2Fbb9ede156dcc1c81616c9a4fa033ee03 +0 -0
- data/test/dummy/tmp/cache/assets/DC2/940/sprockets%2F8d48c857f51edc4c3c0fd1a0cf0514ab +0 -0
- data/test/dummy/tmp/cache/assets/DC2/C00/sprockets%2Fa12e90d33a80cdc4ffe1f2ea012689cf +0 -0
- data/test/dummy/tmp/cache/assets/DC3/160/sprockets%2F129f0ad08b545cfedaf5ab12c5059de5 +0 -0
- data/test/dummy/tmp/cache/assets/DC3/530/sprockets%2F757efdc940de1fa101dda5fb836140bd +0 -0
- data/test/dummy/tmp/cache/assets/DC3/5C0/sprockets%2F555de405a7c6e58ba794dbf1d01b4aba +0 -0
- data/test/dummy/tmp/cache/assets/DC3/D20/sprockets%2Fcb4fb9601f3ed45b1a50ed39ee614a2e +0 -0
- data/test/dummy/tmp/cache/assets/DC3/D20/sprockets%2Ff2e1a2c5129bce4971a7af2c0eeae546 +0 -0
- data/test/dummy/tmp/cache/assets/DC3/FA0/sprockets%2Fd25ccfdee31d877151b24a9dab2a90b6 +0 -0
- data/test/dummy/tmp/cache/assets/DC4/310/sprockets%2Feb91f4262ece3b0f3cc25e48fd254ab2 +0 -0
- data/test/dummy/tmp/cache/assets/DC4/A20/sprockets%2Fb9ca8fae522bc3346e01cce6a5c1974b +0 -0
- data/test/dummy/tmp/cache/assets/DC4/E50/sprockets%2F8de30090e0349c483201dcf3dfddecdc +0 -0
- data/test/dummy/tmp/cache/assets/DC6/BB0/sprockets%2Fc650cd342bf1d6306bf614ebcebe56f6 +0 -0
- data/test/dummy/tmp/cache/assets/DC6/CA0/sprockets%2Fdc3aa6f23c59d97b11825af4ef3c0a3e +0 -0
- data/test/dummy/tmp/cache/assets/DC6/F20/sprockets%2F472c8761d34a4a0af40eebf8b9d6b0af +0 -0
- data/test/dummy/tmp/cache/assets/DC7/280/sprockets%2F270ea0cbdfd05cc48eff704780066cdd +0 -0
- data/test/dummy/tmp/cache/assets/DC7/780/sprockets%2Fc21ca53b58d0e0754def4bfefa7a5076 +0 -0
- data/test/dummy/tmp/cache/assets/DC7/7D0/sprockets%2F69e6da13074b1135afe6ff8cadd2be15 +0 -0
- data/test/dummy/tmp/cache/assets/DC7/8F0/sprockets%2Fc7f71dae2d71a0dec9ceb9237f16124b +0 -0
- data/test/dummy/tmp/cache/assets/DC7/BC0/sprockets%2Fa6b9f243219b55edccdc362a64cb4ed4 +0 -0
- data/test/dummy/tmp/cache/assets/DC7/EE0/sprockets%2Fbcfa5f1dd43080040d9f06cddf0d95c9 +0 -0
- data/test/dummy/tmp/cache/assets/DC8/3A0/sprockets%2F0a82147fab265bfcb884f782beafc0b4 +0 -0
- data/test/dummy/tmp/cache/assets/DC8/410/sprockets%2Fcddde980ab9e710d80161e09fa3dba92 +0 -0
- data/test/dummy/tmp/cache/assets/DC8/4D0/sprockets%2Fda2a6be6764d1e4fbfbd95e8d821111a +0 -0
- data/test/dummy/tmp/cache/assets/DC8/590/sprockets%2F804613cab66aacfd4fae5f0ea275692e +0 -0
- data/test/dummy/tmp/cache/assets/DC8/670/sprockets%2F47b5310b4dbf58b2b8dcd6ba98c05db6 +0 -0
- data/test/dummy/tmp/cache/assets/DC8/9E0/sprockets%2F0fad3b3f1ed38ea3041c6f6f382c79da +0 -0
- data/test/dummy/tmp/cache/assets/DC8/B00/sprockets%2F6f814a096f8ae113dbede4cdf243fb31 +0 -0
- data/test/dummy/tmp/cache/assets/DC8/D80/sprockets%2Ff4236d1b64f8ea9ebc1a1aea0d596b38 +0 -0
- data/test/dummy/tmp/cache/assets/DC8/E20/sprockets%2F3a5db4f8c6a4749fd24a05f1e062eebc +0 -0
- data/test/dummy/tmp/cache/assets/DC8/FF0/sprockets%2F10f2f3fdbf1f2a8c0cac8d6394cf8207 +0 -0
- data/test/dummy/tmp/cache/assets/DC9/3C0/sprockets%2F7c707b5f3a1c6bc1fd26ea9f8a2b9b32 +0 -0
- data/test/dummy/tmp/cache/assets/DC9/7E0/sprockets%2Fa4efa2a36e1a334fb529dd5a909f6fb3 +0 -0
- data/test/dummy/tmp/cache/assets/DC9/BC0/sprockets%2F42d9ff9f511d0c7e072f24bbfc305cce +0 -0
- data/test/dummy/tmp/cache/assets/DCA/2C0/sprockets%2Fb48833de6cb1db246ca8fbaae441848c +0 -0
- data/test/dummy/tmp/cache/assets/DCA/310/sprockets%2F032481b7ad8da4f7ecc2ea13fd7497ac +0 -0
- data/test/dummy/tmp/cache/assets/DCA/920/sprockets%2Ff39dbfc5b7b633a9a1dd3653a64cd5b3 +0 -0
- data/test/dummy/tmp/cache/assets/DCB/620/sprockets%2Ff03f8d235d0b22d486dfd1f3dddf0f19 +0 -0
- data/test/dummy/tmp/cache/assets/DCB/7F0/sprockets%2F7e1ceccd440d8b325b15b95ee45af1f7 +0 -0
- data/test/dummy/tmp/cache/assets/DCB/950/sprockets%2F39a5640eb2a1fe3e354d2fef56a5f6da +0 -0
- data/test/dummy/tmp/cache/assets/DCB/D50/sprockets%2F285bfff127e41bfcab2ce7941eba9343 +0 -0
- data/test/dummy/tmp/cache/assets/DCC/0E0/sprockets%2F3a58dd8b234afe2902cf72f8eaa3d6f1 +0 -0
- data/test/dummy/tmp/cache/assets/DCC/490/sprockets%2Fef191a783bb65fade10ba88a9a43e1f6 +0 -0
- data/test/dummy/tmp/cache/assets/DCC/610/sprockets%2F7e59dfc897a88b7e96d649cdf0d1e6f9 +0 -0
- data/test/dummy/tmp/cache/assets/DCC/F20/sprockets%2Fd01120eaba8c37dcc74adc56996cf8b7 +0 -0
- data/test/dummy/tmp/cache/assets/DCD/090/sprockets%2Fe46caf85209b6ebb213aeafe63cf0687 +0 -0
- data/test/dummy/tmp/cache/assets/DCD/290/sprockets%2Ffdfdf7ac4922a4fc2be372d4125726fc +0 -0
- data/test/dummy/tmp/cache/assets/DCD/6C0/sprockets%2Fe0d70bd50ef15ccf46fad2cb6629687a +0 -0
- data/test/dummy/tmp/cache/assets/DCD/9B0/sprockets%2F2d5cfcb4da95df6b3ea2821f43336ed7 +0 -0
- data/test/dummy/tmp/cache/assets/DCD/C10/sprockets%2Fdaff331d5829710b1fd4fc6b95cb62ce +0 -0
- data/test/dummy/tmp/cache/assets/DCD/DE0/sprockets%2F8ac7911da2d373a2ea6dadc78d5e77d1 +0 -0
- data/test/dummy/tmp/cache/assets/DCD/F50/sprockets%2Fcfbad427aaa6d9e29757650fa417ece0 +0 -0
- data/test/dummy/tmp/cache/assets/DCE/120/sprockets%2F2717e6fdc18f2a78ec7ad543cada554a +0 -0
- data/test/dummy/tmp/cache/assets/DCE/560/sprockets%2F612c2e344718626fca3be27ccff6bdef +0 -0
- data/test/dummy/tmp/cache/assets/DCE/BB0/sprockets%2F3d240ff1ffacfc5a8a42832554dfcb88 +0 -0
- data/test/dummy/tmp/cache/assets/DCE/BF0/sprockets%2Ff2114c9c5f93cd1afbe449b6f2b3ce55 +0 -0
- data/test/dummy/tmp/cache/assets/DCE/D80/sprockets%2Fa8e3b62e0d5bd2a64fb78e1990eb73bd +0 -0
- data/test/dummy/tmp/cache/assets/DCE/E50/sprockets%2Fd1ea6e93b6e9769ac6efb0d1b03c5e24 +0 -0
- data/test/dummy/tmp/cache/assets/DCE/E70/sprockets%2Fa3de81b32c9ba72be70ed91fbd48638c +0 -0
- data/test/dummy/tmp/cache/assets/DCF/100/sprockets%2Fcf70cfe01aee0b6c8725e39eec353e46 +0 -0
- data/test/dummy/tmp/cache/assets/DCF/180/sprockets%2Fa0fb6e0ea7cad056e5e49e3d875c40d8 +0 -0
- data/test/dummy/tmp/cache/assets/DCF/310/sprockets%2F4cb6d36bdf46eb44c23df73ff6127b6b +0 -0
- data/test/dummy/tmp/cache/assets/DCF/5D0/sprockets%2F95dcbbc1e3f58076e0fbc297cbaf9124 +0 -0
- data/test/dummy/tmp/cache/assets/DCF/6B0/sprockets%2F6039db30eee2cb1da99f025e7d1e6f7d +0 -0
- data/test/dummy/tmp/cache/assets/DCF/6F0/sprockets%2Fb35295b9c0ed38dd040ea475edfea37f +0 -0
- data/test/dummy/tmp/cache/assets/DCF/AC0/sprockets%2Fca3f2c931d05fd9271edb9db0f19c92f +0 -0
- data/test/dummy/tmp/cache/assets/DCF/AE0/sprockets%2F900dedad9af2bf2a03f65987d776aa0e +0 -0
- data/test/dummy/tmp/cache/assets/DCF/DB0/sprockets%2F7fe8eb0dc1c379b7c5a2a5c9ca3592e2 +0 -0
- data/test/dummy/tmp/cache/assets/DD0/790/sprockets%2Fadd5869be41bfaf62ef0904173eeae36 +0 -0
- data/test/dummy/tmp/cache/assets/DD0/DB0/sprockets%2Fa560efdeac84f667d861e99f12a1aa1c +0 -0
- data/test/dummy/tmp/cache/assets/DD1/0F0/sprockets%2F2d5d6f23b583efe3a07a5ecd89fb192a +0 -0
- data/test/dummy/tmp/cache/assets/DD1/170/sprockets%2F152cb8bdf7b33b44e8d9aad9e33e7f14 +0 -0
- data/test/dummy/tmp/cache/assets/DD1/430/sprockets%2F6fab6dee09e2a1fa196299e026b61efd +0 -0
- data/test/dummy/tmp/cache/assets/DD1/4D0/sprockets%2Fdce63533526a840e5c29ae9cfdab4ef5 +0 -0
- data/test/dummy/tmp/cache/assets/DD1/5E0/sprockets%2F55e02d2a574d7be1a47dffd6e61cfb85 +0 -0
- data/test/dummy/tmp/cache/assets/DD1/920/sprockets%2F38abeb9c5dcfe1cd075d87e82246b8a0 +0 -0
- data/test/dummy/tmp/cache/assets/DD1/E40/sprockets%2Fd589cebd39090ef2d2c01ce821f6ffb4 +0 -0
- data/test/dummy/tmp/cache/assets/DD1/F00/sprockets%2Fc1fcf69ebbcac068cdde63655c183634 +0 -0
- data/test/dummy/tmp/cache/assets/DD2/0D0/sprockets%2F88ac4db9ccf889dbf2b241ef205b643b +0 -0
- data/test/dummy/tmp/cache/assets/DD2/330/sprockets%2Fd469365fcbc57cbef0adf2a6661190ff +0 -0
- data/test/dummy/tmp/cache/assets/DD2/690/sprockets%2F1af8faaf194cf7b22c403e20d7f98de8 +0 -0
- data/test/dummy/tmp/cache/assets/DD2/720/sprockets%2Fa7e3feaca76d2fd8f11d79a30938b70d +0 -0
- data/test/dummy/tmp/cache/assets/DD2/790/sprockets%2F5a497b1a59b46ddbf649e70e1adf5c0f +0 -0
- data/test/dummy/tmp/cache/assets/DD2/A10/sprockets%2F141ae3d75a58f3f39b0e8fa0fa7ed77c +0 -0
- data/test/dummy/tmp/cache/assets/DD2/D70/sprockets%2F471feef5b3f8b0eabe323a799a257c5d +0 -0
- data/test/dummy/tmp/cache/assets/DD2/E70/sprockets%2Fe730043939f99ffbd01c5ed4cace55ad +0 -0
- data/test/dummy/tmp/cache/assets/DD3/110/sprockets%2F209deabb73d6ffa92664ad4959ebde11 +0 -0
- data/test/dummy/tmp/cache/assets/DD3/150/sprockets%2Fbae8affcbd247de88930e215e7d4d460 +0 -0
- data/test/dummy/tmp/cache/assets/DD3/320/sprockets%2F5bee8af9a92d83b7e208c81bfff60b12 +0 -0
- data/test/dummy/tmp/cache/assets/DD3/3C0/sprockets%2F670f4b0d3e1cd2c7e5edbd9a8b489b46 +0 -0
- data/test/dummy/tmp/cache/assets/DD4/C60/sprockets%2Fa8943e2bebcb9b6e254b3864ec8b3e5c +0 -0
- data/test/dummy/tmp/cache/assets/DD5/0C0/sprockets%2F0e99e7247af82993003fcaeeb5ddc3cd +0 -0
- data/test/dummy/tmp/cache/assets/DD5/340/sprockets%2Fa6ce8c348d5365e9eb5f9eaaa047d71a +0 -0
- data/test/dummy/tmp/cache/assets/DD5/8B0/sprockets%2F91d4cd95cbcbc61b897ca2843a80f6fd +0 -0
- data/test/dummy/tmp/cache/assets/DD5/930/sprockets%2F5d0bf5434925565bcc5ac9ffb49c1ffc +0 -0
- data/test/dummy/tmp/cache/assets/DD6/1E0/sprockets%2Fdd47599b50e574a8ade74c55eca3d0ed +0 -0
- data/test/dummy/tmp/cache/assets/DD6/8F0/sprockets%2Fbe18b83b44e3d85159fbd32deccfc756 +0 -0
- data/test/dummy/tmp/cache/assets/DD6/B10/sprockets%2F1b4327737f681cbdf081ff9bcfe54edb +0 -0
- data/test/dummy/tmp/cache/assets/DD6/B60/sprockets%2F86be7769ab1b85b52fa1c6dedc66db72 +0 -0
- data/test/dummy/tmp/cache/assets/DD7/0E0/sprockets%2F52cf53fdfc217fc4cb025d7877da97cd +0 -0
- data/test/dummy/tmp/cache/assets/DD7/730/sprockets%2F80efa66fc9dc27c8b6384a360b8a7eae +0 -0
- data/test/dummy/tmp/cache/assets/DD7/C10/sprockets%2Fa1637f48f8aece1606cc2729aed6f9cb +0 -0
- data/test/dummy/tmp/cache/assets/DD7/F60/sprockets%2F391f7279bfdbfc62e910e2a1ff75f1fc +0 -0
- data/test/dummy/tmp/cache/assets/DD7/FC0/sprockets%2Fe552dc00585585fbcafc89d98af2b2fa +0 -0
- data/test/dummy/tmp/cache/assets/DD8/980/sprockets%2Feef46de7ca33f529ce7adb095169e3b4 +0 -0
- data/test/dummy/tmp/cache/assets/DD9/000/sprockets%2Ffc576d5de3f0907dad48e0fc5df43a49 +0 -0
- data/test/dummy/tmp/cache/assets/DD9/1A0/sprockets%2F2f65b9e64e6fe4fe309aaeaf5a14c865 +0 -0
- data/test/dummy/tmp/cache/assets/DD9/6F0/sprockets%2Fc265e624ee5dd27cda3868aaa8495fec +0 -0
- data/test/dummy/tmp/cache/assets/DDA/500/sprockets%2F103ae3c64e8c9af97ddfdf278f661b1e +0 -0
- data/test/dummy/tmp/cache/assets/DDB/330/sprockets%2F33596dfd43de9f36bfa8dd47bd408da4 +0 -0
- data/test/dummy/tmp/cache/assets/DDB/E40/sprockets%2Fb413afa11a2c4cbf2ec4a23e45e036db +0 -0
- data/test/dummy/tmp/cache/assets/DDC/C00/sprockets%2F05cf75fea285df8f82c3682eaca89b1e +0 -0
- data/test/dummy/tmp/cache/assets/DDD/370/sprockets%2F016219ffdd478c3c40e6f4efee84da9f +0 -0
- data/test/dummy/tmp/cache/assets/DDD/B00/sprockets%2Fff4d19b3dd289880e7a618fd9aa3cac8 +0 -0
- data/test/dummy/tmp/cache/assets/DDE/860/sprockets%2F8c57c9956b38b6572a9dcd1a6fcbeaf4 +0 -0
- data/test/dummy/tmp/cache/assets/DDE/D00/sprockets%2F74c27cac3ef959ecc8cfd9327b7fa334 +0 -0
- data/test/dummy/tmp/cache/assets/DE0/EA0/sprockets%2Fdbeee979d2b1e6d6b28cde425f84b737 +0 -0
- data/test/dummy/tmp/cache/assets/DE1/390/sprockets%2F1d6b3e8d0c351b537faa02cc1ccc4bd3 +0 -0
- data/test/dummy/tmp/cache/assets/DE1/490/sprockets%2Fced4bd89388e3be73a96b67af27e0cb9 +0 -0
- data/test/dummy/tmp/cache/assets/DE1/DA0/sprockets%2Ffc904392efc8ad2959bb95c14bdaff79 +0 -0
- data/test/dummy/tmp/cache/assets/DE3/310/sprockets%2Fa88eabb20e2ecca3230d5c1a8aa1e485 +0 -0
- data/test/dummy/tmp/cache/assets/DE3/310/sprockets%2Fdd26e8d4e2ba0972c50eba4baa0d134b +0 -0
- data/test/dummy/tmp/cache/assets/DE4/630/sprockets%2F3fbaa3b49828d89831cef787bf9ade6a +0 -0
- data/test/dummy/tmp/cache/assets/DE4/790/sprockets%2Fde774ff5425bb9f0dad9a954ef4ef726 +0 -0
- data/test/dummy/tmp/cache/assets/DE5/610/sprockets%2F9ab8e1cb0f8f692cbb8a387957f3d7fd +0 -0
- data/test/dummy/tmp/cache/assets/DE5/6D0/sprockets%2F6e6fdbc91e3f5879c8c092bab7ff581e +0 -0
- data/test/dummy/tmp/cache/assets/DE5/F60/sprockets%2F20d60b0f1cfaf7c27d5e0ee4c1e21fc0 +0 -0
- data/test/dummy/tmp/cache/assets/DE6/230/sprockets%2Fcfdab95d58360b61999eb6fae7deb649 +0 -0
- data/test/dummy/tmp/cache/assets/DE6/920/sprockets%2Fbf9feba9970af2ae25844f64f6e94f6b +0 -0
- data/test/dummy/tmp/cache/assets/DE6/C60/sprockets%2Faadf89e09dc9d89db8b60fa5d66d6824 +0 -0
- data/test/dummy/tmp/cache/assets/DE6/FF0/sprockets%2F993388d5d17cecccf692ad3e9f8dcc70 +0 -0
- data/test/dummy/tmp/cache/assets/DE7/180/sprockets%2Fa5f5aaa04c00e4fce24c97cbf5411cc4 +0 -0
- data/test/dummy/tmp/cache/assets/DE7/450/sprockets%2F0ff422cad3faf40e061e51edebb321c9 +0 -0
- data/test/dummy/tmp/cache/assets/DE7/750/sprockets%2Fdddda1271b2572dbb85ae180fb21a9bb +0 -0
- data/test/dummy/tmp/cache/assets/DE7/B20/sprockets%2Fa8a0a74dd4ea466074cbdeebf340a1a3 +0 -0
- data/test/dummy/tmp/cache/assets/DE8/A30/sprockets%2F3c1c2c8aab9ef12043bdc6a307bf82eb +0 -0
- data/test/dummy/tmp/cache/assets/DE8/F10/sprockets%2F8beab679ebe7f05e9d4f8b546e0ee279 +0 -0
- data/test/dummy/tmp/cache/assets/DE8/FA0/sprockets%2F93ca8a8d6919cace4cc9d8e69ff82d23 +0 -0
- data/test/dummy/tmp/cache/assets/DE9/340/sprockets%2Fe57938b0cff9802d1e7aebe2cef798e9 +0 -0
- data/test/dummy/tmp/cache/assets/DEA/980/sprockets%2Fc5897a1f996aafff34f555f76a39fbbd +0 -0
- data/test/dummy/tmp/cache/assets/DEA/DF0/sprockets%2Fbda59ab08df48c989fa5ff7de993336b +0 -0
- data/test/dummy/tmp/cache/assets/DEB/340/sprockets%2F0bd787c4c2a1dc1fd7605abf1e53bbb4 +0 -0
- data/test/dummy/tmp/cache/assets/DEB/B70/sprockets%2F03ccc43525fa4dfdd1603a6d4ac8ac6d +0 -0
- data/test/dummy/tmp/cache/assets/DEB/E30/sprockets%2Fcb8889cff8b8fe8b171b93d647deaf07 +0 -0
- data/test/dummy/tmp/cache/assets/DEC/5F0/sprockets%2F410f8c0c1dcf61a1d2dc2a7d3e5bd5e8 +0 -0
- data/test/dummy/tmp/cache/assets/DEE/930/sprockets%2F8e899ec8a7afe2577634ef981ccabcc9 +0 -0
- data/test/dummy/tmp/cache/assets/DEE/C00/sprockets%2Ff040b0f7cea1235fc5f3dc1db8b16e9a +0 -0
- data/test/dummy/tmp/cache/assets/DF0/710/sprockets%2F57eceb7a040cb74c96bde000cc9a8ce0 +0 -0
- data/test/dummy/tmp/cache/assets/DF1/820/sprockets%2F5e1f6fa6109bbba3f92d23bed60d2f1e +0 -0
- data/test/dummy/tmp/cache/assets/DF1/850/sprockets%2Fce67eaf0bbcc74a4d003c2ef0bf54558 +0 -0
- data/test/dummy/tmp/cache/assets/DF2/940/sprockets%2F0ba96f7c7a30ba087e1c1f4c6b4bf2ee +0 -0
- data/test/dummy/tmp/cache/assets/DF2/A10/sprockets%2F081cbd1c386eca6abacfdc8515f34d53 +0 -0
- data/test/dummy/tmp/cache/assets/DF3/7B0/sprockets%2Fbe3e96d12fac88a1e35da10fad9722ca +0 -0
- data/test/dummy/tmp/cache/assets/DF4/0E0/sprockets%2Ffcdd82e15975e6d9ac2bcaa3d0f01a27 +0 -0
- data/test/dummy/tmp/cache/assets/DF4/2C0/sprockets%2F33f40add4c7a49d56dedd7a31dd3bc34 +0 -0
- data/test/dummy/tmp/cache/assets/DF5/1D0/sprockets%2Fa2721b94a4d43f7caab1e8eebe5465ae +0 -0
- data/test/dummy/tmp/cache/assets/DF5/5F0/sprockets%2F21f5be1d0fb58cc648f3f1e106df3fba +0 -0
- data/test/dummy/tmp/cache/assets/DF5/7A0/sprockets%2Fea6fcce2a4274dc6dd8216ebc31c319d +0 -0
- data/test/dummy/tmp/cache/assets/DF5/920/sprockets%2Fa371cd46590babfadb09d81728ea0cff +0 -0
- data/test/dummy/tmp/cache/assets/DF6/880/sprockets%2Fed15aedc9c0ded3a58b4954bcc3222b9 +0 -0
- data/test/dummy/tmp/cache/assets/DF6/CD0/sprockets%2Fd6e3ce6a1e92bef3c6806bb1e24d6d1b +0 -0
- data/test/dummy/tmp/cache/assets/DF8/350/sprockets%2F0e8e61549bcb7ceb12cb02cf7dafc782 +0 -0
- data/test/dummy/tmp/cache/assets/DF8/B00/sprockets%2F3996526da65e50caedbb2d7bc8abe2d1 +0 -0
- data/test/dummy/tmp/cache/assets/DF8/B50/sprockets%2Fcf8e79edfe8092bcd084d3aa2d323ab0 +0 -0
- data/test/dummy/tmp/cache/assets/DF8/CE0/sprockets%2Fb3ab656dfab979e2e7a0082c4a2fe0df +0 -0
- data/test/dummy/tmp/cache/assets/DF8/E50/sprockets%2F13385f98ce306faeb14c3fdd4dbbd3a5 +0 -0
- data/test/dummy/tmp/cache/assets/DF9/120/sprockets%2F27f205fbbf2b0bb9c624d7dc41fec6e7 +0 -0
- data/test/dummy/tmp/cache/assets/DF9/700/sprockets%2Ff30deccfda011d97ad3f63c90d49b5f3 +0 -0
- data/test/dummy/tmp/cache/assets/DF9/7B0/sprockets%2F26fbd83e4add33750acbc4f5ff1b7f51 +0 -0
- data/test/dummy/tmp/cache/assets/DFA/E50/sprockets%2Fc948a8cdd056abf24bcb9351c81fa5fa +0 -0
- data/test/dummy/tmp/cache/assets/DFB/AB0/sprockets%2Ff5d4fbb5ca58aed3c46e1462d3a7bf45 +0 -0
- data/test/dummy/tmp/cache/assets/DFD/910/sprockets%2F6e4aeb3cfdb2adf8086199e003bd4ce8 +0 -0
- data/test/dummy/tmp/cache/assets/DFD/F40/sprockets%2F2c1baed96c603fd0746aed6b9d427cfd +0 -0
- data/test/dummy/tmp/cache/assets/DFE/4F0/sprockets%2F4695a10bc9aa0c898cf21dec63bcc7ff +0 -0
- data/test/dummy/tmp/cache/assets/DFE/6D0/sprockets%2F5ed9adae017357437e0cf4efffb12fb5 +0 -0
- data/test/dummy/tmp/cache/assets/DFF/B90/sprockets%2F9bf7f6a7b2f42f6c25336cffb1c7aa3d +0 -0
- data/test/dummy/tmp/cache/assets/E00/630/sprockets%2Fead43f2cf9d3f3a37a590e212e8fc9ea +0 -0
- data/test/dummy/tmp/cache/assets/E01/250/sprockets%2Fe4282269fdedfc1d2bd08e9d7433ceab +0 -0
- data/test/dummy/tmp/cache/assets/E01/7D0/sprockets%2F771e23888dbed36f017cbb35acdbc8df +0 -0
- data/test/dummy/tmp/cache/assets/E01/E30/sprockets%2Fea636d9c8b493cced44c9eed11d50d1e +0 -0
- data/test/dummy/tmp/cache/assets/E02/270/sprockets%2F5381b3fbea0bdffe7f60e7a68c9d3b44 +0 -0
- data/test/dummy/tmp/cache/assets/E02/2E0/sprockets%2Fb29204c6ef5e6c80fa6a76aec3bf64ef +0 -0
- data/test/dummy/tmp/cache/assets/E02/460/sprockets%2Febdaa5d81edadcf19f17470971a692df +0 -0
- data/test/dummy/tmp/cache/assets/E02/470/sprockets%2F09b78eecc03a56bf09cbe5d73a49a8ce +0 -0
- data/test/dummy/tmp/cache/assets/E02/560/sprockets%2Fc9835ca26fea59cccb5eb03865cbad58 +0 -0
- data/test/dummy/tmp/cache/assets/E02/6B0/sprockets%2Fb0c6cb515e5ef58ec2b8c40f9c75dad7 +0 -0
- data/test/dummy/tmp/cache/assets/E02/9E0/sprockets%2F3be9c22c954bbcea0c7ef648e5d3ff15 +0 -0
- data/test/dummy/tmp/cache/assets/E03/520/sprockets%2Fb0bc6a9ad234b985b729bdecbc93c7d9 +0 -0
- data/test/dummy/tmp/cache/assets/E03/8C0/sprockets%2Fdddca472be9884cdfe6af78222bad074 +0 -0
- data/test/dummy/tmp/cache/assets/E03/E10/sprockets%2Ff973aa441beed766f88d05a5afe3b4ae +0 -0
- data/test/dummy/tmp/cache/assets/E04/2F0/sprockets%2Fa16d6dfb55f306bacadfcc65ba936989 +0 -0
- data/test/dummy/tmp/cache/assets/E04/730/sprockets%2F583c8db59edef3f0c5b7e336e284babb +0 -0
- data/test/dummy/tmp/cache/assets/E04/780/sprockets%2F3cacfdba6603ee6a76d7626e6d9ad53f +0 -0
- data/test/dummy/tmp/cache/assets/E04/B60/sprockets%2F67fde7c8e76f5ea08e905cc2b641caab +0 -0
- data/test/dummy/tmp/cache/assets/E04/BB0/sprockets%2F27aa47e7bad23d38389eae6a436efdfc +0 -0
- data/test/dummy/tmp/cache/assets/E05/2A0/sprockets%2Fde0ab0df6698a6bc364e6c9e847bcc3c +0 -0
- data/test/dummy/tmp/cache/assets/E05/940/sprockets%2Fa7342fe6aaeca22f6f9474c16f77dfcc +0 -0
- data/test/dummy/tmp/cache/assets/E05/9A0/sprockets%2Ffbf122467d4e4b4d1bbc6fdc78a85d8f +0 -0
- data/test/dummy/tmp/cache/assets/E06/710/sprockets%2Fee1f8c455d6c11ac74bf1eef2d3c799d +0 -0
- data/test/dummy/tmp/cache/assets/E06/B20/sprockets%2Fba3bff72fd31e9b292e1626efff5d82d +0 -0
- data/test/dummy/tmp/cache/assets/E06/BC0/sprockets%2F0e410c76d8b9975ac0e8ed9dfbcad4f3 +0 -0
- data/test/dummy/tmp/cache/assets/E06/C00/sprockets%2F454dec05493096cc77cae8bfef7a7cba +0 -0
- data/test/dummy/tmp/cache/assets/E07/F70/sprockets%2F482a5de5a6dadcc2b4d8778a8faf0e86 +0 -0
- data/test/dummy/tmp/cache/assets/E09/210/sprockets%2Fa1e78b1bf197e2c7d2dea09ade69fd68 +0 -0
- data/test/dummy/tmp/cache/assets/E09/290/sprockets%2F1d76236f1ae4e9f939daf9d4fe0b5eab +0 -0
- data/test/dummy/tmp/cache/assets/E09/550/sprockets%2F0bbdef332e5e3c32f4ffd8989c6c7ad4 +0 -0
- data/test/dummy/tmp/cache/assets/E0A/330/sprockets%2Fb889aacf3c5b1287fa490ae24ee9d8df +0 -0
- data/test/dummy/tmp/cache/assets/E0B/200/sprockets%2Ff177bd5ef30963eeefc8d15d0eff354d +0 -0
- data/test/dummy/tmp/cache/assets/E0B/CD0/sprockets%2Feb97c4db2f3b997e9500fbcd840fcee4 +0 -0
- data/test/dummy/tmp/cache/assets/E0D/350/sprockets%2Fc6edebe6ed17558da6ed0ee584914ee3 +0 -0
- data/test/dummy/tmp/cache/assets/E0D/8B0/sprockets%2Ffbca95fe1efe7e13f7970a654886aacc +0 -0
- data/test/dummy/tmp/cache/assets/E0E/850/sprockets%2F9e16585b5e9e67d2ad3bfc79fe3c3cbb +0 -0
- data/test/dummy/tmp/cache/assets/E0F/4F0/sprockets%2Fa3272540abfe5c98fe7e63a98fde7fcc +0 -0
- data/test/dummy/tmp/cache/assets/E0F/5D0/sprockets%2F8f5ef8baff83ddff0818be088bbb1853 +0 -0
- data/test/dummy/tmp/cache/assets/E11/EC0/sprockets%2Fd75c4edbd1e28d4f149e777df905ebdf +0 -0
- data/test/dummy/tmp/cache/assets/E13/A80/sprockets%2Fbac5968b0fd53fd82c909858adfeac9f +0 -0
- data/test/dummy/tmp/cache/assets/E13/DA0/sprockets%2Fc5017eb7eedaca0008cf0fb35ea37b1b +0 -0
- data/test/dummy/tmp/cache/assets/E13/DA0/sprockets%2Febedc0c00a2810be6e2dfaa6b155ca95 +0 -0
- data/test/dummy/tmp/cache/assets/E16/0C0/sprockets%2F2bccb375c7950ce793eebff682d8fe7f +0 -0
- data/test/dummy/tmp/cache/assets/E16/890/sprockets%2F25d48ca77decab21aa4e144a30aed4ed +0 -0
- data/test/dummy/tmp/cache/assets/E16/E40/sprockets%2Fbb69b561797ceeecead7925783b6feaf +0 -0
- data/test/dummy/tmp/cache/assets/E19/800/sprockets%2F3283b2bd65f095fded0b1aaaeda19ea1 +0 -0
- data/test/dummy/tmp/cache/assets/E19/BE0/sprockets%2F4d4cd0209cbbd0a14c6bb7ceeab97b62 +0 -0
- data/test/dummy/tmp/cache/assets/E1A/330/sprockets%2F5d3fee1ad3cab203a53ee8c7aa3428db +0 -0
- data/test/dummy/tmp/cache/assets/E1C/EF0/sprockets%2F6bfdb8efbdf13897c99efc9944a7ad34 +0 -0
- data/test/dummy/tmp/cache/assets/E1C/FC0/sprockets%2F589c8b2bb3d0ef15abcda1e262b07dcd +0 -0
- data/test/dummy/tmp/cache/assets/E1D/8F0/sprockets%2Febcd95ad06f1ab89fe54aa1b0aca1448 +0 -0
- data/test/dummy/tmp/cache/assets/E1F/CA0/sprockets%2Ffb153c81fcdff3d13c8fa84c1f20caa3 +0 -0
- data/test/dummy/tmp/cache/assets/E20/010/sprockets%2F8cb66cce4dde9b6a6e89f19e86fe096d +0 -0
- data/test/dummy/tmp/cache/assets/E20/FA0/sprockets%2Fd6da9bcad0bfd4362f1726adda8b1d62 +0 -0
- data/test/dummy/tmp/cache/assets/E20/FE0/sprockets%2F0fdc8a5cb3bb74767d15fb2b0feaf1d1 +0 -0
- data/test/dummy/tmp/cache/assets/E22/0C0/sprockets%2Fd2cafc37db0bfb5cfd12ed623fb90681 +0 -0
- data/test/dummy/tmp/cache/assets/E22/640/sprockets%2Fa79cffda9ea30a3c7a346db03f6eb30d +0 -0
- data/test/dummy/tmp/cache/assets/E24/0F0/sprockets%2F2fd0d00a336b9aadafdcd036597ff9bc +0 -0
- data/test/dummy/tmp/cache/assets/E24/2B0/sprockets%2Fd48b5664b861eaba2cd9aef35ebab2a4 +0 -0
- data/test/dummy/tmp/cache/assets/E24/BE0/sprockets%2Fa312aeac9f17cbfcfb3ea0c0de779509 +0 -0
- data/test/dummy/tmp/cache/assets/E24/C30/sprockets%2Fab80a42e61baf5bc74ec668ed4d3a6bc +0 -0
- data/test/dummy/tmp/cache/assets/E26/6A0/sprockets%2Fcf2fb4bac4d1e8b2a5b5b9a8f85c361b +0 -0
- data/test/dummy/tmp/cache/assets/E28/120/sprockets%2F1eb7accde46b360442adaf08beaf789d +0 -0
- data/test/dummy/tmp/cache/assets/E28/290/sprockets%2Ffdb3a8a37fb515b9dc90614b4dab7bdf +0 -0
- data/test/dummy/tmp/cache/assets/E28/A80/sprockets%2F34a8d9e9cbd7a2a5178da0afbf4e10fd +0 -0
- data/test/dummy/tmp/cache/assets/E28/D00/sprockets%2Fcb82c1534ddccee2fa79b6a84e1d3ae4 +0 -0
- data/test/dummy/tmp/cache/assets/E29/5D0/sprockets%2F5c50c8b4fb7b4604db1d8f2bc7ddea9b +0 -0
- data/test/dummy/tmp/cache/assets/E29/E20/sprockets%2F1da1cf4f8fb0b07de5540dcf72ebea79 +0 -0
- data/test/dummy/tmp/cache/assets/E29/FA0/sprockets%2Ffabb9a9e2898ac07e5aec5a3dc1173cb +0 -0
- data/test/dummy/tmp/cache/assets/E2A/2F0/sprockets%2Fc19ab67c37ebb29d3155cacee4fa49bc +0 -0
- data/test/dummy/tmp/cache/assets/E2A/570/sprockets%2Fc8c8f0c4ff9cdaa029e206e60bfcc47a +0 -0
- data/test/dummy/tmp/cache/assets/E2A/FC0/sprockets%2Fa90fba67cf290f1ae5d51b9ccd74fbb4 +0 -0
- data/test/dummy/tmp/cache/assets/E2D/020/sprockets%2F57300cdaee8dec0f1aff7408a9f28cfb +0 -0
- data/test/dummy/tmp/cache/assets/E2D/2F0/sprockets%2F6db7e742b38bbafd7e971dbdbab350c9 +0 -0
- data/test/dummy/tmp/cache/assets/E2D/600/sprockets%2F40ae8adc98c5e01ce0cf4b8fc0d967ea +0 -0
- data/test/dummy/tmp/cache/assets/E2E/360/sprockets%2F9a2b86a5c0eae250bcdf72eedf958ac5 +0 -0
- data/test/dummy/tmp/cache/assets/E2E/5A0/sprockets%2F82621e8fafb4f8ffbca15a74b6cc5d1e +0 -0
- data/test/dummy/tmp/cache/assets/E2E/9A0/sprockets%2Ff35bacb57bb882a5f7f8f220eebadd91 +0 -0
- data/test/dummy/tmp/cache/assets/E2E/9F0/sprockets%2Fd0f6b8cb9b7091c6ba6d05fb8adadf66 +0 -0
- data/test/dummy/tmp/cache/assets/E2F/3D0/sprockets%2F3d8aa6ffceaf05eefca73ce469e71222 +0 -0
- data/test/dummy/tmp/cache/assets/E2F/8C0/sprockets%2Fb333cacd9aae969cf4e25ce0dddd4277 +0 -0
- data/test/dummy/tmp/cache/assets/E2F/E50/sprockets%2Fcf2e5ab5e03d797bcfbbb558d38b35af +0 -0
- data/test/dummy/tmp/cache/assets/E30/D40/sprockets%2F18d6abe9e22e7e22ceaf2ee8f108ad5f +0 -0
- data/test/dummy/tmp/cache/assets/E31/6E0/sprockets%2Ff305b61e7fa499ad2504bfebb9e7edea +0 -0
- data/test/dummy/tmp/cache/assets/E32/A20/sprockets%2F9de0fd05844dd0acb4eca4e3ed8ff917 +0 -0
- data/test/dummy/tmp/cache/assets/E35/4C0/sprockets%2Fe7a4909adc7a80fd85ea1eb9b55fdd1e +0 -0
- data/test/dummy/tmp/cache/assets/E36/E00/sprockets%2F56ae6c5d1c3ecc2c9cceb813c8b998eb +0 -0
- data/test/dummy/tmp/cache/assets/E38/1B0/sprockets%2Ffcb2daabef4cb855fef8866c245a637e +0 -0
- data/test/dummy/tmp/cache/assets/E39/760/sprockets%2Feaefb1f9a06b9989f418edb1db2ef7c2 +0 -0
- data/test/dummy/tmp/cache/assets/E3A/7B0/sprockets%2Ff97762db911d9badaeae98af6bf128dc +0 -0
- data/test/dummy/tmp/cache/assets/E3A/C40/sprockets%2Fa4fffedf4d4bf3ec8597f2581c0a87ab +0 -0
- data/test/dummy/tmp/cache/assets/E3B/340/sprockets%2Fdbc7eef48e00def6bd3e64ecd8954c44 +0 -0
- data/test/dummy/tmp/cache/assets/E3E/2D0/sprockets%2F4e7fda6ffbcb5a5f816cf91cd5d723f9 +0 -0
- data/test/dummy/tmp/cache/assets/E3E/7F0/sprockets%2F5eaeea01d1e91c54fcbc0ccbd1004d6b +0 -0
- data/test/dummy/tmp/cache/assets/E3E/AC0/sprockets%2Fa90ce5acf76adb824efaad100a041dba +0 -0
- data/test/dummy/tmp/cache/assets/E43/4F0/sprockets%2Fdcecff17c38b49f56d79da2df807cfa8 +0 -0
- data/test/dummy/tmp/cache/assets/E44/340/sprockets%2F7e85e986e305dedde1f6facedf2c07e9 +0 -0
- data/test/dummy/tmp/cache/assets/E48/A90/sprockets%2Fa3d1dbca7b4efb41f7161b1ccd72cdb6 +0 -0
- data/test/dummy/tmp/cache/assets/E4C/650/sprockets%2Fcb056fbabd058c22885aabfabc5d6d3b +0 -0
- data/test/dummy/tmp/cache/assets/E4D/6F0/sprockets%2F2fff12c7ef5fed2e65ee89ec5395f6ee +0 -0
- data/test/dummy/tmp/cache/assets/E4D/980/sprockets%2Fbbbe61cb3ecb82cb4fbff3a8a0c04684 +0 -0
- data/test/dummy/tmp/cache/assets/E4D/B10/sprockets%2F11a1f50de2df1f43bca44cfdb8cbbe86 +0 -0
- data/test/dummy/tmp/cache/assets/E4E/470/sprockets%2F1d0cddc56a9072ffcd7be4db3a02ca8d +0 -0
- data/test/dummy/tmp/cache/assets/E4F/A80/sprockets%2F811cebd4c603ffcdec7ba7f670db0b3a +0 -0
- data/test/dummy/tmp/cache/assets/E51/3A0/sprockets%2F920a82be7aebe4bdf7bfe13a2e9a0b6b +0 -0
- data/test/dummy/tmp/cache/assets/E51/480/sprockets%2Ffd0d14acc0f5f69ccdc1526ddb8a1da7 +0 -0
- data/test/dummy/tmp/cache/assets/E51/8C0/sprockets%2F21366bb0cb72acda7aebe1feb7f7cd38 +0 -0
- data/test/dummy/tmp/cache/assets/E55/220/sprockets%2Fad2dd26bc3fd1e2bfdb7b8ba8a44854d +0 -0
- data/test/dummy/tmp/cache/assets/E55/520/sprockets%2Febd22b7b53c1fcd59aacc1d4ae3797eb +0 -0
- data/test/dummy/tmp/cache/assets/E5D/240/sprockets%2Ff5afbd4e941cfabbdf5b4803e3ae1e88 +0 -0
- data/test/dummy/tmp/cache/assets/E5D/6B0/sprockets%2Fdef6eaba54c5749f8bb0d9c14be4d3cb +0 -0
- data/test/dummy/tmp/cache/assets/E5E/350/sprockets%2Fd68af9fb3aae95a0a79ca12bd1edd69d +0 -0
- data/test/dummy/tmp/cache/assets/E5E/3A0/sprockets%2Fedf4ef7fdfa720cf0e6ca1e215c4ff91 +0 -0
- data/test/dummy/tmp/cache/assets/E5F/DA0/sprockets%2Ffe0d5fd3b2dccdd3f59710b9dba49b9c +0 -0
- data/test/dummy/tmp/cache/assets/E5F/F90/sprockets%2Fd4c59e3e7d005abceea7f7ec20df5c7e +0 -0
- data/test/dummy/tmp/cache/assets/E62/280/sprockets%2Feac41dd5eb4b65a4d33af7ff7c4d8c9d +0 -0
- data/test/dummy/tmp/cache/assets/E62/400/sprockets%2F64e9bdfb83d53acc66b63ebc88bbd6ba +0 -0
- data/test/dummy/tmp/cache/assets/E62/790/sprockets%2Fcc9cdebfc45e1e9e40f59d45244cabcf +0 -0
- data/test/dummy/tmp/cache/assets/E64/F30/sprockets%2F1de08065449c2cdc6cfcf8dccf47fdcc +0 -0
- data/test/dummy/tmp/cache/assets/E65/BB0/sprockets%2F6d3ef3fcfef1fbf001c9dcce78fd6208 +0 -0
- data/test/dummy/tmp/cache/assets/E67/7C0/sprockets%2F5fdef75e5fc94f4672cbbce2d4bde3a4 +0 -0
- data/test/dummy/tmp/cache/assets/E68/940/sprockets%2Fde64d61ec0d2e5c8fad88fbecfd94a35 +0 -0
- data/test/dummy/tmp/cache/assets/E6A/070/sprockets%2F17edc5ef63f8db0c2d8cf66b57ccea8e +0 -0
- data/test/dummy/tmp/cache/assets/E6D/020/sprockets%2F9ece9c4c2e5b8ec1eececcea9d624198 +0 -0
- data/test/dummy/tmp/cache/assets/E6E/9C0/sprockets%2Ffa55f351fcecf1bc2ba6ba1310cbfaa5 +0 -0
- data/test/dummy/tmp/cache/assets/E6E/D70/sprockets%2Ff854d53e9df9fa1bf725dadd7e0f2cff +0 -0
- data/test/dummy/tmp/cache/assets/E6F/7F0/sprockets%2F7a185c9f3999fec67aeddbfb23dea2de +0 -0
- data/test/dummy/tmp/cache/assets/E79/F50/sprockets%2Ffa2b3f5c123a6ec5bfcdd35db4dd6ba1 +0 -0
- data/test/dummy/tmp/cache/assets/E80/170/sprockets%2Fa0c50f15b9cdb1af4c2dfbcf90fe7ce2 +0 -0
- data/test/dummy/tmp/cache/assets/E82/D10/sprockets%2F06afa77b0aacab9b76cb6e6318decfca +0 -0
- data/test/dummy/tmp/cache/assets/E87/7D0/sprockets%2Ffe93f8ccabbebc20f353f51f5a4fe1cc +0 -0
- data/test/dummy/tmp/cache/assets/E8A/370/sprockets%2Fba6cd8430accc5ffa10ff6eeb7aa939f +0 -0
- data/test/dummy/tmp/cache/assets/E8C/D10/sprockets%2F956badfdacc7f96fb3bbf36dcc0b317c +0 -0
- data/test/dummy/tmp/cache/assets/E91/7C0/sprockets%2Fef3c30e9c07b8affa4e39fceb6cb3e7b +0 -0
- data/test/dummy/tmp/cache/assets/E93/EC0/sprockets%2Fe2f9ce9b0cbf7c9b0935ce1bfafe24ee +0 -0
- data/test/dummy/tmp/cache/assets/E96/510/sprockets%2Ff3dd99b915fbacd1c6e7ebcf916b5abf +0 -0
- data/test/dummy/tmp/cache/assets/E9A/790/sprockets%2Ffece53daabdeb86f6a4996af4dc99d0a +0 -0
- data/test/dummy/tmp/cache/assets/EA6/850/sprockets%2Ff2eaf24266aaa0f2adeb0ffe01e5fdad +0 -0
- data/test/dummy/tmp/cache/assets/EB0/300/sprockets%2Fe4bacccace2941a1a8ddfbdd97b2ad82 +0 -0
- data/test/dummy/tmp/cache/assets/EB6/E70/sprockets%2F76a6b2ceb48abb4ddaca9bef2fce155e +0 -0
- data/test/dummy/tmp/cache/assets/EC3/EF0/sprockets%2Fd4e09aca6af1fb9fbf6f86bbcca4e59c +0 -0
- data/test/dummy/tmp/data/meta_request/055bf7bc695a78c99960938def7e04ed.json +1 -0
- metadata +180 -8
- data/app/assets/javascripts/Cesium/Core/definedNotNull.js +0 -23
- data/app/assets/javascripts/Cesium/Scene/OpenStreetMapImageryProvider.js +0 -415
- data/app/assets/javascripts/Cesium/Scene/TileMapServiceImageryProvider.js +0 -580
- data/app/assets/javascripts/Cesium/ThirdParty/knockout-3.2.0.js +0 -112
- data/test/dummy/tmp/pids/server.pid +0 -1
@@ -20,9 +20,10 @@
|
|
20
20
|
* Portions licensed separately.
|
21
21
|
* See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details.
|
22
22
|
*/
|
23
|
-
(function () {
|
23
|
+
(function () {
|
24
|
+
/*global define*/
|
24
25
|
define('Core/defined',[],function() {
|
25
|
-
|
26
|
+
'use strict';
|
26
27
|
|
27
28
|
/**
|
28
29
|
* @exports defined
|
@@ -38,7 +39,7 @@ define('Core/defined',[],function() {
|
|
38
39
|
* }
|
39
40
|
*/
|
40
41
|
function defined(value) {
|
41
|
-
return value !== undefined;
|
42
|
+
return value !== undefined && value !== null;
|
42
43
|
}
|
43
44
|
|
44
45
|
return defined;
|
@@ -49,7 +50,7 @@ define('Core/freezeObject',[
|
|
49
50
|
'./defined'
|
50
51
|
], function(
|
51
52
|
defined) {
|
52
|
-
|
53
|
+
'use strict';
|
53
54
|
|
54
55
|
/**
|
55
56
|
* Freezes an object, using Object.freeze if available, otherwise returns
|
@@ -74,7 +75,7 @@ define('Core/defaultValue',[
|
|
74
75
|
'./freezeObject'
|
75
76
|
], function(
|
76
77
|
freezeObject) {
|
77
|
-
|
78
|
+
'use strict';
|
78
79
|
|
79
80
|
/**
|
80
81
|
* Returns the first parameter if not undefined, otherwise the second parameter.
|
@@ -110,7 +111,7 @@ define('Core/DeveloperError',[
|
|
110
111
|
'./defined'
|
111
112
|
], function(
|
112
113
|
defined) {
|
113
|
-
|
114
|
+
'use strict';
|
114
115
|
|
115
116
|
/**
|
116
117
|
* Constructs an exception object that is thrown due to a developer error, e.g., invalid argument,
|
@@ -124,6 +125,7 @@ define('Core/DeveloperError',[
|
|
124
125
|
*
|
125
126
|
* @alias DeveloperError
|
126
127
|
* @constructor
|
128
|
+
* @extends Error
|
127
129
|
*
|
128
130
|
* @param {String} [message] The error message for this exception.
|
129
131
|
*
|
@@ -160,6 +162,11 @@ define('Core/DeveloperError',[
|
|
160
162
|
this.stack = stack;
|
161
163
|
}
|
162
164
|
|
165
|
+
if (defined(Object.create)) {
|
166
|
+
DeveloperError.prototype = Object.create(Error.prototype);
|
167
|
+
DeveloperError.prototype.constructor = DeveloperError;
|
168
|
+
}
|
169
|
+
|
163
170
|
DeveloperError.prototype.toString = function() {
|
164
171
|
var str = this.name + ': ' + this.message;
|
165
172
|
|
@@ -394,7 +401,7 @@ define('Core/Math',[
|
|
394
401
|
defaultValue,
|
395
402
|
defined,
|
396
403
|
DeveloperError) {
|
397
|
-
|
404
|
+
'use strict';
|
398
405
|
|
399
406
|
/**
|
400
407
|
* Math functions.
|
@@ -1174,7 +1181,7 @@ define('Core/Cartesian3',[
|
|
1174
1181
|
DeveloperError,
|
1175
1182
|
freezeObject,
|
1176
1183
|
CesiumMath) {
|
1177
|
-
|
1184
|
+
'use strict';
|
1178
1185
|
|
1179
1186
|
/**
|
1180
1187
|
* A 3D Cartesian point.
|
@@ -1343,6 +1350,63 @@ define('Core/Cartesian3',[
|
|
1343
1350
|
return result;
|
1344
1351
|
};
|
1345
1352
|
|
1353
|
+
/**
|
1354
|
+
* Flattens an array of Cartesian3s into an array of components.
|
1355
|
+
*
|
1356
|
+
* @param {Cartesian3[]} array The array of cartesians to pack.
|
1357
|
+
* @param {Number[]} result The array onto which to store the result.
|
1358
|
+
* @returns {Number[]} The packed array.
|
1359
|
+
*/
|
1360
|
+
Cartesian3.packArray = function(array, result) {
|
1361
|
+
if (!defined(array)) {
|
1362
|
+
throw new DeveloperError('array is required');
|
1363
|
+
}
|
1364
|
+
|
1365
|
+
var length = array.length;
|
1366
|
+
if (!defined(result)) {
|
1367
|
+
result = new Array(length * 3);
|
1368
|
+
} else {
|
1369
|
+
result.length = length * 3;
|
1370
|
+
}
|
1371
|
+
|
1372
|
+
for (var i = 0; i < length; ++i) {
|
1373
|
+
Cartesian3.pack(array[i], result, i * 3);
|
1374
|
+
}
|
1375
|
+
return result;
|
1376
|
+
};
|
1377
|
+
|
1378
|
+
/**
|
1379
|
+
* Unpacks an array of cartesian components into an array of Cartesian3s.
|
1380
|
+
*
|
1381
|
+
* @param {Number[]} array The array of components to unpack.
|
1382
|
+
* @param {Cartesian3[]} result The array onto which to store the result.
|
1383
|
+
* @returns {Cartesian3[]} The unpacked array.
|
1384
|
+
*/
|
1385
|
+
Cartesian3.unpackArray = function(array, result) {
|
1386
|
+
if (!defined(array)) {
|
1387
|
+
throw new DeveloperError('array is required');
|
1388
|
+
}
|
1389
|
+
if (array.length < 3) {
|
1390
|
+
throw new DeveloperError('array length cannot be less than 3.');
|
1391
|
+
}
|
1392
|
+
if (array.length % 3 !== 0) {
|
1393
|
+
throw new DeveloperError('array length must be a multiple of 3.');
|
1394
|
+
}
|
1395
|
+
|
1396
|
+
var length = array.length;
|
1397
|
+
if (!defined(result)) {
|
1398
|
+
result = new Array(length / 3);
|
1399
|
+
} else {
|
1400
|
+
result.length = length / 3;
|
1401
|
+
}
|
1402
|
+
|
1403
|
+
for (var i = 0; i < length; i += 3) {
|
1404
|
+
var index = i / 3;
|
1405
|
+
result[index] = Cartesian3.unpack(array, i, result[index]);
|
1406
|
+
}
|
1407
|
+
return result;
|
1408
|
+
};
|
1409
|
+
|
1346
1410
|
/**
|
1347
1411
|
* Creates a Cartesian3 from three consecutive elements in an array.
|
1348
1412
|
* @function
|
@@ -1909,9 +1973,9 @@ define('Core/Cartesian3',[
|
|
1909
1973
|
throw new DeveloperError('latitude is required');
|
1910
1974
|
}
|
1911
1975
|
|
1912
|
-
|
1913
|
-
|
1914
|
-
return Cartesian3.fromRadians(
|
1976
|
+
longitude = CesiumMath.toRadians(longitude);
|
1977
|
+
latitude = CesiumMath.toRadians(latitude);
|
1978
|
+
return Cartesian3.fromRadians(longitude, latitude, height, ellipsoid, result);
|
1915
1979
|
};
|
1916
1980
|
|
1917
1981
|
var scratchN = new Cartesian3();
|
@@ -1972,15 +2036,30 @@ define('Core/Cartesian3',[
|
|
1972
2036
|
*/
|
1973
2037
|
Cartesian3.fromDegreesArray = function(coordinates, ellipsoid, result) {
|
1974
2038
|
if (!defined(coordinates)) {
|
1975
|
-
throw new DeveloperError('
|
2039
|
+
throw new DeveloperError('coordinates is required.');
|
2040
|
+
}
|
2041
|
+
if (coordinates.length < 2) {
|
2042
|
+
throw new DeveloperError('coordinates length cannot be less than 2.');
|
2043
|
+
}
|
2044
|
+
if (coordinates.length % 2 !== 0) {
|
2045
|
+
throw new DeveloperError('coordinates length must be a multiple of 2.');
|
1976
2046
|
}
|
1977
2047
|
|
1978
|
-
var
|
1979
|
-
|
1980
|
-
|
2048
|
+
var length = coordinates.length;
|
2049
|
+
if (!defined(result)) {
|
2050
|
+
result = new Array(length / 2);
|
2051
|
+
} else {
|
2052
|
+
result.length = length / 2;
|
2053
|
+
}
|
2054
|
+
|
2055
|
+
for (var i = 0; i < length; i += 2) {
|
2056
|
+
var longitude = coordinates[i];
|
2057
|
+
var latitude = coordinates[i + 1];
|
2058
|
+
var index = i / 2;
|
2059
|
+
result[index] = Cartesian3.fromDegrees(longitude, latitude, 0, ellipsoid, result[index]);
|
1981
2060
|
}
|
1982
2061
|
|
1983
|
-
return
|
2062
|
+
return result;
|
1984
2063
|
};
|
1985
2064
|
|
1986
2065
|
/**
|
@@ -1996,26 +2075,27 @@ define('Core/Cartesian3',[
|
|
1996
2075
|
*/
|
1997
2076
|
Cartesian3.fromRadiansArray = function(coordinates, ellipsoid, result) {
|
1998
2077
|
if (!defined(coordinates)) {
|
1999
|
-
throw new DeveloperError('
|
2078
|
+
throw new DeveloperError('coordinates is required.');
|
2000
2079
|
}
|
2001
2080
|
if (coordinates.length < 2) {
|
2002
|
-
throw new DeveloperError('
|
2081
|
+
throw new DeveloperError('coordinates length cannot be less than 2.');
|
2003
2082
|
}
|
2004
2083
|
if (coordinates.length % 2 !== 0) {
|
2005
|
-
throw new DeveloperError('
|
2084
|
+
throw new DeveloperError('coordinates length must be a multiple of 2.');
|
2006
2085
|
}
|
2007
2086
|
|
2008
2087
|
var length = coordinates.length;
|
2009
2088
|
if (!defined(result)) {
|
2010
|
-
result = new Array(length/2);
|
2089
|
+
result = new Array(length / 2);
|
2011
2090
|
} else {
|
2012
|
-
result.length = length/2;
|
2091
|
+
result.length = length / 2;
|
2013
2092
|
}
|
2014
2093
|
|
2015
|
-
for (
|
2016
|
-
var
|
2017
|
-
var
|
2018
|
-
|
2094
|
+
for (var i = 0; i < length; i += 2) {
|
2095
|
+
var longitude = coordinates[i];
|
2096
|
+
var latitude = coordinates[i + 1];
|
2097
|
+
var index = i / 2;
|
2098
|
+
result[index] = Cartesian3.fromRadians(longitude, latitude, 0, ellipsoid, result[index]);
|
2019
2099
|
}
|
2020
2100
|
|
2021
2101
|
return result;
|
@@ -2024,7 +2104,7 @@ define('Core/Cartesian3',[
|
|
2024
2104
|
/**
|
2025
2105
|
* Returns an array of Cartesian3 positions given an array of longitude, latitude and height values where longitude and latitude are given in degrees.
|
2026
2106
|
*
|
2027
|
-
* @param {Number[]} coordinates A list of longitude, latitude and height values. Values alternate [longitude, latitude, height
|
2107
|
+
* @param {Number[]} coordinates A list of longitude, latitude and height values. Values alternate [longitude, latitude, height, longitude, latitude, height...].
|
2028
2108
|
* @param {Ellipsoid} [ellipsoid=Ellipsoid.WGS84] The ellipsoid on which the position lies.
|
2029
2109
|
* @param {Cartesian3[]} [result] An array of Cartesian3 objects to store the result.
|
2030
2110
|
* @returns {Cartesian3[]} The array of positions.
|
@@ -2034,29 +2114,37 @@ define('Core/Cartesian3',[
|
|
2034
2114
|
*/
|
2035
2115
|
Cartesian3.fromDegreesArrayHeights = function(coordinates, ellipsoid, result) {
|
2036
2116
|
if (!defined(coordinates)) {
|
2037
|
-
throw new DeveloperError('
|
2117
|
+
throw new DeveloperError('coordinates is required.');
|
2038
2118
|
}
|
2039
2119
|
if (coordinates.length < 3) {
|
2040
|
-
throw new DeveloperError('
|
2120
|
+
throw new DeveloperError('coordinates length cannot be less than 3.');
|
2041
2121
|
}
|
2042
2122
|
if (coordinates.length % 3 !== 0) {
|
2043
|
-
throw new DeveloperError('
|
2123
|
+
throw new DeveloperError('coordinates length must be a multiple of 3.');
|
2044
2124
|
}
|
2045
2125
|
|
2046
|
-
var
|
2047
|
-
|
2048
|
-
|
2049
|
-
|
2050
|
-
|
2126
|
+
var length = coordinates.length;
|
2127
|
+
if (!defined(result)) {
|
2128
|
+
result = new Array(length / 3);
|
2129
|
+
} else {
|
2130
|
+
result.length = length / 3;
|
2131
|
+
}
|
2132
|
+
|
2133
|
+
for (var i = 0; i < length; i += 3) {
|
2134
|
+
var longitude = coordinates[i];
|
2135
|
+
var latitude = coordinates[i + 1];
|
2136
|
+
var height = coordinates[i + 2];
|
2137
|
+
var index = i / 3;
|
2138
|
+
result[index] = Cartesian3.fromDegrees(longitude, latitude, height, ellipsoid, result[index]);
|
2051
2139
|
}
|
2052
2140
|
|
2053
|
-
return
|
2141
|
+
return result;
|
2054
2142
|
};
|
2055
2143
|
|
2056
2144
|
/**
|
2057
2145
|
* Returns an array of Cartesian3 positions given an array of longitude, latitude and height values where longitude and latitude are given in radians.
|
2058
2146
|
*
|
2059
|
-
* @param {Number[]} coordinates A list of longitude, latitude and height values. Values alternate [longitude, latitude, height
|
2147
|
+
* @param {Number[]} coordinates A list of longitude, latitude and height values. Values alternate [longitude, latitude, height, longitude, latitude, height...].
|
2060
2148
|
* @param {Ellipsoid} [ellipsoid=Ellipsoid.WGS84] The ellipsoid on which the position lies.
|
2061
2149
|
* @param {Cartesian3[]} [result] An array of Cartesian3 objects to store the result.
|
2062
2150
|
* @returns {Cartesian3[]} The array of positions.
|
@@ -2066,27 +2154,28 @@ define('Core/Cartesian3',[
|
|
2066
2154
|
*/
|
2067
2155
|
Cartesian3.fromRadiansArrayHeights = function(coordinates, ellipsoid, result) {
|
2068
2156
|
if (!defined(coordinates)) {
|
2069
|
-
throw new DeveloperError('
|
2157
|
+
throw new DeveloperError('coordinates is required.');
|
2070
2158
|
}
|
2071
2159
|
if (coordinates.length < 3) {
|
2072
|
-
throw new DeveloperError('
|
2160
|
+
throw new DeveloperError('coordinates length cannot be less than 3.');
|
2073
2161
|
}
|
2074
2162
|
if (coordinates.length % 3 !== 0) {
|
2075
|
-
throw new DeveloperError('
|
2163
|
+
throw new DeveloperError('coordinates length must be a multiple of 3.');
|
2076
2164
|
}
|
2077
2165
|
|
2078
2166
|
var length = coordinates.length;
|
2079
2167
|
if (!defined(result)) {
|
2080
|
-
result = new Array(length/3);
|
2168
|
+
result = new Array(length / 3);
|
2081
2169
|
} else {
|
2082
|
-
result.length = length/3;
|
2170
|
+
result.length = length / 3;
|
2083
2171
|
}
|
2084
2172
|
|
2085
|
-
for (
|
2086
|
-
var
|
2087
|
-
var
|
2088
|
-
var
|
2089
|
-
|
2173
|
+
for (var i = 0; i < length; i += 3) {
|
2174
|
+
var longitude = coordinates[i];
|
2175
|
+
var latitude = coordinates[i + 1];
|
2176
|
+
var height = coordinates[i + 2];
|
2177
|
+
var index = i / 3;
|
2178
|
+
result[index] = Cartesian3.fromRadians(longitude, latitude, height, ellipsoid, result[index]);
|
2090
2179
|
}
|
2091
2180
|
|
2092
2181
|
return result;
|
@@ -2182,7 +2271,7 @@ define('Core/scaleToGeodeticSurface',[
|
|
2182
2271
|
defined,
|
2183
2272
|
DeveloperError,
|
2184
2273
|
CesiumMath) {
|
2185
|
-
|
2274
|
+
'use strict';
|
2186
2275
|
|
2187
2276
|
var scaleToGeodeticSurfaceIntersection = new Cartesian3();
|
2188
2277
|
var scaleToGeodeticSurfaceGradient = new Cartesian3();
|
@@ -2323,7 +2412,7 @@ define('Core/Cartographic',[
|
|
2323
2412
|
freezeObject,
|
2324
2413
|
CesiumMath,
|
2325
2414
|
scaleToGeodeticSurface) {
|
2326
|
-
|
2415
|
+
'use strict';
|
2327
2416
|
|
2328
2417
|
/**
|
2329
2418
|
* A position defined by longitude, latitude, and height.
|
@@ -2578,7 +2667,7 @@ define('Core/defineProperties',[
|
|
2578
2667
|
'./defined'
|
2579
2668
|
], function(
|
2580
2669
|
defined) {
|
2581
|
-
|
2670
|
+
'use strict';
|
2582
2671
|
|
2583
2672
|
var definePropertyWorks = (function() {
|
2584
2673
|
try {
|
@@ -2628,7 +2717,7 @@ define('Core/Ellipsoid',[
|
|
2628
2717
|
freezeObject,
|
2629
2718
|
CesiumMath,
|
2630
2719
|
scaleToGeodeticSurface) {
|
2631
|
-
|
2720
|
+
'use strict';
|
2632
2721
|
|
2633
2722
|
function initialize(ellipsoid, x, y, z) {
|
2634
2723
|
x = defaultValue(x, 0.0);
|
@@ -3221,7 +3310,7 @@ define('Core/Rectangle',[
|
|
3221
3310
|
Ellipsoid,
|
3222
3311
|
freezeObject,
|
3223
3312
|
CesiumMath) {
|
3224
|
-
|
3313
|
+
'use strict';
|
3225
3314
|
|
3226
3315
|
/**
|
3227
3316
|
* A two dimensional region specified as longitude and latitude coordinates.
|
@@ -3464,6 +3553,61 @@ define('Core/Rectangle',[
|
|
3464
3553
|
return result;
|
3465
3554
|
};
|
3466
3555
|
|
3556
|
+
/**
|
3557
|
+
* Creates the smallest possible Rectangle that encloses all positions in the provided array.
|
3558
|
+
*
|
3559
|
+
* @param {Cartesian[]} cartesians The list of Cartesian instances.
|
3560
|
+
* @param {Ellipsoid} [ellipsoid=Ellipsoid.WGS84] The ellipsoid the cartesians are on.
|
3561
|
+
* @param {Rectangle} [result] The object onto which to store the result, or undefined if a new instance should be created.
|
3562
|
+
* @returns {Rectangle} The modified result parameter or a new Rectangle instance if none was provided.
|
3563
|
+
*/
|
3564
|
+
Rectangle.fromCartesianArray = function(cartesians, ellipsoid, result) {
|
3565
|
+
if (!defined(cartesians)) {
|
3566
|
+
throw new DeveloperError('cartesians is required.');
|
3567
|
+
}
|
3568
|
+
|
3569
|
+
var west = Number.MAX_VALUE;
|
3570
|
+
var east = -Number.MAX_VALUE;
|
3571
|
+
var westOverIDL = Number.MAX_VALUE;
|
3572
|
+
var eastOverIDL = -Number.MAX_VALUE;
|
3573
|
+
var south = Number.MAX_VALUE;
|
3574
|
+
var north = -Number.MAX_VALUE;
|
3575
|
+
|
3576
|
+
for ( var i = 0, len = cartesians.length; i < len; i++) {
|
3577
|
+
var position = ellipsoid.cartesianToCartographic(cartesians[i]);
|
3578
|
+
west = Math.min(west, position.longitude);
|
3579
|
+
east = Math.max(east, position.longitude);
|
3580
|
+
south = Math.min(south, position.latitude);
|
3581
|
+
north = Math.max(north, position.latitude);
|
3582
|
+
|
3583
|
+
var lonAdjusted = position.longitude >= 0 ? position.longitude : position.longitude + CesiumMath.TWO_PI;
|
3584
|
+
westOverIDL = Math.min(westOverIDL, lonAdjusted);
|
3585
|
+
eastOverIDL = Math.max(eastOverIDL, lonAdjusted);
|
3586
|
+
}
|
3587
|
+
|
3588
|
+
if(east - west > eastOverIDL - westOverIDL) {
|
3589
|
+
west = westOverIDL;
|
3590
|
+
east = eastOverIDL;
|
3591
|
+
|
3592
|
+
if (east > CesiumMath.PI) {
|
3593
|
+
east = east - CesiumMath.TWO_PI;
|
3594
|
+
}
|
3595
|
+
if (west > CesiumMath.PI) {
|
3596
|
+
west = west - CesiumMath.TWO_PI;
|
3597
|
+
}
|
3598
|
+
}
|
3599
|
+
|
3600
|
+
if (!defined(result)) {
|
3601
|
+
return new Rectangle(west, south, east, north);
|
3602
|
+
}
|
3603
|
+
|
3604
|
+
result.west = west;
|
3605
|
+
result.south = south;
|
3606
|
+
result.east = east;
|
3607
|
+
result.north = north;
|
3608
|
+
return result;
|
3609
|
+
};
|
3610
|
+
|
3467
3611
|
/**
|
3468
3612
|
* Duplicates an Rectangle.
|
3469
3613
|
*
|
@@ -3968,7 +4112,7 @@ define('Core/GeographicProjection',[
|
|
3968
4112
|
defineProperties,
|
3969
4113
|
DeveloperError,
|
3970
4114
|
Ellipsoid) {
|
3971
|
-
|
4115
|
+
'use strict';
|
3972
4116
|
|
3973
4117
|
/**
|
3974
4118
|
* A simple map projection where longitude and latitude are linearly mapped to X and Y by multiplying
|
@@ -4074,7 +4218,7 @@ define('Core/Intersect',[
|
|
4074
4218
|
'./freezeObject'
|
4075
4219
|
], function(
|
4076
4220
|
freezeObject) {
|
4077
|
-
|
4221
|
+
'use strict';
|
4078
4222
|
|
4079
4223
|
/**
|
4080
4224
|
* This enumerated type is used in determining where, relative to the frustum, an
|
@@ -4117,7 +4261,7 @@ define('Core/Interval',[
|
|
4117
4261
|
'./defaultValue'
|
4118
4262
|
], function(
|
4119
4263
|
defaultValue) {
|
4120
|
-
|
4264
|
+
'use strict';
|
4121
4265
|
|
4122
4266
|
/**
|
4123
4267
|
* Represents the closed interval [start, stop].
|
@@ -4150,6 +4294,7 @@ define('Core/Matrix3',[
|
|
4150
4294
|
'./Cartesian3',
|
4151
4295
|
'./defaultValue',
|
4152
4296
|
'./defined',
|
4297
|
+
'./defineProperties',
|
4153
4298
|
'./DeveloperError',
|
4154
4299
|
'./freezeObject',
|
4155
4300
|
'./Math'
|
@@ -4157,10 +4302,11 @@ define('Core/Matrix3',[
|
|
4157
4302
|
Cartesian3,
|
4158
4303
|
defaultValue,
|
4159
4304
|
defined,
|
4305
|
+
defineProperties,
|
4160
4306
|
DeveloperError,
|
4161
4307
|
freezeObject,
|
4162
4308
|
CesiumMath) {
|
4163
|
-
|
4309
|
+
'use strict';
|
4164
4310
|
|
4165
4311
|
/**
|
4166
4312
|
* A 3x3 matrix, indexable as a column-major order array.
|
@@ -5562,6 +5708,20 @@ define('Core/Matrix3',[
|
|
5562
5708
|
*/
|
5563
5709
|
Matrix3.COLUMN2ROW2 = 8;
|
5564
5710
|
|
5711
|
+
defineProperties(Matrix3.prototype, {
|
5712
|
+
/**
|
5713
|
+
* Gets the number of items in the collection.
|
5714
|
+
* @memberof Matrix3.prototype
|
5715
|
+
*
|
5716
|
+
* @type {Number}
|
5717
|
+
*/
|
5718
|
+
length : {
|
5719
|
+
get : function() {
|
5720
|
+
return Matrix3.packedLength;
|
5721
|
+
}
|
5722
|
+
}
|
5723
|
+
});
|
5724
|
+
|
5565
5725
|
/**
|
5566
5726
|
* Duplicates the provided Matrix3 instance.
|
5567
5727
|
*
|
@@ -5639,7 +5799,7 @@ define('Core/Cartesian4',[
|
|
5639
5799
|
DeveloperError,
|
5640
5800
|
freezeObject,
|
5641
5801
|
CesiumMath) {
|
5642
|
-
|
5802
|
+
'use strict';
|
5643
5803
|
|
5644
5804
|
/**
|
5645
5805
|
* A 4D Cartesian point.
|
@@ -5808,6 +5968,57 @@ define('Core/Cartesian4',[
|
|
5808
5968
|
return result;
|
5809
5969
|
};
|
5810
5970
|
|
5971
|
+
/**
|
5972
|
+
* Flattens an array of Cartesian4s into and array of components.
|
5973
|
+
*
|
5974
|
+
* @param {Cartesian4[]} array The array of cartesians to pack.
|
5975
|
+
* @param {Number[]} result The array onto which to store the result.
|
5976
|
+
* @returns {Number[]} The packed array.
|
5977
|
+
*/
|
5978
|
+
Cartesian4.packArray = function(array, result) {
|
5979
|
+
if (!defined(array)) {
|
5980
|
+
throw new DeveloperError('array is required');
|
5981
|
+
}
|
5982
|
+
|
5983
|
+
var length = array.length;
|
5984
|
+
if (!defined(result)) {
|
5985
|
+
result = new Array(length * 4);
|
5986
|
+
} else {
|
5987
|
+
result.length = length * 4;
|
5988
|
+
}
|
5989
|
+
|
5990
|
+
for (var i = 0; i < length; ++i) {
|
5991
|
+
Cartesian4.pack(array[i], result, i * 4);
|
5992
|
+
}
|
5993
|
+
return result;
|
5994
|
+
};
|
5995
|
+
|
5996
|
+
/**
|
5997
|
+
* Unpacks an array of cartesian components into and array of Cartesian4s.
|
5998
|
+
*
|
5999
|
+
* @param {Number[]} array The array of components to unpack.
|
6000
|
+
* @param {Cartesian4[]} result The array onto which to store the result.
|
6001
|
+
* @returns {Cartesian4[]} The unpacked array.
|
6002
|
+
*/
|
6003
|
+
Cartesian4.unpackArray = function(array, result) {
|
6004
|
+
if (!defined(array)) {
|
6005
|
+
throw new DeveloperError('array is required');
|
6006
|
+
}
|
6007
|
+
|
6008
|
+
var length = array.length;
|
6009
|
+
if (!defined(result)) {
|
6010
|
+
result = new Array(length / 4);
|
6011
|
+
} else {
|
6012
|
+
result.length = length / 4;
|
6013
|
+
}
|
6014
|
+
|
6015
|
+
for (var i = 0; i < length; i += 4) {
|
6016
|
+
var index = i / 4;
|
6017
|
+
result[index] = Cartesian4.unpack(array, i, result[index]);
|
6018
|
+
}
|
6019
|
+
return result;
|
6020
|
+
};
|
6021
|
+
|
5811
6022
|
/**
|
5812
6023
|
* Creates a Cartesian4 from four consecutive elements in an array.
|
5813
6024
|
* @function
|
@@ -6413,7 +6624,7 @@ define('Core/RuntimeError',[
|
|
6413
6624
|
'./defined'
|
6414
6625
|
], function(
|
6415
6626
|
defined) {
|
6416
|
-
|
6627
|
+
'use strict';
|
6417
6628
|
|
6418
6629
|
/**
|
6419
6630
|
* Constructs an exception object that is thrown due to an error that can occur at runtime, e.g.,
|
@@ -6426,6 +6637,7 @@ define('Core/RuntimeError',[
|
|
6426
6637
|
*
|
6427
6638
|
* @alias RuntimeError
|
6428
6639
|
* @constructor
|
6640
|
+
* @extends Error
|
6429
6641
|
*
|
6430
6642
|
* @param {String} [message] The error message for this exception.
|
6431
6643
|
*
|
@@ -6461,6 +6673,12 @@ define('Core/RuntimeError',[
|
|
6461
6673
|
*/
|
6462
6674
|
this.stack = stack;
|
6463
6675
|
}
|
6676
|
+
|
6677
|
+
if (defined(Object.create)) {
|
6678
|
+
RuntimeError.prototype = Object.create(Error.prototype);
|
6679
|
+
RuntimeError.prototype.constructor = RuntimeError;
|
6680
|
+
}
|
6681
|
+
|
6464
6682
|
RuntimeError.prototype.toString = function() {
|
6465
6683
|
var str = this.name + ': ' + this.message;
|
6466
6684
|
|
@@ -6480,6 +6698,7 @@ define('Core/Matrix4',[
|
|
6480
6698
|
'./Cartesian4',
|
6481
6699
|
'./defaultValue',
|
6482
6700
|
'./defined',
|
6701
|
+
'./defineProperties',
|
6483
6702
|
'./DeveloperError',
|
6484
6703
|
'./freezeObject',
|
6485
6704
|
'./Math',
|
@@ -6490,12 +6709,13 @@ define('Core/Matrix4',[
|
|
6490
6709
|
Cartesian4,
|
6491
6710
|
defaultValue,
|
6492
6711
|
defined,
|
6712
|
+
defineProperties,
|
6493
6713
|
DeveloperError,
|
6494
6714
|
freezeObject,
|
6495
6715
|
CesiumMath,
|
6496
6716
|
Matrix3,
|
6497
6717
|
RuntimeError) {
|
6498
|
-
|
6718
|
+
'use strict';
|
6499
6719
|
|
6500
6720
|
/**
|
6501
6721
|
* A 4x4 matrix, indexable as a column-major order array.
|
@@ -6534,6 +6754,7 @@ define('Core/Matrix4',[
|
|
6534
6754
|
* @see Matrix4.computePerspectiveOffCenter
|
6535
6755
|
* @see Matrix4.computeInfinitePerspectiveOffCenter
|
6536
6756
|
* @see Matrix4.computeViewportTransformation
|
6757
|
+
* @see Matrix4.computeView
|
6537
6758
|
* @see Matrix2
|
6538
6759
|
* @see Matrix3
|
6539
6760
|
* @see Packable
|
@@ -7001,7 +7222,7 @@ define('Core/Matrix4',[
|
|
7001
7222
|
};
|
7002
7223
|
|
7003
7224
|
var fromCameraF = new Cartesian3();
|
7004
|
-
var
|
7225
|
+
var fromCameraR = new Cartesian3();
|
7005
7226
|
var fromCameraU = new Cartesian3();
|
7006
7227
|
|
7007
7228
|
/**
|
@@ -7016,55 +7237,55 @@ define('Core/Matrix4',[
|
|
7016
7237
|
throw new DeveloperError('camera is required.');
|
7017
7238
|
}
|
7018
7239
|
|
7019
|
-
var
|
7020
|
-
var
|
7240
|
+
var position = camera.position;
|
7241
|
+
var direction = camera.direction;
|
7021
7242
|
var up = camera.up;
|
7022
7243
|
|
7023
|
-
if (!defined(
|
7024
|
-
throw new DeveloperError('camera.
|
7244
|
+
if (!defined(position)) {
|
7245
|
+
throw new DeveloperError('camera.position is required.');
|
7025
7246
|
}
|
7026
|
-
if (!defined(
|
7027
|
-
throw new DeveloperError('camera.
|
7247
|
+
if (!defined(direction)) {
|
7248
|
+
throw new DeveloperError('camera.direction is required.');
|
7028
7249
|
}
|
7029
7250
|
if (!defined(up)) {
|
7030
7251
|
throw new DeveloperError('camera.up is required.');
|
7031
7252
|
}
|
7032
7253
|
|
7033
|
-
Cartesian3.normalize(
|
7034
|
-
Cartesian3.normalize(Cartesian3.cross(fromCameraF, up,
|
7035
|
-
Cartesian3.normalize(Cartesian3.cross(
|
7254
|
+
Cartesian3.normalize(direction, fromCameraF);
|
7255
|
+
Cartesian3.normalize(Cartesian3.cross(fromCameraF, up, fromCameraR), fromCameraR);
|
7256
|
+
Cartesian3.normalize(Cartesian3.cross(fromCameraR, fromCameraF, fromCameraU), fromCameraU);
|
7036
7257
|
|
7037
|
-
var sX =
|
7038
|
-
var sY =
|
7039
|
-
var sZ =
|
7258
|
+
var sX = fromCameraR.x;
|
7259
|
+
var sY = fromCameraR.y;
|
7260
|
+
var sZ = fromCameraR.z;
|
7040
7261
|
var fX = fromCameraF.x;
|
7041
7262
|
var fY = fromCameraF.y;
|
7042
7263
|
var fZ = fromCameraF.z;
|
7043
7264
|
var uX = fromCameraU.x;
|
7044
7265
|
var uY = fromCameraU.y;
|
7045
7266
|
var uZ = fromCameraU.z;
|
7046
|
-
var
|
7047
|
-
var
|
7048
|
-
var
|
7049
|
-
var t0 = sX * -
|
7050
|
-
var t1 = uX * -
|
7051
|
-
var t2 = fX *
|
7052
|
-
|
7053
|
-
//The code below this comment is an optimized
|
7054
|
-
//version of the commented lines.
|
7055
|
-
//Rather that create two matrices and then multiply,
|
7056
|
-
//we just bake in the multiplcation as part of creation.
|
7057
|
-
//var rotation = new Matrix4(
|
7058
|
-
//
|
7059
|
-
//
|
7060
|
-
//
|
7061
|
-
//
|
7062
|
-
//var translation = new Matrix4(
|
7063
|
-
//
|
7064
|
-
//
|
7065
|
-
//
|
7066
|
-
//
|
7067
|
-
//return rotation.multiply(translation);
|
7267
|
+
var positionX = position.x;
|
7268
|
+
var positionY = position.y;
|
7269
|
+
var positionZ = position.z;
|
7270
|
+
var t0 = sX * -positionX + sY * -positionY+ sZ * -positionZ;
|
7271
|
+
var t1 = uX * -positionX + uY * -positionY+ uZ * -positionZ;
|
7272
|
+
var t2 = fX * positionX + fY * positionY + fZ * positionZ;
|
7273
|
+
|
7274
|
+
// The code below this comment is an optimized
|
7275
|
+
// version of the commented lines.
|
7276
|
+
// Rather that create two matrices and then multiply,
|
7277
|
+
// we just bake in the multiplcation as part of creation.
|
7278
|
+
// var rotation = new Matrix4(
|
7279
|
+
// sX, sY, sZ, 0.0,
|
7280
|
+
// uX, uY, uZ, 0.0,
|
7281
|
+
// -fX, -fY, -fZ, 0.0,
|
7282
|
+
// 0.0, 0.0, 0.0, 1.0);
|
7283
|
+
// var translation = new Matrix4(
|
7284
|
+
// 1.0, 0.0, 0.0, -position.x,
|
7285
|
+
// 0.0, 1.0, 0.0, -position.y,
|
7286
|
+
// 0.0, 0.0, 1.0, -position.z,
|
7287
|
+
// 0.0, 0.0, 0.0, 1.0);
|
7288
|
+
// return rotation.multiply(translation);
|
7068
7289
|
if (!defined(result)) {
|
7069
7290
|
return new Matrix4(
|
7070
7291
|
sX, sY, sZ, t0,
|
@@ -7089,7 +7310,6 @@ define('Core/Matrix4',[
|
|
7089
7310
|
result[14] = t2;
|
7090
7311
|
result[15] = 1.0;
|
7091
7312
|
return result;
|
7092
|
-
|
7093
7313
|
};
|
7094
7314
|
|
7095
7315
|
/**
|
@@ -7102,14 +7322,14 @@ define('Core/Matrix4',[
|
|
7102
7322
|
* @param {Matrix4} result The object in which the result will be stored.
|
7103
7323
|
* @returns {Matrix4} The modified result parameter.
|
7104
7324
|
*
|
7105
|
-
* @exception {DeveloperError} fovY must be in
|
7325
|
+
* @exception {DeveloperError} fovY must be in (0, PI].
|
7106
7326
|
* @exception {DeveloperError} aspectRatio must be greater than zero.
|
7107
7327
|
* @exception {DeveloperError} near must be greater than zero.
|
7108
7328
|
* @exception {DeveloperError} far must be greater than zero.
|
7109
7329
|
*/
|
7110
7330
|
Matrix4.computePerspectiveFieldOfView = function(fovY, aspectRatio, near, far, result) {
|
7111
7331
|
if (fovY <= 0.0 || fovY > Math.PI) {
|
7112
|
-
throw new DeveloperError('fovY must be in
|
7332
|
+
throw new DeveloperError('fovY must be in (0, PI].');
|
7113
7333
|
}
|
7114
7334
|
if (aspectRatio <= 0.0) {
|
7115
7335
|
throw new DeveloperError('aspectRatio must be greater than zero.');
|
@@ -7285,7 +7505,6 @@ define('Core/Matrix4',[
|
|
7285
7505
|
* @param {Number} bottom The number of meters below of the camera that will be in view.
|
7286
7506
|
* @param {Number} top The number of meters above of the camera that will be in view.
|
7287
7507
|
* @param {Number} near The distance to the near plane in meters.
|
7288
|
-
* @param {Number} far The distance to the far plane in meters.
|
7289
7508
|
* @param {Matrix4} result The object in which the result will be stored.
|
7290
7509
|
* @returns {Matrix4} The modified result parameter.
|
7291
7510
|
*/
|
@@ -7398,6 +7617,52 @@ define('Core/Matrix4',[
|
|
7398
7617
|
return result;
|
7399
7618
|
};
|
7400
7619
|
|
7620
|
+
/**
|
7621
|
+
* Computes a Matrix4 instance that transforms from world space to view space.
|
7622
|
+
*
|
7623
|
+
* @param {Cartesian3} position The position of the camera.
|
7624
|
+
* @param {Cartesian3} direction The forward direction.
|
7625
|
+
* @param {Cartesian3} up The up direction.
|
7626
|
+
* @param {Cartesian3} right The right direction.
|
7627
|
+
* @param {Matrix4} result The object in which the result will be stored.
|
7628
|
+
* @returns {Matrix4} The modified result parameter.
|
7629
|
+
*/
|
7630
|
+
Matrix4.computeView = function(position, direction, up, right, result) {
|
7631
|
+
if (!defined(position)) {
|
7632
|
+
throw new DeveloperError('position is required');
|
7633
|
+
}
|
7634
|
+
if (!defined(direction)) {
|
7635
|
+
throw new DeveloperError('direction is required');
|
7636
|
+
}
|
7637
|
+
if (!defined(up)) {
|
7638
|
+
throw new DeveloperError('up is required');
|
7639
|
+
}
|
7640
|
+
if (!defined(right)) {
|
7641
|
+
throw new DeveloperError('right is required');
|
7642
|
+
}
|
7643
|
+
if (!defined(result)) {
|
7644
|
+
throw new DeveloperError('result is required');
|
7645
|
+
}
|
7646
|
+
|
7647
|
+
result[0] = right.x;
|
7648
|
+
result[1] = up.x;
|
7649
|
+
result[2] = -direction.x;
|
7650
|
+
result[3] = 0.0;
|
7651
|
+
result[4] = right.y;
|
7652
|
+
result[5] = up.y;
|
7653
|
+
result[6] = -direction.y;
|
7654
|
+
result[7] = 0.0;
|
7655
|
+
result[8] = right.z;
|
7656
|
+
result[9] = up.z;
|
7657
|
+
result[10] = -direction.z;
|
7658
|
+
result[11] = 0.0;
|
7659
|
+
result[12] = -Cartesian3.dot(right, position);
|
7660
|
+
result[13] = -Cartesian3.dot(up, position);
|
7661
|
+
result[14] = Cartesian3.dot(direction, position);
|
7662
|
+
result[15] = 1.0;
|
7663
|
+
return result;
|
7664
|
+
};
|
7665
|
+
|
7401
7666
|
/**
|
7402
7667
|
* Computes an Array from the provided Matrix4 instance.
|
7403
7668
|
* The array will be in column-major order.
|
@@ -9090,6 +9355,20 @@ define('Core/Matrix4',[
|
|
9090
9355
|
*/
|
9091
9356
|
Matrix4.COLUMN3ROW3 = 15;
|
9092
9357
|
|
9358
|
+
defineProperties(Matrix4.prototype, {
|
9359
|
+
/**
|
9360
|
+
* Gets the number of items in the collection.
|
9361
|
+
* @memberof Matrix4.prototype
|
9362
|
+
*
|
9363
|
+
* @type {Number}
|
9364
|
+
*/
|
9365
|
+
length : {
|
9366
|
+
get : function() {
|
9367
|
+
return Matrix4.packedLength;
|
9368
|
+
}
|
9369
|
+
}
|
9370
|
+
});
|
9371
|
+
|
9093
9372
|
/**
|
9094
9373
|
* Duplicates the provided Matrix4 instance.
|
9095
9374
|
*
|
@@ -9173,7 +9452,7 @@ define('Core/Plane',[
|
|
9173
9452
|
defined,
|
9174
9453
|
DeveloperError,
|
9175
9454
|
freezeObject) {
|
9176
|
-
|
9455
|
+
'use strict';
|
9177
9456
|
|
9178
9457
|
/**
|
9179
9458
|
* A plane in Hessian Normal Form defined by
|
@@ -9360,7 +9639,7 @@ define('Core/BoundingSphere',[
|
|
9360
9639
|
Matrix4,
|
9361
9640
|
Plane,
|
9362
9641
|
Rectangle) {
|
9363
|
-
|
9642
|
+
'use strict';
|
9364
9643
|
|
9365
9644
|
/**
|
9366
9645
|
* A bounding sphere with a center and a radius.
|
@@ -10656,7 +10935,7 @@ define('Renderer/WebGLConstants',[
|
|
10656
10935
|
'../Core/freezeObject'
|
10657
10936
|
], function(
|
10658
10937
|
freezeObject) {
|
10659
|
-
|
10938
|
+
'use strict';
|
10660
10939
|
|
10661
10940
|
/**
|
10662
10941
|
* WebGL constants.
|
@@ -11252,7 +11531,7 @@ define('Core/Fullscreen',[
|
|
11252
11531
|
], function(
|
11253
11532
|
defined,
|
11254
11533
|
defineProperties) {
|
11255
|
-
|
11534
|
+
'use strict';
|
11256
11535
|
|
11257
11536
|
var _supportsFullscreen;
|
11258
11537
|
var _names = {
|
@@ -11420,22 +11699,22 @@ define('Core/Fullscreen',[
|
|
11420
11699
|
|
11421
11700
|
// casing of Fullscreen differs across browsers
|
11422
11701
|
name = prefix + 'FullscreenEnabled';
|
11423
|
-
if (
|
11702
|
+
if (document[name] !== undefined) {
|
11424
11703
|
_names.fullscreenEnabled = name;
|
11425
11704
|
} else {
|
11426
11705
|
name = prefix + 'FullScreenEnabled';
|
11427
|
-
if (
|
11706
|
+
if (document[name] !== undefined) {
|
11428
11707
|
_names.fullscreenEnabled = name;
|
11429
11708
|
}
|
11430
11709
|
}
|
11431
11710
|
|
11432
11711
|
// casing of Fullscreen differs across browsers
|
11433
11712
|
name = prefix + 'FullscreenElement';
|
11434
|
-
if (
|
11713
|
+
if (document[name] !== undefined) {
|
11435
11714
|
_names.fullscreenElement = name;
|
11436
11715
|
} else {
|
11437
11716
|
name = prefix + 'FullScreenElement';
|
11438
|
-
if (
|
11717
|
+
if (document[name] !== undefined) {
|
11439
11718
|
_names.fullscreenElement = name;
|
11440
11719
|
}
|
11441
11720
|
}
|
@@ -11443,7 +11722,7 @@ define('Core/Fullscreen',[
|
|
11443
11722
|
// thankfully, event names are all lowercase per spec
|
11444
11723
|
name = prefix + 'fullscreenchange';
|
11445
11724
|
// event names do not have 'on' in the front, but the property on the document does
|
11446
|
-
if (
|
11725
|
+
if (document['on' + name] !== undefined) {
|
11447
11726
|
//except on IE
|
11448
11727
|
if (prefix === 'ms') {
|
11449
11728
|
name = 'MSFullscreenChange';
|
@@ -11452,7 +11731,7 @@ define('Core/Fullscreen',[
|
|
11452
11731
|
}
|
11453
11732
|
|
11454
11733
|
name = prefix + 'fullscreenerror';
|
11455
|
-
if (
|
11734
|
+
if (document['on' + name] !== undefined) {
|
11456
11735
|
//except on IE
|
11457
11736
|
if (prefix === 'ms') {
|
11458
11737
|
name = 'MSFullscreenError';
|
@@ -11469,7 +11748,7 @@ define('Core/Fullscreen',[
|
|
11469
11748
|
* If fullscreen mode is not supported by the browser, does nothing.
|
11470
11749
|
*
|
11471
11750
|
* @param {Object} element The HTML element which will be placed into fullscreen mode.
|
11472
|
-
* @param {HMDVRDevice} vrDevice The VR device.
|
11751
|
+
* @param {HMDVRDevice} [vrDevice] The VR device.
|
11473
11752
|
*
|
11474
11753
|
* @example
|
11475
11754
|
* // Put the entire page into fullscreen.
|
@@ -11500,6 +11779,7 @@ define('Core/Fullscreen',[
|
|
11500
11779
|
|
11501
11780
|
return Fullscreen;
|
11502
11781
|
});
|
11782
|
+
|
11503
11783
|
/*global define*/
|
11504
11784
|
define('Core/FeatureDetection',[
|
11505
11785
|
'./defaultValue',
|
@@ -11509,7 +11789,7 @@ define('Core/FeatureDetection',[
|
|
11509
11789
|
defaultValue,
|
11510
11790
|
defined,
|
11511
11791
|
Fullscreen) {
|
11512
|
-
|
11792
|
+
'use strict';
|
11513
11793
|
|
11514
11794
|
var theNavigator;
|
11515
11795
|
if (typeof navigator !== 'undefined') {
|
@@ -11756,7 +12036,7 @@ define('Core/ComponentDatatype',[
|
|
11756
12036
|
DeveloperError,
|
11757
12037
|
FeatureDetection,
|
11758
12038
|
freezeObject) {
|
11759
|
-
|
12039
|
+
'use strict';
|
11760
12040
|
|
11761
12041
|
// Bail out if the browser doesn't support typed arrays, to prevent the setup function
|
11762
12042
|
// from failing, since we won't be able to create a WebGL context anyway.
|
@@ -12000,7 +12280,7 @@ define('Core/GeometryType',[
|
|
12000
12280
|
'./freezeObject'
|
12001
12281
|
], function(
|
12002
12282
|
freezeObject) {
|
12003
|
-
|
12283
|
+
'use strict';
|
12004
12284
|
|
12005
12285
|
/**
|
12006
12286
|
* @private
|
@@ -12022,7 +12302,7 @@ define('Core/PrimitiveType',[
|
|
12022
12302
|
], function(
|
12023
12303
|
WebGLConstants,
|
12024
12304
|
freezeObject) {
|
12025
|
-
|
12305
|
+
'use strict';
|
12026
12306
|
|
12027
12307
|
/**
|
12028
12308
|
* The type of a geometric primitive, i.e., points, lines, and triangles.
|
@@ -12120,7 +12400,7 @@ define('Core/Geometry',[
|
|
12120
12400
|
DeveloperError,
|
12121
12401
|
GeometryType,
|
12122
12402
|
PrimitiveType) {
|
12123
|
-
|
12403
|
+
'use strict';
|
12124
12404
|
|
12125
12405
|
/**
|
12126
12406
|
* A geometry representation with attributes forming vertices and optional index data
|
@@ -12313,7 +12593,7 @@ define('Core/GeometryAttribute',[
|
|
12313
12593
|
defaultValue,
|
12314
12594
|
defined,
|
12315
12595
|
DeveloperError) {
|
12316
|
-
|
12596
|
+
'use strict';
|
12317
12597
|
|
12318
12598
|
/**
|
12319
12599
|
* Values and type information for geometry attributes. A {@link Geometry}
|
@@ -12450,7 +12730,7 @@ define('Core/GeometryAttributes',[
|
|
12450
12730
|
'./defaultValue'
|
12451
12731
|
], function(
|
12452
12732
|
defaultValue) {
|
12453
|
-
|
12733
|
+
'use strict';
|
12454
12734
|
|
12455
12735
|
/**
|
12456
12736
|
* Attributes, which make up a geometry's vertices. Each property in this object corresponds to a
|
@@ -12554,7 +12834,7 @@ define('Core/IndexDatatype',[
|
|
12554
12834
|
DeveloperError,
|
12555
12835
|
freezeObject,
|
12556
12836
|
CesiumMath) {
|
12557
|
-
|
12837
|
+
'use strict';
|
12558
12838
|
|
12559
12839
|
/**
|
12560
12840
|
* Constants for WebGL index datatypes. These corresponds to the
|
@@ -12687,72 +12967,722 @@ define('Core/IndexDatatype',[
|
|
12687
12967
|
return freezeObject(IndexDatatype);
|
12688
12968
|
});
|
12689
12969
|
|
12690
|
-
|
12691
|
-
|
12692
|
-
'./defaultValue',
|
12693
|
-
'./defined',
|
12694
|
-
'./DeveloperError',
|
12695
|
-
'./freezeObject',
|
12696
|
-
'./Math'
|
12697
|
-
], function(
|
12698
|
-
defaultValue,
|
12699
|
-
defined,
|
12700
|
-
DeveloperError,
|
12701
|
-
freezeObject,
|
12702
|
-
CesiumMath) {
|
12703
|
-
"use strict";
|
12970
|
+
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define('ThirdParty/earcut-2.1.1',[],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.earcut = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
|
12971
|
+
'use strict';
|
12704
12972
|
|
12705
|
-
|
12706
|
-
* A 2D Cartesian point.
|
12707
|
-
* @alias Cartesian2
|
12708
|
-
* @constructor
|
12709
|
-
*
|
12710
|
-
* @param {Number} [x=0.0] The X component.
|
12711
|
-
* @param {Number} [y=0.0] The Y component.
|
12712
|
-
*
|
12713
|
-
* @see Cartesian3
|
12714
|
-
* @see Cartesian4
|
12715
|
-
* @see Packable
|
12716
|
-
*/
|
12717
|
-
function Cartesian2(x, y) {
|
12718
|
-
/**
|
12719
|
-
* The X component.
|
12720
|
-
* @type {Number}
|
12721
|
-
* @default 0.0
|
12722
|
-
*/
|
12723
|
-
this.x = defaultValue(x, 0.0);
|
12973
|
+
module.exports = earcut;
|
12724
12974
|
|
12725
|
-
|
12726
|
-
* The Y component.
|
12727
|
-
* @type {Number}
|
12728
|
-
* @default 0.0
|
12729
|
-
*/
|
12730
|
-
this.y = defaultValue(y, 0.0);
|
12731
|
-
}
|
12975
|
+
function earcut(data, holeIndices, dim) {
|
12732
12976
|
|
12733
|
-
|
12734
|
-
* Creates a Cartesian2 instance from x and y coordinates.
|
12735
|
-
*
|
12736
|
-
* @param {Number} x The x coordinate.
|
12737
|
-
* @param {Number} y The y coordinate.
|
12738
|
-
* @param {Cartesian2} [result] The object onto which to store the result.
|
12739
|
-
* @returns {Cartesian2} The modified result parameter or a new Cartesian2 instance if one was not provided.
|
12740
|
-
*/
|
12741
|
-
Cartesian2.fromElements = function(x, y, result) {
|
12742
|
-
if (!defined(result)) {
|
12743
|
-
return new Cartesian2(x, y);
|
12744
|
-
}
|
12977
|
+
dim = dim || 2;
|
12745
12978
|
|
12746
|
-
|
12747
|
-
|
12748
|
-
|
12749
|
-
|
12979
|
+
var hasHoles = holeIndices && holeIndices.length,
|
12980
|
+
outerLen = hasHoles ? holeIndices[0] * dim : data.length,
|
12981
|
+
outerNode = linkedList(data, 0, outerLen, dim, true),
|
12982
|
+
triangles = [];
|
12750
12983
|
|
12751
|
-
|
12752
|
-
|
12753
|
-
|
12754
|
-
|
12755
|
-
|
12984
|
+
if (!outerNode) return triangles;
|
12985
|
+
|
12986
|
+
var minX, minY, maxX, maxY, x, y, size;
|
12987
|
+
|
12988
|
+
if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim);
|
12989
|
+
|
12990
|
+
// if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox
|
12991
|
+
if (data.length > 80 * dim) {
|
12992
|
+
minX = maxX = data[0];
|
12993
|
+
minY = maxY = data[1];
|
12994
|
+
|
12995
|
+
for (var i = dim; i < outerLen; i += dim) {
|
12996
|
+
x = data[i];
|
12997
|
+
y = data[i + 1];
|
12998
|
+
if (x < minX) minX = x;
|
12999
|
+
if (y < minY) minY = y;
|
13000
|
+
if (x > maxX) maxX = x;
|
13001
|
+
if (y > maxY) maxY = y;
|
13002
|
+
}
|
13003
|
+
|
13004
|
+
// minX, minY and size are later used to transform coords into integers for z-order calculation
|
13005
|
+
size = Math.max(maxX - minX, maxY - minY);
|
13006
|
+
}
|
13007
|
+
|
13008
|
+
earcutLinked(outerNode, triangles, dim, minX, minY, size);
|
13009
|
+
|
13010
|
+
return triangles;
|
13011
|
+
}
|
13012
|
+
|
13013
|
+
// create a circular doubly linked list from polygon points in the specified winding order
|
13014
|
+
function linkedList(data, start, end, dim, clockwise) {
|
13015
|
+
var i, last;
|
13016
|
+
|
13017
|
+
if (clockwise === (signedArea(data, start, end, dim) > 0)) {
|
13018
|
+
for (i = start; i < end; i += dim) last = insertNode(i, data[i], data[i + 1], last);
|
13019
|
+
} else {
|
13020
|
+
for (i = end - dim; i >= start; i -= dim) last = insertNode(i, data[i], data[i + 1], last);
|
13021
|
+
}
|
13022
|
+
|
13023
|
+
if (last && equals(last, last.next)) {
|
13024
|
+
removeNode(last);
|
13025
|
+
last = last.next;
|
13026
|
+
}
|
13027
|
+
|
13028
|
+
return last;
|
13029
|
+
}
|
13030
|
+
|
13031
|
+
// eliminate colinear or duplicate points
|
13032
|
+
function filterPoints(start, end) {
|
13033
|
+
if (!start) return start;
|
13034
|
+
if (!end) end = start;
|
13035
|
+
|
13036
|
+
var p = start,
|
13037
|
+
again;
|
13038
|
+
do {
|
13039
|
+
again = false;
|
13040
|
+
|
13041
|
+
if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {
|
13042
|
+
removeNode(p);
|
13043
|
+
p = end = p.prev;
|
13044
|
+
if (p === p.next) return null;
|
13045
|
+
again = true;
|
13046
|
+
|
13047
|
+
} else {
|
13048
|
+
p = p.next;
|
13049
|
+
}
|
13050
|
+
} while (again || p !== end);
|
13051
|
+
|
13052
|
+
return end;
|
13053
|
+
}
|
13054
|
+
|
13055
|
+
// main ear slicing loop which triangulates a polygon (given as a linked list)
|
13056
|
+
function earcutLinked(ear, triangles, dim, minX, minY, size, pass) {
|
13057
|
+
if (!ear) return;
|
13058
|
+
|
13059
|
+
// interlink polygon nodes in z-order
|
13060
|
+
if (!pass && size) indexCurve(ear, minX, minY, size);
|
13061
|
+
|
13062
|
+
var stop = ear,
|
13063
|
+
prev, next;
|
13064
|
+
|
13065
|
+
// iterate through ears, slicing them one by one
|
13066
|
+
while (ear.prev !== ear.next) {
|
13067
|
+
prev = ear.prev;
|
13068
|
+
next = ear.next;
|
13069
|
+
|
13070
|
+
if (size ? isEarHashed(ear, minX, minY, size) : isEar(ear)) {
|
13071
|
+
// cut off the triangle
|
13072
|
+
triangles.push(prev.i / dim);
|
13073
|
+
triangles.push(ear.i / dim);
|
13074
|
+
triangles.push(next.i / dim);
|
13075
|
+
|
13076
|
+
removeNode(ear);
|
13077
|
+
|
13078
|
+
// skipping the next vertice leads to less sliver triangles
|
13079
|
+
ear = next.next;
|
13080
|
+
stop = next.next;
|
13081
|
+
|
13082
|
+
continue;
|
13083
|
+
}
|
13084
|
+
|
13085
|
+
ear = next;
|
13086
|
+
|
13087
|
+
// if we looped through the whole remaining polygon and can't find any more ears
|
13088
|
+
if (ear === stop) {
|
13089
|
+
// try filtering points and slicing again
|
13090
|
+
if (!pass) {
|
13091
|
+
earcutLinked(filterPoints(ear), triangles, dim, minX, minY, size, 1);
|
13092
|
+
|
13093
|
+
// if this didn't work, try curing all small self-intersections locally
|
13094
|
+
} else if (pass === 1) {
|
13095
|
+
ear = cureLocalIntersections(ear, triangles, dim);
|
13096
|
+
earcutLinked(ear, triangles, dim, minX, minY, size, 2);
|
13097
|
+
|
13098
|
+
// as a last resort, try splitting the remaining polygon into two
|
13099
|
+
} else if (pass === 2) {
|
13100
|
+
splitEarcut(ear, triangles, dim, minX, minY, size);
|
13101
|
+
}
|
13102
|
+
|
13103
|
+
break;
|
13104
|
+
}
|
13105
|
+
}
|
13106
|
+
}
|
13107
|
+
|
13108
|
+
// check whether a polygon node forms a valid ear with adjacent nodes
|
13109
|
+
function isEar(ear) {
|
13110
|
+
var a = ear.prev,
|
13111
|
+
b = ear,
|
13112
|
+
c = ear.next;
|
13113
|
+
|
13114
|
+
if (area(a, b, c) >= 0) return false; // reflex, can't be an ear
|
13115
|
+
|
13116
|
+
// now make sure we don't have other points inside the potential ear
|
13117
|
+
var p = ear.next.next;
|
13118
|
+
|
13119
|
+
while (p !== ear.prev) {
|
13120
|
+
if (pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&
|
13121
|
+
area(p.prev, p, p.next) >= 0) return false;
|
13122
|
+
p = p.next;
|
13123
|
+
}
|
13124
|
+
|
13125
|
+
return true;
|
13126
|
+
}
|
13127
|
+
|
13128
|
+
function isEarHashed(ear, minX, minY, size) {
|
13129
|
+
var a = ear.prev,
|
13130
|
+
b = ear,
|
13131
|
+
c = ear.next;
|
13132
|
+
|
13133
|
+
if (area(a, b, c) >= 0) return false; // reflex, can't be an ear
|
13134
|
+
|
13135
|
+
// triangle bbox; min & max are calculated like this for speed
|
13136
|
+
var minTX = a.x < b.x ? (a.x < c.x ? a.x : c.x) : (b.x < c.x ? b.x : c.x),
|
13137
|
+
minTY = a.y < b.y ? (a.y < c.y ? a.y : c.y) : (b.y < c.y ? b.y : c.y),
|
13138
|
+
maxTX = a.x > b.x ? (a.x > c.x ? a.x : c.x) : (b.x > c.x ? b.x : c.x),
|
13139
|
+
maxTY = a.y > b.y ? (a.y > c.y ? a.y : c.y) : (b.y > c.y ? b.y : c.y);
|
13140
|
+
|
13141
|
+
// z-order range for the current triangle bbox;
|
13142
|
+
var minZ = zOrder(minTX, minTY, minX, minY, size),
|
13143
|
+
maxZ = zOrder(maxTX, maxTY, minX, minY, size);
|
13144
|
+
|
13145
|
+
// first look for points inside the triangle in increasing z-order
|
13146
|
+
var p = ear.nextZ;
|
13147
|
+
|
13148
|
+
while (p && p.z <= maxZ) {
|
13149
|
+
if (p !== ear.prev && p !== ear.next &&
|
13150
|
+
pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&
|
13151
|
+
area(p.prev, p, p.next) >= 0) return false;
|
13152
|
+
p = p.nextZ;
|
13153
|
+
}
|
13154
|
+
|
13155
|
+
// then look for points in decreasing z-order
|
13156
|
+
p = ear.prevZ;
|
13157
|
+
|
13158
|
+
while (p && p.z >= minZ) {
|
13159
|
+
if (p !== ear.prev && p !== ear.next &&
|
13160
|
+
pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&
|
13161
|
+
area(p.prev, p, p.next) >= 0) return false;
|
13162
|
+
p = p.prevZ;
|
13163
|
+
}
|
13164
|
+
|
13165
|
+
return true;
|
13166
|
+
}
|
13167
|
+
|
13168
|
+
// go through all polygon nodes and cure small local self-intersections
|
13169
|
+
function cureLocalIntersections(start, triangles, dim) {
|
13170
|
+
var p = start;
|
13171
|
+
do {
|
13172
|
+
var a = p.prev,
|
13173
|
+
b = p.next.next;
|
13174
|
+
|
13175
|
+
if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {
|
13176
|
+
|
13177
|
+
triangles.push(a.i / dim);
|
13178
|
+
triangles.push(p.i / dim);
|
13179
|
+
triangles.push(b.i / dim);
|
13180
|
+
|
13181
|
+
// remove two nodes involved
|
13182
|
+
removeNode(p);
|
13183
|
+
removeNode(p.next);
|
13184
|
+
|
13185
|
+
p = start = b;
|
13186
|
+
}
|
13187
|
+
p = p.next;
|
13188
|
+
} while (p !== start);
|
13189
|
+
|
13190
|
+
return p;
|
13191
|
+
}
|
13192
|
+
|
13193
|
+
// try splitting polygon into two and triangulate them independently
|
13194
|
+
function splitEarcut(start, triangles, dim, minX, minY, size) {
|
13195
|
+
// look for a valid diagonal that divides the polygon into two
|
13196
|
+
var a = start;
|
13197
|
+
do {
|
13198
|
+
var b = a.next.next;
|
13199
|
+
while (b !== a.prev) {
|
13200
|
+
if (a.i !== b.i && isValidDiagonal(a, b)) {
|
13201
|
+
// split the polygon in two by the diagonal
|
13202
|
+
var c = splitPolygon(a, b);
|
13203
|
+
|
13204
|
+
// filter colinear points around the cuts
|
13205
|
+
a = filterPoints(a, a.next);
|
13206
|
+
c = filterPoints(c, c.next);
|
13207
|
+
|
13208
|
+
// run earcut on each half
|
13209
|
+
earcutLinked(a, triangles, dim, minX, minY, size);
|
13210
|
+
earcutLinked(c, triangles, dim, minX, minY, size);
|
13211
|
+
return;
|
13212
|
+
}
|
13213
|
+
b = b.next;
|
13214
|
+
}
|
13215
|
+
a = a.next;
|
13216
|
+
} while (a !== start);
|
13217
|
+
}
|
13218
|
+
|
13219
|
+
// link every hole into the outer loop, producing a single-ring polygon without holes
|
13220
|
+
function eliminateHoles(data, holeIndices, outerNode, dim) {
|
13221
|
+
var queue = [],
|
13222
|
+
i, len, start, end, list;
|
13223
|
+
|
13224
|
+
for (i = 0, len = holeIndices.length; i < len; i++) {
|
13225
|
+
start = holeIndices[i] * dim;
|
13226
|
+
end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;
|
13227
|
+
list = linkedList(data, start, end, dim, false);
|
13228
|
+
if (list === list.next) list.steiner = true;
|
13229
|
+
queue.push(getLeftmost(list));
|
13230
|
+
}
|
13231
|
+
|
13232
|
+
queue.sort(compareX);
|
13233
|
+
|
13234
|
+
// process holes from left to right
|
13235
|
+
for (i = 0; i < queue.length; i++) {
|
13236
|
+
eliminateHole(queue[i], outerNode);
|
13237
|
+
outerNode = filterPoints(outerNode, outerNode.next);
|
13238
|
+
}
|
13239
|
+
|
13240
|
+
return outerNode;
|
13241
|
+
}
|
13242
|
+
|
13243
|
+
function compareX(a, b) {
|
13244
|
+
return a.x - b.x;
|
13245
|
+
}
|
13246
|
+
|
13247
|
+
// find a bridge between vertices that connects hole with an outer ring and and link it
|
13248
|
+
function eliminateHole(hole, outerNode) {
|
13249
|
+
outerNode = findHoleBridge(hole, outerNode);
|
13250
|
+
if (outerNode) {
|
13251
|
+
var b = splitPolygon(outerNode, hole);
|
13252
|
+
filterPoints(b, b.next);
|
13253
|
+
}
|
13254
|
+
}
|
13255
|
+
|
13256
|
+
// David Eberly's algorithm for finding a bridge between hole and outer polygon
|
13257
|
+
function findHoleBridge(hole, outerNode) {
|
13258
|
+
var p = outerNode,
|
13259
|
+
hx = hole.x,
|
13260
|
+
hy = hole.y,
|
13261
|
+
qx = -Infinity,
|
13262
|
+
m;
|
13263
|
+
|
13264
|
+
// find a segment intersected by a ray from the hole's leftmost point to the left;
|
13265
|
+
// segment's endpoint with lesser x will be potential connection point
|
13266
|
+
do {
|
13267
|
+
if (hy <= p.y && hy >= p.next.y) {
|
13268
|
+
var x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);
|
13269
|
+
if (x <= hx && x > qx) {
|
13270
|
+
qx = x;
|
13271
|
+
if (x === hx) {
|
13272
|
+
if (hy === p.y) return p;
|
13273
|
+
if (hy === p.next.y) return p.next;
|
13274
|
+
}
|
13275
|
+
m = p.x < p.next.x ? p : p.next;
|
13276
|
+
}
|
13277
|
+
}
|
13278
|
+
p = p.next;
|
13279
|
+
} while (p !== outerNode);
|
13280
|
+
|
13281
|
+
if (!m) return null;
|
13282
|
+
|
13283
|
+
if (hx === qx) return m.prev; // hole touches outer segment; pick lower endpoint
|
13284
|
+
|
13285
|
+
// look for points inside the triangle of hole point, segment intersection and endpoint;
|
13286
|
+
// if there are no points found, we have a valid connection;
|
13287
|
+
// otherwise choose the point of the minimum angle with the ray as connection point
|
13288
|
+
|
13289
|
+
var stop = m,
|
13290
|
+
mx = m.x,
|
13291
|
+
my = m.y,
|
13292
|
+
tanMin = Infinity,
|
13293
|
+
tan;
|
13294
|
+
|
13295
|
+
p = m.next;
|
13296
|
+
|
13297
|
+
while (p !== stop) {
|
13298
|
+
if (hx >= p.x && p.x >= mx &&
|
13299
|
+
pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {
|
13300
|
+
|
13301
|
+
tan = Math.abs(hy - p.y) / (hx - p.x); // tangential
|
13302
|
+
|
13303
|
+
if ((tan < tanMin || (tan === tanMin && p.x > m.x)) && locallyInside(p, hole)) {
|
13304
|
+
m = p;
|
13305
|
+
tanMin = tan;
|
13306
|
+
}
|
13307
|
+
}
|
13308
|
+
|
13309
|
+
p = p.next;
|
13310
|
+
}
|
13311
|
+
|
13312
|
+
return m;
|
13313
|
+
}
|
13314
|
+
|
13315
|
+
// interlink polygon nodes in z-order
|
13316
|
+
function indexCurve(start, minX, minY, size) {
|
13317
|
+
var p = start;
|
13318
|
+
do {
|
13319
|
+
if (p.z === null) p.z = zOrder(p.x, p.y, minX, minY, size);
|
13320
|
+
p.prevZ = p.prev;
|
13321
|
+
p.nextZ = p.next;
|
13322
|
+
p = p.next;
|
13323
|
+
} while (p !== start);
|
13324
|
+
|
13325
|
+
p.prevZ.nextZ = null;
|
13326
|
+
p.prevZ = null;
|
13327
|
+
|
13328
|
+
sortLinked(p);
|
13329
|
+
}
|
13330
|
+
|
13331
|
+
// Simon Tatham's linked list merge sort algorithm
|
13332
|
+
// http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html
|
13333
|
+
function sortLinked(list) {
|
13334
|
+
var i, p, q, e, tail, numMerges, pSize, qSize,
|
13335
|
+
inSize = 1;
|
13336
|
+
|
13337
|
+
do {
|
13338
|
+
p = list;
|
13339
|
+
list = null;
|
13340
|
+
tail = null;
|
13341
|
+
numMerges = 0;
|
13342
|
+
|
13343
|
+
while (p) {
|
13344
|
+
numMerges++;
|
13345
|
+
q = p;
|
13346
|
+
pSize = 0;
|
13347
|
+
for (i = 0; i < inSize; i++) {
|
13348
|
+
pSize++;
|
13349
|
+
q = q.nextZ;
|
13350
|
+
if (!q) break;
|
13351
|
+
}
|
13352
|
+
|
13353
|
+
qSize = inSize;
|
13354
|
+
|
13355
|
+
while (pSize > 0 || (qSize > 0 && q)) {
|
13356
|
+
|
13357
|
+
if (pSize === 0) {
|
13358
|
+
e = q;
|
13359
|
+
q = q.nextZ;
|
13360
|
+
qSize--;
|
13361
|
+
} else if (qSize === 0 || !q) {
|
13362
|
+
e = p;
|
13363
|
+
p = p.nextZ;
|
13364
|
+
pSize--;
|
13365
|
+
} else if (p.z <= q.z) {
|
13366
|
+
e = p;
|
13367
|
+
p = p.nextZ;
|
13368
|
+
pSize--;
|
13369
|
+
} else {
|
13370
|
+
e = q;
|
13371
|
+
q = q.nextZ;
|
13372
|
+
qSize--;
|
13373
|
+
}
|
13374
|
+
|
13375
|
+
if (tail) tail.nextZ = e;
|
13376
|
+
else list = e;
|
13377
|
+
|
13378
|
+
e.prevZ = tail;
|
13379
|
+
tail = e;
|
13380
|
+
}
|
13381
|
+
|
13382
|
+
p = q;
|
13383
|
+
}
|
13384
|
+
|
13385
|
+
tail.nextZ = null;
|
13386
|
+
inSize *= 2;
|
13387
|
+
|
13388
|
+
} while (numMerges > 1);
|
13389
|
+
|
13390
|
+
return list;
|
13391
|
+
}
|
13392
|
+
|
13393
|
+
// z-order of a point given coords and size of the data bounding box
|
13394
|
+
function zOrder(x, y, minX, minY, size) {
|
13395
|
+
// coords are transformed into non-negative 15-bit integer range
|
13396
|
+
x = 32767 * (x - minX) / size;
|
13397
|
+
y = 32767 * (y - minY) / size;
|
13398
|
+
|
13399
|
+
x = (x | (x << 8)) & 0x00FF00FF;
|
13400
|
+
x = (x | (x << 4)) & 0x0F0F0F0F;
|
13401
|
+
x = (x | (x << 2)) & 0x33333333;
|
13402
|
+
x = (x | (x << 1)) & 0x55555555;
|
13403
|
+
|
13404
|
+
y = (y | (y << 8)) & 0x00FF00FF;
|
13405
|
+
y = (y | (y << 4)) & 0x0F0F0F0F;
|
13406
|
+
y = (y | (y << 2)) & 0x33333333;
|
13407
|
+
y = (y | (y << 1)) & 0x55555555;
|
13408
|
+
|
13409
|
+
return x | (y << 1);
|
13410
|
+
}
|
13411
|
+
|
13412
|
+
// find the leftmost node of a polygon ring
|
13413
|
+
function getLeftmost(start) {
|
13414
|
+
var p = start,
|
13415
|
+
leftmost = start;
|
13416
|
+
do {
|
13417
|
+
if (p.x < leftmost.x) leftmost = p;
|
13418
|
+
p = p.next;
|
13419
|
+
} while (p !== start);
|
13420
|
+
|
13421
|
+
return leftmost;
|
13422
|
+
}
|
13423
|
+
|
13424
|
+
// check if a point lies within a convex triangle
|
13425
|
+
function pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {
|
13426
|
+
return (cx - px) * (ay - py) - (ax - px) * (cy - py) >= 0 &&
|
13427
|
+
(ax - px) * (by - py) - (bx - px) * (ay - py) >= 0 &&
|
13428
|
+
(bx - px) * (cy - py) - (cx - px) * (by - py) >= 0;
|
13429
|
+
}
|
13430
|
+
|
13431
|
+
// check if a diagonal between two polygon nodes is valid (lies in polygon interior)
|
13432
|
+
function isValidDiagonal(a, b) {
|
13433
|
+
return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) &&
|
13434
|
+
locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b);
|
13435
|
+
}
|
13436
|
+
|
13437
|
+
// signed area of a triangle
|
13438
|
+
function area(p, q, r) {
|
13439
|
+
return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);
|
13440
|
+
}
|
13441
|
+
|
13442
|
+
// check if two points are equal
|
13443
|
+
function equals(p1, p2) {
|
13444
|
+
return p1.x === p2.x && p1.y === p2.y;
|
13445
|
+
}
|
13446
|
+
|
13447
|
+
// check if two segments intersect
|
13448
|
+
function intersects(p1, q1, p2, q2) {
|
13449
|
+
if ((equals(p1, q1) && equals(p2, q2)) ||
|
13450
|
+
(equals(p1, q2) && equals(p2, q1))) return true;
|
13451
|
+
return area(p1, q1, p2) > 0 !== area(p1, q1, q2) > 0 &&
|
13452
|
+
area(p2, q2, p1) > 0 !== area(p2, q2, q1) > 0;
|
13453
|
+
}
|
13454
|
+
|
13455
|
+
// check if a polygon diagonal intersects any polygon segments
|
13456
|
+
function intersectsPolygon(a, b) {
|
13457
|
+
var p = a;
|
13458
|
+
do {
|
13459
|
+
if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i &&
|
13460
|
+
intersects(p, p.next, a, b)) return true;
|
13461
|
+
p = p.next;
|
13462
|
+
} while (p !== a);
|
13463
|
+
|
13464
|
+
return false;
|
13465
|
+
}
|
13466
|
+
|
13467
|
+
// check if a polygon diagonal is locally inside the polygon
|
13468
|
+
function locallyInside(a, b) {
|
13469
|
+
return area(a.prev, a, a.next) < 0 ?
|
13470
|
+
area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 :
|
13471
|
+
area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;
|
13472
|
+
}
|
13473
|
+
|
13474
|
+
// check if the middle point of a polygon diagonal is inside the polygon
|
13475
|
+
function middleInside(a, b) {
|
13476
|
+
var p = a,
|
13477
|
+
inside = false,
|
13478
|
+
px = (a.x + b.x) / 2,
|
13479
|
+
py = (a.y + b.y) / 2;
|
13480
|
+
do {
|
13481
|
+
if (((p.y > py) !== (p.next.y > py)) && (px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x))
|
13482
|
+
inside = !inside;
|
13483
|
+
p = p.next;
|
13484
|
+
} while (p !== a);
|
13485
|
+
|
13486
|
+
return inside;
|
13487
|
+
}
|
13488
|
+
|
13489
|
+
// link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two;
|
13490
|
+
// if one belongs to the outer ring and another to a hole, it merges it into a single ring
|
13491
|
+
function splitPolygon(a, b) {
|
13492
|
+
var a2 = new Node(a.i, a.x, a.y),
|
13493
|
+
b2 = new Node(b.i, b.x, b.y),
|
13494
|
+
an = a.next,
|
13495
|
+
bp = b.prev;
|
13496
|
+
|
13497
|
+
a.next = b;
|
13498
|
+
b.prev = a;
|
13499
|
+
|
13500
|
+
a2.next = an;
|
13501
|
+
an.prev = a2;
|
13502
|
+
|
13503
|
+
b2.next = a2;
|
13504
|
+
a2.prev = b2;
|
13505
|
+
|
13506
|
+
bp.next = b2;
|
13507
|
+
b2.prev = bp;
|
13508
|
+
|
13509
|
+
return b2;
|
13510
|
+
}
|
13511
|
+
|
13512
|
+
// create a node and optionally link it with previous one (in a circular doubly linked list)
|
13513
|
+
function insertNode(i, x, y, last) {
|
13514
|
+
var p = new Node(i, x, y);
|
13515
|
+
|
13516
|
+
if (!last) {
|
13517
|
+
p.prev = p;
|
13518
|
+
p.next = p;
|
13519
|
+
|
13520
|
+
} else {
|
13521
|
+
p.next = last.next;
|
13522
|
+
p.prev = last;
|
13523
|
+
last.next.prev = p;
|
13524
|
+
last.next = p;
|
13525
|
+
}
|
13526
|
+
return p;
|
13527
|
+
}
|
13528
|
+
|
13529
|
+
function removeNode(p) {
|
13530
|
+
p.next.prev = p.prev;
|
13531
|
+
p.prev.next = p.next;
|
13532
|
+
|
13533
|
+
if (p.prevZ) p.prevZ.nextZ = p.nextZ;
|
13534
|
+
if (p.nextZ) p.nextZ.prevZ = p.prevZ;
|
13535
|
+
}
|
13536
|
+
|
13537
|
+
function Node(i, x, y) {
|
13538
|
+
// vertice index in coordinates array
|
13539
|
+
this.i = i;
|
13540
|
+
|
13541
|
+
// vertex coordinates
|
13542
|
+
this.x = x;
|
13543
|
+
this.y = y;
|
13544
|
+
|
13545
|
+
// previous and next vertice nodes in a polygon ring
|
13546
|
+
this.prev = null;
|
13547
|
+
this.next = null;
|
13548
|
+
|
13549
|
+
// z-order curve value
|
13550
|
+
this.z = null;
|
13551
|
+
|
13552
|
+
// previous and next nodes in z-order
|
13553
|
+
this.prevZ = null;
|
13554
|
+
this.nextZ = null;
|
13555
|
+
|
13556
|
+
// indicates whether this is a steiner point
|
13557
|
+
this.steiner = false;
|
13558
|
+
}
|
13559
|
+
|
13560
|
+
// return a percentage difference between the polygon area and its triangulation area;
|
13561
|
+
// used to verify correctness of triangulation
|
13562
|
+
earcut.deviation = function (data, holeIndices, dim, triangles) {
|
13563
|
+
var hasHoles = holeIndices && holeIndices.length;
|
13564
|
+
var outerLen = hasHoles ? holeIndices[0] * dim : data.length;
|
13565
|
+
|
13566
|
+
var polygonArea = Math.abs(signedArea(data, 0, outerLen, dim));
|
13567
|
+
if (hasHoles) {
|
13568
|
+
for (var i = 0, len = holeIndices.length; i < len; i++) {
|
13569
|
+
var start = holeIndices[i] * dim;
|
13570
|
+
var end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;
|
13571
|
+
polygonArea -= Math.abs(signedArea(data, start, end, dim));
|
13572
|
+
}
|
13573
|
+
}
|
13574
|
+
|
13575
|
+
var trianglesArea = 0;
|
13576
|
+
for (i = 0; i < triangles.length; i += 3) {
|
13577
|
+
var a = triangles[i] * dim;
|
13578
|
+
var b = triangles[i + 1] * dim;
|
13579
|
+
var c = triangles[i + 2] * dim;
|
13580
|
+
trianglesArea += Math.abs(
|
13581
|
+
(data[a] - data[c]) * (data[b + 1] - data[a + 1]) -
|
13582
|
+
(data[a] - data[b]) * (data[c + 1] - data[a + 1]));
|
13583
|
+
}
|
13584
|
+
|
13585
|
+
return polygonArea === 0 && trianglesArea === 0 ? 0 :
|
13586
|
+
Math.abs((trianglesArea - polygonArea) / polygonArea);
|
13587
|
+
};
|
13588
|
+
|
13589
|
+
function signedArea(data, start, end, dim) {
|
13590
|
+
var sum = 0;
|
13591
|
+
for (var i = start, j = end - dim; i < end; i += dim) {
|
13592
|
+
sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);
|
13593
|
+
j = i;
|
13594
|
+
}
|
13595
|
+
return sum;
|
13596
|
+
}
|
13597
|
+
|
13598
|
+
// turn a polygon in a multi-dimensional array form (e.g. as in GeoJSON) into a form Earcut accepts
|
13599
|
+
earcut.flatten = function (data) {
|
13600
|
+
var dim = data[0][0].length,
|
13601
|
+
result = {vertices: [], holes: [], dimensions: dim},
|
13602
|
+
holeIndex = 0;
|
13603
|
+
|
13604
|
+
for (var i = 0; i < data.length; i++) {
|
13605
|
+
for (var j = 0; j < data[i].length; j++) {
|
13606
|
+
for (var d = 0; d < dim; d++) result.vertices.push(data[i][j][d]);
|
13607
|
+
}
|
13608
|
+
if (i > 0) {
|
13609
|
+
holeIndex += data[i - 1].length;
|
13610
|
+
result.holes.push(holeIndex);
|
13611
|
+
}
|
13612
|
+
}
|
13613
|
+
return result;
|
13614
|
+
};
|
13615
|
+
|
13616
|
+
},{}]},{},[1])(1)
|
13617
|
+
});
|
13618
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJzcmMvZWFyY3V0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FDQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsIid1c2Ugc3RyaWN0JztcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gZWFyY3V0O1xyXG5cclxuZnVuY3Rpb24gZWFyY3V0KGRhdGEsIGhvbGVJbmRpY2VzLCBkaW0pIHtcclxuXHJcbiAgICBkaW0gPSBkaW0gfHwgMjtcclxuXHJcbiAgICB2YXIgaGFzSG9sZXMgPSBob2xlSW5kaWNlcyAmJiBob2xlSW5kaWNlcy5sZW5ndGgsXHJcbiAgICAgICAgb3V0ZXJMZW4gPSBoYXNIb2xlcyA/IGhvbGVJbmRpY2VzWzBdICogZGltIDogZGF0YS5sZW5ndGgsXHJcbiAgICAgICAgb3V0ZXJOb2RlID0gbGlua2VkTGlzdChkYXRhLCAwLCBvdXRlckxlbiwgZGltLCB0cnVlKSxcclxuICAgICAgICB0cmlhbmdsZXMgPSBbXTtcclxuXHJcbiAgICBpZiAoIW91dGVyTm9kZSkgcmV0dXJuIHRyaWFuZ2xlcztcclxuXHJcbiAgICB2YXIgbWluWCwgbWluWSwgbWF4WCwgbWF4WSwgeCwgeSwgc2l6ZTtcclxuXHJcbiAgICBpZiAoaGFzSG9sZXMpIG91dGVyTm9kZSA9IGVsaW1pbmF0ZUhvbGVzKGRhdGEsIGhvbGVJbmRpY2VzLCBvdXRlck5vZGUsIGRpbSk7XHJcblxyXG4gICAgLy8gaWYgdGhlIHNoYXBlIGlzIG5vdCB0b28gc2ltcGxlLCB3ZSdsbCB1c2Ugei1vcmRlciBjdXJ2ZSBoYXNoIGxhdGVyOyBjYWxjdWxhdGUgcG9seWdvbiBiYm94XHJcbiAgICBpZiAoZGF0YS5sZW5ndGggPiA4MCAqIGRpbSkge1xyXG4gICAgICAgIG1pblggPSBtYXhYID0gZGF0YVswXTtcclxuICAgICAgICBtaW5ZID0gbWF4WSA9IGRhdGFbMV07XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSBkaW07IGkgPCBvdXRlckxlbjsgaSArPSBkaW0pIHtcclxuICAgICAgICAgICAgeCA9IGRhdGFbaV07XHJcbiAgICAgICAgICAgIHkgPSBkYXRhW2kgKyAxXTtcclxuICAgICAgICAgICAgaWYgKHggPCBtaW5YKSBtaW5YID0geDtcclxuICAgICAgICAgICAgaWYgKHkgPCBtaW5ZKSBtaW5ZID0geTtcclxuICAgICAgICAgICAgaWYgKHggPiBtYXhYKSBtYXhYID0geDtcclxuICAgICAgICAgICAgaWYgKHkgPiBtYXhZKSBtYXhZID0geTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIG1pblgsIG1pblkgYW5kIHNpemUgYXJlIGxhdGVyIHVzZWQgdG8gdHJhbnNmb3JtIGNvb3JkcyBpbnRvIGludGVnZXJzIGZvciB6LW9yZGVyIGNhbGN1bGF0aW9uXHJcbiAgICAgICAgc2l6ZSA9IE1hdGgubWF4KG1heFggLSBtaW5YLCBtYXhZIC0gbWluWSk7XHJcbiAgICB9XHJcblxyXG4gICAgZWFyY3V0TGlua2VkKG91dGVyTm9kZSwgdHJpYW5nbGVzLCBkaW0sIG1pblgsIG1pblksIHNpemUpO1xyXG5cclxuICAgIHJldHVybiB0cmlhbmdsZXM7XHJcbn1cclxuXHJcbi8vIGNyZWF0ZSBhIGNpcmN1bGFyIGRvdWJseSBsaW5rZWQgbGlzdCBmcm9tIHBvbHlnb24gcG9pbnRzIGluIHRoZSBzcGVjaWZpZWQgd2luZGluZyBvcmRlclxyXG5mdW5jdGlvbiBsaW5rZWRMaXN0KGRhdGEsIHN0YXJ0LCBlbmQsIGRpbSwgY2xvY2t3aXNlKSB7XHJcbiAgICB2YXIgaSwgbGFzdDtcclxuXHJcbiAgICBpZiAoY2xvY2t3aXNlID09PSAoc2lnbmVkQXJlYShkYXRhLCBzdGFydCwgZW5kLCBkaW0pID4gMCkpIHtcclxuICAgICAgICBmb3IgKGkgPSBzdGFydDsgaSA8IGVuZDsgaSArPSBkaW0pIGxhc3QgPSBpbnNlcnROb2RlKGksIGRhdGFbaV0sIGRhdGFbaSArIDFdLCBsYXN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZm9yIChpID0gZW5kIC0gZGltOyBpID49IHN0YXJ0OyBpIC09IGRpbSkgbGFzdCA9IGluc2VydE5vZGUoaSwgZGF0YVtpXSwgZGF0YVtpICsgMV0sIGxhc3QpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChsYXN0ICYmIGVxdWFscyhsYXN0LCBsYXN0Lm5leHQpKSB7XHJcbiAgICAgICAgcmVtb3ZlTm9kZShsYXN0KTtcclxuICAgICAgICBsYXN0ID0gbGFzdC5uZXh0O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBsYXN0O1xyXG59XHJcblxyXG4vLyBlbGltaW5hdGUgY29saW5lYXIgb3IgZHVwbGljYXRlIHBvaW50c1xyXG5mdW5jdGlvbiBmaWx0ZXJQb2ludHMoc3RhcnQsIGVuZCkge1xyXG4gICAgaWYgKCFzdGFydCkgcmV0dXJuIHN0YXJ0O1xyXG4gICAgaWYgKCFlbmQpIGVuZCA9IHN0YXJ0O1xyXG5cclxuICAgIHZhciBwID0gc3RhcnQsXHJcbiAgICAgICAgYWdhaW47XHJcbiAgICBkbyB7XHJcbiAgICAgICAgYWdhaW4gPSBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYgKCFwLnN0ZWluZXIgJiYgKGVxdWFscyhwLCBwLm5leHQpIHx8IGFyZWEocC5wcmV2LCBwLCBwLm5leHQpID09PSAwKSkge1xyXG4gICAgICAgICAgICByZW1vdmVOb2RlKHApO1xyXG4gICAgICAgICAgICBwID0gZW5kID0gcC5wcmV2O1xyXG4gICAgICAgICAgICBpZiAocCA9PT0gcC5uZXh0KSByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgYWdhaW4gPSB0cnVlO1xyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBwID0gcC5uZXh0O1xyXG4gICAgICAgIH1cclxuICAgIH0gd2hpbGUgKGFnYWluIHx8IHAgIT09IGVuZCk7XHJcblxyXG4gICAgcmV0dXJuIGVuZDtcclxufVxyXG5cclxuLy8gbWFpbiBlYXIgc2xpY2luZyBsb29wIHdoaWNoIHRyaWFuZ3VsYXRlcyBhIHBvbHlnb24gKGdpdmVuIGFzIGEgbGlua2VkIGxpc3QpXHJcbmZ1bmN0aW9uIGVhcmN1dExpbmtlZChlYXIsIHRyaWFuZ2xlcywgZGltLCBtaW5YLCBtaW5ZLCBzaXplLCBwYXNzKSB7XHJcbiAgICBpZiAoIWVhcikgcmV0dXJuO1xyXG5cclxuICAgIC8vIGludGVybGluayBwb2x5Z29uIG5vZGVzIGluIHotb3JkZXJcclxuICAgIGlmICghcGFzcyAmJiBzaXplKSBpbmRleEN1cnZlKGVhciwgbWluWCwgbWluWSwgc2l6ZSk7XHJcblxyXG4gICAgdmFyIHN0b3AgPSBlYXIsXHJcbiAgICAgICAgcHJldiwgbmV4dDtcclxuXHJcbiAgICAvLyBpdGVyYXRlIHRocm91Z2ggZWFycywgc2xpY2luZyB0aGVtIG9uZSBieSBvbmVcclxuICAgIHdoaWxlIChlYXIucHJldiAhPT0gZWFyLm5leHQpIHtcclxuICAgICAgICBwcmV2ID0gZWFyLnByZXY7XHJcbiAgICAgICAgbmV4dCA9IGVhci5uZXh0O1xyXG5cclxuICAgICAgICBpZiAoc2l6ZSA/IGlzRWFySGFzaGVkKGVhciwgbWluWCwgbWluWSwgc2l6ZSkgOiBpc0VhcihlYXIpKSB7XHJcbiAgICAgICAgICAgIC8vIGN1dCBvZmYgdGhlIHRyaWFuZ2xlXHJcbiAgICAgICAgICAgIHRyaWFuZ2xlcy5wdXNoKHByZXYuaSAvIGRpbSk7XHJcbiAgICAgICAgICAgIHRyaWFuZ2xlcy5wdXNoKGVhci5pIC8gZGltKTtcclxuICAgICAgICAgICAgdHJpYW5nbGVzLnB1c2gobmV4dC5pIC8gZGltKTtcclxuXHJcbiAgICAgICAgICAgIHJlbW92ZU5vZGUoZWFyKTtcclxuXHJcbiAgICAgICAgICAgIC8vIHNraXBwaW5nIHRoZSBuZXh0IHZlcnRpY2UgbGVhZHMgdG8gbGVzcyBzbGl2ZXIgdHJpYW5nbGVzXHJcbiAgICAgICAgICAgIGVhciA9IG5leHQubmV4dDtcclxuICAgICAgICAgICAgc3RvcCA9IG5leHQubmV4dDtcclxuXHJcbiAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZWFyID0gbmV4dDtcclxuXHJcbiAgICAgICAgLy8gaWYgd2UgbG9vcGVkIHRocm91Z2ggdGhlIHdob2xlIHJlbWFpbmluZyBwb2x5Z29uIGFuZCBjYW4ndCBmaW5kIGFueSBtb3JlIGVhcnNcclxuICAgICAgICBpZiAoZWFyID09PSBzdG9wKSB7XHJcbiAgICAgICAgICAgIC8vIHRyeSBmaWx0ZXJpbmcgcG9pbnRzIGFuZCBzbGljaW5nIGFnYWluXHJcbiAgICAgICAgICAgIGlmICghcGFzcykge1xyXG4gICAgICAgICAgICAgICAgZWFyY3V0TGlua2VkKGZpbHRlclBvaW50cyhlYXIpLCB0cmlhbmdsZXMsIGRpbSwgbWluWCwgbWluWSwgc2l6ZSwgMSk7XHJcblxyXG4gICAgICAgICAgICAvLyBpZiB0aGlzIGRpZG4ndCB3b3JrLCB0cnkgY3VyaW5nIGFsbCBzbWFsbCBzZWxmLWludGVyc2VjdGlvbnMgbG9jYWxseVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBhc3MgPT09IDEpIHtcclxuICAgICAgICAgICAgICAgIGVhciA9IGN1cmVMb2NhbEludGVyc2VjdGlvbnMoZWFyLCB0cmlhbmdsZXMsIGRpbSk7XHJcbiAgICAgICAgICAgICAgICBlYXJjdXRMaW5rZWQoZWFyLCB0cmlhbmdsZXMsIGRpbSwgbWluWCwgbWluWSwgc2l6ZSwgMik7XHJcblxyXG4gICAgICAgICAgICAvLyBhcyBhIGxhc3QgcmVzb3J0LCB0cnkgc3BsaXR0aW5nIHRoZSByZW1haW5pbmcgcG9seWdvbiBpbnRvIHR3b1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBhc3MgPT09IDIpIHtcclxuICAgICAgICAgICAgICAgIHNwbGl0RWFyY3V0KGVhciwgdHJpYW5nbGVzLCBkaW0sIG1pblgsIG1pblksIHNpemUpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIGNoZWNrIHdoZXRoZXIgYSBwb2x5Z29uIG5vZGUgZm9ybXMgYSB2YWxpZCBlYXIgd2l0aCBhZGphY2VudCBub2Rlc1xyXG5mdW5jdGlvbiBpc0VhcihlYXIpIHtcclxuICAgIHZhciBhID0gZWFyLnByZXYsXHJcbiAgICAgICAgYiA9IGVhcixcclxuICAgICAgICBjID0gZWFyLm5leHQ7XHJcblxyXG4gICAgaWYgKGFyZWEoYSwgYiwgYykgPj0gMCkgcmV0dXJuIGZhbHNlOyAvLyByZWZsZXgsIGNhbid0IGJlIGFuIGVhclxyXG5cclxuICAgIC8vIG5vdyBtYWtlIHN1cmUgd2UgZG9uJ3QgaGF2ZSBvdGhlciBwb2ludHMgaW5zaWRlIHRoZSBwb3RlbnRpYWwgZWFyXHJcbiAgICB2YXIgcCA9IGVhci5uZXh0Lm5leHQ7XHJcblxyXG4gICAgd2hpbGUgKHAgIT09IGVhci5wcmV2KSB7XHJcbiAgICAgICAgaWYgKHBvaW50SW5UcmlhbmdsZShhLngsIGEueSwgYi54LCBiLnksIGMueCwgYy55LCBwLngsIHAueSkgJiZcclxuICAgICAgICAgICAgYXJlYShwLnByZXYsIHAsIHAubmV4dCkgPj0gMCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIHAgPSBwLm5leHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzRWFySGFzaGVkKGVhciwgbWluWCwgbWluWSwgc2l6ZSkge1xyXG4gICAgdmFyIGEgPSBlYXIucHJldixcclxuICAgICAgICBiID0gZWFyLFxyXG4gICAgICAgIGMgPSBlYXIubmV4dDtcclxuXHJcbiAgICBpZiAoYXJlYShhLCBiLCBjKSA+PSAwKSByZXR1cm4gZmFsc2U7IC8vIHJlZmxleCwgY2FuJ3QgYmUgYW4gZWFyXHJcblxyXG4gICAgLy8gdHJpYW5nbGUgYmJveDsgbWluICYgbWF4IGFyZSBjYWxjdWxhdGVkIGxpa2UgdGhpcyBmb3Igc3BlZWRcclxuICAgIHZhciBtaW5UWCA9IGEueCA8IGIueCA/IChhLnggPCBjLnggPyBhLnggOiBjLngpIDogKGIueCA8IGMueCA/IGIueCA6IGMueCksXHJcbiAgICAgICAgbWluVFkgPSBhLnkgPCBiLnkgPyAoYS55IDwgYy55ID8gYS55IDogYy55KSA6IChiLnkgPCBjLnkgPyBiLnkgOiBjLnkpLFxyXG4gICAgICAgIG1heFRYID0gYS54ID4gYi54ID8gKGEueCA+IGMueCA/IGEueCA6IGMueCkgOiAoYi54ID4gYy54ID8gYi54IDogYy54KSxcclxuICAgICAgICBtYXhUWSA9IGEueSA+IGIueSA/IChhLnkgPiBjLnkgPyBhLnkgOiBjLnkpIDogKGIueSA+IGMueSA/IGIueSA6IGMueSk7XHJcblxyXG4gICAgLy8gei1vcmRlciByYW5nZSBmb3IgdGhlIGN1cnJlbnQgdHJpYW5nbGUgYmJveDtcclxuICAgIHZhciBtaW5aID0gek9yZGVyKG1pblRYLCBtaW5UWSwgbWluWCwgbWluWSwgc2l6ZSksXHJcbiAgICAgICAgbWF4WiA9IHpPcmRlcihtYXhUWCwgbWF4VFksIG1pblgsIG1pblksIHNpemUpO1xyXG5cclxuICAgIC8vIGZpcnN0IGxvb2sgZm9yIHBvaW50cyBpbnNpZGUgdGhlIHRyaWFuZ2xlIGluIGluY3JlYXNpbmcgei1vcmRlclxyXG4gICAgdmFyIHAgPSBlYXIubmV4dFo7XHJcblxyXG4gICAgd2hpbGUgKHAgJiYgcC56IDw9IG1heFopIHtcclxuICAgICAgICBpZiAocCAhPT0gZWFyLnByZXYgJiYgcCAhPT0gZWFyLm5leHQgJiZcclxuICAgICAgICAgICAgcG9pbnRJblRyaWFuZ2xlKGEueCwgYS55LCBiLngsIGIueSwgYy54LCBjLnksIHAueCwgcC55KSAmJlxyXG4gICAgICAgICAgICBhcmVhKHAucHJldiwgcCwgcC5uZXh0KSA+PSAwKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgcCA9IHAubmV4dFo7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdGhlbiBsb29rIGZvciBwb2ludHMgaW4gZGVjcmVhc2luZyB6LW9yZGVyXHJcbiAgICBwID0gZWFyLnByZXZaO1xyXG5cclxuICAgIHdoaWxlIChwICYmIHAueiA+PSBtaW5aKSB7XHJcbiAgICAgICAgaWYgKHAgIT09IGVhci5wcmV2ICYmIHAgIT09IGVhci5uZXh0ICYmXHJcbiAgICAgICAgICAgIHBvaW50SW5UcmlhbmdsZShhLngsIGEueSwgYi54LCBiLnksIGMueCwgYy55LCBwLngsIHAueSkgJiZcclxuICAgICAgICAgICAgYXJlYShwLnByZXYsIHAsIHAubmV4dCkgPj0gMCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIHAgPSBwLnByZXZaO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG59XHJcblxyXG4vLyBnbyB0aHJvdWdoIGFsbCBwb2x5Z29uIG5vZGVzIGFuZCBjdXJlIHNtYWxsIGxvY2FsIHNlbGYtaW50ZXJzZWN0aW9uc1xyXG5mdW5jdGlvbiBjdXJlTG9jYWxJbnRlcnNlY3Rpb25zKHN0YXJ0LCB0cmlhbmdsZXMsIGRpbSkge1xyXG4gICAgdmFyIHAgPSBzdGFydDtcclxuICAgIGRvIHtcclxuICAgICAgICB2YXIgYSA9IHAucHJldixcclxuICAgICAgICAgICAgYiA9IHAubmV4dC5uZXh0O1xyXG5cclxuICAgICAgICBpZiAoIWVxdWFscyhhLCBiKSAmJiBpbnRlcnNlY3RzKGEsIHAsIHAubmV4dCwgYikgJiYgbG9jYWxseUluc2lkZShhLCBiKSAmJiBsb2NhbGx5SW5zaWRlKGIsIGEpKSB7XHJcblxyXG4gICAgICAgICAgICB0cmlhbmdsZXMucHVzaChhLmkgLyBkaW0pO1xyXG4gICAgICAgICAgICB0cmlhbmdsZXMucHVzaChwLmkgLyBkaW0pO1xyXG4gICAgICAgICAgICB0cmlhbmdsZXMucHVzaChiLmkgLyBkaW0pO1xyXG5cclxuICAgICAgICAgICAgLy8gcmVtb3ZlIHR3byBub2RlcyBpbnZvbHZlZFxyXG4gICAgICAgICAgICByZW1vdmVOb2RlKHApO1xyXG4gICAgICAgICAgICByZW1vdmVOb2RlKHAubmV4dCk7XHJcblxyXG4gICAgICAgICAgICBwID0gc3RhcnQgPSBiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBwID0gcC5uZXh0O1xyXG4gICAgfSB3aGlsZSAocCAhPT0gc3RhcnQpO1xyXG5cclxuICAgIHJldHVybiBwO1xyXG59XHJcblxyXG4vLyB0cnkgc3BsaXR0aW5nIHBvbHlnb24gaW50byB0d28gYW5kIHRyaWFuZ3VsYXRlIHRoZW0gaW5kZXBlbmRlbnRseVxyXG5mdW5jdGlvbiBzcGxpdEVhcmN1dChzdGFydCwgdHJpYW5nbGVzLCBkaW0sIG1pblgsIG1pblksIHNpemUpIHtcclxuICAgIC8vIGxvb2sgZm9yIGEgdmFsaWQgZGlhZ29uYWwgdGhhdCBkaXZpZGVzIHRoZSBwb2x5Z29uIGludG8gdHdvXHJcbiAgICB2YXIgYSA9IHN0YXJ0O1xyXG4gICAgZG8ge1xyXG4gICAgICAgIHZhciBiID0gYS5uZXh0Lm5leHQ7XHJcbiAgICAgICAgd2hpbGUgKGIgIT09IGEucHJldikge1xyXG4gICAgICAgICAgICBpZiAoYS5pICE9PSBiLmkgJiYgaXNWYWxpZERpYWdvbmFsKGEsIGIpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBzcGxpdCB0aGUgcG9seWdvbiBpbiB0d28gYnkgdGhlIGRpYWdvbmFsXHJcbiAgICAgICAgICAgICAgICB2YXIgYyA9IHNwbGl0UG9seWdvbihhLCBiKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBmaWx0ZXIgY29saW5lYXIgcG9pbnRzIGFyb3VuZCB0aGUgY3V0c1xyXG4gICAgICAgICAgICAgICAgYSA9IGZpbHRlclBvaW50cyhhLCBhLm5leHQpO1xyXG4gICAgICAgICAgICAgICAgYyA9IGZpbHRlclBvaW50cyhjLCBjLm5leHQpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIHJ1biBlYXJjdXQgb24gZWFjaCBoYWxmXHJcbiAgICAgICAgICAgICAgICBlYXJjdXRMaW5rZWQoYSwgdHJpYW5nbGVzLCBkaW0sIG1pblgsIG1pblksIHNpemUpO1xyXG4gICAgICAgICAgICAgICAgZWFyY3V0TGlua2VkKGMsIHRyaWFuZ2xlcywgZGltLCBtaW5YLCBtaW5ZLCBzaXplKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBiID0gYi5uZXh0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBhID0gYS5uZXh0O1xyXG4gICAgfSB3aGlsZSAoYSAhPT0gc3RhcnQpO1xyXG59XHJcblxyXG4vLyBsaW5rIGV2ZXJ5IGhvbGUgaW50byB0aGUgb3V0ZXIgbG9vcCwgcHJvZHVjaW5nIGEgc2luZ2xlLXJpbmcgcG9seWdvbiB3aXRob3V0IGhvbGVzXHJcbmZ1bmN0aW9uIGVsaW1pbmF0ZUhvbGVzKGRhdGEsIGhvbGVJbmRpY2VzLCBvdXRlck5vZGUsIGRpbSkge1xyXG4gICAgdmFyIHF1ZXVlID0gW10sXHJcbiAgICAgICAgaSwgbGVuLCBzdGFydCwgZW5kLCBsaXN0O1xyXG5cclxuICAgIGZvciAoaSA9IDAsIGxlbiA9IGhvbGVJbmRpY2VzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgICAgc3RhcnQgPSBob2xlSW5kaWNlc1tpXSAqIGRpbTtcclxuICAgICAgICBlbmQgPSBpIDwgbGVuIC0gMSA/IGhvbGVJbmRpY2VzW2kgKyAxXSAqIGRpbSA6IGRhdGEubGVuZ3RoO1xyXG4gICAgICAgIGxpc3QgPSBsaW5rZWRMaXN0KGRhdGEsIHN0YXJ0LCBlbmQsIGRpbSwgZmFsc2UpO1xyXG4gICAgICAgIGlmIChsaXN0ID09PSBsaXN0Lm5leHQpIGxpc3Quc3RlaW5lciA9IHRydWU7XHJcbiAgICAgICAgcXVldWUucHVzaChnZXRMZWZ0bW9zdChsaXN0KSk7XHJcbiAgICB9XHJcblxyXG4gICAgcXVldWUuc29ydChjb21wYXJlWCk7XHJcblxyXG4gICAgLy8gcHJvY2VzcyBob2xlcyBmcm9tIGxlZnQgdG8gcmlnaHRcclxuICAgIGZvciAoaSA9IDA7IGkgPCBxdWV1ZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGVsaW1pbmF0ZUhvbGUocXVldWVbaV0sIG91dGVyTm9kZSk7XHJcbiAgICAgICAgb3V0ZXJOb2RlID0gZmlsdGVyUG9pbnRzKG91dGVyTm9kZSwgb3V0ZXJOb2RlLm5leHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBvdXRlck5vZGU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNvbXBhcmVYKGEsIGIpIHtcclxuICAgIHJldHVybiBhLnggLSBiLng7XHJcbn1cclxuXHJcbi8vIGZpbmQgYSBicmlkZ2UgYmV0d2VlbiB2ZXJ0aWNlcyB0aGF0IGNvbm5lY3RzIGhvbGUgd2l0aCBhbiBvdXRlciByaW5nIGFuZCBhbmQgbGluayBpdFxyXG5mdW5jdGlvbiBlbGltaW5hdGVIb2xlKGhvbGUsIG91dGVyTm9kZSkge1xyXG4gICAgb3V0ZXJOb2RlID0gZmluZEhvbGVCcmlkZ2UoaG9sZSwgb3V0ZXJOb2RlKTtcclxuICAgIGlmIChvdXRlck5vZGUpIHtcclxuICAgICAgICB2YXIgYiA9IHNwbGl0UG9seWdvbihvdXRlck5vZGUsIGhvbGUpO1xyXG4gICAgICAgIGZpbHRlclBvaW50cyhiLCBiLm5leHQpO1xyXG4gICAgfVxyXG59XHJcblxyXG4vLyBEYXZpZCBFYmVybHkncyBhbGdvcml0aG0gZm9yIGZpbmRpbmcgYSBicmlkZ2UgYmV0d2VlbiBob2xlIGFuZCBvdXRlciBwb2x5Z29uXHJcbmZ1bmN0aW9uIGZpbmRIb2xlQnJpZGdlKGhvbGUsIG91dGVyTm9kZSkge1xyXG4gICAgdmFyIHAgPSBvdXRlck5vZGUsXHJcbiAgICAgICAgaHggPSBob2xlLngsXHJcbiAgICAgICAgaHkgPSBob2xlLnksXHJcbiAgICAgICAgcXggPSAtSW5maW5pdHksXHJcbiAgICAgICAgbTtcclxuXHJcbiAgICAvLyBmaW5kIGEgc2VnbWVudCBpbnRlcnNlY3RlZCBieSBhIHJheSBmcm9tIHRoZSBob2xlJ3MgbGVmdG1vc3QgcG9pbnQgdG8gdGhlIGxlZnQ7XHJcbiAgICAvLyBzZWdtZW50J3MgZW5kcG9pbnQgd2l0aCBsZXNzZXIgeCB3aWxsIGJlIHBvdGVudGlhbCBjb25uZWN0aW9uIHBvaW50XHJcbiAgICBkbyB7XHJcbiAgICAgICAgaWYgKGh5IDw9IHAueSAmJiBoeSA+PSBwLm5leHQueSkge1xyXG4gICAgICAgICAgICB2YXIgeCA9IHAueCArIChoeSAtIHAueSkgKiAocC5uZXh0LnggLSBwLngpIC8gKHAubmV4dC55IC0gcC55KTtcclxuICAgICAgICAgICAgaWYgKHggPD0gaHggJiYgeCA+IHF4KSB7XHJcbiAgICAgICAgICAgICAgICBxeCA9IHg7XHJcbiAgICAgICAgICAgICAgICBpZiAoeCA9PT0gaHgpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaHkgPT09IHAueSkgcmV0dXJuIHA7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGh5ID09PSBwLm5leHQueSkgcmV0dXJuIHAubmV4dDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIG0gPSBwLnggPCBwLm5leHQueCA/IHAgOiBwLm5leHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcCA9IHAubmV4dDtcclxuICAgIH0gd2hpbGUgKHAgIT09IG91dGVyTm9kZSk7XHJcblxyXG4gICAgaWYgKCFtKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICBpZiAoaHggPT09IHF4KSByZXR1cm4gbS5wcmV2OyAvLyBob2xlIHRvdWNoZXMgb3V0ZXIgc2VnbWVudDsgcGljayBsb3dlciBlbmRwb2ludFxyXG5cclxuICAgIC8vIGxvb2sgZm9yIHBvaW50cyBpbnNpZGUgdGhlIHRyaWFuZ2xlIG9mIGhvbGUgcG9pbnQsIHNlZ21lbnQgaW50ZXJzZWN0aW9uIGFuZCBlbmRwb2ludDtcclxuICAgIC8vIGlmIHRoZXJlIGFyZSBubyBwb2ludHMgZm91bmQsIHdlIGhhdmUgYSB2YWxpZCBjb25uZWN0aW9uO1xyXG4gICAgLy8gb3RoZXJ3aXNlIGNob29zZSB0aGUgcG9pbnQgb2YgdGhlIG1pbmltdW0gYW5nbGUgd2l0aCB0aGUgcmF5IGFzIGNvbm5lY3Rpb24gcG9pbnRcclxuXHJcbiAgICB2YXIgc3RvcCA9IG0sXHJcbiAgICAgICAgbXggPSBtLngsXHJcbiAgICAgICAgbXkgPSBtLnksXHJcbiAgICAgICAgdGFuTWluID0gSW5maW5pdHksXHJcbiAgICAgICAgdGFuO1xyXG5cclxuICAgIHAgPSBtLm5leHQ7XHJcblxyXG4gICAgd2hpbGUgKHAgIT09IHN0b3ApIHtcclxuICAgICAgICBpZiAoaHggPj0gcC54ICYmIHAueCA+PSBteCAmJlxyXG4gICAgICAgICAgICAgICAgcG9pbnRJblRyaWFuZ2xlKGh5IDwgbXkgPyBoeCA6IHF4LCBoeSwgbXgsIG15LCBoeSA8IG15ID8gcXggOiBoeCwgaHksIHAueCwgcC55KSkge1xyXG5cclxuICAgICAgICAgICAgdGFuID0gTWF0aC5hYnMoaHkgLSBwLnkpIC8gKGh4IC0gcC54KTsgLy8gdGFuZ2VudGlhbFxyXG5cclxuICAgICAgICAgICAgaWYgKCh0YW4gPCB0YW5NaW4gfHwgKHRhbiA9PT0gdGFuTWluICYmIHAueCA+IG0ueCkpICYmIGxvY2FsbHlJbnNpZGUocCwgaG9sZSkpIHtcclxuICAgICAgICAgICAgICAgIG0gPSBwO1xyXG4gICAgICAgICAgICAgICAgdGFuTWluID0gdGFuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwID0gcC5uZXh0O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBtO1xyXG59XHJcblxyXG4vLyBpbnRlcmxpbmsgcG9seWdvbiBub2RlcyBpbiB6LW9yZGVyXHJcbmZ1bmN0aW9uIGluZGV4Q3VydmUoc3RhcnQsIG1pblgsIG1pblksIHNpemUpIHtcclxuICAgIHZhciBwID0gc3RhcnQ7XHJcbiAgICBkbyB7XHJcbiAgICAgICAgaWYgKHAueiA9PT0gbnVsbCkgcC56ID0gek9yZGVyKHAueCwgcC55LCBtaW5YLCBtaW5ZLCBzaXplKTtcclxuICAgICAgICBwLnByZXZaID0gcC5wcmV2O1xyXG4gICAgICAgIHAubmV4dFogPSBwLm5leHQ7XHJcbiAgICAgICAgcCA9IHAubmV4dDtcclxuICAgIH0gd2hpbGUgKHAgIT09IHN0YXJ0KTtcclxuXHJcbiAgICBwLnByZXZaLm5leHRaID0gbnVsbDtcclxuICAgIHAucHJldlogPSBudWxsO1xyXG5cclxuICAgIHNvcnRMaW5rZWQocCk7XHJcbn1cclxuXHJcbi8vIFNpbW9uIFRhdGhhbSdzIGxpbmtlZCBsaXN0IG1lcmdlIHNvcnQgYWxnb3JpdGhtXHJcbi8vIGh0dHA6Ly93d3cuY2hpYXJrLmdyZWVuZW5kLm9yZy51ay9+c2d0YXRoYW0vYWxnb3JpdGhtcy9saXN0c29ydC5odG1sXHJcbmZ1bmN0aW9uIHNvcnRMaW5rZWQobGlzdCkge1xyXG4gICAgdmFyIGksIHAsIHEsIGUsIHRhaWwsIG51bU1lcmdlcywgcFNpemUsIHFTaXplLFxyXG4gICAgICAgIGluU2l6ZSA9IDE7XHJcblxyXG4gICAgZG8ge1xyXG4gICAgICAgIHAgPSBsaXN0O1xyXG4gICAgICAgIGxpc3QgPSBudWxsO1xyXG4gICAgICAgIHRhaWwgPSBudWxsO1xyXG4gICAgICAgIG51bU1lcmdlcyA9IDA7XHJcblxyXG4gICAgICAgIHdoaWxlIChwKSB7XHJcbiAgICAgICAgICAgIG51bU1lcmdlcysrO1xyXG4gICAgICAgICAgICBxID0gcDtcclxuICAgICAgICAgICAgcFNpemUgPSAwO1xyXG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgaW5TaXplOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHBTaXplKys7XHJcbiAgICAgICAgICAgICAgICBxID0gcS5uZXh0WjtcclxuICAgICAgICAgICAgICAgIGlmICghcSkgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHFTaXplID0gaW5TaXplO1xyXG5cclxuICAgICAgICAgICAgd2hpbGUgKHBTaXplID4gMCB8fCAocVNpemUgPiAwICYmIHEpKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHBTaXplID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZSA9IHE7XHJcbiAgICAgICAgICAgICAgICAgICAgcSA9IHEubmV4dFo7XHJcbiAgICAgICAgICAgICAgICAgICAgcVNpemUtLTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocVNpemUgPT09IDAgfHwgIXEpIHtcclxuICAgICAgICAgICAgICAgICAgICBlID0gcDtcclxuICAgICAgICAgICAgICAgICAgICBwID0gcC5uZXh0WjtcclxuICAgICAgICAgICAgICAgICAgICBwU2l6ZS0tO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwLnogPD0gcS56KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZSA9IHA7XHJcbiAgICAgICAgICAgICAgICAgICAgcCA9IHAubmV4dFo7XHJcbiAgICAgICAgICAgICAgICAgICAgcFNpemUtLTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZSA9IHE7XHJcbiAgICAgICAgICAgICAgICAgICAgcSA9IHEubmV4dFo7XHJcbiAgICAgICAgICAgICAgICAgICAgcVNpemUtLTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAodGFpbCkgdGFpbC5uZXh0WiA9IGU7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGxpc3QgPSBlO1xyXG5cclxuICAgICAgICAgICAgICAgIGUucHJldlogPSB0YWlsO1xyXG4gICAgICAgICAgICAgICAgdGFpbCA9IGU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHAgPSBxO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGFpbC5uZXh0WiA9IG51bGw7XHJcbiAgICAgICAgaW5TaXplICo9IDI7XHJcblxyXG4gICAgfSB3aGlsZSAobnVtTWVyZ2VzID4gMSk7XHJcblxyXG4gICAgcmV0dXJuIGxpc3Q7XHJcbn1cclxuXHJcbi8vIHotb3JkZXIgb2YgYSBwb2ludCBnaXZlbiBjb29yZHMgYW5kIHNpemUgb2YgdGhlIGRhdGEgYm91bmRpbmcgYm94XHJcbmZ1bmN0aW9uIHpPcmRlcih4LCB5LCBtaW5YLCBtaW5ZLCBzaXplKSB7XHJcbiAgICAvLyBjb29yZHMgYXJlIHRyYW5zZm9ybWVkIGludG8gbm9uLW5lZ2F0aXZlIDE1LWJpdCBpbnRlZ2VyIHJhbmdlXHJcbiAgICB4ID0gMzI3NjcgKiAoeCAtIG1pblgpIC8gc2l6ZTtcclxuICAgIHkgPSAzMjc2NyAqICh5IC0gbWluWSkgLyBzaXplO1xyXG5cclxuICAgIHggPSAoeCB8ICh4IDw8IDgpKSAmIDB4MDBGRjAwRkY7XHJcbiAgICB4ID0gKHggfCAoeCA8PCA0KSkgJiAweDBGMEYwRjBGO1xyXG4gICAgeCA9ICh4IHwgKHggPDwgMikpICYgMHgzMzMzMzMzMztcclxuICAgIHggPSAoeCB8ICh4IDw8IDEpKSAmIDB4NTU1NTU1NTU7XHJcblxyXG4gICAgeSA9ICh5IHwgKHkgPDwgOCkpICYgMHgwMEZGMDBGRjtcclxuICAgIHkgPSAoeSB8ICh5IDw8IDQpKSAmIDB4MEYwRjBGMEY7XHJcbiAgICB5ID0gKHkgfCAoeSA8PCAyKSkgJiAweDMzMzMzMzMzO1xyXG4gICAgeSA9ICh5IHwgKHkgPDwgMSkpICYgMHg1NTU1NTU1NTtcclxuXHJcbiAgICByZXR1cm4geCB8ICh5IDw8IDEpO1xyXG59XHJcblxyXG4vLyBmaW5kIHRoZSBsZWZ0bW9zdCBub2RlIG9mIGEgcG9seWdvbiByaW5nXHJcbmZ1bmN0aW9uIGdldExlZnRtb3N0KHN0YXJ0KSB7XHJcbiAgICB2YXIgcCA9IHN0YXJ0LFxyXG4gICAgICAgIGxlZnRtb3N0ID0gc3RhcnQ7XHJcbiAgICBkbyB7XHJcbiAgICAgICAgaWYgKHAueCA8IGxlZnRtb3N0LngpIGxlZnRtb3N0ID0gcDtcclxuICAgICAgICBwID0gcC5uZXh0O1xyXG4gICAgfSB3aGlsZSAocCAhPT0gc3RhcnQpO1xyXG5cclxuICAgIHJldHVybiBsZWZ0bW9zdDtcclxufVxyXG5cclxuLy8gY2hlY2sgaWYgYSBwb2ludCBsaWVzIHdpdGhpbiBhIGNvbnZleCB0cmlhbmdsZVxyXG5mdW5jdGlvbiBwb2ludEluVHJpYW5nbGUoYXgsIGF5LCBieCwgYnksIGN4LCBjeSwgcHgsIHB5KSB7XHJcbiAgICByZXR1cm4gKGN4IC0gcHgpICogKGF5IC0gcHkpIC0gKGF4IC0gcHgpICogKGN5IC0gcHkpID49IDAgJiZcclxuICAgICAgICAgICAoYXggLSBweCkgKiAoYnkgLSBweSkgLSAoYnggLSBweCkgKiAoYXkgLSBweSkgPj0gMCAmJlxyXG4gICAgICAgICAgIChieCAtIHB4KSAqIChjeSAtIHB5KSAtIChjeCAtIHB4KSAqIChieSAtIHB5KSA+PSAwO1xyXG59XHJcblxyXG4vLyBjaGVjayBpZiBhIGRpYWdvbmFsIGJldHdlZW4gdHdvIHBvbHlnb24gbm9kZXMgaXMgdmFsaWQgKGxpZXMgaW4gcG9seWdvbiBpbnRlcmlvcilcclxuZnVuY3Rpb24gaXNWYWxpZERpYWdvbmFsKGEsIGIpIHtcclxuICAgIHJldHVybiBhLm5leHQuaSAhPT0gYi5pICYmIGEucHJldi5pICE9PSBiLmkgJiYgIWludGVyc2VjdHNQb2x5Z29uKGEsIGIpICYmXHJcbiAgICAgICAgICAgbG9jYWxseUluc2lkZShhLCBiKSAmJiBsb2NhbGx5SW5zaWRlKGIsIGEpICYmIG1pZGRsZUluc2lkZShhLCBiKTtcclxufVxyXG5cclxuLy8gc2lnbmVkIGFyZWEgb2YgYSB0cmlhbmdsZVxyXG5mdW5jdGlvbiBhcmVhKHAsIHEsIHIpIHtcclxuICAgIHJldHVybiAocS55IC0gcC55KSAqIChyLnggLSBxLngpIC0gKHEueCAtIHAueCkgKiAoci55IC0gcS55KTtcclxufVxyXG5cclxuLy8gY2hlY2sgaWYgdHdvIHBvaW50cyBhcmUgZXF1YWxcclxuZnVuY3Rpb24gZXF1YWxzKHAxLCBwMikge1xyXG4gICAgcmV0dXJuIHAxLnggPT09IHAyLnggJiYgcDEueSA9PT0gcDIueTtcclxufVxyXG5cclxuLy8gY2hlY2sgaWYgdHdvIHNlZ21lbnRzIGludGVyc2VjdFxyXG5mdW5jdGlvbiBpbnRlcnNlY3RzKHAxLCBxMSwgcDIsIHEyKSB7XHJcbiAgICBpZiAoKGVxdWFscyhwMSwgcTEpICYmIGVxdWFscyhwMiwgcTIpKSB8fFxyXG4gICAgICAgIChlcXVhbHMocDEsIHEyKSAmJiBlcXVhbHMocDIsIHExKSkpIHJldHVybiB0cnVlO1xyXG4gICAgcmV0dXJuIGFyZWEocDEsIHExLCBwMikgPiAwICE9PSBhcmVhKHAxLCBxMSwgcTIpID4gMCAmJlxyXG4gICAgICAgICAgIGFyZWEocDIsIHEyLCBwMSkgPiAwICE9PSBhcmVhKHAyLCBxMiwgcTEpID4gMDtcclxufVxyXG5cclxuLy8gY2hlY2sgaWYgYSBwb2x5Z29uIGRpYWdvbmFsIGludGVyc2VjdHMgYW55IHBvbHlnb24gc2VnbWVudHNcclxuZnVuY3Rpb24gaW50ZXJzZWN0c1BvbHlnb24oYSwgYikge1xyXG4gICAgdmFyIHAgPSBhO1xyXG4gICAgZG8ge1xyXG4gICAgICAgIGlmIChwLmkgIT09IGEuaSAmJiBwLm5leHQuaSAhPT0gYS5pICYmIHAuaSAhPT0gYi5pICYmIHAubmV4dC5pICE9PSBiLmkgJiZcclxuICAgICAgICAgICAgICAgIGludGVyc2VjdHMocCwgcC5uZXh0LCBhLCBiKSkgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgcCA9IHAubmV4dDtcclxuICAgIH0gd2hpbGUgKHAgIT09IGEpO1xyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxufVxyXG5cclxuLy8gY2hlY2sgaWYgYSBwb2x5Z29uIGRpYWdvbmFsIGlzIGxvY2FsbHkgaW5zaWRlIHRoZSBwb2x5Z29uXHJcbmZ1bmN0aW9uIGxvY2FsbHlJbnNpZGUoYSwgYikge1xyXG4gICAgcmV0dXJuIGFyZWEoYS5wcmV2LCBhLCBhLm5leHQpIDwgMCA/XHJcbiAgICAgICAgYXJlYShhLCBiLCBhLm5leHQpID49IDAgJiYgYXJlYShhLCBhLnByZXYsIGIpID49IDAgOlxyXG4gICAgICAgIGFyZWEoYSwgYiwgYS5wcmV2KSA8IDAgfHwgYXJlYShhLCBhLm5leHQsIGIpIDwgMDtcclxufVxyXG5cclxuLy8gY2hlY2sgaWYgdGhlIG1pZGRsZSBwb2ludCBvZiBhIHBvbHlnb24gZGlhZ29uYWwgaXMgaW5zaWRlIHRoZSBwb2x5Z29uXHJcbmZ1bmN0aW9uIG1pZGRsZUluc2lkZShhLCBiKSB7XHJcbiAgICB2YXIgcCA9IGEsXHJcbiAgICAgICAgaW5zaWRlID0gZmFsc2UsXHJcbiAgICAgICAgcHggPSAoYS54ICsgYi54KSAvIDIsXHJcbiAgICAgICAgcHkgPSAoYS55ICsgYi55KSAvIDI7XHJcbiAgICBkbyB7XHJcbiAgICAgICAgaWYgKCgocC55ID4gcHkpICE9PSAocC5uZXh0LnkgPiBweSkpICYmIChweCA8IChwLm5leHQueCAtIHAueCkgKiAocHkgLSBwLnkpIC8gKHAubmV4dC55IC0gcC55KSArIHAueCkpXHJcbiAgICAgICAgICAgIGluc2lkZSA9ICFpbnNpZGU7XHJcbiAgICAgICAgcCA9IHAubmV4dDtcclxuICAgIH0gd2hpbGUgKHAgIT09IGEpO1xyXG5cclxuICAgIHJldHVybiBpbnNpZGU7XHJcbn1cclxuXHJcbi8vIGxpbmsgdHdvIHBvbHlnb24gdmVydGljZXMgd2l0aCBhIGJyaWRnZTsgaWYgdGhlIHZlcnRpY2VzIGJlbG9uZyB0byB0aGUgc2FtZSByaW5nLCBpdCBzcGxpdHMgcG9seWdvbiBpbnRvIHR3bztcclxuLy8gaWYgb25lIGJlbG9uZ3MgdG8gdGhlIG91dGVyIHJpbmcgYW5kIGFub3RoZXIgdG8gYSBob2xlLCBpdCBtZXJnZXMgaXQgaW50byBhIHNpbmdsZSByaW5nXHJcbmZ1bmN0aW9uIHNwbGl0UG9seWdvbihhLCBiKSB7XHJcbiAgICB2YXIgYTIgPSBuZXcgTm9kZShhLmksIGEueCwgYS55KSxcclxuICAgICAgICBiMiA9IG5ldyBOb2RlKGIuaSwgYi54LCBiLnkpLFxyXG4gICAgICAgIGFuID0gYS5uZXh0LFxyXG4gICAgICAgIGJwID0gYi5wcmV2O1xyXG5cclxuICAgIGEubmV4dCA9IGI7XHJcbiAgICBiLnByZXYgPSBhO1xyXG5cclxuICAgIGEyLm5leHQgPSBhbjtcclxuICAgIGFuLnByZXYgPSBhMjtcclxuXHJcbiAgICBiMi5uZXh0ID0gYTI7XHJcbiAgICBhMi5wcmV2ID0gYjI7XHJcblxyXG4gICAgYnAubmV4dCA9IGIyO1xyXG4gICAgYjIucHJldiA9IGJwO1xyXG5cclxuICAgIHJldHVybiBiMjtcclxufVxyXG5cclxuLy8gY3JlYXRlIGEgbm9kZSBhbmQgb3B0aW9uYWxseSBsaW5rIGl0IHdpdGggcHJldmlvdXMgb25lIChpbiBhIGNpcmN1bGFyIGRvdWJseSBsaW5rZWQgbGlzdClcclxuZnVuY3Rpb24gaW5zZXJ0Tm9kZShpLCB4LCB5LCBsYXN0KSB7XHJcbiAgICB2YXIgcCA9IG5ldyBOb2RlKGksIHgsIHkpO1xyXG5cclxuICAgIGlmICghbGFzdCkge1xyXG4gICAgICAgIHAucHJldiA9IHA7XHJcbiAgICAgICAgcC5uZXh0ID0gcDtcclxuXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHAubmV4dCA9IGxhc3QubmV4dDtcclxuICAgICAgICBwLnByZXYgPSBsYXN0O1xyXG4gICAgICAgIGxhc3QubmV4dC5wcmV2ID0gcDtcclxuICAgICAgICBsYXN0Lm5leHQgPSBwO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHA7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJlbW92ZU5vZGUocCkge1xyXG4gICAgcC5uZXh0LnByZXYgPSBwLnByZXY7XHJcbiAgICBwLnByZXYubmV4dCA9IHAubmV4dDtcclxuXHJcbiAgICBpZiAocC5wcmV2WikgcC5wcmV2Wi5uZXh0WiA9IHAubmV4dFo7XHJcbiAgICBpZiAocC5uZXh0WikgcC5uZXh0Wi5wcmV2WiA9IHAucHJldlo7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIE5vZGUoaSwgeCwgeSkge1xyXG4gICAgLy8gdmVydGljZSBpbmRleCBpbiBjb29yZGluYXRlcyBhcnJheVxyXG4gICAgdGhpcy5pID0gaTtcclxuXHJcbiAgICAvLyB2ZXJ0ZXggY29vcmRpbmF0ZXNcclxuICAgIHRoaXMueCA9IHg7XHJcbiAgICB0aGlzLnkgPSB5O1xyXG5cclxuICAgIC8vIHByZXZpb3VzIGFuZCBuZXh0IHZlcnRpY2Ugbm9kZXMgaW4gYSBwb2x5Z29uIHJpbmdcclxuICAgIHRoaXMucHJldiA9IG51bGw7XHJcbiAgICB0aGlzLm5leHQgPSBudWxsO1xyXG5cclxuICAgIC8vIHotb3JkZXIgY3VydmUgdmFsdWVcclxuICAgIHRoaXMueiA9IG51bGw7XHJcblxyXG4gICAgLy8gcHJldmlvdXMgYW5kIG5leHQgbm9kZXMgaW4gei1vcmRlclxyXG4gICAgdGhpcy5wcmV2WiA9IG51bGw7XHJcbiAgICB0aGlzLm5leHRaID0gbnVsbDtcclxuXHJcbiAgICAvLyBpbmRpY2F0ZXMgd2hldGhlciB0aGlzIGlzIGEgc3RlaW5lciBwb2ludFxyXG4gICAgdGhpcy5zdGVpbmVyID0gZmFsc2U7XHJcbn1cclxuXHJcbi8vIHJldHVybiBhIHBlcmNlbnRhZ2UgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBwb2x5Z29uIGFyZWEgYW5kIGl0cyB0cmlhbmd1bGF0aW9uIGFyZWE7XHJcbi8vIHVzZWQgdG8gdmVyaWZ5IGNvcnJlY3RuZXNzIG9mIHRyaWFuZ3VsYXRpb25cclxuZWFyY3V0LmRldmlhdGlvbiA9IGZ1bmN0aW9uIChkYXRhLCBob2xlSW5kaWNlcywgZGltLCB0cmlhbmdsZXMpIHtcclxuICAgIHZhciBoYXNIb2xlcyA9IGhvbGVJbmRpY2VzICYmIGhvbGVJbmRpY2VzLmxlbmd0aDtcclxuICAgIHZhciBvdXRlckxlbiA9IGhhc0hvbGVzID8gaG9sZUluZGljZXNbMF0gKiBkaW0gOiBkYXRhLmxlbmd0aDtcclxuXHJcbiAgICB2YXIgcG9seWdvbkFyZWEgPSBNYXRoLmFicyhzaWduZWRBcmVhKGRhdGEsIDAsIG91dGVyTGVuLCBkaW0pKTtcclxuICAgIGlmIChoYXNIb2xlcykge1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBob2xlSW5kaWNlcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICB2YXIgc3RhcnQgPSBob2xlSW5kaWNlc1tpXSAqIGRpbTtcclxuICAgICAgICAgICAgdmFyIGVuZCA9IGkgPCBsZW4gLSAxID8gaG9sZUluZGljZXNbaSArIDFdICogZGltIDogZGF0YS5sZW5ndGg7XHJcbiAgICAgICAgICAgIHBvbHlnb25BcmVhIC09IE1hdGguYWJzKHNpZ25lZEFyZWEoZGF0YSwgc3RhcnQsIGVuZCwgZGltKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHZhciB0cmlhbmdsZXNBcmVhID0gMDtcclxuICAgIGZvciAoaSA9IDA7IGkgPCB0cmlhbmdsZXMubGVuZ3RoOyBpICs9IDMpIHtcclxuICAgICAgICB2YXIgYSA9IHRyaWFuZ2xlc1tpXSAqIGRpbTtcclxuICAgICAgICB2YXIgYiA9IHRyaWFuZ2xlc1tpICsgMV0gKiBkaW07XHJcbiAgICAgICAgdmFyIGMgPSB0cmlhbmdsZXNbaSArIDJdICogZGltO1xyXG4gICAgICAgIHRyaWFuZ2xlc0FyZWEgKz0gTWF0aC5hYnMoXHJcbiAgICAgICAgICAgIChkYXRhW2FdIC0gZGF0YVtjXSkgKiAoZGF0YVtiICsgMV0gLSBkYXRhW2EgKyAxXSkgLVxyXG4gICAgICAgICAgICAoZGF0YVthXSAtIGRhdGFbYl0pICogKGRhdGFbYyArIDFdIC0gZGF0YVthICsgMV0pKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcG9seWdvbkFyZWEgPT09IDAgJiYgdHJpYW5nbGVzQXJlYSA9PT0gMCA/IDAgOlxyXG4gICAgICAgIE1hdGguYWJzKCh0cmlhbmdsZXNBcmVhIC0gcG9seWdvbkFyZWEpIC8gcG9seWdvbkFyZWEpO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gc2lnbmVkQXJlYShkYXRhLCBzdGFydCwgZW5kLCBkaW0pIHtcclxuICAgIHZhciBzdW0gPSAwO1xyXG4gICAgZm9yICh2YXIgaSA9IHN0YXJ0LCBqID0gZW5kIC0gZGltOyBpIDwgZW5kOyBpICs9IGRpbSkge1xyXG4gICAgICAgIHN1bSArPSAoZGF0YVtqXSAtIGRhdGFbaV0pICogKGRhdGFbaSArIDFdICsgZGF0YVtqICsgMV0pO1xyXG4gICAgICAgIGogPSBpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN1bTtcclxufVxyXG5cclxuLy8gdHVybiBhIHBvbHlnb24gaW4gYSBtdWx0aS1kaW1lbnNpb25hbCBhcnJheSBmb3JtIChlLmcuIGFzIGluIEdlb0pTT04pIGludG8gYSBmb3JtIEVhcmN1dCBhY2NlcHRzXHJcbmVhcmN1dC5mbGF0dGVuID0gZnVuY3Rpb24gKGRhdGEpIHtcclxuICAgIHZhciBkaW0gPSBkYXRhWzBdWzBdLmxlbmd0aCxcclxuICAgICAgICByZXN1bHQgPSB7dmVydGljZXM6IFtdLCBob2xlczogW10sIGRpbWVuc2lvbnM6IGRpbX0sXHJcbiAgICAgICAgaG9sZUluZGV4ID0gMDtcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGRhdGFbaV0ubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgZm9yICh2YXIgZCA9IDA7IGQgPCBkaW07IGQrKykgcmVzdWx0LnZlcnRpY2VzLnB1c2goZGF0YVtpXVtqXVtkXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpID4gMCkge1xyXG4gICAgICAgICAgICBob2xlSW5kZXggKz0gZGF0YVtpIC0gMV0ubGVuZ3RoO1xyXG4gICAgICAgICAgICByZXN1bHQuaG9sZXMucHVzaChob2xlSW5kZXgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn07XHJcbiJdfQ==
|
13619
|
+
;
|
13620
|
+
/*global define*/
|
13621
|
+
define('Core/Cartesian2',[
|
13622
|
+
'./defaultValue',
|
13623
|
+
'./defined',
|
13624
|
+
'./DeveloperError',
|
13625
|
+
'./freezeObject',
|
13626
|
+
'./Math'
|
13627
|
+
], function(
|
13628
|
+
defaultValue,
|
13629
|
+
defined,
|
13630
|
+
DeveloperError,
|
13631
|
+
freezeObject,
|
13632
|
+
CesiumMath) {
|
13633
|
+
'use strict';
|
13634
|
+
|
13635
|
+
/**
|
13636
|
+
* A 2D Cartesian point.
|
13637
|
+
* @alias Cartesian2
|
13638
|
+
* @constructor
|
13639
|
+
*
|
13640
|
+
* @param {Number} [x=0.0] The X component.
|
13641
|
+
* @param {Number} [y=0.0] The Y component.
|
13642
|
+
*
|
13643
|
+
* @see Cartesian3
|
13644
|
+
* @see Cartesian4
|
13645
|
+
* @see Packable
|
13646
|
+
*/
|
13647
|
+
function Cartesian2(x, y) {
|
13648
|
+
/**
|
13649
|
+
* The X component.
|
13650
|
+
* @type {Number}
|
13651
|
+
* @default 0.0
|
13652
|
+
*/
|
13653
|
+
this.x = defaultValue(x, 0.0);
|
13654
|
+
|
13655
|
+
/**
|
13656
|
+
* The Y component.
|
13657
|
+
* @type {Number}
|
13658
|
+
* @default 0.0
|
13659
|
+
*/
|
13660
|
+
this.y = defaultValue(y, 0.0);
|
13661
|
+
}
|
13662
|
+
|
13663
|
+
/**
|
13664
|
+
* Creates a Cartesian2 instance from x and y coordinates.
|
13665
|
+
*
|
13666
|
+
* @param {Number} x The x coordinate.
|
13667
|
+
* @param {Number} y The y coordinate.
|
13668
|
+
* @param {Cartesian2} [result] The object onto which to store the result.
|
13669
|
+
* @returns {Cartesian2} The modified result parameter or a new Cartesian2 instance if one was not provided.
|
13670
|
+
*/
|
13671
|
+
Cartesian2.fromElements = function(x, y, result) {
|
13672
|
+
if (!defined(result)) {
|
13673
|
+
return new Cartesian2(x, y);
|
13674
|
+
}
|
13675
|
+
|
13676
|
+
result.x = x;
|
13677
|
+
result.y = y;
|
13678
|
+
return result;
|
13679
|
+
};
|
13680
|
+
|
13681
|
+
/**
|
13682
|
+
* Duplicates a Cartesian2 instance.
|
13683
|
+
*
|
13684
|
+
* @param {Cartesian2} cartesian The Cartesian to duplicate.
|
13685
|
+
* @param {Cartesian2} [result] The object onto which to store the result.
|
12756
13686
|
* @returns {Cartesian2} The modified result parameter or a new Cartesian2 instance if one was not provided. (Returns undefined if cartesian is undefined)
|
12757
13687
|
*/
|
12758
13688
|
Cartesian2.clone = function(cartesian, result) {
|
@@ -12841,10 +13771,61 @@ define('Core/Cartesian2',[
|
|
12841
13771
|
};
|
12842
13772
|
|
12843
13773
|
/**
|
12844
|
-
*
|
12845
|
-
* @function
|
13774
|
+
* Flattens an array of Cartesian2s into and array of components.
|
12846
13775
|
*
|
12847
|
-
* @param {
|
13776
|
+
* @param {Cartesian2[]} array The array of cartesians to pack.
|
13777
|
+
* @param {Number[]} result The array onto which to store the result.
|
13778
|
+
* @returns {Number[]} The packed array.
|
13779
|
+
*/
|
13780
|
+
Cartesian2.packArray = function(array, result) {
|
13781
|
+
if (!defined(array)) {
|
13782
|
+
throw new DeveloperError('array is required');
|
13783
|
+
}
|
13784
|
+
|
13785
|
+
var length = array.length;
|
13786
|
+
if (!defined(result)) {
|
13787
|
+
result = new Array(length * 2);
|
13788
|
+
} else {
|
13789
|
+
result.length = length * 2;
|
13790
|
+
}
|
13791
|
+
|
13792
|
+
for (var i = 0; i < length; ++i) {
|
13793
|
+
Cartesian2.pack(array[i], result, i * 2);
|
13794
|
+
}
|
13795
|
+
return result;
|
13796
|
+
};
|
13797
|
+
|
13798
|
+
/**
|
13799
|
+
* Unpacks an array of cartesian components into and array of Cartesian2s.
|
13800
|
+
*
|
13801
|
+
* @param {Number[]} array The array of components to unpack.
|
13802
|
+
* @param {Cartesian2[]} result The array onto which to store the result.
|
13803
|
+
* @returns {Cartesian2[]} The unpacked array.
|
13804
|
+
*/
|
13805
|
+
Cartesian2.unpackArray = function(array, result) {
|
13806
|
+
if (!defined(array)) {
|
13807
|
+
throw new DeveloperError('array is required');
|
13808
|
+
}
|
13809
|
+
|
13810
|
+
var length = array.length;
|
13811
|
+
if (!defined(result)) {
|
13812
|
+
result = new Array(length / 2);
|
13813
|
+
} else {
|
13814
|
+
result.length = length / 2;
|
13815
|
+
}
|
13816
|
+
|
13817
|
+
for (var i = 0; i < length; i += 2) {
|
13818
|
+
var index = i / 2;
|
13819
|
+
result[index] = Cartesian2.unpack(array, i, result[index]);
|
13820
|
+
}
|
13821
|
+
return result;
|
13822
|
+
};
|
13823
|
+
|
13824
|
+
/**
|
13825
|
+
* Creates a Cartesian2 from two consecutive elements in an array.
|
13826
|
+
* @function
|
13827
|
+
*
|
13828
|
+
* @param {Number[]} array The array whose two consecutive elements correspond to the x and y components, respectively.
|
12848
13829
|
* @param {Number} [startingIndex=0] The offset into the array of the first element, which corresponds to the x component.
|
12849
13830
|
* @param {Cartesian2} [result] The object onto which to store the result.
|
12850
13831
|
* @returns {Cartesian2} The modified result parameter or a new Cartesian2 instance if one was not provided.
|
@@ -13411,7 +14392,7 @@ define('Core/AxisAlignedBoundingBox',[
|
|
13411
14392
|
defined,
|
13412
14393
|
DeveloperError,
|
13413
14394
|
Intersect) {
|
13414
|
-
|
14395
|
+
'use strict';
|
13415
14396
|
|
13416
14397
|
/**
|
13417
14398
|
* Creates an instance of an AxisAlignedBoundingBox from the minimum and maximum points along the x, y, and z axes.
|
@@ -13638,7 +14619,7 @@ define('Core/QuadraticRealPolynomial',[
|
|
13638
14619
|
], function(
|
13639
14620
|
DeveloperError,
|
13640
14621
|
CesiumMath) {
|
13641
|
-
|
14622
|
+
'use strict';
|
13642
14623
|
|
13643
14624
|
/**
|
13644
14625
|
* Defines functions for 2nd order polynomial functions of one variable with only real coefficients.
|
@@ -13773,7 +14754,7 @@ define('Core/CubicRealPolynomial',[
|
|
13773
14754
|
], function(
|
13774
14755
|
DeveloperError,
|
13775
14756
|
QuadraticRealPolynomial) {
|
13776
|
-
|
14757
|
+
'use strict';
|
13777
14758
|
|
13778
14759
|
/**
|
13779
14760
|
* Defines functions for 3rd order polynomial functions of one variable with only real coefficients.
|
@@ -14013,7 +14994,7 @@ define('Core/QuarticRealPolynomial',[
|
|
14013
14994
|
DeveloperError,
|
14014
14995
|
CesiumMath,
|
14015
14996
|
QuadraticRealPolynomial) {
|
14016
|
-
|
14997
|
+
'use strict';
|
14017
14998
|
|
14018
14999
|
/**
|
14019
15000
|
* Defines functions for 4th order polynomial functions of one variable with only real coefficients.
|
@@ -14337,7 +15318,7 @@ define('Core/Ray',[
|
|
14337
15318
|
defaultValue,
|
14338
15319
|
defined,
|
14339
15320
|
DeveloperError) {
|
14340
|
-
|
15321
|
+
'use strict';
|
14341
15322
|
|
14342
15323
|
/**
|
14343
15324
|
* Represents a ray that extends infinitely from the provided origin in the provided direction.
|
@@ -14423,7 +15404,7 @@ define('Core/IntersectionTests',[
|
|
14423
15404
|
QuadraticRealPolynomial,
|
14424
15405
|
QuarticRealPolynomial,
|
14425
15406
|
Ray) {
|
14426
|
-
|
15407
|
+
'use strict';
|
14427
15408
|
|
14428
15409
|
/**
|
14429
15410
|
* Functions for computing the intersection between geometries such as rays, planes, triangles, and ellipsoids.
|
@@ -14478,7 +15459,19 @@ define('Core/IntersectionTests',[
|
|
14478
15459
|
var scratchTVec = new Cartesian3();
|
14479
15460
|
var scratchQVec = new Cartesian3();
|
14480
15461
|
|
14481
|
-
|
15462
|
+
/**
|
15463
|
+
* Computes the intersection of a ray and a triangle as a parametric distance along the input ray.
|
15464
|
+
* @memberof IntersectionTests
|
15465
|
+
*
|
15466
|
+
* @param {Ray} ray The ray.
|
15467
|
+
* @param {Cartesian3} p0 The first vertex of the triangle.
|
15468
|
+
* @param {Cartesian3} p1 The second vertex of the triangle.
|
15469
|
+
* @param {Cartesian3} p2 The third vertex of the triangle.
|
15470
|
+
* @param {Boolean} [cullBackFaces=false] If <code>true</code>, will only compute an intersection with the front face of the triangle
|
15471
|
+
* and return undefined for intersections with the back face.
|
15472
|
+
* @returns {Number} The intersection as a parametric distance along the ray, or undefined if there is no intersection.
|
15473
|
+
*/
|
15474
|
+
IntersectionTests.rayTriangleParametric = function(ray, p0, p1, p2, cullBackFaces) {
|
14482
15475
|
if (!defined(ray)) {
|
14483
15476
|
throw new DeveloperError('ray is required.');
|
14484
15477
|
}
|
@@ -14552,10 +15545,10 @@ define('Core/IntersectionTests',[
|
|
14552
15545
|
}
|
14553
15546
|
|
14554
15547
|
return t;
|
14555
|
-
}
|
15548
|
+
};
|
14556
15549
|
|
14557
15550
|
/**
|
14558
|
-
* Computes the intersection of a ray and a triangle.
|
15551
|
+
* Computes the intersection of a ray and a triangle as a Cartesian3 coordinate.
|
14559
15552
|
* @memberof IntersectionTests
|
14560
15553
|
*
|
14561
15554
|
* @param {Ray} ray The ray.
|
@@ -14568,7 +15561,7 @@ define('Core/IntersectionTests',[
|
|
14568
15561
|
* @returns {Cartesian3} The intersection point or undefined if there is no intersections.
|
14569
15562
|
*/
|
14570
15563
|
IntersectionTests.rayTriangle = function(ray, p0, p1, p2, cullBackFaces, result) {
|
14571
|
-
var t =
|
15564
|
+
var t = IntersectionTests.rayTriangleParametric(ray, p0, p1, p2, cullBackFaces);
|
14572
15565
|
if (!defined(t) || t < 0.0) {
|
14573
15566
|
return undefined;
|
14574
15567
|
}
|
@@ -14610,7 +15603,7 @@ define('Core/IntersectionTests',[
|
|
14610
15603
|
Cartesian3.subtract(v1, v0, ray.direction);
|
14611
15604
|
Cartesian3.normalize(ray.direction, ray.direction);
|
14612
15605
|
|
14613
|
-
var t =
|
15606
|
+
var t = IntersectionTests.rayTriangleParametric(ray, p0, p1, p2, cullBackFaces);
|
14614
15607
|
if (!defined(t) || t < 0.0 || t > Cartesian3.distance(v0, v1)) {
|
14615
15608
|
return undefined;
|
14616
15609
|
}
|
@@ -14735,6 +15728,7 @@ define('Core/IntersectionTests',[
|
|
14735
15728
|
}
|
14736
15729
|
|
14737
15730
|
var ray = scratchLineSegmentRay;
|
15731
|
+
Cartesian3.clone(p0, ray.origin);
|
14738
15732
|
var direction = Cartesian3.subtract(p1, p0, ray.direction);
|
14739
15733
|
|
14740
15734
|
var maxT = Cartesian3.magnitude(direction);
|
@@ -16026,7 +17020,7 @@ define('Core/binarySearch',[
|
|
16026
17020
|
], function(
|
16027
17021
|
defined,
|
16028
17022
|
DeveloperError) {
|
16029
|
-
|
17023
|
+
'use strict';
|
16030
17024
|
|
16031
17025
|
/**
|
16032
17026
|
* Finds an item in a sorted array.
|
@@ -16103,7 +17097,7 @@ define('Core/binarySearch',[
|
|
16103
17097
|
|
16104
17098
|
/*global define*/
|
16105
17099
|
define('Core/EarthOrientationParametersSample',[],function() {
|
16106
|
-
|
17100
|
+
'use strict';
|
16107
17101
|
|
16108
17102
|
/**
|
16109
17103
|
* A set of Earth Orientation Parameters (EOP) sampled at a time.
|
@@ -16477,7 +17471,7 @@ return sprintf;
|
|
16477
17471
|
|
16478
17472
|
/*global define*/
|
16479
17473
|
define('Core/GregorianDate',[],function() {
|
16480
|
-
|
17474
|
+
'use strict';
|
16481
17475
|
|
16482
17476
|
/**
|
16483
17477
|
* Represents a Gregorian date in a more precise format than the JavaScript Date object.
|
@@ -16538,7 +17532,7 @@ define('Core/isLeapYear',[
|
|
16538
17532
|
'./DeveloperError'
|
16539
17533
|
], function(
|
16540
17534
|
DeveloperError) {
|
16541
|
-
|
17535
|
+
'use strict';
|
16542
17536
|
|
16543
17537
|
/**
|
16544
17538
|
* Determines if a given date is a leap year.
|
@@ -16564,7 +17558,7 @@ define('Core/isLeapYear',[
|
|
16564
17558
|
|
16565
17559
|
/*global define*/
|
16566
17560
|
define('Core/LeapSecond',[],function() {
|
16567
|
-
|
17561
|
+
'use strict';
|
16568
17562
|
|
16569
17563
|
/**
|
16570
17564
|
* Describes a single leap second, which is constructed from a {@link JulianDate} and a
|
@@ -16598,7 +17592,7 @@ define('Core/TimeConstants',[
|
|
16598
17592
|
'./freezeObject'
|
16599
17593
|
], function(
|
16600
17594
|
freezeObject) {
|
16601
|
-
|
17595
|
+
'use strict';
|
16602
17596
|
|
16603
17597
|
/**
|
16604
17598
|
* Constants for time conversions like those done by {@link JulianDate}.
|
@@ -16691,7 +17685,7 @@ define('Core/TimeStandard',[
|
|
16691
17685
|
'./freezeObject'
|
16692
17686
|
], function(
|
16693
17687
|
freezeObject) {
|
16694
|
-
|
17688
|
+
'use strict';
|
16695
17689
|
|
16696
17690
|
/**
|
16697
17691
|
* Provides the type of time standards which JulianDate can take as input.
|
@@ -16743,7 +17737,7 @@ define('Core/JulianDate',[
|
|
16743
17737
|
LeapSecond,
|
16744
17738
|
TimeConstants,
|
16745
17739
|
TimeStandard) {
|
16746
|
-
|
17740
|
+
'use strict';
|
16747
17741
|
|
16748
17742
|
var gregorianDateScratch = new GregorianDate();
|
16749
17743
|
var daysInMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
@@ -16892,8 +17886,8 @@ define('Core/JulianDate',[
|
|
16892
17886
|
* @alias JulianDate
|
16893
17887
|
* @constructor
|
16894
17888
|
*
|
16895
|
-
* @param {Number} julianDayNumber The Julian Day Number representing the number of whole days. Fractional days will also be handled correctly.
|
16896
|
-
* @param {Number} secondsOfDay The number of seconds into the current Julian Day Number. Fractional seconds, negative seconds and seconds greater than a day will be handled correctly.
|
17889
|
+
* @param {Number} [julianDayNumber=0.0] The Julian Day Number representing the number of whole days. Fractional days will also be handled correctly.
|
17890
|
+
* @param {Number} [secondsOfDay=0.0] The number of seconds into the current Julian Day Number. Fractional seconds, negative seconds and seconds greater than a day will be handled correctly.
|
16897
17891
|
* @param {TimeStandard} [timeStandard=TimeStandard.UTC] The time standard in which the first two parameters are defined.
|
16898
17892
|
*/
|
16899
17893
|
function JulianDate(julianDayNumber, secondsOfDay, timeStandard) {
|
@@ -17716,7 +18710,7 @@ define('Core/clone',[
|
|
17716
18710
|
'./defaultValue'
|
17717
18711
|
], function(
|
17718
18712
|
defaultValue) {
|
17719
|
-
|
18713
|
+
'use strict';
|
17720
18714
|
|
17721
18715
|
/**
|
17722
18716
|
* Clones an object, returning a new object containing the same properties.
|
@@ -17753,7 +18747,7 @@ define('Core/clone',[
|
|
17753
18747
|
|
17754
18748
|
/*global define*/
|
17755
18749
|
define('Core/parseResponseHeaders',[], function() {
|
17756
|
-
|
18750
|
+
'use strict';
|
17757
18751
|
|
17758
18752
|
/**
|
17759
18753
|
* Parses the result of XMLHttpRequest's getAllResponseHeaders() method into
|
@@ -17802,7 +18796,7 @@ define('Core/RequestErrorEvent',[
|
|
17802
18796
|
], function(
|
17803
18797
|
defined,
|
17804
18798
|
parseResponseHeaders) {
|
17805
|
-
|
18799
|
+
'use strict';
|
17806
18800
|
|
17807
18801
|
/**
|
17808
18802
|
* An event that is raised when a request encounters an error.
|
@@ -17877,7 +18871,7 @@ define('Core/loadWithXhr',[
|
|
17877
18871
|
DeveloperError,
|
17878
18872
|
RequestErrorEvent,
|
17879
18873
|
RuntimeError) {
|
17880
|
-
|
18874
|
+
'use strict';
|
17881
18875
|
|
17882
18876
|
/**
|
17883
18877
|
* Asynchronously loads the given URL. Returns a promise that will resolve to
|
@@ -18048,7 +19042,7 @@ define('Core/loadText',[
|
|
18048
19042
|
'./loadWithXhr'
|
18049
19043
|
], function(
|
18050
19044
|
loadWithXhr) {
|
18051
|
-
|
19045
|
+
'use strict';
|
18052
19046
|
|
18053
19047
|
/**
|
18054
19048
|
* Asynchronously loads the given URL as text. Returns a promise that will resolve to
|
@@ -18098,7 +19092,7 @@ define('Core/loadJson',[
|
|
18098
19092
|
defined,
|
18099
19093
|
DeveloperError,
|
18100
19094
|
loadText) {
|
18101
|
-
|
19095
|
+
'use strict';
|
18102
19096
|
|
18103
19097
|
var defaultHeaders = {
|
18104
19098
|
Accept : 'application/json,*/*;q=0.01'
|
@@ -18181,7 +19175,7 @@ define('Core/EarthOrientationParameters',[
|
|
18181
19175
|
RuntimeError,
|
18182
19176
|
TimeConstants,
|
18183
19177
|
TimeStandard) {
|
18184
|
-
|
19178
|
+
'use strict';
|
18185
19179
|
|
18186
19180
|
/**
|
18187
19181
|
* Specifies Earth polar motion coordinates and the difference between UT1 and UTC.
|
@@ -18826,7 +19820,7 @@ define('Core/getAbsoluteUri',[
|
|
18826
19820
|
defaultValue,
|
18827
19821
|
defined,
|
18828
19822
|
DeveloperError) {
|
18829
|
-
|
19823
|
+
'use strict';
|
18830
19824
|
|
18831
19825
|
/**
|
18832
19826
|
* Given a relative Uri and a base Uri, returns the absolute Uri of the relative Uri.
|
@@ -18853,20 +19847,127 @@ define('Core/getAbsoluteUri',[
|
|
18853
19847
|
return getAbsoluteUri;
|
18854
19848
|
});
|
18855
19849
|
|
19850
|
+
/*global define*/
|
19851
|
+
define('Core/joinUrls',[
|
19852
|
+
'../ThirdParty/Uri',
|
19853
|
+
'./defaultValue',
|
19854
|
+
'./defined',
|
19855
|
+
'./DeveloperError'
|
19856
|
+
], function(
|
19857
|
+
Uri,
|
19858
|
+
defaultValue,
|
19859
|
+
defined,
|
19860
|
+
DeveloperError) {
|
19861
|
+
'use strict';
|
19862
|
+
|
19863
|
+
/**
|
19864
|
+
* Function for joining URLs in a manner that is aware of query strings and fragments.
|
19865
|
+
* This is useful when the base URL has a query string that needs to be maintained
|
19866
|
+
* (e.g. a presigned base URL).
|
19867
|
+
* @param {String|Uri} first The base URL.
|
19868
|
+
* @param {String|Uri} second The URL path to join to the base URL. If this URL is absolute, it is returned unmodified.
|
19869
|
+
* @param {Boolean} [appendSlash=true] The boolean determining whether there should be a forward slash between first and second.
|
19870
|
+
* @private
|
19871
|
+
*/
|
19872
|
+
function joinUrls(first, second, appendSlash) {
|
19873
|
+
if (!defined(first)) {
|
19874
|
+
throw new DeveloperError('first is required');
|
19875
|
+
}
|
19876
|
+
if (!defined(second)) {
|
19877
|
+
throw new DeveloperError('second is required');
|
19878
|
+
}
|
19879
|
+
|
19880
|
+
appendSlash = defaultValue(appendSlash, true);
|
19881
|
+
|
19882
|
+
if (!(first instanceof Uri)) {
|
19883
|
+
first = new Uri(first);
|
19884
|
+
}
|
19885
|
+
|
19886
|
+
if (!(second instanceof Uri)) {
|
19887
|
+
second = new Uri(second);
|
19888
|
+
}
|
19889
|
+
|
19890
|
+
// Uri.isAbsolute returns false for a URL like '//foo.com'. So if we have an authority but
|
19891
|
+
// not a scheme, add a scheme matching the page's scheme.
|
19892
|
+
if (defined(second.authority) && !defined(second.scheme)) {
|
19893
|
+
if (typeof document !== 'undefined' && defined(document.location) && defined(document.location.href)) {
|
19894
|
+
second.scheme = new Uri(document.location.href).scheme;
|
19895
|
+
} else {
|
19896
|
+
// Not in a browser? Use the first URL's scheme instead.
|
19897
|
+
second.scheme = first.scheme;
|
19898
|
+
}
|
19899
|
+
}
|
19900
|
+
|
19901
|
+
// If the second URL is absolute, use it for the scheme, authority, and path.
|
19902
|
+
var baseUri = first;
|
19903
|
+
if (second.isAbsolute()) {
|
19904
|
+
baseUri = second;
|
19905
|
+
}
|
19906
|
+
|
19907
|
+
var url = '';
|
19908
|
+
if (defined(baseUri.scheme)) {
|
19909
|
+
url += baseUri.scheme + ':';
|
19910
|
+
}
|
19911
|
+
if (defined(baseUri.authority)) {
|
19912
|
+
url += '//' + baseUri.authority;
|
19913
|
+
|
19914
|
+
if (baseUri.path !== '' && baseUri.path !== '/') {
|
19915
|
+
url = url.replace(/\/?$/, '/');
|
19916
|
+
baseUri.path = baseUri.path.replace(/^\/?/g, '');
|
19917
|
+
}
|
19918
|
+
}
|
19919
|
+
|
19920
|
+
// Combine the paths (only if second is relative).
|
19921
|
+
if (baseUri === first) {
|
19922
|
+
if (appendSlash) {
|
19923
|
+
url += first.path.replace(/\/?$/, '/') + second.path.replace(/^\/?/g, '');
|
19924
|
+
} else {
|
19925
|
+
url += first.path + second.path;
|
19926
|
+
}
|
19927
|
+
} else {
|
19928
|
+
url += second.path;
|
19929
|
+
}
|
19930
|
+
|
19931
|
+
// Combine the queries and fragments.
|
19932
|
+
var hasFirstQuery = defined(first.query);
|
19933
|
+
var hasSecondQuery = defined(second.query);
|
19934
|
+
if (hasFirstQuery && hasSecondQuery) {
|
19935
|
+
url += '?' + first.query + '&' + second.query;
|
19936
|
+
} else if (hasFirstQuery && !hasSecondQuery) {
|
19937
|
+
url += '?' + first.query;
|
19938
|
+
} else if (!hasFirstQuery && hasSecondQuery) {
|
19939
|
+
url += '?' + second.query;
|
19940
|
+
}
|
19941
|
+
|
19942
|
+
var hasSecondFragment = defined(second.fragment);
|
19943
|
+
if (defined(first.fragment) && !hasSecondFragment) {
|
19944
|
+
url += '#' + first.fragment;
|
19945
|
+
} else if (hasSecondFragment) {
|
19946
|
+
url += '#' + second.fragment;
|
19947
|
+
}
|
19948
|
+
|
19949
|
+
return url;
|
19950
|
+
}
|
19951
|
+
|
19952
|
+
return joinUrls;
|
19953
|
+
});
|
19954
|
+
|
18856
19955
|
/*global define*/
|
18857
19956
|
define('Core/buildModuleUrl',[
|
18858
19957
|
'../ThirdParty/Uri',
|
18859
19958
|
'./defined',
|
18860
19959
|
'./DeveloperError',
|
18861
19960
|
'./getAbsoluteUri',
|
19961
|
+
'./joinUrls',
|
18862
19962
|
'require'
|
18863
19963
|
], function(
|
18864
19964
|
Uri,
|
18865
19965
|
defined,
|
18866
19966
|
DeveloperError,
|
18867
19967
|
getAbsoluteUri,
|
19968
|
+
joinUrls,
|
18868
19969
|
require) {
|
18869
|
-
|
19970
|
+
'use strict';
|
18870
19971
|
/*global CESIUM_BASE_URL*/
|
18871
19972
|
|
18872
19973
|
var cesiumScriptRegex = /((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;
|
@@ -18910,7 +20011,7 @@ define('Core/buildModuleUrl',[
|
|
18910
20011
|
}
|
18911
20012
|
|
18912
20013
|
function buildModuleUrlFromBaseUrl(moduleID) {
|
18913
|
-
return
|
20014
|
+
return joinUrls(getCesiumBaseUrl(), moduleID);
|
18914
20015
|
}
|
18915
20016
|
|
18916
20017
|
var implementation;
|
@@ -18961,7 +20062,7 @@ define('Core/buildModuleUrl',[
|
|
18961
20062
|
|
18962
20063
|
/*global define*/
|
18963
20064
|
define('Core/Iau2006XysSample',[],function() {
|
18964
|
-
|
20065
|
+
'use strict';
|
18965
20066
|
|
18966
20067
|
/**
|
18967
20068
|
* An IAU 2006 XYS value sampled at a particular time.
|
@@ -19017,7 +20118,7 @@ define('Core/Iau2006XysData',[
|
|
19017
20118
|
JulianDate,
|
19018
20119
|
loadJson,
|
19019
20120
|
TimeStandard) {
|
19020
|
-
|
20121
|
+
'use strict';
|
19021
20122
|
|
19022
20123
|
/**
|
19023
20124
|
* A set of IAU2006 XYS data that is used to evaluate the transformation between the International
|
@@ -19283,7 +20384,7 @@ define('Core/Quaternion',[
|
|
19283
20384
|
freezeObject,
|
19284
20385
|
CesiumMath,
|
19285
20386
|
Matrix3) {
|
19286
|
-
|
20387
|
+
'use strict';
|
19287
20388
|
|
19288
20389
|
/**
|
19289
20390
|
* A set of 4-dimensional coordinates used to represent rotation in 3-dimensional space.
|
@@ -20365,6 +21466,7 @@ define('Core/Transforms',[
|
|
20365
21466
|
'./Cartesian2',
|
20366
21467
|
'./Cartesian3',
|
20367
21468
|
'./Cartesian4',
|
21469
|
+
'./Cartographic',
|
20368
21470
|
'./defaultValue',
|
20369
21471
|
'./defined',
|
20370
21472
|
'./DeveloperError',
|
@@ -20384,6 +21486,7 @@ define('Core/Transforms',[
|
|
20384
21486
|
Cartesian2,
|
20385
21487
|
Cartesian3,
|
20386
21488
|
Cartesian4,
|
21489
|
+
Cartographic,
|
20387
21490
|
defaultValue,
|
20388
21491
|
defined,
|
20389
21492
|
DeveloperError,
|
@@ -20398,7 +21501,7 @@ define('Core/Transforms',[
|
|
20398
21501
|
Matrix4,
|
20399
21502
|
Quaternion,
|
20400
21503
|
TimeConstants) {
|
20401
|
-
|
21504
|
+
'use strict';
|
20402
21505
|
|
20403
21506
|
/**
|
20404
21507
|
* Contains functions for transforming positions to various reference frames.
|
@@ -20734,6 +21837,38 @@ define('Core/Transforms',[
|
|
20734
21837
|
return Matrix4.multiply(result, hprMatrix, result);
|
20735
21838
|
};
|
20736
21839
|
|
21840
|
+
/**
|
21841
|
+
* Computes a 4x4 transformation matrix from a reference frame with axes computed from the heading-pitch-roll angles
|
21842
|
+
* centered at the provided origin to the provided ellipsoid's fixed reference frame. Heading is the rotation from the local north
|
21843
|
+
* direction where a positive angle is increasing eastward. Pitch is the rotation from the local east-north plane. Positive pitch angles
|
21844
|
+
* are above the plane. Negative pitch angles are below the plane. Roll is the first rotation applied about the local east axis.
|
21845
|
+
*
|
21846
|
+
* @param {Cartesian3} origin The center point of the local reference frame.
|
21847
|
+
* @param {Number} heading The heading angle in radians.
|
21848
|
+
* @param {Number} pitch The pitch angle in radians.
|
21849
|
+
* @param {Number} roll The roll angle in radians.
|
21850
|
+
* @param {Ellipsoid} [ellipsoid=Ellipsoid.WGS84] The ellipsoid whose fixed frame is used in the transformation.
|
21851
|
+
* @param {Matrix4} [result] The object onto which to store the result.
|
21852
|
+
* @returns {Matrix4} The modified result parameter or a new Matrix4 instance if none was provided.
|
21853
|
+
*
|
21854
|
+
* @example
|
21855
|
+
* // Get the transform from local heading-pitch-roll at cartographic (0.0, 0.0) to Earth's fixed frame.
|
21856
|
+
* var center = Cesium.Cartesian3.fromDegrees(0.0, 0.0);
|
21857
|
+
* var heading = -Cesium.Math.PI_OVER_TWO;
|
21858
|
+
* var pitch = Cesium.Math.PI_OVER_FOUR;
|
21859
|
+
* var roll = 0.0;
|
21860
|
+
* var transform = Cesium.Transforms.aircraftHeadingPitchRollToFixedFrame(center, heading, pitch, roll);
|
21861
|
+
*
|
21862
|
+
* @private
|
21863
|
+
*/
|
21864
|
+
Transforms.aircraftHeadingPitchRollToFixedFrame = function(origin, heading, pitch, roll, ellipsoid, result) {
|
21865
|
+
// checks for required parameters happen in the called functions
|
21866
|
+
var hprQuaternion = Quaternion.fromHeadingPitchRoll(heading, pitch, roll, scratchHPRQuaternion);
|
21867
|
+
var hprMatrix = Matrix4.fromTranslationQuaternionRotationScale(Cartesian3.ZERO, hprQuaternion, scratchScale, scratchHPRMatrix4);
|
21868
|
+
result = Transforms.northEastDownToFixedFrame(origin, ellipsoid, result);
|
21869
|
+
return Matrix4.multiply(result, hprMatrix, result);
|
21870
|
+
};
|
21871
|
+
|
20737
21872
|
var scratchENUMatrix4 = new Matrix4();
|
20738
21873
|
var scratchHPRMatrix3 = new Matrix3();
|
20739
21874
|
|
@@ -20766,6 +21901,37 @@ define('Core/Transforms',[
|
|
20766
21901
|
return Quaternion.fromRotationMatrix(rotation, result);
|
20767
21902
|
};
|
20768
21903
|
|
21904
|
+
/**
|
21905
|
+
* Computes a quaternion from a reference frame with axes computed from the heading-pitch-roll angles
|
21906
|
+
* centered at the provided origin. Heading is the rotation from the local north
|
21907
|
+
* direction where a positive angle is increasing eastward. Pitch is the rotation from the local east-north plane. Positive pitch angles
|
21908
|
+
* are above the plane. Negative pitch angles are below the plane. Roll is the first rotation applied about the local east axis.
|
21909
|
+
*
|
21910
|
+
* @param {Cartesian3} origin The center point of the local reference frame.
|
21911
|
+
* @param {Number} heading The heading angle in radians.
|
21912
|
+
* @param {Number} pitch The pitch angle in radians.
|
21913
|
+
* @param {Number} roll The roll angle in radians.
|
21914
|
+
* @param {Ellipsoid} [ellipsoid=Ellipsoid.WGS84] The ellipsoid whose fixed frame is used in the transformation.
|
21915
|
+
* @param {Quaternion} [result] The object onto which to store the result.
|
21916
|
+
* @returns {Quaternion} The modified result parameter or a new Quaternion instance if none was provided.
|
21917
|
+
*
|
21918
|
+
* @example
|
21919
|
+
* // Get the quaternion from local heading-pitch-roll at cartographic (0.0, 0.0) to Earth's fixed frame.
|
21920
|
+
* var center = Cesium.Cartesian3.fromDegrees(0.0, 0.0);
|
21921
|
+
* var heading = -Cesium.Math.PI_OVER_TWO;
|
21922
|
+
* var pitch = Cesium.Math.PI_OVER_FOUR;
|
21923
|
+
* var roll = 0.0;
|
21924
|
+
* var quaternion = Cesium.Transforms.aircraftHeadingPitchRollQuaternion(center, heading, pitch, roll);
|
21925
|
+
*
|
21926
|
+
* @private
|
21927
|
+
*/
|
21928
|
+
Transforms.aircraftHeadingPitchRollQuaternion = function(origin, heading, pitch, roll, ellipsoid, result) {
|
21929
|
+
// checks for required parameters happen in the called functions
|
21930
|
+
var transform = Transforms.aircraftHeadingPitchRollToFixedFrame(origin, heading, pitch, roll, ellipsoid, scratchENUMatrix4);
|
21931
|
+
var rotation = Matrix4.getRotation(transform, scratchHPRMatrix3);
|
21932
|
+
return Quaternion.fromRotationMatrix(rotation, result);
|
21933
|
+
};
|
21934
|
+
|
20769
21935
|
|
20770
21936
|
var gmstConstant0 = 6 * 3600 + 41 * 60 + 50.54841;
|
20771
21937
|
var gmstConstant1 = 8640184.812866;
|
@@ -21165,6 +22331,79 @@ define('Core/Transforms',[
|
|
21165
22331
|
return result;
|
21166
22332
|
};
|
21167
22333
|
|
22334
|
+
var scratchCartographic = new Cartographic();
|
22335
|
+
var scratchCartesian3Projection = new Cartesian3();
|
22336
|
+
var scratchCartesian3 = new Cartesian3();
|
22337
|
+
var scratchCartesian4Origin = new Cartesian4();
|
22338
|
+
var scratchCartesian4NewOrigin = new Cartesian4();
|
22339
|
+
var scratchCartesian4NewXAxis = new Cartesian4();
|
22340
|
+
var scratchCartesian4NewYAxis = new Cartesian4();
|
22341
|
+
var scratchCartesian4NewZAxis = new Cartesian4();
|
22342
|
+
var scratchFromENU = new Matrix4();
|
22343
|
+
var scratchToENU = new Matrix4();
|
22344
|
+
|
22345
|
+
/**
|
22346
|
+
* @private
|
22347
|
+
*/
|
22348
|
+
Transforms.basisTo2D = function(projection, matrix, result) {
|
22349
|
+
if (!defined(projection)) {
|
22350
|
+
throw new DeveloperError('projection is required.');
|
22351
|
+
}
|
22352
|
+
if (!defined(matrix)) {
|
22353
|
+
throw new DeveloperError('matrix is required.');
|
22354
|
+
}
|
22355
|
+
if (!defined(result)) {
|
22356
|
+
throw new DeveloperError('result is required.');
|
22357
|
+
}
|
22358
|
+
|
22359
|
+
var ellipsoid = projection.ellipsoid;
|
22360
|
+
|
22361
|
+
var origin = Matrix4.getColumn(matrix, 3, scratchCartesian4Origin);
|
22362
|
+
var cartographic = ellipsoid.cartesianToCartographic(origin, scratchCartographic);
|
22363
|
+
|
22364
|
+
var fromENU = Transforms.eastNorthUpToFixedFrame(origin, ellipsoid, scratchFromENU);
|
22365
|
+
var toENU = Matrix4.inverseTransformation(fromENU, scratchToENU);
|
22366
|
+
|
22367
|
+
var projectedPosition = projection.project(cartographic, scratchCartesian3Projection);
|
22368
|
+
var newOrigin = scratchCartesian4NewOrigin;
|
22369
|
+
newOrigin.x = projectedPosition.z;
|
22370
|
+
newOrigin.y = projectedPosition.x;
|
22371
|
+
newOrigin.z = projectedPosition.y;
|
22372
|
+
newOrigin.w = 1.0;
|
22373
|
+
|
22374
|
+
var xAxis = Matrix4.getColumn(matrix, 0, scratchCartesian3);
|
22375
|
+
var xScale = Cartesian3.magnitude(xAxis);
|
22376
|
+
var newXAxis = Matrix4.multiplyByVector(toENU, xAxis, scratchCartesian4NewXAxis);
|
22377
|
+
Cartesian4.fromElements(newXAxis.z, newXAxis.x, newXAxis.y, 0.0, newXAxis);
|
22378
|
+
|
22379
|
+
var yAxis = Matrix4.getColumn(matrix, 1, scratchCartesian3);
|
22380
|
+
var yScale = Cartesian3.magnitude(yAxis);
|
22381
|
+
var newYAxis = Matrix4.multiplyByVector(toENU, yAxis, scratchCartesian4NewYAxis);
|
22382
|
+
Cartesian4.fromElements(newYAxis.z, newYAxis.x, newYAxis.y, 0.0, newYAxis);
|
22383
|
+
|
22384
|
+
var zAxis = Matrix4.getColumn(matrix, 2, scratchCartesian3);
|
22385
|
+
var zScale = Cartesian3.magnitude(zAxis);
|
22386
|
+
|
22387
|
+
var newZAxis = scratchCartesian4NewZAxis;
|
22388
|
+
Cartesian3.cross(newXAxis, newYAxis, newZAxis);
|
22389
|
+
Cartesian3.normalize(newZAxis, newZAxis);
|
22390
|
+
Cartesian3.cross(newYAxis, newZAxis, newXAxis);
|
22391
|
+
Cartesian3.normalize(newXAxis, newXAxis);
|
22392
|
+
Cartesian3.cross(newZAxis, newXAxis, newYAxis);
|
22393
|
+
Cartesian3.normalize(newYAxis, newYAxis);
|
22394
|
+
|
22395
|
+
Cartesian3.multiplyByScalar(newXAxis, xScale, newXAxis);
|
22396
|
+
Cartesian3.multiplyByScalar(newYAxis, yScale, newYAxis);
|
22397
|
+
Cartesian3.multiplyByScalar(newZAxis, zScale, newZAxis);
|
22398
|
+
|
22399
|
+
Matrix4.setColumn(result, 0, newXAxis, result);
|
22400
|
+
Matrix4.setColumn(result, 1, newYAxis, result);
|
22401
|
+
Matrix4.setColumn(result, 2, newZAxis, result);
|
22402
|
+
Matrix4.setColumn(result, 3, newOrigin, result);
|
22403
|
+
|
22404
|
+
return result;
|
22405
|
+
};
|
22406
|
+
|
21168
22407
|
return Transforms;
|
21169
22408
|
});
|
21170
22409
|
|
@@ -21201,7 +22440,7 @@ define('Core/EllipsoidTangentPlane',[
|
|
21201
22440
|
Plane,
|
21202
22441
|
Ray,
|
21203
22442
|
Transforms) {
|
21204
|
-
|
22443
|
+
'use strict';
|
21205
22444
|
|
21206
22445
|
var scratchCart4 = new Cartesian4();
|
21207
22446
|
/**
|
@@ -21515,7 +22754,7 @@ define('Core/barycentricCoordinates',[
|
|
21515
22754
|
Cartesian3,
|
21516
22755
|
defined,
|
21517
22756
|
DeveloperError) {
|
21518
|
-
|
22757
|
+
'use strict';
|
21519
22758
|
|
21520
22759
|
var scratchCartesian1 = new Cartesian3();
|
21521
22760
|
var scratchCartesian2 = new Cartesian3();
|
@@ -21594,7 +22833,7 @@ define('Core/pointInsideTriangle',[
|
|
21594
22833
|
], function(
|
21595
22834
|
barycentricCoordinates,
|
21596
22835
|
Cartesian3) {
|
21597
|
-
|
22836
|
+
'use strict';
|
21598
22837
|
|
21599
22838
|
var coords = new Cartesian3();
|
21600
22839
|
|
@@ -21626,1688 +22865,219 @@ define('Core/pointInsideTriangle',[
|
|
21626
22865
|
});
|
21627
22866
|
|
21628
22867
|
/*global define*/
|
21629
|
-
define('Core/
|
21630
|
-
'
|
21631
|
-
'./Cartographic',
|
21632
|
-
'./defaultValue',
|
21633
|
-
'./defined',
|
21634
|
-
'./defineProperties',
|
21635
|
-
'./DeveloperError',
|
21636
|
-
'./Ellipsoid',
|
21637
|
-
'./Math'
|
22868
|
+
define('Core/Queue',[
|
22869
|
+
'../Core/defineProperties'
|
21638
22870
|
], function(
|
21639
|
-
|
21640
|
-
|
21641
|
-
defaultValue,
|
21642
|
-
defined,
|
21643
|
-
defineProperties,
|
21644
|
-
DeveloperError,
|
21645
|
-
Ellipsoid,
|
21646
|
-
CesiumMath) {
|
21647
|
-
"use strict";
|
21648
|
-
|
21649
|
-
function setConstants(ellipsoidGeodesic) {
|
21650
|
-
var uSquared = ellipsoidGeodesic._uSquared;
|
21651
|
-
var a = ellipsoidGeodesic._ellipsoid.maximumRadius;
|
21652
|
-
var b = ellipsoidGeodesic._ellipsoid.minimumRadius;
|
21653
|
-
var f = (a - b) / a;
|
21654
|
-
|
21655
|
-
var cosineHeading = Math.cos(ellipsoidGeodesic._startHeading);
|
21656
|
-
var sineHeading = Math.sin(ellipsoidGeodesic._startHeading);
|
21657
|
-
|
21658
|
-
var tanU = (1 - f) * Math.tan(ellipsoidGeodesic._start.latitude);
|
21659
|
-
|
21660
|
-
var cosineU = 1.0 / Math.sqrt(1.0 + tanU * tanU);
|
21661
|
-
var sineU = cosineU * tanU;
|
21662
|
-
|
21663
|
-
var sigma = Math.atan2(tanU, cosineHeading);
|
21664
|
-
|
21665
|
-
var sineAlpha = cosineU * sineHeading;
|
21666
|
-
var sineSquaredAlpha = sineAlpha * sineAlpha;
|
21667
|
-
|
21668
|
-
var cosineSquaredAlpha = 1.0 - sineSquaredAlpha;
|
21669
|
-
var cosineAlpha = Math.sqrt(cosineSquaredAlpha);
|
21670
|
-
|
21671
|
-
var u2Over4 = uSquared / 4.0;
|
21672
|
-
var u4Over16 = u2Over4 * u2Over4;
|
21673
|
-
var u6Over64 = u4Over16 * u2Over4;
|
21674
|
-
var u8Over256 = u4Over16 * u4Over16;
|
21675
|
-
|
21676
|
-
var a0 = (1.0 + u2Over4 - 3.0 * u4Over16 / 4.0 + 5.0 * u6Over64 / 4.0 - 175.0 * u8Over256 / 64.0);
|
21677
|
-
var a1 = (1.0 - u2Over4 + 15.0 * u4Over16 / 8.0 - 35.0 * u6Over64 / 8.0);
|
21678
|
-
var a2 = (1.0 - 3.0 * u2Over4 + 35.0 * u4Over16 / 4.0);
|
21679
|
-
var a3 = (1.0 - 5.0 * u2Over4);
|
21680
|
-
|
21681
|
-
var distanceRatio = a0 * sigma - a1 * Math.sin(2.0 * sigma) * u2Over4 / 2.0 - a2 * Math.sin(4.0 * sigma) * u4Over16 / 16.0 -
|
21682
|
-
a3 * Math.sin(6.0 * sigma) * u6Over64 / 48.0 - Math.sin(8.0 * sigma) * 5.0 * u8Over256 / 512;
|
21683
|
-
|
21684
|
-
var constants = ellipsoidGeodesic._constants;
|
21685
|
-
|
21686
|
-
constants.a = a;
|
21687
|
-
constants.b = b;
|
21688
|
-
constants.f = f;
|
21689
|
-
constants.cosineHeading = cosineHeading;
|
21690
|
-
constants.sineHeading = sineHeading;
|
21691
|
-
constants.tanU = tanU;
|
21692
|
-
constants.cosineU = cosineU;
|
21693
|
-
constants.sineU = sineU;
|
21694
|
-
constants.sigma = sigma;
|
21695
|
-
constants.sineAlpha = sineAlpha;
|
21696
|
-
constants.sineSquaredAlpha = sineSquaredAlpha;
|
21697
|
-
constants.cosineSquaredAlpha = cosineSquaredAlpha;
|
21698
|
-
constants.cosineAlpha = cosineAlpha;
|
21699
|
-
constants.u2Over4 = u2Over4;
|
21700
|
-
constants.u4Over16 = u4Over16;
|
21701
|
-
constants.u6Over64 = u6Over64;
|
21702
|
-
constants.u8Over256 = u8Over256;
|
21703
|
-
constants.a0 = a0;
|
21704
|
-
constants.a1 = a1;
|
21705
|
-
constants.a2 = a2;
|
21706
|
-
constants.a3 = a3;
|
21707
|
-
constants.distanceRatio = distanceRatio;
|
21708
|
-
}
|
21709
|
-
|
21710
|
-
function computeC(f, cosineSquaredAlpha) {
|
21711
|
-
return f * cosineSquaredAlpha * (4.0 + f * (4.0 - 3.0 * cosineSquaredAlpha)) / 16.0;
|
21712
|
-
}
|
21713
|
-
|
21714
|
-
function computeDeltaLambda(f, sineAlpha, cosineSquaredAlpha, sigma, sineSigma, cosineSigma, cosineTwiceSigmaMidpoint) {
|
21715
|
-
var C = computeC(f, cosineSquaredAlpha);
|
21716
|
-
|
21717
|
-
return (1.0 - C) * f * sineAlpha * (sigma + C * sineSigma * (cosineTwiceSigmaMidpoint +
|
21718
|
-
C * cosineSigma * (2.0 * cosineTwiceSigmaMidpoint * cosineTwiceSigmaMidpoint - 1.0)));
|
21719
|
-
}
|
21720
|
-
|
21721
|
-
function vincentyInverseFormula(ellipsoidGeodesic, major, minor, firstLongitude, firstLatitude, secondLongitude, secondLatitude) {
|
21722
|
-
var eff = (major - minor) / major;
|
21723
|
-
var l = secondLongitude - firstLongitude;
|
21724
|
-
|
21725
|
-
var u1 = Math.atan((1 - eff) * Math.tan(firstLatitude));
|
21726
|
-
var u2 = Math.atan((1 - eff) * Math.tan(secondLatitude));
|
21727
|
-
|
21728
|
-
var cosineU1 = Math.cos(u1);
|
21729
|
-
var sineU1 = Math.sin(u1);
|
21730
|
-
var cosineU2 = Math.cos(u2);
|
21731
|
-
var sineU2 = Math.sin(u2);
|
21732
|
-
|
21733
|
-
var cc = cosineU1 * cosineU2;
|
21734
|
-
var cs = cosineU1 * sineU2;
|
21735
|
-
var ss = sineU1 * sineU2;
|
21736
|
-
var sc = sineU1 * cosineU2;
|
21737
|
-
|
21738
|
-
var lambda = l;
|
21739
|
-
var lambdaDot = CesiumMath.TWO_PI;
|
21740
|
-
|
21741
|
-
var cosineLambda = Math.cos(lambda);
|
21742
|
-
var sineLambda = Math.sin(lambda);
|
21743
|
-
|
21744
|
-
var sigma;
|
21745
|
-
var cosineSigma;
|
21746
|
-
var sineSigma;
|
21747
|
-
var cosineSquaredAlpha;
|
21748
|
-
var cosineTwiceSigmaMidpoint;
|
21749
|
-
|
21750
|
-
do {
|
21751
|
-
cosineLambda = Math.cos(lambda);
|
21752
|
-
sineLambda = Math.sin(lambda);
|
21753
|
-
|
21754
|
-
var temp = cs - sc * cosineLambda;
|
21755
|
-
sineSigma = Math.sqrt(cosineU2 * cosineU2 * sineLambda * sineLambda + temp * temp);
|
21756
|
-
cosineSigma = ss + cc * cosineLambda;
|
21757
|
-
|
21758
|
-
sigma = Math.atan2(sineSigma, cosineSigma);
|
21759
|
-
|
21760
|
-
var sineAlpha;
|
21761
|
-
|
21762
|
-
if (sineSigma === 0.0) {
|
21763
|
-
sineAlpha = 0.0;
|
21764
|
-
cosineSquaredAlpha = 1.0;
|
21765
|
-
} else {
|
21766
|
-
sineAlpha = cc * sineLambda / sineSigma;
|
21767
|
-
cosineSquaredAlpha = 1.0 - sineAlpha * sineAlpha;
|
21768
|
-
}
|
21769
|
-
|
21770
|
-
lambdaDot = lambda;
|
21771
|
-
|
21772
|
-
cosineTwiceSigmaMidpoint = cosineSigma - 2.0 * ss / cosineSquaredAlpha;
|
21773
|
-
|
21774
|
-
if (isNaN(cosineTwiceSigmaMidpoint)) {
|
21775
|
-
cosineTwiceSigmaMidpoint = 0.0;
|
21776
|
-
}
|
21777
|
-
|
21778
|
-
lambda = l + computeDeltaLambda(eff, sineAlpha, cosineSquaredAlpha,
|
21779
|
-
sigma, sineSigma, cosineSigma, cosineTwiceSigmaMidpoint);
|
21780
|
-
} while (Math.abs(lambda - lambdaDot) > CesiumMath.EPSILON12);
|
21781
|
-
|
21782
|
-
var uSquared = cosineSquaredAlpha * (major * major - minor * minor) / (minor * minor);
|
21783
|
-
var A = 1.0 + uSquared * (4096.0 + uSquared * (uSquared * (320.0 - 175.0 * uSquared) - 768.0)) / 16384.0;
|
21784
|
-
var B = uSquared * (256.0 + uSquared * (uSquared * (74.0 - 47.0 * uSquared) - 128.0)) / 1024.0;
|
21785
|
-
|
21786
|
-
var cosineSquaredTwiceSigmaMidpoint = cosineTwiceSigmaMidpoint * cosineTwiceSigmaMidpoint;
|
21787
|
-
var deltaSigma = B * sineSigma * (cosineTwiceSigmaMidpoint + B * (cosineSigma *
|
21788
|
-
(2.0 * cosineSquaredTwiceSigmaMidpoint - 1.0) - B * cosineTwiceSigmaMidpoint *
|
21789
|
-
(4.0 * sineSigma * sineSigma - 3.0) * (4.0 * cosineSquaredTwiceSigmaMidpoint - 3.0) / 6.0) / 4.0);
|
21790
|
-
|
21791
|
-
var distance = minor * A * (sigma - deltaSigma);
|
21792
|
-
|
21793
|
-
var startHeading = Math.atan2(cosineU2 * sineLambda, cs - sc * cosineLambda);
|
21794
|
-
var endHeading = Math.atan2(cosineU1 * sineLambda, cs * cosineLambda - sc);
|
21795
|
-
|
21796
|
-
ellipsoidGeodesic._distance = distance;
|
21797
|
-
ellipsoidGeodesic._startHeading = startHeading;
|
21798
|
-
ellipsoidGeodesic._endHeading = endHeading;
|
21799
|
-
ellipsoidGeodesic._uSquared = uSquared;
|
21800
|
-
}
|
21801
|
-
|
21802
|
-
function computeProperties(ellipsoidGeodesic, start, end, ellipsoid) {
|
21803
|
-
var firstCartesian = Cartesian3.normalize(ellipsoid.cartographicToCartesian(start, scratchCart2), scratchCart1);
|
21804
|
-
var lastCartesian = Cartesian3.normalize(ellipsoid.cartographicToCartesian(end, scratchCart2), scratchCart2);
|
21805
|
-
|
21806
|
-
if (Math.abs(Math.abs(Cartesian3.angleBetween(firstCartesian, lastCartesian)) - Math.PI) < 0.0125) {
|
21807
|
-
throw new DeveloperError('geodesic position is not unique');
|
21808
|
-
}
|
21809
|
-
|
21810
|
-
vincentyInverseFormula(ellipsoidGeodesic, ellipsoid.maximumRadius, ellipsoid.minimumRadius,
|
21811
|
-
start.longitude, start.latitude, end.longitude, end.latitude);
|
21812
|
-
|
21813
|
-
ellipsoidGeodesic._start = Cartographic.clone(start, ellipsoidGeodesic._start);
|
21814
|
-
ellipsoidGeodesic._end = Cartographic.clone(end, ellipsoidGeodesic._end);
|
21815
|
-
ellipsoidGeodesic._start.height = 0;
|
21816
|
-
ellipsoidGeodesic._end.height = 0;
|
21817
|
-
|
21818
|
-
setConstants(ellipsoidGeodesic);
|
21819
|
-
}
|
22871
|
+
defineProperties) {
|
22872
|
+
'use strict';
|
21820
22873
|
|
21821
|
-
var scratchCart1 = new Cartesian3();
|
21822
|
-
var scratchCart2 = new Cartesian3();
|
21823
22874
|
/**
|
21824
|
-
*
|
22875
|
+
* A queue that can enqueue items at the end, and dequeue items from the front.
|
21825
22876
|
*
|
21826
|
-
* @alias
|
22877
|
+
* @alias Queue
|
21827
22878
|
* @constructor
|
21828
|
-
*
|
21829
|
-
* @param {Cartographic} [start] The initial planetodetic point on the path.
|
21830
|
-
* @param {Cartographic} [end] The final planetodetic point on the path.
|
21831
|
-
* @param {Ellipsoid} [ellipsoid=Ellipsoid.WGS84] The ellipsoid on which the geodesic lies.
|
21832
22879
|
*/
|
21833
|
-
function
|
21834
|
-
|
21835
|
-
this.
|
21836
|
-
this.
|
21837
|
-
this._end = new Cartographic();
|
21838
|
-
|
21839
|
-
this._constants = {};
|
21840
|
-
this._startHeading = undefined;
|
21841
|
-
this._endHeading = undefined;
|
21842
|
-
this._distance = undefined;
|
21843
|
-
this._uSquared = undefined;
|
21844
|
-
|
21845
|
-
if (defined(start) && defined(end)) {
|
21846
|
-
computeProperties(this, start, end, e);
|
21847
|
-
}
|
22880
|
+
function Queue() {
|
22881
|
+
this._array = [];
|
22882
|
+
this._offset = 0;
|
22883
|
+
this._length = 0;
|
21848
22884
|
}
|
21849
22885
|
|
21850
|
-
defineProperties(
|
21851
|
-
/**
|
21852
|
-
* Gets the ellipsoid.
|
21853
|
-
* @memberof EllipsoidGeodesic.prototype
|
21854
|
-
* @type {Ellipsoid}
|
21855
|
-
* @readonly
|
21856
|
-
*/
|
21857
|
-
ellipsoid : {
|
21858
|
-
get : function() {
|
21859
|
-
return this._ellipsoid;
|
21860
|
-
}
|
21861
|
-
},
|
21862
|
-
|
22886
|
+
defineProperties(Queue.prototype, {
|
21863
22887
|
/**
|
21864
|
-
*
|
21865
|
-
*
|
22888
|
+
* The length of the queue.
|
22889
|
+
*
|
22890
|
+
* @memberof Queue.prototype
|
22891
|
+
*
|
21866
22892
|
* @type {Number}
|
21867
22893
|
* @readonly
|
21868
22894
|
*/
|
21869
|
-
|
21870
|
-
get : function() {
|
21871
|
-
if (!defined(this._distance)) {
|
21872
|
-
throw new DeveloperError('set end positions before getting surfaceDistance');
|
21873
|
-
}
|
21874
|
-
|
21875
|
-
return this._distance;
|
21876
|
-
}
|
21877
|
-
},
|
21878
|
-
|
21879
|
-
/**
|
21880
|
-
* Gets the initial planetodetic point on the path.
|
21881
|
-
* @memberof EllipsoidGeodesic.prototype
|
21882
|
-
* @type {Cartographic}
|
21883
|
-
* @readonly
|
21884
|
-
*/
|
21885
|
-
start : {
|
21886
|
-
get : function() {
|
21887
|
-
return this._start;
|
21888
|
-
}
|
21889
|
-
},
|
21890
|
-
|
21891
|
-
/**
|
21892
|
-
* Gets the final planetodetic point on the path.
|
21893
|
-
* @memberof EllipsoidGeodesic.prototype
|
21894
|
-
* @type {Cartographic}
|
21895
|
-
* @readonly
|
21896
|
-
*/
|
21897
|
-
end : {
|
21898
|
-
get : function() {
|
21899
|
-
return this._end;
|
21900
|
-
}
|
21901
|
-
},
|
21902
|
-
|
21903
|
-
/**
|
21904
|
-
* Gets the heading at the initial point.
|
21905
|
-
* @memberof EllipsoidGeodesic.prototype
|
21906
|
-
* @type {Number}
|
21907
|
-
* @readonly
|
21908
|
-
*/
|
21909
|
-
startHeading : {
|
21910
|
-
get : function() {
|
21911
|
-
if (!defined(this._distance)) {
|
21912
|
-
throw new DeveloperError('set end positions before getting startHeading');
|
21913
|
-
}
|
21914
|
-
|
21915
|
-
return this._startHeading;
|
21916
|
-
}
|
21917
|
-
},
|
21918
|
-
|
21919
|
-
/**
|
21920
|
-
* Gets the heading at the final point.
|
21921
|
-
* @memberof EllipsoidGeodesic.prototype
|
21922
|
-
* @type {Number}
|
21923
|
-
* @readonly
|
21924
|
-
*/
|
21925
|
-
endHeading : {
|
22895
|
+
length : {
|
21926
22896
|
get : function() {
|
21927
|
-
|
21928
|
-
|
21929
|
-
|
21930
|
-
|
21931
|
-
|
21932
|
-
|
21933
|
-
|
21934
|
-
});
|
21935
|
-
|
21936
|
-
/**
|
21937
|
-
* Sets the start and end points of the geodesic
|
21938
|
-
*
|
21939
|
-
* @param {Cartographic} start The initial planetodetic point on the path.
|
21940
|
-
* @param {Cartographic} end The final planetodetic point on the path.
|
21941
|
-
*/
|
21942
|
-
EllipsoidGeodesic.prototype.setEndPoints = function(start, end) {
|
21943
|
-
if (!defined(start)) {
|
21944
|
-
throw new DeveloperError('start cartographic position is required');
|
21945
|
-
}
|
21946
|
-
if (!defined(end)) {
|
21947
|
-
throw new DeveloperError('end cartgraphic position is required');
|
21948
|
-
}
|
21949
|
-
|
21950
|
-
computeProperties(this, start, end, this._ellipsoid);
|
21951
|
-
};
|
21952
|
-
|
21953
|
-
/**
|
21954
|
-
* Provides the location of a point at the indicated portion along the geodesic.
|
21955
|
-
*
|
21956
|
-
* @param {Number} fraction The portion of the distance between the initial and final points.
|
21957
|
-
* @returns {Cartographic} The location of the point along the geodesic.
|
21958
|
-
*/
|
21959
|
-
EllipsoidGeodesic.prototype.interpolateUsingFraction = function(fraction, result) {
|
21960
|
-
return this.interpolateUsingSurfaceDistance(this._distance * fraction, result);
|
21961
|
-
};
|
21962
|
-
|
21963
|
-
/**
|
21964
|
-
* Provides the location of a point at the indicated distance along the geodesic.
|
21965
|
-
*
|
21966
|
-
* @param {Number} distance The distance from the inital point to the point of interest along the geodesic
|
21967
|
-
* @returns {Cartographic} The location of the point along the geodesic.
|
21968
|
-
*
|
21969
|
-
* @exception {DeveloperError} start and end must be set before calling funciton interpolateUsingSurfaceDistance
|
21970
|
-
*/
|
21971
|
-
EllipsoidGeodesic.prototype.interpolateUsingSurfaceDistance = function(distance, result) {
|
21972
|
-
if (!defined(this._distance)) {
|
21973
|
-
throw new DeveloperError('start and end must be set before calling funciton interpolateUsingSurfaceDistance');
|
21974
|
-
}
|
21975
|
-
|
21976
|
-
var constants = this._constants;
|
21977
|
-
|
21978
|
-
var s = constants.distanceRatio + distance / constants.b;
|
21979
|
-
|
21980
|
-
var cosine2S = Math.cos(2.0 * s);
|
21981
|
-
var cosine4S = Math.cos(4.0 * s);
|
21982
|
-
var cosine6S = Math.cos(6.0 * s);
|
21983
|
-
var sine2S = Math.sin(2.0 * s);
|
21984
|
-
var sine4S = Math.sin(4.0 * s);
|
21985
|
-
var sine6S = Math.sin(6.0 * s);
|
21986
|
-
var sine8S = Math.sin(8.0 * s);
|
21987
|
-
|
21988
|
-
var s2 = s * s;
|
21989
|
-
var s3 = s * s2;
|
21990
|
-
|
21991
|
-
var u8Over256 = constants.u8Over256;
|
21992
|
-
var u2Over4 = constants.u2Over4;
|
21993
|
-
var u6Over64 = constants.u6Over64;
|
21994
|
-
var u4Over16 = constants.u4Over16;
|
21995
|
-
var sigma = 2.0 * s3 * u8Over256 * cosine2S / 3.0 +
|
21996
|
-
s * (1.0 - u2Over4 + 7.0 * u4Over16 / 4.0 - 15.0 * u6Over64 / 4.0 + 579.0 * u8Over256 / 64.0 -
|
21997
|
-
(u4Over16 - 15.0 * u6Over64 / 4.0 + 187.0 * u8Over256 / 16.0) * cosine2S -
|
21998
|
-
(5.0 * u6Over64 / 4.0 - 115.0 * u8Over256 / 16.0) * cosine4S -
|
21999
|
-
29.0 * u8Over256 * cosine6S / 16.0) +
|
22000
|
-
(u2Over4 / 2.0 - u4Over16 + 71.0 * u6Over64 / 32.0 - 85.0 * u8Over256 / 16.0) * sine2S +
|
22001
|
-
(5.0 * u4Over16 / 16.0 - 5.0 * u6Over64 / 4.0 + 383.0 * u8Over256 / 96.0) * sine4S -
|
22002
|
-
s2 * ((u6Over64 - 11.0 * u8Over256 / 2.0) * sine2S + 5.0 * u8Over256 * sine4S / 2.0) +
|
22003
|
-
(29.0 * u6Over64 / 96.0 - 29.0 * u8Over256 / 16.0) * sine6S +
|
22004
|
-
539.0 * u8Over256 * sine8S / 1536.0;
|
22005
|
-
|
22006
|
-
var theta = Math.asin(Math.sin(sigma) * constants.cosineAlpha);
|
22007
|
-
var latitude = Math.atan(constants.a / constants.b * Math.tan(theta));
|
22008
|
-
|
22009
|
-
// Redefine in terms of relative argument of latitude.
|
22010
|
-
sigma = sigma - constants.sigma;
|
22011
|
-
|
22012
|
-
var cosineTwiceSigmaMidpoint = Math.cos(2.0 * constants.sigma + sigma);
|
22013
|
-
|
22014
|
-
var sineSigma = Math.sin(sigma);
|
22015
|
-
var cosineSigma = Math.cos(sigma);
|
22016
|
-
|
22017
|
-
var cc = constants.cosineU * cosineSigma;
|
22018
|
-
var ss = constants.sineU * sineSigma;
|
22019
|
-
|
22020
|
-
var lambda = Math.atan2(sineSigma * constants.sineHeading, cc - ss * constants.cosineHeading);
|
22021
|
-
|
22022
|
-
var l = lambda - computeDeltaLambda(constants.f, constants.sineAlpha, constants.cosineSquaredAlpha,
|
22023
|
-
sigma, sineSigma, cosineSigma, cosineTwiceSigmaMidpoint);
|
22024
|
-
|
22025
|
-
if (defined(result)) {
|
22026
|
-
result.longitude = this._start.longitude + l;
|
22027
|
-
result.latitude = latitude;
|
22028
|
-
result.height = 0.0;
|
22029
|
-
return result;
|
22030
|
-
}
|
22031
|
-
|
22032
|
-
return new Cartographic(this._start.longitude + l, latitude, 0.0);
|
22033
|
-
};
|
22034
|
-
|
22035
|
-
return EllipsoidGeodesic;
|
22036
|
-
});
|
22037
|
-
|
22038
|
-
/*global define*/
|
22039
|
-
define('Core/isArray',[
|
22040
|
-
'./defined'
|
22041
|
-
], function(
|
22042
|
-
defined) {
|
22043
|
-
"use strict";
|
22044
|
-
|
22045
|
-
/**
|
22046
|
-
* Tests an object to see if it is an array.
|
22047
|
-
* @exports isArray
|
22048
|
-
*
|
22049
|
-
* @param {Object} value The value to test.
|
22050
|
-
* @returns {Boolean} true if the value is an array, false otherwise.
|
22051
|
-
*/
|
22052
|
-
var isArray = Array.isArray;
|
22053
|
-
if (!defined(isArray)) {
|
22054
|
-
isArray = function(value) {
|
22055
|
-
return Object.prototype.toString.call(value) === '[object Array]';
|
22056
|
-
};
|
22057
|
-
}
|
22058
|
-
|
22059
|
-
return isArray;
|
22060
|
-
});
|
22061
|
-
/*global define*/
|
22062
|
-
define('Core/PolylinePipeline',[
|
22063
|
-
'./Cartesian3',
|
22064
|
-
'./Cartographic',
|
22065
|
-
'./defaultValue',
|
22066
|
-
'./defined',
|
22067
|
-
'./DeveloperError',
|
22068
|
-
'./Ellipsoid',
|
22069
|
-
'./EllipsoidGeodesic',
|
22070
|
-
'./IntersectionTests',
|
22071
|
-
'./isArray',
|
22072
|
-
'./Math',
|
22073
|
-
'./Matrix4',
|
22074
|
-
'./Plane'
|
22075
|
-
], function(
|
22076
|
-
Cartesian3,
|
22077
|
-
Cartographic,
|
22078
|
-
defaultValue,
|
22079
|
-
defined,
|
22080
|
-
DeveloperError,
|
22081
|
-
Ellipsoid,
|
22082
|
-
EllipsoidGeodesic,
|
22083
|
-
IntersectionTests,
|
22084
|
-
isArray,
|
22085
|
-
CesiumMath,
|
22086
|
-
Matrix4,
|
22087
|
-
Plane) {
|
22088
|
-
"use strict";
|
22089
|
-
|
22090
|
-
/**
|
22091
|
-
* @private
|
22092
|
-
*/
|
22093
|
-
var PolylinePipeline = {};
|
22094
|
-
|
22095
|
-
PolylinePipeline.numberOfPoints = function(p0, p1, minDistance) {
|
22096
|
-
var distance = Cartesian3.distance(p0, p1);
|
22097
|
-
return Math.ceil(distance / minDistance);
|
22098
|
-
};
|
22099
|
-
|
22100
|
-
var cartoScratch = new Cartographic();
|
22101
|
-
PolylinePipeline.extractHeights = function(positions, ellipsoid) {
|
22102
|
-
var length = positions.length;
|
22103
|
-
var heights = new Array(length);
|
22104
|
-
for (var i = 0; i < length; i++) {
|
22105
|
-
var p = positions[i];
|
22106
|
-
heights[i] = ellipsoid.cartesianToCartographic(p, cartoScratch).height;
|
22107
|
-
}
|
22108
|
-
return heights;
|
22109
|
-
};
|
22110
|
-
|
22111
|
-
var wrapLongitudeInversMatrix = new Matrix4();
|
22112
|
-
var wrapLongitudeOrigin = new Cartesian3();
|
22113
|
-
var wrapLongitudeXZNormal = new Cartesian3();
|
22114
|
-
var wrapLongitudeXZPlane = new Plane(Cartesian3.ZERO, 0.0);
|
22115
|
-
var wrapLongitudeYZNormal = new Cartesian3();
|
22116
|
-
var wrapLongitudeYZPlane = new Plane(Cartesian3.ZERO, 0.0);
|
22117
|
-
var wrapLongitudeIntersection = new Cartesian3();
|
22118
|
-
var wrapLongitudeOffset = new Cartesian3();
|
22119
|
-
|
22120
|
-
var subdivideHeightsScratchArray = [];
|
22121
|
-
|
22122
|
-
function subdivideHeights(numPoints, h0, h1) {
|
22123
|
-
var heights = subdivideHeightsScratchArray;
|
22124
|
-
heights.length = numPoints;
|
22125
|
-
|
22126
|
-
var i;
|
22127
|
-
if (h0 === h1) {
|
22128
|
-
for (i = 0; i < numPoints; i++) {
|
22129
|
-
heights[i] = h0;
|
22130
|
-
}
|
22131
|
-
return heights;
|
22132
|
-
}
|
22133
|
-
|
22134
|
-
var dHeight = h1 - h0;
|
22135
|
-
var heightPerVertex = dHeight / numPoints;
|
22136
|
-
|
22137
|
-
for (i = 0; i < numPoints; i++) {
|
22138
|
-
var h = h0 + i*heightPerVertex;
|
22139
|
-
heights[i] = h;
|
22140
|
-
}
|
22141
|
-
|
22142
|
-
return heights;
|
22143
|
-
}
|
22144
|
-
|
22145
|
-
var carto1 = new Cartographic();
|
22146
|
-
var carto2 = new Cartographic();
|
22147
|
-
var cartesian = new Cartesian3();
|
22148
|
-
var scaleFirst = new Cartesian3();
|
22149
|
-
var scaleLast = new Cartesian3();
|
22150
|
-
var ellipsoidGeodesic = new EllipsoidGeodesic();
|
22151
|
-
|
22152
|
-
//Returns subdivided line scaled to ellipsoid surface starting at p1 and ending at p2.
|
22153
|
-
//Result includes p1, but not include p2. This function is called for a sequence of line segments,
|
22154
|
-
//and this prevents duplication of end point.
|
22155
|
-
function generateCartesianArc(p0, p1, minDistance, ellipsoid, h0, h1, array, offset) {
|
22156
|
-
var first = ellipsoid.scaleToGeodeticSurface(p0, scaleFirst);
|
22157
|
-
var last = ellipsoid.scaleToGeodeticSurface(p1, scaleLast);
|
22158
|
-
var numPoints = PolylinePipeline.numberOfPoints(p0, p1, minDistance);
|
22159
|
-
var start = ellipsoid.cartesianToCartographic(first, carto1);
|
22160
|
-
var end = ellipsoid.cartesianToCartographic(last, carto2);
|
22161
|
-
var heights = subdivideHeights(numPoints, h0, h1);
|
22162
|
-
|
22163
|
-
ellipsoidGeodesic.setEndPoints(start, end);
|
22164
|
-
var surfaceDistanceBetweenPoints = ellipsoidGeodesic.surfaceDistance / numPoints;
|
22165
|
-
|
22166
|
-
var index = offset;
|
22167
|
-
start.height = h0;
|
22168
|
-
var cart = ellipsoid.cartographicToCartesian(start, cartesian);
|
22169
|
-
Cartesian3.pack(cart, array, index);
|
22170
|
-
index += 3;
|
22171
|
-
|
22172
|
-
for (var i = 1; i < numPoints; i++) {
|
22173
|
-
var carto = ellipsoidGeodesic.interpolateUsingSurfaceDistance(i * surfaceDistanceBetweenPoints, carto2);
|
22174
|
-
carto.height = heights[i];
|
22175
|
-
cart = ellipsoid.cartographicToCartesian(carto, cartesian);
|
22176
|
-
Cartesian3.pack(cart, array, index);
|
22177
|
-
index += 3;
|
22178
|
-
}
|
22179
|
-
|
22180
|
-
return index;
|
22181
|
-
}
|
22182
|
-
|
22183
|
-
/**
|
22184
|
-
* Breaks a {@link Polyline} into segments such that it does not cross the ±180 degree meridian of an ellipsoid.
|
22185
|
-
*
|
22186
|
-
* @param {Cartesian3[]} positions The polyline's Cartesian positions.
|
22187
|
-
* @param {Matrix4} [modelMatrix=Matrix4.IDENTITY] The polyline's model matrix. Assumed to be an affine
|
22188
|
-
* transformation matrix, where the upper left 3x3 elements are a rotation matrix, and
|
22189
|
-
* the upper three elements in the fourth column are the translation. The bottom row is assumed to be [0, 0, 0, 1].
|
22190
|
-
* The matrix is not verified to be in the proper form.
|
22191
|
-
* @returns {Object} An object with a <code>positions</code> property that is an array of positions and a
|
22192
|
-
* <code>segments</code> property.
|
22193
|
-
*
|
22194
|
-
*
|
22195
|
-
* @example
|
22196
|
-
* var polylines = new Cesium.PolylineCollection();
|
22197
|
-
* var polyline = polylines.add(...);
|
22198
|
-
* var positions = polyline.positions;
|
22199
|
-
* var modelMatrix = polylines.modelMatrix;
|
22200
|
-
* var segments = Cesium.PolylinePipeline.wrapLongitude(positions, modelMatrix);
|
22201
|
-
*
|
22202
|
-
* @see PolygonPipeline.wrapLongitude
|
22203
|
-
* @see Polyline
|
22204
|
-
* @see PolylineCollection
|
22205
|
-
*/
|
22206
|
-
PolylinePipeline.wrapLongitude = function(positions, modelMatrix) {
|
22207
|
-
var cartesians = [];
|
22208
|
-
var segments = [];
|
22209
|
-
|
22210
|
-
if (defined(positions) && positions.length > 0) {
|
22211
|
-
modelMatrix = defaultValue(modelMatrix, Matrix4.IDENTITY);
|
22212
|
-
var inverseModelMatrix = Matrix4.inverseTransformation(modelMatrix, wrapLongitudeInversMatrix);
|
22213
|
-
|
22214
|
-
var origin = Matrix4.multiplyByPoint(inverseModelMatrix, Cartesian3.ZERO, wrapLongitudeOrigin);
|
22215
|
-
var xzNormal = Matrix4.multiplyByPointAsVector(inverseModelMatrix, Cartesian3.UNIT_Y, wrapLongitudeXZNormal);
|
22216
|
-
var xzPlane = Plane.fromPointNormal(origin, xzNormal, wrapLongitudeXZPlane);
|
22217
|
-
var yzNormal = Matrix4.multiplyByPointAsVector(inverseModelMatrix, Cartesian3.UNIT_X, wrapLongitudeYZNormal);
|
22218
|
-
var yzPlane = Plane.fromPointNormal(origin, yzNormal, wrapLongitudeYZPlane);
|
22219
|
-
|
22220
|
-
var count = 1;
|
22221
|
-
cartesians.push(Cartesian3.clone(positions[0]));
|
22222
|
-
var prev = cartesians[0];
|
22223
|
-
|
22224
|
-
var length = positions.length;
|
22225
|
-
for (var i = 1; i < length; ++i) {
|
22226
|
-
var cur = positions[i];
|
22227
|
-
|
22228
|
-
// intersects the IDL if either endpoint is on the negative side of the yz-plane
|
22229
|
-
if (Plane.getPointDistance(yzPlane, prev) < 0.0 || Plane.getPointDistance(yzPlane, cur) < 0.0) {
|
22230
|
-
// and intersects the xz-plane
|
22231
|
-
var intersection = IntersectionTests.lineSegmentPlane(prev, cur, xzPlane, wrapLongitudeIntersection);
|
22232
|
-
if (defined(intersection)) {
|
22233
|
-
// move point on the xz-plane slightly away from the plane
|
22234
|
-
var offset = Cartesian3.multiplyByScalar(xzNormal, 5.0e-9, wrapLongitudeOffset);
|
22235
|
-
if (Plane.getPointDistance(xzPlane, prev) < 0.0) {
|
22236
|
-
Cartesian3.negate(offset, offset);
|
22237
|
-
}
|
22238
|
-
|
22239
|
-
cartesians.push(Cartesian3.add(intersection, offset, new Cartesian3()));
|
22240
|
-
segments.push(count + 1);
|
22241
|
-
|
22242
|
-
Cartesian3.negate(offset, offset);
|
22243
|
-
cartesians.push(Cartesian3.add(intersection, offset, new Cartesian3()));
|
22244
|
-
count = 1;
|
22245
|
-
}
|
22246
|
-
}
|
22247
|
-
|
22248
|
-
cartesians.push(Cartesian3.clone(positions[i]));
|
22249
|
-
count++;
|
22250
|
-
|
22251
|
-
prev = cur;
|
22252
|
-
}
|
22253
|
-
|
22254
|
-
segments.push(count);
|
22255
|
-
}
|
22256
|
-
|
22257
|
-
return {
|
22258
|
-
positions : cartesians,
|
22259
|
-
lengths : segments
|
22260
|
-
};
|
22261
|
-
};
|
22262
|
-
|
22263
|
-
var removeDuplicatesEpsilon = CesiumMath.EPSILON10;
|
22264
|
-
|
22265
|
-
/**
|
22266
|
-
* Removes adjacent duplicate positions in an array of positions.
|
22267
|
-
*
|
22268
|
-
* @param {Cartesian3[]} positions The array of positions.
|
22269
|
-
* @returns {Cartesian3[]|undefined} A new array of positions with no adjacent duplicate positions or the input array if no duplicates were found.
|
22270
|
-
*
|
22271
|
-
* @example
|
22272
|
-
* // Returns [(1.0, 1.0, 1.0), (2.0, 2.0, 2.0)]
|
22273
|
-
* var positions = [
|
22274
|
-
* new Cesium.Cartesian3(1.0, 1.0, 1.0),
|
22275
|
-
* new Cesium.Cartesian3(1.0, 1.0, 1.0),
|
22276
|
-
* new Cesium.Cartesian3(2.0, 2.0, 2.0)];
|
22277
|
-
* var nonDuplicatePositions = Cesium.PolylinePipeline.removeDuplicates(positions);
|
22278
|
-
*/
|
22279
|
-
PolylinePipeline.removeDuplicates = function(positions) {
|
22280
|
-
if (!defined(positions)) {
|
22281
|
-
throw new DeveloperError('positions is required.');
|
22282
|
-
}
|
22283
|
-
|
22284
|
-
var length = positions.length;
|
22285
|
-
if (length < 2) {
|
22286
|
-
return positions;
|
22287
|
-
}
|
22288
|
-
|
22289
|
-
var i;
|
22290
|
-
var v0;
|
22291
|
-
var v1;
|
22292
|
-
|
22293
|
-
for (i = 1; i < length; ++i) {
|
22294
|
-
v0 = positions[i - 1];
|
22295
|
-
v1 = positions[i];
|
22296
|
-
if (Cartesian3.equalsEpsilon(v0, v1, removeDuplicatesEpsilon)) {
|
22297
|
-
break;
|
22298
|
-
}
|
22299
|
-
}
|
22300
|
-
|
22301
|
-
if (i === length) {
|
22302
|
-
return positions;
|
22303
|
-
}
|
22304
|
-
|
22305
|
-
var cleanedPositions = positions.slice(0, i);
|
22306
|
-
for (; i < length; ++i) {
|
22307
|
-
// v0 is set by either the previous loop, or the previous clean point.
|
22308
|
-
v1 = positions[i];
|
22309
|
-
if (!Cartesian3.equalsEpsilon(v0, v1, removeDuplicatesEpsilon)) {
|
22310
|
-
cleanedPositions.push(Cartesian3.clone(v1));
|
22311
|
-
v0 = v1;
|
22312
|
-
}
|
22313
|
-
}
|
22314
|
-
|
22315
|
-
return cleanedPositions;
|
22316
|
-
};
|
22317
|
-
|
22318
|
-
/**
|
22319
|
-
* Subdivides polyline and raises all points to the specified height. Returns an array of numbers to represent the positions.
|
22320
|
-
* @param {Cartesian3[]} positions The array of type {Cartesian3} representing positions.
|
22321
|
-
* @param {Number|Number[]} [height=0.0] A number or array of numbers representing the heights of each position.
|
22322
|
-
* @param {Number} [granularity = CesiumMath.RADIANS_PER_DEGREE] The distance, in radians, between each latitude and longitude. Determines the number of positions in the buffer.
|
22323
|
-
* @param {Ellipsoid} [ellipsoid=Ellipsoid.WGS84] The ellipsoid on which the positions lie.
|
22324
|
-
* @returns {Number[]} A new array of positions of type {Number} that have been subdivided and raised to the surface of the ellipsoid.
|
22325
|
-
*
|
22326
|
-
* @example
|
22327
|
-
* var positions = Cesium.Cartesian3.fromDegreesArray([
|
22328
|
-
* -105.0, 40.0,
|
22329
|
-
* -100.0, 38.0,
|
22330
|
-
* -105.0, 35.0,
|
22331
|
-
* -100.0, 32.0
|
22332
|
-
* ]);
|
22333
|
-
* var surfacePositions = Cesium.PolylinePipeline.generateArc({
|
22334
|
-
* positons: positions
|
22335
|
-
* });
|
22336
|
-
*/
|
22337
|
-
PolylinePipeline.generateArc = function(options) {
|
22338
|
-
if (!defined(options)) {
|
22339
|
-
options = {};
|
22340
|
-
}
|
22341
|
-
var positions = options.positions;
|
22342
|
-
if (!defined(positions)) {
|
22343
|
-
throw new DeveloperError('options.positions is required.');
|
22344
|
-
}
|
22345
|
-
|
22346
|
-
var length = positions.length;
|
22347
|
-
var ellipsoid = defaultValue(options.ellipsoid, Ellipsoid.WGS84);
|
22348
|
-
var height = defaultValue(options.height, 0);
|
22349
|
-
|
22350
|
-
if (length < 1) {
|
22351
|
-
return [];
|
22352
|
-
} else if (length === 1) {
|
22353
|
-
var p = ellipsoid.scaleToGeodeticSurface(positions[0], scaleFirst);
|
22354
|
-
if (height !== 0) {
|
22355
|
-
var n = ellipsoid.geodeticSurfaceNormal(p, cartesian);
|
22356
|
-
Cartesian3.multiplyByScalar(n, height, n);
|
22357
|
-
Cartesian3.add(p, n, p);
|
22358
|
-
}
|
22359
|
-
|
22360
|
-
return [p.x, p.y, p.z];
|
22361
|
-
}
|
22362
|
-
|
22363
|
-
var minDistance = options.minDistance;
|
22364
|
-
if (!defined(minDistance)) {
|
22365
|
-
var granularity = defaultValue(options.granularity, CesiumMath.RADIANS_PER_DEGREE);
|
22366
|
-
minDistance = CesiumMath.chordLength(granularity, ellipsoid.maximumRadius);
|
22367
|
-
}
|
22368
|
-
|
22369
|
-
var numPoints = 0;
|
22370
|
-
var i;
|
22371
|
-
|
22372
|
-
for (i = 0; i < length -1; i++) {
|
22373
|
-
numPoints += PolylinePipeline.numberOfPoints(positions[i], positions[i+1], minDistance);
|
22374
|
-
}
|
22375
|
-
|
22376
|
-
var arrayLength = (numPoints + 1) * 3;
|
22377
|
-
var newPositions = new Array(arrayLength);
|
22378
|
-
var offset = 0;
|
22379
|
-
var hasHeightArray = isArray(height);
|
22380
|
-
|
22381
|
-
for (i = 0; i < length - 1; i++) {
|
22382
|
-
var p0 = positions[i];
|
22383
|
-
var p1 = positions[i + 1];
|
22384
|
-
|
22385
|
-
var h0 = hasHeightArray ? height[i] : height;
|
22386
|
-
var h1 = hasHeightArray ? height[i + 1] : height;
|
22387
|
-
|
22388
|
-
offset = generateCartesianArc(p0, p1, minDistance, ellipsoid, h0, h1, newPositions, offset);
|
22389
|
-
}
|
22390
|
-
|
22391
|
-
subdivideHeightsScratchArray.length = 0;
|
22392
|
-
|
22393
|
-
var lastPoint = positions[length - 1];
|
22394
|
-
var carto = ellipsoid.cartesianToCartographic(lastPoint, carto1);
|
22395
|
-
carto.height = hasHeightArray ? height[length - 1] : height;
|
22396
|
-
var cart = ellipsoid.cartographicToCartesian(carto, cartesian);
|
22397
|
-
Cartesian3.pack(cart, newPositions, arrayLength - 3);
|
22398
|
-
|
22399
|
-
return newPositions;
|
22400
|
-
};
|
22401
|
-
|
22402
|
-
/**
|
22403
|
-
* Subdivides polyline and raises all points to the specified height. Returns an array of new {Cartesian3} positions.
|
22404
|
-
* @param {Cartesian3[]} positions The array of type {Cartesian3} representing positions.
|
22405
|
-
* @param {Number|Number[]} [height=0.0] A number or array of numbers representing the heights of each position.
|
22406
|
-
* @param {Number} [granularity = CesiumMath.RADIANS_PER_DEGREE] The distance, in radians, between each latitude and longitude. Determines the number of positions in the buffer.
|
22407
|
-
* @param {Ellipsoid} [ellipsoid=Ellipsoid.WGS84] The ellipsoid on which the positions lie.
|
22408
|
-
* @returns {Cartesian3[]} A new array of cartesian3 positions that have been subdivided and raised to the surface of the ellipsoid.
|
22409
|
-
*
|
22410
|
-
* @example
|
22411
|
-
* var positions = Cesium.Cartesian3.fromDegreesArray([
|
22412
|
-
* -105.0, 40.0,
|
22413
|
-
* -100.0, 38.0,
|
22414
|
-
* -105.0, 35.0,
|
22415
|
-
* -100.0, 32.0
|
22416
|
-
* ]);
|
22417
|
-
* var surfacePositions = Cesium.PolylinePipeline.generateCartesianArc({
|
22418
|
-
* positons: positions
|
22419
|
-
* });
|
22420
|
-
*/
|
22421
|
-
PolylinePipeline.generateCartesianArc = function(options) {
|
22422
|
-
var numberArray = PolylinePipeline.generateArc(options);
|
22423
|
-
var size = numberArray.length/3;
|
22424
|
-
var newPositions = new Array(size);
|
22425
|
-
for (var i = 0; i < size; i++) {
|
22426
|
-
newPositions[i] = Cartesian3.unpack(numberArray, i*3);
|
22427
|
-
}
|
22428
|
-
return newPositions;
|
22429
|
-
};
|
22430
|
-
|
22431
|
-
return PolylinePipeline;
|
22432
|
-
});
|
22433
|
-
|
22434
|
-
/*global define*/
|
22435
|
-
define('Core/Queue',[
|
22436
|
-
'../Core/defineProperties'
|
22437
|
-
], function(
|
22438
|
-
defineProperties) {
|
22439
|
-
"use strict";
|
22440
|
-
|
22441
|
-
/**
|
22442
|
-
* A queue that can enqueue items at the end, and dequeue items from the front.
|
22443
|
-
*
|
22444
|
-
* @alias Queue
|
22445
|
-
* @constructor
|
22446
|
-
*/
|
22447
|
-
function Queue() {
|
22448
|
-
this._array = [];
|
22449
|
-
this._offset = 0;
|
22450
|
-
this._length = 0;
|
22451
|
-
}
|
22452
|
-
|
22453
|
-
defineProperties(Queue.prototype, {
|
22454
|
-
/**
|
22455
|
-
* The length of the queue.
|
22456
|
-
*
|
22457
|
-
* @memberof Queue.prototype
|
22458
|
-
*
|
22459
|
-
* @type {Number}
|
22460
|
-
* @readonly
|
22461
|
-
*/
|
22462
|
-
length : {
|
22463
|
-
get : function() {
|
22464
|
-
return this._length;
|
22465
|
-
}
|
22466
|
-
}
|
22467
|
-
});
|
22468
|
-
|
22469
|
-
/**
|
22470
|
-
* Enqueues the specified item.
|
22471
|
-
*
|
22472
|
-
* @param {Object} item The item to enqueue.
|
22473
|
-
*/
|
22474
|
-
Queue.prototype.enqueue = function(item) {
|
22475
|
-
this._array.push(item);
|
22476
|
-
this._length++;
|
22477
|
-
};
|
22478
|
-
|
22479
|
-
/**
|
22480
|
-
* Dequeues an item. Returns undefined if the queue is empty.
|
22481
|
-
*
|
22482
|
-
* @returns {Object} The the dequeued item.
|
22483
|
-
*/
|
22484
|
-
Queue.prototype.dequeue = function() {
|
22485
|
-
if (this._length === 0) {
|
22486
|
-
return undefined;
|
22487
|
-
}
|
22488
|
-
|
22489
|
-
var array = this._array;
|
22490
|
-
var offset = this._offset;
|
22491
|
-
var item = array[offset];
|
22492
|
-
array[offset] = undefined;
|
22493
|
-
|
22494
|
-
offset++;
|
22495
|
-
if ((offset > 10) && (offset * 2 > array.length)) {
|
22496
|
-
//compact array
|
22497
|
-
this._array = array.slice(offset);
|
22498
|
-
offset = 0;
|
22499
|
-
}
|
22500
|
-
|
22501
|
-
this._offset = offset;
|
22502
|
-
this._length--;
|
22503
|
-
|
22504
|
-
return item;
|
22505
|
-
};
|
22506
|
-
|
22507
|
-
/**
|
22508
|
-
* Returns the item at the front of the queue. Returns undefined if the queue is empty.
|
22509
|
-
*
|
22510
|
-
* @returns {Object} The item at the front of the queue.
|
22511
|
-
*/
|
22512
|
-
Queue.prototype.peek = function() {
|
22513
|
-
if (this._length === 0) {
|
22514
|
-
return undefined;
|
22515
|
-
}
|
22516
|
-
|
22517
|
-
return this._array[this._offset];
|
22518
|
-
};
|
22519
|
-
|
22520
|
-
/**
|
22521
|
-
* Check whether this queue contains the specified item.
|
22522
|
-
*
|
22523
|
-
* @param {Object} item The item to search for.
|
22524
|
-
*/
|
22525
|
-
Queue.prototype.contains = function(item) {
|
22526
|
-
return this._array.indexOf(item) !== -1;
|
22527
|
-
};
|
22528
|
-
|
22529
|
-
/**
|
22530
|
-
* Remove all items from the queue.
|
22531
|
-
*/
|
22532
|
-
Queue.prototype.clear = function() {
|
22533
|
-
this._array.length = this._offset = this._length = 0;
|
22534
|
-
};
|
22535
|
-
|
22536
|
-
/**
|
22537
|
-
* Sort the items in the queue in-place.
|
22538
|
-
*
|
22539
|
-
* @param {Queue~Comparator} compareFunction A function that defines the sort order.
|
22540
|
-
*/
|
22541
|
-
Queue.prototype.sort = function(compareFunction) {
|
22542
|
-
if (this._offset > 0) {
|
22543
|
-
//compact array
|
22544
|
-
this._array = this._array.slice(this._offset);
|
22545
|
-
this._offset = 0;
|
22546
|
-
}
|
22547
|
-
|
22548
|
-
this._array.sort(compareFunction);
|
22549
|
-
};
|
22550
|
-
|
22551
|
-
/**
|
22552
|
-
* A function used to compare two items while sorting a queue.
|
22553
|
-
* @callback Queue~Comparator
|
22554
|
-
*
|
22555
|
-
* @param {Object} a An item in the array.
|
22556
|
-
* @param {Object} b An item in the array.
|
22557
|
-
* @returns {Number} Returns a negative value if <code>a</code> is less than <code>b</code>,
|
22558
|
-
* a positive value if <code>a</code> is greater than <code>b</code>, or
|
22559
|
-
* 0 if <code>a</code> is equal to <code>b</code>.
|
22560
|
-
*
|
22561
|
-
* @example
|
22562
|
-
* function compareNumbers(a, b) {
|
22563
|
-
* return a - b;
|
22564
|
-
* }
|
22565
|
-
*/
|
22566
|
-
|
22567
|
-
return Queue;
|
22568
|
-
});
|
22569
|
-
|
22570
|
-
/*global define*/
|
22571
|
-
define('Core/WindingOrder',[
|
22572
|
-
'../Renderer/WebGLConstants',
|
22573
|
-
'./freezeObject'
|
22574
|
-
], function(
|
22575
|
-
WebGLConstants,
|
22576
|
-
freezeObject) {
|
22577
|
-
"use strict";
|
22578
|
-
|
22579
|
-
/**
|
22580
|
-
* Winding order defines the order of vertices for a triangle to be considered front-facing.
|
22581
|
-
*
|
22582
|
-
* @exports WindingOrder
|
22583
|
-
*/
|
22584
|
-
var WindingOrder = {
|
22585
|
-
/**
|
22586
|
-
* Vertices are in clockwise order.
|
22587
|
-
*
|
22588
|
-
* @type {Number}
|
22589
|
-
* @constant
|
22590
|
-
*/
|
22591
|
-
CLOCKWISE : WebGLConstants.CW,
|
22592
|
-
|
22593
|
-
/**
|
22594
|
-
* Vertices are in counter-clockwise order.
|
22595
|
-
*
|
22596
|
-
* @type {Number}
|
22597
|
-
* @constant
|
22598
|
-
*/
|
22599
|
-
COUNTER_CLOCKWISE : WebGLConstants.CCW,
|
22600
|
-
|
22601
|
-
/**
|
22602
|
-
* @private
|
22603
|
-
*/
|
22604
|
-
validate : function(windingOrder) {
|
22605
|
-
return windingOrder === WindingOrder.CLOCKWISE ||
|
22606
|
-
windingOrder === WindingOrder.COUNTER_CLOCKWISE;
|
22607
|
-
}
|
22608
|
-
};
|
22609
|
-
|
22610
|
-
return freezeObject(WindingOrder);
|
22611
|
-
});
|
22612
|
-
/*global define*/
|
22613
|
-
define('Core/PolygonPipeline',[
|
22614
|
-
'./Cartesian2',
|
22615
|
-
'./Cartesian3',
|
22616
|
-
'./ComponentDatatype',
|
22617
|
-
'./defaultValue',
|
22618
|
-
'./defined',
|
22619
|
-
'./DeveloperError',
|
22620
|
-
'./Ellipsoid',
|
22621
|
-
'./EllipsoidTangentPlane',
|
22622
|
-
'./Geometry',
|
22623
|
-
'./GeometryAttribute',
|
22624
|
-
'./Math',
|
22625
|
-
'./pointInsideTriangle',
|
22626
|
-
'./PolylinePipeline',
|
22627
|
-
'./PrimitiveType',
|
22628
|
-
'./Queue',
|
22629
|
-
'./WindingOrder'
|
22630
|
-
], function(
|
22631
|
-
Cartesian2,
|
22632
|
-
Cartesian3,
|
22633
|
-
ComponentDatatype,
|
22634
|
-
defaultValue,
|
22635
|
-
defined,
|
22636
|
-
DeveloperError,
|
22637
|
-
Ellipsoid,
|
22638
|
-
EllipsoidTangentPlane,
|
22639
|
-
Geometry,
|
22640
|
-
GeometryAttribute,
|
22641
|
-
CesiumMath,
|
22642
|
-
pointInsideTriangle,
|
22643
|
-
PolylinePipeline,
|
22644
|
-
PrimitiveType,
|
22645
|
-
Queue,
|
22646
|
-
WindingOrder) {
|
22647
|
-
"use strict";
|
22648
|
-
|
22649
|
-
var uScratch = new Cartesian2();
|
22650
|
-
var vScratch = new Cartesian2();
|
22651
|
-
function isTipConvex(p0, p1, p2) {
|
22652
|
-
var u = Cartesian2.subtract(p1, p0, uScratch);
|
22653
|
-
var v = Cartesian2.subtract(p2, p1, vScratch);
|
22654
|
-
|
22655
|
-
// Use the sign of the z component of the cross product
|
22656
|
-
return ((u.x * v.y) - (u.y * v.x)) >= 0.0;
|
22657
|
-
}
|
22658
|
-
|
22659
|
-
/**
|
22660
|
-
* Returns the index of the vertex with the maximum X value.
|
22661
|
-
*
|
22662
|
-
* @param {Cartesian2[]} positions An array of the Cartesian points defining the polygon's vertices.
|
22663
|
-
* @returns {Number} The index of the positions with the maximum X value.
|
22664
|
-
*
|
22665
|
-
* @private
|
22666
|
-
*/
|
22667
|
-
function getRightmostPositionIndex(positions) {
|
22668
|
-
var maximumX = positions[0].x;
|
22669
|
-
var rightmostPositionIndex = 0;
|
22670
|
-
for ( var i = 0; i < positions.length; i++) {
|
22671
|
-
if (positions[i].x > maximumX) {
|
22672
|
-
maximumX = positions[i].x;
|
22673
|
-
rightmostPositionIndex = i;
|
22674
|
-
}
|
22675
|
-
}
|
22676
|
-
return rightmostPositionIndex;
|
22677
|
-
}
|
22678
|
-
|
22679
|
-
/**
|
22680
|
-
* Returns the index of the ring that contains the rightmost vertex.
|
22681
|
-
*
|
22682
|
-
* @param {Cartesian2[]} rings An array of arrays of Cartesians. Each array contains the vertices defining a polygon.
|
22683
|
-
* @returns {Number} The index of the ring containing the rightmost vertex.
|
22684
|
-
*
|
22685
|
-
* @private
|
22686
|
-
*/
|
22687
|
-
function getRightmostRingIndex(rings) {
|
22688
|
-
var rightmostX = rings[0][0].x;
|
22689
|
-
var rightmostRingIndex = 0;
|
22690
|
-
for ( var ring = 0; ring < rings.length; ring++) {
|
22691
|
-
var maximumX = rings[ring][getRightmostPositionIndex(rings[ring])].x;
|
22692
|
-
if (maximumX > rightmostX) {
|
22693
|
-
rightmostX = maximumX;
|
22694
|
-
rightmostRingIndex = ring;
|
22695
|
-
}
|
22696
|
-
}
|
22697
|
-
|
22698
|
-
return rightmostRingIndex;
|
22699
|
-
}
|
22700
|
-
|
22701
|
-
/**
|
22702
|
-
* Returns a list containing the reflex vertices for a given polygon.
|
22703
|
-
*
|
22704
|
-
* @param {Cartesian2[]} polygon An array of Cartesian elements defining the polygon.
|
22705
|
-
* @returns {Cartesian2[]}
|
22706
|
-
*
|
22707
|
-
* @private
|
22708
|
-
*/
|
22709
|
-
function getReflexVertices(polygon) {
|
22710
|
-
var reflexVertices = [];
|
22711
|
-
for ( var i = 0; i < polygon.length; i++) {
|
22712
|
-
var p0 = polygon[((i - 1) + polygon.length) % polygon.length];
|
22713
|
-
var p1 = polygon[i];
|
22714
|
-
var p2 = polygon[(i + 1) % polygon.length];
|
22715
|
-
|
22716
|
-
if (!isTipConvex(p0, p1, p2)) {
|
22717
|
-
reflexVertices.push(p1);
|
22718
|
-
}
|
22719
|
-
}
|
22720
|
-
return reflexVertices;
|
22721
|
-
}
|
22722
|
-
|
22723
|
-
/**
|
22724
|
-
* Returns true if the given point is contained in the list of positions.
|
22725
|
-
*
|
22726
|
-
* @param {Cartesian2[]} positions A list of Cartesian elements defining a polygon.
|
22727
|
-
* @param {Cartesian2} point The point to check.
|
22728
|
-
* @returns {Number} The index of <code>point</code> in <code>positions</code> or -1 if it was not found.
|
22729
|
-
*
|
22730
|
-
* @private
|
22731
|
-
*/
|
22732
|
-
function isVertex(positions, point) {
|
22733
|
-
for ( var i = 0; i < positions.length; i++) {
|
22734
|
-
if (Cartesian2.equals(point, positions[i])) {
|
22735
|
-
return i;
|
22736
|
-
}
|
22737
|
-
}
|
22738
|
-
return -1;
|
22739
|
-
}
|
22740
|
-
|
22741
|
-
/**
|
22742
|
-
* Given a point inside a polygon, find the nearest point directly to the right that lies on one of the polygon's edges.
|
22743
|
-
*
|
22744
|
-
* @param {Cartesian2} point A point inside the polygon defined by <code>ring</code>.
|
22745
|
-
* @param {Cartesian2[]} ring A list of Cartesian points defining a polygon.
|
22746
|
-
* @param {Number[]} [edgeIndices] An array containing the indices two endpoints of the edge containing the intersection.
|
22747
|
-
* @returns {Cartesian2} The intersection point.
|
22748
|
-
*
|
22749
|
-
* @private
|
22750
|
-
*/
|
22751
|
-
var distScratch = new Cartesian2();
|
22752
|
-
function intersectPointWithRing(point, ring, edgeIndices) {
|
22753
|
-
edgeIndices = defaultValue(edgeIndices, []);
|
22754
|
-
|
22755
|
-
var minDistance = Number.MAX_VALUE;
|
22756
|
-
var rightmostVertexIndex = getRightmostPositionIndex(ring);
|
22757
|
-
var intersection = new Cartesian2(ring[rightmostVertexIndex].x, point.y);
|
22758
|
-
edgeIndices.push(rightmostVertexIndex);
|
22759
|
-
edgeIndices.push((rightmostVertexIndex + 1) % ring.length);
|
22760
|
-
|
22761
|
-
var boundaryMinX = ring[0].x;
|
22762
|
-
var boundaryMaxX = boundaryMinX;
|
22763
|
-
for ( var i = 1; i < ring.length; ++i) {
|
22764
|
-
if (ring[i].x < boundaryMinX) {
|
22765
|
-
boundaryMinX = ring[i].x;
|
22766
|
-
} else if (ring[i].x > boundaryMaxX) {
|
22767
|
-
boundaryMaxX = ring[i].x;
|
22768
|
-
}
|
22769
|
-
}
|
22770
|
-
boundaryMaxX += (boundaryMaxX - boundaryMinX);
|
22771
|
-
var point2 = new Cartesian3(boundaryMaxX, point.y, 0.0);
|
22772
|
-
|
22773
|
-
// Find the nearest intersection.
|
22774
|
-
for (i = 0; i < ring.length; i++) {
|
22775
|
-
var v1 = ring[i];
|
22776
|
-
var v2 = ring[(i + 1) % ring.length];
|
22777
|
-
|
22778
|
-
if (((v1.x >= point.x) || (v2.x >= point.x)) && (((v1.y >= point.y) && (v2.y <= point.y)) || ((v1.y <= point.y) && (v2.y >= point.y)))) {
|
22779
|
-
var temp = ((v2.y - v1.y) * (point2.x - point.x)) - ((v2.x - v1.x) * (point2.y - point.y));
|
22780
|
-
if (temp !== 0.0) {
|
22781
|
-
temp = 1.0 / temp;
|
22782
|
-
var ua = (((v2.x - v1.x) * (point.y - v1.y)) - ((v2.y - v1.y) * (point.x - v1.x))) * temp;
|
22783
|
-
var ub = (((point2.x - point.x) * (point.y - v1.y)) - ((point2.y - point.y) * (point.x - v1.x))) * temp;
|
22784
|
-
if ((ua >= 0.0) && (ua <= 1.0) && (ub >= 0.0) && (ub <= 1.0)) {
|
22785
|
-
var tempIntersection = new Cartesian2(point.x + ua * (point2.x - point.x), point.y + ua * (point2.y - point.y));
|
22786
|
-
var dist = Cartesian2.subtract(tempIntersection, point, distScratch);
|
22787
|
-
temp = Cartesian2.magnitudeSquared(dist);
|
22788
|
-
if (temp < minDistance) {
|
22789
|
-
intersection = tempIntersection;
|
22790
|
-
minDistance = temp;
|
22791
|
-
edgeIndices[0] = i;
|
22792
|
-
edgeIndices[1] = (i + 1) % ring.length;
|
22793
|
-
}
|
22794
|
-
}
|
22795
|
-
}
|
22796
|
-
}
|
22797
|
-
}
|
22798
|
-
|
22799
|
-
return intersection;
|
22800
|
-
}
|
22801
|
-
|
22802
|
-
/**
|
22803
|
-
* Given an outer ring and multiple inner rings, determine the point on the outer ring that is visible
|
22804
|
-
* to the rightmost vertex of the rightmost inner ring.
|
22805
|
-
*
|
22806
|
-
* @param {Cartesian2[]} outerRing An array of Cartesian points defining the outer boundary of the polygon.
|
22807
|
-
* @param {Cartesian2[]} innerRings An array of arrays of Cartesian points, where each array represents a hole in the polygon.
|
22808
|
-
* @returns {Number} The index of the vertex in <code>outerRing</code> that is mutually visible to the rightmost vertex in <code>inenrRing</code>.
|
22809
|
-
*
|
22810
|
-
* @private
|
22811
|
-
*/
|
22812
|
-
var v1Scratch = new Cartesian2(1.0, 0.0);
|
22813
|
-
var v2Scratch = new Cartesian2();
|
22814
|
-
function getMutuallyVisibleVertexIndex(outerRing, innerRings) {
|
22815
|
-
var innerRingIndex = getRightmostRingIndex(innerRings);
|
22816
|
-
var innerRing = innerRings[innerRingIndex];
|
22817
|
-
var innerRingVertexIndex = getRightmostPositionIndex(innerRing);
|
22818
|
-
var innerRingVertex = innerRing[innerRingVertexIndex];
|
22819
|
-
var edgeIndices = [];
|
22820
|
-
var intersection = intersectPointWithRing(innerRingVertex, outerRing, edgeIndices);
|
22821
|
-
|
22822
|
-
var visibleVertex = isVertex(outerRing, intersection);
|
22823
|
-
if (visibleVertex !== -1) {
|
22824
|
-
return visibleVertex;
|
22825
|
-
}
|
22826
|
-
|
22827
|
-
// Set P to be the edge endpoint closest to the inner ring vertex
|
22828
|
-
var d1 = Cartesian2.magnitudeSquared(Cartesian2.subtract(outerRing[edgeIndices[0]], innerRingVertex, v1Scratch));
|
22829
|
-
var d2 = Cartesian2.magnitudeSquared(Cartesian2.subtract(outerRing[edgeIndices[1]], innerRingVertex, v1Scratch));
|
22830
|
-
var p = (d1 < d2) ? outerRing[edgeIndices[0]] : outerRing[edgeIndices[1]];
|
22831
|
-
|
22832
|
-
var reflexVertices = getReflexVertices(outerRing);
|
22833
|
-
var reflexIndex = reflexVertices.indexOf(p);
|
22834
|
-
if (reflexIndex !== -1) {
|
22835
|
-
reflexVertices.splice(reflexIndex, 1); // Do not include p if it happens to be reflex.
|
22836
|
-
}
|
22837
|
-
|
22838
|
-
var pointsInside = [];
|
22839
|
-
for ( var i = 0; i < reflexVertices.length; i++) {
|
22840
|
-
var vertex = reflexVertices[i];
|
22841
|
-
if (pointInsideTriangle(vertex, innerRingVertex, intersection, p)) {
|
22842
|
-
pointsInside.push(vertex);
|
22843
|
-
}
|
22844
|
-
}
|
22845
|
-
|
22846
|
-
// If all reflexive vertices are outside the triangle formed by points
|
22847
|
-
// innerRingVertex, intersection and P, then P is the visible vertex.
|
22848
|
-
// Otherwise, return the reflex vertex that minimizes the angle between <1,0> and <k, reflex>.
|
22849
|
-
var minAngle = Number.MAX_VALUE;
|
22850
|
-
if (pointsInside.length > 0) {
|
22851
|
-
var v1 = Cartesian2.fromElements(1.0, 0.0, v1Scratch);
|
22852
|
-
for (i = 0; i < pointsInside.length; i++) {
|
22853
|
-
var v2 = Cartesian2.subtract(pointsInside[i], innerRingVertex, v2Scratch);
|
22854
|
-
var denominator = Cartesian2.magnitude(v1) * Cartesian2.magnitudeSquared(v2);
|
22855
|
-
if (denominator !== 0) {
|
22856
|
-
var angle = Math.abs(CesiumMath.acosClamped(Cartesian2.dot(v1, v2) / denominator));
|
22857
|
-
if (angle < minAngle) {
|
22858
|
-
minAngle = angle;
|
22859
|
-
p = pointsInside[i];
|
22860
|
-
}
|
22861
|
-
}
|
22862
|
-
}
|
22863
|
-
}
|
22864
|
-
|
22865
|
-
return outerRing.indexOf(p);
|
22866
|
-
}
|
22867
|
-
|
22868
|
-
/**
|
22869
|
-
* Given a polygon defined by an outer ring with one or more inner rings (holes), return a single list of points representing
|
22870
|
-
* a polygon with the rightmost hole added to it. The added hole is removed from <code>innerRings</code>.
|
22871
|
-
*
|
22872
|
-
* @param {Cartesian2[]} outerRing An array of Cartesian points defining the outer boundary of the polygon.
|
22873
|
-
* @param {Cartesian2[]} innerRings An array of arrays of Cartesian points, where each array represents a hole in the polygon.
|
22874
|
-
* @returns {Cartesian2[]} A single list of Cartesian points defining the polygon, including the eliminated inner ring.
|
22875
|
-
*
|
22876
|
-
* @private
|
22877
|
-
*/
|
22878
|
-
function eliminateHole(outerRing, innerRings, ellipsoid) {
|
22879
|
-
// Check that the holes are defined in the winding order opposite that of the outer ring.
|
22880
|
-
var windingOrder = PolygonPipeline.computeWindingOrder2D(outerRing);
|
22881
|
-
for ( var i = 0; i < innerRings.length; i++) {
|
22882
|
-
var ring = innerRings[i];
|
22883
|
-
|
22884
|
-
// Ensure each hole's first and last points are the same.
|
22885
|
-
if (!Cartesian3.equals(ring[0], ring[ring.length - 1])) {
|
22886
|
-
ring.push(ring[0]);
|
22887
|
-
}
|
22888
|
-
|
22889
|
-
var innerWindingOrder = PolygonPipeline.computeWindingOrder2D(ring);
|
22890
|
-
if (innerWindingOrder === windingOrder) {
|
22891
|
-
ring.reverse();
|
22892
|
-
}
|
22893
|
-
}
|
22894
|
-
|
22895
|
-
// Project points onto a tangent plane to find the mutually visible vertex.
|
22896
|
-
var tangentPlane = EllipsoidTangentPlane.fromPoints(outerRing, ellipsoid);
|
22897
|
-
var tangentOuterRing = tangentPlane.projectPointsOntoPlane(outerRing);
|
22898
|
-
var tangentInnerRings = [];
|
22899
|
-
for (i = 0; i < innerRings.length; i++) {
|
22900
|
-
tangentInnerRings.push(tangentPlane.projectPointsOntoPlane(innerRings[i]));
|
22901
|
-
}
|
22902
|
-
|
22903
|
-
var visibleVertexIndex = getMutuallyVisibleVertexIndex(tangentOuterRing, tangentInnerRings);
|
22904
|
-
var innerRingIndex = getRightmostRingIndex(tangentInnerRings);
|
22905
|
-
var innerRingVertexIndex = getRightmostPositionIndex(tangentInnerRings[innerRingIndex]);
|
22906
|
-
|
22907
|
-
var innerRing = innerRings[innerRingIndex];
|
22908
|
-
var newPolygonVertices = [];
|
22909
|
-
|
22910
|
-
for (i = 0; i < outerRing.length; i++) {
|
22911
|
-
newPolygonVertices.push(outerRing[i]);
|
22912
|
-
}
|
22913
|
-
|
22914
|
-
var j;
|
22915
|
-
var holeVerticesToAdd = [];
|
22916
|
-
|
22917
|
-
// If the rightmost inner vertex is not the starting and ending point of the ring,
|
22918
|
-
// then some other point is duplicated in the inner ring and should be skipped once.
|
22919
|
-
if (innerRingVertexIndex !== 0) {
|
22920
|
-
for (j = 0; j <= innerRing.length; j++) {
|
22921
|
-
var index = (j + innerRingVertexIndex) % innerRing.length;
|
22922
|
-
if (index !== 0) {
|
22923
|
-
holeVerticesToAdd.push(innerRing[index]);
|
22924
|
-
}
|
22925
|
-
}
|
22926
|
-
} else {
|
22927
|
-
for (j = 0; j < innerRing.length; j++) {
|
22928
|
-
holeVerticesToAdd.push(innerRing[(j + innerRingVertexIndex) % innerRing.length]);
|
22929
|
-
}
|
22930
|
-
}
|
22931
|
-
|
22932
|
-
var lastVisibleVertexIndex = newPolygonVertices.lastIndexOf(outerRing[visibleVertexIndex]);
|
22933
|
-
|
22934
|
-
holeVerticesToAdd.push(outerRing[lastVisibleVertexIndex]);
|
22935
|
-
|
22936
|
-
var front = newPolygonVertices.slice(0, lastVisibleVertexIndex + 1);
|
22937
|
-
var back = newPolygonVertices.slice(lastVisibleVertexIndex + 1);
|
22938
|
-
newPolygonVertices = front.concat(holeVerticesToAdd, back);
|
22939
|
-
|
22940
|
-
innerRings.splice(innerRingIndex, 1);
|
22941
|
-
|
22942
|
-
return newPolygonVertices;
|
22943
|
-
}
|
22944
|
-
|
22945
|
-
function getRandomIndex(length) {
|
22946
|
-
var random = CesiumMath.nextRandomNumber();
|
22947
|
-
var i = Math.floor(random * length);
|
22948
|
-
if (i === length) {
|
22949
|
-
i--;
|
22950
|
-
}
|
22951
|
-
return i;
|
22952
|
-
}
|
22953
|
-
|
22954
|
-
function indexedEdgeCrossZ(p0Index, p1Index, vertexIndex, array) {
|
22955
|
-
var p0 = array[p0Index].position;
|
22956
|
-
var p1 = array[p1Index].position;
|
22957
|
-
var v = array[vertexIndex].position;
|
22958
|
-
|
22959
|
-
var vx = v.x;
|
22960
|
-
var vy = v.y;
|
22961
|
-
|
22962
|
-
// (p0 - v).cross(p1 - v).z
|
22963
|
-
var leftX = p0.x - vx;
|
22964
|
-
var leftY = p0.y - vy;
|
22965
|
-
var rightX = p1.x - vx;
|
22966
|
-
var rightY = p1.y - vy;
|
22967
|
-
|
22968
|
-
return leftX * rightY - leftY * rightX;
|
22969
|
-
}
|
22970
|
-
|
22971
|
-
function crossZ(p0, p1) {
|
22972
|
-
// p0.cross(p1).z
|
22973
|
-
return p0.x * p1.y - p0.y * p1.x;
|
22974
|
-
}
|
22975
|
-
|
22976
|
-
/**
|
22977
|
-
* Checks to make sure vertex is not superfluous.
|
22978
|
-
*
|
22979
|
-
* @param {Number} index Index of vertex.
|
22980
|
-
* @param {Number} pArray Array of vertices.
|
22981
|
-
*
|
22982
|
-
* @exception {DeveloperError} Superfluous vertex found.
|
22983
|
-
*
|
22984
|
-
* @private
|
22985
|
-
*/
|
22986
|
-
function validateVertex(index, pArray) {
|
22987
|
-
var length = pArray.length;
|
22988
|
-
var before = CesiumMath.mod(index - 1, length);
|
22989
|
-
var after = CesiumMath.mod(index + 1, length);
|
22990
|
-
|
22991
|
-
// check if adjacent edges are parallel
|
22992
|
-
if (indexedEdgeCrossZ(before, after, index, pArray) === 0.0) {
|
22993
|
-
return false;
|
22994
|
-
}
|
22995
|
-
|
22996
|
-
return true;
|
22997
|
-
}
|
22998
|
-
|
22999
|
-
/**
|
23000
|
-
* Checks whether cut parallel to side is internal.
|
23001
|
-
*
|
23002
|
-
* e.g.
|
23003
|
-
*
|
23004
|
-
* 7_________6
|
23005
|
-
* | |
|
23006
|
-
* | 4 ______|
|
23007
|
-
* | | 5
|
23008
|
-
* | |______2 Is cut from 1 to 6 internal? No.
|
23009
|
-
* | 3 |
|
23010
|
-
* |_________|
|
23011
|
-
* 0 1
|
23012
|
-
*
|
23013
|
-
* Note that this function simply checks whether the cut is longer or shorter.
|
23014
|
-
*
|
23015
|
-
* An important valid cut:
|
23016
|
-
*
|
23017
|
-
* Polygon:
|
23018
|
-
*
|
23019
|
-
* 0 ___2__4
|
23020
|
-
* | /\ |
|
23021
|
-
* | / \ | Is cut 0 to 2 or 2 to 4 internal? Yes.
|
23022
|
-
* |/ \|
|
23023
|
-
* 1 3
|
23024
|
-
*
|
23025
|
-
* This situation can occur and the only solution is a cut along a parallel
|
23026
|
-
* side.
|
23027
|
-
*
|
23028
|
-
* This method is technically incomplete, however, for the following case:
|
23029
|
-
*
|
23030
|
-
* 7_________6
|
23031
|
-
* | |
|
23032
|
-
* | |______4
|
23033
|
-
* | 5 | Now is 1 to 6 internal? Yes, but we'll never need it.
|
23034
|
-
* | 2______|
|
23035
|
-
* | | 5
|
23036
|
-
* |_________|
|
23037
|
-
* 0 1
|
23038
|
-
*
|
23039
|
-
* In this case, although the cut from 1 to 6 is valid, the side 1-2 is
|
23040
|
-
* shorter and thus this cut will be called invalid. Assuming there are no
|
23041
|
-
* superfluous vertices (a requirement for this method to work), however,
|
23042
|
-
* we'll never need this cut because we can always find cut 2-5 as a substitute.
|
23043
|
-
*
|
23044
|
-
* @param {Cartesian2} side
|
23045
|
-
* @param {Cartesian2} cut
|
23046
|
-
* @returns {Boolean}
|
22897
|
+
return this._length;
|
22898
|
+
}
|
22899
|
+
}
|
22900
|
+
});
|
22901
|
+
|
22902
|
+
/**
|
22903
|
+
* Enqueues the specified item.
|
23047
22904
|
*
|
23048
|
-
* @
|
22905
|
+
* @param {Object} item The item to enqueue.
|
23049
22906
|
*/
|
23050
|
-
function
|
23051
|
-
|
23052
|
-
|
23053
|
-
|
23054
|
-
var INTERNAL = -1;
|
23055
|
-
var EXTERNAL = -2;
|
22907
|
+
Queue.prototype.enqueue = function(item) {
|
22908
|
+
this._array.push(item);
|
22909
|
+
this._length++;
|
22910
|
+
};
|
23056
22911
|
|
23057
22912
|
/**
|
23058
|
-
*
|
23059
|
-
* to the angle formed by the sides connecting at the first vertex.
|
23060
|
-
*
|
23061
|
-
* @param {Number} a1i Index of first vertex.
|
23062
|
-
* @param {Number} a2i Index of second vertex.
|
23063
|
-
* @param {Array} pArray Array of <code>{ position, index }</code> objects representing the polygon.
|
23064
|
-
* @returns {Number} If INTERNAL, the cut formed between the two vertices is internal to the angle at vertex 1.
|
23065
|
-
* If EXTERNAL, then the cut formed between the two vertices is external to the angle at vertex 1. If the value
|
23066
|
-
* is greater than or equal to zero, then the value is the index of an invalid vertex.
|
22913
|
+
* Dequeues an item. Returns undefined if the queue is empty.
|
23067
22914
|
*
|
23068
|
-
* @
|
22915
|
+
* @returns {Object} The the dequeued item.
|
23069
22916
|
*/
|
23070
|
-
|
23071
|
-
|
23072
|
-
|
23073
|
-
function internalCut(a1i, a2i, pArray) {
|
23074
|
-
// Make sure vertex is valid
|
23075
|
-
if (!validateVertex(a1i, pArray)) {
|
23076
|
-
return a1i;
|
22917
|
+
Queue.prototype.dequeue = function() {
|
22918
|
+
if (this._length === 0) {
|
22919
|
+
return undefined;
|
23077
22920
|
}
|
23078
22921
|
|
23079
|
-
|
23080
|
-
var
|
23081
|
-
var
|
23082
|
-
|
23083
|
-
|
23084
|
-
// Define side and cut vectors
|
23085
|
-
var before = CesiumMath.mod(a1i - 1, length);
|
23086
|
-
if (!validateVertex(before, pArray)) {
|
23087
|
-
return before;
|
23088
|
-
}
|
22922
|
+
var array = this._array;
|
22923
|
+
var offset = this._offset;
|
22924
|
+
var item = array[offset];
|
22925
|
+
array[offset] = undefined;
|
23089
22926
|
|
23090
|
-
|
23091
|
-
if (
|
23092
|
-
|
22927
|
+
offset++;
|
22928
|
+
if ((offset > 10) && (offset * 2 > array.length)) {
|
22929
|
+
//compact array
|
22930
|
+
this._array = array.slice(offset);
|
22931
|
+
offset = 0;
|
23093
22932
|
}
|
23094
22933
|
|
23095
|
-
|
23096
|
-
|
23097
|
-
var cut = Cartesian2.subtract(a2Position, a1Position, cutScratch);
|
23098
|
-
|
23099
|
-
var leftEdgeCutZ = crossZ(s1, cut);
|
23100
|
-
var rightEdgeCutZ = crossZ(s2, cut);
|
22934
|
+
this._offset = offset;
|
22935
|
+
this._length--;
|
23101
22936
|
|
23102
|
-
|
23103
|
-
|
23104
|
-
} else if (rightEdgeCutZ === 0.0) { // cut is parallel to (a1i + 1, a1i) edge
|
23105
|
-
return isInternalToParallelSide(s2, cut) ? INTERNAL : EXTERNAL;
|
23106
|
-
} else {
|
23107
|
-
var z = crossZ(s1, s2);
|
23108
|
-
if (z < 0.0) { // angle at a1i is less than 180 degrees
|
23109
|
-
return leftEdgeCutZ < 0.0 && rightEdgeCutZ > 0.0 ? INTERNAL : EXTERNAL; // Cut is in-between sides
|
23110
|
-
} else if (z > 0.0) { // angle at a1i is greater than 180 degrees
|
23111
|
-
return leftEdgeCutZ > 0.0 && rightEdgeCutZ < 0.0 ? EXTERNAL : INTERNAL; // Cut is in-between sides
|
23112
|
-
}
|
23113
|
-
}
|
23114
|
-
}
|
22937
|
+
return item;
|
22938
|
+
};
|
23115
22939
|
|
23116
22940
|
/**
|
23117
|
-
*
|
23118
|
-
* Do not include number === n1 or number === n2.
|
23119
|
-
* Do include n1 === n2 === number.
|
23120
|
-
*
|
23121
|
-
* @param {Number} number The number tested.
|
23122
|
-
* @param {Number} n1 First bound.
|
23123
|
-
* @param {Number} n2 Secound bound.
|
23124
|
-
* @returns {Boolean} number is between n1 and n2.
|
22941
|
+
* Returns the item at the front of the queue. Returns undefined if the queue is empty.
|
23125
22942
|
*
|
23126
|
-
* @
|
22943
|
+
* @returns {Object} The item at the front of the queue.
|
23127
22944
|
*/
|
23128
|
-
function
|
23129
|
-
|
23130
|
-
|
23131
|
-
|
23132
|
-
var sqrEpsilon = CesiumMath.EPSILON14;
|
23133
|
-
var eScratch = new Cartesian2();
|
23134
|
-
|
23135
|
-
function linesIntersection(p0, d0, p1, d1) {
|
23136
|
-
var e = Cartesian2.subtract(p1, p0, eScratch);
|
23137
|
-
var cross = d0.x * d1.y - d0.y * d1.x;
|
23138
|
-
var sqrCross = cross * cross;
|
23139
|
-
var sqrLen0 = Cartesian2.magnitudeSquared(d0);
|
23140
|
-
var sqrLen1 = Cartesian2.magnitudeSquared(d1);
|
23141
|
-
if (sqrCross > sqrEpsilon * sqrLen0 * sqrLen1) {
|
23142
|
-
// lines of the segments are not parallel
|
23143
|
-
var s = (e.x * d1.y - e.y * d1.x) / cross;
|
23144
|
-
return Cartesian2.add(p0, Cartesian2.multiplyByScalar(d0, s, eScratch), eScratch);
|
22945
|
+
Queue.prototype.peek = function() {
|
22946
|
+
if (this._length === 0) {
|
22947
|
+
return undefined;
|
23145
22948
|
}
|
23146
22949
|
|
23147
|
-
|
23148
|
-
|
23149
|
-
}
|
22950
|
+
return this._array[this._offset];
|
22951
|
+
};
|
23150
22952
|
|
23151
22953
|
/**
|
23152
|
-
*
|
23153
|
-
*
|
23154
|
-
* @param {Cartesian2} a1 Position of first vertex.
|
23155
|
-
* @param {Cartesian2} a2 Position of second vertex.
|
23156
|
-
* @param {Array} pArray Array of <code>{ position, index }</code> objects representing polygon.
|
23157
|
-
* @returns {Boolean} The segment between a1 and a2 intersect another polygon side.
|
22954
|
+
* Check whether this queue contains the specified item.
|
23158
22955
|
*
|
23159
|
-
* @
|
22956
|
+
* @param {Object} item The item to search for.
|
23160
22957
|
*/
|
23161
|
-
|
23162
|
-
|
23163
|
-
|
23164
|
-
function intersectsSide(a1, a2, pArray) {
|
23165
|
-
var aDirection = Cartesian2.subtract(a2, a1, aDirectionScratch);
|
23166
|
-
|
23167
|
-
var length = pArray.length;
|
23168
|
-
for (var i = 0; i < length; i++) {
|
23169
|
-
var b1 = pArray[i].position;
|
23170
|
-
var b2 = pArray[CesiumMath.mod(i + 1, length)].position;
|
23171
|
-
|
23172
|
-
// If there's a duplicate point, there's no intersection here.
|
23173
|
-
if (Cartesian2.equals(a1, b1) || Cartesian2.equals(a2, b2) || Cartesian2.equals(a1, b2) || Cartesian2.equals(a2, b1)) {
|
23174
|
-
continue;
|
23175
|
-
}
|
23176
|
-
|
23177
|
-
var bDirection = Cartesian2.subtract(b2, b1, bDirectionScratch);
|
23178
|
-
var intersection = linesIntersection(a1, aDirection, b1, bDirection);
|
23179
|
-
if (!defined(intersection)) {
|
23180
|
-
continue;
|
23181
|
-
}
|
23182
|
-
|
23183
|
-
// If intersection is on an endpoint, count no intersection
|
23184
|
-
if (Cartesian2.equals(intersection, a1) || Cartesian2.equals(intersection, a2) || Cartesian2.equals(intersection, b1) || Cartesian2.equals(intersection, b2)) {
|
23185
|
-
continue;
|
23186
|
-
}
|
23187
|
-
|
23188
|
-
// Is intersection point between segments?
|
23189
|
-
var intX = intersection.x;
|
23190
|
-
var intY = intersection.y;
|
23191
|
-
var intersects = isBetween(intX, a1.x, a2.x) && isBetween(intY, a1.y, a2.y) && isBetween(intX, b1.x, b2.x) && isBetween(intY, b1.y, b2.y);
|
23192
|
-
|
23193
|
-
// If intersecting, the cut is not clean
|
23194
|
-
if (intersects) {
|
23195
|
-
return true;
|
23196
|
-
}
|
23197
|
-
}
|
23198
|
-
return false;
|
23199
|
-
}
|
22958
|
+
Queue.prototype.contains = function(item) {
|
22959
|
+
return this._array.indexOf(item) !== -1;
|
22960
|
+
};
|
23200
22961
|
|
23201
|
-
|
23202
|
-
|
22962
|
+
/**
|
22963
|
+
* Remove all items from the queue.
|
22964
|
+
*/
|
22965
|
+
Queue.prototype.clear = function() {
|
22966
|
+
this._array.length = this._offset = this._length = 0;
|
22967
|
+
};
|
23203
22968
|
|
23204
22969
|
/**
|
23205
|
-
*
|
23206
|
-
*
|
23207
|
-
* @param {Number} a1i Index of first vertex.
|
23208
|
-
* @param {Number} a2i Index of second vertex.
|
23209
|
-
* @param {Array} pArray Array of <code>{ position, index }</code> objects representing the polygon.
|
23210
|
-
* @returns {Number} If CLEAN_CUT, a cut from the first vertex to the second is internal and does not cross any other sides.
|
23211
|
-
* If INVALID_CUT, then the vertices were valid but a cut could not be made. If the value is greater than or equal to zero,
|
23212
|
-
* then the value is the index of an invalid vertex.
|
22970
|
+
* Sort the items in the queue in-place.
|
23213
22971
|
*
|
23214
|
-
* @
|
22972
|
+
* @param {Queue~Comparator} compareFunction A function that defines the sort order.
|
23215
22973
|
*/
|
23216
|
-
function
|
23217
|
-
|
23218
|
-
|
23219
|
-
|
23220
|
-
|
23221
|
-
|
23222
|
-
var internalCut21 = internalCut(a2i, a1i, pArray);
|
23223
|
-
if (internalCut21 >= 0) {
|
23224
|
-
return internalCut21;
|
23225
|
-
}
|
23226
|
-
|
23227
|
-
if (internalCut12 === INTERNAL && internalCut21 === INTERNAL &&
|
23228
|
-
!intersectsSide(pArray[a1i].position, pArray[a2i].position, pArray) &&
|
23229
|
-
!Cartesian2.equals(pArray[a1i].position, pArray[a2i].position)) {
|
23230
|
-
return CLEAN_CUT;
|
22974
|
+
Queue.prototype.sort = function(compareFunction) {
|
22975
|
+
if (this._offset > 0) {
|
22976
|
+
//compact array
|
22977
|
+
this._array = this._array.slice(this._offset);
|
22978
|
+
this._offset = 0;
|
23231
22979
|
}
|
23232
22980
|
|
23233
|
-
|
23234
|
-
}
|
23235
|
-
|
23236
|
-
function triangleInLine(pArray) {
|
23237
|
-
// Get two sides. If they're parallel, so is the last.
|
23238
|
-
return indexedEdgeCrossZ(1, 2, 0, pArray) === 0.0;
|
23239
|
-
}
|
22981
|
+
this._array.sort(compareFunction);
|
22982
|
+
};
|
23240
22983
|
|
23241
22984
|
/**
|
23242
|
-
*
|
23243
|
-
*
|
23244
|
-
* then continues to "chop" the two resulting polygons.
|
23245
|
-
*
|
23246
|
-
* @param {Array} nodeArray Array of <code>{ position, index }</code> objects representing polygon
|
23247
|
-
* @returns {Number[]} Index array representing triangles that fill the polygon
|
22985
|
+
* A function used to compare two items while sorting a queue.
|
22986
|
+
* @callback Queue~Comparator
|
23248
22987
|
*
|
23249
|
-
* @
|
22988
|
+
* @param {Object} a An item in the array.
|
22989
|
+
* @param {Object} b An item in the array.
|
22990
|
+
* @returns {Number} Returns a negative value if <code>a</code> is less than <code>b</code>,
|
22991
|
+
* a positive value if <code>a</code> is greater than <code>b</code>, or
|
22992
|
+
* 0 if <code>a</code> is equal to <code>b</code>.
|
23250
22993
|
*
|
23251
|
-
* @
|
22994
|
+
* @example
|
22995
|
+
* function compareNumbers(a, b) {
|
22996
|
+
* return a - b;
|
22997
|
+
* }
|
23252
22998
|
*/
|
23253
|
-
function randomChop(nodeArray) {
|
23254
|
-
// Determine & verify number of vertices
|
23255
|
-
var numVertices = nodeArray.length;
|
23256
|
-
|
23257
|
-
// Is it already a triangle?
|
23258
|
-
if (numVertices === 3) {
|
23259
|
-
// Only return triangle if it has area (not a line)
|
23260
|
-
if (!triangleInLine(nodeArray)) {
|
23261
|
-
return [nodeArray[0].index, nodeArray[1].index, nodeArray[2].index];
|
23262
|
-
}
|
23263
22999
|
|
23264
|
-
|
23265
|
-
|
23266
|
-
} else if (nodeArray.length < 3) {
|
23267
|
-
throw new DeveloperError('Invalid polygon: must have at least three vertices.');
|
23268
|
-
}
|
23269
|
-
|
23270
|
-
// Search for clean cut
|
23271
|
-
var tries = 0;
|
23272
|
-
var maxTries = nodeArray.length * 10;
|
23273
|
-
|
23274
|
-
var cutResult = INVALID_CUT;
|
23275
|
-
var index1;
|
23276
|
-
var index2;
|
23277
|
-
|
23278
|
-
while (cutResult < CLEAN_CUT && tries++ < maxTries) {
|
23279
|
-
// Generate random indices
|
23280
|
-
index1 = getRandomIndex(nodeArray.length);
|
23281
|
-
index2 = index1 + 1;
|
23282
|
-
while (Math.abs(index1 - index2) < 2 || Math.abs(index1 - index2) > nodeArray.length - 2) {
|
23283
|
-
index2 = getRandomIndex(nodeArray.length);
|
23284
|
-
}
|
23000
|
+
return Queue;
|
23001
|
+
});
|
23285
23002
|
|
23286
|
-
|
23287
|
-
|
23288
|
-
|
23289
|
-
|
23290
|
-
|
23291
|
-
|
23003
|
+
/*global define*/
|
23004
|
+
define('Core/WindingOrder',[
|
23005
|
+
'../Renderer/WebGLConstants',
|
23006
|
+
'./freezeObject'
|
23007
|
+
], function(
|
23008
|
+
WebGLConstants,
|
23009
|
+
freezeObject) {
|
23010
|
+
'use strict';
|
23292
23011
|
|
23293
|
-
|
23294
|
-
|
23012
|
+
/**
|
23013
|
+
* Winding order defines the order of vertices for a triangle to be considered front-facing.
|
23014
|
+
*
|
23015
|
+
* @exports WindingOrder
|
23016
|
+
*/
|
23017
|
+
var WindingOrder = {
|
23018
|
+
/**
|
23019
|
+
* Vertices are in clockwise order.
|
23020
|
+
*
|
23021
|
+
* @type {Number}
|
23022
|
+
* @constant
|
23023
|
+
*/
|
23024
|
+
CLOCKWISE : WebGLConstants.CW,
|
23295
23025
|
|
23296
|
-
|
23297
|
-
|
23298
|
-
|
23026
|
+
/**
|
23027
|
+
* Vertices are in counter-clockwise order.
|
23028
|
+
*
|
23029
|
+
* @type {Number}
|
23030
|
+
* @constant
|
23031
|
+
*/
|
23032
|
+
COUNTER_CLOCKWISE : WebGLConstants.CCW,
|
23299
23033
|
|
23300
|
-
|
23301
|
-
|
23302
|
-
|
23303
|
-
|
23304
|
-
|
23305
|
-
|
23034
|
+
/**
|
23035
|
+
* @private
|
23036
|
+
*/
|
23037
|
+
validate : function(windingOrder) {
|
23038
|
+
return windingOrder === WindingOrder.CLOCKWISE ||
|
23039
|
+
windingOrder === WindingOrder.COUNTER_CLOCKWISE;
|
23306
23040
|
}
|
23041
|
+
};
|
23307
23042
|
|
23308
|
-
|
23309
|
-
|
23310
|
-
|
23043
|
+
return freezeObject(WindingOrder);
|
23044
|
+
});
|
23045
|
+
/*global define*/
|
23046
|
+
define('Core/PolygonPipeline',[
|
23047
|
+
'../ThirdParty/earcut-2.1.1',
|
23048
|
+
'./Cartesian2',
|
23049
|
+
'./Cartesian3',
|
23050
|
+
'./ComponentDatatype',
|
23051
|
+
'./defaultValue',
|
23052
|
+
'./defined',
|
23053
|
+
'./DeveloperError',
|
23054
|
+
'./Ellipsoid',
|
23055
|
+
'./EllipsoidTangentPlane',
|
23056
|
+
'./Geometry',
|
23057
|
+
'./GeometryAttribute',
|
23058
|
+
'./Math',
|
23059
|
+
'./pointInsideTriangle',
|
23060
|
+
'./PrimitiveType',
|
23061
|
+
'./Queue',
|
23062
|
+
'./WindingOrder'
|
23063
|
+
], function(
|
23064
|
+
earcut,
|
23065
|
+
Cartesian2,
|
23066
|
+
Cartesian3,
|
23067
|
+
ComponentDatatype,
|
23068
|
+
defaultValue,
|
23069
|
+
defined,
|
23070
|
+
DeveloperError,
|
23071
|
+
Ellipsoid,
|
23072
|
+
EllipsoidTangentPlane,
|
23073
|
+
Geometry,
|
23074
|
+
GeometryAttribute,
|
23075
|
+
CesiumMath,
|
23076
|
+
pointInsideTriangle,
|
23077
|
+
PrimitiveType,
|
23078
|
+
Queue,
|
23079
|
+
WindingOrder) {
|
23080
|
+
'use strict';
|
23311
23081
|
|
23312
23082
|
var scaleToGeodeticHeightN = new Cartesian3();
|
23313
23083
|
var scaleToGeodeticHeightP = new Cartesian3();
|
@@ -23317,24 +23087,6 @@ define('Core/PolygonPipeline',[
|
|
23317
23087
|
*/
|
23318
23088
|
var PolygonPipeline = {};
|
23319
23089
|
|
23320
|
-
/**
|
23321
|
-
* Cleans up a simple polygon by removing duplicate adjacent positions and making
|
23322
|
-
* the first position not equal the last position.
|
23323
|
-
*
|
23324
|
-
* @exception {DeveloperError} At least three positions are required.
|
23325
|
-
*/
|
23326
|
-
PolygonPipeline.removeDuplicates = function(positions) {
|
23327
|
-
if (!defined(positions)) {
|
23328
|
-
throw new DeveloperError('positions is required.');
|
23329
|
-
}
|
23330
|
-
|
23331
|
-
var cleanedPositions = PolylinePipeline.removeDuplicates(positions);
|
23332
|
-
if (Cartesian3.equals(cleanedPositions[0], cleanedPositions[cleanedPositions.length - 1])) {
|
23333
|
-
return cleanedPositions.slice(1);
|
23334
|
-
}
|
23335
|
-
return cleanedPositions;
|
23336
|
-
};
|
23337
|
-
|
23338
23090
|
/**
|
23339
23091
|
* @exception {DeveloperError} At least three positions are required.
|
23340
23092
|
*/
|
@@ -23372,31 +23124,17 @@ define('Core/PolygonPipeline',[
|
|
23372
23124
|
/**
|
23373
23125
|
* Triangulate a polygon.
|
23374
23126
|
*
|
23375
|
-
* @param {Cartesian2[]} positions
|
23376
|
-
* @
|
23377
|
-
*
|
23378
|
-
* @exception {DeveloperError} At least three positions are required.
|
23127
|
+
* @param {Cartesian2[]} positions Cartesian2 array containing the vertices of the polygon
|
23128
|
+
* @param {Number[]} [holes] An array of the staring indices of the holes.
|
23129
|
+
* @returns {Number[]} Index array representing triangles that fill the polygon
|
23379
23130
|
*/
|
23380
|
-
PolygonPipeline.triangulate = function(positions) {
|
23131
|
+
PolygonPipeline.triangulate = function(positions, holes) {
|
23381
23132
|
if (!defined(positions)) {
|
23382
23133
|
throw new DeveloperError('positions is required.');
|
23383
23134
|
}
|
23384
|
-
if (positions.length < 3) {
|
23385
|
-
throw new DeveloperError('At least three positions are required.');
|
23386
|
-
}
|
23387
23135
|
|
23388
|
-
var
|
23389
|
-
|
23390
|
-
var nodeArray = [];
|
23391
|
-
for ( var i = 0; i < length; ++i) {
|
23392
|
-
nodeArray[i] = {
|
23393
|
-
position : positions[i],
|
23394
|
-
index : i
|
23395
|
-
};
|
23396
|
-
}
|
23397
|
-
|
23398
|
-
// Recursive chop
|
23399
|
-
return randomChop(nodeArray);
|
23136
|
+
var flattenedPositions = Cartesian2.packArray(positions);
|
23137
|
+
return earcut(flattenedPositions, holes, 2);
|
23400
23138
|
};
|
23401
23139
|
|
23402
23140
|
var subdivisionV0Scratch = new Cartesian3();
|
@@ -23555,13 +23293,13 @@ define('Core/PolygonPipeline',[
|
|
23555
23293
|
/**
|
23556
23294
|
* Scales each position of a geometry's position attribute to a height, in place.
|
23557
23295
|
*
|
23558
|
-
* @param {
|
23559
|
-
* @param {Number} [height=0.0] The desired height to add to the positions
|
23296
|
+
* @param {Number[]} positions The array of numbers representing the positions to be scaled
|
23297
|
+
* @param {Number} [height=0.0] The desired height to add to the positions
|
23560
23298
|
* @param {Ellipsoid} [ellipsoid=Ellipsoid.WGS84] The ellipsoid on which the positions lie.
|
23561
23299
|
* @param {Boolean} [scaleToSurface=true] <code>true</code> if the positions need to be scaled to the surface before the height is added.
|
23562
|
-
* @returns {
|
23300
|
+
* @returns {Number[]} The input array of positions, scaled to height
|
23563
23301
|
*/
|
23564
|
-
PolygonPipeline.scaleToGeodeticHeight = function(
|
23302
|
+
PolygonPipeline.scaleToGeodeticHeight = function(positions, height, ellipsoid, scaleToSurface) {
|
23565
23303
|
ellipsoid = defaultValue(ellipsoid, Ellipsoid.WGS84);
|
23566
23304
|
|
23567
23305
|
var n = scaleToGeodeticHeightN;
|
@@ -23570,8 +23308,7 @@ define('Core/PolygonPipeline',[
|
|
23570
23308
|
height = defaultValue(height, 0.0);
|
23571
23309
|
scaleToSurface = defaultValue(scaleToSurface, true);
|
23572
23310
|
|
23573
|
-
if (defined(
|
23574
|
-
var positions = geometry.attributes.position.values;
|
23311
|
+
if (defined(positions)) {
|
23575
23312
|
var length = positions.length;
|
23576
23313
|
|
23577
23314
|
for ( var i = 0; i < length; i += 3) {
|
@@ -23594,51 +23331,7 @@ define('Core/PolygonPipeline',[
|
|
23594
23331
|
}
|
23595
23332
|
}
|
23596
23333
|
|
23597
|
-
return
|
23598
|
-
};
|
23599
|
-
|
23600
|
-
/**
|
23601
|
-
* Given a polygon defined by an outer ring with one or more inner rings (holes), return a single list of points representing
|
23602
|
-
* a polygon defined by the outer ring with the inner holes removed.
|
23603
|
-
*
|
23604
|
-
* @param {Cartesian2[]} outerRing An array of Cartesian points defining the outer boundary of the polygon.
|
23605
|
-
* @param {Cartesian2[]} innerRings An array of arrays of Cartesian points, where each array represents a hole in the polygon.
|
23606
|
-
* @returns {Cartesian2[]} A single list of Cartesian points defining the polygon, including the eliminated inner ring.
|
23607
|
-
*
|
23608
|
-
* @exception {DeveloperError} <code>outerRing</code> must not be empty.
|
23609
|
-
*
|
23610
|
-
* @example
|
23611
|
-
* // Simplifying a polygon with multiple holes.
|
23612
|
-
* outerRing = Cesium.PolygonPipeline.eliminateHoles(outerRing, innerRings);
|
23613
|
-
* polygon.positions = outerRing;
|
23614
|
-
*/
|
23615
|
-
PolygonPipeline.eliminateHoles = function(outerRing, innerRings, ellipsoid) {
|
23616
|
-
if (!defined(outerRing)) {
|
23617
|
-
throw new DeveloperError('outerRing is required.');
|
23618
|
-
}
|
23619
|
-
if (outerRing.length === 0) {
|
23620
|
-
throw new DeveloperError('outerRing must not be empty.');
|
23621
|
-
}
|
23622
|
-
if (!defined(innerRings)) {
|
23623
|
-
throw new DeveloperError('innerRings is required.');
|
23624
|
-
}
|
23625
|
-
|
23626
|
-
ellipsoid = defaultValue(ellipsoid, Ellipsoid.WGS84);
|
23627
|
-
|
23628
|
-
var innerRingsCopy = [];
|
23629
|
-
for ( var i = 0; i < innerRings.length; i++) {
|
23630
|
-
var innerRing = [];
|
23631
|
-
for ( var j = 0; j < innerRings[i].length; j++) {
|
23632
|
-
innerRing.push(Cartesian3.clone(innerRings[i][j]));
|
23633
|
-
}
|
23634
|
-
innerRingsCopy.push(innerRing);
|
23635
|
-
}
|
23636
|
-
|
23637
|
-
var newPolygonVertices = outerRing;
|
23638
|
-
while (innerRingsCopy.length > 0) {
|
23639
|
-
newPolygonVertices = eliminateHole(newPolygonVertices, innerRingsCopy, ellipsoid);
|
23640
|
-
}
|
23641
|
-
return newPolygonVertices;
|
23334
|
+
return positions;
|
23642
23335
|
};
|
23643
23336
|
|
23644
23337
|
return PolygonPipeline;
|
@@ -23649,15 +23342,17 @@ define('Core/Matrix2',[
|
|
23649
23342
|
'./Cartesian2',
|
23650
23343
|
'./defaultValue',
|
23651
23344
|
'./defined',
|
23345
|
+
'./defineProperties',
|
23652
23346
|
'./DeveloperError',
|
23653
23347
|
'./freezeObject'
|
23654
23348
|
], function(
|
23655
23349
|
Cartesian2,
|
23656
23350
|
defaultValue,
|
23657
23351
|
defined,
|
23352
|
+
defineProperties,
|
23658
23353
|
DeveloperError,
|
23659
23354
|
freezeObject) {
|
23660
|
-
|
23355
|
+
'use strict';
|
23661
23356
|
|
23662
23357
|
/**
|
23663
23358
|
* A 2x2 matrix, indexable as a column-major order array.
|
@@ -24502,6 +24197,20 @@ define('Core/Matrix2',[
|
|
24502
24197
|
*/
|
24503
24198
|
Matrix2.COLUMN1ROW1 = 3;
|
24504
24199
|
|
24200
|
+
defineProperties(Matrix2.prototype, {
|
24201
|
+
/**
|
24202
|
+
* Gets the number of items in the collection.
|
24203
|
+
* @memberof Matrix2.prototype
|
24204
|
+
*
|
24205
|
+
* @type {Number}
|
24206
|
+
*/
|
24207
|
+
length : {
|
24208
|
+
get : function() {
|
24209
|
+
return Matrix2.packedLength;
|
24210
|
+
}
|
24211
|
+
}
|
24212
|
+
});
|
24213
|
+
|
24505
24214
|
/**
|
24506
24215
|
* Duplicates the provided Matrix2 instance.
|
24507
24216
|
*
|
@@ -24569,7 +24278,7 @@ define('Core/RectangleGeometryLibrary',[
|
|
24569
24278
|
CesiumMath,
|
24570
24279
|
Matrix2,
|
24571
24280
|
Rectangle) {
|
24572
|
-
|
24281
|
+
'use strict';
|
24573
24282
|
|
24574
24283
|
var cos = Math.cos;
|
24575
24284
|
var sin = Math.sin;
|
@@ -24763,7 +24472,7 @@ define('Core/RectangleOutlineGeometry',[
|
|
24763
24472
|
PrimitiveType,
|
24764
24473
|
Rectangle,
|
24765
24474
|
RectangleGeometryLibrary) {
|
24766
|
-
|
24475
|
+
'use strict';
|
24767
24476
|
|
24768
24477
|
var bottomBoundingSphere = new BoundingSphere();
|
24769
24478
|
var topBoundingSphere = new BoundingSphere();
|
@@ -24850,13 +24559,11 @@ define('Core/RectangleOutlineGeometry',[
|
|
24850
24559
|
var height = options.height;
|
24851
24560
|
var width = options.width;
|
24852
24561
|
|
24853
|
-
|
24854
|
-
var topPositions = geo.attributes.position.values;
|
24562
|
+
var topPositions = PolygonPipeline.scaleToGeodeticHeight(geo.attributes.position.values, maxHeight, ellipsoid, false);
|
24855
24563
|
var length = topPositions.length;
|
24856
24564
|
var positions = new Float64Array(length*2);
|
24857
24565
|
positions.set(topPositions);
|
24858
|
-
|
24859
|
-
var bottomPositions = geo.attributes.position.values;
|
24566
|
+
var bottomPositions = PolygonPipeline.scaleToGeodeticHeight(geo.attributes.position.values, minHeight, ellipsoid);
|
24860
24567
|
positions.set(bottomPositions, length);
|
24861
24568
|
geo.attributes.position.values = positions;
|
24862
24569
|
|
@@ -25043,7 +24750,7 @@ define('Core/RectangleOutlineGeometry',[
|
|
25043
24750
|
* Computes the geometric representation of an outline of an rectangle, including its vertices, indices, and a bounding sphere.
|
25044
24751
|
*
|
25045
24752
|
* @param {RectangleOutlineGeometry} rectangleGeometry A description of the rectangle outline.
|
25046
|
-
* @returns {Geometry} The computed vertices and indices.
|
24753
|
+
* @returns {Geometry|undefined} The computed vertices and indices.
|
25047
24754
|
*
|
25048
24755
|
* @exception {DeveloperError} Rotated rectangle is invalid.
|
25049
24756
|
*/
|
@@ -25059,6 +24766,11 @@ define('Core/RectangleOutlineGeometry',[
|
|
25059
24766
|
var geometry;
|
25060
24767
|
var boundingSphere;
|
25061
24768
|
rectangle = rectangleGeometry._rectangle;
|
24769
|
+
|
24770
|
+
if ((CesiumMath.equalsEpsilon(rectangle.north, rectangle.south, CesiumMath.EPSILON10) ||
|
24771
|
+
(CesiumMath.equalsEpsilon(rectangle.east, rectangle.west, CesiumMath.EPSILON10)))) {
|
24772
|
+
return undefined;
|
24773
|
+
}
|
25062
24774
|
if (defined(extrudedHeight)) {
|
25063
24775
|
geometry = constructExtrudedRectangle(options);
|
25064
24776
|
var topBS = BoundingSphere.fromRectangle3D(rectangle, ellipsoid, surfaceHeight, topBoundingSphere);
|
@@ -25066,7 +24778,7 @@ define('Core/RectangleOutlineGeometry',[
|
|
25066
24778
|
boundingSphere = BoundingSphere.union(topBS, bottomBS);
|
25067
24779
|
} else {
|
25068
24780
|
geometry = constructRectangle(options);
|
25069
|
-
geometry = PolygonPipeline.scaleToGeodeticHeight(geometry, surfaceHeight, ellipsoid, false);
|
24781
|
+
geometry.attributes.position.values = PolygonPipeline.scaleToGeodeticHeight(geometry.attributes.position.values, surfaceHeight, ellipsoid, false);
|
25070
24782
|
boundingSphere = BoundingSphere.fromRectangle3D(rectangle, ellipsoid, surfaceHeight);
|
25071
24783
|
}
|
25072
24784
|
|
@@ -25092,7 +24804,7 @@ define('Workers/createRectangleOutlineGeometry',[
|
|
25092
24804
|
Ellipsoid,
|
25093
24805
|
Rectangle,
|
25094
24806
|
RectangleOutlineGeometry) {
|
25095
|
-
|
24807
|
+
'use strict';
|
25096
24808
|
|
25097
24809
|
function createRectangleOutlineGeometry(rectangleGeometry, offset) {
|
25098
24810
|
if (defined(offset)) {
|