2010/11/30

Common Lisp から OAuth で Twitter

cl-twitter で OAuth がよく分からなかったので cl-twitter は使わずに cl-oauth を直でやってみたら簡単にできました。というお話です。

(eval-when (:compile-toplevel :load-toplevel :execute)
(require :series)
(require :cl-oauth)
(require :drakma)
(require :cl-json)
(require :quek))

;; 対 drakma 用おまじない
(setf drakma:*drakma-default-external-format* :utf-8)
(pushnew '("application" . "json") drakma:*text-content-types* :test #'equal)

(defpackage :repl-twitter-client
(:use :cl :series :quek)
(:shadowing-import-from :series let let* multiple-value-bind funcall defun)
(:export #:home-timeline
#:tweet))

(in-package :repl-twitter-client)

(eval-when (:compile-toplevel :load-toplevel :execute)
(series::install :pkg :repl-twitter-client :implicit-map t))


(defun query-message ()
(string-right-trim
#(#\Space #\Cr #\Lf #\Tab)
(with-output-to-string (out)
(loop for line = (read-line *terminal-io*)
until (string= "." line)
if (string= "\\q" line)
do (return-from query-message nil)
do (write-line line out)))))

(macrolet ((m ()
(let ((sec (collect-first (scan-file "~/.twitter-oauth.lisp"))))
`(defparameter *access-token*
(oauth:make-access-token :consumer (oauth:make-consumer-token
:key ,(getf sec :consumer-key)
:secret ,(getf sec :consumer-secret))
:key ,(getf sec :access-key)
:secret ,(getf sec :access-secret))))))
(m))

(defun home-timeline ()
(json:decode-json-from-string
(oauth:access-protected-resource
"http://api.twitter.com/1/statuses/home_timeline.json"
*access-token*)))

(defun tweet (&optional (message (query-message)))
(when message
(json:decode-json-from-string
(oauth:access-protected-resource
"http://api.twitter.com/1/statuses/update.json"
*access-token*
:request-method :post
:user-parameters `(("status" . ,#"""#,message #'求職中"""))))))

~/.twitter-oauth.lisp に中身はこんな感じです。

(:consumer-key "xxxxxxxxxxxxxxxxxxxx"
:consumer-secret "xxxxxxxxxxxxxxxxxxxx"
:access-key "xxxxxxxxxxxxxxxxxxxx"
:access-secret "xxxxxxxxxxxxxxxxxxxx")

2010/11/29

CLSQL の select を使う時は :refresh と :caching に気をつける

そうしなと、毎回同じ結果が返って来て悲しくなります。

ちゃんとドキュメントを読んでなかったのが悪いだけです。

ちゃんとキャシュしてくれる、ということです。

2010/11/28

Shibuya.lisp テクニカルトーク #6

土曜日に開催された Shibuya.lisp テクニカルトーク #6 に参加しました。

  • ELIS の場合は市場そのものがなくなった。
  • Lisp は便利です。
  • Lisper は Lisper を信用する。
  • 気分いいですねぇ。
  • 大事なのはそれがユーザに解放されていること。
  • 無政府主義的。

ごちゃ混ぜの単語だけで申し訳ない。

ブログでしか知らなかった人とお話できたのが嬉しかったな。ありがとうございました。

個人的な希望ですが dis らないでください。

2010/11/25

ずっと停滞している Common Lisp の Web フレームワーク作り

何年も前から作りかけなんだよね。

継続使えるといろいろ楽だったりもするけど、ステートレスの方を選択したい。

@ で始まる変数でリクエストパラメータやセッション変数にアクセスできる。

  • @foo リクエストパラメータ
  • s@foo セッション変数
  • c@foo クッキー

(setf s@foo "bar") みたいなこともしたい。

ビューは S 式だけど、(list (make-instance 'html :content (list (make-instance 'header ...) ...))) みたいなのに変換して User-Agent によって出力を変えるとかもしてみたい。

(defmacro with-default-template ((&key (title "ブログ")) &body body)
`(html (:html
(:head
(:meta :charset "UTF-8")
(:title ,title)
(:script :type "text/javascript"
:src "http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"))
(:body
(:div (get-universal-time))
,@body))))

(defaction index.html ()
(with-default-template ()
(:h1 "ブログ")
(:a :href (path-for 'new-entry) "投稿")
(collect (#M(^ html
(:h3 (:a :href (path-for 'entry :id (id _)) #"""#,(title _) <#,(id _)>"""))
(:div :class :content (content _)))
(scan (clsql:select 'entry :flatp t :refresh t :order-by '(([created-at] :desc))))))))

(defaction new-entry (:route "entry/new")
(with-default-template ()
(:h1 "投稿")
(:form :action (path-for 'create-entry) :method :post
(:div "タイトル" (:text :name :title))
(:textarea :name :content :rows 5 :cols 40)
(:submit :value "投稿"))
(:a :href (path-for 'index.html) "戻る")))

(defaction create-entry ()
;; TODO redirect で throw するので無駄に新しいトランザクションを作る
(with-db
(clsql:update-records-from-instance
(make-instance 'entry :title @title :content @content)))
(redirect (path-for 'index.html)))

(defaction entry (:route "entry/:id")
(let ((entry (car (clsql:select 'entry :where [= [id] @id] :flatp t))))
(with-default-template ()
(:h1 (title entry))
(:div (content entry))
(:div (:a :href (path-for 'index.html) "戻る")))))

いつか完成するかな。

2010/11/23

Opera での Hit a Hint

Opera のカスタマイズ で使わせてもらった Hit a Hint が自分でキーをカスタマイズできるようになっていました。

すばらしい。ありがとうございます。

最初だけ &quot;&quot; で後は &quot;/&quot; のシリーズを作る

Common Lisp の SERIES にある latch の使い道が分からなかったけど、初めて使い道を見付けた。

(subseries (latch (series "") :after 1 :post "/") 0 5)

本当はこんな関数を書くのに使った。

(defun path-to-regexp (path)
(let (bindings)
(values
(with-output-to-string (out)
(iterate ((x (scan (ppcre:split "/" path)))
(y (latch (series #'values) :after 1 :post (^ write-string "/" out))))
(funcall y)
(if (q:string-start-p x ":")
(let ((var (subseq x 1)))
(write-string "([^/]+)" out)
(push (intern (string-upcase var)) bindings))
(write-string (ppcre:quote-meta-chars x) out))))
(nreverse bindings))))
;; (path-to-regexp "a/:a-id/b/:id")
;; => "a/([^/]+)/b/([^/]+)"
;; (A-ID ID)

2010/11/21

2日間みっちり! Lispチュートリアル & 事例紹介セミナー

金曜日に数理システムさんの 2日間みっちり! Lispチュートリアル & 事例紹介セミナー (数理システムユーザーコンファレンス2010) の 2 日目に行ってきました。ときどき 1 日目には行っていましたが、2 日目に行くのは初めてでした。

いろんな意味で豪華でした。

個人的には外国の方二名と(日本語で)お話できたのが嬉しかったです。

ありがとうございました。

2010/11/17

CLSQL で MySQL の auto_increment と text を使う

(deftype text ()
'string)

(defmethod clsql-sys:database-get-type-specifier ((type (eql 'text)) args database db-type)
(declare (ignore args database db-type))
"TEXT")

(defun print-slots (object &optional (stream t))
(print-unreadable-object (object stream :type t :identity t)
(format stream "~{~{~a: ~a~}~^ ~}"
(collect (#M(^ (list _ (slot-value object _)))
(choose-if (complement (^ eq 'clsql-sys::view-database _))
(c2mop:slot-definition-name
(scan (c2mop:class-slots (class-of object))))))))))

(def-view-class entry ()
((id :initarg :id :accessor it :type integer
:db-kind :key
:db-constraints :auto-increment)
(title :initarg :title :accessor title :type string)
(content :initarg :content :accessor content :type text)
(created-at :initarg :created-at :initform (get-time)
:accessor created-at
:type wall-time)))

2010/11/16

#p~/.sbclrc

http://twitter.com/#!/quek/status/3278540657131520 の件。

思ったより、ぐちゃぐちゃだぁ。

(set-dispatch-macro-character
#\# #\p
(lambda (stream char num)
(declare (ignore char num))
(pathname
(if (equal #\" (peek-char nil stream t t t))
(read stream t t t)
(with-output-to-string (out)
(loop for c = (peek-char nil stream nil nil t)
while (and c
(not (find c '(#\space #\tab #\cr #\lf)))
(multiple-value-bind (function non-terminating-p)
(get-macro-character c)
(or (null function) non-terminating-p)))
do (read-char stream t t t)
if (char= c #\\)
do (let ((next (read-char stream t t t)))
(when (member next '(#\\ #\"))
(write-char #\\ out))
(write-char next out))
else
do (write-char c out)))))))

(with-open-file (in #p"~/.sbclrc")
(read-line in))
;; => ";;;;; -*-lisp-*-"
;; NIL

(with-open-file (in #p~/.sbclrc)
(read-line in))
;; => ";;;;; -*-lisp-*-"
;; NIL

~/.sbclrc に入れといてみよう。

2010/11/12

CLSQL Error 2014 / Commands out of sync; you can't run this command now

loop 中に他のクエリは実行できないのかな?

大量のレコードを select して一件一件フェッチしながら update とかしたいとき、どうすればいい?

(eval-when (:compile-toplevel :load-toplevel :execute)
(require :clsql)
(require :series))

(eval-when (:compile-toplevel :load-toplevel :execute)
(use-package :clsql)
(series::install :implicit-map t))

(defparameter *connection-spec* '("localhost" "blog_development" "root" ""))

(defmacro with-db ((&optional (db-var '*default-database*)) &body body)
`(with-database (,db-var *connection-spec* :make-default t :pool t
:encoding :utf-8 :database-type :mysql)
;;(clsql-sys::start-sql-recording)
(execute-command "set character_set_client='utf8'")
(execute-command "set character_set_connection='utf8'")
(execute-command "set character_set_results='utf8'")
(execute-command "start transaction")
(prog1 (progn ,@body)
(execute-command "commit")
(clsql-sys::stop-sql-recording))))

(with-db ()
(loop for x being each tuple in "select 'まみむめも♪'"
do (print (query "select 'まみむめも♪'"))
do (print x)))
#| => エラーになる。。。
While accessing database #<MYSQL-DATABASE localhost/blog_development/root OPEN {1004A2AB41}>
with expression "select 'まみむめも♪'":
Error 2014 / Commands out of sync; you can't run this command now
has occurred.
[Condition of type SQL-DATABASE-DATA-ERROR]
|#

2010/11/11

SBCL でも ~

使えると便利だよ。

(lisp-implementation-version)
;; => "1.0.44.22"

(probe-file "~/.tc")
;; => #P"/home/ancient/letter/dot.file/dot.tc"

2010/11/08

バレエの発表会

今日は娘の5回目のバレエの発表会。例年は年末にあるので、発表会が終わると今年もー年終わったなと、感じる。今回はあまり練習してなもったので、それなりのできだったね。

さて、問題はバレエを続けるか否か。決めないと。そろそろ決めないとね。

2010/11/04

Stumpwm で It's All Text!

Firefox の It's All Text! は便利。それを Chrome でも Opera でも使いたい。探せばあるだろうけど、せっかく Common Lisp の Stumpwm を使っているので、 Stumpwm で同等の機能を実装してみた。ブラウザ以外でも C-a で全選択 C-c でコピー C-v でペーストができるものなら何にでも対応する。

(progn
(defvar *emacs-edit-request-window* nil)

(defcommand return-to-emacs-edit-request-window () ()
"戻る"
(let* ((win *emacs-edit-request-window*)
(group (stumpwm::window-group win))
(frame (stumpwm::window-frame win))
(old-frame (stumpwm::tile-group-current-frame group)))
(stumpwm::frame-raise-window group frame win)
(stumpwm::focus-all win)
(unless (eq frame old-frame)
(stumpwm::show-frame-indicator group))))

;; emacs で編集する。
(defun send-fake-key-seq (key-seq)
(loop for key in (stumpwm::parse-key-seq key-seq)
do (stumpwm::send-fake-key (current-window) key))
(xlib:display-finish-output *display*))

(defcommand start-emacs-edit () ()
"start emacs edit"
(setf *emacs-edit-request-window* (current-window))
(send-fake-key-seq "
C-a
C-c"
)
(run-shell-command "emacsclient -e '(progn (switch-to-buffer (generate-new-buffer \"*stumpwm-emacs-edit*\")) (setq buffer-offer-save nil))'")
(stumpwm::run-commands "emacs")
(send-fake-key-seq "
C-y
M-<"
))

(defcommand commit-emacs-edit () ()
"commit emacs edit"
(send-fake-key-seq "
C-x
h
M-w
C-x
k
RET"
)
(return-to-emacs-edit-request-window)
(send-fake-key-seq "
C-a
C-v"
))

(define-key *root-map* (kbd ",") "start-emacs-edit")
(define-key *root-map* (kbd ".") "commit-emacs-edit")
)

単にキーシーケンスを送っているだけなので、Emacs で編集中にタブを切り替えたりフォーカスを移動したりするとちゃんと動かない。

2010/11/03

Opera のカスタマイズ

uim の T-Code にしたので Opera + uim-skk でまともに日本語入力できない件がたいした問題ではなくなった。 Chrome を使っていた時に便利だった hit a hint を Opera でも使いたくなった。ついでに、j と k でスクロールも。

OperaでもVimperatorとHit-a-Hintぐらいできるよ - by edvakf in hatena にある Hit-a-Hintを行うブックマークレット をブックマークに登録して nickname を hitahint にする。

設定の Advanced -> Shortcuts -> Keyboad setup の Opera Standard for UNIX を Deplicate してできた ~/.opera/keyboard/unix_keyboard_1.ini を編集する。

[Application]
h="Go to page, "hitahint""
j=Scroll down
k=Scroll up

;Feature ExtendedShortcuts, h=...

あとは 1 2 でのタブ移動の邪魔にならないように Stop form focus でページ読み込み時のフォーカスを抑止する。

Opera はカスタマイズしなくても使えるのがいいところなんだけどなぁ。

2010/11/02

uim の T-Code キー配列カスタマイズ

clmemo@aka: 「日本語入力 T-Code のススメ」〜 Google 日本語入力 TechTalk ライトニングトーク に触発されたので T-Code の環境設定をする。

Dvorak をさらにいじったキー配列を使っている。 tc2 は tcode-key-layout-list を設定すればいい。 uim の方はちょっと頑張らないといけないみたい。

~/.tc の設定。

;;; -*-emacs-lisp-*- This file is automatically created
(setq tcode-data-directory (expand-file-name "~/.tcode/"))
(setq tcode-site-data-directory tcode-data-directory)

(setq tcode-default-input-method "japanese-T-Code")

;; ○句読点等の切り替え
;; 標準よりも組み合わせを増やし、かつ「(」や「)」も切り替えるようにする。
(defvar tcode-left-paren "(" "* 開き括弧")
(make-variable-buffer-local 'tcode-left-paren)
(defvar tcode-right-paren ")" "* 閉じ括弧")
(make-variable-buffer-local 'tcode-right-paren)
(setq tcode-switch-table-list
'(;; 全角系 デフォールト
((tcode-touten . "、")
(tcode-kuten . "。")
(tcode-left-paren . "(")
(tcode-right-paren . ")"))
;; 半角系
((tcode-touten . ", ")
(tcode-kuten . ". ")
(tcode-left-paren . "(")
(tcode-right-paren . ")"))
;; 2バイト系
((tcode-touten . ",")
(tcode-kuten . ".")
(tcode-left-paren . "(")
(tcode-right-paren . ")"))))
;;; ○句読点の自動切り替え
;; 切り替えの規準(正規表現)の指定
(setq tcode-kutouten-regexp-alist
(list '("[、。]" . 2)
(if (tcode-nemacs-p)
'("\\z[,.]" . 1)
'("\\cj[,.]" . 1))
'("[,.]" . 3)))
;; 切り替える主モードを指定(text-mode latex-mode)
(setq tcode-auto-identify-kutouten-mode-list
'(text-mode latex-mode hnf-mode))
;; バッファで最初に Tコードモードに入ったときに、
;; 句読点を自動的に切り替える。
(add-hook 'tcode-mode-hook 'tcode-auto-switch-kutouten)

;; EELLL でイメージを使わない。
(setq eelll-use-image nil)

;; isearch-printing-char: Symbol's function definition is void: isearch-last-command-char 対策
;; tc-sysdep.el の L231
(if (string-match "^\\(19\\|2[0123]\\)" emacs-version)
(progn
(defun tcode-redo-command (ch)
"キー CH を現在のキーマップで再実行する"
(setq unread-command-events
(cons (character-to-event ch) unread-command-events)))
(or (fboundp 'character-to-event)
(defun character-to-event (ch)
ch))
;; XEmacs
(or (fboundp 'isearch-last-command-char)
(defun isearch-last-command-char ()
last-command-char))
(or (boundp 'search-upper-case)
(setq search-upper-case 'not-yanks)))
;; NEmacs
(defun tcode-redo-command (ch)
"キー CH を現在のキーマップで再実行する"
(setq unread-command-char ch)))


;; キーボードのカスタマイズ
(setq tcode-key-layout-list
'(("quek" . (?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 ?0
?' ?( ?) ?p ?y ?f ?g ?c ?r ?z
?a ?o ?e ?u ?i ?d ?h ?t ?n ?s
?\; ?q ?j ?k ?x ?b ?m ?w ?v ?l
;; ?! ?\@ ?# ?$ ?% ?^ ?& ?* ?< ?>
;; ?\" ?, ?. ?P ?Y ?F ?G ?C ?R ?L
;; ?A ?O ?E ?U ?I ?D ?H ?T ?N ?S
;; ?L ?Q ?J ?K ?X ?B ?M ?W ?V ?Z
))))


(add-hook
'tcode-ready-hook
(lambda ()
(set-tcode-mode-key
"-" 'tcode-insert-ya-outset) ; 記号入力
(set-tcode-mode-key ; 片仮名変換
"$" 'tcode-katakana-preceding-chars)
;; モード切り替え時にヘルプ用のバッファを消す。
(setq tcode-auto-remove-help-count 1)
(add-hook 'tcode-toggle-hook
'tcode-auto-remove-help)
;; 補完機能
(require 'tc-complete)
;; カーソルに色をつける
(and window-system
(tcode-enable-cursor-to-change-color)
(setq tcode-mode-on-cursor-color "Violet"))
(push 'org-self-insert-command tcode-input-command-list)
;; 独自キーマップ
(tcode-set-key-layout "quek")
;; デフォルトは「=」で補完・確定なので、それを無効にする
(aset tcode-key-translation-rule-table (- (string-to-char "=") ? ) 19) ; Tコードキー
;; 代わりに "/" を補完・確定に使う。
(tcode-set-key "/" 'tcode-mazegaki-complete-and-convert)
;; コントロールキーを伴わないモード切り替え
(global-set-key " " 'tcode-electric-space)
(global-set-key ")" 'tcode-electric-comma)
(tcode-set-key " " 'tcode-electric-space)
))

elisp でテーブルを出力する。

(defun quek-dupm-tcode-key-table ()
"(quek-dupm-tcode-key-table)"
(load "tc-tbl")
(remove-if
(lambda (x)
(or (string= " " (caadr x))
(string= "■" (caadr x))
(atom (caar x))))
(mapcar (lambda (x)
(list (list (mapcar (lambda (key)
(char-to-string (tcode-key-to-char key)))
(tcode-encode x)))
(list (char-to-string x))))
(apply 'concat (mapcar 'identity tcode-tbl)))))

tcode.scm を上書く。本当は上書かずに、ホームの下とかに置きたかったのでけど、何かがうまく動かなくて断念した。

(require "generic.scm")
;;
(define tcode-rule
'(
((("'" "1")) ("ヮ")) ((("(" "1")) ("ヰ")) (((")" "1")) ("ヱ"))
((("p" "1")) ("ヵ")) ((("y" "1")) ("ヶ")) ((("f" "1")) ("請"))
((("g" "1")) ("境")) ((("c" "1")) ("系")) ((("r" "1")) ("探"))
((("z" "1")) ("象")) ((("a" "1")) ("ゎ")) ((("o" "1")) ("ゐ"))
((("e" "1")) ("ゑ")) ((("d" "1")) ("盛")) ((("h" "1")) ("革"))
((("t" "1")) ("突")) ((("n" "1")) ("温")) ((("s" "1")) ("捕"))
((("b" "1")) ("依")) ((("m" "1")) ("繊")) ((("w" "1")) ("借"))
((("v" "1")) ("須")) ((("l" "1")) ("訳")) ((("'" "2")) ("丑"))
((("(" "2")) ("臼")) (((")" "2")) ("宴")) ((("p" "2")) ("縁"))
((("y" "2")) ("曳")) ((("f" "2")) ("尚")) ((("g" "2")) ("賀"))
((("c" "2")) ("岸")) ((("r" "2")) ("責")) ((("z" "2")) ("漁"))
((("a" "2")) ("於")) ((("o" "2")) ("汚")) ((("e" "2")) ("乙"))
((("u" "2")) ("穏")) ((("d" "2")) ("益")) ((("h" "2")) ("援"))
((("t" "2")) ("周")) ((("n" "2")) ("域")) ((("s" "2")) ("荒"))
((("b" "2")) ("織")) ((("m" "2")) ("父")) ((("w" "2")) ("枚"))
((("v" "2")) ("乱")) ((("l" "2")) ("香")) ((("'" "3")) ("鬼"))
((("(" "3")) ("虚")) (((")" "3")) ("狭")) ((("p" "3")) ("脅"))
((("y" "3")) ("驚")) ((("f" "3")) ("舎")) ((("g" "3")) ("喜"))
((("c" "3")) ("幹")) ((("r" "3")) ("丘")) ((("z" "3")) ("糖"))
((("a" "3")) ("奇")) ((("o" "3")) ("既")) ((("e" "3")) ("菊"))
((("u" "3")) ("却")) ((("i" "3")) ("享")) ((("d" "3")) ("康"))
((("h" "3")) ("徒")) ((("t" "3")) ("景")) ((("n" "3")) ("処"))
((("s" "3")) ("ぜ")) ((("b" "3")) ("譲")) ((("m" "3")) ("ヘ"))
((("w" "3")) ("模")) ((("v" "3")) ("降")) ((("l" "3")) ("走"))
((("'" "4")) ("孤")) ((("(" "4")) ("誇")) (((")" "4")) ("黄"))
((("p" "4")) ("后")) ((("y" "4")) ("耕")) ((("f" "4")) ("布"))
((("g" "4")) ("苦")) ((("c" "4")) ("圧")) ((("r" "4")) ("恵"))
((("z" "4")) ("固")) ((("a" "4")) ("巧")) ((("o" "4")) ("克"))
((("e" "4")) ("懇")) ((("u" "4")) ("困")) ((("i" "4")) ("昏"))
((("d" "4")) ("邦")) ((("h" "4")) ("舞")) ((("t" "4")) ("雑"))
((("n" "4")) ("漢")) ((("s" "4")) ("緊")) ((("b" "4")) ("激"))
((("m" "4")) ("干")) ((("w" "4")) ("彦")) ((("v" "4")) ("均"))
((("l" "4")) ("又")) ((("'" "5")) ("奉")) ((("(" "5")) ("某"))
(((")" "5")) ("貌")) ((("p" "5")) ("卜")) ((("f" "5")) ("姿"))
((("g" "5")) ("絶")) ((("c" "5")) ("密")) ((("r" "5")) ("秘"))
((("z" "5")) ("押")) ((("d" "5")) ("衆")) ((("h" "5")) ("節"))
((("t" "5")) ("杉")) ((("n" "5")) ("肉")) ((("s" "5")) ("除"))
((("b" "5")) ("測")) ((("m" "5")) ("血")) ((("w" "5")) ("散"))
((("v" "5")) ("笑")) ((("l" "5")) ("弁")) ((("'" "6")) ("湖"))
((("(" "6")) ("礼")) (((")" "6")) ("著")) ((("p" "6")) ("移"))
((("y" "6")) ("郷")) ((("a" "6")) ("償")) ((("o" "6")) ("欧"))
((("e" "6")) ("努")) ((("u" "6")) ("底")) ((("i" "6")) ("亜"))
(((";" "6")) ("禁")) ((("q" "6")) ("硝")) ((("j" "6")) ("樹"))
((("k" "6")) ("句")) ((("x" "6")) ("礎")) ((("'" "7")) ("端"))
((("(" "7")) ("飾")) (((")" "7")) ("郵")) ((("p" "7")) ("塩"))
((("y" "7")) ("群")) ((("g" "7")) ("星")) ((("c" "7")) ("析"))
((("r" "7")) ("遷")) ((("z" "7")) ("宣")) ((("a" "7")) ("紅"))
((("o" "7")) ("傷")) ((("e" "7")) ("豪")) ((("u" "7")) ("維"))
((("i" "7")) ("脱")) ((("d" "7")) ("鼠")) ((("h" "7")) ("曹"))
((("t" "7")) ("奏")) ((("n" "7")) ("尊")) (((";" "7")) ("絹"))
((("q" "7")) ("被")) ((("j" "7")) ("源")) ((("k" "7")) ("願"))
((("x" "7")) ("臨")) ((("'" "8")) ("刷")) ((("(" "8")) ("寿"))
(((")" "8")) ("順")) ((("p" "8")) ("危")) ((("y" "8")) ("砂"))
((("f" "8")) ("庶")) ((("g" "8")) ("粧")) ((("c" "8")) ("丈"))
((("r" "8")) ("称")) ((("z" "8")) ("蒸")) ((("a" "8")) ("舗"))
((("o" "8")) ("充")) ((("e" "8")) ("喫")) ((("u" "8")) ("腕"))
((("i" "8")) ("暴")) (((";" "8")) ("批")) ((("q" "8")) ("慶"))
((("j" "8")) ("渉")) ((("k" "8")) ("竜")) ((("x" "8")) ("併"))
((("'" "9")) ("震")) ((("(" "9")) ("扱")) (((")" "9")) ("片"))
((("p" "9")) ("札")) ((("y" "9")) ("乞")) ((("g" "9")) ("乃"))
((("c" "9")) ("如")) ((("r" "9")) ("尼")) ((("z" "9")) ("帳"))
((("a" "9")) ("輪")) ((("o" "9")) ("倒")) ((("e" "9")) ("操"))
((("u" "9")) ("柄")) ((("i" "9")) ("魚")) (((";" "9")) ("就"))
((("q" "9")) ("駐")) ((("j" "9")) ("揮")) ((("k" "9")) ("丹"))
((("x" "9")) ("鮮")) ((("'" "0")) ("弘")) ((("(" "0")) ("痛"))
(((")" "0")) ("票")) ((("p" "0")) ("訴")) ((("y" "0")) ("遺"))
((("f" "0")) ("欄")) ((("g" "0")) ("龍")) ((("c" "0")) ("略"))
((("r" "0")) ("慮")) ((("z" "0")) ("累")) ((("a" "0")) ("則"))
((("o" "0")) ("存")) ((("e" "0")) ("倍")) ((("u" "0")) ("牛"))
((("i" "0")) ("釈")) (((";" "0")) ("綱")) ((("q" "0")) ("潟"))
((("j" "0")) ("創")) ((("k" "0")) ("背")) ((("x" "0")) ("皮"))
((("1" "'")) ("ヲ")) ((("2" "'")) ("哀")) ((("3" "'")) ("暇"))
((("4" "'")) ("啓")) ((("5" "'")) ("把")) ((("6" "'")) ("酸"))
((("7" "'")) ("昼")) ((("8" "'")) ("炭")) ((("9" "'")) ("稲"))
((("0" "'")) ("湯")) ((("'" "'")) ("果")) ((("(" "'")) ("告"))
(((")" "'")) ("策")) ((("p" "'")) ("首")) ((("y" "'")) ("農"))
((("f" "'")) ("歩")) ((("g" "'")) ("回")) ((("c" "'")) ("務"))
((("r" "'")) ("島")) ((("z" "'")) ("開")) ((("a" "'")) ("報"))
((("o" "'")) ("紙")) ((("e" "'")) ("館")) ((("u" "'")) ("夜"))
((("i" "'")) ("位")) ((("d" "'")) ("給")) ((("h" "'")) ("員"))
((("t" "'")) ("ど")) ((("n" "'")) ("代")) ((("s" "'")) ("レ"))
(((";" "'")) ("欠")) ((("q" "'")) ("夏")) ((("j" "'")) ("彼"))
((("k" "'")) ("妻")) ((("x" "'")) ("善")) ((("b" "'")) ("相"))
((("m" "'")) ("家")) ((("w" "'")) ("的")) ((("v" "'")) ("対"))
((("l" "'")) ("歴")) ((("1" "(")) ("ゥ")) ((("2" "(")) ("逢"))
((("3" "(")) ("牙")) ((("4" "(")) ("掲")) ((("5" "(")) ("伐"))
((("6" "(")) ("貿")) ((("7" "(")) ("捜")) ((("8" "(")) ("異"))
((("9" "(")) ("隣")) ((("0" "(")) ("旧")) ((("'" "(")) ("概"))
((("(" "(")) ("買")) (((")" "(")) ("詳")) ((("p" "(")) ("由"))
((("y" "(")) ("死")) ((("f" "(")) ("キ")) ((("g" "(")) ("せ"))
((("c" "(")) ("区")) ((("r" "(")) ("百")) ((("z" "(")) ("木"))
((("a" "(")) ("音")) ((("o" "(")) ("王")) ((("e" "(")) ("放"))
((("u" "(")) ("々")) ((("i" "(")) ("応")) ((("d" "(")) ("分"))
((("h" "(")) ("よ")) ((("t" "(")) ("ル")) ((("n" "(")) ("千"))
((("s" "(")) ("ア")) (((";" "(")) ("財")) ((("q" "(")) ("針"))
((("j" "(")) ("裏")) ((("k" "(")) ("居")) ((("x" "(")) ("差"))
((("b" "(")) ("付")) ((("m" "(")) ("プ")) ((("w" "(")) ("ば"))
((("v" "(")) ("ュ")) ((("l" "(")) ("作")) ((("1" ")")) ("ヴ"))
((("2" ")")) ("宛")) ((("3" ")")) ("壊")) ((("4" ")")) ("携"))
((("5" ")")) ("避")) ((("6" ")")) ("攻")) ((("7" ")")) ("焼"))
((("8" ")")) ("闘")) ((("9" ")")) ("奈")) ((("0" ")")) ("夕"))
((("'" ")")) ("武")) ((("(" ")")) ("残")) (((")" ")")) ("両"))
((("p" ")")) ("在")) ((("y" ")")) ("!")) ((("f" ")")) ("や"))
((("g" ")")) ("出")) ((("c" ")")) ("タ")) ((("r" ")")) ("手"))
((("z" ")")) ("保")) ((("a" ")")) ("案")) ((("o" ")")) ("曲"))
((("e" ")")) ("情")) ((("u" ")")) ("引")) ((("i" ")")) ("職"))
((("d" ")")) ("7")) ((("h" ")")) ("か")) ((("t" ")")) ("("))
((("n" ")")) ("ト")) ((("s" ")")) ("れ")) (((";" ")")) ("従"))
((("q" ")")) ("骨")) ((("j" ")")) ("厚")) ((("k" ")")) ("顔"))
((("x" ")")) ("量")) ((("b" ")")) ("内")) ((("m" ")")) ("工"))
((("w" ")")) ("八")) ((("v" ")")) ("テ")) ((("l" ")")) ("見"))
((("1" "p")) ("ヂ")) ((("2" "p")) ("囲")) ((("3" "p")) ("較"))
((("4" "p")) ("劇")) ((("5" "p")) ("卑")) ((("6" "p")) ("盤"))
((("7" "p")) ("帯")) ((("8" "p")) ("易")) ((("9" "p")) ("速"))
((("0" "p")) ("拡")) ((("'" "p")) ("風")) ((("(" "p")) ("階"))
(((")" "p")) ("能")) ((("p" "p")) ("論")) ((("y" "p")) ("増"))
((("f" "p")) ("コ")) ((("g" "p")) ("山")) ((("c" "p")) ("者"))
((("r" "p")) ("発")) ((("z" "p")) ("立")) ((("a" "p")) ("横"))
((("o" "p")) ("興")) ((("e" "p")) ("刺")) ((("u" "p")) ("側"))
((("i" "p")) ("覚")) ((("d" "p")) ("き")) ((("h" "p")) ("っ"))
((("t" "p")) ("日")) ((("n" "p")) ("国")) ((("s" "p")) ("二"))
(((";" "p")) ("適")) ((("q" "p")) ("類")) ((("j" "p")) ("御"))
((("k" "p")) ("宇")) ((("x" "p")) ("推")) ((("b" "p")) ("九"))
((("m" "p")) ("名")) ((("w" "p")) ("川")) ((("v" "p")) ("機"))
((("l" "p")) ("チ")) ((("1" "y")) ("ヅ")) ((("2" "y")) ("庵"))
((("3" "y")) ("寒")) ((("4" "y")) ("賢")) ((("5" "y")) ("藩"))
((("6" "y")) ("汽")) ((("7" "y")) ("換")) ((("8" "y")) ("延"))
((("9" "y")) ("雪")) ((("0" "y")) ("互")) ((("'" "y")) ("細"))
((("(" "y")) ("古")) (((")" "y")) ("利")) ((("p" "y")) ("ペ"))
((("y" "y")) ("ゃ")) ((("f" "y")) ("ナ")) ((("g" "y")) ("金"))
((("c" "y")) ("マ")) ((("r" "y")) ("和")) ((("z" "y")) ("女"))
((("a" "y")) ("崎")) ((("o" "y")) ("白")) ((("e" "y")) ("ぐ"))
((("u" "y")) ("官")) ((("i" "y")) ("球")) ((("d" "y")) ("上"))
((("h" "y")) ("く")) ((("t" "y")) ("8")) ((("n" "y")) ("え"))
((("s" "y")) ("年")) (((";" "y")) ("母")) ((("q" "y")) ("奥"))
((("j" "y")) ("因")) ((("k" "y")) ("酒")) ((("x" "y")) ("伸"))
((("b" "y")) ("サ")) ((("m" "y")) ("建")) ((("w" "y")) ("パ"))
((("v" "y")) ("第")) ((("l" "y")) ("入")) ((("1" "f")) ("簡"))
((("2" "f")) ("徴")) ((("3" "f")) ("触")) ((("4" "f")) ("宗"))
((("5" "f")) ("植")) ((("7" "f")) ("索")) ((("8" "f")) ("射"))
((("9" "f")) ("濁")) ((("0" "f")) ("慢")) ((("'" "f")) ("害"))
((("(" "f")) ("賃")) (((")" "f")) ("整")) ((("p" "f")) ("軽"))
((("y" "f")) ("評")) ((("f" "f")) ("佐")) ((("g" "f")) ("法"))
((("c" "f")) ("数")) ((("r" "f")) ("郎")) ((("z" "f")) ("談"))
((("a" "f")) ("服")) ((("o" "f")) ("声")) ((("e" "f")) ("任"))
((("u" "f")) ("検")) ((("i" "f")) ("豊")) ((("d" "f")) ("美"))
((("h" "f")) ("題")) ((("t" "f")) ("井")) ((("n" "f")) ("洋"))
((("s" "f")) ("実")) (((";" "f")) ("爆")) ((("q" "f")) ("仲"))
((("j" "f")) ("茶")) ((("k" "f")) ("率")) ((("x" "f")) ("比"))
((("b" "f")) ("昔")) ((("m" "f")) ("短")) ((("w" "f")) ("岩"))
((("v" "f")) ("巨")) ((("l" "f")) ("敗")) ((("1" "g")) ("承"))
((("2" "g")) ("章")) ((("3" "g")) ("候")) ((("4" "g")) ("途"))
((("5" "g")) ("複")) ((("7" "g")) ("冊")) ((("8" "g")) ("需"))
((("9" "g")) ("詑")) ((("0" "g")) ("迷")) ((("'" "g")) ("撃"))
((("(" "g")) ("折")) (((")" "g")) ("追")) ((("p" "g")) ("隊"))
((("y" "g")) ("角")) ((("f" "g")) ("接")) ((("g" "g")) ("備"))
((("c" "g")) ("最")) ((("r" "g")) ("急")) ((("z" "g")) ("験"))
((("a" "g")) ("変")) ((("o" "g")) ("審")) ((("e" "g")) ("改"))
((("u" "g")) ("昇")) ((("i" "g")) ("芸")) ((("d" "g")) ("宿"))
((("h" "g")) ("制")) ((("t" "g")) ("集")) ((("n" "g")) ("安"))
((("s" "g")) ("画")) (((";" "g")) ("陽")) ((("q" "g")) ("構"))
((("j" "g")) ("旅")) ((("k" "g")) ("施")) ((("x" "g")) ("曜"))
((("b" "g")) ("遠")) ((("m" "g")) ("ォ")) ((("w" "g")) ("将"))
((("v" "g")) ("ぞ")) ((("l" "g")) ("塚")) ((("1" "c")) ("快"))
((("2" "c")) ("否")) ((("3" "c")) ("歯")) ((("4" "c")) ("筆"))
((("5" "c")) ("里")) ((("7" "c")) ("皿")) ((("8" "c")) ("輯"))
((("9" "c")) ("蓄")) ((("0" "c")) ("戻")) ((("'" "c")) ("浴"))
((("(" "c")) ("秀")) (((")" "c")) ("糸")) ((("p" "c")) ("春"))
((("y" "c")) ("幸")) ((("f" "c")) ("記")) ((("g" "c")) ("朝"))
((("c" "c")) ("知")) ((("r" "c")) ("ワ")) ((("z" "c")) ("送"))
((("a" "c")) ("限")) ((("o" "c")) ("研")) ((("e" "c")) ("労"))
((("u" "c")) ("統")) ((("i" "c")) ("役")) ((("d" "c")) ("セ"))
((("h" "c")) ("運")) ((("t" "c")) ("ツ")) ((("n" "c")) ("特"))
((("s" "c")) ("谷")) (((";" "c")) ("ァ")) ((("q" "c")) ("導"))
((("j" "c")) ("認")) ((("k" "c")) ("健")) ((("x" "c")) ("尾"))
((("b" "c")) ("序")) ((("m" "c")) ("振")) ((("w" "c")) ("練"))
((("v" "c")) ("念")) ((("l" "c")) ("働")) ((("1" "r")) ("包"))
((("2" "r")) ("納")) ((("3" "r")) ("頼")) ((("4" "r")) ("逃"))
((("5" "r")) ("寝")) ((("7" "r")) ("賛")) ((("8" "r")) ("瞬"))
((("9" "r")) ("貯")) ((("0" "r")) ("羊")) ((("'" "r")) ("積"))
((("(" "r")) ("程")) (((")" "r")) ("断")) ((("p" "r")) ("低"))
((("y" "r")) ("減")) ((("f" "r")) ("モ")) ((("g" "r")) ("資"))
((("c" "r")) ("士")) ((("r" "r")) ("費")) ((("z" "r")) ("ィ"))
((("a" "r")) ("逆")) ((("o" "r")) ("企")) ((("e" "r")) ("精"))
((("u" "r")) ("ざ")) ((("i" "r")) ("印")) ((("d" "r")) ("神"))
((("h" "r")) ("び")) ((("t" "r")) ("打")) ((("n" "r")) ("勤"))
((("s" "r")) ("ャ")) (((";" "r")) ("殺")) ((("q" "r")) ("負"))
((("j" "r")) ("何")) ((("k" "r")) ("履")) ((("x" "r")) ("般"))
((("b" "r")) ("耳")) ((("m" "r")) ("授")) ((("w" "r")) ("版"))
((("v" "r")) ("効")) ((("l" "r")) ("視")) ((("1" "z")) ("唱"))
((("2" "z")) ("暮")) ((("3" "z")) ("憲")) ((("4" "z")) ("勉"))
((("5" "z")) ("罪")) ((("8" "z")) ("盾")) ((("9" "z")) ("虫"))
((("'" "z")) ("故")) ((("(" "z")) ("鉱")) (((")" "z")) ("提"))
((("p" "z")) ("児")) ((("y" "z")) ("敷")) ((("f" "z")) ("無"))
((("g" "z")) ("石")) ((("c" "z")) ("屋")) ((("r" "z")) ("解"))
((("z" "z")) ("募")) ((("a" "z")) ("令")) ((("o" "z")) ("違"))
((("e" "z")) ("装")) ((("u" "z")) ("然")) ((("i" "z")) ("確"))
((("d" "z")) ("優")) ((("h" "z")) ("公")) ((("t" "z")) ("品"))
((("n" "z")) ("語")) ((("s" "z")) ("演")) (((";" "z")) ("券"))
((("q" "z")) ("悪")) ((("j" "z")) ("秋")) ((("k" "z")) ("非"))
((("x" "z")) ("便")) ((("b" "z")) ("示")) ((("m" "z")) ("即"))
((("w" "z")) ("難")) ((("v" "z")) ("普")) ((("l" "z")) ("辺"))
((("1" "a")) ("ぱ")) ((("2" "a")) ("慰")) ((("3" "a")) ("我"))
((("4" "a")) ("兼")) ((("5" "a")) ("菱")) ((("6" "a")) ("桜"))
((("7" "a")) ("瀬")) ((("8" "a")) ("鳥")) ((("9" "a")) ("催"))
((("0" "a")) ("障")) ((("'" "a")) ("収")) ((("(" "a")) ("際"))
(((")" "a")) ("太")) ((("p" "a")) ("園")) ((("y" "a")) ("船"))
((("f" "a")) ("中")) ((("g" "a")) ("ス")) ((("c" "a")) ("も"))
((("r" "a")) ("お")) ((("z" "a")) ("定")) ((("a" "a")) ("種"))
((("o" "a")) ("岡")) ((("e" "a")) ("結")) ((("u" "a")) ("進"))
((("i" "a")) ("真")) ((("d" "a")) ("3")) ((("h" "a")) ("と"))
((("t" "a")) ("〇")) ((("n" "a")) ("て")) ((("s" "a")) ("る"))
(((";" "a")) ("ヒ")) ((("q" "a")) ("江")) ((("j" "a")) ("別"))
((("k" "a")) ("考")) ((("x" "a")) ("権")) ((("b" "a")) ("ッ"))
((("m" "a")) ("人")) ((("w" "a")) ("三")) ((("v" "a")) ("京"))
((("l" "a")) ("ち")) ((("1" "o")) ("ぴ")) ((("2" "o")) ("為"))
((("3" "o")) ("掛")) ((("4" "o")) ("嫌")) ((("5" "o")) ("紐"))
((("6" "o")) ("典")) ((("7" "o")) ("博")) ((("8" "o")) ("筋"))
((("9" "o")) ("忠")) ((("0" "o")) ("乳")) ((("'" "o")) ("若"))
((("(" "o")) ("雄")) (((")" "o")) ("査")) ((("p" "o")) ("ふ"))
((("y" "o")) ("賞")) ((("f" "o")) ("わ")) ((("g" "o")) ("ラ"))
((("c" "o")) ("東")) ((("r" "o")) ("生")) ((("z" "o")) ("ろ"))
((("a" "o")) ("宅")) ((("o" "o")) ("熟")) ((("e" "o")) ("待"))
((("u" "o")) ("取")) ((("i" "o")) ("科")) ((("d" "o")) ("ー"))
((("h" "o")) ("し")) ((("t" "o")) ("た")) ((("n" "o")) ("一"))
((("s" "o")) ("が")) (((";" "o")) ("及")) ((("q" "o")) ("久"))
((("j" "o")) ("蔵")) ((("k" "o")) ("早")) ((("x" "o")) ("造"))
((("b" "o")) ("ロ")) ((("m" "o")) ("ク")) ((("w" "o")) ("万"))
((("v" "o")) ("方")) ((("l" "o")) ("フ")) ((("1" "e")) ("ぷ"))
((("2" "e")) ("陰")) ((("3" "e")) ("敢")) ((("4" "e")) ("顕"))
((("5" "e")) ("描")) ((("6" "e")) ("採")) ((("7" "e")) ("謡"))
((("8" "e")) ("希")) ((("9" "e")) ("仏")) ((("0" "e")) ("察"))
((("'" "e")) ("指")) ((("(" "e")) ("氏")) (((")" "e")) ("丸"))
((("p" "e")) ("続")) ((("y" "e")) ("ェ")) ((("f" "e")) ("う"))
((("g" "e")) ("4")) ((("c" "e")) (")")) ((("r" "e")) ("十"))
((("z" "e")) ("リ")) ((("a" "e")) ("料")) ((("o" "e")) ("土"))
((("e" "e")) ("活")) ((("u" "e")) ("ね")) ((("i" "e")) ("参"))
((("d" "e")) ("い")) ((("h" "e")) ("、")) ((("t" "e")) ("の"))
((("n" "e")) ("5")) ((("s" "e")) ("1")) (((";" "e")) ("投"))
((("q" "e")) ("義")) ((("j" "e")) ("算")) ((("k" "e")) ("半"))
((("x" "e")) ("県")) ((("b" "e")) ("ん")) ((("m" "e")) ("ま"))
((("w" "e")) ("ン")) ((("v" "e")) ("つ")) ((("l" "e")) ("四"))
((("1" "u")) ("ぺ")) ((("2" "u")) ("隠")) ((("3" "u")) ("甘"))
((("4" "u")) ("牽")) ((("5" "u")) ("憤")) ((("6" "u")) ("君"))
((("7" "u")) ("純")) ((("8" "u")) ("副")) ((("9" "u")) ("盟"))
((("0" "u")) ("標")) ((("'" "u")) ("ぎ")) ((("(" "u")) ("格"))
(((")" "u")) ("次")) ((("p" "u")) ("習")) ((("y" "u")) ("火"))
((("f" "u")) ("あ")) ((("g" "u")) ("こ")) ((("c" "u")) ("6"))
((("r" "u")) ("学")) ((("z" "u")) ("月")) ((("a" "u")) ("受"))
((("o" "u")) ("予")) ((("e" "u")) ("切")) ((("u" "u")) ("育"))
((("i" "u")) ("池")) ((("d" "u")) ("。")) ((("t" "u")) ("0"))
((("n" "u")) ("・")) ((("s" "u")) ("2")) (((";" "u")) ("込"))
((("q" "u")) ("沢")) ((("j" "u")) ("軍")) ((("k" "u")) ("青"))
((("x" "u")) ("清")) ((("b" "u")) ("け")) ((("m" "u")) ("イ"))
((("w" "u")) ("す")) ((("v" "u")) ("電")) ((("l" "u")) ("地"))
((("1" "i")) ("ぽ")) ((("2" "i")) ("胃")) ((("3" "i")) ("患"))
((("4" "i")) ("厳")) ((("5" "i")) ("弊")) ((("6" "i")) ("犯"))
((("7" "i")) ("余")) ((("8" "i")) ("堀")) ((("9" "i")) ("肩"))
((("0" "i")) ("療")) ((("'" "i")) ("思")) ((("(" "i")) ("術"))
(((")" "i")) ("広")) ((("p" "i")) ("門")) ((("y" "i")) ("聞"))
((("f" "i")) ("本")) ((("g" "i")) ("さ")) ((("c" "i")) ("ら"))
((("r" "i")) ("高")) ((("z" "i")) ("シ")) ((("a" "i")) ("英"))
((("o" "i")) ("ボ")) ((("e" "i")) ("加")) ((("u" "i")) ("室"))
((("i" "i")) ("少")) ((("d" "i")) ("で")) ((("h" "i")) ("は"))
((("t" "i")) ("に")) ((("n" "i")) ("な")) ((("s" "i")) ("を"))
(((";" "i")) ("転")) ((("q" "i")) ("空")) ((("j" "i")) ("性"))
((("k" "i")) ("使")) ((("x" "i")) ("級")) ((("b" "i")) ("業"))
((("m" "i")) ("時")) ((("w" "i")) ("「")) ((("v" "i")) ("長"))
((("l" "i")) ("み")) ((("1" "d")) ("朱")) ((("2" "d")) ("遅"))
((("3" "d")) ("甲")) ((("4" "d")) ("致")) ((("5" "d")) ("汎"))
((("7" "d")) ("衰")) ((("8" "d")) ("滋")) ((("9" "d")) ("沈"))
((("0" "d")) ("己")) ((("'" "d")) ("病")) ((("(" "d")) ("終"))
(((")" "d")) ("起")) ((("p" "d")) ("路")) ((("y" "d")) ("越"))
((("f" "d")) ("む")) ((("g" "d")) ("南")) ((("c" "d")) ("原"))
((("r" "d")) ("駅")) ((("z" "d")) ("物")) ((("a" "d")) ("勢"))
((("o" "d")) ("必")) ((("e" "d")) ("講")) ((("u" "d")) ("愛"))
((("i" "d")) ("管")) ((("d" "d")) ("要")) ((("h" "d")) ("設"))
((("t" "d")) ("水")) ((("n" "d")) ("藤")) ((("s" "d")) ("有"))
(((";" "d")) ("素")) ((("q" "d")) ("兵")) ((("j" "d")) ("専"))
((("k" "d")) ("親")) ((("x" "d")) ("寮")) ((("b" "d")) ("ホ"))
((("m" "d")) ("共")) ((("w" "d")) ("ブ")) ((("v" "d")) ("平"))
((("l" "d")) ("楽")) ((("1" "h")) ("陣")) ((("2" "h")) ("鶴"))
((("3" "h")) ("鹿")) ((("4" "h")) ("貨")) ((("5" "h")) ("絡"))
((("7" "h")) ("趨")) ((("8" "h")) ("湿")) ((("9" "h")) ("添"))
((("0" "h")) ("已")) ((("'" "h")) ("常")) ((("(" "h")) ("張"))
(((")" "h")) ("薬")) ((("p" "h")) ("防")) ((("y" "h")) ("得"))
((("f" "h")) ("ケ")) ((("g" "h")) ("式")) ((("c" "h")) ("戦"))
((("r" "h")) ("関")) ((("z" "h")) ("男")) ((("a" "h")) ("輸"))
((("o" "h")) ("形")) ((("e" "h")) ("助")) ((("i" "h")) ("流"))
((("d" "h")) ("連")) ((("h" "h")) ("鉄")) ((("t" "h")) ("教"))
((("n" "h")) ("力")) ((("s" "h")) ("ベ")) (((";" "h")) ("毛"))
((("q" "h")) ("永")) ((("j" "h")) ("申")) ((("k" "h")) ("袋"))
((("x" "h")) ("良")) ((("b" "h")) ("私")) ((("m" "h")) ("ゴ"))
((("w" "h")) ("来")) ((("v" "h")) ("信")) ((("l" "h")) ("午"))
((("1" "t")) ("眼")) ((("2" "t")) ("繁")) ((("3" "t")) ("誌"))
((("4" "t")) ("招")) ((("5" "t")) ("季")) ((("7" "t")) ("垂"))
((("8" "t")) ("甚")) ((("9" "t")) ("徹")) ((("0" "t")) ("巳"))
((("'" "t")) ("寺")) ((("(" "t")) ("質")) (((")" "t")) ("づ"))
((("p" "t")) ("港")) ((("y" "t")) ("条")) ((("f" "t")) ("話"))
((("g" "t")) ("座")) ((("c" "t")) ("線")) ((("r" "t")) ("ダ"))
((("z" "t")) ("橋")) ((("a" "t")) ("基")) ((("o" "t")) ("好"))
((("e" "t")) ("味")) ((("u" "t")) ("宝")) ((("i" "t")) ("争"))
((("d" "t")) ("デ")) ((("h" "t")) ("現")) ((("t" "t")) ("エ"))
((("n" "t")) ("他")) ((("s" "t")) ("度")) (((";" "t")) ("等"))
((("q" "t")) ("浅")) ((("j" "t")) ("頃")) ((("k" "t")) ("落"))
((("x" "t")) ("命")) ((("b" "t")) ("村")) ((("m" "t")) ("ガ"))
((("w" "t")) ("製")) ((("v" "t")) ("校")) ((("l" "t")) ("ご"))
((("1" "n")) ("執")) ((("2" "n")) ("紹")) ((("3" "n")) ("夢"))
((("4" "n")) ("卸")) ((("5" "n")) ("阿")) ((("7" "n")) ("粋"))
((("9" "n")) ("爪")) ((("0" "n")) ("巴")) ((("'" "n")) ("停"))
((("(" "n")) ("領")) (((")" "n")) ("容")) ((("p" "n")) ("玉"))
((("y" "n")) ("右")) ((("f" "n")) ("べ")) ((("g" "n")) ("民"))
((("c" "n")) ("ソ")) ((("r" "n")) ("点")) ((("z" "n")) ("遇"))
((("a" "n")) ("足")) ((("o" "n")) ("草")) ((("e" "n")) ("築"))
((("u" "n")) ("観")) ((("i" "n")) ("言")) ((("d" "n")) ("車"))
((("h" "n")) ("成")) ((("t" "n")) ("天")) ((("n" "n")) ("世"))
((("s" "n")) ("文")) (((";" "n")) ("板")) ((("q" "n")) ("客"))
((("j" "n")) ("師")) ((("k" "n")) ("税")) ((("x" "n")) ("飛"))
((("b" "n")) ("ノ")) ((("m" "n")) ("完")) ((("w" "n")) ("重"))
((("v" "n")) ("約")) ((("l" "n")) ("各")) ((("1" "s")) ("岳"))
((("2" "s")) ("刑")) ((("3" "s")) ("弱")) ((("4" "s")) ("雲"))
((("5" "s")) ("窓")) ((("7" "s")) ("寸")) ((("8" "s")) ("瞳"))
((("9" "s")) ("陶")) ((("'" "s")) ("河")) ((("(" "s")) ("置"))
(((")" "s")) ("供")) ((("p" "s")) ("試")) ((("y" "s")) ("席"))
((("f" "s")) ("期")) ((("g" "s")) ("ゾ")) ((("c" "s")) ("歳"))
((("r" "s")) ("強")) ((("z" "s")) ("係")) ((("a" "s")) ("婦"))
((("o" "s")) ("段")) ((("e" "s")) ("衛")) ((("u" "s")) ("額"))
((("i" "s")) ("渋")) ((("d" "s")) ("主")) ((("h" "s")) ("映"))
((("t" "s")) ("書")) ((("n" "s")) ("可")) ((("s" "s")) ("へ"))
(((";" "s")) ("伝")) ((("q" "s")) ("庭")) ((("j" "s")) ("課"))
((("k" "s")) ("着")) ((("x" "s")) ("坂")) ((("b" "s")) ("近"))
((("m" "s")) ("外")) ((("w" "s")) ("米")) ((("v" "s")) ("ョ"))
((("l" "s")) ("光")) ((("1" ";")) ("ぁ")) ((("3" ";")) ("瓦"))
((("6" ";")) ("呼")) ((("7" ";")) ("幅")) ((("8" ";")) ("歓"))
((("9" ";")) ("功")) ((("0" ";")) ("盗")) ((("'" ";")) ("徳"))
((("(" ";")) ("渡")) (((")" ";")) ("守")) ((("p" ";")) ("登"))
((("y" ";")) ("退")) ((("f" ";")) ("店")) ((("g" ";")) ("持"))
((("c" ";")) ("町")) ((("r" ";")) ("所")) ((("z" ";")) ("ほ"))
((("a" ";")) ("件")) ((("o" ";")) ("友")) ((("e" ";")) ("卒"))
((("u" ";")) ("初")) ((("i" ";")) ("慣")) ((("d" ";")) ("行"))
((("h" ";")) ("ド")) ((("t" ";")) ("円")) ((("n" ";")) ("小"))
((("s" ";")) ("ジ")) (((";" ";")) ("ヨ")) ((("q" ";")) ("誤"))
((("j" ";")) ("証")) ((("k" ";")) ("含")) ((("x" ";")) ("%"))
((("b" ";")) ("海")) ((("m" ";")) ("道")) ((("w" ";")) ("ず"))
((("v" ";")) ("西")) ((("l" ";")) ("げ")) ((("1" "q")) ("ぃ"))
((("6" "q")) ("紀")) ((("7" "q")) ("破")) ((("8" "q")) ("郡"))
((("9" "q")) ("抗")) ((("0" "q")) ("幡")) ((("'" "q")) ("械"))
((("(" "q")) ("刊")) (((")" "q")) ("訪")) ((("p" "q")) ("融"))
((("y" "q")) ("雨")) ((("f" "q")) ("全")) ((("g" "q")) ("じ"))
((("c" "q")) ("自")) ((("r" "q")) ("議")) ((("z" "q")) ("明"))
((("a" "q")) ("宮")) ((("o" "q")) ("伊")) ((("e" "q")) ("求"))
((("u" "q")) ("技")) ((("i" "q")) ("写")) ((("d" "q")) ("通"))
((("h" "q")) ("カ")) ((("t" "q")) ("社")) ((("n" "q")) ("野"))
((("s" "q")) ("同")) (((";" "q")) ("判")) ((("q" "q")) ("規"))
((("j" "q")) ("感")) ((("k" "q")) ("値")) ((("x" "q")) ("ギ"))
((("b" "q")) ("当")) ((("m" "q")) ("理")) ((("w" "q")) ("メ"))
((("v" "q")) ("ウ")) ((("l" "q")) ("グ")) ((("1" "j")) ("ぅ"))
((("6" "j")) ("房")) ((("7" "j")) ("績")) ((("8" "j")) ("識"))
((("9" "j")) ("属")) ((("0" "j")) ("衣")) ((("'" "j")) ("帝"))
((("(" "j")) ("始")) (((")" "j")) ("了")) ((("p" "j")) ("極"))
((("y" "j")) ("熱")) ((("f" "j")) ("バ")) ((("g" "j")) ("部"))
((("c" "j")) ("六")) ((("r" "j")) ("経")) ((("z" "j")) ("動"))
((("a" "j")) ("局")) ((("o" "j")) ("頭")) ((("e" "j")) ("配"))
((("u" "j")) ("黒")) ((("i" "j")) ("院")) ((("d" "j")) ("だ"))
((("h" "j")) ("り")) ((("t" "j")) ("—")) ((("n" "j")) ("め"))
((("s" "j")) ("大")) (((";" "j")) ("済")) ((("q" "j")) ("吉"))
((("j" "j")) ("ゆ")) ((("k" "j")) ("器")) ((("x" "j")) ("照"))
((("b" "j")) ("不")) ((("m" "j")) ("合")) ((("w" "j")) ("面"))
((("v" "j")) ("政")) ((("l" "j")) ("オ")) ((("1" "k")) ("ぇ"))
((("6" "k")) ("去")) ((("7" "k")) ("疑")) ((("8" "k")) ("ぢ"))
((("9" "k")) ("綿")) ((("0" "k")) ("離")) ((("'" "k")) ("読"))
((("(" "k")) ("鈴")) (((")" "k")) ("恐")) ((("p" "k")) ("督"))
((("y" "k")) ("況")) ((("f" "k")) ("後")) ((("g" "k")) ("間"))
((("c" "k")) ("場")) ((("r" "k")) ("ニ")) ((("z" "k")) ("産"))
((("a" "k")) ("向")) ((("o" "k")) ("府")) ((("e" "k")) ("富"))
((("u" "k")) ("直")) ((("i" "k")) ("倉")) ((("d" "k")) ("新"))
((("h" "k")) ("」")) ((("t" "k")) ("9")) ((("n" "k")) ("子"))
((("s" "k")) ("五")) (((";" "k")) ("説")) ((("q" "k")) ("週"))
((("j" "k")) ("号")) ((("k" "k")) ("葉")) ((("x" "k")) ("派"))
((("b" "k")) ("委")) ((("m" "k")) ("化")) ((("w" "k")) ("ビ"))
((("v" "k")) ("目")) ((("l" "k")) ("市")) ((("1" "x")) ("ぉ"))
((("6" "x")) ("秒")) ((("7" "x")) ("範")) ((("8" "x")) ("核"))
((("9" "x")) ("影")) ((("0" "x")) ("麻")) ((("'" "x")) ("族"))
((("(" "x")) ("丁")) (((")" "x")) ("未")) ((("p" "x")) ("才"))
((("y" "x")) ("返")) ((("f" "x")) ("問")) ((("g" "x")) ("ム"))
((("c" "x")) ("七")) ((("r" "x")) ("住")) ((("z" "x")) ("北"))
((("a" "x")) ("割")) ((("o" "x")) ("ぶ")) ((("e" "x")) ("番"))
((("u" "x")) ("望")) ((("i" "x")) ("元")) ((("d" "x")) ("事"))
((("h" "x")) ("田")) ((("t" "x")) ("会")) ((("n" "x")) ("前"))
((("s" "x")) ("そ")) (((";" "x")) ("休")) ((("q" "x")) ("省"))
((("j" "x")) ("央")) ((("k" "x")) ("福")) ((("x" "x")) ("毎"))
((("b" "x")) ("気")) ((("m" "x")) ("売")) ((("w" "x")) ("下"))
((("v" "x")) ("都")) ((("l" "x")) ("株")) ((("1" "b")) ("欲"))
((("2" "b")) ("巣")) ((("3" "b")) ("茂")) ((("4" "b")) ("述"))
((("5" "b")) ("朗")) ((("'" "b")) ("帰")) ((("(" "b")) ("庁"))
(((")" "b")) ("昨")) ((("p" "b")) ("跡")) ((("y" "b")) ("ゲ"))
((("f" "b")) ("洗")) ((("g" "b")) ("羽")) ((("c" "b")) ("個"))
((("r" "b")) ("医")) ((("z" "b")) ("静")) ((("a" "b")) ("億"))
((("o" "b")) ("録")) ((("e" "b")) ("赤")) ((("u" "b")) ("想"))
((("i" "b")) ("消")) ((("d" "b")) ("支")) ((("h" "b")) ("協"))
((("t" "b")) ("用")) ((("n" "b")) ("表")) ((("s" "b")) ("正"))
(((";" "b")) ("図")) ((("q" "b")) ("挙")) ((("j" "b")) ("険"))
((("k" "b")) ("ゼ")) ((("x" "b")) ("波")) ((("b" "b")) ("ヤ"))
((("m" "b")) ("心")) ((("w" "b")) ("界")) ((("v" "b")) ("意"))
((("l" "b")) ("今")) ((("1" "m")) ("迫")) ((("2" "m")) ("災"))
((("3" "m")) ("恋")) ((("4" "m")) ("脳")) ((("5" "m")) ("老"))
((("'" "m")) ("監")) ((("(" "m")) ("寄")) (((")" "m")) ("裁"))
((("p" "m")) ("達")) ((("y" "m")) ("芝")) ((("f" "m")) ("響"))
((("g" "m")) ("忘")) ((("c" "m")) ("討")) ((("r" "m")) ("史"))
((("z" "m")) ("環")) ((("a" "m")) ("色")) ((("o" "m")) ("貸"))
((("e" "m")) ("販")) ((("u" "m")) ("編")) ((("i" "m")) ("仕"))
((("d" "m")) ("先")) ((("h" "m")) ("多")) ((("t" "m")) ("商"))
((("n" "m")) ("ハ")) ((("s" "m")) ("交")) (((";" "m")) ("之"))
((("q" "m")) ("末")) ((("j" "m")) ("ぼ")) ((("k" "m")) ("街"))
((("x" "m")) ("免")) ((("b" "m")) ("再")) ((("m" "m")) ("ネ"))
((("w" "m")) ("〜")) ((("v" "m")) ("口")) ((("l" "m")) ("台"))
((("1" "w")) ("留")) ((("2" "w")) ("列")) ((("3" "w")) ("刻"))
((("4" "w")) ("豆")) ((("5" "w")) ("看")) ((("'" "w")) ("竹"))
((("(" "w")) ("注")) (((")" "w")) ("介")) ((("p" "w")) ("具"))
((("y" "w")) ("失")) ((("f" "w")) ("司")) ((("g" "w")) ("迎"))
((("c" "w")) ("華")) ((("r" "w")) ("許")) ((("z" "w")) ("補"))
((("a" "w")) ("左")) ((("o" "w")) ("態")) ((("e" "w")) ("花"))
((("u" "w")) ("栄")) ((("i" "w")) ("ザ")) ((("d" "w")) ("調"))
((("h" "w")) ("混")) ((("t" "w")) ("ポ")) ((("n" "w")) ("決"))
((("s" "w")) ("ミ")) (((";" "w")) ("州")) ((("q" "w")) ("払"))
((("j" "w")) ("乗")) ((("k" "w")) ("庫")) ((("x" "w")) ("状"))
((("b" "w")) ("団")) ((("m" "w")) ("計")) ((("w" "w")) ("夫"))
((("v" "w")) ("食")) ((("l" "w")) ("総")) ((("1" "v")) ("替"))
((("2" "v")) ("沼")) ((("3" "v")) ("?")) ((("4" "v")) ("辞"))
((("5" "v")) ("献")) ((("'" "v")) ("ゅ")) ((("(" "v")) ("修"))
(((")" "v")) ("究")) ((("p" "v")) ("答")) ((("y" "v")) ("養"))
((("f" "v")) ("復")) ((("g" "v")) ("並")) ((("c" "v")) ("浦"))
((("r" "v")) ("ユ")) ((("z" "v")) ("冷")) ((("a" "v")) ("ぬ"))
((("o" "v")) ("展")) ((("e" "v")) ("警")) ((("u" "v")) ("型"))
((("i" "v")) ("誰")) ((("d" "v")) ("組")) ((("h" "v")) ("選"))
((("t" "v")) ("党")) ((("n" "v")) ("択")) ((("s" "v")) ("体"))
(((";" "v")) ("例")) ((("q" "v")) ("満")) ((("j" "v")) ("津"))
((("k" "v")) ("準")) ((("x" "v")) ("遊")) ((("b" "v")) ("戸"))
((("m" "v")) ("ひ")) ((("w" "v")) ("ょ")) ((("v" "v")) ("価"))
((("l" "v")) ("与")) ((("1" "l")) ("還")) ((("2" "l")) ("更"))
((("3" "l")) ("占")) ((("4" "l")) ("箱")) ((("5" "l")) ("矢"))
((("'" "l")) ("志")) ((("(" "l")) ("抜")) (((")" "l")) ("航"))
((("p" "l")) ("層")) ((("y" "l")) ("深")) ((("f" "l")) ("担"))
((("g" "l")) ("陸")) ((("c" "l")) ("巻")) ((("r" "l")) ("競"))
((("z" "l")) ("護")) ((("a" "l")) ("根")) ((("o" "l")) ("様"))
((("e" "l")) ("独")) ((("u" "l")) ("止")) ((("i" "l")) ("堂"))
((("d" "l")) ("銀")) ((("h" "l")) ("以")) ((("t" "l")) ("ヌ"))
((("n" "l")) ("営")) ((("s" "l")) ("治")) (((";" "l")) ("字"))
((("q" "l")) ("材")) ((("j" "l")) ("過")) ((("k" "l")) ("諸"))
((("x" "l")) ("単")) ((("b" "l")) ("身")) ((("m" "l")) ("ピ"))
((("w" "l")) ("勝")) ((("v" "l")) ("反")) ((("l" "l")) ("ズ"))
))

(define tcode-init-handler
(lambda (id im arg)
(generic-context-new id im tcode-rule #f)))

(generic-register-im
'tcode
"ja"
"EUC-JP"
(N_ "T-Code")
(N_ "A kanji direct input method")
tcode-init-handler)