<?xml version="1.0" encoding="utf-8" ?>
<!--

Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

-->
<Graphic flm:originalName="VScrollBar/VScrollBar_thumbSkin" version="2.0" afx:className="VScrollBar_thumbSkin" afx:baseClassName="flash.display.Sprite" xmlns:afx="http://ns.apache.org/flex/2012" xmlns:flm="http://ns.adobe.com/flame/2008" xmlns="http://ns.adobe.com/fxg/2008">
  <Group>
    <Group aaa:type="layer" aaa:userLabel="hitArea" xmlns:aaa="http://ns.adobe.com/fxg/2008/dt">
      <Group>
        <Path scaleX="2" x="-16" data="M16 0 16 52 14 52 14 0 16 0">
          <fill>
            <SolidColor color="#FF0000" alpha="0"/>
          </fill>
        </Path>
      </Group>
    </Group>
    <Group aaa:type="layer" aaa:userLabel="fill" xmlns:aaa="http://ns.adobe.com/fxg/2008/dt">
      <Path data="M11 1Q12 1 12 2L12 50Q12 50.4 11.7 50.7 11.4 51 11 51L4 51Q3 51 3 50L3 2Q3 1 4 1L11 1">
        <fill>
          <LinearGradient x="9.5" y="1" scaleX="49.5" rotation="90">
            <GradientEntry ratio="0" color="#D0D1AB"/>
            <GradientEntry ratio="1" color="#ABAC8C"/>
          </LinearGradient>
        </fill>
      </Path>
    </Group>
    <Group aaa:type="layer" aaa:userLabel="vHighlights" xmlns:aaa="http://ns.adobe.com/fxg/2008/dt">
      <Path data="M4 1 4 51 3 51 3 1 4 1">
        <fill>
          <SolidColor color="#FFFFFF"/>
        </fill>
      </Path>
      <Path data="M12 1 12 51 11 51 11 1 12 1">
        <fill>
          <SolidColor color="#82826B"/>
        </fill>
      </Path>
    </Group>
    <Group aaa:type="layer" aaa:userLabel="HHighlights" xmlns:aaa="http://ns.adobe.com/fxg/2008/dt">
      <Path data="M11 2 4 2 4 1 11 1 11 2">
        <fill>
          <SolidColor color="#FFFFFF"/>
        </fill>
      </Path>
      <Path data="M11 51 4 51 4 50 11 50 11 51">
        <fill>
          <SolidColor color="#82826B"/>
        </fill>
      </Path>
    </Group>
    <Group aaa:type="layer" aaa:userLabel="border" xmlns:aaa="http://ns.adobe.com/fxg/2008/dt">
      <Path data="M13 2 13 50Q13 50.85 12.4 51.4 11.85 52 11 52L4 52Q3.15 52 2.55 51.4 2 50.85 2 50L2 2Q2 1.15 2.55 0.55 3.15 0 4 0L11 0Q11.85 0 12.4 0.55 13 1.15 13 2M11 1 4 1Q3 1 3 2L3 50Q3 51 4 51L11 51Q11.4 51 11.7 50.7 12 50.4 12 50L12 2Q12 1 11 1">
        <fill>
          <SolidColor color="#5D5D4D"/>
        </fill>
      </Path>
    </Group>
    <Group aaa:type="layer" aaa:userLabel="transitions" xmlns:aaa="http://ns.adobe.com/fxg/2008/dt"/>
    <Group aaa:type="layer" aaa:userLabel="states" xmlns:aaa="http://ns.adobe.com/fxg/2008/dt"/>
  </Group>
</Graphic>