You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by gi...@apache.org on 2023/08/20 14:44:52 UTC

[hbase-site] branch asf-site updated: Published site at dae078e5bc342012b49cd066027eb53ae9a21280.

This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/hbase-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new d5003898d82 Published site at dae078e5bc342012b49cd066027eb53ae9a21280.
d5003898d82 is described below

commit d5003898d82e5aec371ec107e6824b4313be8423
Author: jenkins <bu...@apache.org>
AuthorDate: Sun Aug 20 14:44:30 2023 +0000

    Published site at dae078e5bc342012b49cd066027eb53ae9a21280.
---
 acid-semantics.html                                |    2 +-
 apache_hbase_reference_guide.pdf                   |    4 +-
 apidocs/deprecated-list.html                       |   60 +-
 .../org/apache/hadoop/hbase/KeepDeletedCells.html  |    4 +-
 .../hadoop/hbase/MemoryCompactionPolicy.html       |    4 +-
 .../org/apache/hadoop/hbase/class-use/Cell.html    |  194 +-
 .../apache/hadoop/hbase/class-use/CellBuilder.html |   10 +-
 .../hadoop/hbase/class-use/CellBuilderType.html    |   10 +-
 .../apache/hadoop/hbase/class-use/CellScanner.html |    4 +-
 .../hadoop/hbase/class-use/ClusterMetrics.html     |   12 +-
 .../apache/hadoop/hbase/class-use/ServerName.html  |  190 +-
 .../apache/hadoop/hbase/class-use/TableName.html   |   50 +-
 .../apache/hadoop/hbase/client/CompactType.html    |    4 +-
 .../hadoop/hbase/client/CompactionState.html       |    4 +-
 .../apache/hadoop/hbase/client/Consistency.html    |    4 +-
 .../org/apache/hadoop/hbase/client/Durability.html |    4 +-
 .../apache/hadoop/hbase/client/IsolationLevel.html |    4 +-
 .../apache/hadoop/hbase/client/Scan.ReadType.html  |    4 +-
 .../apache/hadoop/hbase/client/SnapshotType.html   |    4 +-
 .../hadoop/hbase/client/class-use/Append.html      |    8 +-
 .../hbase/client/class-use/CheckAndMutate.html     |   16 +-
 .../client/class-use/CheckAndMutateResult.html     |    8 +-
 .../hadoop/hbase/client/class-use/Consistency.html |    8 +-
 .../hadoop/hbase/client/class-use/Delete.html      |   20 +-
 .../hadoop/hbase/client/class-use/Durability.html  |   32 +-
 .../apache/hadoop/hbase/client/class-use/Get.html  |   36 +-
 .../hadoop/hbase/client/class-use/Increment.html   |    8 +-
 .../hbase/client/class-use/IsolationLevel.html     |    8 +-
 .../hadoop/hbase/client/class-use/Mutation.html    |    8 +-
 .../apache/hadoop/hbase/client/class-use/Put.html  |   24 +-
 .../hadoop/hbase/client/class-use/Result.html      |   20 +-
 .../hbase/client/class-use/ResultScanner.html      |   16 +-
 .../hbase/client/class-use/RowMutations.html       |    8 +-
 .../apache/hadoop/hbase/client/class-use/Scan.html |   12 +-
 .../apache/hadoop/hbase/client/package-tree.html   |   14 +-
 .../apache/hadoop/hbase/client/package-use.html    |   36 +-
 .../hadoop/hbase/filter/Filter.ReturnCode.html     |    4 +-
 .../hbase/filter/class-use/Filter.ReturnCode.html  |   50 +-
 .../hadoop/hbase/filter/class-use/Filter.html      |   72 +-
 .../hbase/io/class-use/ImmutableBytesWritable.html |   40 +-
 .../hadoop/hbase/io/class-use/TimeRange.html       |   16 +-
 .../hbase/io/compress/Compression.Algorithm.html   |    4 +-
 .../hadoop/hbase/io/crypto/class-use/Cipher.html   |   10 +-
 .../hbase/io/encoding/DataBlockEncoding.html       |    4 +-
 .../hbase/io/encoding/IndexBlockEncoding.html      |    4 +-
 apidocs/org/apache/hadoop/hbase/package-tree.html  |    2 +-
 apidocs/org/apache/hadoop/hbase/package-use.html   |   40 +-
 .../apache/hadoop/hbase/quotas/package-tree.html   |    2 +-
 .../hbase/replication/SyncReplicationState.html    |    4 +-
 apidocs/org/apache/hadoop/hbase/util/Bytes.html    |  108 +-
 .../apache/hadoop/hbase/util/class-use/Bytes.html  |   32 +-
 .../apache/hadoop/hbase/util/class-use/Order.html  |   34 +-
 .../hbase/util/class-use/PositionedByteRange.html  |  254 +-
 apidocs/overview-tree.html                         |   32 +-
 .../hbase/util/Bytes.ByteArrayComparator.html      | 2537 ++++++-----
 .../hbase/util/Bytes.RowEndKeyComparator.html      | 2537 ++++++-----
 .../org/apache/hadoop/hbase/util/Bytes.html        | 2537 ++++++-----
 book.html                                          |    2 +-
 bulk-loads.html                                    |    2 +-
 checkstyle-aggregate.html                          | 4733 ++++++++++----------
 checkstyle.rss                                     |  420 +-
 coc.html                                           |    2 +-
 dependencies.html                                  |    2 +-
 dependency-convergence.html                        |    2 +-
 dependency-info.html                               |    2 +-
 dependency-management.html                         |    2 +-
 devapidocs/allclasses-frame.html                   |    8 +
 devapidocs/allclasses-noframe.html                 |    8 +
 devapidocs/deprecated-list.html                    |   66 +-
 devapidocs/index-all.html                          |   68 +
 devapidocs/org/apache/hadoop/hbase/Cell.Type.html  |    4 +-
 .../apache/hadoop/hbase/ClusterMetrics.Option.html |    4 +-
 .../hbase/HConstants.OperationStatusCode.html      |    4 +-
 .../org/apache/hadoop/hbase/KeepDeletedCells.html  |    4 +-
 .../org/apache/hadoop/hbase/KeyValue.Type.html     |    4 +-
 .../hadoop/hbase/MemoryCompactionPolicy.html       |    4 +-
 devapidocs/org/apache/hadoop/hbase/Size.Unit.html  |    4 +-
 .../hadoop/hbase/backup/class-use/BackupType.html  |    8 +-
 .../apache/hadoop/hbase/class-use/Abortable.html   |   70 +-
 .../hadoop/hbase/class-use/ByteBufferKeyValue.html |   24 +-
 .../hadoop/hbase/class-use/CacheEvictionStats.html |    4 +-
 .../apache/hadoop/hbase/class-use/Cell.Type.html   |   30 +-
 .../org/apache/hadoop/hbase/class-use/Cell.html    | 1246 +++---
 .../apache/hadoop/hbase/class-use/CellBuilder.html |   16 +-
 .../hadoop/hbase/class-use/CellBuilderType.html    |   28 +-
 .../hadoop/hbase/class-use/CellComparator.html     |  134 +-
 .../apache/hadoop/hbase/class-use/CellScanner.html |   36 +-
 .../hadoop/hbase/class-use/ChoreService.html       |    8 +-
 .../hbase/class-use/ClusterMetrics.Option.html     |   12 +-
 .../hadoop/hbase/class-use/ClusterMetrics.html     |   26 +-
 .../hadoop/hbase/class-use/CompareOperator.html    |   40 +-
 .../hbase/class-use/CoordinatedStateManager.html   |    8 +-
 .../hbase/class-use/CoprocessorEnvironment.html    |   40 +-
 .../hadoop/hbase/class-use/ExtendedCell.html       |   40 +-
 .../hbase/class-use/ExtendedCellBuilder.html       |   68 +-
 .../hadoop/hbase/class-use/HBaseIOException.html   |   30 +-
 .../hbase/class-use/HDFSBlocksDistribution.html    |   10 +-
 .../hadoop/hbase/class-use/HRegionLocation.html    |  100 +-
 .../hadoop/hbase/class-use/KeepDeletedCells.html   |   10 +-
 .../apache/hadoop/hbase/class-use/KeyValue.html    |   44 +-
 .../hbase/class-use/NamespaceDescriptor.html       |   60 +-
 .../hadoop/hbase/class-use/RegionLocations.html    |   22 +-
 .../hadoop/hbase/class-use/RegionMetrics.html      |   34 +-
 .../org/apache/hadoop/hbase/class-use/Server.html  |    8 +-
 .../hadoop/hbase/class-use/ServerMetrics.html      |    8 +-
 .../apache/hadoop/hbase/class-use/ServerName.html  |  758 ++--
 .../apache/hadoop/hbase/class-use/ServerTask.html  |    8 +-
 .../org/apache/hadoop/hbase/class-use/Size.html    |   16 +-
 .../apache/hadoop/hbase/class-use/TableName.html   | 1156 ++---
 .../hbase/class-use/TableNotDisabledException.html |    8 +-
 .../hbase/class-use/TableNotFoundException.html    |    8 +-
 .../org/apache/hadoop/hbase/class-use/Tag.html     |   40 +-
 .../apache/hadoop/hbase/class-use/TagBuilder.html  |   14 +-
 .../hbase/class-use/UserMetrics.ClientMetrics.html |    8 +-
 .../apache/hadoop/hbase/class-use/UserMetrics.html |    8 +-
 .../apache/hadoop/hbase/client/CompactType.html    |    4 +-
 .../hadoop/hbase/client/CompactionState.html       |    4 +-
 .../apache/hadoop/hbase/client/Consistency.html    |    4 +-
 .../org/apache/hadoop/hbase/client/Durability.html |    4 +-
 .../apache/hadoop/hbase/client/IsolationLevel.html |    4 +-
 .../hadoop/hbase/client/RegionLocateType.html      |    4 +-
 .../apache/hadoop/hbase/client/Scan.ReadType.html  |    4 +-
 .../apache/hadoop/hbase/client/SnapshotType.html   |    4 +-
 .../hadoop/hbase/client/TableState.State.html      |    4 +-
 .../HBaseServerExceptionPauseManager.html          |    4 +-
 .../client/backoff/class-use/ServerStatistics.html |   14 +-
 .../class-use/AbstractResponse.ResponseType.html   |   10 +-
 .../hadoop/hbase/client/class-use/Admin.html       |   10 +-
 .../class-use/AdvancedScanResultConsumer.html      |    6 +-
 .../hadoop/hbase/client/class-use/Append.html      |   22 +-
 .../hbase/client/class-use/AsyncAdminBuilder.html  |   50 +-
 .../client/class-use/AsyncClusterConnection.html   |    8 +-
 .../client/class-use/AsyncConnectionImpl.html      |   30 +-
 .../client/class-use/AsyncRegionServerAdmin.html   |    8 +-
 ...yncServerRequestRpcRetryingCaller.Callable.html |    8 +-
 .../hbase/client/class-use/BalanceRequest.html     |   42 +-
 .../hbase/client/class-use/BalanceResponse.html    |   24 +-
 .../hbase/client/class-use/CheckAndMutate.html     |   44 +-
 .../client/class-use/CheckAndMutateResult.html     |   30 +-
 .../client/class-use/ColumnFamilyDescriptor.html   |   48 +-
 .../hadoop/hbase/client/class-use/CompactType.html |   74 +-
 .../hbase/client/class-use/CompactionState.html    |    8 +-
 .../hadoop/hbase/client/class-use/Connection.html  |   92 +-
 .../hadoop/hbase/client/class-use/Consistency.html |   12 +-
 .../hadoop/hbase/client/class-use/Delete.html      |   60 +-
 .../hadoop/hbase/client/class-use/Durability.html  |   60 +-
 .../apache/hadoop/hbase/client/class-use/Get.html  |   70 +-
 .../apache/hadoop/hbase/client/class-use/Hbck.html |    8 +-
 .../hadoop/hbase/client/class-use/Increment.html   |   22 +-
 .../hbase/client/class-use/IsolationLevel.html     |   12 +-
 .../hadoop/hbase/client/class-use/LogEntry.html    |   20 +-
 .../hbase/client/class-use/MasterSwitchType.html   |   10 +-
 .../hbase/client/class-use/MetricsConnection.html  |    4 +-
 .../hadoop/hbase/client/class-use/Mutation.html    |   30 +-
 .../hbase/client/class-use/NonceGenerator.html     |    8 +-
 .../class-use/NormalizeTableFilterParams.html      |   22 +-
 .../apache/hadoop/hbase/client/class-use/Put.html  |   60 +-
 .../hadoop/hbase/client/class-use/RegionInfo.html  |  380 +-
 .../hbase/client/class-use/RegionLoadStats.html    |   16 +-
 .../hbase/client/class-use/RegionLocateType.html   |   12 +-
 .../hbase/client/class-use/RegionLocator.html      |   24 +-
 .../class-use/RequestController.Checker.html       |    8 +-
 .../hadoop/hbase/client/class-use/Result.html      |  202 +-
 .../hbase/client/class-use/ResultScanner.html      |   38 +-
 .../apache/hadoop/hbase/client/class-use/Row.html  |   22 +-
 .../hbase/client/class-use/RowMutations.html       |   38 +-
 .../hbase/client/class-use/Scan.ReadType.html      |   16 +-
 .../apache/hadoop/hbase/client/class-use/Scan.html |  322 +-
 .../hbase/client/class-use/ScanResultCache.html    |    6 +-
 .../hadoop/hbase/client/class-use/ServerType.html  |   20 +-
 .../hbase/client/class-use/ServiceCaller.html      |    8 +-
 .../client/class-use/SnapshotDescription.html      |   66 +-
 .../class-use/Table.CheckAndMutateBuilder.html     |   10 +-
 .../Table.CheckAndMutateWithFilterBuilder.html     |   10 +-
 .../hadoop/hbase/client/class-use/Table.html       |   12 +-
 .../hbase/client/class-use/TableDescriptor.html    |  296 +-
 .../client/class-use/TableDescriptorBuilder.html   |   16 +-
 .../hadoop/hbase/client/class-use/TableState.html  |   16 +-
 .../client/coprocessor/class-use/Batch.Call.html   |   16 +-
 .../coprocessor/class-use/Batch.Callback.html      |   46 +-
 .../hbase/client/locking/class-use/EntityLock.html |   12 +-
 .../client/metrics/class-use/ScanMetrics.html      |   22 +-
 .../apache/hadoop/hbase/client/package-tree.html   |   22 +-
 .../apache/hadoop/hbase/client/package-use.html    |   57 +-
 .../client/replication/class-use/TableCFs.html     |   12 +-
 .../security/class-use/SecurityCapability.html     |   12 +-
 .../hbase/codec/class-use/Codec.Decoder.html       |   24 +-
 .../hbase/codec/class-use/Codec.Encoder.html       |   12 +-
 .../apache/hadoop/hbase/codec/class-use/Codec.html |   10 +-
 ...ManagerCoordination.SplitLogManagerDetails.html |   16 +-
 .../coprocessor/RegionObserver.MutationType.html   |    4 +-
 .../coprocessor/class-use/ObserverContext.html     |    4 +-
 .../class-use/RegionCoprocessorEnvironment.html    |    4 +-
 .../coprocessor/class-use/RegionObserver.html      |   20 +-
 .../hadoop/hbase/coprocessor/package-tree.html     |    2 +-
 .../errorhandling/class-use/ForeignException.html  |   30 +-
 .../class-use/DeserializationException.html        |  232 +-
 .../class-use/UnexpectedStateException.html        |   14 +-
 .../apache/hadoop/hbase/executor/ExecutorType.html |    4 +-
 .../hadoop/hbase/executor/class-use/EventType.html |   16 +-
 .../apache/hadoop/hbase/executor/package-tree.html |    2 +-
 .../favored/class-use/FavoredNodesManager.html     |    8 +-
 .../hadoop/hbase/filter/Filter.ReturnCode.html     |    4 +-
 .../filter/FilterWrapper.FilterRowRetCode.html     |    4 +-
 .../filter/class-use/ByteArrayComparable.html      |   32 +-
 .../hbase/filter/class-use/Filter.ReturnCode.html  |   72 +-
 .../hadoop/hbase/filter/class-use/Filter.html      |  206 +-
 .../apache/hadoop/hbase/filter/package-tree.html   |    8 +-
 .../hadoop/hbase/fs/class-use/HFileSystem.html     |    8 +-
 .../hadoop/hbase/hbtop/RecordFilter.Operator.html  |    4 +-
 .../hadoop/hbase/hbtop/class-use/Record.html       |   28 +-
 .../hadoop/hbase/hbtop/class-use/RecordFilter.html |   14 +-
 .../hadoop/hbase/hbtop/field/FieldValueType.html   |    4 +-
 .../hadoop/hbase/hbtop/field/class-use/Field.html  |   14 +-
 .../hbase/hbtop/field/class-use/FieldInfo.html     |   26 +-
 .../hadoop/hbase/hbtop/field/package-tree.html     |    2 +-
 .../hbase/hbtop/mode/class-use/DrillDownInfo.html  |   14 +-
 .../hbase/hbtop/screen/class-use/ScreenView.html   |   24 +-
 .../apache/hadoop/hbase/hbtop/terminal/Color.html  |    4 +-
 .../hadoop/hbase/hbtop/terminal/KeyPress.Type.html |    4 +-
 .../hbase/hbtop/terminal/class-use/Attributes.html |    4 +-
 .../hbtop/terminal/class-use/CursorPosition.html   |    4 +-
 .../hbase/hbtop/terminal/class-use/KeyPress.html   |    8 +-
 .../hbase/hbtop/terminal/class-use/Terminal.html   |    4 +-
 .../terminal/impl/class-use/ScreenBuffer.html      |    4 +-
 .../hadoop/hbase/hbtop/terminal/package-tree.html  |    2 +-
 .../org/apache/hadoop/hbase/http/package-tree.html |    2 +-
 .../monitor/class-use/StreamSlowMonitor.html       |   10 +-
 .../hbase/io/class-use/ByteBuffAllocator.html      |   12 +-
 .../hbase/io/class-use/ImmutableBytesWritable.html |  112 +-
 .../hbase/io/class-use/TagCompressionContext.html  |   24 +-
 .../hadoop/hbase/io/class-use/TimeRange.html       |   46 +-
 .../hbase/io/compress/Compression.Algorithm.html   |    4 +-
 .../hadoop/hbase/io/crypto/class-use/Cipher.html   |   10 +-
 .../hbase/io/crypto/class-use/Encryptor.html       |   10 +-
 .../hadoop/hbase/io/crypto/tls/package-tree.html   |    2 +-
 .../hbase/io/encoding/DataBlockEncoding.html       |    4 +-
 .../hbase/io/encoding/IndexBlockEncoding.html      |    4 +-
 .../BufferedDataBlockEncoder.SeekerState.html      |   10 +-
 .../io/encoding/class-use/CompressionState.html    |    6 +-
 .../class-use/DataBlockEncoder.EncodedSeeker.html  |   14 +-
 .../io/encoding/class-use/DataBlockEncoding.html   |   60 +-
 .../hbase/io/encoding/class-use/EncodingState.html |   16 +-
 .../class-use/HFileBlockDecodingContext.html       |   36 +-
 .../HFileBlockDefaultDecodingContext.html          |   12 +-
 .../HFileBlockDefaultEncodingContext.html          |   16 +-
 .../class-use/HFileBlockEncodingContext.html       |   54 +-
 .../io/encoding/class-use/IndexBlockEncoding.html  |    4 +-
 .../hbase/io/encoding/class-use/NoneEncoder.html   |    8 +-
 .../io/hfile/bucket/class-use/BucketEntry.html     |   22 +-
 .../hbase/io/hfile/class-use/BlockCache.html       |   20 +-
 .../hbase/io/hfile/class-use/BlockCacheKey.html    |   78 +-
 .../hbase/io/hfile/class-use/BlockIndexChunk.html  |    4 +-
 .../hbase/io/hfile/class-use/BlockPriority.html    |    4 +-
 .../hadoop/hbase/io/hfile/class-use/BlockType.html |   58 +-
 .../io/hfile/class-use/BlockWithScanInfo.html      |   24 +-
 .../hbase/io/hfile/class-use/CacheConfig.html      |   24 +-
 .../hbase/io/hfile/class-use/CacheStats.html       |   16 +-
 .../hadoop/hbase/io/hfile/class-use/Cacheable.html |  100 +-
 .../io/hfile/class-use/CacheableDeserializer.html  |    8 +-
 .../hbase/io/hfile/class-use/CachedBlock.html      |    4 +-
 .../hfile/class-use/HFile.CachingBlockReader.html  |   38 +-
 .../hbase/io/hfile/class-use/HFile.Reader.html     |    8 +-
 .../hbase/io/hfile/class-use/HFile.Writer.html     |   14 +-
 .../io/hfile/class-use/HFileBlock.Writer.html      |    8 +-
 .../hbase/io/hfile/class-use/HFileBlock.html       |   34 +-
 .../hbase/io/hfile/class-use/HFileContext.html     |   76 +-
 .../HFileIndexBlockEncoder.EncodedSeeker.html      |    4 +-
 .../io/hfile/class-use/HFileIndexBlockEncoder.html |   10 +-
 .../hadoop/hbase/io/hfile/class-use/HFileInfo.html |    8 +-
 .../io/hfile/class-use/InlineBlockWriter.html      |    8 +-
 .../apache/hadoop/hbase/io/hfile/package-tree.html |    6 +-
 .../org/apache/hadoop/hbase/io/package-tree.html   |    2 +-
 .../apache/hadoop/hbase/ipc/class-use/Call.html    |   12 +-
 .../hadoop/hbase/ipc/class-use/CallQueueInfo.html  |   14 +-
 .../hadoop/hbase/ipc/class-use/CallRunner.html     |   32 +-
 .../hbase/ipc/class-use/CellBlockBuilder.html      |   12 +-
 .../hbase/ipc/class-use/FastPathRpcHandler.html    |    8 +-
 .../hbase/ipc/class-use/HBaseRPCErrorHandler.html  |   12 +-
 .../HBaseRpcController.CancellationCallback.html   |   12 +-
 .../hbase/ipc/class-use/HBaseRpcController.html    |   18 +-
 .../hbase/ipc/class-use/MetricsHBaseServer.html    |   14 +-
 .../ipc/class-use/MetricsHBaseServerSource.html    |    8 +-
 .../ipc/class-use/MetricsHBaseServerWrapper.html   |    8 +-
 .../hbase/ipc/class-use/PriorityFunction.html      |   14 +-
 .../apache/hadoop/hbase/ipc/class-use/RpcCall.html |   10 +-
 .../hadoop/hbase/ipc/class-use/RpcCallback.html    |    8 +-
 .../hadoop/hbase/ipc/class-use/RpcClient.html      |   16 +-
 .../hbase/ipc/class-use/RpcControllerFactory.html  |    8 +-
 .../hadoop/hbase/ipc/class-use/RpcHandler.html     |    4 +-
 .../hbase/ipc/class-use/RpcScheduler.Context.html  |   14 +-
 .../hadoop/hbase/ipc/class-use/RpcScheduler.html   |    8 +-
 .../ipc/class-use/SimpleRpcServerResponder.html    |   10 +-
 .../org/apache/hadoop/hbase/ipc/package-tree.html  |    2 +-
 .../hbase/mapreduce/class-use/CellCreator.html     |    8 +-
 .../TableSnapshotInputFormatImpl.InputSplit.html   |    8 +-
 .../hadoop/hbase/mapreduce/package-tree.html       |    2 +-
 .../apache/hadoop/hbase/mapreduce/package-use.html |   49 +-
 .../assignment/class-use/AssignmentManager.html    |   12 +-
 .../assignment/class-use/RegionStateNode.html      |   64 +-
 .../hbase/master/assignment/package-tree.html      |    2 +-
 .../master/balancer/class-use/BalanceAction.html   |   28 +-
 .../balancer/class-use/BalancerClusterState.html   |   46 +-
 .../balancer/class-use/BalancerRegionLoad.html     |   14 +-
 .../balancer/class-use/ClusterInfoProvider.html    |    4 +-
 .../class-use/RegionHDFSBlockLocationFinder.html   |    8 +-
 .../hadoop/hbase/master/balancer/package-tree.html |    4 +-
 .../hbase/master/class-use/ClusterSchema.html      |    8 +-
 .../hadoop/hbase/master/class-use/HMaster.html     |   12 +-
 .../master/class-use/MasterCoprocessorHost.html    |    8 +-
 .../hbase/master/class-use/MasterFileSystem.html   |    8 +-
 .../hbase/master/class-use/MasterServices.html     |   50 +-
 .../hbase/master/class-use/MasterWalManager.html   |    8 +-
 .../hbase/master/class-use/MetricsMaster.html      |    8 +-
 .../master/class-use/MetricsMasterProcSource.html  |    4 +-
 .../master/class-use/MetricsMasterQuotaSource.html |    4 +-
 .../master/class-use/MetricsMasterSource.html      |    4 +-
 .../master/class-use/MetricsMasterWrapper.html     |   14 +-
 .../hadoop/hbase/master/class-use/RackManager.html |    8 +-
 .../hadoop/hbase/master/class-use/RegionPlan.html  |   26 +-
 .../hbase/master/class-use/RegionState.State.html  |   16 +-
 .../hbase/master/class-use/ServerManager.html      |   12 +-
 .../SplitLogManager.ResubmitDirective.html         |   12 +-
 .../master/class-use/SplitLogManager.Task.html     |   12 +-
 .../hbase/master/class-use/SplitWALManager.html    |    8 +-
 .../hbase/master/class-use/TableStateManager.html  |    8 +-
 .../master/janitor/class-use/CatalogJanitor.html   |    8 +-
 .../master/locking/class-use/LockManager.html      |    8 +-
 .../class-use/NormalizationPlan.PlanType.html      |   10 +-
 .../normalizer/class-use/NormalizationPlan.html    |    8 +-
 .../class-use/RegionNormalizerManager.html         |    8 +-
 .../apache/hadoop/hbase/master/package-tree.html   |    6 +-
 .../PeerProcedureInterface.PeerOperationType.html  |    4 +-
 ...rverProcedureInterface.ServerOperationType.html |    4 +-
 .../CreateTableProcedure.CreateHdfsRegions.html    |   14 +-
 .../procedure/class-use/MasterProcedureEnv.html    |  444 +-
 .../PeerProcedureInterface.PeerOperationType.html  |   18 +-
 .../procedure/class-use/ProcedurePrepareLatch.html |    4 +-
 ...rverProcedureInterface.ServerOperationType.html |   16 +-
 ...TableProcedureInterface.TableOperationType.html |   96 +-
 .../hbase/master/procedure/package-tree.html       |    4 +-
 .../master/region/class-use/MasterRegion.html      |    4 +-
 .../class-use/MasterRegionFlusherAndCompactor.html |    8 +-
 .../class-use/ReplicationPeerManager.html          |    8 +-
 .../class-use/SyncReplicationReplayWALManager.html |    8 +-
 .../master/snapshot/class-use/SnapshotManager.html |    4 +-
 .../zksyncer/class-use/MetaLocationSyncer.html     |    8 +-
 .../hbase/metrics/class-use/MetricRegistry.html    |    8 +-
 .../metrics/class-use/MetricRegistryInfo.html      |    4 +-
 .../hbase/metrics/class-use/OperationMetrics.html  |   52 +-
 .../hadoop/hbase/mob/class-use/MobFileCache.html   |   16 +-
 .../hbase/monitoring/MonitoredTask.State.html      |    4 +-
 .../monitoring/class-use/MonitoredRPCHandler.html  |   10 +-
 .../hbase/monitoring/class-use/MonitoredTask.html  |   36 +-
 .../hadoop/hbase/monitoring/package-tree.html      |    2 +-
 .../NamedQueuePayload.NamedQueueEvent.html         |   14 +-
 .../namequeues/class-use/NamedQueuePayload.html    |   18 +-
 .../namequeues/class-use/NamedQueueRecorder.html   |   16 +-
 .../request/class-use/NamedQueueGetRequest.html    |   20 +-
 .../response/class-use/NamedQueueGetResponse.html  |   20 +-
 .../apache/hadoop/hbase/net/class-use/Address.html |   86 +-
 .../hadoop/hbase/nio/class-use/ByteBuff.html       |   86 +-
 .../apache/hadoop/hbase/nio/class-use/RefCnt.html  |    8 +-
 .../org/apache/hadoop/hbase/package-tree.html      |   18 +-
 .../org/apache/hadoop/hbase/package-use.html       |  148 +-
 .../class-use/MasterProcedureManagerHost.html      |    4 +-
 .../class-use/ProcedureCoordinatorRpcs.html        |   10 +-
 .../hbase/procedure/class-use/ProcedureMember.html |   10 +-
 .../procedure/class-use/ProcedureMemberRpcs.html   |   16 +-
 .../hbase/procedure/class-use/Subprocedure.html    |   34 +-
 .../hbase/procedure2/RootProcedureState.State.html |    4 +-
 .../class-use/CompletedProcedureRetainer.html      |    8 +-
 .../hbase/procedure2/class-use/LockedResource.html |   36 +-
 .../procedure2/class-use/LockedResourceType.html   |   12 +-
 .../procedure2/class-use/Procedure.LockState.html  |   20 +-
 .../hbase/procedure2/class-use/Procedure.html      |   94 +-
 .../hbase/procedure2/class-use/ProcedureEvent.html |   18 +-
 .../procedure2/class-use/ProcedureExecutor.html    |    8 +-
 .../procedure2/class-use/ProcedureMetrics.html     |   12 +-
 .../class-use/ProcedureStateSerializer.html        |  250 +-
 .../class-use/ProcedureSuspendedException.html     |   32 +-
 .../class-use/ProcedureYieldException.html         |   24 +-
 .../RemoteProcedureDispatcher.RemoteOperation.html |   22 +-
 .../class-use/RemoteProcedureException.html        |   10 +-
 .../hadoop/hbase/procedure2/package-tree.html      |    4 +-
 .../procedure2/store/class-use/ProcedureStore.html |    4 +-
 .../ProcedureStoreTracker.DeleteState.html         |   10 +-
 .../store/wal/class-use/ProcedureStoreTracker.html |   10 +-
 .../class-use/DelayedUtil.DelayedWithTimeout.html  |    4 +-
 .../hbase/quotas/RpcThrottlingException.Type.html  |    4 +-
 .../quotas/class-use/FileArchiverNotifier.html     |    8 +-
 .../hbase/quotas/class-use/MasterQuotaManager.html |    8 +-
 .../hadoop/hbase/quotas/class-use/QuotaFilter.html |   12 +-
 .../hbase/quotas/class-use/QuotaLimiter.html       |   16 +-
 .../hbase/quotas/class-use/QuotaSettings.html      |   56 +-
 .../hadoop/hbase/quotas/class-use/QuotaState.html  |    8 +-
 .../hadoop/hbase/quotas/class-use/QuotaType.html   |   12 +-
 .../class-use/RegionServerRpcQuotaManager.html     |    8 +-
 .../class-use/RegionServerSpaceQuotaManager.html   |    8 +-
 .../hadoop/hbase/quotas/class-use/RegionSize.html  |   24 +-
 .../hbase/quotas/class-use/RegionSizeStore.html    |    8 +-
 .../hbase/quotas/class-use/RpcThrottleStorage.html |    4 +-
 .../quotas/class-use/RpcThrottlingException.html   |   16 +-
 .../quotas/class-use/SpaceLimitingException.html   |   10 +-
 .../hbase/quotas/class-use/SpaceQuotaSnapshot.html |   12 +-
 .../SpaceViolationPolicyEnforcementFactory.html    |    4 +-
 .../apache/hadoop/hbase/quotas/package-tree.html   |    2 +-
 .../hbase/regionserver/ChunkCreator.ChunkType.html |    4 +-
 .../hadoop/hbase/regionserver/FlushType.html       |    4 +-
 .../hbase/regionserver/Region.Operation.html       |    4 +-
 .../hbase/regionserver/TimeRangeTracker.Type.html  |    4 +-
 .../hbase/regionserver/class-use/BloomType.html    |    8 +-
 .../hbase/regionserver/class-use/CellFlatMap.html  |    8 +-
 .../hbase/regionserver/class-use/CellSet.html      |   12 +-
 .../hadoop/hbase/regionserver/class-use/Chunk.html |    8 +-
 .../class-use/ChunkCreator.ChunkType.html          |    8 +-
 .../class-use/CreateStoreFileWriterParams.html     |    8 +-
 .../class-use/FlushLifeCycleTracker.html           |   34 +-
 .../class-use/FlushRequestListener.html            |   16 +-
 .../regionserver/class-use/FlushRequester.html     |    8 +-
 .../hbase/regionserver/class-use/FlushType.html    |   20 +-
 .../hbase/regionserver/class-use/HMobStore.html    |    8 +-
 .../hbase/regionserver/class-use/HRegion.html      |  136 +-
 .../regionserver/class-use/HRegionFileSystem.html  |   12 +-
 .../regionserver/class-use/HRegionServer.html      |   22 +-
 .../hbase/regionserver/class-use/HStore.html       |   50 +-
 .../hbase/regionserver/class-use/HStoreFile.html   |  206 +-
 .../regionserver/class-use/HeapMemoryManager.html  |    8 +-
 .../regionserver/class-use/InternalScanner.html    |    8 +-
 .../hbase/regionserver/class-use/KeyValueHeap.html |    8 +-
 .../regionserver/class-use/KeyValueScanner.html    |   30 +-
 .../hbase/regionserver/class-use/LeaseManager.html |    8 +-
 .../MemStoreCompactionStrategy.Action.html         |   20 +-
 .../class-use/MemStoreSegmentsIterator.html        |    4 +-
 .../hbase/regionserver/class-use/MemStoreSize.html |   26 +-
 .../regionserver/class-use/MemStoreSizing.html     |   66 +-
 .../regionserver/class-use/MemStoreSnapshot.html   |   16 +-
 .../class-use/MetricsRegionServer.html             |    8 +-
 .../class-use/MetricsRegionSource.html             |   14 +-
 .../class-use/MetricsTableAggregateSource.html     |    8 +-
 .../regionserver/class-use/MutableSegment.html     |   30 +-
 .../regionserver/class-use/OnlineRegions.html      |    8 +-
 .../regionserver/class-use/OperationStatus.html    |    8 +-
 .../regionserver/class-use/RSRpcServices.html      |    4 +-
 .../class-use/RegionCoprocessorHost.html           |   18 +-
 .../class-use/RegionServerAccounting.html          |    8 +-
 ...RegionServerServices.PostOpenDeployContext.html |    8 +-
 ...erverServices.RegionStateTransitionContext.html |    8 +-
 .../class-use/RegionServerServices.html            |   60 +-
 .../class-use/ReplicationSourceService.html        |    4 +-
 .../hbase/regionserver/class-use/ScanType.html     |    4 +-
 .../class-use/ScannerContext.LimitScope.html       |   24 +-
 .../class-use/ScannerContext.NextState.html        |   16 +-
 .../regionserver/class-use/ScannerContext.html     |   32 +-
 .../class-use/SecureBulkLoadManager.html           |    8 +-
 .../hbase/regionserver/class-use/Segment.html      |   20 +-
 .../regionserver/class-use/ServerNonceManager.html |    8 +-
 .../hadoop/hbase/regionserver/class-use/Store.html |    4 +-
 .../class-use/StoreConfigInformation.html          |    8 +-
 .../hbase/regionserver/class-use/StoreContext.html |    8 +-
 .../regionserver/class-use/StoreFileInfo.html      |   86 +-
 .../regionserver/class-use/StoreFileReader.html    |    8 +-
 .../regionserver/class-use/StoreFileWriter.html    |   24 +-
 .../regionserver/class-use/TimeRangeTracker.html   |   12 +-
 .../class-use/VersionedSegmentsList.html           |    8 +-
 .../compactions/class-use/CompactionContext.html   |   12 +-
 .../class-use/CompactionLifeCycleTracker.html      |    4 +-
 .../compactions/class-use/CompactionRequest.html   |    4 +-
 .../class-use/CompactionRequestImpl.html           |    8 +-
 .../compactions/class-use/CompactionRequester.html |    4 +-
 .../hadoop/hbase/regionserver/package-tree.html    |   16 +-
 .../querymatcher/DeleteTracker.DeleteResult.html   |    4 +-
 .../querymatcher/ScanQueryMatcher.MatchCode.html   |    4 +-
 .../querymatcher/class-use/ColumnCount.html        |   12 +-
 .../class-use/DeleteTracker.DeleteResult.html      |   16 +-
 .../querymatcher/class-use/DeleteTracker.html      |    8 +-
 .../class-use/ScanQueryMatcher.MatchCode.html      |   56 +-
 .../regionserver/querymatcher/package-tree.html    |    4 +-
 .../class-use/RegionReplicationBufferManager.html  |    4 +-
 .../storefiletracker/package-tree.html             |    2 +-
 .../throttle/class-use/ThroughputController.html   |   38 +-
 .../wal/CompressionContext.DictionaryIndex.html    |    4 +-
 .../regionserver/wal/RingBufferTruck.Type.html     |    4 +-
 .../wal/WALActionsListener.RollRequestReason.html  |    4 +-
 .../wal/class-use/CompressionContext.html          |   10 +-
 .../wal/class-use/WALActionsListener.html          |   26 +-
 .../hbase/regionserver/wal/package-tree.html       |    4 +-
 .../replication/ReplicationPeer.PeerState.html     |    4 +-
 .../hbase/replication/SyncReplicationState.html    |    4 +-
 .../class-use/ReplicationEndpoint.Context.html     |    4 +-
 .../ReplicationEndpoint.ReplicateContext.html      |    8 +-
 .../class-use/ReplicationException.html            |  352 +-
 .../class-use/ReplicationGroupOffset.html          |   30 +-
 .../replication/class-use/ReplicationLoadSink.html |    8 +-
 .../class-use/ReplicationLoadSource.html           |   16 +-
 .../class-use/ReplicationPeer.PeerState.html       |    8 +-
 .../class-use/ReplicationPeerConfig.html           |   94 +-
 .../class-use/ReplicationPeerConfigBuilder.html    |   84 +-
 .../class-use/ReplicationPeerConfigListener.html   |    8 +-
 .../class-use/ReplicationPeerDescription.html      |   32 +-
 .../replication/class-use/ReplicationPeers.html    |    4 +-
 .../class-use/ReplicationQueueData.html            |   18 +-
 .../replication/class-use/ReplicationQueueId.html  |   70 +-
 .../class-use/ReplicationQueueStorage.html         |    8 +-
 .../class-use/SyncReplicationState.html            |   50 +-
 .../replication/class-use/WALEntryFilter.html      |    8 +-
 ...QueueStorageForMigration.ZkLastPushedSeqId.html |    8 +-
 .../class-use/ReplicationLogCleanerBarrier.html    |    8 +-
 .../hadoop/hbase/replication/package-tree.html     |    4 +-
 .../ReplicationSourceShipper.WorkerState.html      |    4 +-
 .../class-use/MetricsReplicationSourceImpl.html    |    6 +-
 .../regionserver/class-use/MetricsSource.html      |    8 +-
 .../regionserver/class-use/ReplicationSource.html  |   10 +-
 .../class-use/ReplicationSourceLogQueue.html       |   16 +-
 .../class-use/ReplicationSourceManager.html        |    8 +-
 .../replication/regionserver/package-tree.html     |    2 +-
 .../rest/class-use/ProtobufMessageHandler.html     |   16 +-
 .../hadoop/hbase/rest/class-use/TableResource.html |   16 +-
 .../hbase/rest/class-use/VersionResource.html      |    8 +-
 .../hadoop/hbase/rest/model/package-tree.html      |    2 +-
 .../hbase/rsgroup/class-use/RSGroupInfo.html       |   76 +-
 .../rsgroup/class-use/RSGroupInfoManager.html      |   16 +-
 .../security/SaslUtil.QualityOfProtection.html     |    4 +-
 .../hbase/security/access/Permission.Action.html   |    4 +-
 .../hbase/security/access/Permission.Scope.html    |    4 +-
 .../security/access/class-use/AuthManager.html     |    8 +-
 .../class-use/GetUserPermissionsRequest.html       |   12 +-
 .../security/access/class-use/Permission.html      |   88 +-
 .../SnapshotScannerHDFSAclHelper.PathHelper.html   |    4 +-
 .../security/access/class-use/UserPermission.html  |   38 +-
 .../hadoop/hbase/security/access/package-tree.html |    8 +-
 .../hbase/security/class-use/SecurityInfo.html     |   10 +-
 .../hadoop/hbase/security/class-use/User.html      |  118 +-
 .../hbase/security/class-use/UserProvider.html     |    8 +-
 .../apache/hadoop/hbase/security/package-tree.html |    4 +-
 .../AttemptingUserProvidingSaslServer.html         |    4 +-
 .../provider/class-use/SaslAuthMethod.html         |    8 +-
 .../SaslClientAuthenticationProvider.html          |   20 +-
 .../visibility/class-use/Authorizations.html       |   30 +-
 .../visibility/class-use/CellVisibility.html       |   20 +-
 .../class-use/VisibilityLabelService.html          |    4 +-
 .../class-use/VisibilityLabelsCache.html           |   10 +-
 .../hbase/thrift/class-use/ThriftMetrics.html      |    4 +-
 .../apache/hadoop/hbase/thrift/package-tree.html   |    2 +-
 .../trace/HBaseSemanticAttributes.ReadType.html    |    4 +-
 .../hbase/util/ByteBufferUtils.ByteVisitor.html    |    8 +-
 ...er.html => ByteBufferUtils.CommonPrefixer.html} |   92 +-
 ...mmonPrefixerHolder.PureJavaCommonPrefixer.html} |  112 +-
 ...CommonPrefixerHolder.UnsafeCommonPrefixer.html} |  104 +-
 ...l => ByteBufferUtils.CommonPrefixerHolder.html} |   70 +-
 .../hbase/util/ByteBufferUtils.Comparer.html       |    4 +-
 ...ufferUtils.ComparerHolder.PureJavaComparer.html |   10 +-
 ...eBufferUtils.ComparerHolder.UnsafeComparer.html |    8 +-
 .../hbase/util/ByteBufferUtils.ComparerHolder.html |   10 +-
 ...ferUtils.ConverterHolder.PureJavaConverter.html |   26 +-
 ...ufferUtils.ConverterHolder.UnsafeConverter.html |   24 +-
 .../util/ByteBufferUtils.ConverterHolder.html      |   10 +-
 .../apache/hadoop/hbase/util/ByteBufferUtils.html  |  227 +-
 .../hbase/util/Bytes.ByteArrayComparator.html      |    4 +-
 ...ils.Comparer.html => Bytes.CommonPrefixer.html} |   95 +-
 ...mmonPrefixerHolder.PureJavaCommonPrefixer.html} |  109 +-
 ...CommonPrefixerHolder.UnsafeCommonPrefixer.html} |  114 +-
 ...Holder.html => Bytes.CommonPrefixerHolder.html} |   79 +-
 .../apache/hadoop/hbase/util/Bytes.Comparer.html   |    4 +-
 .../Bytes.ConverterHolder.PureJavaConverter.html   |   18 +-
 .../Bytes.ConverterHolder.UnsafeConverter.html     |   16 +-
 .../hadoop/hbase/util/Bytes.ConverterHolder.html   |   10 +-
 ...cographicalComparerHolder.PureJavaComparer.html |   10 +-
 ...xicographicalComparerHolder.UnsafeComparer.html |   10 +-
 .../util/Bytes.LexicographicalComparerHolder.html  |   10 +-
 devapidocs/org/apache/hadoop/hbase/util/Bytes.html |  132 +-
 .../org/apache/hadoop/hbase/util/ChecksumType.html |    4 +-
 .../apache/hadoop/hbase/util/DNS.ServerType.html   |    4 +-
 .../hadoop/hbase/util/PrettyPrinter.Unit.html      |    4 +-
 .../hbase/util/class-use/BloomFilterWriter.html    |   14 +-
 .../hbase/util/class-use/ByteBufferArray.html      |    8 +-
 .../class-use/ByteBufferUtils.CommonPrefixer.html} |   72 +-
 ...mmonPrefixerHolder.PureJavaCommonPrefixer.html} |   41 +-
 ....CommonPrefixerHolder.UnsafeCommonPrefixer.html |   62 +-
 .../ByteBufferUtils.CommonPrefixerHolder.html      |   62 +-
 .../hadoop/hbase/util/class-use/ByteRange.html     |   70 +-
 .../class-use/Bytes.CommonPrefixer.html}           |   64 +-
 ...mmonPrefixerHolder.PureJavaCommonPrefixer.html} |   41 +-
 ....CommonPrefixerHolder.UnsafeCommonPrefixer.html |   62 +-
 .../util/class-use/Bytes.CommonPrefixerHolder.html |   62 +-
 .../apache/hadoop/hbase/util/class-use/Bytes.html  |  106 +-
 ...mmonFSUtils.StreamLacksCapabilityException.html |   10 +-
 .../hadoop/hbase/util/class-use/HBaseFsck.html     |   10 +-
 .../apache/hadoop/hbase/util/class-use/Hash.html   |    4 +-
 .../hadoop/hbase/util/class-use/HashKey.html       |   22 +-
 .../hbase/util/class-use/HbckErrorReporter.html    |   14 +-
 .../hbase/util/class-use/HbckRegionInfo.html       |   20 +-
 .../hadoop/hbase/util/class-use/HbckTableInfo.html |    8 +-
 .../apache/hadoop/hbase/util/class-use/IdLock.html |    4 +-
 .../hadoop/hbase/util/class-use/KeyLocker.html     |    4 +-
 .../hadoop/hbase/util/class-use/NonceKey.html      |    8 +-
 .../hadoop/hbase/util/class-use/ObjectIntPair.html |   28 +-
 .../apache/hadoop/hbase/util/class-use/Order.html  |   44 +-
 .../apache/hadoop/hbase/util/class-use/Pair.html   |   62 +-
 .../hbase/util/class-use/PositionedByteRange.html  |  404 +-
 .../hbase/util/class-use/PrettyPrinter.Unit.html   |    4 +-
 .../util/class-use/RetryCounter.RetryConfig.html   |    4 +-
 .../hadoop/hbase/util/class-use/RetryCounter.html  |   32 +-
 .../apache/hadoop/hbase/util/package-frame.html    |    8 +
 .../apache/hadoop/hbase/util/package-summary.html  |   32 +
 .../org/apache/hadoop/hbase/util/package-tree.html |   26 +-
 .../org/apache/hadoop/hbase/util/package-use.html  |  116 +-
 .../hadoop/hbase/wal/WALTailingReader.State.html   |    4 +-
 .../class-use/EntryBuffers.RegionEntryBuffer.html  |   12 +-
 .../hadoop/hbase/wal/class-use/WAL.Entry.html      |   76 +-
 .../org/apache/hadoop/hbase/wal/class-use/WAL.html |   46 +-
 .../apache/hadoop/hbase/wal/class-use/WALEdit.html |   12 +-
 .../hadoop/hbase/wal/class-use/WALFactory.html     |   26 +-
 .../hadoop/hbase/wal/class-use/WALKeyImpl.html     |    4 +-
 .../hadoop/hbase/wal/class-use/WALProvider.html    |    4 +-
 .../org/apache/hadoop/hbase/wal/package-tree.html  |    2 +-
 .../zookeeper/class-use/MasterAddressTracker.html  |   10 +-
 .../hbase/zookeeper/class-use/ZKWatcher.html       |   24 +-
 .../hadoop/metrics2/class-use/MetricHistogram.html |   28 +-
 .../lib/class-use/DynamicMetricsRegistry.html      |    4 +-
 .../metrics2/lib/class-use/MutableFastCounter.html |   66 +-
 .../metrics2/lib/class-use/MutableHistogram.html   |    6 +-
 devapidocs/overview-tree.html                      |  236 +-
 .../hbase/util/ByteBufferUtils.ByteVisitor.html    | 2423 +++++-----
 .../hbase/util/ByteBufferUtils.CommonPrefixer.html | 1443 ++++++
 ...ommonPrefixerHolder.PureJavaCommonPrefixer.html | 1443 ++++++
 ....CommonPrefixerHolder.UnsafeCommonPrefixer.html | 1443 ++++++
 .../util/ByteBufferUtils.CommonPrefixerHolder.html | 1443 ++++++
 .../hbase/util/ByteBufferUtils.Comparer.html       | 2423 +++++-----
 ...ufferUtils.ComparerHolder.PureJavaComparer.html | 2423 +++++-----
 ...eBufferUtils.ComparerHolder.UnsafeComparer.html | 2423 +++++-----
 .../hbase/util/ByteBufferUtils.ComparerHolder.html | 2423 +++++-----
 .../hbase/util/ByteBufferUtils.Converter.html      | 2423 +++++-----
 ...ferUtils.ConverterHolder.PureJavaConverter.html | 2423 +++++-----
 ...ufferUtils.ConverterHolder.UnsafeConverter.html | 2423 +++++-----
 .../util/ByteBufferUtils.ConverterHolder.html      | 2423 +++++-----
 .../apache/hadoop/hbase/util/ByteBufferUtils.html  | 2423 +++++-----
 .../hbase/util/Bytes.ByteArrayComparator.html      | 2537 ++++++-----
 ...ayComparator.html => Bytes.CommonPrefixer.html} | 2537 ++++++-----
 ...mmonPrefixerHolder.PureJavaCommonPrefixer.html} | 2537 ++++++-----
 ...CommonPrefixerHolder.UnsafeCommonPrefixer.html} | 2537 ++++++-----
 ...arator.html => Bytes.CommonPrefixerHolder.html} | 2537 ++++++-----
 .../apache/hadoop/hbase/util/Bytes.Comparer.html   | 2537 ++++++-----
 .../apache/hadoop/hbase/util/Bytes.Converter.html  | 2537 ++++++-----
 .../Bytes.ConverterHolder.PureJavaConverter.html   | 2537 ++++++-----
 .../Bytes.ConverterHolder.UnsafeConverter.html     | 2537 ++++++-----
 .../hadoop/hbase/util/Bytes.ConverterHolder.html   | 2537 ++++++-----
 ...cographicalComparerHolder.PureJavaComparer.html | 2537 ++++++-----
 ...xicographicalComparerHolder.UnsafeComparer.html | 2537 ++++++-----
 .../util/Bytes.LexicographicalComparerHolder.html  | 2537 ++++++-----
 .../hbase/util/Bytes.RowEndKeyComparator.html      | 2537 ++++++-----
 .../org/apache/hadoop/hbase/util/Bytes.html        | 2537 ++++++-----
 downloads.html                                     |    2 +-
 export_control.html                                |    2 +-
 index.html                                         |    2 +-
 issue-management.html                              |    2 +-
 licenses.html                                      |    2 +-
 mailing-lists.html                                 |    2 +-
 metrics.html                                       |    2 +-
 old_news.html                                      |    2 +-
 plugin-management.html                             |    2 +-
 plugins.html                                       |    2 +-
 poweredbyhbase.html                                |    2 +-
 project-info.html                                  |    2 +-
 project-reports.html                               |    2 +-
 pseudo-distributed.html                            |    2 +-
 replication.html                                   |    2 +-
 resources.html                                     |    2 +-
 scm.html                                           |    2 +-
 sponsors.html                                      |    2 +-
 summary.html                                       |    2 +-
 supportingprojects.html                            |    2 +-
 team.html                                          |    2 +-
 testdevapidocs/index-all.html                      |    8 +
 ...seClusterManager.CommandProvider.Operation.html |    4 +-
 .../hadoop/hbase/HBaseClusterManager.Signal.html   |    4 +-
 .../hbase/RESTApiClusterManager.HealthSummary.html |    4 +-
 .../hbase/RESTApiClusterManager.RoleCommand.html   |    4 +-
 .../hbase/RESTApiClusterManager.RoleState.html     |    4 +-
 .../hbase/RESTApiClusterManager.Service.html       |    4 +-
 .../apache/hadoop/hbase/backup/package-tree.html   |    2 +-
 .../actions/class-use/Action.ActionContext.html    |   12 +-
 .../hbase/chaos/actions/class-use/Action.html      |    4 +-
 .../chaos/factories/class-use/MonkeyFactory.html   |    4 +-
 .../hbase/chaos/monkies/class-use/ChaosMonkey.html |   26 +-
 .../policies/class-use/Policy.PolicyContext.html   |   12 +-
 .../class-use/ClusterManager.ServiceType.html      |   98 +-
 .../hadoop/hbase/class-use/ClusterManager.html     |    4 +-
 .../hadoop/hbase/class-use/ConnectionRule.html     |    8 +-
 .../hadoop/hbase/class-use/HBaseClassTestRule.html | 3256 +++++++-------
 .../hbase/class-use/HBaseClusterInterface.html     |    4 +-
 .../hbase/class-use/HBaseCommonTestingUtil.html    |   66 +-
 .../hadoop/hbase/class-use/HBaseTestingUtil.html   | 1750 ++++----
 .../hadoop/hbase/class-use/HBaseZKTestingUtil.html |   22 +-
 .../hbase/class-use/IntegrationTestingUtility.html |   12 +-
 .../hadoop/hbase/class-use/MiniClusterRule.html    |    8 +-
 .../hbase/class-use/SingleProcessHBaseCluster.html |   40 +-
 .../hadoop/hbase/class-use/TableNameTestRule.html  |   32 +-
 .../hbase/io/crypto/tls/class-use/X509KeyType.html |   22 +-
 .../io/crypto/tls/class-use/X509TestContext.html   |    8 +-
 .../tls/class-use/X509TestContextProvider.html     |   16 +-
 .../apache/hadoop/hbase/io/hfile/package-tree.html |    2 +-
 .../TableSnapshotInputFormatTestBase.html          |    2 +-
 .../hbase/mapreduce/TestTableMapReduceBase.html    |    2 +-
 .../TableSnapshotInputFormatTestBase.html          |   10 +-
 .../class-use/TestTableMapReduceBase.html          |   10 +-
 .../apache/hadoop/hbase/mapreduce/package-use.html |   18 +-
 .../org/apache/hadoop/hbase/package-tree.html      |   16 +-
 .../org/apache/hadoop/hbase/package-use.html       |   16 +-
 .../hadoop/hbase/procedure/package-tree.html       |    8 +-
 .../hadoop/hbase/procedure2/package-tree.html      |    2 +-
 .../quotas/class-use/SpaceQuotaHelperForTests.html |   34 +-
 .../class-use/MetricsTableWrapperStub.html         |    4 +-
 .../hadoop/hbase/regionserver/package-tree.html    |    4 +-
 .../rest/class-use/HBaseRESTTestingUtility.html    |   36 +-
 .../hbase/rest/client/class-use/RemoteHTable.html  |    4 +-
 .../TestExportSnapshot.RegionPredicate.html        |    4 +-
 .../hbase/test/class-use/MetricsAssertHelper.html  |   22 +-
 .../org/apache/hadoop/hbase/test/package-tree.html |    4 +-
 .../trace/class-use/OpenTelemetryTestRule.html     |    4 +-
 .../hadoop/hbase/util/TestByteBufferUtils.html     |   35 +-
 .../org/apache/hadoop/hbase/util/TestBytes.html    |  118 +-
 .../hbase/util/class-use/LoadTestKVGenerator.html  |    4 +-
 .../class-use/RandomDistribution.DiscreteRNG.html  |    8 +-
 testdevapidocs/overview-tree.html                  |   64 +-
 .../hadoop/hbase/util/TestByteBufferUtils.html     |   55 +-
 .../org/apache/hadoop/hbase/util/TestBytes.html    |   45 +-
 727 files changed, 57769 insertions(+), 48851 deletions(-)

diff --git a/acid-semantics.html b/acid-semantics.html
index 7763b0376ce..585cffb63c3 100644
--- a/acid-semantics.html
+++ b/acid-semantics.html
@@ -464,7 +464,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2023-08-18</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2023-08-20</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index 73d4ccf1c22..7682b424fd9 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,8 +5,8 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 2.0.6, based on Prawn 2.4.0)
 /Producer (Apache HBase Team)
-/ModDate (D:20230818142937+00'00')
-/CreationDate (D:20230818144001+00'00')
+/ModDate (D:20230820143050+00'00')
+/CreationDate (D:20230820144203+00'00')
 >>
 endobj
 2 0 obj
diff --git a/apidocs/deprecated-list.html b/apidocs/deprecated-list.html
index 20732c9ef23..7096e5deebc 100644
--- a/apidocs/deprecated-list.html
+++ b/apidocs/deprecated-list.html
@@ -206,7 +206,7 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedString.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedString.ASCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedFloat32.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedFloat32.ASCENDING</a>
 <div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
 </td>
 </tr>
@@ -216,52 +216,52 @@
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt8.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedInt8.ASCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/RawString.html#ASCENDING">org.apache.hadoop.hbase.types.RawString.ASCENDING</a>
 <div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/RawString.html#ASCENDING">org.apache.hadoop.hbase.types.RawString.ASCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt64.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedInt64.ASCENDING</a>
 <div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedFloat64.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedFloat64.ASCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/RawBytes.html#ASCENDING">org.apache.hadoop.hbase.types.RawBytes.ASCENDING</a>
 <div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/RawBytes.html#ASCENDING">org.apache.hadoop.hbase.types.RawBytes.ASCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt16.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedInt16.ASCENDING</a>
 <div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt32.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedInt32.ASCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt8.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedInt8.ASCENDING</a>
 <div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt64.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedInt64.ASCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt32.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedInt32.ASCENDING</a>
 <div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedFloat32.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedFloat32.ASCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedString.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedString.ASCENDING</a>
 <div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt16.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedInt16.ASCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedFloat64.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedFloat64.ASCENDING</a>
 <div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedNumeric.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedNumeric.ASCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedBlobVar.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedBlobVar.ASCENDING</a>
 <div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedBlobVar.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedBlobVar.ASCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedNumeric.html#ASCENDING">org.apache.hadoop.hbase.types.OrderedNumeric.ASCENDING</a>
 <div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
 </td>
 </tr>
@@ -284,7 +284,7 @@
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedString.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedString.DESCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedFloat32.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedFloat32.DESCENDING</a>
 <div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
 </td>
 </tr>
@@ -294,52 +294,52 @@
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt8.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedInt8.DESCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/RawString.html#DESCENDING">org.apache.hadoop.hbase.types.RawString.DESCENDING</a>
 <div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/RawString.html#DESCENDING">org.apache.hadoop.hbase.types.RawString.DESCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt64.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedInt64.DESCENDING</a>
 <div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedFloat64.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedFloat64.DESCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/RawBytes.html#DESCENDING">org.apache.hadoop.hbase.types.RawBytes.DESCENDING</a>
 <div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/RawBytes.html#DESCENDING">org.apache.hadoop.hbase.types.RawBytes.DESCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt16.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedInt16.DESCENDING</a>
 <div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt32.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedInt32.DESCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt8.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedInt8.DESCENDING</a>
 <div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt64.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedInt64.DESCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt32.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedInt32.DESCENDING</a>
 <div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedFloat32.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedFloat32.DESCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedString.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedString.DESCENDING</a>
 <div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedInt16.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedInt16.DESCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedFloat64.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedFloat64.DESCENDING</a>
 <div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedNumeric.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedNumeric.DESCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedBlobVar.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedBlobVar.DESCENDING</a>
 <div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedBlobVar.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedBlobVar.DESCENDING</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/types/OrderedNumeric.html#DESCENDING">org.apache.hadoop.hbase.types.OrderedNumeric.DESCENDING</a>
 <div class="block"><span class="deprecationComment">since 3.0.0 and will be removed in 4.0.0</span></div>
 </td>
 </tr>
@@ -584,25 +584,25 @@
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/client/Table.html#checkAndMutate-byte:A-byte:A-">org.apache.hadoop.hbase.client.Table.checkAndMutate(byte[], byte[])</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/client/AsyncTable.html#checkAndMutate-byte:A-byte:A-">org.apache.hadoop.hbase.client.AsyncTable.checkAndMutate(byte[], byte[])</a>
 <div class="block"><span class="deprecationComment">Since 3.0.0, will be removed in 4.0.0. For internal test use only, do not use it
              any more.</span></div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/client/AsyncTable.html#checkAndMutate-byte:A-byte:A-">org.apache.hadoop.hbase.client.AsyncTable.checkAndMutate(byte[], byte[])</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/client/Table.html#checkAndMutate-byte:A-byte:A-">org.apache.hadoop.hbase.client.Table.checkAndMutate(byte[], byte[])</a>
 <div class="block"><span class="deprecationComment">Since 3.0.0, will be removed in 4.0.0. For internal test use only, do not use it
              any more.</span></div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/client/Table.html#checkAndMutate-byte:A-org.apache.hadoop.hbase.filter.Filter-">org.apache.hadoop.hbase.client.Table.checkAndMutate(byte[], Filter)</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/client/AsyncTable.html#checkAndMutate-byte:A-org.apache.hadoop.hbase.filter.Filter-">org.apache.hadoop.hbase.client.AsyncTable.checkAndMutate(byte[], Filter)</a>
 <div class="block"><span class="deprecationComment">Since 3.0.0, will be removed in 4.0.0. For internal test use only, do not use it
              any more.</span></div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/client/AsyncTable.html#checkAndMutate-byte:A-org.apache.hadoop.hbase.filter.Filter-">org.apache.hadoop.hbase.client.AsyncTable.checkAndMutate(byte[], Filter)</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/client/Table.html#checkAndMutate-byte:A-org.apache.hadoop.hbase.filter.Filter-">org.apache.hadoop.hbase.client.Table.checkAndMutate(byte[], Filter)</a>
 <div class="block"><span class="deprecationComment">Since 3.0.0, will be removed in 4.0.0. For internal test use only, do not use it
              any more.</span></div>
 </td>
@@ -825,15 +825,15 @@
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/client/AsyncAdminBuilder.html#setRetryPauseForCQTBE-long-java.util.concurrent.TimeUnit-">org.apache.hadoop.hbase.client.AsyncAdminBuilder.setRetryPauseForCQTBE(long, TimeUnit)</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/client/AsyncTableBuilder.html#setRetryPauseForCQTBE-long-java.util.concurrent.TimeUnit-">org.apache.hadoop.hbase.client.AsyncTableBuilder.setRetryPauseForCQTBE(long, TimeUnit)</a>
 <div class="block"><span class="deprecationComment">Since 2.5.0, will be removed in 4.0.0. Please use
-             <a href="org/apache/hadoop/hbase/client/AsyncAdminBuilder.html#setRetryPauseForServerOverloaded-long-java.util.concurrent.TimeUnit-"><code>AsyncAdminBuilder.setRetryPauseForServerOverloaded(long, TimeUnit)</code></a> instead.</span></div>
+             <a href="org/apache/hadoop/hbase/client/AsyncTableBuilder.html#setRetryPauseForServerOverloaded-long-java.util.concurrent.TimeUnit-"><code>AsyncTableBuilder.setRetryPauseForServerOverloaded(long, TimeUnit)</code></a> instead.</span></div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/client/AsyncTableBuilder.html#setRetryPauseForCQTBE-long-java.util.concurrent.TimeUnit-">org.apache.hadoop.hbase.client.AsyncTableBuilder.setRetryPauseForCQTBE(long, TimeUnit)</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/client/AsyncAdminBuilder.html#setRetryPauseForCQTBE-long-java.util.concurrent.TimeUnit-">org.apache.hadoop.hbase.client.AsyncAdminBuilder.setRetryPauseForCQTBE(long, TimeUnit)</a>
 <div class="block"><span class="deprecationComment">Since 2.5.0, will be removed in 4.0.0. Please use
-             <a href="org/apache/hadoop/hbase/client/AsyncTableBuilder.html#setRetryPauseForServerOverloaded-long-java.util.concurrent.TimeUnit-"><code>AsyncTableBuilder.setRetryPauseForServerOverloaded(long, TimeUnit)</code></a> instead.</span></div>
+             <a href="org/apache/hadoop/hbase/client/AsyncAdminBuilder.html#setRetryPauseForServerOverloaded-long-java.util.concurrent.TimeUnit-"><code>AsyncAdminBuilder.setRetryPauseForServerOverloaded(long, TimeUnit)</code></a> instead.</span></div>
 </td>
 </tr>
 <tr class="altColor">
diff --git a/apidocs/org/apache/hadoop/hbase/KeepDeletedCells.html b/apidocs/org/apache/hadoop/hbase/KeepDeletedCells.html
index fe2eaf351d2..268af18c54a 100644
--- a/apidocs/org/apache/hadoop/hbase/KeepDeletedCells.html
+++ b/apidocs/org/apache/hadoop/hbase/KeepDeletedCells.html
@@ -262,7 +262,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase">KeepDeletedCells</a>[]&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/KeepDeletedCells.html#line.48">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase">KeepDeletedCells</a>[]&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/KeepDeletedCells.html#line.39">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -282,7 +282,7 @@ for (KeepDeletedCells c : KeepDeletedCells.values())
 <ul class="blockList">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase">KeepDeletedCells</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/KeepDeletedCells.html#line.48">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase">KeepDeletedCells</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/KeepDeletedCells.html#line.39">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 
diff --git a/apidocs/org/apache/hadoop/hbase/MemoryCompactionPolicy.html b/apidocs/org/apache/hadoop/hbase/MemoryCompactionPolicy.html
index 8fc5ed05808..d5bf09ef3ce 100644
--- a/apidocs/org/apache/hadoop/hbase/MemoryCompactionPolicy.html
+++ b/apidocs/org/apache/hadoop/hbase/MemoryCompactionPolicy.html
@@ -278,7 +278,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase">MemoryCompactionPolicy</a>[]&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/MemoryCompactionPolicy.html#line.45">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase">MemoryCompactionPolicy</a>[]&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/MemoryCompactionPolicy.html#line.38">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -298,7 +298,7 @@ for (MemoryCompactionPolicy c : MemoryCompactionPolicy.values())
 <ul class="blockListLast">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase">MemoryCompactionPolicy</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/MemoryCompactionPolicy.html#line.45">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase">MemoryCompactionPolicy</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/MemoryCompactionPolicy.html#line.38">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 
diff --git a/apidocs/org/apache/hadoop/hbase/class-use/Cell.html b/apidocs/org/apache/hadoop/hbase/class-use/Cell.html
index 6331f1452cd..6cd3bc1b8e1 100644
--- a/apidocs/org/apache/hadoop/hbase/class-use/Cell.html
+++ b/apidocs/org/apache/hadoop/hbase/class-use/Cell.html
@@ -713,17 +713,17 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Delete.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Delete.html#add-org.apache.hadoop.hbase.Cell-">add</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>
-<div class="block">Add an existing delete marker to this Delete object.</div>
-</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a></code></td>
 <td class="colLast"><span class="typeNameLabel">Put.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Put.html#add-org.apache.hadoop.hbase.Cell-">add</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>
 <div class="block">Add the specified KeyValue to this Put operation.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Delete.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Delete.html#add-org.apache.hadoop.hbase.Cell-">add</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>
+<div class="block">Add an existing delete marker to this Delete object.</div>
+</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected int</code></td>
 <td class="colLast"><span class="typeNameLabel">Result.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Result.html#binarySearch-org.apache.hadoop.hbase.Cell:A-byte:A-byte:A-">binarySearch</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>[]&nbsp;kvs,
@@ -853,44 +853,52 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentCell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPrefixFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnPaginationFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPaginationFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ColumnRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnRangeFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentCell)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MultiRowRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/MultiRowRangeFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentKV)</code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ColumnPaginationFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPaginationFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
+</tr>
 <tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FuzzyRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentCell)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
 <td class="colLast"><span class="typeNameLabel">Filter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentCell)</code>
 <div class="block">If the filter returns the match code SEEK_NEXT_USING_HINT, then it should also tell which is
  the next key it must seek to.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TimestampsFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/TimestampsFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentCell)</code>
 <div class="block">Pick the next cell that the scanner should seek to.</div>
 </td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPrefixFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
-</tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MultipleColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnRangeFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">KeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.html#transformCell-org.apache.hadoop.hbase.Cell-">transformCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FuzzyRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentCell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html#transformCell-org.apache.hadoop.hbase.Cell-">transformCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
@@ -898,7 +906,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html#transformCell-org.apache.hadoop.hbase.Cell-">transformCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">WhileMatchFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/WhileMatchFilter.html#transformCell-org.apache.hadoop.hbase.Cell-">transformCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;v)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
@@ -906,14 +914,6 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Give the filter a chance to transform the passed KeyValue.</div>
 </td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">WhileMatchFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/WhileMatchFilter.html#transformCell-org.apache.hadoop.hbase.Cell-">transformCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;v)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">KeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.html#transformCell-org.apache.hadoop.hbase.Cell-">transformCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
-</tr>
 </tbody>
 </table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
@@ -949,31 +949,31 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnCountGetFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnCountGetFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">KeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;ignored)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FirstKeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FirstKeyOnlyFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPrefixFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DependentColumnFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/DependentColumnFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">QualifierFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/QualifierFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SkipFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/SkipFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ColumnRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnRangeFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnValueFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">DependentColumnFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/DependentColumnFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PageFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/PageFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;ignored)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">MultiRowRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/MultiRowRangeFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;ignored)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
@@ -981,33 +981,31 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ValueFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ColumnCountGetFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnCountGetFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RandomRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/RandomRowFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SkipFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/SkipFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/PrefixFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">RandomRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/RandomRowFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnPaginationFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPaginationFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnValueFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MultiRowRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/MultiRowRangeFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;ignored)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ColumnPaginationFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPaginationFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">InclusiveStopFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/InclusiveStopFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ValueFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Filter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>
-<div class="block">A way to filter based on the column family, column qualifier and/or the column value.</div>
-</td>
+<td class="colLast"><span class="typeNameLabel">RowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/RowFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;v)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
@@ -1015,39 +1013,41 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SingleColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">FuzzyRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TimestampsFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/TimestampsFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">InclusiveStopFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/InclusiveStopFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/RowFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;v)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">PrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/PrefixFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPrefixFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">PageFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/PageFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;ignored)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MultipleColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">Filter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>
+<div class="block">A way to filter based on the column family, column qualifier and/or the column value.</div>
+</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnRangeFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">FirstKeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FirstKeyOnlyFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FuzzyRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TimestampsFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/TimestampsFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">QualifierFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/QualifierFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">MultipleColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">KeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;ignored)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SingleColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
@@ -1059,130 +1059,138 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnCountGetFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnCountGetFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">KeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">FirstKeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FirstKeyOnlyFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPrefixFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">SkipFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/SkipFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ColumnRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnRangeFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnValueFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;firstRowCell)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">PageFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/PageFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">MultiRowRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/MultiRowRangeFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;firstRowCell)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;firstRowCell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ColumnCountGetFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnCountGetFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">RandomRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/RandomRowFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;firstRowCell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SkipFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/SkipFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">PrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/PrefixFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;firstRowCell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">RandomRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/RandomRowFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;firstRowCell)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnPaginationFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPaginationFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnValueFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">CompareFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/CompareFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ColumnPaginationFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPaginationFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">MultiRowRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/MultiRowRangeFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;firstRowCell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">RowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/RowFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;firstRowCell)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">InclusiveStopFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/InclusiveStopFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;firstRowCell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">WhileMatchFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/WhileMatchFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>abstract boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">Filter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;firstRowCell)</code>
-<div class="block">Filters a row based on the row key.</div>
-</td>
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">CompareFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/CompareFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">WhileMatchFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/WhileMatchFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">InclusiveStopFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/InclusiveStopFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;firstRowCell)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">SingleColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">PrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/PrefixFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;firstRowCell)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">TimestampsFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/TimestampsFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">PageFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/PageFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">RowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/RowFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;firstRowCell)</code>&nbsp;</td>
+<td class="colFirst"><code>abstract boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">Filter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;firstRowCell)</code>
+<div class="block">Filters a row based on the row key.</div>
+</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPrefixFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">FirstKeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FirstKeyOnlyFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">MultipleColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TimestampsFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/TimestampsFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnRangeFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">MultipleColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">KeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SingleColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueFilter.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentCell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPrefixFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnPaginationFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPaginationFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ColumnRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnRangeFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentCell)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MultiRowRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/MultiRowRangeFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentKV)</code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ColumnPaginationFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPaginationFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
+</tr>
 <tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FuzzyRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentCell)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
 <td class="colLast"><span class="typeNameLabel">Filter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentCell)</code>
 <div class="block">If the filter returns the match code SEEK_NEXT_USING_HINT, then it should also tell which is
  the next key it must seek to.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TimestampsFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/TimestampsFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentCell)</code>
 <div class="block">Pick the next cell that the scanner should seek to.</div>
 </td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPrefixFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
-</tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MultipleColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnRangeFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">KeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.html#transformCell-org.apache.hadoop.hbase.Cell-">transformCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FuzzyRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentCell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html#transformCell-org.apache.hadoop.hbase.Cell-">transformCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
@@ -1190,7 +1198,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html#transformCell-org.apache.hadoop.hbase.Cell-">transformCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">WhileMatchFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/WhileMatchFilter.html#transformCell-org.apache.hadoop.hbase.Cell-">transformCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;v)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
@@ -1198,14 +1206,6 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Give the filter a chance to transform the passed KeyValue.</div>
 </td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">WhileMatchFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/WhileMatchFilter.html#transformCell-org.apache.hadoop.hbase.Cell-">transformCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;v)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
-<td class="colLast"><span class="typeNameLabel">KeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.html#transformCell-org.apache.hadoop.hbase.Cell-">transformCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
-</tr>
 </tbody>
 </table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
@@ -1217,19 +1217,19 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">DependentColumnFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/DependentColumnFilter.html#filterRowCells-java.util.List-">filterRowCells</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hb [...]
+<td class="colLast"><span class="typeNameLabel">SingleColumnValueExcludeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueExcludeFilter.html#filterRowCells-java.util.List-">filterRowCells</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in or [...]
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">DependentColumnFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/DependentColumnFilter.html#filterRowCells-java.util.List-">filterRowCells</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hb [...]
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html#filterRowCells-java.util.List-">filterRowCells</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp [...]
 <div class="block">Filters that never filter by modifying the returned List of Cells can inherit this
  implementation that does nothing.</div>
 </td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">SingleColumnValueExcludeFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueExcludeFilter.html#filterRowCells-java.util.List-">filterRowCells</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in or [...]
-</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><span class="typeNameLabel">Filter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html#filterRowCells-java.util.List-">filterRowCells</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;kvs)</code>
diff --git a/apidocs/org/apache/hadoop/hbase/class-use/CellBuilder.html b/apidocs/org/apache/hadoop/hbase/class-use/CellBuilder.html
index 50a26727a6f..d9e2b5c25dc 100644
--- a/apidocs/org/apache/hadoop/hbase/class-use/CellBuilder.html
+++ b/apidocs/org/apache/hadoop/hbase/class-use/CellBuilder.html
@@ -197,18 +197,18 @@
 <td class="colLast"><span class="typeNameLabel">Increment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Increment.html#getCellBuilder-org.apache.hadoop.hbase.CellBuilderType-">getCellBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a>&nbsp;type)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/CellBuilder.html" title="interface in org.apache.hadoop.hbase">CellBuilder</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Put.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Put.html#getCellBuilder-org.apache.hadoop.hbase.CellBuilderType-">getCellBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a>&nbsp;type)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/CellBuilder.html" title="interface in org.apache.hadoop.hbase">CellBuilder</a></code></td>
 <td class="colLast"><span class="typeNameLabel">Mutation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html#getCellBuilder-org.apache.hadoop.hbase.CellBuilderType-">getCellBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a>&nbsp;cellBuilderType)</code>
 <div class="block">get a CellBuilder instance that already has relevant Type and Row set.</div>
 </td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/CellBuilder.html" title="interface in org.apache.hadoop.hbase">CellBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Delete.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Delete.html#getCellBuilder-org.apache.hadoop.hbase.CellBuilderType-">getCellBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a>&nbsp;type)</code>&nbsp;</td>
-</tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/CellBuilder.html" title="interface in org.apache.hadoop.hbase">CellBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Put.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Put.html#getCellBuilder-org.apache.hadoop.hbase.CellBuilderType-">getCellBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a>&nbsp;type)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">Delete.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Delete.html#getCellBuilder-org.apache.hadoop.hbase.CellBuilderType-">getCellBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a>&nbsp;type)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/CellBuilder.html" title="interface in org.apache.hadoop.hbase">CellBuilder</a></code></td>
diff --git a/apidocs/org/apache/hadoop/hbase/class-use/CellBuilderType.html b/apidocs/org/apache/hadoop/hbase/class-use/CellBuilderType.html
index c983d69f430..cfa0cb6bb24 100644
--- a/apidocs/org/apache/hadoop/hbase/class-use/CellBuilderType.html
+++ b/apidocs/org/apache/hadoop/hbase/class-use/CellBuilderType.html
@@ -159,18 +159,18 @@ the order they are declared.</div>
 <td class="colLast"><span class="typeNameLabel">Increment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Increment.html#getCellBuilder-org.apache.hadoop.hbase.CellBuilderType-">getCellBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a>&nbsp;type)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/CellBuilder.html" title="interface in org.apache.hadoop.hbase">CellBuilder</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Put.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Put.html#getCellBuilder-org.apache.hadoop.hbase.CellBuilderType-">getCellBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a>&nbsp;type)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/CellBuilder.html" title="interface in org.apache.hadoop.hbase">CellBuilder</a></code></td>
 <td class="colLast"><span class="typeNameLabel">Mutation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html#getCellBuilder-org.apache.hadoop.hbase.CellBuilderType-">getCellBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a>&nbsp;cellBuilderType)</code>
 <div class="block">get a CellBuilder instance that already has relevant Type and Row set.</div>
 </td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/CellBuilder.html" title="interface in org.apache.hadoop.hbase">CellBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Delete.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Delete.html#getCellBuilder-org.apache.hadoop.hbase.CellBuilderType-">getCellBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a>&nbsp;type)</code>&nbsp;</td>
-</tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/CellBuilder.html" title="interface in org.apache.hadoop.hbase">CellBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Put.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Put.html#getCellBuilder-org.apache.hadoop.hbase.CellBuilderType-">getCellBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a>&nbsp;type)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">Delete.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Delete.html#getCellBuilder-org.apache.hadoop.hbase.CellBuilderType-">getCellBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a>&nbsp;type)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/CellBuilder.html" title="interface in org.apache.hadoop.hbase">CellBuilder</a></code></td>
diff --git a/apidocs/org/apache/hadoop/hbase/class-use/CellScanner.html b/apidocs/org/apache/hadoop/hbase/class-use/CellScanner.html
index ef82beba380..bbc8198ba6b 100644
--- a/apidocs/org/apache/hadoop/hbase/class-use/CellScanner.html
+++ b/apidocs/org/apache/hadoop/hbase/class-use/CellScanner.html
@@ -176,11 +176,11 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/CellScanner.html" title="interface in org.apache.hadoop.hbase">CellScanner</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Mutation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html#cellScanner--">cellScanner</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">Result.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Result.html#cellScanner--">cellScanner</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/CellScanner.html" title="interface in org.apache.hadoop.hbase">CellScanner</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Result.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Result.html#cellScanner--">cellScanner</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">Mutation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html#cellScanner--">cellScanner</a></span>()</code>&nbsp;</td>
 </tr>
 </tbody>
 </table>
diff --git a/apidocs/org/apache/hadoop/hbase/class-use/ClusterMetrics.html b/apidocs/org/apache/hadoop/hbase/class-use/ClusterMetrics.html
index 85dc87dfad1..711474cd5c1 100644
--- a/apidocs/org/apache/hadoop/hbase/class-use/ClusterMetrics.html
+++ b/apidocs/org/apache/hadoop/hbase/class-use/ClusterMetrics.html
@@ -125,18 +125,18 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#getClusterMetrics--">getClusterMetrics</a></span>()</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
-&nbsp;</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a></code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#getClusterMetrics--">getClusterMetrics</a></span>()</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 <div class="block">Returns a ClusterMetrics for this HBase cluster.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#getClusterMetrics--">getClusterMetrics</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a></code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#getInitialClusterMetrics--">getInitialClusterMetrics</a></span>()</code>
diff --git a/apidocs/org/apache/hadoop/hbase/class-use/ServerName.html b/apidocs/org/apache/hadoop/hbase/class-use/ServerName.html
index f6761966b5e..4d37deb0708 100644
--- a/apidocs/org/apache/hadoop/hbase/class-use/ServerName.html
+++ b/apidocs/org/apache/hadoop/hbase/class-use/ServerName.html
@@ -147,13 +147,6 @@
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#getServerHoldingRegion-org.apache.hadoop.hbase.TableName-byte:A-">getServerHoldingRegion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
-                      byte[]&nbsp;regionName)</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
-&nbsp;</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#getServerHoldingRegion-org.apache.hadoop.hbase.TableName-byte:A-">getServerHoldingRegion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
                       byte[]&nbsp;regionName)</code>
@@ -161,13 +154,20 @@
 <div class="block">Get the ServerName of region server serving the specified region</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#getServerHoldingRegion-org.apache.hadoop.hbase.TableName-byte:A-">getServerHoldingRegion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+                      byte[]&nbsp;regionName)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></code></td>
-<td class="colLast"><span class="typeNameLabel">HRegionLocation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html#getServerName--">getServerName</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ServerMetrics.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ServerMetrics.html#getServerName--">getServerName</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ServerMetrics.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ServerMetrics.html#getServerName--">getServerName</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">HRegionLocation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html#getServerName--">getServerName</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></code></td>
@@ -311,12 +311,6 @@
 &nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#isKilledRS-org.apache.hadoop.hbase.ServerName-">isKilledRS</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
-&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><code>abstract boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#isKilledRS-org.apache.hadoop.hbase.ServerName-">isKilledRS</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
@@ -324,6 +318,12 @@
  it possible to do fault tolerance testing for dead servers in a deterministic way.</div>
 </td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#isKilledRS-org.apache.hadoop.hbase.ServerName-">isKilledRS</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">ServerName.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ServerName.html#isSameAddress-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-">isSameAddress</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;left,
@@ -332,12 +332,6 @@
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#killDataNode-org.apache.hadoop.hbase.ServerName-">killDataNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
-&nbsp;</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#killDataNode-org.apache.hadoop.hbase.ServerName-">killDataNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
@@ -345,13 +339,13 @@
  exit doing basic clean up only.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#killMaster-org.apache.hadoop.hbase.ServerName-">killMaster</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#killDataNode-org.apache.hadoop.hbase.ServerName-">killDataNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 &nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#killMaster-org.apache.hadoop.hbase.ServerName-">killMaster</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
@@ -359,13 +353,13 @@
  exit doing basic clean up only.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#killNameNode-org.apache.hadoop.hbase.ServerName-">killNameNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#killMaster-org.apache.hadoop.hbase.ServerName-">killMaster</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 &nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#killNameNode-org.apache.hadoop.hbase.ServerName-">killNameNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
@@ -373,13 +367,13 @@
  exit doing basic clean up only.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#killRegionServer-org.apache.hadoop.hbase.ServerName-">killRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#killNameNode-org.apache.hadoop.hbase.ServerName-">killNameNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 &nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#killRegionServer-org.apache.hadoop.hbase.ServerName-">killRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
@@ -387,13 +381,13 @@
  region server to exit doing basic clean up only.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#killZkNode-org.apache.hadoop.hbase.ServerName-">killZkNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#killRegionServer-org.apache.hadoop.hbase.ServerName-">killRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 &nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#killZkNode-org.apache.hadoop.hbase.ServerName-">killZkNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
@@ -401,6 +395,12 @@
  master to exit doing basic clean up only.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#killZkNode-org.apache.hadoop.hbase.ServerName-">killZkNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseTestingUtility.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#moveRegionAndWait-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-">moveRegionAndWait</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;destRegion,
@@ -410,25 +410,19 @@
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#resumeRegionServer-org.apache.hadoop.hbase.ServerName-">resumeRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
-&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#resumeRegionServer-org.apache.hadoop.hbase.ServerName-">resumeRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 <div class="block">Resume the region server</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#startDataNode-org.apache.hadoop.hbase.ServerName-">startDataNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#resumeRegionServer-org.apache.hadoop.hbase.ServerName-">resumeRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 &nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#startDataNode-org.apache.hadoop.hbase.ServerName-">startDataNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
@@ -436,13 +430,13 @@
  warning message.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#startNameNode-org.apache.hadoop.hbase.ServerName-">startNameNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#startDataNode-org.apache.hadoop.hbase.ServerName-">startDataNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 &nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#startNameNode-org.apache.hadoop.hbase.ServerName-">startNameNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
@@ -450,65 +444,65 @@
  warning message.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#stopDataNode-org.apache.hadoop.hbase.ServerName-">stopDataNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#startNameNode-org.apache.hadoop.hbase.ServerName-">startNameNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 &nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#stopDataNode-org.apache.hadoop.hbase.ServerName-">stopDataNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 <div class="block">Stops the datanode if this is a distributed cluster, otherwise silently logs warning message.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#stopMaster-org.apache.hadoop.hbase.ServerName-">stopMaster</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#stopDataNode-org.apache.hadoop.hbase.ServerName-">stopDataNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 &nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#stopMaster-org.apache.hadoop.hbase.ServerName-">stopMaster</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 <div class="block">Stops the given master, by attempting a gradual stop.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#stopNameNode-org.apache.hadoop.hbase.ServerName-">stopNameNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#stopMaster-org.apache.hadoop.hbase.ServerName-">stopMaster</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 &nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#stopNameNode-org.apache.hadoop.hbase.ServerName-">stopNameNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 <div class="block">Stops the namenode if this is a distributed cluster, otherwise silently logs warning message.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#stopRegionServer-org.apache.hadoop.hbase.ServerName-">stopRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#stopNameNode-org.apache.hadoop.hbase.ServerName-">stopNameNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 &nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#stopRegionServer-org.apache.hadoop.hbase.ServerName-">stopRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 <div class="block">Stops the given region server, by attempting a gradual stop.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#stopZkNode-org.apache.hadoop.hbase.ServerName-">stopZkNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#stopRegionServer-org.apache.hadoop.hbase.ServerName-">stopRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 &nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#stopZkNode-org.apache.hadoop.hbase.ServerName-">stopZkNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
@@ -516,27 +510,26 @@
  message.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#suspendRegionServer-org.apache.hadoop.hbase.ServerName-">suspendRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#stopZkNode-org.apache.hadoop.hbase.ServerName-">stopZkNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 &nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#suspendRegionServer-org.apache.hadoop.hbase.ServerName-">suspendRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 <div class="block">Suspend the region server</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForDataNodeToStart-org.apache.hadoop.hbase.ServerName-long-">waitForDataNodeToStart</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
-                      long&nbsp;timeout)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#suspendRegionServer-org.apache.hadoop.hbase.ServerName-">suspendRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 &nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#waitForDataNodeToStart-org.apache.hadoop.hbase.ServerName-long-">waitForDataNodeToStart</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                       long&nbsp;timeout)</code>
@@ -544,14 +537,14 @@
 <div class="block">Wait for the specified datanode to join the cluster</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForDataNodeToStop-org.apache.hadoop.hbase.ServerName-long-">waitForDataNodeToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
-                     long&nbsp;timeout)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForDataNodeToStart-org.apache.hadoop.hbase.ServerName-long-">waitForDataNodeToStart</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
+                      long&nbsp;timeout)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 &nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#waitForDataNodeToStop-org.apache.hadoop.hbase.ServerName-long-">waitForDataNodeToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                      long&nbsp;timeout)</code>
@@ -559,14 +552,14 @@
 <div class="block">Wait for the specified datanode to stop the thread / process.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForMasterToStop-org.apache.hadoop.hbase.ServerName-long-">waitForMasterToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
-                   long&nbsp;timeout)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForDataNodeToStop-org.apache.hadoop.hbase.ServerName-long-">waitForDataNodeToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
+                     long&nbsp;timeout)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 &nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#waitForMasterToStop-org.apache.hadoop.hbase.ServerName-long-">waitForMasterToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                    long&nbsp;timeout)</code>
@@ -574,14 +567,14 @@
 <div class="block">Wait for the specified master to stop the thread / process.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForNameNodeToStart-org.apache.hadoop.hbase.ServerName-long-">waitForNameNodeToStart</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
-                      long&nbsp;timeout)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForMasterToStop-org.apache.hadoop.hbase.ServerName-long-">waitForMasterToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
+                   long&nbsp;timeout)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 &nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#waitForNameNodeToStart-org.apache.hadoop.hbase.ServerName-long-">waitForNameNodeToStart</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                       long&nbsp;timeout)</code>
@@ -589,14 +582,14 @@
 <div class="block">Wait for the specified namenode to join the cluster</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForNameNodeToStop-org.apache.hadoop.hbase.ServerName-long-">waitForNameNodeToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
-                     long&nbsp;timeout)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForNameNodeToStart-org.apache.hadoop.hbase.ServerName-long-">waitForNameNodeToStart</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
+                      long&nbsp;timeout)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 &nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#waitForNameNodeToStop-org.apache.hadoop.hbase.ServerName-long-">waitForNameNodeToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                      long&nbsp;timeout)</code>
@@ -604,14 +597,14 @@
 <div class="block">Wait for the specified namenode to stop</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForRegionServerToStop-org.apache.hadoop.hbase.ServerName-long-">waitForRegionServerToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
-                         long&nbsp;timeout)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForNameNodeToStop-org.apache.hadoop.hbase.ServerName-long-">waitForNameNodeToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
+                     long&nbsp;timeout)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 &nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#waitForRegionServerToStop-org.apache.hadoop.hbase.ServerName-long-">waitForRegionServerToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                          long&nbsp;timeout)</code>
@@ -619,14 +612,14 @@
 <div class="block">Wait for the specified region server to stop the thread / process.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForZkNodeToStart-org.apache.hadoop.hbase.ServerName-long-">waitForZkNodeToStart</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
-                    long&nbsp;timeout)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForRegionServerToStop-org.apache.hadoop.hbase.ServerName-long-">waitForRegionServerToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
+                         long&nbsp;timeout)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 &nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#waitForZkNodeToStart-org.apache.hadoop.hbase.ServerName-long-">waitForZkNodeToStart</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                     long&nbsp;timeout)</code>
@@ -634,14 +627,14 @@
 <div class="block">Wait for the specified zookeeper node to join the cluster</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForZkNodeToStop-org.apache.hadoop.hbase.ServerName-long-">waitForZkNodeToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
-                   long&nbsp;timeout)</code>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForZkNodeToStart-org.apache.hadoop.hbase.ServerName-long-">waitForZkNodeToStart</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
+                    long&nbsp;timeout)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 &nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#waitForZkNodeToStop-org.apache.hadoop.hbase.ServerName-long-">waitForZkNodeToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                    long&nbsp;timeout)</code>
@@ -649,6 +642,13 @@
 <div class="block">Wait for the specified zookeeper node to stop the thread / process.</div>
 </td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#waitForZkNodeToStop-org.apache.hadoop.hbase.ServerName-long-">waitForZkNodeToStop</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
+                   long&nbsp;timeout)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
 </tbody>
 </table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
diff --git a/apidocs/org/apache/hadoop/hbase/class-use/TableName.html b/apidocs/org/apache/hadoop/hbase/class-use/TableName.html
index e67167823c6..237a97cd9ee 100644
--- a/apidocs/org/apache/hadoop/hbase/class-use/TableName.html
+++ b/apidocs/org/apache/hadoop/hbase/class-use/TableName.html
@@ -253,18 +253,18 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#compact-org.apache.hadoop.hbase.TableName-boolean-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<td class="colLast"><span class="typeNameLabel">HBaseTestingUtility.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#compact-org.apache.hadoop.hbase.TableName-boolean-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
        boolean&nbsp;major)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
-<div class="block">Call flushCache on all regions of the specified table.</div>
+<div class="block">Compact all of a table's reagion in the mini hbase cluster</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">HBaseTestingUtility.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#compact-org.apache.hadoop.hbase.TableName-boolean-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#compact-org.apache.hadoop.hbase.TableName-boolean-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
        boolean&nbsp;major)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
-<div class="block">Compact all of a table's reagion in the mini hbase cluster</div>
+<div class="block">Call flushCache on all regions of the specified table.</div>
 </td>
 </tr>
 <tr class="altColor">
@@ -684,13 +684,6 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#getServerHoldingRegion-org.apache.hadoop.hbase.TableName-byte:A-">getServerHoldingRegion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
-                      byte[]&nbsp;regionName)</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
-&nbsp;</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html#getServerHoldingRegion-org.apache.hadoop.hbase.TableName-byte:A-">getServerHoldingRegion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
                       byte[]&nbsp;regionName)</code>
@@ -698,6 +691,13 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Get the ServerName of region server serving the specified region</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MiniHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html#getServerHoldingRegion-org.apache.hadoop.hbase.TableName-byte:A-">getServerHoldingRegion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+                      byte[]&nbsp;regionName)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.regionserver.HRegion</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseTestingUtility.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#getSplittableRegion-org.apache.hadoop.hbase.TableName-int-">getSplittableRegion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -849,38 +849,38 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Table.html#getName--">getName</a></span>()</code>
-<div class="block">Gets the fully qualified table name instance of this table.</div>
+<td class="colLast"><span class="typeNameLabel">BufferedMutator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/BufferedMutator.html#getName--">getName</a></span>()</code>
+<div class="block">Gets the fully qualified table name instance of the table that this BufferedMutator writes to.</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTableRegionLocator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncTableRegionLocator.html#getName--">getName</a></span>()</code>
-<div class="block">Gets the fully qualified table name instance of the table whose region we want to locate.</div>
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#getName--">getName</a></span>()</code>
+<div class="block">Gets the fully qualified table name instance of this table.</div>
 </td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
-<td class="colLast"><span class="typeNameLabel">BufferedMutator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/BufferedMutator.html#getName--">getName</a></span>()</code>
-<div class="block">Gets the fully qualified table name instance of the table that this BufferedMutator writes to.</div>
+<td class="colLast"><span class="typeNameLabel">AsyncBufferedMutator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncBufferedMutator.html#getName--">getName</a></span>()</code>
+<div class="block">Gets the fully qualified table name instance of the table that this
+ <code>AsyncBufferedMutator</code> writes to.</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RegionLocator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/RegionLocator.html#getName--">getName</a></span>()</code>
-<div class="block">Gets the fully qualified table name instance of this table.</div>
+<td class="colLast"><span class="typeNameLabel">AsyncTableRegionLocator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncTableRegionLocator.html#getName--">getName</a></span>()</code>
+<div class="block">Gets the fully qualified table name instance of the table whose region we want to locate.</div>
 </td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncBufferedMutator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncBufferedMutator.html#getName--">getName</a></span>()</code>
-<div class="block">Gets the fully qualified table name instance of the table that this
- <code>AsyncBufferedMutator</code> writes to.</div>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Table.html#getName--">getName</a></span>()</code>
+<div class="block">Gets the fully qualified table name instance of this table.</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#getName--">getName</a></span>()</code>
+<td class="colLast"><span class="typeNameLabel">RegionLocator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/RegionLocator.html#getName--">getName</a></span>()</code>
 <div class="block">Gets the fully qualified table name instance of this table.</div>
 </td>
 </tr>
@@ -898,7 +898,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
-<td class="colLast"><span class="typeNameLabel">BufferedMutatorParams.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/BufferedMutatorParams.html#getTableName--">getTableName</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SnapshotDescription.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html#getTableName--">getTableName</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
@@ -908,7 +908,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SnapshotDescription.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html#getTableName--">getTableName</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">BufferedMutatorParams.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/BufferedMutatorParams.html#getTableName--">getTableName</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>[]</code></td>
diff --git a/apidocs/org/apache/hadoop/hbase/client/CompactType.html b/apidocs/org/apache/hadoop/hbase/client/CompactType.html
index 299b8e58542..bb3bad4856a 100644
--- a/apidocs/org/apache/hadoop/hbase/client/CompactType.html
+++ b/apidocs/org/apache/hadoop/hbase/client/CompactType.html
@@ -235,7 +235,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client">CompactType</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CompactType.html#line.24">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client">CompactType</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CompactType.html#line.32">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -255,7 +255,7 @@ for (CompactType c : CompactType.values())
 <ul class="blockListLast">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client">CompactType</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CompactType.html#line.24">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client">CompactType</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CompactType.html#line.32">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 
diff --git a/apidocs/org/apache/hadoop/hbase/client/CompactionState.html b/apidocs/org/apache/hadoop/hbase/client/CompactionState.html
index 31ed9364fdb..bf76b4767fc 100644
--- a/apidocs/org/apache/hadoop/hbase/client/CompactionState.html
+++ b/apidocs/org/apache/hadoop/hbase/client/CompactionState.html
@@ -258,7 +258,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client">CompactionState</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CompactionState.html#line.26">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client">CompactionState</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CompactionState.html#line.31">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -278,7 +278,7 @@ for (CompactionState c : CompactionState.values())
 <ul class="blockListLast">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client">CompactionState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CompactionState.html#line.26">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client">CompactionState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CompactionState.html#line.31">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 
diff --git a/apidocs/org/apache/hadoop/hbase/client/Consistency.html b/apidocs/org/apache/hadoop/hbase/client/Consistency.html
index c8334b2a7bf..ab4496b44b8 100644
--- a/apidocs/org/apache/hadoop/hbase/client/Consistency.html
+++ b/apidocs/org/apache/hadoop/hbase/client/Consistency.html
@@ -247,7 +247,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client">Consistency</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Consistency.html#line.43">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client">Consistency</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Consistency.html#line.35">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -267,7 +267,7 @@ for (Consistency c : Consistency.values())
 <ul class="blockListLast">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client">Consistency</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Consistency.html#line.43">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client">Consistency</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Consistency.html#line.35">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 
diff --git a/apidocs/org/apache/hadoop/hbase/client/Durability.html b/apidocs/org/apache/hadoop/hbase/client/Durability.html
index 2c8d369e958..5e246663189 100644
--- a/apidocs/org/apache/hadoop/hbase/client/Durability.html
+++ b/apidocs/org/apache/hadoop/hbase/client/Durability.html
@@ -292,7 +292,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Durability.html#line.55">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Durability.html#line.23">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -312,7 +312,7 @@ for (Durability c : Durability.values())
 <ul class="blockListLast">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Durability.html#line.55">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Durability.html#line.23">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 
diff --git a/apidocs/org/apache/hadoop/hbase/client/IsolationLevel.html b/apidocs/org/apache/hadoop/hbase/client/IsolationLevel.html
index 40a856983f0..19a2505cb3b 100644
--- a/apidocs/org/apache/hadoop/hbase/client/IsolationLevel.html
+++ b/apidocs/org/apache/hadoop/hbase/client/IsolationLevel.html
@@ -254,7 +254,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/IsolationLevel.html#line.50">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/IsolationLevel.html#line.36">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -274,7 +274,7 @@ for (IsolationLevel c : IsolationLevel.values())
 <ul class="blockList">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/IsolationLevel.html#line.50">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/IsolationLevel.html#line.36">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 
diff --git a/apidocs/org/apache/hadoop/hbase/client/Scan.ReadType.html b/apidocs/org/apache/hadoop/hbase/client/Scan.ReadType.html
index eb49eda6933..a20b76b7bab 100644
--- a/apidocs/org/apache/hadoop/hbase/client/Scan.ReadType.html
+++ b/apidocs/org/apache/hadoop/hbase/client/Scan.ReadType.html
@@ -249,7 +249,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html#line.29">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html#line.34">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -269,7 +269,7 @@ for (Scan.ReadType c : Scan.ReadType.values())
 <ul class="blockListLast">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html#line.29">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Scan.ReadType.html#line.34">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 
diff --git a/apidocs/org/apache/hadoop/hbase/client/SnapshotType.html b/apidocs/org/apache/hadoop/hbase/client/SnapshotType.html
index 8cb48b21b0e..25b8d52c323 100644
--- a/apidocs/org/apache/hadoop/hbase/client/SnapshotType.html
+++ b/apidocs/org/apache/hadoop/hbase/client/SnapshotType.html
@@ -246,7 +246,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client">SnapshotType</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotType.html#line.27">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client">SnapshotType</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotType.html#line.30">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -266,7 +266,7 @@ for (SnapshotType c : SnapshotType.values())
 <ul class="blockListLast">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client">SnapshotType</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotType.html#line.27">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client">SnapshotType</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/SnapshotType.html#line.30">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/Append.html b/apidocs/org/apache/hadoop/hbase/client/class-use/Append.html
index bbf70400f75..1f729ef4ebf 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/Append.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/Append.html
@@ -183,14 +183,14 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#append-org.apache.hadoop.hbase.client.Append-">append</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Append.html" title="class in org.apache.hadoop.hbase.client">Append</a>&nbsp;append)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#append-org.apache.hadoop.hbase.client.Append-">append</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Append.html" title="class in org.apache.hadoop.hbase.client">Append</a>&nbsp;append)</code>
 <div class="block">Appends values to one or more columns within a single row.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#append-org.apache.hadoop.hbase.client.Append-">append</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Append.html" title="class in org.apache.hadoop.hbase.client">Append</a>&nbsp;append)</code>
+<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#append-org.apache.hadoop.hbase.client.Append-">append</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Append.html" title="class in org.apache.hadoop.hbase.client">Append</a>&nbsp;append)</code>
 <div class="block">Appends values to one or more columns within a single row.</div>
 </td>
 </tr>
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/CheckAndMutate.html b/apidocs/org/apache/hadoop/hbase/client/class-use/CheckAndMutate.html
index 8a3d307527c..dd718b8d6dc 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/CheckAndMutate.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/CheckAndMutate.html
@@ -144,14 +144,14 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutateResult.html" title="class in org.apache.hadoop.hbase.client">CheckAndMutateResult</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#checkAndMutate-org.apache.hadoop.hbase.client.CheckAndMutate-">checkAndMutate</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html" title="class in org.apache.hadoop.hbase.client">CheckAndMutate</a>&nbsp;checkAndMutate)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutateResult.html" title="class in org.apache.hadoop.hbase.client">CheckAndMutateResult</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#checkAndMutate-org.apache.hadoop.hbase.client.CheckAndMutate-">checkAndMutate</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html" title="class in org.apache.hadoop.hbase.client">CheckAndMutate</a>&nbsp;checkAndMutate)</code>
 <div class="block">checkAndMutate that atomically checks if a row matches the specified condition.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutateResult.html" title="class in org.apache.hadoop.hbase.client">CheckAndMutateResult</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#checkAndMutate-org.apache.hadoop.hbase.client.CheckAndMutate-">checkAndMutate</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html" title="class in org.apache.hadoop.hbase.client">CheckAndMutate</a>&nbsp;checkAndMutate)</code>
+<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutateResult.html" title="class in org.apache.hadoop.hbase.client">CheckAndMutateResult</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#checkAndMutate-org.apache.hadoop.hbase.client.CheckAndMutate-">checkAndMutate</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html" title="class in org.apache.hadoop.hbase.client">CheckAndMutate</a>&nbsp;checkAndMutate)</code>
 <div class="block">checkAndMutate that atomically checks if a row matches the specified condition.</div>
 </td>
 </tr>
@@ -165,14 +165,14 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutateResult.html" title="class in org.apache.hadoop.hbase.client">CheckAndMutateResult</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#checkAndMutate-java.util.List-">checkAndMutate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html" title="class in org.apache.hadoop.hbase.client">C [...]
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutateResult.html" title="class in org.apache.hadoop.hbase.client">Ch [...]
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#checkAndMutate-java.util.List-">checkAndMutate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html" title="class in org.apache.hadoop.hbase [...]
 <div class="block">Batch version of checkAndMutate.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutateResult.html" title="class in org.apache.hadoop.hbase.client">Ch [...]
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#checkAndMutate-java.util.List-">checkAndMutate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html" title="class in org.apache.hadoop.hbase [...]
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutateResult.html" title="class in org.apache.hadoop.hbase.client">CheckAndMutateResult</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#checkAndMutate-java.util.List-">checkAndMutate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html" title="class in org.apache.hadoop.hbase.client">C [...]
 <div class="block">Batch version of checkAndMutate.</div>
 </td>
 </tr>
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/CheckAndMutateResult.html b/apidocs/org/apache/hadoop/hbase/client/class-use/CheckAndMutateResult.html
index e33e8ae3478..a746f96c021 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/CheckAndMutateResult.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/CheckAndMutateResult.html
@@ -126,14 +126,14 @@
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutateResult.html" title="class in org.apache.hadoop.hbase.client">CheckAndMutateResult</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#checkAndMutate-java.util.List-">checkAndMutate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html" title="class in org.apache.hadoop.hbase.client">C [...]
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutateResult.html" title="class in org.apache.hadoop.hbase.client">Ch [...]
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#checkAndMutate-java.util.List-">checkAndMutate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html" title="class in org.apache.hadoop.hbase [...]
 <div class="block">Batch version of checkAndMutate.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutateResult.html" title="class in org.apache.hadoop.hbase.client">Ch [...]
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#checkAndMutate-java.util.List-">checkAndMutate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html" title="class in org.apache.hadoop.hbase [...]
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutateResult.html" title="class in org.apache.hadoop.hbase.client">CheckAndMutateResult</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#checkAndMutate-java.util.List-">checkAndMutate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html" title="class in org.apache.hadoop.hbase.client">C [...]
 <div class="block">Batch version of checkAndMutate.</div>
 </td>
 </tr>
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/Consistency.html b/apidocs/org/apache/hadoop/hbase/client/class-use/Consistency.html
index f01fdc3702c..58037005f7f 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/Consistency.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/Consistency.html
@@ -146,13 +146,13 @@ the order they are declared.</div>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Scan.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html#setConsistency-org.apache.hadoop.hbase.client.Consistency-">setConsistency</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client">Consistency</a>&nbsp;consistency)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a></code></td>
 <td class="colLast"><span class="typeNameLabel">Get.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Get.html#setConsistency-org.apache.hadoop.hbase.client.Consistency-">setConsistency</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client">Consistency</a>&nbsp;consistency)</code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Scan.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html#setConsistency-org.apache.hadoop.hbase.client.Consistency-">setConsistency</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client">Consistency</a>&nbsp;consistency)</code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Query.html" title="class in org.apache.hadoop.hbase.client">Query</a></code></td>
 <td class="colLast"><span class="typeNameLabel">Query.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Query.html#setConsistency-org.apache.hadoop.hbase.client.Consistency-">setConsistency</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client">Consistency</a>&nbsp;consistency)</code>
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/Delete.html b/apidocs/org/apache/hadoop/hbase/client/class-use/Delete.html
index abbc3230990..d2cc303bdf3 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/Delete.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/Delete.html
@@ -220,14 +220,14 @@
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>default void</code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#delete-org.apache.hadoop.hbase.client.Delete-">delete</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a>&nbsp;delete)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#delete-org.apache.hadoop.hbase.client.Delete-">delete</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a>&nbsp;delete)</code>
 <div class="block">Deletes the specified cells/row.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#delete-org.apache.hadoop.hbase.client.Delete-">delete</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a>&nbsp;delete)</code>
+<td class="colFirst"><code>default void</code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#delete-org.apache.hadoop.hbase.client.Delete-">delete</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a>&nbsp;delete)</code>
 <div class="block">Deletes the specified cells/row.</div>
 </td>
 </tr>
@@ -241,17 +241,17 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>default void</code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#delete-java.util.List-">delete</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a>&gt;&nbsp;delet [...]
-<div class="block">Batch Deletes the specified cells/rows from the table.</div>
-</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</ [...]
 <td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#delete-java.util.List-">delete</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a>&gt;& [...]
 <div class="block">Deletes the specified cells/rows in bulk.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>default void</code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#delete-java.util.List-">delete</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a>&gt;&nbsp;delet [...]
+<div class="block">Batch Deletes the specified cells/rows from the table.</div>
+</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#deleteAll-java.util.List-">deleteAll</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a [...]
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/Durability.html b/apidocs/org/apache/hadoop/hbase/client/class-use/Durability.html
index b02f89e5743..6c651a839b8 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/Durability.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/Durability.html
@@ -194,14 +194,14 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html#getDurability--">getDurability</a></span>()</code>
-<div class="block">Returns the durability setting for the table.</div>
+<td class="colLast"><span class="typeNameLabel">Mutation.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html#getDurability--">getDurability</a></span>()</code>
+<div class="block">Get the current durability</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Mutation.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html#getDurability--">getDurability</a></span>()</code>
-<div class="block">Get the current durability</div>
+<td class="colLast"><span class="typeNameLabel">TableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html#getDurability--">getDurability</a></span>()</code>
+<div class="block">Returns the durability setting for the table.</div>
 </td>
 </tr>
 <tr class="altColor">
@@ -227,8 +227,8 @@ the order they are declared.</div>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>default long</code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#incrementColumnValue-byte:A-byte:A-byte:A-long-org.apache.hadoop.hbase.client.Durability-">incrementColumnValue</a></span>(byte[]&nbsp;row,
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#incrementColumnValue-byte:A-byte:A-byte:A-long-org.apache.hadoop.hbase.client.Durability-">incrementColumnValue</a></span>(byte[]&nbsp;row,
                     byte[]&nbsp;family,
                     byte[]&nbsp;qualifier,
                     long&nbsp;amount,
@@ -237,8 +237,8 @@ the order they are declared.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#incrementColumnValue-byte:A-byte:A-byte:A-long-org.apache.hadoop.hbase.client.Durability-">incrementColumnValue</a></span>(byte[]&nbsp;row,
+<td class="colFirst"><code>default long</code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#incrementColumnValue-byte:A-byte:A-byte:A-long-org.apache.hadoop.hbase.client.Durability-">incrementColumnValue</a></span>(byte[]&nbsp;row,
                     byte[]&nbsp;family,
                     byte[]&nbsp;qualifier,
                     long&nbsp;amount,
@@ -255,6 +255,14 @@ the order they are declared.</div>
 <td class="colLast"><span class="typeNameLabel">Increment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Increment.html#setDurability-org.apache.hadoop.hbase.client.Durability-">setDurability</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;d)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorBuilder</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TableDescriptorBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html#setDurability-org.apache.hadoop.hbase.client.Durability-">setDurability</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;durability)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Put.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Put.html#setDurability-org.apache.hadoop.hbase.client.Durability-">setDurability</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;d)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a></code></td>
 <td class="colLast"><span class="typeNameLabel">Mutation.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html#setDurability-org.apache.hadoop.hbase.client.Durability-">setDurability</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;d)</code>
 <div class="block">Set the durability for this mutation</div>
@@ -264,14 +272,6 @@ the order they are declared.</div>
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a></code></td>
 <td class="colLast"><span class="typeNameLabel">Delete.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Delete.html#setDurability-org.apache.hadoop.hbase.client.Durability-">setDurability</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;d)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TableDescriptorBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html#setDurability-org.apache.hadoop.hbase.client.Durability-">setDurability</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;durability)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Put.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Put.html#setDurability-org.apache.hadoop.hbase.client.Durability-">setDurability</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;d)</code>&nbsp;</td>
-</tr>
 </tbody>
 </table>
 </li>
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/Get.html b/apidocs/org/apache/hadoop/hbase/client/class-use/Get.html
index 35ac0c5155f..1c41d2a3d09 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/Get.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/Get.html
@@ -252,26 +252,26 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>default boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#exists-org.apache.hadoop.hbase.client.Get-">exists</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get)</code>
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#exists-org.apache.hadoop.hbase.client.Get-">exists</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get)</code>
 <div class="block">Test for the existence of columns in the table, as specified by the Get.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#exists-org.apache.hadoop.hbase.client.Get-">exists</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get)</code>
+<td class="colFirst"><code>default boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#exists-org.apache.hadoop.hbase.client.Get-">exists</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get)</code>
 <div class="block">Test for the existence of columns in the table, as specified by the Get.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#get-org.apache.hadoop.hbase.client.Get-">get</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#get-org.apache.hadoop.hbase.client.Get-">get</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get)</code>
 <div class="block">Extracts certain cells from a given row.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#get-org.apache.hadoop.hbase.client.Get-">get</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get)</code>
+<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#get-org.apache.hadoop.hbase.client.Get-">get</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get)</code>
 <div class="block">Extracts certain cells from a given row.</div>
 </td>
 </tr>
@@ -285,14 +285,14 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>default boolean[]</code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#exists-java.util.List-">exists</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&gt;&nbsp;gets)</code>
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.l [...]
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#exists-java.util.List-">exists</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&gt;&nbsp;g [...]
 <div class="block">Test for the existence of columns in the table, as specified by the Gets.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.l [...]
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#exists-java.util.List-">exists</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&gt;&nbsp;g [...]
+<td class="colFirst"><code>default boolean[]</code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#exists-java.util.List-">exists</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&gt;&nbsp;gets)</code>
 <div class="block">Test for the existence of columns in the table, as specified by the Gets.</div>
 </td>
 </tr>
@@ -303,17 +303,17 @@
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[]</code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#get-java.util.List-">get</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&gt;&nbsp;gets)</code>
-<div class="block">Extracts specified cells from the given rows, as a batch.</div>
-</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&gt;&g [...]
 <td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#get-java.util.List-">get</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&gt;&nbsp;gets)</code>
 <div class="block">Extracts certain cells from the given rows, in batch.</div>
 </td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#get-java.util.List-">get</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&gt;&nbsp;gets)</code>
+<div class="block">Extracts specified cells from the given rows, as a batch.</div>
+</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</ [...]
 <td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#getAll-java.util.List-">getAll</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&gt;&nbsp;g [...]
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/Increment.html b/apidocs/org/apache/hadoop/hbase/client/class-use/Increment.html
index b4c439b99dd..4a7b22df463 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/Increment.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/Increment.html
@@ -188,14 +188,14 @@
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#increment-org.apache.hadoop.hbase.client.Increment-">increment</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Increment.html" title="class in org.apache.hadoop.hbase.client">Increment</a>&nbsp;increment)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#increment-org.apache.hadoop.hbase.client.Increment-">increment</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Increment.html" title="class in org.apache.hadoop.hbase.client">Increment</a>&nbsp;increment)</code>
 <div class="block">Increments one or more columns within a single row.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#increment-org.apache.hadoop.hbase.client.Increment-">increment</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Increment.html" title="class in org.apache.hadoop.hbase.client">Increment</a>&nbsp;increment)</code>
+<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#increment-org.apache.hadoop.hbase.client.Increment-">increment</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Increment.html" title="class in org.apache.hadoop.hbase.client">Increment</a>&nbsp;increment)</code>
 <div class="block">Increments one or more columns within a single row.</div>
 </td>
 </tr>
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/IsolationLevel.html b/apidocs/org/apache/hadoop/hbase/client/class-use/IsolationLevel.html
index 883ea43b33f..96519d69e83 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/IsolationLevel.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/IsolationLevel.html
@@ -141,13 +141,13 @@ the order they are declared.</div>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Scan.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html#setIsolationLevel-org.apache.hadoop.hbase.client.IsolationLevel-">setIsolationLevel</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a>&nbsp;level)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a></code></td>
 <td class="colLast"><span class="typeNameLabel">Get.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Get.html#setIsolationLevel-org.apache.hadoop.hbase.client.IsolationLevel-">setIsolationLevel</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a>&nbsp;level)</code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Scan.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html#setIsolationLevel-org.apache.hadoop.hbase.client.IsolationLevel-">setIsolationLevel</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a>&nbsp;level)</code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Query.html" title="class in org.apache.hadoop.hbase.client">Query</a></code></td>
 <td class="colLast"><span class="typeNameLabel">Query.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Query.html#setIsolationLevel-org.apache.hadoop.hbase.client.IsolationLevel-">setIsolationLevel</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a>&nbsp;level)</code>
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/Mutation.html b/apidocs/org/apache/hadoop/hbase/client/class-use/Mutation.html
index a6c01b29b46..7ee7c453f82 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/Mutation.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/Mutation.html
@@ -296,15 +296,15 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <td class="colLast"><span class="typeNameLabel">MutationSerialization.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/MutationSerialization.html#getDeserializer-java.lang.Class-">getDeserializer</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in [...]
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>org.apache.hadoop.mapreduce.RecordWriter&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">MultiTableOutputFormat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/MultiTableOutputFormat.html#getRecordWriter-org.apache.hadoop.mapreduce.TaskAttemptContext-">getRecordWriter</a></span>(org.apache.hadoop.mapreduce.TaskAttemptContext&nbsp;context)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.mapreduce.RecordWriter&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/TableOutputFormat.html" title="type parameter in TableOutputFormat">KEY</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">TableOutputFormat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/TableOutputFormat.html#getRecordWriter-org.apache.hadoop.mapreduce.TaskAttemptContext-">getRecordWriter</a></span>(org.apache.hadoop.mapreduce.TaskAttemptContext&nbsp;context)</code>
 <div class="block">Creates a new record writer.</div>
 </td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code>org.apache.hadoop.mapreduce.RecordWriter&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">MultiTableOutputFormat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/MultiTableOutputFormat.html#getRecordWriter-org.apache.hadoop.mapreduce.TaskAttemptContext-">getRecordWriter</a></span>(org.apache.hadoop.mapreduce.TaskAttemptContext&nbsp;context)</code>&nbsp;</td>
-</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.io.serializer.Serializer&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">MutationSerialization.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/MutationSerialization.html#getSerializer-java.lang.Class-">getSerializer</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org [...]
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/Put.html b/apidocs/org/apache/hadoop/hbase/client/class-use/Put.html
index 4229ba17bfe..9031b1cdbee 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/Put.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/Put.html
@@ -210,17 +210,17 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>default void</code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#put-org.apache.hadoop.hbase.client.Put-">put</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;put)</code>
-<div class="block">Puts some data in the table.</div>
-</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#put-org.apache.hadoop.hbase.client.Put-">put</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;put)</code>
 <div class="block">Puts some data to the table.</div>
 </td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>default void</code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#put-org.apache.hadoop.hbase.client.Put-">put</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;put)</code>
+<div class="block">Puts some data in the table.</div>
+</td>
+</tr>
 </tbody>
 </table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
@@ -231,17 +231,17 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>default void</code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#put-java.util.List-">put</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&gt;&nbsp;puts)</code>
-<div class="block">Batch puts the specified data into the table.</div>
-</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</ [...]
 <td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#put-java.util.List-">put</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&gt;&nbsp;puts)</code>
 <div class="block">Puts some data in the table, in batch.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>default void</code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#put-java.util.List-">put</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&gt;&nbsp;puts)</code>
+<div class="block">Batch puts the specified data into the table.</div>
+</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#putAll-java.util.List-">putAll</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&gt;&nbsp;p [...]
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/Result.html b/apidocs/org/apache/hadoop/hbase/client/class-use/Result.html
index 5d23e6ac98f..1b60a2e5e51 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/Result.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/Result.html
@@ -422,13 +422,13 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.mapred.RecordReader&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">MultiTableSnapshotInputFormat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/MultiTableSnapshotInputFormat.html#getRecordReader-org.apache.hadoop.mapred.InputSplit-org.apache.hadoop.mapred.JobConf-org.apache.hadoop.mapred.Reporter-">getRecordReader</a></span>(org.apache.hadoop.mapred.InputSplit&nbsp;split,
+<td class="colLast"><span class="typeNameLabel">TableSnapshotInputFormat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/TableSnapshotInputFormat.html#getRecordReader-org.apache.hadoop.mapred.InputSplit-org.apache.hadoop.mapred.JobConf-org.apache.hadoop.mapred.Reporter-">getRecordReader</a></span>(org.apache.hadoop.mapred.InputSplit&nbsp;split,
                org.apache.hadoop.mapred.JobConf&nbsp;job,
                org.apache.hadoop.mapred.Reporter&nbsp;reporter)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.mapred.RecordReader&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">TableSnapshotInputFormat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/TableSnapshotInputFormat.html#getRecordReader-org.apache.hadoop.mapred.InputSplit-org.apache.hadoop.mapred.JobConf-org.apache.hadoop.mapred.Reporter-">getRecordReader</a></span>(org.apache.hadoop.mapred.InputSplit&nbsp;split,
+<td class="colLast"><span class="typeNameLabel">MultiTableSnapshotInputFormat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/MultiTableSnapshotInputFormat.html#getRecordReader-org.apache.hadoop.mapred.InputSplit-org.apache.hadoop.mapred.JobConf-org.apache.hadoop.mapred.Reporter-">getRecordReader</a></span>(org.apache.hadoop.mapred.InputSplit&nbsp;split,
                org.apache.hadoop.mapred.JobConf&nbsp;job,
                org.apache.hadoop.mapred.Reporter&nbsp;reporter)</code>&nbsp;</td>
 </tr>
@@ -457,20 +457,20 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">IdentityTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/IdentityTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
+<td class="colLast"><span class="typeNameLabel">GroupingTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/GroupingTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
    <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;value,
    org.apache.hadoop.mapred.OutputCollector&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&gt;&nbsp;output,
    org.apache.hadoop.mapred.Reporter&nbsp;reporter)</code>
-<div class="block">Pass the key, value to reduce</div>
+<div class="block">Extract the grouping columns from value to construct a new key.</div>
 </td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">GroupingTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/GroupingTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
+<td class="colLast"><span class="typeNameLabel">IdentityTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/IdentityTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
    <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;value,
    org.apache.hadoop.mapred.OutputCollector&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&gt;&nbsp;output,
    org.apache.hadoop.mapred.Reporter&nbsp;reporter)</code>
-<div class="block">Extract the grouping columns from value to construct a new key.</div>
+<div class="block">Pass the key, value to reduce</div>
 </td>
 </tr>
 <tr class="rowColor">
@@ -494,20 +494,20 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">IdentityTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/IdentityTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
+<td class="colLast"><span class="typeNameLabel">GroupingTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/GroupingTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
    <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;value,
    org.apache.hadoop.mapred.OutputCollector&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&gt;&nbsp;output,
    org.apache.hadoop.mapred.Reporter&nbsp;reporter)</code>
-<div class="block">Pass the key, value to reduce</div>
+<div class="block">Extract the grouping columns from value to construct a new key.</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">GroupingTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/GroupingTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
+<td class="colLast"><span class="typeNameLabel">IdentityTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/IdentityTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
    <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;value,
    org.apache.hadoop.mapred.OutputCollector&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&gt;&nbsp;output,
    org.apache.hadoop.mapred.Reporter&nbsp;reporter)</code>
-<div class="block">Extract the grouping columns from value to construct a new key.</div>
+<div class="block">Pass the key, value to reduce</div>
 </td>
 </tr>
 </tbody>
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/ResultScanner.html b/apidocs/org/apache/hadoop/hbase/client/class-use/ResultScanner.html
index b6d9cbd9657..3650d410d05 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/ResultScanner.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/ResultScanner.html
@@ -106,39 +106,39 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#getScanner-byte:A-">getScanner</a></span>(byte[]&nbsp;family)</code>
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#getScanner-byte:A-">getScanner</a></span>(byte[]&nbsp;family)</code>
 <div class="block">Gets a scanner on the current table for the given family.</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a></code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#getScanner-byte:A-">getScanner</a></span>(byte[]&nbsp;family)</code>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#getScanner-byte:A-">getScanner</a></span>(byte[]&nbsp;family)</code>
 <div class="block">Gets a scanner on the current table for the given family.</div>
 </td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#getScanner-byte:A-byte:A-">getScanner</a></span>(byte[]&nbsp;family,
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#getScanner-byte:A-byte:A-">getScanner</a></span>(byte[]&nbsp;family,
           byte[]&nbsp;qualifier)</code>
 <div class="block">Gets a scanner on the current table for the given family and qualifier.</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a></code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#getScanner-byte:A-byte:A-">getScanner</a></span>(byte[]&nbsp;family,
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#getScanner-byte:A-byte:A-">getScanner</a></span>(byte[]&nbsp;family,
           byte[]&nbsp;qualifier)</code>
 <div class="block">Gets a scanner on the current table for the given family and qualifier.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#getScanner-org.apache.hadoop.hbase.client.Scan-">getScanner</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan)</code>
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#getScanner-org.apache.hadoop.hbase.client.Scan-">getScanner</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan)</code>
 <div class="block">Returns a scanner on the current table as specified by the <a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client"><code>Scan</code></a> object.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a></code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#getScanner-org.apache.hadoop.hbase.client.Scan-">getScanner</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan)</code>
+<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#getScanner-org.apache.hadoop.hbase.client.Scan-">getScanner</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan)</code>
 <div class="block">Returns a scanner on the current table as specified by the <a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client"><code>Scan</code></a> object.</div>
 </td>
 </tr>
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/RowMutations.html b/apidocs/org/apache/hadoop/hbase/client/class-use/RowMutations.html
index 3cdf0774d93..edce2821288 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/RowMutations.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/RowMutations.html
@@ -138,14 +138,14 @@
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#mutateRow-org.apache.hadoop.hbase.client.RowMutations-">mutateRow</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/RowMutations.html" title="class in org.apache.hadoop.hbase.client">RowMutations</a>&nbsp;rm)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#mutateRow-org.apache.hadoop.hbase.client.RowMutations-">mutateRow</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/RowMutations.html" title="class in org.apache.hadoop.hbase.client">RowMutations</a>&nbsp;mutation)</code>
 <div class="block">Performs multiple mutations atomically on a single row.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#mutateRow-org.apache.hadoop.hbase.client.RowMutations-">mutateRow</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/RowMutations.html" title="class in org.apache.hadoop.hbase.client">RowMutations</a>&nbsp;mutation)</code>
+<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#mutateRow-org.apache.hadoop.hbase.client.RowMutations-">mutateRow</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/RowMutations.html" title="class in org.apache.hadoop.hbase.client">RowMutations</a>&nbsp;rm)</code>
 <div class="block">Performs multiple mutations atomically on a single row.</div>
 </td>
 </tr>
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/Scan.html b/apidocs/org/apache/hadoop/hbase/client/class-use/Scan.html
index 94159f2f1ca..2d00777702e 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/Scan.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/Scan.html
@@ -418,14 +418,14 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#getScanner-org.apache.hadoop.hbase.client.Scan-">getScanner</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan)</code>
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#getScanner-org.apache.hadoop.hbase.client.Scan-">getScanner</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan)</code>
 <div class="block">Returns a scanner on the current table as specified by the <a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client"><code>Scan</code></a> object.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a></code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#getScanner-org.apache.hadoop.hbase.client.Scan-">getScanner</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan)</code>
+<td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#getScanner-org.apache.hadoop.hbase.client.Scan-">getScanner</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan)</code>
 <div class="block">Returns a scanner on the current table as specified by the <a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client"><code>Scan</code></a> object.</div>
 </td>
 </tr>
@@ -716,13 +716,13 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">TableRecordReaderImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.html#setScan-org.apache.hadoop.hbase.client.Scan-">setScan</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan)</code>
+<td class="colLast"><span class="typeNameLabel">TableInputFormatBase.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#setScan-org.apache.hadoop.hbase.client.Scan-">setScan</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan)</code>
 <div class="block">Sets the scan defining the actual details like columns etc.</div>
 </td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">TableInputFormatBase.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.html#setScan-org.apache.hadoop.hbase.client.Scan-">setScan</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan)</code>
+<td class="colLast"><span class="typeNameLabel">TableRecordReaderImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.html#setScan-org.apache.hadoop.hbase.client.Scan-">setScan</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan)</code>
 <div class="block">Sets the scan defining the actual details like columns etc.</div>
 </td>
 </tr>
diff --git a/apidocs/org/apache/hadoop/hbase/client/package-tree.html b/apidocs/org/apache/hadoop/hbase/client/package-tree.html
index ec6abead0a6..2fb76b98889 100644
--- a/apidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/apidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -237,17 +237,17 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ServerType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ServerType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ServerType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ServerType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/apidocs/org/apache/hadoop/hbase/client/package-use.html b/apidocs/org/apache/hadoop/hbase/client/package-use.html
index 57253b81085..2d477b9e8e1 100644
--- a/apidocs/org/apache/hadoop/hbase/client/package-use.html
+++ b/apidocs/org/apache/hadoop/hbase/client/package-use.html
@@ -626,15 +626,31 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tbody>
 <tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/Connection.html#org.apache.hadoop.hbase.mapred">Connection</a>
+<div class="block">A cluster connection encapsulating lower level individual connections to actual servers and a
+ connection to zookeeper.</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/Put.html#org.apache.hadoop.hbase.mapred">Put</a>
 <div class="block">Used to perform Put operations for a single row.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/Result.html#org.apache.hadoop.hbase.mapred">Result</a>
 <div class="block">Single row result of a <a href="../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client"><code>Get</code></a> or <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client"><code>Scan</code></a> query.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/Scan.html#org.apache.hadoop.hbase.mapred">Scan</a>
+<div class="block">Used to perform Scan operations.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/Table.html#org.apache.hadoop.hbase.mapred">Table</a>
+<div class="block">Used to communicate with a single HBase table.</div>
+</td>
+</tr>
 </tbody>
 </table>
 </li>
@@ -653,40 +669,34 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/Connection.html#org.apache.hadoop.hbase.mapreduce">Connection</a>
-<div class="block">A cluster connection encapsulating lower level individual connections to actual servers and a
- connection to zookeeper.</div>
-</td>
-</tr>
-<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/Mutation.html#org.apache.hadoop.hbase.mapreduce">Mutation</a>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/Put.html#org.apache.hadoop.hbase.mapreduce">Put</a>
 <div class="block">Used to perform Put operations for a single row.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/RegionLocator.html#org.apache.hadoop.hbase.mapreduce">RegionLocator</a>
 <div class="block">Used to view region location information for a single HBase table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/Result.html#org.apache.hadoop.hbase.mapreduce">Result</a>
 <div class="block">Single row result of a <a href="../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client"><code>Get</code></a> or <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client"><code>Scan</code></a> query.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/Scan.html#org.apache.hadoop.hbase.mapreduce">Scan</a>
 <div class="block">Used to perform Scan operations.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/Table.html#org.apache.hadoop.hbase.mapreduce">Table</a>
 <div class="block">Used to communicate with a single HBase table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TableDescriptor.html#org.apache.hadoop.hbase.mapreduce">TableDescriptor</a>
 <div class="block">TableDescriptor contains the details about an HBase table such as the descriptors of all the
  column families, is the table a catalog table, <code> hbase:meta </code>, if the table is read
diff --git a/apidocs/org/apache/hadoop/hbase/filter/Filter.ReturnCode.html b/apidocs/org/apache/hadoop/hbase/filter/Filter.ReturnCode.html
index b3faabc5d9f..8f8c4809e08 100644
--- a/apidocs/org/apache/hadoop/hbase/filter/Filter.ReturnCode.html
+++ b/apidocs/org/apache/hadoop/hbase/filter/Filter.ReturnCode.html
@@ -324,7 +324,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/Filter.ReturnCode.html#line.27">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/Filter.ReturnCode.html#line.194">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -344,7 +344,7 @@ for (Filter.ReturnCode c : Filter.ReturnCode.values())
 <ul class="blockListLast">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/Filter.ReturnCode.html#line.27">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/Filter.ReturnCode.html#line.194">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 
diff --git a/apidocs/org/apache/hadoop/hbase/filter/class-use/Filter.ReturnCode.html b/apidocs/org/apache/hadoop/hbase/filter/class-use/Filter.ReturnCode.html
index 9ffb416e036..941b510ab20 100644
--- a/apidocs/org/apache/hadoop/hbase/filter/class-use/Filter.ReturnCode.html
+++ b/apidocs/org/apache/hadoop/hbase/filter/class-use/Filter.ReturnCode.html
@@ -107,31 +107,31 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnCountGetFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnCountGetFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">KeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;ignored)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FirstKeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/FirstKeyOnlyFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnPrefixFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DependentColumnFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/DependentColumnFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">QualifierFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/QualifierFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SkipFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/SkipFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ColumnRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnRangeFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnValueFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">DependentColumnFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/DependentColumnFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PageFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/PageFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;ignored)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/FilterList.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FilterList.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/FilterList.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">MultiRowRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/MultiRowRangeFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;ignored)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
@@ -139,33 +139,31 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ValueFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ColumnCountGetFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnCountGetFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RandomRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/RandomRowFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SkipFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/SkipFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/PrefixFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">RandomRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/RandomRowFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnPaginationFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnPaginationFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnValueFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MultiRowRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/MultiRowRangeFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;ignored)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ColumnPaginationFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnPaginationFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">InclusiveStopFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/InclusiveStopFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ValueFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Filter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>
-<div class="block">A way to filter based on the column family, column qualifier and/or the column value.</div>
-</td>
+<td class="colLast"><span class="typeNameLabel">RowFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/RowFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;v)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
@@ -173,39 +171,41 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SingleColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">FuzzyRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TimestampsFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/TimestampsFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">InclusiveStopFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/InclusiveStopFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RowFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/RowFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;v)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">PrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/PrefixFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnPrefixFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">PageFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/PageFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;ignored)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MultipleColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">Filter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>
+<div class="block">A way to filter based on the column family, column qualifier and/or the column value.</div>
+</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnRangeFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">FirstKeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/FirstKeyOnlyFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FuzzyRowFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TimestampsFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/TimestampsFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">QualifierFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/QualifierFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">MultipleColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
-<td class="colLast"><span class="typeNameLabel">KeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;ignored)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SingleColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
diff --git a/apidocs/org/apache/hadoop/hbase/filter/class-use/Filter.html b/apidocs/org/apache/hadoop/hbase/filter/class-use/Filter.html
index 39333cb017e..daf709a3fe7 100644
--- a/apidocs/org/apache/hadoop/hbase/filter/class-use/Filter.html
+++ b/apidocs/org/apache/hadoop/hbase/filter/class-use/Filter.html
@@ -140,14 +140,14 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Scan.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html#getFilter--">getFilter</a></span>()</code>
-<div class="block">Returns RowFilter</div>
+<td class="colLast"><span class="typeNameLabel">CheckAndMutate.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html#getFilter--">getFilter</a></span>()</code>
+<div class="block">Returns the filter to check</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">CheckAndMutate.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/CheckAndMutate.html#getFilter--">getFilter</a></span>()</code>
-<div class="block">Returns the filter to check</div>
+<td class="colLast"><span class="typeNameLabel">Scan.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html#getFilter--">getFilter</a></span>()</code>
+<div class="block">Returns RowFilter</div>
 </td>
 </tr>
 <tr class="altColor">
@@ -164,8 +164,8 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>default org.apache.hadoop.hbase.client.Table.CheckAndMutateWithFilterBuilder</code></td>
-<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#checkAndMutate-byte:A-org.apache.hadoop.hbase.filter.Filter-">checkAndMutate</a></span>(byte[]&nbsp;row,
+<td class="colFirst"><code>org.apache.hadoop.hbase.client.AsyncTable.CheckAndMutateWithFilterBuilder</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#checkAndMutate-byte:A-org.apache.hadoop.hbase.filter.Filter-">checkAndMutate</a></span>(byte[]&nbsp;row,
               <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a>&nbsp;filter)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
 <div class="block"><span class="deprecationComment">Since 3.0.0, will be removed in 4.0.0. For internal test use only, do not use it
@@ -174,8 +174,8 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>org.apache.hadoop.hbase.client.AsyncTable.CheckAndMutateWithFilterBuilder</code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#checkAndMutate-byte:A-org.apache.hadoop.hbase.filter.Filter-">checkAndMutate</a></span>(byte[]&nbsp;row,
+<td class="colFirst"><code>default org.apache.hadoop.hbase.client.Table.CheckAndMutateWithFilterBuilder</code></td>
+<td class="colLast"><span class="typeNameLabel">Table.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#checkAndMutate-byte:A-org.apache.hadoop.hbase.filter.Filter-">checkAndMutate</a></span>(byte[]&nbsp;row,
               <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a>&nbsp;filter)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
 <div class="block"><span class="deprecationComment">Since 3.0.0, will be removed in 4.0.0. For internal test use only, do not use it
@@ -190,13 +190,13 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Scan.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html#setFilter-org.apache.hadoop.hbase.filter.Filter-">setFilter</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a>&nbsp;filter)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a></code></td>
 <td class="colLast"><span class="typeNameLabel">Get.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Get.html#setFilter-org.apache.hadoop.hbase.filter.Filter-">setFilter</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a>&nbsp;filter)</code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Scan.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html#setFilter-org.apache.hadoop.hbase.filter.Filter-">setFilter</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a>&nbsp;filter)</code>&nbsp;</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Query.html" title="class in org.apache.hadoop.hbase.client">Query</a></code></td>
 <td class="colLast"><span class="typeNameLabel">Query.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Query.html#setFilter-org.apache.hadoop.hbase.filter.Filter-">setFilter</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a>&nbsp;filter)</code>
@@ -411,41 +411,41 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnCountGetFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnCountGetFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">KeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FirstKeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/FirstKeyOnlyFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnPrefixFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DependentColumnFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/DependentColumnFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SingleColumnValueExcludeFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueExcludeFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&n [...]
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnValueFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>
-<div class="block">Creating this filter by reflection, it is used by <a href="../../../../../../org/apache/hadoop/hbase/filter/ParseFilter.html" title="class in org.apache.hadoop.hbase.filter"><code>ParseFilter</code></a>,</div>
-</td>
+<td class="colLast"><span class="typeNameLabel">QualifierFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/QualifierFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PageFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/PageFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ColumnRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnRangeFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FamilyFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/FamilyFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">DependentColumnFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/DependentColumnFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ValueFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">FamilyFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/FamilyFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SingleColumnValueExcludeFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueExcludeFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&n [...]
+<td class="colLast"><span class="typeNameLabel">ColumnCountGetFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnCountGetFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/PrefixFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnValueFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>
+<div class="block">Creating this filter by reflection, it is used by <a href="../../../../../../org/apache/hadoop/hbase/filter/ParseFilter.html" title="class in org.apache.hadoop.hbase.filter"><code>ParseFilter</code></a>,</div>
+</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
@@ -453,39 +453,39 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">InclusiveStopFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/InclusiveStopFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ValueFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SingleColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">RowFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/RowFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TimestampsFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/TimestampsFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">InclusiveStopFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/InclusiveStopFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RowFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/RowFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">PrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/PrefixFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnPrefixFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">PageFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/PageFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MultipleColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">FirstKeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/FirstKeyOnlyFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnRangeFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/ColumnRangeFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TimestampsFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/TimestampsFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">QualifierFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/QualifierFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">MultipleColumnPrefixFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">KeyOnlyFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SingleColumnValueFilter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;byte[]&gt;&nbsp;filterArguments)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></td>
@@ -650,15 +650,15 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <td class="colLast"><span class="typeNameLabel">TableRecordReader.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/TableRecordReader.html#setRowFilter-org.apache.hadoop.hbase.filter.Filter-">setRowFilter</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a>&nbsp;rowFilter)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">TableRecordReaderImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/TableRecordReaderImpl.html#setRowFilter-org.apache.hadoop.hbase.filter.Filter-">setRowFilter</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a>&nbsp;rowFilter)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">TableInputFormatBase.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/TableInputFormatBase.html#setRowFilter-org.apache.hadoop.hbase.filter.Filter-">setRowFilter</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a>&nbsp;rowFilter)</code>
 <div class="block">Allows subclasses to set the <a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter"><code>Filter</code></a> to be used.</div>
 </td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">TableRecordReaderImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/TableRecordReaderImpl.html#setRowFilter-org.apache.hadoop.hbase.filter.Filter-">setRowFilter</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a>&nbsp;rowFilter)</code>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 </li>
diff --git a/apidocs/org/apache/hadoop/hbase/io/class-use/ImmutableBytesWritable.html b/apidocs/org/apache/hadoop/hbase/io/class-use/ImmutableBytesWritable.html
index 080a0dd9c2b..4b645fb9445 100644
--- a/apidocs/org/apache/hadoop/hbase/io/class-use/ImmutableBytesWritable.html
+++ b/apidocs/org/apache/hadoop/hbase/io/class-use/ImmutableBytesWritable.html
@@ -174,13 +174,13 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.mapred.RecordReader&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">MultiTableSnapshotInputFormat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/MultiTableSnapshotInputFormat.html#getRecordReader-org.apache.hadoop.mapred.InputSplit-org.apache.hadoop.mapred.JobConf-org.apache.hadoop.mapred.Reporter-">getRecordReader</a></span>(org.apache.hadoop.mapred.InputSplit&nbsp;split,
+<td class="colLast"><span class="typeNameLabel">TableSnapshotInputFormat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/TableSnapshotInputFormat.html#getRecordReader-org.apache.hadoop.mapred.InputSplit-org.apache.hadoop.mapred.JobConf-org.apache.hadoop.mapred.Reporter-">getRecordReader</a></span>(org.apache.hadoop.mapred.InputSplit&nbsp;split,
                org.apache.hadoop.mapred.JobConf&nbsp;job,
                org.apache.hadoop.mapred.Reporter&nbsp;reporter)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.mapred.RecordReader&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">TableSnapshotInputFormat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/TableSnapshotInputFormat.html#getRecordReader-org.apache.hadoop.mapred.InputSplit-org.apache.hadoop.mapred.JobConf-org.apache.hadoop.mapred.Reporter-">getRecordReader</a></span>(org.apache.hadoop.mapred.InputSplit&nbsp;split,
+<td class="colLast"><span class="typeNameLabel">MultiTableSnapshotInputFormat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/MultiTableSnapshotInputFormat.html#getRecordReader-org.apache.hadoop.mapred.InputSplit-org.apache.hadoop.mapred.JobConf-org.apache.hadoop.mapred.Reporter-">getRecordReader</a></span>(org.apache.hadoop.mapred.InputSplit&nbsp;split,
                org.apache.hadoop.mapred.JobConf&nbsp;job,
                org.apache.hadoop.mapred.Reporter&nbsp;reporter)</code>&nbsp;</td>
 </tr>
@@ -209,20 +209,20 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">IdentityTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/IdentityTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
+<td class="colLast"><span class="typeNameLabel">GroupingTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/GroupingTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
    <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;value,
    org.apache.hadoop.mapred.OutputCollector&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&gt;&nbsp;output,
    org.apache.hadoop.mapred.Reporter&nbsp;reporter)</code>
-<div class="block">Pass the key, value to reduce</div>
+<div class="block">Extract the grouping columns from value to construct a new key.</div>
 </td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">GroupingTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/GroupingTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
+<td class="colLast"><span class="typeNameLabel">IdentityTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/IdentityTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
    <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;value,
    org.apache.hadoop.mapred.OutputCollector&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&gt;&nbsp;output,
    org.apache.hadoop.mapred.Reporter&nbsp;reporter)</code>
-<div class="block">Extract the grouping columns from value to construct a new key.</div>
+<div class="block">Pass the key, value to reduce</div>
 </td>
 </tr>
 <tr class="rowColor">
@@ -255,20 +255,20 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">IdentityTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/IdentityTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
+<td class="colLast"><span class="typeNameLabel">GroupingTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/GroupingTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
    <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;value,
    org.apache.hadoop.mapred.OutputCollector&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&gt;&nbsp;output,
    org.apache.hadoop.mapred.Reporter&nbsp;reporter)</code>
-<div class="block">Pass the key, value to reduce</div>
+<div class="block">Extract the grouping columns from value to construct a new key.</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">GroupingTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/GroupingTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
+<td class="colLast"><span class="typeNameLabel">IdentityTableMap.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapred/IdentityTableMap.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapred.OutputCollector-org.apache.hadoop.mapred.Reporter-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbas [...]
    <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;value,
    org.apache.hadoop.mapred.OutputCollector&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&gt;&nbsp;output,
    org.apache.hadoop.mapred.Reporter&nbsp;reporter)</code>
-<div class="block">Extract the grouping columns from value to construct a new key.</div>
+<div class="block">Pass the key, value to reduce</div>
 </td>
 </tr>
 <tr class="altColor">
@@ -341,13 +341,13 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>org.apache.hadoop.mapreduce.RecordWriter&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">HFileOutputFormat2.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/HFileOutputFormat2.html#getRecordWriter-org.apache.hadoop.mapreduce.TaskAttemptContext-">getRecordWriter</a></span>(org.apache.hadoop.mapreduce.TaskAttemptContext&nbsp;context)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.mapreduce.RecordWriter&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">MultiTableOutputFormat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/MultiTableOutputFormat.html#getRecordWriter-org.apache.hadoop.mapreduce.TaskAttemptContext-">getRecordWriter</a></span>(org.apache.hadoop.mapreduce.TaskAttemptContext&nbsp;context)</code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>org.apache.hadoop.mapreduce.RecordWriter&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>,<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">HFileOutputFormat2.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/HFileOutputFormat2.html#getRecordWriter-org.apache.hadoop.mapreduce.TaskAttemptContext-">getRecordWriter</a></span>(org.apache.hadoop.mapreduce.TaskAttemptContext&nbsp;context)</code>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
@@ -374,12 +374,6 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">SimpleTotalOrderPartitioner.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/SimpleTotalOrderPartitioner.html#getPartition-org.apache.hadoop.hbase.io.ImmutableBytesWritable-VALUE-int-">getPartition</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>&nbsp;key,
-            <a href="../../../../../../org/apache/hadoop/hbase/mapreduce/SimpleTotalOrderPartitioner.html" title="type parameter in SimpleTotalOrderPartitioner">VALUE</a>&nbsp;value,
-            int&nbsp;reduces)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>int</code></td>
 <td class="colLast"><span class="typeNameLabel">HRegionPartitioner.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/HRegionPartitioner.html#getPartition-org.apache.hadoop.hbase.io.ImmutableBytesWritable-VALUE-int-">getPartition</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>&nbsp;key,
             <a href="../../../../../../org/apache/hadoop/hbase/mapreduce/HRegionPartitioner.html" title="type parameter in HRegionPartitioner">VALUE</a>&nbsp;value,
             int&nbsp;numPartitions)</code>
@@ -387,6 +381,12 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
  i.e.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleTotalOrderPartitioner.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/SimpleTotalOrderPartitioner.html#getPartition-org.apache.hadoop.hbase.io.ImmutableBytesWritable-VALUE-int-">getPartition</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWritable</a>&nbsp;key,
+            <a href="../../../../../../org/apache/hadoop/hbase/mapreduce/SimpleTotalOrderPartitioner.html" title="type parameter in SimpleTotalOrderPartitioner">VALUE</a>&nbsp;value,
+            int&nbsp;reduces)</code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">GroupingTableMapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/GroupingTableMapper.html#map-org.apache.hadoop.hbase.io.ImmutableBytesWritable-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.mapreduce.Mapper.Context-">map</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/ImmutableBytesWritable.html" title="class in org.apache.hadoop.hbase.io">ImmutableBytesWri [...]
diff --git a/apidocs/org/apache/hadoop/hbase/io/class-use/TimeRange.html b/apidocs/org/apache/hadoop/hbase/io/class-use/TimeRange.html
index 6e1f8fd4e86..84ac6548883 100644
--- a/apidocs/org/apache/hadoop/hbase/io/class-use/TimeRange.html
+++ b/apidocs/org/apache/hadoop/hbase/io/class-use/TimeRange.html
@@ -123,20 +123,20 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/TimeRange.html" title="class in org.apache.hadoop.hbase.io">TimeRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Scan.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html#getTimeRange--">getTimeRange</a></span>()</code>
-<div class="block">Returns TimeRange</div>
+<td class="colLast"><span class="typeNameLabel">Append.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Append.html#getTimeRange--">getTimeRange</a></span>()</code>
+<div class="block">Gets the TimeRange used for this append.</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/TimeRange.html" title="class in org.apache.hadoop.hbase.io">TimeRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Append.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Append.html#getTimeRange--">getTimeRange</a></span>()</code>
-<div class="block">Gets the TimeRange used for this append.</div>
+<td class="colLast"><span class="typeNameLabel">Increment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Increment.html#getTimeRange--">getTimeRange</a></span>()</code>
+<div class="block">Gets the TimeRange used for this increment.</div>
 </td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/TimeRange.html" title="class in org.apache.hadoop.hbase.io">TimeRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Increment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Increment.html#getTimeRange--">getTimeRange</a></span>()</code>
-<div class="block">Gets the TimeRange used for this increment.</div>
+<td class="colLast"><span class="typeNameLabel">Get.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Get.html#getTimeRange--">getTimeRange</a></span>()</code>
+<div class="block">Method for retrieving the get's TimeRange</div>
 </td>
 </tr>
 <tr class="rowColor">
@@ -147,8 +147,8 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/TimeRange.html" title="class in org.apache.hadoop.hbase.io">TimeRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Get.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Get.html#getTimeRange--">getTimeRange</a></span>()</code>
-<div class="block">Method for retrieving the get's TimeRange</div>
+<td class="colLast"><span class="typeNameLabel">Scan.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html#getTimeRange--">getTimeRange</a></span>()</code>
+<div class="block">Returns TimeRange</div>
 </td>
 </tr>
 </tbody>
diff --git a/apidocs/org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html b/apidocs/org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html
index 3323b0c12b6..ff3e2617dd3 100644
--- a/apidocs/org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html
+++ b/apidocs/org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html
@@ -368,7 +368,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html" title="enum in org.apache.hadoop.hbase.io.compress">Compression.Algorithm</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html#line.45">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html" title="enum in org.apache.hadoop.hbase.io.compress">Compression.Algorithm</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html#line.34">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -388,7 +388,7 @@ for (Compression.Algorithm c : Compression.Algorithm.values())
 <ul class="blockList">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html" title="enum in org.apache.hadoop.hbase.io.compress">Compression.Algorithm</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html#line.45">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html" title="enum in org.apache.hadoop.hbase.io.compress">Compression.Algorithm</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html#line.34">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 
diff --git a/apidocs/org/apache/hadoop/hbase/io/crypto/class-use/Cipher.html b/apidocs/org/apache/hadoop/hbase/io/crypto/class-use/Cipher.html
index e04709bf37e..86f5e7c30a1 100644
--- a/apidocs/org/apache/hadoop/hbase/io/crypto/class-use/Cipher.html
+++ b/apidocs/org/apache/hadoop/hbase/io/crypto/class-use/Cipher.html
@@ -115,18 +115,18 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/crypto/Cipher.html" title="class in org.apache.hadoop.hbase.io.crypto">Cipher</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultCipherProvider.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/crypto/DefaultCipherProvider.html#getCipher-java.lang.String-">getCipher</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/crypto/Cipher.html" title="class in org.apache.hadoop.hbase.io.crypto">Cipher</a></code></td>
 <td class="colLast"><span class="typeNameLabel">CryptoCipherProvider.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/crypto/CryptoCipherProvider.html#getCipher-java.lang.String-">getCipher</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/crypto/Cipher.html" title="class in org.apache.hadoop.hbase.io.crypto">Cipher</a></code></td>
 <td class="colLast"><span class="typeNameLabel">CipherProvider.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/crypto/CipherProvider.html#getCipher-java.lang.String-">getCipher</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
 <div class="block">Get an Cipher</div>
 </td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/crypto/Cipher.html" title="class in org.apache.hadoop.hbase.io.crypto">Cipher</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DefaultCipherProvider.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/crypto/DefaultCipherProvider.html#getCipher-java.lang.String-">getCipher</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
diff --git a/apidocs/org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html b/apidocs/org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html
index 8e6bd00b83d..f745c831dd5 100644
--- a/apidocs/org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html
+++ b/apidocs/org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html
@@ -369,7 +369,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">DataBlockEncoding</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html#line.41">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">DataBlockEncoding</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html#line.36">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -389,7 +389,7 @@ for (DataBlockEncoding c : DataBlockEncoding.values())
 <ul class="blockList">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">DataBlockEncoding</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html#line.41">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">DataBlockEncoding</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html#line.36">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 
diff --git a/apidocs/org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html b/apidocs/org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html
index add59734b14..26b2a892d28 100644
--- a/apidocs/org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html
+++ b/apidocs/org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html
@@ -314,7 +314,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">IndexBlockEncoding</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html#line.48">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">IndexBlockEncoding</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html#line.35">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -334,7 +334,7 @@ for (IndexBlockEncoding c : IndexBlockEncoding.values())
 <ul class="blockList">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">IndexBlockEncoding</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html#line.48">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">IndexBlockEncoding</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html#line.35">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 
diff --git a/apidocs/org/apache/hadoop/hbase/package-tree.html b/apidocs/org/apache/hadoop/hbase/package-tree.html
index d4cb7f48e34..961b72387a3 100644
--- a/apidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/apidocs/org/apache/hadoop/hbase/package-tree.html
@@ -211,8 +211,8 @@
 <ul>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/apidocs/org/apache/hadoop/hbase/package-use.html b/apidocs/org/apache/hadoop/hbase/package-use.html
index 890e57820bd..f6168256b31 100644
--- a/apidocs/org/apache/hadoop/hbase/package-use.html
+++ b/apidocs/org/apache/hadoop/hbase/package-use.html
@@ -124,43 +124,50 @@
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.mapreduce">org.apache.hadoop.hbase.mapreduce</a></td>
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.mapred">org.apache.hadoop.hbase.mapred</a></td>
 <td class="colLast">
 <div class="block">Provides HBase <a href="https://cwiki.apache.org/confluence/display/HADOOP2/HadoopMapReduce">MapReduce</a>
 Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.mapreduce">org.apache.hadoop.hbase.mapreduce</a></td>
+<td class="colLast">
+<div class="block">Provides HBase <a href="https://cwiki.apache.org/confluence/display/HADOOP2/HadoopMapReduce">MapReduce</a>
+Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.quotas">org.apache.hadoop.hbase.quotas</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver">org.apache.hadoop.hbase.regionserver</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.replication">org.apache.hadoop.hbase.replication</a></td>
 <td class="colLast">
 <div class="block">Multi Cluster Replication</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.rsgroup">org.apache.hadoop.hbase.rsgroup</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.security">org.apache.hadoop.hbase.security</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.snapshot">org.apache.hadoop.hbase.snapshot</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.testing">org.apache.hadoop.hbase.testing</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
@@ -583,6 +590,23 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tbody>
 </table>
 </li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.mapred">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/hadoop/hbase/package-summary.html">org.apache.hadoop.hbase</a> used by <a href="../../../../org/apache/hadoop/hbase/mapred/package-summary.html">org.apache.hadoop.hbase.mapred</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/hadoop/hbase/class-use/TableName.html#org.apache.hadoop.hbase.mapred">TableName</a>
+<div class="block">Immutable POJO class for representing a table name.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
 <li class="blockList"><a name="org.apache.hadoop.hbase.mapreduce">
 <!--   -->
 </a>
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/package-tree.html b/apidocs/org/apache/hadoop/hbase/quotas/package-tree.html
index 2433aecf55c..ba629f02799 100644
--- a/apidocs/org/apache/hadoop/hbase/quotas/package-tree.html
+++ b/apidocs/org/apache/hadoop/hbase/quotas/package-tree.html
@@ -127,9 +127,9 @@
 <ul>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/apidocs/org/apache/hadoop/hbase/replication/SyncReplicationState.html b/apidocs/org/apache/hadoop/hbase/replication/SyncReplicationState.html
index d978ff20615..7e60364f866 100644
--- a/apidocs/org/apache/hadoop/hbase/replication/SyncReplicationState.html
+++ b/apidocs/org/apache/hadoop/hbase/replication/SyncReplicationState.html
@@ -287,7 +287,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/replication/SyncReplicationState.html" title="enum in org.apache.hadoop.hbase.replication">SyncReplicationState</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/SyncReplicationState.html#line.107">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/replication/SyncReplicationState.html" title="enum in org.apache.hadoop.hbase.replication">SyncReplicationState</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/SyncReplicationState.html#line.43">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -307,7 +307,7 @@ for (SyncReplicationState c : SyncReplicationState.values())
 <ul class="blockList">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/replication/SyncReplicationState.html" title="enum in org.apache.hadoop.hbase.replication">SyncReplicationState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/SyncReplicationState.html#line.107">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/replication/SyncReplicationState.html" title="enum in org.apache.hadoop.hbase.replication">SyncReplicationState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/SyncReplicationState.html#line.43">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 
diff --git a/apidocs/org/apache/hadoop/hbase/util/Bytes.html b/apidocs/org/apache/hadoop/hbase/util/Bytes.html
index 97212bcf59c..1dbb641fb17 100644
--- a/apidocs/org/apache/hadoop/hbase/util/Bytes.html
+++ b/apidocs/org/apache/hadoop/hbase/util/Bytes.html
@@ -2596,7 +2596,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1462">equals</a>(byte[]&nbsp;left,
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1560">equals</a>(byte[]&nbsp;left,
                              byte[]&nbsp;right)</pre>
 <div class="block">Lexicographically determine the equality of two arrays.</div>
 <dl>
@@ -2614,7 +2614,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1488">equals</a>(byte[]&nbsp;left,
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1586">equals</a>(byte[]&nbsp;left,
                              int&nbsp;leftOffset,
                              int&nbsp;leftLen,
                              byte[]&nbsp;right,
@@ -2640,7 +2640,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1517">equals</a>(byte[]&nbsp;a,
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1615">equals</a>(byte[]&nbsp;a,
                              <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buf)</pre>
 <div class="block">Lexicographically determine the equality of two byte[], one as ByteBuffer.</div>
 <dl>
@@ -2658,7 +2658,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>startsWith</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1535">startsWith</a>(byte[]&nbsp;bytes,
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1633">startsWith</a>(byte[]&nbsp;bytes,
                                  byte[]&nbsp;prefix)</pre>
 <div class="block">Return true if the byte array on the right is a prefix of the byte array on the left.</div>
 </li>
@@ -2669,7 +2669,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1547">hashCode</a>(byte[]&nbsp;b)</pre>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1645">hashCode</a>(byte[]&nbsp;b)</pre>
 <div class="block">Calculate a hash code from a given byte array.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2686,7 +2686,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1558">hashCode</a>(byte[]&nbsp;b,
+<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1656">hashCode</a>(byte[]&nbsp;b,
                            int&nbsp;length)</pre>
 <div class="block">Calculate a hash code from a given byte array.</div>
 <dl>
@@ -2705,7 +2705,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>mapKey</h4>
-<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1567">mapKey</a>(byte[]&nbsp;b)</pre>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1665">mapKey</a>(byte[]&nbsp;b)</pre>
 <div class="block">Calculate a hash code from a given byte array suitable for use as a key in maps.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2721,7 +2721,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>mapKey</h4>
-<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1577">mapKey</a>(byte[]&nbsp;b,
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1675">mapKey</a>(byte[]&nbsp;b,
                              int&nbsp;length)</pre>
 <div class="block">Calculate a hash code from a given byte array suitable for use as a key in maps.</div>
 <dl>
@@ -2739,7 +2739,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>add</h4>
-<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1587">add</a>(byte[]&nbsp;a,
+<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1685">add</a>(byte[]&nbsp;a,
                          byte[]&nbsp;b)</pre>
 <div class="block">Concatenate byte arrays.</div>
 <dl>
@@ -2757,7 +2757,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>add</h4>
-<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1598">add</a>(byte[]&nbsp;a,
+<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1696">add</a>(byte[]&nbsp;a,
                          byte[]&nbsp;b,
                          byte[]&nbsp;c)</pre>
 <div class="block">Concatenate byte arrays.</div>
@@ -2777,7 +2777,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>add</h4>
-<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1611">add</a>(byte[][]&nbsp;arrays)</pre>
+<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1709">add</a>(byte[][]&nbsp;arrays)</pre>
 <div class="block">Concatenate byte arrays.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2793,7 +2793,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>head</h4>
-<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1631">head</a>(byte[]&nbsp;a,
+<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1729">head</a>(byte[]&nbsp;a,
                           int&nbsp;length)</pre>
 <div class="block">Make a new byte array from a subset of bytes at the head of another.</div>
 <dl>
@@ -2811,7 +2811,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>tail</h4>
-<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1646">tail</a>(byte[]&nbsp;a,
+<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1744">tail</a>(byte[]&nbsp;a,
                           int&nbsp;length)</pre>
 <div class="block">Make a new byte array from a subset of bytes at the tail of another.</div>
 <dl>
@@ -2829,7 +2829,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>padHead</h4>
-<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1661">padHead</a>(byte[]&nbsp;a,
+<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1759">padHead</a>(byte[]&nbsp;a,
                              int&nbsp;length)</pre>
 <div class="block">Make a new byte array from a subset of bytes at the head of another, zero padded as desired.</div>
 <dl>
@@ -2847,7 +2847,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>padTail</h4>
-<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1675">padTail</a>(byte[]&nbsp;a,
+<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1773">padTail</a>(byte[]&nbsp;a,
                              int&nbsp;length)</pre>
 <div class="block">Make a new byte array from a subset of bytes at the tail of another, zero padded as desired.</div>
 <dl>
@@ -2865,7 +2865,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>split</h4>
-<pre>public static&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1692">split</a>(byte[]&nbsp;a,
+<pre>public static&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1790">split</a>(byte[]&nbsp;a,
                              byte[]&nbsp;b,
                              int&nbsp;num)</pre>
 <div class="block">Split passed range. Expensive operation relatively. Uses BigInteger math. Useful splitting
@@ -2887,7 +2887,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>split</h4>
-<pre>public static&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1708">split</a>(byte[]&nbsp;a,
+<pre>public static&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1806">split</a>(byte[]&nbsp;a,
                              byte[]&nbsp;b,
                              boolean&nbsp;inclusive,
                              int&nbsp;num)</pre>
@@ -2913,7 +2913,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>iterateOnSplits</h4>
-<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;byte[]&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1722">iterateOnSplits</a>(byte[]&nbsp;a,
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;byte[]&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1820">iterateOnSplits</a>(byte[]&nbsp;a,
                                                byte[]&nbsp;b,
                                                int&nbsp;num)</pre>
 <div class="block">Iterate over keys within the passed range, splitting at an [a,b) boundary.</div>
@@ -2925,7 +2925,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>iterateOnSplits</h4>
-<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;byte[]&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1729">iterateOnSplits</a>(byte[]&nbsp;a,
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;byte[]&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1827">iterateOnSplits</a>(byte[]&nbsp;a,
                                                byte[]&nbsp;b,
                                                boolean&nbsp;inclusive,
                                                int&nbsp;num)</pre>
@@ -2938,7 +2938,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1821">hashCode</a>(byte[]&nbsp;bytes,
+<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1919">hashCode</a>(byte[]&nbsp;bytes,
                            int&nbsp;offset,
                            int&nbsp;length)</pre>
 <div class="block">Calculate the hash code for a given range of bytes.</div>
@@ -2956,7 +2956,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>toByteArrays</h4>
-<pre>public static&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1833">toByteArrays</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;t)</pre>
+<pre>public static&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1931">toByteArrays</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;t)</pre>
 <div class="block">Create an array of byte[] given an array of String.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2972,7 +2972,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>toBinaryByteArrays</h4>
-<pre>public static&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1846">toBinaryByteArrays</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;t)</pre>
+<pre>public static&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1944">toBinaryByteArrays</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;t)</pre>
 <div class="block">Create an array of byte[] given an array of String.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2988,7 +2988,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>toByteArrays</h4>
-<pre>public static&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1859">toByteArrays</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;column)</pre>
+<pre>public static&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1957">toByteArrays</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;column)</pre>
 <div class="block">Create a byte[][] where first and only entry is <code>column</code></div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -3004,7 +3004,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>toByteArrays</h4>
-<pre>public static&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1868">toByteArrays</a>(byte[]&nbsp;column)</pre>
+<pre>public static&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1966">toByteArrays</a>(byte[]&nbsp;column)</pre>
 <div class="block">Create a byte[][] where first and only entry is <code>column</code></div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -3020,7 +3020,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>binarySearch</h4>
-<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1886">binarySearch</a>(byte[][]&nbsp;arr,
+<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1984">binarySearch</a>(byte[][]&nbsp;arr,
                                byte[]&nbsp;key,
                                int&nbsp;offset,
                                int&nbsp;length)</pre>
@@ -3046,7 +3046,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>binarySearch</h4>
-<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1918">binarySearch</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>[]&nbsp;arr,
+<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2016">binarySearch</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>[]&nbsp;arr,
                                <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;key,
                                <a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a>&nbsp;comparator)</pre>
 <div class="block">Binary search for keys in indexes.</div>
@@ -3070,7 +3070,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>incrementBytes</h4>
-<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.1942">incrementBytes</a>(byte[]&nbsp;value,
+<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2040">incrementBytes</a>(byte[]&nbsp;value,
                                     long&nbsp;amount)</pre>
 <div class="block">Bytewise binary increment/deincrement of long contained in byte array on given amount.</div>
 <dl>
@@ -3088,7 +3088,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>writeStringFixedSize</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2017">writeStringFixedSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataOutput.html?is-external=true" title="class or interface in java.io">DataOutput</a>&nbsp;out,
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2115">writeStringFixedSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataOutput.html?is-external=true" title="class or interface in java.io">DataOutput</a>&nbsp;out,
                                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;s,
                                         int&nbsp;size)
                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -3105,7 +3105,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>readStringFixedSize</h4>
-<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2033">readStringFixedSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataInput.html?is-external=true" title="class or interface in java.io">DataInput</a>&nbsp;in,
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2131">readStringFixedSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataInput.html?is-external=true" title="class or interface in java.io">DataInput</a>&nbsp;in,
                                          int&nbsp;size)
                                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Reads a fixed-size field and interprets it as a string padded with zeros.</div>
@@ -3121,7 +3121,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>copy</h4>
-<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2049">copy</a>(byte[]&nbsp;bytes)</pre>
+<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2147">copy</a>(byte[]&nbsp;bytes)</pre>
 <div class="block">Copy the byte array given in parameter and return an instance of a new byte array with the same
  length and the same content.</div>
 <dl>
@@ -3138,7 +3138,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>copy</h4>
-<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2062">copy</a>(byte[]&nbsp;bytes,
+<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2160">copy</a>(byte[]&nbsp;bytes,
                           int&nbsp;offset,
                           int&nbsp;length)</pre>
 <div class="block">Copy the byte array given in parameter and return an instance of a new byte array with the same
@@ -3157,7 +3157,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>unsignedBinarySearch</h4>
-<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2079">unsignedBinarySearch</a>(byte[]&nbsp;a,
+<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2177">unsignedBinarySearch</a>(byte[]&nbsp;a,
                                        int&nbsp;fromIndex,
                                        int&nbsp;toIndex,
                                        byte&nbsp;key)</pre>
@@ -3181,7 +3181,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>unsignedCopyAndIncrement</h4>
-<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2105">unsignedCopyAndIncrement</a>(byte[]&nbsp;input)</pre>
+<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2203">unsignedCopyAndIncrement</a>(byte[]&nbsp;input)</pre>
 <div class="block">Treat the byte[] as an unsigned series of bytes, most significant bits first. Start by adding 1
  to the rightmost bit/byte and carry over all overflows to the more significant bits/bytes.</div>
 <dl>
@@ -3198,7 +3198,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2125">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;byte[]&gt;&nbsp;a,
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2223">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;byte[]&gt;&nbsp;a,
                              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;byte[]&gt;&nbsp;b)</pre>
 </li>
 </ul>
@@ -3208,7 +3208,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>isSorted</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2146">isSorted</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;byte[]&gt;&nbsp;arrays)</pre>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2244">isSorted</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;byte[]&gt;&nbsp;arrays)</pre>
 </li>
 </ul>
 <a name="getUtf8ByteArrays-java.util.List-">
@@ -3217,7 +3217,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>getUtf8ByteArrays</h4>
-<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;byte[]&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2159">getUtf8ByteArrays</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Str [...]
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;byte[]&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2257">getUtf8ByteArrays</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Str [...]
 </li>
 </ul>
 <a name="indexOf-byte:A-byte-">
@@ -3226,7 +3226,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>indexOf</h4>
-<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2175">indexOf</a>(byte[]&nbsp;array,
+<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2273">indexOf</a>(byte[]&nbsp;array,
                           byte&nbsp;target)</pre>
 <div class="block">Returns the index of the first appearance of the value <code>target</code> in <code>array</code>.</div>
 <dl>
@@ -3245,7 +3245,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>indexOf</h4>
-<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2194">indexOf</a>(byte[]&nbsp;array,
+<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2292">indexOf</a>(byte[]&nbsp;array,
                           byte[]&nbsp;target)</pre>
 <div class="block">Returns the start position of the first occurrence of the specified <code>target</code> within <code>array</code>, or <code>-1</code> if there is no such occurrence.
  <p>
@@ -3264,7 +3264,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>contains</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2218">contains</a>(byte[]&nbsp;array,
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2316">contains</a>(byte[]&nbsp;array,
                                byte&nbsp;target)</pre>
 <div class="block">Return true if target is present as an element anywhere in the given array.</div>
 <dl>
@@ -3282,7 +3282,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>contains</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2228">contains</a>(byte[]&nbsp;array,
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2326">contains</a>(byte[]&nbsp;array,
                                byte[]&nbsp;target)</pre>
 <div class="block">Return true if target is present as an element anywhere in the given array.</div>
 <dl>
@@ -3300,7 +3300,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>zero</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2236">zero</a>(byte[]&nbsp;b)</pre>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2334">zero</a>(byte[]&nbsp;b)</pre>
 <div class="block">Fill given array with zeros.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -3314,7 +3314,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>zero</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2243">zero</a>(byte[]&nbsp;b,
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2341">zero</a>(byte[]&nbsp;b,
                         int&nbsp;offset,
                         int&nbsp;length)</pre>
 <div class="block">Fill given array with zeros at the specified position.</div>
@@ -3326,7 +3326,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>random</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2261">random</a>(byte[]&nbsp;b)</pre>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2359">random</a>(byte[]&nbsp;b)</pre>
 <div class="block">Fill given array with random bytes.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -3344,7 +3344,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>random</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2274">random</a>(byte[]&nbsp;b,
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2372">random</a>(byte[]&nbsp;b,
                           int&nbsp;offset,
                           int&nbsp;length)</pre>
 <div class="block">Fill given array with random bytes at the specified position.
@@ -3365,7 +3365,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>secureRandom</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2290">secureRandom</a>(byte[]&nbsp;b)</pre>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2388">secureRandom</a>(byte[]&nbsp;b)</pre>
 <div class="block">Fill given array with random bytes using a strong random number generator.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -3379,7 +3379,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>secureRandom</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2301">secureRandom</a>(byte[]&nbsp;b,
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2399">secureRandom</a>(byte[]&nbsp;b,
                                 int&nbsp;offset,
                                 int&nbsp;length)</pre>
 <div class="block">Fill given array with random bytes at the specified position using a strong random number
@@ -3398,7 +3398,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>createMaxByteArray</h4>
-<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2315">createMaxByteArray</a>(int&nbsp;maxByteCount)</pre>
+<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2413">createMaxByteArray</a>(int&nbsp;maxByteCount)</pre>
 <div class="block">Create a max byte array with the specified max byte count</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -3414,7 +3414,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>multiple</h4>
-<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2327">multiple</a>(byte[]&nbsp;srcBytes,
+<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2425">multiple</a>(byte[]&nbsp;srcBytes,
                               int&nbsp;multiNum)</pre>
 <div class="block">Create a byte array which is multiple given bytes</div>
 <dl>
@@ -3429,7 +3429,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>toHex</h4>
-<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2344">toHex</a>(byte[]&nbsp;b,
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2442">toHex</a>(byte[]&nbsp;b,
                            int&nbsp;offset,
                            int&nbsp;length)</pre>
 <div class="block">Convert a byte range into a hex string</div>
@@ -3441,7 +3441,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>toHex</h4>
-<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2359">toHex</a>(byte[]&nbsp;b)</pre>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2457">toHex</a>(byte[]&nbsp;b)</pre>
 <div class="block">Convert a byte array into a hex string</div>
 </li>
 </ul>
@@ -3451,7 +3451,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>fromHex</h4>
-<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2382">fromHex</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hex)</pre>
+<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2480">fromHex</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hex)</pre>
 <div class="block">Create a byte array from a string of hash digits. The length of the string must be a multiple
  of 2</div>
 </li>
@@ -3462,7 +3462,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>searchDelimiterIndex</h4>
-<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2396">searchDelimiterIndex</a>(byte[]&nbsp;b,
+<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2494">searchDelimiterIndex</a>(byte[]&nbsp;b,
                                        int&nbsp;offset,
                                        int&nbsp;length,
                                        int&nbsp;delimiter)</pre>
@@ -3479,7 +3479,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockList">
 <li class="blockList">
 <h4>searchDelimiterIndexInReverse</h4>
-<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2415">searchDelimiterIndexInReverse</a>(byte[]&nbsp;b,
+<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2513">searchDelimiterIndexInReverse</a>(byte[]&nbsp;b,
                                                 int&nbsp;offset,
                                                 int&nbsp;length,
                                                 int&nbsp;delimiter)</pre>
@@ -3496,7 +3496,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <ul class="blockListLast">
 <li class="blockList">
 <h4>findCommonPrefix</h4>
-<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2430">findCommonPrefix</a>(byte[]&nbsp;left,
+<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/Bytes.html#line.2528">findCommonPrefix</a>(byte[]&nbsp;left,
                                    byte[]&nbsp;right,
                                    int&nbsp;leftLength,
                                    int&nbsp;rightLength,
diff --git a/apidocs/org/apache/hadoop/hbase/util/class-use/Bytes.html b/apidocs/org/apache/hadoop/hbase/util/class-use/Bytes.html
index 34781652aba..bb2ae15b736 100644
--- a/apidocs/org/apache/hadoop/hbase/util/class-use/Bytes.html
+++ b/apidocs/org/apache/hadoop/hbase/util/class-use/Bytes.html
@@ -123,14 +123,14 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html#getValue-org.apache.hadoop.hbase.util.Bytes-">getValue</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a>&nbsp;key)</code>
-<div class="block">Getter for accessing the metadata associated with the key.</div>
+<td class="colLast"><span class="typeNameLabel">ColumnFamilyDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html#getValue-org.apache.hadoop.hbase.util.Bytes-">getValue</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a>&nbsp;key)</code>
+<div class="block">Get a configuration value.</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnFamilyDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html#getValue-org.apache.hadoop.hbase.util.Bytes-">getValue</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a>&nbsp;key)</code>
-<div class="block">Get a configuration value.</div>
+<td class="colLast"><span class="typeNameLabel">TableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html#getValue-org.apache.hadoop.hbase.util.Bytes-">getValue</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a>&nbsp;key)</code>
+<div class="block">Getter for accessing the metadata associated with the key.</div>
 </td>
 </tr>
 </tbody>
@@ -144,26 +144,26 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a>,<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">TableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html#getValues--">getValues</a></span>()</code>
-<div class="block">Returns Getter for fetching an unmodifiable map.</div>
+<td class="colLast"><span class="typeNameLabel">ColumnFamilyDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html#getValues--">getValues</a></span>()</code>
+<div class="block">Get all configuration values.</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a>,<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">TableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html#getValues--">getValues</a></span>()</code>
-<div class="block">Returns Getter for fetching an unmodifiable map.</div>
+<td class="colLast"><span class="typeNameLabel">ColumnFamilyDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html#getValues--">getValues</a></span>()</code>
+<div class="block">Get all configuration values.</div>
 </td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a>,<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnFamilyDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html#getValues--">getValues</a></span>()</code>
-<div class="block">Get all configuration values.</div>
+<td class="colLast"><span class="typeNameLabel">TableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html#getValues--">getValues</a></span>()</code>
+<div class="block">Returns Getter for fetching an unmodifiable map.</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a>,<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnFamilyDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html#getValues--">getValues</a></span>()</code>
-<div class="block">Get all configuration values.</div>
+<td class="colLast"><span class="typeNameLabel">TableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html#getValues--">getValues</a></span>()</code>
+<div class="block">Returns Getter for fetching an unmodifiable map.</div>
 </td>
 </tr>
 </tbody>
@@ -177,14 +177,14 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html#getValue-org.apache.hadoop.hbase.util.Bytes-">getValue</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a>&nbsp;key)</code>
-<div class="block">Getter for accessing the metadata associated with the key.</div>
+<td class="colLast"><span class="typeNameLabel">ColumnFamilyDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html#getValue-org.apache.hadoop.hbase.util.Bytes-">getValue</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a>&nbsp;key)</code>
+<div class="block">Get a configuration value.</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ColumnFamilyDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html#getValue-org.apache.hadoop.hbase.util.Bytes-">getValue</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a>&nbsp;key)</code>
-<div class="block">Get a configuration value.</div>
+<td class="colLast"><span class="typeNameLabel">TableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html#getValue-org.apache.hadoop.hbase.util.Bytes-">getValue</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a>&nbsp;key)</code>
+<div class="block">Getter for accessing the metadata associated with the key.</div>
 </td>
 </tr>
 <tr class="altColor">
diff --git a/apidocs/org/apache/hadoop/hbase/util/class-use/Order.html b/apidocs/org/apache/hadoop/hbase/util/class-use/Order.html
index df8987e5995..de6cf015de6 100644
--- a/apidocs/org/apache/hadoop/hbase/util/class-use/Order.html
+++ b/apidocs/org/apache/hadoop/hbase/util/class-use/Order.html
@@ -133,54 +133,54 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RawLong.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawLong.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">FixedLengthWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/FixedLengthWrapper.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Union3.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/Union3.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TerminatedWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/TerminatedWrapper.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RawByte.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawByte.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">RawString.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawString.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RawString.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawString.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">RawByte.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawByte.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RawInteger.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawInteger.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">RawBytes.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytes.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TerminatedWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/TerminatedWrapper.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">RawFloat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawFloat.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RawBytes.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytes.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">RawLong.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawLong.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedBytesBase.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedBytesBase.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">Union3.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/Union3.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Struct.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/Struct.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
 <td class="colLast"><span class="typeNameLabel">DataType.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/DataType.html#getOrder--">getOrder</a></span>()</code>
 <div class="block">Retrieve the sort <a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><code>Order</code></a> imposed by this data type, or null when natural ordering is not
  preserved.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Struct.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/Struct.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RawDouble.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawDouble.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">OrderedBytesBase.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedBytesBase.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FixedLengthWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/FixedLengthWrapper.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">Union2.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/Union2.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
@@ -188,15 +188,15 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RawShort.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawShort.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">RawDouble.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawDouble.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Union2.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/Union2.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">RawInteger.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawInteger.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util">Order</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RawFloat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawFloat.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">RawShort.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawShort.html#getOrder--">getOrder</a></span>()</code>&nbsp;</td>
 </tr>
 </tbody>
 </table>
diff --git a/apidocs/org/apache/hadoop/hbase/util/class-use/PositionedByteRange.html b/apidocs/org/apache/hadoop/hbase/util/class-use/PositionedByteRange.html
index 247f09d21ca..2cf40b59056 100644
--- a/apidocs/org/apache/hadoop/hbase/util/class-use/PositionedByteRange.html
+++ b/apidocs/org/apache/hadoop/hbase/util/class-use/PositionedByteRange.html
@@ -124,78 +124,86 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedString.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedString.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang">Float</a></code></td>
+<td class="colLast"><span class="typeNameLabel">OrderedFloat32.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedFloat32.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/types/FixedLengthWrapper.html" title="type parameter in FixedLengthWrapper">T</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FixedLengthWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/FixedLengthWrapper.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/types/TerminatedWrapper.html" title="type parameter in TerminatedWrapper">T</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TerminatedWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/TerminatedWrapper.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>byte[]</code></td>
 <td class="colLast"><span class="typeNameLabel">OrderedBlob.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedBlob.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RawLong.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawLong.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RawString.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawString.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang">Byte</a></code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedInt8.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt8.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a></code></td>
+<td class="colLast"><span class="typeNameLabel">OrderedInt64.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt64.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang">Byte</a></code></td>
 <td class="colLast"><span class="typeNameLabel">RawByte.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawByte.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RawString.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawString.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><span class="typeNameLabel">RawBytes.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytes.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RawInteger.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawInteger.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Short.html?is-external=true" title="class or interface in java.lang">Short</a></code></td>
+<td class="colLast"><span class="typeNameLabel">OrderedInt16.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt16.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/types/TerminatedWrapper.html" title="type parameter in TerminatedWrapper">T</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TerminatedWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/TerminatedWrapper.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang">Byte</a></code></td>
+<td class="colLast"><span class="typeNameLabel">OrderedInt8.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt8.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a></code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedFloat64.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedFloat64.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang">Float</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RawFloat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawFloat.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>byte[]</code></td>
-<td class="colLast"><span class="typeNameLabel">RawBytes.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytes.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RawLong.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawLong.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]</code></td>
-<td class="colLast"><span class="typeNameLabel">Struct.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/Struct.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/types/DataType.html" title="type parameter in DataType">T</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DataType.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/DataType.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>
+<div class="block">Read an instance of <code>T</code> from the buffer <code>src</code>.</div>
+</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td>
 <td class="colLast"><span class="typeNameLabel">OrderedInt32.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt32.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/types/DataType.html" title="type parameter in DataType">T</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DataType.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/DataType.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>
-<div class="block">Read an instance of <code>T</code> from the buffer <code>src</code>.</div>
-</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><span class="typeNameLabel">OrderedString.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedString.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a></code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedInt64.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt64.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">Struct.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/Struct.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RawDouble.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawDouble.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">OrderedFloat64.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedFloat64.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/types/FixedLengthWrapper.html" title="type parameter in FixedLengthWrapper">T</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FixedLengthWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/FixedLengthWrapper.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><span class="typeNameLabel">OrderedBlobVar.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedBlobVar.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang">Float</a></code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedFloat32.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedFloat32.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RawDouble.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawDouble.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Short.html?is-external=true" title="class or interface in java.lang">Short</a></code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedInt16.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt16.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RawInteger.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawInteger.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
@@ -207,33 +215,25 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>byte[]</code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedBlobVar.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedBlobVar.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang">Float</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RawFloat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawFloat.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>byte[]</code></td>
-<td class="colLast"><span class="typeNameLabel">RawBytesFixedLength.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytesFixedLength.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-int-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src,
-      int&nbsp;length)</code>
-<div class="block">Read a <code>byte[]</code> from the buffer <code>src</code>.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>byte[]</code></td>
 <td class="colLast"><span class="typeNameLabel">RawBytes.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytes.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-int-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src,
       int&nbsp;length)</code>
 <div class="block">Read a <code>byte[]</code> from the buffer <code>src</code>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
 <td class="colLast"><span class="typeNameLabel">Struct.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/Struct.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-int-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src,
       int&nbsp;index)</code>
 <div class="block">Read the field at <code>index</code>.</div>
 </td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><span class="typeNameLabel">RawBytesFixedLength.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytesFixedLength.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-int-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src,
+      int&nbsp;length)</code>
+<div class="block">Read a <code>byte[]</code> from the buffer <code>src</code>.</div>
+</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>byte[]</code></td>
 <td class="colLast"><span class="typeNameLabel">RawBytesTerminated.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytesTerminated.html#decode-org.apache.hadoop.hbase.util.PositionedByteRange-int-">decode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src,
@@ -315,12 +315,12 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedInt8.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt8.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.Byte-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
+<td class="colLast"><span class="typeNameLabel">RawByte.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawByte.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.Byte-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang">Byte</a>&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawByte.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawByte.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.Byte-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
+<td class="colLast"><span class="typeNameLabel">OrderedInt8.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt8.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.Byte-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang">Byte</a>&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
@@ -349,38 +349,38 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawBytesFixedLength.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytesFixedLength.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-byte:A-int-int-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
+<td class="colLast"><span class="typeNameLabel">RawBytes.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytes.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-byte:A-int-int-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
       byte[]&nbsp;val,
       int&nbsp;voff,
       int&nbsp;vlen)</code>
-<div class="block">Write <code>val</code> into <code>buff</code>, respecting <code>offset</code> and <code>length</code>.</div>
+<div class="block">Write <code>val</code> into <code>dst</code>, respecting <code>voff</code> and <code>vlen</code>.</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawBytes.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytes.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-byte:A-int-int-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
+<td class="colLast"><span class="typeNameLabel">RawBytesFixedLength.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytesFixedLength.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-byte:A-int-int-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
       byte[]&nbsp;val,
       int&nbsp;voff,
       int&nbsp;vlen)</code>
-<div class="block">Write <code>val</code> into <code>dst</code>, respecting <code>voff</code> and <code>vlen</code>.</div>
+<div class="block">Write <code>val</code> into <code>buff</code>, respecting <code>offset</code> and <code>length</code>.</div>
 </td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawBytesTerminated.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytesTerminated.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-byte:A-int-int-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
+<td class="colLast"><span class="typeNameLabel">OrderedBlobVar.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedBlobVar.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-byte:A-int-int-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
       byte[]&nbsp;val,
       int&nbsp;voff,
       int&nbsp;vlen)</code>
-<div class="block">Write <code>val</code> into <code>dst</code>, respecting <code>offset</code> and <code>length</code>.</div>
+<div class="block">Write a subset of <code>val</code> to <code>dst</code>.</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedBlobVar.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedBlobVar.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-byte:A-int-int-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
+<td class="colLast"><span class="typeNameLabel">RawBytesTerminated.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytesTerminated.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-byte:A-int-int-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
       byte[]&nbsp;val,
       int&nbsp;voff,
       int&nbsp;vlen)</code>
-<div class="block">Write a subset of <code>val</code> to <code>dst</code>.</div>
+<div class="block">Write <code>val</code> into <code>dst</code>, respecting <code>offset</code> and <code>length</code>.</div>
 </td>
 </tr>
 <tr class="altColor">
@@ -405,22 +405,22 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawInteger.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawInteger.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.Integer-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
+<td class="colLast"><span class="typeNameLabel">OrderedInt32.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt32.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.Integer-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedInt32.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt32.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.Integer-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
+<td class="colLast"><span class="typeNameLabel">RawInteger.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawInteger.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.Integer-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawLong.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawLong.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.Long-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
+<td class="colLast"><span class="typeNameLabel">OrderedInt64.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt64.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.Long-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedInt64.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt64.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.Long-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
+<td class="colLast"><span class="typeNameLabel">RawLong.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawLong.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.Long-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
@@ -445,33 +445,33 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedString.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedString.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.String-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
+<td class="colLast"><span class="typeNameLabel">RawString.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawString.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.String-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawString.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawString.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.String-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
+<td class="colLast"><span class="typeNameLabel">OrderedString.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedString.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-java.lang.String-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>int</code></td>
+<td class="colLast"><span class="typeNameLabel">FixedLengthWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/FixedLengthWrapper.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-T-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
+      <a href="../../../../../../org/apache/hadoop/hbase/types/FixedLengthWrapper.html" title="type parameter in FixedLengthWrapper">T</a>&nbsp;val)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
 <td class="colLast"><span class="typeNameLabel">TerminatedWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/TerminatedWrapper.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-T-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
       <a href="../../../../../../org/apache/hadoop/hbase/types/TerminatedWrapper.html" title="type parameter in TerminatedWrapper">T</a>&nbsp;val)</code>
 <div class="block">Write instance <code>val</code> into buffer <code>dst</code>.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><span class="typeNameLabel">DataType.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/DataType.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-T-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
       <a href="../../../../../../org/apache/hadoop/hbase/types/DataType.html" title="type parameter in DataType">T</a>&nbsp;val)</code>
 <div class="block">Write instance <code>val</code> into buffer <code>dst</code>.</div>
 </td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">FixedLengthWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/FixedLengthWrapper.html#encode-org.apache.hadoop.hbase.util.PositionedByteRange-T-">encode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
-      <a href="../../../../../../org/apache/hadoop/hbase/types/FixedLengthWrapper.html" title="type parameter in FixedLengthWrapper">T</a>&nbsp;val)</code>&nbsp;</td>
-</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><span class="typeNameLabel">OrderedInt8.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedInt8.html#encodeByte-org.apache.hadoop.hbase.util.PositionedByteRange-byte-">encodeByte</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;dst,
@@ -536,11 +536,13 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawLong.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawLong.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">FixedLengthWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/FixedLengthWrapper.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawByte.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawByte.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TerminatedWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/TerminatedWrapper.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>
+<div class="block">Skip <code>src</code>'s position forward over one encoded value.</div>
+</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>int</code></td>
@@ -548,47 +550,45 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawInteger.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawInteger.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">RawByte.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawByte.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">TerminatedWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/TerminatedWrapper.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>
-<div class="block">Skip <code>src</code>'s position forward over one encoded value.</div>
-</td>
+<td class="colLast"><span class="typeNameLabel">RawBytes.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytes.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawBytes.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawBytes.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">RawFloat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawFloat.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">OrderedBytesBase.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedBytesBase.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">RawLong.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawLong.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">Struct.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/Struct.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>int</code></td>
 <td class="colLast"><span class="typeNameLabel">DataType.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/DataType.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>
 <div class="block">Skip <code>src</code>'s position forward over one encoded value.</div>
 </td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><span class="typeNameLabel">Struct.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/Struct.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawDouble.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawDouble.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">OrderedBytesBase.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/OrderedBytesBase.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">FixedLengthWrapper.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/FixedLengthWrapper.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">RawDouble.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawDouble.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawShort.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawShort.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">RawInteger.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawInteger.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">RawFloat.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawFloat.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">RawShort.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/types/RawShort.html#skip-org.apache.hadoop.hbase.util.PositionedByteRange-">skip</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected int</code></td>
@@ -661,11 +661,11 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#deepCopy--">deepCopy</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#deepCopy--">deepCopy</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#deepCopy--">deepCopy</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#deepCopy--">deepCopy</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
@@ -688,12 +688,12 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#get-int-byte:A-">get</a></span>(int&nbsp;index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#get-int-byte:A-">get</a></span>(int&nbsp;index,
    byte[]&nbsp;dst)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#get-int-byte:A-">get</a></span>(int&nbsp;index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#get-int-byte:A-">get</a></span>(int&nbsp;index,
    byte[]&nbsp;dst)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
@@ -705,14 +705,14 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#get-int-byte:A-int-int-">get</a></span>(int&nbsp;index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#get-int-byte:A-int-int-">get</a></span>(int&nbsp;index,
    byte[]&nbsp;dst,
    int&nbsp;offset,
    int&nbsp;length)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#get-int-byte:A-int-int-">get</a></span>(int&nbsp;index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#get-int-byte:A-int-int-">get</a></span>(int&nbsp;index,
    byte[]&nbsp;dst,
    int&nbsp;offset,
    int&nbsp;length)</code>&nbsp;</td>
@@ -725,11 +725,11 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#put-byte-">put</a></span>(byte&nbsp;val)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#put-byte-">put</a></span>(byte&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#put-byte-">put</a></span>(byte&nbsp;val)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#put-byte-">put</a></span>(byte&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
@@ -739,11 +739,11 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#put-byte:A-">put</a></span>(byte[]&nbsp;val)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#put-byte:A-">put</a></span>(byte[]&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#put-byte:A-">put</a></span>(byte[]&nbsp;val)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#put-byte:A-">put</a></span>(byte[]&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
@@ -755,13 +755,13 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#put-byte:A-int-int-">put</a></span>(byte[]&nbsp;val,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#put-byte:A-int-int-">put</a></span>(byte[]&nbsp;val,
    int&nbsp;offset,
    int&nbsp;length)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#put-byte:A-int-int-">put</a></span>(byte[]&nbsp;val,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#put-byte:A-int-int-">put</a></span>(byte[]&nbsp;val,
    int&nbsp;offset,
    int&nbsp;length)</code>&nbsp;</td>
 </tr>
@@ -772,12 +772,12 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#put-int-byte-">put</a></span>(int&nbsp;index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#put-int-byte-">put</a></span>(int&nbsp;index,
    byte&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#put-int-byte-">put</a></span>(int&nbsp;index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#put-int-byte-">put</a></span>(int&nbsp;index,
    byte&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
@@ -787,12 +787,12 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#put-int-byte:A-">put</a></span>(int&nbsp;index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#put-int-byte:A-">put</a></span>(int&nbsp;index,
    byte[]&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#put-int-byte:A-">put</a></span>(int&nbsp;index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#put-int-byte:A-">put</a></span>(int&nbsp;index,
    byte[]&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
@@ -804,14 +804,14 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#put-int-byte:A-int-int-">put</a></span>(int&nbsp;index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#put-int-byte:A-int-int-">put</a></span>(int&nbsp;index,
    byte[]&nbsp;val,
    int&nbsp;offset,
    int&nbsp;length)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#put-int-byte:A-int-int-">put</a></span>(int&nbsp;index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#put-int-byte:A-int-int-">put</a></span>(int&nbsp;index,
    byte[]&nbsp;val,
    int&nbsp;offset,
    int&nbsp;length)</code>&nbsp;</td>
@@ -824,11 +824,11 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#putInt-int-">putInt</a></span>(int&nbsp;val)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#putInt-int-">putInt</a></span>(int&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#putInt-int-">putInt</a></span>(int&nbsp;val)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#putInt-int-">putInt</a></span>(int&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
@@ -837,12 +837,12 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#putInt-int-int-">putInt</a></span>(int&nbsp;index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#putInt-int-int-">putInt</a></span>(int&nbsp;index,
       int&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#putInt-int-int-">putInt</a></span>(int&nbsp;index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#putInt-int-int-">putInt</a></span>(int&nbsp;index,
       int&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
@@ -852,12 +852,12 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#putLong-int-long-">putLong</a></span>(int&nbsp;index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#putLong-int-long-">putLong</a></span>(int&nbsp;index,
        long&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#putLong-int-long-">putLong</a></span>(int&nbsp;index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#putLong-int-long-">putLong</a></span>(int&nbsp;index,
        long&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
@@ -868,11 +868,11 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#putLong-long-">putLong</a></span>(long&nbsp;val)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#putLong-long-">putLong</a></span>(long&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#putLong-long-">putLong</a></span>(long&nbsp;val)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#putLong-long-">putLong</a></span>(long&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
@@ -881,12 +881,12 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#putShort-int-short-">putShort</a></span>(int&nbsp;index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#putShort-int-short-">putShort</a></span>(int&nbsp;index,
         short&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#putShort-int-short-">putShort</a></span>(int&nbsp;index,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#putShort-int-short-">putShort</a></span>(int&nbsp;index,
         short&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
@@ -897,11 +897,11 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#putShort-short-">putShort</a></span>(short&nbsp;val)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#putShort-short-">putShort</a></span>(short&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#putShort-short-">putShort</a></span>(short&nbsp;val)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#putShort-short-">putShort</a></span>(short&nbsp;val)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
@@ -909,11 +909,11 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#set-byte:A-">set</a></span>(byte[]&nbsp;bytes)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#set-byte:A-">set</a></span>(byte[]&nbsp;bytes)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#set-byte:A-">set</a></span>(byte[]&nbsp;bytes)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#set-byte:A-">set</a></span>(byte[]&nbsp;bytes)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
@@ -923,13 +923,13 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#set-byte:A-int-int-">set</a></span>(byte[]&nbsp;bytes,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#set-byte:A-int-int-">set</a></span>(byte[]&nbsp;bytes,
    int&nbsp;offset,
    int&nbsp;length)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#set-byte:A-int-int-">set</a></span>(byte[]&nbsp;bytes,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#set-byte:A-int-int-">set</a></span>(byte[]&nbsp;bytes,
    int&nbsp;offset,
    int&nbsp;length)</code>&nbsp;</td>
 </tr>
@@ -939,11 +939,11 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#set-int-">set</a></span>(int&nbsp;capacity)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#set-int-">set</a></span>(int&nbsp;capacity)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#set-int-">set</a></span>(int&nbsp;capacity)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#set-int-">set</a></span>(int&nbsp;capacity)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
@@ -987,11 +987,11 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#shallowCopy--">shallowCopy</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#shallowCopy--">shallowCopy</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#shallowCopy--">shallowCopy</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#shallowCopy--">shallowCopy</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
@@ -1000,12 +1000,12 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#shallowCopySubRange-int-int-">shallowCopySubRange</a></span>(int&nbsp;innerOffset,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#shallowCopySubRange-int-int-">shallowCopySubRange</a></span>(int&nbsp;innerOffset,
                    int&nbsp;copyLength)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#shallowCopySubRange-int-int-">shallowCopySubRange</a></span>(int&nbsp;innerOffset,
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#shallowCopySubRange-int-int-">shallowCopySubRange</a></span>(int&nbsp;innerOffset,
                    int&nbsp;copyLength)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
@@ -1014,11 +1014,11 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#unset--">unset</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#unset--">unset</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePositionedByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html#unset--">unset</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">SimplePositionedMutableByteRange.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html#unset--">unset</a></span>()</code>&nbsp;</td>
 </tr>
 </tbody>
 </table>
diff --git a/apidocs/overview-tree.html b/apidocs/overview-tree.html
index d569b238724..6d839540c8f 100644
--- a/apidocs/overview-tree.html
+++ b/apidocs/overview-tree.html
@@ -534,12 +534,12 @@
 <li type="circle">org.apache.hadoop.hbase.mapred.<a href="org/apache/hadoop/hbase/mapred/TableInputFormat.html" title="class in org.apache.hadoop.hbase.mapred"><span class="typeNameLink">TableInputFormat</span></a> (implements org.apache.hadoop.mapred.JobConfigurable)</li>
 </ul>
 </li>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html" title="class in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableMapReduceUtil</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapred.<a href="org/apache/hadoop/hbase/mapred/TableMapReduceUtil.html" title="class in org.apache.hadoop.hbase.mapred"><span class="typeNameLink">TableMapReduceUtil</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html" title="class in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableMapReduceUtil</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase"><span class="typeNameLink">TableName</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;)</li>
 <li type="circle">org.apache.hadoop.hbase.mapred.<a href="org/apache/hadoop/hbase/mapred/TableRecordReader.html" title="class in org.apache.hadoop.hbase.mapred"><span class="typeNameLink">TableRecordReader</span></a> (implements org.apache.hadoop.mapred.RecordReader&lt;K,V&gt;)</li>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.html" title="class in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableRecordReaderImpl</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapred.<a href="org/apache/hadoop/hbase/mapred/TableRecordReaderImpl.html" title="class in org.apache.hadoop.hbase.mapred"><span class="typeNameLink">TableRecordReaderImpl</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.html" title="class in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableRecordReaderImpl</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapred.<a href="org/apache/hadoop/hbase/mapred/TableSnapshotInputFormat.html" title="class in org.apache.hadoop.hbase.mapred"><span class="typeNameLink">TableSnapshotInputFormat</span></a> (implements org.apache.hadoop.mapred.InputFormat&lt;K,V&gt;)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.mapred.<a href="org/apache/hadoop/hbase/mapred/MultiTableSnapshotInputFormat.html" title="class in org.apache.hadoop.hbase.mapred"><span class="typeNameLink">MultiTableSnapshotInputFormat</span></a> (implements org.apache.hadoop.mapred.InputFormat&lt;K,V&gt;)</li>
@@ -951,32 +951,32 @@
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ServerType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ServerType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ServerType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ServerType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.security.<a href="org/apache/hadoop/hbase/client/security/SecurityCapability.html" title="enum in org.apache.hadoop.hbase.client.security"><span class="typeNameLink">SecurityCapability</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.compress.<a href="org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html" title="enum in org.apache.hadoop.hbase.io.compress"><span class="typeNameLink">Compression.Algorithm</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.encoding.<a href="org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding"><span class="typeNameLink">DataBlockEncoding</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.encoding.<a href="org/apache/hadoop/hbase/io/encoding/IndexBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding"><span class="typeNameLink">IndexBlockEncoding</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.compress.<a href="org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html" title="enum in org.apache.hadoop.hbase.io.compress"><span class="typeNameLink">Compression.Algorithm</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/util/Bytes.ByteArrayComparator.html b/apidocs/src-html/org/apache/hadoop/hbase/util/Bytes.ByteArrayComparator.html
index a6f66fed2df..651c12b7938 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/util/Bytes.ByteArrayComparator.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/util/Bytes.ByteArrayComparator.html
@@ -1187,1265 +1187,1358 @@
 <span class="sourceLineNo">1179</span><a name="line.1179"></a>
 <span class="sourceLineNo">1180</span>  }<a name="line.1180"></a>
 <span class="sourceLineNo">1181</span><a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>  static Comparer&lt;byte[]&gt; lexicographicalComparerJavaImpl() {<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>    return LexicographicalComparerHolder.PureJavaComparer.INSTANCE;<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>  }<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span><a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>  static class ConverterHolder {<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>    static final String UNSAFE_CONVERTER_NAME =<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>      ConverterHolder.class.getName() + "$UnsafeConverter";<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span><a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>    static final Converter BEST_CONVERTER = getBestConverter();<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span><a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>    /**<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>     * Returns the Unsafe-using Converter, or falls back to the pure-Java implementation if unable<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>     * to do so.<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>     */<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>    static Converter getBestConverter() {<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>      try {<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>        Class&lt;?&gt; theClass = Class.forName(UNSAFE_CONVERTER_NAME);<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span><a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>        // yes, UnsafeComparer does implement Comparer&lt;byte[]&gt;<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>        @SuppressWarnings("unchecked")<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>        Converter converter = (Converter) theClass.getConstructor().newInstance();<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>        return converter;<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      } catch (Throwable t) { // ensure we really catch *everything*<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>        return PureJavaConverter.INSTANCE;<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>      }<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>    }<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span><a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>    protected static final class PureJavaConverter extends Converter {<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>      static final PureJavaConverter INSTANCE = new PureJavaConverter();<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span><a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>      private PureJavaConverter() {<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>      }<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span><a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>      @Override<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      long toLong(byte[] bytes, int offset, int length) {<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>        long l = 0;<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>        for (int i = offset; i &lt; offset + length; i++) {<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>          l &lt;&lt;= 8;<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>          l ^= bytes[i] &amp; 0xFF;<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>        }<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>        return l;<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>      }<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span><a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>      @Override<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>      int putLong(byte[] bytes, int offset, long val) {<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>        for (int i = offset + 7; i &gt; offset; i--) {<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>          bytes[i] = (byte) val;<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span>          val &gt;&gt;&gt;= 8;<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>        }<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>        bytes[offset] = (byte) val;<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>        return offset + SIZEOF_LONG;<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>      }<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span><a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>      @Override<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>      int toInt(byte[] bytes, int offset, int length) {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>        int n = 0;<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>        for (int i = offset; i &lt; (offset + length); i++) {<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>          n &lt;&lt;= 8;<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>          n ^= bytes[i] &amp; 0xFF;<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>        }<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>        return n;<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>      }<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span><a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>      @Override<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>      int putInt(byte[] bytes, int offset, int val) {<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>        for (int i = offset + 3; i &gt; offset; i--) {<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>          bytes[i] = (byte) val;<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>          val &gt;&gt;&gt;= 8;<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>        }<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>        bytes[offset] = (byte) val;<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>        return offset + SIZEOF_INT;<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>      }<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span><a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>      @Override<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>      short toShort(byte[] bytes, int offset, int length) {<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>        short n = 0;<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>        n = (short) ((n ^ bytes[offset]) &amp; 0xFF);<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>        n = (short) (n &lt;&lt; 8);<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>        n ^= (short) (bytes[offset + 1] &amp; 0xFF);<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>        return n;<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>      }<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span><a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>      @Override<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>      int putShort(byte[] bytes, int offset, short val) {<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>        bytes[offset + 1] = (byte) val;<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>        val &gt;&gt;= 8;<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>        bytes[offset] = (byte) val;<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>        return offset + SIZEOF_SHORT;<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>      }<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>    }<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span><a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>    protected static final class UnsafeConverter extends Converter {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span><a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>      public UnsafeConverter() {<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>      }<a name="line.1276"></a>
+<span class="sourceLineNo">1182</span>  static abstract class CommonPrefixer {<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    abstract int findCommonPrefix(byte[] left, int leftOffset, int leftLength, byte[] right,<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>      int rightOffset, int rightLength);<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>  }<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span><a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>  static Comparer&lt;byte[]&gt; lexicographicalComparerJavaImpl() {<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>    return LexicographicalComparerHolder.PureJavaComparer.INSTANCE;<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>  }<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span><a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>  static class ConverterHolder {<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>    static final String UNSAFE_CONVERTER_NAME =<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>      ConverterHolder.class.getName() + "$UnsafeConverter";<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span><a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>    static final Converter BEST_CONVERTER = getBestConverter();<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span><a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>    /**<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>     * Returns the Unsafe-using Converter, or falls back to the pure-Java implementation if unable<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>     * to do so.<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>     */<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>    static Converter getBestConverter() {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>      try {<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>        Class&lt;?&gt; theClass = Class.forName(UNSAFE_CONVERTER_NAME);<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span><a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>        // yes, UnsafeComparer does implement Comparer&lt;byte[]&gt;<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>        @SuppressWarnings("unchecked")<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>        Converter converter = (Converter) theClass.getConstructor().newInstance();<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>        return converter;<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>      } catch (Throwable t) { // ensure we really catch *everything*<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>        return PureJavaConverter.INSTANCE;<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>      }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>    }<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span><a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>    protected static final class PureJavaConverter extends Converter {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>      static final PureJavaConverter INSTANCE = new PureJavaConverter();<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span><a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>      private PureJavaConverter() {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>      }<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span><a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>      @Override<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>      long toLong(byte[] bytes, int offset, int length) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>        long l = 0;<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>        for (int i = offset; i &lt; offset + length; i++) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>          l &lt;&lt;= 8;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>          l ^= bytes[i] &amp; 0xFF;<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>        }<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>        return l;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>      }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span><a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>      @Override<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>      int putLong(byte[] bytes, int offset, long val) {<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>        for (int i = offset + 7; i &gt; offset; i--) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>          bytes[i] = (byte) val;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>          val &gt;&gt;&gt;= 8;<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>        }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>        bytes[offset] = (byte) val;<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>        return offset + SIZEOF_LONG;<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>      }<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span><a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>      @Override<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>      int toInt(byte[] bytes, int offset, int length) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>        int n = 0;<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>        for (int i = offset; i &lt; (offset + length); i++) {<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>          n &lt;&lt;= 8;<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>          n ^= bytes[i] &amp; 0xFF;<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>        }<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>        return n;<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>      }<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span><a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>      @Override<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>      int putInt(byte[] bytes, int offset, int val) {<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>        for (int i = offset + 3; i &gt; offset; i--) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>          bytes[i] = (byte) val;<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>          val &gt;&gt;&gt;= 8;<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>        }<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>        bytes[offset] = (byte) val;<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>        return offset + SIZEOF_INT;<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>      }<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span><a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>      @Override<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>      short toShort(byte[] bytes, int offset, int length) {<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>        short n = 0;<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>        n = (short) ((n ^ bytes[offset]) &amp; 0xFF);<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>        n = (short) (n &lt;&lt; 8);<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>        n ^= (short) (bytes[offset + 1] &amp; 0xFF);<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>        return n;<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>      }<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>      @Override<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>      int putShort(byte[] bytes, int offset, short val) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>        bytes[offset + 1] = (byte) val;<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>        val &gt;&gt;= 8;<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>        bytes[offset] = (byte) val;<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>        return offset + SIZEOF_SHORT;<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>      }<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>    }<a name="line.1276"></a>
 <span class="sourceLineNo">1277</span><a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>      static {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>        if (!UNSAFE_UNALIGNED) {<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>          // It doesn't matter what we throw;<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>          // it's swallowed in getBestComparer().<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>          throw new Error();<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>        }<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span><a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>        // sanity check - this should never fail<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>        if (HBasePlatformDependent.arrayIndexScale(byte[].class) != 1) {<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>          throw new AssertionError();<a name="line.1287"></a>
+<span class="sourceLineNo">1278</span>    protected static final class UnsafeConverter extends Converter {<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span><a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>      public UnsafeConverter() {<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>      }<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span><a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>      static {<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>        if (!UNSAFE_UNALIGNED) {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>          // It doesn't matter what we throw;<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>          // it's swallowed in getBestComparer().<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>          throw new Error();<a name="line.1287"></a>
 <span class="sourceLineNo">1288</span>        }<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>      }<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span><a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>      @Override<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>      long toLong(byte[] bytes, int offset, int length) {<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>        return UnsafeAccess.toLong(bytes, offset);<a name="line.1293"></a>
+<span class="sourceLineNo">1289</span><a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>        // sanity check - this should never fail<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>        if (HBasePlatformDependent.arrayIndexScale(byte[].class) != 1) {<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>          throw new AssertionError();<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>        }<a name="line.1293"></a>
 <span class="sourceLineNo">1294</span>      }<a name="line.1294"></a>
 <span class="sourceLineNo">1295</span><a name="line.1295"></a>
 <span class="sourceLineNo">1296</span>      @Override<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>      int putLong(byte[] bytes, int offset, long val) {<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>        return UnsafeAccess.putLong(bytes, offset, val);<a name="line.1298"></a>
+<span class="sourceLineNo">1297</span>      long toLong(byte[] bytes, int offset, int length) {<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>        return UnsafeAccess.toLong(bytes, offset);<a name="line.1298"></a>
 <span class="sourceLineNo">1299</span>      }<a name="line.1299"></a>
 <span class="sourceLineNo">1300</span><a name="line.1300"></a>
 <span class="sourceLineNo">1301</span>      @Override<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>      int toInt(byte[] bytes, int offset, int length) {<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>        return UnsafeAccess.toInt(bytes, offset);<a name="line.1303"></a>
+<span class="sourceLineNo">1302</span>      int putLong(byte[] bytes, int offset, long val) {<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>        return UnsafeAccess.putLong(bytes, offset, val);<a name="line.1303"></a>
 <span class="sourceLineNo">1304</span>      }<a name="line.1304"></a>
 <span class="sourceLineNo">1305</span><a name="line.1305"></a>
 <span class="sourceLineNo">1306</span>      @Override<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>      int putInt(byte[] bytes, int offset, int val) {<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>        return UnsafeAccess.putInt(bytes, offset, val);<a name="line.1308"></a>
+<span class="sourceLineNo">1307</span>      int toInt(byte[] bytes, int offset, int length) {<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>        return UnsafeAccess.toInt(bytes, offset);<a name="line.1308"></a>
 <span class="sourceLineNo">1309</span>      }<a name="line.1309"></a>
 <span class="sourceLineNo">1310</span><a name="line.1310"></a>
 <span class="sourceLineNo">1311</span>      @Override<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>      short toShort(byte[] bytes, int offset, int length) {<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>        return UnsafeAccess.toShort(bytes, offset);<a name="line.1313"></a>
+<span class="sourceLineNo">1312</span>      int putInt(byte[] bytes, int offset, int val) {<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>        return UnsafeAccess.putInt(bytes, offset, val);<a name="line.1313"></a>
 <span class="sourceLineNo">1314</span>      }<a name="line.1314"></a>
 <span class="sourceLineNo">1315</span><a name="line.1315"></a>
 <span class="sourceLineNo">1316</span>      @Override<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>      int putShort(byte[] bytes, int offset, short val) {<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>        return UnsafeAccess.putShort(bytes, offset, val);<a name="line.1318"></a>
+<span class="sourceLineNo">1317</span>      short toShort(byte[] bytes, int offset, int length) {<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>        return UnsafeAccess.toShort(bytes, offset);<a name="line.1318"></a>
 <span class="sourceLineNo">1319</span>      }<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>    }<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>  }<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span><a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>  /**<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>   * Provides a lexicographical comparer implementation; either a Java implementation or a faster<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>   * implementation based on {@code Unsafe}.<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>   * &lt;p&gt;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>   * Uses reflection to gracefully fall back to the Java implementation if {@code Unsafe} isn't<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>   * available.<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>   */<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>  static class LexicographicalComparerHolder {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>    static final String UNSAFE_COMPARER_NAME =<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>      LexicographicalComparerHolder.class.getName() + "$UnsafeComparer";<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span><a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>    static final Comparer&lt;byte[]&gt; BEST_COMPARER = getBestComparer();<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span><a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>    /**<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>     * Returns the Unsafe-using Comparer, or falls back to the pure-Java implementation if unable to<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>     * do so.<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>     */<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>    static Comparer&lt;byte[]&gt; getBestComparer() {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>      try {<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>        Class&lt;?&gt; theClass = Class.forName(UNSAFE_COMPARER_NAME);<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span><a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>        // yes, UnsafeComparer does implement Comparer&lt;byte[]&gt;<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>        @SuppressWarnings("unchecked")<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>        Comparer&lt;byte[]&gt; comparer = (Comparer&lt;byte[]&gt;) theClass.getEnumConstants()[0];<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>        return comparer;<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>      } catch (Throwable t) { // ensure we really catch *everything*<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>        return lexicographicalComparerJavaImpl();<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>      }<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>    }<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span><a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>    enum PureJavaComparer implements Comparer&lt;byte[]&gt; {<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>      INSTANCE;<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span><a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>      @Override<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>      public int compareTo(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2,<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>        int length2) {<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>        // Short circuit equal case<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>        if (buffer1 == buffer2 &amp;&amp; offset1 == offset2 &amp;&amp; length1 == length2) {<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>          return 0;<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>        }<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>        // Bring WritableComparator code local<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>        int end1 = offset1 + length1;<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>        int end2 = offset2 + length2;<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span>        for (int i = offset1, j = offset2; i &lt; end1 &amp;&amp; j &lt; end2; i++, j++) {<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>          int a = (buffer1[i] &amp; 0xff);<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>          int b = (buffer2[j] &amp; 0xff);<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span>          if (a != b) {<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>            return a - b;<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>          }<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>        }<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>        return length1 - length2;<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span>      }<a name="line.1374"></a>
-<span class="sourceLineNo">1375</span>    }<a name="line.1375"></a>
-<span class="sourceLineNo">1376</span><a name="line.1376"></a>
-<span class="sourceLineNo">1377</span>    enum UnsafeComparer implements Comparer&lt;byte[]&gt; {<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span>      INSTANCE;<a name="line.1378"></a>
-<span class="sourceLineNo">1379</span><a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>      static {<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>        if (!UNSAFE_UNALIGNED) {<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>          // It doesn't matter what we throw;<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>          // it's swallowed in getBestComparer().<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span>          throw new Error();<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>        }<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span><a name="line.1386"></a>
-<span class="sourceLineNo">1387</span>        // sanity check - this should never fail<a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>        if (HBasePlatformDependent.arrayIndexScale(byte[].class) != 1) {<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>          throw new AssertionError();<a name="line.1389"></a>
+<span class="sourceLineNo">1320</span><a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>      @Override<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>      int putShort(byte[] bytes, int offset, short val) {<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>        return UnsafeAccess.putShort(bytes, offset, val);<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>      }<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    }<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>  }<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span><a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>  /**<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>   * Provides a lexicographical comparer implementation; either a Java implementation or a faster<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>   * implementation based on {@code Unsafe}.<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>   * &lt;p&gt;<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>   * Uses reflection to gracefully fall back to the Java implementation if {@code Unsafe} isn't<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>   * available.<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>   */<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>  static class LexicographicalComparerHolder {<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>    static final String UNSAFE_COMPARER_NAME =<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>      LexicographicalComparerHolder.class.getName() + "$UnsafeComparer";<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span><a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>    static final Comparer&lt;byte[]&gt; BEST_COMPARER = getBestComparer();<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span><a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>    /**<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>     * Returns the Unsafe-using Comparer, or falls back to the pure-Java implementation if unable to<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>     * do so.<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>     */<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>    static Comparer&lt;byte[]&gt; getBestComparer() {<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>      try {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>        Class&lt;?&gt; theClass = Class.forName(UNSAFE_COMPARER_NAME);<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span><a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>        // yes, UnsafeComparer does implement Comparer&lt;byte[]&gt;<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>        @SuppressWarnings("unchecked")<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>        Comparer&lt;byte[]&gt; comparer = (Comparer&lt;byte[]&gt;) theClass.getEnumConstants()[0];<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>        return comparer;<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>      } catch (Throwable t) { // ensure we really catch *everything*<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>        return lexicographicalComparerJavaImpl();<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>      }<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>    }<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span><a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>    enum PureJavaComparer implements Comparer&lt;byte[]&gt; {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>      INSTANCE;<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span><a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>      @Override<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>      public int compareTo(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2,<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>        int length2) {<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>        // Short circuit equal case<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>        if (buffer1 == buffer2 &amp;&amp; offset1 == offset2 &amp;&amp; length1 == length2) {<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>          return 0;<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>        }<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>        // Bring WritableComparator code local<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>        int end1 = offset1 + length1;<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>        int end2 = offset2 + length2;<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>        for (int i = offset1, j = offset2; i &lt; end1 &amp;&amp; j &lt; end2; i++, j++) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>          int a = (buffer1[i] &amp; 0xff);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>          int b = (buffer2[j] &amp; 0xff);<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>          if (a != b) {<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>            return a - b;<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>          }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>        }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>        return length1 - length2;<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>      }<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>    }<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span><a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>    enum UnsafeComparer implements Comparer&lt;byte[]&gt; {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>      INSTANCE;<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span><a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>      static {<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>        if (!UNSAFE_UNALIGNED) {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>          // It doesn't matter what we throw;<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>          // it's swallowed in getBestComparer().<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>          throw new Error();<a name="line.1389"></a>
 <span class="sourceLineNo">1390</span>        }<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>      }<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span><a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>      /**<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span>       * Lexicographically compare two arrays.<a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>       * @param buffer1 left operand<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>       * @param buffer2 right operand<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>       * @param offset1 Where to start comparing in the left buffer<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>       * @param offset2 Where to start comparing in the right buffer<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span>       * @param length1 How much to compare from the left buffer<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>       * @param length2 How much to compare from the right buffer<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>       * @return 0 if equal, &lt; 0 if left is less than right, etc.<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>       */<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>      @Override<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>      public int compareTo(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2,<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>        int length2) {<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span><a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>        // Short circuit equal case<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>        if (buffer1 == buffer2 &amp;&amp; offset1 == offset2 &amp;&amp; length1 == length2) {<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>          return 0;<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>        }<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>        final int stride = 8;<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>        final int minLength = Math.min(length1, length2);<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span>        int strideLimit = minLength &amp; ~(stride - 1);<a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>        final long offset1Adj = offset1 + UnsafeAccess.BYTE_ARRAY_BASE_OFFSET;<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>        final long offset2Adj = offset2 + UnsafeAccess.BYTE_ARRAY_BASE_OFFSET;<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>        int i;<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span><a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>        /*<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>         * Compare 8 bytes at a time. Benchmarking on x86 shows a stride of 8 bytes is no slower<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>         * than 4 bytes even on 32-bit. On the other hand, it is substantially faster on 64-bit.<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>         */<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>        for (i = 0; i &lt; strideLimit; i += stride) {<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>          long lw = HBasePlatformDependent.getLong(buffer1, offset1Adj + i);<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>          long rw = HBasePlatformDependent.getLong(buffer2, offset2Adj + i);<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>          if (lw != rw) {<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>            if (!UnsafeAccess.LITTLE_ENDIAN) {<a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>              return ((lw + Long.MIN_VALUE) &lt; (rw + Long.MIN_VALUE)) ? -1 : 1;<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>            }<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span><a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>            /*<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span>             * We want to compare only the first index where left[index] != right[index]. This<a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>             * corresponds to the least significant nonzero byte in lw ^ rw, since lw and rw are<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>             * little-endian. Long.numberOfTrailingZeros(diff) tells us the least significant<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>             * nonzero bit, and zeroing out the first three bits of L.nTZ gives us the shift to get<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>             * that least significant nonzero byte. This comparison logic is based on UnsignedBytes<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>             * comparator from guava v21<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>             */<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>            int n = Long.numberOfTrailingZeros(lw ^ rw) &amp; ~0x7;<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span>            return ((int) ((lw &gt;&gt;&gt; n) &amp; 0xFF)) - ((int) ((rw &gt;&gt;&gt; n) &amp; 0xFF));<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span>          }<a name="line.1440"></a>
-<span class="sourceLineNo">1441</span>        }<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span><a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>        // The epilogue to cover the last (minLength % stride) elements.<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>        for (; i &lt; minLength; i++) {<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span>          int a = (buffer1[offset1 + i] &amp; 0xFF);<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>          int b = (buffer2[offset2 + i] &amp; 0xFF);<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>          if (a != b) {<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>            return a - b;<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>          }<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span>        }<a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>        return length1 - length2;<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>      }<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>    }<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>  }<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span><a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>  /**<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>   * Lexicographically determine the equality of two arrays.<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>   * @param left  left operand<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>   * @param right right operand<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>   * @return True if equal<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>   */<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>  public static boolean equals(final byte[] left, final byte[] right) {<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>    // Could use Arrays.equals?<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>    // noinspection SimplifiableConditionalExpression<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>    if (left == right) return true;<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>    if (left == null || right == null) return false;<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>    if (left.length != right.length) return false;<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>    if (left.length == 0) return true;<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span><a name="line.1469"></a>
-<span class="sourceLineNo">1470</span>    // Since we're often comparing adjacent sorted data,<a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>    // it's usual to have equal arrays except for the very last byte<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span>    // so check that first<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>    if (left[left.length - 1] != right[right.length - 1]) return false;<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span><a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>    return compareTo(left, right) == 0;<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>  }<a name="line.1476"></a>
+<span class="sourceLineNo">1391</span><a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>        // sanity check - this should never fail<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>        if (HBasePlatformDependent.arrayIndexScale(byte[].class) != 1) {<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>          throw new AssertionError();<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>        }<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>      }<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span><a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>      /**<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>       * Lexicographically compare two arrays.<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>       * @param buffer1 left operand<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>       * @param buffer2 right operand<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>       * @param offset1 Where to start comparing in the left buffer<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>       * @param offset2 Where to start comparing in the right buffer<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>       * @param length1 How much to compare from the left buffer<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>       * @param length2 How much to compare from the right buffer<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>       * @return 0 if equal, &lt; 0 if left is less than right, etc.<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>       */<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>      @Override<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>      public int compareTo(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2,<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>        int length2) {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span><a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>        // Short circuit equal case<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>        if (buffer1 == buffer2 &amp;&amp; offset1 == offset2 &amp;&amp; length1 == length2) {<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>          return 0;<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>        }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>        final int stride = 8;<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>        final int minLength = Math.min(length1, length2);<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>        int strideLimit = minLength &amp; ~(stride - 1);<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>        final long offset1Adj = offset1 + UnsafeAccess.BYTE_ARRAY_BASE_OFFSET;<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>        final long offset2Adj = offset2 + UnsafeAccess.BYTE_ARRAY_BASE_OFFSET;<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>        int i;<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span><a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>        /*<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>         * Compare 8 bytes at a time. Benchmarking on x86 shows a stride of 8 bytes is no slower<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>         * than 4 bytes even on 32-bit. On the other hand, it is substantially faster on 64-bit.<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>         */<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>        for (i = 0; i &lt; strideLimit; i += stride) {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>          long lw = HBasePlatformDependent.getLong(buffer1, offset1Adj + i);<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>          long rw = HBasePlatformDependent.getLong(buffer2, offset2Adj + i);<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>          if (lw != rw) {<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>            if (!UnsafeAccess.LITTLE_ENDIAN) {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>              return ((lw + Long.MIN_VALUE) &lt; (rw + Long.MIN_VALUE)) ? -1 : 1;<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>            }<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span><a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>            /*<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>             * We want to compare only the first index where left[index] != right[index]. This<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>             * corresponds to the least significant nonzero byte in lw ^ rw, since lw and rw are<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>             * little-endian. Long.numberOfTrailingZeros(diff) tells us the least significant<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>             * nonzero bit, and zeroing out the first three bits of L.nTZ gives us the shift to get<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>             * that least significant nonzero byte. This comparison logic is based on UnsignedBytes<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>             * comparator from guava v21<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>             */<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>            int n = Long.numberOfTrailingZeros(lw ^ rw) &amp; ~0x7;<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>            return ((int) ((lw &gt;&gt;&gt; n) &amp; 0xFF)) - ((int) ((rw &gt;&gt;&gt; n) &amp; 0xFF));<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>          }<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>        }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span><a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>        // The epilogue to cover the last (minLength % stride) elements.<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>        for (; i &lt; minLength; i++) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>          int a = (buffer1[offset1 + i] &amp; 0xFF);<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>          int b = (buffer2[offset2 + i] &amp; 0xFF);<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>          if (a != b) {<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>            return a - b;<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>          }<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>        }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>        return length1 - length2;<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>      }<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>    }<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>  }<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span><a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>  static class CommonPrefixerHolder {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>    static final String UNSAFE_COMMON_PREFIXER_NAME =<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>      CommonPrefixerHolder.class.getName() + "$UnsafeCommonPrefixer";<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span><a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>    static final CommonPrefixer BEST_COMMON_PREFIXER = getBestCommonPrefixer();<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span><a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>    static CommonPrefixer getBestCommonPrefixer() {<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>      try {<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>        Class&lt;? extends CommonPrefixer&gt; theClass =<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>          Class.forName(UNSAFE_COMMON_PREFIXER_NAME).asSubclass(CommonPrefixer.class);<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span><a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>        return theClass.getConstructor().newInstance();<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>      } catch (Throwable t) { // ensure we really catch *everything*<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>        return CommonPrefixerHolder.PureJavaCommonPrefixer.INSTANCE;<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>      }<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>    }<a name="line.1476"></a>
 <span class="sourceLineNo">1477</span><a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>  /**<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>   * Lexicographically determine the equality of two arrays.<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span>   * @param left        left operand<a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>   * @param leftOffset  offset into left operand<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>   * @param leftLen     length of left operand<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>   * @param right       right operand<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>   * @param rightOffset offset into right operand<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>   * @param rightLen    length of right operand<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>   * @return True if equal<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>   */<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>  public static boolean equals(final byte[] left, int leftOffset, int leftLen, final byte[] right,<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span>    int rightOffset, int rightLen) {<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span>    // short circuit case<a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>    if (left == right &amp;&amp; leftOffset == rightOffset &amp;&amp; leftLen == rightLen) {<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>      return true;<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>    }<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>    // different lengths fast check<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>    if (leftLen != rightLen) {<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>      return false;<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>    }<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>    if (leftLen == 0) {<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>      return true;<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>    }<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span><a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>    // Since we're often comparing adjacent sorted data,<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>    // it's usual to have equal arrays except for the very last byte<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>    // so check that first<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>    if (left[leftOffset + leftLen - 1] != right[rightOffset + rightLen - 1]) return false;<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span><a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>    return LexicographicalComparerHolder.BEST_COMPARER.compareTo(left, leftOffset, leftLen, right,<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>      rightOffset, rightLen) == 0;<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>  }<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span><a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>  /**<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>   * Lexicographically determine the equality of two byte[], one as ByteBuffer.<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>   * @param a   left operand<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span>   * @param buf right operand<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>   * @return True if equal<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>   */<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>  public static boolean equals(byte[] a, ByteBuffer buf) {<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>    if (a == null) return buf == null;<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>    if (buf == null) return false;<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>    if (a.length != buf.remaining()) return false;<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span><a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>    // Thou shalt not modify the original byte buffer in what should be read only operations.<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>    ByteBuffer b = buf.duplicate();<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span>    for (byte anA : a) {<a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>      if (anA != b.get()) {<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>        return false;<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>      }<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>    }<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>    return true;<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>  }<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span><a name="line.1531"></a>
-<span class="sourceLineNo">1532</span>  /**<a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>   * Return true if the byte array on the right is a prefix of the byte array on the left.<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>   */<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>  public static boolean startsWith(byte[] bytes, byte[] prefix) {<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>    return bytes != null &amp;&amp; prefix != null &amp;&amp; bytes.length &gt;= prefix.length<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>      &amp;&amp; LexicographicalComparerHolder.BEST_COMPARER.compareTo(bytes, 0, prefix.length, prefix, 0,<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>        prefix.length) == 0;<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>  }<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span><a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>  /**<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>   * Calculate a hash code from a given byte array.<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span>   * @param b bytes to hash<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>   * @return Runs {@link WritableComparator#hashBytes(byte[], int)} on the passed in array. This<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>   *         method is what {@link org.apache.hadoop.io.Text} use calculating hash code.<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>   */<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>  public static int hashCode(final byte[] b) {<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>    return hashCode(b, b.length);<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>  }<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span><a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>  /**<a name="line.1551"></a>
-<span class="sourceLineNo">1552</span>   * Calculate a hash code from a given byte array.<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>   * @param b      value<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>   * @param length length of the value<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>   * @return Runs {@link WritableComparator#hashBytes(byte[], int)} on the passed in array. This<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>   *         method is what {@link org.apache.hadoop.io.Text} use calculating hash code.<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>   */<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>  public static int hashCode(final byte[] b, final int length) {<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>    return WritableComparator.hashBytes(b, length);<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>  }<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span><a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>  /**<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>   * Calculate a hash code from a given byte array suitable for use as a key in maps.<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>   * @param b bytes to hash<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>   * @return A hash of &lt;code&gt;b&lt;/code&gt; as an Integer that can be used as key in Maps.<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>   */<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>  public static Integer mapKey(final byte[] b) {<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>    return hashCode(b);<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>  }<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span><a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>  /**<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>   * Calculate a hash code from a given byte array suitable for use as a key in maps.<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>   * @param b      bytes to hash<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>   * @param length length to hash<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>   * @return A hash of &lt;code&gt;b&lt;/code&gt; as an Integer that can be used as key in Maps.<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>   */<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>  public static Integer mapKey(final byte[] b, final int length) {<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>    return hashCode(b, length);<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>  }<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span><a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>  /**<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>   * Concatenate byte arrays.<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>   * @param a lower half<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>   * @param b upper half<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>   * @return New array that has a in lower half and b in upper half.<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>   */<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>  public static byte[] add(final byte[] a, final byte[] b) {<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>    return add(a, b, EMPTY_BYTE_ARRAY);<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span>  }<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span><a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>  /**<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>   * Concatenate byte arrays.<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span>   * @param a first third<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>   * @param b second third<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>   * @param c third third<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>   * @return New array made from a, b and c<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>   */<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span>  public static byte[] add(final byte[] a, final byte[] b, final byte[] c) {<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>    byte[] result = new byte[a.length + b.length + c.length];<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>    System.arraycopy(a, 0, result, 0, a.length);<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>    System.arraycopy(b, 0, result, a.length, b.length);<a name="line.1601"></a>
-<span class="sourceLineNo">1602</span>    System.arraycopy(c, 0, result, a.length + b.length, c.length);<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>    return result;<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>  }<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span><a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>  /**<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>   * Concatenate byte arrays.<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span>   * @param arrays all the arrays to concatenate together.<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>   * @return New array made from the concatenation of the given arrays.<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>   */<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>  public static byte[] add(final byte[][] arrays) {<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>    int length = 0;<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>    for (int i = 0; i &lt; arrays.length; i++) {<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>      length += arrays[i].length;<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>    }<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>    byte[] result = new byte[length];<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>    int index = 0;<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>    for (int i = 0; i &lt; arrays.length; i++) {<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>      System.arraycopy(arrays[i], 0, result, index, arrays[i].length);<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>      index += arrays[i].length;<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>    }<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>    return result;<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>  }<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span><a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>  /**<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>   * Make a new byte array from a subset of bytes at the head of another.<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>   * @param a      array<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>   * @param length amount of bytes to grab<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>   * @return First &lt;code&gt;length&lt;/code&gt; bytes from &lt;code&gt;a&lt;/code&gt;<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>   */<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>  public static byte[] head(final byte[] a, final int length) {<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>    if (a.length &lt; length) {<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>      return null;<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>    }<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span>    byte[] result = new byte[length];<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>    System.arraycopy(a, 0, result, 0, length);<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>    return result;<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>  }<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span><a name="line.1639"></a>
-<span class="sourceLineNo">1640</span>  /**<a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>   * Make a new byte array from a subset of bytes at the tail of another.<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>   * @param a      array<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>   * @param length amount of bytes to snarf<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>   * @return Last &lt;code&gt;length&lt;/code&gt; bytes from &lt;code&gt;a&lt;/code&gt;<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>   */<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>  public static byte[] tail(final byte[] a, final int length) {<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>    if (a.length &lt; length) {<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>      return null;<a name="line.1648"></a>
-<span class="sourceLineNo">1649</span>    }<a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>    byte[] result = new byte[length];<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>    System.arraycopy(a, a.length - length, result, 0, length);<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>    return result;<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>  }<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span><a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>  /**<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>   * Make a new byte array from a subset of bytes at the head of another, zero padded as desired.<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>   * @param a      array<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>   * @param length new array size<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>   * @return Value in &lt;code&gt;a&lt;/code&gt; plus &lt;code&gt;length&lt;/code&gt; prepended 0 bytes<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>   */<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>  public static byte[] padHead(final byte[] a, final int length) {<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>    byte[] padding = new byte[length];<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>    for (int i = 0; i &lt; length; i++) {<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>      padding[i] = 0;<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>    }<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span>    return add(padding, a);<a name="line.1666"></a>
+<span class="sourceLineNo">1478</span>    static final class PureJavaCommonPrefixer extends CommonPrefixer {<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>      static final PureJavaCommonPrefixer INSTANCE = new PureJavaCommonPrefixer();<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span><a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>      private PureJavaCommonPrefixer() {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>      }<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span><a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>      @Override<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>      public int findCommonPrefix(byte[] left, int leftOffset, int leftLength, byte[] right,<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>        int rightOffset, int rightLength) {<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>        int length = Math.min(leftLength, rightLength);<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>        int result = 0;<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span><a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>        while (result &lt; length &amp;&amp; left[leftOffset + result] == right[rightOffset + result]) {<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>          result++;<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>        }<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>        return result;<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>      }<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>    }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span><a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>    static final class UnsafeCommonPrefixer extends CommonPrefixer {<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span><a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>      static {<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>        if (!UNSAFE_UNALIGNED) {<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>          throw new Error();<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>        }<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span><a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>        // sanity check - this should never fail<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>        if (HBasePlatformDependent.arrayIndexScale(byte[].class) != 1) {<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>          throw new AssertionError();<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>        }<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>      }<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span><a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>      public UnsafeCommonPrefixer() {<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>      }<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span><a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>      @Override<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>      public int findCommonPrefix(byte[] left, int leftOffset, int leftLength, byte[] right,<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>        int rightOffset, int rightLength) {<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>        final int stride = 8;<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>        final int minLength = Math.min(leftLength, rightLength);<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>        int strideLimit = minLength &amp; ~(stride - 1);<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>        final long leftOffsetAdj = leftOffset + UnsafeAccess.BYTE_ARRAY_BASE_OFFSET;<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>        final long rightOffsetAdj = rightOffset + UnsafeAccess.BYTE_ARRAY_BASE_OFFSET;<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>        int result = 0;<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>        int i;<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span><a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>        for (i = 0; i &lt; strideLimit; i += stride) {<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>          long lw = HBasePlatformDependent.getLong(left, leftOffsetAdj + i);<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>          long rw = HBasePlatformDependent.getLong(right, rightOffsetAdj + i);<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>          if (lw != rw) {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>            if (!UnsafeAccess.LITTLE_ENDIAN) {<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>              return result + (Long.numberOfLeadingZeros(lw ^ rw) / Bytes.SIZEOF_LONG);<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>            } else {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>              return result + (Long.numberOfTrailingZeros(lw ^ rw) / Bytes.SIZEOF_LONG);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>            }<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>          } else {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>            result += Bytes.SIZEOF_LONG;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>          }<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>        }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span><a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>        // The epilogue to cover the last (minLength % stride) elements.<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>        for (; i &lt; minLength; i++) {<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>          int il = (left[leftOffset + i]);<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>          int ir = (right[rightOffset + i]);<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>          if (il != ir) {<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>            return result;<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>          } else {<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>            result++;<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>          }<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>        }<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span><a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>        return result;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>      }<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>    }<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>  }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span><a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>  /**<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>   * Lexicographically determine the equality of two arrays.<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>   * @param left  left operand<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>   * @param right right operand<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>   * @return True if equal<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>   */<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>  public static boolean equals(final byte[] left, final byte[] right) {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>    // Could use Arrays.equals?<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>    // noinspection SimplifiableConditionalExpression<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>    if (left == right) return true;<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>    if (left == null || right == null) return false;<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>    if (left.length != right.length) return false;<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>    if (left.length == 0) return true;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span><a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>    // Since we're often comparing adjacent sorted data,<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>    // it's usual to have equal arrays except for the very last byte<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>    // so check that first<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>    if (left[left.length - 1] != right[right.length - 1]) return false;<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span><a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>    return compareTo(left, right) == 0;<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>  }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span><a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>  /**<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>   * Lexicographically determine the equality of two arrays.<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>   * @param left        left operand<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>   * @param leftOffset  offset into left operand<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>   * @param leftLen     length of left operand<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>   * @param right       right operand<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>   * @param rightOffset offset into right operand<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>   * @param rightLen    length of right operand<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>   * @return True if equal<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>   */<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>  public static boolean equals(final byte[] left, int leftOffset, int leftLen, final byte[] right,<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>    int rightOffset, int rightLen) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>    // short circuit case<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>    if (left == right &amp;&amp; leftOffset == rightOffset &amp;&amp; leftLen == rightLen) {<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>      return true;<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>    }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>    // different lengths fast check<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>    if (leftLen != rightLen) {<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>      return false;<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>    }<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>    if (leftLen == 0) {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>      return true;<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>    }<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span><a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>    // Since we're often comparing adjacent sorted data,<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>    // it's usual to have equal arrays except for the very last byte<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>    // so check that first<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>    if (left[leftOffset + leftLen - 1] != right[rightOffset + rightLen - 1]) return false;<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span><a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>    return LexicographicalComparerHolder.BEST_COMPARER.compareTo(left, leftOffset, leftLen, right,<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>      rightOffset, rightLen) == 0;<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>  }<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span><a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>  /**<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>   * Lexicographically determine the equality of two byte[], one as ByteBuffer.<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>   * @param a   left operand<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>   * @param buf right operand<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>   * @return True if equal<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>   */<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>  public static boolean equals(byte[] a, ByteBuffer buf) {<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>    if (a == null) return buf == null;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>    if (buf == null) return false;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>    if (a.length != buf.remaining()) return false;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span><a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>    // Thou shalt not modify the original byte buffer in what should be read only operations.<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>    ByteBuffer b = buf.duplicate();<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>    for (byte anA : a) {<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>      if (anA != b.get()) {<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>        return false;<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>      }<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>    }<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>    return true;<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>  }<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span><a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>  /**<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>   * Return true if the byte array on the right is a prefix of the byte array on the left.<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>   */<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>  public static boolean startsWith(byte[] bytes, byte[] prefix) {<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>    return bytes != null &amp;&amp; prefix != null &amp;&amp; bytes.length &gt;= prefix.length<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>      &amp;&amp; LexicographicalComparerHolder.BEST_COMPARER.compareTo(bytes, 0, prefix.length, prefix, 0,<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>        prefix.length) == 0;<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>  }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span><a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>  /**<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>   * Calculate a hash code from a given byte array.<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>   * @param b bytes to hash<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>   * @return Runs {@link WritableComparator#hashBytes(byte[], int)} on the passed in array. This<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>   *         method is what {@link org.apache.hadoop.io.Text} use calculating hash code.<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>   */<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>  public static int hashCode(final byte[] b) {<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>    return hashCode(b, b.length);<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>  }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span><a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>  /**<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>   * Calculate a hash code from a given byte array.<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>   * @param b      value<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>   * @param length length of the value<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>   * @return Runs {@link WritableComparator#hashBytes(byte[], int)} on the passed in array. This<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>   *         method is what {@link org.apache.hadoop.io.Text} use calculating hash code.<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>   */<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>  public static int hashCode(final byte[] b, final int length) {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>    return WritableComparator.hashBytes(b, length);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>  }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span><a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>  /**<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>   * Calculate a hash code from a given byte array suitable for use as a key in maps.<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>   * @param b bytes to hash<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>   * @return A hash of &lt;code&gt;b&lt;/code&gt; as an Integer that can be used as key in Maps.<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>   */<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>  public static Integer mapKey(final byte[] b) {<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>    return hashCode(b);<a name="line.1666"></a>
 <span class="sourceLineNo">1667</span>  }<a name="line.1667"></a>
 <span class="sourceLineNo">1668</span><a name="line.1668"></a>
 <span class="sourceLineNo">1669</span>  /**<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>   * Make a new byte array from a subset of bytes at the tail of another, zero padded as desired.<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>   * @param a      array<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span>   * @param length new array size<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>   * @return Value in &lt;code&gt;a&lt;/code&gt; plus &lt;code&gt;length&lt;/code&gt; appended 0 bytes<a name="line.1673"></a>
+<span class="sourceLineNo">1670</span>   * Calculate a hash code from a given byte array suitable for use as a key in maps.<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>   * @param b      bytes to hash<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>   * @param length length to hash<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>   * @return A hash of &lt;code&gt;b&lt;/code&gt; as an Integer that can be used as key in Maps.<a name="line.1673"></a>
 <span class="sourceLineNo">1674</span>   */<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>  public static byte[] padTail(final byte[] a, final int length) {<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span>    byte[] padding = new byte[length];<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>    for (int i = 0; i &lt; length; i++) {<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span>      padding[i] = 0;<a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>    }<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>    return add(a, padding);<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span>  }<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span><a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>  /**<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span>   * Split passed range. Expensive operation relatively. Uses BigInteger math. Useful splitting<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>   * ranges for MapReduce jobs.<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>   * @param a   Beginning of range<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>   * @param b   End of range<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>   * @param num Number of times to split range. Pass 1 if you want to split the range in two; i.e.<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span>   *            one split.<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>   * @return Array of dividing values<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>   */<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>  public static byte[][] split(final byte[] a, final byte[] b, final int num) {<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span>    return split(a, b, false, num);<a name="line.1693"></a>
-<span class="sourceLineNo">1694</span>  }<a name="line.1694"></a>
-<span class="sourceLineNo">1695</span><a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>  /**<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>   * Split passed range. Expensive operation relatively. Uses BigInteger math. Useful splitting<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span>   * ranges for MapReduce jobs.<a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>   * @param a         Beginning of range<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>   * @param b         End of range<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>   * @param inclusive Whether the end of range is prefix-inclusive or is considered an exclusive<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span>   *                  boundary. Automatic splits are generally exclusive and manual splits with an<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>   *                  explicit range utilize an inclusive end of range.<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>   * @param num       Number of times to split range. Pass 1 if you want to split the range in two;<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>   *                  i.e. one split.<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>   * @return Array of dividing values<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>   */<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>  public static byte[][] split(final byte[] a, final byte[] b, boolean inclusive, final int num) {<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>    byte[][] ret = new byte[num + 2][];<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>    int i = 0;<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>    Iterable&lt;byte[]&gt; iter = iterateOnSplits(a, b, inclusive, num);<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>    if (iter == null) return null;<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>    for (byte[] elem : iter) {<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>      ret[i++] = elem;<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>    }<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>    return ret;<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>  }<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span><a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>  /**<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>   * Iterate over keys within the passed range, splitting at an [a,b) boundary.<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>   */<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span>  public static Iterable&lt;byte[]&gt; iterateOnSplits(final byte[] a, final byte[] b, final int num) {<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>    return iterateOnSplits(a, b, false, num);<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>  }<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span><a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>  /**<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>   * Iterate over keys within the passed range.<a name="line.1727"></a>
+<span class="sourceLineNo">1675</span>  public static Integer mapKey(final byte[] b, final int length) {<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>    return hashCode(b, length);<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>  }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span><a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>  /**<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>   * Concatenate byte arrays.<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>   * @param a lower half<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>   * @param b upper half<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>   * @return New array that has a in lower half and b in upper half.<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>   */<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>  public static byte[] add(final byte[] a, final byte[] b) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>    return add(a, b, EMPTY_BYTE_ARRAY);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>  }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span><a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>  /**<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>   * Concatenate byte arrays.<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>   * @param a first third<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>   * @param b second third<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>   * @param c third third<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>   * @return New array made from a, b and c<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>   */<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>  public static byte[] add(final byte[] a, final byte[] b, final byte[] c) {<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>    byte[] result = new byte[a.length + b.length + c.length];<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>    System.arraycopy(a, 0, result, 0, a.length);<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>    System.arraycopy(b, 0, result, a.length, b.length);<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>    System.arraycopy(c, 0, result, a.length + b.length, c.length);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>    return result;<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>  }<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span><a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>  /**<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>   * Concatenate byte arrays.<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>   * @param arrays all the arrays to concatenate together.<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>   * @return New array made from the concatenation of the given arrays.<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>   */<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>  public static byte[] add(final byte[][] arrays) {<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>    int length = 0;<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>    for (int i = 0; i &lt; arrays.length; i++) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>      length += arrays[i].length;<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>    }<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>    byte[] result = new byte[length];<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>    int index = 0;<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>    for (int i = 0; i &lt; arrays.length; i++) {<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>      System.arraycopy(arrays[i], 0, result, index, arrays[i].length);<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>      index += arrays[i].length;<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>    }<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>    return result;<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>  }<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span><a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>  /**<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>   * Make a new byte array from a subset of bytes at the head of another.<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>   * @param a      array<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>   * @param length amount of bytes to grab<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>   * @return First &lt;code&gt;length&lt;/code&gt; bytes from &lt;code&gt;a&lt;/code&gt;<a name="line.1727"></a>
 <span class="sourceLineNo">1728</span>   */<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>  public static Iterable&lt;byte[]&gt; iterateOnSplits(final byte[] a, final byte[] b, boolean inclusive,<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span>    final int num) {<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>    byte[] aPadded;<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>    byte[] bPadded;<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>    if (a.length &lt; b.length) {<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>      aPadded = padTail(a, b.length - a.length);<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>      bPadded = b;<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>    } else if (b.length &lt; a.length) {<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>      aPadded = a;<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>      bPadded = padTail(b, a.length - b.length);<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>    } else {<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>      aPadded = a;<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>      bPadded = b;<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>    }<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>    if (compareTo(aPadded, bPadded) &gt;= 0) {<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>      throw new IllegalArgumentException("b &lt;= a");<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>    }<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>    if (num &lt;= 0) {<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>      throw new IllegalArgumentException("num cannot be &lt;= 0");<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>    }<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>    byte[] prependHeader = { 1, 0 };<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>    final BigInteger startBI = new BigInteger(add(prependHeader, aPadded));<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>    final BigInteger stopBI = new BigInteger(add(prependHeader, bPadded));<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>    BigInteger diffBI = stopBI.subtract(startBI);<a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>    if (inclusive) {<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>      diffBI = diffBI.add(BigInteger.ONE);<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>    }<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>    final BigInteger splitsBI = BigInteger.valueOf(num + 1);<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>    // when diffBI &lt; splitBI, use an additional byte to increase diffBI<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>    if (diffBI.compareTo(splitsBI) &lt; 0) {<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span>      byte[] aPaddedAdditional = new byte[aPadded.length + 1];<a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>      byte[] bPaddedAdditional = new byte[bPadded.length + 1];<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>      for (int i = 0; i &lt; aPadded.length; i++) {<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>        aPaddedAdditional[i] = aPadded[i];<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>      }<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>      for (int j = 0; j &lt; bPadded.length; j++) {<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>        bPaddedAdditional[j] = bPadded[j];<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>      }<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>      aPaddedAdditional[aPadded.length] = 0;<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>      bPaddedAdditional[bPadded.length] = 0;<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span>      return iterateOnSplits(aPaddedAdditional, bPaddedAdditional, inclusive, num);<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span>    }<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>    final BigInteger intervalBI;<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>    try {<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>      intervalBI = diffBI.divide(splitsBI);<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span>    } catch (Exception e) {<a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>      LOG.error("Exception caught during division", e);<a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>      return null;<a name="line.1776"></a>
+<span class="sourceLineNo">1729</span>  public static byte[] head(final byte[] a, final int length) {<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>    if (a.length &lt; length) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>      return null;<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>    }<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>    byte[] result = new byte[length];<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>    System.arraycopy(a, 0, result, 0, length);<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>    return result;<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>  }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span><a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>  /**<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>   * Make a new byte array from a subset of bytes at the tail of another.<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>   * @param a      array<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>   * @param length amount of bytes to snarf<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>   * @return Last &lt;code&gt;length&lt;/code&gt; bytes from &lt;code&gt;a&lt;/code&gt;<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>   */<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>  public static byte[] tail(final byte[] a, final int length) {<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>    if (a.length &lt; length) {<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>      return null;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>    }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>    byte[] result = new byte[length];<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>    System.arraycopy(a, a.length - length, result, 0, length);<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>    return result;<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>  }<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span><a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>  /**<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>   * Make a new byte array from a subset of bytes at the head of another, zero padded as desired.<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>   * @param a      array<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>   * @param length new array size<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>   * @return Value in &lt;code&gt;a&lt;/code&gt; plus &lt;code&gt;length&lt;/code&gt; prepended 0 bytes<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>   */<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>  public static byte[] padHead(final byte[] a, final int length) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>    byte[] padding = new byte[length];<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>    for (int i = 0; i &lt; length; i++) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>      padding[i] = 0;<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>    }<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>    return add(padding, a);<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>  }<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span><a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>  /**<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>   * Make a new byte array from a subset of bytes at the tail of another, zero padded as desired.<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>   * @param a      array<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>   * @param length new array size<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>   * @return Value in &lt;code&gt;a&lt;/code&gt; plus &lt;code&gt;length&lt;/code&gt; appended 0 bytes<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>   */<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>  public static byte[] padTail(final byte[] a, final int length) {<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>    byte[] padding = new byte[length];<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>    for (int i = 0; i &lt; length; i++) {<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>      padding[i] = 0;<a name="line.1776"></a>
 <span class="sourceLineNo">1777</span>    }<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span><a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>    final Iterator&lt;byte[]&gt; iterator = new Iterator&lt;byte[]&gt;() {<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>      private int i = -1;<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span><a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>      @Override<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>      public boolean hasNext() {<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>        return i &lt; num + 1;<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>      }<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span><a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>      @Override<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>      public byte[] next() {<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>        i++;<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>        if (i == 0) return a;<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>        if (i == num + 1) return b;<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span><a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>        BigInteger curBI = startBI.add(intervalBI.multiply(BigInteger.valueOf(i)));<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>        byte[] padded = curBI.toByteArray();<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>        if (padded[1] == 0) padded = tail(padded, padded.length - 2);<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>        else padded = tail(padded, padded.length - 1);<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span>        return padded;<a name="line.1797"></a>
-<span class="sourceLineNo">1798</span>      }<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span><a name="line.1799"></a>
-<span class="sourceLineNo">1800</span>      @Override<a name="line.1800"></a>
-<span class="sourceLineNo">1801</span>      public void remove() {<a name="line.1801"></a>
-<span class="sourceLineNo">1802</span>        throw new UnsupportedOperationException();<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>      }<a name="line.1803"></a>
-<span class="sourceLineNo">1804</span><a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>    };<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span><a name="line.1806"></a>
-<span class="sourceLineNo">1807</span>    return new Iterable&lt;byte[]&gt;() {<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span>      @Override<a name="line.1808"></a>
-<span class="sourceLineNo">1809</span>      public Iterator&lt;byte[]&gt; iterator() {<a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>        return iterator;<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>      }<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>    };<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>  }<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span><a name="line.1814"></a>
-<span class="sourceLineNo">1815</span>  /**<a name="line.1815"></a>
-<span class="sourceLineNo">1816</span>   * Calculate the hash code for a given range of bytes.<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span>   * @param bytes  array to hash<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>   * @param offset offset to start from<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>   * @param length length to hash<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span>   */<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>  public static int hashCode(byte[] bytes, int offset, int length) {<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span>    int hash = 1;<a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>    for (int i = offset; i &lt; offset + length; i++)<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>      hash = (31 * hash) + bytes[i];<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>    return hash;<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span>  }<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span><a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>  /**<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>   * Create an array of byte[] given an array of String.<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span>   * @param t operands<a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>   * @return Array of byte arrays made from passed array of Text<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>   */<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>  public static byte[][] toByteArrays(final String[] t) {<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span>    byte[][] result = new byte[t.length][];<a name="line.1834"></a>
-<span class="sourceLineNo">1835</span>    for (int i = 0; i &lt; t.length; i++) {<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span>      result[i] = Bytes.toBytes(t[i]);<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span>    }<a name="line.1837"></a>
-<span class="sourceLineNo">1838</span>    return result;<a name="line.1838"></a>
-<span class="sourceLineNo">1839</span>  }<a name="line.1839"></a>
-<span class="sourceLineNo">1840</span><a name="line.1840"></a>
-<span class="sourceLineNo">1841</span>  /**<a name="line.1841"></a>
-<span class="sourceLineNo">1842</span>   * Create an array of byte[] given an array of String.<a name="line.1842"></a>
-<span class="sourceLineNo">1843</span>   * @param t operands<a name="line.1843"></a>
-<span class="sourceLineNo">1844</span>   * @return Array of binary byte arrays made from passed array of binary strings<a name="line.1844"></a>
-<span class="sourceLineNo">1845</span>   */<a name="line.1845"></a>
-<span class="sourceLineNo">1846</span>  public static byte[][] toBinaryByteArrays(final String[] t) {<a name="line.1846"></a>
-<span class="sourceLineNo">1847</span>    byte[][] result = new byte[t.length][];<a name="line.1847"></a>
-<span class="sourceLineNo">1848</span>    for (int i = 0; i &lt; t.length; i++) {<a name="line.1848"></a>
-<span class="sourceLineNo">1849</span>      result[i] = Bytes.toBytesBinary(t[i]);<a name="line.1849"></a>
-<span class="sourceLineNo">1850</span>    }<a name="line.1850"></a>
-<span class="sourceLineNo">1851</span>    return result;<a name="line.1851"></a>
-<span class="sourceLineNo">1852</span>  }<a name="line.1852"></a>
-<span class="sourceLineNo">1853</span><a name="line.1853"></a>
-<span class="sourceLineNo">1854</span>  /**<a name="line.1854"></a>
-<span class="sourceLineNo">1855</span>   * Create a byte[][] where first and only entry is &lt;code&gt;column&lt;/code&gt;<a name="line.1855"></a>
-<span class="sourceLineNo">1856</span>   * @param column operand<a name="line.1856"></a>
-<span class="sourceLineNo">1857</span>   * @return A byte array of a byte array where first and only entry is &lt;code&gt;column&lt;/code&gt;<a name="line.1857"></a>
-<span class="sourceLineNo">1858</span>   */<a name="line.1858"></a>
-<span class="sourceLineNo">1859</span>  public static byte[][] toByteArrays(final String column) {<a name="line.1859"></a>
-<span class="sourceLineNo">1860</span>    return toByteArrays(toBytes(column));<a name="line.1860"></a>
-<span class="sourceLineNo">1861</span>  }<a name="line.1861"></a>
-<span class="sourceLineNo">1862</span><a name="line.1862"></a>
-<span class="sourceLineNo">1863</span>  /**<a name="line.1863"></a>
-<span class="sourceLineNo">1864</span>   * Create a byte[][] where first and only entry is &lt;code&gt;column&lt;/code&gt;<a name="line.1864"></a>
-<span class="sourceLineNo">1865</span>   * @param column operand<a name="line.1865"></a>
-<span class="sourceLineNo">1866</span>   * @return A byte array of a byte array where first and only entry is &lt;code&gt;column&lt;/code&gt;<a name="line.1866"></a>
-<span class="sourceLineNo">1867</span>   */<a name="line.1867"></a>
-<span class="sourceLineNo">1868</span>  public static byte[][] toByteArrays(final byte[] column) {<a name="line.1868"></a>
-<span class="sourceLineNo">1869</span>    byte[][] result = new byte[1][];<a name="line.1869"></a>
-<span class="sourceLineNo">1870</span>    result[0] = column;<a name="line.1870"></a>
-<span class="sourceLineNo">1871</span>    return result;<a name="line.1871"></a>
-<span class="sourceLineNo">1872</span>  }<a name="line.1872"></a>
-<span class="sourceLineNo">1873</span><a name="line.1873"></a>
-<span class="sourceLineNo">1874</span>  /**<a name="line.1874"></a>
-<span class="sourceLineNo">1875</span>   * Binary search for keys in indexes using Bytes.BYTES_RAWCOMPARATOR.<a name="line.1875"></a>
-<span class="sourceLineNo">1876</span>   * @param arr    array of byte arrays to search for<a name="line.1876"></a>
-<span class="sourceLineNo">1877</span>   * @param key    the key you want to find<a name="line.1877"></a>
-<span class="sourceLineNo">1878</span>   * @param offset the offset in the key you want to find<a name="line.1878"></a>
-<span class="sourceLineNo">1879</span>   * @param length the length of the key<a name="line.1879"></a>
-<span class="sourceLineNo">1880</span>   * @return zero-based index of the key, if the key is present in the array. Otherwise, a value -(i<a name="line.1880"></a>
-<span class="sourceLineNo">1881</span>   *         + 1) such that the key is between arr[i - 1] and arr[i] non-inclusively, where i is in<a name="line.1881"></a>
-<span class="sourceLineNo">1882</span>   *         [0, i], if we define arr[-1] = -Inf and arr[N] = Inf for an N-element array. The above<a name="line.1882"></a>
-<span class="sourceLineNo">1883</span>   *         means that this function can return 2N + 1 different values ranging from -(N + 1) to N<a name="line.1883"></a>
-<span class="sourceLineNo">1884</span>   *         - 1.<a name="line.1884"></a>
-<span class="sourceLineNo">1885</span>   */<a name="line.1885"></a>
-<span class="sourceLineNo">1886</span>  public static int binarySearch(byte[][] arr, byte[] key, int offset, int length) {<a name="line.1886"></a>
-<span class="sourceLineNo">1887</span>    int low = 0;<a name="line.1887"></a>
-<span class="sourceLineNo">1888</span>    int high = arr.length - 1;<a name="line.1888"></a>
-<span class="sourceLineNo">1889</span><a name="line.1889"></a>
-<span class="sourceLineNo">1890</span>    while (low &lt;= high) {<a name="line.1890"></a>
-<span class="sourceLineNo">1891</span>      int mid = low + ((high - low) &gt;&gt; 1);<a name="line.1891"></a>
-<span class="sourceLineNo">1892</span>      // we have to compare in this order, because the comparator order<a name="line.1892"></a>
-<span class="sourceLineNo">1893</span>      // has special logic when the 'left side' is a special key.<a name="line.1893"></a>
-<span class="sourceLineNo">1894</span>      int cmp =<a name="line.1894"></a>
-<span class="sourceLineNo">1895</span>        Bytes.BYTES_RAWCOMPARATOR.compare(key, offset, length, arr[mid], 0, arr[mid].length);<a name="line.1895"></a>
-<span class="sourceLineNo">1896</span>      // key lives above the midpoint<a name="line.1896"></a>
-<span class="sourceLineNo">1897</span>      if (cmp &gt; 0) low = mid + 1;<a name="line.1897"></a>
-<span class="sourceLineNo">1898</span>      // key lives below the midpoint<a name="line.1898"></a>
-<span class="sourceLineNo">1899</span>      else if (cmp &lt; 0) high = mid - 1;<a name="line.1899"></a>
-<span class="sourceLineNo">1900</span>      // BAM. how often does this really happen?<a name="line.1900"></a>
-<span class="sourceLineNo">1901</span>      else return mid;<a name="line.1901"></a>
-<span class="sourceLineNo">1902</span>    }<a name="line.1902"></a>
-<span class="sourceLineNo">1903</span>    return -(low + 1);<a name="line.1903"></a>
-<span class="sourceLineNo">1904</span>  }<a name="line.1904"></a>
-<span class="sourceLineNo">1905</span><a name="line.1905"></a>
-<span class="sourceLineNo">1906</span>  /**<a name="line.1906"></a>
-<span class="sourceLineNo">1907</span>   * Binary search for keys in indexes.<a name="line.1907"></a>
-<span class="sourceLineNo">1908</span>   * @param arr        array of byte arrays to search for<a name="line.1908"></a>
-<span class="sourceLineNo">1909</span>   * @param key        the key you want to find<a name="line.1909"></a>
-<span class="sourceLineNo">1910</span>   * @param comparator a comparator to compare.<a name="line.1910"></a>
-<span class="sourceLineNo">1911</span>   * @return zero-based index of the key, if the key is present in the array. Otherwise, a value -(i<a name="line.1911"></a>
-<span class="sourceLineNo">1912</span>   *         + 1) such that the key is between arr[i - 1] and arr[i] non-inclusively, where i is in<a name="line.1912"></a>
-<span class="sourceLineNo">1913</span>   *         [0, i], if we define arr[-1] = -Inf and arr[N] = Inf for an N-element array. The above<a name="line.1913"></a>
-<span class="sourceLineNo">1914</span>   *         means that this function can return 2N + 1 different values ranging from -(N + 1) to N<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span>   *         - 1.<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span>   * @return the index of the block<a name="line.1916"></a>
-<span class="sourceLineNo">1917</span>   */<a name="line.1917"></a>
-<span class="sourceLineNo">1918</span>  public static int binarySearch(Cell[] arr, Cell key, CellComparator comparator) {<a name="line.1918"></a>
-<span class="sourceLineNo">1919</span>    int low = 0;<a name="line.1919"></a>
-<span class="sourceLineNo">1920</span>    int high = arr.length - 1;<a name="line.1920"></a>
-<span class="sourceLineNo">1921</span>    while (low &lt;= high) {<a name="line.1921"></a>
-<span class="sourceLineNo">1922</span>      int mid = low + ((high - low) &gt;&gt; 1);<a name="line.1922"></a>
-<span class="sourceLineNo">1923</span>      // we have to compare in this order, because the comparator order<a name="line.1923"></a>
-<span class="sourceLineNo">1924</span>      // has special logic when the 'left side' is a special key.<a name="line.1924"></a>
-<span class="sourceLineNo">1925</span>      int cmp = comparator.compare(key, arr[mid]);<a name="line.1925"></a>
-<span class="sourceLineNo">1926</span>      // key lives above the midpoint<a name="line.1926"></a>
-<span class="sourceLineNo">1927</span>      if (cmp &gt; 0) low = mid + 1;<a name="line.1927"></a>
-<span class="sourceLineNo">1928</span>      // key lives below the midpoint<a name="line.1928"></a>
-<span class="sourceLineNo">1929</span>      else if (cmp &lt; 0) high = mid - 1;<a name="line.1929"></a>
-<span class="sourceLineNo">1930</span>      // BAM. how often does this really happen?<a name="line.1930"></a>
-<span class="sourceLineNo">1931</span>      else return mid;<a name="line.1931"></a>
-<span class="sourceLineNo">1932</span>    }<a name="line.1932"></a>
-<span class="sourceLineNo">1933</span>    return -(low + 1);<a name="line.1933"></a>
-<span class="sourceLineNo">1934</span>  }<a name="line.1934"></a>
-<span class="sourceLineNo">1935</span><a name="line.1935"></a>
-<span class="sourceLineNo">1936</span>  /**<a name="line.1936"></a>
-<span class="sourceLineNo">1937</span>   * Bytewise binary increment/deincrement of long contained in byte array on given amount.<a name="line.1937"></a>
-<span class="sourceLineNo">1938</span>   * @param value  - array of bytes containing long (length &amp;lt;= SIZEOF_LONG)<a name="line.1938"></a>
-<span class="sourceLineNo">1939</span>   * @param amount value will be incremented on (deincremented if negative)<a name="line.1939"></a>
-<span class="sourceLineNo">1940</span>   * @return array of bytes containing incremented long (length == SIZEOF_LONG)<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span>   */<a name="line.1941"></a>
-<span class="sourceLineNo">1942</span>  public static byte[] incrementBytes(byte[] value, long amount) {<a name="line.1942"></a>
-<span class="sourceLineNo">1943</span>    byte[] val = value;<a name="line.1943"></a>
-<span class="sourceLineNo">1944</span>    if (val.length &lt; SIZEOF_LONG) {<a name="line.1944"></a>
-<span class="sourceLineNo">1945</span>      // Hopefully this doesn't happen too often.<a name="line.1945"></a>
-<span class="sourceLineNo">1946</span>      byte[] newvalue;<a name="line.1946"></a>
-<span class="sourceLineNo">1947</span>      if (val[0] &lt; 0) {<a name="line.1947"></a>
-<span class="sourceLineNo">1948</span>        newvalue = new byte[] { -1, -1, -1, -1, -1, -1, -1, -1 };<a name="line.1948"></a>
-<span class="sourceLineNo">1949</span>      } else {<a name="line.1949"></a>
-<span class="sourceLineNo">1950</span>        newvalue = new byte[SIZEOF_LONG];<a name="line.1950"></a>
-<span class="sourceLineNo">1951</span>      }<a name="line.1951"></a>
-<span class="sourceLineNo">1952</span>      System.arraycopy(val, 0, newvalue, newvalue.length - val.length, val.length);<a name="line.1952"></a>
-<span class="sourceLineNo">1953</span>      val = newvalue;<a name="line.1953"></a>
-<span class="sourceLineNo">1954</span>    } else if (val.length &gt; SIZEOF_LONG) {<a name="line.1954"></a>
-<span class="sourceLineNo">1955</span>      throw new IllegalArgumentException("Increment Bytes - value too big: " + val.length);<a name="line.1955"></a>
-<span class="sourceLineNo">1956</span>    }<a name="line.1956"></a>
-<span class="sourceLineNo">1957</span>    if (amount == 0) return val;<a name="line.1957"></a>
-<span class="sourceLineNo">1958</span>    if (val[0] &lt; 0) {<a name="line.1958"></a>
-<span class="sourceLineNo">1959</span>      return binaryIncrementNeg(val, amount);<a name="line.1959"></a>
-<span class="sourceLineNo">1960</span>    }<a name="line.1960"></a>
-<span class="sourceLineNo">1961</span>    return binaryIncrementPos(val, amount);<a name="line.1961"></a>
-<span class="sourceLineNo">1962</span>  }<a name="line.1962"></a>
-<span class="sourceLineNo">1963</span><a name="line.1963"></a>
-<span class="sourceLineNo">1964</span>  /* increment/deincrement for positive value */<a name="line.1964"></a>
-<span class="sourceLineNo">1965</span>  private static byte[] binaryIncrementPos(byte[] value, long amount) {<a name="line.1965"></a>
-<span class="sourceLineNo">1966</span>    long amo = amount;<a name="line.1966"></a>
-<span class="sourceLineNo">1967</span>    int sign = 1;<a name="line.1967"></a>
-<span class="sourceLineNo">1968</span>    if (amount &lt; 0) {<a name="line.1968"></a>
-<span class="sourceLineNo">1969</span>      amo = -amount;<a name="line.1969"></a>
-<span class="sourceLineNo">1970</span>      sign = -1;<a name="line.1970"></a>
-<span class="sourceLineNo">1971</span>    }<a name="line.1971"></a>
-<span class="sourceLineNo">1972</span>    for (int i = 0; i &lt; value.length; i++) {<a name="line.1972"></a>
-<span class="sourceLineNo">1973</span>      int cur = ((int) amo % 256) * sign;<a name="line.1973"></a>
-<span class="sourceLineNo">1974</span>      amo = (amo &gt;&gt; 8);<a name="line.1974"></a>
-<span class="sourceLineNo">1975</span>      int val = value[value.length - i - 1] &amp; 0x0ff;<a name="line.1975"></a>
-<span class="sourceLineNo">1976</span>      int total = val + cur;<a name="line.1976"></a>
-<span class="sourceLineNo">1977</span>      if (total &gt; 255) {<a name="line.1977"></a>
-<span class="sourceLineNo">1978</span>        amo += sign;<a name="line.1978"></a>
-<span class="sourceLineNo">1979</span>        total %= 256;<a name="line.1979"></a>
-<span class="sourceLineNo">1980</span>      } else if (total &lt; 0) {<a name="line.1980"></a>
-<span class="sourceLineNo">1981</span>        amo -= sign;<a name="line.1981"></a>
-<span class="sourceLineNo">1982</span>      }<a name="line.1982"></a>
-<span class="sourceLineNo">1983</span>      value[value.length - i - 1] = (byte) total;<a name="line.1983"></a>
-<span class="sourceLineNo">1984</span>      if (amo == 0) return value;<a name="line.1984"></a>
-<span class="sourceLineNo">1985</span>    }<a name="line.1985"></a>
-<span class="sourceLineNo">1986</span>    return value;<a name="line.1986"></a>
-<span class="sourceLineNo">1987</span>  }<a name="line.1987"></a>
-<span class="sourceLineNo">1988</span><a name="line.1988"></a>
-<span class="sourceLineNo">1989</span>  /* increment/deincrement for negative value */<a name="line.1989"></a>
-<span class="sourceLineNo">1990</span>  private static byte[] binaryIncrementNeg(byte[] value, long amount) {<a name="line.1990"></a>
-<span class="sourceLineNo">1991</span>    long amo = amount;<a name="line.1991"></a>
-<span class="sourceLineNo">1992</span>    int sign = 1;<a name="line.1992"></a>
-<span class="sourceLineNo">1993</span>    if (amount &lt; 0) {<a name="line.1993"></a>
-<span class="sourceLineNo">1994</span>      amo = -amount;<a name="line.1994"></a>
-<span class="sourceLineNo">1995</span>      sign = -1;<a name="line.1995"></a>
-<span class="sourceLineNo">1996</span>    }<a name="line.1996"></a>
-<span class="sourceLineNo">1997</span>    for (int i = 0; i &lt; value.length; i++) {<a name="line.1997"></a>
-<span class="sourceLineNo">1998</span>      int cur = ((int) amo % 256) * sign;<a name="line.1998"></a>
-<span class="sourceLineNo">1999</span>      amo = (amo &gt;&gt; 8);<a name="line.1999"></a>
-<span class="sourceLineNo">2000</span>      int val = (~value[value.length - i - 1] &amp; 0x0ff) + 1;<a name="line.2000"></a>
-<span class="sourceLineNo">2001</span>      int total = cur - val;<a name="line.2001"></a>
-<span class="sourceLineNo">2002</span>      if (total &gt;= 0) {<a name="line.2002"></a>
-<span class="sourceLineNo">2003</span>        amo += sign;<a name="line.2003"></a>
-<span class="sourceLineNo">2004</span>      } else if (total &lt; -256) {<a name="line.2004"></a>
-<span class="sourceLineNo">2005</span>        amo -= sign;<a name="line.2005"></a>
-<span class="sourceLineNo">2006</span>        total %= 256;<a name="line.2006"></a>
-<span class="sourceLineNo">2007</span>      }<a name="line.2007"></a>
-<span class="sourceLineNo">2008</span>      value[value.length - i - 1] = (byte) total;<a name="line.2008"></a>
-<span class="sourceLineNo">2009</span>      if (amo == 0) return value;<a name="line.2009"></a>
-<span class="sourceLineNo">2010</span>    }<a name="line.2010"></a>
-<span class="sourceLineNo">2011</span>    return value;<a name="line.2011"></a>
-<span class="sourceLineNo">2012</span>  }<a name="line.2012"></a>
-<span class="sourceLineNo">2013</span><a name="line.2013"></a>
-<span class="sourceLineNo">2014</span>  /**<a name="line.2014"></a>
-<span class="sourceLineNo">2015</span>   * Writes a string as a fixed-size field, padded with zeros.<a name="line.2015"></a>
-<span class="sourceLineNo">2016</span>   */<a name="line.2016"></a>
-<span class="sourceLineNo">2017</span>  public static void writeStringFixedSize(final DataOutput out, String s, int size)<a name="line.2017"></a>
-<span class="sourceLineNo">2018</span>    throws IOException {<a name="line.2018"></a>
-<span class="sourceLineNo">2019</span>    byte[] b = toBytes(s);<a name="line.2019"></a>
-<span class="sourceLineNo">2020</span>    if (b.length &gt; size) {<a name="line.2020"></a>
-<span class="sourceLineNo">2021</span>      throw new IOException("Trying to write " + b.length + " bytes (" + toStringBinary(b)<a name="line.2021"></a>
-<span class="sourceLineNo">2022</span>        + ") into a field of length " + size);<a name="line.2022"></a>
-<span class="sourceLineNo">2023</span>    }<a name="line.2023"></a>
-<span class="sourceLineNo">2024</span><a name="line.2024"></a>
-<span class="sourceLineNo">2025</span>    out.writeBytes(s);<a name="line.2025"></a>
-<span class="sourceLineNo">2026</span>    for (int i = 0; i &lt; size - s.length(); ++i)<a name="line.2026"></a>
-<span class="sourceLineNo">2027</span>      out.writeByte(0);<a name="line.2027"></a>
-<span class="sourceLineNo">2028</span>  }<a name="line.2028"></a>
-<span class="sourceLineNo">2029</span><a name="line.2029"></a>
-<span class="sourceLineNo">2030</span>  /**<a name="line.2030"></a>
-<span class="sourceLineNo">2031</span>   * Reads a fixed-size field and interprets it as a string padded with zeros.<a name="line.2031"></a>
-<span class="sourceLineNo">2032</span>   */<a name="line.2032"></a>
-<span class="sourceLineNo">2033</span>  public static String readStringFixedSize(final DataInput in, int size) throws IOException {<a name="line.2033"></a>
-<span class="sourceLineNo">2034</span>    byte[] b = new byte[size];<a name="line.2034"></a>
-<span class="sourceLineNo">2035</span>    in.readFully(b);<a name="line.2035"></a>
-<span class="sourceLineNo">2036</span>    int n = b.length;<a name="line.2036"></a>
-<span class="sourceLineNo">2037</span>    while (n &gt; 0 &amp;&amp; b[n - 1] == 0)<a name="line.2037"></a>
-<span class="sourceLineNo">2038</span>      --n;<a name="line.2038"></a>
-<span class="sourceLineNo">2039</span><a name="line.2039"></a>
-<span class="sourceLineNo">2040</span>    return toString(b, 0, n);<a name="line.2040"></a>
-<span class="sourceLineNo">2041</span>  }<a name="line.2041"></a>
-<span class="sourceLineNo">2042</span><a name="line.2042"></a>
-<span class="sourceLineNo">2043</span>  /**<a name="line.2043"></a>
-<span class="sourceLineNo">2044</span>   * Copy the byte array given in parameter and return an instance of a new byte array with the same<a name="line.2044"></a>
-<span class="sourceLineNo">2045</span>   * length and the same content.<a name="line.2045"></a>
-<span class="sourceLineNo">2046</span>   * @param bytes the byte array to duplicate<a name="line.2046"></a>
-<span class="sourceLineNo">2047</span>   * @return a copy of the given byte array<a name="line.2047"></a>
-<span class="sourceLineNo">2048</span>   */<a name="line.2048"></a>
-<span class="sourceLineNo">2049</span>  public static byte[] copy(byte[] bytes) {<a name="line.2049"></a>
-<span class="sourceLineNo">2050</span>    if (bytes == null) return null;<a name="line.2050"></a>
-<span class="sourceLineNo">2051</span>    byte[] result = new byte[bytes.length];<a name="line.2051"></a>
-<span class="sourceLineNo">2052</span>    System.arraycopy(bytes, 0, result, 0, bytes.length);<a name="line.2052"></a>
-<span class="sourceLineNo">2053</span>    return result;<a name="line.2053"></a>
-<span class="sourceLineNo">2054</span>  }<a name="line.2054"></a>
-<span class="sourceLineNo">2055</span><a name="line.2055"></a>
-<span class="sourceLineNo">2056</span>  /**<a name="line.2056"></a>
-<span class="sourceLineNo">2057</span>   * Copy the byte array given in parameter and return an instance of a new byte array with the same<a name="line.2057"></a>
-<span class="sourceLineNo">2058</span>   * length and the same content.<a name="line.2058"></a>
-<span class="sourceLineNo">2059</span>   * @param bytes the byte array to copy from<a name="line.2059"></a>
-<span class="sourceLineNo">2060</span>   * @return a copy of the given designated byte array<a name="line.2060"></a>
-<span class="sourceLineNo">2061</span>   */<a name="line.2061"></a>
-<span class="sourceLineNo">2062</span>  public static byte[] copy(byte[] bytes, final int offset, final int length) {<a name="line.2062"></a>
-<span class="sourceLineNo">2063</span>    if (bytes == null) return null;<a name="line.2063"></a>
-<span class="sourceLineNo">2064</span>    byte[] result = new byte[length];<a name="line.2064"></a>
-<span class="sourceLineNo">2065</span>    System.arraycopy(bytes, offset, result, 0, length);<a name="line.2065"></a>
-<span class="sourceLineNo">2066</span>    return result;<a name="line.2066"></a>
-<span class="sourceLineNo">2067</span>  }<a name="line.2067"></a>
-<span class="sourceLineNo">2068</span><a name="line.2068"></a>
-<span class="sourceLineNo">2069</span>  /**<a name="line.2069"></a>
-<span class="sourceLineNo">2070</span>   * Search sorted array "a" for byte "key". I can't remember if I wrote this or copied it from<a name="line.2070"></a>
-<span class="sourceLineNo">2071</span>   * somewhere. (mcorgan)<a name="line.2071"></a>
-<span class="sourceLineNo">2072</span>   * @param a         Array to search. Entries must be sorted and unique.<a name="line.2072"></a>
-<span class="sourceLineNo">2073</span>   * @param fromIndex First index inclusive of "a" to include in the search.<a name="line.2073"></a>
-<span class="sourceLineNo">2074</span>   * @param toIndex   Last index exclusive of "a" to include in the search.<a name="line.2074"></a>
-<span class="sourceLineNo">2075</span>   * @param key       The byte to search for.<a name="line.2075"></a>
-<span class="sourceLineNo">2076</span>   * @return The index of key if found. If not found, return -(index + 1), where negative indicates<a name="line.2076"></a>
-<span class="sourceLineNo">2077</span>   *         "not found" and the "index + 1" handles the "-0" case.<a name="line.2077"></a>
-<span class="sourceLineNo">2078</span>   */<a name="line.2078"></a>
-<span class="sourceLineNo">2079</span>  public static int unsignedBinarySearch(byte[] a, int fromIndex, int toIndex, byte key) {<a name="line.2079"></a>
-<span class="sourceLineNo">2080</span>    int unsignedKey = key &amp; 0xff;<a name="line.2080"></a>
-<span class="sourceLineNo">2081</span>    int low = fromIndex;<a name="line.2081"></a>
-<span class="sourceLineNo">2082</span>    int high = toIndex - 1;<a name="line.2082"></a>
-<span class="sourceLineNo">2083</span><a name="line.2083"></a>
-<span class="sourceLineNo">2084</span>    while (low &lt;= high) {<a name="line.2084"></a>
-<span class="sourceLineNo">2085</span>      int mid = low + ((high - low) &gt;&gt; 1);<a name="line.2085"></a>
-<span class="sourceLineNo">2086</span>      int midVal = a[mid] &amp; 0xff;<a name="line.2086"></a>
-<span class="sourceLineNo">2087</span><a name="line.2087"></a>
-<span class="sourceLineNo">2088</span>      if (midVal &lt; unsignedKey) {<a name="line.2088"></a>
-<span class="sourceLineNo">2089</span>        low = mid + 1;<a name="line.2089"></a>
-<span class="sourceLineNo">2090</span>      } else if (midVal &gt; unsignedKey) {<a name="line.2090"></a>
-<span class="sourceLineNo">2091</span>        high = mid - 1;<a name="line.2091"></a>
-<span class="sourceLineNo">2092</span>      } else {<a name="line.2092"></a>
-<span class="sourceLineNo">2093</span>        return mid; // key found<a name="line.2093"></a>
-<span class="sourceLineNo">2094</span>      }<a name="line.2094"></a>
-<span class="sourceLineNo">2095</span>    }<a name="line.2095"></a>
-<span class="sourceLineNo">2096</span>    return -(low + 1); // key not found.<a name="line.2096"></a>
-<span class="sourceLineNo">2097</span>  }<a name="line.2097"></a>
-<span class="sourceLineNo">2098</span><a name="line.2098"></a>
-<span class="sourceLineNo">2099</span>  /**<a name="line.2099"></a>
-<span class="sourceLineNo">2100</span>   * Treat the byte[] as an unsigned series of bytes, most significant bits first. Start by adding 1<a name="line.2100"></a>
-<span class="sourceLineNo">2101</span>   * to the rightmost bit/byte and carry over all overflows to the more significant bits/bytes.<a name="line.2101"></a>
-<span class="sourceLineNo">2102</span>   * @param input The byte[] to increment.<a name="line.2102"></a>
-<span class="sourceLineNo">2103</span>   * @return The incremented copy of "in". May be same length or 1 byte longer.<a name="line.2103"></a>
-<span class="sourceLineNo">2104</span>   */<a name="line.2104"></a>
-<span class="sourceLineNo">2105</span>  public static byte[] unsignedCopyAndIncrement(final byte[] input) {<a name="line.2105"></a>
-<span class="sourceLineNo">2106</span>    byte[] copy = copy(input);<a name="line.2106"></a>
-<span class="sourceLineNo">2107</span>    if (copy == null) {<a name="line.2107"></a>
-<span class="sourceLineNo">2108</span>      throw new IllegalArgumentException("cannot increment null array");<a name="line.2108"></a>
-<span class="sourceLineNo">2109</span>    }<a name="line.2109"></a>
-<span class="sourceLineNo">2110</span>    for (int i = copy.length - 1; i &gt;= 0; --i) {<a name="line.2110"></a>
-<span class="sourceLineNo">2111</span>      if (copy[i] == -1) {// -1 is all 1-bits, which is the unsigned maximum<a name="line.2111"></a>
-<span class="sourceLineNo">2112</span>        copy[i] = 0;<a name="line.2112"></a>
-<span class="sourceLineNo">2113</span>      } else {<a name="line.2113"></a>
-<span class="sourceLineNo">2114</span>        ++copy[i];<a name="line.2114"></a>
-<span class="sourceLineNo">2115</span>        return copy;<a name="line.2115"></a>
-<span class="sourceLineNo">2116</span>      }<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>    }<a name="line.2117"></a>
-<span class="sourceLineNo">2118</span>    // we maxed out the array<a name="line.2118"></a>
-<span class="sourceLineNo">2119</span>    byte[] out = new byte[copy.length + 1];<a name="line.2119"></a>
-<span class="sourceLineNo">2120</span>    out[0] = 1;<a name="line.2120"></a>
-<span class="sourceLineNo">2121</span>    System.arraycopy(copy, 0, out, 1, copy.length);<a name="line.2121"></a>
-<span class="sourceLineNo">2122</span>    return out;<a name="line.2122"></a>
-<span class="sourceLineNo">2123</span>  }<a name="line.2123"></a>
-<span class="sourceLineNo">2124</span><a name="line.2124"></a>
-<span class="sourceLineNo">2125</span>  public static boolean equals(List&lt;byte[]&gt; a, List&lt;byte[]&gt; b) {<a name="line.2125"></a>
-<span class="sourceLineNo">2126</span>    if (a == null) {<a name="line.2126"></a>
-<span class="sourceLineNo">2127</span>      if (b == null) {<a name="line.2127"></a>
-<span class="sourceLineNo">2128</span>        return true;<a name="line.2128"></a>
-<span class="sourceLineNo">2129</span>      }<a name="line.2129"></a>
-<span class="sourceLineNo">2130</span>      return false;<a name="line.2130"></a>
-<span class="sourceLineNo">2131</span>    }<a name="line.2131"></a>
-<span class="sourceLineNo">2132</span>    if (b == null) {<a name="line.2132"></a>
-<span class="sourceLineNo">2133</span>      return false;<a name="line.2133"></a>
-<span class="sourceLineNo">2134</span>    }<a name="line.2134"></a>
-<span class="sourceLineNo">2135</span>    if (a.size() != b.size()) {<a name="line.2135"></a>
-<span class="sourceLineNo">2136</span>      return false;<a name="line.2136"></a>
-<span class="sourceLineNo">2137</span>    }<a name="line.2137"></a>
-<span class="sourceLineNo">2138</span>    for (int i = 0; i &lt; a.size(); ++i) {<a name="line.2138"></a>
-<span class="sourceLineNo">2139</span>      if (!Bytes.equals(a.get(i), b.get(i))) {<a name="line.2139"></a>
-<span class="sourceLineNo">2140</span>        return false;<a name="line.2140"></a>
-<span class="sourceLineNo">2141</span>      }<a name="line.2141"></a>
-<span class="sourceLineNo">2142</span>    }<a name="line.2142"></a>
-<span class="sourceLineNo">2143</span>    return true;<a name="line.2143"></a>
-<span class="sourceLineNo">2144</span>  }<a name="line.2144"></a>
-<span class="sourceLineNo">2145</span><a name="line.2145"></a>
-<span class="sourceLineNo">2146</span>  public static boolean isSorted(Collection&lt;byte[]&gt; arrays) {<a name="line.2146"></a>
-<span class="sourceLineNo">2147</span>    if (!CollectionUtils.isEmpty(arrays)) {<a name="line.2147"></a>
-<span class="sourceLineNo">2148</span>      byte[] previous = new byte[0];<a name="line.2148"></a>
-<span class="sourceLineNo">2149</span>      for (byte[] array : arrays) {<a name="line.2149"></a>
-<span class="sourceLineNo">2150</span>        if (Bytes.compareTo(previous, array) &gt; 0) {<a name="line.2150"></a>
-<span class="sourceLineNo">2151</span>          return false;<a name="line.2151"></a>
-<span class="sourceLineNo">2152</span>        }<a name="line.2152"></a>
-<span class="sourceLineNo">2153</span>        previous = array;<a name="line.2153"></a>
-<span class="sourceLineNo">2154</span>      }<a name="line.2154"></a>
-<span class="sourceLineNo">2155</span>    }<a name="line.2155"></a>
-<span class="sourceLineNo">2156</span>    return true;<a name="line.2156"></a>
-<span class="sourceLineNo">2157</span>  }<a name="line.2157"></a>
-<span class="sourceLineNo">2158</span><a name="line.2158"></a>
-<span class="sourceLineNo">2159</span>  public static List&lt;byte[]&gt; getUtf8ByteArrays(List&lt;String&gt; strings) {<a name="line.2159"></a>
-<span class="sourceLineNo">2160</span>    if (CollectionUtils.isEmpty(strings)) {<a name="line.2160"></a>
-<span class="sourceLineNo">2161</span>      return Collections.emptyList();<a name="line.2161"></a>
-<span class="sourceLineNo">2162</span>    }<a name="line.2162"></a>
-<span class="sourceLineNo">2163</span>    List&lt;byte[]&gt; byteArrays = new ArrayList&lt;&gt;(strings.size());<a name="line.2163"></a>
-<span class="sourceLineNo">2164</span>    strings.forEach(s -&gt; byteArrays.add(Bytes.toBytes(s)));<a name="line.2164"></a>
-<span class="sourceLineNo">2165</span>    return byteArrays;<a name="line.2165"></a>
-<span class="sourceLineNo">2166</span>  }<a name="line.2166"></a>
-<span class="sourceLineNo">2167</span><a name="line.2167"></a>
-<span class="sourceLineNo">2168</span>  /**<a name="line.2168"></a>
-<span class="sourceLineNo">2169</span>   * Returns the index of the first appearance of the value {@code target} in {@code array}.<a name="line.2169"></a>
-<span class="sourceLineNo">2170</span>   * @param array  an array of {@code byte} values, possibly empty<a name="line.2170"></a>
-<span class="sourceLineNo">2171</span>   * @param target a primitive {@code byte} value<a name="line.2171"></a>
-<span class="sourceLineNo">2172</span>   * @return the least index {@code i} for which {@code array[i] == target}, or {@code -1} if no<a name="line.2172"></a>
-<span class="sourceLineNo">2173</span>   *         such index exists.<a name="line.2173"></a>
-<span class="sourceLineNo">2174</span>   */<a name="line.2174"></a>
-<span class="sourceLineNo">2175</span>  public static int indexOf(byte[] array, byte target) {<a name="line.2175"></a>
-<span class="sourceLineNo">2176</span>    for (int i = 0; i &lt; array.length; i++) {<a name="line.2176"></a>
-<span class="sourceLineNo">2177</span>      if (array[i] == target) {<a name="line.2177"></a>
-<span class="sourceLineNo">2178</span>        return i;<a name="line.2178"></a>
-<span class="sourceLineNo">2179</span>      }<a name="line.2179"></a>
-<span class="sourceLineNo">2180</span>    }<a name="line.2180"></a>
-<span class="sourceLineNo">2181</span>    return -1;<a name="line.2181"></a>
-<span class="sourceLineNo">2182</span>  }<a name="line.2182"></a>
-<span class="sourceLineNo">2183</span><a name="line.2183"></a>
-<span class="sourceLineNo">2184</span>  /**<a name="line.2184"></a>
-<span class="sourceLineNo">2185</span>   * Returns the start position of the first occurrence of the specified {@code<a name="line.2185"></a>
-<span class="sourceLineNo">2186</span>   * target} within {@code array}, or {@code -1} if there is no such occurrence.<a name="line.2186"></a>
-<span class="sourceLineNo">2187</span>   * &lt;p&gt;<a name="line.2187"></a>
-<span class="sourceLineNo">2188</span>   * More formally, returns the lowest index {@code i} such that {@code<a name="line.2188"></a>
-<span class="sourceLineNo">2189</span>   * java.util.Arrays.copyOfRange(array, i, i + target.length)} contains exactly the same elements<a name="line.2189"></a>
-<span class="sourceLineNo">2190</span>   * as {@code target}.<a name="line.2190"></a>
-<span class="sourceLineNo">2191</span>   * @param array  the array to search for the sequence {@code target}<a name="line.2191"></a>
-<span class="sourceLineNo">2192</span>   * @param target the array to search for as a sub-sequence of {@code array}<a name="line.2192"></a>
-<span class="sourceLineNo">2193</span>   */<a name="line.2193"></a>
-<span class="sourceLineNo">2194</span>  public static int indexOf(byte[] array, byte[] target) {<a name="line.2194"></a>
-<span class="sourceLineNo">2195</span>    checkNotNull(array, "array");<a name="line.2195"></a>
-<span class="sourceLineNo">2196</span>    checkNotNull(target, "target");<a name="line.2196"></a>
-<span class="sourceLineNo">2197</span>    if (target.length == 0) {<a name="line.2197"></a>
-<span class="sourceLineNo">2198</span>      return 0;<a name="line.2198"></a>
-<span class="sourceLineNo">2199</span>    }<a name="line.2199"></a>
-<span class="sourceLineNo">2200</span><a name="line.2200"></a>
-<span class="sourceLineNo">2201</span>    outer: for (int i = 0; i &lt; array.length - target.length + 1; i++) {<a name="line.2201"></a>
-<span class="sourceLineNo">2202</span>      for (int j = 0; j &lt; target.length; j++) {<a name="line.2202"></a>
-<span class="sourceLineNo">2203</span>        if (array[i + j] != target[j]) {<a name="line.2203"></a>
-<span class="sourceLineNo">2204</span>          continue outer;<a name="line.2204"></a>
-<span class="sourceLineNo">2205</span>        }<a name="line.2205"></a>
-<span class="sourceLineNo">2206</span>      }<a name="line.2206"></a>
-<span class="sourceLineNo">2207</span>      return i;<a name="line.2207"></a>
-<span class="sourceLineNo">2208</span>    }<a name="line.2208"></a>
-<span class="sourceLineNo">2209</span>    return -1;<a name="line.2209"></a>
-<span class="sourceLineNo">2210</span>  }<a name="line.2210"></a>
-<span class="sourceLineNo">2211</span><a name="line.2211"></a>
-<span class="sourceLineNo">2212</span>  /**<a name="line.2212"></a>
-<span class="sourceLineNo">2213</span>   * Return true if target is present as an element anywhere in the given array.<a name="line.2213"></a>
-<span class="sourceLineNo">2214</span>   * @param array  an array of {@code byte} values, possibly empty<a name="line.2214"></a>
-<span class="sourceLineNo">2215</span>   * @param target a primitive {@code byte} value<a name="line.2215"></a>
-<span class="sourceLineNo">2216</span>   * @return {@code true} if {@code target} is present as an element anywhere in {@code array}.<a name="line.2216"></a>
-<span class="sourceLineNo">2217</span>   */<a name="line.2217"></a>
-<span class="sourceLineNo">2218</span>  public static boolean contains(byte[] array, byte target) {<a name="line.2218"></a>
-<span class="sourceLineNo">2219</span>    return indexOf(array, target) &gt; -1;<a name="line.2219"></a>
-<span class="sourceLineNo">2220</span>  }<a name="line.2220"></a>
-<span class="sourceLineNo">2221</span><a name="line.2221"></a>
-<span class="sourceLineNo">2222</span>  /**<a name="line.2222"></a>
-<span class="sourceLineNo">2223</span>   * Return true if target is present as an element anywhere in the given array.<a name="line.2223"></a>
-<span class="sourceLineNo">2224</span>   * @param array  an array of {@code byte} values, possibly empty<a name="line.2224"></a>
-<span class="sourceLineNo">2225</span>   * @param target an array of {@code byte}<a name="line.2225"></a>
-<span class="sourceLineNo">2226</span>   * @return {@code true} if {@code target} is present anywhere in {@code array}<a name="line.2226"></a>
-<span class="sourceLineNo">2227</span>   */<a name="line.2227"></a>
-<span class="sourceLineNo">2228</span>  public static boolean contains(byte[] array, byte[] target) {<a name="line.2228"></a>
-<span class="sourceLineNo">2229</span>    return indexOf(array, target) &gt; -1;<a name="line.2229"></a>
-<span class="sourceLineNo">2230</span>  }<a name="line.2230"></a>
-<span class="sourceLineNo">2231</span><a name="line.2231"></a>
-<span class="sourceLineNo">2232</span>  /**<a name="line.2232"></a>
-<span class="sourceLineNo">2233</span>   * Fill given array with zeros.<a name="line.2233"></a>
-<span class="sourceLineNo">2234</span>   * @param b array which needs to be filled with zeros<a name="line.2234"></a>
-<span class="sourceLineNo">2235</span>   */<a name="line.2235"></a>
-<span class="sourceLineNo">2236</span>  public static void zero(byte[] b) {<a name="line.2236"></a>
-<span class="sourceLineNo">2237</span>    zero(b, 0, b.length);<a name="line.2237"></a>
-<span class="sourceLineNo">2238</span>  }<a name="line.2238"></a>
-<span class="sourceLineNo">2239</span><a name="line.2239"></a>
-<span class="sourceLineNo">2240</span>  /**<a name="line.2240"></a>
-<span class="sourceLineNo">2241</span>   * Fill given array with zeros at the specified position.<a name="line.2241"></a>
-<span class="sourceLineNo">2242</span>   */<a name="line.2242"></a>
-<span class="sourceLineNo">2243</span>  public static void zero(byte[] b, int offset, int length) {<a name="line.2243"></a>
-<span class="sourceLineNo">2244</span>    checkPositionIndex(offset, b.length, "offset");<a name="line.2244"></a>
-<span class="sourceLineNo">2245</span>    checkArgument(length &gt; 0, "length must be greater than 0");<a name="line.2245"></a>
-<span class="sourceLineNo">2246</span>    checkPositionIndex(offset + length, b.length, "offset + length");<a name="line.2246"></a>
-<span class="sourceLineNo">2247</span>    Arrays.fill(b, offset, offset + length, (byte) 0);<a name="line.2247"></a>
-<span class="sourceLineNo">2248</span>  }<a name="line.2248"></a>
-<span class="sourceLineNo">2249</span><a name="line.2249"></a>
-<span class="sourceLineNo">2250</span>  // Pseudorandom random number generator, do not use SecureRandom here<a name="line.2250"></a>
-<span class="sourceLineNo">2251</span>  private static final Random RNG = new Random();<a name="line.2251"></a>
-<span class="sourceLineNo">2252</span><a name="line.2252"></a>
-<span class="sourceLineNo">2253</span>  /**<a name="line.2253"></a>
-<span class="sourceLineNo">2254</span>   * Fill given array with random bytes.<a name="line.2254"></a>
-<span class="sourceLineNo">2255</span>   * @param b array which needs to be filled with random bytes<a name="line.2255"></a>
-<span class="sourceLineNo">2256</span>   *          &lt;p&gt;<a name="line.2256"></a>
-<span class="sourceLineNo">2257</span>   *          If you want random bytes generated by a strong source of randomness use<a name="line.2257"></a>
-<span class="sourceLineNo">2258</span>   *          {@link Bytes#secureRandom(byte[])}.<a name="line.2258"></a>
-<span class="sourceLineNo">2259</span>   * @param b array which needs to be filled with random bytes<a name="line.2259"></a>
-<span class="sourceLineNo">2260</span>   */<a name="line.2260"></a>
-<span class="sourceLineNo">2261</span>  public static void random(byte[] b) {<a name="line.2261"></a>
-<span class="sourceLineNo">2262</span>    RNG.nextBytes(b);<a name="line.2262"></a>
-<span class="sourceLineNo">2263</span>  }<a name="line.2263"></a>
-<span class="sourceLineNo">2264</span><a name="line.2264"></a>
-<span class="sourceLineNo">2265</span>  /**<a name="line.2265"></a>
-<span class="sourceLineNo">2266</span>   * Fill given array with random bytes at the specified position.<a name="line.2266"></a>
-<span class="sourceLineNo">2267</span>   * &lt;p&gt;<a name="line.2267"></a>
-<span class="sourceLineNo">2268</span>   * If you want random bytes generated by a strong source of randomness use<a name="line.2268"></a>
-<span class="sourceLineNo">2269</span>   * {@link Bytes#secureRandom(byte[], int, int)}.<a name="line.2269"></a>
-<span class="sourceLineNo">2270</span>   * @param b      array which needs to be filled with random bytes<a name="line.2270"></a>
-<span class="sourceLineNo">2271</span>   * @param offset staring offset in array<a name="line.2271"></a>
-<span class="sourceLineNo">2272</span>   * @param length number of bytes to fill<a name="line.2272"></a>
-<span class="sourceLineNo">2273</span>   */<a name="line.2273"></a>
-<span class="sourceLineNo">2274</span>  public static void random(byte[] b, int offset, int length) {<a name="line.2274"></a>
-<span class="sourceLineNo">2275</span>    checkPositionIndex(offset, b.length, "offset");<a name="line.2275"></a>
-<span class="sourceLineNo">2276</span>    checkArgument(length &gt; 0, "length must be greater than 0");<a name="line.2276"></a>
-<span class="sourceLineNo">2277</span>    checkPositionIndex(offset + length, b.length, "offset + length");<a name="line.2277"></a>
-<span class="sourceLineNo">2278</span>    byte[] buf = new byte[length];<a name="line.2278"></a>
-<span class="sourceLineNo">2279</span>    RNG.nextBytes(buf);<a name="line.2279"></a>
-<span class="sourceLineNo">2280</span>    System.arraycopy(buf, 0, b, offset, length);<a name="line.2280"></a>
-<span class="sourceLineNo">2281</span>  }<a name="line.2281"></a>
-<span class="sourceLineNo">2282</span><a name="line.2282"></a>
-<span class="sourceLineNo">2283</span>  // Bytes.secureRandom may be used to create key material.<a name="line.2283"></a>
-<span class="sourceLineNo">2284</span>  private static final SecureRandom SECURE_RNG = new SecureRandom();<a name="line.2284"></a>
-<span class="sourceLineNo">2285</span><a name="line.2285"></a>
-<span class="sourceLineNo">2286</span>  /**<a name="line.2286"></a>
-<span class="sourceLineNo">2287</span>   * Fill given array with random bytes using a strong random number generator.<a name="line.2287"></a>
-<span class="sourceLineNo">2288</span>   * @param b array which needs to be filled with random bytes<a name="line.2288"></a>
-<span class="sourceLineNo">2289</span>   */<a name="line.2289"></a>
-<span class="sourceLineNo">2290</span>  public static void secureRandom(byte[] b) {<a name="line.2290"></a>
-<span class="sourceLineNo">2291</span>    SECURE_RNG.nextBytes(b);<a name="line.2291"></a>
-<span class="sourceLineNo">2292</span>  }<a name="line.2292"></a>
-<span class="sourceLineNo">2293</span><a name="line.2293"></a>
-<span class="sourceLineNo">2294</span>  /**<a name="line.2294"></a>
-<span class="sourceLineNo">2295</span>   * Fill given array with random bytes at the specified position using a strong random number<a name="line.2295"></a>
-<span class="sourceLineNo">2296</span>   * generator.<a name="line.2296"></a>
-<span class="sourceLineNo">2297</span>   * @param b      array which needs to be filled with random bytes<a name="line.2297"></a>
-<span class="sourceLineNo">2298</span>   * @param offset staring offset in array<a name="line.2298"></a>
-<span class="sourceLineNo">2299</span>   * @param length number of bytes to fill<a name="line.2299"></a>
-<span class="sourceLineNo">2300</span>   */<a name="line.2300"></a>
-<span class="sourceLineNo">2301</span>  public static void secureRandom(byte[] b, int offset, int length) {<a name="line.2301"></a>
-<span class="sourceLineNo">2302</span>    checkPositionIndex(offset, b.length, "offset");<a name="line.2302"></a>
-<span class="sourceLineNo">2303</span>    checkArgument(length &gt; 0, "length must be greater than 0");<a name="line.2303"></a>
-<span class="sourceLineNo">2304</span>    checkPositionIndex(offset + length, b.length, "offset + length");<a name="line.2304"></a>
-<span class="sourceLineNo">2305</span>    byte[] buf = new byte[length];<a name="line.2305"></a>
-<span class="sourceLineNo">2306</span>    SECURE_RNG.nextBytes(buf);<a name="line.2306"></a>
-<span class="sourceLineNo">2307</span>    System.arraycopy(buf, 0, b, offset, length);<a name="line.2307"></a>
+<span class="sourceLineNo">1778</span>    return add(a, padding);<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>  }<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span><a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>  /**<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>   * Split passed range. Expensive operation relatively. Uses BigInteger math. Useful splitting<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>   * ranges for MapReduce jobs.<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>   * @param a   Beginning of range<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>   * @param b   End of range<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>   * @param num Number of times to split range. Pass 1 if you want to split the range in two; i.e.<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>   *            one split.<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>   * @return Array of dividing values<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>   */<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>  public static byte[][] split(final byte[] a, final byte[] b, final int num) {<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>    return split(a, b, false, num);<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>  }<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span><a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>  /**<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>   * Split passed range. Expensive operation relatively. Uses BigInteger math. Useful splitting<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>   * ranges for MapReduce jobs.<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>   * @param a         Beginning of range<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>   * @param b         End of range<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>   * @param inclusive Whether the end of range is prefix-inclusive or is considered an exclusive<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>   *                  boundary. Automatic splits are generally exclusive and manual splits with an<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>   *                  explicit range utilize an inclusive end of range.<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>   * @param num       Number of times to split range. Pass 1 if you want to split the range in two;<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>   *                  i.e. one split.<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>   * @return Array of dividing values<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>   */<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>  public static byte[][] split(final byte[] a, final byte[] b, boolean inclusive, final int num) {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>    byte[][] ret = new byte[num + 2][];<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>    int i = 0;<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>    Iterable&lt;byte[]&gt; iter = iterateOnSplits(a, b, inclusive, num);<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>    if (iter == null) return null;<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>    for (byte[] elem : iter) {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>      ret[i++] = elem;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>    }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>    return ret;<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>  }<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span><a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>  /**<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>   * Iterate over keys within the passed range, splitting at an [a,b) boundary.<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>   */<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>  public static Iterable&lt;byte[]&gt; iterateOnSplits(final byte[] a, final byte[] b, final int num) {<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>    return iterateOnSplits(a, b, false, num);<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>  }<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span><a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>  /**<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>   * Iterate over keys within the passed range.<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>   */<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>  public static Iterable&lt;byte[]&gt; iterateOnSplits(final byte[] a, final byte[] b, boolean inclusive,<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>    final int num) {<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>    byte[] aPadded;<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>    byte[] bPadded;<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>    if (a.length &lt; b.length) {<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>      aPadded = padTail(a, b.length - a.length);<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>      bPadded = b;<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>    } else if (b.length &lt; a.length) {<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>      aPadded = a;<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>      bPadded = padTail(b, a.length - b.length);<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>    } else {<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>      aPadded = a;<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>      bPadded = b;<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>    }<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>    if (compareTo(aPadded, bPadded) &gt;= 0) {<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>      throw new IllegalArgumentException("b &lt;= a");<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>    }<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>    if (num &lt;= 0) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>      throw new IllegalArgumentException("num cannot be &lt;= 0");<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>    }<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>    byte[] prependHeader = { 1, 0 };<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>    final BigInteger startBI = new BigInteger(add(prependHeader, aPadded));<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>    final BigInteger stopBI = new BigInteger(add(prependHeader, bPadded));<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>    BigInteger diffBI = stopBI.subtract(startBI);<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>    if (inclusive) {<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>      diffBI = diffBI.add(BigInteger.ONE);<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>    }<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>    final BigInteger splitsBI = BigInteger.valueOf(num + 1);<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>    // when diffBI &lt; splitBI, use an additional byte to increase diffBI<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>    if (diffBI.compareTo(splitsBI) &lt; 0) {<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>      byte[] aPaddedAdditional = new byte[aPadded.length + 1];<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>      byte[] bPaddedAdditional = new byte[bPadded.length + 1];<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>      for (int i = 0; i &lt; aPadded.length; i++) {<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>        aPaddedAdditional[i] = aPadded[i];<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>      }<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>      for (int j = 0; j &lt; bPadded.length; j++) {<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>        bPaddedAdditional[j] = bPadded[j];<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>      }<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>      aPaddedAdditional[aPadded.length] = 0;<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>      bPaddedAdditional[bPadded.length] = 0;<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>      return iterateOnSplits(aPaddedAdditional, bPaddedAdditional, inclusive, num);<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>    }<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>    final BigInteger intervalBI;<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>    try {<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>      intervalBI = diffBI.divide(splitsBI);<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>    } catch (Exception e) {<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>      LOG.error("Exception caught during division", e);<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>      return null;<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>    }<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span><a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>    final Iterator&lt;byte[]&gt; iterator = new Iterator&lt;byte[]&gt;() {<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>      private int i = -1;<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span><a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>      @Override<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>      public boolean hasNext() {<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>        return i &lt; num + 1;<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>      }<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span><a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>      @Override<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>      public byte[] next() {<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>        i++;<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>        if (i == 0) return a;<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>        if (i == num + 1) return b;<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span><a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>        BigInteger curBI = startBI.add(intervalBI.multiply(BigInteger.valueOf(i)));<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>        byte[] padded = curBI.toByteArray();<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>        if (padded[1] == 0) padded = tail(padded, padded.length - 2);<a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>        else padded = tail(padded, padded.length - 1);<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>        return padded;<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>      }<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span><a name="line.1897"></a>
+<span class="sourceLineNo">1898</span>      @Override<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>      public void remove() {<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>        throw new UnsupportedOperationException();<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>      }<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span><a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>    };<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span><a name="line.1904"></a>
+<span class="sourceLineNo">1905</span>    return new Iterable&lt;byte[]&gt;() {<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span>      @Override<a name="line.1906"></a>
+<span class="sourceLineNo">1907</span>      public Iterator&lt;byte[]&gt; iterator() {<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>        return iterator;<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>      }<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>    };<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>  }<a name="line.1911"></a>
+<span class="sourceLineNo">1912</span><a name="line.1912"></a>
+<span class="sourceLineNo">1913</span>  /**<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>   * Calculate the hash code for a given range of bytes.<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>   * @param bytes  array to hash<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>   * @param offset offset to start from<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>   * @param length length to hash<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>   */<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span>  public static int hashCode(byte[] bytes, int offset, int length) {<a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>    int hash = 1;<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>    for (int i = offset; i &lt; offset + length; i++)<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span>      hash = (31 * hash) + bytes[i];<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>    return hash;<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>  }<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span><a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>  /**<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>   * Create an array of byte[] given an array of String.<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>   * @param t operands<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>   * @return Array of byte arrays made from passed array of Text<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>   */<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>  public static byte[][] toByteArrays(final String[] t) {<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>    byte[][] result = new byte[t.length][];<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>    for (int i = 0; i &lt; t.length; i++) {<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>      result[i] = Bytes.toBytes(t[i]);<a name="line.1934"></a>
+<span class="sourceLineNo">1935</span>    }<a name="line.1935"></a>
+<span class="sourceLineNo">1936</span>    return result;<a name="line.1936"></a>
+<span class="sourceLineNo">1937</span>  }<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span><a name="line.1938"></a>
+<span class="sourceLineNo">1939</span>  /**<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>   * Create an array of byte[] given an array of String.<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span>   * @param t operands<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>   * @return Array of binary byte arrays made from passed array of binary strings<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span>   */<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span>  public static byte[][] toBinaryByteArrays(final String[] t) {<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span>    byte[][] result = new byte[t.length][];<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span>    for (int i = 0; i &lt; t.length; i++) {<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>      result[i] = Bytes.toBytesBinary(t[i]);<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>    }<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>    return result;<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>  }<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span><a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>  /**<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>   * Create a byte[][] where first and only entry is &lt;code&gt;column&lt;/code&gt;<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>   * @param column operand<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>   * @return A byte array of a byte array where first and only entry is &lt;code&gt;column&lt;/code&gt;<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>   */<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span>  public static byte[][] toByteArrays(final String column) {<a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>    return toByteArrays(toBytes(column));<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>  }<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span><a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>  /**<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>   * Create a byte[][] where first and only entry is &lt;code&gt;column&lt;/code&gt;<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span>   * @param column operand<a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>   * @return A byte array of a byte array where first and only entry is &lt;code&gt;column&lt;/code&gt;<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>   */<a name="line.1965"></a>
+<span class="sourceLineNo">1966</span>  public static byte[][] toByteArrays(final byte[] column) {<a name="line.1966"></a>
+<span class="sourceLineNo">1967</span>    byte[][] result = new byte[1][];<a name="line.1967"></a>
+<span class="sourceLineNo">1968</span>    result[0] = column;<a name="line.1968"></a>
+<span class="sourceLineNo">1969</span>    return result;<a name="line.1969"></a>
+<span class="sourceLineNo">1970</span>  }<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span><a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>  /**<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>   * Binary search for keys in indexes using Bytes.BYTES_RAWCOMPARATOR.<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>   * @param arr    array of byte arrays to search for<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>   * @param key    the key you want to find<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>   * @param offset the offset in the key you want to find<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span>   * @param length the length of the key<a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>   * @return zero-based index of the key, if the key is present in the array. Otherwise, a value -(i<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span>   *         + 1) such that the key is between arr[i - 1] and arr[i] non-inclusively, where i is in<a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>   *         [0, i], if we define arr[-1] = -Inf and arr[N] = Inf for an N-element array. The above<a name="line.1980"></a>
+<span class="sourceLineNo">1981</span>   *         means that this function can return 2N + 1 different values ranging from -(N + 1) to N<a name="line.1981"></a>
+<span class="sourceLineNo">1982</span>   *         - 1.<a name="line.1982"></a>
+<span class="sourceLineNo">1983</span>   */<a name="line.1983"></a>
+<span class="sourceLineNo">1984</span>  public static int binarySearch(byte[][] arr, byte[] key, int offset, int length) {<a name="line.1984"></a>
+<span class="sourceLineNo">1985</span>    int low = 0;<a name="line.1985"></a>
+<span class="sourceLineNo">1986</span>    int high = arr.length - 1;<a name="line.1986"></a>
+<span class="sourceLineNo">1987</span><a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>    while (low &lt;= high) {<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>      int mid = low + ((high - low) &gt;&gt; 1);<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span>      // we have to compare in this order, because the comparator order<a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>      // has special logic when the 'left side' is a special key.<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>      int cmp =<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>        Bytes.BYTES_RAWCOMPARATOR.compare(key, offset, length, arr[mid], 0, arr[mid].length);<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>      // key lives above the midpoint<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span>      if (cmp &gt; 0) low = mid + 1;<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span>      // key lives below the midpoint<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span>      else if (cmp &lt; 0) high = mid - 1;<a name="line.1997"></a>
+<span class="sourceLineNo">1998</span>      // BAM. how often does this really happen?<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span>      else return mid;<a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>    }<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>    return -(low + 1);<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>  }<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span><a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>  /**<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>   * Binary search for keys in indexes.<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>   * @param arr        array of byte arrays to search for<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>   * @param key        the key you want to find<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>   * @param comparator a comparator to compare.<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>   * @return zero-based index of the key, if the key is present in the array. Otherwise, a value -(i<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>   *         + 1) such that the key is between arr[i - 1] and arr[i] non-inclusively, where i is in<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span>   *         [0, i], if we define arr[-1] = -Inf and arr[N] = Inf for an N-element array. The above<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>   *         means that this function can return 2N + 1 different values ranging from -(N + 1) to N<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>   *         - 1.<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>   * @return the index of the block<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>   */<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>  public static int binarySearch(Cell[] arr, Cell key, CellComparator comparator) {<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>    int low = 0;<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>    int high = arr.length - 1;<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>    while (low &lt;= high) {<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>      int mid = low + ((high - low) &gt;&gt; 1);<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>      // we have to compare in this order, because the comparator order<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>      // has special logic when the 'left side' is a special key.<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>      int cmp = comparator.compare(key, arr[mid]);<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>      // key lives above the midpoint<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>      if (cmp &gt; 0) low = mid + 1;<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span>      // key lives below the midpoint<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span>      else if (cmp &lt; 0) high = mid - 1;<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>      // BAM. how often does this really happen?<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span>      else return mid;<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>    }<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>    return -(low + 1);<a name="line.2031"></a>
+<span class="sourceLineNo">2032</span>  }<a name="line.2032"></a>
+<span class="sourceLineNo">2033</span><a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>  /**<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>   * Bytewise binary increment/deincrement of long contained in byte array on given amount.<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>   * @param value  - array of bytes containing long (length &amp;lt;= SIZEOF_LONG)<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>   * @param amount value will be incremented on (deincremented if negative)<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>   * @return array of bytes containing incremented long (length == SIZEOF_LONG)<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>   */<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>  public static byte[] incrementBytes(byte[] value, long amount) {<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>    byte[] val = value;<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>    if (val.length &lt; SIZEOF_LONG) {<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>      // Hopefully this doesn't happen too often.<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>      byte[] newvalue;<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span>      if (val[0] &lt; 0) {<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>        newvalue = new byte[] { -1, -1, -1, -1, -1, -1, -1, -1 };<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>      } else {<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>        newvalue = new byte[SIZEOF_LONG];<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>      }<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>      System.arraycopy(val, 0, newvalue, newvalue.length - val.length, val.length);<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>      val = newvalue;<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>    } else if (val.length &gt; SIZEOF_LONG) {<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>      throw new IllegalArgumentException("Increment Bytes - value too big: " + val.length);<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>    }<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span>    if (amount == 0) return val;<a name="line.2055"></a>
+<span class="sourceLineNo">2056</span>    if (val[0] &lt; 0) {<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span>      return binaryIncrementNeg(val, amount);<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span>    }<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>    return binaryIncrementPos(val, amount);<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>  }<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span><a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>  /* increment/deincrement for positive value */<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span>  private static byte[] binaryIncrementPos(byte[] value, long amount) {<a name="line.2063"></a>
+<span class="sourceLineNo">2064</span>    long amo = amount;<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>    int sign = 1;<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>    if (amount &lt; 0) {<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>      amo = -amount;<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>      sign = -1;<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>    }<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>    for (int i = 0; i &lt; value.length; i++) {<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>      int cur = ((int) amo % 256) * sign;<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span>      amo = (amo &gt;&gt; 8);<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>      int val = value[value.length - i - 1] &amp; 0x0ff;<a name="line.2073"></a>
+<span class="sourceLineNo">2074</span>      int total = val + cur;<a name="line.2074"></a>
+<span class="sourceLineNo">2075</span>      if (total &gt; 255) {<a name="line.2075"></a>
+<span class="sourceLineNo">2076</span>        amo += sign;<a name="line.2076"></a>
+<span class="sourceLineNo">2077</span>        total %= 256;<a name="line.2077"></a>
+<span class="sourceLineNo">2078</span>      } else if (total &lt; 0) {<a name="line.2078"></a>
+<span class="sourceLineNo">2079</span>        amo -= sign;<a name="line.2079"></a>
+<span class="sourceLineNo">2080</span>      }<a name="line.2080"></a>
+<span class="sourceLineNo">2081</span>      value[value.length - i - 1] = (byte) total;<a name="line.2081"></a>
+<span class="sourceLineNo">2082</span>      if (amo == 0) return value;<a name="line.2082"></a>
+<span class="sourceLineNo">2083</span>    }<a name="line.2083"></a>
+<span class="sourceLineNo">2084</span>    return value;<a name="line.2084"></a>
+<span class="sourceLineNo">2085</span>  }<a name="line.2085"></a>
+<span class="sourceLineNo">2086</span><a name="line.2086"></a>
+<span class="sourceLineNo">2087</span>  /* increment/deincrement for negative value */<a name="line.2087"></a>
+<span class="sourceLineNo">2088</span>  private static byte[] binaryIncrementNeg(byte[] value, long amount) {<a name="line.2088"></a>
+<span class="sourceLineNo">2089</span>    long amo = amount;<a name="line.2089"></a>
+<span class="sourceLineNo">2090</span>    int sign = 1;<a name="line.2090"></a>
+<span class="sourceLineNo">2091</span>    if (amount &lt; 0) {<a name="line.2091"></a>
+<span class="sourceLineNo">2092</span>      amo = -amount;<a name="line.2092"></a>
+<span class="sourceLineNo">2093</span>      sign = -1;<a name="line.2093"></a>
+<span class="sourceLineNo">2094</span>    }<a name="line.2094"></a>
+<span class="sourceLineNo">2095</span>    for (int i = 0; i &lt; value.length; i++) {<a name="line.2095"></a>
+<span class="sourceLineNo">2096</span>      int cur = ((int) amo % 256) * sign;<a name="line.2096"></a>
+<span class="sourceLineNo">2097</span>      amo = (amo &gt;&gt; 8);<a name="line.2097"></a>
+<span class="sourceLineNo">2098</span>      int val = (~value[value.length - i - 1] &amp; 0x0ff) + 1;<a name="line.2098"></a>
+<span class="sourceLineNo">2099</span>      int total = cur - val;<a name="line.2099"></a>
+<span class="sourceLineNo">2100</span>      if (total &gt;= 0) {<a name="line.2100"></a>
+<span class="sourceLineNo">2101</span>        amo += sign;<a name="line.2101"></a>
+<span class="sourceLineNo">2102</span>      } else if (total &lt; -256) {<a name="line.2102"></a>
+<span class="sourceLineNo">2103</span>        amo -= sign;<a name="line.2103"></a>
+<span class="sourceLineNo">2104</span>        total %= 256;<a name="line.2104"></a>
+<span class="sourceLineNo">2105</span>      }<a name="line.2105"></a>
+<span class="sourceLineNo">2106</span>      value[value.length - i - 1] = (byte) total;<a name="line.2106"></a>
+<span class="sourceLineNo">2107</span>      if (amo == 0) return value;<a name="line.2107"></a>
+<span class="sourceLineNo">2108</span>    }<a name="line.2108"></a>
+<span class="sourceLineNo">2109</span>    return value;<a name="line.2109"></a>
+<span class="sourceLineNo">2110</span>  }<a name="line.2110"></a>
+<span class="sourceLineNo">2111</span><a name="line.2111"></a>
+<span class="sourceLineNo">2112</span>  /**<a name="line.2112"></a>
+<span class="sourceLineNo">2113</span>   * Writes a string as a fixed-size field, padded with zeros.<a name="line.2113"></a>
+<span class="sourceLineNo">2114</span>   */<a name="line.2114"></a>
+<span class="sourceLineNo">2115</span>  public static void writeStringFixedSize(final DataOutput out, String s, int size)<a name="line.2115"></a>
+<span class="sourceLineNo">2116</span>    throws IOException {<a name="line.2116"></a>
+<span class="sourceLineNo">2117</span>    byte[] b = toBytes(s);<a name="line.2117"></a>
+<span class="sourceLineNo">2118</span>    if (b.length &gt; size) {<a name="line.2118"></a>
+<span class="sourceLineNo">2119</span>      throw new IOException("Trying to write " + b.length + " bytes (" + toStringBinary(b)<a name="line.2119"></a>
+<span class="sourceLineNo">2120</span>        + ") into a field of length " + size);<a name="line.2120"></a>
+<span class="sourceLineNo">2121</span>    }<a name="line.2121"></a>
+<span class="sourceLineNo">2122</span><a name="line.2122"></a>
+<span class="sourceLineNo">2123</span>    out.writeBytes(s);<a name="line.2123"></a>
+<span class="sourceLineNo">2124</span>    for (int i = 0; i &lt; size - s.length(); ++i)<a name="line.2124"></a>
+<span class="sourceLineNo">2125</span>      out.writeByte(0);<a name="line.2125"></a>
+<span class="sourceLineNo">2126</span>  }<a name="line.2126"></a>
+<span class="sourceLineNo">2127</span><a name="line.2127"></a>
+<span class="sourceLineNo">2128</span>  /**<a name="line.2128"></a>
+<span class="sourceLineNo">2129</span>   * Reads a fixed-size field and interprets it as a string padded with zeros.<a name="line.2129"></a>
+<span class="sourceLineNo">2130</span>   */<a name="line.2130"></a>
+<span class="sourceLineNo">2131</span>  public static String readStringFixedSize(final DataInput in, int size) throws IOException {<a name="line.2131"></a>
+<span class="sourceLineNo">2132</span>    byte[] b = new byte[size];<a name="line.2132"></a>
+<span class="sourceLineNo">2133</span>    in.readFully(b);<a name="line.2133"></a>
+<span class="sourceLineNo">2134</span>    int n = b.length;<a name="line.2134"></a>
+<span class="sourceLineNo">2135</span>    while (n &gt; 0 &amp;&amp; b[n - 1] == 0)<a name="line.2135"></a>
+<span class="sourceLineNo">2136</span>      --n;<a name="line.2136"></a>
+<span class="sourceLineNo">2137</span><a name="line.2137"></a>
+<span class="sourceLineNo">2138</span>    return toString(b, 0, n);<a name="line.2138"></a>
+<span class="sourceLineNo">2139</span>  }<a name="line.2139"></a>
+<span class="sourceLineNo">2140</span><a name="line.2140"></a>
+<span class="sourceLineNo">2141</span>  /**<a name="line.2141"></a>
+<span class="sourceLineNo">2142</span>   * Copy the byte array given in parameter and return an instance of a new byte array with the same<a name="line.2142"></a>
+<span class="sourceLineNo">2143</span>   * length and the same content.<a name="line.2143"></a>
+<span class="sourceLineNo">2144</span>   * @param bytes the byte array to duplicate<a name="line.2144"></a>
+<span class="sourceLineNo">2145</span>   * @return a copy of the given byte array<a name="line.2145"></a>
+<span class="sourceLineNo">2146</span>   */<a name="line.2146"></a>
+<span class="sourceLineNo">2147</span>  public static byte[] copy(byte[] bytes) {<a name="line.2147"></a>
+<span class="sourceLineNo">2148</span>    if (bytes == null) return null;<a name="line.2148"></a>
+<span class="sourceLineNo">2149</span>    byte[] result = new byte[bytes.length];<a name="line.2149"></a>
+<span class="sourceLineNo">2150</span>    System.arraycopy(bytes, 0, result, 0, bytes.length);<a name="line.2150"></a>
+<span class="sourceLineNo">2151</span>    return result;<a name="line.2151"></a>
+<span class="sourceLineNo">2152</span>  }<a name="line.2152"></a>
+<span class="sourceLineNo">2153</span><a name="line.2153"></a>
+<span class="sourceLineNo">2154</span>  /**<a name="line.2154"></a>
+<span class="sourceLineNo">2155</span>   * Copy the byte array given in parameter and return an instance of a new byte array with the same<a name="line.2155"></a>
+<span class="sourceLineNo">2156</span>   * length and the same content.<a name="line.2156"></a>
+<span class="sourceLineNo">2157</span>   * @param bytes the byte array to copy from<a name="line.2157"></a>
+<span class="sourceLineNo">2158</span>   * @return a copy of the given designated byte array<a name="line.2158"></a>
+<span class="sourceLineNo">2159</span>   */<a name="line.2159"></a>
+<span class="sourceLineNo">2160</span>  public static byte[] copy(byte[] bytes, final int offset, final int length) {<a name="line.2160"></a>
+<span class="sourceLineNo">2161</span>    if (bytes == null) return null;<a name="line.2161"></a>
+<span class="sourceLineNo">2162</span>    byte[] result = new byte[length];<a name="line.2162"></a>
+<span class="sourceLineNo">2163</span>    System.arraycopy(bytes, offset, result, 0, length);<a name="line.2163"></a>
+<span class="sourceLineNo">2164</span>    return result;<a name="line.2164"></a>
+<span class="sourceLineNo">2165</span>  }<a name="line.2165"></a>
+<span class="sourceLineNo">2166</span><a name="line.2166"></a>
+<span class="sourceLineNo">2167</span>  /**<a name="line.2167"></a>
+<span class="sourceLineNo">2168</span>   * Search sorted array "a" for byte "key". I can't remember if I wrote this or copied it from<a name="line.2168"></a>
+<span class="sourceLineNo">2169</span>   * somewhere. (mcorgan)<a name="line.2169"></a>
+<span class="sourceLineNo">2170</span>   * @param a         Array to search. Entries must be sorted and unique.<a name="line.2170"></a>
+<span class="sourceLineNo">2171</span>   * @param fromIndex First index inclusive of "a" to include in the search.<a name="line.2171"></a>
+<span class="sourceLineNo">2172</span>   * @param toIndex   Last index exclusive of "a" to include in the search.<a name="line.2172"></a>
+<span class="sourceLineNo">2173</span>   * @param key       The byte to search for.<a name="line.2173"></a>
+<span class="sourceLineNo">2174</span>   * @return The index of key if found. If not found, return -(index + 1), where negative indicates<a name="line.2174"></a>
+<span class="sourceLineNo">2175</span>   *         "not found" and the "index + 1" handles the "-0" case.<a name="line.2175"></a>
+<span class="sourceLineNo">2176</span>   */<a name="line.2176"></a>
+<span class="sourceLineNo">2177</span>  public static int unsignedBinarySearch(byte[] a, int fromIndex, int toIndex, byte key) {<a name="line.2177"></a>
+<span class="sourceLineNo">2178</span>    int unsignedKey = key &amp; 0xff;<a name="line.2178"></a>
+<span class="sourceLineNo">2179</span>    int low = fromIndex;<a name="line.2179"></a>
+<span class="sourceLineNo">2180</span>    int high = toIndex - 1;<a name="line.2180"></a>
+<span class="sourceLineNo">2181</span><a name="line.2181"></a>
+<span class="sourceLineNo">2182</span>    while (low &lt;= high) {<a name="line.2182"></a>
+<span class="sourceLineNo">2183</span>      int mid = low + ((high - low) &gt;&gt; 1);<a name="line.2183"></a>
+<span class="sourceLineNo">2184</span>      int midVal = a[mid] &amp; 0xff;<a name="line.2184"></a>
+<span class="sourceLineNo">2185</span><a name="line.2185"></a>
+<span class="sourceLineNo">2186</span>      if (midVal &lt; unsignedKey) {<a name="line.2186"></a>
+<span class="sourceLineNo">2187</span>        low = mid + 1;<a name="line.2187"></a>
+<span class="sourceLineNo">2188</span>      } else if (midVal &gt; unsignedKey) {<a name="line.2188"></a>
+<span class="sourceLineNo">2189</span>        high = mid - 1;<a name="line.2189"></a>
+<span class="sourceLineNo">2190</span>      } else {<a name="line.2190"></a>
+<span class="sourceLineNo">2191</span>        return mid; // key found<a name="line.2191"></a>
+<span class="sourceLineNo">2192</span>      }<a name="line.2192"></a>
+<span class="sourceLineNo">2193</span>    }<a name="line.2193"></a>
+<span class="sourceLineNo">2194</span>    return -(low + 1); // key not found.<a name="line.2194"></a>
+<span class="sourceLineNo">2195</span>  }<a name="line.2195"></a>
+<span class="sourceLineNo">2196</span><a name="line.2196"></a>
+<span class="sourceLineNo">2197</span>  /**<a name="line.2197"></a>
+<span class="sourceLineNo">2198</span>   * Treat the byte[] as an unsigned series of bytes, most significant bits first. Start by adding 1<a name="line.2198"></a>
+<span class="sourceLineNo">2199</span>   * to the rightmost bit/byte and carry over all overflows to the more significant bits/bytes.<a name="line.2199"></a>
+<span class="sourceLineNo">2200</span>   * @param input The byte[] to increment.<a name="line.2200"></a>
+<span class="sourceLineNo">2201</span>   * @return The incremented copy of "in". May be same length or 1 byte longer.<a name="line.2201"></a>
+<span class="sourceLineNo">2202</span>   */<a name="line.2202"></a>
+<span class="sourceLineNo">2203</span>  public static byte[] unsignedCopyAndIncrement(final byte[] input) {<a name="line.2203"></a>
+<span class="sourceLineNo">2204</span>    byte[] copy = copy(input);<a name="line.2204"></a>
+<span class="sourceLineNo">2205</span>    if (copy == null) {<a name="line.2205"></a>
+<span class="sourceLineNo">2206</span>      throw new IllegalArgumentException("cannot increment null array");<a name="line.2206"></a>
+<span class="sourceLineNo">2207</span>    }<a name="line.2207"></a>
+<span class="sourceLineNo">2208</span>    for (int i = copy.length - 1; i &gt;= 0; --i) {<a name="line.2208"></a>
+<span class="sourceLineNo">2209</span>      if (copy[i] == -1) {// -1 is all 1-bits, which is the unsigned maximum<a name="line.2209"></a>
+<span class="sourceLineNo">2210</span>        copy[i] = 0;<a name="line.2210"></a>
+<span class="sourceLineNo">2211</span>      } else {<a name="line.2211"></a>
+<span class="sourceLineNo">2212</span>        ++copy[i];<a name="line.2212"></a>
+<span class="sourceLineNo">2213</span>        return copy;<a name="line.2213"></a>
+<span class="sourceLineNo">2214</span>      }<a name="line.2214"></a>
+<span class="sourceLineNo">2215</span>    }<a name="line.2215"></a>
+<span class="sourceLineNo">2216</span>    // we maxed out the array<a name="line.2216"></a>
+<span class="sourceLineNo">2217</span>    byte[] out = new byte[copy.length + 1];<a name="line.2217"></a>
+<span class="sourceLineNo">2218</span>    out[0] = 1;<a name="line.2218"></a>
+<span class="sourceLineNo">2219</span>    System.arraycopy(copy, 0, out, 1, copy.length);<a name="line.2219"></a>
+<span class="sourceLineNo">2220</span>    return out;<a name="line.2220"></a>
+<span class="sourceLineNo">2221</span>  }<a name="line.2221"></a>
+<span class="sourceLineNo">2222</span><a name="line.2222"></a>
+<span class="sourceLineNo">2223</span>  public static boolean equals(List&lt;byte[]&gt; a, List&lt;byte[]&gt; b) {<a name="line.2223"></a>
+<span class="sourceLineNo">2224</span>    if (a == null) {<a name="line.2224"></a>
+<span class="sourceLineNo">2225</span>      if (b == null) {<a name="line.2225"></a>
+<span class="sourceLineNo">2226</span>        return true;<a name="line.2226"></a>
+<span class="sourceLineNo">2227</span>      }<a name="line.2227"></a>
+<span class="sourceLineNo">2228</span>      return false;<a name="line.2228"></a>
+<span class="sourceLineNo">2229</span>    }<a name="line.2229"></a>
+<span class="sourceLineNo">2230</span>    if (b == null) {<a name="line.2230"></a>
+<span class="sourceLineNo">2231</span>      return false;<a name="line.2231"></a>
+<span class="sourceLineNo">2232</span>    }<a name="line.2232"></a>
+<span class="sourceLineNo">2233</span>    if (a.size() != b.size()) {<a name="line.2233"></a>
+<span class="sourceLineNo">2234</span>      return false;<a name="line.2234"></a>
+<span class="sourceLineNo">2235</span>    }<a name="line.2235"></a>
+<span class="sourceLineNo">2236</span>    for (int i = 0; i &lt; a.size(); ++i) {<a name="line.2236"></a>
+<span class="sourceLineNo">2237</span>      if (!Bytes.equals(a.get(i), b.get(i))) {<a name="line.2237"></a>
+<span class="sourceLineNo">2238</span>        return false;<a name="line.2238"></a>
+<span class="sourceLineNo">2239</span>      }<a name="line.2239"></a>
+<span class="sourceLineNo">2240</span>    }<a name="line.2240"></a>
+<span class="sourceLineNo">2241</span>    return true;<a name="line.2241"></a>
+<span class="sourceLineNo">2242</span>  }<a name="line.2242"></a>
+<span class="sourceLineNo">2243</span><a name="line.2243"></a>
+<span class="sourceLineNo">2244</span>  public static boolean isSorted(Collection&lt;byte[]&gt; arrays) {<a name="line.2244"></a>
+<span class="sourceLineNo">2245</span>    if (!CollectionUtils.isEmpty(arrays)) {<a name="line.2245"></a>
+<span class="sourceLineNo">2246</span>      byte[] previous = new byte[0];<a name="line.2246"></a>
+<span class="sourceLineNo">2247</span>      for (byte[] array : arrays) {<a name="line.2247"></a>
+<span class="sourceLineNo">2248</span>        if (Bytes.compareTo(previous, array) &gt; 0) {<a name="line.2248"></a>
+<span class="sourceLineNo">2249</span>          return false;<a name="line.2249"></a>
+<span class="sourceLineNo">2250</span>        }<a name="line.2250"></a>
+<span class="sourceLineNo">2251</span>        previous = array;<a name="line.2251"></a>
+<span class="sourceLineNo">2252</span>      }<a name="line.2252"></a>
+<span class="sourceLineNo">2253</span>    }<a name="line.2253"></a>
+<span class="sourceLineNo">2254</span>    return true;<a name="line.2254"></a>
+<span class="sourceLineNo">2255</span>  }<a name="line.2255"></a>
+<span class="sourceLineNo">2256</span><a name="line.2256"></a>
+<span class="sourceLineNo">2257</span>  public static List&lt;byte[]&gt; getUtf8ByteArrays(List&lt;String&gt; strings) {<a name="line.2257"></a>
+<span class="sourceLineNo">2258</span>    if (CollectionUtils.isEmpty(strings)) {<a name="line.2258"></a>
+<span class="sourceLineNo">2259</span>      return Collections.emptyList();<a name="line.2259"></a>
+<span class="sourceLineNo">2260</span>    }<a name="line.2260"></a>
+<span class="sourceLineNo">2261</span>    List&lt;byte[]&gt; byteArrays = new ArrayList&lt;&gt;(strings.size());<a name="line.2261"></a>
+<span class="sourceLineNo">2262</span>    strings.forEach(s -&gt; byteArrays.add(Bytes.toBytes(s)));<a name="line.2262"></a>
+<span class="sourceLineNo">2263</span>    return byteArrays;<a name="line.2263"></a>
+<span class="sourceLineNo">2264</span>  }<a name="line.2264"></a>
+<span class="sourceLineNo">2265</span><a name="line.2265"></a>
+<span class="sourceLineNo">2266</span>  /**<a name="line.2266"></a>
+<span class="sourceLineNo">2267</span>   * Returns the index of the first appearance of the value {@code target} in {@code array}.<a name="line.2267"></a>
+<span class="sourceLineNo">2268</span>   * @param array  an array of {@code byte} values, possibly empty<a name="line.2268"></a>
+<span class="sourceLineNo">2269</span>   * @param target a primitive {@code byte} value<a name="line.2269"></a>
+<span class="sourceLineNo">2270</span>   * @return the least index {@code i} for which {@code array[i] == target}, or {@code -1} if no<a name="line.2270"></a>
+<span class="sourceLineNo">2271</span>   *         such index exists.<a name="line.2271"></a>
+<span class="sourceLineNo">2272</span>   */<a name="line.2272"></a>
+<span class="sourceLineNo">2273</span>  public static int indexOf(byte[] array, byte target) {<a name="line.2273"></a>
+<span class="sourceLineNo">2274</span>    for (int i = 0; i &lt; array.length; i++) {<a name="line.2274"></a>
+<span class="sourceLineNo">2275</span>      if (array[i] == target) {<a name="line.2275"></a>
+<span class="sourceLineNo">2276</span>        return i;<a name="line.2276"></a>
+<span class="sourceLineNo">2277</span>      }<a name="line.2277"></a>
+<span class="sourceLineNo">2278</span>    }<a name="line.2278"></a>
+<span class="sourceLineNo">2279</span>    return -1;<a name="line.2279"></a>
+<span class="sourceLineNo">2280</span>  }<a name="line.2280"></a>
+<span class="sourceLineNo">2281</span><a name="line.2281"></a>
+<span class="sourceLineNo">2282</span>  /**<a name="line.2282"></a>
+<span class="sourceLineNo">2283</span>   * Returns the start position of the first occurrence of the specified {@code<a name="line.2283"></a>
+<span class="sourceLineNo">2284</span>   * target} within {@code array}, or {@code -1} if there is no such occurrence.<a name="line.2284"></a>
+<span class="sourceLineNo">2285</span>   * &lt;p&gt;<a name="line.2285"></a>
+<span class="sourceLineNo">2286</span>   * More formally, returns the lowest index {@code i} such that {@code<a name="line.2286"></a>
+<span class="sourceLineNo">2287</span>   * java.util.Arrays.copyOfRange(array, i, i + target.length)} contains exactly the same elements<a name="line.2287"></a>
+<span class="sourceLineNo">2288</span>   * as {@code target}.<a name="line.2288"></a>
+<span class="sourceLineNo">2289</span>   * @param array  the array to search for the sequence {@code target}<a name="line.2289"></a>
+<span class="sourceLineNo">2290</span>   * @param target the array to search for as a sub-sequence of {@code array}<a name="line.2290"></a>
+<span class="sourceLineNo">2291</span>   */<a name="line.2291"></a>
+<span class="sourceLineNo">2292</span>  public static int indexOf(byte[] array, byte[] target) {<a name="line.2292"></a>
+<span class="sourceLineNo">2293</span>    checkNotNull(array, "array");<a name="line.2293"></a>
+<span class="sourceLineNo">2294</span>    checkNotNull(target, "target");<a name="line.2294"></a>
+<span class="sourceLineNo">2295</span>    if (target.length == 0) {<a name="line.2295"></a>
+<span class="sourceLineNo">2296</span>      return 0;<a name="line.2296"></a>
+<span class="sourceLineNo">2297</span>    }<a name="line.2297"></a>
+<span class="sourceLineNo">2298</span><a name="line.2298"></a>
+<span class="sourceLineNo">2299</span>    outer: for (int i = 0; i &lt; array.length - target.length + 1; i++) {<a name="line.2299"></a>
+<span class="sourceLineNo">2300</span>      for (int j = 0; j &lt; target.length; j++) {<a name="line.2300"></a>
+<span class="sourceLineNo">2301</span>        if (array[i + j] != target[j]) {<a name="line.2301"></a>
+<span class="sourceLineNo">2302</span>          continue outer;<a name="line.2302"></a>
+<span class="sourceLineNo">2303</span>        }<a name="line.2303"></a>
+<span class="sourceLineNo">2304</span>      }<a name="line.2304"></a>
+<span class="sourceLineNo">2305</span>      return i;<a name="line.2305"></a>
+<span class="sourceLineNo">2306</span>    }<a name="line.2306"></a>
+<span class="sourceLineNo">2307</span>    return -1;<a name="line.2307"></a>
 <span class="sourceLineNo">2308</span>  }<a name="line.2308"></a>
 <span class="sourceLineNo">2309</span><a name="line.2309"></a>
 <span class="sourceLineNo">2310</span>  /**<a name="line.2310"></a>
-<span class="sourceLineNo">2311</span>   * Create a max byte array with the specified max byte count<a name="line.2311"></a>
-<span class="sourceLineNo">2312</span>   * @param maxByteCount the length of returned byte array<a name="line.2312"></a>
-<span class="sourceLineNo">2313</span>   * @return the created max byte array<a name="line.2313"></a>
-<span class="sourceLineNo">2314</span>   */<a name="line.2314"></a>
-<span class="sourceLineNo">2315</span>  public static byte[] createMaxByteArray(int maxByteCount) {<a name="line.2315"></a>
-<span class="sourceLineNo">2316</span>    byte[] maxByteArray = new byte[maxByteCount];<a name="line.2316"></a>
-<span class="sourceLineNo">2317</span>    for (int i = 0; i &lt; maxByteArray.length; i++) {<a name="line.2317"></a>
-<span class="sourceLineNo">2318</span>      maxByteArray[i] = (byte) 0xff;<a name="line.2318"></a>
-<span class="sourceLineNo">2319</span>    }<a name="line.2319"></a>
-<span class="sourceLineNo">2320</span>    return maxByteArray;<a name="line.2320"></a>
-<span class="sourceLineNo">2321</span>  }<a name="line.2321"></a>
-<span class="sourceLineNo">2322</span><a name="line.2322"></a>
-<span class="sourceLineNo">2323</span>  /**<a name="line.2323"></a>
-<span class="sourceLineNo">2324</span>   * Create a byte array which is multiple given bytes<a name="line.2324"></a>
-<span class="sourceLineNo">2325</span>   * @return byte array<a name="line.2325"></a>
-<span class="sourceLineNo">2326</span>   */<a name="line.2326"></a>
-<span class="sourceLineNo">2327</span>  public static byte[] multiple(byte[] srcBytes, int multiNum) {<a name="line.2327"></a>
-<span class="sourceLineNo">2328</span>    if (multiNum &lt;= 0) {<a name="line.2328"></a>
-<span class="sourceLineNo">2329</span>      return new byte[0];<a name="line.2329"></a>
-<span class="sourceLineNo">2330</span>    }<a name="line.2330"></a>
-<span class="sourceLineNo">2331</span>    byte[] result = new byte[srcBytes.length * multiNum];<a name="line.2331"></a>
-<span class="sourceLineNo">2332</span>    for (int i = 0; i &lt; multiNum; i++) {<a name="line.2332"></a>
-<span class="sourceLineNo">2333</span>      System.arraycopy(srcBytes, 0, result, i * srcBytes.length, srcBytes.length);<a name="line.2333"></a>
-<span class="sourceLineNo">2334</span>    }<a name="line.2334"></a>
-<span class="sourceLineNo">2335</span>    return result;<a name="line.2335"></a>
+<span class="sourceLineNo">2311</span>   * Return true if target is present as an element anywhere in the given array.<a name="line.2311"></a>
+<span class="sourceLineNo">2312</span>   * @param array  an array of {@code byte} values, possibly empty<a name="line.2312"></a>
+<span class="sourceLineNo">2313</span>   * @param target a primitive {@code byte} value<a name="line.2313"></a>
+<span class="sourceLineNo">2314</span>   * @return {@code true} if {@code target} is present as an element anywhere in {@code array}.<a name="line.2314"></a>
+<span class="sourceLineNo">2315</span>   */<a name="line.2315"></a>
+<span class="sourceLineNo">2316</span>  public static boolean contains(byte[] array, byte target) {<a name="line.2316"></a>
+<span class="sourceLineNo">2317</span>    return indexOf(array, target) &gt; -1;<a name="line.2317"></a>
+<span class="sourceLineNo">2318</span>  }<a name="line.2318"></a>
+<span class="sourceLineNo">2319</span><a name="line.2319"></a>
+<span class="sourceLineNo">2320</span>  /**<a name="line.2320"></a>
+<span class="sourceLineNo">2321</span>   * Return true if target is present as an element anywhere in the given array.<a name="line.2321"></a>
+<span class="sourceLineNo">2322</span>   * @param array  an array of {@code byte} values, possibly empty<a name="line.2322"></a>
+<span class="sourceLineNo">2323</span>   * @param target an array of {@code byte}<a name="line.2323"></a>
+<span class="sourceLineNo">2324</span>   * @return {@code true} if {@code target} is present anywhere in {@code array}<a name="line.2324"></a>
+<span class="sourceLineNo">2325</span>   */<a name="line.2325"></a>
+<span class="sourceLineNo">2326</span>  public static boolean contains(byte[] array, byte[] target) {<a name="line.2326"></a>
+<span class="sourceLineNo">2327</span>    return indexOf(array, target) &gt; -1;<a name="line.2327"></a>
+<span class="sourceLineNo">2328</span>  }<a name="line.2328"></a>
+<span class="sourceLineNo">2329</span><a name="line.2329"></a>
+<span class="sourceLineNo">2330</span>  /**<a name="line.2330"></a>
+<span class="sourceLineNo">2331</span>   * Fill given array with zeros.<a name="line.2331"></a>
+<span class="sourceLineNo">2332</span>   * @param b array which needs to be filled with zeros<a name="line.2332"></a>
+<span class="sourceLineNo">2333</span>   */<a name="line.2333"></a>
+<span class="sourceLineNo">2334</span>  public static void zero(byte[] b) {<a name="line.2334"></a>
+<span class="sourceLineNo">2335</span>    zero(b, 0, b.length);<a name="line.2335"></a>
 <span class="sourceLineNo">2336</span>  }<a name="line.2336"></a>
 <span class="sourceLineNo">2337</span><a name="line.2337"></a>
-<span class="sourceLineNo">2338</span>  private static final char[] HEX_CHARS =<a name="line.2338"></a>
-<span class="sourceLineNo">2339</span>    { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };<a name="line.2339"></a>
-<span class="sourceLineNo">2340</span><a name="line.2340"></a>
-<span class="sourceLineNo">2341</span>  /**<a name="line.2341"></a>
-<span class="sourceLineNo">2342</span>   * Convert a byte range into a hex string<a name="line.2342"></a>
-<span class="sourceLineNo">2343</span>   */<a name="line.2343"></a>
-<span class="sourceLineNo">2344</span>  public static String toHex(byte[] b, int offset, int length) {<a name="line.2344"></a>
-<span class="sourceLineNo">2345</span>    checkArgument(length &lt;= Integer.MAX_VALUE / 2);<a name="line.2345"></a>
-<span class="sourceLineNo">2346</span>    int numChars = length * 2;<a name="line.2346"></a>
-<span class="sourceLineNo">2347</span>    char[] ch = new char[numChars];<a name="line.2347"></a>
-<span class="sourceLineNo">2348</span>    for (int i = 0; i &lt; numChars; i += 2) {<a name="line.2348"></a>
-<span class="sourceLineNo">2349</span>      byte d = b[offset + i / 2];<a name="line.2349"></a>
-<span class="sourceLineNo">2350</span>      ch[i] = HEX_CHARS[(d &gt;&gt; 4) &amp; 0x0F];<a name="line.2350"></a>
-<span class="sourceLineNo">2351</span>      ch[i + 1] = HEX_CHARS[d &amp; 0x0F];<a name="line.2351"></a>
-<span class="sourceLineNo">2352</span>    }<a name="line.2352"></a>
-<span class="sourceLineNo">2353</span>    return new String(ch);<a name="line.2353"></a>
-<span class="sourceLineNo">2354</span>  }<a name="line.2354"></a>
-<span class="sourceLineNo">2355</span><a name="line.2355"></a>
-<span class="sourceLineNo">2356</span>  /**<a name="line.2356"></a>
-<span class="sourceLineNo">2357</span>   * Convert a byte array into a hex string<a name="line.2357"></a>
+<span class="sourceLineNo">2338</span>  /**<a name="line.2338"></a>
+<span class="sourceLineNo">2339</span>   * Fill given array with zeros at the specified position.<a name="line.2339"></a>
+<span class="sourceLineNo">2340</span>   */<a name="line.2340"></a>
+<span class="sourceLineNo">2341</span>  public static void zero(byte[] b, int offset, int length) {<a name="line.2341"></a>
+<span class="sourceLineNo">2342</span>    checkPositionIndex(offset, b.length, "offset");<a name="line.2342"></a>
+<span class="sourceLineNo">2343</span>    checkArgument(length &gt; 0, "length must be greater than 0");<a name="line.2343"></a>
+<span class="sourceLineNo">2344</span>    checkPositionIndex(offset + length, b.length, "offset + length");<a name="line.2344"></a>
+<span class="sourceLineNo">2345</span>    Arrays.fill(b, offset, offset + length, (byte) 0);<a name="line.2345"></a>
+<span class="sourceLineNo">2346</span>  }<a name="line.2346"></a>
+<span class="sourceLineNo">2347</span><a name="line.2347"></a>
+<span class="sourceLineNo">2348</span>  // Pseudorandom random number generator, do not use SecureRandom here<a name="line.2348"></a>
+<span class="sourceLineNo">2349</span>  private static final Random RNG = new Random();<a name="line.2349"></a>
+<span class="sourceLineNo">2350</span><a name="line.2350"></a>
+<span class="sourceLineNo">2351</span>  /**<a name="line.2351"></a>
+<span class="sourceLineNo">2352</span>   * Fill given array with random bytes.<a name="line.2352"></a>
+<span class="sourceLineNo">2353</span>   * @param b array which needs to be filled with random bytes<a name="line.2353"></a>
+<span class="sourceLineNo">2354</span>   *          &lt;p&gt;<a name="line.2354"></a>
+<span class="sourceLineNo">2355</span>   *          If you want random bytes generated by a strong source of randomness use<a name="line.2355"></a>
+<span class="sourceLineNo">2356</span>   *          {@link Bytes#secureRandom(byte[])}.<a name="line.2356"></a>
+<span class="sourceLineNo">2357</span>   * @param b array which needs to be filled with random bytes<a name="line.2357"></a>
 <span class="sourceLineNo">2358</span>   */<a name="line.2358"></a>
-<span class="sourceLineNo">2359</span>  public static String toHex(byte[] b) {<a name="line.2359"></a>
-<span class="sourceLineNo">2360</span>    return toHex(b, 0, b.length);<a name="line.2360"></a>
+<span class="sourceLineNo">2359</span>  public static void random(byte[] b) {<a name="line.2359"></a>
+<span class="sourceLineNo">2360</span>    RNG.nextBytes(b);<a name="line.2360"></a>
 <span class="sourceLineNo">2361</span>  }<a name="line.2361"></a>
 <span class="sourceLineNo">2362</span><a name="line.2362"></a>
-<span class="sourceLineNo">2363</span>  private static int hexCharToNibble(char ch) {<a name="line.2363"></a>
-<span class="sourceLineNo">2364</span>    if (ch &lt;= '9' &amp;&amp; ch &gt;= '0') {<a name="line.2364"></a>
-<span class="sourceLineNo">2365</span>      return ch - '0';<a name="line.2365"></a>
-<span class="sourceLineNo">2366</span>    } else if (ch &gt;= 'a' &amp;&amp; ch &lt;= 'f') {<a name="line.2366"></a>
-<span class="sourceLineNo">2367</span>      return ch - 'a' + 10;<a name="line.2367"></a>
-<span class="sourceLineNo">2368</span>    } else if (ch &gt;= 'A' &amp;&amp; ch &lt;= 'F') {<a name="line.2368"></a>
-<span class="sourceLineNo">2369</span>      return ch - 'A' + 10;<a name="line.2369"></a>
-<span class="sourceLineNo">2370</span>    }<a name="line.2370"></a>
-<span class="sourceLineNo">2371</span>    throw new IllegalArgumentException("Invalid hex char: " + ch);<a name="line.2371"></a>
-<span class="sourceLineNo">2372</span>  }<a name="line.2372"></a>
-<span class="sourceLineNo">2373</span><a name="line.2373"></a>
-<span class="sourceLineNo">2374</span>  private static byte hexCharsToByte(char c1, char c2) {<a name="line.2374"></a>
-<span class="sourceLineNo">2375</span>    return (byte) ((hexCharToNibble(c1) &lt;&lt; 4) | hexCharToNibble(c2));<a name="line.2375"></a>
-<span class="sourceLineNo">2376</span>  }<a name="line.2376"></a>
-<span class="sourceLineNo">2377</span><a name="line.2377"></a>
-<span class="sourceLineNo">2378</span>  /**<a name="line.2378"></a>
-<span class="sourceLineNo">2379</span>   * Create a byte array from a string of hash digits. The length of the string must be a multiple<a name="line.2379"></a>
-<span class="sourceLineNo">2380</span>   * of 2<a name="line.2380"></a>
-<span class="sourceLineNo">2381</span>   */<a name="line.2381"></a>
-<span class="sourceLineNo">2382</span>  public static byte[] fromHex(String hex) {<a name="line.2382"></a>
-<span class="sourceLineNo">2383</span>    checkArgument(hex.length() % 2 == 0, "length must be a multiple of 2");<a name="line.2383"></a>
-<span class="sourceLineNo">2384</span>    int len = hex.length();<a name="line.2384"></a>
-<span class="sourceLineNo">2385</span>    byte[] b = new byte[len / 2];<a name="line.2385"></a>
-<span class="sourceLineNo">2386</span>    for (int i = 0; i &lt; len; i += 2) {<a name="line.2386"></a>
-<span class="sourceLineNo">2387</span>      b[i / 2] = hexCharsToByte(hex.charAt(i), hex.charAt(i + 1));<a name="line.2387"></a>
-<span class="sourceLineNo">2388</span>    }<a name="line.2388"></a>
-<span class="sourceLineNo">2389</span>    return b;<a name="line.2389"></a>
+<span class="sourceLineNo">2363</span>  /**<a name="line.2363"></a>
+<span class="sourceLineNo">2364</span>   * Fill given array with random bytes at the specified position.<a name="line.2364"></a>
+<span class="sourceLineNo">2365</span>   * &lt;p&gt;<a name="line.2365"></a>
+<span class="sourceLineNo">2366</span>   * If you want random bytes generated by a strong source of randomness use<a name="line.2366"></a>
+<span class="sourceLineNo">2367</span>   * {@link Bytes#secureRandom(byte[], int, int)}.<a name="line.2367"></a>
+<span class="sourceLineNo">2368</span>   * @param b      array which needs to be filled with random bytes<a name="line.2368"></a>
+<span class="sourceLineNo">2369</span>   * @param offset staring offset in array<a name="line.2369"></a>
+<span class="sourceLineNo">2370</span>   * @param length number of bytes to fill<a name="line.2370"></a>
+<span class="sourceLineNo">2371</span>   */<a name="line.2371"></a>
+<span class="sourceLineNo">2372</span>  public static void random(byte[] b, int offset, int length) {<a name="line.2372"></a>
+<span class="sourceLineNo">2373</span>    checkPositionIndex(offset, b.length, "offset");<a name="line.2373"></a>
+<span class="sourceLineNo">2374</span>    checkArgument(length &gt; 0, "length must be greater than 0");<a name="line.2374"></a>
+<span class="sourceLineNo">2375</span>    checkPositionIndex(offset + length, b.length, "offset + length");<a name="line.2375"></a>
+<span class="sourceLineNo">2376</span>    byte[] buf = new byte[length];<a name="line.2376"></a>
+<span class="sourceLineNo">2377</span>    RNG.nextBytes(buf);<a name="line.2377"></a>
+<span class="sourceLineNo">2378</span>    System.arraycopy(buf, 0, b, offset, length);<a name="line.2378"></a>
+<span class="sourceLineNo">2379</span>  }<a name="line.2379"></a>
+<span class="sourceLineNo">2380</span><a name="line.2380"></a>
+<span class="sourceLineNo">2381</span>  // Bytes.secureRandom may be used to create key material.<a name="line.2381"></a>
+<span class="sourceLineNo">2382</span>  private static final SecureRandom SECURE_RNG = new SecureRandom();<a name="line.2382"></a>
+<span class="sourceLineNo">2383</span><a name="line.2383"></a>
+<span class="sourceLineNo">2384</span>  /**<a name="line.2384"></a>
+<span class="sourceLineNo">2385</span>   * Fill given array with random bytes using a strong random number generator.<a name="line.2385"></a>
+<span class="sourceLineNo">2386</span>   * @param b array which needs to be filled with random bytes<a name="line.2386"></a>
+<span class="sourceLineNo">2387</span>   */<a name="line.2387"></a>
+<span class="sourceLineNo">2388</span>  public static void secureRandom(byte[] b) {<a name="line.2388"></a>
+<span class="sourceLineNo">2389</span>    SECURE_RNG.nextBytes(b);<a name="line.2389"></a>
 <span class="sourceLineNo">2390</span>  }<a name="line.2390"></a>
 <span class="sourceLineNo">2391</span><a name="line.2391"></a>
 <span class="sourceLineNo">2392</span>  /**<a name="line.2392"></a>
-<span class="sourceLineNo">2393</span>   * Find index of passed delimiter.<a name="line.2393"></a>
-<span class="sourceLineNo">2394</span>   * @return Index of delimiter having started from start of &lt;code&gt;b&lt;/code&gt; moving rightward.<a name="line.2394"></a>
-<span class="sourceLineNo">2395</span>   */<a name="line.2395"></a>
-<span class="sourceLineNo">2396</span>  public static int searchDelimiterIndex(final byte[] b, int offset, final int length,<a name="line.2396"></a>
-<span class="sourceLineNo">2397</span>    final int delimiter) {<a name="line.2397"></a>
-<span class="sourceLineNo">2398</span>    if (b == null) {<a name="line.2398"></a>
-<span class="sourceLineNo">2399</span>      throw new IllegalArgumentException("Passed buffer is null");<a name="line.2399"></a>
-<span class="sourceLineNo">2400</span>    }<a name="line.2400"></a>
-<span class="sourceLineNo">2401</span>    int result = -1;<a name="line.2401"></a>
-<span class="sourceLineNo">2402</span>    for (int i = offset; i &lt; length + offset; i++) {<a name="line.2402"></a>
-<span class="sourceLineNo">2403</span>      if (b[i] == delimiter) {<a name="line.2403"></a>
-<span class="sourceLineNo">2404</span>        result = i;<a name="line.2404"></a>
-<span class="sourceLineNo">2405</span>        break;<a name="line.2405"></a>
-<span class="sourceLineNo">2406</span>      }<a name="line.2406"></a>
-<span class="sourceLineNo">2407</span>    }<a name="line.2407"></a>
-<span class="sourceLineNo">2408</span>    return result;<a name="line.2408"></a>
-<span class="sourceLineNo">2409</span>  }<a name="line.2409"></a>
-<span class="sourceLineNo">2410</span><a name="line.2410"></a>
-<span class="sourceLineNo">2411</span>  /**<a name="line.2411"></a>
-<span class="sourceLineNo">2412</span>   * Find index of passed delimiter walking from end of buffer backwards.<a name="line.2412"></a>
-<span class="sourceLineNo">2413</span>   * @return Index of delimiter<a name="line.2413"></a>
-<span class="sourceLineNo">2414</span>   */<a name="line.2414"></a>
-<span class="sourceLineNo">2415</span>  public static int searchDelimiterIndexInReverse(final byte[] b, final int offset,<a name="line.2415"></a>
-<span class="sourceLineNo">2416</span>    final int length, final int delimiter) {<a name="line.2416"></a>
-<span class="sourceLineNo">2417</span>    if (b == null) {<a name="line.2417"></a>
-<span class="sourceLineNo">2418</span>      throw new IllegalArgumentException("Passed buffer is null");<a name="line.2418"></a>
-<span class="sourceLineNo">2419</span>    }<a name="line.2419"></a>
-<span class="sourceLineNo">2420</span>    int result = -1;<a name="line.2420"></a>
-<span class="sourceLineNo">2421</span>    for (int i = (offset + length) - 1; i &gt;= offset; i--) {<a name="line.2421"></a>
-<span class="sourceLineNo">2422</span>      if (b[i] == delimiter) {<a name="line.2422"></a>
-<span class="sourceLineNo">2423</span>        result = i;<a name="line.2423"></a>
-<span class="sourceLineNo">2424</span>        break;<a name="line.2424"></a>
-<span class="sourceLineNo">2425</span>      }<a name="line.2425"></a>
-<span class="sourceLineNo">2426</span>    }<a name="line.2426"></a>
-<span class="sourceLineNo">2427</span>    return result;<a name="line.2427"></a>
-<span class="sourceLineNo">2428</span>  }<a name="line.2428"></a>
-<span class="sourceLineNo">2429</span><a name="line.2429"></a>
-<span class="sourceLineNo">2430</span>  public static int findCommonPrefix(byte[] left, byte[] right, int leftLength, int rightLength,<a name="line.2430"></a>
-<span class="sourceLineNo">2431</span>    int leftOffset, int rightOffset) {<a name="line.2431"></a>
-<span class="sourceLineNo">2432</span>    int length = Math.min(leftLength, rightLength);<a name="line.2432"></a>
-<span class="sourceLineNo">2433</span>    int result = 0;<a name="line.2433"></a>
-<span class="sourceLineNo">2434</span><a name="line.2434"></a>
-<span class="sourceLineNo">2435</span>    while (result &lt; length &amp;&amp; left[leftOffset + result] == right[rightOffset + result]) {<a name="line.2435"></a>
-<span class="sourceLineNo">2436</span>      result++;<a name="line.2436"></a>
-<span class="sourceLineNo">2437</span>    }<a name="line.2437"></a>
-<span class="sourceLineNo">2438</span>    return result;<a name="line.2438"></a>
-<span class="sourceLineNo">2439</span>  }<a name="line.2439"></a>
-<span class="sourceLineNo">2440</span>}<a name="line.2440"></a>
+<span class="sourceLineNo">2393</span>   * Fill given array with random bytes at the specified position using a strong random number<a name="line.2393"></a>
+<span class="sourceLineNo">2394</span>   * generator.<a name="line.2394"></a>
+<span class="sourceLineNo">2395</span>   * @param b      array which needs to be filled with random bytes<a name="line.2395"></a>
+<span class="sourceLineNo">2396</span>   * @param offset staring offset in array<a name="line.2396"></a>
+<span class="sourceLineNo">2397</span>   * @param length number of bytes to fill<a name="line.2397"></a>
+<span class="sourceLineNo">2398</span>   */<a name="line.2398"></a>
+<span class="sourceLineNo">2399</span>  public static void secureRandom(byte[] b, int offset, int length) {<a name="line.2399"></a>
+<span class="sourceLineNo">2400</span>    checkPositionIndex(offset, b.length, "offset");<a name="line.2400"></a>
+<span class="sourceLineNo">2401</span>    checkArgument(length &gt; 0, "length must be greater than 0");<a name="line.2401"></a>
+<span class="sourceLineNo">2402</span>    checkPositionIndex(offset + length, b.length, "offset + length");<a name="line.2402"></a>
+<span class="sourceLineNo">2403</span>    byte[] buf = new byte[length];<a name="line.2403"></a>
+<span class="sourceLineNo">2404</span>    SECURE_RNG.nextBytes(buf);<a name="line.2404"></a>
+<span class="sourceLineNo">2405</span>    System.arraycopy(buf, 0, b, offset, length);<a name="line.2405"></a>
+<span class="sourceLineNo">2406</span>  }<a name="line.2406"></a>
+<span class="sourceLineNo">2407</span><a name="line.2407"></a>
+<span class="sourceLineNo">2408</span>  /**<a name="line.2408"></a>
+<span class="sourceLineNo">2409</span>   * Create a max byte array with the specified max byte count<a name="line.2409"></a>
+<span class="sourceLineNo">2410</span>   * @param maxByteCount the length of returned byte array<a name="line.2410"></a>
+<span class="sourceLineNo">2411</span>   * @return the created max byte array<a name="line.2411"></a>
+<span class="sourceLineNo">2412</span>   */<a name="line.2412"></a>
+<span class="sourceLineNo">2413</span>  public static byte[] createMaxByteArray(int maxByteCount) {<a name="line.2413"></a>
+<span class="sourceLineNo">2414</span>    byte[] maxByteArray = new byte[maxByteCount];<a name="line.2414"></a>
+<span class="sourceLineNo">2415</span>    for (int i = 0; i &lt; maxByteArray.length; i++) {<a name="line.2415"></a>
+<span class="sourceLineNo">2416</span>      maxByteArray[i] = (byte) 0xff;<a name="line.2416"></a>
+<span class="sourceLineNo">2417</span>    }<a name="line.2417"></a>
+<span class="sourceLineNo">2418</span>    return maxByteArray;<a name="line.2418"></a>
+<span class="sourceLineNo">2419</span>  }<a name="line.2419"></a>
+<span class="sourceLineNo">2420</span><a name="line.2420"></a>
+<span class="sourceLineNo">2421</span>  /**<a name="line.2421"></a>
+<span class="sourceLineNo">2422</span>   * Create a byte array which is multiple given bytes<a name="line.2422"></a>
+<span class="sourceLineNo">2423</span>   * @return byte array<a name="line.2423"></a>
+<span class="sourceLineNo">2424</span>   */<a name="line.2424"></a>
+<span class="sourceLineNo">2425</span>  public static byte[] multiple(byte[] srcBytes, int multiNum) {<a name="line.2425"></a>
+<span class="sourceLineNo">2426</span>    if (multiNum &lt;= 0) {<a name="line.2426"></a>
+<span class="sourceLineNo">2427</span>      return new byte[0];<a name="line.2427"></a>
+<span class="sourceLineNo">2428</span>    }<a name="line.2428"></a>
+<span class="sourceLineNo">2429</span>    byte[] result = new byte[srcBytes.length * multiNum];<a name="line.2429"></a>
+<span class="sourceLineNo">2430</span>    for (int i = 0; i &lt; multiNum; i++) {<a name="line.2430"></a>
+<span class="sourceLineNo">2431</span>      System.arraycopy(srcBytes, 0, result, i * srcBytes.length, srcBytes.length);<a name="line.2431"></a>
+<span class="sourceLineNo">2432</span>    }<a name="line.2432"></a>
+<span class="sourceLineNo">2433</span>    return result;<a name="line.2433"></a>
+<span class="sourceLineNo">2434</span>  }<a name="line.2434"></a>
+<span class="sourceLineNo">2435</span><a name="line.2435"></a>
+<span class="sourceLineNo">2436</span>  private static final char[] HEX_CHARS =<a name="line.2436"></a>
+<span class="sourceLineNo">2437</span>    { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };<a name="line.2437"></a>
+<span class="sourceLineNo">2438</span><a name="line.2438"></a>
+<span class="sourceLineNo">2439</span>  /**<a name="line.2439"></a>
+<span class="sourceLineNo">2440</span>   * Convert a byte range into a hex string<a name="line.2440"></a>
+<span class="sourceLineNo">2441</span>   */<a name="line.2441"></a>
+<span class="sourceLineNo">2442</span>  public static String toHex(byte[] b, int offset, int length) {<a name="line.2442"></a>
+<span class="sourceLineNo">2443</span>    checkArgument(length &lt;= Integer.MAX_VALUE / 2);<a name="line.2443"></a>
+<span class="sourceLineNo">2444</span>    int numChars = length * 2;<a name="line.2444"></a>
+<span class="sourceLineNo">2445</span>    char[] ch = new char[numChars];<a name="line.2445"></a>
+<span class="sourceLineNo">2446</span>    for (int i = 0; i &lt; numChars; i += 2) {<a name="line.2446"></a>
+<span class="sourceLineNo">2447</span>      byte d = b[offset + i / 2];<a name="line.2447"></a>
+<span class="sourceLineNo">2448</span>      ch[i] = HEX_CHARS[(d &gt;&gt; 4) &amp; 0x0F];<a name="line.2448"></a>
+<span class="sourceLineNo">2449</span>      ch[i + 1] = HEX_CHARS[d &amp; 0x0F];<a name="line.2449"></a>
+<span class="sourceLineNo">2450</span>    }<a name="line.2450"></a>
+<span class="sourceLineNo">2451</span>    return new String(ch);<a name="line.2451"></a>
+<span class="sourceLineNo">2452</span>  }<a name="line.2452"></a>
+<span class="sourceLineNo">2453</span><a name="line.2453"></a>
+<span class="sourceLineNo">2454</span>  /**<a name="line.2454"></a>
+<span class="sourceLineNo">2455</span>   * Convert a byte array into a hex string<a name="line.2455"></a>
+<span class="sourceLineNo">2456</span>   */<a name="line.2456"></a>
+<span class="sourceLineNo">2457</span>  public static String toHex(byte[] b) {<a name="line.2457"></a>
+<span class="sourceLineNo">2458</span>    return toHex(b, 0, b.length);<a name="line.2458"></a>
+<span class="sourceLineNo">2459</span>  }<a name="line.2459"></a>
+<span class="sourceLineNo">2460</span><a name="line.2460"></a>
+<span class="sourceLineNo">2461</span>  private static int hexCharToNibble(char ch) {<a name="line.2461"></a>
+<span class="sourceLineNo">2462</span>    if (ch &lt;= '9' &amp;&amp; ch &gt;= '0') {<a name="line.2462"></a>
+<span class="sourceLineNo">2463</span>      return ch - '0';<a name="line.2463"></a>
+<span class="sourceLineNo">2464</span>    } else if (ch &gt;= 'a' &amp;&amp; ch &lt;= 'f') {<a name="line.2464"></a>
+<span class="sourceLineNo">2465</span>      return ch - 'a' + 10;<a name="line.2465"></a>
+<span class="sourceLineNo">2466</span>    } else if (ch &gt;= 'A' &amp;&amp; ch &lt;= 'F') {<a name="line.2466"></a>
+<span class="sourceLineNo">2467</span>      return ch - 'A' + 10;<a name="line.2467"></a>
+<span class="sourceLineNo">2468</span>    }<a name="line.2468"></a>
+<span class="sourceLineNo">2469</span>    throw new IllegalArgumentException("Invalid hex char: " + ch);<a name="line.2469"></a>
+<span class="sourceLineNo">2470</span>  }<a name="line.2470"></a>
+<span class="sourceLineNo">2471</span><a name="line.2471"></a>
+<span class="sourceLineNo">2472</span>  private static byte hexCharsToByte(char c1, char c2) {<a name="line.2472"></a>
+<span class="sourceLineNo">2473</span>    return (byte) ((hexCharToNibble(c1) &lt;&lt; 4) | hexCharToNibble(c2));<a name="line.2473"></a>
+<span class="sourceLineNo">2474</span>  }<a name="line.2474"></a>
+<span class="sourceLineNo">2475</span><a name="line.2475"></a>
+<span class="sourceLineNo">2476</span>  /**<a name="line.2476"></a>
+<span class="sourceLineNo">2477</span>   * Create a byte array from a string of hash digits. The length of the string must be a multiple<a name="line.2477"></a>
+<span class="sourceLineNo">2478</span>   * of 2<a name="line.2478"></a>
+<span class="sourceLineNo">2479</span>   */<a name="line.2479"></a>
+<span class="sourceLineNo">2480</span>  public static byte[] fromHex(String hex) {<a name="line.2480"></a>
+<span class="sourceLineNo">2481</span>    checkArgument(hex.length() % 2 == 0, "length must be a multiple of 2");<a name="line.2481"></a>
+<span class="sourceLineNo">2482</span>    int len = hex.length();<a name="line.2482"></a>
+<span class="sourceLineNo">2483</span>    byte[] b = new byte[len / 2];<a name="line.2483"></a>
+<span class="sourceLineNo">2484</span>    for (int i = 0; i &lt; len; i += 2) {<a name="line.2484"></a>
+<span class="sourceLineNo">2485</span>      b[i / 2] = hexCharsToByte(hex.charAt(i), hex.charAt(i + 1));<a name="line.2485"></a>
+<span class="sourceLineNo">2486</span>    }<a name="line.2486"></a>
+<span class="sourceLineNo">2487</span>    return b;<a name="line.2487"></a>
+<span class="sourceLineNo">2488</span>  }<a name="line.2488"></a>
+<span class="sourceLineNo">2489</span><a name="line.2489"></a>
+<span class="sourceLineNo">2490</span>  /**<a name="line.2490"></a>
+<span class="sourceLineNo">2491</span>   * Find index of passed delimiter.<a name="line.2491"></a>
+<span class="sourceLineNo">2492</span>   * @return Index of delimiter having started from start of &lt;code&gt;b&lt;/code&gt; moving rightward.<a name="line.2492"></a>
+<span class="sourceLineNo">2493</span>   */<a name="line.2493"></a>
+<span class="sourceLineNo">2494</span>  public static int searchDelimiterIndex(final byte[] b, int offset, final int length,<a name="line.2494"></a>
+<span class="sourceLineNo">2495</span>    final int delimiter) {<a name="line.2495"></a>
+<span class="sourceLineNo">2496</span>    if (b == null) {<a name="line.2496"></a>
+<span class="sourceLineNo">2497</span>      throw new IllegalArgumentException("Passed buffer is null");<a name="line.2497"></a>
+<span class="sourceLineNo">2498</span>    }<a name="line.2498"></a>
+<span class="sourceLineNo">2499</span>    int result = -1;<a name="line.2499"></a>
+<span class="sourceLineNo">2500</span>    for (int i = offset; i &lt; length + offset; i++) {<a name="line.2500"></a>
+<span class="sourceLineNo">2501</span>      if (b[i] == delimiter) {<a name="line.2501"></a>
+<span class="sourceLineNo">2502</span>        result = i;<a name="line.2502"></a>
+<span class="sourceLineNo">2503</span>        break;<a name="line.2503"></a>
+<span class="sourceLineNo">2504</span>      }<a name="line.2504"></a>
+<span class="sourceLineNo">2505</span>    }<a name="line.2505"></a>
+<span class="sourceLineNo">2506</span>    return result;<a name="line.2506"></a>
+<span class="sourceLineNo">2507</span>  }<a name="line.2507"></a>
+<span class="sourceLineNo">2508</span><a name="line.2508"></a>
+<span class="sourceLineNo">2509</span>  /**<a name="line.2509"></a>
+<span class="sourceLineNo">2510</span>   * Find index of passed delimiter walking from end of buffer backwards.<a name="line.2510"></a>
+<span class="sourceLineNo">2511</span>   * @return Index of delimiter<a name="line.2511"></a>
+<span class="sourceLineNo">2512</span>   */<a name="line.2512"></a>
+<span class="sourceLineNo">2513</span>  public static int searchDelimiterIndexInReverse(final byte[] b, final int offset,<a name="line.2513"></a>
+<span class="sourceLineNo">2514</span>    final int length, final int delimiter) {<a name="line.2514"></a>
+<span class="sourceLineNo">2515</span>    if (b == null) {<a name="line.2515"></a>
+<span class="sourceLineNo">2516</span>      throw new IllegalArgumentException("Passed buffer is null");<a name="line.2516"></a>
+<span class="sourceLineNo">2517</span>    }<a name="line.2517"></a>
+<span class="sourceLineNo">2518</span>    int result = -1;<a name="line.2518"></a>
+<span class="sourceLineNo">2519</span>    for (int i = (offset + length) - 1; i &gt;= offset; i--) {<a name="line.2519"></a>
+<span class="sourceLineNo">2520</span>      if (b[i] == delimiter) {<a name="line.2520"></a>
+<span class="sourceLineNo">2521</span>        result = i;<a name="line.2521"></a>
+<span class="sourceLineNo">2522</span>        break;<a name="line.2522"></a>
+<span class="sourceLineNo">2523</span>      }<a name="line.2523"></a>
+<span class="sourceLineNo">2524</span>    }<a name="line.2524"></a>
+<span class="sourceLineNo">2525</span>    return result;<a name="line.2525"></a>
+<span class="sourceLineNo">2526</span>  }<a name="line.2526"></a>
+<span class="sourceLineNo">2527</span><a name="line.2527"></a>
+<span class="sourceLineNo">2528</span>  public static int findCommonPrefix(byte[] left, byte[] right, int leftLength, int rightLength,<a name="line.2528"></a>
+<span class="sourceLineNo">2529</span>    int leftOffset, int rightOffset) {<a name="line.2529"></a>
+<span class="sourceLineNo">2530</span>    return CommonPrefixerHolder.BEST_COMMON_PREFIXER.findCommonPrefix(left, leftOffset, leftLength,<a name="line.2530"></a>
+<span class="sourceLineNo">2531</span>      right, rightOffset, rightLength);<a name="line.2531"></a>
+<span class="sourceLineNo">2532</span>  }<a name="line.2532"></a>
+<span class="sourceLineNo">2533</span>}<a name="line.2533"></a>
 
 
 
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/util/Bytes.RowEndKeyComparator.html b/apidocs/src-html/org/apache/hadoop/hbase/util/Bytes.RowEndKeyComparator.html
index a6f66fed2df..651c12b7938 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/util/Bytes.RowEndKeyComparator.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/util/Bytes.RowEndKeyComparator.html
@@ -1187,1265 +1187,1358 @@
 <span class="sourceLineNo">1179</span><a name="line.1179"></a>
 <span class="sourceLineNo">1180</span>  }<a name="line.1180"></a>
 <span class="sourceLineNo">1181</span><a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>  static Comparer&lt;byte[]&gt; lexicographicalComparerJavaImpl() {<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>    return LexicographicalComparerHolder.PureJavaComparer.INSTANCE;<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>  }<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span><a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>  static class ConverterHolder {<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>    static final String UNSAFE_CONVERTER_NAME =<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>      ConverterHolder.class.getName() + "$UnsafeConverter";<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span><a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>    static final Converter BEST_CONVERTER = getBestConverter();<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span><a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>    /**<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>     * Returns the Unsafe-using Converter, or falls back to the pure-Java implementation if unable<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>     * to do so.<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>     */<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>    static Converter getBestConverter() {<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>      try {<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>        Class&lt;?&gt; theClass = Class.forName(UNSAFE_CONVERTER_NAME);<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span><a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>        // yes, UnsafeComparer does implement Comparer&lt;byte[]&gt;<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>        @SuppressWarnings("unchecked")<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>        Converter converter = (Converter) theClass.getConstructor().newInstance();<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>        return converter;<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      } catch (Throwable t) { // ensure we really catch *everything*<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>        return PureJavaConverter.INSTANCE;<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>      }<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>    }<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span><a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>    protected static final class PureJavaConverter extends Converter {<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>      static final PureJavaConverter INSTANCE = new PureJavaConverter();<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span><a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>      private PureJavaConverter() {<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>      }<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span><a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>      @Override<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      long toLong(byte[] bytes, int offset, int length) {<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>        long l = 0;<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>        for (int i = offset; i &lt; offset + length; i++) {<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>          l &lt;&lt;= 8;<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>          l ^= bytes[i] &amp; 0xFF;<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>        }<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>        return l;<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>      }<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span><a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>      @Override<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>      int putLong(byte[] bytes, int offset, long val) {<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>        for (int i = offset + 7; i &gt; offset; i--) {<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>          bytes[i] = (byte) val;<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span>          val &gt;&gt;&gt;= 8;<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>        }<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>        bytes[offset] = (byte) val;<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>        return offset + SIZEOF_LONG;<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>      }<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span><a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>      @Override<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>      int toInt(byte[] bytes, int offset, int length) {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>        int n = 0;<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>        for (int i = offset; i &lt; (offset + length); i++) {<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>          n &lt;&lt;= 8;<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>          n ^= bytes[i] &amp; 0xFF;<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>        }<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>        return n;<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>      }<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span><a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>      @Override<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>      int putInt(byte[] bytes, int offset, int val) {<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>        for (int i = offset + 3; i &gt; offset; i--) {<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>          bytes[i] = (byte) val;<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>          val &gt;&gt;&gt;= 8;<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>        }<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>        bytes[offset] = (byte) val;<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>        return offset + SIZEOF_INT;<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>      }<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span><a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>      @Override<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>      short toShort(byte[] bytes, int offset, int length) {<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>        short n = 0;<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>        n = (short) ((n ^ bytes[offset]) &amp; 0xFF);<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>        n = (short) (n &lt;&lt; 8);<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>        n ^= (short) (bytes[offset + 1] &amp; 0xFF);<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>        return n;<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>      }<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span><a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>      @Override<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>      int putShort(byte[] bytes, int offset, short val) {<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>        bytes[offset + 1] = (byte) val;<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>        val &gt;&gt;= 8;<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>        bytes[offset] = (byte) val;<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>        return offset + SIZEOF_SHORT;<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>      }<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>    }<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span><a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>    protected static final class UnsafeConverter extends Converter {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span><a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>      public UnsafeConverter() {<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>      }<a name="line.1276"></a>
+<span class="sourceLineNo">1182</span>  static abstract class CommonPrefixer {<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    abstract int findCommonPrefix(byte[] left, int leftOffset, int leftLength, byte[] right,<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>      int rightOffset, int rightLength);<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>  }<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span><a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>  static Comparer&lt;byte[]&gt; lexicographicalComparerJavaImpl() {<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>    return LexicographicalComparerHolder.PureJavaComparer.INSTANCE;<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>  }<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span><a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>  static class ConverterHolder {<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>    static final String UNSAFE_CONVERTER_NAME =<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>      ConverterHolder.class.getName() + "$UnsafeConverter";<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span><a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>    static final Converter BEST_CONVERTER = getBestConverter();<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span><a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>    /**<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>     * Returns the Unsafe-using Converter, or falls back to the pure-Java implementation if unable<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>     * to do so.<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>     */<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>    static Converter getBestConverter() {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>      try {<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>        Class&lt;?&gt; theClass = Class.forName(UNSAFE_CONVERTER_NAME);<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span><a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>        // yes, UnsafeComparer does implement Comparer&lt;byte[]&gt;<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>        @SuppressWarnings("unchecked")<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>        Converter converter = (Converter) theClass.getConstructor().newInstance();<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>        return converter;<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>      } catch (Throwable t) { // ensure we really catch *everything*<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>        return PureJavaConverter.INSTANCE;<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>      }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>    }<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span><a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>    protected static final class PureJavaConverter extends Converter {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>      static final PureJavaConverter INSTANCE = new PureJavaConverter();<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span><a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>      private PureJavaConverter() {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>      }<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span><a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>      @Override<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>      long toLong(byte[] bytes, int offset, int length) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>        long l = 0;<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>        for (int i = offset; i &lt; offset + length; i++) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>          l &lt;&lt;= 8;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>          l ^= bytes[i] &amp; 0xFF;<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>        }<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>        return l;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>      }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span><a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>      @Override<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>      int putLong(byte[] bytes, int offset, long val) {<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>        for (int i = offset + 7; i &gt; offset; i--) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>          bytes[i] = (byte) val;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>          val &gt;&gt;&gt;= 8;<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>        }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>        bytes[offset] = (byte) val;<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>        return offset + SIZEOF_LONG;<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>      }<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span><a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>      @Override<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>      int toInt(byte[] bytes, int offset, int length) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>        int n = 0;<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>        for (int i = offset; i &lt; (offset + length); i++) {<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>          n &lt;&lt;= 8;<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>          n ^= bytes[i] &amp; 0xFF;<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>        }<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>        return n;<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>      }<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span><a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>      @Override<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>      int putInt(byte[] bytes, int offset, int val) {<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>        for (int i = offset + 3; i &gt; offset; i--) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>          bytes[i] = (byte) val;<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>          val &gt;&gt;&gt;= 8;<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>        }<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>        bytes[offset] = (byte) val;<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>        return offset + SIZEOF_INT;<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>      }<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span><a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>      @Override<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>      short toShort(byte[] bytes, int offset, int length) {<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>        short n = 0;<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>        n = (short) ((n ^ bytes[offset]) &amp; 0xFF);<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>        n = (short) (n &lt;&lt; 8);<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>        n ^= (short) (bytes[offset + 1] &amp; 0xFF);<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>        return n;<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>      }<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>      @Override<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>      int putShort(byte[] bytes, int offset, short val) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>        bytes[offset + 1] = (byte) val;<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>        val &gt;&gt;= 8;<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>        bytes[offset] = (byte) val;<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>        return offset + SIZEOF_SHORT;<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>      }<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>    }<a name="line.1276"></a>
 <span class="sourceLineNo">1277</span><a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>      static {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>        if (!UNSAFE_UNALIGNED) {<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>          // It doesn't matter what we throw;<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>          // it's swallowed in getBestComparer().<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>          throw new Error();<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>        }<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span><a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>        // sanity check - this should never fail<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>        if (HBasePlatformDependent.arrayIndexScale(byte[].class) != 1) {<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>          throw new AssertionError();<a name="line.1287"></a>
+<span class="sourceLineNo">1278</span>    protected static final class UnsafeConverter extends Converter {<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span><a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>      public UnsafeConverter() {<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>      }<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span><a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>      static {<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>        if (!UNSAFE_UNALIGNED) {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>          // It doesn't matter what we throw;<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>          // it's swallowed in getBestComparer().<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>          throw new Error();<a name="line.1287"></a>
 <span class="sourceLineNo">1288</span>        }<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>      }<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span><a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>      @Override<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>      long toLong(byte[] bytes, int offset, int length) {<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>        return UnsafeAccess.toLong(bytes, offset);<a name="line.1293"></a>
+<span class="sourceLineNo">1289</span><a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>        // sanity check - this should never fail<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>        if (HBasePlatformDependent.arrayIndexScale(byte[].class) != 1) {<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>          throw new AssertionError();<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>        }<a name="line.1293"></a>
 <span class="sourceLineNo">1294</span>      }<a name="line.1294"></a>
 <span class="sourceLineNo">1295</span><a name="line.1295"></a>
 <span class="sourceLineNo">1296</span>      @Override<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>      int putLong(byte[] bytes, int offset, long val) {<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>        return UnsafeAccess.putLong(bytes, offset, val);<a name="line.1298"></a>
+<span class="sourceLineNo">1297</span>      long toLong(byte[] bytes, int offset, int length) {<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>        return UnsafeAccess.toLong(bytes, offset);<a name="line.1298"></a>
 <span class="sourceLineNo">1299</span>      }<a name="line.1299"></a>
 <span class="sourceLineNo">1300</span><a name="line.1300"></a>
 <span class="sourceLineNo">1301</span>      @Override<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>      int toInt(byte[] bytes, int offset, int length) {<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>        return UnsafeAccess.toInt(bytes, offset);<a name="line.1303"></a>
+<span class="sourceLineNo">1302</span>      int putLong(byte[] bytes, int offset, long val) {<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>        return UnsafeAccess.putLong(bytes, offset, val);<a name="line.1303"></a>
 <span class="sourceLineNo">1304</span>      }<a name="line.1304"></a>
 <span class="sourceLineNo">1305</span><a name="line.1305"></a>
 <span class="sourceLineNo">1306</span>      @Override<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>      int putInt(byte[] bytes, int offset, int val) {<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>        return UnsafeAccess.putInt(bytes, offset, val);<a name="line.1308"></a>
+<span class="sourceLineNo">1307</span>      int toInt(byte[] bytes, int offset, int length) {<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>        return UnsafeAccess.toInt(bytes, offset);<a name="line.1308"></a>
 <span class="sourceLineNo">1309</span>      }<a name="line.1309"></a>
 <span class="sourceLineNo">1310</span><a name="line.1310"></a>
 <span class="sourceLineNo">1311</span>      @Override<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>      short toShort(byte[] bytes, int offset, int length) {<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>        return UnsafeAccess.toShort(bytes, offset);<a name="line.1313"></a>
+<span class="sourceLineNo">1312</span>      int putInt(byte[] bytes, int offset, int val) {<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>        return UnsafeAccess.putInt(bytes, offset, val);<a name="line.1313"></a>
 <span class="sourceLineNo">1314</span>      }<a name="line.1314"></a>
 <span class="sourceLineNo">1315</span><a name="line.1315"></a>
 <span class="sourceLineNo">1316</span>      @Override<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>      int putShort(byte[] bytes, int offset, short val) {<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>        return UnsafeAccess.putShort(bytes, offset, val);<a name="line.1318"></a>
+<span class="sourceLineNo">1317</span>      short toShort(byte[] bytes, int offset, int length) {<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>        return UnsafeAccess.toShort(bytes, offset);<a name="line.1318"></a>
 <span class="sourceLineNo">1319</span>      }<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>    }<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>  }<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span><a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>  /**<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>   * Provides a lexicographical comparer implementation; either a Java implementation or a faster<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>   * implementation based on {@code Unsafe}.<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>   * &lt;p&gt;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>   * Uses reflection to gracefully fall back to the Java implementation if {@code Unsafe} isn't<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>   * available.<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>   */<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>  static class LexicographicalComparerHolder {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>    static final String UNSAFE_COMPARER_NAME =<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>      LexicographicalComparerHolder.class.getName() + "$UnsafeComparer";<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span><a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>    static final Comparer&lt;byte[]&gt; BEST_COMPARER = getBestComparer();<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span><a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>    /**<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>     * Returns the Unsafe-using Comparer, or falls back to the pure-Java implementation if unable to<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>     * do so.<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>     */<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>    static Comparer&lt;byte[]&gt; getBestComparer() {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>      try {<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>        Class&lt;?&gt; theClass = Class.forName(UNSAFE_COMPARER_NAME);<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span><a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>        // yes, UnsafeComparer does implement Comparer&lt;byte[]&gt;<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>        @SuppressWarnings("unchecked")<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>        Comparer&lt;byte[]&gt; comparer = (Comparer&lt;byte[]&gt;) theClass.getEnumConstants()[0];<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>        return comparer;<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>      } catch (Throwable t) { // ensure we really catch *everything*<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>        return lexicographicalComparerJavaImpl();<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>      }<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>    }<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span><a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>    enum PureJavaComparer implements Comparer&lt;byte[]&gt; {<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>      INSTANCE;<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span><a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>      @Override<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>      public int compareTo(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2,<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>        int length2) {<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>        // Short circuit equal case<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>        if (buffer1 == buffer2 &amp;&amp; offset1 == offset2 &amp;&amp; length1 == length2) {<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>          return 0;<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>        }<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>        // Bring WritableComparator code local<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>        int end1 = offset1 + length1;<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>        int end2 = offset2 + length2;<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span>        for (int i = offset1, j = offset2; i &lt; end1 &amp;&amp; j &lt; end2; i++, j++) {<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>          int a = (buffer1[i] &amp; 0xff);<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>          int b = (buffer2[j] &amp; 0xff);<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span>          if (a != b) {<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>            return a - b;<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>          }<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>        }<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>        return length1 - length2;<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span>      }<a name="line.1374"></a>
-<span class="sourceLineNo">1375</span>    }<a name="line.1375"></a>
-<span class="sourceLineNo">1376</span><a name="line.1376"></a>
-<span class="sourceLineNo">1377</span>    enum UnsafeComparer implements Comparer&lt;byte[]&gt; {<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span>      INSTANCE;<a name="line.1378"></a>
-<span class="sourceLineNo">1379</span><a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>      static {<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>        if (!UNSAFE_UNALIGNED) {<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>          // It doesn't matter what we throw;<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>          // it's swallowed in getBestComparer().<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span>          throw new Error();<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>        }<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span><a name="line.1386"></a>
-<span class="sourceLineNo">1387</span>        // sanity check - this should never fail<a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>        if (HBasePlatformDependent.arrayIndexScale(byte[].class) != 1) {<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>          throw new AssertionError();<a name="line.1389"></a>
+<span class="sourceLineNo">1320</span><a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>      @Override<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>      int putShort(byte[] bytes, int offset, short val) {<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>        return UnsafeAccess.putShort(bytes, offset, val);<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>      }<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    }<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>  }<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span><a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>  /**<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>   * Provides a lexicographical comparer implementation; either a Java implementation or a faster<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>   * implementation based on {@code Unsafe}.<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>   * &lt;p&gt;<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>   * Uses reflection to gracefully fall back to the Java implementation if {@code Unsafe} isn't<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>   * available.<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>   */<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>  static class LexicographicalComparerHolder {<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>    static final String UNSAFE_COMPARER_NAME =<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>      LexicographicalComparerHolder.class.getName() + "$UnsafeComparer";<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span><a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>    static final Comparer&lt;byte[]&gt; BEST_COMPARER = getBestComparer();<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span><a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>    /**<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>     * Returns the Unsafe-using Comparer, or falls back to the pure-Java implementation if unable to<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>     * do so.<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>     */<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>    static Comparer&lt;byte[]&gt; getBestComparer() {<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>      try {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>        Class&lt;?&gt; theClass = Class.forName(UNSAFE_COMPARER_NAME);<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span><a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>        // yes, UnsafeComparer does implement Comparer&lt;byte[]&gt;<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>        @SuppressWarnings("unchecked")<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>        Comparer&lt;byte[]&gt; comparer = (Comparer&lt;byte[]&gt;) theClass.getEnumConstants()[0];<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>        return comparer;<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>      } catch (Throwable t) { // ensure we really catch *everything*<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>        return lexicographicalComparerJavaImpl();<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>      }<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>    }<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span><a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>    enum PureJavaComparer implements Comparer&lt;byte[]&gt; {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>      INSTANCE;<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span><a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>      @Override<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>      public int compareTo(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2,<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>        int length2) {<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>        // Short circuit equal case<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>        if (buffer1 == buffer2 &amp;&amp; offset1 == offset2 &amp;&amp; length1 == length2) {<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>          return 0;<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>        }<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>        // Bring WritableComparator code local<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>        int end1 = offset1 + length1;<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>        int end2 = offset2 + length2;<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>        for (int i = offset1, j = offset2; i &lt; end1 &amp;&amp; j &lt; end2; i++, j++) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>          int a = (buffer1[i] &amp; 0xff);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>          int b = (buffer2[j] &amp; 0xff);<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>          if (a != b) {<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>            return a - b;<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>          }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>        }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>        return length1 - length2;<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>      }<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>    }<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span><a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>    enum UnsafeComparer implements Comparer&lt;byte[]&gt; {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>      INSTANCE;<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span><a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>      static {<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>        if (!UNSAFE_UNALIGNED) {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>          // It doesn't matter what we throw;<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>          // it's swallowed in getBestComparer().<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>          throw new Error();<a name="line.1389"></a>
 <span class="sourceLineNo">1390</span>        }<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>      }<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span><a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>      /**<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span>       * Lexicographically compare two arrays.<a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>       * @param buffer1 left operand<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>       * @param buffer2 right operand<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>       * @param offset1 Where to start comparing in the left buffer<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>       * @param offset2 Where to start comparing in the right buffer<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span>       * @param length1 How much to compare from the left buffer<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>       * @param length2 How much to compare from the right buffer<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>       * @return 0 if equal, &lt; 0 if left is less than right, etc.<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>       */<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>      @Override<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>      public int compareTo(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2,<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>        int length2) {<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span><a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>        // Short circuit equal case<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>        if (buffer1 == buffer2 &amp;&amp; offset1 == offset2 &amp;&amp; length1 == length2) {<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>          return 0;<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>        }<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>        final int stride = 8;<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>        final int minLength = Math.min(length1, length2);<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span>        int strideLimit = minLength &amp; ~(stride - 1);<a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>        final long offset1Adj = offset1 + UnsafeAccess.BYTE_ARRAY_BASE_OFFSET;<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>        final long offset2Adj = offset2 + UnsafeAccess.BYTE_ARRAY_BASE_OFFSET;<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>        int i;<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span><a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>        /*<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>         * Compare 8 bytes at a time. Benchmarking on x86 shows a stride of 8 bytes is no slower<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>         * than 4 bytes even on 32-bit. On the other hand, it is substantially faster on 64-bit.<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>         */<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>        for (i = 0; i &lt; strideLimit; i += stride) {<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>          long lw = HBasePlatformDependent.getLong(buffer1, offset1Adj + i);<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>          long rw = HBasePlatformDependent.getLong(buffer2, offset2Adj + i);<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>          if (lw != rw) {<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>            if (!UnsafeAccess.LITTLE_ENDIAN) {<a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>              return ((lw + Long.MIN_VALUE) &lt; (rw + Long.MIN_VALUE)) ? -1 : 1;<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>            }<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span><a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>            /*<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span>             * We want to compare only the first index where left[index] != right[index]. This<a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>             * corresponds to the least significant nonzero byte in lw ^ rw, since lw and rw are<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>             * little-endian. Long.numberOfTrailingZeros(diff) tells us the least significant<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>             * nonzero bit, and zeroing out the first three bits of L.nTZ gives us the shift to get<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>             * that least significant nonzero byte. This comparison logic is based on UnsignedBytes<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>             * comparator from guava v21<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>             */<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>            int n = Long.numberOfTrailingZeros(lw ^ rw) &amp; ~0x7;<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span>            return ((int) ((lw &gt;&gt;&gt; n) &amp; 0xFF)) - ((int) ((rw &gt;&gt;&gt; n) &amp; 0xFF));<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span>          }<a name="line.1440"></a>
-<span class="sourceLineNo">1441</span>        }<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span><a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>        // The epilogue to cover the last (minLength % stride) elements.<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>        for (; i &lt; minLength; i++) {<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span>          int a = (buffer1[offset1 + i] &amp; 0xFF);<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>          int b = (buffer2[offset2 + i] &amp; 0xFF);<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>          if (a != b) {<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>            return a - b;<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>          }<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span>        }<a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>        return length1 - length2;<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>      }<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>    }<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>  }<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span><a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>  /**<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>   * Lexicographically determine the equality of two arrays.<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>   * @param left  left operand<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>   * @param right right operand<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>   * @return True if equal<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>   */<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>  public static boolean equals(final byte[] left, final byte[] right) {<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>    // Could use Arrays.equals?<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>    // noinspection SimplifiableConditionalExpression<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>    if (left == right) return true;<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>    if (left == null || right == null) return false;<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>    if (left.length != right.length) return false;<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>    if (left.length == 0) return true;<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span><a name="line.1469"></a>
-<span class="sourceLineNo">1470</span>    // Since we're often comparing adjacent sorted data,<a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>    // it's usual to have equal arrays except for the very last byte<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span>    // so check that first<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>    if (left[left.length - 1] != right[right.length - 1]) return false;<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span><a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>    return compareTo(left, right) == 0;<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>  }<a name="line.1476"></a>
+<span class="sourceLineNo">1391</span><a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>        // sanity check - this should never fail<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>        if (HBasePlatformDependent.arrayIndexScale(byte[].class) != 1) {<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>          throw new AssertionError();<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>        }<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>      }<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span><a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>      /**<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>       * Lexicographically compare two arrays.<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>       * @param buffer1 left operand<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>       * @param buffer2 right operand<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>       * @param offset1 Where to start comparing in the left buffer<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>       * @param offset2 Where to start comparing in the right buffer<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>       * @param length1 How much to compare from the left buffer<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>       * @param length2 How much to compare from the right buffer<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>       * @return 0 if equal, &lt; 0 if left is less than right, etc.<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>       */<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>      @Override<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>      public int compareTo(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2,<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>        int length2) {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span><a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>        // Short circuit equal case<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>        if (buffer1 == buffer2 &amp;&amp; offset1 == offset2 &amp;&amp; length1 == length2) {<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>          return 0;<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>        }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>        final int stride = 8;<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>        final int minLength = Math.min(length1, length2);<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>        int strideLimit = minLength &amp; ~(stride - 1);<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>        final long offset1Adj = offset1 + UnsafeAccess.BYTE_ARRAY_BASE_OFFSET;<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>        final long offset2Adj = offset2 + UnsafeAccess.BYTE_ARRAY_BASE_OFFSET;<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>        int i;<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span><a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>        /*<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>         * Compare 8 bytes at a time. Benchmarking on x86 shows a stride of 8 bytes is no slower<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>         * than 4 bytes even on 32-bit. On the other hand, it is substantially faster on 64-bit.<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>         */<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>        for (i = 0; i &lt; strideLimit; i += stride) {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>          long lw = HBasePlatformDependent.getLong(buffer1, offset1Adj + i);<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>          long rw = HBasePlatformDependent.getLong(buffer2, offset2Adj + i);<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>          if (lw != rw) {<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>            if (!UnsafeAccess.LITTLE_ENDIAN) {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>              return ((lw + Long.MIN_VALUE) &lt; (rw + Long.MIN_VALUE)) ? -1 : 1;<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>            }<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span><a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>            /*<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>             * We want to compare only the first index where left[index] != right[index]. This<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>             * corresponds to the least significant nonzero byte in lw ^ rw, since lw and rw are<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>             * little-endian. Long.numberOfTrailingZeros(diff) tells us the least significant<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>             * nonzero bit, and zeroing out the first three bits of L.nTZ gives us the shift to get<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>             * that least significant nonzero byte. This comparison logic is based on UnsignedBytes<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>             * comparator from guava v21<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>             */<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>            int n = Long.numberOfTrailingZeros(lw ^ rw) &amp; ~0x7;<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>            return ((int) ((lw &gt;&gt;&gt; n) &amp; 0xFF)) - ((int) ((rw &gt;&gt;&gt; n) &amp; 0xFF));<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>          }<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>        }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span><a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>        // The epilogue to cover the last (minLength % stride) elements.<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>        for (; i &lt; minLength; i++) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>          int a = (buffer1[offset1 + i] &amp; 0xFF);<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>          int b = (buffer2[offset2 + i] &amp; 0xFF);<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>          if (a != b) {<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>            return a - b;<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>          }<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>        }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>        return length1 - length2;<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>      }<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>    }<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>  }<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span><a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>  static class CommonPrefixerHolder {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>    static final String UNSAFE_COMMON_PREFIXER_NAME =<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>      CommonPrefixerHolder.class.getName() + "$UnsafeCommonPrefixer";<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span><a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>    static final CommonPrefixer BEST_COMMON_PREFIXER = getBestCommonPrefixer();<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span><a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>    static CommonPrefixer getBestCommonPrefixer() {<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>      try {<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>        Class&lt;? extends CommonPrefixer&gt; theClass =<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>          Class.forName(UNSAFE_COMMON_PREFIXER_NAME).asSubclass(CommonPrefixer.class);<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span><a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>        return theClass.getConstructor().newInstance();<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>      } catch (Throwable t) { // ensure we really catch *everything*<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>        return CommonPrefixerHolder.PureJavaCommonPrefixer.INSTANCE;<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>      }<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>    }<a name="line.1476"></a>
 <span class="sourceLineNo">1477</span><a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>  /**<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>   * Lexicographically determine the equality of two arrays.<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span>   * @param left        left operand<a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>   * @param leftOffset  offset into left operand<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>   * @param leftLen     length of left operand<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>   * @param right       right operand<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>   * @param rightOffset offset into right operand<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>   * @param rightLen    length of right operand<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>   * @return True if equal<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>   */<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>  public static boolean equals(final byte[] left, int leftOffset, int leftLen, final byte[] right,<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span>    int rightOffset, int rightLen) {<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span>    // short circuit case<a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>    if (left == right &amp;&amp; leftOffset == rightOffset &amp;&amp; leftLen == rightLen) {<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>      return true;<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>    }<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>    // different lengths fast check<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>    if (leftLen != rightLen) {<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>      return false;<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>    }<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>    if (leftLen == 0) {<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>      return true;<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>    }<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span><a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>    // Since we're often comparing adjacent sorted data,<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>    // it's usual to have equal arrays except for the very last byte<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>    // so check that first<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>    if (left[leftOffset + leftLen - 1] != right[rightOffset + rightLen - 1]) return false;<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span><a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>    return LexicographicalComparerHolder.BEST_COMPARER.compareTo(left, leftOffset, leftLen, right,<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>      rightOffset, rightLen) == 0;<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>  }<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span><a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>  /**<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>   * Lexicographically determine the equality of two byte[], one as ByteBuffer.<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>   * @param a   left operand<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span>   * @param buf right operand<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>   * @return True if equal<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>   */<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>  public static boolean equals(byte[] a, ByteBuffer buf) {<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>    if (a == null) return buf == null;<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>    if (buf == null) return false;<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>    if (a.length != buf.remaining()) return false;<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span><a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>    // Thou shalt not modify the original byte buffer in what should be read only operations.<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>    ByteBuffer b = buf.duplicate();<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span>    for (byte anA : a) {<a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>      if (anA != b.get()) {<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>        return false;<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>      }<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>    }<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>    return true;<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>  }<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span><a name="line.1531"></a>
-<span class="sourceLineNo">1532</span>  /**<a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>   * Return true if the byte array on the right is a prefix of the byte array on the left.<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>   */<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>  public static boolean startsWith(byte[] bytes, byte[] prefix) {<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>    return bytes != null &amp;&amp; prefix != null &amp;&amp; bytes.length &gt;= prefix.length<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>      &amp;&amp; LexicographicalComparerHolder.BEST_COMPARER.compareTo(bytes, 0, prefix.length, prefix, 0,<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>        prefix.length) == 0;<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>  }<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span><a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>  /**<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>   * Calculate a hash code from a given byte array.<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span>   * @param b bytes to hash<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>   * @return Runs {@link WritableComparator#hashBytes(byte[], int)} on the passed in array. This<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>   *         method is what {@link org.apache.hadoop.io.Text} use calculating hash code.<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>   */<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>  public static int hashCode(final byte[] b) {<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>    return hashCode(b, b.length);<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>  }<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span><a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>  /**<a name="line.1551"></a>
-<span class="sourceLineNo">1552</span>   * Calculate a hash code from a given byte array.<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>   * @param b      value<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>   * @param length length of the value<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>   * @return Runs {@link WritableComparator#hashBytes(byte[], int)} on the passed in array. This<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>   *         method is what {@link org.apache.hadoop.io.Text} use calculating hash code.<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>   */<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>  public static int hashCode(final byte[] b, final int length) {<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>    return WritableComparator.hashBytes(b, length);<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>  }<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span><a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>  /**<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>   * Calculate a hash code from a given byte array suitable for use as a key in maps.<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>   * @param b bytes to hash<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>   * @return A hash of &lt;code&gt;b&lt;/code&gt; as an Integer that can be used as key in Maps.<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>   */<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>  public static Integer mapKey(final byte[] b) {<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>    return hashCode(b);<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>  }<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span><a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>  /**<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>   * Calculate a hash code from a given byte array suitable for use as a key in maps.<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>   * @param b      bytes to hash<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>   * @param length length to hash<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>   * @return A hash of &lt;code&gt;b&lt;/code&gt; as an Integer that can be used as key in Maps.<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>   */<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>  public static Integer mapKey(final byte[] b, final int length) {<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>    return hashCode(b, length);<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>  }<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span><a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>  /**<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>   * Concatenate byte arrays.<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>   * @param a lower half<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>   * @param b upper half<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>   * @return New array that has a in lower half and b in upper half.<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>   */<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>  public static byte[] add(final byte[] a, final byte[] b) {<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>    return add(a, b, EMPTY_BYTE_ARRAY);<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span>  }<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span><a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>  /**<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>   * Concatenate byte arrays.<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span>   * @param a first third<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>   * @param b second third<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>   * @param c third third<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>   * @return New array made from a, b and c<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>   */<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span>  public static byte[] add(final byte[] a, final byte[] b, final byte[] c) {<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>    byte[] result = new byte[a.length + b.length + c.length];<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>    System.arraycopy(a, 0, result, 0, a.length);<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>    System.arraycopy(b, 0, result, a.length, b.length);<a name="line.1601"></a>
-<span class="sourceLineNo">1602</span>    System.arraycopy(c, 0, result, a.length + b.length, c.length);<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>    return result;<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>  }<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span><a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>  /**<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>   * Concatenate byte arrays.<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span>   * @param arrays all the arrays to concatenate together.<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>   * @return New array made from the concatenation of the given arrays.<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>   */<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>  public static byte[] add(final byte[][] arrays) {<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>    int length = 0;<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>    for (int i = 0; i &lt; arrays.length; i++) {<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>      length += arrays[i].length;<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>    }<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>    byte[] result = new byte[length];<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>    int index = 0;<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>    for (int i = 0; i &lt; arrays.length; i++) {<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>      System.arraycopy(arrays[i], 0, result, index, arrays[i].length);<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>      index += arrays[i].length;<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>    }<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>    return result;<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>  }<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span><a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>  /**<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>   * Make a new byte array from a subset of bytes at the head of another.<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>   * @param a      array<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>   * @param length amount of bytes to grab<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>   * @return First &lt;code&gt;length&lt;/code&gt; bytes from &lt;code&gt;a&lt;/code&gt;<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>   */<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>  public static byte[] head(final byte[] a, final int length) {<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>    if (a.length &lt; length) {<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>      return null;<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>    }<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span>    byte[] result = new byte[length];<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>    System.arraycopy(a, 0, result, 0, length);<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>    return result;<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>  }<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span><a name="line.1639"></a>
-<span class="sourceLineNo">1640</span>  /**<a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>   * Make a new byte array from a subset of bytes at the tail of another.<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>   * @param a      array<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>   * @param length amount of bytes to snarf<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>   * @return Last &lt;code&gt;length&lt;/code&gt; bytes from &lt;code&gt;a&lt;/code&gt;<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>   */<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>  public static byte[] tail(final byte[] a, final int length) {<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>    if (a.length &lt; length) {<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>      return null;<a name="line.1648"></a>
-<span class="sourceLineNo">1649</span>    }<a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>    byte[] result = new byte[length];<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>    System.arraycopy(a, a.length - length, result, 0, length);<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>    return result;<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>  }<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span><a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>  /**<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>   * Make a new byte array from a subset of bytes at the head of another, zero padded as desired.<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>   * @param a      array<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>   * @param length new array size<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>   * @return Value in &lt;code&gt;a&lt;/code&gt; plus &lt;code&gt;length&lt;/code&gt; prepended 0 bytes<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>   */<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>  public static byte[] padHead(final byte[] a, final int length) {<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>    byte[] padding = new byte[length];<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>    for (int i = 0; i &lt; length; i++) {<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>      padding[i] = 0;<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>    }<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span>    return add(padding, a);<a name="line.1666"></a>
+<span class="sourceLineNo">1478</span>    static final class PureJavaCommonPrefixer extends CommonPrefixer {<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>      static final PureJavaCommonPrefixer INSTANCE = new PureJavaCommonPrefixer();<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span><a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>      private PureJavaCommonPrefixer() {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>      }<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span><a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>      @Override<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>      public int findCommonPrefix(byte[] left, int leftOffset, int leftLength, byte[] right,<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>        int rightOffset, int rightLength) {<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>        int length = Math.min(leftLength, rightLength);<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>        int result = 0;<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span><a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>        while (result &lt; length &amp;&amp; left[leftOffset + result] == right[rightOffset + result]) {<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>          result++;<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>        }<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>        return result;<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>      }<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>    }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span><a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>    static final class UnsafeCommonPrefixer extends CommonPrefixer {<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span><a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>      static {<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>        if (!UNSAFE_UNALIGNED) {<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>          throw new Error();<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>        }<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span><a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>        // sanity check - this should never fail<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>        if (HBasePlatformDependent.arrayIndexScale(byte[].class) != 1) {<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>          throw new AssertionError();<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>        }<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>      }<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span><a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>      public UnsafeCommonPrefixer() {<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>      }<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span><a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>      @Override<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>      public int findCommonPrefix(byte[] left, int leftOffset, int leftLength, byte[] right,<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>        int rightOffset, int rightLength) {<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>        final int stride = 8;<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>        final int minLength = Math.min(leftLength, rightLength);<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>        int strideLimit = minLength &amp; ~(stride - 1);<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>        final long leftOffsetAdj = leftOffset + UnsafeAccess.BYTE_ARRAY_BASE_OFFSET;<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>        final long rightOffsetAdj = rightOffset + UnsafeAccess.BYTE_ARRAY_BASE_OFFSET;<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>        int result = 0;<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>        int i;<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span><a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>        for (i = 0; i &lt; strideLimit; i += stride) {<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>          long lw = HBasePlatformDependent.getLong(left, leftOffsetAdj + i);<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>          long rw = HBasePlatformDependent.getLong(right, rightOffsetAdj + i);<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>          if (lw != rw) {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>            if (!UnsafeAccess.LITTLE_ENDIAN) {<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>              return result + (Long.numberOfLeadingZeros(lw ^ rw) / Bytes.SIZEOF_LONG);<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>            } else {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>              return result + (Long.numberOfTrailingZeros(lw ^ rw) / Bytes.SIZEOF_LONG);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>            }<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>          } else {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>            result += Bytes.SIZEOF_LONG;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>          }<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>        }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span><a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>        // The epilogue to cover the last (minLength % stride) elements.<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>        for (; i &lt; minLength; i++) {<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>          int il = (left[leftOffset + i]);<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>          int ir = (right[rightOffset + i]);<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>          if (il != ir) {<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>            return result;<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>          } else {<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>            result++;<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>          }<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>        }<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span><a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>        return result;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>      }<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>    }<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>  }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span><a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>  /**<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>   * Lexicographically determine the equality of two arrays.<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>   * @param left  left operand<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>   * @param right right operand<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>   * @return True if equal<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>   */<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>  public static boolean equals(final byte[] left, final byte[] right) {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>    // Could use Arrays.equals?<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>    // noinspection SimplifiableConditionalExpression<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>    if (left == right) return true;<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>    if (left == null || right == null) return false;<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>    if (left.length != right.length) return false;<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>    if (left.length == 0) return true;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span><a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>    // Since we're often comparing adjacent sorted data,<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>    // it's usual to have equal arrays except for the very last byte<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>    // so check that first<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>    if (left[left.length - 1] != right[right.length - 1]) return false;<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span><a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>    return compareTo(left, right) == 0;<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>  }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span><a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>  /**<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>   * Lexicographically determine the equality of two arrays.<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>   * @param left        left operand<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>   * @param leftOffset  offset into left operand<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>   * @param leftLen     length of left operand<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>   * @param right       right operand<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>   * @param rightOffset offset into right operand<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>   * @param rightLen    length of right operand<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>   * @return True if equal<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>   */<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>  public static boolean equals(final byte[] left, int leftOffset, int leftLen, final byte[] right,<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>    int rightOffset, int rightLen) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>    // short circuit case<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>    if (left == right &amp;&amp; leftOffset == rightOffset &amp;&amp; leftLen == rightLen) {<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>      return true;<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>    }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>    // different lengths fast check<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>    if (leftLen != rightLen) {<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>      return false;<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>    }<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>    if (leftLen == 0) {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>      return true;<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>    }<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span><a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>    // Since we're often comparing adjacent sorted data,<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>    // it's usual to have equal arrays except for the very last byte<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>    // so check that first<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>    if (left[leftOffset + leftLen - 1] != right[rightOffset + rightLen - 1]) return false;<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span><a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>    return LexicographicalComparerHolder.BEST_COMPARER.compareTo(left, leftOffset, leftLen, right,<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>      rightOffset, rightLen) == 0;<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>  }<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span><a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>  /**<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>   * Lexicographically determine the equality of two byte[], one as ByteBuffer.<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>   * @param a   left operand<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>   * @param buf right operand<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>   * @return True if equal<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>   */<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>  public static boolean equals(byte[] a, ByteBuffer buf) {<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>    if (a == null) return buf == null;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>    if (buf == null) return false;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>    if (a.length != buf.remaining()) return false;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span><a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>    // Thou shalt not modify the original byte buffer in what should be read only operations.<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>    ByteBuffer b = buf.duplicate();<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>    for (byte anA : a) {<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>      if (anA != b.get()) {<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>        return false;<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>      }<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>    }<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>    return true;<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>  }<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span><a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>  /**<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>   * Return true if the byte array on the right is a prefix of the byte array on the left.<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>   */<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>  public static boolean startsWith(byte[] bytes, byte[] prefix) {<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>    return bytes != null &amp;&amp; prefix != null &amp;&amp; bytes.length &gt;= prefix.length<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>      &amp;&amp; LexicographicalComparerHolder.BEST_COMPARER.compareTo(bytes, 0, prefix.length, prefix, 0,<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>        prefix.length) == 0;<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>  }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span><a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>  /**<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>   * Calculate a hash code from a given byte array.<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>   * @param b bytes to hash<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>   * @return Runs {@link WritableComparator#hashBytes(byte[], int)} on the passed in array. This<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>   *         method is what {@link org.apache.hadoop.io.Text} use calculating hash code.<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>   */<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>  public static int hashCode(final byte[] b) {<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>    return hashCode(b, b.length);<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>  }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span><a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>  /**<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>   * Calculate a hash code from a given byte array.<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>   * @param b      value<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>   * @param length length of the value<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>   * @return Runs {@link WritableComparator#hashBytes(byte[], int)} on the passed in array. This<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>   *         method is what {@link org.apache.hadoop.io.Text} use calculating hash code.<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>   */<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>  public static int hashCode(final byte[] b, final int length) {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>    return WritableComparator.hashBytes(b, length);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>  }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span><a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>  /**<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>   * Calculate a hash code from a given byte array suitable for use as a key in maps.<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>   * @param b bytes to hash<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>   * @return A hash of &lt;code&gt;b&lt;/code&gt; as an Integer that can be used as key in Maps.<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>   */<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>  public static Integer mapKey(final byte[] b) {<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>    return hashCode(b);<a name="line.1666"></a>
 <span class="sourceLineNo">1667</span>  }<a name="line.1667"></a>
 <span class="sourceLineNo">1668</span><a name="line.1668"></a>
 <span class="sourceLineNo">1669</span>  /**<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>   * Make a new byte array from a subset of bytes at the tail of another, zero padded as desired.<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>   * @param a      array<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span>   * @param length new array size<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>   * @return Value in &lt;code&gt;a&lt;/code&gt; plus &lt;code&gt;length&lt;/code&gt; appended 0 bytes<a name="line.1673"></a>
+<span class="sourceLineNo">1670</span>   * Calculate a hash code from a given byte array suitable for use as a key in maps.<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>   * @param b      bytes to hash<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>   * @param length length to hash<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>   * @return A hash of &lt;code&gt;b&lt;/code&gt; as an Integer that can be used as key in Maps.<a name="line.1673"></a>
 <span class="sourceLineNo">1674</span>   */<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>  public static byte[] padTail(final byte[] a, final int length) {<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span>    byte[] padding = new byte[length];<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>    for (int i = 0; i &lt; length; i++) {<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span>      padding[i] = 0;<a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>    }<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>    return add(a, padding);<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span>  }<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span><a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>  /**<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span>   * Split passed range. Expensive operation relatively. Uses BigInteger math. Useful splitting<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>   * ranges for MapReduce jobs.<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>   * @param a   Beginning of range<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>   * @param b   End of range<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>   * @param num Number of times to split range. Pass 1 if you want to split the range in two; i.e.<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span>   *            one split.<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>   * @return Array of dividing values<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>   */<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>  public static byte[][] split(final byte[] a, final byte[] b, final int num) {<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span>    return split(a, b, false, num);<a name="line.1693"></a>
-<span class="sourceLineNo">1694</span>  }<a name="line.1694"></a>
-<span class="sourceLineNo">1695</span><a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>  /**<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>   * Split passed range. Expensive operation relatively. Uses BigInteger math. Useful splitting<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span>   * ranges for MapReduce jobs.<a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>   * @param a         Beginning of range<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>   * @param b         End of range<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>   * @param inclusive Whether the end of range is prefix-inclusive or is considered an exclusive<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span>   *                  boundary. Automatic splits are generally exclusive and manual splits with an<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>   *                  explicit range utilize an inclusive end of range.<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>   * @param num       Number of times to split range. Pass 1 if you want to split the range in two;<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>   *                  i.e. one split.<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>   * @return Array of dividing values<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>   */<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>  public static byte[][] split(final byte[] a, final byte[] b, boolean inclusive, final int num) {<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>    byte[][] ret = new byte[num + 2][];<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>    int i = 0;<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>    Iterable&lt;byte[]&gt; iter = iterateOnSplits(a, b, inclusive, num);<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>    if (iter == null) return null;<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>    for (byte[] elem : iter) {<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>      ret[i++] = elem;<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>    }<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>    return ret;<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>  }<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span><a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>  /**<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>   * Iterate over keys within the passed range, splitting at an [a,b) boundary.<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>   */<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span>  public static Iterable&lt;byte[]&gt; iterateOnSplits(final byte[] a, final byte[] b, final int num) {<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>    return iterateOnSplits(a, b, false, num);<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>  }<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span><a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>  /**<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>   * Iterate over keys within the passed range.<a name="line.1727"></a>
+<span class="sourceLineNo">1675</span>  public static Integer mapKey(final byte[] b, final int length) {<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>    return hashCode(b, length);<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>  }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span><a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>  /**<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>   * Concatenate byte arrays.<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>   * @param a lower half<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>   * @param b upper half<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>   * @return New array that has a in lower half and b in upper half.<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>   */<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>  public static byte[] add(final byte[] a, final byte[] b) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>    return add(a, b, EMPTY_BYTE_ARRAY);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>  }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span><a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>  /**<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>   * Concatenate byte arrays.<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>   * @param a first third<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>   * @param b second third<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>   * @param c third third<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>   * @return New array made from a, b and c<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>   */<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>  public static byte[] add(final byte[] a, final byte[] b, final byte[] c) {<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>    byte[] result = new byte[a.length + b.length + c.length];<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>    System.arraycopy(a, 0, result, 0, a.length);<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>    System.arraycopy(b, 0, result, a.length, b.length);<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>    System.arraycopy(c, 0, result, a.length + b.length, c.length);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>    return result;<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>  }<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span><a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>  /**<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>   * Concatenate byte arrays.<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>   * @param arrays all the arrays to concatenate together.<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>   * @return New array made from the concatenation of the given arrays.<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>   */<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>  public static byte[] add(final byte[][] arrays) {<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>    int length = 0;<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>    for (int i = 0; i &lt; arrays.length; i++) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>      length += arrays[i].length;<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>    }<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>    byte[] result = new byte[length];<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>    int index = 0;<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>    for (int i = 0; i &lt; arrays.length; i++) {<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>      System.arraycopy(arrays[i], 0, result, index, arrays[i].length);<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>      index += arrays[i].length;<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>    }<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>    return result;<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>  }<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span><a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>  /**<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>   * Make a new byte array from a subset of bytes at the head of another.<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>   * @param a      array<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>   * @param length amount of bytes to grab<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>   * @return First &lt;code&gt;length&lt;/code&gt; bytes from &lt;code&gt;a&lt;/code&gt;<a name="line.1727"></a>
 <span class="sourceLineNo">1728</span>   */<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>  public static Iterable&lt;byte[]&gt; iterateOnSplits(final byte[] a, final byte[] b, boolean inclusive,<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span>    final int num) {<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>    byte[] aPadded;<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>    byte[] bPadded;<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>    if (a.length &lt; b.length) {<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>      aPadded = padTail(a, b.length - a.length);<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>      bPadded = b;<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>    } else if (b.length &lt; a.length) {<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>      aPadded = a;<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>      bPadded = padTail(b, a.length - b.length);<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>    } else {<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>      aPadded = a;<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>      bPadded = b;<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>    }<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>    if (compareTo(aPadded, bPadded) &gt;= 0) {<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>      throw new IllegalArgumentException("b &lt;= a");<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>    }<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>    if (num &lt;= 0) {<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>      throw new IllegalArgumentException("num cannot be &lt;= 0");<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>    }<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>    byte[] prependHeader = { 1, 0 };<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>    final BigInteger startBI = new BigInteger(add(prependHeader, aPadded));<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>    final BigInteger stopBI = new BigInteger(add(prependHeader, bPadded));<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>    BigInteger diffBI = stopBI.subtract(startBI);<a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>    if (inclusive) {<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>      diffBI = diffBI.add(BigInteger.ONE);<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>    }<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>    final BigInteger splitsBI = BigInteger.valueOf(num + 1);<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>    // when diffBI &lt; splitBI, use an additional byte to increase diffBI<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>    if (diffBI.compareTo(splitsBI) &lt; 0) {<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span>      byte[] aPaddedAdditional = new byte[aPadded.length + 1];<a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>      byte[] bPaddedAdditional = new byte[bPadded.length + 1];<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>      for (int i = 0; i &lt; aPadded.length; i++) {<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>        aPaddedAdditional[i] = aPadded[i];<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>      }<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>      for (int j = 0; j &lt; bPadded.length; j++) {<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>        bPaddedAdditional[j] = bPadded[j];<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>      }<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>      aPaddedAdditional[aPadded.length] = 0;<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>      bPaddedAdditional[bPadded.length] = 0;<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span>      return iterateOnSplits(aPaddedAdditional, bPaddedAdditional, inclusive, num);<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span>    }<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>    final BigInteger intervalBI;<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>    try {<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>      intervalBI = diffBI.divide(splitsBI);<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span>    } catch (Exception e) {<a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>      LOG.error("Exception caught during division", e);<a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>      return null;<a name="line.1776"></a>
+<span class="sourceLineNo">1729</span>  public static byte[] head(final byte[] a, final int length) {<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>    if (a.length &lt; length) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>      return null;<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>    }<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>    byte[] result = new byte[length];<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>    System.arraycopy(a, 0, result, 0, length);<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>    return result;<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>  }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span><a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>  /**<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>   * Make a new byte array from a subset of bytes at the tail of another.<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>   * @param a      array<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>   * @param length amount of bytes to snarf<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>   * @return Last &lt;code&gt;length&lt;/code&gt; bytes from &lt;code&gt;a&lt;/code&gt;<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>   */<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>  public static byte[] tail(final byte[] a, final int length) {<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>    if (a.length &lt; length) {<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>      return null;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>    }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>    byte[] result = new byte[length];<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>    System.arraycopy(a, a.length - length, result, 0, length);<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>    return result;<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>  }<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span><a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>  /**<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>   * Make a new byte array from a subset of bytes at the head of another, zero padded as desired.<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>   * @param a      array<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>   * @param length new array size<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>   * @return Value in &lt;code&gt;a&lt;/code&gt; plus &lt;code&gt;length&lt;/code&gt; prepended 0 bytes<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>   */<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>  public static byte[] padHead(final byte[] a, final int length) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>    byte[] padding = new byte[length];<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>    for (int i = 0; i &lt; length; i++) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>      padding[i] = 0;<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>    }<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>    return add(padding, a);<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>  }<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span><a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>  /**<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>   * Make a new byte array from a subset of bytes at the tail of another, zero padded as desired.<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>   * @param a      array<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>   * @param length new array size<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>   * @return Value in &lt;code&gt;a&lt;/code&gt; plus &lt;code&gt;length&lt;/code&gt; appended 0 bytes<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>   */<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>  public static byte[] padTail(final byte[] a, final int length) {<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>    byte[] padding = new byte[length];<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>    for (int i = 0; i &lt; length; i++) {<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>      padding[i] = 0;<a name="line.1776"></a>
 <span class="sourceLineNo">1777</span>    }<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span><a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>    final Iterator&lt;byte[]&gt; iterator = new Iterator&lt;byte[]&gt;() {<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>      private int i = -1;<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span><a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>      @Override<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>      public boolean hasNext() {<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>        return i &lt; num + 1;<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>      }<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span><a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>      @Override<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>      public byte[] next() {<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>        i++;<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>        if (i == 0) return a;<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>        if (i == num + 1) return b;<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span><a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>        BigInteger curBI = startBI.add(intervalBI.multiply(BigInteger.valueOf(i)));<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>        byte[] padded = curBI.toByteArray();<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>        if (padded[1] == 0) padded = tail(padded, padded.length - 2);<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>        else padded = tail(padded, padded.length - 1);<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span>        return padded;<a name="line.1797"></a>
-<span class="sourceLineNo">1798</span>      }<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span><a name="line.1799"></a>
-<span class="sourceLineNo">1800</span>      @Override<a name="line.1800"></a>
-<span class="sourceLineNo">1801</span>      public void remove() {<a name="line.1801"></a>
-<span class="sourceLineNo">1802</span>        throw new UnsupportedOperationException();<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>      }<a name="line.1803"></a>
-<span class="sourceLineNo">1804</span><a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>    };<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span><a name="line.1806"></a>
-<span class="sourceLineNo">1807</span>    return new Iterable&lt;byte[]&gt;() {<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span>      @Override<a name="line.1808"></a>
-<span class="sourceLineNo">1809</span>      public Iterator&lt;byte[]&gt; iterator() {<a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>        return iterator;<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>      }<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>    };<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>  }<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span><a name="line.1814"></a>
-<span class="sourceLineNo">1815</span>  /**<a name="line.1815"></a>
-<span class="sourceLineNo">1816</span>   * Calculate the hash code for a given range of bytes.<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span>   * @param bytes  array to hash<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>   * @param offset offset to start from<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>   * @param length length to hash<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span>   */<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>  public static int hashCode(byte[] bytes, int offset, int length) {<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span>    int hash = 1;<a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>    for (int i = offset; i &lt; offset + length; i++)<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>      hash = (31 * hash) + bytes[i];<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>    return hash;<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span>  }<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span><a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>  /**<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>   * Create an array of byte[] given an array of String.<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span>   * @param t operands<a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>   * @return Array of byte arrays made from passed array of Text<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>   */<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>  public static byte[][] toByteArrays(final String[] t) {<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span>    byte[][] result = new byte[t.length][];<a name="line.1834"></a>
-<span class="sourceLineNo">1835</span>    for (int i = 0; i &lt; t.length; i++) {<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span>      result[i] = Bytes.toBytes(t[i]);<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span>    }<a name="line.1837"></a>
-<span class="sourceLineNo">1838</span>    return result;<a name="line.1838"></a>
-<span class="sourceLineNo">1839</span>  }<a name="line.1839"></a>
-<span class="sourceLineNo">1840</span><a name="line.1840"></a>
-<span class="sourceLineNo">1841</span>  /**<a name="line.1841"></a>
-<span class="sourceLineNo">1842</span>   * Create an array of byte[] given an array of String.<a name="line.1842"></a>
-<span class="sourceLineNo">1843</span>   * @param t operands<a name="line.1843"></a>
-<span class="sourceLineNo">1844</span>   * @return Array of binary byte arrays made from passed array of binary strings<a name="line.1844"></a>
-<span class="sourceLineNo">1845</span>   */<a name="line.1845"></a>
-<span class="sourceLineNo">1846</span>  public static byte[][] toBinaryByteArrays(final String[] t) {<a name="line.1846"></a>
-<span class="sourceLineNo">1847</span>    byte[][] result = new byte[t.length][];<a name="line.1847"></a>
-<span class="sourceLineNo">1848</span>    for (int i = 0; i &lt; t.length; i++) {<a name="line.1848"></a>
-<span class="sourceLineNo">1849</span>      result[i] = Bytes.toBytesBinary(t[i]);<a name="line.1849"></a>
-<span class="sourceLineNo">1850</span>    }<a name="line.1850"></a>
-<span class="sourceLineNo">1851</span>    return result;<a name="line.1851"></a>
-<span class="sourceLineNo">1852</span>  }<a name="line.1852"></a>
-<span class="sourceLineNo">1853</span><a name="line.1853"></a>
-<span class="sourceLineNo">1854</span>  /**<a name="line.1854"></a>
-<span class="sourceLineNo">1855</span>   * Create a byte[][] where first and only entry is &lt;code&gt;column&lt;/code&gt;<a name="line.1855"></a>
-<span class="sourceLineNo">1856</span>   * @param column operand<a name="line.1856"></a>
-<span class="sourceLineNo">1857</span>   * @return A byte array of a byte array where first and only entry is &lt;code&gt;column&lt;/code&gt;<a name="line.1857"></a>
-<span class="sourceLineNo">1858</span>   */<a name="line.1858"></a>
-<span class="sourceLineNo">1859</span>  public static byte[][] toByteArrays(final String column) {<a name="line.1859"></a>
-<span class="sourceLineNo">1860</span>    return toByteArrays(toBytes(column));<a name="line.1860"></a>
-<span class="sourceLineNo">1861</span>  }<a name="line.1861"></a>
-<span class="sourceLineNo">1862</span><a name="line.1862"></a>
-<span class="sourceLineNo">1863</span>  /**<a name="line.1863"></a>
-<span class="sourceLineNo">1864</span>   * Create a byte[][] where first and only entry is &lt;code&gt;column&lt;/code&gt;<a name="line.1864"></a>
-<span class="sourceLineNo">1865</span>   * @param column operand<a name="line.1865"></a>
-<span class="sourceLineNo">1866</span>   * @return A byte array of a byte array where first and only entry is &lt;code&gt;column&lt;/code&gt;<a name="line.1866"></a>
-<span class="sourceLineNo">1867</span>   */<a name="line.1867"></a>
-<span class="sourceLineNo">1868</span>  public static byte[][] toByteArrays(final byte[] column) {<a name="line.1868"></a>
-<span class="sourceLineNo">1869</span>    byte[][] result = new byte[1][];<a name="line.1869"></a>
-<span class="sourceLineNo">1870</span>    result[0] = column;<a name="line.1870"></a>
-<span class="sourceLineNo">1871</span>    return result;<a name="line.1871"></a>
-<span class="sourceLineNo">1872</span>  }<a name="line.1872"></a>
-<span class="sourceLineNo">1873</span><a name="line.1873"></a>
-<span class="sourceLineNo">1874</span>  /**<a name="line.1874"></a>
-<span class="sourceLineNo">1875</span>   * Binary search for keys in indexes using Bytes.BYTES_RAWCOMPARATOR.<a name="line.1875"></a>
-<span class="sourceLineNo">1876</span>   * @param arr    array of byte arrays to search for<a name="line.1876"></a>
-<span class="sourceLineNo">1877</span>   * @param key    the key you want to find<a name="line.1877"></a>
-<span class="sourceLineNo">1878</span>   * @param offset the offset in the key you want to find<a name="line.1878"></a>
-<span class="sourceLineNo">1879</span>   * @param length the length of the key<a name="line.1879"></a>
-<span class="sourceLineNo">1880</span>   * @return zero-based index of the key, if the key is present in the array. Otherwise, a value -(i<a name="line.1880"></a>
-<span class="sourceLineNo">1881</span>   *         + 1) such that the key is between arr[i - 1] and arr[i] non-inclusively, where i is in<a name="line.1881"></a>
-<span class="sourceLineNo">1882</span>   *         [0, i], if we define arr[-1] = -Inf and arr[N] = Inf for an N-element array. The above<a name="line.1882"></a>
-<span class="sourceLineNo">1883</span>   *         means that this function can return 2N + 1 different values ranging from -(N + 1) to N<a name="line.1883"></a>
-<span class="sourceLineNo">1884</span>   *         - 1.<a name="line.1884"></a>
-<span class="sourceLineNo">1885</span>   */<a name="line.1885"></a>
-<span class="sourceLineNo">1886</span>  public static int binarySearch(byte[][] arr, byte[] key, int offset, int length) {<a name="line.1886"></a>
-<span class="sourceLineNo">1887</span>    int low = 0;<a name="line.1887"></a>
-<span class="sourceLineNo">1888</span>    int high = arr.length - 1;<a name="line.1888"></a>
-<span class="sourceLineNo">1889</span><a name="line.1889"></a>
-<span class="sourceLineNo">1890</span>    while (low &lt;= high) {<a name="line.1890"></a>
-<span class="sourceLineNo">1891</span>      int mid = low + ((high - low) &gt;&gt; 1);<a name="line.1891"></a>
-<span class="sourceLineNo">1892</span>      // we have to compare in this order, because the comparator order<a name="line.1892"></a>
-<span class="sourceLineNo">1893</span>      // has special logic when the 'left side' is a special key.<a name="line.1893"></a>
-<span class="sourceLineNo">1894</span>      int cmp =<a name="line.1894"></a>
-<span class="sourceLineNo">1895</span>        Bytes.BYTES_RAWCOMPARATOR.compare(key, offset, length, arr[mid], 0, arr[mid].length);<a name="line.1895"></a>
-<span class="sourceLineNo">1896</span>      // key lives above the midpoint<a name="line.1896"></a>
-<span class="sourceLineNo">1897</span>      if (cmp &gt; 0) low = mid + 1;<a name="line.1897"></a>
-<span class="sourceLineNo">1898</span>      // key lives below the midpoint<a name="line.1898"></a>
-<span class="sourceLineNo">1899</span>      else if (cmp &lt; 0) high = mid - 1;<a name="line.1899"></a>
-<span class="sourceLineNo">1900</span>      // BAM. how often does this really happen?<a name="line.1900"></a>
-<span class="sourceLineNo">1901</span>      else return mid;<a name="line.1901"></a>
-<span class="sourceLineNo">1902</span>    }<a name="line.1902"></a>
-<span class="sourceLineNo">1903</span>    return -(low + 1);<a name="line.1903"></a>
-<span class="sourceLineNo">1904</span>  }<a name="line.1904"></a>
-<span class="sourceLineNo">1905</span><a name="line.1905"></a>
-<span class="sourceLineNo">1906</span>  /**<a name="line.1906"></a>
-<span class="sourceLineNo">1907</span>   * Binary search for keys in indexes.<a name="line.1907"></a>
-<span class="sourceLineNo">1908</span>   * @param arr        array of byte arrays to search for<a name="line.1908"></a>
-<span class="sourceLineNo">1909</span>   * @param key        the key you want to find<a name="line.1909"></a>
-<span class="sourceLineNo">1910</span>   * @param comparator a comparator to compare.<a name="line.1910"></a>
-<span class="sourceLineNo">1911</span>   * @return zero-based index of the key, if the key is present in the array. Otherwise, a value -(i<a name="line.1911"></a>
-<span class="sourceLineNo">1912</span>   *         + 1) such that the key is between arr[i - 1] and arr[i] non-inclusively, where i is in<a name="line.1912"></a>
-<span class="sourceLineNo">1913</span>   *         [0, i], if we define arr[-1] = -Inf and arr[N] = Inf for an N-element array. The above<a name="line.1913"></a>
-<span class="sourceLineNo">1914</span>   *         means that this function can return 2N + 1 different values ranging from -(N + 1) to N<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span>   *         - 1.<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span>   * @return the index of the block<a name="line.1916"></a>
-<span class="sourceLineNo">1917</span>   */<a name="line.1917"></a>
-<span class="sourceLineNo">1918</span>  public static int binarySearch(Cell[] arr, Cell key, CellComparator comparator) {<a name="line.1918"></a>
-<span class="sourceLineNo">1919</span>    int low = 0;<a name="line.1919"></a>
-<span class="sourceLineNo">1920</span>    int high = arr.length - 1;<a name="line.1920"></a>
-<span class="sourceLineNo">1921</span>    while (low &lt;= high) {<a name="line.1921"></a>
-<span class="sourceLineNo">1922</span>      int mid = low + ((high - low) &gt;&gt; 1);<a name="line.1922"></a>
-<span class="sourceLineNo">1923</span>      // we have to compare in this order, because the comparator order<a name="line.1923"></a>
-<span class="sourceLineNo">1924</span>      // has special logic when the 'left side' is a special key.<a name="line.1924"></a>
-<span class="sourceLineNo">1925</span>      int cmp = comparator.compare(key, arr[mid]);<a name="line.1925"></a>
-<span class="sourceLineNo">1926</span>      // key lives above the midpoint<a name="line.1926"></a>
-<span class="sourceLineNo">1927</span>      if (cmp &gt; 0) low = mid + 1;<a name="line.1927"></a>
-<span class="sourceLineNo">1928</span>      // key lives below the midpoint<a name="line.1928"></a>
-<span class="sourceLineNo">1929</span>      else if (cmp &lt; 0) high = mid - 1;<a name="line.1929"></a>
-<span class="sourceLineNo">1930</span>      // BAM. how often does this really happen?<a name="line.1930"></a>
-<span class="sourceLineNo">1931</span>      else return mid;<a name="line.1931"></a>
-<span class="sourceLineNo">1932</span>    }<a name="line.1932"></a>
-<span class="sourceLineNo">1933</span>    return -(low + 1);<a name="line.1933"></a>
-<span class="sourceLineNo">1934</span>  }<a name="line.1934"></a>
-<span class="sourceLineNo">1935</span><a name="line.1935"></a>
-<span class="sourceLineNo">1936</span>  /**<a name="line.1936"></a>
-<span class="sourceLineNo">1937</span>   * Bytewise binary increment/deincrement of long contained in byte array on given amount.<a name="line.1937"></a>
-<span class="sourceLineNo">1938</span>   * @param value  - array of bytes containing long (length &amp;lt;= SIZEOF_LONG)<a name="line.1938"></a>
-<span class="sourceLineNo">1939</span>   * @param amount value will be incremented on (deincremented if negative)<a name="line.1939"></a>
-<span class="sourceLineNo">1940</span>   * @return array of bytes containing incremented long (length == SIZEOF_LONG)<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span>   */<a name="line.1941"></a>
-<span class="sourceLineNo">1942</span>  public static byte[] incrementBytes(byte[] value, long amount) {<a name="line.1942"></a>
-<span class="sourceLineNo">1943</span>    byte[] val = value;<a name="line.1943"></a>
-<span class="sourceLineNo">1944</span>    if (val.length &lt; SIZEOF_LONG) {<a name="line.1944"></a>
-<span class="sourceLineNo">1945</span>      // Hopefully this doesn't happen too often.<a name="line.1945"></a>
-<span class="sourceLineNo">1946</span>      byte[] newvalue;<a name="line.1946"></a>
-<span class="sourceLineNo">1947</span>      if (val[0] &lt; 0) {<a name="line.1947"></a>
-<span class="sourceLineNo">1948</span>        newvalue = new byte[] { -1, -1, -1, -1, -1, -1, -1, -1 };<a name="line.1948"></a>
-<span class="sourceLineNo">1949</span>      } else {<a name="line.1949"></a>
-<span class="sourceLineNo">1950</span>        newvalue = new byte[SIZEOF_LONG];<a name="line.1950"></a>
-<span class="sourceLineNo">1951</span>      }<a name="line.1951"></a>
-<span class="sourceLineNo">1952</span>      System.arraycopy(val, 0, newvalue, newvalue.length - val.length, val.length);<a name="line.1952"></a>
-<span class="sourceLineNo">1953</span>      val = newvalue;<a name="line.1953"></a>
-<span class="sourceLineNo">1954</span>    } else if (val.length &gt; SIZEOF_LONG) {<a name="line.1954"></a>
-<span class="sourceLineNo">1955</span>      throw new IllegalArgumentException("Increment Bytes - value too big: " + val.length);<a name="line.1955"></a>
-<span class="sourceLineNo">1956</span>    }<a name="line.1956"></a>
-<span class="sourceLineNo">1957</span>    if (amount == 0) return val;<a name="line.1957"></a>
-<span class="sourceLineNo">1958</span>    if (val[0] &lt; 0) {<a name="line.1958"></a>
-<span class="sourceLineNo">1959</span>      return binaryIncrementNeg(val, amount);<a name="line.1959"></a>
-<span class="sourceLineNo">1960</span>    }<a name="line.1960"></a>
-<span class="sourceLineNo">1961</span>    return binaryIncrementPos(val, amount);<a name="line.1961"></a>
-<span class="sourceLineNo">1962</span>  }<a name="line.1962"></a>
-<span class="sourceLineNo">1963</span><a name="line.1963"></a>
-<span class="sourceLineNo">1964</span>  /* increment/deincrement for positive value */<a name="line.1964"></a>
-<span class="sourceLineNo">1965</span>  private static byte[] binaryIncrementPos(byte[] value, long amount) {<a name="line.1965"></a>
-<span class="sourceLineNo">1966</span>    long amo = amount;<a name="line.1966"></a>
-<span class="sourceLineNo">1967</span>    int sign = 1;<a name="line.1967"></a>
-<span class="sourceLineNo">1968</span>    if (amount &lt; 0) {<a name="line.1968"></a>
-<span class="sourceLineNo">1969</span>      amo = -amount;<a name="line.1969"></a>
-<span class="sourceLineNo">1970</span>      sign = -1;<a name="line.1970"></a>
-<span class="sourceLineNo">1971</span>    }<a name="line.1971"></a>
-<span class="sourceLineNo">1972</span>    for (int i = 0; i &lt; value.length; i++) {<a name="line.1972"></a>
-<span class="sourceLineNo">1973</span>      int cur = ((int) amo % 256) * sign;<a name="line.1973"></a>
-<span class="sourceLineNo">1974</span>      amo = (amo &gt;&gt; 8);<a name="line.1974"></a>
-<span class="sourceLineNo">1975</span>      int val = value[value.length - i - 1] &amp; 0x0ff;<a name="line.1975"></a>
-<span class="sourceLineNo">1976</span>      int total = val + cur;<a name="line.1976"></a>
-<span class="sourceLineNo">1977</span>      if (total &gt; 255) {<a name="line.1977"></a>
-<span class="sourceLineNo">1978</span>        amo += sign;<a name="line.1978"></a>
-<span class="sourceLineNo">1979</span>        total %= 256;<a name="line.1979"></a>
-<span class="sourceLineNo">1980</span>      } else if (total &lt; 0) {<a name="line.1980"></a>
-<span class="sourceLineNo">1981</span>        amo -= sign;<a name="line.1981"></a>
-<span class="sourceLineNo">1982</span>      }<a name="line.1982"></a>
-<span class="sourceLineNo">1983</span>      value[value.length - i - 1] = (byte) total;<a name="line.1983"></a>
-<span class="sourceLineNo">1984</span>      if (amo == 0) return value;<a name="line.1984"></a>
-<span class="sourceLineNo">1985</span>    }<a name="line.1985"></a>
-<span class="sourceLineNo">1986</span>    return value;<a name="line.1986"></a>
-<span class="sourceLineNo">1987</span>  }<a name="line.1987"></a>
-<span class="sourceLineNo">1988</span><a name="line.1988"></a>
-<span class="sourceLineNo">1989</span>  /* increment/deincrement for negative value */<a name="line.1989"></a>
-<span class="sourceLineNo">1990</span>  private static byte[] binaryIncrementNeg(byte[] value, long amount) {<a name="line.1990"></a>
-<span class="sourceLineNo">1991</span>    long amo = amount;<a name="line.1991"></a>
-<span class="sourceLineNo">1992</span>    int sign = 1;<a name="line.1992"></a>
-<span class="sourceLineNo">1993</span>    if (amount &lt; 0) {<a name="line.1993"></a>
-<span class="sourceLineNo">1994</span>      amo = -amount;<a name="line.1994"></a>
-<span class="sourceLineNo">1995</span>      sign = -1;<a name="line.1995"></a>
-<span class="sourceLineNo">1996</span>    }<a name="line.1996"></a>
-<span class="sourceLineNo">1997</span>    for (int i = 0; i &lt; value.length; i++) {<a name="line.1997"></a>
-<span class="sourceLineNo">1998</span>      int cur = ((int) amo % 256) * sign;<a name="line.1998"></a>
-<span class="sourceLineNo">1999</span>      amo = (amo &gt;&gt; 8);<a name="line.1999"></a>
-<span class="sourceLineNo">2000</span>      int val = (~value[value.length - i - 1] &amp; 0x0ff) + 1;<a name="line.2000"></a>
-<span class="sourceLineNo">2001</span>      int total = cur - val;<a name="line.2001"></a>
-<span class="sourceLineNo">2002</span>      if (total &gt;= 0) {<a name="line.2002"></a>
-<span class="sourceLineNo">2003</span>        amo += sign;<a name="line.2003"></a>
-<span class="sourceLineNo">2004</span>      } else if (total &lt; -256) {<a name="line.2004"></a>
-<span class="sourceLineNo">2005</span>        amo -= sign;<a name="line.2005"></a>
-<span class="sourceLineNo">2006</span>        total %= 256;<a name="line.2006"></a>
-<span class="sourceLineNo">2007</span>      }<a name="line.2007"></a>
-<span class="sourceLineNo">2008</span>      value[value.length - i - 1] = (byte) total;<a name="line.2008"></a>
-<span class="sourceLineNo">2009</span>      if (amo == 0) return value;<a name="line.2009"></a>
-<span class="sourceLineNo">2010</span>    }<a name="line.2010"></a>
-<span class="sourceLineNo">2011</span>    return value;<a name="line.2011"></a>
-<span class="sourceLineNo">2012</span>  }<a name="line.2012"></a>
-<span class="sourceLineNo">2013</span><a name="line.2013"></a>
-<span class="sourceLineNo">2014</span>  /**<a name="line.2014"></a>
-<span class="sourceLineNo">2015</span>   * Writes a string as a fixed-size field, padded with zeros.<a name="line.2015"></a>
-<span class="sourceLineNo">2016</span>   */<a name="line.2016"></a>
-<span class="sourceLineNo">2017</span>  public static void writeStringFixedSize(final DataOutput out, String s, int size)<a name="line.2017"></a>
-<span class="sourceLineNo">2018</span>    throws IOException {<a name="line.2018"></a>
-<span class="sourceLineNo">2019</span>    byte[] b = toBytes(s);<a name="line.2019"></a>
-<span class="sourceLineNo">2020</span>    if (b.length &gt; size) {<a name="line.2020"></a>
-<span class="sourceLineNo">2021</span>      throw new IOException("Trying to write " + b.length + " bytes (" + toStringBinary(b)<a name="line.2021"></a>
-<span class="sourceLineNo">2022</span>        + ") into a field of length " + size);<a name="line.2022"></a>
-<span class="sourceLineNo">2023</span>    }<a name="line.2023"></a>
-<span class="sourceLineNo">2024</span><a name="line.2024"></a>
-<span class="sourceLineNo">2025</span>    out.writeBytes(s);<a name="line.2025"></a>
-<span class="sourceLineNo">2026</span>    for (int i = 0; i &lt; size - s.length(); ++i)<a name="line.2026"></a>
-<span class="sourceLineNo">2027</span>      out.writeByte(0);<a name="line.2027"></a>
-<span class="sourceLineNo">2028</span>  }<a name="line.2028"></a>
-<span class="sourceLineNo">2029</span><a name="line.2029"></a>
-<span class="sourceLineNo">2030</span>  /**<a name="line.2030"></a>
-<span class="sourceLineNo">2031</span>   * Reads a fixed-size field and interprets it as a string padded with zeros.<a name="line.2031"></a>
-<span class="sourceLineNo">2032</span>   */<a name="line.2032"></a>
-<span class="sourceLineNo">2033</span>  public static String readStringFixedSize(final DataInput in, int size) throws IOException {<a name="line.2033"></a>
-<span class="sourceLineNo">2034</span>    byte[] b = new byte[size];<a name="line.2034"></a>
-<span class="sourceLineNo">2035</span>    in.readFully(b);<a name="line.2035"></a>
-<span class="sourceLineNo">2036</span>    int n = b.length;<a name="line.2036"></a>
-<span class="sourceLineNo">2037</span>    while (n &gt; 0 &amp;&amp; b[n - 1] == 0)<a name="line.2037"></a>
-<span class="sourceLineNo">2038</span>      --n;<a name="line.2038"></a>
-<span class="sourceLineNo">2039</span><a name="line.2039"></a>
-<span class="sourceLineNo">2040</span>    return toString(b, 0, n);<a name="line.2040"></a>
-<span class="sourceLineNo">2041</span>  }<a name="line.2041"></a>
-<span class="sourceLineNo">2042</span><a name="line.2042"></a>
-<span class="sourceLineNo">2043</span>  /**<a name="line.2043"></a>
-<span class="sourceLineNo">2044</span>   * Copy the byte array given in parameter and return an instance of a new byte array with the same<a name="line.2044"></a>
-<span class="sourceLineNo">2045</span>   * length and the same content.<a name="line.2045"></a>
-<span class="sourceLineNo">2046</span>   * @param bytes the byte array to duplicate<a name="line.2046"></a>
-<span class="sourceLineNo">2047</span>   * @return a copy of the given byte array<a name="line.2047"></a>
-<span class="sourceLineNo">2048</span>   */<a name="line.2048"></a>
-<span class="sourceLineNo">2049</span>  public static byte[] copy(byte[] bytes) {<a name="line.2049"></a>
-<span class="sourceLineNo">2050</span>    if (bytes == null) return null;<a name="line.2050"></a>
-<span class="sourceLineNo">2051</span>    byte[] result = new byte[bytes.length];<a name="line.2051"></a>
-<span class="sourceLineNo">2052</span>    System.arraycopy(bytes, 0, result, 0, bytes.length);<a name="line.2052"></a>
-<span class="sourceLineNo">2053</span>    return result;<a name="line.2053"></a>
-<span class="sourceLineNo">2054</span>  }<a name="line.2054"></a>
-<span class="sourceLineNo">2055</span><a name="line.2055"></a>
-<span class="sourceLineNo">2056</span>  /**<a name="line.2056"></a>
-<span class="sourceLineNo">2057</span>   * Copy the byte array given in parameter and return an instance of a new byte array with the same<a name="line.2057"></a>
-<span class="sourceLineNo">2058</span>   * length and the same content.<a name="line.2058"></a>
-<span class="sourceLineNo">2059</span>   * @param bytes the byte array to copy from<a name="line.2059"></a>
-<span class="sourceLineNo">2060</span>   * @return a copy of the given designated byte array<a name="line.2060"></a>
-<span class="sourceLineNo">2061</span>   */<a name="line.2061"></a>
-<span class="sourceLineNo">2062</span>  public static byte[] copy(byte[] bytes, final int offset, final int length) {<a name="line.2062"></a>
-<span class="sourceLineNo">2063</span>    if (bytes == null) return null;<a name="line.2063"></a>
-<span class="sourceLineNo">2064</span>    byte[] result = new byte[length];<a name="line.2064"></a>
-<span class="sourceLineNo">2065</span>    System.arraycopy(bytes, offset, result, 0, length);<a name="line.2065"></a>
-<span class="sourceLineNo">2066</span>    return result;<a name="line.2066"></a>
-<span class="sourceLineNo">2067</span>  }<a name="line.2067"></a>
-<span class="sourceLineNo">2068</span><a name="line.2068"></a>
-<span class="sourceLineNo">2069</span>  /**<a name="line.2069"></a>
-<span class="sourceLineNo">2070</span>   * Search sorted array "a" for byte "key". I can't remember if I wrote this or copied it from<a name="line.2070"></a>
-<span class="sourceLineNo">2071</span>   * somewhere. (mcorgan)<a name="line.2071"></a>
-<span class="sourceLineNo">2072</span>   * @param a         Array to search. Entries must be sorted and unique.<a name="line.2072"></a>
-<span class="sourceLineNo">2073</span>   * @param fromIndex First index inclusive of "a" to include in the search.<a name="line.2073"></a>
-<span class="sourceLineNo">2074</span>   * @param toIndex   Last index exclusive of "a" to include in the search.<a name="line.2074"></a>
-<span class="sourceLineNo">2075</span>   * @param key       The byte to search for.<a name="line.2075"></a>
-<span class="sourceLineNo">2076</span>   * @return The index of key if found. If not found, return -(index + 1), where negative indicates<a name="line.2076"></a>
-<span class="sourceLineNo">2077</span>   *         "not found" and the "index + 1" handles the "-0" case.<a name="line.2077"></a>
-<span class="sourceLineNo">2078</span>   */<a name="line.2078"></a>
-<span class="sourceLineNo">2079</span>  public static int unsignedBinarySearch(byte[] a, int fromIndex, int toIndex, byte key) {<a name="line.2079"></a>
-<span class="sourceLineNo">2080</span>    int unsignedKey = key &amp; 0xff;<a name="line.2080"></a>
-<span class="sourceLineNo">2081</span>    int low = fromIndex;<a name="line.2081"></a>
-<span class="sourceLineNo">2082</span>    int high = toIndex - 1;<a name="line.2082"></a>
-<span class="sourceLineNo">2083</span><a name="line.2083"></a>
-<span class="sourceLineNo">2084</span>    while (low &lt;= high) {<a name="line.2084"></a>
-<span class="sourceLineNo">2085</span>      int mid = low + ((high - low) &gt;&gt; 1);<a name="line.2085"></a>
-<span class="sourceLineNo">2086</span>      int midVal = a[mid] &amp; 0xff;<a name="line.2086"></a>
-<span class="sourceLineNo">2087</span><a name="line.2087"></a>
-<span class="sourceLineNo">2088</span>      if (midVal &lt; unsignedKey) {<a name="line.2088"></a>
-<span class="sourceLineNo">2089</span>        low = mid + 1;<a name="line.2089"></a>
-<span class="sourceLineNo">2090</span>      } else if (midVal &gt; unsignedKey) {<a name="line.2090"></a>
-<span class="sourceLineNo">2091</span>        high = mid - 1;<a name="line.2091"></a>
-<span class="sourceLineNo">2092</span>      } else {<a name="line.2092"></a>
-<span class="sourceLineNo">2093</span>        return mid; // key found<a name="line.2093"></a>
-<span class="sourceLineNo">2094</span>      }<a name="line.2094"></a>
-<span class="sourceLineNo">2095</span>    }<a name="line.2095"></a>
-<span class="sourceLineNo">2096</span>    return -(low + 1); // key not found.<a name="line.2096"></a>
-<span class="sourceLineNo">2097</span>  }<a name="line.2097"></a>
-<span class="sourceLineNo">2098</span><a name="line.2098"></a>
-<span class="sourceLineNo">2099</span>  /**<a name="line.2099"></a>
-<span class="sourceLineNo">2100</span>   * Treat the byte[] as an unsigned series of bytes, most significant bits first. Start by adding 1<a name="line.2100"></a>
-<span class="sourceLineNo">2101</span>   * to the rightmost bit/byte and carry over all overflows to the more significant bits/bytes.<a name="line.2101"></a>
-<span class="sourceLineNo">2102</span>   * @param input The byte[] to increment.<a name="line.2102"></a>
-<span class="sourceLineNo">2103</span>   * @return The incremented copy of "in". May be same length or 1 byte longer.<a name="line.2103"></a>
-<span class="sourceLineNo">2104</span>   */<a name="line.2104"></a>
-<span class="sourceLineNo">2105</span>  public static byte[] unsignedCopyAndIncrement(final byte[] input) {<a name="line.2105"></a>
-<span class="sourceLineNo">2106</span>    byte[] copy = copy(input);<a name="line.2106"></a>
-<span class="sourceLineNo">2107</span>    if (copy == null) {<a name="line.2107"></a>
-<span class="sourceLineNo">2108</span>      throw new IllegalArgumentException("cannot increment null array");<a name="line.2108"></a>
-<span class="sourceLineNo">2109</span>    }<a name="line.2109"></a>
-<span class="sourceLineNo">2110</span>    for (int i = copy.length - 1; i &gt;= 0; --i) {<a name="line.2110"></a>
-<span class="sourceLineNo">2111</span>      if (copy[i] == -1) {// -1 is all 1-bits, which is the unsigned maximum<a name="line.2111"></a>
-<span class="sourceLineNo">2112</span>        copy[i] = 0;<a name="line.2112"></a>
-<span class="sourceLineNo">2113</span>      } else {<a name="line.2113"></a>
-<span class="sourceLineNo">2114</span>        ++copy[i];<a name="line.2114"></a>
-<span class="sourceLineNo">2115</span>        return copy;<a name="line.2115"></a>
-<span class="sourceLineNo">2116</span>      }<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>    }<a name="line.2117"></a>
-<span class="sourceLineNo">2118</span>    // we maxed out the array<a name="line.2118"></a>
-<span class="sourceLineNo">2119</span>    byte[] out = new byte[copy.length + 1];<a name="line.2119"></a>
-<span class="sourceLineNo">2120</span>    out[0] = 1;<a name="line.2120"></a>
-<span class="sourceLineNo">2121</span>    System.arraycopy(copy, 0, out, 1, copy.length);<a name="line.2121"></a>
-<span class="sourceLineNo">2122</span>    return out;<a name="line.2122"></a>
-<span class="sourceLineNo">2123</span>  }<a name="line.2123"></a>
-<span class="sourceLineNo">2124</span><a name="line.2124"></a>
-<span class="sourceLineNo">2125</span>  public static boolean equals(List&lt;byte[]&gt; a, List&lt;byte[]&gt; b) {<a name="line.2125"></a>
-<span class="sourceLineNo">2126</span>    if (a == null) {<a name="line.2126"></a>
-<span class="sourceLineNo">2127</span>      if (b == null) {<a name="line.2127"></a>
-<span class="sourceLineNo">2128</span>        return true;<a name="line.2128"></a>
-<span class="sourceLineNo">2129</span>      }<a name="line.2129"></a>
-<span class="sourceLineNo">2130</span>      return false;<a name="line.2130"></a>
-<span class="sourceLineNo">2131</span>    }<a name="line.2131"></a>
-<span class="sourceLineNo">2132</span>    if (b == null) {<a name="line.2132"></a>
-<span class="sourceLineNo">2133</span>      return false;<a name="line.2133"></a>
-<span class="sourceLineNo">2134</span>    }<a name="line.2134"></a>
-<span class="sourceLineNo">2135</span>    if (a.size() != b.size()) {<a name="line.2135"></a>
-<span class="sourceLineNo">2136</span>      return false;<a name="line.2136"></a>
-<span class="sourceLineNo">2137</span>    }<a name="line.2137"></a>
-<span class="sourceLineNo">2138</span>    for (int i = 0; i &lt; a.size(); ++i) {<a name="line.2138"></a>
-<span class="sourceLineNo">2139</span>      if (!Bytes.equals(a.get(i), b.get(i))) {<a name="line.2139"></a>
-<span class="sourceLineNo">2140</span>        return false;<a name="line.2140"></a>
-<span class="sourceLineNo">2141</span>      }<a name="line.2141"></a>
-<span class="sourceLineNo">2142</span>    }<a name="line.2142"></a>
-<span class="sourceLineNo">2143</span>    return true;<a name="line.2143"></a>
-<span class="sourceLineNo">2144</span>  }<a name="line.2144"></a>
-<span class="sourceLineNo">2145</span><a name="line.2145"></a>
-<span class="sourceLineNo">2146</span>  public static boolean isSorted(Collection&lt;byte[]&gt; arrays) {<a name="line.2146"></a>
-<span class="sourceLineNo">2147</span>    if (!CollectionUtils.isEmpty(arrays)) {<a name="line.2147"></a>
-<span class="sourceLineNo">2148</span>      byte[] previous = new byte[0];<a name="line.2148"></a>
-<span class="sourceLineNo">2149</span>      for (byte[] array : arrays) {<a name="line.2149"></a>
-<span class="sourceLineNo">2150</span>        if (Bytes.compareTo(previous, array) &gt; 0) {<a name="line.2150"></a>
-<span class="sourceLineNo">2151</span>          return false;<a name="line.2151"></a>
-<span class="sourceLineNo">2152</span>        }<a name="line.2152"></a>
-<span class="sourceLineNo">2153</span>        previous = array;<a name="line.2153"></a>
-<span class="sourceLineNo">2154</span>      }<a name="line.2154"></a>
-<span class="sourceLineNo">2155</span>    }<a name="line.2155"></a>
-<span class="sourceLineNo">2156</span>    return true;<a name="line.2156"></a>
-<span class="sourceLineNo">2157</span>  }<a name="line.2157"></a>
-<span class="sourceLineNo">2158</span><a name="line.2158"></a>
-<span class="sourceLineNo">2159</span>  public static List&lt;byte[]&gt; getUtf8ByteArrays(List&lt;String&gt; strings) {<a name="line.2159"></a>
-<span class="sourceLineNo">2160</span>    if (CollectionUtils.isEmpty(strings)) {<a name="line.2160"></a>
-<span class="sourceLineNo">2161</span>      return Collections.emptyList();<a name="line.2161"></a>
-<span class="sourceLineNo">2162</span>    }<a name="line.2162"></a>
-<span class="sourceLineNo">2163</span>    List&lt;byte[]&gt; byteArrays = new ArrayList&lt;&gt;(strings.size());<a name="line.2163"></a>
-<span class="sourceLineNo">2164</span>    strings.forEach(s -&gt; byteArrays.add(Bytes.toBytes(s)));<a name="line.2164"></a>
-<span class="sourceLineNo">2165</span>    return byteArrays;<a name="line.2165"></a>
-<span class="sourceLineNo">2166</span>  }<a name="line.2166"></a>
-<span class="sourceLineNo">2167</span><a name="line.2167"></a>
-<span class="sourceLineNo">2168</span>  /**<a name="line.2168"></a>
-<span class="sourceLineNo">2169</span>   * Returns the index of the first appearance of the value {@code target} in {@code array}.<a name="line.2169"></a>
-<span class="sourceLineNo">2170</span>   * @param array  an array of {@code byte} values, possibly empty<a name="line.2170"></a>
-<span class="sourceLineNo">2171</span>   * @param target a primitive {@code byte} value<a name="line.2171"></a>
-<span class="sourceLineNo">2172</span>   * @return the least index {@code i} for which {@code array[i] == target}, or {@code -1} if no<a name="line.2172"></a>
-<span class="sourceLineNo">2173</span>   *         such index exists.<a name="line.2173"></a>
-<span class="sourceLineNo">2174</span>   */<a name="line.2174"></a>
-<span class="sourceLineNo">2175</span>  public static int indexOf(byte[] array, byte target) {<a name="line.2175"></a>
-<span class="sourceLineNo">2176</span>    for (int i = 0; i &lt; array.length; i++) {<a name="line.2176"></a>
-<span class="sourceLineNo">2177</span>      if (array[i] == target) {<a name="line.2177"></a>
-<span class="sourceLineNo">2178</span>        return i;<a name="line.2178"></a>
-<span class="sourceLineNo">2179</span>      }<a name="line.2179"></a>
-<span class="sourceLineNo">2180</span>    }<a name="line.2180"></a>
-<span class="sourceLineNo">2181</span>    return -1;<a name="line.2181"></a>
-<span class="sourceLineNo">2182</span>  }<a name="line.2182"></a>
-<span class="sourceLineNo">2183</span><a name="line.2183"></a>
-<span class="sourceLineNo">2184</span>  /**<a name="line.2184"></a>
-<span class="sourceLineNo">2185</span>   * Returns the start position of the first occurrence of the specified {@code<a name="line.2185"></a>
-<span class="sourceLineNo">2186</span>   * target} within {@code array}, or {@code -1} if there is no such occurrence.<a name="line.2186"></a>
-<span class="sourceLineNo">2187</span>   * &lt;p&gt;<a name="line.2187"></a>
-<span class="sourceLineNo">2188</span>   * More formally, returns the lowest index {@code i} such that {@code<a name="line.2188"></a>
-<span class="sourceLineNo">2189</span>   * java.util.Arrays.copyOfRange(array, i, i + target.length)} contains exactly the same elements<a name="line.2189"></a>
-<span class="sourceLineNo">2190</span>   * as {@code target}.<a name="line.2190"></a>
-<span class="sourceLineNo">2191</span>   * @param array  the array to search for the sequence {@code target}<a name="line.2191"></a>
-<span class="sourceLineNo">2192</span>   * @param target the array to search for as a sub-sequence of {@code array}<a name="line.2192"></a>
-<span class="sourceLineNo">2193</span>   */<a name="line.2193"></a>
-<span class="sourceLineNo">2194</span>  public static int indexOf(byte[] array, byte[] target) {<a name="line.2194"></a>
-<span class="sourceLineNo">2195</span>    checkNotNull(array, "array");<a name="line.2195"></a>
-<span class="sourceLineNo">2196</span>    checkNotNull(target, "target");<a name="line.2196"></a>
-<span class="sourceLineNo">2197</span>    if (target.length == 0) {<a name="line.2197"></a>
-<span class="sourceLineNo">2198</span>      return 0;<a name="line.2198"></a>
-<span class="sourceLineNo">2199</span>    }<a name="line.2199"></a>
-<span class="sourceLineNo">2200</span><a name="line.2200"></a>
-<span class="sourceLineNo">2201</span>    outer: for (int i = 0; i &lt; array.length - target.length + 1; i++) {<a name="line.2201"></a>
-<span class="sourceLineNo">2202</span>      for (int j = 0; j &lt; target.length; j++) {<a name="line.2202"></a>
-<span class="sourceLineNo">2203</span>        if (array[i + j] != target[j]) {<a name="line.2203"></a>
-<span class="sourceLineNo">2204</span>          continue outer;<a name="line.2204"></a>
-<span class="sourceLineNo">2205</span>        }<a name="line.2205"></a>
-<span class="sourceLineNo">2206</span>      }<a name="line.2206"></a>
-<span class="sourceLineNo">2207</span>      return i;<a name="line.2207"></a>
-<span class="sourceLineNo">2208</span>    }<a name="line.2208"></a>
-<span class="sourceLineNo">2209</span>    return -1;<a name="line.2209"></a>
-<span class="sourceLineNo">2210</span>  }<a name="line.2210"></a>
-<span class="sourceLineNo">2211</span><a name="line.2211"></a>
-<span class="sourceLineNo">2212</span>  /**<a name="line.2212"></a>
-<span class="sourceLineNo">2213</span>   * Return true if target is present as an element anywhere in the given array.<a name="line.2213"></a>
-<span class="sourceLineNo">2214</span>   * @param array  an array of {@code byte} values, possibly empty<a name="line.2214"></a>
-<span class="sourceLineNo">2215</span>   * @param target a primitive {@code byte} value<a name="line.2215"></a>
-<span class="sourceLineNo">2216</span>   * @return {@code true} if {@code target} is present as an element anywhere in {@code array}.<a name="line.2216"></a>
-<span class="sourceLineNo">2217</span>   */<a name="line.2217"></a>
-<span class="sourceLineNo">2218</span>  public static boolean contains(byte[] array, byte target) {<a name="line.2218"></a>
-<span class="sourceLineNo">2219</span>    return indexOf(array, target) &gt; -1;<a name="line.2219"></a>
-<span class="sourceLineNo">2220</span>  }<a name="line.2220"></a>
-<span class="sourceLineNo">2221</span><a name="line.2221"></a>
-<span class="sourceLineNo">2222</span>  /**<a name="line.2222"></a>
-<span class="sourceLineNo">2223</span>   * Return true if target is present as an element anywhere in the given array.<a name="line.2223"></a>
-<span class="sourceLineNo">2224</span>   * @param array  an array of {@code byte} values, possibly empty<a name="line.2224"></a>
-<span class="sourceLineNo">2225</span>   * @param target an array of {@code byte}<a name="line.2225"></a>
-<span class="sourceLineNo">2226</span>   * @return {@code true} if {@code target} is present anywhere in {@code array}<a name="line.2226"></a>
-<span class="sourceLineNo">2227</span>   */<a name="line.2227"></a>
-<span class="sourceLineNo">2228</span>  public static boolean contains(byte[] array, byte[] target) {<a name="line.2228"></a>
-<span class="sourceLineNo">2229</span>    return indexOf(array, target) &gt; -1;<a name="line.2229"></a>
-<span class="sourceLineNo">2230</span>  }<a name="line.2230"></a>
-<span class="sourceLineNo">2231</span><a name="line.2231"></a>
-<span class="sourceLineNo">2232</span>  /**<a name="line.2232"></a>
-<span class="sourceLineNo">2233</span>   * Fill given array with zeros.<a name="line.2233"></a>
-<span class="sourceLineNo">2234</span>   * @param b array which needs to be filled with zeros<a name="line.2234"></a>
-<span class="sourceLineNo">2235</span>   */<a name="line.2235"></a>
-<span class="sourceLineNo">2236</span>  public static void zero(byte[] b) {<a name="line.2236"></a>
-<span class="sourceLineNo">2237</span>    zero(b, 0, b.length);<a name="line.2237"></a>
-<span class="sourceLineNo">2238</span>  }<a name="line.2238"></a>
-<span class="sourceLineNo">2239</span><a name="line.2239"></a>
-<span class="sourceLineNo">2240</span>  /**<a name="line.2240"></a>
-<span class="sourceLineNo">2241</span>   * Fill given array with zeros at the specified position.<a name="line.2241"></a>
-<span class="sourceLineNo">2242</span>   */<a name="line.2242"></a>
-<span class="sourceLineNo">2243</span>  public static void zero(byte[] b, int offset, int length) {<a name="line.2243"></a>
-<span class="sourceLineNo">2244</span>    checkPositionIndex(offset, b.length, "offset");<a name="line.2244"></a>
-<span class="sourceLineNo">2245</span>    checkArgument(length &gt; 0, "length must be greater than 0");<a name="line.2245"></a>
-<span class="sourceLineNo">2246</span>    checkPositionIndex(offset + length, b.length, "offset + length");<a name="line.2246"></a>
-<span class="sourceLineNo">2247</span>    Arrays.fill(b, offset, offset + length, (byte) 0);<a name="line.2247"></a>
-<span class="sourceLineNo">2248</span>  }<a name="line.2248"></a>
-<span class="sourceLineNo">2249</span><a name="line.2249"></a>
-<span class="sourceLineNo">2250</span>  // Pseudorandom random number generator, do not use SecureRandom here<a name="line.2250"></a>
-<span class="sourceLineNo">2251</span>  private static final Random RNG = new Random();<a name="line.2251"></a>
-<span class="sourceLineNo">2252</span><a name="line.2252"></a>
-<span class="sourceLineNo">2253</span>  /**<a name="line.2253"></a>
-<span class="sourceLineNo">2254</span>   * Fill given array with random bytes.<a name="line.2254"></a>
-<span class="sourceLineNo">2255</span>   * @param b array which needs to be filled with random bytes<a name="line.2255"></a>
-<span class="sourceLineNo">2256</span>   *          &lt;p&gt;<a name="line.2256"></a>
-<span class="sourceLineNo">2257</span>   *          If you want random bytes generated by a strong source of randomness use<a name="line.2257"></a>
-<span class="sourceLineNo">2258</span>   *          {@link Bytes#secureRandom(byte[])}.<a name="line.2258"></a>
-<span class="sourceLineNo">2259</span>   * @param b array which needs to be filled with random bytes<a name="line.2259"></a>
-<span class="sourceLineNo">2260</span>   */<a name="line.2260"></a>
-<span class="sourceLineNo">2261</span>  public static void random(byte[] b) {<a name="line.2261"></a>
-<span class="sourceLineNo">2262</span>    RNG.nextBytes(b);<a name="line.2262"></a>
-<span class="sourceLineNo">2263</span>  }<a name="line.2263"></a>
-<span class="sourceLineNo">2264</span><a name="line.2264"></a>
-<span class="sourceLineNo">2265</span>  /**<a name="line.2265"></a>
-<span class="sourceLineNo">2266</span>   * Fill given array with random bytes at the specified position.<a name="line.2266"></a>
-<span class="sourceLineNo">2267</span>   * &lt;p&gt;<a name="line.2267"></a>
-<span class="sourceLineNo">2268</span>   * If you want random bytes generated by a strong source of randomness use<a name="line.2268"></a>
-<span class="sourceLineNo">2269</span>   * {@link Bytes#secureRandom(byte[], int, int)}.<a name="line.2269"></a>
-<span class="sourceLineNo">2270</span>   * @param b      array which needs to be filled with random bytes<a name="line.2270"></a>
-<span class="sourceLineNo">2271</span>   * @param offset staring offset in array<a name="line.2271"></a>
-<span class="sourceLineNo">2272</span>   * @param length number of bytes to fill<a name="line.2272"></a>
-<span class="sourceLineNo">2273</span>   */<a name="line.2273"></a>
-<span class="sourceLineNo">2274</span>  public static void random(byte[] b, int offset, int length) {<a name="line.2274"></a>
-<span class="sourceLineNo">2275</span>    checkPositionIndex(offset, b.length, "offset");<a name="line.2275"></a>
-<span class="sourceLineNo">2276</span>    checkArgument(length &gt; 0, "length must be greater than 0");<a name="line.2276"></a>
-<span class="sourceLineNo">2277</span>    checkPositionIndex(offset + length, b.length, "offset + length");<a name="line.2277"></a>
-<span class="sourceLineNo">2278</span>    byte[] buf = new byte[length];<a name="line.2278"></a>
-<span class="sourceLineNo">2279</span>    RNG.nextBytes(buf);<a name="line.2279"></a>
-<span class="sourceLineNo">2280</span>    System.arraycopy(buf, 0, b, offset, length);<a name="line.2280"></a>
-<span class="sourceLineNo">2281</span>  }<a name="line.2281"></a>
-<span class="sourceLineNo">2282</span><a name="line.2282"></a>
-<span class="sourceLineNo">2283</span>  // Bytes.secureRandom may be used to create key material.<a name="line.2283"></a>
-<span class="sourceLineNo">2284</span>  private static final SecureRandom SECURE_RNG = new SecureRandom();<a name="line.2284"></a>
-<span class="sourceLineNo">2285</span><a name="line.2285"></a>
-<span class="sourceLineNo">2286</span>  /**<a name="line.2286"></a>
-<span class="sourceLineNo">2287</span>   * Fill given array with random bytes using a strong random number generator.<a name="line.2287"></a>
-<span class="sourceLineNo">2288</span>   * @param b array which needs to be filled with random bytes<a name="line.2288"></a>
-<span class="sourceLineNo">2289</span>   */<a name="line.2289"></a>
-<span class="sourceLineNo">2290</span>  public static void secureRandom(byte[] b) {<a name="line.2290"></a>
-<span class="sourceLineNo">2291</span>    SECURE_RNG.nextBytes(b);<a name="line.2291"></a>
-<span class="sourceLineNo">2292</span>  }<a name="line.2292"></a>
-<span class="sourceLineNo">2293</span><a name="line.2293"></a>
-<span class="sourceLineNo">2294</span>  /**<a name="line.2294"></a>
-<span class="sourceLineNo">2295</span>   * Fill given array with random bytes at the specified position using a strong random number<a name="line.2295"></a>
-<span class="sourceLineNo">2296</span>   * generator.<a name="line.2296"></a>
-<span class="sourceLineNo">2297</span>   * @param b      array which needs to be filled with random bytes<a name="line.2297"></a>
-<span class="sourceLineNo">2298</span>   * @param offset staring offset in array<a name="line.2298"></a>
-<span class="sourceLineNo">2299</span>   * @param length number of bytes to fill<a name="line.2299"></a>
-<span class="sourceLineNo">2300</span>   */<a name="line.2300"></a>
-<span class="sourceLineNo">2301</span>  public static void secureRandom(byte[] b, int offset, int length) {<a name="line.2301"></a>
-<span class="sourceLineNo">2302</span>    checkPositionIndex(offset, b.length, "offset");<a name="line.2302"></a>
-<span class="sourceLineNo">2303</span>    checkArgument(length &gt; 0, "length must be greater than 0");<a name="line.2303"></a>
-<span class="sourceLineNo">2304</span>    checkPositionIndex(offset + length, b.length, "offset + length");<a name="line.2304"></a>
-<span class="sourceLineNo">2305</span>    byte[] buf = new byte[length];<a name="line.2305"></a>
-<span class="sourceLineNo">2306</span>    SECURE_RNG.nextBytes(buf);<a name="line.2306"></a>
-<span class="sourceLineNo">2307</span>    System.arraycopy(buf, 0, b, offset, length);<a name="line.2307"></a>
+<span class="sourceLineNo">1778</span>    return add(a, padding);<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>  }<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span><a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>  /**<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>   * Split passed range. Expensive operation relatively. Uses BigInteger math. Useful splitting<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>   * ranges for MapReduce jobs.<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>   * @param a   Beginning of range<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>   * @param b   End of range<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>   * @param num Number of times to split range. Pass 1 if you want to split the range in two; i.e.<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>   *            one split.<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>   * @return Array of dividing values<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>   */<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>  public static byte[][] split(final byte[] a, final byte[] b, final int num) {<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>    return split(a, b, false, num);<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>  }<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span><a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>  /**<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>   * Split passed range. Expensive operation relatively. Uses BigInteger math. Useful splitting<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>   * ranges for MapReduce jobs.<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>   * @param a         Beginning of range<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>   * @param b         End of range<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>   * @param inclusive Whether the end of range is prefix-inclusive or is considered an exclusive<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>   *                  boundary. Automatic splits are generally exclusive and manual splits with an<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>   *                  explicit range utilize an inclusive end of range.<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>   * @param num       Number of times to split range. Pass 1 if you want to split the range in two;<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>   *                  i.e. one split.<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>   * @return Array of dividing values<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>   */<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>  public static byte[][] split(final byte[] a, final byte[] b, boolean inclusive, final int num) {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>    byte[][] ret = new byte[num + 2][];<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>    int i = 0;<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>    Iterable&lt;byte[]&gt; iter = iterateOnSplits(a, b, inclusive, num);<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>    if (iter == null) return null;<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>    for (byte[] elem : iter) {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>      ret[i++] = elem;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>    }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>    return ret;<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>  }<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span><a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>  /**<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>   * Iterate over keys within the passed range, splitting at an [a,b) boundary.<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>   */<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>  public static Iterable&lt;byte[]&gt; iterateOnSplits(final byte[] a, final byte[] b, final int num) {<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>    return iterateOnSplits(a, b, false, num);<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>  }<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span><a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>  /**<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>   * Iterate over keys within the passed range.<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>   */<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>  public static Iterable&lt;byte[]&gt; iterateOnSplits(final byte[] a, final byte[] b, boolean inclusive,<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>    final int num) {<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>    byte[] aPadded;<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>    byte[] bPadded;<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>    if (a.length &lt; b.length) {<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>      aPadded = padTail(a, b.length - a.length);<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>      bPadded = b;<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>    } else if (b.length &lt; a.length) {<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>      aPadded = a;<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>      bPadded = padTail(b, a.length - b.length);<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>    } else {<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>      aPadded = a;<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>      bPadded = b;<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>    }<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>    if (compareTo(aPadded, bPadded) &gt;= 0) {<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>      throw new IllegalArgumentException("b &lt;= a");<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>    }<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>    if (num &lt;= 0) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>      throw new IllegalArgumentException("num cannot be &lt;= 0");<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>    }<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>    byte[] prependHeader = { 1, 0 };<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>    final BigInteger startBI = new BigInteger(add(prependHeader, aPadded));<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>    final BigInteger stopBI = new BigInteger(add(prependHeader, bPadded));<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>    BigInteger diffBI = stopBI.subtract(startBI);<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>    if (inclusive) {<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>      diffBI = diffBI.add(BigInteger.ONE);<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>    }<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>    final BigInteger splitsBI = BigInteger.valueOf(num + 1);<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>    // when diffBI &lt; splitBI, use an additional byte to increase diffBI<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>    if (diffBI.compareTo(splitsBI) &lt; 0) {<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>      byte[] aPaddedAdditional = new byte[aPadded.length + 1];<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>      byte[] bPaddedAdditional = new byte[bPadded.length + 1];<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>      for (int i = 0; i &lt; aPadded.length; i++) {<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>        aPaddedAdditional[i] = aPadded[i];<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>      }<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>      for (int j = 0; j &lt; bPadded.length; j++) {<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>        bPaddedAdditional[j] = bPadded[j];<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>      }<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>      aPaddedAdditional[aPadded.length] = 0;<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>      bPaddedAdditional[bPadded.length] = 0;<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>      return iterateOnSplits(aPaddedAdditional, bPaddedAdditional, inclusive, num);<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>    }<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>    final BigInteger intervalBI;<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>    try {<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>      intervalBI = diffBI.divide(splitsBI);<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>    } catch (Exception e) {<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>      LOG.error("Exception caught during division", e);<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>      return null;<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>    }<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span><a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>    final Iterator&lt;byte[]&gt; iterator = new Iterator&lt;byte[]&gt;() {<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>      private int i = -1;<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span><a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>      @Override<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>      public boolean hasNext() {<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>        return i &lt; num + 1;<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>      }<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span><a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>      @Override<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>      public byte[] next() {<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>        i++;<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>        if (i == 0) return a;<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>        if (i == num + 1) return b;<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span><a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>        BigInteger curBI = startBI.add(intervalBI.multiply(BigInteger.valueOf(i)));<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>        byte[] padded = curBI.toByteArray();<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>        if (padded[1] == 0) padded = tail(padded, padded.length - 2);<a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>        else padded = tail(padded, padded.length - 1);<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>        return padded;<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>      }<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span><a name="line.1897"></a>
+<span class="sourceLineNo">1898</span>      @Override<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>      public void remove() {<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>        throw new UnsupportedOperationException();<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>      }<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span><a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>    };<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span><a name="line.1904"></a>
+<span class="sourceLineNo">1905</span>    return new Iterable&lt;byte[]&gt;() {<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span>      @Override<a name="line.1906"></a>
+<span class="sourceLineNo">1907</span>      public Iterator&lt;byte[]&gt; iterator() {<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>        return iterator;<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>      }<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>    };<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>  }<a name="line.1911"></a>
+<span class="sourceLineNo">1912</span><a name="line.1912"></a>
+<span class="sourceLineNo">1913</span>  /**<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>   * Calculate the hash code for a given range of bytes.<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>   * @param bytes  array to hash<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>   * @param offset offset to start from<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>   * @param length length to hash<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>   */<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span>  public static int hashCode(byte[] bytes, int offset, int length) {<a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>    int hash = 1;<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>    for (int i = offset; i &lt; offset + length; i++)<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span>      hash = (31 * hash) + bytes[i];<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>    return hash;<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>  }<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span><a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>  /**<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>   * Create an array of byte[] given an array of String.<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>   * @param t operands<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>   * @return Array of byte arrays made from passed array of Text<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>   */<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>  public static byte[][] toByteArrays(final String[] t) {<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>    byte[][] result = new byte[t.length][];<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>    for (int i = 0; i &lt; t.length; i++) {<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>      result[i] = Bytes.toBytes(t[i]);<a name="line.1934"></a>
+<span class="sourceLineNo">1935</span>    }<a name="line.1935"></a>
+<span class="sourceLineNo">1936</span>    return result;<a name="line.1936"></a>
+<span class="sourceLineNo">1937</span>  }<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span><a name="line.1938"></a>
+<span class="sourceLineNo">1939</span>  /**<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>   * Create an array of byte[] given an array of String.<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span>   * @param t operands<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>   * @return Array of binary byte arrays made from passed array of binary strings<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span>   */<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span>  public static byte[][] toBinaryByteArrays(final String[] t) {<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span>    byte[][] result = new byte[t.length][];<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span>    for (int i = 0; i &lt; t.length; i++) {<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>      result[i] = Bytes.toBytesBinary(t[i]);<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>    }<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>    return result;<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>  }<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span><a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>  /**<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>   * Create a byte[][] where first and only entry is &lt;code&gt;column&lt;/code&gt;<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>   * @param column operand<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>   * @return A byte array of a byte array where first and only entry is &lt;code&gt;column&lt;/code&gt;<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>   */<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span>  public static byte[][] toByteArrays(final String column) {<a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>    return toByteArrays(toBytes(column));<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>  }<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span><a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>  /**<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>   * Create a byte[][] where first and only entry is &lt;code&gt;column&lt;/code&gt;<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span>   * @param column operand<a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>   * @return A byte array of a byte array where first and only entry is &lt;code&gt;column&lt;/code&gt;<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>   */<a name="line.1965"></a>
+<span class="sourceLineNo">1966</span>  public static byte[][] toByteArrays(final byte[] column) {<a name="line.1966"></a>
+<span class="sourceLineNo">1967</span>    byte[][] result = new byte[1][];<a name="line.1967"></a>
+<span class="sourceLineNo">1968</span>    result[0] = column;<a name="line.1968"></a>
+<span class="sourceLineNo">1969</span>    return result;<a name="line.1969"></a>
+<span class="sourceLineNo">1970</span>  }<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span><a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>  /**<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>   * Binary search for keys in indexes using Bytes.BYTES_RAWCOMPARATOR.<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>   * @param arr    array of byte arrays to search for<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>   * @param key    the key you want to find<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>   * @param offset the offset in the key you want to find<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span>   * @param length the length of the key<a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>   * @return zero-based index of the key, if the key is present in the array. Otherwise, a value -(i<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span>   *         + 1) such that the key is between arr[i - 1] and arr[i] non-inclusively, where i is in<a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>   *         [0, i], if we define arr[-1] = -Inf and arr[N] = Inf for an N-element array. The above<a name="line.1980"></a>
+<span class="sourceLineNo">1981</span>   *         means that this function can return 2N + 1 different values ranging from -(N + 1) to N<a name="line.1981"></a>
+<span class="sourceLineNo">1982</span>   *         - 1.<a name="line.1982"></a>
+<span class="sourceLineNo">1983</span>   */<a name="line.1983"></a>
+<span class="sourceLineNo">1984</span>  public static int binarySearch(byte[][] arr, byte[] key, int offset, int length) {<a name="line.1984"></a>
+<span class="sourceLineNo">1985</span>    int low = 0;<a name="line.1985"></a>
+<span class="sourceLineNo">1986</span>    int high = arr.length - 1;<a name="line.1986"></a>
+<span class="sourceLineNo">1987</span><a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>    while (low &lt;= high) {<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>      int mid = low + ((high - low) &gt;&gt; 1);<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span>      // we have to compare in this order, because the comparator order<a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>      // has special logic when the 'left side' is a special key.<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>      int cmp =<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>        Bytes.BYTES_RAWCOMPARATOR.compare(key, offset, length, arr[mid], 0, arr[mid].length);<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>      // key lives above the midpoint<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span>      if (cmp &gt; 0) low = mid + 1;<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span>      // key lives below the midpoint<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span>      else if (cmp &lt; 0) high = mid - 1;<a name="line.1997"></a>
+<span class="sourceLineNo">1998</span>      // BAM. how often does this really happen?<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span>      else return mid;<a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>    }<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>    return -(low + 1);<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>  }<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span><a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>  /**<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>   * Binary search for keys in indexes.<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>   * @param arr        array of byte arrays to search for<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>   * @param key        the key you want to find<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>   * @param comparator a comparator to compare.<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>   * @return zero-based index of the key, if the key is present in the array. Otherwise, a value -(i<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>   *         + 1) such that the key is between arr[i - 1] and arr[i] non-inclusively, where i is in<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span>   *         [0, i], if we define arr[-1] = -Inf and arr[N] = Inf for an N-element array. The above<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>   *         means that this function can return 2N + 1 different values ranging from -(N + 1) to N<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>   *         - 1.<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>   * @return the index of the block<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>   */<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>  public static int binarySearch(Cell[] arr, Cell key, CellComparator comparator) {<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>    int low = 0;<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>    int high = arr.length - 1;<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>    while (low &lt;= high) {<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>      int mid = low + ((high - low) &gt;&gt; 1);<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>      // we have to compare in this order, because the comparator order<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>      // has special logic when the 'left side' is a special key.<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>      int cmp = comparator.compare(key, arr[mid]);<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>      // key lives above the midpoint<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>      if (cmp &gt; 0) low = mid + 1;<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span>      // key lives below the midpoint<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span>      else if (cmp &lt; 0) high = mid - 1;<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>      // BAM. how often does this really happen?<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span>      else return mid;<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>    }<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>    return -(low + 1);<a name="line.2031"></a>
+<span class="sourceLineNo">2032</span>  }<a name="line.2032"></a>
+<span class="sourceLineNo">2033</span><a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>  /**<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>   * Bytewise binary increment/deincrement of long contained in byte array on given amount.<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>   * @param value  - array of bytes containing long (length &amp;lt;= SIZEOF_LONG)<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>   * @param amount value will be incremented on (deincremented if negative)<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>   * @return array of bytes containing incremented long (length == SIZEOF_LONG)<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>   */<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>  public static byte[] incrementBytes(byte[] value, long amount) {<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>    byte[] val = value;<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>    if (val.length &lt; SIZEOF_LONG) {<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>      // Hopefully this doesn't happen too often.<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>      byte[] newvalue;<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span>      if (val[0] &lt; 0) {<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>        newvalue = new byte[] { -1, -1, -1, -1, -1, -1, -1, -1 };<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>      } else {<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>        newvalue = new byte[SIZEOF_LONG];<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>      }<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>      System.arraycopy(val, 0, newvalue, newvalue.length - val.length, val.length);<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>      val = newvalue;<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>    } else if (val.length &gt; SIZEOF_LONG) {<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>      throw new IllegalArgumentException("Increment Bytes - value too big: " + val.length);<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>    }<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span>    if (amount == 0) return val;<a name="line.2055"></a>
+<span class="sourceLineNo">2056</span>    if (val[0] &lt; 0) {<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span>      return binaryIncrementNeg(val, amount);<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span>    }<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>    return binaryIncrementPos(val, amount);<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>  }<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span><a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>  /* increment/deincrement for positive value */<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span>  private static byte[] binaryIncrementPos(byte[] value, long amount) {<a name="line.2063"></a>
+<span class="sourceLineNo">2064</span>    long amo = amount;<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>    int sign = 1;<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>    if (amount &lt; 0) {<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>      amo = -amount;<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>      sign = -1;<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>    }<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>    for (int i = 0; i &lt; value.length; i++) {<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>      int cur = ((int) amo % 256) * sign;<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span>      amo = (amo &gt;&gt; 8);<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>      int val = value[value.length - i - 1] &amp; 0x0ff;<a name="line.2073"></a>
+<span class="sourceLineNo">2074</span>      int total = val + cur;<a name="line.2074"></a>
+<span class="sourceLineNo">2075</span>      if (total &gt; 255) {<a name="line.2075"></a>
+<span class="sourceLineNo">2076</span>        amo += sign;<a name="line.2076"></a>
+<span class="sourceLineNo">2077</span>        total %= 256;<a name="line.2077"></a>
+<span class="sourceLineNo">2078</span>      } else if (total &lt; 0) {<a name="line.2078"></a>
+<span class="sourceLineNo">2079</span>        amo -= sign;<a name="line.2079"></a>
+<span class="sourceLineNo">2080</span>      }<a name="line.2080"></a>
+<span class="sourceLineNo">2081</span>      value[value.length - i - 1] = (byte) total;<a name="line.2081"></a>
+<span class="sourceLineNo">2082</span>      if (amo == 0) return value;<a name="line.2082"></a>
+<span class="sourceLineNo">2083</span>    }<a name="line.2083"></a>
+<span class="sourceLineNo">2084</span>    return value;<a name="line.2084"></a>
+<span class="sourceLineNo">2085</span>  }<a name="line.2085"></a>
+<span class="sourceLineNo">2086</span><a name="line.2086"></a>
+<span class="sourceLineNo">2087</span>  /* increment/deincrement for negative value */<a name="line.2087"></a>
+<span class="sourceLineNo">2088</span>  private static byte[] binaryIncrementNeg(byte[] value, long amount) {<a name="line.2088"></a>
+<span class="sourceLineNo">2089</span>    long amo = amount;<a name="line.2089"></a>
+<span class="sourceLineNo">2090</span>    int sign = 1;<a name="line.2090"></a>
+<span class="sourceLineNo">2091</span>    if (amount &lt; 0) {<a name="line.2091"></a>
+<span class="sourceLineNo">2092</span>      amo = -amount;<a name="line.2092"></a>
+<span class="sourceLineNo">2093</span>      sign = -1;<a name="line.2093"></a>
+<span class="sourceLineNo">2094</span>    }<a name="line.2094"></a>
+<span class="sourceLineNo">2095</span>    for (int i = 0; i &lt; value.length; i++) {<a name="line.2095"></a>
+<span class="sourceLineNo">2096</span>      int cur = ((int) amo % 256) * sign;<a name="line.2096"></a>
+<span class="sourceLineNo">2097</span>      amo = (amo &gt;&gt; 8);<a name="line.2097"></a>
+<span class="sourceLineNo">2098</span>      int val = (~value[value.length - i - 1] &amp; 0x0ff) + 1;<a name="line.2098"></a>
+<span class="sourceLineNo">2099</span>      int total = cur - val;<a name="line.2099"></a>
+<span class="sourceLineNo">2100</span>      if (total &gt;= 0) {<a name="line.2100"></a>
+<span class="sourceLineNo">2101</span>        amo += sign;<a name="line.2101"></a>
+<span class="sourceLineNo">2102</span>      } else if (total &lt; -256) {<a name="line.2102"></a>
+<span class="sourceLineNo">2103</span>        amo -= sign;<a name="line.2103"></a>
+<span class="sourceLineNo">2104</span>        total %= 256;<a name="line.2104"></a>
+<span class="sourceLineNo">2105</span>      }<a name="line.2105"></a>
+<span class="sourceLineNo">2106</span>      value[value.length - i - 1] = (byte) total;<a name="line.2106"></a>
+<span class="sourceLineNo">2107</span>      if (amo == 0) return value;<a name="line.2107"></a>
+<span class="sourceLineNo">2108</span>    }<a name="line.2108"></a>
+<span class="sourceLineNo">2109</span>    return value;<a name="line.2109"></a>
+<span class="sourceLineNo">2110</span>  }<a name="line.2110"></a>
+<span class="sourceLineNo">2111</span><a name="line.2111"></a>
+<span class="sourceLineNo">2112</span>  /**<a name="line.2112"></a>
+<span class="sourceLineNo">2113</span>   * Writes a string as a fixed-size field, padded with zeros.<a name="line.2113"></a>
+<span class="sourceLineNo">2114</span>   */<a name="line.2114"></a>
+<span class="sourceLineNo">2115</span>  public static void writeStringFixedSize(final DataOutput out, String s, int size)<a name="line.2115"></a>
+<span class="sourceLineNo">2116</span>    throws IOException {<a name="line.2116"></a>
+<span class="sourceLineNo">2117</span>    byte[] b = toBytes(s);<a name="line.2117"></a>
+<span class="sourceLineNo">2118</span>    if (b.length &gt; size) {<a name="line.2118"></a>
+<span class="sourceLineNo">2119</span>      throw new IOException("Trying to write " + b.length + " bytes (" + toStringBinary(b)<a name="line.2119"></a>
+<span class="sourceLineNo">2120</span>        + ") into a field of length " + size);<a name="line.2120"></a>
+<span class="sourceLineNo">2121</span>    }<a name="line.2121"></a>
+<span class="sourceLineNo">2122</span><a name="line.2122"></a>
+<span class="sourceLineNo">2123</span>    out.writeBytes(s);<a name="line.2123"></a>
+<span class="sourceLineNo">2124</span>    for (int i = 0; i &lt; size - s.length(); ++i)<a name="line.2124"></a>
+<span class="sourceLineNo">2125</span>      out.writeByte(0);<a name="line.2125"></a>
+<span class="sourceLineNo">2126</span>  }<a name="line.2126"></a>
+<span class="sourceLineNo">2127</span><a name="line.2127"></a>
+<span class="sourceLineNo">2128</span>  /**<a name="line.2128"></a>
+<span class="sourceLineNo">2129</span>   * Reads a fixed-size field and interprets it as a string padded with zeros.<a name="line.2129"></a>
+<span class="sourceLineNo">2130</span>   */<a name="line.2130"></a>
+<span class="sourceLineNo">2131</span>  public static String readStringFixedSize(final DataInput in, int size) throws IOException {<a name="line.2131"></a>
+<span class="sourceLineNo">2132</span>    byte[] b = new byte[size];<a name="line.2132"></a>
+<span class="sourceLineNo">2133</span>    in.readFully(b);<a name="line.2133"></a>
+<span class="sourceLineNo">2134</span>    int n = b.length;<a name="line.2134"></a>
+<span class="sourceLineNo">2135</span>    while (n &gt; 0 &amp;&amp; b[n - 1] == 0)<a name="line.2135"></a>
+<span class="sourceLineNo">2136</span>      --n;<a name="line.2136"></a>
+<span class="sourceLineNo">2137</span><a name="line.2137"></a>
+<span class="sourceLineNo">2138</span>    return toString(b, 0, n);<a name="line.2138"></a>
+<span class="sourceLineNo">2139</span>  }<a name="line.2139"></a>
+<span class="sourceLineNo">2140</span><a name="line.2140"></a>
+<span class="sourceLineNo">2141</span>  /**<a name="line.2141"></a>
+<span class="sourceLineNo">2142</span>   * Copy the byte array given in parameter and return an instance of a new byte array with the same<a name="line.2142"></a>
+<span class="sourceLineNo">2143</span>   * length and the same content.<a name="line.2143"></a>
+<span class="sourceLineNo">2144</span>   * @param bytes the byte array to duplicate<a name="line.2144"></a>
+<span class="sourceLineNo">2145</span>   * @return a copy of the given byte array<a name="line.2145"></a>
+<span class="sourceLineNo">2146</span>   */<a name="line.2146"></a>
+<span class="sourceLineNo">2147</span>  public static byte[] copy(byte[] bytes) {<a name="line.2147"></a>
+<span class="sourceLineNo">2148</span>    if (bytes == null) return null;<a name="line.2148"></a>
+<span class="sourceLineNo">2149</span>    byte[] result = new byte[bytes.length];<a name="line.2149"></a>
+<span class="sourceLineNo">2150</span>    System.arraycopy(bytes, 0, result, 0, bytes.length);<a name="line.2150"></a>
+<span class="sourceLineNo">2151</span>    return result;<a name="line.2151"></a>
+<span class="sourceLineNo">2152</span>  }<a name="line.2152"></a>
+<span class="sourceLineNo">2153</span><a name="line.2153"></a>
+<span class="sourceLineNo">2154</span>  /**<a name="line.2154"></a>
+<span class="sourceLineNo">2155</span>   * Copy the byte array given in parameter and return an instance of a new byte array with the same<a name="line.2155"></a>
+<span class="sourceLineNo">2156</span>   * length and the same content.<a name="line.2156"></a>
+<span class="sourceLineNo">2157</span>   * @param bytes the byte array to copy from<a name="line.2157"></a>
+<span class="sourceLineNo">2158</span>   * @return a copy of the given designated byte array<a name="line.2158"></a>
+<span class="sourceLineNo">2159</span>   */<a name="line.2159"></a>
+<span class="sourceLineNo">2160</span>  public static byte[] copy(byte[] bytes, final int offset, final int length) {<a name="line.2160"></a>
+<span class="sourceLineNo">2161</span>    if (bytes == null) return null;<a name="line.2161"></a>
+<span class="sourceLineNo">2162</span>    byte[] result = new byte[length];<a name="line.2162"></a>
+<span class="sourceLineNo">2163</span>    System.arraycopy(bytes, offset, result, 0, length);<a name="line.2163"></a>
+<span class="sourceLineNo">2164</span>    return result;<a name="line.2164"></a>
+<span class="sourceLineNo">2165</span>  }<a name="line.2165"></a>
+<span class="sourceLineNo">2166</span><a name="line.2166"></a>
+<span class="sourceLineNo">2167</span>  /**<a name="line.2167"></a>
+<span class="sourceLineNo">2168</span>   * Search sorted array "a" for byte "key". I can't remember if I wrote this or copied it from<a name="line.2168"></a>
+<span class="sourceLineNo">2169</span>   * somewhere. (mcorgan)<a name="line.2169"></a>
+<span class="sourceLineNo">2170</span>   * @param a         Array to search. Entries must be sorted and unique.<a name="line.2170"></a>
+<span class="sourceLineNo">2171</span>   * @param fromIndex First index inclusive of "a" to include in the search.<a name="line.2171"></a>
+<span class="sourceLineNo">2172</span>   * @param toIndex   Last index exclusive of "a" to include in the search.<a name="line.2172"></a>
+<span class="sourceLineNo">2173</span>   * @param key       The byte to search for.<a name="line.2173"></a>
+<span class="sourceLineNo">2174</span>   * @return The index of key if found. If not found, return -(index + 1), where negative indicates<a name="line.2174"></a>
+<span class="sourceLineNo">2175</span>   *         "not found" and the "index + 1" handles the "-0" case.<a name="line.2175"></a>
+<span class="sourceLineNo">2176</span>   */<a name="line.2176"></a>
+<span class="sourceLineNo">2177</span>  public static int unsignedBinarySearch(byte[] a, int fromIndex, int toIndex, byte key) {<a name="line.2177"></a>
+<span class="sourceLineNo">2178</span>    int unsignedKey = key &amp; 0xff;<a name="line.2178"></a>
+<span class="sourceLineNo">2179</span>    int low = fromIndex;<a name="line.2179"></a>
+<span class="sourceLineNo">2180</span>    int high = toIndex - 1;<a name="line.2180"></a>
+<span class="sourceLineNo">2181</span><a name="line.2181"></a>
+<span class="sourceLineNo">2182</span>    while (low &lt;= high) {<a name="line.2182"></a>
+<span class="sourceLineNo">2183</span>      int mid = low + ((high - low) &gt;&gt; 1);<a name="line.2183"></a>
+<span class="sourceLineNo">2184</span>      int midVal = a[mid] &amp; 0xff;<a name="line.2184"></a>
+<span class="sourceLineNo">2185</span><a name="line.2185"></a>
+<span class="sourceLineNo">2186</span>      if (midVal &lt; unsignedKey) {<a name="line.2186"></a>
+<span class="sourceLineNo">2187</span>        low = mid + 1;<a name="line.2187"></a>
+<span class="sourceLineNo">2188</span>      } else if (midVal &gt; unsignedKey) {<a name="line.2188"></a>
+<span class="sourceLineNo">2189</span>        high = mid - 1;<a name="line.2189"></a>
+<span class="sourceLineNo">2190</span>      } else {<a name="line.2190"></a>
+<span class="sourceLineNo">2191</span>        return mid; // key found<a name="line.2191"></a>
+<span class="sourceLineNo">2192</span>      }<a name="line.2192"></a>
+<span class="sourceLineNo">2193</span>    }<a name="line.2193"></a>
+<span class="sourceLineNo">2194</span>    return -(low + 1); // key not found.<a name="line.2194"></a>
+<span class="sourceLineNo">2195</span>  }<a name="line.2195"></a>
+<span class="sourceLineNo">2196</span><a name="line.2196"></a>
+<span class="sourceLineNo">2197</span>  /**<a name="line.2197"></a>
+<span class="sourceLineNo">2198</span>   * Treat the byte[] as an unsigned series of bytes, most significant bits first. Start by adding 1<a name="line.2198"></a>
+<span class="sourceLineNo">2199</span>   * to the rightmost bit/byte and carry over all overflows to the more significant bits/bytes.<a name="line.2199"></a>
+<span class="sourceLineNo">2200</span>   * @param input The byte[] to increment.<a name="line.2200"></a>
+<span class="sourceLineNo">2201</span>   * @return The incremented copy of "in". May be same length or 1 byte longer.<a name="line.2201"></a>
+<span class="sourceLineNo">2202</span>   */<a name="line.2202"></a>
+<span class="sourceLineNo">2203</span>  public static byte[] unsignedCopyAndIncrement(final byte[] input) {<a name="line.2203"></a>
+<span class="sourceLineNo">2204</span>    byte[] copy = copy(input);<a name="line.2204"></a>
+<span class="sourceLineNo">2205</span>    if (copy == null) {<a name="line.2205"></a>
+<span class="sourceLineNo">2206</span>      throw new IllegalArgumentException("cannot increment null array");<a name="line.2206"></a>
+<span class="sourceLineNo">2207</span>    }<a name="line.2207"></a>
+<span class="sourceLineNo">2208</span>    for (int i = copy.length - 1; i &gt;= 0; --i) {<a name="line.2208"></a>
+<span class="sourceLineNo">2209</span>      if (copy[i] == -1) {// -1 is all 1-bits, which is the unsigned maximum<a name="line.2209"></a>
+<span class="sourceLineNo">2210</span>        copy[i] = 0;<a name="line.2210"></a>
+<span class="sourceLineNo">2211</span>      } else {<a name="line.2211"></a>
+<span class="sourceLineNo">2212</span>        ++copy[i];<a name="line.2212"></a>
+<span class="sourceLineNo">2213</span>        return copy;<a name="line.2213"></a>
+<span class="sourceLineNo">2214</span>      }<a name="line.2214"></a>
+<span class="sourceLineNo">2215</span>    }<a name="line.2215"></a>
+<span class="sourceLineNo">2216</span>    // we maxed out the array<a name="line.2216"></a>
+<span class="sourceLineNo">2217</span>    byte[] out = new byte[copy.length + 1];<a name="line.2217"></a>
+<span class="sourceLineNo">2218</span>    out[0] = 1;<a name="line.2218"></a>
+<span class="sourceLineNo">2219</span>    System.arraycopy(copy, 0, out, 1, copy.length);<a name="line.2219"></a>
+<span class="sourceLineNo">2220</span>    return out;<a name="line.2220"></a>
+<span class="sourceLineNo">2221</span>  }<a name="line.2221"></a>
+<span class="sourceLineNo">2222</span><a name="line.2222"></a>
+<span class="sourceLineNo">2223</span>  public static boolean equals(List&lt;byte[]&gt; a, List&lt;byte[]&gt; b) {<a name="line.2223"></a>
+<span class="sourceLineNo">2224</span>    if (a == null) {<a name="line.2224"></a>
+<span class="sourceLineNo">2225</span>      if (b == null) {<a name="line.2225"></a>
+<span class="sourceLineNo">2226</span>        return true;<a name="line.2226"></a>
+<span class="sourceLineNo">2227</span>      }<a name="line.2227"></a>
+<span class="sourceLineNo">2228</span>      return false;<a name="line.2228"></a>
+<span class="sourceLineNo">2229</span>    }<a name="line.2229"></a>
+<span class="sourceLineNo">2230</span>    if (b == null) {<a name="line.2230"></a>
+<span class="sourceLineNo">2231</span>      return false;<a name="line.2231"></a>
+<span class="sourceLineNo">2232</span>    }<a name="line.2232"></a>
+<span class="sourceLineNo">2233</span>    if (a.size() != b.size()) {<a name="line.2233"></a>
+<span class="sourceLineNo">2234</span>      return false;<a name="line.2234"></a>
+<span class="sourceLineNo">2235</span>    }<a name="line.2235"></a>
+<span class="sourceLineNo">2236</span>    for (int i = 0; i &lt; a.size(); ++i) {<a name="line.2236"></a>
+<span class="sourceLineNo">2237</span>      if (!Bytes.equals(a.get(i), b.get(i))) {<a name="line.2237"></a>
+<span class="sourceLineNo">2238</span>        return false;<a name="line.2238"></a>
+<span class="sourceLineNo">2239</span>      }<a name="line.2239"></a>
+<span class="sourceLineNo">2240</span>    }<a name="line.2240"></a>
+<span class="sourceLineNo">2241</span>    return true;<a name="line.2241"></a>
+<span class="sourceLineNo">2242</span>  }<a name="line.2242"></a>
+<span class="sourceLineNo">2243</span><a name="line.2243"></a>
+<span class="sourceLineNo">2244</span>  public static boolean isSorted(Collection&lt;byte[]&gt; arrays) {<a name="line.2244"></a>
+<span class="sourceLineNo">2245</span>    if (!CollectionUtils.isEmpty(arrays)) {<a name="line.2245"></a>
+<span class="sourceLineNo">2246</span>      byte[] previous = new byte[0];<a name="line.2246"></a>
+<span class="sourceLineNo">2247</span>      for (byte[] array : arrays) {<a name="line.2247"></a>
+<span class="sourceLineNo">2248</span>        if (Bytes.compareTo(previous, array) &gt; 0) {<a name="line.2248"></a>
+<span class="sourceLineNo">2249</span>          return false;<a name="line.2249"></a>
+<span class="sourceLineNo">2250</span>        }<a name="line.2250"></a>
+<span class="sourceLineNo">2251</span>        previous = array;<a name="line.2251"></a>
+<span class="sourceLineNo">2252</span>      }<a name="line.2252"></a>
+<span class="sourceLineNo">2253</span>    }<a name="line.2253"></a>
+<span class="sourceLineNo">2254</span>    return true;<a name="line.2254"></a>
+<span class="sourceLineNo">2255</span>  }<a name="line.2255"></a>
+<span class="sourceLineNo">2256</span><a name="line.2256"></a>
+<span class="sourceLineNo">2257</span>  public static List&lt;byte[]&gt; getUtf8ByteArrays(List&lt;String&gt; strings) {<a name="line.2257"></a>
+<span class="sourceLineNo">2258</span>    if (CollectionUtils.isEmpty(strings)) {<a name="line.2258"></a>
+<span class="sourceLineNo">2259</span>      return Collections.emptyList();<a name="line.2259"></a>
+<span class="sourceLineNo">2260</span>    }<a name="line.2260"></a>
+<span class="sourceLineNo">2261</span>    List&lt;byte[]&gt; byteArrays = new ArrayList&lt;&gt;(strings.size());<a name="line.2261"></a>
+<span class="sourceLineNo">2262</span>    strings.forEach(s -&gt; byteArrays.add(Bytes.toBytes(s)));<a name="line.2262"></a>
+<span class="sourceLineNo">2263</span>    return byteArrays;<a name="line.2263"></a>
+<span class="sourceLineNo">2264</span>  }<a name="line.2264"></a>
+<span class="sourceLineNo">2265</span><a name="line.2265"></a>
+<span class="sourceLineNo">2266</span>  /**<a name="line.2266"></a>
+<span class="sourceLineNo">2267</span>   * Returns the index of the first appearance of the value {@code target} in {@code array}.<a name="line.2267"></a>
+<span class="sourceLineNo">2268</span>   * @param array  an array of {@code byte} values, possibly empty<a name="line.2268"></a>
+<span class="sourceLineNo">2269</span>   * @param target a primitive {@code byte} value<a name="line.2269"></a>
+<span class="sourceLineNo">2270</span>   * @return the least index {@code i} for which {@code array[i] == target}, or {@code -1} if no<a name="line.2270"></a>
+<span class="sourceLineNo">2271</span>   *         such index exists.<a name="line.2271"></a>
+<span class="sourceLineNo">2272</span>   */<a name="line.2272"></a>
+<span class="sourceLineNo">2273</span>  public static int indexOf(byte[] array, byte target) {<a name="line.2273"></a>
+<span class="sourceLineNo">2274</span>    for (int i = 0; i &lt; array.length; i++) {<a name="line.2274"></a>
+<span class="sourceLineNo">2275</span>      if (array[i] == target) {<a name="line.2275"></a>
+<span class="sourceLineNo">2276</span>        return i;<a name="line.2276"></a>
+<span class="sourceLineNo">2277</span>      }<a name="line.2277"></a>
+<span class="sourceLineNo">2278</span>    }<a name="line.2278"></a>
+<span class="sourceLineNo">2279</span>    return -1;<a name="line.2279"></a>
+<span class="sourceLineNo">2280</span>  }<a name="line.2280"></a>
+<span class="sourceLineNo">2281</span><a name="line.2281"></a>
+<span class="sourceLineNo">2282</span>  /**<a name="line.2282"></a>
+<span class="sourceLineNo">2283</span>   * Returns the start position of the first occurrence of the specified {@code<a name="line.2283"></a>
+<span class="sourceLineNo">2284</span>   * target} within {@code array}, or {@code -1} if there is no such occurrence.<a name="line.2284"></a>
+<span class="sourceLineNo">2285</span>   * &lt;p&gt;<a name="line.2285"></a>
+<span class="sourceLineNo">2286</span>   * More formally, returns the lowest index {@code i} such that {@code<a name="line.2286"></a>
+<span class="sourceLineNo">2287</span>   * java.util.Arrays.copyOfRange(array, i, i + target.length)} contains exactly the same elements<a name="line.2287"></a>
+<span class="sourceLineNo">2288</span>   * as {@code target}.<a name="line.2288"></a>
+<span class="sourceLineNo">2289</span>   * @param array  the array to search for the sequence {@code target}<a name="line.2289"></a>
+<span class="sourceLineNo">2290</span>   * @param target the array to search for as a sub-sequence of {@code array}<a name="line.2290"></a>
+<span class="sourceLineNo">2291</span>   */<a name="line.2291"></a>
+<span class="sourceLineNo">2292</span>  public static int indexOf(byte[] array, byte[] target) {<a name="line.2292"></a>
+<span class="sourceLineNo">2293</span>    checkNotNull(array, "array");<a name="line.2293"></a>
... 154409 lines suppressed ...