# -*- coding: utf-8 -*-
#
#  Copyright (C) 2018 by Maxim S. Barabash
#
#  This program is free software: you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation, either version 3 of the License, or
#  (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program.  If not, see <https://www.gnu.org/licenses/>.

PATTERN = {
  # 30 degree left diagonal pattern
  41: "SUkqABIAAACAMAYAwBwKCQEAEAD+AAQAAQAAAAAAAAAAAQMAAQAAAAgAAAABAQMAAQAAAAgA"
      "AAACAQMAAQAAAAEAAAADAQMAAQAAAAUAAAAGAQMAAQAAAAAAAAANAQIANwAAAOgAAAARAQQA"
      "AQAAAAgAAAASAQMAAQAAAAEAAAAVAQMAAQAAAAEAAAAWAQMAAQAAAEAAAAAXAQQAAQAAAAkA"
      "AAAaAQUAAQAAANgAAAAbAQUAAQAAAOAAAAAcAQMAAQAAAAEAAAAoAQMAAQAAAAIAAAAAAAAA"
      "SAAAAAEAAABIAAAAAQAAAC9ob21lL21heC9Qcm9qZWN0L3NrMS13eC9zcmMvdWMyL2Zvcm1h"
      "dHMvZmlnL3JjLzQxLnRpZgA=",
  # 30 degree right diagonal pattern
  42: "SUkqABAAAAADDDDAAwwwwBAA/gAEAAEAAAAAAAAAAAEDAAEAAAAIAAAAAQEDAAEAAAAIAAAA"
      "AgEDAAEAAAABAAAAAwEDAAEAAAABAAAABgEDAAEAAAAAAAAADQECADIAAADmAAAAEQEEAAEA"
      "AAAIAAAAEgEDAAEAAAABAAAAFQEDAAEAAAABAAAAFgEDAAEAAABAAAAAFwEEAAEAAAAIAAAA"
      "GgEFAAEAAADWAAAAGwEFAAEAAADeAAAAHAEDAAEAAAABAAAAKAEDAAEAAAACAAAAAAAAAEgA"
      "AAABAAAASAAAAAEAAAAvaG9tZS9tYXgvZ2l0L3NrMS10ZXN0L29sZC94ZmlnLzMvcGF0dGVy"
      "bnMvNDIudGlmAA==",
  # 30 degree crosshatch
  43: "SUkqABAAAADAMwwzwDMMMxAA/gAEAAEAAAAAAAAAAAEDAAEAAAAIAAAAAQEDAAEAAAAIAAAA"
      "AgEDAAEAAAABAAAAAwEDAAEAAAABAAAABgEDAAEAAAAAAAAADQECADIAAADmAAAAEQEEAAEA"
      "AAAIAAAAEgEDAAEAAAABAAAAFQEDAAEAAAABAAAAFgEDAAEAAABAAAAAFwEEAAEAAAAIAAAA"
      "GgEFAAEAAADWAAAAGwEFAAEAAADeAAAAHAEDAAEAAAABAAAAKAEDAAEAAAACAAAAAAAAAEgA"
      "AAABAAAASAAAAAEAAAAvaG9tZS9tYXgvZ2l0L3NrMS10ZXN0L29sZC94ZmlnLzMvcGF0dGVy"
      "bnMvNDMudGlmAA==",
  # 45 degree left diagonal pattern
  44: "SUkqABAAAACAQCAQCAQCARAA/gAEAAEAAAAAAAAAAAEDAAEAAAAIAAAAAQEDAAEAAAAIAAAA"
      "AgEDAAEAAAABAAAAAwEDAAEAAAABAAAABgEDAAEAAAAAAAAADQECADIAAADmAAAAEQEEAAEA"
      "AAAIAAAAEgEDAAEAAAABAAAAFQEDAAEAAAABAAAAFgEDAAEAAABAAAAAFwEEAAEAAAAIAAAA"
      "GgEFAAEAAADWAAAAGwEFAAEAAADeAAAAHAEDAAEAAAABAAAAKAEDAAEAAAACAAAAAAAAAEgA"
      "AAABAAAASAAAAAEAAAAvaG9tZS9tYXgvZ2l0L3NrMS10ZXN0L29sZC94ZmlnLzMvcGF0dGVy"
      "bnMvNDQudGlmAA==",
  # 45 degree right diagonal pattern
  45: "SUkqABAAAAABAgQIECBAgBAA/gAEAAEAAAAAAAAAAAEDAAEAAAAIAAAAAQEDAAEAAAAIAAAA"
      "AgEDAAEAAAABAAAAAwEDAAEAAAABAAAABgEDAAEAAAAAAAAADQECADIAAADmAAAAEQEEAAEA"
      "AAAIAAAAEgEDAAEAAAABAAAAFQEDAAEAAAABAAAAFgEDAAEAAABAAAAAFwEEAAEAAAAIAAAA"
      "GgEFAAEAAADWAAAAGwEFAAEAAADeAAAAHAEDAAEAAAABAAAAKAEDAAEAAAACAAAAAAAAAEgA"
      "AAABAAAASAAAAAEAAAAvaG9tZS9tYXgvZ2l0L3NrMS10ZXN0L29sZC94ZmlnLzMvcGF0dGVy"
      "bnMvNDUudGlmAA==",
  # 45 degree crosshatch
  46: "SUkqABAAAACAQSIUCBQiQRAA/gAEAAEAAAAAAAAAAAEDAAEAAAAIAAAAAQEDAAEAAAAIAAAA"
      "AgEDAAEAAAABAAAAAwEDAAEAAAABAAAABgEDAAEAAAAAAAAADQECADIAAADmAAAAEQEEAAEA"
      "AAAIAAAAEgEDAAEAAAABAAAAFQEDAAEAAAABAAAAFgEDAAEAAABAAAAAFwEEAAEAAAAIAAAA"
      "GgEFAAEAAADWAAAAGwEFAAEAAADeAAAAHAEDAAEAAAABAAAAKAEDAAEAAAACAAAAAAAAAEgA"
      "AAABAAAASAAAAAEAAAAvaG9tZS9tYXgvZ2l0L3NrMS10ZXN0L29sZC94ZmlnLzMvcGF0dGVy"
      "bnMvNDYudGlmAA==",
  # horizontal bricks
  47: "SUkqACgAAAAAgACAAIAAgACAAIAAgP//gACAAIAAgACAAIAAgAD//xAA/gAEAAEAAAAAAAAA"
      "AAEDAAEAAAAQAAAAAQEDAAEAAAAQAAAAAgEDAAEAAAABAAAAAwEDAAEAAAABAAAABgEDAAEA"
      "AAAAAAAADQECADIAAAD+AAAAEQEEAAEAAAAIAAAAEgEDAAEAAAABAAAAFQEDAAEAAAABAAAA"
      "FgEDAAEAAABAAAAAFwEEAAEAAAAgAAAAGgEFAAEAAADuAAAAGwEFAAEAAAD2AAAAHAEDAAEA"
      "AAABAAAAKAEDAAEAAAACAAAAAAAAAEgAAAABAAAASAAAAAEAAAAvaG9tZS9tYXgvZ2l0L3Nr"
      "MS10ZXN0L29sZC94ZmlnLzMvcGF0dGVybnMvNDcudGlmAA==",
  # vertical bricks
  48: "SUkqACgAAAD/gICAgICAgICAgICAgICAgP+AgICAgICAgICAgICAgBAA/gAEAAEAAAAAAAAA"
      "AAEDAAEAAAAQAAAAAQEDAAEAAAAQAAAAAgEDAAEAAAABAAAAAwEDAAEAAAABAAAABgEDAAEA"
      "AAAAAAAADQECADIAAAD+AAAAEQEEAAEAAAAIAAAAEgEDAAEAAAABAAAAFQEDAAEAAAABAAAA"
      "FgEDAAEAAABAAAAAFwEEAAEAAAAgAAAAGgEFAAEAAADuAAAAGwEFAAEAAAD2AAAAHAEDAAEA"
      "AAABAAAAKAEDAAEAAAACAAAAAAAAAEgAAAABAAAASAAAAAEAAAAvaG9tZS9tYXgvZ2l0L3Nr"
      "MS10ZXN0L29sZC94ZmlnLzMvcGF0dGVybnMvNDgudGlmAA==",
  # horizontal lines
  49: "SUkqABAAAAAAAAD/AAAAABAA/gAEAAEAAAAAAAAAAAEDAAEAAAAIAAAAAQEDAAEAAAAIAAAA"
      "AgEDAAEAAAABAAAAAwEDAAEAAAABAAAABgEDAAEAAAAAAAAADQECADIAAADmAAAAEQEEAAEA"
      "AAAIAAAAEgEDAAEAAAABAAAAFQEDAAEAAAABAAAAFgEDAAEAAABAAAAAFwEEAAEAAAAIAAAA"
      "GgEFAAEAAADWAAAAGwEFAAEAAADeAAAAHAEDAAEAAAABAAAAKAEDAAEAAAACAAAAAAAAAEgA"
      "AAABAAAASAAAAAEAAAAvaG9tZS9tYXgvZ2l0L3NrMS10ZXN0L29sZC94ZmlnLzMvcGF0dGVy"
      "bnMvNDkudGlmAA==",
  # vertical lines
  50: "SUkqABAAAAAQEBAQEBAQEBAA/gAEAAEAAAAAAAAAAAEDAAEAAAAIAAAAAQEDAAEAAAAIAAAA"
      "AgEDAAEAAAABAAAAAwEDAAEAAAABAAAABgEDAAEAAAAAAAAADQECADIAAADmAAAAEQEEAAEA"
      "AAAIAAAAEgEDAAEAAAABAAAAFQEDAAEAAAABAAAAFgEDAAEAAABAAAAAFwEEAAEAAAAIAAAA"
      "GgEFAAEAAADWAAAAGwEFAAEAAADeAAAAHAEDAAEAAAABAAAAKAEDAAEAAAACAAAAAAAAAEgA"
      "AAABAAAASAAAAAEAAAAvaG9tZS9tYXgvZ2l0L3NrMS10ZXN0L29sZC94ZmlnLzMvcGF0dGVy"
      "bnMvNTAudGlmAA==",
  # crosshatch
  51: "SUkqAAgAAAAIAAABAwABAAAACAAAAAEBAwABAAAACAAAAAMBAwABAAAAAQAAAAYBAwABAAAA"
      "AQAAABEBBAABAAAAbgAAABYBAwABAAAACAAAABcBAwABAAAACAAAABwBAwABAAAAAQAAAAAA"
      "AADv7+8A7+/v7w==",
  # horizontal "shingles" skewed to the right
  52: "SUkqACgAAAD//xAAEAAgACAAQABAAIAA//8AEAAQACAAIABAAEAAgBAA/gAEAAEAAAAAAAAA"
      "AAEDAAEAAAAQAAAAAQEDAAEAAAAQAAAAAgEDAAEAAAABAAAAAwEDAAEAAAABAAAABgEDAAEA"
      "AAAAAAAADQECADIAAAD+AAAAEQEEAAEAAAAIAAAAEgEDAAEAAAABAAAAFQEDAAEAAAABAAAA"
      "FgEDAAEAAABAAAAAFwEEAAEAAAAgAAAAGgEFAAEAAADuAAAAGwEFAAEAAAD2AAAAHAEDAAEA"
      "AAABAAAAKAEDAAEAAAACAAAAAAAAAEgAAAABAAAASAAAAAEAAAAvaG9tZS9tYXgvZ2l0L3Nr"
      "MS10ZXN0L29sZC94ZmlnLzMvcGF0dGVybnMvNTIudGlmAA==",
  # horizontal "shingles" skewed to the left
  53: "SUkqACgAAAD//wAIAAgABAAEAAIAAgAB//8IAAgABAAEAAIAAgABABAA/gAEAAEAAAAAAAAA"
      "AAEDAAEAAAAQAAAAAQEDAAEAAAAQAAAAAgEDAAEAAAABAAAAAwEDAAEAAAABAAAABgEDAAEA"
      "AAAAAAAADQECADIAAAD+AAAAEQEEAAEAAAAIAAAAEgEDAAEAAAABAAAAFQEDAAEAAAABAAAA"
      "FgEDAAEAAABAAAAAFwEEAAEAAAAgAAAAGgEFAAEAAADuAAAAGwEFAAEAAAD2AAAAHAEDAAEA"
      "AAABAAAAKAEDAAEAAAACAAAAAAAAAEgAAAABAAAASAAAAAEAAAAvaG9tZS9tYXgvZ2l0L3Nr"
      "MS10ZXN0L29sZC94ZmlnLzMvcGF0dGVybnMvNTMudGlmAA==",
  # vertical "shingles" skewed one way
  54: "SUkqACgAAACAgICAgICAgIDggJiAhoCBgICAgICAgIDggJiAhoCBgBAA/gAEAAEAAAAAAAAA"
      "AAEDAAEAAAAQAAAAAQEDAAEAAAAQAAAAAgEDAAEAAAABAAAAAwEDAAEAAAABAAAABgEDAAEA"
      "AAAAAAAADQECADIAAAD+AAAAEQEEAAEAAAAIAAAAEgEDAAEAAAABAAAAFQEDAAEAAAABAAAA"
      "FgEDAAEAAABAAAAAFwEEAAEAAAAgAAAAGgEFAAEAAADuAAAAGwEFAAEAAAD2AAAAHAEDAAEA"
      "AAABAAAAKAEDAAEAAAACAAAAAAAAAEgAAAABAAAASAAAAAEAAAAvaG9tZS9tYXgvZ2l0L3Nr"
      "MS10ZXN0L29sZC94ZmlnLzMvcGF0dGVybnMvNTQudGlmAA==",
  # vertical "shingles"skewed the other way
  55: "SUkqACgAAAABAQEBAQEBAQcBGQFhAYEBAQEBAQEBAQEBBwEZAWEBgRAA/gAEAAEAAAAAAAAA"
      "AAEDAAEAAAAQAAAAAQEDAAEAAAAQAAAAAgEDAAEAAAABAAAAAwEDAAEAAAABAAAABgEDAAEA"
      "AAAAAAAADQECADIAAAD+AAAAEQEEAAEAAAAIAAAAEgEDAAEAAAABAAAAFQEDAAEAAAABAAAA"
      "FgEDAAEAAABAAAAAFwEEAAEAAAAgAAAAGgEFAAEAAADuAAAAGwEFAAEAAAD2AAAAHAEDAAEA"
      "AAABAAAAKAEDAAEAAAACAAAAAAAAAEgAAAABAAAASAAAAAEAAAAvaG9tZS9tYXgvZ2l0L3Nr"
      "MS10ZXN0L29sZC94ZmlnLzMvcGF0dGVybnMvNTUudGlmAA==",
  # fish scales
  56: "SUkqACgAAAABgAJADDBwDoABQAIwDA5wAYACQAwwcA6AAUACMAwOcBAA/gAEAAEAAAAAAAAA"
      "AAEDAAEAAAAQAAAAAQEDAAEAAAAQAAAAAgEDAAEAAAABAAAAAwEDAAEAAAABAAAABgEDAAEA"
      "AAAAAAAADQECADIAAAD+AAAAEQEEAAEAAAAIAAAAEgEDAAEAAAABAAAAFQEDAAEAAAABAAAA"
      "FgEDAAEAAABAAAAAFwEEAAEAAAAgAAAAGgEFAAEAAADuAAAAGwEFAAEAAAD2AAAAHAEDAAEA"
      "AAABAAAAKAEDAAEAAAACAAAAAAAAAEgAAAABAAAASAAAAAEAAAAvaG9tZS9tYXgvZ2l0L3Nr"
      "MS10ZXN0L29sZC94ZmlnLzMvcGF0dGVybnMvNTYudGlmAA==",
  # small fish scales
  57: "SUkqABAAAACAgEE2CAgUYxAA/gAEAAEAAAAAAAAAAAEDAAEAAAAIAAAAAQEDAAEAAAAIAAAA"
      "AgEDAAEAAAABAAAAAwEDAAEAAAABAAAABgEDAAEAAAAAAAAADQECADIAAADmAAAAEQEEAAEA"
      "AAAIAAAAEgEDAAEAAAABAAAAFQEDAAEAAAABAAAAFgEDAAEAAABAAAAAFwEEAAEAAAAIAAAA"
      "GgEFAAEAAADWAAAAGwEFAAEAAADeAAAAHAEDAAEAAAABAAAAKAEDAAEAAAACAAAAAAAAAEgA"
      "AAABAAAASAAAAAEAAAAvaG9tZS9tYXgvZ2l0L3NrMS10ZXN0L29sZC94ZmlnLzMvcGF0dGVy"
      "bnMvNTcudGlmAA==",
  # circles
  58: "SUkqACgAAAAH8BgMIAJAAUABgACAAIAAgACAAIAAgABAAUABIAIYDBAA/gAEAAEAAAAAAAAA"
      "AAEDAAEAAAAQAAAAAQEDAAEAAAAQAAAAAgEDAAEAAAABAAAAAwEDAAEAAAABAAAABgEDAAEA"
      "AAAAAAAADQECADIAAAD+AAAAEQEEAAEAAAAIAAAAEgEDAAEAAAABAAAAFQEDAAEAAAABAAAA"
      "FgEDAAEAAABAAAAAFwEEAAEAAAAgAAAAGgEFAAEAAADuAAAAGwEFAAEAAAD2AAAAHAEDAAEA"
      "AAABAAAAKAEDAAEAAAACAAAAAAAAAEgAAAABAAAASAAAAAEAAAAvaG9tZS9tYXgvZ2l0L3Nr"
      "MS10ZXN0L29sZC94ZmlnLzMvcGF0dGVybnMvNTgudGlmAA==",
  # hexagons
  59: "SUkqAFAAAAD4AAHwBAACAAQAAgACAAQAAgAEAAEACAABAAgAAIAQAACAEAAAf+AAAIAQAACA"
      "EAABAAgAAQAIAAIABAACAAQABAACAAQAAgAQAP4ABAABAAAAAAAAAAABAwABAAAAHAAAAAEB"
      "AwABAAAAEgAAAAIBAwABAAAAAQAAAAMBAwABAAAAAQAAAAYBAwABAAAAAAAAAA0BAgAyAAAA"
      "JgEAABEBBAABAAAACAAAABIBAwABAAAAAQAAABUBAwABAAAAAQAAABYBAwABAAAAQAAAABcB"
      "BAABAAAASAAAABoBBQABAAAAFgEAABsBBQABAAAAHgEAABwBAwABAAAAAQAAACgBAwABAAAA"
      "AgAAAAAAAABIAAAAAQAAAEgAAAABAAAAL2hvbWUvbWF4L2dpdC9zazEtdGVzdC9vbGQveGZp"
      "Zy8zL3BhdHRlcm5zLzU5LnRpZgA=",
  # octagons
  60: "SUkqACIAAACAAd4AgEBACCABEAAoAAQyHQ2IQyFQiDQSAhAA/gAEAAEAAAAAAAAAAAEDAAEA"
      "AAAQAAAAAQEDAAEAAAAQAAAAAgEDAAEAAAABAAAAAwEDAAEAAAAFAAAABgEDAAEAAAAAAAAA"
      "DQECADIAAAD4AAAAEQEEAAEAAAAIAAAAEgEDAAEAAAABAAAAFQEDAAEAAAABAAAAFgEDAAEA"
      "AABAAAAAFwEEAAEAAAAaAAAAGgEFAAEAAADoAAAAGwEFAAEAAADwAAAAHAEDAAEAAAABAAAA"
      "KAEDAAEAAAACAAAAAAAAAEgAAAABAAAASAAAAAEAAAAvaG9tZS9tYXgvZ2l0L3NrMS10ZXN0"
      "L29sZC94ZmlnLzMvcGF0dGVybnMvNjAudGlmAA==",
  # horizontal "tire treads"
  61: "SUkqABAAAAAAAAgUIkGAABAA/gAEAAEAAAAAAAAAAAEDAAEAAAAIAAAAAQEDAAEAAAAIAAAA"
      "AgEDAAEAAAABAAAAAwEDAAEAAAABAAAABgEDAAEAAAAAAAAADQECADIAAADmAAAAEQEEAAEA"
      "AAAIAAAAEgEDAAEAAAABAAAAFQEDAAEAAAABAAAAFgEDAAEAAABAAAAAFwEEAAEAAAAIAAAA"
      "GgEFAAEAAADWAAAAGwEFAAEAAADeAAAAHAEDAAEAAAABAAAAKAEDAAEAAAACAAAAAAAAAEgA"
      "AAABAAAASAAAAAEAAAAvaG9tZS9tYXgvZ2l0L3NrMS10ZXN0L29sZC94ZmlnLzMvcGF0dGVy"
      "bnMvNjEudGlmAA==",
  # vertical "tire treads"
  62: "SUkqABAAAAAgEAgECBAgQBAA/gAEAAEAAAAAAAAAAAEDAAEAAAAIAAAAAQEDAAEAAAAIAAAA"
      "AgEDAAEAAAABAAAAAwEDAAEAAAABAAAABgEDAAEAAAAAAAAADQECADIAAADmAAAAEQEEAAEA"
      "AAAIAAAAEgEDAAEAAAABAAAAFQEDAAEAAAABAAAAFgEDAAEAAABAAAAAFwEEAAEAAAAIAAAA"
      "GgEFAAEAAADWAAAAGwEFAAEAAADeAAAAHAEDAAEAAAABAAAAKAEDAAEAAAACAAAAAAAAAEgA"
      "AAABAAAASAAAAAEAAAAvaG9tZS9tYXgvZ2l0L3NrMS10ZXN0L29sZC94ZmlnLzMvcGF0dGVy"
      "bnMvNjIudGlmAA==",
}
