key.js revision 3f3aa287185afb5d48d7ef0717054a154c372dc9