From 1cc10c952bcb724bc8f5fbea2def64653043b105 Mon Sep 17 00:00:00 2001 From: stefanocasazza Date: Mon, 1 Jun 2015 15:20:33 +0200 Subject: [PATCH] optimizations + bug fixing --- include/ulib/base/base.h | 6 +- include/ulib/base/coder/escape.h | 26 +- include/ulib/json/value.h | 1 + include/ulib/string.h | 2 + include/ulib/utility/escape.h | 33 +- src/ulib/base/base.c | 123 +++++++ src/ulib/base/coder/cescape.c | 329 +++++------------- src/ulib/debug/trace.cpp | 6 +- src/ulib/json/value.cpp | 111 +++++- src/ulib/net/server/plugin/mod_nocat.cpp | 13 +- .../net/server/plugin/usp/usp_translator.cpp | 4 +- src/ulib/utility/uhttp.cpp | 6 +- src/ulib/xml/expat/element.cpp | 2 +- tests/base/test_misc.c | 21 +- tests/debug/ok/memerror.ok | 15 +- tests/debug/ok/simerr.ok | 11 +- .../FrameworkBenchmarks/fbenchmark.cfg | 2 +- tests/ulib/file_config.test | 2 +- tests/ulib/json.test | 2 +- tests/ulib/ok/json.ok | 14 +- 20 files changed, 399 insertions(+), 330 deletions(-) diff --git a/include/ulib/base/base.h b/include/ulib/base/base.h index 5f763fee..0431c3ef 100644 --- a/include/ulib/base/base.h +++ b/include/ulib/base/base.h @@ -319,8 +319,10 @@ extern U_EXPORT int32_t u_printf_string_max_length; /* NB: u_printf(), u_vsnprintf and u_snprintf conflit with /usr/include/unicode/urename.h */ -U_EXPORT void u__printf(int fd, const char* restrict format, ...); -U_EXPORT void u_internal_print(bool abrt, const char* restrict format, ...); +U_EXPORT void u__printf(int fd, const char* restrict format, ...); +U_EXPORT void u_internal_print(bool abrt, const char* restrict format, ...); + +U_EXPORT uint32_t u_sprintc( char* restrict buffer, unsigned char c); U_EXPORT uint32_t u__snprintf( char* restrict buffer, uint32_t buffer_size, const char* restrict format, ...); U_EXPORT uint32_t u__vsnprintf(char* restrict buffer, uint32_t buffer_size, const char* restrict format, va_list argp); diff --git a/include/ulib/base/coder/escape.h b/include/ulib/base/coder/escape.h index 5a6e0ee1..d9e2993e 100644 --- a/include/ulib/base/coder/escape.h +++ b/include/ulib/base/coder/escape.h @@ -24,27 +24,23 @@ extern "C" { * --------------------------------------------------------------------------- * Encode-Decode escape sequences into a buffer, the following are recognized: * --------------------------------------------------------------------------- - * \0 NUL - * \r CR carriage return (\015 13 D) - * \n LF newline (\012 10 A) - * \t HT horizontal tab (\011 9 9) - * \b BS backspace (\010 8 8) - * \f FF formfeed (\014 12 C) - * \v VT vertical tab (\013 11 B) * \a BEL (\007 7 7) + * \b BS backspace (\010 8 8) + * \t HT horizontal tab (\011 9 9) + * \n LF newline (\012 10 A) + * \v VT vertical tab (\013 11 B) + * \f FF formfeed (\014 12 C) + * \r CR carriage return (\015 13 D) * \e ESC character (\033 27 1B) * - * \u four-hex-digits (unicode char) - * \^C C = any letter (Control code) - * \xDD number formed of 1-2 hex digits - * \DDD number formed of 1-3 octal digits + * \u four-hex-digits (unicode char) + * \^C C = any letter (Control code) + * \xDD number formed of 1-2 hex digits + * \DDD number formed of 1-3 octal digits * --------------------------------------------------------------------------- */ -U_EXPORT uint32_t u_sprintc(char* restrict buffer, unsigned char c); -U_EXPORT unsigned char u_escape_decode_ptr(const char** restrict s); - -U_EXPORT uint32_t u_escape_encode(const unsigned char* restrict s, uint32_t n, char* restrict result, uint32_t max_length, bool json); +U_EXPORT uint32_t u_escape_encode(const unsigned char* restrict s, uint32_t n, char* restrict result, uint32_t max_length); U_EXPORT uint32_t u_escape_decode(const char* restrict s, uint32_t n, unsigned char* restrict result); #ifdef __cplusplus diff --git a/include/ulib/json/value.h b/include/ulib/json/value.h index 53500b7a..f7a8bd46 100644 --- a/include/ulib/json/value.h +++ b/include/ulib/json/value.h @@ -495,6 +495,7 @@ protected: private: static void appendNode(UValue* parent, UValue* child); static bool readValue(UTokenizer& tok, UValue* value) U_NO_EXPORT; + static uint32_t emitString(const unsigned char* ptr, uint32_t sz, char* presult) U_NO_EXPORT; template friend class UVector; template friend class UHashMap; diff --git a/include/ulib/string.h b/include/ulib/string.h index e0751dc8..ebae81b6 100644 --- a/include/ulib/string.h +++ b/include/ulib/string.h @@ -77,6 +77,7 @@ class UDES3; class UHTTP; class UValue; class UCache; +class UValue; class UString; class UBase64; class UEscape; @@ -612,6 +613,7 @@ private: friend class UDES3; friend class UHTTP; friend class UCache; + friend class UValue; friend class UString; friend class UBase64; friend class UEscape; diff --git a/include/ulib/utility/escape.h b/include/ulib/utility/escape.h index a044d580..7d663fec 100644 --- a/include/ulib/utility/escape.h +++ b/include/ulib/utility/escape.h @@ -22,40 +22,39 @@ * --------------------------------------------------------------------------- * Encode-Decode escape sequences into a buffer, the following are recognized: * --------------------------------------------------------------------------- - * \0 NUL - * \r CR carriage return (\015 13 D) - * \n LF newline (\012 10 A) - * \t HT horizontal tab (\011 9 9) - * \b BS backspace (\010 8 8) - * \f FF formfeed (\014 12 C) - * \v VT vertical tab (\013 11 B) - * \a BEL (\007 7 7) - * \e ESC character (\033 27 1B) + * \a BEL (\007 7 7) + * \b BS backspace (\010 8 8) + * \t HT horizontal tab (\011 9 9) + * \n LF newline (\012 10 A) + * \v VT vertical tab (\013 11 B) + * \f FF formfeed (\014 12 C) + * \r CR carriage return (\015 13 D) + * \e ESC character (\033 27 1B) * - * \u four-hex-digits (unicode char) - * \^C C = any letter (Control code) - * \xDD number formed of 1-2 hex digits - * \DDD number formed of 1-3 octal digits + * \u four-hex-digits (unicode char) + * \^C C = any letter (Control code) + * \xDD number formed of 1-2 hex digits + * \DDD number formed of 1-3 octal digits * --------------------------------------------------------------------------- */ struct U_EXPORT UEscape { - static void encode(const char* s, uint32_t n, UString& buffer, bool json = false) + static void encode(const char* s, uint32_t n, UString& buffer) { - U_TRACE(0, "UEscape::encode(%.*S,%u,%p,%b)", n, s, n, &buffer, json) + U_TRACE(0, "UEscape::encode(%.*S,%u,%p)", n, s, n, &buffer) U_ASSERT(buffer.uniq()) U_ASSERT(buffer.capacity() >= n) uint32_t sz = buffer.size(); - buffer.rep->_length = sz + u_escape_encode((const unsigned char*)s, n, buffer.c_pointer(sz), buffer.space(), json); + buffer.rep->_length = sz + u_escape_encode((const unsigned char*)s, n, buffer.c_pointer(sz), buffer.space()); U_INTERNAL_DUMP("buffer(%u) = %#V", buffer.size(), buffer.rep) } - static void encode(const UString& s, UString& buffer, bool json = false) { encode(U_STRING_TO_PARAM(s), buffer, json); } + static void encode(const UString& s, UString& buffer) { encode(U_STRING_TO_PARAM(s), buffer); } static void decode(const char* s, uint32_t n, UString& buffer) { diff --git a/src/ulib/base/base.c b/src/ulib/base/base.c index 85051c31..2b57ec3b 100644 --- a/src/ulib/base/base.c +++ b/src/ulib/base/base.c @@ -1248,6 +1248,129 @@ void u_internal_print(bool abrt, const char* restrict format, ...) } } +/** + * -------------------------------------------------------------------- + * Encode escape sequences into a buffer, the following are recognized: + * -------------------------------------------------------------------- + * \a BEL (\007 7 7) + * \b BS backspace (\010 8 8) + * \t HT horizontal tab (\011 9 9) + * \n LF newline (\012 10 A) + * \v VT vertical tab (\013 11 B) + * \f FF formfeed (\014 12 C) + * \r CR carriage return (\015 13 D) + * \e ESC character (\033 27 1B) + * + * \DDD number formed of 1-3 octal digits + * -------------------------------------------------------------------- + */ + +uint32_t u_sprintc(char* restrict out, unsigned char c) +{ + char* restrict cp; + + U_INTERNAL_TRACE("u_sprintc(%d)", c) + + if (c < 32) + { + *out++ = '\\'; + + switch (c) + { + case '\a': // 0x07 + { + *out = 'a'; + + return 2; + } + + case '\b': // 0x08 + { + *out = 'b'; + + return 2; + } + + case '\t': // 0x09 + { + *out = 't'; + + return 2; + } + + case '\n': // 0x0A + { + *out = 'n'; + + return 2; + } + + case '\v': // 0x0B + { + *out = 'v'; + + return 2; + } + + case '\f': // 0x0C + { + *out = 'f'; + + return 2; + } + + case '\r': // 0x0D + { + *out = 'r'; + + return 2; + } + + case '\033': // 0x1B + { + *out = 'e'; + + return 2; + } + + default: goto next; + } + } + + if (c == '"' || // 0x22 + c == '\\') // 0x5C + { + *out++ = '\\'; + *out = c; + + return 2; + } + + if (c > 126) + { + *out++ = '\\'; + + /* \DDD number formed of 1-3 octal digits */ +next: + cp = out + 3; + + do { + *--cp = (c & 7) + '0'; + + c >>= 3; + } + while (c); + + while (--cp >= out) *cp = '0'; + + return 4; + } + + *out = c; + + return 1; +} + #ifndef _MSWINDOWS_ static const char* tab_color[] = { U_RESET_STR, U_BLACK_STR, U_RED_STR, U_GREEN_STR, U_YELLOW_STR, diff --git a/src/ulib/base/coder/cescape.c b/src/ulib/base/coder/cescape.c index 348fd80f..17433886 100644 --- a/src/ulib/base/coder/cescape.c +++ b/src/ulib/base/coder/cescape.c @@ -18,120 +18,13 @@ #include #include -/** - * --------------------------------------------------------------------------- - * Encode-Decode escape sequences into a buffer, the following are recognized: - * --------------------------------------------------------------------------- - * \0 NUL - * \r CR carriage return (\015 13 D) - * \n LF newline (\012 10 A) - * \t HT horizontal tab (\011 9 9) - * \b BS backspace (\010 8 8) - * \f FF formfeed (\014 12 C) - * \v VT vertical tab (\013 11 B) - * \a BEL (\007 7 7) - * \e ESC character (\033 27 1B) - * - * \u four-hex-digits (unicode char) - * \^C C = any letter (Control code) - * \xDD number formed of 1-2 hex digits - * \DDD number formed of 1-3 octal digits - * --------------------------------------------------------------------------- - */ - -uint32_t u_sprintc(char* restrict _buffer, unsigned char c) +uint32_t u_escape_encode(const unsigned char* restrict inptr, uint32_t len, char* restrict out, uint32_t max_output) { - U_INTERNAL_TRACE("u_sprintc(%d)", c) - - switch (c) - { - case '\r': - { - *_buffer++ = '\\'; - *_buffer = 'r'; - - return 2; - } - - case '\n': - { - *_buffer++ = '\\'; - *_buffer = 'n'; - - return 2; - } - - case '\t': - { - *_buffer++ = '\\'; - *_buffer = 't'; - - return 2; - } - - case '\b': - { - *_buffer++ = '\\'; - *_buffer = 'b'; - - return 2; - } - - case '\f': - { - *_buffer++ = '\\'; - *_buffer = 'f'; - - return 2; - } - - case '"': - case '\\': - { - *_buffer++ = '\\'; - *_buffer = c; - - return 2; - } - - default: - { - if (c < 32 || - c > 126) - { - /* \DDD number formed of 1-3 octal digits */ - - char* restrict cp = _buffer + 4; - - *_buffer = '\\'; - - do { - *--cp = (c & 7) + '0'; - - c >>= 3; - } - while (c); - - while (--cp > _buffer) *cp = '0'; - - return 4; - } - - *_buffer = c; - - return 1; - } - } -} - -uint32_t u_escape_encode(const unsigned char* restrict inptr, uint32_t len, char* restrict out, uint32_t max_output, bool json) -{ - unsigned char c; const unsigned char* restrict inend = inptr + len; char* restrict outptr = out; char* restrict outend = out + (max_output - 4); - U_INTERNAL_TRACE("u_escape_encode(%.*s,%u,%p,%u,%d)", U_min(len,128), inptr, len, out, max_output, json) + U_INTERNAL_TRACE("u_escape_encode(%.*s,%u,%p,%u)", U_min(len,128), inptr, len, out, max_output) U_INTERNAL_ASSERT_POINTER(out) U_INTERNAL_ASSERT_POINTER(inptr) @@ -140,59 +33,10 @@ uint32_t u_escape_encode(const unsigned char* restrict inptr, uint32_t len, char while (inptr < inend) { - c = *inptr++; + outptr += u_sprintc(outptr, *inptr++); - if (c >= 32 && - c <= 126) - { - if (u__isquote(c)) - { - *outptr++ = '\\'; - - /* check for \u four-hex-digits (unicode char) */ - - if (json && - c == '\\' && - *inptr == 'u') - { - c = 'u'; - - ++inptr; - } - } - - *outptr++ = c; - - goto check_max_output; - } - - if (json) - { - /* \u four-hex-digits (unicode char) */ - - *outptr++ = '\\'; - *outptr++ = 'u'; - *outptr++ = '0'; - *outptr++ = '0'; - *outptr++ = u_hex_upper[((c >> 4) & 0x0F)]; - *outptr++ = u_hex_upper[( c & 0x0F)]; - -# ifdef DEBUG - goto check_max_output; -# else - continue; -# endif - } - - outptr += u_sprintc(outptr, c); - -check_max_output: if (outptr >= outend) { -# ifdef DEBUG - if (json) U_INTERNAL_ASSERT_MSG(false, "overflow in encoding json string...") -# endif - *outptr++ = '.'; *outptr++ = '.'; *outptr++ = '.'; @@ -207,84 +51,29 @@ check_max_output: return (outptr - out); } -/* the s pointer is advanced past the escape sequence */ - -unsigned char u_escape_decode_ptr(const char** restrict s) -{ - const char* restrict t = *s; - int c = *t++; - - U_INTERNAL_TRACE("u_escape_decode_ptr(%s)", *s) - - switch (c) - { - case 'r': c = '\r'; break; - case 'n': c = '\n'; break; - case 't': c = '\t'; break; - case 'b': c = '\b'; break; - case 'f': c = '\f'; break; - case 'v': c = '\v'; break; - case 'a': c = '\a'; break; - case 'e': c = '\033'; break; - - /* check control code */ - - case '^': c = u__toupper(*t++) - '@'; break; - - /* check sequenza escape esadecimale */ - - case 'x': - { - if (u__isxdigit(*t)) - { - c = u__hexc2int(*t++); - if (u__isxdigit(*t)) c = (c << 4) | u__hexc2int(*t++); - } - } - break; - - /* check sequenza escape ottale */ - - case '0': case '1': case '2': case '3': - case '4': case '5': case '6': case '7': - { - c -= '0'; - - if (u__isoctal(*t)) - { - c = (c << 3) | u__octc2int(*t++); - if (u__isoctal(*t)) c = (c << 3) | u__octc2int(*t++); - } - } - break; - - /* \u four-hex-digits (unicode char) */ - - case 'u': - { - U_INTERNAL_ASSERT_EQUALS(t[0], '0') - U_INTERNAL_ASSERT_EQUALS(t[1], '0') - - t += 2; - - U_INTERNAL_ASSERT(u__isxdigit(t[0])) - U_INTERNAL_ASSERT(u__isxdigit(t[1])) - - c = ((u__hexc2int(t[0]) & 0x0F) << 4) | - (u__hexc2int(t[1]) & 0x0F); - - t += 2; - } - break; - } - - *s = t; - - return (unsigned char)c; -} +/** + * -------------------------------------------------------------------- + * Decode escape sequences into a buffer, the following are recognized: + * -------------------------------------------------------------------- + * \a BEL (\007 7 7) + * \b BS backspace (\010 8 8) + * \t HT horizontal tab (\011 9 9) + * \n LF newline (\012 10 A) + * \v VT vertical tab (\013 11 B) + * \f FF formfeed (\014 12 C) + * \r CR carriage return (\015 13 D) + * \e ESC character (\033 27 1B) + * + * \u four-hex-digits (unicode char) + * \^C C = any letter (Control code) + * \xDD number formed of 1-2 hex digits + * \DDD number formed of 1-3 octal digits + * --------------------------------------------------------------------------- + */ uint32_t u_escape_decode(const char* restrict inptr, uint32_t len, unsigned char* restrict out) { + int c; char* p; const char* restrict inend = inptr + len; unsigned char* restrict outptr = out; @@ -324,14 +113,80 @@ uint32_t u_escape_decode(const char* restrict inptr, uint32_t len, unsigned char { u__memcpy(outptr, p, 6, __PRETTY_FUNCTION__); - inptr = p + 6; + inptr = p+6; outptr += 6; continue; } - inptr = p + 1; - *outptr++ = u_escape_decode_ptr((const char** restrict)&inptr); + inptr = p+1; + c = *inptr++; + + U_INTERNAL_PRINT("c = %d", c) + + switch (c) + { + case 'a': c = '\a'; break; + case 'b': c = '\b'; break; + case 't': c = '\t'; break; + case 'n': c = '\n'; break; + case 'v': c = '\v'; break; + case 'f': c = '\f'; break; + case 'r': c = '\r'; break; + case 'e': c = '\033'; break; + + /* check control code */ + + case '^': c = u__toupper(*inptr++) - '@'; break; + + /* check sequenza escape esadecimale */ + + case 'x': + { + if (u__isxdigit(*inptr)) + { + c = u__hexc2int(*inptr++); + if (u__isxdigit(*inptr)) c = (c << 4) | u__hexc2int(*inptr++); + } + } + break; + + /* check sequenza escape ottale */ + + case '0': case '1': case '2': case '3': + case '4': case '5': case '6': case '7': + { + c -= '0'; + + if (u__isoctal(*inptr)) + { + c = (c << 3) | u__octc2int(*inptr++); + if (u__isoctal(*inptr)) c = (c << 3) | u__octc2int(*inptr++); + } + } + break; + + /* \u four-hex-digits (unicode char) */ + + case 'u': + { + U_INTERNAL_ASSERT_EQUALS(inptr[0], '0') + U_INTERNAL_ASSERT_EQUALS(inptr[1], '0') + + inptr += 2; + + U_INTERNAL_ASSERT(u__isxdigit(inptr[0])) + U_INTERNAL_ASSERT(u__isxdigit(inptr[1])) + + c = ((u__hexc2int(inptr[0]) & 0x0F) << 4) | + (u__hexc2int(inptr[1]) & 0x0F); + + inptr += 2; + } + break; + } + + *outptr++ = c; } *outptr = 0; diff --git a/src/ulib/debug/trace.cpp b/src/ulib/debug/trace.cpp index 8afcb261..4a2d369f 100644 --- a/src/ulib/debug/trace.cpp +++ b/src/ulib/debug/trace.cpp @@ -212,7 +212,11 @@ void UTrace::trace_sysreturn(bool error, const char* format, ...) u_errno = errno; } - if (errno != EAGAIN) U_WARNING("%s", buffer_syscall); + if (errno != EAGAIN && + strstr(buffer_syscall, "::getenv") == 0) + { + U_WARNING("%s", buffer_syscall); + } } } diff --git a/src/ulib/json/value.cpp b/src/ulib/json/value.cpp index 15ec2d90..b4be54fa 100644 --- a/src/ulib/json/value.cpp +++ b/src/ulib/json/value.cpp @@ -567,6 +567,97 @@ uint32_t UValue::getMemberNames(UVector& members) const U_RETURN(_size); } +uint32_t UValue::emitString(const unsigned char* inptr, uint32_t len, char* out) +{ + U_TRACE(0, "UValue::emitString(%.*S,%u,%p)", len, inptr, len, out) + + U_INTERNAL_ASSERT_POINTER(out) + U_INTERNAL_ASSERT_POINTER(inptr) + + const unsigned char* restrict inend = inptr + len; + char* restrict outptr = out; + + *outptr++ = '"'; + + while (inptr < inend) + { + unsigned char c = *inptr++; + + if (c < 32) + { + switch (c) + { + case '\b': // 0x08 + { + *outptr++ = '\\'; + *outptr++ = 'b'; + + continue; + } + + case '\t': // 0x09 + { + *outptr++ = '\\'; + *outptr++ = 't'; + + continue; + } + + case '\n': // 0x0A + { + *outptr++ = '\\'; + *outptr++ = 'n'; + + continue; + } + + case '\f': // 0x0C + { + *outptr++ = '\\'; + *outptr++ = 'f'; + + continue; + } + + case '\r': // 0x0D + { + *outptr++ = '\\'; + *outptr++ = 'r'; + + continue; + } + + default: goto next; + } + } + else if (c <= 126) + { + if (c == '"' || // 0x22 + c == '\\') // 0x5C + { + *outptr++ = '\\'; + } + + *outptr++ = c; + + continue; + } + +next: // \u four-hex-digits (unicode char) + + *(int32_t*)outptr = U_MULTICHAR_CONSTANT32('\\','u','0','0'); + + outptr[4] = u_hex_upper[((c >> 4) & 0x0F)]; + outptr[5] = u_hex_upper[( c & 0x0F)]; + + outptr += 6; + } + + *outptr++ = '"'; + + U_RETURN(outptr - out); +} + void UValue::stringify(UString& result, UValue& _value) { U_TRACE(0, "UValue::stringify(%V,%p)", result.rep, &_value) @@ -601,7 +692,6 @@ void UValue::stringify(UString& result, UValue& _value) const char* ch; char buffer[32]; UString* pstring; - const char* keyptr; const char* last_nonzero; uint32_t n, pos, sz, keysz; @@ -703,7 +793,7 @@ next: continue; } - if (c == '.') n = last_nonzero - buffer + 2; // Truncate zeroes to save bytes in output, but keep one) + if (c == '.') n = last_nonzero - buffer + 2; // Truncate zeroes to save bytes in output, but keep one break; } @@ -716,9 +806,11 @@ next: case_string: pstring = _value.getString(); - (void) result.reserve(result.size() + pstring->size() * 6); + (void) result.reserve((sz = result.size()) + (keysz = pstring->size()) * 6); - UEscape::encode(*pstring, result, true); + presult = result.c_pointer(sz); + + result.rep->_length = sz + emitString((const unsigned char*)pstring->data(), keysz, presult); return; @@ -743,14 +835,9 @@ case_object: for (UValue* member = _value.children.head; member; member = member->next) { - sz = result.size(); - U_INTERNAL_ASSERT_POINTER(member->key) - keysz = member->key->size(); - keyptr = member->key->data(); - - (void) result.reserve(sz + keysz * 6); + (void) result.reserve((sz = result.size()) + (keysz = member->key->size()) * 6); presult = result.c_pointer(sz); @@ -762,11 +849,11 @@ case_object: *presult++ = ','; } - pos = u_escape_encode((const unsigned char*)keyptr, keysz, presult, result.space(), true); + pos = emitString((const unsigned char*)member->key->data(), keysz, presult); presult[pos] = ':'; - result.size_adjust(sz + 1 + pos); + result.rep->_length = sz + pos + 1; stringify(result, *member); } diff --git a/src/ulib/net/server/plugin/mod_nocat.cpp b/src/ulib/net/server/plugin/mod_nocat.cpp index 55b000ff..9a0dda99 100644 --- a/src/ulib/net/server/plugin/mod_nocat.cpp +++ b/src/ulib/net/server/plugin/mod_nocat.cpp @@ -1532,10 +1532,11 @@ void UNoCatPlugIn::addPeerInfo(time_t logout) char* ptr; char buffer[64]; - UString info = (*vinfo_data)[U_peer_index_AUTH]; + UString info = (*vinfo_data)[U_peer_index_AUTH], + str = UStringExt::substitute(peer->mac, ':', U_CONSTANT_TO_PARAM("%3A")); uint32_t sz = info.size(); - U_INTERNAL_DUMP("U_peer_index_AUTH = %u info = %V", U_peer_index_AUTH, info.rep) + U_INTERNAL_DUMP("U_peer_index_AUTH = %u info = %V peer->ip = %V", U_peer_index_AUTH, info.rep, peer->ip.rep) // ----------------------------------------------------------------------------------------------------------------------------------------- // $1 -> mac @@ -1552,10 +1553,10 @@ void UNoCatPlugIn::addPeerInfo(time_t logout) (void) info.reserve(sz + 200); - info.snprintf_add("%sMac=%.*s&ip=%v&", (sz ? "&" : ""), u_url_encode((const unsigned char*)U_STRING_TO_PARAM(peer->mac), (unsigned char*)buffer), buffer, peer->ip.rep); + info.snprintf_add("%sMac=%v&ip=%v&", (sz ? "&" : ""), str.rep, peer->ip.rep); info.snprintf_add("gateway=%.*s&ap=%v%%40%v&User=", - u_url_encode((const unsigned char*)U_STRING_TO_PARAM(peer->gateway), (unsigned char*)buffer), buffer, peer->label.rep, UServer_Base::IP_address); + u_url_encode((const unsigned char*)U_STRING_TO_PARAM(peer->gateway), (unsigned char*)buffer), buffer, peer->label.rep, UServer_Base::IP_address->rep); info.snprintf_add("%.*s&logout=", u_url_encode((const unsigned char*)U_STRING_TO_PARAM(peer->user), (unsigned char*)buffer), buffer); @@ -1625,7 +1626,7 @@ bool UModNoCatPeer::checkPeerInfo(bool btraffic) } } - U_INTERNAL_DUMP("UNoCatPlugIn::peer_present_in_arp_cache = %V peer->ifname = %V", UNoCatPlugIn::peer_present_in_arp_cache, ifname.rep) + U_INTERNAL_DUMP("UNoCatPlugIn::peer_present_in_arp_cache = %V peer->ifname = %V", UNoCatPlugIn::peer_present_in_arp_cache->rep, ifname.rep) if (ctraffic == 0) time_no_traffic += (u_now->tv_sec - ctime); @@ -2658,7 +2659,7 @@ google: (void) buffer.assign(U_CONSTANT_TO_PARAM("http://www.google.com")); { UString printable(data.size() * 4); - UEscape::encode(data, printable, false); + UEscape::encode(data, printable); ULog::log("%sauth message: %v", UServer_Base::mod_name[0], printable.rep); } diff --git a/src/ulib/net/server/plugin/usp/usp_translator.cpp b/src/ulib/net/server/plugin/usp/usp_translator.cpp index b07a3d02..e02ffcf5 100644 --- a/src/ulib/net/server/plugin/usp/usp_translator.cpp +++ b/src/ulib/net/server/plugin/usp/usp_translator.cpp @@ -185,7 +185,7 @@ public: UString tmp(token.size() * 4); - UEscape::encode(token, tmp, false); + UEscape::encode(token, tmp); (void) buffer.reserve(tmp.size() + 100U); @@ -510,7 +510,7 @@ public: UString encoded(header.size() * 4); - UEscape::encode(header, encoded, false); + UEscape::encode(header, encoded); UString tmp(encoded.size() + 100U); diff --git a/src/ulib/utility/uhttp.cpp b/src/ulib/utility/uhttp.cpp index f9970abd..65650299 100644 --- a/src/ulib/utility/uhttp.cpp +++ b/src/ulib/utility/uhttp.cpp @@ -10008,7 +10008,7 @@ U_EXPORT ostream& operator<<(ostream& os, const UHTTP::UFileCacheData& d) d.mime_index == U_jpg || d.mime_index == U_ico ? u_base64_encode((const unsigned char*)U_STRING_TO_PARAM(str), (unsigned char*)buffer) - : u_escape_encode((const unsigned char*)U_STRING_TO_PARAM(str), buffer, sizeof(buffer), false)); + : u_escape_encode((const unsigned char*)U_STRING_TO_PARAM(str), buffer, sizeof(buffer))); os.put('\n'); os.write(buffer, pos); @@ -10016,7 +10016,7 @@ U_EXPORT ostream& operator<<(ostream& os, const UHTTP::UFileCacheData& d) str = d.array->at(1); // header - pos = u_escape_encode((const unsigned char*)U_STRING_TO_PARAM(str), buffer, sizeof(buffer), false); + pos = u_escape_encode((const unsigned char*)U_STRING_TO_PARAM(str), buffer, sizeof(buffer)); os.put('\n'); os.write(buffer, pos); @@ -10035,7 +10035,7 @@ U_EXPORT ostream& operator<<(ostream& os, const UHTTP::UFileCacheData& d) str = d.array->at(3); // gzip(header) - pos = u_escape_encode((const unsigned char*)U_STRING_TO_PARAM(str), buffer, sizeof(buffer), false); + pos = u_escape_encode((const unsigned char*)U_STRING_TO_PARAM(str), buffer, sizeof(buffer)); os.put('\n'); os.write(buffer, pos); diff --git a/src/ulib/xml/expat/element.cpp b/src/ulib/xml/expat/element.cpp index bc832857..c2d433cf 100644 --- a/src/ulib/xml/expat/element.cpp +++ b/src/ulib/xml/expat/element.cpp @@ -99,7 +99,7 @@ U_EXPORT ostream& operator<<(ostream& os, const UXMLElement& e) (void) os.write(U_CONSTANT_TO_PARAM(" VALUE = ")); char buffer[4096]; - uint32_t len = u_escape_encode((const unsigned char*)U_STRING_TO_PARAM(e.value), buffer, sizeof(buffer), false); + uint32_t len = u_escape_encode((const unsigned char*)U_STRING_TO_PARAM(e.value), buffer, sizeof(buffer)); (void) os.write(buffer, len); } diff --git a/tests/base/test_misc.c b/tests/base/test_misc.c index 1ba6311b..4f5b9d5a 100644 --- a/tests/base/test_misc.c +++ b/tests/base/test_misc.c @@ -27,13 +27,16 @@ static int display_char(char* output, int what) { switch (what) { - case '\r': return sprintf(output, "\\r"); - case '\n': return sprintf(output, "\\n"); - case '\t': return sprintf(output, "\\t"); - case '\b': return sprintf(output, "\\b"); - case '\f': return sprintf(output, "\\f"); - case '\\': return sprintf(output, "\\\\"); - case '"': return sprintf(output, "\\\""); + case '\a': return sprintf(output, "\\a"); + case '\b': return sprintf(output, "\\b"); + case '\t': return sprintf(output, "\\t"); + case '\n': return sprintf(output, "\\n"); + case '\v': return sprintf(output, "\\v"); + case '\f': return sprintf(output, "\\f"); + case '\r': return sprintf(output, "\\r"); + case '\033': return sprintf(output, "\\e"); + case '\\': return sprintf(output, "\\\\"); + case '"': return sprintf(output, "\\\""); default: if ((what<32) || (what>126)) return sprintf(output, "\\%03o", (unsigned char)what); else return sprintf(output, "%c", what); @@ -145,7 +148,7 @@ int main(int argc, char* argv[]) u__snprintf(buffer, 4096, "test - %r", EX_PROTOCOL); if (strcmp(buf, buffer)) goto failed; - len = u_escape_encode((unsigned char*)U_CONSTANT_TO_PARAM("stringa che continua 01234567890"), buf, 25, false); + len = u_escape_encode((unsigned char*)U_CONSTANT_TO_PARAM("stringa che continua 01234567890"), buf, 25); buf[len] = '\0'; strcpy(buffer, "\"stringa che continua...\""); if (strcmp(buf, buffer)) goto failed; @@ -165,8 +168,6 @@ int main(int argc, char* argv[]) for (c = 0; c < 256; ++c) ptr += u_sprintc(ptr, c); - /* u_sprintc() = \\000\\001\\002\\003\\004\\005\\006\\007\\b\\t\\n\\013\\f\\r\\016\\017\\020\\021\\022\\023\\024\\025\\026\\027\\030\\031\\032\\033\\034\\035\\036\\037 !\"#$%%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\177\\200\\201\\202\\203\\204\\205\\206\\207\\210\\211\\212\\213\\214\\215\\216\\217\\220\\221\\222\\223\\224\\225\\226\\227\\230\\231\\232\\233\\234\\235\\236\\237\\240\\241\\242\\243\\244\\245\\246\\247\\250\\251\\252\\253\\254\\255\\256\\257\\260\\261\\262\\263\\264\\265\\266\\267\\270\\271\\272\\273\\274\\275\\276\\277\\300\\301\\302\\303\\304\\305\\306\\307\\310\\311\\312\\313\\314\\315\\316\\317\\320\\321\\322\\323\\324\\325\\326\\327\\330\\331\\332\\333\\334\\335\\336\\337\\340\\341\\342\\343\\344\\345\\346\\347\\350\\351\\352\\353\\354\\355\\356\\357\\360\\361\\362\\363\\364\\365\\366\\367\\370\\371\\372\\373\\374\\375\\376\\377; */ - if (strcmp(buf, buffer)) goto failed; } diff --git a/tests/debug/ok/memerror.ok b/tests/debug/ok/memerror.ok index 32acde64..bfb02b4e 100644 --- a/tests/debug/ok/memerror.ok +++ b/tests/debug/ok/memerror.ok @@ -1,20 +1,19 @@ -test_memerror: WARNING: 17/05/15 20:15:45 (pid 8956) we are going to allocate 64 MB (pid 8956) - address space usage: 122.45 MBytes - rss usage: 7.90 MBytes -test_memerror: WARNING: 17/05/15 20:15:45 (pid 8956) ::getenv("TMPDIR") = (null) -{Call main(1,0x7ffd1c0202d8) +test_memerror: WARNING: 30/05/15 16:03:57 (pid 19575) we are going to allocate 64 MB (pid 19575) - address space usage: 122.48 MBytes - rss usage: 7.78 MBytes +{Call main(1,0x7fffd71b9218) test_memerror: ERROR ON MEMORY ------------------------------------- - pid: 8956 + pid: 19575 file: test_memerror.cpp line: 26 function: UInt::operator int() const - assertion: "((this)->memory.invariant())" [pobj = 0x1f627a0 _this = (nil) - FMR] + assertion: "((this)->memory.invariant())" [pobj = 0x24717a0 _this = (nil) - FMR] ------------------------------------- test_memerror: ERROR ON MEMORY ------------------------------------- - pid: 8956 + pid: 19575 file: ../../include/ulib/debug/error_memory.h line: 28 function: UMemoryError::~UMemoryError() - assertion: "(invariant())" [pobj = 0x7ffd1c01f9c0 _this = 0xa1b2c3d000000ff - ABW] + assertion: "(invariant())" [pobj = 0x7fffd71b8900 _this = 0xa1b2c3d000000ff - ABW] ------------------------------------- -}Return main(1,0x7ffd1c0202d8) = 0 +}Return main(1,0x7fffd71b9218) = 0 diff --git a/tests/debug/ok/simerr.ok b/tests/debug/ok/simerr.ok index 32944b90..23007503 100644 --- a/tests/debug/ok/simerr.ok +++ b/tests/debug/ok/simerr.ok @@ -1,10 +1,9 @@ -test_trace: WARNING: (pid 18895) we are going to allocate 64 MB (pid 18895) - address space usage: 115.60 MBytes - rss usage: 7.36 MBytes -test_trace: WARNING: (pid 18895) ::getenv("TMPDIR") = (null) +test_trace: WARNING: 30/05/15 16:03:58 (pid 19663) we are going to allocate 64 MB (pid 19663) - address space usage: 122.40 MBytes - rss usage: 7.77 MBytes {Call main(2) {Call routine1(2,3) }Return routine1(2,3) = 6 c = 6 - ::signal(4,0x401660) = (nil) + ::signal(4,0x401710) = (nil) {Call manage_sigpipe(4) ::open("/tmp/tmp/tmp/tmp/tmp/tmp/tmp/tmp/tmp/tmp/tmp/tmp/tmp/tmp/tmp/tmp/tmp/tmp/tmp/tmp/tmp/tmp/tmp/tmp/tmp/tmp/tmp/tmp/tmp/tmp/tmp/tmp"...,2,438) = -1 - ENOENT (2, No such file or directory) ::open("tmp/prova",66,438) = 5 @@ -12,10 +11,10 @@ test_trace: WARNING: (pid 18895) ::getenv("TMPDIR") = (null) ::raise(4) = 0 result raise() = 0 test_stat() = -1 - test_stat() = 0 - test_stat() = 0 - test_stat() = 0 test_stat() = -1 + test_stat() = 0 + test_stat() = 0 + test_stat() = 0 ::malloc(1000) = (nil) - ENOMEM (12, Cannot allocate memory) malloc() = (nil) }Return main(2) = 0 diff --git a/tests/examples/benchmark/FrameworkBenchmarks/fbenchmark.cfg b/tests/examples/benchmark/FrameworkBenchmarks/fbenchmark.cfg index 936d155d..bd9328d6 100644 --- a/tests/examples/benchmark/FrameworkBenchmarks/fbenchmark.cfg +++ b/tests/examples/benchmark/FrameworkBenchmarks/fbenchmark.cfg @@ -2,7 +2,7 @@ userver { PORT 8080 PREFORK_CHILD 4 - TCP_LINGER_SET -2 + TCP_LINGER_SET 0 LISTEN_BACKLOG 256 DOCUMENT_ROOT benchmark/FrameworkBenchmarks/ULib/www PID_FILE benchmark/FrameworkBenchmarks/ULib/userver_tcp.pid diff --git a/tests/ulib/file_config.test b/tests/ulib/file_config.test index 9b356ddc..7025143b 100755 --- a/tests/ulib/file_config.test +++ b/tests/ulib/file_config.test @@ -6,7 +6,7 @@ start_msg file_config -#UTRACE="0 10M 0" +#UTRACE="0 10M -1" #UOBJDUMP="0 100k 10" #USIMERR="error.sim" export UTRACE UOBJDUMP USIMERR diff --git a/tests/ulib/json.test b/tests/ulib/json.test index 4a011671..235123a6 100755 --- a/tests/ulib/json.test +++ b/tests/ulib/json.test @@ -6,7 +6,7 @@ start_msg json -#UTRACE="0 100M 0" + UTRACE="0 100M 0" #UOBJDUMP="0 100k 10" #USIMERR="error.sim" export UTRACE UOBJDUMP USIMERR diff --git a/tests/ulib/ok/json.ok b/tests/ulib/ok/json.ok index c1f29e33..6bd6b81b 100644 --- a/tests/ulib/ok/json.ok +++ b/tests/ulib/ok/json.ok @@ -4,18 +4,18 @@ ["Illegal backslash escape: \u000F"] [[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]] ["Unclosed array"] -["\u0009tab\u0009character\u0009in\u0009string\u0009"] +["\ttab\tcharacter\tin\tstring\t"] ["tab character in string "] -["line\u000Abreak"] -["line\u000Abreak"] +["line\nbreak"] +["line\nbreak"] [0.0] [0.0] [0.0] ["<-- missing value"] ["Comma after the close"] ["Extra close"] -{"feed":{"openSearch$totalResults":{"$t":430},"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full"},"xmlns":"http://www.w3.org/2005/Atom","openSearch$startIndex":{"$t":1},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"updated":{"$t":"2010-08-10T14:53:58.000Z"},"xmlns$gCal":"http://schemas.google.com/gCal/2005","gCal$timesCleaned":{"value":0},"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"xmlns$gd":"http://schemas.google.com/g/2005","gCal$timezone":{"value":"America/Los_Angeles"},"link":[{"href":"http://www.google.com/calendar/embed?src=developer-calendar@google.com","type":"text/html","rel":"alternate"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full","type":"application/atom+xml","rel":"http://schemas.google.com/g/2005#feed"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/batch","type":"application/atom+xml","rel":"http://schemas.google.com/g/2005#batch"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full?alt=json&max-results=25","type":"application/atom+xml","rel":"self"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full?alt=json&start-index=26&max-results=25","type":"application/atom+xml","rel":"next"}],"subtitle":{"type":"text","$t":"The calendar contains information about upcoming developer conferences at which Google will be speaking, along with other developer-related events."},"entry":[{"published":{"$t":"2010-04-06T21:17:09.000Z"},"gCal$anyoneCanAddSelf":{"value":"false"},"content":{"type":"text","$t":"Members of the Google Wave API engineering team will be available in Google Wave Preview to answer questions about building robots or gadgets or embedding waves. \u000AFollow this wave to be notified when office hours are starting:\u000Ahttps://wave.google.com/wave/#restored:search:in%253AInbox,restored:wave:googlewave.com!w%252BFICYnJWoL"},"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/js6f014310d098v99bhs987ks4_20100811T180000Z"},"gCal$sequence":{"value":0},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gd$when":[{"startTime":"2010-08-11T11:00:00.000-07:00","endTime":"2010-08-11T12:00:00.000-07:00"}],"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"updated":{"$t":"2010-08-10T02:59:23.000Z"},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.canceled"},"gd$who":[{"rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","email":"developer-calendar@google.com"}],"gCal$guestsCanInviteOthers":{"value":"true"},"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gd$where":[{"valueString":"Google Wave Preview"}],"link":[{"href":"http://www.google.com/calendar/event?eid=anM2ZjAxNDMxMGQwOTh2OTliaHM5ODdrczRfMjAxMDA4MTFUMTgwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","type":"text/html","rel":"alternate","title":"alternate"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/js6f014310d098v99bhs987ks4_20100811T180000Z","type":"application/atom+xml","rel":"self"}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/js6f014310d098v99bhs987ks4_20100811T180000Z/comments"}},"gd$originalEvent":{"id":"js6f014310d098v99bhs987ks4","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/js6f014310d098v99bhs987ks4","gd$when":{"startTime":"2010-08-11T11:00:00.000-07:00"}},"gCal$uid":{"value":"js6f014310d098v99bhs987ks4@google.com"},"title":{"type":"text","$t":"Wave API Office Hours"}},{"published":{"$t":"2010-01-05T00:32:19.000Z"},"gCal$anyoneCanAddSelf":{"value":"false"},"content":{"type":"text","$t":"Members of the Google Wave API engineering team will be available in Wave to answer questions about building robots or gadgets or embedding waves. "},"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/86ov9cs2g29195t96i4oud1g24_20100805T060000Z"},"gCal$sequence":{"value":2},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gd$when":[{"startTime":"2010-08-04T23:00:00.000-07:00","endTime":"2010-08-05T00:00:00.000-07:00"}],"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"updated":{"$t":"2010-08-09T23:18:40.000Z"},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.canceled"},"gd$who":[{"rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","email":"developer-calendar@google.com"}],"gCal$guestsCanInviteOthers":{"value":"true"},"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gd$where":[{"valueString":"https://wave.google.com/wave/"}],"link":[{"href":"http://www.google.com/calendar/event?eid=ODZvdjljczJnMjkxOTV0OTZpNG91ZDFnMjRfMjAxMDA4MDVUMDYwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","type":"text/html","rel":"alternate","title":"alternate"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/86ov9cs2g29195t96i4oud1g24_20100805T060000Z","type":"application/atom+xml","rel":"self"}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/86ov9cs2g29195t96i4oud1g24_20100805T060000Z/comments"}},"gd$originalEvent":{"id":"86ov9cs2g29195t96i4oud1g24","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/86ov9cs2g29195t96i4oud1g24","gd$when":{"startTime":"2010-08-04T23:00:00.000-07:00"}},"gCal$uid":{"value":"86ov9cs2g29195t96i4oud1g24@google.com"},"title":{"type":"text","$t":"Google Wave API Office Hours"}},{"published":{"$t":"2010-07-31T18:22:26.000Z"},"gCal$anyoneCanAddSelf":{"value":"false"},"content":{"type":"text","$t":""},"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/gtl3e8fv17kjh2cibk2p37fg3s"},"gCal$sequence":{"value":0},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gd$when":[{"startTime":"2010-09-23","endTime":"2010-09-24"}],"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"updated":{"$t":"2010-08-09T23:18:40.000Z"},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$who":[{"rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","email":"developer-calendar@google.com"}],"gCal$guestsCanInviteOthers":{"value":"true"},"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.transparent"},"gd$where":[{"valueString":""}],"link":[{"href":"http://www.google.com/calendar/event?eid=Z3RsM2U4ZnYxN2tqaDJjaWJrMnAzN2ZnM3MgZGV2ZWxvcGVyLWNhbGVuZGFyQGdvb2dsZS5jb20","type":"text/html","rel":"alternate","title":"alternate"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/gtl3e8fv17kjh2cibk2p37fg3s","type":"application/atom+xml","rel":"self"}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/gtl3e8fv17kjh2cibk2p37fg3s/comments"}},"gCal$uid":{"value":"gtl3e8fv17kjh2cibk2p37fg3s@google.com"},"title":{"type":"text","$t":"DevFest Madrid"}},{"published":{"$t":"2010-04-06T21:17:09.000Z"},"gCal$anyoneCanAddSelf":{"value":"false"},"content":{"type":"text","$t":"Members of the Google Wave API engineering team will be available in Google Wave Preview to answer questions about building robots or gadgets or embedding waves. \u000AFollow this wave to be notified when office hours are starting:\u000Ahttps://wave.google.com/wave/#restored:search:in%253AInbox,restored:wave:googlewave.com!w%252BFICYnJWoL"},"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/js6f014310d098v99bhs987ks4_20100728T180000Z"},"gCal$sequence":{"value":0},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gd$when":[{"startTime":"2010-07-28T11:00:00.000-07:00","endTime":"2010-07-28T12:00:00.000-07:00"}],"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"updated":{"$t":"2010-08-09T23:18:39.000Z"},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.canceled"},"gd$who":[{"rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","email":"developer-calendar@google.com"}],"gCal$guestsCanInviteOthers":{"value":"true"},"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gd$where":[{"valueString":"Google Wave Preview"}],"link":[{"href":"http://www.google.com/calendar/event?eid=anM2ZjAxNDMxMGQwOTh2OTliaHM5ODdrczRfMjAxMDA3MjhUMTgwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","type":"text/html","rel":"alternate","title":"alternate"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/js6f014310d098v99bhs987ks4_20100728T180000Z","type":"application/atom+xml","rel":"self"}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/js6f014310d098v99bhs987ks4_20100728T180000Z/comments"}},"gd$originalEvent":{"id":"js6f014310d098v99bhs987ks4","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/js6f014310d098v99bhs987ks4","gd$when":{"startTime":"2010-07-28T11:00:00.000-07:00"}},"gCal$uid":{"value":"js6f014310d098v99bhs987ks4@google.com"},"title":{"type":"text","$t":"Wave API Office Hours"}},{"published":{"$t":"2010-01-08T23:10:35.000Z"},"gCal$anyoneCanAddSelf":{"value":"false"},"content":{"type":"text","$t":"http://www.guadec.org/index.php/guadec/index\u000A\u000AGoogle returns as a sponsor"},"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/tccdtqm6cgbfoloq2a9hb45au4"},"gCal$sequence":{"value":0},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gd$when":[{"startTime":"2010-07-23","endTime":"2010-07-31"}],"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"updated":{"$t":"2010-08-09T23:18:39.000Z"},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$who":[{"rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","email":"developer-calendar@google.com"}],"gCal$guestsCanInviteOthers":{"value":"true"},"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.transparent"},"gd$where":[{"valueString":"The Hague, Netherlands @ 52.083333, 4.316667"}],"link":[{"href":"http://www.google.com/calendar/event?eid=dGNjZHRxbTZjZ2Jmb2xvcTJhOWhiNDVhdTQgZGV2ZWxvcGVyLWNhbGVuZGFyQGdvb2dsZS5jb20","type":"text/html","rel":"alternate","title":"alternate"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/tccdtqm6cgbfoloq2a9hb45au4","type":"application/atom+xml","rel":"self"}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/tccdtqm6cgbfoloq2a9hb45au4/comments"}},"gCal$uid":{"value":"tccdtqm6cgbfoloq2a9hb45au4@google.com"},"title":{"type":"text","$t":"GUADEC"}},{"published":{"$t":"2010-07-26T21:39:41.000Z"},"gCal$anyoneCanAddSelf":{"value":"false"},"content":{"type":"text","$t":"http://www.meetup.com/GTUG-Campout/"},"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/rcciaon58un0s7093g6811c5ns"},"gCal$sequence":{"value":0},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gd$when":[{"startTime":"2010-08-13","endTime":"2010-08-16"}],"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"updated":{"$t":"2010-08-09T23:18:39.000Z"},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$who":[{"rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","email":"developer-calendar@google.com"}],"gCal$guestsCanInviteOthers":{"value":"true"},"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.transparent"},"gd$where":[{"valueString":"Multiple cities"}],"link":[{"href":"http://www.google.com/calendar/event?eid=cmNjaWFvbjU4dW4wczcwOTNnNjgxMWM1bnMgZGV2ZWxvcGVyLWNhbGVuZGFyQGdvb2dsZS5jb20","type":"text/html","rel":"alternate","title":"alternate"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/rcciaon58un0s7093g6811c5ns","type":"application/atom+xml","rel":"self"}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/rcciaon58un0s7093g6811c5ns/comments"}},"gCal$uid":{"value":"rcciaon58un0s7093g6811c5ns@google.com"},"title":{"type":"text","$t":"GTUG Campout (HTML5)"}},{"published":{"$t":"2010-08-02T15:25:17.000Z"},"gCal$anyoneCanAddSelf":{"value":"false"},"content":{"type":"text","$t":"Please join us on September 23, 2010 for an Apps Script hackathon in Mountain View, CA. \u000ARegister here: http://sites.google.com/site/appsscripthackathonmtv/"},"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/7u0m5c29msln7lfqf62oia77qk"},"gCal$sequence":{"value":0},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gd$when":[{"startTime":"2010-09-23T14:00:00.000-07:00","endTime":"2010-09-23T20:00:00.000-07:00"}],"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"updated":{"$t":"2010-08-09T23:18:39.000Z"},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$who":[{"rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","email":"developer-calendar@google.com"}],"gCal$guestsCanInviteOthers":{"value":"true"},"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gd$where":[{"valueString":"Google, 1600 Amphitheatre Parkway, Mountain View, CA 94043"}],"link":[{"href":"http://www.google.com/calendar/event?eid=N3UwbTVjMjltc2xuN2xmcWY2Mm9pYTc3cWsgZGV2ZWxvcGVyLWNhbGVuZGFyQGdvb2dsZS5jb20","type":"text/html","rel":"alternate","title":"alternate"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/7u0m5c29msln7lfqf62oia77qk","type":"application/atom+xml","rel":"self"}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/7u0m5c29msln7lfqf62oia77qk/comments"}},"gCal$uid":{"value":"7u0m5c29msln7lfqf62oia77qk@google.com"},"title":{"type":"text","$t":"Google Apps Script Hackathon - Mountain View, CA"}},{"published":{"$t":"2010-07-31T06:50:38.000Z"},"gCal$anyoneCanAddSelf":{"value":"false"},"content":{"type":"text","$t":""},"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/ouls6kh853ajk6s8pgo6j7mmh8"},"gCal$sequence":{"value":0},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gd$when":[{"startTime":"2010-09-26T21:00:00.000-07:00","endTime":"2010-09-27T01:00:00.000-07:00"}],"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"updated":{"$t":"2010-08-09T23:18:38.000Z"},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$who":[{"rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","email":"developer-calendar@google.com"}],"gCal$guestsCanInviteOthers":{"value":"true"},"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gd$where":[{"valueString":"\u00E6\u009D\u00B1\u00E4\u00BA\u00AC\u00E5\u009B\u00BD\u00E9\u009A\u009B\u00E3\u0083\u0095\u00E3\u0082\u00A9\u00E3\u0083\u00BC\u00E3\u0083\u00A9\u00E3\u0083\u00A0\u00E3\u0080\u0081\u00E6\u009D\u00B1\u00E4\u00BA\u00AC\u00E9\u0083\u00BD\u00E5\u008D\u0083\u00E4\u00BB\u00A3\u00E7\u0094\u00B0\u00E5\u008C\u00BA\u00E4\u00B8\u00B8\u00E3\u0081\u00AE\u00E5\u0086\u0085 3-5-1"}],"link":[{"href":"http://www.google.com/calendar/event?eid=b3VsczZraDg1M2FqazZzOHBnbzZqN21taDggZGV2ZWxvcGVyLWNhbGVuZGFyQGdvb2dsZS5jb20","type":"text/html","rel":"alternate","title":"alternate"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/ouls6kh853ajk6s8pgo6j7mmh8","type":"application/atom+xml","rel":"self"}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/ouls6kh853ajk6s8pgo6j7mmh8/comments"}},"gCal$uid":{"value":"ouls6kh853ajk6s8pgo6j7mmh8@google.com"},"title":{"type":"text","$t":"Google Developer Day GTUG Bootcamp"}},{"published":{"$t":"2010-01-20T17:39:45.000Z"},"gCal$anyoneCanAddSelf":{"value":"false"},"content":{"type":"text","$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\u000APost your questions prior to office hours at StackOverflow with tags:\u000Aandroid, from-irc\u000A"},"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100730T000000Z"},"gCal$sequence":{"value":4},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gd$when":[{"startTime":"2010-07-29T17:00:00.000-07:00","endTime":"2010-07-29T18:00:00.000-07:00"}],"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"updated":{"$t":"2010-07-28T17:42:29.000Z"},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$who":[{"gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.declined"},"rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","email":"developer-calendar@google.com"}],"gCal$guestsCanInviteOthers":{"value":"true"},"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"link":[{"href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDA3MzBUMDAwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","type":"text/html","rel":"alternate","title":"alternate"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100730T000000Z","type":"application/atom+xml","rel":"self"}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100730T000000Z/comments"}},"gd$originalEvent":{"id":"503f9q9o4mqmhds5ilqk50er00","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-07-29T17:00:00.000-07:00"}},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"},"title":{"type":"text","$t":"Android IRC office hours"}},{"published":{"$t":"2010-01-20T17:39:45.000Z"},"gCal$anyoneCanAddSelf":{"value":"false"},"content":{"type":"text","$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\u000APost your questions prior to office hours at StackOverflow with tags:\u000Aandroid, from-irc\u000A"},"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100716T000000Z"},"gCal$sequence":{"value":4},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gd$when":[{"startTime":"2010-07-15T17:00:00.000-07:00","endTime":"2010-07-15T18:00:00.000-07:00"}],"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"updated":{"$t":"2010-07-20T21:29:19.000Z"},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$who":[{"gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"},"rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","email":"developer-calendar@google.com"}],"gCal$guestsCanInviteOthers":{"value":"true"},"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"link":[{"href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDA3MTZUMDAwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","type":"text/html","rel":"alternate","title":"alternate"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100716T000000Z","type":"application/atom+xml","rel":"self"}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100716T000000Z/comments"}},"gd$originalEvent":{"id":"503f9q9o4mqmhds5ilqk50er00","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-07-15T17:00:00.000-07:00"}},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"},"title":{"type":"text","$t":"Android IRC office hours"}},{"published":{"$t":"2010-01-20T17:39:45.000Z"},"gCal$anyoneCanAddSelf":{"value":"false"},"content":{"type":"text","$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\u000APost your questions prior to office hours at StackOverflow with tags:\u000Aandroid, from-irc\u000A"},"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100702T000000Z"},"gCal$sequence":{"value":4},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gd$when":[{"startTime":"2010-07-01T17:00:00.000-07:00","endTime":"2010-07-01T18:00:00.000-07:00"}],"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"updated":{"$t":"2010-07-20T21:29:19.000Z"},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$who":[{"gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"},"rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","email":"developer-calendar@google.com"}],"gCal$guestsCanInviteOthers":{"value":"true"},"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"link":[{"href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDA3MDJUMDAwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","type":"text/html","rel":"alternate","title":"alternate"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100702T000000Z","type":"application/atom+xml","rel":"self"}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100702T000000Z/comments"}},"gd$originalEvent":{"id":"503f9q9o4mqmhds5ilqk50er00","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-07-01T17:00:00.000-07:00"}},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"},"title":{"type":"text","$t":"Android IRC office hours"}},{"published":{"$t":"2010-01-20T17:39:45.000Z"},"gCal$anyoneCanAddSelf":{"value":"false"},"content":{"type":"text","$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\u000APost your questions prior to office hours at StackOverflow with tags:\u000Aandroid, from-irc\u000A"},"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100625T000000Z"},"gCal$sequence":{"value":4},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gd$when":[{"startTime":"2010-06-24T17:00:00.000-07:00","endTime":"2010-06-24T18:00:00.000-07:00"}],"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"updated":{"$t":"2010-07-20T21:29:19.000Z"},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$who":[{"gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"},"rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","email":"developer-calendar@google.com"}],"gCal$guestsCanInviteOthers":{"value":"true"},"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"link":[{"href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDA2MjVUMDAwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","type":"text/html","rel":"alternate","title":"alternate"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100625T000000Z","type":"application/atom+xml","rel":"self"}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100625T000000Z/comments"}},"gd$originalEvent":{"id":"503f9q9o4mqmhds5ilqk50er00","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-06-24T17:00:00.000-07:00"}},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"},"title":{"type":"text","$t":"Android IRC office hours"}},{"published":{"$t":"2010-01-20T17:39:45.000Z"},"gCal$anyoneCanAddSelf":{"value":"false"},"content":{"type":"text","$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\u000APost your questions prior to office hours at StackOverflow with tags:\u000Aandroid, from-irc\u000A"},"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100611T000000Z"},"gCal$sequence":{"value":4},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gd$when":[{"startTime":"2010-06-10T17:00:00.000-07:00","endTime":"2010-06-10T18:00:00.000-07:00"}],"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"updated":{"$t":"2010-07-20T21:29:19.000Z"},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$who":[{"gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"},"rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","email":"developer-calendar@google.com"}],"gCal$guestsCanInviteOthers":{"value":"true"},"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"link":[{"href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDA2MTFUMDAwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","type":"text/html","rel":"alternate","title":"alternate"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100611T000000Z","type":"application/atom+xml","rel":"self"}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100611T000000Z/comments"}},"gd$originalEvent":{"id":"503f9q9o4mqmhds5ilqk50er00","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-06-10T17:00:00.000-07:00"}},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"},"title":{"type":"text","$t":"Android IRC office hours"}},{"published":{"$t":"2010-01-20T17:39:45.000Z"},"gCal$anyoneCanAddSelf":{"value":"false"},"content":{"type":"text","$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\u000APost your questions prior to office hours at StackOverflow with tags:\u000Aandroid, from-irc\u000A"},"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100604T000000Z"},"gCal$sequence":{"value":4},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gd$when":[{"startTime":"2010-06-03T17:00:00.000-07:00","endTime":"2010-06-03T18:00:00.000-07:00"}],"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"updated":{"$t":"2010-07-20T21:29:19.000Z"},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$who":[{"gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"},"rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","email":"developer-calendar@google.com"}],"gCal$guestsCanInviteOthers":{"value":"true"},"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"link":[{"href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDA2MDRUMDAwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","type":"text/html","rel":"alternate","title":"alternate"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100604T000000Z","type":"application/atom+xml","rel":"self"}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100604T000000Z/comments"}},"gd$originalEvent":{"id":"503f9q9o4mqmhds5ilqk50er00","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-06-03T17:00:00.000-07:00"}},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"},"title":{"type":"text","$t":"Android IRC office hours"}},{"published":{"$t":"2010-01-20T17:39:45.000Z"},"gCal$anyoneCanAddSelf":{"value":"false"},"content":{"type":"text","$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\u000APost your questions prior to office hours at StackOverflow with tags:\u000Aandroid, from-irc\u000A"},"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100528T000000Z"},"gCal$sequence":{"value":4},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gd$when":[{"startTime":"2010-05-27T17:00:00.000-07:00","endTime":"2010-05-27T18:00:00.000-07:00"}],"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"updated":{"$t":"2010-07-20T21:29:19.000Z"},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$who":[{"gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"},"rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","email":"developer-calendar@google.com"}],"gCal$guestsCanInviteOthers":{"value":"true"},"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"link":[{"href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDA1MjhUMDAwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","type":"text/html","rel":"alternate","title":"alternate"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100528T000000Z","type":"application/atom+xml","rel":"self"}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100528T000000Z/comments"}},"gd$originalEvent":{"id":"503f9q9o4mqmhds5ilqk50er00","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-05-27T17:00:00.000-07:00"}},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"},"title":{"type":"text","$t":"Android IRC office hours"}},{"published":{"$t":"2010-01-20T17:39:45.000Z"},"gCal$anyoneCanAddSelf":{"value":"false"},"content":{"type":"text","$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\u000APost your questions prior to office hours at StackOverflow with tags:\u000Aandroid, from-irc\u000A"},"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100521T000000Z"},"gCal$sequence":{"value":4},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gd$when":[{"startTime":"2010-05-20T17:00:00.000-07:00","endTime":"2010-05-20T18:00:00.000-07:00"}],"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"updated":{"$t":"2010-07-20T21:29:19.000Z"},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$who":[{"gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"},"rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","email":"developer-calendar@google.com"}],"gCal$guestsCanInviteOthers":{"value":"true"},"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"link":[{"href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDA1MjFUMDAwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","type":"text/html","rel":"alternate","title":"alternate"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100521T000000Z","type":"application/atom+xml","rel":"self"}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100521T000000Z/comments"}},"gd$originalEvent":{"id":"503f9q9o4mqmhds5ilqk50er00","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-05-20T17:00:00.000-07:00"}},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"},"title":{"type":"text","$t":"Android IRC office hours"}},{"published":{"$t":"2010-01-20T17:39:45.000Z"},"gCal$anyoneCanAddSelf":{"value":"false"},"content":{"type":"text","$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\u000APost your questions prior to office hours at StackOverflow with tags:\u000Aandroid, from-irc\u000A"},"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100514T000000Z"},"gCal$sequence":{"value":4},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gd$when":[{"startTime":"2010-05-13T17:00:00.000-07:00","endTime":"2010-05-13T18:00:00.000-07:00"}],"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"updated":{"$t":"2010-07-20T21:29:19.000Z"},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$who":[{"gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"},"rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","email":"developer-calendar@google.com"}],"gCal$guestsCanInviteOthers":{"value":"true"},"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"link":[{"href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDA1MTRUMDAwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","type":"text/html","rel":"alternate","title":"alternate"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100514T000000Z","type":"application/atom+xml","rel":"self"}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100514T000000Z/comments"}},"gd$originalEvent":{"id":"503f9q9o4mqmhds5ilqk50er00","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-05-13T17:00:00.000-07:00"}},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"},"title":{"type":"text","$t":"Android IRC office hours"}},{"published":{"$t":"2010-01-20T17:39:45.000Z"},"gCal$anyoneCanAddSelf":{"value":"false"},"content":{"type":"text","$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\u000APost your questions prior to office hours at StackOverflow with tags:\u000Aandroid, from-irc\u000A"},"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100326T000000Z"},"gCal$sequence":{"value":4},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gd$when":[{"startTime":"2010-03-25T17:00:00.000-07:00","endTime":"2010-03-25T18:00:00.000-07:00"}],"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"updated":{"$t":"2010-07-20T21:29:19.000Z"},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$who":[{"gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"},"rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","email":"developer-calendar@google.com"}],"gCal$guestsCanInviteOthers":{"value":"true"},"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"link":[{"href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDAzMjZUMDAwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","type":"text/html","rel":"alternate","title":"alternate"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100326T000000Z","type":"application/atom+xml","rel":"self"}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100326T000000Z/comments"}},"gd$originalEvent":{"id":"503f9q9o4mqmhds5ilqk50er00","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-03-25T17:00:00.000-07:00"}},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"},"title":{"type":"text","$t":"Android IRC office hours"}},{"published":{"$t":"2010-01-20T17:39:45.000Z"},"gCal$anyoneCanAddSelf":{"value":"false"},"content":{"type":"text","$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\u000APost your questions prior to office hours at StackOverflow with tags:\u000Aandroid, from-irc\u000A"},"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100305T010000Z"},"gCal$sequence":{"value":4},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gd$when":[{"startTime":"2010-03-04T17:00:00.000-08:00","endTime":"2010-03-04T18:00:00.000-08:00"}],"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"updated":{"$t":"2010-07-20T21:29:19.000Z"},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$who":[{"gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"},"rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","email":"developer-calendar@google.com"}],"gCal$guestsCanInviteOthers":{"value":"true"},"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"link":[{"href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDAzMDVUMDEwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","type":"text/html","rel":"alternate","title":"alternate"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100305T010000Z","type":"application/atom+xml","rel":"self"}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100305T010000Z/comments"}},"gd$originalEvent":{"id":"503f9q9o4mqmhds5ilqk50er00","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-03-04T17:00:00.000-08:00"}},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"},"title":{"type":"text","$t":"Android IRC office hours"}},{"published":{"$t":"2010-01-20T17:39:45.000Z"},"gCal$anyoneCanAddSelf":{"value":"false"},"content":{"type":"text","$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\u000APost your questions prior to office hours at StackOverflow with tags:\u000Aandroid, from-irc\u000A"},"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100226T010000Z"},"gCal$sequence":{"value":4},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gd$when":[{"startTime":"2010-02-25T17:00:00.000-08:00","endTime":"2010-02-25T18:00:00.000-08:00"}],"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"updated":{"$t":"2010-07-20T21:29:19.000Z"},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$who":[{"gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"},"rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","email":"developer-calendar@google.com"}],"gCal$guestsCanInviteOthers":{"value":"true"},"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"link":[{"href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDAyMjZUMDEwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","type":"text/html","rel":"alternate","title":"alternate"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100226T010000Z","type":"application/atom+xml","rel":"self"}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100226T010000Z/comments"}},"gd$originalEvent":{"id":"503f9q9o4mqmhds5ilqk50er00","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-02-25T17:00:00.000-08:00"}},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"},"title":{"type":"text","$t":"Android IRC office hours"}},{"published":{"$t":"2010-01-20T17:39:45.000Z"},"gCal$anyoneCanAddSelf":{"value":"false"},"content":{"type":"text","$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\u000APost your questions prior to office hours at StackOverflow with tags:\u000Aandroid, from-irc\u000A"},"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100219T010000Z"},"gCal$sequence":{"value":4},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gd$when":[{"startTime":"2010-02-18T17:00:00.000-08:00","endTime":"2010-02-18T18:00:00.000-08:00"}],"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"updated":{"$t":"2010-07-20T21:29:19.000Z"},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$who":[{"gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"},"rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","email":"developer-calendar@google.com"}],"gCal$guestsCanInviteOthers":{"value":"true"},"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"link":[{"href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDAyMTlUMDEwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","type":"text/html","rel":"alternate","title":"alternate"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100219T010000Z","type":"application/atom+xml","rel":"self"}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100219T010000Z/comments"}},"gd$originalEvent":{"id":"503f9q9o4mqmhds5ilqk50er00","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-02-18T17:00:00.000-08:00"}},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"},"title":{"type":"text","$t":"Android IRC office hours"}},{"published":{"$t":"2010-01-20T17:39:45.000Z"},"gCal$anyoneCanAddSelf":{"value":"false"},"content":{"type":"text","$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\u000APost your questions prior to office hours at StackOverflow with tags:\u000Aandroid, from-irc\u000A"},"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100212T010000Z"},"gCal$sequence":{"value":4},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gd$when":[{"startTime":"2010-02-11T17:00:00.000-08:00","endTime":"2010-02-11T18:00:00.000-08:00"}],"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"updated":{"$t":"2010-07-20T21:29:19.000Z"},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$who":[{"gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"},"rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","email":"developer-calendar@google.com"}],"gCal$guestsCanInviteOthers":{"value":"true"},"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"link":[{"href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDAyMTJUMDEwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","type":"text/html","rel":"alternate","title":"alternate"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100212T010000Z","type":"application/atom+xml","rel":"self"}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100212T010000Z/comments"}},"gd$originalEvent":{"id":"503f9q9o4mqmhds5ilqk50er00","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-02-11T17:00:00.000-08:00"}},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"},"title":{"type":"text","$t":"Android IRC office hours"}},{"published":{"$t":"2010-01-20T17:39:45.000Z"},"gCal$anyoneCanAddSelf":{"value":"false"},"content":{"type":"text","$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\u000APost your questions prior to office hours at StackOverflow with tags:\u000Aandroid, from-irc\u000A"},"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100122T010000Z"},"gCal$sequence":{"value":4},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gd$when":[{"startTime":"2010-01-21T17:00:00.000-08:00","endTime":"2010-01-21T18:00:00.000-08:00"}],"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"updated":{"$t":"2010-07-20T21:29:19.000Z"},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$who":[{"gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"},"rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","email":"developer-calendar@google.com"}],"gCal$guestsCanInviteOthers":{"value":"true"},"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"link":[{"href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDAxMjJUMDEwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","type":"text/html","rel":"alternate","title":"alternate"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100122T010000Z","type":"application/atom+xml","rel":"self"}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100122T010000Z/comments"}},"gd$originalEvent":{"id":"503f9q9o4mqmhds5ilqk50er00","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-01-21T17:00:00.000-08:00"}},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"},"title":{"type":"text","$t":"Android IRC office hours"}},{"published":{"$t":"2010-01-20T17:39:45.000Z"},"gCal$anyoneCanAddSelf":{"value":"false"},"content":{"type":"text","$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\u000APost your questions prior to office hours at StackOverflow with tags:\u000Aandroid, from-irc\u000A"},"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00"},"gCal$sequence":{"value":4},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"updated":{"$t":"2010-07-20T21:29:18.000Z"},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$who":[{"gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"},"rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","email":"developer-calendar@google.com"}],"gCal$guestsCanInviteOthers":{"value":"true"},"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"gd$recurrence":{"$t":"DTSTART;TZID=America/Los_Angeles:20100121T170000\u000D\u000ADTEND;TZID=America/Los_Angeles:20100121T180000\u000D\u000ARRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=TH;WKST=SU\u000D\u000ABEGIN:VTIMEZONE\u000D\u000ATZID:America/Los_Angeles\u000D\u000AX-LIC-LOCATION:America/Los_Angeles\u000D\u000ABEGIN:DAYLIGHT\u000D\u000ATZOFFSETFROM:-0800\u000D\u000ATZOFFSETTO:-0700\u000D\u000ATZNAME:PDT\u000D\u000ADTSTART:19700308T020000\u000D\u000ARRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\u000D\u000AEND:DAYLIGHT\u000D\u000ABEGIN:STANDARD\u000D\u000ATZOFFSETFROM:-0700\u000D\u000ATZOFFSETTO:-0800\u000D\u000ATZNAME:PST\u000D\u000ADTSTART:19701101T020000\u000D\u000ARRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\u000D\u000AEND:STANDARD\u000D\u000AEND:VTIMEZONE\u000D\u000A"},"link":[{"href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDAxMjJUMDEwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","type":"text/html","rel":"alternate","title":"alternate"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","type":"application/atom+xml","rel":"self"}],"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"},"title":{"type":"text","$t":"Android IRC office hours"}},{"published":{"$t":"2010-01-05T00:32:19.000Z"},"gCal$anyoneCanAddSelf":{"value":"false"},"content":{"type":"text","$t":"Members of the Google Wave API engineering team will be available in the Wave developer sandbox to answer questions about building robots or gadgets or embedding waves. "},"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/us34qg9722ghhjh7htvkquoetg_20100624T060000Z"},"gCal$sequence":{"value":0},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gd$when":[{"startTime":"2010-06-23T00:00:00.000-07:00","endTime":"2010-06-23T01:00:00.000-07:00"}],"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"updated":{"$t":"2010-07-20T01:33:49.000Z"},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$who":[{"rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","email":"developer-calendar@google.com"}],"gCal$guestsCanInviteOthers":{"value":"true"},"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gd$where":[{"valueString":"Wave Preview"}],"link":[{"href":"http://www.google.com/calendar/event?eid=dXMzNHFnOTcyMmdoaGpoN2h0dmtxdW9ldGdfMjAxMDA2MjRUMDYwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","type":"text/html","rel":"alternate","title":"alternate"},{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/us34qg9722ghhjh7htvkquoetg_20100624T060000Z","type":"application/atom+xml","rel":"self"}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/us34qg9722ghhjh7htvkquoetg_20100624T060000Z/comments"}},"gd$originalEvent":{"id":"us34qg9722ghhjh7htvkquoetg","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/us34qg9722ghhjh7htvkquoetg","gd$when":{"startTime":"2010-06-23T23:00:00.000-07:00"}},"gCal$uid":{"value":"us34qg9722ghhjh7htvkquoetg@google.com"},"title":{"type":"text","$t":"Google Wave API Office Hours"}}],"generator":{"version":"1.0","uri":"http://www.google.com/calendar","$t":"Google Calendar"},"openSearch$itemsPerPage":{"$t":25},"title":{"type":"text","$t":"Official Google External Developer Events"},"xmlns$openSearch":"http://a9.com/-/spec/opensearchrss/1.0/"},"version":"1.0","encoding":"UTF-8"} -["JSON Test Pattern pass1",{"object with 1 member":["array with 1 element"]},{},[],-4,true,false,null,{"e":1.234567890000000e-13,"compact":[1,2,3,4,5,6,7],"jsontext":"{\"object with 1 member\":[\"array with 1 element\"]}","quote":"\"","space":" ","integer":1234567890,"object":{},"true":true,"real":-9876.543210,"controls":"\u0008\u000C\u000A\u000D\u0009","backslash":"\"," s p a c e d ":[1,2,3,4,5,6,7],"digit":"0123456789","one":1,"zero":0,"comment":"// /* */":" ","alpha":"abcdefghijklmnopqrstuvwyz","false":false,"":2.345678901200000e+76,"hex":"\u0123\u4567\u89AB\uCDEF\uabcd\uef4A","array":[],"ALPHA":"ABCDEFGHIJKLMNOPQRSTUVWYZ","url":"http://www.JSON.org/","quotes":"" \" %22 0x22 034 "","special":"`1~!@#$%^&*()_+-={\':[,]}|;.?","slash":"/ & /"},0.50,98.59999999999999,99.440,1066,10.0,1.0,0.10,1.0,2.0,2.0,"rosebud"] +{"version":"1.0","encoding":"UTF-8","feed":{"xmlns":"http://www.w3.org/2005/Atom","xmlns$openSearch":"http://a9.com/-/spec/opensearchrss/1.0/","xmlns$gCal":"http://schemas.google.com/gCal/2005","xmlns$gd":"http://schemas.google.com/g/2005","id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full"},"updated":{"$t":"2010-08-10T14:53:58.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"Official Google External Developer Events","type":"text"},"subtitle":{"$t":"The calendar contains information about upcoming developer conferences at which Google will be speaking, along with other developer-related events.","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/embed?src=developer-calendar@google.com"},{"rel":"http://schemas.google.com/g/2005#feed","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full"},{"rel":"http://schemas.google.com/g/2005#batch","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/batch"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full?alt=json&max-results=25"},{"rel":"next","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full?alt=json&start-index=26&max-results=25"}],"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"generator":{"$t":"Google Calendar","version":"1.0","uri":"http://www.google.com/calendar"},"openSearch$totalResults":{"$t":430},"openSearch$startIndex":{"$t":1},"openSearch$itemsPerPage":{"$t":25},"gCal$timezone":{"value":"America/Los_Angeles"},"gCal$timesCleaned":{"value":0},"entry":[{"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/js6f014310d098v99bhs987ks4_20100811T180000Z"},"published":{"$t":"2010-04-06T21:17:09.000Z"},"updated":{"$t":"2010-08-10T02:59:23.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"Wave API Office Hours","type":"text"},"content":{"$t":"Members of the Google Wave API engineering team will be available in Google Wave Preview to answer questions about building robots or gadgets or embedding waves. \nFollow this wave to be notified when office hours are starting:\nhttps://wave.google.com/wave/#restored:search:in%253AInbox,restored:wave:googlewave.com!w%252BFICYnJWoL","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid=anM2ZjAxNDMxMGQwOTh2OTliaHM5ODdrczRfMjAxMDA4MTFUMTgwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/js6f014310d098v99bhs987ks4_20100811T180000Z"}],"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/js6f014310d098v99bhs987ks4_20100811T180000Z/comments"}},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.canceled"},"gd$where":[{"valueString":"Google Wave Preview"}],"gd$originalEvent":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/js6f014310d098v99bhs987ks4","id":"js6f014310d098v99bhs987ks4","gd$when":{"startTime":"2010-08-11T11:00:00.000-07:00"}},"gd$who":[{"email":"developer-calendar@google.com","rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar"}],"gd$when":[{"endTime":"2010-08-11T12:00:00.000-07:00","startTime":"2010-08-11T11:00:00.000-07:00"}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gCal$anyoneCanAddSelf":{"value":"false"},"gCal$guestsCanInviteOthers":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$sequence":{"value":0},"gCal$uid":{"value":"js6f014310d098v99bhs987ks4@google.com"}},{"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/86ov9cs2g29195t96i4oud1g24_20100805T060000Z"},"published":{"$t":"2010-01-05T00:32:19.000Z"},"updated":{"$t":"2010-08-09T23:18:40.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"Google Wave API Office Hours","type":"text"},"content":{"$t":"Members of the Google Wave API engineering team will be available in Wave to answer questions about building robots or gadgets or embedding waves. ","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid=ODZvdjljczJnMjkxOTV0OTZpNG91ZDFnMjRfMjAxMDA4MDVUMDYwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/86ov9cs2g29195t96i4oud1g24_20100805T060000Z"}],"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/86ov9cs2g29195t96i4oud1g24_20100805T060000Z/comments"}},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.canceled"},"gd$where":[{"valueString":"https://wave.google.com/wave/"}],"gd$originalEvent":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/86ov9cs2g29195t96i4oud1g24","id":"86ov9cs2g29195t96i4oud1g24","gd$when":{"startTime":"2010-08-04T23:00:00.000-07:00"}},"gd$who":[{"email":"developer-calendar@google.com","rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar"}],"gd$when":[{"endTime":"2010-08-05T00:00:00.000-07:00","startTime":"2010-08-04T23:00:00.000-07:00"}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gCal$anyoneCanAddSelf":{"value":"false"},"gCal$guestsCanInviteOthers":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$sequence":{"value":2},"gCal$uid":{"value":"86ov9cs2g29195t96i4oud1g24@google.com"}},{"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/gtl3e8fv17kjh2cibk2p37fg3s"},"published":{"$t":"2010-07-31T18:22:26.000Z"},"updated":{"$t":"2010-08-09T23:18:40.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"DevFest Madrid","type":"text"},"content":{"$t":"","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid=Z3RsM2U4ZnYxN2tqaDJjaWJrMnAzN2ZnM3MgZGV2ZWxvcGVyLWNhbGVuZGFyQGdvb2dsZS5jb20","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/gtl3e8fv17kjh2cibk2p37fg3s"}],"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/gtl3e8fv17kjh2cibk2p37fg3s/comments"}},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$where":[{"valueString":""}],"gd$who":[{"email":"developer-calendar@google.com","rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar"}],"gd$when":[{"endTime":"2010-09-24","startTime":"2010-09-23"}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.transparent"},"gCal$anyoneCanAddSelf":{"value":"false"},"gCal$guestsCanInviteOthers":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$sequence":{"value":0},"gCal$uid":{"value":"gtl3e8fv17kjh2cibk2p37fg3s@google.com"}},{"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/js6f014310d098v99bhs987ks4_20100728T180000Z"},"published":{"$t":"2010-04-06T21:17:09.000Z"},"updated":{"$t":"2010-08-09T23:18:39.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"Wave API Office Hours","type":"text"},"content":{"$t":"Members of the Google Wave API engineering team will be available in Google Wave Preview to answer questions about building robots or gadgets or embedding waves. \nFollow this wave to be notified when office hours are starting:\nhttps://wave.google.com/wave/#restored:search:in%253AInbox,restored:wave:googlewave.com!w%252BFICYnJWoL","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid=anM2ZjAxNDMxMGQwOTh2OTliaHM5ODdrczRfMjAxMDA3MjhUMTgwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/js6f014310d098v99bhs987ks4_20100728T180000Z"}],"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/js6f014310d098v99bhs987ks4_20100728T180000Z/comments"}},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.canceled"},"gd$where":[{"valueString":"Google Wave Preview"}],"gd$originalEvent":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/js6f014310d098v99bhs987ks4","id":"js6f014310d098v99bhs987ks4","gd$when":{"startTime":"2010-07-28T11:00:00.000-07:00"}},"gd$who":[{"email":"developer-calendar@google.com","rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar"}],"gd$when":[{"endTime":"2010-07-28T12:00:00.000-07:00","startTime":"2010-07-28T11:00:00.000-07:00"}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gCal$anyoneCanAddSelf":{"value":"false"},"gCal$guestsCanInviteOthers":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$sequence":{"value":0},"gCal$uid":{"value":"js6f014310d098v99bhs987ks4@google.com"}},{"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/tccdtqm6cgbfoloq2a9hb45au4"},"published":{"$t":"2010-01-08T23:10:35.000Z"},"updated":{"$t":"2010-08-09T23:18:39.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"GUADEC","type":"text"},"content":{"$t":"http://www.guadec.org/index.php/guadec/index\n\nGoogle returns as a sponsor","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid=dGNjZHRxbTZjZ2Jmb2xvcTJhOWhiNDVhdTQgZGV2ZWxvcGVyLWNhbGVuZGFyQGdvb2dsZS5jb20","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/tccdtqm6cgbfoloq2a9hb45au4"}],"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/tccdtqm6cgbfoloq2a9hb45au4/comments"}},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$where":[{"valueString":"The Hague, Netherlands @ 52.083333, 4.316667"}],"gd$who":[{"email":"developer-calendar@google.com","rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar"}],"gd$when":[{"endTime":"2010-07-31","startTime":"2010-07-23"}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.transparent"},"gCal$anyoneCanAddSelf":{"value":"false"},"gCal$guestsCanInviteOthers":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$sequence":{"value":0},"gCal$uid":{"value":"tccdtqm6cgbfoloq2a9hb45au4@google.com"}},{"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/rcciaon58un0s7093g6811c5ns"},"published":{"$t":"2010-07-26T21:39:41.000Z"},"updated":{"$t":"2010-08-09T23:18:39.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"GTUG Campout (HTML5)","type":"text"},"content":{"$t":"http://www.meetup.com/GTUG-Campout/","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid=cmNjaWFvbjU4dW4wczcwOTNnNjgxMWM1bnMgZGV2ZWxvcGVyLWNhbGVuZGFyQGdvb2dsZS5jb20","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/rcciaon58un0s7093g6811c5ns"}],"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/rcciaon58un0s7093g6811c5ns/comments"}},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$where":[{"valueString":"Multiple cities"}],"gd$who":[{"email":"developer-calendar@google.com","rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar"}],"gd$when":[{"endTime":"2010-08-16","startTime":"2010-08-13"}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.transparent"},"gCal$anyoneCanAddSelf":{"value":"false"},"gCal$guestsCanInviteOthers":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$sequence":{"value":0},"gCal$uid":{"value":"rcciaon58un0s7093g6811c5ns@google.com"}},{"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/7u0m5c29msln7lfqf62oia77qk"},"published":{"$t":"2010-08-02T15:25:17.000Z"},"updated":{"$t":"2010-08-09T23:18:39.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"Google Apps Script Hackathon - Mountain View, CA","type":"text"},"content":{"$t":"Please join us on September 23, 2010 for an Apps Script hackathon in Mountain View, CA. \nRegister here: http://sites.google.com/site/appsscripthackathonmtv/","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid=N3UwbTVjMjltc2xuN2xmcWY2Mm9pYTc3cWsgZGV2ZWxvcGVyLWNhbGVuZGFyQGdvb2dsZS5jb20","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/7u0m5c29msln7lfqf62oia77qk"}],"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/7u0m5c29msln7lfqf62oia77qk/comments"}},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$where":[{"valueString":"Google, 1600 Amphitheatre Parkway, Mountain View, CA 94043"}],"gd$who":[{"email":"developer-calendar@google.com","rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar"}],"gd$when":[{"endTime":"2010-09-23T20:00:00.000-07:00","startTime":"2010-09-23T14:00:00.000-07:00"}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gCal$anyoneCanAddSelf":{"value":"false"},"gCal$guestsCanInviteOthers":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$sequence":{"value":0},"gCal$uid":{"value":"7u0m5c29msln7lfqf62oia77qk@google.com"}},{"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/ouls6kh853ajk6s8pgo6j7mmh8"},"published":{"$t":"2010-07-31T06:50:38.000Z"},"updated":{"$t":"2010-08-09T23:18:38.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"Google Developer Day GTUG Bootcamp","type":"text"},"content":{"$t":"","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid=b3VsczZraDg1M2FqazZzOHBnbzZqN21taDggZGV2ZWxvcGVyLWNhbGVuZGFyQGdvb2dsZS5jb20","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/ouls6kh853ajk6s8pgo6j7mmh8"}],"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/ouls6kh853ajk6s8pgo6j7mmh8/comments"}},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$where":[{"valueString":"\u00E6\u009D\u00B1\u00E4\u00BA\u00AC\u00E5\u009B\u00BD\u00E9\u009A\u009B\u00E3\u0083\u0095\u00E3\u0082\u00A9\u00E3\u0083\u00BC\u00E3\u0083\u00A9\u00E3\u0083\u00A0\u00E3\u0080\u0081\u00E6\u009D\u00B1\u00E4\u00BA\u00AC\u00E9\u0083\u00BD\u00E5\u008D\u0083\u00E4\u00BB\u00A3\u00E7\u0094\u00B0\u00E5\u008C\u00BA\u00E4\u00B8\u00B8\u00E3\u0081\u00AE\u00E5\u0086\u0085 3-5-1"}],"gd$who":[{"email":"developer-calendar@google.com","rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar"}],"gd$when":[{"endTime":"2010-09-27T01:00:00.000-07:00","startTime":"2010-09-26T21:00:00.000-07:00"}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gCal$anyoneCanAddSelf":{"value":"false"},"gCal$guestsCanInviteOthers":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$sequence":{"value":0},"gCal$uid":{"value":"ouls6kh853ajk6s8pgo6j7mmh8@google.com"}},{"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100730T000000Z"},"published":{"$t":"2010-01-20T17:39:45.000Z"},"updated":{"$t":"2010-07-28T17:42:29.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"Android IRC office hours","type":"text"},"content":{"$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\nPost your questions prior to office hours at StackOverflow with tags:\nandroid, from-irc\n","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDA3MzBUMDAwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100730T000000Z"}],"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100730T000000Z/comments"}},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"gd$originalEvent":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","id":"503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-07-29T17:00:00.000-07:00"}},"gd$who":[{"email":"developer-calendar@google.com","rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.declined"}}],"gd$when":[{"endTime":"2010-07-29T18:00:00.000-07:00","startTime":"2010-07-29T17:00:00.000-07:00"}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gCal$anyoneCanAddSelf":{"value":"false"},"gCal$guestsCanInviteOthers":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$sequence":{"value":4},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"}},{"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100716T000000Z"},"published":{"$t":"2010-01-20T17:39:45.000Z"},"updated":{"$t":"2010-07-20T21:29:19.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"Android IRC office hours","type":"text"},"content":{"$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\nPost your questions prior to office hours at StackOverflow with tags:\nandroid, from-irc\n","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDA3MTZUMDAwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100716T000000Z"}],"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100716T000000Z/comments"}},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"gd$originalEvent":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","id":"503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-07-15T17:00:00.000-07:00"}},"gd$who":[{"email":"developer-calendar@google.com","rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"}}],"gd$when":[{"endTime":"2010-07-15T18:00:00.000-07:00","startTime":"2010-07-15T17:00:00.000-07:00"}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gCal$anyoneCanAddSelf":{"value":"false"},"gCal$guestsCanInviteOthers":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$sequence":{"value":4},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"}},{"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100702T000000Z"},"published":{"$t":"2010-01-20T17:39:45.000Z"},"updated":{"$t":"2010-07-20T21:29:19.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"Android IRC office hours","type":"text"},"content":{"$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\nPost your questions prior to office hours at StackOverflow with tags:\nandroid, from-irc\n","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDA3MDJUMDAwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100702T000000Z"}],"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100702T000000Z/comments"}},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"gd$originalEvent":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","id":"503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-07-01T17:00:00.000-07:00"}},"gd$who":[{"email":"developer-calendar@google.com","rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"}}],"gd$when":[{"endTime":"2010-07-01T18:00:00.000-07:00","startTime":"2010-07-01T17:00:00.000-07:00"}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gCal$anyoneCanAddSelf":{"value":"false"},"gCal$guestsCanInviteOthers":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$sequence":{"value":4},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"}},{"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100625T000000Z"},"published":{"$t":"2010-01-20T17:39:45.000Z"},"updated":{"$t":"2010-07-20T21:29:19.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"Android IRC office hours","type":"text"},"content":{"$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\nPost your questions prior to office hours at StackOverflow with tags:\nandroid, from-irc\n","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDA2MjVUMDAwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100625T000000Z"}],"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100625T000000Z/comments"}},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"gd$originalEvent":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","id":"503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-06-24T17:00:00.000-07:00"}},"gd$who":[{"email":"developer-calendar@google.com","rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"}}],"gd$when":[{"endTime":"2010-06-24T18:00:00.000-07:00","startTime":"2010-06-24T17:00:00.000-07:00"}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gCal$anyoneCanAddSelf":{"value":"false"},"gCal$guestsCanInviteOthers":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$sequence":{"value":4},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"}},{"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100611T000000Z"},"published":{"$t":"2010-01-20T17:39:45.000Z"},"updated":{"$t":"2010-07-20T21:29:19.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"Android IRC office hours","type":"text"},"content":{"$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\nPost your questions prior to office hours at StackOverflow with tags:\nandroid, from-irc\n","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDA2MTFUMDAwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100611T000000Z"}],"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100611T000000Z/comments"}},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"gd$originalEvent":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","id":"503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-06-10T17:00:00.000-07:00"}},"gd$who":[{"email":"developer-calendar@google.com","rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"}}],"gd$when":[{"endTime":"2010-06-10T18:00:00.000-07:00","startTime":"2010-06-10T17:00:00.000-07:00"}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gCal$anyoneCanAddSelf":{"value":"false"},"gCal$guestsCanInviteOthers":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$sequence":{"value":4},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"}},{"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100604T000000Z"},"published":{"$t":"2010-01-20T17:39:45.000Z"},"updated":{"$t":"2010-07-20T21:29:19.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"Android IRC office hours","type":"text"},"content":{"$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\nPost your questions prior to office hours at StackOverflow with tags:\nandroid, from-irc\n","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDA2MDRUMDAwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100604T000000Z"}],"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100604T000000Z/comments"}},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"gd$originalEvent":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","id":"503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-06-03T17:00:00.000-07:00"}},"gd$who":[{"email":"developer-calendar@google.com","rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"}}],"gd$when":[{"endTime":"2010-06-03T18:00:00.000-07:00","startTime":"2010-06-03T17:00:00.000-07:00"}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gCal$anyoneCanAddSelf":{"value":"false"},"gCal$guestsCanInviteOthers":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$sequence":{"value":4},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"}},{"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100528T000000Z"},"published":{"$t":"2010-01-20T17:39:45.000Z"},"updated":{"$t":"2010-07-20T21:29:19.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"Android IRC office hours","type":"text"},"content":{"$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\nPost your questions prior to office hours at StackOverflow with tags:\nandroid, from-irc\n","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDA1MjhUMDAwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100528T000000Z"}],"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100528T000000Z/comments"}},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"gd$originalEvent":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","id":"503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-05-27T17:00:00.000-07:00"}},"gd$who":[{"email":"developer-calendar@google.com","rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"}}],"gd$when":[{"endTime":"2010-05-27T18:00:00.000-07:00","startTime":"2010-05-27T17:00:00.000-07:00"}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gCal$anyoneCanAddSelf":{"value":"false"},"gCal$guestsCanInviteOthers":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$sequence":{"value":4},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"}},{"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100521T000000Z"},"published":{"$t":"2010-01-20T17:39:45.000Z"},"updated":{"$t":"2010-07-20T21:29:19.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"Android IRC office hours","type":"text"},"content":{"$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\nPost your questions prior to office hours at StackOverflow with tags:\nandroid, from-irc\n","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDA1MjFUMDAwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100521T000000Z"}],"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100521T000000Z/comments"}},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"gd$originalEvent":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","id":"503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-05-20T17:00:00.000-07:00"}},"gd$who":[{"email":"developer-calendar@google.com","rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"}}],"gd$when":[{"endTime":"2010-05-20T18:00:00.000-07:00","startTime":"2010-05-20T17:00:00.000-07:00"}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gCal$anyoneCanAddSelf":{"value":"false"},"gCal$guestsCanInviteOthers":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$sequence":{"value":4},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"}},{"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100514T000000Z"},"published":{"$t":"2010-01-20T17:39:45.000Z"},"updated":{"$t":"2010-07-20T21:29:19.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"Android IRC office hours","type":"text"},"content":{"$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\nPost your questions prior to office hours at StackOverflow with tags:\nandroid, from-irc\n","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDA1MTRUMDAwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100514T000000Z"}],"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100514T000000Z/comments"}},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"gd$originalEvent":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","id":"503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-05-13T17:00:00.000-07:00"}},"gd$who":[{"email":"developer-calendar@google.com","rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"}}],"gd$when":[{"endTime":"2010-05-13T18:00:00.000-07:00","startTime":"2010-05-13T17:00:00.000-07:00"}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gCal$anyoneCanAddSelf":{"value":"false"},"gCal$guestsCanInviteOthers":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$sequence":{"value":4},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"}},{"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100326T000000Z"},"published":{"$t":"2010-01-20T17:39:45.000Z"},"updated":{"$t":"2010-07-20T21:29:19.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"Android IRC office hours","type":"text"},"content":{"$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\nPost your questions prior to office hours at StackOverflow with tags:\nandroid, from-irc\n","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDAzMjZUMDAwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100326T000000Z"}],"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100326T000000Z/comments"}},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"gd$originalEvent":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","id":"503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-03-25T17:00:00.000-07:00"}},"gd$who":[{"email":"developer-calendar@google.com","rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"}}],"gd$when":[{"endTime":"2010-03-25T18:00:00.000-07:00","startTime":"2010-03-25T17:00:00.000-07:00"}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gCal$anyoneCanAddSelf":{"value":"false"},"gCal$guestsCanInviteOthers":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$sequence":{"value":4},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"}},{"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100305T010000Z"},"published":{"$t":"2010-01-20T17:39:45.000Z"},"updated":{"$t":"2010-07-20T21:29:19.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"Android IRC office hours","type":"text"},"content":{"$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\nPost your questions prior to office hours at StackOverflow with tags:\nandroid, from-irc\n","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDAzMDVUMDEwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100305T010000Z"}],"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100305T010000Z/comments"}},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"gd$originalEvent":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","id":"503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-03-04T17:00:00.000-08:00"}},"gd$who":[{"email":"developer-calendar@google.com","rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"}}],"gd$when":[{"endTime":"2010-03-04T18:00:00.000-08:00","startTime":"2010-03-04T17:00:00.000-08:00"}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gCal$anyoneCanAddSelf":{"value":"false"},"gCal$guestsCanInviteOthers":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$sequence":{"value":4},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"}},{"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100226T010000Z"},"published":{"$t":"2010-01-20T17:39:45.000Z"},"updated":{"$t":"2010-07-20T21:29:19.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"Android IRC office hours","type":"text"},"content":{"$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\nPost your questions prior to office hours at StackOverflow with tags:\nandroid, from-irc\n","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDAyMjZUMDEwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100226T010000Z"}],"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100226T010000Z/comments"}},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"gd$originalEvent":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","id":"503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-02-25T17:00:00.000-08:00"}},"gd$who":[{"email":"developer-calendar@google.com","rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"}}],"gd$when":[{"endTime":"2010-02-25T18:00:00.000-08:00","startTime":"2010-02-25T17:00:00.000-08:00"}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gCal$anyoneCanAddSelf":{"value":"false"},"gCal$guestsCanInviteOthers":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$sequence":{"value":4},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"}},{"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100219T010000Z"},"published":{"$t":"2010-01-20T17:39:45.000Z"},"updated":{"$t":"2010-07-20T21:29:19.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"Android IRC office hours","type":"text"},"content":{"$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\nPost your questions prior to office hours at StackOverflow with tags:\nandroid, from-irc\n","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDAyMTlUMDEwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100219T010000Z"}],"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100219T010000Z/comments"}},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"gd$originalEvent":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","id":"503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-02-18T17:00:00.000-08:00"}},"gd$who":[{"email":"developer-calendar@google.com","rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"}}],"gd$when":[{"endTime":"2010-02-18T18:00:00.000-08:00","startTime":"2010-02-18T17:00:00.000-08:00"}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gCal$anyoneCanAddSelf":{"value":"false"},"gCal$guestsCanInviteOthers":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$sequence":{"value":4},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"}},{"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100212T010000Z"},"published":{"$t":"2010-01-20T17:39:45.000Z"},"updated":{"$t":"2010-07-20T21:29:19.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"Android IRC office hours","type":"text"},"content":{"$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\nPost your questions prior to office hours at StackOverflow with tags:\nandroid, from-irc\n","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDAyMTJUMDEwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100212T010000Z"}],"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100212T010000Z/comments"}},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"gd$originalEvent":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","id":"503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-02-11T17:00:00.000-08:00"}},"gd$who":[{"email":"developer-calendar@google.com","rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"}}],"gd$when":[{"endTime":"2010-02-11T18:00:00.000-08:00","startTime":"2010-02-11T17:00:00.000-08:00"}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gCal$anyoneCanAddSelf":{"value":"false"},"gCal$guestsCanInviteOthers":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$sequence":{"value":4},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"}},{"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100122T010000Z"},"published":{"$t":"2010-01-20T17:39:45.000Z"},"updated":{"$t":"2010-07-20T21:29:19.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"Android IRC office hours","type":"text"},"content":{"$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\nPost your questions prior to office hours at StackOverflow with tags:\nandroid, from-irc\n","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDAxMjJUMDEwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100122T010000Z"}],"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00_20100122T010000Z/comments"}},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"gd$originalEvent":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00","id":"503f9q9o4mqmhds5ilqk50er00","gd$when":{"startTime":"2010-01-21T17:00:00.000-08:00"}},"gd$who":[{"email":"developer-calendar@google.com","rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"}}],"gd$when":[{"endTime":"2010-01-21T18:00:00.000-08:00","startTime":"2010-01-21T17:00:00.000-08:00"}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gCal$anyoneCanAddSelf":{"value":"false"},"gCal$guestsCanInviteOthers":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$sequence":{"value":4},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"}},{"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00"},"published":{"$t":"2010-01-20T17:39:45.000Z"},"updated":{"$t":"2010-07-20T21:29:18.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"Android IRC office hours","type":"text"},"content":{"$t":"Get your application development related questions answered every week from android team members. Join us in the #android-dev channel @ irc.freenode.com.\nPost your questions prior to office hours at StackOverflow with tags:\nandroid, from-irc\n","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid=NTAzZjlxOW80bXFtaGRzNWlscWs1MGVyMDBfMjAxMDAxMjJUMDEwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/503f9q9o4mqmhds5ilqk50er00"}],"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$where":[{"valueString":"#android-dev on irc.freenode.net"}],"gd$who":[{"email":"developer-calendar@google.com","rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar","gd$attendeeStatus":{"value":"http://schemas.google.com/g/2005#event.invited"}}],"gd$recurrence":{"$t":"DTSTART;TZID=America/Los_Angeles:20100121T170000\r\nDTEND;TZID=America/Los_Angeles:20100121T180000\r\nRRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=TH;WKST=SU\r\nBEGIN:VTIMEZONE\r\nTZID:America/Los_Angeles\r\nX-LIC-LOCATION:America/Los_Angeles\r\nBEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0800\r\nTZOFFSETTO:-0700\r\nTZNAME:PDT\r\nDTSTART:19700308T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT\r\nBEGIN:STANDARD\r\nTZOFFSETFROM:-0700\r\nTZOFFSETTO:-0800\r\nTZNAME:PST\r\nDTSTART:19701101T020000\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD\r\nEND:VTIMEZONE\r\n"},"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gCal$anyoneCanAddSelf":{"value":"false"},"gCal$guestsCanInviteOthers":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$sequence":{"value":4},"gCal$uid":{"value":"503f9q9o4mqmhds5ilqk50er00@google.com"}},{"id":{"$t":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/us34qg9722ghhjh7htvkquoetg_20100624T060000Z"},"published":{"$t":"2010-01-05T00:32:19.000Z"},"updated":{"$t":"2010-07-20T01:33:49.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"Google Wave API Office Hours","type":"text"},"content":{"$t":"Members of the Google Wave API engineering team will be available in the Wave developer sandbox to answer questions about building robots or gadgets or embedding waves. ","type":"text"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid=dXMzNHFnOTcyMmdoaGpoN2h0dmtxdW9ldGdfMjAxMDA2MjRUMDYwMDAwWiBkZXZlbG9wZXItY2FsZW5kYXJAZ29vZ2xlLmNvbQ","title":"alternate"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/us34qg9722ghhjh7htvkquoetg_20100624T060000Z"}],"author":[{"name":{"$t":"Google Developer Calendar"},"email":{"$t":"developer-calendar@google.com"}}],"gd$comments":{"gd$feedLink":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/us34qg9722ghhjh7htvkquoetg_20100624T060000Z/comments"}},"gd$eventStatus":{"value":"http://schemas.google.com/g/2005#event.confirmed"},"gd$where":[{"valueString":"Wave Preview"}],"gd$originalEvent":{"href":"http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full/us34qg9722ghhjh7htvkquoetg","id":"us34qg9722ghhjh7htvkquoetg","gd$when":{"startTime":"2010-06-23T23:00:00.000-07:00"}},"gd$who":[{"email":"developer-calendar@google.com","rel":"http://schemas.google.com/g/2005#event.organizer","valueString":"Google Developer Calendar"}],"gd$when":[{"endTime":"2010-06-23T01:00:00.000-07:00","startTime":"2010-06-23T00:00:00.000-07:00"}],"gd$transparency":{"value":"http://schemas.google.com/g/2005#event.opaque"},"gCal$anyoneCanAddSelf":{"value":"false"},"gCal$guestsCanInviteOthers":{"value":"true"},"gCal$guestsCanModify":{"value":"false"},"gCal$guestsCanSeeGuests":{"value":"true"},"gCal$sequence":{"value":0},"gCal$uid":{"value":"us34qg9722ghhjh7htvkquoetg@google.com"}}]}} +["JSON Test Pattern pass1",{"object with 1 member":["array with 1 element"]},{},[],-4,true,false,null,{"integer":1234567890,"real":-9876.543210,"e":1.234567890000000e-13,"E":1.234567890000000e+34,"":2.345678901200000e+76,"zero":0,"one":1,"space":" ","quote":"\"","backslash":"\\","controls":"\b\f\n\r\t","slash":"/ & /","alpha":"abcdefghijklmnopqrstuvwyz","ALPHA":"ABCDEFGHIJKLMNOPQRSTUVWYZ","digit":"0123456789","0123456789":"digit","special":"`1~!@#$%^&*()_+-={':[,]}|;.?","hex":"\\u0123\\u4567\\u89AB\\uCDEF\\uabcd\\uef4A","true":true,"false":false,"null":null,"array":[],"object":{},"address":"50 St. James Street","url":"http://www.JSON.org/","comment":"// /* */":" "," s p a c e d ":[1,2,3,4,5,6,7],"compact":[1,2,3,4,5,6,7],"jsontext":"{\"object with 1 member\":[\"array with 1 element\"]}","quotes":"" \" %22 0x22 034 "","/\"\\uCAFE\\uBABE\\uAB98\\uFCDE\\ubcda\\uef4A\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?":"A key can be any string"},0.50,98.59999999999999,99.440,1066,10.0,1.0,0.10,1.0,2.0,2.0,"rosebud"] [[[[[[[[[[[[[[[[[[["Not too deep"]]]]]]]]]]]]]]]]]]] {"JSON Test Pattern pass3":{"The outermost value":"must be an object or array.","In this test":"It is an object."}} [] @@ -24,9 +24,9 @@ [1,"abc",12.30,-] [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99] ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb","ccccccccccccccccccccccc","dddddddddddddddddddddddddddddddddddddddddddddddddddd"] -{"name":{"id":123987,"aka":"T.E.S.T."},"attribute":["random","short","bold",12,{"height":7,"width":64}],"count":1234,"test":{"1":{"2":{"3":{"coord":[1,2]}}}}} +{"count":1234,"name":{"aka":"T.E.S.T.","id":123987},"attribute":["random","short","bold",12,{"height":7,"width":64}],"test":{"1":{"2":{"3":{"coord":[1,2]}}}}} [["A",0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,1476,1477,1478,1479,1480,1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1515,1516,1517,1518,1519,1520,1521,1522,1523,1524,1525,1526,1527,1528,1529,1530,1531,1532,1533,1534,1535,1536,1537,1538,1539,1540,1541,1542,1543,1544,1545,1546,1547,1548,1549,1550,1551,1552,1553,1554,1555,1556,1557,1558,1559,1560,1561,1562,1563,1564,1565,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,1613,1614,1615,1616,1617,1618,1619,1620,1621,1622,1623,1624,1625,1626,1627,1628,1629,1630,1631,1632,1633,1634,1635,1636,1637,1638,1639,1640,1641,1642,1643,1644,1645,1646,1647,1648,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1750,1751,1752,1753,1754,1755,1756,1757,1758,1759,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1840,1841,1842,1843,1844,1845,1846,1847,1848,1849,1850,1851,1852,1853,1854,1855,1856,1857,1858,1859,1860,1861,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2070,2071,2072,2073,2074,2075,2076,2077,2078,2079,2080,2081,2082,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116,2117,2118]] {} {"count":1234} -{"name":"test","attribute":"random","count":1234} +{"count":1234,"name":"test","attribute":"random"} {"":1234}