<!--
 Copyright (C) 2014 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

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

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:height="64dp"
        android:width="64dp"
        android:viewportHeight="400"
        android:viewportWidth="400" >

    <group
        android:name="FirstLevelGroup"
        android:alpha="0.9"
        android:translateX="100.0"
        android:translateY="0.0" >
        <group
            android:name="SecondLevelGroup1"
            android:alpha="0.9"
            android:translateX="-100.0"
            android:translateY="50.0" >
            <path
                android:fillColor="#FF00FF00"
                android:pathData="@string/rectangle200" />

            <group
                android:name="ThridLevelGroup1"
                android:alpha="0.9"
                android:translateX="-100.0"
                android:translateY="50.0" >
                <path
                    android:fillColor="#FF0000FF"
                    android:pathData="@string/rectangle200" />
            </group>
            <group
                android:name="ThridLevelGroup2"
                android:alpha="0.8"
                android:translateX="100.0"
                android:translateY="50.0" >
                <path
                    android:fillColor="#FF000000"
                    android:pathData="@string/rectangle200" />
            </group>
        </group>
        <group
            android:name="SecondLevelGroup2"
            android:alpha="0.8"
            android:translateX="100.0"
            android:translateY="50.0" >
            <path
                android:fillColor="#FF0000FF"
                android:pathData="@string/rectangle200" />

            <group
                android:name="ThridLevelGroup3"
                android:alpha="0.9"
                android:translateX="-100.0"
                android:translateY="50.0" >
                <path
                    android:fillColor="#FFFF0000"
                    android:pathData="@string/rectangle200" />
            </group>
            <group
                android:name="ThridLevelGroup4"
                android:alpha="0.8"
                android:translateX="100.0"
                android:translateY="50.0" >
                <path
                    android:fillColor="#FF00FF00"
                    android:pathData="@string/rectangle200" />
            </group>
        </group>

        <path
            android:fillColor="#FFFF0000"
            android:pathData="@string/rectangle200" />
    </group>

</vector>