//이거 창조로 할 수 없을까요???
import java.applet.Applet; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Date;
public class SunLunarKor extends Applet implements ActionListener {
public SunLunarKor() { init_date = null; dt = new int[163]; }
public void actionPerformed(ActionEvent actionevent) { String s = actionevent.getActionCommand(); if(s.equals("\uC74C\uB825\uC73C\uB85C")) { syear = Integer.parseInt(year1.getText()); smonth = Integer.parseInt(month1.getText()); sday = Integer.parseInt(day1.getText()); if(!verifyDate(syear, smonth, sday, s)) { resultLabel.setText("\uC785\uB825\uAC12\uC774 \uBC14\uB974\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4."); return; } k11 = syear - 1; td2 = ((k11 * 365L + k11 / 4L) - k11 / 100L) + k11 / 400L; ll = syear % 400 == 0 || syear % 100 != 0 && syear % 4 == 0; if(ll) m[1] = 29; else m[1] = 28; for(i = 0; i < smonth - 1; i++) td2 = td2 + (long)m[i];
td2 = td2 + (long)sday; td = (td2 - td1) + 1L; td0 = dt[0]; for(i = 0; i < 163; i++) { if(td <= td0) break; td0 = td0 + (long)dt[i + 1]; }
lyear = i + 1881; td0 = td0 - (long)dt[i]; td = td - td0; if(kk[i * 13 + 12] != 0) jcount = 13; else jcount = 12; m2 = 0; for(j = 0; j < jcount; j++) { if(kk[i * 13 + j] <= 2) m2++; if(kk[i * 13 + j] <= 2) m1 = kk[i * 13 + j] + 28; else m1 = kk[i * 13 + j] + 26; if(td <= (long)m1) break; td = td - (long)m1; }
m0 = j; lmonth = m2; lday = (int)td; w = (short)(int)(td2 % 7L); i = (int)((td2 + 4L) % 10L); j = (int)((td2 + 2L) % 12L); i1 = (lyear + 6) % 10; j1 = (lyear + 8) % 12; String s1 = "\uC74C\uB825=>" + Integer.toString(lyear) + "\uB144" + Integer.toString(lmonth) + "\uC6D4" + Integer.toString(lday) + "\uC77C," + week[w] + "\uC694\uC77C" + yuk[i1] + gap[j1] + "," + ddi[j1] + "\uC758\uD574"; resultLabel.setText(s1); } else if(s.equals("\uC591\uB825\uC73C\uB85C")) { lyear = Integer.parseInt(year1.getText()); lmonth = Integer.parseInt(month1.getText()); lday = Integer.parseInt(day1.getText()); leapyes = leapYear.getState(); if(!leapyes && !verifyDate(lyear, lmonth, lday, "\uC591\uB825\uC73C\uB85C-")) { resultLabel.setText("\uC785\uB825\uAC12\uC774 \uBC14\uB974\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4."); return; } if(leapyes && !verifyDate(lyear, lmonth, lday, "\uC591\uB825\uC73C\uB85C+")) { resultLabel.setText("\uC785\uB825\uAC12\uC774 \uBC14\uB974\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4."); return; } m1 = -1; td = 0L; if(lyear != 1881) { m1 = lyear - 1882; for(i = 0; i <= m1; i++) { for(j = 0; j < 13; j++) td = td + (long)kk[i * 13 + j];
if(kk[i * 13 + 12] == 0) td = td + 336L; else td = td + 362L; }
} m1++; n2 = lmonth - 1; m2 = -1; do { m2++; if(kk[m1 * 13 + m2] > 2) { td = td + 26L + (long)kk[m1 * 13 + m2]; n2++; continue; } if(m2 == n2) break; td = td + 28L + (long)kk[m1 * 13 + m2]; } while(true); if(leapyes) td = td + 28L + (long)kk[m1 * 13 + m2]; td = td + (long)lday + 29L; m1 = 1880; do { m1++; leap = m1 % 400 == 0 || m1 % 100 != 0 && m1 % 4 == 0; if(leap) m2 = 366; else m2 = 365; if(td < (long)m2) break; td = td - (long)m2; } while(true); syear = m1; m[1] = m2 - 337; m1 = 0; do { m1++; if(td <= (long)m[m1 - 1]) break; td = td - (long)m[m1 - 1]; } while(true); smonth = m1; sday = (int)td; y = (long)syear - 1L; td = ((y * 365L + y / 4L) - y / 100L) + y / 400L; leap = syear % 400 == 0 || syear % 100 != 0 && syear % 4 == 0; if(leap) m[1] = 29; else m[1] = 28; for(i = 0; i < smonth - 1; i++) td = td + (long)m[i];
td = td + (long)sday; w = (int)(td % 7L); i = (int)(td % 10L); i = (i + 4) % 10; j = (int)(td % 12L); j = (j + 2) % 12; k1 = (lyear + 6) % 10; k2 = (lyear + 8) % 12; String s2 = "\uC591\uB825=>" + Integer.toString(syear) + "\uB144" + Integer.toString(smonth) + "\uC6D4" + Integer.toString(sday) + "\uC77C-" + week[w] + "\uC694\uC77C"; resultLabel.setText(s2); } }
public void init() { setLayout(null); setSize(550, 30); setFont(new Font("TimesRoman", 0, 12)); init_date = new Date(); year1 = new TextField(Integer.toString(init_date.getYear() + 1900), 4); year1.setSize(40, 20); year1.setLocation(5, 5); add(year1); month1 = new TextField(Integer.toString(init_date.getMonth() + 1), 2); month1.setSize(20, 20); month1.setLocation(50, 5); add(month1); day1 = new TextField(Integer.toString(init_date.getDate()), 2); day1.setSize(20, 20); day1.setLocation(75, 5); add(day1); leapYear = new Checkbox("\uC724\uB2EC"); leapYear.setSize(50, 20); leapYear.setLocation(100, 5); add(leapYear); sun2lun = new Button("\uC74C\uB825\uC73C\uB85C"); sun2lun.setSize(60, 20); sun2lun.setLocation(150, 5); sun2lun.addActionListener(this); add(sun2lun); lun2sun = new Button("\uC591\uB825\uC73C\uB85C"); lun2sun.setSize(60, 20); lun2sun.setLocation(215, 5); lun2sun.addActionListener(this); add(lun2sun); resultLabel = new Label(); resultLabel.setSize(260, 20); resultLabel.setLocation(280, 5); add(resultLabel); for(i = 0; i < 163; i++) { dt[i] = 0; for(j = 0; j < 12; j++) switch(kk[i * 13 + j]) { case 1: // '\001' case 3: // '\003' dt[i] = dt[i] + 29; break;
case 2: // '\002' case 4: // '\004' dt[i] = dt[i] + 30; break; }
switch(kk[i * 13 + 12]) { case 1: // '\001' case 3: // '\003' dt[i] = dt[i] + 29; break;
case 2: // '\002' case 4: // '\004' dt[i] = dt[i] + 30; break; } }
td1 = 0xa7a5eL; }
public void paint(Graphics g) { Dimension dimension = new Dimension(); dimension = getSize(); g.drawRect(0, 0, dimension.width - 1, dimension.height - 1); }
private boolean verifyDate(int k, int l, int l1, String s) { if(k < 1881 || k > 2043 || l < 1 || l > 12) return false; if(s.equals("\uC74C\uB825\uC73C\uB85C") && l1 > m[l - 1]) return false; if(s.equals("\uC591\uB825\uC73C\uB85C+")) { if(kk[(k - 1881) * 13 + 12] < 1) return false; if(kk[(k - 1881) * 13 + l] < 3) return false; if(kk[(k - 1881) * 13 + l] + 26 < l1) return false; } if(s.equals("\uC591\uB825\uC73C\uB85C-")) { j = l - 1; for(i = 1; i <= 12; i++) if(kk[((k - 1881) * 13 + i) - 1] > 2) j++;
if(l1 > kk[(k - 1881) * 13 + j] + 28) return false; } return true; }
private Date init_date; private Button sun2lun; private Button lun2sun; private TextField year1; private TextField month1; private TextField day1; private static final String errMsg = "\uC785\uB825\uAC12\uC774 \uBC14\uB974\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4."; private Checkbox leapYear; private Label resultLabel; private int syear; private int smonth; private int sday; private int lyear; private int lmonth; private int lday; private int m1; private int m2; private int i; private int j; private int i1; private int j1; private int jcount; private int w; private int m0; private int k1; private int k2; private int n2; private boolean ll; private boolean leapyes; private boolean leap; private int dt[]; private long td; private long td0; private long td1; private long td2; private long k11; private long y; private static final String yuk[] = { "\uAC11", "\uC744", "\uBCD1", "\uC815", "\uBB34", "\uAE30", "\uACBD", "\uC2E0", "\uC784", "\uACC4" }; private static final String gap[] = { "\uC790", "\uCD95", "\uC778", "\uBB18", "\uC9C4", "\uC0AC", "\uC624", "\uBBF8", "\uC2E0", "\uC720", "\uC220", "\uD574" }; private static final String ddi[] = { "\uC950", "\uC18C", "\uD638\uB791\uC774", "\uD1A0\uB07C", "\uC6A9", "\uBC40", "\uB9D0", "\uC591", "\uC6D0\uC22D\uC774", "\uB2ED", "\uAC1C", "\uB3FC\uC9C0" }; private static final int m[] = { 31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; private static final String week[] = { "\uC77C", "\uC6D4", "\uD654", "\uC218", "\uBAA9", "\uAE08", "\uD1A0" }; private static final int kk[] = { 1, 2, 1, 2, 1, 2, 2, 3, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 0, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 0, 2, 1, 1, 2, 1, 3, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 0, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0, 2, 2, 1, 2, 3, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 0, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 1, 2, 3, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 0, 1, 1, 2, 1, 1, 2, 3, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 0, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 0, 2, 1, 2, 1, 2, 3, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0, 2, 1, 2, 3, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 0, 1, 2, 1, 1, 2, 1, 2, 2, 3, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 0, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 0, 1, 2, 1, 2, 1, 3, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 0, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 0, 1, 2, 2, 1, 4, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 0, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 0, 1, 2, 3, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 0, 2, 1, 2, 1, 1, 2, 3, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 0, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 0, 2, 2, 1, 2, 2, 3, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 0, 2, 1, 3, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 0, 1, 2, 1, 1, 2, 1, 2, 3, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 0, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 0, 2, 1, 2, 2, 1, 3, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 0, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 0, 2, 1, 2, 2, 3, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 0, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 0, 1, 2, 3, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 0, 1, 2, 2, 1, 1, 2, 3, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 0, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 0, 1, 2, 2, 1, 2, 4, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 0, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 0, 2, 1, 1, 4, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 0, 2, 2, 1, 1, 2, 1, 1, 4, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 0, 2, 2, 1, 2, 2, 1, 4, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 0, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 0, 1, 1, 2, 1, 4, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 0, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 0, 2, 2, 3, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0, 2, 2, 1, 2, 1, 2, 1, 3, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 0, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 1, 2, 1, 2, 1, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 0, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 0, 2, 1, 1, 4, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 0, 2, 1, 2, 1, 2, 1, 1, 2, 3, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0, 2, 1, 2, 1, 2, 2, 3, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 0, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 0, 2, 1, 2, 1, 3, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 0, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 0, 2, 2, 2, 3, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 0, 1, 2, 2, 1, 2, 1, 2, 3, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 0, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 0, 1, 2, 1, 1, 2, 3, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 0, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 0, 2, 2, 1, 2, 3, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 0, 2, 2, 1, 2, 1, 2, 1, 2, 3, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 0, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 0, 2, 1, 1, 2, 1, 2, 4, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 0, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 0, 2, 1, 2, 1, 3, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 0, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 3, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 0, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 0, 2, 1, 2, 2, 1, 2, 3, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 0, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 0, 1, 2, 1, 1, 2, 3, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 0, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 0, 1, 2, 2, 3, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 0, 1, 2, 2, 1, 2, 2, 1, 2, 3, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 0, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 0, 2, 1, 1, 2, 1, 3, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 0, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 0, 2, 2, 2, 1, 3, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 0, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 0, 1, 2, 3, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 0, 1, 1, 2, 1, 2, 1, 2, 3, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 0, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 0, 2, 2, 1, 1, 2, 3, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 0, 2, 1, 2, 4, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 1, 2, 1, 2, 1, 2, 1, 2, 2, 3, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 0, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 0, 2, 1, 1, 2, 1, 3, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 0, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0, 2, 1, 2, 2, 3, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 0, 1, 2, 3, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 0, 2, 1, 2, 1, 1, 2, 3, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 0, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 0, 1, 2, 2, 1, 2, 3, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 0, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 0, 2, 1, 2, 3, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 0, 1, 2, 1, 1, 2, 1, 2, 3, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 0, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 0, 2, 2, 1, 2, 1, 1, 4, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 0, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 0, 2, 2, 1, 2, 2, 3, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 0, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 0, 1, 2, 3, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 0 };
}
|