code: public IPv4AddressSection getEmbeddedIPv4AddressSection() {
  		if(embeddedIPv4Section == null) {
  			synchronized(this) {
  				if(embeddedIPv4Section == null) {
  					int mixedCount = getSegmentCount() - Math.max(IPv6Address.MIXED_ORIGINAL_SEGMENT_COUNT - addressSegmentIndex, 0);
  					int lastIndex = getSegmentCount() - 1;
  					IPv4AddressCreator creator = getIPv4Network().getAddressCreator();
  					IPv4AddressSegment[] mixed;
  					if(mixedCount == 0) {
  						mixed = creator.createSegmentArray(0);
  					} else {
  						if(mixedCount == 1) {
  							mixed = creator.createSegmentArray(IPv6Address.BYTES_PER_SEGMENT);
  							IPv6AddressSegment last = getSegment(lastIndex);
  							last.getSplitSegments(mixed, 0, creator);
  						} else {
  							mixed = creator.createSegmentArray(IPv6Address.BYTES_PER_SEGMENT << 1);
  							IPv6AddressSegment low = getSegment(lastIndex);
  							IPv6AddressSegment high = getSegment(lastIndex - 1);
  							high.getSplitSegments(mixed, 0, creator);
  							low.getSplitSegments(mixed, IPv6Address.BYTES_PER_SEGMENT, creator);
  						}
  						
  					}
  					embeddedIPv4Section = createEmbeddedSection(creator, mixed, this);
  				}
  			}
  		}
  		return embeddedIPv4Section;
  	}
docs: Gets the IPv4 section corresponding to the lowest (least-significant) 4 bytes in the original address,
  which will correspond to between 0 and 4 bytes in this address.  Many IPv4 to IPv6 mapping schemes (but not all) use these 4 bytes for a mapped IPv4 address.
  
  @see #getEmbeddedIPv4AddressSection(int, int)
  @see #getMixedAddressSection()
  @return the embedded IPv4 section or null