// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Note that this differs from the one in components/vector_icons in that it is
// optimized for display at 20dip.
CANVAS_DIMENSIONS, 40,
MOVE_TO, 20, 4,
CUBIC_TO, 11.17f, 4, 4, 11.17f, 4, 20,
R_CUBIC_TO, 0, 8.83f, 7.17f, 16, 16, 16,
R_CUBIC_TO, 8.83f, 0, 16, -7.17f, 16, -16,
CUBIC_TO_SHORTHAND, 28.83f, 4, 20, 4,
CLOSE,
R_MOVE_TO, -3.2f, 24,
R_LINE_TO, -8, -8,
R_LINE_TO, 2.26f, -2.26f,
R_LINE_TO, 5.74f, 5.73f,
R_LINE_TO, 12.14f, -12.14f,
LINE_TO, 31.2f, 13.6f,
LINE_TO, 16.8f, 28,
CLOSE

CANVAS_DIMENSIONS, 20,
MOVE_TO, 10, 2,
R_CUBIC_TO, -4.42f, 0, -8, 3.58f, -8, 8,
R_CUBIC_TO, 0, 4.42f, 3.58f, 8, 8, 8,
R_CUBIC_TO, 4.42f, 0, 8, -3.58f, 8, -8,
R_CUBIC_TO, 0, -4.42f, -3.58f, -8, -8, -8,
CLOSE,
MOVE_TO, 8.4f, 14,
R_LINE_TO, -4, -4,
R_LINE_TO, 1.13f, -1.13f,
LINE_TO, 8.4f, 11.74f,
R_LINE_TO, 6.07f, -6.07f,
LINE_TO, 15.6f, 6.8f,
LINE_TO, 8.4f, 14,
CLOSE
