T & S biases#

%load_ext autoreload
%autoreload 2
%%capture 
# comment above line to see details about the run(s) displayed
from misc import *
import nc_time_axis
%matplotlib inline

Drifts#

# these are the regions for the drift plots
reg_mom = ['Global', 'PersianGulf', 'RedSea', 'BlackSea', 'MedSea', 'BalticSea',
           'HudsonBay', 'Arctic', 'PacificOcean', 'AtlanticOcean', 'IndianOcean',
           'SouthernOcean', 'LabSea', 'BaffinBay', 'EGreenlandIceland',
           'GulfOfMexico', 'Maritime', 'SouthernOcean60S']

Potential temperature#

%matplotlib inline
nr=1
nc=1
fs=(9,5.5)

matplotlib.rcParams.update({'font.size': 17})
vmax=1.5; vmin=-vmax
for m in reg_mom:
  fig, ax = plt.subplots(nrows=nr, ncols=nc, figsize=fs, sharex=False, sharey=True)

  plt.suptitle(str(m)+', Potential Temperature bias [C]', fontsize=14)
  for path, case, i in zip(ocn_path, casename, range(len(casename))):
    ds_mom = xr.open_dataset(path+case+'_thetao_drift.nc').sel(time=slice('0001-01-01', end_date))
    
    splitscale =  [0., -500., -4000]
    dummy_mom = np.ma.masked_invalid(ds_mom.sel(region=m).thetao_drift.values)
    ztplot(dummy_mom, ds_mom.time.values, ds_mom.z_l.values*-1, ignore=np.nan, splitscale=splitscale, 
           contour=True, axis=ax , title=label[i], extend='both', colormap='dunnePM', 
           autocenter=True, tunits='Year', show=False, clim=(vmin, vmax)) 
    plt.subplots_adjust(top = 0.8)
    plt.tight_layout()
_images/85d74ade7967a27f60ec8f5798bb5f0c5cf65ad99df297d2bce95c8fce0f91b0.png _images/511e3c111a05e1d5398b1c2b4946448e5634c7ea454bfa4a85428e0a93efee5d.png _images/3a3d81b22c6d9256d1e43dd1e86c9057b7dc4efd9f9757fae0e9d44dc4540ffe.png _images/17dc7613ba312916443ec265ca78ba550e16c12bcd8120548f058b09a1cb195b.png _images/8a57e2456014eb3975cbd931c1bd12958313f0dd55117d4d4ae690dfdee5845b.png _images/4ef00cc76ef9dc04c1607bd1e6dd3977e5621df439827e7093b28fe2ff645a37.png _images/cd0586274d5f1cd433b32a5c5c7db290fb87828d0adbf598c25e4ef9d551c859.png _images/fe69631188759859710d76d3de8003636acb60322028505821e42a83b6a5da59.png _images/bba05a1df4a4f24db93e20a20ea613d7f2557964838138c9dfa0822c81b8c6fc.png _images/3f83c6b6020313e3b5fcd5a3a7f9b35d8a818f48605a40b16e794b9c1a28ba00.png _images/b43ece8ad2cf57c739a9e8e04040def1e3a99fc647123644089bf53e04abba22.png _images/6c3977c75e11c63b55546e1ec455b2ad328aa6c49401b87afd70bf7f0ddc1de5.png _images/9ad9f4a5318785f9af4ca430cb238e5fab671ef7f25412306ff90d2e10a4ee24.png _images/24431d2fca2b7d69696562290b77a0059937433df9c008581e0998d873015d73.png _images/ab3e8c62923495fb2c28c44cc1bd988a1fc2ad6b2e702a591be19eda01308f01.png _images/b11688b3ab503796ae0f4ebc7a04ab2f85f361b2d01b79908469cbd833d2ad24.png _images/f95507af25335f0dda7f6031b06e5a7bfa67d2ef1becb3fefda2d14dd479d451.png _images/6fb6a21ac9da3587cc2ad1cb948b59add5ec043d71abe6e219b968548173fbf1.png

Salinity#

matplotlib.rcParams.update({'font.size': 17})
vmax=0.2; vmin=-vmax
for m in reg_mom:
  fig, ax = plt.subplots(nrows=nr, ncols=nc, figsize=fs, sharex=False, sharey=True)
  plt.suptitle(str(m)+', Salinity bias [psu]', fontsize=14)
  for path, case, i in zip(ocn_path, casename, range(len(casename))):
    ds_mom = xr.open_dataset(path+case+'_so_drift.nc').sel(time=slice('0001-01-01', end_date))
    
    splitscale =  [0., -500., -4000]
    dummy_mom = np.ma.masked_invalid(ds_mom.sel(region=m).so_drift.values)
    ztplot(dummy_mom, ds_mom.time.values, ds_mom.z_l.values*-1, ignore=np.nan, splitscale=splitscale, 
           contour=True, axis=ax , title=label[i], extend='both', colormap='dunnePM', 
           autocenter=True, tunits='Year', show=False, clim=(vmin, vmax)) 
    plt.subplots_adjust(top = 0.8)
    plt.tight_layout()
_images/b7433877287609185efbf17a021d04b8ae866ca6ecba47ae6d9e50a1458b42c8.png _images/89a8f955b2d8238d221ba882977b8bbd5b92765d55c7d2a1dabdbb02f36db452.png _images/dc97d69ddb04762e90410e3a857230fe06bd2a89ee0a1c59debff6297bc1ab78.png _images/d661744d088c29a226d7f13c3ebfdcb126380d464c8bf0cb5d499d76dc24f42d.png _images/e90ebaebb089b0452158aeac4bee961d3b23618243a1efa76acc7ebc37a292a3.png _images/eb02eeba02d252c5b09825de5066cad1cc796fc6a9960fdaacb98502edd8884a.png _images/e1368c121bc0ec0b1aaec0582782290e652651abb67fa5a862c6331183bd357f.png _images/340df42a76cd6f002e30756762164866d2f4a063f6977051aabc4f04ed23d73b.png _images/b1183336e733c551c31fd2c7beb04931f3959f5b4c7b6484711482a407947375.png _images/45cb0f63a6707ded5c7858bd6720930efb69b14d7ef42aabd5cb042f75ccf03d.png _images/1dba61434fe601f06eb8f28f8872a02acfb8acedd9ecabb18d472bfbd07cec66.png _images/9040d966696311fa60c03e1355b96703a3dfb44df1cbbe74065557d8ce3c1024.png _images/5e59dbdc92d19d9fe6f8e9f605a821a189361110b3fe1675ef1551dacc0fb4f7.png _images/81094a1e09f60480b543fd20f0a32e83a39e261808e73b93d96536714702f54b.png _images/7b37dbdb09d4a19b93438395740ee3dfb1b6be6f7fff09902adb438670136967.png _images/25633ef52b36d0e41ce657ce4e080f0b9ca74aa60a214a378da483705997b1dd.png _images/6c458fab4a813ffc3ae6462e7601d357d53ff30cf870856909ff0745b20c1081.png _images/f38b827dabb1de0933996216ae2eb19d826d66484533a69268480c877d74ed4c.png

RMSE#

Potential Temperature#

reg_mom = ['Global','SouthernOcean','PacificOcean','IndianOcean','AtlanticOcean','Arctic','LabSea']
matplotlib.rcParams.update({'font.size': 17})
vmax=3; vmin=0
for m in reg_mom:
  fig, ax = plt.subplots(nrows=nr, ncols=nc, figsize=fs, sharex=False, sharey=True)

  plt.suptitle(str(m)+', Potential Temperature [C] RMS (model - obs)', fontsize=14)
  for path, case, i in zip(ocn_path, casename, range(len(casename))):
    ds_mom = xr.open_dataset(path+case+'_thetao_rmse.nc').sel(time=slice('0001-01-01', end_date))
    
    splitscale =  [0., -500., -4000]
    dummy_mom = np.ma.masked_invalid(ds_mom.sel(region=m).thetao_rms.values)
    ztplot(dummy_mom, ds_mom.time.values, ds_mom.z_l.values*-1, ignore=np.nan, splitscale=splitscale, 
           contour=True, axis=ax , title=label[i], extend='both', colormap='hot_r', 
           autocenter=True, tunits='Year', show=False, clim=(vmin, vmax)) 
    plt.subplots_adjust(top = 0.8)
    plt.tight_layout()
_images/fa58440a7eaa629de87040ea439f8f9d8dd96787cec4e704bcad9d702a3fbb1b.png _images/9cd63f712770b5ad6eb87e42f2c5d15a825a9de3ba89e9ed0f1a28c0ecd3ce94.png _images/bd677d49f725e7661d9441d519222b8552d1f602222dabdacd8241026c9ddbdd.png _images/0b20877ea0eb9795bbd0da4f124b308eb52594536d25c5bf3fb73096f5c35024.png _images/9df95e5b19f76addd10d05ea71b8de63a6502ead73f66da4a7b5085d619820b6.png _images/5e98895920d9fe24b3f934734e9e90d7c1114a8ddc08778608cef92970a908d6.png _images/e8e42cfe765f96f276ef0cf2f10ab6f72991fdf8ee300501822945334b090d06.png

Salinity#

reg_mom = ['Global','SouthernOcean','PacificOcean','IndianOcean','AtlanticOcean','Arctic','LabSea']

vmax=0.5; vmin=0
for m in reg_mom:
  fig, ax = plt.subplots(nrows=nr, ncols=nc, figsize=fs, sharex=False, sharey=True)
  plt.suptitle(str(m)+', Salinity [psu] RMS (model - obs)', fontsize=14)
  for path, case, i in zip(ocn_path, casename, range(len(casename))):
    ds_mom = xr.open_dataset(path+case+'_so_rmse.nc').sel(time=slice('0001-01-01', end_date))
    
    splitscale =  [0., -500., -4000]
    dummy_mom = np.ma.masked_invalid(ds_mom.sel(region=m).so_rms.values)
    ztplot(dummy_mom, ds_mom.time.values, ds_mom.z_l.values*-1, ignore=np.nan, splitscale=splitscale, 
           contour=True, axis=ax , title=label[i], extend='both', colormap='hot_r', 
           autocenter=True, tunits='Year', show=False, clim=(vmin, vmax)) 
    plt.subplots_adjust(top = 0.8)
    plt.tight_layout()
_images/0f96774871ee643bbec6ef4d58f489f8905b8988233e6f6218c98ec8eab4b8f7.png _images/260f3e80d74c885bdda6635baa9c2c699abdad7d68276247f29f3380e32903ce.png _images/d64e8233c649941828c07a6bfce8472b743f924561472b644b9022f67f1bbf5d.png _images/32d14f8a852b407491778ef0cdbbf9013a66d29a1b33581cdded29cb7230505b.png _images/1168a743a6107f93e3c0072f1227ca0b65354baa9aa627a176a8d184531fdbfd.png _images/2f02b4d7a3456ddef3a62d82bb3733fbb8fd42dcc3b7ad55d5fdabb06139ee02.png _images/9a4654e621ad94e0550d772abffc41036c5799b8cbaac0a28cfee12c05e22255.png

Biases at selected vertical levels#

Potential Temperature#

# change k indice to see bias at other depths
levels=[0,1,2,5,10,15,18,20,25,30,32]
tlim=[5,7.5,7.5,5,5,5,3,2,1,1,1]

for k,t in zip(levels,tlim):
  for path, case, i in zip(ocn_path, casename, range(len(casename))):
    ds_mom_t = xr.open_dataset(path+case+'_thetao_time_mean.nc')
    if 'area_t' in dir(grd[i]):
      area = grd[i].area_t
    else:
      area = grd[i].areacello
    
    fig, ax = plt.subplots(nrows=1, ncols=1, figsize=(12,6.5))
    temp_mom = np.ma.masked_invalid(ds_mom_t.thetao_bias[k,:].values)
  
    plt.suptitle('Temperature bias [C] at depth = {} m (level = {})'.format(ds_mom_t.z_l[k].values, k))
    xyplot(temp_mom, grd[i].geolon, grd[i].geolat, area, title=str(label[i]+' - obs'), axis=ax, 
         clim=(-t,t), nbins=100, colormap=plt.cm.bwr, centerlabels=True)
    plt.subplots_adjust(top = 0.8)
_images/026d92ec1d0680ea9d7be5483a1dddf10fa3077646f40921a0595e042d19dd5b.png _images/741dc922a475ff402f5dbacffe61d5d4dc9a5c9c678f478fc1c8710ef619bcc7.png _images/8ea65211a364953b637b8eb7e3a82fbc9908262d914f7ccc669868c972476640.png _images/fe1196d742b3a1b656a85a1ca80be85740882f45f05eaf50014a18e0acfcb034.png _images/0ca820efe5c29da53c360cb204c71178221455a803b096ad7260a6df5f866341.png _images/6b9ac8819503380a190d3b41a4a392ba7acaad77b8db80c5be4308625f66e92f.png _images/d1eacee122c80de98ebf2d74af858b90780a5515404001418a5c2583290d390b.png _images/ce89d4c39b142691c489b20f3467139bf5829639476f7ad41d2ce48c62ce7b46.png _images/7f225818e12c1a3fbc2fe733c7a6e624c7253da660d4eb9d7e9bb7992f683724.png _images/d193aefffe07214d846b6ba6d59dee4e6419dd62e0d954823d939d1b93e0daeb.png _images/8a39094f4548602af12be9311a020e051fb37d474a622f605beae1e83a5e42de.png

Salinity#

# change k indice to see bias at other depths
#levels=[0,5,10,15,20,25]
slim=[5,3,2,2,1.5,1,1,0.5,0.1,0.1,0.1]

for k,s in zip(levels,slim):
  for path, case, i in zip(ocn_path, casename, range(len(casename))):
    if 'area_t' in dir(grd[i]):
      area = grd[i].area_t
    else:
      area = grd[i].areacello
    
    ds_mom_s = xr.open_dataset(path+case+'_so_time_mean.nc')
    fig, ax = plt.subplots(nrows=1, ncols=1, figsize=(12,6.5))
    salt_mom = np.ma.masked_invalid(ds_mom_s.so_bias[k,:].values)
    
    plt.suptitle('Salinity bias [psu] at depth = {} m (level = {})'.format(ds_mom_s.z_l[k].values, k))
    xyplot(salt_mom, grd[i].geolon, grd[i].geolat, area, title=str(label[i]+' - obs'), axis=ax, 
         clim=(-s,s), nbins=50, colormap=plt.cm.bwr, centerlabels=True)
    plt.subplots_adjust(top = 0.8)
_images/bae0a9d8b3fc2f7493a3db5a5a23cfde6b96ebbf8b1eeb68b7e995fed1c45aa7.png _images/34da1ee100b85b1b8780efea92811703f145154184b019275a1173d471ca5373.png _images/0723774686769131265d03a7d86e7951d859df79a90b690448819c0fcca39364.png _images/fb66c82468272bb08888349696fcd222e196a290b4f5cc4e233875d98ecec53a.png _images/81988fcd6ef67c9473879033bcf19706c542018831e25ff1ae2cb39e7586d45a.png _images/9cd0eaa75b35fa139e9f2fa52b76163a46d69b115cb14aee526d256ac6773f80.png _images/09a290bd19c671558e6f7f334ac5eb6ff7f2c02169e6556b445b0e7b10857265.png _images/d0ad6de6378a37b564beffa662176db4f197a5f452cec604fbc4377ccaf0e6ef.png _images/3a0bc6cb49a9592c196e86ef75ac379447588ba0fd65e3c3d5fe149d20d0ad74.png _images/899f55761ada105d1cd875bd3e62c391d4f449ab5e8aa017371cb208dd56a4c0.png _images/1764d2d90cbef90109c7c27c0e5262f93d39ba843bc91e3c75ab00c193555f18.png

Zonal biases#

reg_mom = ['Global', 'PersianGulf', 'RedSea', 'BlackSea', 'MedSea', 'BalticSea',
           'HudsonBay', 'Arctic', 'PacificOcean', 'AtlanticOcean', 'IndianOcean',
           'SouthernOcean', 'LabSea', 'BaffinBay', 'EGreenlandIceland',
           'GulfOfMexico', 'Maritime', 'SouthernOcean60S']

Potential temperature#

reg = "AtlanticOcean"
var = 'thetao_bias'
units = r'$^o$C'
regions = ['Global','MedSea','Arctic','PacificOcean',
           'AtlanticOcean','IndianOcean','SouthernOcean',
          'LabSea']
ylim_min = [-90, 30, 62, -50, -50, -50, -90, 50]
ylim_max = [ 90, 47, 90,  65,  72,  30, -35, 68 ]

cmap = plt.get_cmap('bwr')  
cmap.set_bad(color='black')  
matplotlib.rcParams.update({'font.size': 16})

for reg, j in zip(regions, range(len(regions))):
  da  = []
  for path, case, i in zip(ocn_path, casename, range(len(casename))):
    ds_mom_t = xr.open_dataset(path+case+'_thetao_time_mean.nc')
    atl = basin_code[i].sel(region=reg)
    # Set zero values to NaN
    atl = atl.where(atl != 0, np.nan)
    da.append((ds_mom_t[var] * atl).weighted(grd_xr[i].areacello.fillna(0)).mean('xh').expand_dims(case=[label[i]]).sel(yh=slice(ylim_min[j], 
                                                                                                                                 ylim_max[j])))

  combined_da = xr.concat(da, dim="case")
  col = None
  if len(combined_da) > 1:
      col = "case"
  g = combined_da.plot(x="yh", y="z_l", col=col, 
                 yincrease=False, col_wrap=2,
                figsize=(12,4), cmap=cmap, robust=True,
                cbar_kwargs={"label": reg + ', ' + var + ' ({})'.format(units)})
_images/e3a3cdac44bada82b84394aafdd5831c6a406550332aab02601ee0c236b3bb59.png _images/0d8f20b7d8a1f4041e03db00afd568df369a261011d885b0e702730891cd7ad3.png _images/8b98b69b06eded3f6e6097832f2c583e02850eb32e42ec1c55aa75f0e921df87.png _images/048b4c4be035138fcbb5f52f6e654777b3cde2642f91f59b6c8b936b4aa868e6.png _images/f062ed25f904cf7949d9120225b6c27423c7e57fd3da3d63e1bc771b419d7eb5.png _images/875f556b6022537cbb0435cbf6aa12304af4ae411668e93a28cfbbc0b3eedb59.png _images/931f983c269087b50284fc58871264b39e1a7c96572ad951756b9ec6ee87dc18.png _images/451adb5bbc14b4e9993c1a071c13219157d067c2eca531996c88586c91cb8e49.png

Salinity#

reg = "AtlanticOcean"
var = 'so_bias'
units = 'psu'
regions = ['Global','MedSea','Arctic','PacificOcean',
           'AtlanticOcean','IndianOcean','SouthernOcean',
          'LabSea']
cmap = plt.get_cmap('bwr')  
cmap.set_bad(color='black')  
matplotlib.rcParams.update({'font.size': 16})

for reg, j in zip(regions, range(len(regions))):
  #print(reg)
  da  = []
  for path, case, i in zip(ocn_path, casename, range(len(casename))):
    ds_mom_t = xr.open_dataset(path+case+'_so_time_mean.nc')
    atl = basin_code[i].sel(region=reg)
    # Set zero values to NaN
    atl = atl.where(atl != 0, np.nan)
    da.append((ds_mom_t[var] * atl).weighted(grd_xr[i].areacello.fillna(0)).mean('xh').expand_dims(case=[label[i]]).sel(yh=slice(ylim_min[j], ylim_max[j])))

  combined_da = xr.concat(da, dim="case")
  col = None
  if len(combined_da) > 1:
      col = "case"
  g = combined_da.plot(x="yh", y="z_l", col=col, 
                 yincrease=False, col_wrap=2,
                figsize=(12,4), cmap=cmap, robust=True,
                cbar_kwargs={"label": reg + ', ' + var + ' ({})'.format(units)})
_images/09657dc5f04fd9a441f29d6f6c68e893cfc53068df3a6c03cfd3be6f0c5fa290.png _images/480ba12ad43b1dd31f1a47ec59924ebf8207162516d18d4849590d51e0e88df5.png _images/4ab7f54ed49ff4bdeecd4c2979b2fafa8ed740795ddc1cb6e22d65de20947a34.png _images/57fb1f2ea2a15bbaead2e645a739224320b4cbba379dfd4ea8155ea149f2385c.png _images/ee3f2f28c26b6f21f249c95376a3a48ac2bf9da00de2ec66692089b69c86334b.png _images/d954db8934756b09298b60d122fb282cb7feeec6b64a6f0192b4cb19b377835d.png _images/2b9e376b0d5b66750ef10ce43a5d97a1307233e419f332b44bf03cad18696a42.png _images/edb0a394b36770a4c6c1c58a64e64f97715a1357bb31359d5e1f1578fbf09218.png

Meridional biases#

Potential temperature#

reg = "AtlanticOcean"
var = 'thetao_bias'
units = r'$^o$C'
regions = ['Global','MedSea','Arctic','PacificOcean',
           'AtlanticOcean','IndianOcean','SouthernOcean',
          'LabSea']
xlim_min = [-287, -10, -240, -255, -110, -287, -287, -62]
xlim_max = [ 73,   40,   40,  -68,  25,  73, 73, -42 ]
cmap = plt.get_cmap('bwr')  
cmap.set_bad(color='black')  
matplotlib.rcParams.update({'font.size': 16})

for reg, j in zip(regions, range(len(regions))):
  #print(reg)
  da  = []
  for path, case, i in zip(ocn_path, casename, range(len(casename))):
    ds_mom_t = xr.open_dataset(path+case+'_thetao_time_mean.nc')
    atl = basin_code[i].sel(region=reg)
    # Set zero values to NaN
    atl = atl.where(atl != 0, np.nan)
    da.append((ds_mom_t[var] * \
      atl).weighted(grd_xr[i].areacello.fillna(0)).mean('yh').expand_dims(case=[label[i]]).sel(xh=slice(xlim_min[j], 
                                                                                                xlim_max[j])))

  combined_da = xr.concat(da, dim="case")
  col = None
  if len(combined_da) > 1:
      col = "case"
  g = combined_da.plot(x="xh", y="z_l", col=col, 
                 yincrease=False, col_wrap=2,
                figsize=(12,4), cmap=cmap, robust=True,
                cbar_kwargs={"label": reg + ', ' + var + ' ({})'.format(units)})
_images/89d882e6fca4f16f37e7e200ebd4a886ab67fd03a2e3ab94e127d93325cb8b03.png _images/18a53371a40fd3dee306bd796432445ed98caeaf192d98ba3834df8aaaa84c05.png _images/0cdfe30f4abbd0ea68b9213c1ca2554291d899492404c09630ab52dd4a719f41.png _images/e7d12d04f8cefd6855a01a98d4e9ee9bac964cc72f36498b595928b6b0b8d838.png _images/3918203ee967f1308dbf0f3679d5ccd32ecbc4d53ecf1ea042cc3850924400ac.png _images/47f14278b4ac57d84c92997022f30232aa6b49c158603d3c8271f457d177a74c.png _images/2f8857e53dc2a5b1d078564868f3e4b8446eb3fcedb0a086eef0324637e34a7e.png _images/ebea32617b86a8b566d50487107813c8bb3d9d5cb6149f773db2f08e1273d552.png

Salinity#

reg = "AtlanticOcean"
var = 'so_bias'
units = 'psu'
regions = ['Global','MedSea','Arctic','PacificOcean',
           'AtlanticOcean','IndianOcean','SouthernOcean',
          'LabSea']
cmap = plt.get_cmap('bwr')  
cmap.set_bad(color='black')  
matplotlib.rcParams.update({'font.size': 16})

for reg, j in zip(regions, range(len(regions))):
  #print(reg)
  da  = []
  for path, case, i in zip(ocn_path, casename, range(len(casename))):
    ds_mom_t = xr.open_dataset(path+case+'_so_time_mean.nc')
    atl = basin_code[i].sel(region=reg)
    # Set zero values to NaN
    atl = atl.where(atl != 0, np.nan)
    da.append((ds_mom_t[var] * \
      atl).weighted(grd_xr[i].areacello.fillna(0)).mean('yh').expand_dims(case=[label[i]]).sel(xh=slice(xlim_min[j], 
                                                                                               xlim_max[j])))

  combined_da = xr.concat(da, dim="case")
  col = None
  if len(combined_da) > 1:
      col = "case"
  g = combined_da.plot(x="xh", y="z_l", col=col, 
                 yincrease=False, col_wrap=2,
                figsize=(12,4), cmap=cmap, robust=True,
                cbar_kwargs={"label": reg + ', ' + var + ' ({})'.format(units)})
_images/31fa1abe5c5426a7f4cc94eb4bc4cee7bc99aced239568aa23f5e72719f44a29.png _images/b71325e867506a90f147cdb6cbae206176c47ab78dfa8bda11d6bd12a0c3640e.png _images/3a51a6a918bed8fb8e195c4ec8ac4d416a09cca2612888b0b93afcd7231adc81.png _images/c04c02ed5b7310fc35e671a34ca9488410c0bf0287280c4cfed577f67f965807.png _images/be07e1ca2649e822d30f7959494b0482658dc1c10bb043e26bc2c9914eb90b94.png _images/488a10f985cc2a69925821bb1ea59875ef420f77eb3172ba2e1e957742c62678.png _images/6669b3339a190f5a5c2923dc08cf5c08a2999d0f99ce151bab565d62b18e771b.png _images/3eb29bc222cb55cab6135f7c35bf04a176c8f749063985b8530017d75c703bb1.png