feature or
+ * the name of a fully qualified JavaScript object reference
+ * (e.g. "gadgets.io").
+ * @param {Object=} opt_validators Mapping of option name to validation
+ * functions that take the form function(data) {return isValid(data);}
+ * @param {Function=} opt_callback A function to be invoked when a
+ * configuration is registered. If passed, this function will be invoked
+ * immediately after a call to init has been made. Do not assume that
+ * dependent libraries have been configured until after init is
+ * complete. If you rely on this, it is better to defer calling
+ * dependent libraries until you can be sure that configuration is
+ * complete. Takes the form function(config), where config will be
+ * all registered config data for all components. This allows your
+ * component to read configuration from other components.
+ * @param {boolean=} opt_callOnUpdate Whether the callback shall be call
+ * on gadgets.config.update() as well.
+ */
+gadgets.config.register = function(component, opt_validators, opt_callback,
+ opt_callOnUpdate) {};
+
+/**
+ * Retrieves configuration data on demand.
+ *
+ * @param {string=} opt_component The component to fetch. If not provided
+ * all configuration will be returned.
+ * @return {Object} The requested configuration, or an empty object if no
+ * configuration has been registered for that component.
+ */
+gadgets.config.get = function(opt_component) {};
+
+/**
+ * Initializes the configuration.
+ *
+ * @param {Object} config The full set of configuration data.
+ * @param {Boolean=} opt_noValidation True if you want to skip validation.
+ */
+gadgets.config.init = function(config, opt_noValidation) {};
+
+
+/**
+ * Creates an HTML or XHTML element.
+ * @param {string} tagName The type of element to construct.
+ * @return {Element} The newly constructed element.
+ */
+gadgets.util.createElement = function(tagName) {};
+
+
+/**
+ * Creates an HTML or XHTML iframe element with attributes.
+ * @param {Object=} opt_attribs Optional set of attributes to attach. The
+ * only working attributes are spelled the same way in XHTML attribute
+ * naming (most strict, all-lower-case), HTML attribute naming (less strict,
+ * case-insensitive), and JavaScript property naming (some properties named
+ * incompatibly with XHTML/HTML).
+ * @return {Element} The DOM node representing body.
+ */
+gadgets.util.createIframeElement = function(opt_attribs) {};
+
+
+/**
+ * Gets the HTML or XHTML body element.
+ * @return {Element} The DOM node representing body.
+ */
+gadgets.util.getBodyElement = function() {};
+
diff --git a/resources/defects4j-checkout-closure-1f/contrib/externs/api/gadgets/plusone.js b/resources/defects4j-checkout-closure-1f/contrib/externs/api/gadgets/plusone.js
new file mode 100644
index 0000000..3f01b38
--- /dev/null
+++ b/resources/defects4j-checkout-closure-1f/contrib/externs/api/gadgets/plusone.js
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2011 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * @fileoverview Extern declarations for namespaces and functions that the
+ * plusone widget defines.
+ *
+ * Contact sandbar-eng@google.com for any changes.
+ *
+ * @see https://code.google.com/apis/+1button/#jsapi
+ * @externs
+ */
+
+/**
+ * Namespace associated with Google APIs.
+ * @type {Object}
+ */
+var gapi = {};
+
+
+/**
+ * Namespace associated with Plusone API.
+ * @type {Object}
+ */
+gapi.plusone = {};
+
+
+/**
+ * This renders all +1 tags/classes in the specified container, which may be
+ * either an element (by value) or a string element ID. This function would be
+ * used only if the
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+com.google.debugging.sourcemap
+
+Class FilePosition
+
+java.lang.Object
+ com.google.debugging.sourcemap.FilePosition
+
+
+
+public class FilePosition extends Object
+
+
+
+Represents a position in a source file.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+
+FilePosition (int line,
+ int column)
+
+
+
+
+
+
+
+
+
+
+
+
+Method Summary
+
+
+
+ int
+getColumn ()
+
+
+
+
+
+
+ int
+getLine ()
+
+
+ Returns the line number of this position.
+
+
+
+
+
+Methods inherited from class java.lang.Object
+
+
+clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+FilePosition
+
+public FilePosition (int line,
+ int column)
+
+
+
+
+
+
+
+
+
+getLine
+
+public int getLine ()
+
+Returns the line number of this position.
+ Note: The v1 and v2 source maps use a line number with the first line
+ being 1, whereas the v3 source map corrects this and uses a first line
+ number of 0 to be consistent with the column representation.
+
+
+
+
+
+
+
+
+getColumn
+
+public int getColumn ()
+
+
+
+Returns: the character index on the line
+ of this position, with the first column being 0.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+