Move Alice and Ergodox layouts to data driven (#20340)
This commit is contained in:
parent
6847dba8af
commit
09a2b70a66
105 changed files with 8550 additions and 6611 deletions
|
@ -31,149 +31,162 @@
|
|||
"layouts": {
|
||||
"LAYOUT_alice_split_bs": {
|
||||
"layout": [
|
||||
{"label":"Esc", "x":0.5, "y":0},
|
||||
{"label":"`", "x":1.75, "y":0.25},
|
||||
{"label":"1", "x":2.75, "y":0.25},
|
||||
{"label":"2", "x":3.75, "y":0},
|
||||
{"label":"3", "x":4.75, "y":0.25},
|
||||
{"label":"4", "x":5.75, "y":0.25},
|
||||
{"label":"5", "x":6.75, "y":0.25},
|
||||
{"label":"6", "x":7.75, "y":0.25},
|
||||
{"label":"7", "x":11, "y":0.25},
|
||||
{"label":"8", "x":12, "y":0.25},
|
||||
{"label":"9", "x":13, "y":0.25},
|
||||
{"label":"0", "x":14, "y":0.25},
|
||||
{"label":"-", "x":15, "y":0},
|
||||
{"label":"=", "x":16, "y":0.25},
|
||||
{"label":"Del", "x":17, "y":0.25},
|
||||
{"label":"Backspace", "x":18, "y":0.25},
|
||||
{"matrix": [1, 0], "x": 0.5, "y": 0},
|
||||
|
||||
{"label":"PgUp", "x":0.25, "y":1},
|
||||
{"label":"Tab", "x":1.5, "y":1.25, "w":1.5},
|
||||
{"label":"Q", "x":3, "y":1.25},
|
||||
{"label":"W", "x":4.25, "y":1.25},
|
||||
{"label":"E", "x":5.25, "y":1.25},
|
||||
{"label":"R", "x":6.25, "y":1.25},
|
||||
{"label":"T", "x":7.25, "y":1.25},
|
||||
{"label":"Y", "x":10.5, "y":1.25},
|
||||
{"label":"U", "x":11.5, "y":1.25},
|
||||
{"label":"I", "x":12.5, "y":1.25},
|
||||
{"label":"O", "x":13.5, "y":1.25},
|
||||
{"label":"P", "x":14.75, "y":1.25},
|
||||
{"label":"{", "x":15.75, "y":1.25},
|
||||
{"label":"}", "x":16.75, "y":1.25},
|
||||
{"label":"|", "x":17.75, "y":1.25, "w":1.5},
|
||||
{"matrix": [0, 0], "x": 1.75, "y": 0.25},
|
||||
{"matrix": [0, 1], "x": 2.75, "y": 0.25},
|
||||
{"matrix": [0, 2], "x": 3.75, "y": 0},
|
||||
{"matrix": [0, 3], "x": 4.75, "y": 0.25},
|
||||
{"matrix": [0, 4], "x": 5.75, "y": 0.25},
|
||||
{"matrix": [0, 5], "x": 6.75, "y": 0.25},
|
||||
{"matrix": [0, 6], "x": 7.75, "y": 0.25},
|
||||
|
||||
{"label":"PgDn", "x":0, "y":2},
|
||||
{"label":"Caps Lock", "x":1.5, "y":2.25, "w":1.75},
|
||||
{"label":"A", "x":3.25, "y":2.25},
|
||||
{"label":"S", "x":4.5, "y":2.25},
|
||||
{"label":"D", "x":5.5, "y":2.25},
|
||||
{"label":"F", "x":6.5, "y":2.25},
|
||||
{"label":"G", "x":7.5, "y":2.25},
|
||||
{"label":"H", "x":10.75, "y":2.25},
|
||||
{"label":"J", "x":11.75, "y":2.25},
|
||||
{"label":"K", "x":12.75, "y":2.25},
|
||||
{"label":"L", "x":13.75, "y":2.25},
|
||||
{"label":":", "x":15.25, "y":2.25},
|
||||
{"label":"\"", "x":16.25, "y":2.25},
|
||||
{"label":"Enter", "x":17.25, "y":2.25, "w":2.25},
|
||||
{"matrix": [0, 7], "x": 11, "y": 0.25},
|
||||
{"matrix": [0, 8], "x": 12, "y": 0.25},
|
||||
{"matrix": [0, 9], "x": 13, "y": 0.25},
|
||||
{"matrix": [0, 10], "x": 14, "y": 0.25},
|
||||
{"matrix": [0, 11], "x": 15, "y": 0},
|
||||
{"matrix": [0, 12], "x": 16, "y": 0.25},
|
||||
{"matrix": [0, 13], "x": 17, "y": 0.25},
|
||||
{"matrix": [0, 14], "x": 18, "y": 0.25},
|
||||
|
||||
{"label":"Shift", "x":1.5, "y":3.25, "w":2.25},
|
||||
{"label":"Z", "x":3.75, "y":3.25},
|
||||
{"label":"X", "x":5, "y":3.25},
|
||||
{"label":"C", "x":6, "y":3.25},
|
||||
{"label":"V", "x":7, "y":3.25},
|
||||
{"label":"B", "x":8, "y":3.25},
|
||||
{"label":"Fn", "x":10.25, "y":3.25},
|
||||
{"label":"N", "x":11.25, "y":3.25},
|
||||
{"label":"M", "x":12.25, "y":3.25},
|
||||
{"label":"<", "x":13.25, "y":3.25},
|
||||
{"label":">", "x":15, "y":3.25},
|
||||
{"label":"?", "x":16, "y":3.25},
|
||||
{"label":"Shift", "x":17, "y":3.25, "w":1.75},
|
||||
{"label":"Fn", "x":18.75, "y":3.25},
|
||||
{"matrix": [2, 0], "x": 0.25, "y": 1},
|
||||
|
||||
{"label":"Ctrl", "x":1.5, "y":4.25, "w":1.5},
|
||||
{"label":"Alt", "x":5, "y":4.25, "w":1.5},
|
||||
{"label":"Space", "x":6.5, "y":4.25, "w":2},
|
||||
{"label":"Menu", "x":8.5, "y":4.25},
|
||||
{"label":"Space", "x":10.25, "y":4.25, "w":2.75},
|
||||
{"label":"Alt", "x":13, "y":4.25, "w":1.5},
|
||||
{"label":"Ctrl", "x":18, "y":4.25, "w":1.5}
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1.25, "w": 1.5},
|
||||
{"matrix": [1, 2], "x": 3, "y": 1.25},
|
||||
{"matrix": [1, 3], "x": 4.25, "y": 1.25},
|
||||
{"matrix": [1, 4], "x": 5.25, "y": 1.25},
|
||||
{"matrix": [1, 5], "x": 6.25, "y": 1.25},
|
||||
{"matrix": [1, 6], "x": 7.25, "y": 1.25},
|
||||
|
||||
{"matrix": [1, 7], "x": 10.5, "y": 1.25},
|
||||
{"matrix": [1, 8], "x": 11.5, "y": 1.25},
|
||||
{"matrix": [1, 9], "x": 12.5, "y": 1.25},
|
||||
{"matrix": [1, 10], "x": 13.5, "y": 1.25},
|
||||
{"matrix": [1, 11], "x": 14.75, "y": 1.25},
|
||||
{"matrix": [1, 12], "x": 15.75, "y": 1.25},
|
||||
{"matrix": [1, 13], "x": 16.75, "y": 1.25},
|
||||
{"matrix": [1, 14], "x": 17.75, "y": 1.25, "w": 1.5},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 2},
|
||||
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 2.25, "w": 1.75},
|
||||
{"matrix": [2, 2], "x": 3.25, "y": 2.25},
|
||||
{"matrix": [2, 3], "x": 4.5, "y": 2.25},
|
||||
{"matrix": [2, 4], "x": 5.5, "y": 2.25},
|
||||
{"matrix": [2, 5], "x": 6.5, "y": 2.25},
|
||||
{"matrix": [2, 6], "x": 7.5, "y": 2.25},
|
||||
|
||||
{"matrix": [2, 7], "x": 10.75, "y": 2.25},
|
||||
{"matrix": [2, 8], "x": 11.75, "y": 2.25},
|
||||
{"matrix": [2, 9], "x": 12.75, "y": 2.25},
|
||||
{"matrix": [2, 10], "x": 13.75, "y": 2.25},
|
||||
{"matrix": [2, 11], "x": 15.25, "y": 2.25},
|
||||
{"matrix": [2, 12], "x": 16.25, "y": 2.25},
|
||||
{"matrix": [2, 13], "x": 17.25, "y": 2.25, "w": 2.25},
|
||||
|
||||
{"matrix": [3, 1], "x": 1.5, "y": 3.25, "w": 2.25},
|
||||
{"matrix": [3, 2], "x": 3.75, "y": 3.25},
|
||||
{"matrix": [3, 3], "x": 5, "y": 3.25},
|
||||
{"matrix": [3, 4], "x": 6, "y": 3.25},
|
||||
{"matrix": [3, 5], "x": 7, "y": 3.25},
|
||||
{"matrix": [3, 6], "x": 8, "y": 3.25},
|
||||
|
||||
{"matrix": [3, 7], "x": 10.25, "y": 3.25},
|
||||
{"matrix": [3, 8], "x": 11.25, "y": 3.25},
|
||||
{"matrix": [3, 9], "x": 12.25, "y": 3.25},
|
||||
{"matrix": [3, 10], "x": 13.25, "y": 3.25},
|
||||
{"matrix": [3, 11], "x": 15, "y": 3.25},
|
||||
{"matrix": [3, 12], "x": 16, "y": 3.25},
|
||||
{"matrix": [3, 13], "x": 17, "y": 3.25, "w": 1.75},
|
||||
{"matrix": [3, 14], "x": 18.75, "y": 3.25},
|
||||
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4.25, "w": 1.5},
|
||||
{"matrix": [4, 3], "x": 5, "y": 4.25, "w": 1.5},
|
||||
{"matrix": [4, 5], "x": 6.5, "y": 4.25, "w": 2},
|
||||
{"matrix": [4, 6], "x": 8.5, "y": 4.25},
|
||||
{"matrix": [4, 8], "x": 10.25, "y": 4.25, "w": 2.75},
|
||||
{"matrix": [4, 10], "x": 13, "y": 4.25, "w": 1.5},
|
||||
{"matrix": [4, 14], "x": 18, "y": 4.25, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_alice": {
|
||||
"layout": [
|
||||
{"label":"Esc", "x":0.5, "y":0},
|
||||
{"label":"`", "x":1.75, "y":0.25},
|
||||
{"label":"1", "x":2.75, "y":0.25},
|
||||
{"label":"2", "x":3.75, "y":0},
|
||||
{"label":"3", "x":4.75, "y":0.25},
|
||||
{"label":"4", "x":5.75, "y":0.25},
|
||||
{"label":"5", "x":6.75, "y":0.25},
|
||||
{"label":"6", "x":7.75, "y":0.25},
|
||||
{"label":"7", "x":11, "y":0.25},
|
||||
{"label":"8", "x":12, "y":0.25},
|
||||
{"label":"9", "x":13, "y":0.25},
|
||||
{"label":"0", "x":14, "y":0.25},
|
||||
{"label":"-", "x":15, "y":0},
|
||||
{"label":"=", "x":16, "y":0.25},
|
||||
{"label":"Backspace", "x":17, "y":0.25, "w":2},
|
||||
{"matrix": [1, 0], "x": 0.5, "y": 0},
|
||||
|
||||
{"label":"PgUp", "x":0.25, "y":1},
|
||||
{"label":"Tab", "x":1.5, "y":1.25, "w":1.5},
|
||||
{"label":"Q", "x":3, "y":1.25},
|
||||
{"label":"W", "x":4.25, "y":1.25},
|
||||
{"label":"E", "x":5.25, "y":1.25},
|
||||
{"label":"R", "x":6.25, "y":1.25},
|
||||
{"label":"T", "x":7.25, "y":1.25},
|
||||
{"label":"Y", "x":10.5, "y":1.25},
|
||||
{"label":"U", "x":11.5, "y":1.25},
|
||||
{"label":"I", "x":12.5, "y":1.25},
|
||||
{"label":"O", "x":13.5, "y":1.25},
|
||||
{"label":"P", "x":14.75, "y":1.25},
|
||||
{"label":"{", "x":15.75, "y":1.25},
|
||||
{"label":"}", "x":16.75, "y":1.25},
|
||||
{"label":"|", "x":17.75, "y":1.25, "w":1.5},
|
||||
{"matrix": [0, 0], "x": 1.75, "y": 0.25},
|
||||
{"matrix": [0, 1], "x": 2.75, "y": 0.25},
|
||||
{"matrix": [0, 2], "x": 3.75, "y": 0},
|
||||
{"matrix": [0, 3], "x": 4.75, "y": 0.25},
|
||||
{"matrix": [0, 4], "x": 5.75, "y": 0.25},
|
||||
{"matrix": [0, 5], "x": 6.75, "y": 0.25},
|
||||
{"matrix": [0, 6], "x": 7.75, "y": 0.25},
|
||||
|
||||
{"label":"PgDn", "x":0, "y":2},
|
||||
{"label":"Caps Lock", "x":1.5, "y":2.25, "w":1.75},
|
||||
{"label":"A", "x":3.25, "y":2.25},
|
||||
{"label":"S", "x":4.5, "y":2.25},
|
||||
{"label":"D", "x":5.5, "y":2.25},
|
||||
{"label":"F", "x":6.5, "y":2.25},
|
||||
{"label":"G", "x":7.5, "y":2.25},
|
||||
{"label":"H", "x":10.75, "y":2.25},
|
||||
{"label":"J", "x":11.75, "y":2.25},
|
||||
{"label":"K", "x":12.75, "y":2.25},
|
||||
{"label":"L", "x":13.75, "y":2.25},
|
||||
{"label":":", "x":15.25, "y":2.25},
|
||||
{"label":"\"", "x":16.25, "y":2.25},
|
||||
{"label":"Enter", "x":17.25, "y":2.25, "w":2.25},
|
||||
{"matrix": [0, 7], "x": 11, "y": 0.25},
|
||||
{"matrix": [0, 8], "x": 12, "y": 0.25},
|
||||
{"matrix": [0, 9], "x": 13, "y": 0.25},
|
||||
{"matrix": [0, 10], "x": 14, "y": 0.25},
|
||||
{"matrix": [0, 11], "x": 15, "y": 0},
|
||||
{"matrix": [0, 12], "x": 16, "y": 0.25},
|
||||
{"matrix": [0, 13], "x": 17, "y": 0.25, "w": 2},
|
||||
|
||||
{"label":"Shift", "x":1.5, "y":3.25, "w":2.25},
|
||||
{"label":"Z", "x":3.75, "y":3.25},
|
||||
{"label":"X", "x":5, "y":3.25},
|
||||
{"label":"C", "x":6, "y":3.25},
|
||||
{"label":"V", "x":7, "y":3.25},
|
||||
{"label":"B", "x":8, "y":3.25},
|
||||
{"label":"Fn", "x":10.25, "y":3.25},
|
||||
{"label":"N", "x":11.25, "y":3.25},
|
||||
{"label":"M", "x":12.25, "y":3.25},
|
||||
{"label":"<", "x":13.25, "y":3.25},
|
||||
{"label":">", "x":15, "y":3.25},
|
||||
{"label":"?", "x":16, "y":3.25},
|
||||
{"label":"Shift", "x":17, "y":3.25, "w":1.75},
|
||||
{"label":"Fn", "x":18.75, "y":3.25},
|
||||
{"matrix": [2, 0], "x": 0.25, "y": 1},
|
||||
|
||||
{"label":"Ctrl", "x":1.5, "y":4.25, "w":1.5},
|
||||
{"label":"Alt", "x":5, "y":4.25, "w":1.5},
|
||||
{"label":"Space", "x":6.5, "y":4.25, "w":2},
|
||||
{"label":"Menu", "x":8.5, "y":4.25},
|
||||
{"label":"Space", "x":10.25, "y":4.25, "w":2.75},
|
||||
{"label":"Alt", "x":13, "y":4.25, "w":1.5},
|
||||
{"label":"Ctrl", "x":18, "y":4.25, "w":1.5}
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1.25, "w": 1.5},
|
||||
{"matrix": [1, 2], "x": 3, "y": 1.25},
|
||||
{"matrix": [1, 3], "x": 4.25, "y": 1.25},
|
||||
{"matrix": [1, 4], "x": 5.25, "y": 1.25},
|
||||
{"matrix": [1, 5], "x": 6.25, "y": 1.25},
|
||||
{"matrix": [1, 6], "x": 7.25, "y": 1.25},
|
||||
|
||||
{"matrix": [1, 7], "x": 10.5, "y": 1.25},
|
||||
{"matrix": [1, 8], "x": 11.5, "y": 1.25},
|
||||
{"matrix": [1, 9], "x": 12.5, "y": 1.25},
|
||||
{"matrix": [1, 10], "x": 13.5, "y": 1.25},
|
||||
{"matrix": [1, 11], "x": 14.75, "y": 1.25},
|
||||
{"matrix": [1, 12], "x": 15.75, "y": 1.25},
|
||||
{"matrix": [1, 13], "x": 16.75, "y": 1.25},
|
||||
{"matrix": [1, 14], "x": 17.75, "y": 1.25, "w": 1.5},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 2},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 2.25, "w": 1.75},
|
||||
{"matrix": [2, 2], "x": 3.25, "y": 2.25},
|
||||
{"matrix": [2, 3], "x": 4.5, "y": 2.25},
|
||||
{"matrix": [2, 4], "x": 5.5, "y": 2.25},
|
||||
{"matrix": [2, 5], "x": 6.5, "y": 2.25},
|
||||
{"matrix": [2, 6], "x": 7.5, "y": 2.25},
|
||||
|
||||
{"matrix": [2, 7], "x": 10.75, "y": 2.25},
|
||||
{"matrix": [2, 8], "x": 11.75, "y": 2.25},
|
||||
{"matrix": [2, 9], "x": 12.75, "y": 2.25},
|
||||
{"matrix": [2, 10], "x": 13.75, "y": 2.25},
|
||||
{"matrix": [2, 11], "x": 15.25, "y": 2.25},
|
||||
{"matrix": [2, 12], "x": 16.25, "y": 2.25},
|
||||
{"matrix": [2, 13], "x": 17.25, "y": 2.25, "w": 2.25},
|
||||
|
||||
{"matrix": [3, 1], "x": 1.5, "y": 3.25, "w": 2.25},
|
||||
{"matrix": [3, 2], "x": 3.75, "y": 3.25},
|
||||
{"matrix": [3, 3], "x": 5, "y": 3.25},
|
||||
{"matrix": [3, 4], "x": 6, "y": 3.25},
|
||||
{"matrix": [3, 5], "x": 7, "y": 3.25},
|
||||
{"matrix": [3, 6], "x": 8, "y": 3.25},
|
||||
|
||||
{"matrix": [3, 7], "x": 10.25, "y": 3.25},
|
||||
{"matrix": [3, 8], "x": 11.25, "y": 3.25},
|
||||
{"matrix": [3, 9], "x": 12.25, "y": 3.25},
|
||||
{"matrix": [3, 10], "x": 13.25, "y": 3.25},
|
||||
{"matrix": [3, 11], "x": 15, "y": 3.25},
|
||||
{"matrix": [3, 12], "x": 16, "y": 3.25},
|
||||
{"matrix": [3, 13], "x": 17, "y": 3.25, "w": 1.75},
|
||||
{"matrix": [3, 14], "x": 18.75, "y": 3.25},
|
||||
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4.25, "w": 1.5},
|
||||
{"matrix": [4, 3], "x": 5, "y": 4.25, "w": 1.5},
|
||||
{"matrix": [4, 5], "x": 6.5, "y": 4.25, "w": 2},
|
||||
{"matrix": [4, 6], "x": 8.5, "y": 4.25},
|
||||
{"matrix": [4, 8], "x": 10.25, "y": 4.25, "w": 2.75},
|
||||
{"matrix": [4, 10], "x": 13, "y": 4.25, "w": 1.5},
|
||||
{"matrix": [4, 14], "x": 18, "y": 4.25, "w": 1.5}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,7 +14,8 @@
|
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "wampus.h"
|
||||
#include "quantum.h"
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
|
||||
void board_init(void) {
|
||||
|
|
|
@ -1,49 +0,0 @@
|
|||
/* Copyright 2020 Matthew Tso (zoo)
|
||||
*
|
||||
* 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 2 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#define ____ KC_NO
|
||||
|
||||
#define LAYOUT_alice_split_bs( \
|
||||
K100, K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
|
||||
K200, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
|
||||
K300, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \
|
||||
K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \
|
||||
K401, K403, K405, K406, K408, K410, K414 \
|
||||
) { \
|
||||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, }, \
|
||||
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, }, \
|
||||
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, ____, }, \
|
||||
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, }, \
|
||||
{ ____, K401, ____, K403, ____, K405, K406, ____, K408, ____, K410, ____, ____, ____, K414, }, \
|
||||
}
|
||||
|
||||
#define LAYOUT_alice( \
|
||||
K100, K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, \
|
||||
K200, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
|
||||
K300, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \
|
||||
K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \
|
||||
K401, K403, K405, K406, K408, K410, K414 \
|
||||
) { \
|
||||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, ____, }, \
|
||||
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, }, \
|
||||
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, ____, }, \
|
||||
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, }, \
|
||||
{ ____, K401, ____, K403, ____, K405, K406, ____, K408, ____, K410, ____, ____, ____, K414, }, \
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue