text: ///////////////////////////////////////////////////////////////////////////
  // Copyright © 2014 - 2017 Esri. All Rights Reserved.
  //
  // 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.
  ///////////////////////////////////////////////////////////////////////////
  
  /**
   * usng/utils.js is for USNG and MGRS functions that were not part of the original usng.js
   * open source library that is in usng/usng.js. In other words, USNG and MGRS functions written
   * specifically for this application belong in usng/utils.js, not usng/usng.js.
   */
  
  define(["libs/usng/usng"], function(usng) {
  
    var theClass = {
    
      /**
       * Looks up an MGRS or USNG string and returns a result object with text,
       * latitude, and longitude properties, or null if the string is not a valid
       * MGRS or USNG string.
       */
      lookupMgrs: function(mgrs) {
        var result = null;
        try {
          var latLon = [];
          usng.USNGtoLL(mgrs, latLon);
          if (2 <= latLon.length && !isNaN(latLon[0]) && !isNaN(latLon[1])) {
            result = {
              text: mgrs.toUpperCase(),
              latitude: latLon[0],
              longitude: latLon[1]
            };
          } else {
            result = null;
          }
        } catch (err) {
          //Not an MGRS/USNG string; that's fine; swallow
          result = null;
        }
        return result;
      }
    };
    return theClass;
  });