code: package com.puppycrawl.tools.checkstyle.checks.indentation.indentation; //indent:0 exp:0
  
  import java.util.Map; //indent:0 exp:0
  import java.util.Map.Entry; //indent:0 exp:0
  
  import com.google.common.collect.Range; //indent:0 exp:0
  import com.google.common.collect.RangeMap; //indent:0 exp:0
  
  /**                                                                           //indent:0 exp:0
   * This test-input is intended to be checked using following configuration:   //indent:1 exp:1
   *                                                                            //indent:1 exp:1
   * arrayInitIndent = 4                                                        //indent:1 exp:1
   * basicOffset = 2                                                            //indent:1 exp:1
   * braceAdjustment = 0                                                        //indent:1 exp:1
   * caseIndent = 4                                                             //indent:1 exp:1
   * forceStrictCondition = false                                               //indent:1 exp:1
   * lineWrappingIndentation = 4                                                //indent:1 exp:1
   * tabWidth = 4                                                               //indent:1 exp:1
   * throwsIndent = 4                                                           //indent:1 exp:1
   *                                                                            //indent:1 exp:1
   *                                                                            //indent:1 exp:1
   */                                                                           //indent:1 exp:1
  public abstract class InputIndentationFromGuava2<K extends Comparable<?>, V> { //indent:0 exp:0
  
    public InputIndentationFromGuava2<K, V> subRangeMap1(final Range<K> range) { //indent:2 exp:2
      Range<K> ranges = null; //indent:4 exp:4
      if (checkNotNull(range).isEmpty()) { //indent:4 exp:4
      } else if (ranges.isEmpty() || range.encloses(span())) { //indent:4 exp:4
        return this; //indent:6 exp:6
      } //indent:4 exp:4
      int lowerIndex = SortedLists.binarySearch(); //indent:4 exp:4
      int upperIndex = SortedLists.binarySearch(); //indent:4 exp:4
      if (lowerIndex >= upperIndex) { //indent:4 exp:4
        return null; //indent:6 exp:6
      } //indent:4 exp:4
      final int off = lowerIndex; //indent:4 exp:4
      final int len = upperIndex - lowerIndex; //indent:4 exp:4
      InputIndentationFromGuava2<K, V> outer = null; //indent:4 exp:4
      return outer; //indent:4 exp:4
    } //indent:2 exp:2
  
    public V get(int index) { //indent:2 exp:2
      K key = null; //indent:4 exp:4
      int len = 0; //indent:4 exp:4
      checkElementIndex(index, len); //indent:4 exp:4
      int off; //indent:4 exp:4
      RangeMap<K, V> ranges = null; //indent:4 exp:4
      if (index == 0 || index == len - 1) { //indent:4 exp:4
        Object range; //indent:6 exp:6
        return ranges.get(key); //indent:6 exp:6
      } else { //indent:4 exp:4
        return ranges.get(key); //indent:6 exp:6
      } //indent:4 exp:4
    } //indent:2 exp:2
  
    private void checkElementIndex(int index, Object len) //indent:2 exp:2
    { //indent:2 exp:2
  
    } //indent:2 exp:2
  
    boolean isPartialView() { //indent:2 exp:2
      return true; //indent:4 exp:4
    } //indent:2 exp:2
  
    private Range<K> checkNotNull(Range<K> range) //indent:2 exp:2
    { //indent:2 exp:2
      return null; //indent:4 exp:4
    } //indent:2 exp:2
  
    @Deprecated //indent:2 exp:2
    public V get(K key) //indent:2 exp:2
    { //indent:2 exp:2
      return null; //indent:4 exp:4
    } //indent:2 exp:2
  
    public Range<K> span() //indent:2 exp:2
    { //indent:2 exp:2
      return null; //indent:4 exp:4
    } //indent:2 exp:2
  
    @Deprecated //indent:2 exp:2
    public void put(Range<K> range, V value) //indent:2 exp:2
    { //indent:2 exp:2
  
    } //indent:2 exp:2
  
    @Deprecated //indent:2 exp:2
    public void putAll(RangeMap<K, V> rangeMap) //indent:2 exp:2
    { //indent:2 exp:2
  
    } //indent:2 exp:2
  
    @Deprecated //indent:2 exp:2
    public void clear() //indent:2 exp:2
    { //indent:2 exp:2
  
    } //indent:2 exp:2
  
    @Deprecated //indent:2 exp:2
    public void remove(Range<K> range) //indent:2 exp:2
    { //indent:2 exp:2
  
    } //indent:2 exp:2
  
    @Deprecated //indent:2 exp:2
    public Map<Range<K>, V> asMapOfRanges() //indent:2 exp:2
    { //indent:2 exp:2
      return null; //indent:4 exp:4
    } //indent:2 exp:2
  
    @Deprecated //indent:2 exp:2
    public RangeMap<K, V> subRangeMap(Range<K> range) //indent:2 exp:2
    { //indent:2 exp:2
      return null; //indent:4 exp:4
    } //indent:2 exp:2
  
    @Deprecated //indent:2 exp:2
    public Entry<Range<K>, V> getEntry(K key) //indent:2 exp:2
    { //indent:2 exp:2
      return null; //indent:4 exp:4
    } //indent:2 exp:2
  
    private static class SortedLists { //indent:2 exp:2
      public static int binarySearch() { return 4; } //indent:4 exp:4
    } //indent:2 exp:2
  } //indent:0 exp:0
  