Êþº¾EÓ  java/lang/Object()V   :net/minecraft/world/level/block/state/pattern/BlockPatternpattern![[[Ljava/util/function/Predicate;  depthI  height  width  createLevelCacheP(Lnet/minecraft/world/level/LevelReader;Z)Lcom/google/common/cache/LoadingCache;  matchesÏ(Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/Direction;Lnet/minecraft/core/Direction;Lcom/google/common/cache/LoadingCache;)Lnet/minecraft/world/level/block/state/pattern/BlockPattern$BlockPatternMatch;  !"translateAndRotate{(Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/Direction;Lnet/minecraft/core/Direction;III)Lnet/minecraft/core/BlockPos; $%& '($com/google/common/cache/LoadingCache getUnchecked&(Ljava/lang/Object;)Ljava/lang/Object;*:net/minecraft/world/level/block/state/pattern/BlockInWorld ,-. /0java/util/function/Predicatetest(Ljava/lang/Object;)Z2Lnet/minecraft/world/level/block/state/pattern/BlockPattern$BlockPatternMatch 14 5…(Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/Direction;Lnet/minecraft/core/Direction;Lcom/google/common/cache/LoadingCache;III)V 789 :;java/lang/Mathmax(II)I =>? @Anet/minecraft/core/BlockPosoffset"(III)Lnet/minecraft/core/BlockPos; =C DE betweenClosedP(Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/BlockPos;)Ljava/lang/Iterable; GHI JKjava/lang/Iterableiterator()Ljava/util/Iterator; MNO PQjava/util/IteratorhasNext()Z MS TUnext()Ljava/lang/Object; WXY Z[net/minecraft/core/Directionvalues!()[Lnet/minecraft/core/Direction; W] ^_ getOpposite ()Lnet/minecraft/core/Direction; abc de$com/google/common/cache/CacheBuilder newBuilder(()Lcom/google/common/cache/CacheBuilder;gKnet/minecraft/world/level/block/state/pattern/BlockPattern$BlockCacheLoader fi j+(Lnet/minecraft/world/level/LevelReader;Z)V al mnbuildM(Lcom/google/common/cache/CacheLoader;)Lcom/google/common/cache/LoadingCache;p"java/lang/IllegalArgumentExceptionr!Invalid forwards & up combination ot u(Ljava/lang/String;)Vwnet/minecraft/core/Vec3i Wy z{getStepX()I W} ~{getStepY W€ �{getStepZ vƒ „(III)V v† ‡ˆcross6(Lnet/minecraft/core/Vec3i;)Lnet/minecraft/core/Vec3i; vŠ ‹{getX v� Ž{getY v� ‘{getZ Signature_[[[Ljava/util/function/Predicate;$([[[Ljava/util/function/Predicate;)VCodeLineNumberTableLocalVariableTablethis;)VgetDepth getHeightgetWidth getPattern#()[[[Ljava/util/function/Predicate;a()[[[Ljava/util/function/Predicate;RuntimeInvisibleAnnotations1Lcom/google/common/annotations/VisibleForTesting;Ð(Lnet/minecraft/world/level/LevelReader;Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/Direction;Lnet/minecraft/core/Direction;)Lnet/minecraft/world/level/block/state/pattern/BlockPattern$BlockPatternMatch;level'Lnet/minecraft/world/level/LevelReader;originLnet/minecraft/core/BlockPos;forwardsLnet/minecraft/core/Direction;upcache&Lcom/google/common/cache/LoadingCache;�Lcom/google/common/cache/LoadingCache;RuntimeVisibleTypeAnnotations#Lorg/jspecify/annotations/Nullable;zyx*(Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/Direction;Lnet/minecraft/core/Direction;Lcom/google/common/cache/LoadingCache;)Lnet/minecraft/world/level/block/state/pattern/BlockPattern$BlockPatternMatch;find”(Lnet/minecraft/world/level/LevelReader;Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/block/state/pattern/BlockPattern$BlockPatternMatch;matchNLnet/minecraft/world/level/block/state/pattern/BlockPattern$BlockPatternMatch;testPosdist¿%net/minecraft/world/level/LevelReaderÁ[Lnet/minecraft/core/Direction; loadChunksZ«(Lnet/minecraft/world/level/LevelReader;Z)Lcom/google/common/cache/LoadingCache;forwardsDirection upDirectionrightdownforwardsVectorLnet/minecraft/core/Vec3i;upVector rightVector SourceFileBlockPattern.java NestMembers InnerClassesBlockPatternMatchBlockCacheLoader! ’“ ”•ÊE*·*+µ*+¾µ *´ ž'*+2¾µ*´ž*+22¾µ§*µ§ *µ*µ±–.  %2!:$?%D'—E˜™E š E “›ÿ2œ � ’žŸ{•/*´ ¬–*— ˜™ {•/*´¬–.— ˜™¡{•/*´¬–2— ˜™¢£•/*´°–7— ˜™’¤¥¦§•„+¸:*,-¶°– <=—>˜™¨©ª«¬­®­ ¯°š  ¯±�¨ª¬®¥¦²³•< |6*´¢Z6*´¢H6*´ ¢6*´222+,-¸¹#À)¹+š°„§ÿÇ„§ÿµ„§ÿ£»1Y+,-*´*´*´ ·3°–& A BC$DOEQCWB]AcK—R<´Nµ`¶|˜™|ª«|¬­|®­|¯°š |¯±›üü ü 5úúú�ª¬®¯’·²³¸¹•»+¸N*´*´¸6*´ ¸66,,ddd¶<¸B¹F:¹L™}¹RÀ=:¸V:¾66  ¢Z 2: ¸V:  ¾6 6   ¢9  2: ¥% ¶\¦§* -¶:ư„ §ÿÆ„ §ÿ¥§ÿ°–:OQSKTfU�V’W•Z¢[§\ªU°T¶`¹b—\ ¢º»�)®­fJ¬­ Kk¼«»˜™»¨©»ª«µ¯°¡½š µ¯±›”þ5$Mÿ" ¾=$M=Àÿ¾=$M=ÀWÀü!Wúÿ ¾=$M=Àÿ¾=$Mú� ¨ª²³ •D¸`»fY*·h¶k°–f—¨©ÂÃ� ¨Â’Ä !"•E �+,¥ +,¶\¦ »oYq·s¿»vY+¶x+¶|+¶·‚:»vY,¶x,¶|,¶·‚:¶…:*¶‰th¶‰h`¶‰h`¶Œth¶Œh`¶Œh`¶�th¶�h`¶�h`¶<°–* j kn,oApJrMsgt�u™r—\ �ª«�Å­�Æ­�Ç�È�¬,qÉÊA\ËÊJSÌÊ› �ªÅÆÇȬÍÎÏ1fÐ1Ñ fÒ