anchor.diff:  import 'package:http/http.dart' as LibHttp;
   import 'package:start/start.dart' as LibStart;
   import 'package:google_drive_v2_api/drive_v2_api_console.dart' as GoogleDrive;
  +import 'package:google_oauth2_client/google_oauth2_console.dart' as GoogleOAuth;
   
   import 'package:oauth2/oauth2.dart' as OAuth2;
   
   import '../lib/pin.dart';
   
   main() {
  -  int counter = 0;
  -  Map oauth = null;
  +  Map oauth;
   
     PinUtility.setCwdToRoot('../..');
   
  
positive.code:         }
        });
  
        app.get('/counter').listen((LibStart.Request request) {
          request.response.header('Content-Type', 'application/json; charset=UTF-8').json(
              {'counter': counter++}
          );
        });
  
        app.get('/blog').listen((LibStart.Request request) {
          request.response.json(Uri.splitQueryString(request.uri.query));
        });
  
        app.get('/oauth2').listen((LibStart.Request request) {
  
negative.code:                 'grant_type': 'authorization_code'
                }
            ).then((LibHttp.Response response) {
              // token response got
              Map authResponse = JSON.decode(response.body);
              if (authResponse.containsKey('access_token')) {
                // access token got
                var expiration = null;
                if (authResponse.containsKey('expires_in')) {
                  var now = new DateTime.now();
                  now.add(new Duration(seconds: authResponse['expires_in']));
                  expiration = now.millisecondsSinceEpoch;
                }
                Map credentials = {
                  'accessToken': authResponse['access_token'],
                  'refreshToken': authResponse['refresh_token'],
                  'tokenEndpoint': oauth['google_oauth_token_url'],
                  'scopes': [oauth['scope']['email'], oauth['scope']['drive']],
                  'expiration': expiration
                };
                if (authResponse.containsKey('id_token')) {
                  credentials['idToken'] = authResponse['id_token'];
                }
                new File('config/credentials.json').writeAsString(JSON.encode(credentials)).then((_) {
                  request.response.redirect(request.uri.host + '/blog');
                });
              } else if (authResponse.containsKey('error')) {
                // error
                request.response.send('Error: ${queries['error']}');
              } else {
                // unrecognized
                request.response.send('Error: Unrecognized oauth response');
              }
            });
          } else if (queries.containsKey('error')) {
            // error
            request.response.send('Error: ${queries['error']}');
          } else {
            // unrecognized
            request.response.send('Error: Unrecognized oauth response');
          }
        });
  
  