Should we cacheline align PGXACT?

Started by Alexander Korotkovover 9 years ago84 messages
#1Alexander Korotkov
a.korotkov@postgrespro.ru
2 attachment(s)

Hackers,

originally this idea was proposed by Andres Freund while experimenting with
lockfree Pin/UnpinBuffer [1].
The patch is attached as well as results of pgbench -S on 72-cores
machine. As before it shows huge benefit in this case.
For sure, we should validate that it doesn't cause performance regression
in other cases. At least we should test read-write and smaller machines.
Any other ideas?

1.
/messages/by-id/20160411214029.ce3fw6zxim5k6a2r@alap3.anarazel.de

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

Attachments:

pgxact-align-1.patchapplication/octet-stream; name=pgxact-align-1.patchDownload
diff --git a/src/backend/access/transam/twophase.c b/src/backend/access/transam/twophase.c
new file mode 100644
index 9f55adc..c4d5efa
*** a/src/backend/access/transam/twophase.c
--- b/src/backend/access/transam/twophase.c
*************** MarkAsPreparing(TransactionId xid, const
*** 403,409 ****
  	TwoPhaseState->freeGXacts = gxact->next;
  
  	proc = &ProcGlobal->allProcs[gxact->pgprocno];
! 	pgxact = &ProcGlobal->allPgXact[gxact->pgprocno];
  
  	/* Initialize the PGPROC entry */
  	MemSet(proc, 0, sizeof(PGPROC));
--- 403,409 ----
  	TwoPhaseState->freeGXacts = gxact->next;
  
  	proc = &ProcGlobal->allProcs[gxact->pgprocno];
! 	pgxact = &ProcGlobal->allPgXact[gxact->pgprocno].xact;
  
  	/* Initialize the PGPROC entry */
  	MemSet(proc, 0, sizeof(PGPROC));
*************** GXactLoadSubxactData(GlobalTransaction g
*** 467,473 ****
  					 TransactionId *children)
  {
  	PGPROC	   *proc = &ProcGlobal->allProcs[gxact->pgprocno];
! 	PGXACT	   *pgxact = &ProcGlobal->allPgXact[gxact->pgprocno];
  
  	/* We need no extra lock since the GXACT isn't valid yet */
  	if (nsubxacts > PGPROC_MAX_CACHED_SUBXIDS)
--- 467,473 ----
  					 TransactionId *children)
  {
  	PGPROC	   *proc = &ProcGlobal->allProcs[gxact->pgprocno];
! 	PGXACT	   *pgxact = &ProcGlobal->allPgXact[gxact->pgprocno].xact;
  
  	/* We need no extra lock since the GXACT isn't valid yet */
  	if (nsubxacts > PGPROC_MAX_CACHED_SUBXIDS)
*************** pg_prepared_xact(PG_FUNCTION_ARGS)
*** 725,731 ****
  	{
  		GlobalTransaction gxact = &status->array[status->currIdx++];
  		PGPROC	   *proc = &ProcGlobal->allProcs[gxact->pgprocno];
! 		PGXACT	   *pgxact = &ProcGlobal->allPgXact[gxact->pgprocno];
  		Datum		values[5];
  		bool		nulls[5];
  		HeapTuple	tuple;
--- 725,731 ----
  	{
  		GlobalTransaction gxact = &status->array[status->currIdx++];
  		PGPROC	   *proc = &ProcGlobal->allProcs[gxact->pgprocno];
! 		PGXACT	   *pgxact = &ProcGlobal->allPgXact[gxact->pgprocno].xact;
  		Datum		values[5];
  		bool		nulls[5];
  		HeapTuple	tuple;
*************** TwoPhaseGetGXact(TransactionId xid)
*** 780,786 ****
  	for (i = 0; i < TwoPhaseState->numPrepXacts; i++)
  	{
  		GlobalTransaction gxact = TwoPhaseState->prepXacts[i];
! 		PGXACT	   *pgxact = &ProcGlobal->allPgXact[gxact->pgprocno];
  
  		if (pgxact->xid == xid)
  		{
--- 780,786 ----
  	for (i = 0; i < TwoPhaseState->numPrepXacts; i++)
  	{
  		GlobalTransaction gxact = TwoPhaseState->prepXacts[i];
! 		PGXACT	   *pgxact = &ProcGlobal->allPgXact[gxact->pgprocno].xact;
  
  		if (pgxact->xid == xid)
  		{
*************** void
*** 947,953 ****
  StartPrepare(GlobalTransaction gxact)
  {
  	PGPROC	   *proc = &ProcGlobal->allProcs[gxact->pgprocno];
! 	PGXACT	   *pgxact = &ProcGlobal->allPgXact[gxact->pgprocno];
  	TransactionId xid = pgxact->xid;
  	TwoPhaseFileHeader hdr;
  	TransactionId *children;
--- 947,953 ----
  StartPrepare(GlobalTransaction gxact)
  {
  	PGPROC	   *proc = &ProcGlobal->allProcs[gxact->pgprocno];
! 	PGXACT	   *pgxact = &ProcGlobal->allPgXact[gxact->pgprocno].xact;
  	TransactionId xid = pgxact->xid;
  	TwoPhaseFileHeader hdr;
  	TransactionId *children;
*************** FinishPreparedTransaction(const char *gi
*** 1343,1349 ****
  	 */
  	gxact = LockGXact(gid, GetUserId());
  	proc = &ProcGlobal->allProcs[gxact->pgprocno];
! 	pgxact = &ProcGlobal->allPgXact[gxact->pgprocno];
  	xid = pgxact->xid;
  
  	/*
--- 1343,1349 ----
  	 */
  	gxact = LockGXact(gid, GetUserId());
  	proc = &ProcGlobal->allProcs[gxact->pgprocno];
! 	pgxact = &ProcGlobal->allPgXact[gxact->pgprocno].xact;
  	xid = pgxact->xid;
  
  	/*
*************** CheckPointTwoPhase(XLogRecPtr redo_horiz
*** 1623,1629 ****
  	for (i = 0; i < TwoPhaseState->numPrepXacts; i++)
  	{
  		GlobalTransaction gxact = TwoPhaseState->prepXacts[i];
! 		PGXACT	   *pgxact = &ProcGlobal->allPgXact[gxact->pgprocno];
  
  		if (gxact->valid &&
  			!gxact->ondisk &&
--- 1623,1629 ----
  	for (i = 0; i < TwoPhaseState->numPrepXacts; i++)
  	{
  		GlobalTransaction gxact = TwoPhaseState->prepXacts[i];
! 		PGXACT	   *pgxact = &ProcGlobal->allPgXact[gxact->pgprocno].xact;
  
  		if (gxact->valid &&
  			!gxact->ondisk &&
diff --git a/src/backend/storage/ipc/procarray.c b/src/backend/storage/ipc/procarray.c
new file mode 100644
index e5d487d..4af233e
*** a/src/backend/storage/ipc/procarray.c
--- b/src/backend/storage/ipc/procarray.c
*************** typedef struct ProcArrayStruct
*** 97,103 ****
  static ProcArrayStruct *procArray;
  
  static PGPROC *allProcs;
! static PGXACT *allPgXact;
  
  /*
   * Bookkeeping for tracking emulated transactions in recovery
--- 97,103 ----
  static ProcArrayStruct *procArray;
  
  static PGPROC *allProcs;
! static PGXACTPadded *allPgXact;
  
  /*
   * Bookkeeping for tracking emulated transactions in recovery
*************** ProcArrayRemove(PGPROC *proc, Transactio
*** 350,356 ****
  
  	if (TransactionIdIsValid(latestXid))
  	{
! 		Assert(TransactionIdIsValid(allPgXact[proc->pgprocno].xid));
  
  		/* Advance global latestCompletedXid while holding the lock */
  		if (TransactionIdPrecedes(ShmemVariableCache->latestCompletedXid,
--- 350,356 ----
  
  	if (TransactionIdIsValid(latestXid))
  	{
! 		Assert(TransactionIdIsValid(allPgXact[proc->pgprocno].xact.xid));
  
  		/* Advance global latestCompletedXid while holding the lock */
  		if (TransactionIdPrecedes(ShmemVariableCache->latestCompletedXid,
*************** ProcArrayRemove(PGPROC *proc, Transactio
*** 360,366 ****
  	else
  	{
  		/* Shouldn't be trying to remove a live transaction here */
! 		Assert(!TransactionIdIsValid(allPgXact[proc->pgprocno].xid));
  	}
  
  	for (index = 0; index < arrayP->numProcs; index++)
--- 360,366 ----
  	else
  	{
  		/* Shouldn't be trying to remove a live transaction here */
! 		Assert(!TransactionIdIsValid(allPgXact[proc->pgprocno].xact.xid));
  	}
  
  	for (index = 0; index < arrayP->numProcs; index++)
*************** ProcArrayRemove(PGPROC *proc, Transactio
*** 400,406 ****
  void
  ProcArrayEndTransaction(PGPROC *proc, TransactionId latestXid)
  {
! 	PGXACT	   *pgxact = &allPgXact[proc->pgprocno];
  
  	if (TransactionIdIsValid(latestXid))
  	{
--- 400,406 ----
  void
  ProcArrayEndTransaction(PGPROC *proc, TransactionId latestXid)
  {
! 	PGXACT	   *pgxact = &allPgXact[proc->pgprocno].xact;
  
  	if (TransactionIdIsValid(latestXid))
  	{
*************** ProcArrayEndTransaction(PGPROC *proc, Tr
*** 410,416 ****
  		 * else is taking a snapshot.  See discussion in
  		 * src/backend/access/transam/README.
  		 */
! 		Assert(TransactionIdIsValid(allPgXact[proc->pgprocno].xid));
  
  		/*
  		 * If we can immediately acquire ProcArrayLock, we clear our own XID
--- 410,416 ----
  		 * else is taking a snapshot.  See discussion in
  		 * src/backend/access/transam/README.
  		 */
! 		Assert(TransactionIdIsValid(allPgXact[proc->pgprocno].xact.xid));
  
  		/*
  		 * If we can immediately acquire ProcArrayLock, we clear our own XID
*************** ProcArrayEndTransaction(PGPROC *proc, Tr
*** 432,438 ****
  		 * anyone else's calculation of a snapshot.  We might change their
  		 * estimate of global xmin, but that's OK.
  		 */
! 		Assert(!TransactionIdIsValid(allPgXact[proc->pgprocno].xid));
  
  		proc->lxid = InvalidLocalTransactionId;
  		pgxact->xmin = InvalidTransactionId;
--- 432,438 ----
  		 * anyone else's calculation of a snapshot.  We might change their
  		 * estimate of global xmin, but that's OK.
  		 */
! 		Assert(!TransactionIdIsValid(allPgXact[proc->pgprocno].xact.xid));
  
  		proc->lxid = InvalidLocalTransactionId;
  		pgxact->xmin = InvalidTransactionId;
*************** ProcArrayGroupClearXid(PGPROC *proc, Tra
*** 494,500 ****
  	int			extraWaits = -1;
  
  	/* We should definitely have an XID to clear. */
! 	Assert(TransactionIdIsValid(allPgXact[proc->pgprocno].xid));
  
  	/* Add ourselves to the list of processes needing a group XID clear. */
  	proc->procArrayGroupMember = true;
--- 494,500 ----
  	int			extraWaits = -1;
  
  	/* We should definitely have an XID to clear. */
! 	Assert(TransactionIdIsValid(allPgXact[proc->pgprocno].xact.xid));
  
  	/* Add ourselves to the list of processes needing a group XID clear. */
  	proc->procArrayGroupMember = true;
*************** ProcArrayGroupClearXid(PGPROC *proc, Tra
*** 560,566 ****
  	while (nextidx != INVALID_PGPROCNO)
  	{
  		PGPROC	   *proc = &allProcs[nextidx];
! 		PGXACT	   *pgxact = &allPgXact[nextidx];
  
  		ProcArrayEndTransactionInternal(proc, pgxact, proc->procArrayGroupMemberXid);
  
--- 560,566 ----
  	while (nextidx != INVALID_PGPROCNO)
  	{
  		PGPROC	   *proc = &allProcs[nextidx];
! 		PGXACT	   *pgxact = &allPgXact[nextidx].xact;
  
  		ProcArrayEndTransactionInternal(proc, pgxact, proc->procArrayGroupMemberXid);
  
*************** ProcArrayGroupClearXid(PGPROC *proc, Tra
*** 606,612 ****
  void
  ProcArrayClearTransaction(PGPROC *proc)
  {
! 	PGXACT	   *pgxact = &allPgXact[proc->pgprocno];
  
  	/*
  	 * We can skip locking ProcArrayLock here, because this action does not
--- 606,612 ----
  void
  ProcArrayClearTransaction(PGPROC *proc)
  {
! 	PGXACT	   *pgxact = &allPgXact[proc->pgprocno].xact;
  
  	/*
  	 * We can skip locking ProcArrayLock here, because this action does not
*************** TransactionIdIsInProgress(TransactionId 
*** 1078,1084 ****
  	{
  		int			pgprocno = arrayP->pgprocnos[i];
  		volatile PGPROC *proc = &allProcs[pgprocno];
! 		volatile PGXACT *pgxact = &allPgXact[pgprocno];
  		TransactionId pxid;
  
  		/* Ignore my own proc --- dealt with it above */
--- 1078,1084 ----
  	{
  		int			pgprocno = arrayP->pgprocnos[i];
  		volatile PGPROC *proc = &allProcs[pgprocno];
! 		volatile PGXACT *pgxact = &allPgXact[pgprocno].xact;
  		TransactionId pxid;
  
  		/* Ignore my own proc --- dealt with it above */
*************** TransactionIdIsActive(TransactionId xid)
*** 1234,1240 ****
  	{
  		int			pgprocno = arrayP->pgprocnos[i];
  		volatile PGPROC *proc = &allProcs[pgprocno];
! 		volatile PGXACT *pgxact = &allPgXact[pgprocno];
  		TransactionId pxid;
  
  		/* Fetch xid just once - see GetNewTransactionId */
--- 1234,1240 ----
  	{
  		int			pgprocno = arrayP->pgprocnos[i];
  		volatile PGPROC *proc = &allProcs[pgprocno];
! 		volatile PGXACT *pgxact = &allPgXact[pgprocno].xact;
  		TransactionId pxid;
  
  		/* Fetch xid just once - see GetNewTransactionId */
*************** GetOldestXmin(Relation rel, bool ignoreV
*** 1344,1350 ****
  	{
  		int			pgprocno = arrayP->pgprocnos[index];
  		volatile PGPROC *proc = &allProcs[pgprocno];
! 		volatile PGXACT *pgxact = &allPgXact[pgprocno];
  
  		/*
  		 * Backend is doing logical decoding which manages xmin separately,
--- 1344,1350 ----
  	{
  		int			pgprocno = arrayP->pgprocnos[index];
  		volatile PGPROC *proc = &allProcs[pgprocno];
! 		volatile PGXACT *pgxact = &allPgXact[pgprocno].xact;
  
  		/*
  		 * Backend is doing logical decoding which manages xmin separately,
*************** GetSnapshotData(Snapshot snapshot)
*** 1583,1589 ****
  		for (index = 0; index < numProcs; index++)
  		{
  			int			pgprocno = pgprocnos[index];
! 			volatile PGXACT *pgxact = &allPgXact[pgprocno];
  			TransactionId xid;
  
  			/*
--- 1583,1589 ----
  		for (index = 0; index < numProcs; index++)
  		{
  			int			pgprocno = pgprocnos[index];
! 			volatile PGXACT *pgxact = &allPgXact[pgprocno].xact;
  			TransactionId xid;
  
  			/*
*************** ProcArrayInstallImportedXmin(Transaction
*** 1811,1817 ****
  	{
  		int			pgprocno = arrayP->pgprocnos[index];
  		volatile PGPROC *proc = &allProcs[pgprocno];
! 		volatile PGXACT *pgxact = &allPgXact[pgprocno];
  		TransactionId xid;
  
  		/* Ignore procs running LAZY VACUUM */
--- 1811,1817 ----
  	{
  		int			pgprocno = arrayP->pgprocnos[index];
  		volatile PGPROC *proc = &allProcs[pgprocno];
! 		volatile PGXACT *pgxact = &allPgXact[pgprocno].xact;
  		TransactionId xid;
  
  		/* Ignore procs running LAZY VACUUM */
*************** ProcArrayInstallRestoredXmin(Transaction
*** 1878,1884 ****
  	/* Get lock so source xact can't end while we're doing this */
  	LWLockAcquire(ProcArrayLock, LW_SHARED);
  
! 	pgxact = &allPgXact[proc->pgprocno];
  
  	/*
  	 * Be certain that the referenced PGPROC has an advertised xmin which is
--- 1878,1884 ----
  	/* Get lock so source xact can't end while we're doing this */
  	LWLockAcquire(ProcArrayLock, LW_SHARED);
  
! 	pgxact = &allPgXact[proc->pgprocno].xact;
  
  	/*
  	 * Be certain that the referenced PGPROC has an advertised xmin which is
*************** GetRunningTransactionData(void)
*** 1989,1995 ****
  	for (index = 0; index < arrayP->numProcs; index++)
  	{
  		int			pgprocno = arrayP->pgprocnos[index];
! 		volatile PGXACT *pgxact = &allPgXact[pgprocno];
  		TransactionId xid;
  
  		/* Fetch xid just once - see GetNewTransactionId */
--- 1989,1995 ----
  	for (index = 0; index < arrayP->numProcs; index++)
  	{
  		int			pgprocno = arrayP->pgprocnos[index];
! 		volatile PGXACT *pgxact = &allPgXact[pgprocno].xact;
  		TransactionId xid;
  
  		/* Fetch xid just once - see GetNewTransactionId */
*************** GetRunningTransactionData(void)
*** 2021,2027 ****
  		{
  			int			pgprocno = arrayP->pgprocnos[index];
  			volatile PGPROC *proc = &allProcs[pgprocno];
! 			volatile PGXACT *pgxact = &allPgXact[pgprocno];
  			int			nxids;
  
  			/*
--- 2021,2027 ----
  		{
  			int			pgprocno = arrayP->pgprocnos[index];
  			volatile PGPROC *proc = &allProcs[pgprocno];
! 			volatile PGXACT *pgxact = &allPgXact[pgprocno].xact;
  			int			nxids;
  
  			/*
*************** GetOldestActiveTransactionId(void)
*** 2111,2117 ****
  	for (index = 0; index < arrayP->numProcs; index++)
  	{
  		int			pgprocno = arrayP->pgprocnos[index];
! 		volatile PGXACT *pgxact = &allPgXact[pgprocno];
  		TransactionId xid;
  
  		/* Fetch xid just once - see GetNewTransactionId */
--- 2111,2117 ----
  	for (index = 0; index < arrayP->numProcs; index++)
  	{
  		int			pgprocno = arrayP->pgprocnos[index];
! 		volatile PGXACT *pgxact = &allPgXact[pgprocno].xact;
  		TransactionId xid;
  
  		/* Fetch xid just once - see GetNewTransactionId */
*************** GetOldestSafeDecodingTransactionId(void)
*** 2202,2208 ****
  		for (index = 0; index < arrayP->numProcs; index++)
  		{
  			int			pgprocno = arrayP->pgprocnos[index];
! 			volatile PGXACT *pgxact = &allPgXact[pgprocno];
  			TransactionId xid;
  
  			/* Fetch xid just once - see GetNewTransactionId */
--- 2202,2208 ----
  		for (index = 0; index < arrayP->numProcs; index++)
  		{
  			int			pgprocno = arrayP->pgprocnos[index];
! 			volatile PGXACT *pgxact = &allPgXact[pgprocno].xact;
  			TransactionId xid;
  
  			/* Fetch xid just once - see GetNewTransactionId */
*************** GetVirtualXIDsDelayingChkpt(int *nvxids)
*** 2257,2263 ****
  	{
  		int			pgprocno = arrayP->pgprocnos[index];
  		volatile PGPROC *proc = &allProcs[pgprocno];
! 		volatile PGXACT *pgxact = &allPgXact[pgprocno];
  
  		if (pgxact->delayChkpt)
  		{
--- 2257,2263 ----
  	{
  		int			pgprocno = arrayP->pgprocnos[index];
  		volatile PGPROC *proc = &allProcs[pgprocno];
! 		volatile PGXACT *pgxact = &allPgXact[pgprocno].xact;
  
  		if (pgxact->delayChkpt)
  		{
*************** HaveVirtualXIDsDelayingChkpt(VirtualTran
*** 2297,2303 ****
  	{
  		int			pgprocno = arrayP->pgprocnos[index];
  		volatile PGPROC *proc = &allProcs[pgprocno];
! 		volatile PGXACT *pgxact = &allPgXact[pgprocno];
  		VirtualTransactionId vxid;
  
  		GET_VXID_FROM_PGPROC(vxid, *proc);
--- 2297,2303 ----
  	{
  		int			pgprocno = arrayP->pgprocnos[index];
  		volatile PGPROC *proc = &allProcs[pgprocno];
! 		volatile PGXACT *pgxact = &allPgXact[pgprocno].xact;
  		VirtualTransactionId vxid;
  
  		GET_VXID_FROM_PGPROC(vxid, *proc);
*************** BackendXidGetPid(TransactionId xid)
*** 2407,2413 ****
  	{
  		int			pgprocno = arrayP->pgprocnos[index];
  		volatile PGPROC *proc = &allProcs[pgprocno];
! 		volatile PGXACT *pgxact = &allPgXact[pgprocno];
  
  		if (pgxact->xid == xid)
  		{
--- 2407,2413 ----
  	{
  		int			pgprocno = arrayP->pgprocnos[index];
  		volatile PGPROC *proc = &allProcs[pgprocno];
! 		volatile PGXACT *pgxact = &allPgXact[pgprocno].xact;
  
  		if (pgxact->xid == xid)
  		{
*************** GetCurrentVirtualXIDs(TransactionId limi
*** 2479,2485 ****
  	{
  		int			pgprocno = arrayP->pgprocnos[index];
  		volatile PGPROC *proc = &allProcs[pgprocno];
! 		volatile PGXACT *pgxact = &allPgXact[pgprocno];
  
  		if (proc == MyProc)
  			continue;
--- 2479,2485 ----
  	{
  		int			pgprocno = arrayP->pgprocnos[index];
  		volatile PGPROC *proc = &allProcs[pgprocno];
! 		volatile PGXACT *pgxact = &allPgXact[pgprocno].xact;
  
  		if (proc == MyProc)
  			continue;
*************** GetConflictingVirtualXIDs(TransactionId 
*** 2576,2582 ****
  	{
  		int			pgprocno = arrayP->pgprocnos[index];
  		volatile PGPROC *proc = &allProcs[pgprocno];
! 		volatile PGXACT *pgxact = &allPgXact[pgprocno];
  
  		/* Exclude prepared transactions */
  		if (proc->pid == 0)
--- 2576,2582 ----
  	{
  		int			pgprocno = arrayP->pgprocnos[index];
  		volatile PGPROC *proc = &allProcs[pgprocno];
! 		volatile PGXACT *pgxact = &allPgXact[pgprocno].xact;
  
  		/* Exclude prepared transactions */
  		if (proc->pid == 0)
*************** MinimumActiveBackends(int min)
*** 2690,2696 ****
  	{
  		int			pgprocno = arrayP->pgprocnos[index];
  		volatile PGPROC *proc = &allProcs[pgprocno];
! 		volatile PGXACT *pgxact = &allPgXact[pgprocno];
  
  		/*
  		 * Since we're not holding a lock, need to be prepared to deal with
--- 2690,2696 ----
  	{
  		int			pgprocno = arrayP->pgprocnos[index];
  		volatile PGPROC *proc = &allProcs[pgprocno];
! 		volatile PGXACT *pgxact = &allPgXact[pgprocno].xact;
  
  		/*
  		 * Since we're not holding a lock, need to be prepared to deal with
*************** CountOtherDBBackends(Oid databaseId, int
*** 2867,2873 ****
  		{
  			int			pgprocno = arrayP->pgprocnos[index];
  			volatile PGPROC *proc = &allProcs[pgprocno];
! 			volatile PGXACT *pgxact = &allPgXact[pgprocno];
  
  			if (proc->databaseId != databaseId)
  				continue;
--- 2867,2873 ----
  		{
  			int			pgprocno = arrayP->pgprocnos[index];
  			volatile PGPROC *proc = &allProcs[pgprocno];
! 			volatile PGXACT *pgxact = &allPgXact[pgprocno].xact;
  
  			if (proc->databaseId != databaseId)
  				continue;
diff --git a/src/backend/storage/ipc/sinvaladt.c b/src/backend/storage/ipc/sinvaladt.c
new file mode 100644
index 44a9f2c..9a1d106
*** a/src/backend/storage/ipc/sinvaladt.c
--- b/src/backend/storage/ipc/sinvaladt.c
*************** BackendIdGetTransactionIds(int backendID
*** 418,424 ****
  
  		if (proc != NULL)
  		{
! 			PGXACT	   *xact = &ProcGlobal->allPgXact[proc->pgprocno];
  
  			*xid = xact->xid;
  			*xmin = xact->xmin;
--- 418,424 ----
  
  		if (proc != NULL)
  		{
! 			PGXACT	   *xact = &ProcGlobal->allPgXact[proc->pgprocno].xact;
  
  			*xid = xact->xid;
  			*xmin = xact->xmin;
diff --git a/src/backend/storage/lmgr/deadlock.c b/src/backend/storage/lmgr/deadlock.c
new file mode 100644
index 3f3e24f..1f5528e
*** a/src/backend/storage/lmgr/deadlock.c
--- b/src/backend/storage/lmgr/deadlock.c
*************** FindLockCycleRecurseMember(PGPROC *check
*** 573,579 ****
  		PGPROC	   *leader;
  
  		proc = proclock->tag.myProc;
! 		pgxact = &ProcGlobal->allPgXact[proc->pgprocno];
  		leader = proc->lockGroupLeader == NULL ? proc : proc->lockGroupLeader;
  
  		/* A proc never blocks itself or any other lock group member */
--- 573,579 ----
  		PGPROC	   *leader;
  
  		proc = proclock->tag.myProc;
! 		pgxact = &ProcGlobal->allPgXact[proc->pgprocno].xact;
  		leader = proc->lockGroupLeader == NULL ? proc : proc->lockGroupLeader;
  
  		/* A proc never blocks itself or any other lock group member */
diff --git a/src/backend/storage/lmgr/lock.c b/src/backend/storage/lmgr/lock.c
new file mode 100644
index dba3809..714b6bf
*** a/src/backend/storage/lmgr/lock.c
--- b/src/backend/storage/lmgr/lock.c
*************** GetRunningTransactionLocks(int *nlocks)
*** 3806,3812 ****
  			proclock->tag.myLock->tag.locktag_type == LOCKTAG_RELATION)
  		{
  			PGPROC	   *proc = proclock->tag.myProc;
! 			PGXACT	   *pgxact = &ProcGlobal->allPgXact[proc->pgprocno];
  			LOCK	   *lock = proclock->tag.myLock;
  			TransactionId xid = pgxact->xid;
  
--- 3806,3812 ----
  			proclock->tag.myLock->tag.locktag_type == LOCKTAG_RELATION)
  		{
  			PGPROC	   *proc = proclock->tag.myProc;
! 			PGXACT	   *pgxact = &ProcGlobal->allPgXact[proc->pgprocno].xact;
  			LOCK	   *lock = proclock->tag.myLock;
  			TransactionId xid = pgxact->xid;
  
diff --git a/src/backend/storage/lmgr/proc.c b/src/backend/storage/lmgr/proc.c
new file mode 100644
index 9a758bd..a555b2a
*** a/src/backend/storage/lmgr/proc.c
--- b/src/backend/storage/lmgr/proc.c
*************** void
*** 160,166 ****
  InitProcGlobal(void)
  {
  	PGPROC	   *procs;
! 	PGXACT	   *pgxacts;
  	int			i,
  				j;
  	bool		found;
--- 160,166 ----
  InitProcGlobal(void)
  {
  	PGPROC	   *procs;
! 	PGXACTPadded *pgxacts;
  	int			i,
  				j;
  	bool		found;
*************** InitProcGlobal(void)
*** 211,218 ****
  	 * multiprocessor system.  There is one PGXACT structure for every PGPROC
  	 * structure.
  	 */
! 	pgxacts = (PGXACT *) ShmemAlloc(TotalProcs * sizeof(PGXACT));
! 	MemSet(pgxacts, 0, TotalProcs * sizeof(PGXACT));
  	ProcGlobal->allPgXact = pgxacts;
  
  	for (i = 0; i < TotalProcs; i++)
--- 211,218 ----
  	 * multiprocessor system.  There is one PGXACT structure for every PGPROC
  	 * structure.
  	 */
! 	pgxacts = (PGXACTPadded *) ShmemAlloc(TotalProcs * sizeof(PGXACTPadded));
! 	MemSet(pgxacts, 0, TotalProcs * sizeof(PGXACTPadded));
  	ProcGlobal->allPgXact = pgxacts;
  
  	for (i = 0; i < TotalProcs; i++)
*************** InitProcess(void)
*** 339,345 ****
  				(errcode(ERRCODE_TOO_MANY_CONNECTIONS),
  				 errmsg("sorry, too many clients already")));
  	}
! 	MyPgXact = &ProcGlobal->allPgXact[MyProc->pgprocno];
  
  	/*
  	 * Cross-check that the PGPROC is of the type we expect; if this were not
--- 339,345 ----
  				(errcode(ERRCODE_TOO_MANY_CONNECTIONS),
  				 errmsg("sorry, too many clients already")));
  	}
! 	MyPgXact = &ProcGlobal->allPgXact[MyProc->pgprocno].xact;
  
  	/*
  	 * Cross-check that the PGPROC is of the type we expect; if this were not
*************** InitAuxiliaryProcess(void)
*** 526,532 ****
  	((volatile PGPROC *) auxproc)->pid = MyProcPid;
  
  	MyProc = auxproc;
! 	MyPgXact = &ProcGlobal->allPgXact[auxproc->pgprocno];
  
  	SpinLockRelease(ProcStructLock);
  
--- 526,532 ----
  	((volatile PGPROC *) auxproc)->pid = MyProcPid;
  
  	MyProc = auxproc;
! 	MyPgXact = &ProcGlobal->allPgXact[auxproc->pgprocno].xact;
  
  	SpinLockRelease(ProcStructLock);
  
*************** ProcSleep(LOCALLOCK *locallock, LockMeth
*** 1241,1247 ****
  		if (deadlock_state == DS_BLOCKED_BY_AUTOVACUUM && allow_autovacuum_cancel)
  		{
  			PGPROC	   *autovac = GetBlockingAutoVacuumPgproc();
! 			PGXACT	   *autovac_pgxact = &ProcGlobal->allPgXact[autovac->pgprocno];
  
  			LWLockAcquire(ProcArrayLock, LW_EXCLUSIVE);
  
--- 1241,1247 ----
  		if (deadlock_state == DS_BLOCKED_BY_AUTOVACUUM && allow_autovacuum_cancel)
  		{
  			PGPROC	   *autovac = GetBlockingAutoVacuumPgproc();
! 			PGXACT	   *autovac_pgxact = &ProcGlobal->allPgXact[autovac->pgprocno].xact;
  
  			LWLockAcquire(ProcArrayLock, LW_EXCLUSIVE);
  
diff --git a/src/include/storage/proc.h b/src/include/storage/proc.h
new file mode 100644
index f576f05..0686426
*** a/src/include/storage/proc.h
--- b/src/include/storage/proc.h
*************** typedef struct PGXACT
*** 209,214 ****
--- 209,225 ----
  } PGXACT;
  
  /*
+  * Cacheline aligned PGXACT which allows us to put each PGXACT to individual
+  * cacheline.  Assuming PGXACTs are under intensive write, cacheline alignment
+  * reduce cache misses during GetSnapshotData().
+  */
+ typedef union PGXACTPadded
+ {
+ 	PGXACT		xact;
+ 	char		pad[PG_CACHE_LINE_SIZE];
+ } PGXACTPadded;
+ 
+ /*
   * There is one ProcGlobal struct for the whole database cluster.
   */
  typedef struct PROC_HDR
*************** typedef struct PROC_HDR
*** 216,222 ****
  	/* Array of PGPROC structures (not including dummies for prepared txns) */
  	PGPROC	   *allProcs;
  	/* Array of PGXACT structures (not including dummies for prepared txns) */
! 	PGXACT	   *allPgXact;
  	/* Length of allProcs array */
  	uint32		allProcCount;
  	/* Head of list of free PGPROC structures */
--- 227,233 ----
  	/* Array of PGPROC structures (not including dummies for prepared txns) */
  	PGPROC	   *allProcs;
  	/* Array of PGXACT structures (not including dummies for prepared txns) */
! 	PGXACTPadded *allPgXact;
  	/* Length of allProcs array */
  	uint32		allProcCount;
  	/* Head of list of free PGPROC structures */
scalability_pgxact_align.pngimage/png; name=scalability_pgxact_align.pngDownload
�PNG


IHDR�@�1Q�sBIT|d�	pHYs��~� IDATx���wT�����.��t�JTD{W�%��X"T�`����{K41Fb�KLb�I4�wc�
�E����������aaY,A���3��s�<�?s��$!�@ LBU�
�@ o���@ 
�0��@ � h�@ ��Z �@ (���@ 
�0��@ � h�@ ��Z �@ (���@ 
�0��@ � �����Y�f�� 88���+l5�:
���������k������Dddda�!��}��A�R���+���@`��+W�����������$I�$���P��\�v
!!!�P�����4H�^����;���������p��M�LFFF�777�t:��_�N�2k���([�,�Z-�����w�����|�
6l�`�,�z��������T*���g�l��!P�To��eQ`���Z�*lmmacc��������������I�T*�]����������U�T�F����_�r�O�F�-���[[[��W�v�z��.\�J���Q j��V�z-:5i�
64hs��m�������g���A�R�z
4����v��=�h�YYY�2e
����������������
��|��������BCCq��
����KQ�bEXZZ����'O6HWS�O���0�s�6T�O�<���>��4m�4WC>++m��Azz:v���;v ))	���W�}���X�|9/^���(����i���~��,�y�f���a���8s������={b��m�������Fe�����C��]������/:u��G��}���{��n��2d�����b��;v�k{�$I(U��,Y�p��1V�^
OO���A����W�����+W"<<}�����'q��)|��������u���)S`ii	�%�333ann���>��>D���aoo�C����

��������W��1
�|�D����O�Z�
����9s������b���X�v-�j�kyoA�?>�]���f���[�������
*�
�;w6�������_b��YHHH��%K�a�6L�Y�~=�����#>>������'��gOYf��%4hF����8��7�-����eS��WAVV����
5n,"4l��}�����#���H�����?�e>|�~���������8p G�E___Y�W�^l��)g��Mwww�t:v�������}���c`` �Z-���8l�0>x�@�OXX�L�BWWW/^�={������|����R�
�Z-��U+��s�$lR�p��A��S�������f`` �o�n�_}��d����$�III�[\\%I��}�H�����V���%Kd���L���r��I�[�����S�N.P<����z���Z�j��i;t�����s����w��,cj���y����Osss:;;�����S���;���f��=9e�N�6�[�n��3r�$q�����;��������>����������#iee�c�����W�����I�*I�����;��������;w��LDD?������k��$�;v�N�:������;{�����o��L��'O�d��-���L+++V�^���mS��������cxx8X�V-���'��Y3ZYY����;vdzz��oDD���-Z022��$��?�,@J����c�N�
��$�>}��#G����������w�}��y�2�g�zzz�����$�k��5*��ukV�^�$���&M��A������}'NT��zN�>MI�+���w��$��_~1���;Y�^=�t:����a��LMM��������F�a������_+��h��t�;v�HGGGZXX����_|�E�z���Q�$>|Xq���?�M�6��t������+�I�$_*�J~��~+V��Z�6�v$��?P�����SLLL���%,X��������&L��A�X�xq���p���|���Q�L)�9�S���i��\�v���a���r�������Y�jU�LDD������u�2<<\!3g�ZZZ����$M�?sC_g��]Koooj�Z6k��.\0����X�lY��j&$$���+������haa���`�8qB~JJ
��}/^�:���*U��-[��/[6o���� �t:����F�<}������#�_�>-,,hoo�n�������-66���7���---������W�����"e@���������tvv���Ce����tqq�������$�=��������ez��E�k�������o�����CYf�������5k�����R�J����B;;;6������c�/�����2��/����M����x�9s��u���a���g�hoo�O>��)))LII����y��A���e8M�0��K�6p/Y�$�O�N�y�,I/]���������'OhfffP��.]J�V���,����f����������y������*����|�VVVV�?>���y��)9�r#**��$111�+W�Tt���$�...\�t)��?����S�$�����:zyyq��icXX��^�~}��9����&�����y������s�R�V���V�888p���<�<SRR�{�n�t:��7�)))���b�F���A��)us��}�����s�����q��Q��(:)OOO���p���LNNf||<���hee�I�&111���������)#�o���j��s��arr2�-[Fggg�T��������R�e
�����7l����d��1�*�J��/Z&�]�F���_'?C����tww����I���M���#/_�lR|�2�<x@WWW6��=���O9k�,:::����y��s�N+V�C���3g�������3!!����X.Y��)))\�h�Z-�-[&������w�e�f����t������}���e@���p���LMM��1c�V��rr��M��jFDD�����~�:I����4Iv������g�j���uk�3S����loo��3g2%%�?��#���2�!I��YcR<H���3�$����k��_~�%]]]y���djj*���m��
����o�>fee����l������V���{����$� i���6mZ�:N�8�����_�>O�8���(��Y�U�TQ��t:����LNN�?���5j�r��<|�0��=�.]����^�9�^�Jggg6k����������?���~#iZ9���[�N����_|�/\�����[��g����[[[3$$����<t�+U��������+2$$����LKK�����0�_E�����V[�/�V����y��}���s���
�j�20����#�;v��$I�(���'���[E8����$I�{���O``�B&<<��k���K�,����F��_���_��Uk���~���n�����W��L�\�v-%I�G��>�$�?����$q���
�-[�P�$�r����i�����i��~���}j�Z��=�d?��������kW�3��=x�`����?G�] ������y��qZYY��������F���7L�������[�n�P�$��N>O��:���S�$����4�n�F``��c���� �z��G��<~��:�N6��������+d��B#���]c�z�(I�����K.^�X�+VN<x@sss.\�P���C6n�X��2�9�8q�"SF����K�Z�I�&���L���y�$����
*P�RQ�V����'O�4^�z�����������#G�T�
:�>>>�������@��j���=g�Y&33������F�V322�d�6o�L�`���w���hcc#�zL����s�v�2�Z��|`T7I���jiee��~���\�?��#�,Y����i��Q�V�����$q��2K�.�N��e�}�]>y�D~>~�x/^��fVV��;�2e�P�$�����37&N�h��%%%Q�$���G�Q�T���]�vQ�$����nO�<a�%8e����q�X�D	y�<'/[N�:EI����7nK�,��bbb(I�<��[�H���6�~�uQ��@��QC1��N�:x��	RSS�����O��V�Z
?�j�2�OV�|yX[[+��s�������x�"�
kkk�j��5$IBJJ��/((Hn�%�y�7n�������y�<�#I��0rc��
�>{{{����E�h��5f������<�(9�.���a�����r����]������q��j�*��o�Q��U�\\�<yb4�sbee�={� ##,��~���c����9utss3X���V�Z)t�I�����������/F��m���d���k�V���Sqqq
�5j(����0g��^�$	�������	7o�������{{{X[[#../^��H������'���������������[�hZ<xP���pqq���q��9�=���1b*T���""}��A�{�
���eb��x��	&L����u^�;;������O0y�d���m����O~<z��{�F@@�9�c����w�E�6mp���<��:u*�zv��=�����������c/^>��3f�V�Z5j<�Bq��w*�
���F�.?���I��z�j���GEE��X]-H:�}�3c����(���[�=|�k��AXX�����X�~=,X��+W����X�~=~��7�7N�{��A�;_~�%N�:��~�
iii����,3n�8t���5�F�A��
��G@�b�d��?������#�������Q�������C���������+'�i4��YSn?O�<�:u����"���l=D�-P�Bt���|��B�Z�j)��W�T	���F���GXX5j���'����F��U�f�xE�,��������X��OV���@�F�d���eY�F��S�1%������k������`���<x0v����;wb����7o�K��/Q�v��m�~��5����2z�������3GGG��j\�vM����ann{{����O>�C��;���!C��������Od�W��g�����
*`��
��������C���;���?|Au\�l����E�~��`�\�|��wC�C� ��Ej�eF�%w2�qqqQ���>���P\�|_|������j��kW��`���g��5j�A��1����#&&F��Y���+�r�����?~<��)����ln��!��-h���{7�9sss�{�^�0}�t������L:tj�Z���2�[�g������e�c��E��{7/^��S���7�<�-�rR��Q�xq��^��-�m�6����Z�B�dc�T
�w��g*			9r$"""���0����� �����)��S���H\���n@���u�������)���;��AHH   �=B�>}0a�h4�;������<o������AL�2>>>�h4X�p������E�(]�4�������Y����FVV�������J���QQQ��k6n��Q�Fa���x��w���_������l��
{����30b��m��R�F�����O�!��������`���G�dZ||<����^����...(Y�$���cp�������/���1����h�Z�Y@@���~�
}������M7��]�^=���)F8���q��e��WP�jU���+�����]�v�2���W7H�m���v��yV*cq-vvv�;����P�t*_�<�Z�K����7f��	GG�o{�777�����{w������Z�u�)
��#G���/o�O�j��k���X��������M�6���+RSS���Z�j�������]��/�C�)�����V�U���� xzz���"�h___���c��}
��B�
���+V���3g�����h�G�~��W�~'M����T>|QQQ�5k�K�<�uO��x�U�j�<����
<<<rM���c����N�suuEhh("##�t�R�]�����'�C���FjA���������Y�f���/>��38::b���w��/����o��m��1\���x��a�e�����?T*���P�X1|��w���A���������7q��y�>))	�o�������[�/�=y���G@@��y{��a�m����zP�zu�=���G��
�b�
Y�#G� ##C�������-�hooo���c����<y2.\�������-�z�/"����-[����U1���A,Q��l����D�3�vvv,S��,�_���}{���r������c���e���WS��p���<{�,��O?)�J�wp����S���%�/]��fff�:u*��;���X~��7�E���a
)))1b:�.��?�`@@��\���>}��O������Z�j1::Z�Z6++�U�Ve��5y��q=z�U�Ve�:u�2�NNN��eccc��W//^���]�e����������=�j��`S0e�n�>}x��q����G���g�����`��K���.�"���DFGG����S�4i�d�.X���-�J������Sm��I���������+|��=��#���vpp��y���������jyf^:����fff6lO�>����������/=z$�?��Y�Z5��W�g��������"=r��$�����+�������g�<����'I���OrMJJ��������Bs�?��CN�<���x��	����*���v�����#�������3))���O�J���>���/R&L��o�>���q��$����S������F��������0`K�*%�-O�>%�|N���CCC���:�fffF���c�+�!C�0&&�			\�bI�,��%%%������y����G���~cJJ������3O]�����S�tiN�<Y�`���y��yA�)��2z��QtuuU,�����F���U�H�VW_4�������K�$q����z�����^�G?����7^��������~bZZ�m�Fooo�m�V��:u*u:###y��y8p�U�TaPP�,�����+W211�'N�`xx8���;_���D���A�<y�$���X�V-�N!y�-�Y�&����E��;wf����T���6m*/"���_�4|�zp��aN�2���czz:w��E777N�0�$y��u����[�n������Y�bE����v��}8�{������y��)6l�P��uPd���`�����~�)hmm�~��)��{�����O������>��!CX�bEYF����_~�%JP������7��n����]����"((�S�NU���_?��i�����[��v�Z����l��
������W�^e�����Asss��������X��s����&��������icc��]��������#���J�V�z����h���,S�5
��+W�����b��=�*T���%�+F:T�x�U����s��l���h4tqqa������z�*���+o��h���������i��){��]`�������M����o��:��nnn�EQy�L>�j�i�������!����>_����g���ky{{s�����W<��=�v��������������;�������`�f��B�pl���m��������7o��cFFG�%oc �p����D~����Y�dI~���
���������v�^^^��-�����o���iooO[[[��]��U���og���iaaA[[[6n��iii�s��jfff,]���6�-z����>b�2ehaa!������S���4�T*���^��������m�����h�q~�w��433�S��R�V����}������[��U���9,,��5�SGR�/e�r.0`@�;<x�O?��>>>�j�,U�?��#�q����3f�l���������w��X�����j������VVVl��q��^���$�6v^^^�j�l���ba��I��#d_��]����������C���R��1((H��2� ..��[����+�������#F(���G��A�������CBBi�[�?~�n�����9;;�k��&���Hd�89�Q�F���+��h��1�~���������>��'O�i��|e���1i�$�'�7���HH���N�M� IDAT��ME�Ra��5����+;44��'v��������I�&a����l����)2��m�R^��������]�6�>}���Wc��}�����%-����$%%��������I~�����EO�@ �:�'��,Z��FVV����y�f�h��_�R�:9|�0��i�F�a���&����z�G���1P�1��AQF��oEf
�@ �@�oP����@ ^7���@ 
�0��r�����_?����.��Y�~=J�.
�Z�8��m$44Tq�����R��=�p���033+�w��L�4	~~~&���t9{�,j�����K�.�I�&���RI,�(H]}����sA������W_�F�Off&�����]����K�;wn�r�W�F��UQ�xq�t:�/_��8C�R)�R�J��h�|��7��a�+w��5����_���kx����{�Z�U�V�F�Oa,1b���������(�O&�u�bbbp���]�����Kh��9�����j����^�z��?��e��=�=z���[�x:t(���o���=�N�:���*U
��5��5k��eo��j5�����G��2
�:t*�
/^T����8v�X!i�j1��=v�������a��1��_�z�;w���-lmm���y�jQ����!xNA�m}�\�r<@�V�P�D�<�\\\0q�D�-[���8p��Z�A���O�$���`���������~ma�N�={���������{I���m�222^jd�0�����^�z)>J���Q�zu�.]���~��xQ�������c���prrBzz:��w�}�N��>}666X�l|||�����>����������V�X�����c��X�j|||p��]���a��%���A�:ud��������Cff&RRR��G�G���k�����Y�,--aiiYH��ZL�w/]��f���S�NX�l�����O��g�}���B�6m�V��k�.deea���h��=>\�Q|���cZ��4l��}�����c���L;;;�;�YYY�<y2]\\�����c�*�eddp����I:���o2.\`�-haa�R�J1""�������s?�c�6l�������-6lhp�$I\�`�w�Nkkkzxx=fZ��#GX�~}ZXX������u��7H>?�*�IQ���79��o��;����mS��hAwwwZYY1,,�\�p!===ioo�����Gg�����o�e�R�hcc��m������Ln��<x��$1==�{��5H��'�EDD�l���j���������}�D���[Y�n]j�Z.\�0�c|/]������;w�~����t,_���Q���O����������-Z�G��d��%�������w��]v[�x1������'�yzz��I�����f������X�jUFEE��6$�������N>Am����w�W��]�5j�������|��w���d��k��U�V�����Q�H����c`` �Z-���8l�0>x�@����c~���������=���9j��\���
}���������V�e��5m ���eA��k��Iy������
���;u:+W��M�6��:t�|c�%��kW���*��y3%I2z2��M��R���?��$/_�Lsss~���&�#�S#""hkk[ ]�u���~c�Z�haa��U�2..�����[�.u:k���8���;		a�R�haa��e�r�������3((������>|��������[FF'O�,�
�������'?�r�
�t��8���q3������?��6m�P������+W�T��_�$�Jj�Z�-[���/�����t�����+W������������q�m����2e
]]]Y�xq���SqRg~���E�����C�~���,Y��Bf���������I>?�S�$EGI��o��G�BB����
�����F�brr2�/_NI���uk�9��������$I���W�^���;y����������e�H�YYY�\�2k������3::���5���������O���O\�~=���x��9����x���}��,#I]\\�t�R�?�����$I��{w���z�*������X:t��*Ub���I>?6=**��$��_�����h^dee���ctvv�7�|cT688�trrb�2e��/���^�z�������LHH�/��B�V���[�W�^LHH���[iaa����re��[�n�����#G����=z�2'N48v4����S9��_���������������7�������X�T)�?>���;�r��q��-�p�/_�\ :00���ogJJ
{��M����7����[�l��K���s��i@�?^��.]�����tww�e�v��H������7�V�!���T�Tl��!:����j�����F?0*V�������3--�������bS���+�e��?����l��-��������=<<�v�Z^�p�iii\�b����f��������T��"�C����3��&&&r��������X����K��Uy���9s�m�������G�����L^�v�%K�����y��u�����]c�:u��{w��fee188��5����������S���i�Wz��=���?/]����(���s��eKZYY�:dRZ����{���j���[�l������I��3g%I���WMz�$I\�f�|���u��&�J��R�
����s���v���T�4h�={�0>>����c��5e��]������O���\�f
����b�
Y&))�����7o���j����
���gO:;;s��5<�<�=�������v�F��\�2>��g��K�.�����[�q3���������_���T�3�j�ZncL)�>d�r�X�jU����iii��c��fff��_~�$I<q��_�.�?��e�+V���9�����?���^�F7l��vvv6l�c�/^\!�_�����t�����
*��o�4���m�������MII�$I���&L`���
�,Y�$�M�f�o#��~�4l���+WV��R�J
���@>��s#C�R111Q!3y�d�$w��II����,?�y�&-,,��9�������b4D�$<X!������G���q�X�dI��111�$� ��������������F��Z�6��}���������[��f��tvv��k������]\\����;trrR�����������s���Y�g���,Q��|��4I�^���$)d<x@�N����+�###igg�g���P�����h�����~�e�_�NI��c���W_}�2e�(�.?�����n��q�������������#�9Z�V�iI�x��i����c#!9���5��������oS�$���$����,�����*�����$������>�Z-�.]���V�Z�hI��g�����;����?�M)��|�>}�B.g��w�^j�Z����
���{���y�������qc������+LMM5z��1���]�R��Q�$��[�7o��S����������~*������3g�(��3f��$I�V���������++~�2}����e����S�$��O?�DI��n�d��A��y���j9~�xj4��1���)I7n����]�vQ�$����nO�<a�%8e�E���?��4g�Y&33����\�x�N~er����j����?s�7g�'g{^�^=v��E!3w�\ZXX�md��
��	g���������<{�,�z`�`R~�n�2e~-��>%I��
H����c��u
��^���������K�I��psuuE�J�����O�8��Z�*�������>CJJ
���sptt�������#��-kT���4���~~~������`qDPP�����
7n��3���8��UK1��R�J�����s����6668s�N�<�y��a���X�|�Q?���G��-Q�|y�n���m���Oek��U���u�d����
�]\\P�lY��L�i�'��%J�����{n������G����"~�!������o�_�F�~w������b���q���222������{c��5�����5j���w����-Z�~����{7���p��u4n���z��k�y������C�F�0y�d�>}�@&���:���666������+�e���7o����:t�"?[�n
I�������T<y�D1o���[�9��k�������������������O��������k��KO�2��wo�={�����M��r�D����1zi��|��������$��kW��Qp��
4o�AAA��O�����yR�\9�9s���ppp0���3�3g�`��]077G�r}o~d/�...��c�n�r�����?�AAAprr���5���[�~�g��h��-�M��i���j��&���?��y�\������������4
j�����8����'7�JgggY��2y��I���������s���A�[�
���c�����/`�O��.e�X�b����%K���������6��>����Eo9�H����}���{���t:����[a��cm��
����`��,Yfff�W��>}���h4�5���/Ri$I����P������c�h�;���7d��k�0$�/N���N��\����r���y�R��(?#��2�a��)S������Q�9����G^z�,��qssCBB����={�`���9r$�;�\�k����s�����A��5��qc�����=�������R�eM���<7nBBB�m�6���3f���#0u��<���<|���7G�
�r�J����$�T�<�����@�F��rwwGBB�"����,9���S������'��L��e200iii��s'������c���8z�h�v[�j�C��i��m�[��Q���������pss��]�������Y3�)S6lP,P.W�����+W��F��������������K�.�����k���}�
��=|}����/w�g�����9s��J�*����W_}��[�*���>N�:�Z�����������,��h���K&{-H�|������nh�����.e����(_�������g���Wwc�n�%v��v�����z�IN9�LQE�@���+?==��+�����7o*Fun������<�q��m���c��Qh����+ss�|GUM!  G�Qt�111�������gff$�q��}$&&�_�VVV������e_���_8����q���������7��
���h�Z����:�P�m�����������z��F�A�-0s�L�={>��?���|�F���_a��9h��!T*7n�}��a��=h��I�����|!]s������X�~=&O�����7>>�n�������A�-[��W��...(Y�$r�Osss���B�����G����#G��������D���x�e�z���{�.=zd��>��cii����c���8q����q���<��-[��������z�e���'�[jj*����
*`��M����ss�<
S~1���G�H����h��z�����@��� ))��\������;w��������?�~�*U��o��y@@n�����x����'8~��+�/�S�Z�|�d�j����0;�69�v'  ���S�8p:�N6LM� ����;��9c�d�1�Tr��u�����;�y��m��t�\�2�^�zHKKS�&����|�2���W`�&��+&����s���E�>}��_?��5�j���p��I��u#F�@��M������o����F�	�Z�;{����prr�������#�eaa�B������s�"44c����;w0p�@��_?����L�8
4���7222p����5�������)�����c��I�$	�{�6)~����i��1>|�	&�w��8u�,X���$�����[�.t:���0f��3�$�I�&x����=���h|�����f�������Q�0z�h���b��)�,�0$Q�zu���a������P�|�<�xxx�t��������3<}$��[�������7�����-[�������<x�#F�����������m�����g����077GDD�
�.`��Q&���OG��}aoo��m���������m-ZKKK|���7n\\\P�L,[�����O�� IF����g���c�����
�u�����[���.4n�M�6E��1k�,T�Xw����������_|wwwB��a��uP�������er��i<x���+�������8q"J�,)��;wNno���������*�
����7o�[�n���(]�4>|�����[j��{��]I\�x#G���������A�r��z�j���nnnX�j�?��%k��5��a���P�BL�>@��5�iJy������8�?F�Z���_���#4h�4i�5j�[�n�?>lll0u�T<}����/��e�I�&���>��f�B��m1k�,��������}�6:w�OOO�T*l���;w���9lmm
�;z�h�����9s&:t����hL�<�|����f~}����1r���K�)/�)�nxx8����~��a���HMM��	0h� ��h��)�T�"�&YYY����P�vm��-E��7���In���6m����|��<�����L��5�����F����#��������m��7oN�V��%K���[D��~y��r��q����������e���X�M��=z�
4�������X����F�J��"��C����W��Z�j\�`�����s��%6j��NNN�h4���d������j�]��n�������|�����"���-���W�[��Y�|9}||haa���[�����J�R,P����}{0������ j�Z����V�Z\�hQ�q��w/U*U��c�n�JZXX�^�z��};U*�ban~�/���i���C{{{�t:V�X���/�S=�J�Rl���{�Q�R,��Y�m�Fj4�6vfff
�.]R�''�?f�n���"�����kW^�|9�w��ua��
����V�e�*U��~E+��7of������hcc��� N�:U~���#0���������8z��-"433���;���j���XlI�_H��u5j�����h����V�Zq���F���o�e��UiccC+++��Q�����I�|Q�l��Z�j����Z���K����e@�e�J�2�B1���?������]]]iffF{{{6j���-R,.������k��g�*��$I�6�$�:z��A��9B�J%����7;w�L:88���?�������M��"@��?_���-[�n��Fw���������������:t����������b��'O�I��V�>-�2I>���g��ttt�V�����b���Y�����b���}��I��bdd��>���s��q�n-d�uf��ir���.�L�w�=�:u�P������c��1��z�*;u�Dkkk����k��F�$�-?�@ ����������R��o&b�@ ����[��W/a<o	bZ ������o=v�X�5�_�H�_`���m��#I����/k$>�������������>��
����;�s�N��_vA�@�6"h�@ ���9��@ A�@ �@P�-�@ a@�@ @��@ A�@ �@P�-�@ a@�@ �P
��O��o��������
�T��m����w���r������7����gO�<A�>}`kk�%J`��9����@ ��hS���g�P�T)8p������S��sg\�x�n�B��1}�t��s��UC�.]d��&MBjj*.^���{�b��Y��};���[x����u��@ ���w�w`` &N��[�na��U8t�����pttDtt4��)�\�M�6L�0���X�n/^\(~�@ E�7j��������
* ..����3��Y IDATN���K#..w����+W�+U����8(4��@ ���c@gdd $$���(S�<x����-�����_������_(~�@ Eua+YYY����Z-��������{�r������5����{GGG�3���.���$�SC ����
���(�h����/n����7�X�b�������r<@jj*`oo�%J ::Z~�
*����&������W�� .���yYT/��E��/Q�txx8��/����\v���bcc�i�&<~�S�LA`` ��)���'�M���w�"!!K�.Ehh(�}����WP4���*l���E��E�����B5�����x�b��������������u������7b���(^�8��������~'O����K������1b�7oprr*��@ �����]QA�����E����C�)l5���E��E��E����S�S8�7�����VA��yYtyYty)x#�����W�@ ���#����u�����b��A�$q�K��+q��@ o(��.��[�a��a��5x��Q�o;#�7�z����Y�a��	#��o���VA��yYty)xt!0v�Xl��u���F�)luo�u�����1n���VG A����$�=�X�bx���0�Fy��),,,���Y���@�/�l���0�_�
���	^QV�@���_����@��A��,:��,:����Z �@ (b
�k� S86���O{�������������0�6m�-[�����V�P�/�&����R�%F���vs���6_9O_-�vs���+*<}���U�@P��Z-�����}<�j�����'88aaa7n\\\`oo�q���$�L�WWW8;;+�^����P�fM������	m��Arr�"�3f�t���j�pvvF��-���c�\�&L@zz:T*T*�L�x��&M�XXX�B�
X�x�"\�J�o����u���z��er\E1��� ��� �R�6�.l�i����^Fz��<e>��b����x���
6 <<������o_�>}+V��C��� 44���C��-���SL�0�����{�0a����;������6m���3g����C`` n�������v����D�]�'N�XYY��������������V���OY���'c��)�>}:���^A�	�@ ��#�@�&^d���]~Y^d�spp0����S�N�n*T@�b�#��Y�f���/������������v���3g-Z���8����s���NKK���/���Q�L�}��)����p��i�G�����%K�(�o���d�@ x��/�Yb
���s�_�}�$	���
7WWWT�T���������ht��>>>������' ==��Kddd����{���5kp��}�z�8q$Q�jUX[[��g�}���H�5
O�@ c�
����/KA�>g���Lq/I��dee���Gh��9�+��+W"**
QQQ�$I^�������,_�����:u*��-���/���~*��#G#_qqq8s��B������)(����E��E����1�
#�\h��c������0����/�&*(��nIne������KjiieZi*neV�f�R�����,-��R3�E�
R\������A�30����~�����{g���3�{O�#��6�r�U���lpF��L}�
�������HII����Q�~}��#Gt�����G�.]��K��;��W��?��	&���^g)�-Z(������I"""��8meJ�B?�l���O�V����� 00X�t)�^�����c��I��
�|�
���k�={			��q#�����aC@�:up��=z)))���Epp0F��1c�`����r�
��=�o��.���F�a�.��p,��cI���
��Bk��X�'�H��oym�����7b���h��1�N���>�R��������Y�:�a��X�x1V�^�:����~���[�n�������j�*���[�?>5j���;c��
�W�^�>"""���U8L�*W�x����'�k�@c�����h6���h�v	�R88��!��,�@[)c�)�i�A""""S���<�4��
�1�g���������H4x�Y��X
��l4Q%��DXM���
�
1�gq��������H4Xk)K��X�-b�&""""��@�k��#""!!!X�z5`���u����k���s���l�������Pfc�����xq�	����������E��V��7�|�
�_�n���H$�H$��/��EEEF�o"""�=,���lt�>K�m��]�KO��s��a�d�g[���!777(
Kw���������%�"h+1��J�K�/��s���:��b��2�=����U��B�q��A�Trss1v�Xxxx���&L��������R��O<�>}�h�377�7���C5m��OG��
���������k��������'����C�P���
�Z���c��v�Z��9			�J��J��3gN�?��S���/�z��pssC��-�{��r#F��s�=��V���6m�U�7774�/����f���(���`�����+:t��+W�T�7ODDD��%Vbw���,=�K�m6�c�I����l����C����G����-�����;v`����_�>��Y�����������-[��E����/1a�L�8���X�b��1����z�j��]W�\���v�Z�������w��8p�
�?���"8qqq����p��	���K�?OVV
�E�������C��=�	���.�������_`��h��5v���9s�h��o���+�y�f�d2�5
�F����Y�q������t�H�9��,wk)]e�uI��'�HeO"�/7G�t������HLL���W5�p����8q"RSS����+V`����c��i���T\�|Y��~�z�7S�L���#G��E�e>�O?��A�!//0l�0�������z����������6m�C�		��U���D����W^y�g�����A��u�V(���?>���ooo��-[0h� ������^o_�tB�%������]S�D�Y
w��]S�7�5�{K8�RZ�l�5���m[(�J\�rh������[��y1
>={���y�0o�<���m�6<���������������s@q�F�N�*�����nnn��6o.��ONN������Axzz���
.\@bbb��733�o���s�����	�P�fM��j��w�R?Uk-��Xc�8�nj��*��"]����4�����I����I-4z)��2��x��gh��/���!_�F����C�!Ci;���uI��%V��G���~��T�cJ������������S� ���u�?����������������/��2���+�����m���l����17o��'�|�:u�����<�!%?E�Tz���^���r*R>�U��zu
�T((R!��@���k����?�j��R
~.>��:W��K5�:yB&��W��v\z��}�g��L��Jt	hk0@Ol:���\��{��g��#��{�>%��Ri����7{{{9raaa���=�._{�5888`������Ddd$���8t�|||�N���e���-Z���}��V��W{{{j������U�������'�|����rrrp��U4i��B��B???9r�?����M�����a��,(TUh���H�����~<}����-�p��K%RTw��/`����8h�}�B��}�(����|]�-b������['����j9�b�W"55&L��I�p��U��9������3���>���WGHH��[�K�.if{`�����u+�?���c���7nZ�j���@���!99�~�-"""p��!|��WZ}�:u*Z�j�!C�`��������S�P�vm�n�u����;wp��Q���NNNz����c���x����R�0s�Li�����rk�&O��Y�f!,,O=�v����{�j>d��P��8���q;���=���AE�"�~���R�Jf���~�����
x;*�������f������DU�m%�8�{5f_�=��R�
�e�m�r\��X������~�����
�<����1p�@,X����#//��T*��!C0b����4W�������qc�;������c��!���?��[7L�>��MCvv6"""��'�`��!�~4n�����6m��o�T�F���/�������C�n�������(��9S���f��7-[�D�50u�T���j�l���F��7�|����4i�����GL�<}�Q��<�N���.���X��u�]�
�]���4�,�r�vR9��r�K�������u�EF{��J�������y�x:������WL:�]_�d�x�R���FQ;v���7~������5
��������~l��b��F-���l��6��B��P�j��a=����!YV��\*�TR�7M)������!)'I9��� I9�������H���R�M���s[�G�GB�w�-�w����!��Yk����1�gq�*�P)CLLN�<�6m� ??6l@tt4~��73���n���m���C���d���_�a�|��������,e�eaQ!��<��q;�����������2�����jS�,zfr��*RJ�"bZ����R������u2�r������,��t��%M����\��v�; D���(��`Em�z��Q���M_y�$���!ds����*Cx��+V`��I(**B�
�}�vt�����4?�L��[�b������CHHV�X���G[�kD�a�������������^�r�/<�����[`;(�Z�V��t�r��!��O�]Y�opv;������~^R�������yHUf 5/�����*%����������������`N~$qc	���������b	�m�7k���I��Qf��B����m���]1 ��9y����`�EZ�p_�������:/��.CJ^�������G�xj��tt���;��rp/��@������a87LL�Y�&�M����q1@�&}���CWYj�V�����
�����Q��=s^���������.�'�rz2���pKE�(>����
^���k���'������r���?�{����%��d���=��D���\!m�[���\���R�NR���=Y��$v�
�j�)y�����+��rz"��������WX~�%8���$w���NrG8��$w��;��$s��s���I�+�>+�V�P��=��D�{�d2�����LG����|899�,
C$6�����K@[
��^u"�l�h�^	��f���E��}�������,G�2��=�W;g��t z�EC����G�C��Jy4=���Du�������m[3��l��#G0l�0\�z��]�p��S��0��/���?:����_5����FUT�r�p��hQ���e��2i�L���D�2��JE�M*����?z�E��h�U
<� �3N����T"���pX������o_�����L4i�����'��o_,Z����!2�k71��
l������y��Cd4���������"������x��2q_��y'V�n��*_����E���/�d���j����?x�AC�z8�r�W&�A��6C��6o��>�7n�@QQ�{F�N*�"((�����A�,�"�I�M��'���[QP�����?��<�qb�A�����,�G�J��Be���<������=�0�������W"97�J�2���>���{p�w���3����n�
7{g��������g��4�m"bz=���\,>�>=�Ye,�"wB�*W�m��7��)�bE��s�[��w(.���������T���
�D
W;'��jW;g������q�7.]o��b�>�&"�'���nV88����P�5�~����p�A��}�z���6o��o�9�J3k����-�<��%Y�1_�����J8�)�El�u����i�{�:b���zf���H*"�#1������}XMDDf�V����L�g.�'��'����z
�C_�\���Y2~"}�&)�����.vN�m�p��Z�9��KO���Wq��u|y��2�]1����*�3�&"�OaDD�g�)���R���/�o1�5�W�K�������z"D���d�� 3?Y�U��\��_g�XW�S��4Eyg�����Z��	�=�Q���Ma��/���b��	AE�LR^�vA�
��Y���G�uvA&��I��Q%x�������S����b��X�����H%R����O����o���X
���W&�I���h""zl����tx�Y�=�����^uM�+"�`�����nG�g���@���>�5��WS�aH�M�Q��x�fs���L5���������IDD$_^�����)z�/s�"�]b�>RKw���EGG[�d$K��Y'�(��c)K�E�DD��j8{��g��P���D��5����x�����l"�>b�>��&"�*[w��90��~<���������	����_���1j<�q�@���s������]�*8����$[��@Q�m��+F�1[+<��2|�1z���X�����5�&"�: "���va��Y:�����n���,IL��%DDTa�.���Di�g�D���}��LD��Md����c�x6_�#��B��H�&���9�C�����}�X
��l4��������:�yS�|�X��{FDd~��61���}�����	��=7/w�`�����)�p�����%~������\�g"-h"X�'�����^��,�H���\���`�8�B��$[�MDD:�^���{?@��P�&�H�����g""Kc
�����������0x�t�����
}��=#"k&���h""��vu������l�g"��0@��<��X�o���w�Vx�@�5�08��L�R88�d��������=�AUT*<w����]-�3""��hS��e6f_���G���w�������%�����0,����JD6FL���D��$""����F��cp.5���$�����0����*AL��%D�>O8�>����4����3�><�},��cI����H$v'1�O
go����!"�],�01}�AD�A�<�B����0qO�H���}8MDDDDT	�D�>O8�<�)��p�;�/�#���11���p,�1@	����������R�72��zDDd�Xm"b�""��[�a�;
��9�m���>��n�j�����)��-�""2>�Z�%�6a��%(Ri����g�#�3�mD�AT�q�DD�Md@tt4""",�
2��e~a^�s���Y��W���vSa/��@��G,c)K�E�DD����~�����SZ�R��=�6^o2��B�#"�@�������:\��w���������]�)�#<��B=#"1S��4���qC�NGV������ka{�������zFD$<����F�pq,�j5�������	���Z��Kk��8�b��$[�h""�_X��?��K���6���X�n*�d�3ODdl��61���%�����Sq��i�v�D�EO��	<Y���LL��SDD6&&�
z�z7����������-�3""q`
4���!���7��3�F���`Em��V4�YcI�8�d�8MDde2���}|%v'A\z��G �9y���3:�w�
�wY/G���JD$J��61���d(��a��K��������g��dA"�81e��%"�"����Px�Id�������zEDD�b
4���[���G�#��v_"��lcI��$[�MDdEJj��S5��-����9��D IDAT�k�MDLu@Dd<����O5���{BDT9b�>��&"�"�=
��d��Q���`}�p��X6��gp���6f��u������X�-b�&"�w��p���Kk�������#""��5�&"�: "z|E�"t��
�������<��Q-�������#"2LL����&"�O��	���_����Z�GDDT�p��<����<t�f[�������>�B=�~�:�TyK�E
���-Cxx81r�HM��7 �J�����o������J%F��B��5k���?������#,,...���#�r,Qe���c���(Tj�|=���<��2�����b�����3f`��Qzo���DVV���0}�tM{TT�^����D8p.����)))���/������4���c��&?��+""��] #���T���?
7s�j���4�����m������X�-�h����z��ooo���m��af���B���0�3k��l��
�7F��}aoo���(�={�/_6��DD����w��pH���'�����-�#""����.�����@��]�F�Bjj* --
IIIh���f��M�����.h�����z�����&=����y�aMcy�n�?��V[��M0��x���X�X���X�-��-�H���U��'N 11'O�DVV����(
��
�YYY���������vSKDTQ��,�3
���u�n��!�d�8�������g�]\\���O|}}�l�2��Y���pu-��iff&|||4����pssCff�����n�c�1b���h�������7��;""����m��V����d�'�AZ��C}9o��@����-m����p�j�%m��nW|;::ZS�Z�w��*R�1cn���5k��������Y�&222����[��;w��9W�\��M��z�j�[����������O�Fhh���-ML'��[~~&��P���&�y�w,�#""�S��Z������J���B(�J�T*;vqqq(**Bjj*&N��:hf{��y��!==�.]��_�#Fz�����l��
yyy�3g�5k���P�K�Uz��l����t�%�sX���-�5���-�#�e��$��X�-�h��;w.������c���prr��~�k����^���;�4i'''l��Ys����Q�^="""S�NEdd$�������O����?����&?���<Y�9��}�h���\�)�#8��-�3""�,�(�"1}�AD�S�����/^����#?B���,�+""�S���4����Y'<�m�"�3��b�&2��y�a���I��I�>�jk����y��}�.��cI�����Dr
r1x�4����6g�#6wY'��{FDD��5�&"�: "���?fc��_���t���������)�p���6���	���wgx&"h"X�'�����pp�V[�G�x�]�<��u)K�E�DDF�����=�#G��is�9`s�p�s�`����XXm"b�"��^?�+.l�j[1�4�c�����g����d��}:�y@p$F7�m��)0@��<�0�Xf(������hS_���C�<�����O=�Z�*b$�����u)K�ErKw����d(��a��K��j/���.�$rl��������k�MDLu@Db��������r�i���{�4S���,OL��%DD��;���}�>H5CO�����`}�pk,���s)��Q����R88�d�������*�5�&"�: "�i����Y�0� ��Z�>DDB"���h"�J����>�����l4���c�e}��roo�������X�_����$[��@UBf~6�_���0� D�AT�q��3����D�TD$&S/��g7j�d�8?p�*jY�WDD�'���"�
��_��^@er�a�DD"�Md����q�R�V����AUT�i��Z�=9�=����R88�d����*`������Q��O��g;G����,�5�&"�: "��U���������i�����_A"�X�gDD�CL��3�DD|zz�Vx�IdX�n
�3�H1@��<���X&d�����j�Mh�����S�m}2�I�����'�1���%�"h"�rL9�9�
���jN����X�������`�������9��=""2-�@�������j��c��c�V��30�A/��zm[��)/_)w�O�������#"271e�@�QP���}����o#���B=�n�f�9�LDB�Md����2c�e���M������H%��Y�Z����P��O���]���K��X�-�;Q)w�b��UZm#�z�e�����:�w�t������VB~���������p��,3����4Xm"b�"�����K�h�����
��^��u�;���������U����}1eA�|�L�3"�1e�@=����Z�f=5���?	W����xtkv��������E_���o����g�y�]�����������	���,R��8���.^k�����
�n�c��k�;���K��I�v�
l?�����i��� �'��W��q���mbNeW�?|]
��l��� "�kbw�D�E�����;�x�T��/���IX���r��$�DkW��QZG(
��`������k`�D	�����	�q%6W��3�d��S�1d|
�=�6�=�������J�|D�(�@������� -/
6����tM[�z��}��-�+�y�S��Knc��$de��'��&�@��:����8�h���/���o��97��@7��T�������,��R�������_`�#��6�\�����#���m"bz	��}�e���l;�pa��p�a�^��RY��W����n!�n��}j�q��sj�� �d�C�JU��O_�LJTb��7����z�m��Q_�Ah#�*��`��GL���D��$���hDDDX�de����+�2���3�Q-_�����w�U�r��T�a��g�B�W|ao�������9o\G�5��mr�#���7f����L�vc�.U*5�;����}8�l�+b�>�-�#"B�" ��Z�����������o�u�=�`�����q��a����F
8��������m:�c��IX�����xU*5V��_6�`�� ty��(e�w�{�b�����\:���	�%^�Q����tp�D��)���m����{�i�m{�S���w[����,���#&���)~Px�v����\�~���=���ex��J�������{6�g�Y����K�cw���1$�fb�>�&"�'���)�E�M/�f�]M[d�6��}i����Z7��A!:������C�����b��P����zW�m����c���s��U
��Q�c��!��\:������{����	C����}?Db ����@�k�
G������Z��N*���L6X*�s������C��r�_���R���u�0��8��q�`x�=�{��#jY]��g���������c���;���SZ�wn�c�����=�;�S��\��=�]t���Wr�A����d�XMD�t%�_,:�Q�mb�A��d�X�\������[zo�L/��q������nh�Y�g�S�qW����j���?~M�����?�z=)��E�-��as���"\\exoa ^|��&\�?3�v���o���f.h��
�;�~g����~���Q�	}/c�����l��o"�m,�01}�Ad�z�|;��l�t����?���p����>������=��M!C���a�mg���rb�2����_����iHJ�\�`�%'@���R0s�udgVnF���
�;�As����9�N�S�bJ��3�UHKQi��{�>]l��S�*1eh������J8��;��j[�i���j�������^C��E�*�?�OwV���h�Q����W�$�K���,����������S�]=p��t$�..���K��R�����\��^�4wF�f���
��T�e��d@���]���%U���_������.��^e���������I$t�F�pDGG�M��h�����H������|]���Z����7�x��2��]�S��?2qx_F�/���3n�P"3���V{��%�i��:��D���h��R�D+(�Jz���8'<�7f�c�T��W�,��+��-�k-=ng'�����d7�<�5��Uf�7V8��}x!��������,i7���\X�����u��T
�4�a��8�6����������'p���pu]t��
Oo���\<��`x`0<;8J���'����C�>���������)WH��?g�������9���cZ��'o;��j�6Y.�@.���U��������}���KqH�[�[!�K���Z����I�8m"b�Fd+ne�C�M}��z8�8�Q_|���2���-�����w{�V���K�EDWOD68����q�L����}8�Wf�f�
��o��=���'Zwp�P���>lb����g�woK������ZE�c����
��f�m���,CL���D��$"�V�l�>��� .=A�v/b��oG����0��%�8������a�/a�@��h^n!N������S9>�D�������4�as�J��VR�`KA�$��`1���M���IZmc������&ls+,T��=�X�A".�z�w��/x`��:�T��I���}�MDLO"�c}�m�Pf���18��iS_��$�a��'m��[���=��M%F>�����Y�k~o�����6c��)8��8L����J	���':��BDW�_��Zl[�������Qo�<�J����q����������z���v��[���-����U\�R�s//�ZG�?��I�7V8��}xh"���Wj�g}�n�m���#�������	k~o������1��c��|�}��j5V����&j������?��c?���9���
�=�\.��������p������W�������cR��8�[�_}v�U��2EE����c�O���	/O��^C|x�l
�@���>�Y�F���-�xT�Gbo�j;q8c{\BF���|O�s������4��C�:T��Z���Y��<����	?��D�dCk�����o���o�i} ���^�����W*E�![�)��1�1t|
�:��#	�������IDd����+��j�	�����>&
���td/|�]0���l�RsB��Ww0s�u���������^d���v����wq���rW�tt���oS	���2�*��o@$`��;�tN}4������5�����wT�_m��}�MDLO"�c}�m��K�@��Uw1�5�R�ZQ��@&38��	s��R�K�Z�)#����N-1��@�~��,}�LX|��d�b���p���s����VG�!>p�(��E�sP�V����X�����~���)�0�XZ����KL���D��$:h����e��j+��<�p~��b�M,��] ����1a��Egm�Rs�`��e��B�k���gae2`���h�����
���R�X���Y��|0p�/�>����^�s�V��}u������*��K(<ex���w���V�(���2K\�b�}����������IDdm�r��x�K��/��po4���`���Z�R)0oe]x��'������ �jz���Z����;N5A
���V&���	���}��^~]E��y����)�`yGE��%V��H���{I����{I����.���|���DZJ�U���W����8������������IDdM�s��q�X��]/w����x���8��R��d���=�L�M�;��J�KZmO�u�w����!����Q.�R����c��IW���2�e���	/_;���r����������K_ot�����[�4���=+/���m"bz	K8lG�2��3)�+���� � ��Yh��	���B���;�������~	C���u�d}��u�x���b�v���7j`��:&}���"��p[��gp��O�`����>�.��;����J8��Z
;<��7���F���4����W�S�a�61=���Z���|�����q��9�v��MP������}��Y�kw7@pg���u���ea�������Z��6�����fe��y�]�]|w��>)��M�>��a���h������C���	��.CVF���������g����_n��.����n����5�b�>�&"�'��������M�u\��16�+�B��+��������v��'-��Z������@N�R�x�1�71Nx�����Knc�����,?���K���b]��.)�X��6���V�����Q���~���g�j5���}���S�xu�Gg]}���tg���V�`�`�����m���p�ORl�y�������zk�=����N�Q��S�a�61=��,��P�~����i��I!g�HH���-�-^ ���]DUq�d6�?�|���������D�)������_���7�h-�R[�L�7����d���B9�I��&?�}j�U��\�5���"������`��i��2��:��~���)��-�k���������"����	�b�>�&"�'��Y�W�������}�-W�j������-G�fW�j�JU�\oO,�
���/$������{xo�U����<�������U��8y8�&a�/e��:9K��_����w��}����<Z���Snk��i����"D���][R�Gr
\��"��w�J.&
�G����Bd��/���w
"�IE�"�v�C�����.v����nx}F�2�o��_n���LF�o�/���j��sV~�T��������>�=��.���|�xsNm���$f.�������`G����?�9������3j5���Y���(E�>�X�9������P<���U������oLF�'���g�x���+��-F��61}
#27�Z���a���Z����8�{5j����=
�^��s���Go����3�2�������F*����<�Q�1?mH���&����/KP�c����/W�YV��1�J�U��zNv!�������������_����K�����U��1�db���:+d�5��7��YKW��l*���m"bz������'��j��Z�}�F�[����?31��X���~5k-_��0�JP���g� �be���rOl���N�Gd�2�[l��Xs���Pa���0}hOF�5����Wk`�?���s*���F������z������,��7��[L���D��$:k������b��eZm���q��*�z������/"�T�1E�%Y���.����2"�z`�?�j�.���=J�R���ht����])WF�
{~��o?O����2������+���?�L��j5�.���Stf�%�`q����1�-1e~ID6c��-:�������R�/�����cu�s	���9����T��,�r	���]�����
�:B!��������S�~�|���f�]��`������w�1�4�s��*�Rde�&`L�K���
����	?o�����<w�r	��	g�MDL����a��_1��(�6W;g���-�7P|����/�~���g�����u��g2���"<�u�9�K9\\�8�:FL�	����5{�y������L����w2�kh5����:�NFy��d��!��w[w!��c}���Apr��5���}�MDLO""S���>�3
E��A�Q���������n���7�7f����k[u�%	�w+�`�k����Z
;��T�_��k����'?����d�����b:��J��}0~�?BVm�S�J��������P:^�)d�pu=t��]��61eh��H����R�v%B���AA��Ye;�?u]���(>ik��1HJ��z���xoa $���ZR����R�R�C�S:�M��Q������ppw5������} /((��
)X>�&���	��K����?��V|��[	J�5$'g���DW,��ZA���)�OL�G��Z"�j��N����j�g�D�M�}�	�w��1����2t|uMxl���S�{ IDAT��E.����:����Ack�><����}t��lg'E�Q���>]���u�Z
��!�����}.!�T�����-����	�	��4l>��*���p�D��)�����.;�#���V��N�1�~7@��nW/i��wD5,��^�V#2�GW��k�g2��B5v���/��D�����Q�5����<�Ia��}\b�>��KDV�\J<��:Q'</{�=MxN�_��u�s����k�g��^u���L&A��>�u������V�\ZDW�z����g������S���b}�-�Pfc�����xq�	�D�B������w���T���bq������{yb��e�0��[KS��g�lm,�J�Vc�/iX6���J�eg'���0bRM�� S��)�Dd1�lt�>�R���K�����h����B��~I'<��������D���,4��8I$t���N=<q��t,�s������q_�}(��p5q/��8m"b�FTUo�K�m.w��>�q��FH$(��0��%����O����fW���}JT���6��Z����X6�&���{u�O�u����������)�p���,fw�������H$��/���.���'Z�b�/�d��
=J"�����|�16�kG'�H�S��6���,6�DDGG[��UR�\�K�7�R�1y���k��m��p���5����R88�����v���uu��]�]V��������`��Zm!���vO��FD��s��^�90�Q�Z�d=Xm"b�"��F��������������B��`#���7e����j��dLy�
��u�Z+�1e�@��t�o5���	���t���
��HpJf�9�l���`}����kQ��v7�����f���6��~���xK��X
�����r����A"��m��1��*���m�;��t�<vv�4�	�UM�
�!����DD��g��hSQU���v�Gh���d2n����!�������,}#"��S�a	Y��g�jm;��@_xvp�`��F�DDd5��`}��]�
?_��jS�yNg?�X�{4
7���K��X
��l4�����km�'����0���L�C��
su����BXm"b�"����;��TE��6���a�Os��|���WB��NDd#��}x"2�Eg6h��Zv� =�Tg�)q	[""�N,� 2��y�����ob�k����	���"S-"����pp,�1@��,=��*�f�C��;����E������D�TDT������;2��5m5v����������v��������)�����b��mZ��Q�
��m4���2L�_��r�g""�j,� 2��y�/O�����i�9�n��A�=qV-~��I���X
�R88�d�8MD&�>�W�y����8�5��f�N�#��^�3�DDdXm"b�"*��H�����Z�-M�������f���a�����#""#S�a	���������P�?:h������LDD6�����U�Z���S���\���<�80��L_d��p,��c)K�E�Dd2�%�����
E�����|yb
�s�@������5�&"�: ������}F��|�	T�f����/?w��LD$b�>��&"�8t��Vx���4�?y~�3�$h"X�W5�\���x��o�4l��~�|��'��pp,��cI������l�e��xX�M������%u ����DDd��V}��%�����'�@PP�1��������!{���+{4����P���!�]�{���C-�;""21e�*�@������q�f{���h��1���
`��]F� ��+�������{"!����0�B=#""2�*�����]�v�������c���HNN��+0g��v���X�W9�No@��H�m�TN1�c���?��R]�X
�R88�d������X<����T�=0d������Dd3n��`��_����<�Z���1v���zFDDd<U
��s����C��C��RAA�h�_H""",�����w�/*�l�R��r�I����"�T�p,��c)K�EU
������A��d�,X����v��1W�~�-[���p8::b���Z����aaapqqA�������M�Tb��QP(�Y�&>��s�8�H���2����Zm�}� )����n�1��B=#""2�*��>���o���W_}Us��3g0v��
����?f���Q�Fi�����o���?>����hn������W����`�����{�E�%�b}^�,������mi�\�n
���$��/[����pp,�&�CJJ������G���^�r������l��������qqqj�Z����W���Ws��3�����=������,��������M'������#��uqD���xKwO�c)K��X
���O�f��=
???T�V
���8}����x��.�Y�f�mggg��W.\@ZZ����no��).\�`�cI�X�g�����������:���vpu�a���L�R88����$[T�=y�d6���G���1e����D��vsrr������P(������l�v�� ;;�"��UA�
��l�js���yN�0��j�[�gDDD�!��A/^���!��1o�<<�S�hWWWdffj�eff���
����m������"��3b����h�����vI������<k���mo��	���P7�@�}�p����[Y��n��YK�]��3g���7����p����/����nGGGc��� �U��R����������Xu$�k�W�Z�U�����vvv��"�����"4����V�_-Y!������P�x�KZ�����uqD�oG�����c)K��X
�����*�;//����a�0l�0<x�@k{�������B���A�R���J�������bbb�m�6���a��9h��BCC����y�����K�.������#�{����$\%��I����v�aC���:�]��{Z�ce�X
�R88�d�$ju�W=����D"�)�(i�H$�5kV������QQQ�9s&�����_			h��5��]�)����k����[����	������<;V���H��j5���2N���is9��_��s������#""sS��R���i���)�KLO"�������<���i����>��{3���P������pp,�CL��J%���3v?���||j���������IQ�-�#"""������/�f��>�����w��j��P������N�j
����,IL��J��+,,��Q�>;v�R����-8�=����n�1`Lu�����|�����0z��r��~�z���
���l�>��� .=A�v������ �d=G[��pp,��cI��J�����H��O��q�q���(���wI�������f��e��D�TD��R�Q���q��}��W�D'\_�r�u�@���)�T�*b����\.���%��I����LDD�Q����m�~Y���hKw����7
�sK��z���>�B���%��*h"""""��R
4&�: �F��������<�3x��zDDD�HL��3�DT�.m
���=!""��D��>o�S�P������z� ��83����>�B���%�"h"*����Y�t��%�1�� D�Y
w{W�����2Xm"b�"a�������(��4ma+����>�ti�)�p������Z�Y���)cZ3<�h1@ ���u��hm�Km�!���Po���RH8����$[�MDe�.x�s�Zm��w��3�k�MDLu@$\������fh�e�=�0�W��w�`�����)�p�������Z�u��dx&""�c�&2@��y��<�.:����^'��8�:�B���%�"h"���3��N����y��>\q����5�&"�: �g�|G%���:;!~����Y51e�@�ea>N��j��
���
"""ca�&2@��y?�?�]�f[�������`��C�c)TK��X�-b�&"���]k�����b��Y�@�����HX���E'��?��������u�`������)�p������[+<K�\1�g;������0@������������$��}#	`��}Y�RP��EPD�aA��.Vk�U����.PED� 
Z@���QY���2��P��@&3������.���x����3�����f|�9�� ��Z���Q55�n��2zi�fD���*siM����7H�M1�)f���Ns@�������w����������hV0;ev��M_���q����S����?��J�e>�x�q�.��c���T9UT���K;���A/aFh��Ow��:��cGq���>�w�����;���}�1}tt��8!�7�7u��v��c���4�e�,�s����]Fx�h�v��[�w�~���>v���W��aE�a�^���z	3"@��U�O����A����j�o�@{����`n�a(v��*���^����4��4V0;ev��[�����8�1������oh�V�����9����.������.���N��u�K��1�0��P������*0��op&�@{����`^���U����S�N-i�PW^u�������;������������O}U�9��JXu>�0-����Z�:�d��-X��vD/��^����7%���|h�r�8��
���+|W&����i�t��S�������m�u���U��W��N���)�Z�c�������g���-�JXq>o��]:\��S�t[/��oX��vE/��^����
������������|T
�����i����@���}|��[��_c|X����}��lf{����2�F����
�d�@%�6��������Z��k�����e�^���z	3"@6�p�
�����*<"�G�`>�@{����`��~P�9N-�9�j�l���wE,�N��h�F^�r��q��M5�3U�9��JXi>��L����G{(2���jj��ziw��:�%��
�DV�egz����JU�y1�%v��9L\����9�}\��&�i�\����*�U�)��
����<�7�^Lx���JXa>�����}�wk�.����z���u�K��������8xoc�
h��j07f���Ns@�m^��[��7�73�aE��S�a����dkG@������Q5�����������8�#�CC
������{�S��u�K���Y�=��[dwW��:>��c�K�4�u�8W
^�RF@�{mr�t=|owV�";ev���q�Gx���F\���`~h�f��{k�2��&?wWR�}�7��Kx���A/aFh��r��k���c���<}������i�i���u����������w��E��X���;��E���s|#y�E�gj������j����M����a�^�b��:�%��
X���T�r;�k��]}X�����i���������q��������r��N��������BM^7C��R;�gy��*�����z�*���ygR����?y����<���*w��3�$t��<��
����UG/��^��������!�T�p��)m�OeC�����Z�kb�K�4�k��u�g�x�k���w��k�"���)��
�\���J��$�d�P�`}h��:�Wp�H��������RL�_{�����A/aF<�0��cE���]=�i����U���1)�+
a�K�4��QX���}�N���IwwL�����Be�+��
����_4��w����sq��,�����������X%��4P	_������7���������V��!����j8�1]����)~�������tw�4�xEQ��Y�_b��:��u�K�;���)*-��[��?7�����^�(Q�g��\�[	Q�������D^,����m6I��}w��NGm���1�%v�B������Yk�=w�$�UL��j�[��y��f~�g6�����
�w��RU�X���U_w=�PQ1��������'x����)����N�P5y%����m�o��
�:u�8^�9Gq���/S���
�%\�\�G�KQ�6a^�r�����3���)�0
T����&��q��,����(Q��W)��I�Y|��4����Z�����1<K'�3��<f-��^Z��1
���3i��R��]�8ZG���*���
,
WxD���{C��S������#^b��@�\.C!/_T�k�>�RQ+�(�(\�4`x�x���]��8/v�>�@��:����$u�(\�>�D�/��VY��o�@%�w>�0M���*]�<PO���������������u�K���0#v�/�-)�m�=����J�w�He^��(^��+f���Ns@������!}��S��o�Lk�^��d���P����6����U><�Q���r��^r��?]Gx�$�wb����JMM���G��������W�;��H����������<D���ZQ�^���K���0#v�����o���!�����T��{t8A1qN
�����MlHx�D���;��]�Q�g7��#_O�������*~�`�m�P����h�������+�l�$-c�`v�>�p��pq�F���%{�(w.xOc��~����\���J��w�W@���<nbCI�{F4�=F8�J���_���n��0<G�LU�g�UPv�Zu���:��{���$������U6*��f��^Z���
TS�Q��7���_������F@Q�����o;H�F�_��Dc�	)��*;��3�^b�9 ;9T��+���Yk������7n��H��]���j�����A��>;ev�����j��Z��F�s�J�Z�$�}���r�&�%��=Q�/W��~r����qz|FS��
���@-`�K��]�����������;�kFf�-#+�>�0\ugUXF{�G���h��	r8��G<o�:��u�K��S�a���3i���T�gG�K�����_!gn�:�����[�q�/W	|�h/��waV�r��{?������W(fq_9���/�4vBo
����;���8��*�gI�]�_��C������7�wk�9����wU�nd�[4*Qn�Hx6�7k��:�%���tjj�BCC���H�i��}n���JNNVDD������#G�h�����PJJ������u�u/�+�������*]�0���|���#�\�G~���M���������$eddh��1�3g�<���0�q������N��������9s4v�Xm������|�������hk��
�9�	���U��x��u�K���0#�~a���5t�P�5�c���RVV�f��-I��{���i�#G�H�����������K�����$=���^�7<<��F;
������i���I������*���n�xEQ�^���S���hI�0a���W/�Z�J��u�Vu���}M��M���Leff*00��%�S�N����tb���<���I�3T�}�l��9�?]�����I:1�]_w�O#<����A/��^����)O=����k���`��7O�����M�TXX���h�k���UPP ��Q�\TT�

N�����+����%[��>�Y�?��|��I�{{�Bv7U�v���8V/��O��FS���/M����?����{w����y��i��%���P^^���������t���sQQQ���{��\e.��X�G�~Qy�
��w�(fq_E~~�b����i�������H��������
�ZZ��z	3��]�0��];m�����{�n����e���$����;w�G16o��v��I�W�=��#���"I�����^���������uZ�������k6H:�������������Si�N]�?KS^�Q�u�����x��_|��/~=s�1�s�/����z��7%��w��o�D�������J�����IDAT]v��N��~�m�=Z7nTii�z����>�H�;w����UVV��s�J�����p8����j���������]�6m�h���^����4H������/��m�*<�S��3H!;��7�Qz�_)j�1��u.��U��u����]2jAzz��/���ziv�>~�]ZZ��'j��m
T�6m���E����^zIC�Qvv����
����{�O���#G*11Q���z������n�����E��+)��u3�4k�����$��I���z(9������rJ����8ZG1����U��a�0=�^���>NG���t:�Gt�S�v����]Xm�+)T��o��wT���u]���8�1�t��
���P��}�v�����4j�S*�S��������Q!;Z�_Z]=�T�.hT��U+�u@u�/����t��$X1��V
����Fv����i�����'�0����A/��^������8�����<���t�K�u�-��2�����i��9�w��u��zO�&6TT�'�mv�>$��/�G�U�����5
K�C���NQ�V���i.����V�%���������<����A/��^�����)����?,����J��X��&u]U;b�K�4�m�o�5����_�=�
�P&W�!IRhv}�zYoM�x���#|Q*�e���4�����>~@�E�u��P����o�$}<��$������K|Q&�f����e~�k�].<����z���������-��<D��C�p�W�`>�:��u�K���0#v�����4[��Rn=rEo�/�N�|���rb�y����N<#�����;���2�L���m�[�\�����rM}��.��^w�N�>��;ev��7J��-+��wv.�<�
T���J��]3>n���=N�@mb~!��P}�].<;�C�8}����X�V�-�k�y�A/��^Z���
��WtH�,�[���������c��x����Z��Q��0�%v�:��^}��������7�5��@o-o��f!>�T���;���5�7��%�*�$�c=xw�_����zky[�� �G��4|�����r���s�;���w��6���y;����Y��zi�f�4j��-�����P�Q���EO��}�.�$V3�Rd<��a�K�4t&y%���n��f��������:�:R�W����P��W��k���;-X����`��C��;�!�H^I�z�[�'k�s<@q����5�U��������dfc��CRA�[8��R�L�RxNx�6E������gf5����|�u�K����A/aF����/W��J���Q���3�����r8�DA����;�3FE���U����h��$/W��N������BxfC��W4��W�5�cR�_H
`>�:��u�K���0#4j���}:\�S�uW6�Q��,f���Ns@��K�Q]�p�6gg����u[(}�+�
�����7�)���c�n���r�9��TH��������i�Qc��4[o�\�����j8�oJ��%����J~C�]z���3�y�A/��^Z���h���?|�	_����S��=T7���u�$�xF4��1�%v�����~��p�����~	U�������O���y�����'��L�Ev�>h/�����b�Zp��=���b�C��������5����u�������"�d�h��0t���<����E��t��^����bNL	9���g����^Z��z	3b����o��]�=��6tV��Wh�g���I��*�F8������I��[|���5�t�����4uV{�����g�_c���3�
]��Gx(
S�������g`ihTKa�/��>�+8�X�P���h��m4f��+�K���zi��:�%���*3C#WLRF�n�����U�����M�p����U���Xq��
�k���=���u�o����tPt,�I����}����*Y��=���kA?&����zmu�3�
F8P��Y���7
�+�����{����W�|�u�K����A/aFh�U��"]��>�
O-��M�S��F]zD��8`�K�0Tf���%j��t���4��������)�+d��bg���������t����t�CI�)
������=�5��k�Y
u�O����l��:����^Z��z	3��	(g{��-yX��Wo,�P������
��.`_�@{�Y���J
5y�-�Z���{%IN9����E��|��Z:�%7��7��1K��	�@�����t��ou��)*m����Gx�T���=�?�@�@�V���*��\x>�s=�4b���������y�A/��^Z���m��t��������4`hb-T`�@{������U�:���\	0;3d���4P
hk�\�5�cR�_��c>�:��u�K���0#��%'Tz���{�B%���������[���[d?�5��P��WQ��3���S�x�
9��?�s�gx.���#��4�C/M�>��p���e����t$�g��n_�Q��.�Z���r:�)����+55��e��K����A/aFh������}����U����0�]�/I�g��`�K�qh���������Su����xQ��L��ub�
������m?��>|H
<�;�0\�zH��<�4�3@�x��
�w���PQ`���2�R7��G����L�g�Z��zi�f��
�[�����XK�����p��u�f���_�����������]��i�.�������K��
�pXXf�^��|��Z��X=��a�3�9"@[�/�Gu���t,����+P�v�Iw����
3!����^Z��z	3b�����E�+�l��z��o��]%���g�s����rh�7t�WOz�E|�U_����u���@�c������k���������	�g�@����������:P�^s�+���~k�+37����^Z��z	3b�"��2]��a�A��v���is.a���0�%�=4�������=�b�\��'>���Bk�`O�@�TV��N�oz�c-xO�^��~�3@
#@����C��x�S���it��5��|X�u0�g��:��u�K�3�&Vz��~�>����S�eu_;F���w�X3�^Rs@��?��v��XK\��{�a%%����
�k�@��-���\x��Z3G�Mx�"�	�����xF���sz79�w�M��{\��b��w����J�b>�:��u�K���0#f������t��ou��)*m������4��uZ>F���+�f���&��\.C��L�O]>=�u!;�k�}o�ACF7�o0
��t:dt�V�u�)��g�ZB��s��+��P�O�P�}1�g��:��u�K��f�����������{�zM��m��y�\��N3�<��O,�yH��Se!����D�m��U��*�{e�^�'1��'��WR�2�w�
��W9<w��B����ru��|�u�K����A/aF�@�	����?}���}�_,)��H;��������p3�^r.s@m�Tf����C��������.���8�j��f���#��gI*�{@�&6$<������u	��|�u�K����A/aFh?�"�q����Ia�������s�j��@�-=�����l����4��4j���>�4<��:�#@������}_��s���a����1M�^��u>�|�u�K����A/aF<���]Gu����
*q�9�����uQ�V���'��<��h/�����'kQ��k����3�����i�;;�@�]�<�n����b��]���[��Q�������G)0���������+�m��;E}����i���J�_��+��0�g��:��u�K�;����t(�O���t�Y�k�j�+�L���p.���������X�Gu��NQ����]@���4#����,I���x��4P	����^Z��z	3b��bo���O�8]��������8N�Z�{����g{������h���u[hR���.� @�X����1M�^QTp���A���zi��:�%��hz'�c]?8��e�������@�}��N>��3�8�#G�h�����PJJ����W���:&��`B�sp��w*$$D?��������c�j�����W6����P����zi��:�%��]MEEEZ�p�����*,,L={�T���5k��*
��a.�6m�u	�!��:��u�K���233������:u�����*�['�'n�Lnn��K@
���A/��^����TXX���h����(T��a���L�]M����X���Wddd��2�aN{���u	�!��:��u�K�������"���)##�=�1|�p5l�P�����9<a��]b%������p��W_�����o_�]�Vm���ui�2F8�����U\\���D
2D/����&����h��5�&>��������PEFF*22�c,g���JNNVDD����V��M�:U��uSHH�n���s+V�P����>}�(++�}���D#G�Ttt�4h���{��K�i���={�(  �������O<�>O/���c�4j�(���(**J]�t�'�|�>���\��O��6��.�j~�1�'�`��S'�m������C��M���#=�3224f�-Y�D�;w�����;���o��HRR�&N���K������~��a
8P��������GyD���v�ZI��I��k�.eeei���������m�����W��;S/O�����)G����\.5n�X���7n��>�H�
��-[����^���:�K�8[?O��k�@�),,4����;v���
f�?��U��RSS�W_}����	�!C���w��e����Y���G1F��>�1c���gO�qQQ�jl���0�HJJ2�/_�>?q�D���n���qF������7��r�*��^���;,�ui;v4.\h��&#5�|?��7a�%$$�W�^Z�j�$i����������M�*88X����*g`������������Y�f���PNN�����q�c���^����<)99Y�5���#���-I��<���L�o������g�v��kv{m�k��~�7|��������}�����oW�~��{��
�M_����|XTT���(����+,,t�~�wz/�~�zeeei��
*((��!C$�^����R
2D#F�P��-y]������k�]���c��{��wWxx����4|�p���SK�,QDD����<������]���&#""�����������pu��EJLL���S�l�2�K?VVV�a��)$$DS�N�����*��]_����eK�\.������y�f�o���U�|��v��i�������w���D-[��ae����������H�v�R�v��
h��M���^�GEoF��a��O��Q�F���CZ�`�%��4�3��l�[��>�����n��HKK3����/������6�n����P���\��O>1������Rc���Fxx����idddQQQ�������Bc��!FZZ��K���\.����?~�1l�0�������2:dDGG,0����|�����������]v����c|��wF�
��K���W��zYZZj|�����m������6
d����}��?�G�6.���ro��uiNg��]_��v������3������dc��y�.	Up��!���.2"##����G����~�>?w�\�q��Fxx�q�u�999>����_�b8��&O�l�a|���F������P�w�����{�����#G�4����z���=���~	��3�r��yF�&M���p�A���7�l<x�}��/{��1�jDDD���;w�a�.��L��3g�m_�|�7P
�@�@���
T�4P
h��@5���F���'J�V�^���[��"�>4�����k��]��{��v�z�k
����?�:(""B�5��A��e�I�������$]r�%��m[�������+W����!@@-*--UVV��5k�
6T����=���z��������L]w�uZ�d��o|�������+ @@-��e���m+IZ�~�:w�|�kw������k���JMMUPP�BCC5x�`=�����OOOW�F��������������M���^p��4i�
��o�YQQQj���6l� I6l������_?EFF�����JJJ4t�P���+66V��w��?�\S�-`*h�o���bcc��W/}��W������>�?���������{���b�
5j�H��u���WVV�~���s����o�V�X�)S�h��e�k>��C���)//O�����q�$I�f�R����x�b������o����|����:r��f������s�
#@@-1b�rrr��kW�]�V�7oV�������#G�(99��=����_��9�|���������#���t�I�&���[5�|�5�\r����j9
:T�7o>��Vvv�v��!�����;+22��j�s����#G��i������B������D��I�&��{�)w_��u���s�9����}��)66��v��q]z����z�����G����L��V�
�~�A7�t�rss5t�P=��r:�k���
^���\��1C��v�rrrt��Wk�������0<K���_���=�|&'���k�5R�&M�����/??_�/>�=g��N�S�>��222�f�-^�X3g�<���"@@-Y�~��t�"I��qc�O�h���������i��U:v���=���������t�	=-�{������?��������e���_���l����]�v����������������TPP��l�
���o�Q�.]���-������J�y���5n�8�y�����U���������<�}�X����j��Mj���t���+??���~}�$M�0A�?��bcc��3���������m�*55UC�=��0#���>�*c�4P
h��@5��j @�@���
T�4P
h��@5�?V��`�L�IEND�B`�
#2Amit Kapila
amit.kapila16@gmail.com
In reply to: Alexander Korotkov (#1)
Re: Should we cacheline align PGXACT?

On Fri, Aug 19, 2016 at 11:42 AM, Alexander Korotkov
<a.korotkov@postgrespro.ru> wrote:

Hackers,

originally this idea was proposed by Andres Freund while experimenting with
lockfree Pin/UnpinBuffer [1].
The patch is attached as well as results of pgbench -S on 72-cores machine.
As before it shows huge benefit in this case.
For sure, we should validate that it doesn't cause performance regression in
other cases. At least we should test read-write and smaller machines.
Any other ideas?

may be test on Power m/c as well.

--
With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Alexander Korotkov (#1)
Re: Should we cacheline align PGXACT?

Alexander Korotkov <a.korotkov@postgrespro.ru> writes:

originally this idea was proposed by Andres Freund while experimenting with
lockfree Pin/UnpinBuffer [1].
The patch is attached as well as results of pgbench -S on 72-cores
machine. As before it shows huge benefit in this case.

That's one mighty ugly patch. Can't you do it without needing to
introduce the additional layer of struct nesting?

regards, tom lane

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#4Alexander Korotkov
a.korotkov@postgrespro.ru
In reply to: Tom Lane (#3)
Re: Should we cacheline align PGXACT?

On Fri, Aug 19, 2016 at 4:46 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:

Alexander Korotkov <a.korotkov@postgrespro.ru> writes:

originally this idea was proposed by Andres Freund while experimenting

with

lockfree Pin/UnpinBuffer [1].
The patch is attached as well as results of pgbench -S on 72-cores
machine. As before it shows huge benefit in this case.

That's one mighty ugly patch. Can't you do it without needing to
introduce the additional layer of struct nesting?

That's worrying me too.
We could use anonymous struct, but it seems to be prohibited in C89 which
we stick to.
Another idea, which comes to my mind, is to manually calculate size of
padding and insert it directly to PGXACT struct. But that seems rather
ugly too. However, it would be ugly definition not ugly usage...
Do you have better ideas?

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

#5Alexander Korotkov
a.korotkov@postgrespro.ru
In reply to: Amit Kapila (#2)
Re: Should we cacheline align PGXACT?

On Fri, Aug 19, 2016 at 3:19 PM, Amit Kapila <amit.kapila16@gmail.com>
wrote:

On Fri, Aug 19, 2016 at 11:42 AM, Alexander Korotkov
<a.korotkov@postgrespro.ru> wrote:

Hackers,

originally this idea was proposed by Andres Freund while experimenting

with

lockfree Pin/UnpinBuffer [1].
The patch is attached as well as results of pgbench -S on 72-cores

machine.

As before it shows huge benefit in this case.
For sure, we should validate that it doesn't cause performance

regression in

other cases. At least we should test read-write and smaller machines.
Any other ideas?

may be test on Power m/c as well.

Good idea. I don't have any such machine at hand now. Do you have one?

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

#6Tom Lane
tgl@sss.pgh.pa.us
In reply to: Alexander Korotkov (#4)
Re: Should we cacheline align PGXACT?

Alexander Korotkov <a.korotkov@postgrespro.ru> writes:

On Fri, Aug 19, 2016 at 4:46 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:

That's one mighty ugly patch. Can't you do it without needing to
introduce the additional layer of struct nesting?

That's worrying me too.
We could use anonymous struct, but it seems to be prohibited in C89 which
we stick to.
Another idea, which comes to my mind, is to manually calculate size of
padding and insert it directly to PGXACT struct. But that seems rather
ugly too. However, it would be ugly definition not ugly usage...
Do you have better ideas?

No, that was the best one that had occurred to me, too. You could
probably introduce a StaticAssert that sizeof(PGXACT) is a power of 2
as a means of checking that the manual padding calculation hadn't
gotten broken.

regards, tom lane

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#7Amit Kapila
amit.kapila16@gmail.com
In reply to: Alexander Korotkov (#5)
Re: Should we cacheline align PGXACT?

On Fri, Aug 19, 2016 at 8:24 PM, Alexander Korotkov
<a.korotkov@postgrespro.ru> wrote:

On Fri, Aug 19, 2016 at 3:19 PM, Amit Kapila <amit.kapila16@gmail.com>
wrote:

On Fri, Aug 19, 2016 at 11:42 AM, Alexander Korotkov
<a.korotkov@postgrespro.ru> wrote:

Hackers,

originally this idea was proposed by Andres Freund while experimenting
with
lockfree Pin/UnpinBuffer [1].
The patch is attached as well as results of pgbench -S on 72-cores
machine.
As before it shows huge benefit in this case.
For sure, we should validate that it doesn't cause performance
regression in
other cases. At least we should test read-write and smaller machines.
Any other ideas?

may be test on Power m/c as well.

Good idea. I don't have any such machine at hand now. Do you have one?

Yes, I can help in testing this patch during CF. Feel free to ping,
if I missed or forgot to do same.

--
With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#8Robert Haas
robertmhaas@gmail.com
In reply to: Alexander Korotkov (#1)
Re: Should we cacheline align PGXACT?

On Aug 19, 2016, at 2:12 AM, Alexander Korotkov <a.korotkov@postgrespro.ru> wrote:

Hackers,

originally this idea was proposed by Andres Freund while experimenting with lockfree Pin/UnpinBuffer [1].
The patch is attached as well as results of pgbench -S on 72-cores machine. As before it shows huge benefit in this case.
For sure, we should validate that it doesn't cause performance regression in other cases. At least we should test read-write and smaller machines.
Any other ideas?

Wow, nice results. My intuition on why PGXACT helped in the first place was that it minimized the number of cache lines that had to be touched to take a snapshot. Padding obviously would somewhat increase that again, so I can't quite understand why it seems to be helping... any idea?

...Robert

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#9Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#8)
Re: Should we cacheline align PGXACT?

Robert Haas <robertmhaas@gmail.com> writes:

Wow, nice results. My intuition on why PGXACT helped in the first place was that it minimized the number of cache lines that had to be touched to take a snapshot. Padding obviously would somewhat increase that again, so I can't quite understand why it seems to be helping... any idea?

That's an interesting point. I wonder whether this whole thing will be
useless or even counterproductive after (if) Heikki's CSN-snapshot patch
gets in. I would certainly not mind reverting the PGXACT/PGPROC
separation if it proves no longer helpful after that.

regards, tom lane

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#10Andres Freund
andres@anarazel.de
In reply to: Robert Haas (#8)
Re: Should we cacheline align PGXACT?

On 2016-08-20 14:33:13 -0400, Robert Haas wrote:

On Aug 19, 2016, at 2:12 AM, Alexander Korotkov <a.korotkov@postgrespro.ru> wrote:

Hackers,

originally this idea was proposed by Andres Freund while experimenting with lockfree Pin/UnpinBuffer [1].
The patch is attached as well as results of pgbench -S on 72-cores machine. As before it shows huge benefit in this case.
For sure, we should validate that it doesn't cause performance regression in other cases. At least we should test read-write and smaller machines.
Any other ideas?

Wow, nice results. My intuition on why PGXACT helped in the first
place was that it minimized the number of cache lines that had to be
touched to take a snapshot. Padding obviously would somewhat increase
that again, so I can't quite understand why it seems to be
helping... any idea?

I don't think it's that surprising: PGXACT->xid is written to each
transaction, and ->xmin is often written to multiple times per
transaction. That means that if a PGXACT's cacheline is shared between
backends one write will often first have another CPU flush it's store
buffer / L1 / L2 cache. If there's several hops between two cores, that
can mean quite a bit of added latency. I previously played around with
*removing* the optimization of resetting ->xmin when not required
anymore - and on a bigger machine it noticeably increased throughput on
higher client counts.

To me it's pretty clear that rounding up PGXACT's size to a 16 bytes
(instead of the current 12, with 4 byte alignment) is going to be a win,
the current approach just leeds to pointless sharing. Besides, storing
the database oid in there will allow GetOldestXmin() to only use PGXACT,
and could, with a bit more work, allow to ignore other databases in
GetSnapshotData().

I'm less sure that going up to a full cacheline is always a win.

Andres

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#11Andres Freund
andres@anarazel.de
In reply to: Tom Lane (#3)
Re: Should we cacheline align PGXACT?

On 2016-08-19 09:46:12 -0400, Tom Lane wrote:

Alexander Korotkov <a.korotkov@postgrespro.ru> writes:

originally this idea was proposed by Andres Freund while experimenting with
lockfree Pin/UnpinBuffer [1].
The patch is attached as well as results of pgbench -S on 72-cores
machine. As before it shows huge benefit in this case.

That's one mighty ugly patch.

My version of it was only intended to nail down some variability on the
pgpro machine, it wasn't intended for submission.

Can't you do it without needing to introduce the additional layer of
struct nesting?

If we required support for anonymous unions, such things would be a lot
easier to do. That aside, the only alternative seems tob e hard-coding
padding space - which probably isn't all that un-fragile either.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#12Craig Ringer
craig@2ndquadrant.com
In reply to: Andres Freund (#11)
Re: Should we cacheline align PGXACT?

On 22 August 2016 at 10:40, Andres Freund <andres@anarazel.de> wrote:

On 2016-08-19 09:46:12 -0400, Tom Lane wrote:

Alexander Korotkov <a.korotkov@postgrespro.ru> writes:

originally this idea was proposed by Andres Freund while experimenting

with

lockfree Pin/UnpinBuffer [1].
The patch is attached as well as results of pgbench -S on 72-cores
machine. As before it shows huge benefit in this case.

That's one mighty ugly patch.

My version of it was only intended to nail down some variability on the
pgpro machine, it wasn't intended for submission.

Can't you do it without needing to introduce the additional layer of
struct nesting?

If we required support for anonymous unions, such things would be a lot
easier to do. That aside, the only alternative seems tob e hard-coding
padding space - which probably isn't all that un-fragile either.
<http://www.postgresql.org/mailpref/pgsql-hackers&gt;

Somewhat naïve question from someone with much less clue about low level
cache behaviour trying to follow along: given that we determine such
padding at compile time, how do we ensure that the cacheline size we're
targeting is right at runtime? Or is it safe to assume that using 16 bytes
so we don't cross cache line boundaries is always helpful, whether we have
4 PGXACT entries (64 byte line) or some other number per cacheline?

Also, for anyone else following this discussion who wants to understand it
better, take a look at
http://igoro.com/archive/gallery-of-processor-cache-effects/ .

--
Craig Ringer http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

#13Andres Freund
andres@anarazel.de
In reply to: Craig Ringer (#12)
Re: Should we cacheline align PGXACT?

On 2016-08-22 11:25:55 +0800, Craig Ringer wrote:

On 22 August 2016 at 10:40, Andres Freund <andres@anarazel.de> wrote:

On 2016-08-19 09:46:12 -0400, Tom Lane wrote:

Alexander Korotkov <a.korotkov@postgrespro.ru> writes:

originally this idea was proposed by Andres Freund while experimenting

with

lockfree Pin/UnpinBuffer [1].
The patch is attached as well as results of pgbench -S on 72-cores
machine. As before it shows huge benefit in this case.

That's one mighty ugly patch.

My version of it was only intended to nail down some variability on the
pgpro machine, it wasn't intended for submission.

Can't you do it without needing to introduce the additional layer of
struct nesting?

If we required support for anonymous unions, such things would be a lot
easier to do. That aside, the only alternative seems tob e hard-coding
padding space - which probably isn't all that un-fragile either.
<http://www.postgresql.org/mailpref/pgsql-hackers&gt;

Somewhat na�ve question from someone with much less clue about low level
cache behaviour trying to follow along: given that we determine such
padding at compile time, how do we ensure that the cacheline size we're
targeting is right at runtime?

There's basically only very few common cacheline sizes. Pretty much only
64 byte and 128 bytes are common these days. By usually padding to the
larger of those two, we waste a bit of memory, but not actually cache
space on platforms with smaller lines, because the padding is never
accessed.

Or is it safe to assume that using 16 bytes so we don't cross cache
line boundaries is always helpful, whether we have 4 PGXACT entries
(64 byte line) or some other number per cacheline?

That's generally a good thing to do, yes. It's probably not going to
give the full benefits here though.

Regards

Andres

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#14Alexander Korotkov
a.korotkov@postgrespro.ru
In reply to: Tom Lane (#9)
2 attachment(s)
Re: Should we cacheline align PGXACT?

On Sat, Aug 20, 2016 at 9:38 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:

Robert Haas <robertmhaas@gmail.com> writes:

Wow, nice results. My intuition on why PGXACT helped in the first place

was that it minimized the number of cache lines that had to be touched to
take a snapshot. Padding obviously would somewhat increase that again, so I
can't quite understand why it seems to be helping... any idea?

That's an interesting point. I wonder whether this whole thing will be
useless or even counterproductive after (if) Heikki's CSN-snapshot patch
gets in. I would certainly not mind reverting the PGXACT/PGPROC
separation if it proves no longer helpful after that.

Assuming, we wouldn't realistically have CSN-snapshot patch committed to
10, I think we should consider PGXACT cache line alignment patch for 10.
Revision on PGXACT align patch is attached. Now it doesn't introduce new
data structure for alignment, but uses manually calculated padding. I
added static assertion that PGXACT is exactly PG_CACHE_LINE_SIZE because it
still have plenty of room for new fields before PG_CACHE_LINE_SIZE would be
exceeded.
Readonly pgbench results on 72 physically cores Intel server are attached.
It quite similar to results I posted before, but it's curious that
performance degradation of master on high concurrency became larger.

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

Attachments:

pgxact-align-2.patchapplication/octet-stream; name=pgxact-align-2.patchDownload
diff --git a/src/backend/storage/lmgr/proc.c b/src/backend/storage/lmgr/proc.c
new file mode 100644
index 1b836f7..3875687
*** a/src/backend/storage/lmgr/proc.c
--- b/src/backend/storage/lmgr/proc.c
*************** InitProcGlobal(void)
*** 168,173 ****
--- 168,176 ----
  	bool		found;
  	uint32		TotalProcs = MaxBackends + NUM_AUXILIARY_PROCS + max_prepared_xacts;
  
+ 	StaticAssertExpr(sizeof(PGXACT) == PG_CACHE_LINE_SIZE,
+ 					 "PGXACT is not cacheline aligned");
+ 
  	/* Create the ProcGlobal shared structure */
  	ProcGlobal = (PROC_HDR *)
  		ShmemInitStruct("Proc Header", sizeof(PROC_HDR), &found);
diff --git a/src/include/storage/proc.h b/src/include/storage/proc.h
new file mode 100644
index 398fa8a..7024369
*** a/src/include/storage/proc.h
--- b/src/include/storage/proc.h
*************** extern PGDLLIMPORT struct PGXACT *MyPgXa
*** 187,197 ****
  /*
   * Prior to PostgreSQL 9.2, the fields below were stored as part of the
   * PGPROC.  However, benchmarking revealed that packing these particular
!  * members into a separate array as tightly as possible sped up GetSnapshotData
!  * considerably on systems with many CPU cores, by reducing the number of
!  * cache lines needing to be fetched.  Thus, think very carefully before adding
!  * anything else here.
   */
  typedef struct PGXACT
  {
  	TransactionId xid;			/* id of top-level transaction currently being
--- 187,204 ----
  /*
   * Prior to PostgreSQL 9.2, the fields below were stored as part of the
   * PGPROC.  However, benchmarking revealed that packing these particular
!  * members into a separate array sped up GetSnapshotData considerably on
!  * systems with many CPU cores, by reducing the number of cache lines needing
!  * to be fetched.  Also, this fields are subject of intensive writes even on
!  * read-only workloads.  This is why cache line alignment of them reduce cache
!  * misses during GetSnapshotData and also gives considerable speedup on systems
!  * with many CPU cores.
   */
+ 
+ /* Calculation of padding for PGXACT.  Update this after changing of PGXACT. */
+ #define PGXACTPadSize (PG_CACHE_LINE_SIZE - 2 * sizeof(TransactionId) \
+ 					   - 2 * sizeof(uint8) - 2 * sizeof(bool))
+ 
  typedef struct PGXACT
  {
  	TransactionId xid;			/* id of top-level transaction currently being
*************** typedef struct PGXACT
*** 209,214 ****
--- 216,223 ----
  								 * previously called InCommit */
  
  	uint8		nxids;
+ 
+ 	char		pad[PGXACTPadSize];
  } PGXACT;
  
  /*
scalability-pgxact-align-2.pngimage/png; name=scalability-pgxact-align-2.pngDownload
#15Tomas Vondra
tomas.vondra@2ndquadrant.com
In reply to: Alexander Korotkov (#14)
2 attachment(s)
Re: Should we cacheline align PGXACT?

Hi,

As discussed at the Developer meeting ~ a week ago, I've ran a number of
benchmarks on the commit, on a small/medium-size x86 machines. I
currently don't have access to a machine as big as used by Alexander
(with 72 physical cores), but it seems useful to verify the patch does
not have negative impact on smaller machines.

In particular I've ran these tests:

* r/o pgbench
* r/w pgbench
* 90% reads, 10% writes
* pgbench with skewed distribution
* pgbench with skewed distribution and skipping

And each of that with a number of clients, depending on the number of
cores available. I've used the usual two boxes I use for all benchmarks,
i.e. a small i5-2500k machine (8GB RAM, 4 cores), and a medium e5-2620v4
box (32GB RAM, 16/32 cores).

Comparing averages of tps, measured on 5 runs (each 5 minutes long), the
difference between master and patched master is usually within 2%, which
is pretty much within noise.

I'm attaching spreadsheets with summary of the results, so that we have
it in the archives. As usual, the scripts and much more detailed results
are available here:

* e5-2620: https://bitbucket.org/tvondra/test-xact-alignment
* i5-2500k: https://bitbucket.org/tvondra/test-xact-alignment-i5

I do plan to run these results on the Power8 box I have access to, but
that will have to wait for a bit, because it's currently doing something
else.

regards

--
Tomas Vondra http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Attachments:

xact-e5-2620.odsapplication/vnd.oasis.opendocument.spreadsheet; name=xact-e5-2620.odsDownload
xact-i5-2500k.odsapplication/vnd.oasis.opendocument.spreadsheet; name=xact-i5-2500k.odsDownload
#16Ashutosh Sharma
ashu.coek88@gmail.com
In reply to: Tomas Vondra (#15)
Re: Should we cacheline align PGXACT?

Hi,

I am currently testing this patch on a large machine and will share the
test results in few days of time.

Please excuse any grammatical errors as I am using my mobile device. Thanks.

On Feb 11, 2017 04:59, "Tomas Vondra" <tomas.vondra@2ndquadrant.com> wrote:

Show quoted text

Hi,

As discussed at the Developer meeting ~ a week ago, I've ran a number of
benchmarks on the commit, on a small/medium-size x86 machines. I currently
don't have access to a machine as big as used by Alexander (with 72
physical cores), but it seems useful to verify the patch does not have
negative impact on smaller machines.

In particular I've ran these tests:

* r/o pgbench
* r/w pgbench
* 90% reads, 10% writes
* pgbench with skewed distribution
* pgbench with skewed distribution and skipping

And each of that with a number of clients, depending on the number of
cores available. I've used the usual two boxes I use for all benchmarks,
i.e. a small i5-2500k machine (8GB RAM, 4 cores), and a medium e5-2620v4
box (32GB RAM, 16/32 cores).

Comparing averages of tps, measured on 5 runs (each 5 minutes long), the
difference between master and patched master is usually within 2%, which is
pretty much within noise.

I'm attaching spreadsheets with summary of the results, so that we have it
in the archives. As usual, the scripts and much more detailed results are
available here:

* e5-2620: https://bitbucket.org/tvondra/test-xact-alignment
* i5-2500k: https://bitbucket.org/tvondra/test-xact-alignment-i5

I do plan to run these results on the Power8 box I have access to, but
that will have to wait for a bit, because it's currently doing something
else.

regards

--
Tomas Vondra http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#17Tomas Vondra
tomas.vondra@2ndquadrant.com
In reply to: Ashutosh Sharma (#16)
Re: Should we cacheline align PGXACT?

On 02/11/2017 02:44 AM, Ashutosh Sharma wrote:

Hi,

I am currently testing this patch on a large machine and will share the
test results in few days of time.

FWIW it might be interesting to have comparable results from the same
benchmarks I did. The scripts available in the git repositories should
not be that hard to tweak. Let me know if you're interested and need
help with that.

regards

--
Tomas Vondra http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#18Alexander Korotkov
a.korotkov@postgrespro.ru
In reply to: Tomas Vondra (#15)
Re: Should we cacheline align PGXACT?

Hi, Tomas!

On Sat, Feb 11, 2017 at 2:28 AM, Tomas Vondra <tomas.vondra@2ndquadrant.com>
wrote:

As discussed at the Developer meeting ~ a week ago, I've ran a number of
benchmarks on the commit, on a small/medium-size x86 machines. I currently
don't have access to a machine as big as used by Alexander (with 72
physical cores), but it seems useful to verify the patch does not have
negative impact on smaller machines.

In particular I've ran these tests:

* r/o pgbench
* r/w pgbench
* 90% reads, 10% writes
* pgbench with skewed distribution
* pgbench with skewed distribution and skipping

Thank you very much for your efforts!
I took a look at these tests. One thing catch my eyes. You warmup
database using pgbench run. Did you consider using pg_prewarm instead?

SELECT sum(x.x) FROM (SELECT pg_prewarm(oid) AS x FROM pg_class WHERE
relkind IN ('i', 'r') ORDER BY oid) x;

In my experience pg_prewarm both takes less time and leaves less variation
afterwards.

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

#19Tomas Vondra
tomas.vondra@2ndquadrant.com
In reply to: Alexander Korotkov (#18)
Re: Should we cacheline align PGXACT?

On 02/11/2017 01:21 PM, Alexander Korotkov wrote:

Hi, Tomas!

On Sat, Feb 11, 2017 at 2:28 AM, Tomas Vondra
<tomas.vondra@2ndquadrant.com <mailto:tomas.vondra@2ndquadrant.com>> wrote:

As discussed at the Developer meeting ~ a week ago, I've ran a
number of benchmarks on the commit, on a small/medium-size x86
machines. I currently don't have access to a machine as big as used
by Alexander (with 72 physical cores), but it seems useful to verify
the patch does not have negative impact on smaller machines.

In particular I've ran these tests:

* r/o pgbench
* r/w pgbench
* 90% reads, 10% writes
* pgbench with skewed distribution
* pgbench with skewed distribution and skipping

Thank you very much for your efforts!
I took a look at these tests. One thing catch my eyes. You warmup
database using pgbench run. Did you consider using pg_prewarm instead?

SELECT sum(x.x) FROM (SELECT pg_prewarm(oid) AS x FROM pg_class WHERE
relkind IN ('i', 'r') ORDER BY oid) x;

In my experience pg_prewarm both takes less time and leaves less
variation afterwards.

I've considered it, but the problem I see in using pg_prewarm for
benchmarking purposes is that it only loads the data into memory, but it
does not modify the tuples (so all tuples have the same xmin/xmax, no
dead tuples, ...), it does not set usage counters on the buffers and
also does not generate any clog records.

I don't think there's a lot of variability in the results I measured. If
you look at (max-min) for each combination of parameters, the delta is
generally within 2% of average, with a very few exceptions, usually
caused by the first run (so perhaps the warmup should be a bit longer).

regards

--
Tomas Vondra http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#20Ashutosh Sharma
ashu.coek88@gmail.com
In reply to: Tomas Vondra (#17)
Re: Should we cacheline align PGXACT?

FWIW it might be interesting to have comparable results from the same
benchmarks I did. The scripts available in the git repositories should not
be that hard to tweak. Let me know if you're interested and need help with
that.

Sure, I will have a look into those scripts once I am done with the
simple pgbench testing. Thanks and sorry for the delayed response.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#21Alexander Korotkov
a.korotkov@postgrespro.ru
In reply to: Tomas Vondra (#19)
Re: Should we cacheline align PGXACT?

On Sat, Feb 11, 2017 at 4:17 PM, Tomas Vondra <tomas.vondra@2ndquadrant.com>
wrote:

On 02/11/2017 01:21 PM, Alexander Korotkov wrote:

Hi, Tomas!

On Sat, Feb 11, 2017 at 2:28 AM, Tomas Vondra
<tomas.vondra@2ndquadrant.com <mailto:tomas.vondra@2ndquadrant.com>>
wrote:

As discussed at the Developer meeting ~ a week ago, I've ran a
number of benchmarks on the commit, on a small/medium-size x86
machines. I currently don't have access to a machine as big as used
by Alexander (with 72 physical cores), but it seems useful to verify
the patch does not have negative impact on smaller machines.

In particular I've ran these tests:

* r/o pgbench
* r/w pgbench
* 90% reads, 10% writes
* pgbench with skewed distribution
* pgbench with skewed distribution and skipping

Thank you very much for your efforts!
I took a look at these tests. One thing catch my eyes. You warmup
database using pgbench run. Did you consider using pg_prewarm instead?

SELECT sum(x.x) FROM (SELECT pg_prewarm(oid) AS x FROM pg_class WHERE
relkind IN ('i', 'r') ORDER BY oid) x;

In my experience pg_prewarm both takes less time and leaves less
variation afterwards.

I've considered it, but the problem I see in using pg_prewarm for
benchmarking purposes is that it only loads the data into memory, but it
does not modify the tuples (so all tuples have the same xmin/xmax, no dead
tuples, ...), it does not set usage counters on the buffers and also does
not generate any clog records.

Yes, but please note that pgbench runs VACUUM first, and all the tuples
would be hinted. In order to xmin/xmax and clog take effect, you should
run subsequent pgbench with --no-vacuum. Also usage counters of buffers
make sense only when eviction happens, i.e. data don't fit shared_buffers.

Also, you use pgbench -S to warmup before readonly test. I think
pg_prewarm would be much better there unless your data is bigger than
shared_buffers.

I don't think there's a lot of variability in the results I measured. If

you look at (max-min) for each combination of parameters, the delta is
generally within 2% of average, with a very few exceptions, usually caused
by the first run (so perhaps the warmup should be a bit longer).

You also could run pg_prewarm before warmup pgbench for readwrite test. In
my intuition you should get more stable results with shorter warmup.

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

#22Jim Nasby
Jim.Nasby@BlueTreble.com
In reply to: Andres Freund (#13)
Re: Should we cacheline align PGXACT?

On 8/22/16 12:24 AM, Andres Freund wrote:

Somewhat na�ve question from someone with much less clue about low level
cache behaviour trying to follow along: given that we determine such
padding at compile time, how do we ensure that the cacheline size we're
targeting is right at runtime?

There's basically only very few common cacheline sizes. Pretty much only
64 byte and 128 bytes are common these days. By usually padding to the
larger of those two, we waste a bit of memory, but not actually cache
space on platforms with smaller lines, because the padding is never
accessed.

Though, with an N-way associative cache 2x more padding than necessary
cuts the amount you can fit into the cache by half. That could be
meaningful in some cases.
--
Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX
Experts in Analytics, Data Architecture and PostgreSQL
Data in Trouble? Get it in Treble! http://BlueTreble.com
855-TREBLE2 (855-873-2532)

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#23Bernd Helmle
mailings@oopsware.de
In reply to: Tomas Vondra (#15)
7 attachment(s)
Re: Should we cacheline align PGXACT?

Am Samstag, den 11.02.2017, 00:28 +0100 schrieb Tomas Vondra:

Comparing averages of tps, measured on 5 runs (each 5 minutes long),
the 
difference between master and patched master is usually within 2%,
which 
is pretty much within noise.

I'm attaching spreadsheets with summary of the results, so that we
have 
it in the archives. As usual, the scripts and much more detailed
results 
are available here:

I've done some benchmarking of this patch against the E850/ppc64el
Ubuntu LPAR we currently have access to and got the attached results.
pg_prewarm as recommended by Alexander was used, the tests run 300s
secs, scale 1000, each with a testrun before. The SELECT-only pgbench
was run twice each, the write tests only once.

Looks like the influence of this patch isn't that big, at least on this
machine.

We're going to reassign the resources to an AIX LPAR soon, which
doesn't give me enough time to test with Tomas' test scripts again.

Attachments:

bench.pngimage/png; name=bench.pngDownload
�PNG


IHDR��,�}PLTE���������������@��Ai��� �@���0`��@�������**��@��333MMMfff�������������������22�������U����������������d�"�".�W��p��������������P����E��r��z�����k������� �����������P@Uk/���@�@��`��`�����@��@��`��p������������������������|�@�� ������___���???����sV������Br�'vV�dbGo�O9����9<9ZU��1��)7O%4;+Jixr!�@V�	pHYs���+(IDATx�������F�:�_�8��N���_�����I`a4H3���>��A��VF��E�%�������r����n�m�^��VT�������%  �nE{	F��`0uF��`0uF��L�a`4��BI����`��F���3
%) ��0
EeQ7MU�e�����o��l�~���we��[,;{\i�����]S��v����3
Ee�*�U�U;3��jm`]�B���_��A������J���uU3��w����R������L5��?��7R�5����x�t���v+��S�`�$Je�fNg��V��p���F3��������]3���r�Zw�<:���_��{G/+m>u��::���	��B��N�1y��}mWo2����Yi���|�%`���A����na1���t}�c@���\+U���Np�����4�y�r�13���t}��7mq�F�Q(��	���@��Z��`������y������:���=���Q( �F�Q( �F�Q( �F�Q( �F�Q( �F�Q( ��������N9�Yt��iC����VSFS)U5G-�B�P�J��
��2���&���^HJ������	�����5��ZHW���4����G4mW���c��."s��IC�_Y�iw�l8|nn��Ef�Y;o�m��������u�Xeg��{!i(��+�7[���kSD��R������l.,�w���|S
^�����~�vS�+���ER��\Ze���-�$�OK�)����B�WV?��]k���jty������c�,�������I�����e���E5�<kg�tj�(����?�:�2�2�uv�	h>��XV���^�QGp��m���[3 I��|���q	�}Y��1�ru�Z��
��V�K���Y���`?�+�w���e�l>����Q���(���<YVo]���z�]��������GI�
�Pd��q���
_�:�Pda��!W
��M��-0uF����q���$�8�:�P@0�:�P@0�:�P@0�:�P@0�:�Pr&�00uF�����Z^��:�F�Q()qi�B��
�������*35~��c��,��7���X�<���H���W5�Q��+���)x�f����o��"4�'�A�j~S1����,�u�7�[�������D�U�����e�y�:�6Z���sD�����h�
sp_Jx���{U���s��U��f���gy?��2���`-�$�����j��)�$�?~p�f��X��=~XJ�.O<$�1:�U���}���Qw�P���]�Re+#k�S��j��U��x"lu5n�n3wvW�,�$��a��}�D��C�j�9�5�����m�����gA�P��� e�2`�b���~��v�qL�~��YuP����d-�������
d.�9�&� !9x��b:D$��
i�����_1)�n;9������$�5�:�,�K�^N���Ag���!�o�Hh}��K����,����$�~<&���IA_�=$�U�oM�(���8�b�M����*��DI�}��W���g���|WI�%��}(���`^�N����p�w��[��/���,o��,
Y���Sp'��x���[��(��g���Bq���g&v	�!��%��1 J�o�8N������!���|�(���[�+,O��0�C�%���$�N�'���`0����~���,�+��_��/b�7y��R����:_���,�!�9
x��0)�n�9
�KV��[�0@4<��!;|���g�0����
�I�������w���&`�	x�K����`���|��x���0��ly^���hn��{�og&`�c��4�W����[�������|����Fs�w���!�@�X
�����+Y�n���������h�E�'������=K���O7���+{�.�3Mq��'I�	/���Ni��^��t�n)'-_�9��F��'q��s���ha8�)����^H�'"�����}��R�e����u��m��h[G���Y�{�_��5=��9j����	n�	8�����c)�������A2K��mt����O���M���^H�X�Wl�3�V�O��V�~��;>�+�]~��F���E���iCy���������|�^i���n9��.!/��g6*������U���'Y���^H�{�$�����'$�K��2��������]������h>DTw��Q�E�Uc0�[��������=g]/C3�m�c�S�
���*)����?t0�Oc+���t#�d}��d���t*H9���46���|G}<�7��_���
����3�4���9�?���Vs�4�_��B���}O���W�/v;J���_�Q��/���~�|j/FI�?����]��qVDoQ���������2}r����������/����_{��`�M�0���Z���_������<����_D��X�Ku�#(���	�\-����\���n��bx�HTkj>z,��FI�+w	����������6������?Tawf�R�o��mI>���2�%������O>�������;�VN���+��q�7��7	�����c����?����_�������m[/����z'��:~�%�t�
����c���S�o�>��c�����c����d?��|:n��/S0�c����!#�������S'���>�|�,b%�t�+ �c�/�~��D��_����k�����_�f�%�t����?O�;�����isQ<f����zHY@�(���������M�!b�������=�����/������&@lW�������+��"�H�F�O�_^a�������J���b��*k��y�"^�DnLY@�w��������H�T<��v�����>^����x�cd�����01I�%@(�4�bHQ@�{pP	
�	X)
����H��HP@�'����,R�0�	P�	�����f���HL@�'��D�GJ�?�$% ��GB"J$��H��4F2"�$�E���H�BID��?(�T�BIC@$@�$! ��K�?��  �`(T�O)��,��bt��)B����kM/M�T���)B���!�e��\���;W���"�'�E���3?5����r/�e<��B�������~�{�r/$	P6���i,��Jw���?��?(_��4���O6���)��9��H���2��>L?QNB��Cs'$�e$@��	�B4�x�p+U�]��(����-�y����, `@@���'�"��d��Q�+ �����/P:���+ `@@�>0��T���3p*	0d
���� X@��2DL�bN���$�( `B@@���4( `JH�%�<��N	�bN	���T' f���' f���& `b@@qbNa"�Q�%����!Q@���|��X�!L@���!P@����� ����DL�"J@���!G@$�$�� *b|��XI"M@����uS6]���.�Z�������]�
�7��l*���8h�~
f�D�����MU�V��[������(D���u���-���C�?�
S�D����F��V��r/�:����/`9��=���{���`N��Z}r��������?�x�M�w�H�I�f�Owu�I`��e�/�@�t!��6:��w!3p�������z��8$���P�F���/e  �
Q�/ �K��^@�L��t�. `�@@	���a. `�@@������ *D����/}  �
g�0m�����@@����� *D����/u  �
_1go�_�@@����a- `��3pp�%g�3��0��W�3����%Qa* f�\`- �K�AT�
�����H��AT�r���H���W@��,����uSv�i��,ku�r/t���W�����16�RUs�r/t��8|����6U�n����^x
��c@���
���r/<��������M�]-�Bw(��e������Jw���
`F��9�T@������b
����e�}��#<	y`�_��.� ��������h��wBFTAw+����L`X��@���O@��YAT
�r��@@v>�0'�	�����3p^@@n����� *D����/7  �
/��
�D����/7X	�D-jv�3pv@@Nb���I��+q����AT  �
Q�$ ���AT  �
'�#��$`�@�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�G����5�ju�r/$
�{��J�KKU�Q���4 �Q��j�Z���{!y(@tv�~�;w���< 
:�_U�n����A'`��q���C��� *��`
A8@
T#��p\�Q����G�,�����y�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�P@0�:�PH������0uF���C�Or2����?�p2rqnf(���������������Si���)}���;E��y�.LN@Hw�/��?q:��$D�����)Y@H�"�3����@�p9��?!�G���A�.�u~:�Zg�q�!�) ���(��,k�_:��7+��TJU�#��fG�Z���>\Q��v�~��;B���sO�6�����j?C@���
����5d���`��N�`yM� G��wt@.���h��oY�+R]d���>����k���uSv��%�`�^��m�~)�ld�{�T�Y�~�}��}��RF\v}�7��3�n�^)��ZU���h�����(o4��i��H������2���v����z��d�C��6��G����E\��Nq����6�p\a�!�
�uj^�i�����m
�`�^������`#2�'4C�����(��J�����#V�/�`�^���'4]Alt�N�����8�;�:B�{U�OB�P����
dO��8����������`��CbNBT/�����x��i���!�2��(���`w���^��c.n��d�K�7\�^z%��[G�0��W�`�>�v&�B���C{Sg��A�FK��O�*�`�^I�;�������?�fM��#�qIEND�B`�
master-nopgxact-results.txttext/plain; charset=UTF-8; name=master-nopgxact-results.txtDownload
master-results-2.txttext/plain; charset=UTF-8; name=master-results-2.txtDownload
master-result-writes.txttext/plain; charset=UTF-8; name=master-result-writes.txtDownload
pgxact-result-2.txttext/plain; charset=UTF-8; name=pgxact-result-2.txtDownload
pgxact-results.txttext/plain; charset=UTF-8; name=pgxact-results.txtDownload
pgxact-result-writes.txttext/plain; charset=UTF-8; name=pgxact-result-writes.txtDownload
#24Alexander Korotkov
a.korotkov@postgrespro.ru
In reply to: Bernd Helmle (#23)
Re: Should we cacheline align PGXACT?

On Mon, Feb 13, 2017 at 3:34 PM, Bernd Helmle <mailings@oopsware.de> wrote:

Am Samstag, den 11.02.2017, 00:28 +0100 schrieb Tomas Vondra:

Comparing averages of tps, measured on 5 runs (each 5 minutes long),
the
difference between master and patched master is usually within 2%,
which
is pretty much within noise.

I'm attaching spreadsheets with summary of the results, so that we
have
it in the archives. As usual, the scripts and much more detailed
results
are available here:

I've done some benchmarking of this patch against the E850/ppc64el
Ubuntu LPAR we currently have access to and got the attached results.
pg_prewarm as recommended by Alexander was used, the tests run 300s
secs, scale 1000, each with a testrun before. The SELECT-only pgbench
was run twice each, the write tests only once.

Looks like the influence of this patch isn't that big, at least on this
machine.

Thank you for testing.

Yes, influence seems to be low. But nevertheless it's important to insure
that there is no regression here.
Despite pg_prewarm'ing and running tests 300s, there is still significant
variation.
For instance, with clients count = 80:
* pgxact-result-2.txt – 474704
* pgxact-results.txt – 574844
Could some background processes influence the tests? Or could it be
another virtual machine?
Also, I wonder why I can't see this variation on the graphs.
Another issue with graphs is that we can't see details of read and write
TPS variation on the same scale, because write TPS values are too low. I
think you should draw write benchmark on the separate graph.

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

#25Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Alexander Korotkov (#24)
Re: Should we cacheline align PGXACT?

Alexander Korotkov wrote:

Yes, influence seems to be low. But nevertheless it's important to insure
that there is no regression here.
Despite pg_prewarm'ing and running tests 300s, there is still significant
variation.
For instance, with clients count = 80:
* pgxact-result-2.txt – 474704
* pgxact-results.txt – 574844
Could some background processes influence the tests? Or could it be
another virtual machine?
Also, I wonder why I can't see this variation on the graphs.
Another issue with graphs is that we can't see details of read and write
TPS variation on the same scale, because write TPS values are too low. I
think you should draw write benchmark on the separate graph.

So, I'm reading that on PPC64 there is no effect, and on the "lesser"
machine Tomas tested on, there is no effect either; this patch only
seems to benefit Alexander's 72 core x86_64 machine.

It seems to me that Andres comments here were largely ignored:
/messages/by-id/20160822021747.u5bqx2xwwjzac5u5@alap3.anarazel.de
He was suggesting to increase the struct size to 16 bytes rather than
going all the way up to 128. Did anybody test this?

Re the coding of the padding computation, seems it'd be better to use
our standard "offsetof(last-struct-member) + sizeof(last-struct-member)"
rather than adding each of the members' sizes individually.

--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#26Bernd Helmle
mailings@oopsware.de
In reply to: Alexander Korotkov (#24)
2 attachment(s)
Re: Should we cacheline align PGXACT?

Am Montag, den 13.02.2017, 16:55 +0300 schrieb Alexander Korotkov:

Thank you for testing.

Yes, influence seems to be low.  But nevertheless it's important to
insure
that there is no regression here.
Despite pg_prewarm'ing and running tests 300s, there is still
significant
variation.
For instance, with clients count = 80:
 * pgxact-result-2.txt – 474704
 * pgxact-results.txt – 574844

Could some background processes influence the tests?  Or could it be
another virtual machine?
Also, I wonder why I can't see this variation on the graphs.
Another issue with graphs is that we can't see details of read and
write

Whoops, good catch. I've mistakenly copied the wrong y-axis for these
results in the gnuplot script, shame on me. New plots attached.

You're right, the 2nd run with the pgxact alignment patch is notable.
I've realized that there was a pgbouncer instance running from a
previous test, but not sure if that could explain the difference.

TPS variation on the same scale, because write TPS values are too
low.  I
think you should draw write benchmark on the separate graph.

The Linux LPAR is the only one used atm. We got some more time for
Linux now and i'm going to prepare Tomas' script to run. Not sure i can
get to it today, though.

Attachments:

bench.pngimage/png; name=bench.pngDownload
bench-writes.pngimage/png; name=bench-writes.pngDownload
�PNG


IHDR��,�5PLTE���������������@��Ai��� �@���0`��@�������**��@��333MMMfff�������������������22�������U����������������d�"�".�W��p��������������P����E��r��z�����k������� �����������P@Uk/���@�@��`��`�����@��@��`��p������������������������|�@�� ������___���???����s1�K�	pHYs���+|IDATx���v�:a���cx�_�3�k�l���:s<1���@(���K��2|����z�����y�[U��w[�MCn����<�?�������^��i��f{k�	`H���U�������v�oE/`��/����f�c*��~d�~.!s
8���&��G<�c=�����q���A�4�F���'�0���7��Gq�F���H~�@���P��5�����������=j�����F@�IY���V<_�0�Z�����[]�M;=mh��~�{���.5<��������������kQ�O������^;W��Ta���V���p��F��\��wJ=��}��X��>c��B���'Oo��PO���#;|
R�O��i�G�i6A��|�7.�9���EN#�����ce?|6���p��b���j��z�������2�4���|�`������?y���{U���������MkO������n���/\�*W�������_��C�?yV���x��h�/=���=m]��`�������Q���<[���Z��5��u���������5��������@�?y�C���n�p
�xvmO��y��mU��������Fx��i�gvV�u��'�J�*��9��V7#���<�t�81�j�*���������P�1j��A�Zu~�@���P�1j��A�Zu~�@�~p�)Q����G��`���@�?
.�<a$���G���Mv|~?<�KI�_�2��-��Y�������8������-�	��R���T��L����m��|kI�bfI~&ZV?lw��������I��~{	���$! K�3����a{������a��l\^�8�[K���X������������r�U�7[u���%�����$��O����C�?
V��x�����7=�#���`=����u8��|�l	�Y��k�����m\n-�_^�$?�C�g�������e6��K�~.�_X��+?\V�����:�yp6�N�C��X��'fI>�e}����P�w��>{��`�T=>���XN,7e�$��\u~�@���P�1j��A�Q�Q�;����P
��Q�y[�E�{�/��b#@��BCP�R�H���IE�VH�&�u� ���`�E~H��tw�_��������>?�!`�XP=����  ��F�yFU~8�?$�ax���w�	��X����4��d"���z�����13
{1yw�Vm���(~G-�:?�Q��b������� F-�:?�Q��b������� F-�:?�Q��b������� F-�:��
��Q������wg��Zu~ok|�
�P���_����5��@��|~/����'7'6�����g���xFs�E-�:�5_{���9��@���^���I����0��%�y�8Q����y�������@��#������&����{������������#������@��7�8�q��4����'�OKN@-�:�;�:�q�������w��k�j��7�tqh��:�Zu���_qI��C-�:���9>K�-2UP-�:�?��6}�
�P�_�zn�������j��'�������j��{^o|%��"���q��Zu��H:��Z�FA����S���&2RP-�:�J?Y;�d��Zm��)�����D��|�O��wd��I��&T����s�������Md��I��6���q�����j_���6tEZ�jd�\-�?k�v~�4���q��p���/�ZA���]'}G�t��_���4��p��q�������Zn������&�w�U�B������$`r�n��}3���;L��	)
�PA��_&u���C-{�t�a���p���D�����T&�S��p�����{^Sy�_����o1B�`����	�������	�������	�������2�K@g��J@��+���.�+W0#��W$� � Y���E�
f#�w��D�E��+�T0�������JAt����H�<���"5�0+����A���+RR03��HG������s��HCA�f�_�������"~�=q+�\@���YA���@�
��fbU�����B�
"`F���c��'�)�W@��d���9�V@�{���W)�U@����D�,�GA���_���O�oq(�R@��G
z�v�W���t��V�����Z-
�4}��r�='-T��T��e�m�x
�,����WA{�
p�^�"�S(i�B��������|	�,��_�Q�D�G�ve������g��
-�B����{^��S�r�����?��^A�~t�y4B��8W+x\���������h�u
���W������3��^��+��,���?;�-��c�������U
7!��h�;�o�<���'!=U�P�^?���QK`.f����������t�2V��g2z��xH�D@�S���>���NA3�Q�����+�A@���Ot  ���g
�/ �E�'
" ��~���d������O�������`��_�  HIZ@�K���?$, �y m�/y����
�>HU@�sB�����) ��!I���
�NHQ@�s���?O$) ��!=�]�����)�	����?O�& �3��\�� %1��qT��<�P-i�<�u�:@o����E[�
t���t�Qo�K(��U���X!������U���\+���D��kE��
V��a!`_3��nm-7���-�?����|�r\��f��Cp��L��ON�[F���	�?�p���i��Q����'��#����T������%�,F@@�$# ��')	�IE@:@�$$ �yAJ"2{%��%iH�)��>IB@:@��" �9%��� %��3R��/ ��AJ�v�!�_����� %v��9R"�[�$  �y&n���� %~��5QH����?��, `  H�]@�sN�����x��,@@����?tO���{������T���R��a�[���A�8���!x-�E�L��34��-H.X
X�u����b�vH:�\0���=/��e���\(��s�P�����8��n�?������`��g��	x�&�0��O��������nB�ND�f�a��	\{�a�>�C���q1#pFD( `N  H�O@��
)R���AJ��_6  H�M@F���R@��)�	��1
��� %B�/'��0;��' �eET���������I@:�A@�����R"�rA
��x��,A@��� %*�/?��0Ob�2AJ,2gJD�_�  H9,`{��m���]�3�����*��������\���U�pw�B��b�EZw�kE�\�p�L��������N�rz������/fK,�_����Pl�d�4}<Nx=p��/QL������&�0_X��H���8F���a1`�  H�@@F���B@��)1���0k�D  ���\@:��A@����A�\@��)R������� F-�:?�Q��b������� F-�:?�Q��b������� F-�:?�Q��b������� F-�:?�Q��b������� F-�:?�Q��b������� F-�:?�Q��b����C��I�L:)?������U�N�)r����<+?���Q9����"��e�����~V~HC����*��b��[������  |��U��<N�@~�q�;�	���13
���yT�M��;��8
��8��Zu~�@���P�1j��A�Zu~�@���P�1j��A�Zu~�@���P�1j��A�Zu~�@���P�1j��A�Zu~�@���P�1j��A�Zu~�@���P�1j��A�Zu~�@���P�1j��A�Zu~�@���P�1j��A�Zu~�@���P�1j��A�Zu~�@���P�1j��A�ulW�A���N��Z]�9�	��Z!f�e���j����i����o*V#`q�k��D�|�F���&������s��onB���4�ElOD\���8�?�'�M3������$������.���m���\�������Q����g�r�$����e�m�x�f��E`�7�����V�a��1}�\�B�_h�;��*#����8������LG�t�M�
i|-�]����m=�����4�Z���D�tx������ui|�����8��}��6�s|1��9�K������(��J��C�VW]�3��npwG��4X��IL��a��~�o����0W��&�����lRCp���C7e��1����0���!8���nBf��4�n�����tq�����aV��51n��?������O��9�pul:�y�D�����|�l<�np�]�FKt":<�1~�3������)�m���Ua��9�m��h�k�T����L��$,��IEND�B`�
#27Ashutosh Sharma
ashu.coek88@gmail.com
In reply to: Bernd Helmle (#26)
2 attachment(s)
Re: Should we cacheline align PGXACT?

Hi All,

I too have performed benchmarking of this patch on a large machine
(with 128 CPU(s), 520GB RAM, intel x86-64 architecture) and would like
to share my observations for the same (Please note that, as I had to
reverify readings on few client counts, it did take some time for me
to share these test-results.)

Case1: Data fits in shared buffer, Read Only workload:
-------------------------------------------------------------------------------
For data fits in shared buffer, I have taken readings at 300 SF. The
result sheet 'results-readonly-300-1000-SF' containing the median of 3
runs is attached with this mail. In this case, I could see very good
performance improvement with the patch basically at high client counts
(156 - 256).

Case2: Data doesn't fit in shared buffer, Read Only workload:
--------------------------------------------------------------------------------------
For data doesn't fit in shared buffer, I have taken readings at 1000
SF. The result sheet 'results-readonly-300-1000-SF' is attached with
this mail. In this case, the performance improvement is not as in
Case1, Infact it just varies in the range of 2-7%. but the good thing
is that there is no regression.

Case3: Data fits in shared buffer, Read-write workload:
-----------------------------------------------------------------------------
In this case, I could see that the tps on head and patch are very
close to each other with a small variation of (+-)3-4% which i assume
is a run-to-run variation. PFA result sheet
'results-readwrite-300-1000-SF' containing the test-results.

Case4: Data doesn't fit in shared buffer, Read-write workload:
----------------------------------------------------------------------------------------
In this case as well, tps on head and patch are very close to each
other with small variation of 1-2% which again is a run-to-run
variation. PFA result sheet 'results-readwrite-300-1000-SF' containing
the test-results.

Please note that details on the non-default guc params and pgbench is
all provided in the result sheets attached with this mail. Also, I
have not used pg_prewarm in my test script. Thank you.

Show quoted text

On Mon, Feb 13, 2017 at 9:43 PM, Bernd Helmle <mailings@oopsware.de> wrote:

Am Montag, den 13.02.2017, 16:55 +0300 schrieb Alexander Korotkov:

Thank you for testing.

Yes, influence seems to be low. But nevertheless it's important to
insure
that there is no regression here.
Despite pg_prewarm'ing and running tests 300s, there is still
significant
variation.
For instance, with clients count = 80:
* pgxact-result-2.txt – 474704
* pgxact-results.txt – 574844

Could some background processes influence the tests? Or could it be
another virtual machine?
Also, I wonder why I can't see this variation on the graphs.
Another issue with graphs is that we can't see details of read and
write

Whoops, good catch. I've mistakenly copied the wrong y-axis for these
results in the gnuplot script, shame on me. New plots attached.

You're right, the 2nd run with the pgxact alignment patch is notable.
I've realized that there was a pgbouncer instance running from a
previous test, but not sure if that could explain the difference.

TPS variation on the same scale, because write TPS values are too
low. I
think you should draw write benchmark on the separate graph.

The Linux LPAR is the only one used atm. We got some more time for
Linux now and i'm going to prepare Tomas' script to run. Not sure i can
get to it today, though.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Attachments:

results-readonly-300-1000-SF.xlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet; name=results-readonly-300-1000-SF.xlsxDownload
results-readwrite-300-1000-SF.xlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet; name=results-readwrite-300-1000-SF.xlsxDownload
#28Alexander Korotkov
a.korotkov@postgrespro.ru
In reply to: Alvaro Herrera (#25)
Re: Should we cacheline align PGXACT?

On Mon, Feb 13, 2017 at 7:07 PM, Alvaro Herrera <alvherre@2ndquadrant.com>
wrote:

Alexander Korotkov wrote:

Yes, influence seems to be low. But nevertheless it's important to

insure

that there is no regression here.
Despite pg_prewarm'ing and running tests 300s, there is still significant
variation.
For instance, with clients count = 80:
* pgxact-result-2.txt – 474704
* pgxact-results.txt – 574844
Could some background processes influence the tests? Or could it be
another virtual machine?
Also, I wonder why I can't see this variation on the graphs.
Another issue with graphs is that we can't see details of read and write
TPS variation on the same scale, because write TPS values are too low. I
think you should draw write benchmark on the separate graph.

So, I'm reading that on PPC64 there is no effect, and on the "lesser"
machine Tomas tested on, there is no effect either; this patch only
seems to benefit Alexander's 72 core x86_64 machine.

It seems to me that Andres comments here were largely ignored:
/messages/by-id/20160822021747.
u5bqx2xwwjzac5u5@alap3.anarazel.de
He was suggesting to increase the struct size to 16 bytes rather than
going all the way up to 128. Did anybody test this?

Thank you for pointing. I'll provide such version of patch and test it on
72 core x86_64 machine.

Re the coding of the padding computation, seems it'd be better to use
our standard "offsetof(last-struct-member) + sizeof(last-struct-member)"
rather than adding each of the members' sizes individually.

It was done so in order to evade extra level of nesting for PGXACT. See
discussion with Tom Lane in [1] and upthread.
Do you think we should introduce extra level of nesting or have better
ideas about how to evade it?

1. /messages/by-id/19065.1471621560@sss.pgh.pa.us

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

#29Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Alexander Korotkov (#28)
Re: Should we cacheline align PGXACT?

Alexander Korotkov wrote:

On Mon, Feb 13, 2017 at 7:07 PM, Alvaro Herrera <alvherre@2ndquadrant.com>
wrote:

Re the coding of the padding computation, seems it'd be better to use
our standard "offsetof(last-struct-member) + sizeof(last-struct-member)"
rather than adding each of the members' sizes individually.

It was done so in order to evade extra level of nesting for PGXACT. See
discussion with Tom Lane in [1] and upthread.

Yes, I understand. I just mean that it could be done something like
this:

#define PGXACTPadSize (PG_CACHE_LINE_SIZE - (offsetof(PGXACT, nxid) + sizeof(uint8)))

--
�lvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#30Alexander Korotkov
a.korotkov@postgrespro.ru
In reply to: Alvaro Herrera (#29)
Re: Should we cacheline align PGXACT?

On Tue, Feb 14, 2017 at 3:57 PM, Alvaro Herrera <alvherre@2ndquadrant.com>
wrote:

Alexander Korotkov wrote:

On Mon, Feb 13, 2017 at 7:07 PM, Alvaro Herrera <

alvherre@2ndquadrant.com>

wrote:

Re the coding of the padding computation, seems it'd be better to use
our standard "offsetof(last-struct-member) +

sizeof(last-struct-member)"

rather than adding each of the members' sizes individually.

It was done so in order to evade extra level of nesting for PGXACT. See
discussion with Tom Lane in [1] and upthread.

Yes, I understand. I just mean that it could be done something like
this:

#define PGXACTPadSize (PG_CACHE_LINE_SIZE - (offsetof(PGXACT, nxid) +
sizeof(uint8)))

Yes, but I can't use such macro in the definition of PGXACT itself.

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

#31Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Alexander Korotkov (#30)
Re: Should we cacheline align PGXACT?

Alexander Korotkov wrote:

On Tue, Feb 14, 2017 at 3:57 PM, Alvaro Herrera <alvherre@2ndquadrant.com>
wrote:

Yes, I understand. I just mean that it could be done something like
this:

#define PGXACTPadSize (PG_CACHE_LINE_SIZE - (offsetof(PGXACT, nxid) +
sizeof(uint8)))

Yes, but I can't use such macro in the definition of PGXACT itself.

/me slaps forehead

--
�lvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#32Alexander Korotkov
a.korotkov@postgrespro.ru
In reply to: Ashutosh Sharma (#27)
2 attachment(s)
Re: Should we cacheline align PGXACT?

Hi!

On Mon, Feb 13, 2017 at 8:02 PM, Ashutosh Sharma <ashu.coek88@gmail.com>
wrote:

I too have performed benchmarking of this patch on a large machine
(with 128 CPU(s), 520GB RAM, intel x86-64 architecture) and would like
to share my observations for the same (Please note that, as I had to
reverify readings on few client counts, it did take some time for me
to share these test-results.)

Great! Thank you very much for testing.

Case3: Data fits in shared buffer, Read-write workload:

------------------------------------------------------------
-----------------
In this case, I could see that the tps on head and patch are very
close to each other with a small variation of (+-)3-4% which i assume
is a run-to-run variation. PFA result sheet
'results-readwrite-300-1000-SF' containing the test-results.

I wouldn't say it's just a variation. It looks like relatively small but
noticeable regression in the patch.
According to Andres comment [1] I made a version of patch
(pgxact-align-3.patch) which align PGXACT to 16 bytes.
That excludes situation when single PGXACT is spread over 2 cache lines.
Results of read-only tests are attached. We can see that 16-byte alignment
gives speedup in read-only tests, but it's a bit less than speedup of cache
line alignment version.
Read-write tests are now running. Hopefully 16-byte alignment version of
patch wouldn't cause regression in read-write benchmark.

1.
/messages/by-id/20160822021747.u5bqx2xwwjzac5u5@alap3.anarazel.de

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

Attachments:

pgxact-align-3.patchapplication/octet-stream; name=pgxact-align-3.patchDownload
diff --git a/src/backend/storage/lmgr/proc.c b/src/backend/storage/lmgr/proc.c
new file mode 100644
index 8f467be..1a05666
*** a/src/backend/storage/lmgr/proc.c
--- b/src/backend/storage/lmgr/proc.c
*************** InitProcGlobal(void)
*** 168,173 ****
--- 168,177 ----
  	bool		found;
  	uint32		TotalProcs = MaxBackends + NUM_AUXILIARY_PROCS + max_prepared_xacts;
  
+ 	/* PGXACT should be aligned to the power of 2 */
+ 	StaticAssertExpr((sizeof(PGXACT) & (sizeof(PGXACT) - 1)) == 0,
+ 					 "PGXACT is not properly aligned");
+ 
  	/* Create the ProcGlobal shared structure */
  	ProcGlobal = (PROC_HDR *)
  		ShmemInitStruct("Proc Header", sizeof(PROC_HDR), &found);
diff --git a/src/include/storage/proc.h b/src/include/storage/proc.h
new file mode 100644
index 5f38fa6..a7e0ea3
*** a/src/include/storage/proc.h
--- b/src/include/storage/proc.h
*************** extern PGDLLIMPORT struct PGXACT *MyPgXa
*** 189,199 ****
  /*
   * Prior to PostgreSQL 9.2, the fields below were stored as part of the
   * PGPROC.  However, benchmarking revealed that packing these particular
!  * members into a separate array as tightly as possible sped up GetSnapshotData
!  * considerably on systems with many CPU cores, by reducing the number of
!  * cache lines needing to be fetched.  Thus, think very carefully before adding
!  * anything else here.
   */
  typedef struct PGXACT
  {
  	TransactionId xid;			/* id of top-level transaction currently being
--- 189,208 ----
  /*
   * Prior to PostgreSQL 9.2, the fields below were stored as part of the
   * PGPROC.  However, benchmarking revealed that packing these particular
!  * members into a separate array sped up GetSnapshotData considerably on
!  * systems with many CPU cores, by reducing the number of cache lines needing
!  * to be fetched.  Also, this fields are subject of intensive writes even on
!  * read-only workloads.  Thereby, it's desirable that writes of these fields
!  * invalidate as less cache lines as possible.  From that point of view, we
!  * should prevent PGXACT from being on the boundary of cache lines.  In order
!  * to achieve that we align PGXACT to the nearest power of 2.  That gives
!  * considerable speedup on systems with many CPU cores.
   */
+ 
+ /* Calculation of padding for PGXACT.  Update this after changing of PGXACT. */
+ #define PGXACTPadSize (16 - 2 * sizeof(TransactionId) \
+ 					   - 2 * sizeof(uint8) - 2 * sizeof(bool))
+ 
  typedef struct PGXACT
  {
  	TransactionId xid;			/* id of top-level transaction currently being
*************** typedef struct PGXACT
*** 211,216 ****
--- 220,227 ----
  								 * previously called InCommit */
  
  	uint8		nxids;
+ 
+ 	char		pad[PGXACTPadSize];
  } PGXACT;
  
  /*
scalability_pgxact_align-3.pngimage/png; name=scalability_pgxact_align-3.pngDownload
#33Alexander Korotkov
a.korotkov@postgrespro.ru
In reply to: Alexander Korotkov (#32)
1 attachment(s)
Re: Should we cacheline align PGXACT?

On Wed, Feb 15, 2017 at 11:49 AM, Alexander Korotkov <
a.korotkov@postgrespro.ru> wrote:

On Mon, Feb 13, 2017 at 8:02 PM, Ashutosh Sharma <ashu.coek88@gmail.com>
wrote:

I too have performed benchmarking of this patch on a large machine
(with 128 CPU(s), 520GB RAM, intel x86-64 architecture) and would like
to share my observations for the same (Please note that, as I had to
reverify readings on few client counts, it did take some time for me
to share these test-results.)

Great! Thank you very much for testing.

Case3: Data fits in shared buffer, Read-write workload:

------------------------------------------------------------
-----------------
In this case, I could see that the tps on head and patch are very
close to each other with a small variation of (+-)3-4% which i assume
is a run-to-run variation. PFA result sheet
'results-readwrite-300-1000-SF' containing the test-results.

I wouldn't say it's just a variation. It looks like relatively small but
noticeable regression in the patch.
According to Andres comment [1] I made a version of patch
(pgxact-align-3.patch) which align PGXACT to 16 bytes.
That excludes situation when single PGXACT is spread over 2 cache lines.
Results of read-only tests are attached. We can see that 16-byte
alignment gives speedup in read-only tests, but it's a bit less than
speedup of cache line alignment version.
Read-write tests are now running. Hopefully 16-byte alignment version of
patch wouldn't cause regression in read-write benchmark.

1. /messages/by-id/20160822021747.u5bq
x2xwwjzac5u5@alap3.anarazel.de

RW-benchmark on 72-cores machine is completed.

+-----------+--------+--------+--------+--------+--------+--
------+--------+--------+--------+
|           |          master          |      pgxact-align-2      |
 pgxact-align-3      |
|   clients |      1 |      2 |      3 |      1 |      2 |      3 |      1
|      2 |      3 |
|-----------+--------+--------+--------+--------+--------+--
------+--------+--------+--------|
|         1 |   4696 |   4773 |   4777 |   4449 |   4766 |   4731 |   4658
|   4670 |   4807 |
|         2 |   9127 |   9154 |   9300 |   9224 |   8801 |   9055 |   9278
|   9245 |   8902 |
|         4 |  17377 |  17779 |  17740 |  17936 |  17560 |  17900 |  17806
|  17782 |  17934 |
|         8 |  34348 |  34233 |  34656 |  34204 |  33617 |  34226 |  34446
|  34105 |  34554 |
|        16 |  64350 |  64530 |  64574 |  63474 |  62852 |  63622 |  63942
|  62268 |  63396 |
|        20 |  76648 |  76515 |  75026 |  75123 |  74624 |  76461 |  77756
|  77245 |  76263 |
|        40 |  98566 | 100429 | 103499 | 103118 | 100186 |  99550 | 101489
| 102363 | 102015 |
|        60 | 106871 | 107842 | 107724 | 107168 | 107645 | 104791 | 109388
| 109367 | 106146 |
|        80 | 109461 | 108467 | 108913 | 104780 | 109742 | 106929 | 111254
| 107688 | 109581 |
|       100 |  98772 |  98641 |  94742 | 100390 | 102977 |  99691 |  99296
|  95699 | 103675 |
|       120 |  92740 |  94659 |  93876 |  91856 |  90732 |  91560 |  92334
|  88746 |  94663 |
|       140 |  88400 |  89448 |  89600 |  87173 |  90152 |  88190 |  88174
|  92784 |  91788 |
|       150 |  87292 |  92834 |  89714 |  86626 |  93090 |  88887 |  89407
|  88234 |  92760 |
|       160 |  88704 |  86890 |  87668 |  91025 |  89734 |  86875 |  88398
|  87846 |  87659 |
|       180 |  85451 |  84611 |  81913 |  86939 |  85888 |  86000 |  87287
|  85644 |  82915 |
|       200 |  73796 |  81149 |  81674 |  76179 |  73104 |  79381 |  82456
|  79920 |  76239 |
|       220 |  68113 |  69765 |  67871 |  67611 |  74125 |  66436 |  64810
|  72282 |  71387 |
|       240 |  63528 |  61462 |  65662 |  61711 |  61697 |  63032 |  65435
|  61804 |  59918 |
+-----------+--------+--------+--------+--------+--------+--
------+--------+--------+--------+

Difference between master, pgxact-align-2 and pgxact-align-3 doesn't exceed
per run variation.
Thus, at this test we can't confirm neither regression in pgxact-align-2,
neither improvement in pgxact-align-3.
Ashutosh, could you please repeat your benchmarks with pgxact-align-3?

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

Attachments:

scalability_pgxact_align-3-rw.pngimage/png; name=scalability_pgxact_align-3-rw.pngDownload
�PNG


IHDR���KR[sBIT|d�	pHYs��~� IDATx���wXT�����.���" ����`/�k�%�{A���b{7����c��DcL��.��R��n�("���{���`!�|��\p�<3�L����$!�@ �BU�
�@ ����@ ��0��@ �< h�@ � Z �@ ����@ ��0��@ �< h�@ � Z �@ ����@ ��0��@ �< �W�w��h��iA�h�����_�j�s�������O�7��������VC����P�T�v�ZA�"(��Y�&&&��@�� �W@�$H�T�j(X]n���n���|��011�� �~�::w�kkkX[[��O>����2���=z4\\\���P�n]�={� �5k��L�2�j������?��/���l���(Y����m��t,Y�$T*,X`�l���P�T���K����t4n�*�
6lx������O�>�\�24
�����;w��7o{{{X[[�N�:��w�k����|�2T*����<�S��X�v���q���_��A?��m[T�V
/^�x#���J��5t�P�{���;wn�a���c��i����N����;�
���d���E�P�\9�������{���[�2+V�@�
`nnwwwL�:� _���.��~���m���{{{|��h��I��|zz:Z�n���$����w�Fll,��o�����/�j�*,[��N����'�4i��7o�2[�nE`` ���p���={����;�����%���s�ILLD�P�V-l��^^^����>}����@@@���?�*T�����X|�$�D�X�|�����gX�n���������_{��R���i������H�������'�|�e���h��lmmq���>}���h��
���^�N9�_+SI�����v�ZDDD`�������K�o�>l��j�����W.\�7n(�Y�f�}��wP�T���s����;�~�-������h,_��7o���#e�M�6a���5j����i�&�9s={��e�/_��C�b���������d�L�8Q�1v�{���#==����_�?�6����_�}����1c���@+++0���=�e�����Z[[�����fPP���d�^�z�I�&�;w.]]]�����S'������6n�H???j�Z�,Y�#G���'O�r��itvv���{�����+�����?V�\�Z�����l�����G�l���Qa����Y�vmZZZ����~~~��k�Q~�y��]�vQ�$����n����$����$��R��r����LZZ���9e���V�Z����"�N�:�A�yJgN�f�N�:�Z�*�l��:����?~<>|(�[���`������������������w�---��gON�6�3f�����9k�,��$I\�h�w�NKKK���������~%K���1chaa�'N���������Q�*I�����;��������?��Lpp0?��Z[[�K�.$���w�v��433���+�����w����i�g���|@GGGZXX�Z�j��s�"~wwwN�0��
���=k��I�<}�4�6mJ-Z�;vdRR��opp�w���BI���?�d�'��?��1c���J�F�r����4�������������w�R�$n��!G��-[�Z�jLMM%��=6n�����cZZZ��M�<Y�g�9w�%IbDD�����CJ����=�0����:u�P�����������K����|�
=<<��hX�T)~���
��-�+W��c��tpp���===��7�d�gbb"%I���G�?��3[�nM�NGOOO�Y�F��$I��R��g���z�j�����$��'j4�={�111477��E�2��/c�y��I:t(�������#F���9�gL��L�����u�\���kg���9��*U���
�*U�(d���ikk+�p��A
�y���������$���B�f6l�@j�Z6m���/_6�����X�L��jFGG���k����iccC3336h���O�V���>��vvv��t�X�"�m�&?�v�u�V���S��������W��s�����c��uiffF[[[v����n��5ml��mllhnnN�[�.�||����h�����AGGG�1B���������?������;v,������-�����VVVl��#""Jooov��A�Y�z5mmm�~�z&&&���C�X�"{��������#G�dLLw��M;;;N�8Q�Y�jMLL8c�FEE1<<�����s���a��/hkk�/������������[y��a��gg8M�4��J�2p/^�8g��I���.I�\�������fJJ
MLL��+��j���n��zz����M��(caa�e���������w�2�+���yeaa��2..�g����(+N�:EI��5k�(��H�D'''�X��			\�p!%I��}���c��%9c�200Pv�[�.g�����{e@���q����������V���o�)d����p�B&$$0>>�����N����S�N�a���W���������^�x�qqq�0a5�b�sww����N����8FEE122��2e
cbb�N�:�t���K���[�V�9o�<���q���ttt�J����5j����y�f���q��YT�T�2�o9��q�nnn<x��Nn���������Q�F�$g��A^�z5Gz�3��<yBggg�9�O�>����9g�:88�������g�)R�#F�`xx8����j�*FGG�|��iff����3>>�K�,�V����+�0�[�m��a��M���$8p��������������i/]��q��Q�V�u����T�����7y��M�4J?c
h����;��+��U��e���g��/c������g�f||<��g���(d�B�$�_���t�dxx8%I�������~Kggg����$/]�DE?�y�f�t:���2==���_g�z�cv��U9|�pE��/�$I<t�����3fd�����inn��u�����<u�k�����++dt:4h��'O2..��=b���Y�R%=z�.\��L[[[�N�~�:��iS=z�			�����c������������MLL��7�����������y������%�u����9r�+Vd��usM[�
��[7FEE111������/�[���Cal-[��Z�����|��1MMM�j�*���5k���������wS�$yF����K�.U�s��AJ����������)d
�Z�j��������c�r�����\��s";���0p�V�?��3���
(I�<��g��Q���%I���?�$�{��Q�l����$�������������!!!9��#�?~L�V��s�����G,Z�(�t��q���h@6L������c��IG��=s�L�<y�|��1�����hx��-�g�{���p�����3�$Ia��/�:��III�$�aaa$�k�Y����xYqww7HG�^���p=��=�N������v��]!3j��g��<yBSSS.^�X���C6j�H��O9�g�'O������P�Vs��)411Q���Fv4I����|��T�TT��tqq��3gr�N�:l��M�����8f����#���)���L������Fv��y�d���4ZZZ*��Z�������u+�������N�����l��1�}�����S��h���|�I��I�D�VK����?g)?d�/^����3fP�V�����$q���2+V��N��e��i�������igg��G�2==�/^d���)I��Re����'O6��bcc)I���/��T*�d���{)I���d���+V���M#IN�0����g�3��������$I1[��	&�x���1>,,��$��tY��$�����
��v
t���k�j�����\�t	���x��9j����S�fM��i�������"�x�"n������#F�����|�l��$!>>^������X�b���[�n����h��Y���$)�0�b��Y
��=
[[[�y��h��%f������l����.���a�Z����J��l��u����	�v�Z�����~P��u�dd$RRRr,��XXX`���HMM��E������Q�F��k��lf]\\6�d�E�
3S�Z5x{{����e���m[-Z�h�k�����]�6"##n��WW��:u
���S����I�'���6����<x0|||`kkKKKDFF������H��e�����"~�����GEE���	�1/��N�z�����3������Y�����I�&�_[��Mf�A����/0u�T���m����On<}�}�����/�;�'N�M�6h��5�\�����g�f�6>|���'���|�2�={ �e:|�p��55k�DPP>���g,;�JGG��.7�2�#��n�:/���:u� ���W^�9�}��Y�f!,,Lq�l��@.99���G``��������i-Z�5k����s��iv���	&�~>������o����g�c�$&&�o�����	��sg4l�����G�=E����;�-Z�������7�����������H����l����F�A�5�>���3�]�6������U�����7o�����c�����W:��YS���b������1m0j�(�a���:u*��;�c�
�;
��[��bc���@�������aCWWWYV��d��X}�	##�
B�.]�{��e�0l�0���{������`�0 ��s�X�b��o����7���,���26��7o���V�q��
E87o����)lmm��Vc���Gpp0���>�Z��������s|���������p�o^(_�<6o����\�|���h�����/���WW�\)����,Z�W�^��i(zH�]��-�LPP�<`e���I!���{����W���o�����Z-�t�b��,��{����� �����
��+��e�'y-�}�����c055U����3g����HKK��#G�V�/(����q��<xP68�,Y�}��a��e�>}z�~s����/3y)S;;;/��|��;w���h��:t� �����3V?c�����1c���H"""B�������4Y��:f&?i��������7���'T�g�����n��|}}���S����&M�F��������b��A^���W��M�OOOh4,^�X�����$OX�*U
�qc^^��d��@�m#==����U��J�����S�Na������_�M�6�U�V9��[�&L��n��a�����?f�����G��W�i���S�N)�~p������4���C��7�QQQx���|�����'''/^������4�2f����77�|�2����
}�Z�����#F���;��_?,[���p�j$u��Abb�b�$**
W�^E�:uU�T����"������w�,��hP�Z5����s'j���m�)�y������h��:��0r��\�r�j��T��={6�|�Vf\\\:fE���KKK��u�t���3�/W�\�~�V�����,�T��7��	��i<x0Z�n
___8;;���K��\�jU���e��D�r�����#
������SSS���*�:������WN�^�����l����������?r�;e�\�t	G���S�0g��W��<y����*U�CR�*U�mVVVpss�2�rk�9�����,������{#$$+V���
����\R�74�l��U��HMME�n���iS���_}�0p�@E\9��W������K��uk�	�������,�_.g�Q0|IP�TpqqA�"E���?����*U`����o�FBB�|��w��}WV������;�����RRRp��I���xY�G�58�O��j��U���cq��A��_�W��u<v�RSSe���0<x�@�1'<<<0h� l��	S�N����s��Fy{�E�;�7~��������m������0t�P+V���mcLL��G�.]Z��oTj��=#""x��Az{{�}�����u���h8s�L^�p�������_���'8dd���,Y��|�b�
���p����x�"#""��?(6��1���s���<r�/_���������kU3s��9�;w�m��a��5y��y�����tV�R�5j����'y��qV�R��k�V�3|�p-Z���mcDD{��E;;;��qC��o��?>���9w�\��j������}�����'�=zp���,Z�����|}�O�\'��D�����x����g9e�FGGs���\�h�,YB�J%oh!�^���q�l�u�����b����'������,`ll,����V��5���|�����p���<w��������_�~|���nm�j���S�/\� �]kkkE~dN'IFEE�aN�<���������
cBBI��_��hll,W�ZEgg�\O�=z4����i�&���r���T�T�����$?�h����P���p���$�M�6Q������9������s�8p�@�(QB��?N���N333������������#hbb�c��w�f�"E8|�p���1::��W�fLLIr��E�����Xys[��,�-�!C�p������7W���g�kvk���zJ�*��S���������;�]�&o�4F?c�@���Y�Q�����h4\�v-I��W~��_�~���$I.\����+.��Sz��m�����������W&&&r������`��me����S��1$$�			<t�+W�LY&>>�k��aLLO�>�A����DqZ��c^f������3g����S�Y���������Q�����&���;���N>AE���I�&�&�?��C��WmG���i�x��	&%%q���tqq��I�H�7o�����v����>|�*TPlP�*m�?������~&$$�����_���_A�^�
4`�~����_��������������O�r��������
������B�
����o������N��G}dp����[Y�V-y����?�O������
?3f������m��
������)�����uk>x� Oa�������cG�������...0`�b3VVd>z)�L��;u�DKKKZYY�K�.;�SSS9z�h:;;S���N�:Yn,Z�f
K�.M�F��e����#=�zc��e���inn�"E�����#F�Pl�x]��g���,S�5
�����s�le�_��~���GJi4���(�$�6��4i�>}��Y?�&��0�t�1v����N�����b�Uv:�/�Zl��	---�#�2��/��������<<<�x�b���.�.\`�v�hkkK333zyyq��������OWWW����i��		�����T�������;�s����cn���wY�xq~���
����+�#K�,�e��8���P6h��������f�Z���U�k�.��U�fff���f�F����(?��fbb�R�J���2�nC�a���iff&��/^�V���D�T*���^��������s'}||��h}hnun���411�V���S�Vg��_}�mmm��[��/2���
f�#�K2^�7�80�O�<��_~IOOOj�Z�(Q�C�Q�iii�5k��)C333����{���Mm����Z�*���iaa�F�eyR�1c^f2cW�dIj�Z6i�D�1o��)�
2���K�1v�����Xv��������t���W���J;���d��-���LSSS���s����������W����hcc�n��)�$��={��]�v���sttd�.]�>
�M!����@6loo�<-K�F�����6mzC�	�6�|�	RRR�e��\e���0e�����"!!!�$Iq���J�����k���=���{�����={^{��@���2e
6l�������&BfX��8s�j������c��u

�������IRSS�����W�^F�yW�5�=�@ xWy/
��6�d%�d�6���������[��y�����Mr��Q�n�
6��a���S�d����3�_
;��q�@ ��!��w��r	�@ �@�_��c��@ �� h�@ � Z ��`� IDAT�@ ���~�i��������On�n6m��R�JA�V�o����+��wo���o�J��'���Y���m3e�x{{%�:�����^�:�����P^�r�7�����	n��}!/mQP��;N��[�n�w�}W�����4���]�t��+W0��,���[�*U����:����3*
�F����,--acc�������u'C��~����_{��������7n���~(���j�]��5*x
bW����acc����:u
��O��saaa�~��[��U�r�
�5kWWWh�Z����W�^���d�.�G�����_F���w��qt��I�D�h��)��_��\�J��/�Z
���������#G�@�R����V����8q�Di�z1v�=q�j��
333���`��qHOOW�\�~�;w���5�����'�����o+)�{y�]a&����k�����'h���+�����&O��2e����������V�1t��l��/_�Z�B��%������W�]�v8q�*W����cii���|�x�j������$��g[������pA�?>>�z�B�%d���8T�V
�J�z��_5?����	>��#��=E�ERRF��6m������s�����
+W����'���0d����(^�W�^��c��X�v-<==q��}DFFb������D���e����?DZZ���1d����{��}�� 0��������������q���+h��):u���+W"66}��I|��W���t�n�j�{��Ezz:����������7O�|��R�~}����������#mll8~�x���s���trrb��E9~�x����TN�<Y�T���/�.]���|�2�7oN333�(Q����l���g���{7���O;;;Z[[�~��<y��"\I��h�"v������tss�W_}�kZ�;��u�����������+o��E��ge3�����F�c�����cG������2888G�g�������J255��/���;mmm9`�>���_���K��D����b��my��MYF�Y��>|��$1))�0����df�2e��j�����3g*>��}x��og@@�Z-/^���WS�V+d�\��(��={��n����t,W���3�$9s�Lzzz����E�e�������,�Y�|9�������DJ������n��-����|��������')������T�u:�T��S�Ne�7$�f�����F�D��u�q��6l���������l��ccc
��a��h�����

"In���~~~�j�,Y�$G��'O��~�={�O?����������A�dP��C�/{��e�r���jY�F
�?�@&#��^����)S����=���C���J�N�J�*q��-��Gjj*G�A777����X�b����Q�|�l����$������l���*���="I^�z����������#������:O�����;X�fM����J�*���dDD���X�zu�g�����n���D�433c�2e8w�\���g���������n������e�n���-55�S�N��WWW~�����k�����?V|f����i����������[��N����'��Y��%�:I�7o�d������D�V�2e�p��U�|��A]�~<��|��5������)���8a�E���M�Fggg����g��|���,�[���h��=;t� ��;���W�,\�����LNN&I�����$)����HJ�������x!��L���imm��� ���q��U�$�-[���1c���J���z��E???�����/_�O?�D�\��$����J�*�z��<y�$��?��M����������i������_��M���/200�vvv�{��,#I����b�
&$$p����$�����6���_���%�u����9r�+Vd��uI�O�>��S�(I�����ySa�fGzz:O�8AGGG���F�{jj*��]K�F�s���(��W/Z[[�w���������N�V��-[�W�^�������iff�����z����M����kWFFF���c���`�=d���'���[F����r~��y�7o�����'����[�n�����c��(Q�'N�6m�A�l����m/_���W���������]��>}��������#I���/�����m�x���?�������NHHPt�+V����#]]]e�.]�(�,��q��m��j��C�4U*����#G�0::�-Z����G�/*T`�n����D������m�"��������m�6&$$����l��-�����������a�^�|����\�z5mmm�~�z&&&���C�X��"������#��w���p��Q���2�C����*U����Cg������*�Qnu!--�7n�`���9v�X��y��?��7X�vmv��]�����l��6l��G�211���-�F���,���;w.���x��A^�r��N�����sL�|@��#G��W�������j��9��\��LKK#I��7��$����F�#I��_/�_�v�
4`��-����_�\�28��/�V�Z�X�"�������3**�u��a�5d7n���_�s������\�~=-,,�z�jY&66����\�`I200�����KCn�������\�~=x��q~���$_����Wg�J�x��Q^�p��1mmmy��E�r��u�����6m��K�8n�8��j��1�N&''�l���R�
������D����?���������S�$�>}�7o����l@o���E���_���8���O���U��������
G��������vvv
�����$%%���<�vP�|y��M�gY�����c�~������$�G�%IN�4��J�2�x���1c��:���5S�~}V�TI������+*����8j�(�/��J�������S���O���g%Ib\\������433����LZZmmm�!�$q��a
9�;6�p&L�����355Uv�$I<t���uv���������95
�j��
��?�����)B;;;���#W?�z�����B�V�Z�h��
#�]�v�����2�@;::*���=�����s��&�u��Q�$���'O����k�.�{HHmll�M�~�8X��M���������7)Iw��M�����X�tiE��F��%���]�r������������b �<[�V�b�I�/K'N�0�	������lUF�����KI���_��_��\����
~U:x� %I�������cj�Z�X�B!S�j�<��$q������{�haa!��S���6s�L�\������j�|���B�O�>�lfv�1l�06j���t��v�/]������\F�t�B�NGI����og+{��u�����/���
d����F��Y��g�$Q�����B��R�J�_��A�F��7�m��M�$I1�����R�$���:t�bB�|��h�ZN�8��F1C�qqq�$����K�����KI�%�����X�b�6m�"m9�?��4o�<Y&--����\�l�Nnur���j������7s�'s^�N~���
�������L�#���O???���A�X�V-�>�~)3/^������������[�ti�_�?~LI��y�f�d���`v�j�����]E�\z�H�???����3*V�h��_d��i�D�*U`ii)__}����/^�������0P�L��ILLD�=���-/����������n���m�����Y��bmm��amm��/��SVXYY!<<g����0w�\�Z�*W�5BXXN�8���@t�����l��A��7n�����(twrrB�2e�2���r�}8�+V7o�4:����O��c���4|���x��!����������;��u���E������#55��������_����^��
�o�>@hh(�7o��u�b��}������7��Q�<�����������F�B`` 6l��S��u%#�������C����������III
���������1b�Ey�l��$!>>�.]BJJ�b�,�y
t�Z���mll�����v��N���������H��
��KO�:��O\�p^^^4h�l���x������g��V��U����������	�������(�u��5ky�'�rml�2)[�,���q��y����e��YCxx8���SSSt��!�xs#c�wrr��w�����t|������G��Eaii��K��={�D��m1c���1U�T1J���f��e�<22���([�����hP�F
DFF*ds���Q�Tptt�e���g�����/\\\�J_v\�x���S���W��=��K���0'���2R�H�\�A���s�??��~Cs�����O��������w���c$I�r������=v�t:��_�e��2�6��n����X�h�/��S��?W�i4�xs��sj�i4�$�Ge�/_�������s=�N�����T����0��37nD�v��D��i�7�I���[n�[Ve��LT*�A�f$���7oF���
������?�F��N��N��u!�>...�������~L�>c����'����ex
6��#p��E<z�5j�@�F���~�x���j��R�uM�Ne6a�t��
;w�����1k�,�=��O�6��Arr2�5k�z��a��5prrI������e����
�������hE:^'���r�y���kmm���O<���������g�8p��
���q���l7��h�G��Q��;w"   G'''899���~~~pqq���{���W��iS�.]�7oV�W�lY<|���]��0�/���wrr���*U
��=j������<�@f__�Y������s���_c��y�\�2,--��w�a����p?~��g�B�V#&&&O:�FV�:==��>���d'�����N�2�K��g44s_���2����\�r9�%K���r�=�q�X�b'���q��I@��~�$��^��"f���_�����d������������:w��A\\\�q��{QQQ

B��MQ�lY����:�j���8v��b�
�����������$y�gaa��KY�u)������[�n):K�l�}��������V���K���]���w���HKKS�}f=�E���y���={6.\����d���o��7l����/�������C�R�Q�F

������q�\�KKK���Y����A�a��M�:u*/^l����(��s3g�D�z�P�L�������:99�x�������<MMM����Fc` ���_y��������>bbb�������j������x���A��{�����9��o�������������C���_�r%���r���5���[)))���K�P�n]�/_[�l10�?��#���fk�����
?}�4O���C��E�������������X�z5h� ���b��=X�n~��g����z�k��,�������;�����RRRp����2^d�j������U�"22Rq|aF�}rn����/BCCn�RL�K^�%WWW������s�k�q7  {��Q���;wB���R�J�:u� 11Qa�DEE�����S�N�ux�3����~������}��E���1g���YO�<��3gp���=M�4����w��~�&&&3f�j�"�������h��X�l<==���������|��g�?>z���q�����{<x0������Of&O��z��������8t���������[��p�B�j�
NNN��>6n�����c��-F��u�[8�5Brr2&M��>}�����X�h�BF����o�!  :�7n��I���qc�x�.\�������_�I�5j���AAA;v,.]��i���-�xi��D�j�`cc�}�����G(W�\�~���P�T)���`���^�>�����s=��������|888�Yox��	F���>�%K������s��\��m���������#q��ee���9������-��mDEEa���X�d	�������b��	prrB����r�J����?��$I3f����?VVV���+��BVu;s���Q#4i�;v��9sP�B��w���������|�
\]]����N��7B�Vg����W��}��-x��	*U�KKK���a���(^��<|��E���?��<[GGG�T*���b��8p �����T�RHNN����q��-����7n�I����3f
���	��-�u��!44...X�v-N�<��%k�����y3N�:����c���8p j��!/S�///t��
���g�P�fM����8v������z�����+.\+++L�>��?��A�^9}�d���s���|�	�����m�b��9���DBB������;���*�
��oG���ajj
kkk�x���6m�`��������?��S���/����m,}��1����~I���U0f�4h,X����c���t�&M���C��vD�&MP�re�6IOO��!CP�V-��-��7����$�M|M�4QMF��M�q�}ZZ�����e�R������
4���/��k���Z-�/.c��&����f�-[�������8u�TY&�#���93��g�z�hffFv��M�'11�*�*�M�#F�����|^��U�h�"���g����{l��]\\��h����f��l�����i�/w���*��������d�/�p��['��g��U������[�l������J�RlP�����x0���j�Z����f��\�dI�i;p�U*U��c�o�N����N�:��kU*�baV~3n���ek��M[[[�t:V�P��V��V=�J�R����R�R���
���q�������F�Qcgbb��w��Ez2���3v��U>*����]�t���W���4l�7o���7�Z-+W���*�(�z�u�V��U�:��VVV���������O�>���immMkkk8�c����&B���G>Z�F�'��VH�6�u

�����[�h���K�.e�*UheeEV�^�����Q��/��mc��5iccC�V�R�Jq����:�?�O�R��yS�_��?�����411���-6l�%K�(6g����������I����3�U=|���n���J���K�H�<`���ieeE{{{~��g�8q"=<<H��hee��*�������6zRSS9q�D�,Y���nnn1b������������3g���6�F���cZnu�|y2I��=���@�VK�f�9s�����E����)S������ruu��	��Z�����3��7�_z;�?~��k��V����3��g s��uv���������b�.]r��[X��w��@ ��$$$���G�Q���M�h�@ 
�����W�^�x���@ �#XXXd��z���

z�	�f���8�/#�$����oY#����@ �#$$$d����6��
��p��=��w/�����M x�@ �@��h�@ � Z �@ ����@ �@��,@��U��j��O�����h��)���������;��^�3f�888���c��Q<;�<�T�sssT�Zaaa���@ �@P`���+&N�h��������O?ERR���`ii�0��.]��~�
�����m��t�R������];������G�^���];�����_�@ �(@�C�h������|�>��CXXX���C����G��!!!5j\\\����/��k�����"--
��
���	>��s�����w���o%?�@ ��:�S�:������/^����|_�bEDFF"##Q�bE����_��@ �@��V ��j@xx8�O����]v{��1����{kkk<~�8�g���=ze��@ ������G��-�������B�������"�g���XZZ�����aee�
��@ 6��3�IIIh��)&M��n��)���������:�� IDAT�Z�* ,,L^��������N!��|�������>��h��@ 9S>�]`3�iiix��^�x���4��� --
���5j�!C�`���z��������]��k���w��w���
�H�"FJJ
,XI���Q�W��$�U���'���).Q���%��p]�)��B��@O�>��M����_���'C�$$&&b����:u*������DBB*T�����lhk4l�����

B�r��u�V���W�+�@ ����:��$�P�I�����[>�P��#��p!��p!��p���,,�S�o"
��VA��Y��Y��Y�x��S�@����%�@��(,�����@ ��0��=������5"��p!��p!��p�>��0��@ �< �@�����G ��mQX�'1-�@ �a@�{��5\�Q��Q��Q�����<�-�@ ��:��5<�@ o��b?�h�@ � Z���>��*���,\��,\��,\���)h�@ � �5�������@ x[�I�@�@ y@�����y
WaD�g�B�g�B�g��}.Oa@�@ y@���'�e
�@ �����ObZ �@ �������k�
#�<�<�<�sy
Z x��X��u����n������q��z�@��k��IaY�#x��X���A*W����X�K#4�Q�bL~��!�
X���e�m��5���gq��L���c��K���*!���g��X �*��~t>),@�z�h(��hnz�:��H -���������L���#-���������<
�������p���-�a
�!�1
��%]A<�cR�o�)�!�j�Mg�@ 
)��~t>),@�r
W�
^[x�u)u[�q	�Z
�
a�	P�������EZ����tz�f1t�l�
��N�>���,�<�<�)��b?�Z��0�~�4^�_
^�������=|�
$]���m�-��m:�/hU�@ �O f��Iay��:|�i���[��RXA����<�a��W(��iA�"�w��b?	:��
 �?�w/��C������L�
�*�"H�� *�A�4��J^���?*�@��P!E��_^d�OS����^�&�`%%#�E`"�e��������	�����Y ���b?	:��
 �����x���ik����KQS[��\	
��/<���%[-V��j;7����{���="��d`�og���c�j�xQZ�i�V�O1��a��Rls����zhH���J0���p!��p!��p!�@�!��}����%H��7W��m������c���5��;�����gH/�����*����{5l��h��Ox�]E��	Zs��"�c�Ce�����3Y������IH[�L�"��L"�@ (�t>),oP�����H��/�/#��43��&��w$*_��_+�p���B��Q:�M���0��)MP��o�
R��/��@���oz�2&*t:X���\����	,-4��0���V�&�����J+k�Xk`cc
s�&*5��"�}v��c�������fKz#=��;��.U�HQ���(X��� �	("*"EJA@:����@B�'�-�����&���$��>O�;wf���d��=s���9�{��D����}W.e{��'�8y<�����!��.��O@��VN�=�B�9_b����(FT����%���=��5�s9�����9���f����7����\�B!��J�$�����M�����O��g�(W�;Ss��u��{�whk����Z��{7^�r�Z\02K^d�[[�3���6Y+�_�<�Y2���v���|vc��O�S[�?��8���@�bO�Z��������l���NGr��,�����a���'���4���+��	������#����=Yy�=��)�Hl�����^���Q<=��B!D���\��W�������EX>��Tt�}}8��!�����{���q��V[H�qtw~to���;cQ�XmV,����U�a�Y��k��z+V��j�
�mV����r^oUo�{�<:%��r����x1�[2���<��
7%3K%�4��������OB!�G+�������8��s��yX�\�)9�S+V`g�~��wc�_� ��vRZn�x��h���A�9�����l�=��:��6f�G�<�$wT�Z��W��m��l��zt�8�]te��E+�BuZ��$��%��������l�2�3l�~��n��I+������?�����*s%(���[H���9���p�aH�<U�!����k.��l'*�4����1�)�(t�3@�)��?������v����s.5.���*�����q����&C�_�0f$���G-�J����Om����Z�RM&����e�\��s���J\���M���]>���C���,w����T������rG�
n���-^�b���0
����^l�5������������?����Xl�yR���C�����_�������?�iiX^����e�|��e�{w�B!D��\��'(�R/�a��5�O����9��H���w�5;RIi���7��]�W�~F��K��Z���B�b�e��/��������k��d���4>e�v�~�������-BQ�h%~�:��rh��`$��s�.^��7K�l(����Gp�����)��wIF����j=	t����9���g�~����e'#���;Wl*��J���>�������{E'�j
!��i%~�:��rh�j�a��w,��b[�%���BR��,��`��@��EJ���/�F����f����T��t	o�^���^q�hJ��k�"r�E:�L�2��+��Mn4�k��'S�E���vH���Hj����H�E����u��Xf~�z���+zy��7S�ubut��� ��T�}�����xS`E���s�����5��d�>��?��GV����$�����3��@6�b����q����m�.2������&���]�n�B!���\��'���2{>��=P������qX>��R�|�s���Lv���[�~��V[n���~�:�at�i]qk��V��������0XUFmH��_���z
�B����>����B�1Z��$��%����e�|��_E�Q�
+A�e�o�I�7�>�����{��"��k����a��>u�o
l\S��|r<��\���&�5�2�-LYv�n����y5>�IH���qK�B���O@��VN��H���]o���(5�bxy4��?�=r��` �yW�&waAF�-� �f�Mo
,����}�H�N�������>X�����s��A�Je����_�f��nT�q@��*�+����u���Xj����Hj��@Q�(�A�nX���CG�XW�/��z1�T#�����s,A�7���f�����M�6����1�
�{�c�v������*������N1z}�&�p7��_��c�2`P��~���{J^�B�%#����OP�����xy�	���y��2*N�e�^�?[Jq��v���pS`6�\|Z�#j����<N�09����O���nJU_�{���?��]�����.A��Mx�FOz�o��jf����=��1'uU��t
o��
G��*7$
!Da����@'^�5k
4�����C�:�[�~=��U����v��q�����L&��
������0�M�vO����#������5�W�?�<o	
�q��th��?��#�O'�������1��x�^����K�\U�������d|7�m/���/S���Y� �+�=��Qa��G��:SeQ/fX��@��	��<���?')3�^�B�b�@�R�J1~�x�
�TO�>}x��w�r�

4�����&L�����9s��7���v��|�V�?�Aa��%Y�E*�$eY�����K�4x����Q12�JW���;�.dh��7�QCR8
��(�|4����e����v�z�}�R�fY����L��2�C���\�HpZ��~���K���sn��_��>�E�S[�sh��woz��I@@�S��+�U�}������	&��~�;���?~<���T�V������W_�����H�}��c�������P#�c���u����7�����&�83d5_ux��!�dF�"������X��6��K�v��<�~@�R6K����l� �_f�P..�7��V�oNf������B!��B������>|�:u�8�=<<�X�"����+�?�i}DD���m:��,r������U���������t}.�D����X����:���V�J�!������;����^��Q�7?.�I����M�}�qRUw�zzZ7�g�yoMUE��M`���3b���2-W,��yA�Om��������"���(ajj*>>>Ne���$''����X��:����<���v"����K@��h�3����'�[O��B���y��y��#D=��_{|L�r��1���+�oQu��p0�If�N���a������yF,
Ne�zF,�c�	5����>�����B!��i��;���ER�s�kRR���xyy9���x{{����2d��������u�:>�]����_��?D��|�-j&�4��������*��k��z,�j�s�x7�cWa�}��}98��^O��b�V}V�1�^�������C��������	���Y����z^{�4��z��������^eP���ek�9>Y���8-Kjk�v�s�������/iE���n�������|�����7��u��M.55���`���K�*U(U�,�C�����8q������7��4,������N�S�o�������$������W�C�|�'��i�&��.
7���g�g�;���2Xm��8��
)�[�LZ).��Wve^Ko~���Eo����_8o5z�+�C�d=�D�"���HjKn�S+�S��{X�V222�X,X�VL&V����{s��!V�XAFFo��u��q��
����&!!���(>��s�@�^��m[�����<��m��1�i����1/:\]u�_�5����s�N�����l����s-x{~��/����~I 4����3X�*M���3�4��\�����Om)����7�|SU��g�����������V�VMuwwW��m�FGG;�3�L��a�T5$$D�6m��~�k���NS,�mR��@������������o�5��\���f��������W�{}*�iJ����r.����T�W[?WS�����g�W����y~_A�BZ��
E
GQ��� 
����)���s��A��F����s5�rto��F#�q�����W�E�z1�����=�	���Hy�g6�qWn~���P#�Zz���'��:��m���OX��^��>�E�S[�s
G���P_�1���g�#8�����X��CE�`�9��3���=Fr��;�&�������Q_!\���qU��]=���e�yk��6�d^������������)*��.�#BQ�t.i�TA�������:��l�����8{+>D
^F�G@v��e�|�������'2
3�@{�_~��+���Ff5��7����7�R��Gk�����)�t/C!���O@��VN���^�BF��p����h16���������N�DQ���:���`��J<8(UU9���_���
���x��3���b�q_��:�j���&%�����m�� "D�l)�wI+��������d>6�����Yh�b(�����L[V<��=	X$'O,����q%�ovE?�m�Oj���6&�������-�~!X���>u���;�7
�DB/�<���Bi��/oyp�� ���Hj��@qYW��<L���<��}���5�w�`P5�4��D��/����}w�wo��6���	l�h%A?.����Y�i������,�B>a~�e<5���i����]�h��Uj���*����@��V>A�kj\<�ZB\���`)#m^
#�h@�t|����/�&�"�b�_����4}w$1�Qb�
\�i9�KuQXV���2z}�;��#���:�����:���#cB���O@��VN�{IUU2�
���gG�Y�_	�`i��/z�k���T�@MN���{R���������Q���J'6�y�s�`P�������Uk{���B\���I�\��	p/Y�������I�|���%���`�{�.������OUU�m����?����[s��0���2�����vZR�H���T��|��38��x+�n�,�����Om)�9��(oQ|�b0��T���S;�:�?i��=�����(�[6���/�<{�������m��t3O_���L������=��=of�q��{�������3+����nT��=	���Bq�d:���	�^PU�������Qf�C�W��
�}*t������B��b!��%�L�J������i}0�Y���D������g!��h%~�:��r����`��S���~L��>�����G��^� �'D������'�d]~�9�-���j�5K�J$�n{��]�-�>y�BS�?I
��W���0??��lGyWf��q,�i�j���6m*��y�^�g�����r���YO��@)c���0���;�)cX�K�`.d0�_�'!�6�$���J�x��><�����lE�
'7����Om)��)s-�|��*���CR��,�����l:��Z�����b��j�w�a��4����cw0���i������b�Z7B9F���������m���.c�����`�lgy{�����(`�i{_����y_�+����BqI��%�|��,s`��S�+}J�I[��s�k	>���n�PU�U�61m���z�a[�	��M$}�>�g}\h=6U����x��gpB)�0��������w���`�i;_��������������^����G�<~��"�(Z�?I�KZ9���T4��V�z��Tr���!�WG����>Vl_PM"�XmV��I;>����%�Q7�F�\-�����JX"c�x���`��L�d�B��e���RU}��,�����*�Ops�1O������y��(5���a�#�V/�aj�5�(��'K-���V�'	�sI+'@~Pm62����y��,�U��kaD�G��U����+�&:�yI��0�������+xw�xG����dnO�Dz�sJ�5U�Cqs���n(n��������U�����������g���+���Q�K��wj��,���*L�)������y�%Z�9�����g�q�K8�� 7f����Bh����QR�3�/ar����@2�Nc��d�;���mPl6HK��`O��n����g����zA�?����_����&#����OPy�v�$���Bz����jn�~&�~��}�)������(D�����{0���dX2����_��t�"��}�6�:�G��-JXhA�HQHh%~�:��r�%�j%�Uwl�w9���+���/;T��7��SPM�P8�G�YY=#��1f�x���&�V'R2�J�����ya�+�g�xXJ�}(��&H� 7��zt�L,)���bJL�����b��=cZ��&�{E�[}�����G�������x�DS
w�e��mM���_Y:�7���#�u�*�v	Q�h%~�:��r�%�cy�-�������M)���G�[��
��������6e��	5������&[������k��S]tF"+S?�:���S/�:5KT$���m����Dv�~���4\1��	���y��W���J&��(T���\8���l���D&r��Kx��}�C1aQu�;����A������wn�R*�_��������1�H:{p��$��?YJ�\=�1��B��s���l�GTfS�y��H�����)n��@q�l������(�_k�����cyN����Y�����C�I����<�3@�������{O�M�g�L���/F���HG�������4�\�z��1tfu���c}*��'�f��� IDATssi�7	xU�����M�A�w����>|=`o�~	��	��x?5�y�A�r��C��:1	����-�3�D�D��tlGt�:��47��������H�[�v���kn��3��K���s.S[�x��B?2�KZ��T�S�.���;�.{�h4.�X_�g��+wf��oT�(tn5"Z��$W�L���}�����������	�B��j������p.���_�����d�w��1�e5��?u����tJ�F�X��G��n�o�����b��N��r���Q�������FU���WU����D������W�C�|G�B���O@��VN��`���7�G��	������<���>��rr���NT�i��uo��F#��	b�.�;�{���}1�=qQ�K����v7�R'�*~���/K�������M����i���@�66��E�I��a�=�

3���=4c/J�m����L���Y��@=���J�i�.��5���R�i�O��|jR�����q�O����G����p_�E�	4	�Me��<�?[a���I�\��	p�l�bj�,G���<4,�1���.��|�j��IN�����I�g��(v�E�'��/�BZ|���ap��o���c�*���A$��GQuN�ln�$t[Mz�H,�� ��{d
�~��.�=��+���IZ����6�n��lQ3i��`2@T��J�r�����T��C�������7_���IHm��F�(�&^F�<���8]����@�jf&�CF;�q^:���w��T�R��g!��P�@��kA�r-e�S��#����jP�~����f�`����T�;���q=N����r��%�K�w��z����dT9F�����h�=�W
{���]�)^e�q��E�q�\>M��1��|^lW��I�NL�^~:@��R.(����.(������5�7'g�9�����9����������
�N�P�&!4	��}J�(����@��V>A�
���byw�S�#�����}�&�#������ �'����{>5�=qG�����b��|{MCL0�+�X���y�`�J����J�3��7�g6%�a����	��=�.���R.T��0f}�]�z�_A�%hR�T7���1��w!��V�'	�sI+'@n�v����+7�}���'�:�Wv����[D��7��*�R/���(u�v_�$>#�@�uc0{4����>�:����R�2���[P��O?��GC���s��,	rc��C�P%����I6�������>J�H���SJF����V�'	�sI+'@n������G��>{�=�^#��>��h�.,�0���xG$'O[�?sGUU����G�����;.�K�����9���.;����	
�p�_��y�n�������^������E} A��a�\��s.����ilv����cM<��}���G�C#hA��x����E�\��"9�B����N�3��G�s�G�Z�TMB���(�{��J�
m{P�|�jP}�=qG��������� ������'���+�f�o:7����q�\�jF��Q�����
��>L���x�i��@�5����{�s(��������R�/�����Ng�[<Q�V�d��|�����tz?���A��N@{����r�%e�Z�"FF�sI+����u�_d���4���M=y��R7�N�{�V�<!D>�����1�9	�dn������
����l6��t�S��&e�\��\�IJ)����f�=8`��������4p*��_=����q�{���Au������R�#���h%~�:��r�	55S�6�'O;����i2�$I�����v�����B��6f�G�<���u��x8�O���������38��j�9� S,&��F���?n�d�3�N]��4^�����y#�NO���4	�MD@e�Ny�O�ed;{��c�<��y�(2�?I�KZ9�D��W����T�}T0���G�Jz�����p�)������i��g���Q���W��^����7j�Q��ey,�~���������1�����S�)E,���4��&�����=t�`�t��;�@t���%�3%K^88�p�������|kc^��S[$Z�[�n�#K��YK/G��I�qE.xB�_W/6���/������G���(5�r����<�
�L[D�O� ,�(�����8�?�]�X�?�#�RqI�Lib(E,e���������a07��f�?-�zg���mU����T��1fv�s�w��q&@�{+�k�H��Y�S���!rCF�sI+��n�����Nk�����4�_����U}�/�O(�
!��Yf�G��V�@:V���#u�_����G�<�eUU9m"�@G���?��iD��@U���0����G����|;�w�����},�]���������+Z��$��%���#��1X?_�X�]�a[%�M.%=�80�;�\o�BQ�V|���35���C�������������S�E���k{P}czH)bqQ,9�������d�:����x�o����z#!
�V�'	�sI+'��X��'����Ym�y���c��n��Z��7-2$'O[�?�%���b���6�n�8��>Z}m����4��r��)��
6��9=$X���E���5�!�D���.�)�
�\��"9�BdC��@����������<�Z�"<!���������w�Ly7:��>���l�����G��r�@i�K ���ZY�������*����+��d���
t9����Xg��:k>J�R���B��J�:2��yHF�sI+��n&s�3X~�X�*���P�.�
@)�`��VR7���l*gO�#�������G��\c���9���;f��[U6L�!�����x+R*��L��!��(0Z��$��%��9���������>���	=K8��6�.e����	!�f%'Z8z0���Qz�b�D����/<Q������������?TMNdA�������|2n��d�R��{��]�J�}HB8�J�$t.i�����Z-�b���p��V���i��Z������YPM�S���-���"�	������5)����:�'K����i=���e}v���`:�[�G]���[�G���v��:�Om�h!n`5�)x6�F
p��<������j�B+.���Q���%��>a�K�Jn|��-�{��+��|8�b$;�Z�����<z�����'������0����c�������w������x��+Q��'�n��&D!
��%�|��/�w?`0������L�z��AI�B�{o��q�<�ST�2���r�x{v&����/��K:>�6�H���T�Ee`�����Vk�N��S5�S�Y8�x����5=��LQ|h%~�:��r�H��hO��t}����]h�r(����j=�����j�B[����[�q�W���Y|u�GT��W�)Vz�O��=i�:���ocVU�Nj���NSL�~��������:��e+���9���`�V��0 �K+�������UU�|p0�U�:�Lz��cC9R����!��-����1�wCr��E�S[�?���0_���?>���N�AIVz�M��_6��M��~�����e
-�@cR���WO�^���vC/�B�t����rrM:{p��c�l%���0 
'������eN�3���|�3����k.xB����#�w�M��ly�s��W��$&�q>z���f^k(����Qe���!g�d��b��i�n2U��5�`Sb#����m}��n`���P�-�6j|i	�E�Th�8}�4]�v������0F���jD��}��_�>���4h�����;m;v�X	d���N��f[�R�]���kNe���0���c�������^7����-m����Og����S��X�GY�K�
��s?��O�SM���
#�W����q�j��q.����_LQ>d3��!�����	@|��#���l�����| �Gq�>m���OJLL���c�����3���Lz����A�HHH`�����������sY�j���������;����*UU��<$&9��
#b���\�+�)��/�&
!��#�.�Ln�,�|K��fY�_6%2���4����k��zd;�	cQ�W�q�����Vf(����x�i�b������O4�"����*��������...�����sg>��M��Z�<��s�FF����l�����K/Q�dIJ�,��/��W_}pW�j�u�7��lp*�����!��z��f<>.�M���iSA7A�!�Om���U����3Y�u:�|�dY���1���$�EA���p=����1��<J�r9��KI����9�$��0�+sY��aOIg�$�������g�_�(���|}�����c��%���s��9~��W�t��������p���������N�:����m��v��1��������6���D��tor��&���V��|�;MF�ip����������|If����������
�����)����{:G)%��x�IL'�(�`����P�0iSm����v|B��B@�j�������C�2eh��!={�$%%___�����$''dY���KJJJ���d[�Qm6��?)������P�NG����+�&�3�9�K��?�E�3���][o��,���]��O�d0~�"����S��5��q�\O��e�/�G=��9��A��[��Je)�����3�wX���>Mq�Dz���?���,��p�l6:u����#��};���6��c�FRR�S���D�����^^^N��������v��l��!C�P�\9����[���d���Fa]���X,6�J����E�dVsN�S7�c�<�l�#u���+��,��,�������h�T�Y�r2�����2�S��}��	ex�vu����Gf<�������e;�}�m�6Z%������G�o|��y�i��avL�C�m|��?z����,��������o�#^�����SEQ���e+W�Tk����[�N-]��S��e��k��UUUU�5k���7��n���j��MUUU��k��z��*����b=~RM�W��@����J��Y�T����~v}���ot3���7tD������a�Z��-W���s�/����I#�����DSr���23U����i�(5�����f
>N�=����|�V`�:��h�b���������(�O7�t����@��/��9s�Z�$$$�`���^�g����L&f����(�k��A�1u�T��?�����:u*C���m�B�Z1
i��Jr�����\O�x��n!���^�gx��zd%�j�G�8���i�����>|�36��������S;���@)]�>�/�[)��2������2��.�������#��I��������g�����z��k����	d��}<��DFFR�F
����t����c��s�����g����uw������t,�����%���*�Gs����S��
`a���*k���C�����B!
���N��S�|~w����bF��ir}�h�b�v�Q#�����~�
l��m�S��s��Z�����U���;�z�h**������+
'�e�|��_E�Q�
+Q/]�T��L�:��F�s�>?Y�A���_A5Y!D!��*�O���m�8��m���z�v�g���tm �{��&�Q����Z6Ua��%�7^��MP�/Z+�B�t;
e
��{+�������P��F�pH'���<[:�z�FY��b��q���
���"�Yx(��C�:p�����`8�z�,u������d��E�O
���d��y��M�B�q���������(��e��NQ��n���^l�<���'�����+�������@�+�2�w8����r��)�:/�-AdiW��gm����y��*���0�1��=����fY����KN��w�s�
�x�kj.��aN��0��������I{b�N�p���A��Y��Wl����X�4�r���N���(�-I
G.�� V|���OP�X�2��[S���#���#j�av��
��B!��������r���[W�AD@e6����.UUUl?�����u�X���F��?������C\D�U���!#����@�Vr�&���g�zo?G�\��$��>[0�BQ�u(��=��0����������:p�8v�u,+���w7���KS�p�%<�6:����0UnD��WQ/���1q�$��0�Aa��*���p*����l|��vo�������E���"�Y4����0GY���=Q����ke�f���Y�(:���K���,n�&���Yw���u�|2*6$s�x���yr����Sh
K<{�<H@��������1fV�������-���Z(�BK�=����x������G%��q�����?��~�u�9���Y+ed`��)b�j���5\�;$9��Trx��=���
�OJ-_�����cf�s�yd���j�B�2�����o��~�:fyX��vnI��~�4�]�����}E/O�>�a�H��i��gE!~�2�ao50�q[o�N>[B��p�>�������R`�B�]U���V�����}�`���Y�hxM�V>��[��}���LR�"F
�Z1%�����P��)��IwsB�Hh
;��e/�S����@Q���3���M�>+.�s�Ij��g��)�Y����@_s��?�[;�F����-��P�����z!�o�JW���:�85����d,?���NCMN���Y��Sh�kv"�iy[E�j
!�y���#��|G���?F��ch�|k�l�H�:�M-��o+c�tc���gLQ�rI����+	X^���
0O����z7�$���@�RQ���X� �?�o��v��$�B���j~�8����<!��hJa����;����g5�rto��j0}�"_�c�F��:Ll<2����G����G���}���tf5�X����H7�A_}���(��yr������vH�KE��`�K��������{��qR�g#fj��yB!G.�b�������r���T&4z�au����,�:�$k�_v�y�������UxZrH�������?��*���KE!~����a��:-o���<GTfB���Y�Nq���"�Om��������yw|������|�G�l:�7mV>A��F�3��������eUx��������������X��(V�l�r!���a�������yqx�Nq�>%��0u�n��?+�?eW�+��;=BU!�(H�*�}�)���
]�����og����!�����E��'^,���5������'��}�g��xzd����y�#_�T�)�/����spBs$�#�
�W���E���X�O��|l�z�!�{`��B�[�+� v~������N�
my��jT �|&��c��Ys�``l�O��W��������0��2jB"���P�������.��3�������?�.	�s���������c9�M!��2D]K�g�M�B!
�?����������l�+(��t?o4|��%�a6���r4_���R�F]�|Z��%s��]&S6{��T��~C��gS����G1~<Y��\*������:��F���*�Q7����(�9\Z$��-������lY�>�����sh�e����'�Q{i?���3i�?�<��T���9����F��1�y�K����~�P0���s0�����E�bb��R�*���M.��Sh��l����g%�l'�B!
;EQh_�<8�����AP�,ul���G���>���6��,�Q�
U���%%Xy��(��5���>��w�>��/l��������8�g�
+��v��GR8r�0a��8�Z� ���>��������,�N�L!��{������L�9���g[��3�D�����3�If���Y��������)`���i,oO���;�Z�����.��GW�R�OqR���;!t.� r�!�?t}*�4�B�����;z��&[
!�E�M����
L�9�#WNe[�U����}(�Wg>{5)Kl\2�������>+���I,�>�����_�`@����x	��_^N�P���;!)t���N�;����|S	�sP�s��H�S[�?�%��S���S���/ea�����������K���$M��!�, IDAToY������C,�����*W���D����Q����dTn�e�|T�%O��()������������\�R�y�F!��_z����t����1�����)��N����K�q�o�6rV�4���L�qO�����$=:�~����(5���vJ�zY_����_�T�
�u���&)�TX��H�b!&���EGY�gC���-{�`��B�{#�jfA�O��{>gSb���j����6�ll�.��Q�B��x���N7���u�7��y���8���q�D�����?�)	�s����?���S���z��UG6?��[%�B�{&k&�G�d��/���m]�'>���{Kkt&�{��h�e�s�C��8����x(Ywf0����/J~t
k�t�$�Cc.,����7��v�[Pk������E���"��-��?]�.<S�?����f��^"K�g*	�~���	$������R�e	�bf4�y���(�d}A���O�����/4�]���l&=E���ve�����?!�(��
n�Pw �k>��������\6%:��y�p��J����{c[�%��^-
K�=%��{d
�~�����6��Q�c~a�?w:�����G����W�NB��5B[$�#�
�W�#�H��1U��_:���,��]f�B!�J�La��%L������;��3�4�^^���7`��.[�����g��v]�N?���r��n{QW����
����S�lS��m	��B���x1��pN�������q����K�)SX��I	E����G�a��xf������j�����	���U5@k���[���r�M�v����8�pi����HjKa��n>Lj�4'��K�
���z[������>������d�����gA�nGw��?�Ff3�i����?�J����?�%	�5"=���q�z[%W:�7)�	!�EC����>���?�V}Kh,�\Az�3����������!�����|�d<	+B��a���/a~�eL��a]�%�zQ$Ht.��M�^��_+"R��pL|�>�?XS��B!���wV?6��������`�ue+�2��.:���[��l�����q��b�]�����h������L�q*��s�F!�(����������$v���&q��)$�������}����"h~q��G1���lo�q�=?��7Q���D��Z#�����tQ�F���Tp
*B�s�Ij��������,��f�;���Vp�������������a��Om��b��Uj����X����G�]�j����;E�?���E������lw�	K��Tg[�}C/����j�BQ���p�s\_��"���I���1�rx��N%��1.
\����������G���q���C����n�y�K�����?���D~��\*��E�c�}D����/���������s&f����`P
��B!D��hJa����;�����T�+G���Lh4/�d$���
,9����v�r��@Iw�c_<�n����tU�2��)�?f<�z[����j���t�x/�J���T�'����xy�	\1���W���4���_����
��B!D��oJ,��������'.���uI�x�]����y��g9�)K=�j`�{O�v~�F�K��~_�J��t{�QA�OyE�\*��bQ�V�u��O <h�,8�Xw�O�J�A�t�}�
�6m�M�6��G�?�E�S[�KF]9���kXzl
'��:��q�T�R�q�O�+��l�\R}��GY��T��E��~���K�V>�Y~�1�v+ST������gA�OyEr������0*�3����v�.8��1�<w�+2�|R0�B!��j%�1��SD=��m}�����	q���%(��>[y��tV��>�Y�(�LP��c������/�x�(���b�������}������H�]����\*�OP�z��#>�z���L��	5�r�SL��F�P!��Xl6������������9WVU�����+SK�����j>b(g	��6���snt��W$����>j.������zF,�c�N�N�0&��29����B!�Bd'��������~9��L�9�z��6��=�~K���5��T
,����T<n��e+���
:~�+y�����+9}�t^�N���	��{��_o?�r�^!�[��sX�\q��R��?�E�S[�?��
n<X�=�:O���u�k;�v�������������(����Y���Xx\Y�jF��u��y��Q�K�y�\����	3�1f�����������6l%J� %%������k�<o��^���w����"7
!�E���7C��dh���O�c���Xrl
�E:��/a`��@>k����/��t��>�D&2������(��O�j���L�����T
x�^���q
G�
��q#e��EUUJ�.��q�x���Y�`�|�	����ZR�_A\K�80������]��!���:����kYrl
��8��J�����*�R	��8�Z��W���t���d�#��:}"^����;��������De�%����f��7�R+ous�L��zM�4����-����^)�}�A4AQ�������AT�p��|<x<�|���y3��y�s&��K�������]@k�Z���N�>�N�:�������Bii)\\\���]+�����A����Q�����@������_|�����}��m��������?����
z%�y���r�O��wt�
�����?:v�+��7�.))Q��RL���P��g�B������A�%�v����
S��R"�SY�Oea>��R���5����Kc~���_ <�Xh����h������Ve�����<��������!�O��f�����6lBCC�������>��#t��9???��i�&A�����������������C�^���v�����"���������X�d�d�5��X���������>Vp���+_7��i����p�����i'��9W_�����K�~�<�	�}��zYV�]��
74���A	=��s����^DEE���2���K���+W���G��s�����Bq��U��_���Laoo/6o�,����{��'�t���n����{�����["!!A4j�Hl��]!Dff�ppp�����[gP��_twT�����PYc"""��w�(W�/� �����a�"��YR��Z�0_�A�/� w���O�R��@��qNN�~��!<���?~<^{�5���U��v�Z���;w����qqq@��M�z�j������d����h������������<��]8�c>B�W������!�-U�-P��n. w�d(z�p:t�7������p�����eee8~�8�_�xxx��7�Daa!�����M�����h����������W�J��n����P�m�I������L��"cD��)�p)��,���0���Em]�����4�3S���A�%��i�j[����O��w�}�G�����1l�0���{�222PRR�������G\\N�<���(������^����rss����W\yyy���X!Pv����{�8��7DDDd���\����,�9���B�w���@���={����j5������Yq������o���
����DEE�{�����������V�F�;;;K�wo�W�m�E��"�J�����_�h�����C b>���T���h�LB.�|����'������������l���r>�.�KKK�V�����
���O��z��iS������-[b��5����|����e��ptt���;���t}��N�Bppp���(,,�������m���_�{_k�����\��8��E1���^q������:9>�s�1�sl|c��Ix66�j�#d�t��-y�[�t)���t��b�{��Z��G��F��F���������
v�cdd������~���y��x��gDdd��N���(((S�N]�v�m7}�t��G���-������c�B����W{�U��3��'E�Zz�m�����S����W����Oea>���T���S�����>=k�,��3f�p��J�Je��~��9���B@@�����+�`��Y�������7�x�F�B�.]�i�&�v|�&N�///���`������/��������S�a���;�:Z�Y@�g�������������%O1Ur���N~>�03�����C�����L�6v�U��G���(E2���Q�h����L��4�������uC2�����Q�{<�20���|*��,��O�{������������������%��^����km�f���1"""""��w����������kT} G��h����ts�[���Sg�4"""��PJ��g����L�@6Fi�����d��K+��!"""2M���GN�E�[���=�.SS����D���0���|*�)�S�Z	��������f�n\j�"cDDDDD�G�h�K��w����#�u���Zt�t�Nc """�.��@������_��7�K�����
��b]O�>������9��n2E�,����D���0���|*�)��t=q��kh{=G2�����!"""2]���������1���H7��d�������DDDD5�h�3Bh.���]l*S4DDDD��t=�v����K���w�)�1�.%b>���T�SYL9�,�����B��,��{�2ECDDDd��]Mu��5f�]��n|��N��`aaU'�'"""2�@S�)I�%'4sf�LDDD$�F�N~|n����wj)S4�d�=\J�|*��,����r>Y@�������5��s�^2ECDDDD��������b�A�}8X7.1���A��n�~l""""Cb4���C[%�-�g""""��6bB4���d.=��L�(�)�p)��,���0��b��dm�._,B���$sv�>-O0DDDD�=��V=<?~}�":����\z�N�4oW��%"""�
���Z���gI�|���m������X@3���%����R�d�F�L��K��Oea>���TS�'h#Up�7%s��2ECDDDD����j���H�-x<��e����_�]���������x��j���{%��-3=�W������`m�n�.��u����L�(�)�p)��,���0��b��dm��p�zJ2w�M�L����]M����v����}�H7wx�\���\+�#"""����Zs�������h�o���=,��P���$����85�)�3�.%b>���T�SYL9�,����������>2EBDDDD���j����NN�4G������F��iQ?Q]b4����g�������/� S4DDDDTh#s���P��_p�D@s>��6�r�1���|*��,��O�F�$��qb3w���&""""c��j��!�{�F��t����/`���z""""9���J����.����L�QeX@������
�7m���[#2
����D���0���|*�)���I��W���wC�Z��
U�=��T=<�t���������n��G�����H.��&�*�S���/K���)S4DDDD�(,�������S����/�$cD���{����T�SY�Oe1�|}���kkk�=Z7�q�FxyyA��`�������-�y�&�
�Fooo���H�W�mkS�O[$��M����i������������'�s��P�T���x������a222`kk�I�&I���������a�L�8g������M}�����W������C b>���T�SYL9�F}��M���?�E�8�<��[��3g"--
���\�pAAA�y�&�a��������`��1h��	>���m[�!���8���3o�����1�>6�������/"�e999x�����'�H����x�i�F7������%������sss]m��A|||���M���@��%s�_R����L��K��Oea>���TS����s����q���I�T*]G~~>$�:88 77yyy-���Gnnn���M'6n����S��b�VA�k��DDDD�?��T&..{�����'�mq�wZ����m�����h�Z��+.��������U&,,����
�m���~�{�Ue�sp7~���*K�{7����Uy{�k6		1�x8f>9�?f>�5f>�5�J>�.]���8]��F�����b��Y��5//eee

B�������Ws��M�p�B��5���Vd���^����5�x�����r�A�MDDDd,�]�&L��.���S���������b���9r$~��g����������K/�;;;�����_Ddd$����?��[�n���&�����b�����yP��$�{-�20���|*��,��O�,�mll���
WWW���A�����NNNh�����1r�H���!??+V��m�b�
���#G�Dtt4����F�����}��o���3C�~���1����������>0�W_���?n��w�p��3�5�/��a�6��d|��_�H�����*X@�H���i�9��=d��t�r�1���|*��,��O�2J�#Mr�t�B5��+Ce��������=��d���&��_,��{��G�%�Cc������=�TceG���y{�x&"""2r,��X���!�g�R�$��T�r�d�L��K��Oea>���TS�'�:�em&f�f����8�������Y���?��f�fc��L��$"""�'at5���SZ*0��6�������9��3�L�N��
"��C���l� """ea4�E�VA�����Y<T<g��a��NP���g""""#����=�,�9����bs�����5G�]�<��0S��R"�SY�Oea>������%�N�����8�e	8w�RGEDDDD�`t5U��G��#�s��{q:�e�J�%4��sS���5G��c������(����E��m�f<T<�Y��^�m�f����L�QU���Co&k�^�v��}]W;$4�@Pz	�H����2�.%b>���T�SYL9�,��P�Wa�k�q�E-�����Mq����c�G�d��������=��T��[wn��)��r�\�������0�s�-y�����I)=�,������E�>���7m�`�q�vZC�GDDDdt�R@���������������L��K��Oea>���TS�'�:Vr��d|���L�Qu�������>� t���1o~����%�p���KK�qS2����L�Qu���C���@S|��7��2���`�=\J�|*��,����r>Y@���?W���Z[��!"""��`t5U��gs��x��n��GD��m�������{�Io�._���Z��)""""�.�u������f���
=��{����T�SY�Oe1�|���#g�����_Ydj���o�|Q����������t\��n���!�K:W�%�@�^��������BDDDD5���4�|I2���	�b�=\J�|*��,����r>Y@����bf���5��O�h�����&�]M�����a'�^�gh��8�2,-,j+<""�Ja��y���������~T��J���������HXYY=r=%�����$m����g�������d0p�@h4<x���P�Y
P����"--
�����y���K��j[8��Y�����)��)�p)��,������o������/�g2�Z
___�������thr9U2V��(S$DDd�JKKacc#w�P666(--�;�Z��j�jOiqr4�)����[��O������RJ�A%����1����t-;�u��x��U�K��d������j�t-K��S2Nh���|���)�j��SY����em&��V�g���:������������a��j�:>N2���+S$DDD<�^~�O\����G8�������X���X@�2�+�%cu�N2EB�"wd@���0��O�V��9M���s�B�V����			��q�0{�l�������g�����C�F�������g����q#�z�)4h�...x���������� IDAT,������Y3X[[������Gaa!V�^���H������fff�7o��b��;������App0V�Z%�����-[�#F�A�x��W��Z���"�j�J|Q��q���=������!j;<""�JU��Wi�@��8��/������3���t\\&N���c�b��};v,�V�Za��q8p�����m�6����W����Z�h���DFF"!!��������-[��k�a���h��
n����~�
&L|����a�;�h4���EXX���������8|�0"""�x�b����[@7l������P^^�f����4B�p!�j��/����q�����>7���O����X��R�SY�O�{��_[�f��W��I�����1.zm����8q��
���077��S�tsm��E�>}�h����q��M8;;��?�@��]�d�DGG#>>��{bGEE�������us/^������7o~���<y��z������/�z�J`
4+�Zti��8����3���.�Tu{�U*��i#�k��Z�n��\f������0t�P������^^^�����gx��WPRR///���kX�~=�����c� �@���ju?~�!������sg�_'���j���S�q��i|uS�����0���|����.����������U*�CsP^^���������X�z5�=��G�B�R�.�k��1��7�������G���q���G�P^^8x� N�:��������)Y����Z�����Y����%[��"S$DDDO6x�3>�E�]�^�U����;o�TwcMHH@VV,X����8�P����%����~��a���pss�O?����'���eee��;t�{Sjj*X��������...���c���
{{{�o���o�-��gagg�^�z!--M�������ppp���;�,Y"�wM�����\f�J����|��E����U�SY���U�,tM�zB����G���������g�!%%{����)St6|�������p��)���b������E�->>>HOO��C����������!<<�������q��y�:u
�|�
���V��Q�c�tii)<==����#''�����a�������,����X�`�����cG���+�m���������a�����?��;v�����K/Uk[}��
V����������BDDT��B�l����R�$�������	�����]���S�b����k�6l�������'Z�h��K���/�D��=C���/������Uwa��U����oc��h��%z���u����]6�����M�6x��������k�b����;w����qqq@��M�z�j������d���`��U���AO��tM����{�xw@cJ<�������BU��p�	���)���G��w�0"HJJBpp0���%W�����Y�f���Gvv6�^�*Y��uk���@����U�i�8��_�}�a�g��*zDr�tII	F����0 ??����u����������C� //������/����������T�SY�Oy����>�����f�w�(//����amm��?���'���H�����V��F������%�@��V{��������
h����m{�F����u-����P��*y ���8��c�9��.�Dui��������KJa�=�B���#--
��m�����/���5kt}����puu���'�&M�`��5�>����c���5��A����~���������Q��>��7���9�����y�����H)=�d��-��'"11[�n�����b��9�-[�������C�6mt��3f���p��-$&&����BXX`��!���Q����L�iP��>�FD#���}C[T�w�b��4��DDDDTO	#u��%�R������h4���7
!���{�666�g��"55U�mQQ�������M,Y�D���l{��o]II�h;�-q��]�Q9��l]��������h;�-QRRn���`���r�@�|*�ixF�_?)��~����g�-���W�_AqN*�}������i���1�V��H��C]�JO�@o:����0�������x�B�j���^���f)"����w����Fw/&,�t�.�$""�PJC��
h�������%�s�
�ig.[<DDDDdX,�
�y/8��a����ysl�4��el�-Op�X�n�D��|*�I�.$$����������O#"�����m�m�f�=�L2]c���l�4C��e������n������r�KP�����h��%��1n�����"**
>>>��J��Ju���e��a���������!""���������q���:9�13���S/8C�^�lJ���L{�!������\�cL�/PR�SY���q�(=�?o$K���J��[����b�~	{K�,����p������;w���O?E`` �^��w�y���G\\��L�<���r�N��;���\����V����@��$��#""z���|��}��7�1��J����cj����>}:\\\������


0a�4h�
6����1c���������];:T����c��Q��Y�f�E�������'&N�����?�������Z�O=��9���W#22���033���������t��	0nnn�j����3v������b�3g�����Z-BCC�t�RXXX���;w.����u�VB���g��8��c���wo�[�����u����h�9s			��V�x���l��.tp\�Z��{�`a��S�o��,���0�ucG��'����1����sg�A����y3�����#99c�����>��L�6
[�n������ys������+���
������~�:`����<y2�z�-#::Zw[[[|����������u��^�����c��!��w/p��Q���c���8w�6l��c���u������'77������O`aa�5k�`���8s������bK��%K�l�2DGG�K�.��u+���'Y�]����h��������������W��������:h��']�uqB3�DDd���J��c&����6NNN����J�B������zQQQX�r%�������.\��{�������������#""X�v-8��~+��Y�t��������+�?��#`��
���5k��������u������C2�?>~��g|��w�9sf��!$��[�x1�y��9���o���#�Ia��uprrL�:���(..����c���<���;����?���Ui�bug@gOK����2EB���-ea>����u��Yrf����FQQ��?���t��E�~�.]����1c0x�`DEE!**
:t�,��e�w��&M�@��b��Q())Azz:����>��^qo��Z�V�s�L~ff&&M���� 8::B��">>iiiU�oNN�]�V����q�������!�����-[�����U����������aii�������]�x����uE26o��k��
���,tun�Z��8���P���<�8qj�����,;|�0�
��3gb���ptt����������������^@��]u�{g����p��,Z�>>>�������u�z�{��*1U<�|o���r����QRr�I��O����1p�@���a���uz!��bm �%���^d�\?��!}��RY�Oea>�F?���X@��:�<�n������O��������+s�����<kkk������@``�n�C�=T\N�8VVV��k�����}�b��a�������Yr����~+��C���{7������(+���V��H�D���o-Z�k;���GJJJ�g�+��������������u���������,������o��u�"�pH���aW|�/�L;st��Q��������Nh�T�Ek���s;G���{n�����'#11���+"##[[[DDD`������_����Y�f!11QR��_��7o��M���G,X�HM���C`` 233��7����X�v-���IS�NErr2F�����#%%�}���h���Ezz::���,<��4o������3g���P���K��W�y���w����K�q�F$''c�����k�An1w��5t��fffX�z5���������t��jS��@�������9B��#����R�SY����`���!_���������x�u���l6����-/��2�Z-�y����b��A�����1
�#F��������+++��Qc������@�.]0r�H���c����5kf�����[��o���E�$Expp0bcc����=z�]�v���O�V��R��!x���1p�@���b��E�|M����Q^^���;��_�s�=�N�:I�W��������o`��)h��=�9�w�}W��+�������cq��I����q��h��1�4i�������������GR�T��c�����'������m�#4""�G���W}��gO���c��UU��W�^prr�w�}W�����p�>}G�������������_�����l#S$����X�C b>����{���p���Y�III8s��M����X�7���{��]����q��Y�;w�����n�:�?^����(/GPz�d���^2ECDD�<�jCxpytt4�L����r��D�~�������7oFdd$
������h�;V���-���W�{����u�nY��A�e�XU���DDDuE)_���bU�������od������H�X@@q�1�8�IS�"��`���0���|�1bm��$���`�"!"""����jR�T��m�	�f��
Ju��9���[o`�?�8�E�(�������J��z�y����MLx�1���_<���7o���K��"ctDDDDT��Q�soc��$����m�9g���?���{,���T�����Hhd����$s7m�0�]'h�W�������6���������\:��9di����i?#�>			�;2 �SY�O2u!!!��
����O�>2FD�S�K���-��.�}0DDD�T��k�������(]�����/������c��U|��e��y�f���IF�???������}����C������t
�X��
�.�6��e�o@F�=���|*�Y7J���7����PI�+�g���P��9]��������Z-��x]�v��5k�����{��i������^�Zg1#�5p�T2.T��%��i����~�_U��g����{��8{��a��`���me;v,�O�888 ""EEE���L�0
4@��
1y�d��1������"�k�C���������5j�nn��Yh����������'"''G������888@��������#G�z�jDFF"55fff033��y���N�8����
Z��;w��;�>�p�3g�����Z-BCC�t�RXXX���;w.����u�VB���g��8������'�[�n���D�V��d��������O�V�X@�@�V�����	�,�^�7�52EE�b���0���|�
��������-l���Z@�=��3�*�T���9U��w����s6o����l���6l��?��3f�M���[�b���8|�0��_���������b��=X�|9����Bqq1���u������_~����^����x���t������{w899a��������o����r>��MC��M������t�����|=���

Ell,N�<�~��a���HNN~t�*�t,Y���-���K���;c��y�u���k���FLL8���\���������X�b�Z-:u�����#�Z��<����g�������b~x7q�(W���������3�K�_���������G����G�����V�Z%���E~~�����|��d�.]����5k�����3g������{�q�l�"���t�Q�F��m�>r����ooo}^�D�6m��t���1~�x���W_�{���7n,"##%�>|�P�������/�j��������?�fff�����1-_�\h4aff&<<<���G���~��Rz�t
�K� L�t��n����ao�3��{,���T����sg�����~EEE8�<JJJ����f]�ty��wc���������(t��A�|��-���;�4i�V�Q�F��������o<���z��a�h�Z�OLL 33�&MBPP��j����*�7''��]��uW��qc899�����B������-[��k���d�Q�F���S��?�}�Y���K�|��^����I�5�<�H2�?:-���)""�����\��z
�vG�b���b�Be���p��	��j�;wN�����6lf����������������*��^x]�v��]]]��g�r�
-ZX[[c����c=���_��,--%�{����=�}�v��������aoo___t��AAAX�b>���*��D<]Ve�?���j���f����������b���0���|����Y���u�Y�Z4��Myf�~*������������<kkk���������������'���
�v���u��������������7o:u�??����v���w�~�x����ee��qi4����~4���R����&M���?��-[�Q�FHII���������W�����������������U��W*�r��
�-~���5�p�;""�*+�n�C�U����������7n`���HLL�������HDDD����={6~��W$%%a��YHLL����������i�&���,@DDRSS�������7�|�.`������/$1L�:���9r$�?���|��w��������8t����PPP�����ys�_�g��A\\BCCQ^^.)���,���w����K�q�F$''c�����k��j^����c��E8q����p��Q���#55#F�����5����9��"�4����Y�1�c�C#=���W����Oea>
�Q���|�U���g\%���q����1v�X��{�	'''��j����Eaa�B���1a�aoo/4h &O�,�����V�Z	!�HNN���b��������_t��M���	!��3g�pssvvvb���"&&F������T�6G��{�vvvB���.]��.�+))#F�
6*�J|���|M�O�O?�����>>>��/��{������u?xaXX���������\��1C8;;�F#BCC����V���3w���.���o�C�������~��	777aii)�4i"�*>��m�0��UB<��z$�J�;*����F�����z!R���:bcc�5��0���|�J�z�Mc��gO���c��UU��W�^prr�w�}W�����p�>}G����������"BIqV��)np��QrCz����|*�I��'�2�9s��G��]Q\\�u��!66����0��w��5l��={����9~��g�[�Nw�k�,�
@��w7di��u����)N��T�<::S�LAyy9������?�_�~ue�377�������B���#::c���;4EcG5=��Qb,h�,�9�t�19C#=�+bea>���4<�|�N��Z8x�(2�T�E9���8��!����aQ-��jR�Tp��-���sPz	Y����c� ^DHDD�I)g�x�4=V��YZs<7�
	�,�^�iyh""2^j����&&�����������8{4�+_G���yk�����bcc����T���z������#%%���r�C
QZZ���>�$�[P����p���+��O~=�1���_1�|t��
��_W���$?�JWWW�7s���;�Z��jRJQ]QJ���J��yC��F����*��Q�IDAT7bbb��������JL�<����~�:6l���'����r�E��=���|*��,����r>Y@W����-[�`������E�n�0x�`�[�N����������,���0��b��d]ARR��������k��
���e��j��[�����T�SY�Oe1�|��� //�9{{{�����h4���H�rrr��je��j��K�����T�SY�Oe1�|�6v����a�������q�3M�6���u��T��3���Pz���Dhh(T*���+�<y���$whDDDD$3�pTb��(((���+F����h�DDDD�g��������3�DDDDDz`�'>��~		���
�Z-�Z��5g�������F����C���-c�T�����;�������d��={;;;���iii�eEEE�������d����*��|^�t	fff���V���t��O�S\\��c�������h��=�o��[��g���|��y�Z����}��6m��E�r�FU�R��|�r���K��������c��mh��&L��I�&�$#��I��3;v�@AA�n>++/�����k4�g��+����������������k���'Z�h�~����R���=999�����4>����������OOO����6l��9[[[�������o���'��{�� ���������HNN���=ZL�>]��H!!!����zh~��b����qJJ����yyyuU����EXX�n�r�J��[7�8??_����s��	!�h�����k�n��9s�����.`z����x��P�T����������u��������S!Z�n-�l�������>�[f��<��3����g��E�6mt�������IIIr�I� *\�/����-�5k���xdgg�������[��g��T��=^^^���@xx8n���g=������$�������eK�?�����]�}����x�"�^��	&`��A�p�B��upp`n�P��
���aoo/������<���22�����c��!--
��Gnn.F�	�g=PRR��#G",,�|�s����},����|��;w���,,,0f�t��
��m�F�����%�2������}.5�n\q������C���affWWW|�����s'����O#W^^���G�����9~>�������},�����R�?^7w��)���-[���S�ts.\@QQd��*S��e�����#%%-[����#����[���q��B��!�O#&����c������������������or������>|�

���b������A�={V���
n��%�o�.


DII�X�~����III">>^����}�����<1r�H*w�����RQPP �O�.F�-
Eii��������b����k�����O�.z��!���EBB�pww;v����������D>|X$&&���2���%�
&z������4N�K�.]x��g���|��yh=��yS2D���	///#wHTE����S�NB���
��]����w��o��Qxzz
;;;1d����-c�T����/T*����>B�{�n(lllD��=Ejj�n���".�������X�d�\/���|���agg'�������*222t�1�����KB�R	��ht?7nB��Y�<*�6l���|�7��MDDDD��DDDDDz`MDDDD��DDDDDz`MDDDD��DDDDDz`MDDDD��DD�\XX�����oe���H�X@��s��HII����C���+��g�}�V�ZA�������
��3g*�
*�
����
������������/""%aMDT�JJJ����f������O,��L���>���-Cvv6���0d�l��M�Nm<TV�R��~���;�DDu���3h�����ch���#�MNN��+�i�&������6661b�N�������������^���^z	��������e�t�����a����W_���=���q��q��������A�A���_�����0j�(8;;����;w����
���,������������g�y����#>��L�6

6Djj�C����������+//��A���];\�z{�����K�s�N�:?��3BCCq��m<o��`��u����/�����\�����������+W�����X�r%lll����S,����HXX�����C<x�N�Bpp0rrrp��Mxyy=���7��Q�j������������V�����q��a��M�u�������P�T5jN�:���YZZ���HNN�J�B�v���j�Q}��;""Sp��M���������"���#����)S�<�����]�V�c�������ptt������{������������(,,Dyy9��>�2z�h\�|����[�0j�(,X�j5�+!"��3�DDu�a���u�V�\����#;;����/������J�gx��gq��]o������<<<������l�ONN~���Gn��}��jDFF">>�/����k�>vDDJ����;v����<y��w������I���~�
���(,,��M�����{������sg�������'


PVV�3g����c�����
)))�qll,N�>���2h�ZXXX��3�$�DDu���h��=n���Z
�'n��g���7��������???���O<x0�}������?��3������L�0999�n���0c�DEE����/Fzz:^~�e888�E�		��Q�j���7*��|U�@��4�X@��4�X@��4�X@��4�X@��4�X@��4��u�DPE��IEND�B`�
#34Robert Haas
robertmhaas@gmail.com
In reply to: Alvaro Herrera (#25)
Re: Should we cacheline align PGXACT?

On Mon, Feb 13, 2017 at 11:07 AM, Alvaro Herrera
<alvherre@2ndquadrant.com> wrote:

It seems to me that Andres comments here were largely ignored:
/messages/by-id/20160822021747.u5bqx2xwwjzac5u5@alap3.anarazel.de
He was suggesting to increase the struct size to 16 bytes rather than
going all the way up to 128. Did anybody test this?

So, I think that going up to 128 bytes can't really make sense. If
that's the best-performing solution here, then maybe what we ought to
be doing is reverting the PGXACT/PGPROC separation, sticking these
critical members at the beginning, and padding the whole PGXACT out to
a multiple of the cache line size. Something that only touches the
PGXACT fields will touch the exact same number of cache lines with
that design, but cases that touch more than just the PGXACT fields
should perform better. The point of moving PGXACT into a separate
structure was to reduce the number of cache lines required to build a
snapshot. If that's going to go back up to 1 per PGPROC anyway, we
might as well at least use the rest of that cache line to store
something else that might be useful instead of pad bytes. I think,
anyway.

If padding to 16 bytes is sufficient to get the performance
improvement (or as much as we care about), that seems more reasonable.
But it's still possible we may be gaining on one hand (because now
you'll never touch multiple cache lines for your own PGXACT) and
losing on the other (because now you're scanning 4/3 as many cache
lines to construct a snapshot). Which of those is better might be
workload-dependent or hardware-dependent.

Re the coding of the padding computation, seems it'd be better to use
our standard "offsetof(last-struct-member) + sizeof(last-struct-member)"
rather than adding each of the members' sizes individually.

I think our now-standard way of doing this is to have a "Padded"
version that is a union between the unpadded struct and char[]. c.f.
BufferDescPadded, LWLockPadded.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#35Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#34)
Re: Should we cacheline align PGXACT?

Robert Haas <robertmhaas@gmail.com> writes:

On Mon, Feb 13, 2017 at 11:07 AM, Alvaro Herrera
<alvherre@2ndquadrant.com> wrote:

It seems to me that Andres comments here were largely ignored:
/messages/by-id/20160822021747.u5bqx2xwwjzac5u5@alap3.anarazel.de
He was suggesting to increase the struct size to 16 bytes rather than
going all the way up to 128. Did anybody test this?

So, I think that going up to 128 bytes can't really make sense. If
that's the best-performing solution here, then maybe what we ought to
be doing is reverting the PGXACT/PGPROC separation, sticking these
critical members at the beginning, and padding the whole PGXACT out to
a multiple of the cache line size.

Yes. That separation was never more than a horribly ugly kluge.
I would love to see it go away. But keeping it *and* padding
PGXACT to something >= the size of PGPROC borders on insanity.

regards, tom lane

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#36Robert Haas
robertmhaas@gmail.com
In reply to: Tom Lane (#35)
Re: Should we cacheline align PGXACT?

On Wed, Feb 15, 2017 at 12:14 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:

Robert Haas <robertmhaas@gmail.com> writes:

On Mon, Feb 13, 2017 at 11:07 AM, Alvaro Herrera
<alvherre@2ndquadrant.com> wrote:

It seems to me that Andres comments here were largely ignored:
/messages/by-id/20160822021747.u5bqx2xwwjzac5u5@alap3.anarazel.de
He was suggesting to increase the struct size to 16 bytes rather than
going all the way up to 128. Did anybody test this?

So, I think that going up to 128 bytes can't really make sense. If
that's the best-performing solution here, then maybe what we ought to
be doing is reverting the PGXACT/PGPROC separation, sticking these
critical members at the beginning, and padding the whole PGXACT out to
a multiple of the cache line size.

Yes. That separation was never more than a horribly ugly kluge.
I would love to see it go away. But keeping it *and* padding
PGXACT to something >= the size of PGPROC borders on insanity.

I don't think it would be bigger than a PGPROC. PGPROCs are really
big, 816 bytes on my MacBook Pro. But if you did what I suggested,
you could take a snapshot by touching 1 cache line per backend. They
wouldn't be consecutive; it would be an upward pattern, with skips.
If you pad PGXACT out to one cache line, you could likewise take a
snapshot by touching 1 cache line per backend, and they'd be
consecutive. Maybe that difference matters to the memory prefetching
controller, I dunno, but it seems funny that we did the PGXACT work to
reduce the number of cache lines that had to be touched in order to
take a snapshot to improve performance, and now we're talking about
increasing it again, also to improve performance.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#37Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#36)
Re: Should we cacheline align PGXACT?

Robert Haas <robertmhaas@gmail.com> writes:

... Maybe that difference matters to the memory prefetching
controller, I dunno, but it seems funny that we did the PGXACT work to
reduce the number of cache lines that had to be touched in order to
take a snapshot to improve performance, and now we're talking about
increasing it again, also to improve performance.

Yes. I was skeptical that the original change was adequately proven
to be a good idea, and I'm even more skeptical this time. I think
every single number that's been reported about this is completely
machine-specific, and likely workload-specific too, and should not
be taken as a reason to do anything.

My druthers at this point would be to revert the separation on code
cleanliness grounds and call it a day, more or less independently of any
claims about performance. I'd be willing to talk about padding PGPROC
to some reasonable stride, but I remain dubious that any changes of
that sort would have a half-life worth complicating the code for.

regards, tom lane

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#38Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Alexander Korotkov (#33)
Re: Should we cacheline align PGXACT?

Alexander Korotkov wrote:

Difference between master, pgxact-align-2 and pgxact-align-3 doesn't exceed
per run variation.

FWIW this would be more visible if you added error bars to each data
point. Should be simple enough in gnuplot ...

--
�lvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#39Robert Haas
robertmhaas@gmail.com
In reply to: Tom Lane (#37)
Re: Should we cacheline align PGXACT?

On Wed, Feb 15, 2017 at 12:48 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:

Robert Haas <robertmhaas@gmail.com> writes:

... Maybe that difference matters to the memory prefetching
controller, I dunno, but it seems funny that we did the PGXACT work to
reduce the number of cache lines that had to be touched in order to
take a snapshot to improve performance, and now we're talking about
increasing it again, also to improve performance.

Yes. I was skeptical that the original change was adequately proven
to be a good idea, and I'm even more skeptical this time. I think
every single number that's been reported about this is completely
machine-specific, and likely workload-specific too, and should not
be taken as a reason to do anything.

The original change definitely worked on read-only pgbench workloads
on both x86 and Itanium, and the gains were pretty significant at
higher client counts. I don't know whether we tested POWER.
Read-only pgbench throughput is not the world, of course, but it's a
reasonable proxy for high-concurrency, read-mostly workloads involving
short transactions, so it's not nothing, either.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#40Andres Freund
andres@anarazel.de
In reply to: Robert Haas (#34)
Re: Should we cacheline align PGXACT?

Hi,

On 2017-02-15 11:43:17 -0500, Robert Haas wrote:

On Mon, Feb 13, 2017 at 11:07 AM, Alvaro Herrera
<alvherre@2ndquadrant.com> wrote:

It seems to me that Andres comments here were largely ignored:
/messages/by-id/20160822021747.u5bqx2xwwjzac5u5@alap3.anarazel.de
He was suggesting to increase the struct size to 16 bytes rather than
going all the way up to 128. Did anybody test this?

So, I think that going up to 128 bytes can't really make sense. If
that's the best-performing solution here, then maybe what we ought to
be doing is reverting the PGXACT/PGPROC separation, sticking these
critical members at the beginning, and padding the whole PGXACT out to
a multiple of the cache line size. Something that only touches the
PGXACT fields will touch the exact same number of cache lines with
that design, but cases that touch more than just the PGXACT fields
should perform better.

I don't think that's true for several reasons. Separating out PGXACT
didn't just mean reducing the stride size of the access / preventing
sharing. It also meant that frequently changing fields in PGPROC aren't
on the same cache-line as fields in PGXACT. That makes quite a
difference, because with the split a lot of the cachelines "backing"
PGPROC can stay in 'shared' mode in several CPU caches, while
modifications to PGPROC largely can stay in 'exclusive' mode locally on
the CPU the backend is currently running on. I think I previously
mentioned, even just removing the MyPgXact->xmin assignment in
SnapshotResetXmin() is measurable performance wise and cache-hit ratio
wise.

While Nasby is right that going to multiple of the actual line size can
cause problems due to the N-way associativity of caches, it's not like
unused padding memory >= cacheline-size actually causes cache to be
wasted; it just gets used for other things.

FWIW, I however think we should just set the cacheline size based on the
architecture, rather than defaulting to 128 - it's not like that
actually changes particularly frequently. I doubt a special-case for
each of x86, arm, power, itanium, and the rest will cause us a lot of
maintenance issues.

The point of moving PGXACT into a separate
structure was to reduce the number of cache lines required to build a
snapshot. If that's going to go back up to 1 per PGPROC anyway, we
might as well at least use the rest of that cache line to store
something else that might be useful instead of pad bytes. I think,
anyway.

I don't think that's true, due to the aforementioned dirtyness issue,
which causes inter-node cache coherency traffic (busier bus & latency).

I think our now-standard way of doing this is to have a "Padded"
version that is a union between the unpadded struct and char[]. c.f.
BufferDescPadded, LWLockPadded.

That's what my original POC patch did IIRC, but somebody complained it
changed a lot of accesses.

- Andres

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#41Andres Freund
andres@anarazel.de
In reply to: Robert Haas (#36)
Re: Should we cacheline align PGXACT?

Hi,

On 2017-02-15 12:24:44 -0500, Robert Haas wrote:

If you pad PGXACT out to one cache line, you could likewise take a
snapshot by touching 1 cache line per backend, and they'd be
consecutive. Maybe that difference matters to the memory prefetching
controller, I dunno,

Unfortunately it's currently *not* consecutively accessed afaik. We're
not iterating PGXACT sequentially, we're doing it in pgprocno order.
The reason is that otherwise we have to scan unused PGXACT entries.

I've previously played around with using actual sequential access, and
it was a good bit faster as long as nearly all connections are used -
but slower when only a few are in use, which is quite common...

but it seems funny that we did the PGXACT work to
reduce the number of cache lines that had to be touched in order to
take a snapshot to improve performance, and now we're talking about
increasing it again, also to improve performance.

I don't think it's that weird that aligning things properly is important
for performance, nor that reducing the amount of memory accessed is
beneficial. Engineering is tradeoffs, and we might just have erred a
bit too far in this case.

Greetings,

Andres Freund

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#42Robert Haas
robertmhaas@gmail.com
In reply to: Andres Freund (#40)
Re: Should we cacheline align PGXACT?

On Wed, Feb 15, 2017 at 2:15 PM, Andres Freund <andres@anarazel.de> wrote:

I don't think that's true for several reasons. Separating out PGXACT
didn't just mean reducing the stride size of the access / preventing
sharing. It also meant that frequently changing fields in PGPROC aren't
on the same cache-line as fields in PGXACT. That makes quite a
difference, because with the split a lot of the cachelines "backing"
PGPROC can stay in 'shared' mode in several CPU caches, while
modifications to PGPROC largely can stay in 'exclusive' mode locally on
the CPU the backend is currently running on. I think I previously
mentioned, even just removing the MyPgXact->xmin assignment in
SnapshotResetXmin() is measurable performance wise and cache-hit ratio
wise.

Oh, hmm. I didn't think about that angle.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#43Alexander Korotkov
a.korotkov@postgrespro.ru
In reply to: Alvaro Herrera (#38)
1 attachment(s)
Re: Should we cacheline align PGXACT?

On Wed, Feb 15, 2017 at 8:49 PM, Alvaro Herrera <alvherre@2ndquadrant.com>
wrote:

Alexander Korotkov wrote:

Difference between master, pgxact-align-2 and pgxact-align-3 doesn't

exceed

per run variation.

FWIW this would be more visible if you added error bars to each data
point. Should be simple enough in gnuplot ...

Good point.
Please find graph of mean and errors in attachment.

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

Attachments:

scalability_pgxact_align-3-rw-errors.pngimage/png; name=scalability_pgxact_align-3-rw-errors.pngDownload
�PNG


IHDR�`���FsBIT|d�	pHYs%%IR$� IDATx���wxT����w�
��$��PBB�`B�R
AQ�A�~�F��D�H�
(��� 
�MJ@jh������q7����r^�s���3���r��)�a�a�a�a�a��(*Z�a�a�a�a�a�����0�0�0�0�0L��h�a�a�a�a�a�L`4�0�0�0�0�0S&��a�a�a�a�a�)��0�0�0�0�0��	��f�a�a�a�a�a�v@3�0�0�0�0�0e;��a�a�a�a�a�2���0�0�0�0�0L��h�a�a�a�a�a�L`4�0�0�0�0�0S&��a�a�a�a�a�)��0�0�0�0�0��	��f�a�a�a�a�a�v@3�0�0�0�0�0e;��a�a�a�a�a�2���0�0�0�0�0L��h�a�a�a�a�a�L`4�0�0�0�0�0S&��a�a�a�a�a�)��0�0�0�0�0��	��f�a�a�a�a�a�v@3BXX
���+Z�'�@�P@�����-r9��������D(
deeYT���!��F||�h����*Z�a���~�B�����V�a�a,{��
E���V���y��.`���7n:u�www����n���)S��qc�������k�FTTN�8a����,Z�������7�J%|}}���oc���F��e����[����R����7��o������y,kL���QM�P��W^1(���_-�_|Q��2�
�$q���IOO�����Gm���h������X�t)F����0899��&a��ex��7���;;;(�JT�^]�tALL�����Is9��S[�����k��A"�����7|QQZ�l	�B+++�����t�5J�.�\��*~~~�c
��_���S��Mxxx�R�JpttD�z�0h� ���$���fRR�}�]����\�2������G���1����1�0@S����$I���_��<QDDD�$I�P(*Z�r����$I��+22�(y{��!ooo_�P�B��W*�4�|�r�^�J��5S�EU�$I����Saa�N9�SN�-���kF=�9�:�����s'I�D.\�����g)�6M�:s���x;v�(��/�(������8��%%%U�:N^^����m�V�Z�f����1m���W�E�����}q�:u���Se�T���;w�������EZ���}�$I���`�������!I��r��z��i���4�
fR��"%m���ui����������������5������4h��1������;���SN���)66V��=�c*�a�����0D����~~~������u��t��w�������7�xJ�������op��m:U�T�o��QNnn.�v����t@xx8�
ooo=z��M����{{{�3M>��S��������>��������1o�<l��	@��]�{�n������R����q��%@VV���aooo�t�e��<�����G�����/��RgX���q�1��S����������k�*Z�Q�
$IB@@�����^���P�?�Y�&F����`��������;w.���p��It��G�}f�^�t������X�h^}�U<z����HJJ��'N���������>}zy��T�f���
���R�o[�lA~~��x���x��Wp��=X[[����3YW�x�K���QXXx���	��s�������q��m,Z�����5kV)9�l7�{�=�\�@qY5j�5kI���~��9.\��A�����ul<�c*�a���=���	�����:���K��7����[����DDt��y�f@w��E��#G����=I�DU�V�h�3c������PPP�x_�������
9���t���Ra �|���?����{����?�5jh�����D;v�����rss+Z�'�g9Ug����$I"___�q���'��������g@���C��R�JdmmMK�.}*g@:t�f��M�����LLL4�MX�j����&"��������s0��"f@+��j���A�t����1�����v��iVz���KY�%k��i����f������7i�$�a.]�D���$IU�T����K��T���|����;w��
s��-�W�I�D���t��=�i=�c*�y�=���p�W���>�:t3���|2�#G�`�����m�j�E�1c��^�*���RXX�3f��������
����~�A���7�h�I��$I�;w�����=��O7��+��7o�y�����o����B�$q��<c������m&N�����W��O�KJ�$�5�����;��]�|9>|[[[�����Td�g���B8:t(Z�lY�*�DPP>��S�i�F������w��G��uf�<���ct:����b��2k�,��Y0~��R����12aaa��"��������}�������-����iS�zu|�����}��i���n������~�-���K�quu������]���5��,���y������'''�����Pxzz������Oq��e�d�Y��������R����?��}>|���
�p���;u�����\\\��U���G1|�p�������Q�z����k����B��{���W_�A�ptt���#�5k���g�]J%s��1�1�5���;lmm������|���8z��^���������ysq�^PP������i�&����j�B���akk�j��!((��%K����r��$+V��e�J��j�]�v������z�����V�Z��7��*��������/��"��i�Q���#�|�M����]���n),q��g�}&t		��m��a����'�����k�b���pss�*�d{�$�{�x������O�>������=���P�n]���			�s��I���<��I�7�~d������www��]��gdd ""~~~P*����B����e��rJ�����4i4hWWW�?Y�2��<y�$���t��Y�0�5j�{��X�d�^��J�!`�����Q�P�^=q@��g��w/
���k���	vvv���G���
�R���c8p |}}�T*Q�jUt��Eo������9rqqApp0�����,�q���0��3g"==5k���_m�xNN^|�E(
�������Z�n��VVVP(h���X^��wO�����N�^nn������!&&��w������������ ���W|l�����1d���]����\�2j�����H��EGG�v/++�?>BCC����B��={������)S��u��������
<==��}{��;�?����0v�X4i�...�T������^{
3g���3g�@0���c&y�(�p ��0����o�����G��Uakkwww�n�_�5���[f����Pl�FFF�v���c�������6m�^y�h�o���I�&�i��pss���������711Q�}BB���z�����������WG�~�p��!��y�~����<==��kW�e������������;"�x��������(�R�}��Z��k�Nl�����_�c��mh^^���;�h�nnn���G���1a���ZS���q#�x�
�������������Upp0����T*����>}��|0���,�?/��2�T�T�^-Z��g�}���T����_ %%D�:u���x{{#00o��6bbbp��m��������"�����:u��t�^�������={�������J�
�999"������",,L��NNN���G�V�0n�8��
���KR�n�J�;w�z�����eX����(�J������m[I�n����N^^^Z		����:��Q�J�+���^{�����W�S�N��/��UNXX��e����4|�p�����������7�i��Z���_�n���UKQXX�����i���KWu���[p���	�._��3����Je�8���E�K�,�)��>i���K���R�?�P���~�M��2e�������-IAA988�$IT�^=Q'�����#*((�(�I,�2�O��
hm����O?5Z�����z]�z�~���$����5.����D�
6PJJ�E���e0�����R�JZ�g���Z������j�������#�[�2�����T��,���h\�+���K�T�~��
���TJ���kExC�$�"""t��������>��b[p��wOm;'M�)�J����*��v�1�8q��J%)
Z�~=Yv����4���!I�(((�=zT*����E�pss���,��TEu�C���3g�8�-����S"��1c�����������k��c���ja5�<x���T�����T;PY���gO�8�/&GGG�m��/�HG�����5k���N�3��&��!���z���T�4��m���m
�=���'%''k���[p��n�1g�*((����%&&��o��{���z�V�V������y�P((>>�&N��U[[[���?������c��Y"���G[Df���E�m�A"�q�����T�-�n��v��5��^�Z5Q6K�^�c*�6������P��[�Z5:r��F9�e7..N�N�r\]]����?_����\�������:�����V��IwI�4����_����imKU���o�Y4.QJJ����I�:u��?���1���(
����/�����B!����S�>���^|�E���y�����L�$j���0��/_N�y�f0`�� ���ZO�1b��U�zu�3g�������G�f�"///R*���qcQ�4!�������G���4r�H��s'���SBB����S�NZ�O�Hh����7��m�F����z�jz��7��:h4�U�	 GGG7n%&&Rff&���oT�vm!'::Z�>o������E����}�v:x� %''�?�@��������YZ�nM666������[�����r�J����UK��O?����~��;w���M{�����x����������c�tMq@���&�~I�=�
�8qB��[o��ft���o�z��?_��j���O2##C�����^�����-��+W���#G��ks���I,�D�e���C���M������������������N�:4b���?y����v���yS���w���j��TXXhqt�F��������h��Y�o�>��o��9��T�"�}��W��}�����Q�������>�;vPFF-_�\�#���'s����TR*���gO�;w.����<H����V>^}�U�y)�/��9::���;M�2�v��E�����/��v������o/�@hh(���Rbb"edd���K�m��z����7�}�=z4%&&��&I����T�AQQu��Q��_�>���RZZ%%%�����d[�t�F9��+����Z�n]������N�!C���+**���p��W�\ivz�����|��p~j��UTT$������j�\��<���-^��8@����j�*1b����}���2e�xFwww����?��w/8p�~�����Q�y"I�h���K������L��y3����"|ll�_�jU�:u*�_��233i���4b��L��U��W���w��5�A����F�A7n���tJKK�u����I��I�&4h� ���������;t��:t��u�V:z���u��u�x[�l!kkk��bg��q�h��5���A���4q�Drqq!I����Q���,�999���#�w~��H#**Jg\K�����deeE�T����a�h������AK�,��_~Y�h���FG�j��i�F��d�JOO���$�������;��u��|+/��,V(t��1���?�K�D'N����K��	

��R����IR�$7]�6D�$:p�����S������g�����Rff&�[��z��!�x{{k�x�Zv6lH�$Q��-��_���4JNN��3g������oooO������dJKK����W�$I�U�Q�F�pNNN4z�h��i<x����C?��3�����J�F�������}___�6mm���<H����%K�PTT�������-�������,�BA�����7Rff&�Z�J�(�$Q�54N�Q�o��V�^=Z�p!�������K�~��� ��$I���~��/_N)))t��A��u+��5�^{�5�[���w�����U�$I4p�@��-Z$�t�����C�����_,e|�������+�&dQ���o�^*L^^�0|$I���,Y�D��1c��<�3g���K��>...t���Ra��������S��`���B��/�����x�b���6������G(����f	dC���O�D��K�}c1����c>((Ho���UdcX�P��)�l�2!g���j�T����_�~]�m���^��������;w���������<}R�=Q�V��^S�N����KF�������w��b��JQQ�pn�;����hI����G����������$��:w�\�0�}���eddhM�,�'s��;w��}��&M�;�V��Q�Z5��$���_�$IdmmM�����p#G�2K�����i���j���������8
Tm��m�jt����_n\\\4�,eW�\�����l��8�Mu��j��z�oI��%0�MD�i�&rvv&I*��7g���c����������bccM�/77W�|���Rs�������\����'NGf���������eggS��uE>h���I*��\���G8�{��M�?�.%%�*W�L�TzsLL�Hk��uZ�""�W���6��s���w�3/$$D�!kD�+��t;t�P�~Y8������eA�$�U��A�'�m�

D}�����7��_TTDo������c�j�H�D����F]Tg)~���:�O�6U\\>|X����h���jcFKQTTDC�������?�������-[h��)���J�$Q@@�={V�,K��!!!B���4�i�0(I�X�B�~y��J�����	&�0�>��,������4o��%V�9::j<����G��+�y�����������m���W)??_�o��_�}�]a+���T),,,�f��H��-X�@c�1c��0�&���7r������7%I}B�&��0�����U����N���W_aK�
Uu�i2 dV�X!��������������4u���k����Ij�����.����>�U��-**F�����- 4�j��j����'����L/��I�D�z�*�tJb����"|��-��;v��j�*�{��N�P�]�������a���{�7o�)����"lpp�^�������<����F8�u�>)�~��"����-�����z�:���_/�v��v��m���L��p@����t�R���_���}��_~�3������/
���P8R>���aT�����VY< www����1t���/��FDD��[�z�HO�J���$��AAA$I�3�u}X�:u�HK�l,K��p��Y����S�W�7n�w���J.\���T��:((�h��!���&*��Q�F�Z������4K?�����������-[�5���{E�=z����<i����4eg�������G��Cu��>(
�3%-��hs��1�i���~\��U���+���xWVh��:r���GK��+W��:T�U'~�*UJ9�T��Z�jZm�����3nQ������,����E�����66n��6C]�ruu�i��i�:As�M���;v���Gu��|����{L�����QXX(��vvvt��m���e���Eg����h���Z��?^���
��/;�����.�D��_��dM�41:}s�����<�����pb6���M�����������{��)����B����[o�<�@�����1m��
������p�2z���q3}MH���j�_�fMt����������'��]}�����+����0�r �$Ix��w��h������;�v���C�p��o���Z��^��!I��p��~ IDAT��W���4�)����ezp���(b�[[[�q��Ur�T�M�+++����{��h���8����s *�$��u��	���Sf�<�y����px{{����,�6m�u��-�����4�%��wo���(���/���2���D~~>.]��������#8z�(�;����<�3���
�z�-�����q��-H��7�����eK��]��y�f����pY��7��W����#����������������v�14>D�v�0`������/^�B�;w��O�>���


P�re����j�ZESPP�_������!I��c�A��}������/�%���Kk��-["((�c��}���
V�^
���+���u�


P|�bzz���l+~��g�2����w�j�*@�V�P�F
�a��Pn�Q=~�X��1T�REgK��ry�$	}��VNNN���/���������w��ZmjGGG��]��l��m���P?~,^�\��Av�1�={qqq����:��s����h��a�vs���x���:v��]�v����x��!�����cG���C���<��"�T��T�B!�?~�X�����u�z�=�_}�����A�������k�����p��
q������{7�}��h���V9����*�	G���}����������6���J�����HLL��U�V�����/P<�)((0\��v@?g4o�\��-Z����sssq��i��]XYY�a���ccc��a�u""5�8 ~8��	�%�o��V<��[�4����777���:�K�U
��m��|&C�S��Iz��7p����j�)7��n�BPP�|�M�������F;���R)~k:��$�'5��(c����c�����>��ki^}�U�[�Nt�'"�m����x�������r/�g;;;�v��<�y�
�B!"��������A|dd��zJ�F���P���h��G�&��������~Y�O���2�?������Y3���������FPP���������u����(��]�vz�@~��/_V�s��!������g����j��m������^*�$����p�B���vvvX�`�I2L!,,��9`��}8{�,$I������������x��W1y�d����x��w�o�><x��=����������h���]�fRZr���K/�Z�jF������S�;Hu�U@��������&I��v#++K<kBB��z��[7������BN����Ss��Qh��	���+$%%���7���wPXX(�yRR���P�W�\19]c�8q"N�<)������j��	X����F{{{�����3�v_�l��wk�{Ue���(,,�{�{>UV�Z��w�z��GGG�a�������f��a���\�2����s��!//7o�������E=z�����I�j7����a�a�������ppp������������|��'"^�<)�1�*�$�?�Uv��pr}	�!�!���ifff��m�?�R����!I�����Mt��?��#222����+��$Iz�8myX}�Mu��U���/`������?M�%�e�������������}��M������"G���z
lY�5l��_Wg��iI�J}U��7�CU���B�{��GI��thBW��KC�����R5 �������������X�r%
��� ����w��X�~��:XUC����j��F�1��C�!DFFj}��:u2Z���������X�~=�����(������+���;���{z�=)�^�����z�(syV�P�l��/b��X�l=z�R)fA���@��>���@k~�[�S��9�%P��
6��Q��������3���2&��=V2]��7c�������)-�x��>����$�������
����Q�V-�e��_|�63�s��:gnU_|�v��	�0a��Y3(�J��� ((s���O?��������MJK�;L�Ummc����u�Rm���6m�����N�I�&�m��pqqA�-0s�L�t+k������}[-�1�W��RRR���I�&�����1{�l��*��6�<�n�y�eM\\���ke`������>}��������Crr2������+++����s����k���:k�,���_���d�Y�vm�&���j����c��EFF��;+��<�T%1�bj[�W_�i�K�{���M��,�'�n����\\\PXX�M�6!**
M�6���3:w��%K�h������P�P�mw,���,Y�D�J�t����;t��U�VE@@�����G�����V�y6��U�R�T������--��9�c��������b�G�FDD���l��
)))���FNNV�Z�U�V!,,k�����Sj��R�*U�����x����rI�����v���W|����9�F5-Mrd����G�C��N��<ZYY�s�����3�����m[�^�'N���y�p��l��	����{+c���<x��P���C��M������x�={@��Dggg����!��������?�������+�w���"88^^^j3�BCC�k�.��`Ll��I�v�����1��"������������W�.�u��: �v����j�����[������q��y����t��q� �Sy@D���P���0a���~�!f���3g�`����s���Yh�0�LX���UWU����C1t�P��,Y�5j�c��a������?�{�n�<yD���T���b��iX�l�EV
>	��_���1u�T���uy��1"##AD���E||<|||�u�V\�t	'ND�n����/��k���I��*���,�����/�m��	c��M�6���K���	����S�NE�6m�-R�^�,�MgggDGG#::w��Evv6����
,I�J�^�c*c1���g7�X���R�,i����;����/_�-[�`��=�|�2=z�M�6a��M�>}:��__j�"s����}����;6n����4�X�III8x� ���p����5s����i�0b���}�a�s��r9M�.pww�U����@u����7o���H��.�/q�:�~m,((�����3����Ie����<y�Qq�T���?��1��=�6n���~�	g��Ebb">��c���"Dbb"rrrp��e�_~�;�xY{I�;00��/���c:����(UU�'�p��1y�BE#a
6D�n�0l�0�������������O�e���1����'O���k���Q��Y�C}DFF"--
��/�%�r�
@���X[[�<s�,�'s��S�N!))	��_?���oZe��b�y�P(L��:u� �B~~S���!������#eY#��������z�?~\�2����Y�.�m���������W�b����a��r-��k�D���wh���q��N�>m��(.�/^4�T-G����q�A����{���J�P�k�����+���d��������
p��M���8{�����<�������>Qe��	����	�M�p�Bt���=����/�U,�~��U�	K������x�Gb�cw��%�4i�3l����oy�_��n7���KM6�����T�Rj���S�����?��h�������/_6��W����C��_1p�@1�������y3����C����C������-W�����p��u������i���������HII�������\�5

4@�v�,���o�������&���/~��eekk+����u�����������
+��P(��t@�c��i�A��%�{c?)����N�:9r$������+VT����,"�y��������-[�r���F�%G����}����5k&�C�'G���������1r�H�]{l=I������F�ai��<�G��}akk+h��U+��b��e������������L�,�'s�K�=�u*s���RQS�T������q��Q�aUms����ggg����=����.��DV5���
��_?��{VVVX�j��z��������<���o��!�C���T�����}��3g��H���F�o�������|stt��'�.�����{��m�����
�z����)fW��{W���'	C�F�J�D�?p���6*IJJ����7{��k�������]�0w��R�-�~?x�@��"�g}��?��8p�������������%���n7`��5b�3M[�U����L�������z�����f������DY�W�����G!55UL���g���_��U�g_��zhjY�9J�m���O?��_�U�]�J��	v@?g,[�L����rI�J�&��C�_�t5H���3�#"���j������[�(>@Qu{�
�Su��Y��khY$�Y�t������;77�B��Q=1~��EZ���(>M�$m��K#�-[�u���D��W[���+/i;s�����@���+V(��J^���j����������=s��
����1�����^�z���J�(�e��o�������_�b����gxY�O����K*u�?����P���:,Z���p�x��W?��v]��M���S^���/����Y�b+�'��={6���t�%�S@��������La���HII�;����w�}��u�>��sddd��p���M��;r����yyyb@�P(J��3�� "���,egg�|?)))��������v*
���k�t�1sQ�'�9�hT�RP=�Lo���b������T/Cx��"���
���JM��={�X.�����m�X����9a���Z����`����g���?k$&&���������R=@���������Ly������4i�b���!CJ���1UBB���U���������Y������Pm�Zy[>�x����-ggg�t��}���e���R�R%������:K�������6G5�mmm���OS�W���9��������xo��E��e��N�v��j�,����k�<W�\Q��g.����K�=//���b��I���h��H��=��.���^��.����K�^�t:�
���I !!A�+yIn��-�����U��P�~}t��@�a���P*���G1c���<h�}�P(��N999j�2���wO�II���g�i�I��QQQ��D����'��1c����n�����Y����,X���5���W^F��5k���_k
KD}�/�������o����Gx��!����rIs����WVVF�
�������J�,�'S�K��\(�$%%E�>����� ���������^�{���j3R�k��b���~�I�����or{�������������^�...��fi,�76P���������_��)S����(�J����o��x���E�6�B��_@q9�������7N8�BBBL���_�~b��������������@��
�?��S�{���ySl}"I>��S��Te��q���P�>����������7o���[u�JI�����$"�<yRg�����e�3f�P����[�n������0a�X�1~�x��y\\\0�|�c�<�X���������`�l���T���"<X8��
V����'���>h
�����������m������c����N�,�n��>z�}��ev���b�uI*jLu��a|����M�<��P���9��DFF�q��)S4:�?~���a�hj�e[����[o���Z��z�j)������Ku����������R�����
6���7ju��?^��~����u����w�����+s�y����#I�H�$j��I�Daaa�|�rJOO���7��D:}��FY#G��j��A��=����RRR��o�%///�������$I�P(4�	

%I������������F�I������F			��A�V�N��>��A��t����?������i����v�Z�4i5l��$I��'j����_g^���S�����1�[o�%�xzzRtt4m���233)99�~��'���3yxx���3�d��;'����/t�5I�����H111���L����c��={6���KB���h������(..N\3f�rCBB(>>^�����3g�h�s��)ruu%I������N������B��OW��|�r��<~���4i"t���3�_��RSS)!!����+�}���:�m��a"l�z���_~���TZ�n����{M�6���\����4###M�/�A___�<y2�������#�HJJ
�����-�$��v��Q��X�����?OU�TQ+�111���B�a��8q"��]�>��S��?y����k������b}e
6$[[[����Y�f��k���j�z�����W�X�2�����$�:v�H+W����4��eEEE���
yyyQ���u>���/I�Dm����������k��t=<<���?�M�6QFF�������i����/���)%g��-�P(H�$������G�=pp���#I%%%��O�:ur���O������JIII4n�8������?��(��v����{C��.n��A��U#I�������?_*��?�(����0+�������}�����G�R����WK�������Y�k��9�����(--�/^L����mmmi��}&����&��$I��KZ�x1�������h���4z�h�Y�&}��w����Wju��o���{�������~�5j��C�������E�p��^���7Q�����W�^�d����+��9�:u�D����?""�����}��4}�t��i���QJJ
�����gO�s���)//��|5�[���?^�GPP�[���9B������Svvv)y666jmlll,����222h�����?P��=I�TR�5������#�n�����_?������Y��NJJ"kkk�$�*U�D�1m������h�����eK�F�F�4�
c���~Z��"I��������^�N��)����T�re����CP?Y[[��A�h��
���I�v��o����V�*�4i��
K��d���;�P�Z���/��-[�Pff&�����M�F���jme~~���+�1�����={�6��u��G�"L��U������[���7������O������J���T�^=���6��#�999����i������I{�����z��7I�T���wK�7�~���%GGGz���i��y�c�������$Z�`���f���KDt��Irppa�}�]��q#���������I��5���[�d3^�}m���4~�xZ�j�������h���E���$I�����'t�{�a�s�\)
m����v�**T�����v���UVaa!����Z������������#I��r�����������UfHH����|�)S��~�.�BA3g����.�D���i�����v������$:�������A�40�"�C���x��v����L)�J������t��j�����������"�r
��YMW���Mr�������+W��������Y�f
3�'����>}��������1�h��C���'�I			Z��BA���*����%�'s��#G��9�K^^^^�w�^��h���(//��
FVVVz������-[�QN\\���6d����3�}��}���$�;���Ze<�h9_t9��H���x�b������Wbb�F9{����5k�����N���3Y_������:?g���'M����(
<x�V�C�yb���h��u:���K~U�����S���I.�(O4Qdd����4�"%%������������.>|H$I������[o��7o���I�D���t��E���j���]KNNN:��n���c����������O������K0y�d���u������,�n���_g|kkk:t�^�3Q���T?�����j�K^��W�#G�h�cJ��?�pXjk�{��A>�)g��)T�R%���&��T����P�P����N<�X\�}�����%I��u����g5�7f��j{��\\\��?��)�y����hy@K������Ivvv���/�'�|B�/_6H��5k(<<\���������������_'I*�����0�6 IDATR(�8�z�*�3����G���B�[������u��\�t�&M�D!!!���E666dooO���N_�5=z� }����(�R_'�����a��~�����,�)44��N��q�l��DR(e�D:}�4��?��~�mj��U�Z�lll����i��A�w�^����������y�&}����Q#ruu%{{{
�a������
�����.\Hm��%///R*����Co��&m����g��i����|||H�T����k��~��g���� w��:���g��\��>��Cj�����C�����V�J����s��X�U),,���S��=������������W�^�x�b���I���<T������}�,�o�����A�������R�$OOO���m��E�C�����?�L��_^�|�>��z���H�T���+5h����/���g���#�Ba�#���4f�j��9U�R�*U�D�����K/Q���i���t��9�2�=Jmh��U�K�.�v�Z"�o�j��������7������4h@�G����,�q���0�zo�����r>���ao��E5k�$�BA�����?����\��t��{���O?�D���T�fM�����C�4c���L����4o�<z����Z�jdkkKL����5k�������?t�
<����C���dooO�j��PJJ��������2�MD����;w.u���T���+4f��U���Kk���O>��Z�jE���dooOJ��j��I]�t�E��5���rl�zWXXH������P�R�
����r��?���������������������'����E���������1B�7fE��+D<m3*-�~_�~�&N�HM�6%777�������S�n�h���:��7������.�^���gz+
:x��������i�����Erwwc��������7�a�v3==�>��s
		2���(88�F�i���������*���<�={65o���������i���Z�D���s�����#)88X�|}}������7,����1c�P������M�c[�jE����[M�_/]�D			AM�4�5j���-988P@@�������/�i�W�{����i��u��T�J���%ooo���-X�@�c�Kyyy���L�����C�]�6������
U�R���iC_}���qC�����7�c�8���1p�@H���;w�}�!���8�<BCCM:��a�����H�19h� ���%HJJB��mq��y�=���<�<�~��y���HXX�������v��0�0cy������_B�$�;w��q�����L��g�q�o�V�*V�aJq��]����24��4����a�a�a�y�`4c999��[M\�zU���P(�����y$##C��]�vj�0�0�0�0���uE+�<]�={�Z�B�=����"  vvv�~�:����`���y0|�p���K�1�0���C�<y�N���������xZ�$Y\���!�0�0�0�����K-�~��1~��w�����K���b��I�a�9p���k'�/I���j��Y4���0ZT���!�0�0�T,�-�Xv@?�3�,1��n��X�d	�l����\�~�n����-�U����8-[�4;-�a,�\�����?����O��rI��Z��a�a�6,�?a�?$��:�0�0�0�0�0L��2�0�0�0�0�0e;��a�a�a�a�a�2���0�0�0�0�0L��h�a�a�a�a�a�L`4�0O��-C����+++(
(�LU$����=$%%U�:c2����,gee�%����B�_|a!
����0(
���W�*O<e���r###-*�\._����(��]vvvZ����w1n�8�����}�a��$&&�6?!!���a�)���`��	&������$I�_C�x�"�n����t<xW�\���7���#8;;�n��h����}��Y�l�7o����T������������[�`kkooo4m�}��A����N��1�]0�������R/�=�$I*��z����K���Y3\�v
��s��y��=�l�'N���)


�a����#==���Cvv6n�����+�F�h������v����u��}l��;v�vKNN���������P|��6J���|�^���m��}�p��ua����n��h��9�u���M�j������lll������`t���\��Q�2c:��?9���)))HKK��'�����7o���
U�TA�����o����F�J����~��?III�r�
���{c��!P*���x�"����
6�I������>��c��Q���f�r�a���t�Y[[�$IT�NZ�r%����t��Q:z��Q��L�B�$�]
��
���*W�Ls��5[w+++������/�L�/_6;��&>>^<SRRRE�c���$I���U�*�Dtt�(�.\(u�����j����s�D�/����T����$I���W�*O<qqqe����%22��r�a���B��c�����E�{��u��o��"""())I����+�	�.^�X���fkt���rrr4�����H�T���
}��'TXXh�~������c��%�y����FY;w��(C�R����K49o�yE�
�����MLL�1!!��c�V�Z��u��1h<=a��R}�����k���'��Y�z5999i�������]k�,`�Bx4�0����QXX�5k:w�l�,�B���@�i�
4@�j�����������X�v-�/_�G�!**
���09=ggg�n���7G�Z����
WWW\�~G���?���'Ob���h��=233akkkrz�MDD�Y�S��,
F���'c���z�q�a�6o�h��)�M��7���7bccyk�
���aaah��������
GGG\�r�������q��%l��=z�����K����Fnn.$IBHH�����iST�Rw�����[��?���{��������y��i����C�ALL�����W^A�����aC���#??��_Gjj*�l������4h������{������J�o<��c��p�B��� ++���*N�8r�a�o�yBCCQTTT�0�P�ret��-Z�@�:u�����y�N�Bll,���q��I�m�G�A�*U4��5k�N�
�Y�&>��s4m��n��/���%K����SGjj*���4���w/������<���a�������[�l��3����������p5����J"Dd�4b����V[����Z����GJKk�j���}�"j� �$��V��X� ���������5�M��y�^����9���9gf��9�G�8x� ����g��,��n'"�5k���������+--�h�c��	!I�(^����|t1�nZZ�������w���9N�L�����B�"���zH+����}�mkk+$I}��5���OH�$5j�O9#����a����|����K+����?1d�q��
��\�|Y������<yRo��>�L���)�=j4��N��[�
��\��PY���m������;�h�D�xm��g�=��Q�4�t������@�B�$Q�D	���������cu����.�V�*$I���",,L+������W�n����-��@Do��7o�����{1����h�
�c>|�P�2'�����������<x0�iQ�!�v�_���RSS?�����=?S���C�������]���w��+����7�r��a��i��������o�>,\�������4l��h>������wc��eF�"I&L� �������������{��S���������x��5��o�����V�����t���e�����gZav���.>��cj�i��9���8w�v��mt���hz�(g��_���5���P�J��3�^��X744�:u�|{{{������?G||�Ii��}�&MB������[[[/^�����u��a&�9{�,�O������d�����G������=z`���F��uf�7n`���(]�4
(�j�
��m3i�L����%K��E�pww���-\]]��I��7III�:c���>>>>���r��B�
�i*��2-�N+88X�7w��AZZ/^�������NNN�]�6�-[�u�m���Z�B���aoo����c���Z�@IY�>lp���m��m������������a������z����P�T�����w�d��8���M��/b����R�
���agg�R�J�[�n��}��<�b��r��W������u��X�bP�T
���P�T:/����FY�!��]��M��X�b�����������L+))	��=���[[[899���
4��)Sp���l��E��y�x���0�{������Kg���X9�O?�dp?�����zH�R����2�
������?���`gg777t��Q.�u��	4������#lmm����J�*�G�X�j�����K|����V�
*�B�
�N�:X�`�� ���+W�����m�����B�`oo�R�J�c����a���t���n�����Q�bE899A�R�,o�����CQ�\9899�@����A��}u��\�t	�
���������9�wv�={������7��������;b��}��m��,jk���8�}||4�f�N����'�9s&6l(�nnnh��9-Z$������t�R4m����P�T�����:/^����Q�jU899�������P�:u�������7������P[��]�FY.Z����V���PNbe��2����rW�����A�P�T���FXX��t.^���B�R�l��z��s���;����z��������(Y�$����/�����z���������%J�[���#88O�>5�v�:�����4i��/���H�"h��1V�^m��s�k���T�����������|���D��Kn��"""��'��R�J(R�
(___4o������[���C}mr��-�����Fv���=�������D�B�P�|y�5
�.]2��9���'O0c���������e��A@@f���s����]`�ya��-r�=z��R��!SRR�f�����!C�������u�C������(O(_�=p����������6m*���EFF��0a������)#>|h0�y������K�v��z'���u�I	t��Y�z�Jo>��.����B�
������s������+�l����D�"22Rg^���:�L^Lv'����W�������������/s�r������Q#���G�"==]�~�Z���[o��u����d��{%]�<,,L8����N������[S~s}�
<��
����.���s]��[�n-�?n0o����_�����:����.�7u(c��������[����*UJ���W�^��d��*S�L����K���.\�3L����4���u�Y�h�O�	W�
���h�P=�R�4��P�,�-[&��u��T*�d��l��I�&<����~�Mk]ey�z��(S���c<  @�y�Fg���L:G5j�H<y�D��(���;wjLT��S99Mrr������t����7�Bd��o�+�����������{�5��3D��('��wL���hL@�o��T*�t��_�q��+�2e���IYN���D�:u�����������X�����_���������9g������������Xy��_�7u!����5����*����Q���}[��-Q��x���V���dQ�R%!I����g��1�~"s�=c�G�$�������ZF����9�����<q��pww�W��������{����]���x*W�,�>}jp����Q!^�|)z��a�8�^������[����a�5zjj�<x���X[[�3f��>>q��(Z������E����`��euSV�n����j��`\G���<Xk�����$I888$%%E,XPH�$J�.����56@�;G}�%I��W��\����_"**Jl��U�b&88X��?_H�$Z�l)6o�,�����={4j����0U�X-X�@���GDEE��;w�A��7HU�TIIIZql��Y.\X���[,_�\>|XDGG��E���+�i>\o^�aj��%
( �����?�("""Ddd��;w�(R������9���=�hj�����u����o'''q��5��/^�(bbb���#�p���/^�?��=�q�������k��O?�$� %I#G�4K�J���"..N>|X���WN�`��F��5Fy���WOXYY�a���}�����(�a�y�NI���5k��1c�$I�{��b��"**Jl��M�L�:Ugz�6@K�$6l($IAAA��?�QQQb����Ge���yQ����i���7ELL�(Y���$I���kK�Ojj��z�^I�D�5��%K�����K�.�93\�N�j��������O���{ETT�		��m����Z��T*��_?��_���h�s�N��.  @g:���G�b��M���"::Z���_��?_�n�ZT�P!G�G]�t��Qk����n�.\��N�[yxx��Y��={f��x��x�������A����JT�RE�Z�JDFF�����i��	;;;!I�7�W�^��~��k������������Dtt����6lc��^^^b���Z�����������
S�L�QQQ���~����8'�)���E�����E�DXX������V�u��������n�������
...b������#"22R�[�NDGG!2�7l�����5m�T���/���C����b���"00PNW_����{�O{{{1a�q��!q���v�Zy�B�6�Ut�5����pww���"""B��7Oc�]}
���=z$�{�iu��Y�X�v��x����P����/��q/^\|��7���������.����$�gRY_U�VMH�$z��%BBBDTT���w����_�B\�pA��ruu��M����N��6m'N*T�|�Mv2����&���'v��-��k'�7�����;o�<9�)S�h-_�xq�]C�����.��o/����f�GV�}�e��v��-r��m�j->|������7��R?~��}��	��={Dtt�8v��X�b���������j�~����\����������g�����#�����$I�����\]g�+WN���
7771{�lq��1q��Y�t�RQ�D	��N�5\��
����=z�������[�l��]�w�������7�A�r<>>>b��9��cXX��;w�h����Y�����{�DLL��p�T�R:���i�r��l|����-�N����g���H�$����<��o���J����a�������S�N��g����w�Y�f�&M�mp�7����?'O��G�����������
�����������S�zP)11Q^�|���������`�:z����9�1I���9s��$&&�$����:{O�����666:{(�~���z��n�*�������3�7##C~jmee%���o����^�fM�
����t��Eo��(W���V�H4�������Cy����R�D�N����Y_Z�������uY���?��
s��}�����P�Tz�����NW�pv�%I��l�
�����h-7G�Zv&!��a����I�.\(������kkkk�=v���h}�7##C�h�Bs��y��7n����7�`~���
.�G���h��Z��O?�$$)����4kO������"7Xee����$��$�6m�����p���3y����_?!I�ptt<�.==]g}�./�$�"E��l����pss���P��<���3�=�����F_��}�%���7��������Z����z��7N�3k#Djj������8t����o������?��q{zz���G+��;w��^;;;���\��2O�z�����7���n�����_�w��	����!C��g���.]�7�i��������*��R�����(�� IDAT���w���n~J�,ip�@c^�|)7�XYY�����
��[�jUn6G��Z�S�N"&&F\�pA��<yR�Y�F~��R�tG����^��o�b��r�������i��w]����o�>9~???�����8��S�N��������BBB���2e��<w)�9^^^:���W������VIy
gkk�����W������yz�8e�9�:��s��<�d��I�]�8p@^^�re����7�������{j]���c����q������X/uC�������{
����^�\�R�zK�.�Y?��>�,YR���/_��	

2�zY�J��A��ml��w��A���_o8��[�R��.|��=zT*����6m�I�D�J������[7�('��������&�J%��;�7.�dWW��%..N~��j����U�Vr��=����Z�����+�s�N����LK���1c6e��&���>����?����[Wo8u9�w���Z�j�MG�����������
*I2��HM�[�i��F�����4h���y�m�������p?�����c����v��a4�9�r�Jy;����sg!I����O���c�.%�+�+V���?��,��;Z)##C�Ye�|��e�\��l�6t3���_���������r/�O?�Tg�M��u������$?P0�����������e����C�du�������z���z�m��Q7i�$�����n�*V�����!�����z>)��f���g���B�$���b0\n����W���1�P��#I�i���+��������he-Kj���t]+]�rE�Y��Uo*��}���/6m����5U~_{����V!^�~-�6����O��n�����7<Gn5i�DHR��]�������������:E]H�������c�xUeaee%^�x��\y
g����%K^/���������OOO�=��1gtPP�|<�jO��!�����mk�}�N#7�2������9����Y���?��w��iM!���+�]�l��t�����4�)���HV��w�����g�o �38	!���MT��U��w��U����pB�I 11���|��GFg*o��)�����w�����_����w���\�x��������	��\�2�V��wy�:uO�>���/
�������� s2C���'����M�dN#G�DLL.\��S�N���G���q��m6K�,1kz����;���P��5���X�x1���������[�������{���7���;�����wY������'#�O�/_�����GjM�4�<y��D5����o����tk��-��}����5k��e���7o �XTN����!O���Y34k�p���	���H�$��-Z������e�$�f��r~���}LL"""r����CeT}NB�����T���?��K�.�d�����lmm��{w�����I���Okkk��_@�d�J{������&������eK���C��E�&�S����) ����u�V@�����^��PJJ
��9�7��zR]6�������T�R��=7s����DEEa��=���ggg��5�F���g�r���f������D�j/^���;::��U�V�Z���������I�$�8u�V�Xa��1��q�����������P�`A����W�^���'�?�J�_���3���HHH���Gd����\�8s��<|�^��)#F���*g�FPP����s���D�$�u�:@��o�������}��'(X���x�Rzz�|�U�Z5����{��(Z�(��Un���� ���U��o@���/W�u=^�D	��������P�bEl��	����;��r2T[[[�����i���x�F'd�w��7�wD����.S��e'������^=C�W_}�1+�!B�����j��=����y�f����������C������/^h��k�.��HP�����A�������F�P�Z���{w���]�v��Q�p��e,\��,�U�XQ��3f�v����w�v��8t���o���&7�������qK�$��q�����9=����c.)))�����S����
��A�LZ���7����e�$I��3c�����>��s������	___t��
���������{�����
ooo��uaaa�8q"�����y{+++H��������3�����������:?�2����q?h� �Y�)))h��1Z�l�v���~���Z�����Y+VL�7��OCy}��5�,Y�
6���sD;G����7 ����"[����������l(�ZGgU�n]������r�F�P�������F�5p��A����i^����;x��!`���X�v�I����t1�����f�����_�k��h��1:t���
�z���������`mmm���O����eK|���h��%6n����H=znnn&��a�L�0���������.T�]�����XM��X�����/�h�-==���Ghh(�����~?~�7o��~h0>s��k/s��������1t�P\�~��_|���y��6**J������^��=F�j�`oo���_�����3�)�@5C���xrs������Q��N���_s���������oemm�:u�`����r�
���aee�3lN�q��
Q�B���b�����{7�v���M��v������l��f��\���a��5j���k��~����s'7n�Ny�LII1���7o
0K<�$i�E�6���w�$I�+oM
��hP{���V��>�p�������Q�B|��W�x�"�z���<fe����2���O�������yW����k�c�����O8t�P������_�
��G�4z��?����w��B���)99�$I2���M:�d���]����d�72v,l���[��y�������#�/???|���q�F�����:v���u����+�X�bpvvF�5 �@hh�����p������u����4l����C�"E����={�`��1�]�6
.��m�b��
F�Un�	w��E���1~�x�9siii�:G+��iJ�T��5]�9G_/u%u������0�a�:iii9zC)��U]j���������dG��_|�
�p����e�����\n��+V�~��7�����x����?��!P�H����*U�^Y����y�&�������������|�������>}��[Y��k/s��@����5��_�zu��9��z9���c�{Nzx��mI���c�T*��4t�a��"C
fyu����s��);������r/w]r��U*���/����^����g�u��(V��U����`�?�%���X�t)J�,���D8P�Z4;�a�>��i<���w{@���7��_�N�:�������=55}�>|I������*T������,������r=�9�r�nj�����K��?����#   ��ruuE�F���~9rqqqZi������w����^���k�Y/^<Wi�W����O�����q��aDGG#%%��_�����p�B|��w����s�F�f��z�j$''���h����`�lXn����=���0L�4	�O����:?���:t��M��o�>;v�����W��g����s���_��R�J�I>��c\�z��cG4U�V����F���M����#F�Q�z=�)���={����r^��|�J�[�9#G�4y]C���c���{��
l��
�v���c�p��M�������8|�0���;l��U�T19_j��R2���]����T���-�k��a��-���_���;v�g��HOOG�B��{�ny� }�=���9cph���yl/^�����?����xl��4[�o���[�����'��_�z��]C�r���
�������~me��F%K����%��������:t��mCxx8bbb���.�1o�<�Z�
=z��QW�^5���1���7�M�����C��m�b�
��y�N�B�z���^^^��;w��+>>^~�����L9T��x���l@�1�W��d��M���_�z���4<�k��&O�����Zo�����an������o����!c�W�rK9|�����==u���w�{F�K�

��GRR�Y�T����4�z���}�_��T�k����~��5N�8�M�6a���x��
���j����!X9���Q�~}y��
�����������"����?��B�
is��-���K�,����q��y���[�	nNW�^���������RC=��CY>U*U��g�b�p��U�c��{��e�)���������d�����z��y���vvv����������c��8z�(n�����;�������W���[^^^�2�����]����d<~��`��]�v�[�nHKK���#v����u�MC����={�7���k����{+y0���o�?���{#==DJJ
�����gO�<y��1[�CY'�d��=�BkX��222���R�1�1�}c���l��oY��Q�%I����F�����
����#99���C�5���K�V�Ljh5���[Z�����B����
���].]�d0��������<����������|���*���m������Cp��r,�={��8�x��&-�r�J�76���!B�K9)���V�d���O~��o��'��ddd����1�F�V�Z��������'�:���x;�&��������_�������(>�7Vhh(N�:���DX[[���@���amm�W�^���r/��e���uTK�Ed
ooo>�����W��3:�mN(��4t�JLL4KoQ�|�S}�JLL�;	����'s��������������(��c��ooo�����o}�%������h����qJ���g����{�>��z��o�>t�����ppp�_���
��F�
�����oc��-��t.({������|�S^������[� I~��gy��s����/��]�u�Y��|�~@���>��1����^��r���������s�\u����<���*--
���2�S�r1GGG�m�������[9?�7o�Q|�8'X�y���S�a�W��XSO����NONN6x�����������M����re{�����7G�(/�
��h����%00666�U�V��]�l���u�V��%�l��Q�n��M���}[~�����K������|||���.ZBBB����7N=��>��U�'���m��'��M}�\�zU�6�~�����+)���	�Q�`������;d6F*/����!����c��i�����;����Fc��g��s��+�����ys899V�\�5v����	!�r�J����������(��HHH���[�.��y3�?:���X/�T*t��@�O��s~k����='���-%�8�9�������,��?.������w���0t��	)))(X� v����F������G�mR����n��_	��2w}�r�J���2�����I�&����~�	��W.s��p���1����l�_�fM�g���
v�Q�c��LKb�����@���l��uN2�Z�+++�X�����������i����m�V��^�:�}N?y]o�x�B�\Y�$���v�
 ����$�������������x�X�j���[�n&l�K�M�K���������=���z��|!����'�����u��u�V,Z��96WWW�g������Wg�%K��7�9��TO�>5�����k��������O���m�6��>y�=z��o(z��	;;���.+\�0j����}�<$����w1v�X�q��U��eHpp0�����;}E���3��{��x�A��������Z�3220r�H��@���s��Y��Q��Q7����F&%%?�����t�[�t���)7
���F�+W��8s3v����y"U++�<��Q��f��aN�8��S��-MGGGL�0@����:u2z����
�o�^���x�b������`���
?yi��q:{���sG�f;;;>\+�%�JS�L��m���3����=��;���u��!���o�����Ko��
��p��M���_��z���������_�@���}{���h���<���G�P�^=y�$C�5D�>}Z���$	����N�R��s���/_���~
 �������������r�sM��	!��{w������i�����1b���Z�����s���U�L���%1�}����|=|��]�����d���U��<�=��/��
Y��1 ��y���V��7ob��q2��5*Wi�s��Q��p��^}�8`�
���$���O����ys���|��g�0�'O�9T��3����
C�"E���k�N��_�n���������U�VE��m
n�{84Q.5n�3g����S���>}��]�v�M��G�p��9�����G�>}��{w9�?������e�����~���x��x��6m��_�~~~���7i,��0�|8p<�7�|���h<���x��!��_�
6����|��<����/��woL�4	]�v���?>��888����x�"����B�$��=[��mvl��
}�Z�j��-[�R�JpqqAFF������p�Y�F��*]����i3f
���_#00��OG�Z�������p,X�VVV���38G������c������5��+S��<.Y��}��+W���k�Z�*�V�Z�D�HKKC\\��9����;wS�NE�6m�|������HHH@pp0�>}�n���@��|�2�,Y�����a��r���A��J�*

B�Z�P�D	X[[#..{�������=����!I�rOP}
�_��F�Ri�M�]�5���2e
�����_uuu��=�L�<��G��m�r�����/^������l�2�wY�>}t��V���Q�Z5�;w{��A�V���'���������c�-[ggg|��F��1��)Sp��1����P����M����
o���?�����Hl����_���+��A9+++,_��[�Fjj��p��}{8::�����?>.\��\
�`�j��!66�j������aC!p��1|��wr#��i�4&R��zA�t��X�r%>��c�z�
m��A�N���kW�.]���x��	.\��}��!,,������q.D�^���U+�h�+V���������c������I�&�\����6-_��FPPP�B)R����s��|C��-����sX�S�N�]�v��o�����������������{�|�k���?���&M��I�&h���W�ggg�T*$$$���K��w��W�$�=��p��E�7����������K�.���<x��X���[�Y2W}�������^����
6n�(�dN��f��o�O�>E��}q�����f��a��	�7o�_���U�b��ah��%���������/c��=��c>|(��2���[�"&&���+n�����G�l��x���n���K�B�Y��_��������",,����;P�bE�1���C�B�������hl��/^����g���j�*���c��A;v,\]]�}�����f�!���<x0V�Z���T�^_|�j�����t���c���HHH�$I�9sf�5�8p3f�@�z���m[T�^]���{��};��[ s��^�z�I>����G1c�4i�m��E�*U���
�J�����X�z������U����J���30q�D<x�����2e
j���g��a��u�������y'+I��x�b4o�)))h�����|��������}�0w�\!`gggQovS>D����WI��$I����z�<xP�v�Z��n��)�������[�|�ptt�����T*1z�h������_�Lq��e���%$I���:��?p�@{I�����ao��m0�!W�^~~~��d������y��oe�S�hQ��/��8-!�0`�Ii�T*��M����\�'����\��X<��#�0z�
!D�^���G�_
n IDATq��I��iS!I�������������xt���3g
[[[�~�y���N}���/�a���agg�3/VVVb��ib��5���/}��2
C�"E��;v��}�T�^]����^�~�Z+��7o�����Z�j�4e?8P����L=/���]������2((H$%%i�o����bbb�����<�������M��z@)%%E�5JXYY�VVV��?��������q�J%F�a�,��:���k�����c
�e�zA�'c����BBB'��l��������L�����/=zd4�����T�T�o������:�Q�[S?F��j�*Q�T)��X�\9�a��q)�!S�6l�HKK�_rr�������n`�����9��Q�F������7/�}������6�'�o������������s�u>|(���kp�"E����w�M�����og��<���"11Qt���h5j��Z���W�b��z�9t����{���41d������3f���O������M�;J�(!"""�c�L�NI�D�z�������9y�d�R������gR<[�lNNNz�)\����u�9v��4�s����V2���pY��3t�Pt��+W���}����x�T*������
4@PP�����~`` ��=�������x��
*t��c������I���M��~}��-����\���'.\��g�����	���G��1b��=]��///DFF��������G�!!!���pssC�*U����g��(\�p���7o���p��!�9sqqqx�����������K�n����������a���X��.��X�����e�����_���|��

��	���n4777�>}s��AXXn�����d���O�:�����k��!!!666pssC�����qct��1������

��S�����"<<O�<��������c�"  @�����p�{����/���p��Q��{>Drr2
.������?����5fD��������s�$	����9l���-6l(��gl�
S����+�������.]�������u����6��=���P���!&&>����acc�%J���}��A�����o�sB�J�p��9|��w��k����
���������c���f4=S��fcc�E�a��1X�j>��7o���g������*V����t��Ioo����s��EXX=zggg��Y��
C�����Ro���*U���~@xx8�������z��a�����b�zA�'S�m��� ��u�W�����q��y<y�B8;;�l���[����__~LIo��MCXX������C�$����f������V���������C8t���;'�B)RD�������^�9��2%��A���_?����8p�N�<�q����???��S���G���s�G+++899���
6���IXuQ�0q�D����|�;\n����,^��$�E�'�3g����3f�y��f�f2��z����K�"44�n�Brr2���P�T)�{��������p��	l�����;������888�L�2h��
��+O�������=/��}#�9����q���Y�G��� �@�������v�����>�Z��������s�g�����HLLDFF�V�M9�����b�
0��/��c����XYY�d��h��F�e���x����_�>����{������HII���3*W�����c��!ppp�Vz�d��q�S�:��'O����x����y'''xzz�v�����Z�haR��f�B��t�R9r<��������[7�1B���.]��N�:�����s�NyOOO�m�c��A�R�r����%	Cw�DDDDDDD�2���0{�lxxx����6���������c6"""""""����4i�����2��&"""""�wFbb"�-
www��q���o;KDDD�56@Q��$�DDDDD:<�w�����E�E�%��#"��u��M$%%�h]___�����=������tX�f

��u������W�9GDDy+  ���9Z����h����sDDD���&""""�A�$�s�.���$I9��X��>�MDDDDDDDDDDyB��3@DDDDDDDDDD�&6@Q�`4�	6@Q�`4�	6@Q�`4�	6@Q�`4�	6@Q�`4�	6@Q�x���i���M�6(V�T*T*�^��w���_c��-2d�V�
GGG������={�����MJ���

������Q�ti|��gx����u��������t��������;:t����0��
!�|�r��_E�A�B�P�fM��7���F�?}�4z���%J������:t(n��a�v��IB������m�6t��E���$!66~~~:�k��%BCC��vvv���FRR����O?������7�`��i+++8::����WWW����R�J:�=�<�5k���xH�'''$&&"==�$a��Y���/u�����N�:a���;;;XYY!99P�N������A��k����!C����J'''<�B888 $$���z������������_�UhI�����v��!88��/7i���4���a������Err2^�x�k�����>,\�K�,����]�0m�4H��	&���gHHH@LL�W�����c��HII�Z���W������Q�fM��� !!���?~<��<y2����3��S�b���(P���]���d$&&b��(Z�("##1|�p���?C�Ezz:�����">>7o�D��-�����]����'&�G"""""""""z��W=�322�R�_���[����k�����Q�~}H��sy�-��RT�^���G����e��e���C�
������G��X��?`��q(T�._�����k,����m���5k���������������q����S�N�$	����R����N�:!$$u��ADD���'%%�b���{�.���y����7DDDDDDDDD��z�z@+���A�z����?������3�e/^����!I&N���n��%��W/����������wo��g���/QQQ�r����-[� %%E���a��������� ���
4�={��v��7Nk���'�6n��7�{��W�-*OOO�Xv��A@���Q�n]��������H$%%���%��9�&�z�����	B�		�i7i����:�o��h�{��Q���A�$9��|���!66Vg"""""""""z��>pww������K�.*T��w��+��|���wu��$Iz'(�$	�����5m}�*�V��\������:�Un�:<��s���{X�t)`��Z�<x(Q���8�Ck���i�kl}�2e�����������u(���C��o""""""""""�
������>}� ))	^^^�<y�Vu�n���S�`A�=���5u}���M;����k(m""""""""""6@���1c;;;l���
�
#����[�^7����)�&"""""""""2��mg��j��)X�l����~�z��__g8GGG@rr������%I��+��W�^���A�����������?7��r���
�k(����MDDDDDDDD��\�;)w�:���|���P�TX�b�t��7�z�����
�\��d����{��]_�nv�vtt�h�V�mh�W�^����:�&"""""""""b�lZ�`�M�I��p�B����`�J�*bcc!������K2{	W�PA�{���d>��x�"����������+W+V�J;66111z��N[��2���8����h����5m}����2I���Id�X6�,�'��b�$�L�Y6�&�ea�lX�t)��I�0{�l�5��:�������#22Rg�}������1����#�������uO�<�/^@�$4o�\g�G���7ot���7���5���5�8p���|/^\n,'"""""""""Rc����]��#GB�$�������MZ�B�
�V���;w������c����>}�h-���7`�������Z>o�<@�Z�P�lY�e]�t����r�J�uw����W�B�R�W�^������];������*))	K�.��#��{�������� �=!!Ac���u��-<x0��/���������Y��x���K$&&��"((���(]�4������������/_�}������|�'N���[!I������;>��S�����o�!##�k�.8��W/T�\Yk����
6668u���O�����.]�����pvv��_~���ADDDDDDDDD�I�g#�T�����y^^^___��u@f���]&I���O��__k�7�|�i���yppp���/���8x���q���?�����
��
Bbb"�P�T�5k���iii���v��������^�z���Ghh���J�����!C��� �g��/d�����f�7��&�T'��2�lY.�O"���Id�����,�{�m�@�7o����'���w��1)���I�&:������~��S����K�,Y�����)S���j0��b�����s'���'''������?��z�G�+V`��5���Ezz:��-�^�z���>�����(��9��s����#������;Z�l���'�������X��,/��,�&��b�$�\,�D��
�������|"���t"���Id�X>�,�'�eb��������ewl{"�,�D�����r�|Y&���{@S���'""""""""�l��,�MDDDDDDDDDDy�
�DDDDDDDDDD�'�MDDDDDDDDDDy�
�DD������"��e��r�|Y.�O"������$��/8�;�e�$�����lY.�O"���Id���l����4a���o;D��&��b�$�\,�D��e�����/��������������,{@Q�`4�	6@Q�`4�	6@����v�H�M"���Id�X>�,���K���g%�l�$�|Y �M"���Id�X>�,S~�M�CY��&""L�>�mg��t`�$�\,�D�����2�l������<Q~`;�eah""""""""""�l�&"""""""""�<�h""""""""""�l�&"""""""""�<�h""Bpp������Id�X>�,�'�eb�|I��AR>���D�M�$�O"��Id�X>�,�'�e����v(���DD������,�,�D�����r�|Y&���{@S���'""""""""�l��,�MDDDDDDDDDDy�
�DDDDDDDDDD�'�MDDDDDDDDDDy�
�DDDDDDDDDD�'�MDD~�Y "X6�,�'��b�$�L,��/Ip:H��}���I���Id�X6�,�'��b�$�L�Y6�eY����0}����"��e��r�|Y.�O"�����bh�|�DDDDDDDDD���P��=�����������(O������������������������(O�������������������o;D��&��b�$�\,�D��e��%	NI����Y6I�X>�,�&��b�$�\,�D�)?���c������6�gKz#!4���"U�#����;��J�
,�x^;`��R�XPPA�� ��$�gw��#$d�
	m3��s]\�9������Y�=9��Z�ZDD7n\iOAD�Pm�X��S��T�"���,��ZB�<���]r^����%��xl$��QgpF""""""%��Z@K@��ED�n��x��C=�Ki&""""""���Z�������������
�EDDDDDDDDD��P-""""""""""g�h!!!��� "~�6E�K�)b]�OkRm�]z��6�6�0T�r\za�Pm�X��S��T�"���Te-Z-""�7��� �7m�G�)b]�O�R}�X�j���
h	}�$"b=�iB�a�]{�����5�����J).*��	v��I
1x�w4���"�i�����0��m��JDDDDDD�Re-
�% T�""�e��
��b����`���u����:�Q�&����vi���EDDDDD�@9��(���P�����Mx�/������8F���3;sw�@y����y��*fRd>?��x���x\G�K��k�������r(kQ-�����\| ���{��n�Q�j�H�|0�T��f�b�$���mt8��}3�q#1��?9�B�CY�h	���NgSmz<��������GV,�;��od��>b�G,��;�{�1��#�0�8��|����nx|O_�3c��8��������H�Pe-
�% T�"����@BBBiO���@��	I��X�\x����v|~�����+${���>L8pb{8�g+3����~��6-pN|{������mg[m��%�O�R}�XS kS9��(���P��X�agU}���4M8�vdoe��~�_N�i�nI�M���J9/d��:�HLN}rT���JA��_�v*��
GZLz�3#�?�����k����cU*��<����6E����u�>E�)����Z�=)}���+�)���Q(P.�J����g�����~��(��$��`?����P�����A�W:�{�B_����O�Cj����L6����|Cg���������A0������q���c�8���|J�.��Jm���T�"����&�f�����IDN�cW@�d�������0
����R�o��wo���b �S�Nx������P�I|� �+�����	���9��Ol�����i�,z�L��df��2�x�x����w�Q�����6�w�=ADDDDD�LPe-
�% T�"r����d�W/�i�f������
/G6'���0 6�I��N� �`����9<��VF�������r�5X��{�x;V�T��8/}������������=cs��M9��(���P����0ss�,�����g���ig�zYf��0���rdv��
6���
��C���9�����W��w;;���m��W�x��qsC�B�1��HK�=�����[q<� FT����������A���E��
_DN�����i��3I�p&���|�\��~�(}�_*�����1��P�`��1�,GF����(����o�J��7s����O���b&-W���q>3���`�N���""""""��j@K@��E�$L����o�Sg��t&���%�6`o����v�D�9�\��[z����%�HLN<�t8�#A��=������N������sI�>Lr������H�I+��aRr��:�{.�xE���u�����e,��w���������|���F��M|[�6'��DDDDDD�)���*|kKHH !!������9/t�:��M���g�2�.,�#�R�$��p��GD���W��}����X6�5V+g�s
��������H����FrvZ���sJ��s���>ms�R�C��cp������v����N&������7,���6����0w��{>��W�|f,F�J�m�g���M)��S��T�"���Te-
�% T�"�fF��������pO���be��S���s��
�8�lW�������_�Ih��{h_Q�\�G����P8�P���{���id�O_�|�8m�V���z���f7�����!��o�O�+�	���_c{ud�y-�8}�}�b`��V�)"%���.���5�6�CY���' ""�o��q��y0	�_��6��_��7f0?��9\�O������*{��b���*s�,�c����gf��i�d������-+������!sA����l�o({�����:q	_'.!���Z�1�������~>-�eu���������xf��>YZ:������q��$��z��XO�jSDN��S�bMv IDAT�T�"���,��ZB�<��]fZ�/���������sMKi�\���$���y�����P�w.�If�
���V ���\�X��9��{����a'&8���Hb�#��$&("��A�ym�����Eik��5'|�
�������	
������p<�lunl�����k��=�m@o�/?��^��~�"""""R�(���*|������3�;��f���23���c�NS���o�D*�^���Fr���wE�v2m���������P�����9��`�p���9~nu�� <�����arD�����G�-�7���;������������a�$o+v|hJ<A?�&���8����k�h�O�A��O�Mx�S|;�8���c������������-���E��
_��g��x~�	����g��$�o�s�����8�����t}<����f�P\��]���������wv����)u4<���C�Ba��+�c�#	s��T�|��>&�v����w���0e�<>�����=W���_����mp��P������K+�c��=�#���T������_{%��vZ^�������{�CY�h	����4M�e+pM����/a��b�l6�1��������b�wPW���Fs('�����mKY��We����RbN�#/@�8]�\8<�0�E�.��T@����q�L�8����%%'��'�o�K�������]�OU���or�{�O��fthC���bk���_���������CY�h	�����z��3p:sKb��w����+s���	x����`��pU,�r73o�R�n�������d��d�W���|�����1~��l��r��GVGZi|l��,�~v���$taY�l�m����3g������ tMc��GO�^�(��f�;*v��;�~�P�����X�D^���������CY�h	���%$$���p�>���pO��{�L���{��f4��<��
1��2�Be'��'���F�%t%s�-e��?�h�c]U���=���|LxI�#���/'@��}�Y[�g���|��wL�/�e��=�+����b��:��o@��;*�c#q�}F���-����6E�t�>E�K�)bM��M�P��ZB�/bm�a��Os�>��}�k��_���P���tc-pc�j
2�yY9:�f_�U���Kw�Y��G��z'�l��u�D�P99�@�+}?�mZ��
�Y�]��+�����}���
�����~�
��|�)�}{������������.���5�6�CY���' ""�o��q6�Sp���{�<�-���c�q�����tc	m��w�q��A4��R��f���yk�N�Y���,_��5���zg:Tl��f�	���Q%<��-�1��0�9�����x�\������y��+�0�Uu�y'�����^�����5�K��|�	luk���kSD�E�)b]�OkRm�]Z-�O�D�������B��f�����V��������t�;�'�p�>uR�}�67X�o����*�\�������jt�_�N������Z�+%w&���i���5$���w��y��sq�<�G8�L�JP���WAA8�����1""N�<EDDDD����Z@K@��E�������y�:��i�����l�\����$���?���U7���n"��][�8���1��W�3��B�*��/_������U)\?�k6V����+1C���[���������4l�n/U*�|~������#EDDDD�*�P��ZB�/b
���g������=�+8�T�����f7����x�FvG&��:����Zg-F�!6@��������\T�u�����Px���gf�yrx"S��Af����]Nf���p�����l�~�[����N�pN|[�gl�"""""b���E��
_������������Y�;v;f��2_��1�nl�h8lr��$��r[�!��60JV���W����_�3=��'�v��It����|��y���Nq�K'��_��[Nv�M��M��O��Y�TN�T�����#����EDDDD��(���*|�����	�����������I�8����<����@^�zB2�j�M���d-���]�f�8�b3.����jt�Y\���������������moa\��N�Z��*�����>t#�|t_hW�!����s���n������)��}*�.?'���9n$��n�p:O�|EDDDD��)���*|���l����Yy��������d���z���a<�11qU�Kf�5d6YKV��En}p���h�V��E5;��ZGbC�O�%��r�LL�����������^Z���r�b]�_{.�N?�E�3���Am�^}{��gp��.!!������������.���5�6�CY�h	���c8����pO��g�/���u���~>32���p�d���x2�M�BgW��_�U��������`��O������Rx��������v����}�03�/��M�p +�^k3y~z���[
�.lA��^�|ck�m���"���.���5�6�CY���' ""'�<����y��N���������������:�CN{2	�U.��&��l�c�y����];�F���d?�*��OW�S�h��j�C7n���y�}>y?,
��O�������2u�|�t����C����<</��,�7�5�_IV��|<�1���3�I�S���t7n\iOAD����.���5�6�.�����'O"�����3�[��f�������@A�`K��L9��y�I���]k���5��{��_�~Lu���B����Z����S}9"'�4M>xm���FN��}%(����jr��1���Lfo�������%��� ��%��yw��yjp�W^�������8���^DDDD�l��Z@K@��EN��r��~i��g������J��w�����Df��y{97^�'���u� ���k�E5���Fg�FW;��"r���3������
Y>m�.+�s��C�����y����e��)\��2�%��=��u�yE,;��se��������c3lg�����������Z@K@��EJ�4M<�.��?���/v��*u��y�nk�����������]��������jt����,�
�HQ���<q�V�x��N*���������LL��_�>G�	3)��D{x�SO^��;5"+sM�~����quO���Mx�/������8F��y�������CY�h	��K&&l���w������r_B�+�=������L����9�cY|^����j���l-Y����.~�4�����Rs�W�{�`����*r��=�������n��6�5�*w?Z�����'%���>F�[S��<>��Bm<= ��]#q���7��������n_�GV:#�'����z����DDDDD$�r(kQ-���sY���7�K<��%�h��f}����XW��R��U��d4]Kv��`�
�����_�N����>�:��2T�l���,������|��v���O�Q�z����
��1��E~��Tv2��r,n�u�k�����+��:���ZDDDD��)���*|9�<���<������-�k[����=�?������V��H����w�Uy?.����q�(��[�o����i_�	v���OBB			%>��U��zx������.���rv��\�����������bn���}V�0�\^���N��9�[�#C������s�������2�k�+�� �;E�K�)bM��M�P��ZB�/�2���^_��\���<��{��������R��b9$�}�;�^lE���LR�M�A�%�O�3�^U;pQ������*����1C�)����$��u�8���n��^�1/� $���3'��wp=9��}�3�zE�J�(2�|L�c`������U���9|�����w���F���~�%"��{��u�>E�)����Z@K@���\VTmfd��jA^�<�[��}�����Z2�zy^�y��U��x�cj��F�^�]*�$�tB�A�D�\t`_.#������>m������������m������S�?��o��rv�\^��������+��rU��������x�u���>�;E�K�)bMZ]v)���P����p�t���y6o_�/�AzF������g���j�C��-&���&�Uj�%u����]�CE�"����	�y���������P�!�V8n0�Y���{Gc�����
����0��w�~�DU����R�
��<n_�-""""r��CY�h	��Kr^�����t���+�y�(�h���8��+�G�j���zTmO�3��A"���i��m��|��
���w�]���2L�������
�M���.k�=�Yg�]q}���
R�W���y|�@������<�P��ZB�/��c����;/�i�C����
����TJ��E5�p{���X��?�/"���w�f}�������0�m�D�fJ*�'_���;�r�v�-��Cx����~ %'���30�~^[�����:=�	�@������
�P�����sXZZ�g���G����/_����fc��
��7M�w�y��;Cdd$�[�f������p����s�5�P�JBBB�^�:��r�7o.vljj*c���Q�F���G�^��>}z�^���N�=���#,,�F�������v��l����n�����L�*U2d��G��-r.3S��`l������J�y8�1}��>������|nu��������Oxg����@���)��������a]�#�����������;p��~�jDG��8��c����C�!j�����gG�q|��.�}!A6�uob����������^��7���%������������
�Y�f1h� ���a�n�:���_����\��y��n������k�v������;��>���o��vc�����"%%�4	g���\x��~�����n������aDDD���Uz�~��L�4����z��L�<��IHH���f�k�f��%T�\���o��������aDGG��������p��{�1l��"��O�<��*��p������p3Z��y�p~���v��8��j�����kw���;����W`�����1��C6�zE�O[��x���T�|�s���g�7��?ss��>�+/�����V�f�����a>?�\�����Q�.�+��O���,"�Z-""""RR����L��6�
*0`�x��wJ<v�����7���P>��222HKK����"66�����n����U�Vq�-��v����k��w/IIIl�����{�������9p��G�M���+� 11�Z�j��O?���Bjj*/��6����z� `>��o���������?���4RRR�����Q�[�l�����;v��=\q�dff��OIJJb���6���M7����kK�}9��|�>��5��OW��!q,��7|6��	�������_cf��l��q�~�o���zJ��5������M�i����~L���X4;���0��}^��3c!<������d7�D��osC�>|s��l�~./vN��FE�;5���#P�M��+�x�~�H�jt��.���5�6��2����`����]�v�+����C��5�����W_�����j�={6�0���/�5k��>p�@f��M�v����_�~�>==����}�vF��������������X�����{��1�	&P�R%�m���y�G|����^�:����{�����6m�`�&�g����/�j>|8���*��Wg�����������C��X��A���_�����'Or.9��>�?���'tMB�4���)W^_����'�R��i�����2��y�y�&�����|����b
�C��������������~���p���m�%������qS7�cs��1��V`�
C����N�Q9����<9Ct��.���5�6�CYK�Z]8|>��O'''���n��V��K/�����c�&S�L�jKNNf���@^X|������~��L�:����|�	�z��	�|�A����w�}���h�"�����f�����eKz���u�|��i��p�wx�����1bs��)��C�,p&��~��cnz<P���k��z��w��z�����i�Z�T���]��Um���*�	���W�S)5���c��t������{|��l^�Y�y�*��pAK�`�i��nn�N�U7��k���~z�a��$�����f�������5T�=z�������q��f��O�u�y�����"����&�f�U���������[7���F}���	��.]����0��>����/���z��u^m?���W�cU�R��M�b��������i�"�x�?o~�|k��e��}�Q���_ONNK�.��G�\��������3��k�X��7o�����4�N�\���;����<1�6��EX�a��Q()��+���F�z�:�w��[��emV�����h��S{��-���+��Z���R�[� ���1�y+4:Tl�+]����2���Z��m@���s�y��Wh��0m�!R�t��.���5�6�.�%���q�&M����qc��_�wl�J�(W�����5���o�><�a��v��c�������9x���y��9V\\������sm�s�y(��[Gx[W���b0r���g�cTB=������7��������E�t�l�=t�.mB�Z� ���0��-�7d#�S�_}l�l8n���~�>�vp8�;�����Y
������nwA������,>x�_�C�9>�_����n��o��+](�R"R�w��V%�qZZ���'4644���hL�d��=>c���V�����{����"W}��"����c`����]6���8��1_ ��_,��%w�>��U��s&���"����\|M�O��Orq�U��k���2b�	z�I���[���&�{�H���������[�Y��n&ty��������x�`^��cm�!"""""��������"��#9--����olI�]xli�[�\��r��>�:�r�(��LPb
��5 y�\Kn�!"'&2���)�x�����viGb6WwY�[����)�CMl�4�3�f~�Q��O���jr.���������������_�����O��}���f0��	��|(?�\^�)"""""
�O���J�{E�������4�<��$rn�~���*N��.;�S�!��)��
D�s�a\qc�\��F-���v������>����w����g��?����x�8���i3�n�����aq�_�_�?Z�����&i����k��m9DDDDD�2@�@xx8E�)������-��olI�]�I�}&�-r.��w4�=���z#�i��YM��Sc{)����a"E��0���6��{+����m
������J|>#$�#����C�v(t�}�L�i�T��^�!����-���h<e0/k[�3J�N�R}�X�j��R]�������>�m�5�y��W����LRRR�=����s�N�q�^������������DNN�+���vQ�(�W���1������RiwO����|D�y� z�o4+���U�����d����x���7+�>�����S��K�=$�����3����(���[�K���������F�*}���p���/�=C&O�����q�
�;l�jv5��������r3���|6�F�Z��?���\l���-=?���,��>��vk�?�������9��_b-�Yx��2&11���kc����~}�g�������/���K���/�����{x��7h��=���k���s�r��c���'66�g��+h���a�f�6lX����y��������^�Y�f�Y��Q�F��s�5j����Y�f�\�����^z��#GR�B���]���M�b��/�U�V>c8@�

^g�~��^((�2��M�R��d5�
�[Y���V&�f���#8p����V�������5!!�����x��3��nb��>mMZ�3qj=j�?�3�e�����	�c���?e�3���`�h�����.�a����
 IDAT^C�������y�:��������:
�Jx�	�KD��{��u�>E�)����Z��.��B�.]Jvv��>�|�
={��:��K�i�h�"�c.\��".>���������s'k���0�k��{���������>vl�F��X�"�iy������t���o��]��y��9v�����:"���=Ww�
��Vz�.Rr����E��T5�v��5�si�U��p�	��}b�dB\�RmT(��G�:�-?|0�XE���e�y��E�����m�*�`��j�Q��C$@t��.���5�6�.�%0h� ���9t��'O�i������a6��!C�x�EEE1`�^~�e��������[o0t�P�s�[�p!�V��i������:?p���gO*T����.�W���+Y�h�a0l�0�6�0���k�4i��^���W^y�K.�D{@�9���L����:�\�hVW
�p��]�w�V���^������WD�n7�kLU�.nJ��A^m�F^�����������������x�O�n��<
4��b�������������������b������q����~����"""""rv*s[p8pt%����i��
�a���?S�N�����8�=c~�a^x�BCCy���:t(6���s��������$�
�G}�s�U�V��];rss����x�����������[n��o��\�rl�����8��;vd��e��U�)S���C���y���5j���7�t�����z�;�����/���w�MPP�����
#11�.]��x�b��{���A������O�}�]�U�����y������	��?��Q�F����G�lc�����F����Q-��V�e7����|��`Zv��������f�@OWDJQ�!cn���/�|���	f���4owb�f�N`����8����7`DE�e�*�Y�\��r\]�/t�yNhn"""""V��Z�\m��l�wbb"��W/���r1p�@���@PPv���#����o���~����>��Cn��f\���PQQQ��������������;w��[�nl�����p���p��������o�Q�k����x��wp8������:u��d�*U��w��E�8p`�
���v:����{~WnK�/g�4�t=�/��v@�Q�YW%����]�z��h�4M>���'�K$+�{���a�����iDel��=��:��%�^x
����v�����q�{F����7������&��}�gH�3�G��������;J47�Se-e2�.��0�n��@C�_�w�}����u���v��W�C�a���8�����+x��Y�d	IIIT�X���{3z�hj��}�������g���$&&J��-���;<�w�c}������[�\����Lj������y������m���g�}�E��o�>bcc����F���pBT�r6q}�����ul��1��'{r4�>}����'8$�-�"�o����zVg��u����R�b�����
�C=��l����7p�7�x.aa�o����8�2�2������~��!���bb�Q�����������X�r(k)s����-�]{�j�%��f�����nP��[���Z������ZO
9}�2�<��6>����-����>�K�>1^�'&l���w��Ob2���s����h�
�[�AZ���8���s5����V7���_������������no^�t���)�;E�K�)bM��M�P��ZB�/g�4���Z<_/,8����WaC%'a�[�H�1����EE�w\U�K�v&�|����9��J���n"������������k���a�2��+��e&����p������^l6�W������7)v[�pG(�����#��,��){t��.���5�6�CY�h	��
\L#��{��=ry9^��--��S�`��]	�����93vm�f������7�m�.�	S�S�N�O[~����X#��:�������p����]y��vI_���c;�-�3��/��-G���L�6��U���"e���"����&��.�@K@���������HI-8�k�`����fP���0w����y�����r�L&=����������DD�y��Z\:�{�����.������Oq�����"��.��c�pl=��l�j�]�<�_����uz�b��T��X�9������6�P��ZB�/Vf�&9��3���cN��WfSE'���p���_�g)"g���r��������6��x^�ExD�OX�l��t�p�%�g'`��,�Z�=���L^�%�.����T�~��P��������""""by���E��
_��������~�c�����02C�0�q-�~Nn�!"������7m��Y��5����i�i�*���|�������>�
�o��h����q����Y����K���-������
�CY�h	�X���d7�
��
��T'���U���N��y��N�N�zCDN�4����<="��l��bP����kp���9r�N>�.|M��Kq=;�����g���c������{~E�r�����YI9��(���P����IN�+�,���Xz�A�����$xc]F��a�K�Kq�"r����t��z#��e��u�w�f"�F�v�@�Y����&��r^��*U�~��|����?m�!""""g�P�b+�	�����x���^V���N�'�����QJ�,=%\$�4g��f\sk��%�c0���8���uhC��	^���+������}�z��=������J_�.��LF���?����N�<E�N�N�R}�X�j���
h	}�$V������� =�����������7����y��G�.Q�8��1C�)R��~~�Gn������-t�z&�l�@��a�0j�
�n7�8���l����7p�?r|�@x�����[�c�{��.W������k[)3t��.���5�6�CY���' "h��C�M�y����
�V�f��w7Zf�g�q����D������E����?.8�YB;�<���Xh���M�h�"����
�����{[g�S����c>� �������^�>��A�[�1=(�
�u�����2*����1o�O�i{�[��r���S��T�"���,��ZB�<���^�L������{M,�u����S����
���E��r�L&&l����c��NiUk��y^0��E8
��Q�N6����6&�zm2����C����l��Q�������o�� ����w��O��"""""��r(kQ-����l�Bv�!����o�0��
`D����Q��k�Y�,"��������T>�����h�,��GVI���'"�����i������`��"�-m[���m����6�NO�w��j��N�u�������P��ZB�/V`z<�t�����J	1�0�
;�9p���C�_��W���,ED �������CM��x�u+3X�2���S>���4��������5����6��p�?
��a&�[�9�6���^a,�����9B��f���"""" ���E��
_��5�-rG<�u��aq|�1<->������"R�2m�^_�z�y���{rY�2��+3�~_���������Tr�v�7�������A�0�#��M4ssq:�s1��S�y~���>��k�Y(��S�	]F������3K9��(���P�Ki�l�Lv���u��Y�p�y[oD~���>F�n�zCDJ_QtQ��<l\�����_�QP''��ji���uB�<�0/�n�,�J}�D/����k*;y�O43Z���
������#��m9DDDD�Qe-
�% T�R�L���n������c����Taw���XF&M��	�Kq��+!!���������@?e�3�/6���4M���a���������`�?�x<�6��(;
���?n5=6|L�?��wKyzE�I�r�y��!<��&�o9�`{��MF����)b]�Ok
dm*���*|)M����5*������1�CM���_
)�[o���)E�	/�z�E��a�2��>�����0������f��L���#?�NM>�=<Z����/�����]�v^��{]"H���C�n�w�X��S��Y����E��
_J�g��[�����cs��r�m�`��r>o~�D��,K�V��XK���L,7���xF�g�&���xm��ne:��8�[w}�r���R���e�Ia6&]�;�"9t��?m�!g#�;E�K�)bMZ]v)���P�Ki0].�������cIa6�����h��(��������,ED|����t]��7Vg������W��nei��_-]�]���;���}���k$�_��h�����/���V�r�����)Qe-
�% T�Rr������������|�.����`���(�[o��5Y%���4Mvn�>�Z�h(��f���9����
fd�=_�>����Ql+�$�pE.K��K�u�A�0�7	#8��W&""""�
�P��ZB�/��Y����� '������9o���?Z����8�{��zCD���tQ��
��>���?�2H;��)�+�2�(#��x�
>k������ra����A��R�A(
����E8
[��^����������Ha���E��
_���%�c?�?V;n���*���cK��?�u)�RD���	�y��%������P�����xLv$f�ne:���`������S.K�N��R���-By�O4V� z~_�����rz�)�(���a�p�6%8X��EDDD�:�P��ZB�/����K��=�u����gV���7������n��""�������C����C����m���������N������{^���v�6?�R�Q�0�W�]-����,~��s^��V���t������H�Qe-
�% T�(���&�}p}����a���xB�6b�����gLiM����pk:�k����=e:��_�\���~�j3�O?�:;�
I�'t��x���
��Q�Q(AAGWKg�����z�����2�\�O����S��Y����E��
_���!�C��k
�����~LF�1���3�&N�P���&�0T�"TVj��x���K�3�xm�t���s�J�8~<0��=}��8N�A�F��w�y=
�Z�5�h)NY�O����S��Y�����Q�9]\O��>�&��G����xO��4�fy���+�)��e�6
�
����]>���q=;��_|�5����}��M�������`!�[�~e�V����?g�/7�d�����OP�<@G���g��+�������VV�S�l���&�f�����I�4�+������c��
���~�:xsm\�6]z�+�)���	p/��s��]Td��1v���5}^�f���r���yat~(�au�Y'���f��#��/�n�bh�6��(~������*�P��ZB�/g���Mv������e��#�I��C��[��g��.�8K9���&��	���
����m���'��x����^mn�I����Pz��t���`��������K�h����k�*T:��$""""g�r(kQ-���3)w������u��[���<��?d���DD�Kcz""rx6l&�����������b'����?�I���{�Cs����`��t�����N%��+X��S��C
EDDD��(���*|9S<��Iv�~�9FLi�m�)�s{U��������ED�4����]O=E��3	��D��q]�y[�j%:o�-����4�'Z�s����]2�6:��.���
)�X9��CY�h	��	fV�mzb��PplW��c*�f��6?��	�Jq�""r&�����q����|�2��n�
�����[�z�=_�-���P�~���f��~���O�$�r�]�h_����m��7���G���9[=���<������-�k������G9��(���P�������^|����;*��I(�����o$�(���UHHH(�i��1T��K������S">�m�Ap><[�~���s�MV������,������(����`����
VG�mZ��H�>�Im����m@\w./����t���@��r(kQ-���������t��k��;�s����6{+0�����{�=@%�a�ORm�����b����l�z�g�����8F�������;J|�{�U�����y:���oRX� /���'����\-��}c��_�zFS6>(�Mx�/������8F������ch����a�2�-�Vt��.?<���Ht���@��r(kQ-������� ������^����T!5��������8���V��X�j��xL���o��������Ud_[�8F���'�a��xL�d���O�����Xz��d�y�vh�1�`ut�V��lecu��|�KS���2�k��5�)Kt��&��.�@K@���t��(�	oy���
|�(o���+���������Hu(+��_�`�����-v�:�h�����{�-^�O%TL;����S��y��H�.���x]����]��P�����aug{��l����HY��Z@K@���tq/�����Qx���u�`��8�I������_���(""��������D~�#��qK����*��I��,~�������}*YE<4���m��VG�����8���2/+8[���u�"""e�r(kQ-�����LO'�ew�������m�����+6�f���w��QTm���%��nz @��
R�+���**�(*�>"A����c���
"���&��Kz�:��l�$!���&�?��+��93g0�����}^���z(����U;����G7.���S<�S&�*l���B�QBBPB�����^���`}�g)�
�l�#�������J����s@�3�n����m=Qm
rkk��B��Dr(�"�p��:�x�+o�l:%����7�v]��g$�7�B�J/�b������/h4��~�b��<4���$�%4�0�.��~.#�&(E���1�s!�u�3��*��5ocp����;o��5;������B!D}"9�g�Z��|q�lk���o����{���4Y|�������	!��%�>��)k���NZ��0}u&7m�E_���C��`�#�
�#jp0���:���#z��� �L�� �L��(�H��AC����l��#M[�8_y�����~!����P�Eh�2���Psr0]�5��s��0=m@��c���C�X��-5��ZOV
�3���4������#^�\~:���<�s�l������UL��L
���p�����Z������t��PCMw������i5���Z�o!�y��3�slJ�Y$�n!_\���������!�"�����;�O�kW��p�(��O!<���K+� ��������cW���*�Y6Br��9�;�J�l'8��-,�lh����(_��- }T(�F�(a!�3�K��.��]T.����te=j{��������~Q�������cSr(�"�R��������W�8�gM����?"��E�3gNMwAQ��V�O �{�dB�����z����x���!�?�bW	*(N��id���-�fV?��z"��9V|��P�2QS� ;���X�<����S��U�Q�2!�u0�����C������?��cx��r!��<
��dl�_2Z����$�
5+�e�Q�wn�'�Qz#��1#k��{����j��B!��\m8��y�w�"��sCo��!� ������h��V�1��kD{M8��Fb-|��Q��QS�!5
5-5-
R���tHM����s�xy9[TB���tp�����nsi����^+��^�������d�
�1���oO�=w��<�eY����e"s�M��=B!�Gr(�"�p���0�� �7�w>�+0xZ$����������B!�������^�0��?#���I�>�]�����"hKkc����KC�p��Qyy���0�VS� -55�p{�s�dI�r:]V~����WY�?��L@;l ���B1x��h��..�����PO�B�KOr(�"gVY� IDAT�p���l?�����]���/��\�b����o2nT����B�:�����&fcz�
C��I�KO"�ZPm�
���*8���Xg(�:�)qA���V�
�c�������?���'����HF�	"��?;�;�+��v�����/��D3t ���5�#@!��O$��,@���/�B����}/8q��m���f5����F�����g��.
!��c�kA<�j�x�Y�9�#��O��VGW�*Z���iUL�	nJ+c,��c1z���l����l�����2H��W��:��M��&�;�����75e"��U\&�pv�)��e��^;��Ah�wF�jk�?@!��O$��,@���/��|�l�|�|lS`�CQl����X3�<�>!��5�E!�uLu��a�.L��2O`Sm�v�HC(��at����E�r��Sf��)�?~�`�O���Z+}���>�D�!�\qu �~��2!i�Z���QS�!�����O.�SZ5/�A)�^��~�_�QPU0�TLfs���w���d�bqj������zv���L���J�6	
A{M4�D;�j�`c��U#	��B�'�Cy	��[���e��'�#��l{a` 	#�7��X���L��zWw%$$���P��B�G����#�.��f�P�q�g$�7�H���d[r��:�:ZchUL�)�5�"�1>:ol6��[sX�C������r�W2_��R��+��C��D�x_���"5�(��d��Q'�L;R����8��#aVQ�fa�8�5�������Uos�sk�>��f�������4N����V=��6���(mZ����$���<
���96%��,@���/*CMKw��8u��-���^3`�;~��<6�?���.�Y�������t������*��R��t���}�I��=[m�QPh����GS����X��u�����28s�R�sF6�;��!��DP���1��on���:f�x���GLO*(��x|����!Tf�Q6�2_����h_�\xr��'-\�;��{��v����C�L��{�q�OGl���Ah4�~4����Pm����>��O!<�;���P���+A!��!�i�q	�����Pg�l8�������0g������26�7EQh�NC�p�7���/�����d����.�1}0�({��h�#�=�u��Y'Xu�O�}a>FZ
�%���D��7�ck�H�����`��I��w���;�F�(,�a$��?Zm�BU�M��Is��+0�>n�Vb�q�������2_�rm���H�����A����7�����X@p~�S�#����N�j'�^������
���@f�?��#hXHG�G��?�h�p��?��K�V����O!<����Kf@��w�DEl_}����\�=;$����H�+��`	�\E
�N!D]��3��
��������3��<����q�Sv�]�[�ECm4>)��&���7��Htg#���g���`-y9v,���**��,�R�*d.���yP#�5!���iv���'���y|�N�����������	��>km*���R8;�����$�����
�o`k/TM��^����/�1k�(�����_$��D�E��7�����d�B��Lr(�"�p��B��T
�{���?�wE��3���w�����5O�-Bqi���<��r6?�e�����OU��ti!�NG�?��L���H4�(Tn�s�!�Y��)�,dnalL\`c��<��+��|=[��JN���~?������8I���g`3f`3f�P=���g��K��Tr��9
?�3�C;��1�e���g������MKc������(�Bq)I�Y$�n!_\�y���>Y�|l�(�����^x������hPS]BQ����Br-��<��5����7�?#����^M��L;C�(t)a��r�1;����[5!�\�z�U�]I9ka�/���:�u�39}�������8Cw�6��v�/��U�>,X������C���:��Z�!�A�06��1�0�����	��B!j��<���-d����>���;]���6�g�-���0�y���=BQ����<6����S%Jy$9N)���������EP��U)d����]QU�C��Y�:�?Wg���L�r��C���}�Lo�p�(�{�|(L��u��l��\?�b)(�6t	��~������B��&9�g�Z��|Q��9G���T���^����pq��������T�B�Q���X�|�������>a�%�Q����Q�����$�d������^u)
��5&.��C���7+�f;�7��nu��d�����|�d����f3=���r����^��������C;ov�29�����X_�-���X�����&x�U���B�����H-�B�8���������o���Z��3���(���f���4�����ZBB			5�
!�ydl����j�`�1����$��),��L���J�����B����\W��u�|f��
�f�nu&�~���:�\N"}�Bo��L9^�s�V�������bG�KX��sX#�`�<�X����#VF���fM��*8����4�j��e��O!<�;���P�Eh�2�������2�n�ms�y~H��qB�S<~�5��Z��(��O!<��MQW�U;O>��7>��%���+���T�y~����;��\����L{�5���t�K)
�}����KZ�%�P��v��_2�����S�f}�Lv��Tr%�]k�X~�����8���d����������5�K��hY��c����������cSr(�"o?!�N=}���\�mm��K��[�����%|v�9s��t�e��)�
��!��N$<�������.�\�c���Q��Zb�|���b�=QX�*�������

��:_��R�A�����Jz�.�M�6��Ci�C����(�Z����g)�`�QfeF2�������d���U������#�M?Rj_�w�y��#�����!��Bx&�����n!�<�"��b��6�+W9���
=�bG�
]n��}F����N#�B�Z�����-����:yK��#'��_k��u�_���6v.d�^9��N����h��}���h�[��o��,E�AUU���9������t�|(�6�Vm�Y�b��&�p:8FBBQ!��<���-d��"��c���.�f�4�h`q��Y�G�7�zwwM!�n�)AnUyj�O5������S��$=�J(��b+}�L����_�E|}Q��D�M��(����o
��A��f�p�q�REAuu/�x�B�-K������~���H-�B�PO�� �*��tn�����"�k�#���9��e6�BQ�yj�[���o�]����Y��=-�-��0�n�������Sva0]J�8�����L�����K���B��Cy	��[����b1�w���
tz<��H=����S�5���n
!��MjC�[�����<�3o�g_k|���x#U�M9A�iI�9J��V�V�u��1(�����Ai��L��C��]���v���q)��?=��-�����G�����B��Cy	��[���w>�r�.��+���0��n���]B!D
�-A���c�<�x��`N#�&4��=�wJ�{+�>�����=�M�g�{k�e�����4'�0�v|7*����u��J�6(M���Y
�'�X���$�������O	E!�,�!!
!D�$9�g�Z����M=~�Qz#����
��<�,��0�-���+�NjHBB			5�
!�ydl��d���yj��J?��D�t�t	{�����N���c���](�����m}6��:���r�X���Fza��-��d�8��b��8;lWX��}a����2/������%=���X���bL@��P:8��(b#�����ud���@�?��L���Cy	��[����TU�|�M����-_����"9����b��q�Gtn����Y�)�"�S$cS�S��������u"�>_~���7���p����1�����9M��Y�E3�c�Sh�_|�D�i�M|���mP��D1�mb�Y9�}�J��8�y�����O��>�Pr!�S�)�q��J���7Y�y��3�slJ�Yd�!�%e{�����Q������	>��9s��t�e��)��R�mP�]��k�{���>-w��������~��Zz��G� Lvvl�������6�m����s��v�$M2��L���U�8N�h�QZ��i�;���R�9u��3�ZS�M�Ai��H;gL�E��E�j�ku��4b ��t%B,*�Q���Y1�Z���lO9Pj_d��g�t=bb��l�fTo=kQ>y��3����d�py��~�'�tYo�.���g�/�<�ZXz#"+�c3?B���T7�B!�UWJ�T'������l�=��~�b��,rs*7�9�lZ�L;��\q�V������6��9����mYX_�m���6� ��2ov�����%�L'.�x����Q���c��$����7���<0!���$��,@���_����y�
�Y�����q�"H
+,�a���5���E����B!��HV�J����E
7��EvfUj0��x�0��Y��8E%��3����`�\|C�K-z��o�P����f+1[:���t�B���W�<��Q���;BQI�Cy	��[�����}��.���	����/�������Osw��B!�%d�����WH��"=�Z�sxy)t�������� ���v�>���P'UK?�&�������J��(^^�j��*����at�B�3�r(��B���H�_1�0��Z�E!�+��<���-d��/��I�:���<��5��1-�Yz#$���o]�^�!�B���nW9���\�����H=[���:�B��~t����\n<����������}�^8W���e_�U�R3����(M�Oc�Y����Xp��,C��!�A���>�l;
�R�s!����P�Eh�2���n��4���;���ut�����zwv��,cP��5�K!�BQSTU���6��r���O��t��u��[�@��	�k�@���@zW"�]{��q��&/��V���]k4���j�[���9�j��"�"�y��#t
��tBQ]$��,@���_X�,�2�1�mSn������G�\�w<����HHH !!���!�8��M!<������*G����7����dS���(���/����w ]{�G��Q�$����}w�li��!�U�Nu9"���o[8[����v�P|}�������*X�,{���:�F�po�
��v/F�������)�gr�����H-�B~�`��0�}!?����f���nt�U�Ep��/��2�P/EYE��)���)����yi�H69gH��{��T�-���'�9K:,����j2��;X8cz/�=�����yEA��E��5h6��a�YX��#����<k�{�4����T�����7��:�Bx&w�M��<���; ��T�
��).�s������3���gK������S�]B�A���K������[�}�c��&6��v��8�/��3��=����K�����3���'���h:���Q32gJ���+���tFf�;���������V��
t$8�Q�_�.��.���O��_����_���,���U���I���I�f�%3��[�;Ou����byh���{���AO?���^�������5!�BQ���1���lg�����^��I3oG���P�Q�O����
'Oc/�-��.,��xLU+@H0�����y4?��L]���J���i�L�0����������B�zLr(�"�p�u�}�?�.�
�?F�:.����~�-���/1�HM;!�BQ��S-l��x�t��\���G�&^.3�c�|.XC�ZQ�9��%m��XQ=�D�/���z�[~�@��:��_$/^� �����BQI�Cy	��[����T�
S�a��8�eyy���0N����{�B�_��&�(�B!���+[�e����l^����9U^s0����������J�j^j�L�V�z�FQ|����-3��������&=X�k��W��BQI�Y$�n!���<�
�Ys]�M�'=��<_�����/��kB!�B��mc��l����6�`�T�o��=�z8gI�h��FS~ ��	wy��������+�VR�7�\����}���x�Do�3/����n��+�d�B��<���-d��M����:�w�}�*.�1�|�36�����K"|Cj��B!�B�����mC�~�d��Yl�+��j�����+��}���'����������9T����c�t��CvN����P������/���4�fQ�\sU��,����P�Eh�2���j���Z��;�ez����@�s�+]�����������j�B�����s���[Lvvl�q.j�m}6��*�# HK���gH7���R|�����jA�U�8��o~���
����_t���N���1����x�C4	��R_�:�Bx&w�M��<���-d��=����g���	����Jo��N�n�5�UY,�PE��H���K�g�f6���%��dG&���&7�j��/y\�>���!�#NM,�X5'����}���_�l���������?u
fR�{��a<^Z}��XW���3�slJ�Y�	���p��s5����n��J�2n��_��S7x;Ko��>�q�+�j�������[�]B�A���K�g���*4l�M�^���%��3��?<��-
xykH9c��d�=�h�.�}F���L,f;��zc����xy��o��������Us((@M:��'��mN�g��������
}���D4����L����]cSr(�"3��[�;Ou�j�`�b0�����2�}�<!������t���=n��.
!�BqI�l*�v�9gHo^�MF��Rmu:�>�>.�#�K��%��R�}��cf��
���E�Z���	�'�O��7��W��������H-�B~�ay�y�	��l�m|4_^�s>n�m����B�h��=!�B!��nW9��������E�YK����5�������NW~�:��)l�Wb��+���Vxn������o���P�*��B�f�Cy	��[�����wa�6���;V6�����g�M��[>�epLMtQ!�B���*����@G��7;hSa��H=Co
e��0.���uT�G��}���?G�k_���C;�Z�7�B3�/��WUnG!j��<���-d��~����� ��{������|��T���
>��>�L��.
!�B�1�5���������|�a
���W�6��#��1b\M[^x��}���z�'�s2����^7�F�����U�D!j��<���-d��~�'����.�n���=�gf4�� ����i�E�B!���J��9TUe���|�a
�|���S��h������vs(�Q��\��,|��bN��&�7g�j����ho����hztC�H	=!D� 9�g�g!D��[w`]��e��Mc\�g��e�
s%|��de`!<��M!<��Oq>K�B�5�����k�)�F��)�_�������/m���p��_�p��\���D����6(�/�=KvV��Z=��<����1��;���(^�:�S87g�a[�?���c����s�o�^��Bx&�����n!�<�^������=����|�87�t���S[�����.�j�(��O!<��M!<��OQ�8e���C���k*���w���0�5��c6_�w��G���F���#^^����vbS~�iG������2��<Bs��]��E{�h������W{�Bx&w�M��<���B\�u�s.�3���a.�s����W�����j4g������26��\2>Eu���0��P^��Owa��ft�Hy��
T��,�I#�sE��3���fa�-WGwa�M�t�)������Ci>��&G�Aw?2}�_�P=��u�K�.�MA�^X�~��C�}���Y�E_�a(s�%aaMwY�zM�;�/�-�B�y�����a�q
��gI,�����K|�OUX{���h��z(�B!�g�����:n��OR���s$n�x���M�>6����h�����h�i\�_������2`o>���G� IDATo�e�n>��kF+�;8fF���I�*���VV�m!D�$9�g�Z����G-(�������m)>F:&��_���;����!3k��B!�Bx���K:����S����'�*<�U{_F�c��06����uL��9g�p9��dg�3�	���#(fs�������o���n��I-�("9�g�Ud��y���0`�����z�F#��wg���������l6�p�B:v����?F��=z�l��J]���f���DDD���C\\��M�����=}�4S�N%.."##1b���k�mUU��7���+��h4@�N�x����X*^�Y�N�'�u	���>�+������&�B!��Y�p�8e���|%��)X�p�J�o�����5a����t];��Iph�������G��+fc����7��#�;;n���]&���r���ay'���}Q<;���fp?�������MXx��F�ap�e����U���B�2�
���>|8�������(������DALL���+M�6ui���E�~���m~~~X�VL&�;���
c��h�y��7o�g�@�����Off&��������k����;w��_�~���9������fCQ�����Y��lk�X5j�V�����VK^���_]�v��_������E������~�^�����cZs��|��~�
_���	!�B!���?f��G�X�U:�^`P�W�s���������M/����a9��&=X�v"�Wo���W������A�t:4��:fF��%0�����"3��E$��,2�
�z�)~��74
, ##���t�������1�$''s�]w�j;q�D�m�Fhh(�~�-��������;�������~[n1�������g�(
?�����w��c���;w��#Gb.�cR����1���4:u�����IOO'--��zUUy��GY�zu��~���Y�j��w�}���<rrr���o		a���L�4���a�GQ���L������!��&���75&��B!�5H���oX0�>j���]x����b,w��������<p�A��8K�/`n�4��(u�G��z�./@��|��D�h�+���!���?c��>
"�`��vl�W��U\���8�y�������:BQ=dt���p��1����2�f����L�0EQHKK#((�������;�(
+W�d��a.�^~�e�M���` ))��p�wm;v����;=z4_|����'N��Mrrrx�������]�/Z��|������G�
\�_w�u|��Wt���-[���;}�4������2����_3j�(Ea����o���;y���0O���]�]wc<��d;	��;�����
��IHH !!���!�8��M!<��O��R�����T��0���_&�HHc��cS��X����6bQ�\�{�Ql�����
��wU�!?_�#�A{�h4���x{W��*�h��j.�+~2Z���N��<��U�����l��W^a���������:�(
��w��3f���^�u��$&&�jWPP@TTYYY���k.3����C���Q������{�R�'M���e����;6�~|�k��l���I�&��k��j�a�z����($&&��U+��W_}�)S�`49}�4^^^���n��0k�,,XP�������v=��G��~��q{����r��C�cT����=q	)�"�S$cS�%�S�I����G)��0�#
.x���)�n���F��?������!D9���������}�e�5d�dB;z(��G���*]�u���(��US�S�$������Sr(�"%8����sQ��m�����H���E5�
Tf;z��
PjQ���AAAe���`������:�ggg;�Tt�����
QU��k��������=Uf1C����\,wLu	����qo��qC����*���f���s���ElsS�h��}�jK{�����(}��z�j@���	}���d����������x��w1��kZ5G���x����k�=2�iL������G��HAt{������T���WW�c��\B��#�����U0q�D�~�m�}�Y���B�f3�~�)��OG������;�����}��]$�m������e{���6m�T����J�KQ�r��(�s�sy��L�K^W�N�G�B=�����k�X�<xcp�V��M>B,�g��)����)jEQh��������;���6\{8����7w%���	X�����<k�nXB��������k.k�~��x����?��v4��\�R���6�>#(�������7m����+~�^qi�sg�%tL�6������p��h�h4b0;v,m������f��q�6YYY����(

6,��E3�O�:����qe���n��m+j_��b�����2�Z�.���a{�-�m�5��/��\�-��0������B!���i�
=Y�vs�:��%��d��`����Y��K���Z8���3���a��{����9����OQ4�:���S������h���a�w��)l��������w�����w����!D th4-Z���?�N�CQ���f�������.mJ��C����AnY�+�VUU����vY�E��f�`�s���3����7�e[��+�������B!���1h���P^��5Owf����'����Xc����oF��[��GW����Y���vk���F��w��.���.�~\�v�8
,ul�H2�gc��S�UX�|��C�s�B!�N�*8}�4=z������[na�����p��,X�������;x����mJ�[[T�*��_�my������oQ{Xf�EM:�|�*
w
hJn����o
���.!�BQ�C��<1����������lZ_���jX���sg��������s����4{y,�7l.���N�v`_��Z���D�V~�v���W:�.��=�5�YL����s?,�`O>V-�+��=$�������c����u�]���#>>��@\\�f����_`������g����r�]����%_�m�LeEQ\���9??�������t��j/<�m�l�������n��Z���^��!�B!D����7�fF���|���<����!�~4�����?]��I�#���^b�<��r�����+��h������sf/^��������]n��]XyS�N�z^���7PO�.�x!��A�JJLL���FQ�O�^�1��r!!!��v���[���EUUN�<Y����������+�������/N�8qI������/DQ�r������(��OHH����_���r�4����\|�������k�e����_�W�~�_�{�����������y��O�_�����e��~?��O��c��+1.
�v�V�_�-��x���\=��&>����'����n-����/�G���;������W��<_5�����zr��S'�x�8L�Gc}�=����\�Vs=��O��~�_��:�_�wlY_��(�T���/���o�EQ����������u���-[���{X�t���)S��x��2�
>�����1c���'�8�/]�������Hjjj����o����lg�������=�T[��NHHYYY,]��{����o��1|���>��+W���)S�������[76n�X�1������9��c{��cU�0���X{m�s�=��~L�����p'EQd|
��dl
��d|���l����|�� _z�Mv�-e�u8��Oo��lc�\kd��p�
�����pjj�/����
����J�9_5�<%��\��Iqi���Sr(�"3�+I��:NNN.���}�mW_}5�W�.�MAA�����w�W�633��������O?��{w�����������_�����(�^{��u�Let���������g���=]�g���wK�\O��3��� �(��M!<��OQ�yyi�?<�������^�	�f�.�gn���Y9=b9?�p��o<@��-�������V~8�����x+�?������G��k�}{����c�X�~��Y��JJJJ�Y�f<���<��������o9r$��9�]w��o�S�N�c���n��%L�:___���s�����c����z�/_�������n����^y�&O������L�>������OTT�������+V��K6m������3���b2�X�d	��w_����h��};�������;O�CM���}/8Y\+��_c.8���l��v�-�2�=�Z]MtS!�BQ��m�^�.��~�Rz�63��/G���3
��#�vs#�����R��=������D�+�dd��������U�0��D�t���oPQkH�Ydt%���2h� -Z�c�=��s��������;�p�����iSF��l��cG��������U���l���{��5�����
����8�h��5����Q�z���������K��4i111dgg3l�0���@vv63g�d��(���FI���L�:��3g��`�������0ac���`�,<����]�gU�pg�6.��
��#��B!�����z��s{��sF6�[j�-(��	�r��%X"��=e�/�bT�]j��%O'�P���i�����4q��7�{����J`Ryqy9�Fa�����BQCdt�>}����;C\p��(
����X�j:tpi���M�~���u+�����l5�W�X�FS�{���c���h4�����v�������o�m����;w��������� 999���F�a�����9���V��Q�F��������V�%??p�����_*\�P�y��o~�<��m�"�����l�u��]�:�]!�B!����uL[�G��(�a��K?�V
Ac�.���+�>.��7������5�����B7�!t3���+w>!D�%9�g���


x��7���/��g��������ys���)S

-���b���^���?���Ch�Z��m��	����*��/����E���i���DGG3l�0{�1��/�D���������8q����t������;k=�GUU�-[�;�����{��l�h���c�2m�4t��g����yjZ:�W���U�O���ijy
�����5a������~(�B!�U�o-��m��p�;���R��i��|~=��9�r���B��FF�c�������q^�Bt!��vx��M��U�!D�"9�g�Z����g��^l~�|l�h���5��a�s��������@^�	!�B!�����L��9~:������m1~z���Cd���#�9>�����~���Z3t ��V�>�F�n�=������[��Bx<��<��������%|x#d �����mr�	����������26��\2>����&|7�e>��~����M���������Li��<;�|��]�����V��w����KLO��x}�!�_���>�l�c}q)���`�em����B��Y�h���S�QSR)��g�9��oF����k|����O$��.�_/3�#EQd|
��dl
��d|
���X�xj�2����Vj�o4C�����s`w~��k���qa�?�8��j
yJ��o 5%����}�����	��??%�xq7&�� w>wJ�Yd�u�e�#.��]����\�g�e����3gNMwAQ�Bx.�B�{�z_��1��c>�W�N��'��`��\���77Eq���4h�U���'�xm�	F�*7���e�������P��[��w�4iT�����(h���T�
!�$������n!�<�����or]�ri�f=�t�3
nm9���uw��B!�����|x�{f�_����R��tfw������������jy*���gN��|�'�����/n�f�`��<l��e�}�=�W�Aiu�7'��1�Cy	��[����,	�>�\���M�:>^�B�-�	�	�T�B!�B��0e��_K���/���R��7cI�Y�����dg�|�a
�|������3[�����M�z���w)�m�&,���=P�QP ����y�K!D�!9�g�Z��|�:�gp����f������
~������kB!�BQ��g�r��g�|vO������g{L%�7��,+?~�������4�h�l���f,hB����T�	����>���Rm4W_����4oV
w&�p'��<���-d��WY�������^�+J�jz5�_S���B!�Bq��U;o%~�c_!��Uj��?Ov��{���VS8')�x����!X��y�~��yx~cZ��+���D���n�V����n�,t�&��t��!<��P�Eh�2��G�����������t��!y�9����3�s�����B!�BQ�s��<�a	o�������[���#t���'�S#y�q|�\]V�gF�����i���f���2,�@^^�6�;���"4��������P�ES�BT/�]�T
w��t	�^������)!!��� �(��M!<��O!.�pC0��=���oqYh�R�����U_L��5�H-�pn��<�����/����oJRU���������r������~������t��;0u��?�P
��F��'�������-��'��<>�����W�{r��TC������j�+���pRE��H���K���e�[Y�k9s6��lKn���>A�}�0�n����B���~��d����l[�]��}�4��PC�|��:TU���'Xz�3J��j�������zoR�:�����Cy�-D�8�q���
l������W������������Y��3gNMwAQ�Bx.�B��N���c�3�snn1�����L�������O���k�@>[��7�nE�xC��y�v�<y�~q���S�M*�����g�G�:^���>#0O���Uv�-�(M�;�/�-�B�y���nz���,���rb�Q�K,����h���.�1��D�t���^
!�B!D����&X�,�3��������#�2���F;��l*_��K��q"�Tf��M��:�1�o
G�U��\����p�t�c�F
�/}��A�scB�j!9�g�Z���K������U�x�3�'���=B!�B�K�l�������M��e��WF]����pc�@����&���_?��O'����v-�xh~���,,������2���<��y(�cB��&9�g�Z��|���{����w����
�=�n��6!Mk�{B!�BQm�:��k�l�w�Zaxl|�>�d�x���,{�$�9�2�]~�?3�iB�>A���������)}`h��B{��R�P�&9�g�Z��|�0
��Ok����
���<��^�rg
�L!�B!.-��.�>�_����}���7�Jf��k�O������e���{������k�sX_\
6[��4C���y41����!.��P�Eh�2�/=�j� �9���ivCF��,���>z��gB!�B�����GT���Qa�HC(c�dl�!4�o�����x����:|l(��jB��������}w���|����;P��s;B�� 9�g��t��C���%|>��`�Tx��	��%$$�t�e��)����)���w������[V�d�{i\~)�3��,��	=�����#��_Y�W(F�y�7�2��v��@��o����]���2�1���cO�_m�&Dm&������n!�<]z�_�����_u�����Q
��<��{&jEQd|
��dl
��d|
�y�f@�������X'oq�SU��)����|�����=W���F����j���]?�=�����i
�t]>^����;<�2}��}&�QBo��^CUA�"U��b;vl�AW�U�U�XP�X�MP� �D���kz�9�?�10f�9'����r�����y&r��9o�+��	yO

U��O*x��2BC/��%�?v���V@%�{�R��K���o�g[Q����x�K����|�e���w�0��BC�u���~�4�����j�_�B��}��Ck���4��'Ua��*=�������Hw���������O����oJ�b��(;[���PV\w���,��G��\���_p��h��S7�r���s� IDAT)��+FT��ja����
J��:�����dC%�_�}�
��d�fi��E�i�f�\�lw�9�S�J�o!-h����d����\�Z���^���9mV�7p8���
y�9Q�7�\�P�B~A���{�e5����d�����!3;\fxV���g��>���dM�6_�6������R98-Z��[)*1Na�/�!�s�v�0���:5��5���<s��k*d�������`�C�
h��/Z��|��������$B7<XQrKr\������R�g��r@�����3���-����r�L�Stb�BV��wj��7*|�rs'��t�-
y���7<pq�C�
h��/Z+zwS�9�=�����;=K�{�����n�?J�(����<�E�6������;��y��UCQ�q�\�F�'O��������w�o�	�*(t�r����wg��>�����_��c��2/k!�����d%�Q����YaA����+��in�����4~�L��u��g%�g���M���V�I-�)�S�]��>�n�p�B?|SF��>����e/�pi�����!�V^�������s:�V���	����=}_����p�s��������Y�t����N�����0��p�����v����g��o���^������=e�2wR�����v�g����Q�Gq��l��%�f���X
���S���z�r�z����za�nxe�s�Sz���V���0�	����|�sz���
������9�����~�����`O�L���
��H�^�\�,8����W�;7�9W_��O���n�F�]��s�<���I�^��.��q����zI�pIR��(�T||��%��l�E>��������x^�����c�\���:{�]������Q�u��������F��/����y��o����7�<����]���.�����q����!�s.QV�.
v>��'�L��?;+���y*:��K[�y^�}��66�L������V��?�]�6������=�������65����tRQ9y�a�n������e��,�����
��>���h�3��j>�8��Za�U��g�P����j����o?��A_���7�\X�<���>�����TE���9n�\���=����232�Q:*�@1�Z���u�e�Js�'��[0C������Gh���5�������
1�7/�U.X����o/�c�i��\���he��Z�_�c�p�x�P�����^R7\�u������?F-�W�����>"bd�}�o7���:���`]W�J]W�J���k������)����0%�������(Bo�pL7�L��on�����q�P��3^F�R}(8�
���;E�d������7
���W�������*���s�~=3v��,PV����>����w�T��+���b����{�=�<��g@���C����)��	�l��y�6��:a�yYG�Bq�t:�.�d�/�	�Wq�g�:U4��G������e�R���*�P�h�v/V��WF��S�p������vj�wg�{��;(��D�`4��;O��5m��������j!��|U�����w��@^�a�O���&`_������?W���vj���Jk�\imV�����`�Q�=����c�=7��v���!
���:�U>�L���
h\(f�>���h��J���+�K��+"(\�*7��&_���V���	����$��Y�h}=��~����z����4H�lR��K���������g��Mw��o�j^�\
�u����z���!�{�_�.�	���r�o*���<�S�r<��
^��_~F!�g/��(9JB6qqX
���S��_���l]�y=�����C�����*@a2MSs&��/�����r�d���s���	jq$9�����^�WFc����0���_�[�_�n��*�Q8k3�
���By_�0������_���4���� ��Fu_��g�<��-�XX�(������!��G�f+H.���q}�pw��r$�
�C+�
UB=c�"���z=uk�������6/�
;�e/4���pe��E��7x^o��V����-�S��:V(J�.}��A}���<��e�'�>T;��<�fIo�,��,���fs�������5����[���AvF�^h@�/~��y�+�����������k��w���;���!�D�>{{����~e���z����R1Fz�s�W��+����|�W��M4�����nU�,W������������_�6��V5v��ax�m�r����+��@r�@�>xu�&|zHes��%�Q7ci�����I�������>�+�R��5�^o
�}��C"��.
h�}({��_�efg����^cK���G��U����tZ]�&`_���@�g����am���R�4�p=�'�:j��:�aJ-L��S�
�>��e�4{�o�c����eO�6�EM��X9����.T�eg�~����sp���a����2Aj�j5��k�*F�ZX�3�0�'`Cd�/�	�W��s]R��~a�V���g4V���>�����F�ZN3R���=�����u{��z���rs��
h\0f�>���(fv~�����:ajU�!�g\��x�����|���l�2Jcg4�'�kR�u�9J{��y��?�w}�`��=���?�f�u�}�#�'�����y�=j��@�����X)�(?J�@�f c4��;O�'�R?5=|�y^�o�U�����*�����y?��m����m�� �����M�����js�L��4S6������}����t��4
�=M�S�>�/����4������l����������U������z;+���e���������wT�����4#R�oZ�>{H�`C��'i����~�<��J9��Ge�uo���d��T-:�jk���C�
h��/KG/Q���<��h�C����C�.Pxp����.+��	�Qr��54}�B�����l����R�a�e��\����7��<S�v,R��������
������~��E�Q�s�e/4���p�x����;��S�G�������-�
P��$�j��K�`�H�p��s<����w���O��5�<�'�R5y���y���]������
��M#Z��V���C�^h@�/��3MSs��W�������U��/����YX�8:r K	�����~�(e�9���\?]��n���6��:��le�k��������oH��FG�h}�:Wm��
E�>��8�.@�l\����z�-��5:XTJ��iu	| ��}�O���g����~G({�m��1��F�v=�d���|B���:F�������r���h���Y��������	�6e���t����Un3�&�d3p�~���K��'k�{�<�S�������=����d�a�O���&`_��/�yqL���|�p�S�9'��eV��A����������R��xH�~��u��\��V���u��������Mu{(����i�<��&}({a4PL�����������Zh>�P���[]�&`_��/�yq�P��oS�=Ku�{�<�/3�3�����H���H��S��9��-�zk�M�4����T�����9�UC��T�q�������Ud�	�B6+���y�4���hn����x�F�-��o�����ZX�$��6G�w?��#�;d���z@+�X��
�U4w�9o��U���/5k�o�^�RD9
oq�hz�J�F�g@��e/4��������jzGgU3�x�z=^I���U�,w��\39E���*�'_�<>����5L'�������r����*V	�:/��F���+��u~���.�������������YX�C�
h���4/��U�O�y�,]�EW%��?�������	i��<�N������������V��cP�z����#<�n9�[�Z�}�a���9>��{��-oW��*E��P��������rsM�X�M93���-���_?�vnae�@aff*���(���e���<g�YG3�Y3u���$�^�ux��,.J�ah_�a�;�[}�v��r3|�W�#H����gZ�������s�d�e/4����-�5Y��<������7{����S��-�h��Q�}O�\���9��j��������*%I�\-T=�U���j���R\)�������t4�d��7���5���jW�i��L����au�m���j������1��JK�*BI�t:�.�d�/�	��,Z�M���s�c�jk����Hu�>���V����d}��A
��^�*.�k�R�]���AS��O�zT%��7e�Bu�x�zLyP�v�NS��"������<]��,�W�o��v��������XXJ�0�'`Cd�/�	����G�����}O7��@�5C]�D-��IRX��+{��5bt��2}��m:�+�����X#Z������`meq��l����`�����3Uf�J�83�T#TW5����P"���[]�&`_��/�i�������G���$3q��s"�,]�_u�~�	3Fst�f��Vd6����5�q9���*���QK�M���My�g��u�q��jX���i}����V!A����l.V@�/��tq���~e>��n�t������ws��\]+����5z���[C���5���y27l>�������4C��^�uz�)S����s�%tM�����'[��{
TdHx�jD�F�^h@�/������zh�5�>�C��Gj����z����_��>���4e��F�q���0I��}�}�mf5�P�Pg�RU�xV���8_��������e�h�[�P��T6��|�4����4���_��4���.���[�3�����S~����� 
���n�����5~�\�O��?�5��u5]]4KW���I����Sr�yJ�[!�}�����&��x���JT�~"�$����4���_�y?�7��c�gl}��_����������6��ffg�=w�\&���)-����MC�j������dE+7�����Wj��2Cs|�
�
���VCU�t�����>�����_���������;�3�����qV�*Gr`�Ki@��LK�k���O�{��R��f�i9f�~U�Tg-T;��d)���J��HfD��9���������T���.�N/����au�2MS��P�0���w��E�E��tZ]�&`_��/�Y�QQ
�e����W���*d�;r\}����G!F����m�-���z3�s����j������O���<s��[6�V��nU���k���"�T��l.V@�/��ta�%���V�J�Y��3����������V���0�	����|�E>���V@����_���Q��e�������1��+5-��w8�=~����|���J+�h}�z_����@��g6�C�+�Z0���j�W�y{�`�k����P����[]�&`_��/�Y2��(���8Oa�*8�Y���{~Y#E�3�_�H%,�Z�r����T���>�_���M�F_��o�����*����G6+���y�07t�Sq����g��<�C�n�u�"��-��F-�W�V��G����v�
��4e�\-������di�������R����M����=�tF%���-z��`�/Y�e�����4������9j_i�>*���:��3��#qzf�L+���~���.�����5n�\�J�O�wNR�e��m���'U�J�<'�Di���G��_�~��B���.~@�^h@�/~�M��a=�-	�QQ�g~�����}���2N��}63;[���?Q�)����s�����U�k��nMm���y�P�H�T�/��)������cuy����(d����4�����7o���k�Fx��
R��_��B+�;5��f�����l��O�{�)7���g9��4\�����&��nFY��^�I��wU��U�cP�z�U�6Ql^hc����4���LN�[m+,W��O�������m�����0�7`=�6��f9*��i����&����0�����wqQZ� \�����A�Z�V��vW��J�\=T=�jF���������{��=jO��,���;kz�}({�����%)J9�R���^��m��|F�r:�V���	����|�4�|9�CaR��$�3^F����_*��!����G����=z��cj�-S2M)���NK�o�k:|��il�7�������r=5t�fO:��4W����x�1���!�/�k��X
���S����}��^�q��f��5���_Q�ZXJ:�0�'`Cd�/�	������:?����?I��en�q��w��m��}�(��vfS��u
UzNO�m�+C��a����YF=��k���-Rhu�����l����`�p���'ty�F������vlaU���V���	����|�|�����s
5B��$���(��&K�<��Q�������$km�}��Djg�
�l�A��j�����X�DY�������t\����R������^+����^�f�b4��;O��k[����J�W�D����_���z�Xoaex+��q��t��^������S��������a�..R�ZG�HL�B�UQ������wP�����<7�a������}��}({�
� ��������c;����h��]��Yv���gae�@��|S���U���_~F!�g����cfe�=s�\&���l)3����:�����}\����TzZy���MQK;���sN���<��6W�((���h�G�^h@�/~^�v�5���R7�J��Gp\_�am����l�33%U�g�5a��sJ�so2�,�l��Din�

[�U1���#3"�9�����Y��+��VxD���
�A�^x4`#Uc����3���PC[�\eaE.#&Z������o�y��\��$���r/Y����\i��t
Z����G�S���t����C��*(�T�9�������������r�s�S�^s]Y�.K��+���y:���2��A�z��Poo����yEuHZkae���;w�5a�\�'�\}����q��6��P�*��{�����;'8�P��Omb�}@Y�����qV@��>��8�.����IR���Vf��V���t:�.�d�/�	���?8j�P�����Pa.R�O���f��WJqk��������}�F��oVLi������\SK���������J�b��O�������W%���v+��;��[�*44T
4Pxx��%�p�)�@���g�l�l�E>�"���i�2_��������29������h�~Z��^������]��������^��K-�o��M�P�������h��u2C�5RHHH�s:�x@S�L��EDD��{���o���P������}J���g��V9��M/�������UC��~Qad\i���J��x�tvD6�"��}�OX�0��!N!�zE���5�{�L�I���>���q\5w�G���-��2o�E��:i�S[�g�{���������	����z��9����.��rm���s����t�m�V����9�����?�P�e�q�))��jU&QW�|O%���oi\I�����2p���LeO������V*,���w�CA=���k�kFF[����UKS����}f>Y�ek����/��^�p�$��;���|��w�}��|��������Q7�t�$i����;w�?J�n��T�����5����E��b��+���?k�bn��>�������"�$9\n��~V��k�?�i\���l���]��
V���w�~��et�.]�h�"%&&�M��M���kk������/^�u��o���5t�P}��WE]*�w�����{��Q���J����l�������7�bae�(���_W���1�R�y��~{V����a2�V���+,��C��_�u����������� ��=�n��z���0M�2E}���:�|�r�k�N
6��u���T������W����|�sr����mH�7f�3 IDAT�[���@�Zvp��N_e���������oD��T�nx��V�8�g�����nXQ�Zl����4��������9�������oWXX��;�����999
SLL�N�<Y������F-�W�&I��6C�>>�9��j�:�P��|~�Pr�;�Mo��ZI~���d��"M5��|�����CFT��,&�C��_��r������Xbb�$�q��y�����e�*##��?��(��0m��W�|�}u��t���-�������t:�.�d�/�	��Dq�8����6J?����/
S��k����4�s�G{��&����cZT��!���/+�k����;wj����_������8�\�R<��>���<sM�TXX����t����.E�;O�}?��F��Ecj����<������V�@c�l�l�E>�"�()��������������7f���i��G��5V_�Y���H��,0f�>���et�d��F��5�f��\�R���[7�s�l����\��Y����)������Dk�^�gI���K�
^_9�7-�� >>���@6�"��}�O�#c��k��iz��G�g�P
Z^����r�U�Y"���/+�����=z�0=�����������W_}U;w�T�
�s�N��������������C��W_u��m�6�����5k�v����� U�ZU�:u�w����;������w�}W�����-[��������}��w�k��7O����~��w%''�Z�j����^x�U�X��s8�7�xC��M���{U�ti�o�^�?���v�z���i���>��_~������r�^�z2d����������'�z7M���7����
W���<�3�ca�m�(}~U���>��)�.���C��_��t���j��SM��.����/t�]w����S'-]�Tc����w���R�k���z��G���)�0%��������{��W�~������du�����;**J�������$���W�'OVPP��k���k9r�$)((H����M+T����YM�4�9w��������;&�0T�T)�����r�0����1b���9998p�f��)I
SPP����%Im����?����<�����r2W��&jp��������DqsZW��GI�)���>li=vF�^��I3f�^{�5U�\��/�f��;vl���_~�EK�.UPP������R�i��	���{����G}T[�nUrr�RSS��~}��7���S�y��w�V�\�r��i��iJIIQZZ����+���k��i��*��34r�H����~Z'N������f��l�R�������gnFF�����c���u��Z�f��?�c�������i�z���5w�\��~���4s�LEDD����Vzz�RSS5u�T���*11Q���9��H�=U�)�������5��l��?��|�|PS1�T�������Q��X]2���V@�f���9"����s���QVV��"#����C���aC�8qBo��F����j��Uj������)S�4�G���\��cG��K��-�z�j
4H'N�:�w�^5j�H���=z�y��������|�I���h��
�R�������^?���Z�n����{;p��j�����l����O?i���2CIIIj��Y���<���s����&�:DR�������l��71@�x��[�G�)����W�pg�"����e/~[}�a�P��y������h[4��S��>q��6lX���$�7N���A�+����~�*UJ�4i����k�j���2C�>�l����U����*I���o�?=6d��<�gIz��g$�j�o�����������2e������3����_��L��|F���U�������2q�,�
��pg
m5;z������>���H��������5}�tM�0A�f����G�]�E;��:t��[�`�$�g��>����{6-����}�=�i�/�z��$%&&*--�3����+Vx��W:tP�R�d�f������BCC}�?���:��v�J�=U-����4�*#8�����N��%��l�E>�"��=���������5h� U�VM�����!C��OU�TI��v�����U�E9z���l�"�0t��W���V�^�T�lYEFF�q��z����4�M���
$)�M%�q�������{��[�N���Q���=�Zg��a�^�05h����.H�g_��e}�RN�����k<�Ck�*B�5j��%��l�E>�"��=�����tFF����M�2E���W�n����k��Vn�;���������ij��Y�������+�4�p8�a�����T��-������JOO�a�Z�j��������?�� s�S�m�����?}�R���������*!E��V�#���+v��J(j�m�
�Zd�/�	����l.�4����u���0�}���;w���]��3g�����$%$$h��	�(���8q���o����5k�e�����JII��3T�bE���W�����$��lDDD���9����^���d�i�^��ym_���U	)���Q��x�r�e����*2~
�'�	����|�D6�_��7�{�������[�nj���z���~�Aw�}�$i����(����:;88X�'OV\\��S��������+���,N��W{����B�����+��>/�n����T5���klg�X9bb,�(|~i@�]�V�a��'��y��'�����v������N�k��sN�>}T�~}I��y���KOO���O;���_�k�����ax�?��322.��QQQ���|�v�x����Pkc��xJ\c�*��_�'N�P��e��x��u%I'O��G9�Z�j�>�i�/��{���$�*UJ���2MS����w��cg?�Y:���������k��wo�^;::���>�0������eF����t:K�����(Ij�������[��q�s���8�9�q�s���8��{��f�"�#���_�O��|}�^����p�C�+W>g#� �X��v+::Z���z��������<����6m����:M�:U���];-_�\�>���{�=������������n�z�G}�GyDe�����G}�h�������p8����yfsjj�J�*�9g��A>?Wll������G���������?�_�~�
$���G��~�v��i���>������l��/����%)1����:�s�"j���.`9�7���[>?��g�|�+*>�C��_V@��C�\s��s?*d������5�4O��;w��9���Z�h�$�[�n^�N�=y��}��3g�$�}��^FGG�m�����������d����/^���,��O��_�"�R���b����J�4�a���,����|�E>QR�8�U��p����|&���o+�������O�<n��F����(=��3����/�\T%��	4d�k����S��������_�~2CS�NU�>}$IIIIj���$i�������������>|�"##�c��/_��x�V���h������������O
6Tjj�>��=��C^��{�==��������U�re����l��l�2�cT�Z�������_?�����S�j��r8JJJR��M���q����T���p�H=�n�g|U�f�4�g+C�3#��	����|�E>{�g6�C����a\�����G���v����8�0�Y�ffbb�i���r���3g��*U2
�0;t��g��7�l�a�/_��1c�i�����k~���fDD�i���K/����3<��g�}�LII1M�4��]k�n��4��[������gnFF�Y�V-�0�M�6��u�L�4���d��g��|o������#F�0
�0###�o���t�\�i������r����a���v�y�w�L?�q��
�S�����R���n��|-��sV��ou	| ��}�O���'`O��&}({��
�Z�j]�{�����_z1�h��������m�&��c.\.�222$I
6���s�6����u��U+V��$EDD��r);;[��g@O�<Y�������k9r��S+�������"I�P��,X������z�ju��MG��$���(55U�i��p���_�����5���\
8P3f��$���*((��y��k�����wB�<�2���z��uZz��d�=���SU�M+(�C��_�%MZZ��~�mM�4I��m�a�_��n��=��c����9/''G����5~�xm��UAAAj������.�{������������j��eJIIQ�j���o_����P��9�<xPo����O���{��T�Rj����x�	����c��>��3}��WZ�~�\.�����[o�U�?������[;�?����(q�D����g�dT�*��+#��(8�P�B~A�O��`����76,���n_S��[W@	B�^�����k��
7���K�u�h��o�T��M^�9[YTP�����B��/��r����`[IKSe�T�#���+v�eQE@�������LHQ��T�D�g,+�P���ZXp�����>�M���'`_��'����h�����+k��}E})����n��Va����L��mhXN��m��*��0:��]�M���'`_��'f�>��������e�j�X�5����E�����.�d�/�	����l.V@�/����?����j}[��8��_��H���1+(Y�e7~��P�N�8�������c����T
�_+KQX�5=��5^���U=����T�a��rB5�B��yzj�f�Z�����K���jQj�{�uE�@�������		Q��/z��?8@q�*!U��������F������������u9�6����-�js����+/��P\��1�S��92���	��Z�XT������>�M���'`_��'�������+k��}E})�T ?{��vi���5��������U���By>:P��|vG6�"��}�O�����@�C��/���LHQ��D�����|�����[]�&`_��/�	��\���_����\S-K/��J����3����o}fae%S�����oK0��@�au���s���!����{[T�?��������e�Y����e6���\�XZ���]�XX�<�(B�R���o^c[��Shx�E�C(B�R����k,�mc����4PD����mYj���k<����������>�M���'`_��'����������)�������}�g�eH��W)�bu+�2#��	d�/�	�������>���("�R���"��-�E�|�-���[]�&`_��/�	��\���_���[:�Q��'���$��������VP�b��X
����\��6;�����`MA�h@E`��re�����^�5{���"��h@E`UB���]a�3���'6Du����*��h@E`UB���$z��hV��" ������T����5����E���t:�.�d�/�	����l.�d;H�A �>z�@�:VI����*������������2 �aD>���l�E>�"��=�3����*X
��	)�������P��z[Xpn���V���	����|�D6+���t���gv��w����S=c�ZVP���,�
 0R�8`4P�V%�����lNn���j���
Qv�[.OU���^�1]:[T`�@!Z���h��>���qH
z��*�4��B�2!U��/��P+ZU*���"�:4��B�*!E�B�����mQ5@�9�N�K����|�E>{"���0�~(��^Us���y�Z>�[��a�3��V��a%>�@qD6�"��}�O�����@�C�V��f����jt�k�f�~U\||��%��l�E>�"��=����
h�E �y���Q}y�����;��mC�p�.9�,� pB�8��@!Y������^c;�V����E($+R�:w��Xv�VUX�g@� +�������q�k�b�^UX��@!X�*M5���T��3v$���i@ p��
���5/�������mQE��q:�V���	����|�D6�a�$����>���uE�P
���36�������V�a%6�@qF6�"��}�O��������*nX
�U	�j���k,����\���x�K����|�E>{"�������|�i��,�Xk����<c!���,S�
��+ ��>Tq�
h��JHQ��%^ck.�R��5-����%Z����aI^cZ���m
h��JHQ��^c�Wt���F��.(��2���������/������`4p	��LS���r��L�uUC��n[��.�����>�M���'`_��'���� �%u��������~X��_������J��*���Q��	�d�/�	������,�}�����%X���6�����;��������[]�&`_��/�	��\���_��;O�i�s�����@E��=�K~�X������WI�Cg��.��]��=������t�Z�u��*�>h@ieB���Y�5��a��E���"�^h@iUB�Z;�z�%�5���~h@i�o��K��5}u����4p23\JI��
����PC�:���*��9�N�K����|�E>{"���0�~P�vM\���p�'���-j�k�y>+P��Qb�	�$d�/�	������,i}�����EX����aI^c[����b+>>���@6�"��}�O���f�b4����yz`�=��Z�KN��M��>
y�u�@I�Cw��.�i���d�W�9�!��v��U�C�@{vd�Z��^cVS��m,��'��Z����1�^c��TQDp�E�D�@+KQ��M^cY[ZT
`_4������j~���X��=-�(N����@6�"��}�O���f�2L������G��\�+�S}���gl{�`�����D���2���Q��	�Dd�/�	������,)}������sy��F/�[��,�g{���V���	����|�D6+��%���'������nGwz��}���}w��U�����*)X
\���N�M�^�����XT
`o4��2MSG�Q��\����w�eaU�}��
h��,]��������jR��E�F(�����Ex���������"��h@�*!Eq;����hoM1@!s:�V���	����|�D6�a�$��$�>:��|�Yw��uV��b�$u�w��U��0�b�O��"��}�O���'`O��fI�C�$��
 -������N��v5[[TP�����.�d�/�	����l.V@�/�����'�t����X�gl\���g�r��_�>TI�
h�V%���k��Xv�VU4��X����$�����E��
h�<L�TN��
:��66V
V�FWXWP���c��L�������Q��*U4���X������^c'�6�<�(	�N��%��l�E>�"��=���e�l	?(��������YQ�.���)/��~�-�
(\�a�|%���|�E>{�g6�s�$b4p�&y5��8��mW+
_||��%��l�E>�"��=����
h�Eq������?�<���{��������
	
��2�R\�P%+��s�cY�Z���5��e-��@���a��d����5te�����9��y�*gfx^���uUO+��@>�nS��o��� IDAT%^c�k��C�VU/4��|l����2��M�+�\x�*������>�M���'`_��'���� ��q���<�:��T���������'G|aaU@�0�X�d�/�	������,�}����� 55U5j���������������t���IdOD""4�S�/�{U��*��������&��-��ZZK+r)�� ���E���
!b����r~�7�9f&��9'������#��9�s�3�;�=��|��1z���O1�|x{{���������V�\Y�{���~~~�^�:lll������'�����MLLD@@���`cc�5j`�����cEQ��+��cG8;;����Z������S����K�����P�{/#"zy���`n���H���D�����8�L�<?������#��KIIA�=���Gnn.������

��������;�f�XXX������WWW���M�658666=z��V�� prrBZZ��� ���+|�������������kkkXXX ##��m[��������V�����u�a���9��W�s�14�RW�����������H��e�8��bbb�d�t����s�{�=����j����cRSS������`���`��F���kf��A��'����'HJJ���������7����O��fffb���j�h��.\����$h�Z|���E��OGDD��{��9��������5k������4������QQQ7n���p�Djr.�i�������
EDDDDDDDDDT��]
���7n4
�-[V��g�����!V�^�7�x��h0b�|��7������z�?��s���?���/�6n��	����������+V���|�r��}���C���������o����>}�����D,Z�0o�<��_���=���?~��W����q���b^�����4��\�Kn�Hz
����������x,@������>����E���o�6l___����NNN�����-[d}/^Dll,A��i������c����u������
6nnnz�S�NPP$�z���o���x��)���������0`4hQ��hN�~�������w��P4DDDDDDDDD��������5kj���/�����8�����~t���6���\�2��oop|��}QQQHOO�����"::Zv��:t�'''��h��]�v��������T���mD4l���v|����\@DDDDDDDDD���i���HKK�����X���(���+`t�@�`9
�|�����K�@Z:�����U�Z� �� h��a��.I���k��EX_9";v��m��>�wAAAJ�@D07����I�^�O"ubnV\,@?���0l����w��a��=?%%�j�2z�ny�{��K>��%���������^��iii������+�h�3�c	�y���F���^���g+��$R/�'�z1?����Yq�]B����0a����t�������5z�����B���%+��l�)�mh|yv�X
Zg���t1�
��T:"2��I�^�O"�b~�s��b��������c��)h��Q����(}-�s�S7�����
��E�&������py�-��mxu��`DD/?
E�N�M"�b~���H����%p��Y,Z�u���_|Q�q��F���>�p������� ���:33���moo_��
�/��O��O��FG��
ECDDDDDDDDT~�]������s������4i���KOdee!==]*�:99����("!!���u}��s�^�$c����.}}����zo�`]A�>||| ��w����L��a������p��f������g?���~�����g?���~����~]����E�j�3V�n]��}���{zz����5���k���Oc���X�h�������s�N<6l��/[�&L���3?~l0�6o��w�y�������iiiprr��y�����������)))X�l��/�
<�6m����m�f0��'b���h��N�8Q�k��]�?n�v'�������,�n�fN�U�������������K����0�n��wU�=��{w@DD��kgee������={��tc���ep���{����m�����m�y��'O"%%� ���#G���mh�t�g��gW"n���9�f7�y~DDDDDDDDD��t	��yyyyF:�������_�%:t(���+��s���W�\��������Rn��1Z�hQ������MHH��������6l`��uHLL��_�`�u���_���o������FRRV�Z�76,,��]�F����9�����}��
m_i�P4D�c��MD�,�&�z1?����I�N�����������5
������<�����O?L�2��U���W_(XF��O?����t�������///���{zc��OOO�������/_���b��i

� �=
�Q���M���k�����kF�
�����Y���@*��/�!�����W���K���Lg���J�@D07����I�^�O"ubnV\,@����+��uk<~�������=���1j�(dee����h���s��|���pvvF�����Y3�9s�����m*U��7�����mC��U��M��r��pvv����h���_�W�^����_��7�@ff&F�;;;������Z������?�\v/������fy�e���4���B���L'00P����&�z1?����I�N�������FA�z�j�1��9999X�p!��_�7n���M�4���������{������p��)����������������Z������������;q��]899�]�v�2e����1�(b��������������c����<y2,--��(��o\r}��R�����O^���Q��(u���h2�����^�F�� ���Z"�t(z{tP0*""""""""z��U�p	��Os���}���a�[)�h"O�9��~Zv�vs8Y9(Q��4�3G��*+Nv���� """"""""z,@�v��9R������Q. "

R:"2��I�^�O"�b~�s���&�dj_�}U����k������hs��:�R0*"�A��IT�17����I�^�O"u2en��U�p4Uxyy"��;&;v�~x:�)��*��$R/�'�z1?����Yqq4����y�|.�:4�{v�t���1�?��EDDDDDDDD���:TE��T�]�yMV|��jt��`DDDDDDDDDD��h��Rv������F�:������������|�M������)/;xWk�P4DDDDDDDDD��h����r� =V~�UCXYTR(""""""""""��4Uh�������e��uU("�)��$R/�'�z1?����Yq	"��$P�����s�~�(�/�U�����o�.
FEdz� �.?���I�f�O"�b~��)sS�u���3��B�?%����+��X��B�)'00P����&�z1?����I�N����3��$���Sn��#U:�}�
�������G����������^��Pg@S�u5&�e������B���������\�}���Zq�g""""""""���4UX����?��FG7o��!""""""""2?,@S��pS^�>�je4t�T("""""""""��4UH��?E��+�c��[H��U4AAAJ�@D07����I�^�O"ubnV\��� �������c����R;�J����1��X�"R� ��O"�s�H���D���$R'S����Pg@S��
�/�U�j�T("�*��$R/�'�z1?����Yqq4����<�����+J|~t��������J��H�h2	5%~~���M� ��tl��6X�M��QQYPS�X�&Q:����[����.;	����P(��{ ���i�����SM&� ��P$g�tD��-]D�������/k[~�_PDDDDDDDDD/�3��$�����_���ER���v�y�j;�P0*""""""""*j�C�)���o����\�����~�*Y��:���_��\��O-W(R"e)��$R/�'�z1?����Yqq4��Z�yE����t���^X�^����'���ID���D���$R/�'�:�27�R���M��se��|p���`DD��tDds�H���D���$R'�f���djy��H�.��3Rj_�Y	NlF�:������������Z�PT�3��BI=|J���c�6�+
�yc�*��������j��P4DDDDDDDDD��h�0DQD���c�-�*
��c�*�;g��3�����>]�������������M��-Q��e�JhY��B��KPP��!��M"�b~���H���� r;H25�>���t;�Bj�tp��C�P�N����B�L�B�M"�b~���H�L��j�C��8�*�J7�3�o����3���tDds�H���D���$R'�f���dJ��$�"�;x�vf�t,h�@���\�x����������P�Er�MBBL�����������?��B�*_~�b-+���V(""""""""���h��9*k��c����W(""""""""���h���:-k�{����J�h���������*��������n��	���QaAAAJ�@D07����I�^�O"ubnV\��� ���}�^�-8�o#��,�m�~�(��M�Z	�����T��I�^�O"�b~��)sS�:��h2{wBO���������B��S``��!��M"�b~���H���g@�I(����n�z�7���se|x�*,4&����������^.��V��&�g{3F�N����3�	�Mf-??����Y�i�L0DDDDDDDDD�d��G�B��,��n%�Y��
FDDDDDDDDDTq�Mf�N�	Y;����~M�h���������*���%���c=�����B��WPP��!��M"�b~���H���� r;H2�v=��	���)�g�j�o~�m���A�;0�
17����I�^�O"u2en*U�"�8��V~~>^yx[v��m[��!R���@�C "��D���$R/�'�:17+.��&�P��������?:I�TkG�m�[
z�,""""""""2-��V��&�z\�>�a����������������a�����!Y�bm'��wU(""""""""���h2[�7ce����P$DDDDDDDDD�d���|������]��
ECDDDDDDDDT1�Mf����p����Ol����\@D*�tDds�H���D���$R'�f�%���L������x�.�.�4�A�3�bS�$�'*oA���D*��$R/�'�z1?�����i�:�3��,%����/����3Q���`n���H���D�����8�L���<�to����K�9����Vl6�������������X�f
���q��
dee)�AVVV�Q�����w�y>>>���,��8Z]X�&�0e��yyxl���<���~���>~��&"""""R�����}���j�J�BD��������7��������.�{�H��G/����4������VJJ
�����j��C|����������������L\�z�7o��e��s�N������uk�gB�:p
h2;7C��1�hW��B����M�p��4n�{�������D�j��������9s��~���`���8t�����b��N�)��WkU�}%[��!"""""2�={�>��#8::*
��i��>�������^�dv��.��O�)	Q��tDds�H����v��sz���p$DD�3h� ��]���^7!$�0���bn.����&/_:�dM�����z_��Nn�@�B�M"�b~��YYY!''YYY�����Hi������5����k,7!T��&��=rQV|Nt�@�����8���J�@D07����Ij���,>Q�ek[��jvv������h2	S��t*�4_<Wj�7���������R�KDDDDD�&��GD������;P]8��JJ�Y�O�,>)�R������+�vJ�&
EBDDDDDT>-
��������I����#�S{|DD$�%8�$L��1;)�����?��L>���������H���o0/���}C����,Kj���J�Kp�.�Af#��yY��������DDDDDDDDDJa������d���m��z=��!*_������`n�������d���)>��G�7���1���O}|��X#�HG~4�H���D���$��Dd��y�h2�����i�6S(��'00P����&�z1?�������F�A�z��1�h2bf&�=z,;V���2��C�1�:17����IDT@7������,$:�J�6 �Y���wQ0""""""""""b����m��9w;4�V[�h���������`��Df�	Y�/7w~�������L&88������u���G��^�:�����ys��?����������������+�2e
�Z������c��E�������
{{{XYY�f��x������?#;;����?�1c��Q�Fppp����iS2��������G�%{�qqq��.�8t������u�}���i��U����
nnn���?BBB���g4V��5��rVzz:��������Z�j�h4�2eJ����L�R���B�[�e��-��������*2A����A�a��-�1Qq��E|��g��k���acc�i��������
���-��;p��QT�^]v�VOOO�����w�^����/��;�n8}�t��7O�>��p��el��666>|��C�.��w�}��?�999��������p���c�����mj��e0f����8�����_��d4"��h*���t�{�$;V�kw��!*����:17����ID�����3gb��-<x0����-[��m�����H��?.�w�}�^�za��������]���o_��7�����#??���,X�={� ::���		A����/_�������.�����o��{��ELL�;�u��a��	�S����;w�\�?m���������z]�NPP�N����xyy����Gxx8����c��=����x������Q�k������8�7�w�FLL�n��n��=����L@EQ,�4�����e��=�	;����uWK8]:����ED��fd��07����IjW��y	�_��tC���}���1f��=o�<L�:UvNzz:�6m���o���	���;v,�,Y";///�:uBTT,--q��=T�ZU����Abb"<<<���z�j�;V�m����#F`�����������5k�N~~>RSSQ�re�qDFF�n�������xe��G��K�.�I�&�������(l���x���!�"����3f��G��������o��~��yo*�J���e����q4�{�������r`���9*��$R/�'�m��z�g������#)))�V�~����,,,0~�x��c����+U�Td�F���-[��Ha�����
->�F��+>?��s��4i��,>���?X�re��1b��D��T�=�>%k���Q(���#&R'�&�z1?��(C�5�����{������4�=��<QW����������W��������
p��Y�1���p���"��"���x��w�]�Y��F||<���k��w�}���$����R��vK�Q���
EBDDDDDD4j��h����s������������`��� **
YYYF����#�cc��App0�>}�.]��w�����?:v���^{�ha�y���
�� IDAT� //0{�l��=�D�DQDbb"�����A���H�X��rMLIE���C�/��z)�ySj�ec��F� ���3�_x�����+��$''��7����?wC3�u��fff�����@HH&N��'O�`�����{7�����u�����!C�����h��y����]�h]�� �a�*UJ��T�=:p���jTBu�g��������,M�<Y*>w��~�!Z�n
777YQ{������k�:�����q�F���G�EBB233�������c���]�T����J_������/���u��+I!����h*��l��6���5������������������T���o���;����F��j��^���c����1cqqq��g~��'���"66��
Cddd���^���uff&�4iR��Q��M�\�;#k��YW�@��9n�D�N�M"�b~�R�]����������'�"������u����q�o��=��=��!`Ig �l�RZND��U,,@?���o��~������kkk8::�E��>}:����S��?���ppp���3:u���+W����������W�xyya���z�)������xyy���5j������b����+V�c��pvv���#Z�j�H��)���8Y;�Q+e!*�J��s�H���D���KZ�F���[��S�R�J������?����������N�*U��[7@tt4���S����|b�����Q�n]��?����;q��]���!;;�����y���iS�}IIIA�N���g�!66�  ;;'N���q�0`��M
�;w.�����;w"))	����y�&~��G4o�/^4:666��5����[[[h�Z����{���y���������/����'O";;�(�����6m:w�������eILz��4��'���V$��.00P����&�z1?�H)����f�_�O�>�;���k�����������{>;;[�qXXX�N�:�~www����y��� i����#q���"��v�~���"�!�������� �����M���j������������CRR���q��}�����bbbP�jU������HOOGpp0lll�c������kf��A��'����'HJJ���������7�4��Nff&�V�V�Z���HJJ�V���Q1}�tDDD����3[[[�Y�HKKCXX\\\�q�����[J���/���n������������I�^�O"R���|}}���C����~�zDEE�����1c��i���T�je�S���O�����������p��YDFFb�������=�`�Bgg�~K]�tPP/3f"##q��e\�rW�\Aff���9s�((Xw��c������q��i�>}�v���_���;�Q�F+����$R�$''����F��\�"����� ��g�������� ��F��h�"Q���N|���^�-DA������sGtttA/^���p�BQ���ILHH�����DA���[����wO���6z�m��I����FE�X�?nGN3�j�cU�&ez}"""""���,�{�d�QK|�W�AA:d��H��Y���y7o���{����� zyyI��>���Pq��Q�����[������F�������t�����b�&M��=x����+V�%���	���9���!�T��e/�E���%��������o��!:t����o�����a����������prrBff&�l�"��x���d��i������c����u������
6nnnz�S�N�9sW�^��m��O�>���3��}��@�
 ���M���#;w�^1}DDDDDDD�{S��6�+�y��_������1c�4i����pttD�F���g�������9r���1bZ�jwwwXYY�����������s�Nl��vvvz�mllp��QL�>-[�D���aaaA����{�=��u�|�
z��777X[[����k�F�=0s�L�8q�/.�kAD�'��(*��4h�l������>*��M���`��I����0`v���w�y������K�,��I�����Vkp��-[0h� h4$''���������+K���GET�R)))X�t)>����3`�l�����'M��%K��m��8y����F��DY��]w�����7\��?0{��#"""""*��������
��_�,�=>"*���.{u(*=��.#���8z�(�Y�f�qQq��@��M��o��	�������.]4n������U�Z� �� h��a��.I���k
��G���S�!7 $""""""""R�����Kq��}XXX`������ddd@��U��x��������K2��7^��"�NKK+r�������}��
otmm���n�D�N�M"�b~��e 66��9`��	���������F��[O)--Mv\7�$cEQ��7��
��n��'k_t�g'k�������=[����&�z1?����J�R���{��������h��
���'�/��Li���/j����Z�F���[�;'k�q�R("��������I�^�O2g������;F��]syR`my���$j�����X�~Z�}��A\\4h��;w���Jv�����uFF�����+|~�vQcu3�A��/�uff��9aI�moo�����mh���q[��
M�v&�7�9�������I�^�O2gA�.��=>""��������}����������}�����w������ �"�^O�Wx=g����K2��������w��}��vpp0Z�.L��`�?�AAA���)Y��,K��O�����g?���~�����g?��o��DD�J��OWG2� u��Z��IOOG�>}p��q���!22^^���h��N�>��'b��E�������;1x�`l��A:�l�2L�0���x����$��y3�y�h4���Jk6������I:�����������`��e?~��7x�`l��	~~~��m���'N���K��]�v8q����@wY���X�_���}��-��'�J/|m""""""sP��)�����;P]8�9eff�����G�j��o��"����{w@DD�����,>|��gO�c���ep���{����m�����m�y��'O"%%� ���#G���mp�����}�n��/k_����3�
���>}�������R�
������;n����+W�`���z�+W�DJJ
����f)7n�-Z��(����o��&$$`���������6�n�:$&&��/X���uk��__�7p�@X[[#))	�V���k��A��H��*�^����9������������t	���a��a��g���oo����������F�Bxx�t���|����)S��Z�jz����+�h|���HKK\�t	~~~HKK����{�=��������'RSS������/RSS1m�4���B����Q�i��a����������G�PP`o��Y�^�%�"<o����l��$�&2g\;�H���D���$"""*�]B���������Hk+R�N�:uJv,55=z�@tt4���yyyx��)��5�CCC��~O`����5k@��������WWW8pM�418666={��������HKK�(��h4����0m�4�csss����]�v���`aa���L�[����n@XVk������z��vF%�����/t]��N��E�B�M"�b~��q�S"2\�<pt	�~`A@vv6>|h����#�����8v�����h����E���b�
l���h�f��������U�VENN����.->�k���.`��I���BNN\]]��������g���DXX~��gt��������@��-1�|9r���sY��G���e����D�*00P����&�z1?����J�3��$����?��N��.B���.>�6�9#QE��Dd8�<p4�+6.����)	�h*7DQD����cV���P4DDDDDDDDDT�����qU2r�v����>}�������������5��$J�������(��G�vG���?�=����������:��r�9�����j���{������#���5���d�M�#>3�:rE�����>:��\� " ((AAAJ�AD�`n�����,�/�������~�k�%��GD���y`�L���_���M�����,���U�������6Q�����T��I�^�OR;����m,���(�������-����������k�L��T:"2��I�^�O""DFF���7o���5jBBB�����HX�&U�@@�r�[��t<��x�`��o�`tD��!&R'�&�z1?���0������G�(���������c�p��E<x�����h��
����~J�K
b������C�B�K5l���+��CDDDDDDD/�����G����1r�H�#z>�Xx��W�n��-;�{�������Ghh(Z�l���^^^J�I*�Q:���)k_q���U��	QE B�,��^�������S:�2w���`���8~�8N�:��+W�E��3g��G�x�����RX��rAs���}�&�5#""""""2w�LN���m��3g���z}�[����#1d����">>_|��-[�@��4���r��v���i����DDDDDDDd.
�Y�V����,>�XZZb����������
�T�hR��'���fH�<h�����n�D�N�M"�b~�������h��h	Q�����[�n�^�:lmm��AL�<			�^o�������W���Wc�������F�������K}���F�����5j@���Z�j�:|�0>��St��5k����P�~}�9G�)�k����E��o���U�������
ooo�;�v�BNN ..�FZ�F�-=/��{��%����^��o��o��<==akk��]o��&~��7������@����>|��S��Q�F���C��U��S',]�yyy����h0{�l������Y8t�
wwwX[[�����
Cll�=��Q�jU4o�����Vk�{���D&@,�����[������QKL�f�q�D�9 R'�&�z1?I�^�o�gY,m-{��Z�[�z�(���h�����7�A��i4�]�re�������+�������������]+�5J�{Vrr�X�^=Q���A�z���9���b�^��kl��]������sA�������"_���p�Z�jF����u�VQE�����9�b�h4b���K���w���u����sg���GF���[7Q�^�z�G�i���s��1���E/���:u��;'�g���w�H�����Y�f}^���bXX���h���ys)�'O�<����.+������4�����V�}��ZV�R,"s�tDds�H���Dd�(��1c�������?�^^^x��!��_���������g��A���e��N��u��j���i���C�EG��������M�41���6l����;#==C����'��`��y���?&L�����u��������s���_�>���q��}���b�������O?�|��g���};�z�-��<D�z�����7n������e���s���q��yDEEa��1��s���7��]�����o�A������F�~���gO4i�...x��	n���+V���S8z�(����w��>����G�~����2d����V�Z���Gpp0BCC1~��]OE���/8r�:w��>�
6DZZ6m���K�����5j���OT�R��</����������5k�r��/�~�R������������l����8:""""""��"�=K-3��QK|�����1c��j�*����{��bcc������������w�����#��j��y���&N�(?~��hii)
� �l�R|������o�6�'�����-���[������w���E'''Q���^���0z���L������� �k��1:�y=y������(�_|��t�C�<�Eg@4H����3g���VQ3�u��c�������I������)K��>����_��ee�;�^g@����u[��o�R�H�������r7�/N�5�d��}c������w�^���W�^E��
?�������?�WWW���j�����w�y��8�M�����c���X�d	z����]�b���������=6l��J�*���Q�������w��E�HMM��}����/;g���HMM|��W���������������UJ2700?��=z�-[��k��e��{�
h��>��c����17n���.����-[f�o����3grssq��!L�8�t�����<�Z�*�O����E��MI���lx=H�����B�o������5����[�z��������P�TA�~������/��	!!!�Q���M���[�n((7h��D����t��u�.]��p��E���(X����3zc�o����;n�����rrrp��\�|Yzn�.]���;����e~��J��5��y� `���%���A�d�����(��q�������_��A�!??� `���pqqyi�#u�hR�{GO�J�
g��-��O�"""""""*F�v���o����ull, ;;��'�M��g�[XX���(6��������/����V+�e<t��"��:			X�p!�n��7ny����e���\���o��������rssq����5j���Q�����~�	�����;���\��=zTf���f4�P��L��mK|�F���{�B���NFF���/��<<<J4s<!!}��ERR����}}}�G��hR�;��K��������i>�CDDDDDDT���T�^]�Z���T�{��$�(N�^�0|�p�]�@�2��//v����������4�6|�n����L����K}�j�*q��q�����kF�e�����w���v��t���3�����{��|��wq3j4"�f���:u
=z�0:n������~��z��)���1c���)��`�T-;:F���Q[�H��[PP���������$R/�'Ud��V:���&��0Z7o���m��vbb"�����[7�c�Z-���4T�T	}������AT�ZUZ7ZEXXX���uY3v�g��1B*>����3f^{�5��QC�u�n�p����z�_S�_���5|��G���gO\�z��'�`��9e$�K\�T�Z�|=��W�+	�y�={��!��M"�b~QQ������u��U@��s�~c>|X�Xrrr0t�P���B��������x��we3p��i�&����������kW��YS�iaQ��Z��T��s�N��-��u�"??yyy_|��t��k�p��!��a�
???xzz�m�X��{Q��=P��������[�"_�#F��j��W/\�x��������|`�TK��C��I�cn�}�	����(�s�H���DT�S�N���I�k�����������E����-��x3g����5kV�X�{�.��ct\������=��i�3�---���
��9gee�(��^��i�sP�sKKK+r]���y�$;QU����+)))	�z���������p�B��"5a�T��������Z;
z�vW0""����s�H���DT���F�������{K�{���`�n�@C�o�.[3����|����.]���/����C�u|�o���K�[xC���t��X�lY�1����
6���������uvv�s�7��s+���r�J�u�������|��5k��'�"BBB^Z/"99}�}� IDAT����?~</^�pT�6,@�j�
�#k_��7W'��!""""""*�`����V�Z��{�((87l�P�?~��A��I����#�����������[2�������f/Y�D�m��'��f���E�������?",,��8&L�ggg�����o�>��fff�����c��������_T����s;~�8f��Y&�3�f��x����76k�����f�Ijj*^�ui����_�T1qBR�����v\���c.QYh��V�^����}�^y�<z�����f������>n���p�B\�~-[���i���];������c��yx��	Z�l�3g���(�9r$���A�j�*��][������
��Cdgg����'N�>-�m<d�|���������3���"..!!!��};�t����}-\\\�f����[��������!C�`������qqq8x� ~��w�Z�J�5
�������8���/h��)Z�jkkk��xxx<�����-Z���s��{�n���������'�Z-����|�rT�R�f�/������$''���?FTT�}�]������;X�f
�l���;����L��cQ�����i9L�0.\(r\�F�`i�rdE��8�V���e��W+	Q����s���~���;���
�\�2BCC������}���x��!��]��w�"  @�occ�_�{����3g�6�����{�|�x�������;��������)Sp��eL�4	+W�������r�J�=���X�|9�/_.�F�V��q�F��Y��������o��#��j�~�z�_�^�<AW1z�h$''c�����n�����E����k��{��x������73�z��

����_j�v�����/�Z-6l��
6������,Y�V�Z�������wG�����3/J\\����2C#��J�(��{���v��P4DDDDDDD%W�R%�����_~A��]���
xyya��I�t�|||��h4		Ahh(^�uil��u1z�h�:u���w��QT������F=�*M@A��4EQ����t��_E,���
*(�
J���/@��t���RR)I����vnBvC�.��|<����sf>���u?{rF���

�6~���=z�,�R��M��;�����'��m��&I������7�dk8p���[����+<<\����Z��:t����{O���W��U%]|Vn��=�w�^���[�����V�*___����E�z����?��d5x�`}�������j��!???�X]���M�4��m���O����������/�k��F/��������]���#/���m[EGGk���j���T�bE�m�VS�L��������{d]�;�z����0?7w����'�c<J?��L^�����O~�[��)>���mW����p�����fJ�"7�E~����3Xn�~x}���G6��E�[��9s��
&����;������������e���2d�$)22R�:u�l@%���eE���c4���������Z�g��;��!p����	��~��W���H�\����9s$I~~~j�������4�R��������y(��0f�O��r�^�'������c���m�����#$e.����K����sm�4i�~��GIR�~�TaE���+���m�t����<�'��w"7�E~(.{��U�����Ou��]
4P@@��;���W���?��'$IO<��������QX#G��_������u��
��s��k�.}��Z�|�$�|��7n�����4�R���l����z(������^�<�m��k.�|������������g����y�4o�<���ei��a�0aB����,K����~��E���+�,���"�MQ"���{��8��u�������A���-���4�\%o��Y:th�oBx��Y-\�P��/���[u��1������O��������
�v����Sv���E�)22R���W\\���9�
*�I�&����z�!z:��MK
�(�I��w>W�����wV��u���������t��M�u���:��_a�)>� 
��:��wf���]�C��n�x'r�^�'@��JD~�����u��x���c����_(��d�(o��!7�E~�����J��(�
���������k~����|�3��!p����	�7��F���7O�|�T�?2���_��������+f�(
�]:P��W9�sd��]�*R|.QT��U���m�X�Z�@aQ��W�q�@����[x(�E^#%���8�m���n�P4
�4���S���[>.��k[��`D��#""��!p����	�7��v�(y�����/��������+���?�=6�9���}�M�{���vy�����e�zf@�{��[���5kx(��3f�O��r�^�'J��o)�Q%���o�-f@�D��������������{j���3��c���(g��:�d���+�1�������]:0^!%)M������n�.���:w�,���:u��l2d��Jp�|��t�$���v]��no'�Zj���#������_�N�8����^�7o���[u��a?~\III
V�����cG
>\�5�t�� �~�W��|y���+���h�7X�j�=�x��Y�'�Jc�������������'��_~��={�������:uJ�6m��o��f�����^�t�� f@�#f��[�W����������l�x����5d���x��.�b��34c�O�Q,,�R��u��S'�h�B5j�P�j�T�L:tH��/������$�7N>>>���2�hx���S��,��W���}d����O����H��CDD��C��	x/�J7��^��s�v���O?�T�=�������m��U�V����>��Cm��E�����������S��@����v��q��C��'F����}��H�����c=�M�{��P2��)B{�2e�\�O�����I�����v����@iD1�g����R��Z��F�lm�R�wk���Sji\�PE
\�3(�;����"?\h����Z��W��1F�}��:u���U�*  @
4�SO=���_�x�-R�=T�jU����N�:>|�~��wI��!C��]������f�������
���P���]���/�������7��j�����WAAA�_���5k���g������'�{��
�����T�����k������ou��yIRLL���v�j�:t�}]�G�.]�|����Ko���z���Z�j)  @����Q��z���/��B>����)���8=���j�����+�J�*�}��������n�<��/A]�����?�_�~�^�����T�zu
0@QQQ����
������gK���(���n�7�#�bU���(���t��3X~e���bU.�c%o�o����,�p8��+L��=�eY�>��ao������H��IKK3��w�����������?7C���.t��iS�NcY�	

2�v���'##��|���1�,Y�������2���bY�y��GLFFF�?�����T�\��u9�-2��o�>�������K~;9���o���.�:�����=N�N��eY�N�:.������v�ZS�b��8��o��l����;vl�cDFF��f��i^~�e�����g�.]��Z$''������#:::_��ZV���(<nB�K���l���WUk�@ac4z�hm��I�;w�#�<�z��)..N_~��f��������K��������m���>��s�J����5j�(�m�V�����z���4b�]}��nc		��y���C%''�����a�|}}�>o���~��GI�c�=��o�=�q���U�J�q�����������@=zTQQQz���u��AM�:UW^y���y��,Y�Dw�y��1*S�����n���Wu��QFF�����U�Vi�����5j������M�6i��a���_]�{��v������J\JKK����z����n�IW_}�*V��S�Ni��=���O�q�F����8p�������b<�=z(!!A������
���5s�L-\�P?�p��g����~�5k��C���?���
*))I�|��>���;wNC��_��
*�5�9sFG��������ok��=������Q�FE~>\<[���B�|���a�l�VO����J��>�����0v�[�s��v>�
�������>��u��e�T������c�r�?t���Y�f��������v�����n�:S�lYcY�i���9w����p�f�1g��5��u�gu'&&��gBBB�eY&00��X����RSSs�6v���,���5����:u�T�3��1��W^�����?��S�������1q�D�}^{��l��r��|>���^}�U��{����OA\������7�p�9z�h��[����|
D��4<��zqG��������\L���W=�QXX��L���m������[$I+W���]����>�����{���*Ur^_xx��y��<�1j�(�\S�L���Ku��i�{��JOOW``����'�����J�m�������~[������+W������+11Q�4n�8�|��n�����J�*���
+44���3f�*W�,IZ�`A��p��-\�P���uk=��3.��=Z��5��q���
}���.��z�)�-�� ��?�����s�\�,�~.I�*U����U�V�j��Ev>\Z(@��G����{;�����VF@��}��
p�>b���������n�j���G��������f�����0I�7����{��~I���
��8��������k�����}�v�����tI��~���c�,Y")����C��\%��������m_���;U�zuI����"?��U���2�m?��4x��<�_�~��[�*88X
6�$���/��^D�>}�}�v������y�,X�#F(!!A�?��^�u��\~X�m������goe5�2�o~�FDD�"""<�����"?��u���l������7**J�t��Y���_�����>��e��Q���y�X�V��9s��{�������2���{s-z:>|X����-Zd�����'�m�������M���]�|����?���m{XXX��g�����S��_h��mJKKs;����E�����.)��|�3�Z���q/��������N)))��w��qW^y�BCC]����fkk�������|P��u���c����7�:��|0u|��l�^QI��@I;v��C��	x/�@n�3����A||�$����.��r������5p�@{;<<\��E����Oj���}#9��
>�RSS��?q��=�5<<<������k������%)<������g���-[�����k+
���t��g~~��1���Ywq�^w��qc�?�E��9����^����%I�/��Y��}\���������m;�n]E\������@n�����, #�����,g�o�>-^��������-[r����[III����SO=���H:tHg��Qzz�������-������H~��
�?��S���wo-^�X{��Urr�}m������%���]J����|��a^����~>o��"�����G�:v0��_��<	py�O��Dn��������\��=j?w�/���Y�����[��������{���(�����%''������m�T�bE�����{��|�m�������P�J�dY��1�����oA��]�^O�b���O�|�����on�WXYo�x��Q��Q�m�����S�Ny��G��t�?��3��1	�R� >1��&�n�P4��7���a���5�\#I����ox���iiiy�)�K/�d����/��O>�$:tH��
s;.�����s��~�7ov�V�lY5o�\R�5�9s&O1gU3���&)�kKJJ�u]��j��������6m��������C��������B�����M����
-�fMs�������RJJ���O?�TRfq�[�n���o�YR�j��]Y�dI�5��Y�b�&L� I�����+���{�������|��.�f]Z#99��9.\[�B�{���y�;g�;?��g����xW�^[n��i���X'�(u��Ye����\�F6�h����Gq���/���/\py�
���������"T�e|<
E���cz���]�M�>]��/��Ypn��������7�{��'t�����9���~:O14H�T�bE��;��M<e�{����#��vr�e����3]��������Ks����S���%I/���V�\��ojj�N�8�m_������v���\y��g�����[��^z�H��N�j�t��wJ��!������7~�xEEEk,1u��l�|W�/_n����,
:�$B���
�)�g�?:\���"���n�Z3f�P�.]��7�h���Z�|���|P��c�q��M���OJ�v���-Z������
�~�z����j���bcc��E��7�h���:z��,�������/�y�����Wg���=������l��������%e.����S?����n���O�>z�������S�bE��5K�C������[5p�@��?_[�l��M����_��GU��5�f��l��W����kK��9>c�m��M������<x��Ys��ys]{�������^��r�,X�-[�h��z��'��sg������;�(44T���3�h�����o��o�i�������^z�%�k��SR7t��G}T��W�#�<�9s�h��5��m���]�3f�O�>���[��W�q�p�
�a� �\������L�U�~|������1c<�M�{���v�>�T��m)V�"9fQ���f��a,�2���\������X���Q�|y��8�������w;6  ���;�4�X�e��+��&L��?��#nc�4i��o��9�?��s����6��-[��G���C�u{�e���J�*�=��g�x��cg���vL�����37��o7U�Tq{���0�v�Z��S'cY��S����\�}�������n��\67�p���������z+�1"##��Y�f�z��9�r�]f}�+W��?�@�(�kYQ����
�8w6M
�g��l�[�x(c���t\ 7�E~������.]�O?�T;vT�*U����z����'����;��sg�c�f������[o����][C����5`�{
h��Y���7k����,KM�6�;���6�'�|R��v�$���>�7�|��}���Z�n�������p����j�������{�=�_�^U�V�t�Y�={����{��[o�S�N�Z��|}}�-Z���?�`�����������w���Q�����dY��(�&M�h��mz��'t�UW���O����5�\�_|QQQQj���E�����i������5r�H5l�P�X����m�)S�h��������_�;�z����0?��~��wM�2Ew�u����U�VM>>>


R�Z���gOM�8Q{�����?_����ec�����|as�s��x�����n�/�P���
��n��'DDD(""��a��	x/�����`�����m; #���,J����35l�0Y����Hu���X�W�n]����S�N���,�s��f���!C�H�"##��S'�TB
�ZV���(<f@�#v��"���+�(>�h�;����"?x�������IR���=J��9s$I~~~j�������4<�����m���H�			:v������X�1BR�r�Y��t���;��I�&���$���OAAA%Pd�z:\�������l��=	�c���j�����������A�
��c��z�j}���:q��$��'�P���=1
k����������n�Zaaa:w��v���/��B��/�$�/_^����p�@�Q�F����P�c�������������U9is IDAT�g����y�4o�<���ei��a�0aB����,K����.��E���+�,���"�(q�7�U����v����=�y0"��������b?.��-�QE�#�">���g��T�����_h��!���kT�Z5���*88X
6�����f�M�6Me��)���a������k��k���W��BBB������0u��U'N������MO�
�e�$J��
8�������o�'6.+��d���/Dn�����s~�#?�KYA_�x
�.�Q"�[�.�����U�!���,��/Dn��������4�]:�4JT��Z��������9)��k�f�����S����1c�8�����"?���(��yJ�H���s
�	�DXP*1�@i����4J�%��`J
�����@V�K
��2>>>���g�z8(���TI�����#AaQ����T��$i����
��?��$U�Z�����(@���@n���������$i���
��o��$���������	!J�����,��B�&���Ox��>�L��W����~�z���x:$��m���k��������+u�M7�k<u(��h������@n���������5j���hu��]K�,QRR�^���������K/�d�o��6u����������7OP�v���6m�(>>���@��v�m�?~�nBH��P�F� ������i����1c�����3g�x:$p���OU�VU��=u�]w�S�N*[�l��E��P�F� �P�Cy��
�����X=����W������;��C?����C��(@�������iS�������Q@@��������G��u��o���RDD��C��	x/��^�'�����k@#W���j���8����Ns��Q�������W_}Uo���$��~P�n����w�fY�	x!r�^�'���O�;�dnR��.��F�>��c8p@���Z�t�7n,I
��	��OI�/���0R�N�<�M�{����"?�Dn^���\�j�J[�l�C=��S��h_�n�n��Y���;w�a��.��7O�wc����M�{����"?����3��Vbb��l�"I�����>m��UHH��1��@6��Vtt���o��4i���eY��gg�(@#G���������l��(@����d�y@@��~����$%%%{L.���(����+((�~������@��RRRr�w�yR�����	x/��^�'�����3��V������r�������+����cp�`4�j������8v���
������]�vI����j��b9���h��V�ZI�V�X����
��� ��t�M7�dx�h�j�����s�*666G���%I-[�T���K46��4r��C�V�ZJLLT�^�-IJLL��Q��p�BY��q��y8R��2,�������M7��'NH�������$c�����Q�Fy8J��4�����?~��-[�C�)$$D�[�����/u������B���5���4�Ull��|�I��WO���
�w���~��������3�p8r}�o��'�|�v���|��
�u�]��'����%x%��%))IK�,��/��=z�r��v�����_����y����������_5k��<�={����������S������1�O��h��I����U�fM���)88X�^{�^x�����:���sz�����ys�|��j����M�����\�R��~��V�*��WOO=���;V�\�
��111yz���eK��'?K��@����R��]/�����$�����,�7N�=����J��3gj��a���Q�J�\�	�_��c������O}��w�$???�)SF)))��V�Z���~R```�]p�Z�h�����c�eY���V�
��-l���5K#F�Pzz��BBBt��ic�%K�p�\�
��G���*U��L�2.�L�>]={�t�F~�<xP�j�����������&I�P��������;������]�j����2�7--Mg���$���K.t������^~�eIR�2e���OK����~�IM�4)��.%�������[W�T�Z5�������Y3�m�g)c�b���bj��e,�2-[�4;w�4����`F�i,�2�e����{8R���1c��,�t��%�cG�e,�2���3�g�6�c�����J�*������:d�TX�h�	3�z�2c��5��M3�e��av���������m������,���������c���on��cY��P�����+�.!��Og��������'��}����an��v3�|s��)c�1���7�}���[���,������������ncY��\��Y�l�1����t3k�,`,�2�G�vy�e�����������$c�1;v�0-Z�0�e�z����g�����0��o�>;�
��,}(@�X������,b>����;�����VA�G�1~~~��,�����h_�x��?QQQE.Pj���g���?���
�{�{�6�e���[��k���$S�fMcY�y��g
xe�����i��
�111�>/�	���������a�����m���v~.]�4����'�_�;v,G���^k,�2}����������`������0�Y�4�Y��4����s%I�W\����g��$���o��kW����������s*_��|���w�q�4h c����Dx7����War���S���o%IO?��,�����~X����_(>�4(h~fua~]�	\\HH��?����
�m���d/���|Ol���z���c��>������j����v�����(Y��Q�F�[�zu�{��������&?��,�(@��%&&��w���e��m�*$$D�nHx���HIR��������-��"I�-P�
�{k��QZZ�,���\��^�����
���|�:���F��%I�����;�?������:v�()���slhh���i�r�3?7m�����F�n���0����4����-�r� �eYj��a���������I(88XM�6��O?�����w��)I��������$���E/p�*L�9�V�VM*Tp9�q��9��c����.U�PA~~~�Q�����g�pv��
/--M����$�i���~c�������?s:�-k���\��]~fe�Q�v������SG���=���t��"w���yxx��~�����'Nh��]


��s��s�NM�4IM�4q����\�-o�K�$%%�M3PD
�{y���Pc[!����e�c����#G�h��������������C~�������*S��
d�OHHPJJ�,�������9���+��\p��YY���7�l��r8:p������o�Q����\�!?K'
�(rY?��W�\9I��������W_����u�����)))I��-��W_���T
4H���K�q���K�J�.PT
�{y�u<y�������������:u���s�N
:T����_����1��
'**J/���$����6���9���k�!?����Rfn=���Z�z����dm��Y��~�$i���?~|�c���h�����hu��M/���7n��e�J�|||��G�]�VW]u������������,(�=�{.y�3f�[�n
		��5l�P�~��}c�������6�	��#G��O���������o���=�g��z�$w�.������_7�pC��-Z�����u�]wI������OgK~�N�Q���������n�������x�����To��A����%�/7]��F�E�0��|������-P���#c�l��lm�'P0������[�
h��e9n��5_���ya~�%?��0-�"?��//����uJJ�~���lm�g�DE�z����C���w��aI���P�Z�n-)���������kl9s�g[PP�]4P8��=�{nncSSS��%��E�\�r�������������������v���Z�ji����R�J�~!!!*W���1yz��0�����j<p9�k~�E���U�recr����h�F�I�,n����e������w/P2��������ow;6/w$�?��=�{hll����skY��@1p����'�?��������l��+��B+W�T�5\���3yy��0�������n�������/.w����r��I~�N�Q������U+I��+\���a�dY�n������m���~^�V-�y�.]$Ik�����g]�u�4y���^�T�lYc�r�J�c�/_.)sv��KbE#99��pQ�v�lm�'�w��������n�:U�\Y+W�T�z�r�|�t�����3�M�/|�t�=}��6m��r�3?��is����YA��b����'NH���I~�N�Q, I�;w�bccs�O�8Q���eK��_�Dc.g			z��7$e.�Q�R%��o��������'5}��c�.]�?��S�C��{o���v������v�m��w�y'�,���d}��G���������k:s���z����������s����V�Z�
*h���y���|O���?r��.I��MSBB���+�;��3[[���u�����	&�{��a}���������R���y1���+WN]�v��F~�R(����v����,��eK�s�Nc�1			��g�5�e��aV�X��H��e��}�M�6��O?5���={�|��w�i����,S�lY�c�s�=g,�2���3s��1����c�-[f*U�d,�2��w_I]p�����[�n�����_��-###������m������,�4�?~�c�����-��b,�2+V������g�~������������g�����1b��,�X�e�
����'����4����X�eBCC��
�5�����,S�re�������5k�	0�e��^z���o�����Q�F���Dc�1;v�0�]w��,�\u�U���s��H�U������?~���}�IKK3����a�n�j���c������r<�Y�X��YP(���(�t�M��U+))I�9�7N�F��p�@���u���~~~
TBB����$I�������\~[����>}���o��$����L�2JMM��9k�����G���,&&F5k����{�g���#�<		QBB������,Y���;���R!���o�>{��.]�������������JII����d�~������������O����W��������o��5�-%'I��������l�"I
Pzz���;'I�����p�B���������_�������JLL�$U�RE�������Va��N�:�
���-���������3�2�?{�1M�<��1����LDDD���@��������:~��N�:��+�K�.���u�}�y:D�����WXX�BBB������4%&&*((H��5��A�4s�Lu����x�������y+e������'�|"���$��2v�XY�u��SO=���P{\as��k�U��=u��i���+))I��WW�~�4w�\�h�����v������B�
�2o����(��t��W�G�z�����s��L�2n�K~����h��Y�,K���JIIq������O>�m�������� ������S����u�]�W^yE&L�q���:v��:(>>^'O�Tjj�j���A���/���6-p9)L~��QC���WFF�222t��i����n�������N������z~��ta4�XpB@��
(���4�XP�
��bAP,(@�h@��
(���4�XP�
��bA����999��<""B�CC��@d@�Q��ea���r8z����}����P���'O������[7��QC���
V�
t�}�i���JOOw9��,������EDDh���:}���C�%���J��5k$I7�x����_~�����O���#G*!!ARf�8$$Diii��g�v���/��B
4��_�f��]��U�TQ�F�t�W:������J�����PGo�h\~��W�+WN-[���9�����k���TBB���i��*!!A'O�Tbb��=���g�E������u��<��G���;����*���M3���(@����g�bcc��m[�)S����/���p��n(�����{�3F���h��u�����>�+W�}���-[�h��I���+��x	c��C�%�4J=W�o�:uJ��oW���U�|�{��Q�����NS�N�h��\��sO������Y�F��s�j��!???U�TI��u��y�\�_�j�����#)sfx�^�T�re�y�����r�2d�}�Dc����c�<�U��/V��=&U�XQ
6����W_���p�c
h�:��s���_oo;o���h����s�����{��v���2���8q������<k������%I�?��]�-j���x���4a��Opp����?����%K4w�\��-����35b�IRHH���;���(=�����{��}�]����U�Z5���J�\�:�l��E���Gk�����:{��v������K��������S����(u�=���g����>g!���3��(999������$�-[V={�,������5a�U�ZUS�N���'u��)%%%�����W\�y����7�t9���cz����������#���W||��qI�{����;w��'M����K�,*o��I���buLL��x�
Y��_|Qqqq:u������o��F�z�*���h�:���JOOWzz��9"I�����}���j���,�����4hP��-I�W����+W,����S���K/���G�����C)$$D�����~��i���,K&L����s#%%E�����U�JIRhh�&O��f��������;��7��F������*V�h�U�RE}����i�
x���P�@����?K���sjj��n��Z�j�z��>��'$)[��$��?_����������z�}��i�:u����S��eK�v����/���woI��;�[hh���eORSS�=�k@�T���_$I;v��m��A���W�<V��]�V��~�zU�V�m��'O����m����*V�h�}}���p{|~�i�F+V������];=��������s�t�
�Rm����,K7�p��o��5����.�J�*I����u��r.+����3g�����,�3����������$�Kw\L���5g�
8PQQQz���$Iaaa�����
����n�Pj<xP�Z���/..N���iS{_bb�$������/�,)�P�,����W_-I��g�RRRJl���I��O?��'��9��G�����W_}��+W��_����5{�l��=[<��>��cO�	���(5���u��1���)..N���1F�{_\\�=#�������W�.]$IiiiZ�lY�^Kn���$l����#Fh��y:x���o��x@�4m�4}����%�4J���k+##C���JOO��/�(I�����}�6m�$������|�W�v���Y3I�o�Q�cD���%e./R��8c���q����������7�@�F��s���k=;�E��o�!����o���G��0k������/���P��������T=�����-��s��q/�n�s}�s��i\�N�P*�={V7nT��5u��W����IR�N���<=z�����6m���o���+99����NIDAT���9s��e��z��'ts��*V�����K�f������g[����3Z�f�}�Qu���P��P��Me��������������{w}���������:uJ�����U�dY��w�^�q�;qB�J�����s���~��5k�($$D��7/�sEDD(<<\�F���
t��wJ��-|��y{�iIj��Y�%�c�=���O��W^��_����Z����������u��)���1b���]�I�&i����Z��,��]w��	&H�V�X�+VH���+'�>}ZR��|�A�z��E�h�J��7�.������G��,�H�������������|�rEGG������Q�
��M���?_��,+���G�V���5e��Z�J���RSSU�zu]s�5���;��o����y�2d����5m�4EGG���C2������(((H+W������#G�())I���j�����^�z���p��L~�@�4�XP�
��bAP,(@�h@��
(���4�XP�
��bAP,(@�h@��
(���4�XP�
��bAP,(@�h@��
(���4�XP�
��bAP,(@���b�3~~��IEND�B`�
#44Robert Haas
robertmhaas@gmail.com
In reply to: Alexander Korotkov (#43)
Re: Should we cacheline align PGXACT?

On Thu, Feb 16, 2017 at 5:07 AM, Alexander Korotkov
<a.korotkov@postgrespro.ru> wrote:

On Wed, Feb 15, 2017 at 8:49 PM, Alvaro Herrera <alvherre@2ndquadrant.com>
wrote:

Alexander Korotkov wrote:

Difference between master, pgxact-align-2 and pgxact-align-3 doesn't
exceed
per run variation.

FWIW this would be more visible if you added error bars to each data
point. Should be simple enough in gnuplot ...

Good point.
Please find graph of mean and errors in attachment.

So ... no difference?

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#45Alexander Korotkov
a.korotkov@postgrespro.ru
In reply to: Robert Haas (#44)
Re: Should we cacheline align PGXACT?

On Thu, Feb 16, 2017 at 4:58 PM, Robert Haas <robertmhaas@gmail.com> wrote:

On Thu, Feb 16, 2017 at 5:07 AM, Alexander Korotkov
<a.korotkov@postgrespro.ru> wrote:

On Wed, Feb 15, 2017 at 8:49 PM, Alvaro Herrera <

alvherre@2ndquadrant.com>

wrote:

Alexander Korotkov wrote:

Difference between master, pgxact-align-2 and pgxact-align-3 doesn't
exceed
per run variation.

FWIW this would be more visible if you added error bars to each data
point. Should be simple enough in gnuplot ...

Good point.
Please find graph of mean and errors in attachment.

So ... no difference?

Yeah, nothing surprising. It's just another graph based on the same data.
I wonder how pgxact-align-3 would work on machine of Ashutosh Sharma,
because I observed regression there in write-heavy benchmark of
pgxact-align-2.

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

#46Ashutosh Sharma
ashu.coek88@gmail.com
In reply to: Alexander Korotkov (#45)
Re: Should we cacheline align PGXACT?

Hi,

On Thu, Feb 16, 2017 at 5:07 AM, Alexander Korotkov
<a.korotkov@postgrespro.ru> wrote:

On Wed, Feb 15, 2017 at 8:49 PM, Alvaro Herrera
<alvherre@2ndquadrant.com>
wrote:

Alexander Korotkov wrote:

Difference between master, pgxact-align-2 and pgxact-align-3 doesn't
exceed
per run variation.

FWIW this would be more visible if you added error bars to each data
point. Should be simple enough in gnuplot ...

Good point.
Please find graph of mean and errors in attachment.

So ... no difference?

Yeah, nothing surprising. It's just another graph based on the same data.
I wonder how pgxact-align-3 would work on machine of Ashutosh Sharma,
because I observed regression there in write-heavy benchmark of
pgxact-align-2.

I am yet to benchmark pgxact-align-3 patch on a read-write workload. I
could not do it as our benchmarking machine was already reserved for
some other test work. But, I am planning to do it on this weekend.
Will try to post my results by Monday evening. Thank you and sorry for
the delayed response.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#47Alexander Korotkov
a.korotkov@postgrespro.ru
In reply to: Ashutosh Sharma (#46)
Re: Should we cacheline align PGXACT?

On Fri, Feb 17, 2017 at 12:44 PM, Ashutosh Sharma <ashu.coek88@gmail.com>
wrote:

On Thu, Feb 16, 2017 at 5:07 AM, Alexander Korotkov
<a.korotkov@postgrespro.ru> wrote:

On Wed, Feb 15, 2017 at 8:49 PM, Alvaro Herrera
<alvherre@2ndquadrant.com>
wrote:

Alexander Korotkov wrote:

Difference between master, pgxact-align-2 and pgxact-align-3

doesn't

exceed
per run variation.

FWIW this would be more visible if you added error bars to each data
point. Should be simple enough in gnuplot ...

Good point.
Please find graph of mean and errors in attachment.

So ... no difference?

Yeah, nothing surprising. It's just another graph based on the same

data.

I wonder how pgxact-align-3 would work on machine of Ashutosh Sharma,
because I observed regression there in write-heavy benchmark of
pgxact-align-2.

I am yet to benchmark pgxact-align-3 patch on a read-write workload. I
could not do it as our benchmarking machine was already reserved for
some other test work. But, I am planning to do it on this weekend.
Will try to post my results by Monday evening. Thank you and sorry for
the delayed response.

Cool, thank you very much!

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

#48Ashutosh Sharma
ashu.coek88@gmail.com
In reply to: Ashutosh Sharma (#46)
1 attachment(s)
Re: Should we cacheline align PGXACT?

Hi,

On Thu, Feb 16, 2017 at 5:07 AM, Alexander Korotkov

<a.korotkov@postgrespro.ru> wrote:

On Wed, Feb 15, 2017 at 8:49 PM, Alvaro Herrera
<alvherre@2ndquadrant.com>
wrote:

Alexander Korotkov wrote:

Difference between master, pgxact-align-2 and pgxact-align-3

doesn't

exceed
per run variation.

FWIW this would be more visible if you added error bars to each data
point. Should be simple enough in gnuplot ...

Good point.
Please find graph of mean and errors in attachment.

So ... no difference?

Yeah, nothing surprising. It's just another graph based on the same

data.

I wonder how pgxact-align-3 would work on machine of Ashutosh Sharma,
because I observed regression there in write-heavy benchmark of
pgxact-align-2.

I am yet to benchmark pgxact-align-3 patch on a read-write workload. I
could not do it as our benchmarking machine was already reserved for
some other test work. But, I am planning to do it on this weekend.
Will try to post my results by Monday evening. Thank you and sorry for
the delayed response.

Following are the pgbench results for read-write workload, I got with
pgxact-align-3 patch. The results are for 300 scale factor with 8GB of
shared buffer i.e. when data fits into the shared buffer. For 1000 scale
factor with 8GB shared buffer the test is still running, once it is
completed I will share the results for that as well.

*pgbench settings:*
pgbench -i -s 300 postgres
pgbench -M prepared -c $thread -j $thread -T $time_for_reading postgres

where, time_for_reading = 30mins

*non default GUC param:*
shared_buffers=8GB
max_connections=300

pg_xlog is located in SSD.

*Machine details:*
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 128
On-line CPU(s) list: 0-127
Thread(s) per core: 2
Core(s) per socket: 8
Socket(s): 8
NUMA node(s): 8
Vendor ID: GenuineIntel
CPU family: 6
Model: 47
Model name: Intel(R) Xeon(R) CPU E7- 8830 @ 2.13GHz

CLIENT COUNT TPS (HEAD) TPS (PATCH) % IMPROVEMENT
4 4283 4220 -1.47093159
8 7291 7261 -0.4114661912
16 11909 12149 2.015282559
32 20789 20745 -0.211650392
64 28412 27831 -2.044910601
128 29369 28765 -2.056590282
156 27949 27189 -2.719238613
180 27876 27171 -2.529057254
196 28849 27872 -3.386599189
256 30321 28188 -7.034728406
Also, Excel sheet (results-read-write-300-SF) containing the results for
all the 3 runs is attached.

--
With Regards,
Ashutosh Sharma
EnterpriseDB:http://www.enterprisedb.com

Attachments:

results-read-write-300-SF.xlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet; name=results-read-write-300-SF.xlsxDownload
#49Simon Riggs
simon@2ndquadrant.com
In reply to: Andres Freund (#40)
2 attachment(s)
Re: Should we cacheline align PGXACT?

On 15 February 2017 at 19:15, Andres Freund <andres@anarazel.de> wrote:

I think I previously
mentioned, even just removing the MyPgXact->xmin assignment in
SnapshotResetXmin() is measurable performance wise and cache-hit ratio
wise.

Currently, we issue SnapshotResetXmin() pointlessly at end of xact, so
patch attached to remove that call, plus some comments to explain
that. This reduces the cause.

Also, another patch to reduce the calls to SnapshotResetXmin() using a
simple heuristic to reduce the effects.

--
Simon Riggs http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Attachments:

skip_SnapshotResetXmin_if_idle_timeout.v1.patchapplication/octet-stream; name=skip_SnapshotResetXmin_if_idle_timeout.v1.patchDownload
diff --git a/src/backend/utils/time/snapmgr.c b/src/backend/utils/time/snapmgr.c
index 92afc32..b0b0a8d 100644
--- a/src/backend/utils/time/snapmgr.c
+++ b/src/backend/utils/time/snapmgr.c
@@ -979,6 +979,14 @@ SnapshotResetXmin(void)
 
 	if (pairingheap_is_empty(&RegisteredSnapshots))
 	{
+		/*
+		 * PgXact->xmin access bottlenecks on larger servers, so we choose
+		 * to skip this if we have reason to believe that the xmin would not
+		 * be long-lived such as when idle_in_transaction_timeout is set.
+		 */
+		if (IdleInTransactionSessionTimeout > 0)
+			return;
+
 		MyPgXact->xmin = InvalidTransactionId;
 		return;
 	}
diff --git a/src/include/utils/snapmgr.h b/src/include/utils/snapmgr.h
index 2618cc4..828a257 100644
--- a/src/include/utils/snapmgr.h
+++ b/src/include/utils/snapmgr.h
@@ -47,7 +47,7 @@
 
 /* GUC variables */
 extern PGDLLIMPORT int old_snapshot_threshold;
-
+extern int	IdleInTransactionSessionTimeout; /* copied from proc.h for convenience */
 
 extern Size SnapMgrShmemSize(void);
 extern void SnapMgrInit(void);
reduce_pgxact_access_AtEOXact.v1.patchapplication/octet-stream; name=reduce_pgxact_access_AtEOXact.v1.patchDownload
diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c
index 82f9a3c..720b60a 100644
--- a/src/backend/access/transam/xact.c
+++ b/src/backend/access/transam/xact.c
@@ -2135,7 +2135,7 @@ CommitTransaction(void)
 	AtEOXact_ComboCid();
 	AtEOXact_HashTables(true);
 	AtEOXact_PgStat(true);
-	AtEOXact_Snapshot(true);
+	AtEOXact_Snapshot(true, false);
 	AtCommit_ApplyLauncher();
 	pgstat_report_xact_timestamp(0);
 
@@ -2407,7 +2407,7 @@ PrepareTransaction(void)
 	AtEOXact_ComboCid();
 	AtEOXact_HashTables(true);
 	/* don't call AtEOXact_PgStat here; we fixed pgstat state above */
-	AtEOXact_Snapshot(true);
+	AtEOXact_Snapshot(true, true);
 	pgstat_report_xact_timestamp(0);
 
 	CurrentResourceOwner = NULL;
@@ -2638,7 +2638,7 @@ CleanupTransaction(void)
 	 * do abort cleanup processing
 	 */
 	AtCleanup_Portals();		/* now safe to release portal memory */
-	AtEOXact_Snapshot(false);	/* and release the transaction's snapshots */
+	AtEOXact_Snapshot(false, false); /* and release the transaction's snapshots */
 
 	CurrentResourceOwner = NULL;	/* and resource owner */
 	if (TopTransactionResourceOwner)
diff --git a/src/backend/utils/time/snapmgr.c b/src/backend/utils/time/snapmgr.c
index 92afc32..c650456 100644
--- a/src/backend/utils/time/snapmgr.c
+++ b/src/backend/utils/time/snapmgr.c
@@ -954,7 +954,12 @@ xmin_cmp(const pairingheap_node *a, const pairingheap_node *b, void *arg)
  *
  * If there are no more snapshots, we can reset our PGXACT->xmin to InvalidXid.
  * Note we can do this without locking because we assume that storing an Xid
- * is atomic.
+ * is atomic. We do this because it will allow multi-statement transactions to
+ * reset their xmin and prevent us from holding back removal of dead rows;
+ * this has little purpose when we are dealing with very fast statements in
+ * read committed mode since the xmin will advance quickly anyway. It has no
+ * use at all when we are running single statement transactions since the xmin
+ * is reset as part of end of transaction anyway.
  *
  * Even if there are some remaining snapshots, we may be able to advance our
  * PGXACT->xmin to some degree.  This typically happens when a portal is
@@ -1051,7 +1064,7 @@ AtSubAbort_Snapshot(int level)
  *		Snapshot manager's cleanup function for end of transaction
  */
 void
-AtEOXact_Snapshot(bool isCommit)
+AtEOXact_Snapshot(bool isCommit, bool isPrepare)
 {
 	/*
 	 * In transaction-snapshot mode we must release our privately-managed
@@ -1136,7 +1149,15 @@ AtEOXact_Snapshot(bool isCommit)
 
 	FirstSnapshotSet = false;
 
-	SnapshotResetXmin();
+	/*
+	 * For commit and abort AtEOXact_Snapshot() is called after the xmin
+	 * has already cleared in the ProcArray, so there is no need at all to
+	 * call SnapshotResetXmin() at this point unless we are preparing.
+	 */
+	if (isPrepare)
+		SnapshotResetXmin();
+
+	Assert(MyPgXact->xmin == 0);
 }
 
 
diff --git a/src/include/utils/snapmgr.h b/src/include/utils/snapmgr.h
index 2618cc4..6899458 100644
--- a/src/include/utils/snapmgr.h
+++ b/src/include/utils/snapmgr.h
@@ -85,7 +85,7 @@ extern void UnregisterSnapshotFromOwner(Snapshot snapshot, ResourceOwner owner);
 
 extern void AtSubCommit_Snapshot(int level);
 extern void AtSubAbort_Snapshot(int level);
-extern void AtEOXact_Snapshot(bool isCommit);
+extern void AtEOXact_Snapshot(bool isCommit, bool isPrepare);
 
 extern void ImportSnapshot(const char *idstr);
 extern bool XactHasExportedSnapshots(void);
#50Robert Haas
robertmhaas@gmail.com
In reply to: Simon Riggs (#49)
Re: Should we cacheline align PGXACT?

On Mon, Feb 20, 2017 at 6:02 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

On 15 February 2017 at 19:15, Andres Freund <andres@anarazel.de> wrote:

I think I previously
mentioned, even just removing the MyPgXact->xmin assignment in
SnapshotResetXmin() is measurable performance wise and cache-hit ratio
wise.

Currently, we issue SnapshotResetXmin() pointlessly at end of xact, so
patch attached to remove that call, plus some comments to explain
that. This reduces the cause.

Also, another patch to reduce the calls to SnapshotResetXmin() using a
simple heuristic to reduce the effects.

I think skip_SnapshotResetXmin_if_idle_timeout.v1.patch isn't a good
idea, because it could have the surprising result that setting
idle_in_transaction_timeout to a non-zero value makes bloat worse. I
don't think users will like that.

Regarding reduce_pgxact_access_AtEOXact.v1.patch, it took me a few
minutes to figure out that the comment was referring to
ProcArrayEndTransaction(), so it might be good to be more explicit
about that if we go forward with this. Have you checked whether this
patch makes any noticeable performance difference? It's sure
surprising that we go to all of this trouble to clean things up in
AtEOXact_Snapshot() when we've already nuked MyPgXact->xmin from
orbit. (Instead of changing AtEOXact_Snapshot, should we think about
removing the xid clear logic from ProcArrayEndTransaction and only
doing it here, or would that be wrong-headed?)

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#51Simon Riggs
simon@2ndquadrant.com
In reply to: Robert Haas (#50)
1 attachment(s)
Re: Should we cacheline align PGXACT?

On 20 February 2017 at 16:53, Robert Haas <robertmhaas@gmail.com> wrote:

On Mon, Feb 20, 2017 at 6:02 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

On 15 February 2017 at 19:15, Andres Freund <andres@anarazel.de> wrote:

I think I previously
mentioned, even just removing the MyPgXact->xmin assignment in
SnapshotResetXmin() is measurable performance wise and cache-hit ratio
wise.

Currently, we issue SnapshotResetXmin() pointlessly at end of xact, so
patch attached to remove that call, plus some comments to explain
that. This reduces the cause.

Also, another patch to reduce the calls to SnapshotResetXmin() using a
simple heuristic to reduce the effects.

I think skip_SnapshotResetXmin_if_idle_timeout.v1.patch isn't a good
idea, because it could have the surprising result that setting
idle_in_transaction_timeout to a non-zero value makes bloat worse. I
don't think users will like that.

Regarding reduce_pgxact_access_AtEOXact.v1.patch, it took me a few
minutes to figure out that the comment was referring to
ProcArrayEndTransaction(), so it might be good to be more explicit
about that if we go forward with this.

Sure, attached.

Have you checked whether this
patch makes any noticeable performance difference?

No, but then we're reducing the number of calls to PgXact directly;
there is no heuristic involved, its just a pure saving.

It's sure
surprising that we go to all of this trouble to clean things up in
AtEOXact_Snapshot() when we've already nuked MyPgXact->xmin from
orbit. (Instead of changing AtEOXact_Snapshot, should we think about
removing the xid clear logic from ProcArrayEndTransaction and only
doing it here, or would that be wrong-headed?)

If anything, I'd move the call to PgXact->xmin = InvalidTransactionId
into a function inside procarray.c, so we only touch snapshots in
snapmgr.c and all procarray stuff is isolated. (Not done here, yet).

--
Simon Riggs http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Attachments:

reduce_pgxact_access_AtEOXact.v2.patchapplication/octet-stream; name=reduce_pgxact_access_AtEOXact.v2.patchDownload
diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c
index 82f9a3c..720b60a 100644
--- a/src/backend/access/transam/xact.c
+++ b/src/backend/access/transam/xact.c
@@ -2135,7 +2135,7 @@ CommitTransaction(void)
 	AtEOXact_ComboCid();
 	AtEOXact_HashTables(true);
 	AtEOXact_PgStat(true);
-	AtEOXact_Snapshot(true);
+	AtEOXact_Snapshot(true, false);
 	AtCommit_ApplyLauncher();
 	pgstat_report_xact_timestamp(0);
 
@@ -2407,7 +2407,7 @@ PrepareTransaction(void)
 	AtEOXact_ComboCid();
 	AtEOXact_HashTables(true);
 	/* don't call AtEOXact_PgStat here; we fixed pgstat state above */
-	AtEOXact_Snapshot(true);
+	AtEOXact_Snapshot(true, true);
 	pgstat_report_xact_timestamp(0);
 
 	CurrentResourceOwner = NULL;
@@ -2638,7 +2638,7 @@ CleanupTransaction(void)
 	 * do abort cleanup processing
 	 */
 	AtCleanup_Portals();		/* now safe to release portal memory */
-	AtEOXact_Snapshot(false);	/* and release the transaction's snapshots */
+	AtEOXact_Snapshot(false, false); /* and release the transaction's snapshots */
 
 	CurrentResourceOwner = NULL;	/* and resource owner */
 	if (TopTransactionResourceOwner)
diff --git a/src/backend/utils/time/snapmgr.c b/src/backend/utils/time/snapmgr.c
index 92afc32..be4adf7 100644
--- a/src/backend/utils/time/snapmgr.c
+++ b/src/backend/utils/time/snapmgr.c
@@ -954,7 +954,12 @@ xmin_cmp(const pairingheap_node *a, const pairingheap_node *b, void *arg)
  *
  * If there are no more snapshots, we can reset our PGXACT->xmin to InvalidXid.
  * Note we can do this without locking because we assume that storing an Xid
- * is atomic.
+ * is atomic. We do this because it will allow multi-statement transactions to
+ * reset their xmin and prevent us from holding back removal of dead rows;
+ * this has little purpose when we are dealing with very fast statements in
+ * read committed mode since the xmin will advance quickly anyway. It has no
+ * use at all when we are running single statement transactions since the xmin
+ * is reset as part of end of transaction anyway.
  *
  * Even if there are some remaining snapshots, we may be able to advance our
  * PGXACT->xmin to some degree.  This typically happens when a portal is
@@ -1051,7 +1056,7 @@ AtSubAbort_Snapshot(int level)
  *		Snapshot manager's cleanup function for end of transaction
  */
 void
-AtEOXact_Snapshot(bool isCommit)
+AtEOXact_Snapshot(bool isCommit, bool isPrepare)
 {
 	/*
 	 * In transaction-snapshot mode we must release our privately-managed
@@ -1136,7 +1141,17 @@ AtEOXact_Snapshot(bool isCommit)
 
 	FirstSnapshotSet = false;
 
-	SnapshotResetXmin();
+	/*
+	 * During normal commit and abort processing, we call
+	 * ProcArrayEndTransaction() or ProcArrayClearTransaction() to
+	 * reset the PgXact->xmin. That call happens prior to the call to
+	 * AtEOXact_Snapshot(), so we need not touch xmin here at all,
+	 * accept when we are preparing a transaction.
+	 */
+	if (isPrepare)
+		SnapshotResetXmin();
+
+	Assert(MyPgXact->xmin == 0);
 }
 
 
diff --git a/src/include/utils/snapmgr.h b/src/include/utils/snapmgr.h
index 2618cc4..2ad1e0b 100644
--- a/src/include/utils/snapmgr.h
+++ b/src/include/utils/snapmgr.h
@@ -85,7 +85,7 @@ extern void UnregisterSnapshotFromOwner(Snapshot snapshot, ResourceOwner owner);
 
 extern void AtSubCommit_Snapshot(int level);
 extern void AtSubAbort_Snapshot(int level);
-extern void AtEOXact_Snapshot(bool isCommit);
+extern void AtEOXact_Snapshot(bool isCommit, bool isPrepare);
 
 extern void ImportSnapshot(const char *idstr);
 extern bool XactHasExportedSnapshots(void);
#52Robert Haas
robertmhaas@gmail.com
In reply to: Simon Riggs (#51)
Re: Should we cacheline align PGXACT?

On Mon, Feb 20, 2017 at 10:49 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

Regarding reduce_pgxact_access_AtEOXact.v1.patch, it took me a few
minutes to figure out that the comment was referring to
ProcArrayEndTransaction(), so it might be good to be more explicit
about that if we go forward with this.

Sure, attached.

Looks better, thanks.

Have you checked whether this
patch makes any noticeable performance difference?

No, but then we're reducing the number of calls to PgXact directly;
there is no heuristic involved, its just a pure saving.

Well, it's adding a branch where there wasn't one. Maybe that costs
essentially nothing and the saved write to shared memory saves
something noticeable, but for all I know it's the reverse. If I had
to guess, it would be that neither the costs nor the savings from this
are in the slightest way noticeable on a macrobenchmark, and therefore
there's not much point in changing it, but that could be 100% wrong.

It's sure
surprising that we go to all of this trouble to clean things up in
AtEOXact_Snapshot() when we've already nuked MyPgXact->xmin from
orbit. (Instead of changing AtEOXact_Snapshot, should we think about
removing the xid clear logic from ProcArrayEndTransaction and only
doing it here, or would that be wrong-headed?)

If anything, I'd move the call to PgXact->xmin = InvalidTransactionId
into a function inside procarray.c, so we only touch snapshots in
snapmgr.c and all procarray stuff is isolated. (Not done here, yet).

I'm not convinced that really buys us anything except more
function-call overhead.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#53Simon Riggs
simon@2ndquadrant.com
In reply to: Robert Haas (#52)
Re: Should we cacheline align PGXACT?

On 20 February 2017 at 17:32, Robert Haas <robertmhaas@gmail.com> wrote:

Have you checked whether this
patch makes any noticeable performance difference?

No, but then we're reducing the number of calls to PgXact directly;
there is no heuristic involved, its just a pure saving.

Well, it's adding a branch where there wasn't one.

A branch that is avoided in almost all cases, so easy to predict.

Maybe that costs
essentially nothing and the saved write to shared memory saves
something noticeable, but for all I know it's the reverse. If I had
to guess, it would be that neither the costs nor the savings from this
are in the slightest way noticeable on a macrobenchmark, and therefore
there's not much point in changing it, but that could be 100% wrong.

Given Andres' earlier measurements, it seems worth testing to me.

Hopefully someone can recheck. Thanks in advance.

--
Simon Riggs http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#54Alexander Korotkov
a.korotkov@postgrespro.ru
In reply to: Ashutosh Sharma (#48)
Re: Should we cacheline align PGXACT?

Hi, Ashutosh!

On Mon, Feb 20, 2017 at 1:20 PM, Ashutosh Sharma <ashu.coek88@gmail.com>
wrote:

Following are the pgbench results for read-write workload, I got with
pgxact-align-3 patch. The results are for 300 scale factor with 8GB of
shared buffer i.e. when data fits into the shared buffer. For 1000 scale
factor with 8GB shared buffer the test is still running, once it is
completed I will share the results for that as well.

*pgbench settings:*
pgbench -i -s 300 postgres
pgbench -M prepared -c $thread -j $thread -T $time_for_reading postgres

where, time_for_reading = 30mins

*non default GUC param:*
shared_buffers=8GB
max_connections=300

pg_xlog is located in SSD.

Thank you for testing.
It seems that there is still regression. While padding was reduced from
116 bytes to 4 bytes, it makes me think that probably there is something
wrong in testing methodology.
Are you doing re-initdb and pgbench -i before each run? I would ask you to
do the both.
Also, if regression would still exist, let's change the order of versions.
Thus, if you run master before patched version, I would ask you to run
patched version before master.

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

#55Ashutosh Sharma
ashu.coek88@gmail.com
In reply to: Alexander Korotkov (#54)
Re: Should we cacheline align PGXACT?

On Tue, Feb 21, 2017 at 4:21 PM, Alexander Korotkov
<a.korotkov@postgrespro.ru> wrote:

Hi, Ashutosh!
On Mon, Feb 20, 2017 at 1:20 PM, Ashutosh Sharma <ashu.coek88@gmail.com> wrote:

Following are the pgbench results for read-write workload, I got with pgxact-align-3 patch. The results are for 300 scale factor with 8GB of shared buffer i.e. when data fits into the shared buffer. For 1000 scale factor with 8GB shared buffer the test is still running, once it is completed I will share the results for that as well.

pgbench settings:
pgbench -i -s 300 postgres
pgbench -M prepared -c $thread -j $thread -T $time_for_reading postgres

where, time_for_reading = 30mins

non default GUC param:
shared_buffers=8GB
max_connections=300

pg_xlog is located in SSD.

Thank you for testing.
It seems that there is still regression. While padding was reduced from 116 bytes to 4 bytes, it makes me think that probably there is something wrong in testing methodology.
Are you doing re-initdb and pgbench -i before each run? I would ask you to do the both.
Also, if regression would still exist, let's change the order of versions. Thus, if you run master before patched version, I would ask you to run patched version before master.

Yes, there is still some regression however it has come down by a
small margin. I am not doing initdb for each run instead I am doing,
dropdb-->createdb-->pgbench -i. Is dropping old database and creating
a new one for every run not okay, Do I have to do initdb every time.
Okay, I can change the order of reading and let you know the results.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#56Andres Freund
andres@anarazel.de
In reply to: Ashutosh Sharma (#55)
Re: Should we cacheline align PGXACT?

Hi,

On 2017-02-21 16:57:36 +0530, Ashutosh Sharma wrote:

Yes, there is still some regression however it has come down by a
small margin. I am not doing initdb for each run instead I am doing,
dropdb-->createdb-->pgbench -i. Is dropping old database and creating
a new one for every run not okay, Do I have to do initdb every time.
Okay, I can change the order of reading and let you know the results.

That does make a difference. Primarily because WAL writes in a new
cluster are a more expensive than in an old one, because of segment
recycling.

- Andres

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#57Alexander Korotkov
a.korotkov@postgrespro.ru
In reply to: Andres Freund (#56)
Re: Should we cacheline align PGXACT?

On Tue, Feb 21, 2017 at 2:37 PM, Andres Freund <andres@anarazel.de> wrote:

On 2017-02-21 16:57:36 +0530, Ashutosh Sharma wrote:

Yes, there is still some regression however it has come down by a
small margin. I am not doing initdb for each run instead I am doing,
dropdb-->createdb-->pgbench -i. Is dropping old database and creating
a new one for every run not okay, Do I have to do initdb every time.
Okay, I can change the order of reading and let you know the results.

That does make a difference. Primarily because WAL writes in a new
cluster are a more expensive than in an old one, because of segment
recycling.

+1

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

#58Ashutosh Sharma
ashu.coek88@gmail.com
In reply to: Alexander Korotkov (#57)
Re: Should we cacheline align PGXACT?

On Tue, Feb 21, 2017 at 5:52 PM, Alexander Korotkov
<a.korotkov@postgrespro.ru> wrote:

On Tue, Feb 21, 2017 at 2:37 PM, Andres Freund <andres@anarazel.de> wrote:

On 2017-02-21 16:57:36 +0530, Ashutosh Sharma wrote:

Yes, there is still some regression however it has come down by a
small margin. I am not doing initdb for each run instead I am doing,
dropdb-->createdb-->pgbench -i. Is dropping old database and creating
a new one for every run not okay, Do I have to do initdb every time.
Okay, I can change the order of reading and let you know the results.

That does make a difference. Primarily because WAL writes in a new
cluster are a more expensive than in an old one, because of segment
recycling.

+1

okay, understood. Will take care of it when I start with next round of
testing. Thanks.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#59Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Alexander Korotkov (#45)
Re: Should we cacheline align PGXACT?

I wonder if this "perf c2c" tool with Linux 4.10 might be useful in
studying this problem.
https://joemario.github.io/blog/2016/09/01/c2c-blog/

--
�lvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#60Ashutosh Sharma
ashu.coek88@gmail.com
In reply to: Alvaro Herrera (#59)
1 attachment(s)
Re: Should we cacheline align PGXACT?

Okay. As suggested by Alexander, I have changed the order of reading and
doing initdb for each pgbench run. With these changes, I got following
results at 300 scale factor with 8GB of shared buffer.

*pgbench settings:*
pgbench -i -s 300 postgres
pgbench -M prepared -c $thread -j $thread -T $time_for_reading postgres

where, time_for_reading = 30mins

*non default GUC param*
shared_buffers=8GB
max_connections=300

pg_xlog is located in SSD.

CLIENT COUNT TPS (HEAD) TPS (PATCH) % IMPROVEMENT
4 2803 2843 1.427042455
8 5315 5225 -1.69332079
32 19755 19669 -0.4353328271
64 28679 27980 -2.437323477
128 28887 28008 -3.042891266
156 27465 26728 -2.683415256
180 27425 26697 -2.654512306
196 28826 27396 -4.960799278
256 29787 28107 -5.640044315
The test machine details are as follows,

*Machine details:*
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 128
On-line CPU(s) list: 0-127
Thread(s) per core: 2
Core(s) per socket: 8
Socket(s): 8
NUMA node(s): 8
Vendor ID: GenuineIntel
CPU family: 6
Model: 47
Model name: Intel(R) Xeon(R) CPU E7- 8830 @ 2.13GHz

Also, Excel sheet (results-readwrite-300-SF) containing the results for all
the 3 runs is attached.

--
With Regards,
Ashutosh Sharma
EnterpriseDB:*http://www.enterprisedb.com <http://www.enterprisedb.com/&gt;*

On Thu, Feb 23, 2017 at 2:44 AM, Alvaro Herrera <alvherre@2ndquadrant.com>
wrote:

Show quoted text

I wonder if this "perf c2c" tool with Linux 4.10 might be useful in
studying this problem.
https://joemario.github.io/blog/2016/09/01/c2c-blog/

--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Attachments:

results-readwrite-300-SF.xlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet; name=results-readwrite-300-SF.xlsxDownload
#61Simon Riggs
simon@2ndquadrant.com
In reply to: Ashutosh Sharma (#60)
Re: Should we cacheline align PGXACT?

On 24 February 2017 at 04:41, Ashutosh Sharma <ashu.coek88@gmail.com> wrote:

Okay. As suggested by Alexander, I have changed the order of reading and
doing initdb for each pgbench run. With these changes, I got following
results at 300 scale factor with 8GB of shared buffer.

Would you be able to test my patch also please?

--
Simon Riggs http://www.2ndQuadrant.com/
<http://www.2ndquadrant.com/&gt;
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#62Ashutosh Sharma
ashu.coek88@gmail.com
In reply to: Simon Riggs (#61)
Re: Should we cacheline align PGXACT?

On Fri, Feb 24, 2017 at 10:41 AM, Simon Riggs <simon@2ndquadrant.com> wrote:

On 24 February 2017 at 04:41, Ashutosh Sharma <ashu.coek88@gmail.com> wrote:

Okay. As suggested by Alexander, I have changed the order of reading and
doing initdb for each pgbench run. With these changes, I got following
results at 300 scale factor with 8GB of shared buffer.

Would you be able to test my patch also please?

Sure, I can do that and share the results by early next week. Thanks.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#63Ashutosh Sharma
ashu.coek88@gmail.com
In reply to: Ashutosh Sharma (#62)
1 attachment(s)
Re: Should we cacheline align PGXACT?

Hi,

On Fri, Feb 24, 2017 at 12:22 PM, Ashutosh Sharma <ashu.coek88@gmail.com>
wrote:

On Fri, Feb 24, 2017 at 10:41 AM, Simon Riggs <simon@2ndquadrant.com> wrote:

On 24 February 2017 at 04:41, Ashutosh Sharma <ashu.coek88@gmail.com>

wrote:

Okay. As suggested by Alexander, I have changed the order of reading and
doing initdb for each pgbench run. With these changes, I got following
results at 300 scale factor with 8GB of shared buffer.

Would you be able to test my patch also please?

Sure, I can do that and share the results by early next week. Thanks.

So, Here are the pgbench results I got with '
*reduce_pgxact_access_AtEOXact.v2.patch*' on a read-write workload.

*pgbench settings:*
pgbench -i -s 300 postgres
pgbench -M prepared -c $thread -j $thread -T $time_for_reading postgres

where, time_for_reading = 30mins

*non default GUC param*
shared_buffers=8GB
max_connections=300

pg_wal is located in SSD.

CLIENT COUNT TPS (HEAD) TPS (PATCH) % IMPROVEMENT
4 2588 2601 0.5023183926
8 5094 5098 0.0785237534
16 10294 10307 0.1262871576
32 19779 19815 0.182011224
64 27908 28346 1.569442454
72 27823 28416 2.131330194
128 28455 28618 0.5728342998
180 26739 26879 0.5235797898
196 27820 27963 0.5140186916
256 28763 28969 0.7161978931

Also, Excel sheet (results-readwrite-300-SF.xlsx) containing the results
for all the 3 runs is attached.

Attachments:

results-readwrite-300-SF_EOXACT.xlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet; name=results-readwrite-300-SF_EOXACT.xlsxDownload
#64Simon Riggs
simon@2ndquadrant.com
In reply to: Ashutosh Sharma (#63)
Re: Should we cacheline align PGXACT?

On 28 February 2017 at 11:34, Ashutosh Sharma <ashu.coek88@gmail.com> wrote:

So, Here are the pgbench results I got with '
*reduce_pgxact_access_AtEOXact.v2.patch*' on a read-write workload.

Thanks for performing a test.

I see a low yet noticeable performance gain across the board on that
workload.

That is quite surprising to see a gain on that workload. The main workload
we have been discussing was the full read-only test (-S). For that case the
effect should be much more noticeable based upon Andres' earlier comments.

Would it be possible to re-run the test using only the -S workload? Thanks
very much.

*pgbench settings:*
pgbench -i -s 300 postgres
pgbench -M prepared -c $thread -j $thread -T $time_for_reading postgres

where, time_for_reading = 30mins

*non default GUC param*
shared_buffers=8GB
max_connections=300

pg_wal is located in SSD.

CLIENT COUNT TPS (HEAD) TPS (PATCH) % IMPROVEMENT
4 2588 2601 0.5023183926 <(502)%20318-3926>
8 5094 5098 0.0785237534
16 10294 10307 0.1262871576
32 19779 19815 0.182011224
64 27908 28346 1.569442454
72 27823 28416 2.131330194
128 28455 28618 0.5728342998
180 26739 26879 0.5235797898
196 27820 27963 0.5140186916
256 28763 28969 0.7161978931

Also, Excel sheet (results-readwrite-300-SF.xlsx) containing the results
for all the 3 runs is attached.

--
Simon Riggs http://www.2ndQuadrant.com/
<http://www.2ndquadrant.com/&gt;
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#65Ashutosh Sharma
ashu.coek88@gmail.com
In reply to: Simon Riggs (#64)
Re: Should we cacheline align PGXACT?

On Tue, Feb 28, 2017 at 11:44 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

On 28 February 2017 at 11:34, Ashutosh Sharma <ashu.coek88@gmail.com>
wrote:

So, Here are the pgbench results I got with '
*reduce_pgxact_access_AtEOXact.v2.patch*' on a read-write workload.

Thanks for performing a test.

I see a low yet noticeable performance gain across the board on that
workload.

That is quite surprising to see a gain on that workload. The main workload
we have been discussing was the full read-only test (-S). For that case the
effect should be much more noticeable based upon Andres' earlier comments.

Would it be possible to re-run the test using only the -S workload? Thanks
very much.

Okay, I already had the results for read-oly workload but just forgot to
share it along with the results for read-write test. Here are the results
for read-only
test,

CLIENT COUNT TPS (HEAD) TPS (PATCH) % IMPROVEMENT
4 26322 31259 18.75617354
8 63499 69472 9.406447346
16 181155 186534 2.96928045
32 333504 337533 1.208081462
64 350341 353747 0.9721956608
72 366339 373898 2.063389374
128 443381 478562 7.934710779
180 299875 334118 11.41909129
196 269194 275525 2.351835479
256 220027 235995 7.257291151

The pgbench settings and non-default params are,

pgbench -i -s 300 postgres
pgbench -M prepared -c $thread -j $thread -T $time_for_reading -S postgres

where, time_for_reading = 10mins

*non default param:*
shared_buffers=8GB
max_connections=300

--
With Regards,
Ashutosh Sharma
EnterpriseDB:http://www.enterprisedb.com

Show quoted text

*pgbench settings:*
pgbench -i -s 300 postgres
pgbench -M prepared -c $thread -j $thread -T $time_for_reading postgres

where, time_for_reading = 30mins

*non default GUC param*
shared_buffers=8GB
max_connections=300

pg_wal is located in SSD.

CLIENT COUNT TPS (HEAD) TPS (PATCH) % IMPROVEMENT
4 2588 2601 0.5023183926 <%28502%29%20318-3926>
8 5094 5098 0.0785237534
16 10294 10307 0.1262871576
32 19779 19815 0.182011224
64 27908 28346 1.569442454
72 27823 28416 2.131330194
128 28455 28618 0.5728342998
180 26739 26879 0.5235797898
196 27820 27963 0.5140186916
256 28763 28969 0.7161978931

Also, Excel sheet (results-readwrite-300-SF.xlsx) containing the results
for all the 3 runs is attached.

--
Simon Riggs http://www.2ndQuadrant.com/
<http://www.2ndquadrant.com/&gt;
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#66Simon Riggs
simon@2ndquadrant.com
In reply to: Ashutosh Sharma (#65)
Re: Should we cacheline align PGXACT?

On 1 March 2017 at 04:50, Ashutosh Sharma <ashu.coek88@gmail.com> wrote:

On Tue, Feb 28, 2017 at 11:44 PM, Simon Riggs <simon@2ndquadrant.com>
wrote:

On 28 February 2017 at 11:34, Ashutosh Sharma <ashu.coek88@gmail.com>
wrote:

So, Here are the pgbench results I got with '
*reduce_pgxact_access_AtEOXact.v2.patch*' on a read-write workload.

Thanks for performing a test.

I see a low yet noticeable performance gain across the board on that
workload.

That is quite surprising to see a gain on that workload. The main
workload we have been discussing was the full read-only test (-S). For that
case the effect should be much more noticeable based upon Andres' earlier
comments.

Would it be possible to re-run the test using only the -S workload?
Thanks very much.

Okay, I already had the results for read-oly workload but just forgot to
share it along with the results for read-write test. Here are the results
for read-only
test,

Thanks for conducting those comparisons.

So we have variable and sometimes significant gains, with no regressions.

By the shape of the results this helps in different places to the alignment
patch. Do we have evidence to commit both?

--
Simon Riggs http://www.2ndQuadrant.com/
<http://www.2ndquadrant.com/&gt;
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#67Ashutosh Sharma
ashu.coek88@gmail.com
In reply to: Simon Riggs (#66)
Re: Should we cacheline align PGXACT?

On Wed, Mar 1, 2017 at 5:29 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

On 1 March 2017 at 04:50, Ashutosh Sharma <ashu.coek88@gmail.com> wrote:

On Tue, Feb 28, 2017 at 11:44 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

On 28 February 2017 at 11:34, Ashutosh Sharma <ashu.coek88@gmail.com> wrote:

So, Here are the pgbench results I got with 'reduce_pgxact_access_AtEOXact.v2.patch' on a read-write workload.

Thanks for performing a test.

I see a low yet noticeable performance gain across the board on that workload.

That is quite surprising to see a gain on that workload. The main workload we have been discussing was the full read-only test (-S). For that case the effect should be much more noticeable based upon Andres' earlier comments.

Would it be possible to re-run the test using only the -S workload? Thanks very much.

Okay, I already had the results for read-oly workload but just forgot to share it along with the results for read-write test. Here are the results for read-only
test,

Thanks for conducting those comparisons.

So we have variable and sometimes significant gains, with no regressions.

By the shape of the results this helps in different places to the alignment patch. Do we have evidence to commit both?

Well, We have seen some regression in read-write test with pgxact
alignment patch - [1]/messages/by-id/CAE9k0Pk+rCuNY+7O5XwVXHPuki9t8=M7jr4kevxw-hdkpFhS2A@mail.gmail.com. I may need to run the test with both the
patches to see the combined effect on performance.

[1]: /messages/by-id/CAE9k0Pk+rCuNY+7O5XwVXHPuki9t8=M7jr4kevxw-hdkpFhS2A@mail.gmail.com

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#68Alexander Korotkov
a.korotkov@postgrespro.ru
In reply to: Ashutosh Sharma (#67)
Re: Should we cacheline align PGXACT?

On Wed, Mar 1, 2017 at 6:44 PM, Ashutosh Sharma <ashu.coek88@gmail.com>
wrote:

On Wed, Mar 1, 2017 at 5:29 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

On 1 March 2017 at 04:50, Ashutosh Sharma <ashu.coek88@gmail.com> wrote:

On Tue, Feb 28, 2017 at 11:44 PM, Simon Riggs <simon@2ndquadrant.com>

wrote:

On 28 February 2017 at 11:34, Ashutosh Sharma <ashu.coek88@gmail.com>

wrote:

So, Here are the pgbench results I got with 'reduce_pgxact_access_AtEOXact.v2.patch'

on a read-write workload.

Thanks for performing a test.

I see a low yet noticeable performance gain across the board on that

workload.

That is quite surprising to see a gain on that workload. The main

workload we have been discussing was the full read-only test (-S). For that
case the effect should be much more noticeable based upon Andres' earlier
comments.

Would it be possible to re-run the test using only the -S workload?

Thanks very much.

Okay, I already had the results for read-oly workload but just forgot

to share it along with the results for read-write test. Here are the
results for read-only

test,

Thanks for conducting those comparisons.

So we have variable and sometimes significant gains, with no regressions.

By the shape of the results this helps in different places to the

alignment patch. Do we have evidence to commit both?

Well, We have seen some regression in read-write test with pgxact
alignment patch - [1]. I may need to run the test with both the
patches to see the combined effect on performance.

[1] - /messages/by-id/CAE9k0Pk+rCuNY%25
2B7O5XwVXHPuki9t8%3DM7jr4kevxw-hdkpFhS2A%40mail.gmail.com

I agree. Probably Simon's patch for reducing pgxact access could negate
regression in pgxact alignment patch.
Ashutosh, could please you run read-write and read-only tests when both
these patches applied?

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

#69Ashutosh Sharma
ashu.coek88@gmail.com
In reply to: Alexander Korotkov (#68)
Re: Should we cacheline align PGXACT?

Hi,

I agree. Probably Simon's patch for reducing pgxact access could negate
regression in pgxact alignment patch.
Ashutosh, could please you run read-write and read-only tests when both
these patches applied?

I already had the results with both the patches applied. But, as I was not
quite
able to understand on how Simon's patch for reducing pgxact access could
negate the regression on read-write workload that we saw with pgxact-align-3
patch earlier, I was slightly hesitant to share the results. Anyways, here
are
the results with combined patches on readonly and readwrite workload:

1) Results for read-only workload:
========================
pgbench -i -s 300 postgres
pgbench -M prepared -c $thread -j $thread -T $time_for_reading -S postgres

where, time_for_reading = 10mins
*non default param:*
shared_buffers=8GB
max_connections=300

CLIENT COUNT TPS (HEAD) TPS (PATCH) % IMPROVEMENT
4 36333 36835 1.381664052
8 70179 72496 3.301557446
16 169303 175743 3.803831001
32 328837 341093 3.727074508
64 363352 399847 10.04397939
72 372011 413437 11.13569222
128 443979 578355 30.26629638
180 321420 552373 71.85396055
196 276780 558896 101.927885
256 234563 568951 142.5578629

2) Results for read-write workload:
=========================
pgbench -i -s 300 postgres
pgbench -M prepared -c $thread -j $thread -T $time_for_reading postgres

where, time_for_reading = 30mins

non default param:
shared_buffers=8GB
max_connections=300

CLIENT COUNT TPS (HEAD) TPS (PATCH) % IMPROVEMENT
4 2683 2690 0.2609019754
8 5321 5332 0.2067280586
16 10348 10387 0.3768844221
32 19446 19754 1.58387329
64 28178 28198 0.0709773582
72 28296 28639 1.212185468
128 28577 28600 0.0804843056
180 26665 27525 3.225201575
196 27628 28511 3.19603301
256 28467 28529 0.2177960445

HEAD is basically referring to the following git commit in master branch,

commit 5dbdb2f799232cb1b6df7d7a85d59ade3234d30c
Author: Robert Haas <rhaas@postgresql.org>
Date: Fri Feb 24 12:21:46 2017 +0530

Make tablesample work with partitioned tables.

This was an oversight in the original partitioning commit.

Amit Langote, reviewed by David Fetter

--
With Regards,
Ashutosh Sharma
EnterpriseDB:http://www.enterprisedb.com

#70Alexander Korotkov
a.korotkov@postgrespro.ru
In reply to: Ashutosh Sharma (#69)
Re: Should we cacheline align PGXACT?

On Fri, Mar 10, 2017 at 4:01 PM, Ashutosh Sharma <ashu.coek88@gmail.com>
wrote:

I agree. Probably Simon's patch for reducing pgxact access could negate
regression in pgxact alignment patch.
Ashutosh, could please you run read-write and read-only tests when both
these patches applied?

I already had the results with both the patches applied. But, as I was not
quite
able to understand on how Simon's patch for reducing pgxact access could
negate the regression on read-write workload that we saw with
pgxact-align-3
patch earlier, I was slightly hesitant to share the results. Anyways, here
are
the results with combined patches on readonly and readwrite workload:

1) Results for read-only workload:
========================
pgbench -i -s 300 postgres
pgbench -M prepared -c $thread -j $thread -T $time_for_reading -S postgres

where, time_for_reading = 10mins
*non default param:*
shared_buffers=8GB
max_connections=300

CLIENT COUNT TPS (HEAD) TPS (PATCH) % IMPROVEMENT
4 36333 36835 1.381664052
8 70179 72496 3.301557446
16 169303 175743 3.803831001
32 328837 341093 3.727074508
64 363352 399847 10.04397939
72 372011 413437 11.13569222
128 443979 578355 30.26629638
180 321420 552373 71.85396055
196 276780 558896 101.927885
256 234563 568951 142.5578629

2) Results for read-write workload:
=========================
pgbench -i -s 300 postgres
pgbench -M prepared -c $thread -j $thread -T $time_for_reading postgres

where, time_for_reading = 30mins

non default param:
shared_buffers=8GB
max_connections=300

CLIENT COUNT TPS (HEAD) TPS (PATCH) % IMPROVEMENT
4 2683 2690 0.2609019754
8 5321 5332 0.2067280586
16 10348 10387 0.3768844221
32 19446 19754 1.58387329
64 28178 28198 0.0709773582
72 28296 28639 1.212185468
128 28577 28600 0.0804843056
180 26665 27525 3.225201575
196 27628 28511 3.19603301
256 28467 28529 0.2177960445

Results look good for me. Idea of committing both of patches looks
attractive.
We have pretty much acceleration for read-only case and small acceleration
for read-write case.
I'll run benchmark on 72-cores machine as well.

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

#71David Steele
david@pgmasters.net
In reply to: Alexander Korotkov (#70)
Re: Should we cacheline align PGXACT?

Hi Alexander

On 3/10/17 8:08 AM, Alexander Korotkov wrote:

Results look good for me. Idea of committing both of patches looks
attractive.
We have pretty much acceleration for read-only case and small
acceleration for read-write case.
I'll run benchmark on 72-cores machine as well.

Have you had a chance to run those tests yet?

Thanks,
--
-David
david@pgmasters.net

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#72Simon Riggs
simon@2ndquadrant.com
In reply to: Alexander Korotkov (#70)
Re: Should we cacheline align PGXACT?

On 10 March 2017 at 13:08, Alexander Korotkov <a.korotkov@postgrespro.ru>
wrote:

Results look good for me. Idea of committing both of patches looks

attractive.

I'll commit mine since I understand what it does. I'll look at the other
one also, but won't commit yet.

We have pretty much acceleration for read-only case and small acceleration
for read-write case.
I'll run benchmark on 72-cores machine as well.

No need to wait for that.

--
Simon Riggs http://www.2ndQuadrant.com/
<http://www.2ndquadrant.com/&gt;
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#73Robert Haas
robertmhaas@gmail.com
In reply to: Simon Riggs (#72)
Re: Should we cacheline align PGXACT?

On Fri, Mar 24, 2017 at 10:12 AM, Simon Riggs <simon@2ndquadrant.com> wrote:

On 10 March 2017 at 13:08, Alexander Korotkov <a.korotkov@postgrespro.ru>
wrote:

Results look good for me. Idea of committing both of patches looks
attractive.

I'll commit mine since I understand what it does. I'll look at the other one
also, but won't commit yet.

Might've been nice to include reviewers, testers, and a link to the
mailing list discussion in the commit message.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#74Alexander Korotkov
a.korotkov@postgrespro.ru
In reply to: David Steele (#71)
2 attachment(s)
Re: Should we cacheline align PGXACT?

On Wed, Mar 22, 2017 at 12:23 AM, David Steele <david@pgmasters.net> wrote:

Hi Alexander

On 3/10/17 8:08 AM, Alexander Korotkov wrote:

Results look good for me. Idea of committing both of patches looks

attractive.
We have pretty much acceleration for read-only case and small
acceleration for read-write case.
I'll run benchmark on 72-cores machine as well.

Have you had a chance to run those tests yet?

I discovered an interesting issue.
I found that ccce90b3 (which was reverted) gives almost same effect as
PGXACT alignment on read-only test on 72-cores machine.
That shouldn't be related to the functionality of ccce90b3 itself, because
read-only test don't do anything with clog. And that appears to be true.
Padding of PGPROC gives same positive effect as ccce90b3. Padding patch
(pgproc-pad.patch) is attached. It's curious that padding changes size of
PGPROC from 816 bytes to 848 bytes. So, size of PGPROC remains 16-byte
aligned. So, probably effect is related to distance between PGPROC
members...

See comparison of 16-bytes alignment of PGXACT + reduce PGXACT access vs.
padding of PGPROC.

+-----------+-----------------------------+-----------------------------+-----------------------------+
|           |           master            |pgxact-align16+reduce-access |
      pgproc-pad          |
|   clients |       1 |       2 |       3 |       1 |       2 |       3 |
    1 |       2 |       3 |
|-----------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
|         1 |   31765 |   31100 |   32961 |   32744 |   30024 |   32165 |
31831 |   31710 |   32063 |
|         2 |   58784 |   60347 |   59438 |   58900 |   60846 |   58578 |
57006 |   58875 |   59738 |
|         4 |  112786 |  116346 |  116513 |  114393 |  115238 |  116982 |
 112964 |  112910 |  114248 |
|         8 |  216363 |  217180 |  220492 |  220160 |  213277 |  222844 |
 219578 |  217326 |  221533 |
|        16 |  430783 |  428994 |  405667 |  441594 |  437152 |  434521 |
 429309 |  430169 |  425734 |
|        20 |  531794 |  530932 |  530881 |  546216 |  536639 |  538384 |
 537205 |  529382 |  535287 |
|        40 |  951640 |  930171 |  915583 |  958039 |  831028 |  932284 |
 951259 |  960069 |  955081 |
|        60 | 1087248 | 1085500 | 1082603 | 1108364 | 1117380 | 1119477 |
1123136 | 1108958 | 1121190 |
|        80 | 1249524 | 1253363 | 1254437 | 1256894 | 1241449 | 1277724 |
1258509 | 1270440 | 1261364 |
|       100 | 1384761 | 1390181 | 1390948 | 1370966 | 1365666 | 1361546 |
1424189 | 1404768 | 1417215 |
|       120 | 1440615 | 1442773 | 1434149 | 1545179 | 1527888 | 1533981 |
1577170 | 1569765 | 1566950 |
|       140 | 1400715 | 1411922 | 1406841 | 1692305 | 1695125 | 1661440 |
1726416 | 1707735 | 1713590 |
|       150 | 1335935 | 1342888 | 1340833 | 1662310 | 1655399 | 1695437 |
1737758 | 1731811 | 1748215 |
|       160 | 1299769 | 1293409 | 1299178 | 1702658 | 1701668 | 1732576 |
1718459 | 1725853 | 1714432 |
|       180 | 1088828 | 1096198 | 1085467 | 1641713 | 1652604 | 1619376 |
1682716 | 1684590 | 1674715 |
|       200 |  994350 |  989267 |  996982 | 1636544 | 1650192 | 1629450 |
1654997 | 1647421 | 1646110 |
|       220 |  920877 |  922182 |  927801 | 1613027 | 1630249 | 1635628 |
1579957 | 1570928 | 1576457 |
|       240 |  887654 |  890656 |  881243 | 1565544 | 1574255 | 1570622 |
1486611 | 1496031 | 1497658 |
+-----------+---------+---------+---------+---------+---------+---------+---------+---------+---------+

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

Attachments:

scalability-pgxact-pgproc-pad.pngimage/png; name=scalability-pgxact-pgproc-pad.pngDownload
�PNG


IHDR�`���FsBIT|d�	pHYs%%IR$� IDATx���wxT����w�
��$��PBB�`B�R
AQ�A�~���D�H�
(��� 
�MJ@jh������q7������>,�3g��;���S$""0�0�0�0�0�0��Q���0�0�0�0�0��	;��a�a�a�a�a�2���0�0�0�0�0L��h�a�a�a�a�a�L`4�0�0�0�0�0S&��a�a�a�a�a�)��0�0�0�0�0��	��f�a�a�a�a�a�v@3�0�0�0�0�0e;��a�a�a�a�a�2���0�0�0�0�0L��h�a�a�a�a�a�L`4�0�0�0�0�0S&��a�a�a�a�a�)��0�0�0�0�0��	��f�a�a�a�a�a�v@3�0�0�0�0�0e;��a�a�a�a�a�2���0�0�0�0�0L��h�a�a�a�a�a�L`4�0�0�0�0�0S&��a�a�a�a�a�)��0�0�0�0�0��	��f*$aaaP(���/oU*�B��B�U�)[�riQ����P(���������c����mKJJ*ou�aF��
�[�a�1�b1I��[�
�1_.^��U�Va��q�������r���}S�NE������
{{{��]QQQ8y���r


�x�b�k����P*������o��m������[��[o���J����h��=bbbPTTd�#Z��bYc���
^y��������N�2���e�$I�������kkkQ���m[�*��3g�l�2�5
aaaprr2�M(**������o���vvvP*��^�:�t����������0�r���g��9���A�D��;Wo���"�l�
�VVV��k�I�>o��]�4�U���,"�n���i���M�6���@�J�����z��a��AHII1H�%����$����x��P�re899!00�G����m��U�1�0�a* ���$I�����*����$�
Ey��T9t�I������4J���{���[�W(�P(���J%-X�@��k��Q�f��tQ�#I����TXX�SNAAEFF����E�~��Q�i����>v��E�$���-*������r��z�={Vo��;w��7e����1�,'������V��������`�z��m��V�`��]��60�M�v��h��T?\�/�S��>}���1����?�r<y�d�������_�$JHH0IFNN����$IT�re������E���
3)�������V��4��~~~�UMk��f��v�Zrqq���
4H��R���G���w��)�r�����*���a��.o8�0�>����q����-[�-�������+���+++:o���J%������_���;:t(�T��7�xC����\t��������p:���8v��O��'N 66���:g�|��������W�}�����+W�`�����y3<��]�b��=���1����,fdgg�������,���������<�<�yhgg���#!!_|����r}��0c<��M��#G���������:F�jH����xyy��Jaa�Z^�fM�5
��������S�0o�<������S���#�;������<k+)�x�b����x��1"##�����9N�<���'���1c�����3A\\�5k�7���K��m�����:������W^����amm���{�d]��U/�{�Faa!���^Cdd$���q��]���s����;w�x�b8::b�����X��|����j�*�em��Qh��$I��0k�,\�x�
������P1�T��P�p������u���������m����;w�����&�������$G�%{{{�$��V�J>�(g���:������� �����5�IMMr��������0@����o~���������?�5jh�����D;v�/���rss�[�
����������G�$�����8���uTu���f��3������T�R%����e��=�3�>Ls�����d�w&&&�&�^�Z�	���Z{����Z�9�P3�
�35Zf��A:�rAA���jeeE�v�2+��
U�����u����^�u��u��M��4i��0�/_&OOO�$�*U�D�����X��T}�������wK��}�6��W�$I"ooo�������1�<���Tx�W���>�:t3���|2��G�b��M��m�j�E�1c��]�&���RXX��3g�����w��
�������^����_k�I��$I�7o����}�3f�0����[�n�y��������?�@�$q��<c�����};&N�������JJ�$�5������;��]�b=z[[[����i��0�
���8p 


0t�P�l���U2��� |���h����;M����#~�9R��fy6(�����t���g�&Se����Y�&`�������9s&<2d��������'..N�~�����'�w��������1L�����(�/����U`^�#~��7pvv.���s��\�~�-����<�b��v@3j��'''�����Pxzz������Oq���d�]��������R����?��}9r���
�p��U�;u�����\\\���U��c�0|�p�������Q�z���u�����B�������_�A�ptt���#�5k�9s��]J%s��q�1�5���;lmm������|��8v��^���������ysq�^PP�����#j������j�����+�����UCPP��K����GOU���\�R��
+M�x�qdv����7o�z�-888h��Z�j6m�Tj��G���?�����h���F9���x��7^�w�������a'�}��8�1$$��o����N�BVV��[������M����EE*�@�v%+V�@�>}���{{{899�n�����'p��]�d�W�(v&5n�4~���c���:���-�v�����������A�T�����w���[u�)�Wdggc��Ih��\]]��d��������S������sg���j������c���ze��*���]�p�F�B�z��q��i��}4hj��
'''���������7xK����c�������R�D��U��K�yh*6lP;�������3f���t�-��Pf�����t��Y_}����999x���P(`oo�'Nh
�c�XYYA�P�M�6b9xyp��}����Wk8�{���f�������t��>>>������+�����o_��MG���!CP�vm8::�r���U�"##� -����,`��

���
z��Y*^vv6�N����[���666���D���1o�<<y�Dg�/^���c��I����R�JpwwG@@^{�5��5g��5,M��z'���m�H�����|������o�U�V���-�����uk|��W�w�^�=�*�V@�-)�����#::��/`���z�Y���y�&&M���M����M�#�w���~�Mg���D��			�����7�W�[[[T�^�������
��"p��
a�yzz�k��f���;���i
'�wD��AK��P��Z�����i����.���/u�i��J��yyy���o��E�����������	t�kMew��Mx��7��������'�V���pvv�R�������#�����0~�x�����R�
lllP�zu�h��}�RSSu�7�~���8u�����lll������@���������;w,(.�3f�@HH�xvooot��	.�i{�z+��{������(�J(
����8>�7�|���0�:99����Z���q����i�5S�P]��m�6��������u.�*((����k=D@�T����*��h�JBu���t����z�@HH���h�����F�U*^�����kt��=���>}�^|�E�r���t.��������������T\�-8n��IM�6��~��t��-�zX���B����N{���X��K-
��#,,L�w���a�w�T*K�-�^�t�N9|��Hs���j�T�
���:�����"���Su����mI


����$I�z���:�����SAA�FY����9s�4h�����O?��h���<T����k�����$Idoo�q����-�o���RRR,��,c��G�*U��?���*G��HMMU;�T�5w�\����9�eff�ZXme9$$D�r\___���%�7n$''�R2��['�r��$I��o���Te|��G������j�9iJO�TRLL�V��+������T*I�P��
���[������
I�DAAA����Ran��!����eee���*���&��5K�Y�x��p�O����c��$???��^�V'NT�)����� ���Dff�������={��Y�d	9::�l�^|�E:v���4��]Kvvvz���>0)O
)������x�������m��]lk���===)99Y�����CFu+��s�RAA�����(11Qg|K������[�Z�jE7o��_��BA���4q�D�������aV�=�-8f��-�=z�Ed��__�Q��$"7n��?Mu�R���o��YS����Ue���O{L���:t�T�Zv�U�FG��(G�������IY����Z��~V[����;=z�H�3|��Wjr4�.I�F�������?�m�����W��%"JIIQ��5�^�N����5����BA�����_���P(���>}Z������/����=��2I��y���p[�bedd��-[h�������k=�v��BV���i���t����?��=����H�TR���E���l zzz���������#i��]���N			jN�N�:i}>U#�Q�F4�|��};eff��5k��7��;t���XW�'  �i��q���H�������R�������h������"���EGG��;���C���L��=��������gi��5�����L��m�C���U��N#0`�V=,��?�(������v��E�����������> ///��w���5�-����%��HS(t��I�{o�������o��F��`��{�y�o?����O�>z�7c��$W�^2F�)���y���X��������H�M�6C)))���I6l����S�:uh��F��/�������t��-akr�����U�Raa����5"������g����i���4k�,�R�����_j�#�T�F
�����>��v��I�b�
��������/SSSI�TR��=i��y�s�N:t�%&&RLL�Z�x��W���l`������H���4u�T��{7�����?�,����j���(���K������A��-��m��m��l����{������(�?88�$IR{S�EEE��cG!�~��Kiii���D�����m��e�X��0���Bj��u�~��{��:M��v��������;_�j����b����+�����WQQ������F�lr]���K�.�d�:x� �������i��������Jf������������h��}t��A������<x�Fd��$I�}���/�_��233i��-��/������"|��Ui��i�a�����m����#�3U�V��]��������U1bm������)--���_O�&M�&M���A�L�Wc�����w����Gi���"��m����cj��7��m������I���I�����k�RFF%&&�������$I"GGG���p@��������}���"���(�q-�~'&&���IR�~���
�;vPFF-]��^~�e!�a����y��M����K)==����(**J����t��m���i9�eg�B�����[D���_�$�8q��0�/_6Ohh��0�j7���H��'�����H�!�$�����?�1�j*;�{��I��eff�����G�"��������e�a��$I�l��~��JKK���d�5k���/������4n�8JNN���4���{eK�D���Z�5j����D�G����7��C�h�����O?Q���I�Tjt �k�n��I���������������C��~Z�t)EEE���/-Y��bq��N�8!��Q(����ieff������"I��QC����F~o����E���h��}��7�����M�$z���i�����B��m���������^��u�j}g���f���$���5�[�x���c�R�>,:�_|���ED��?�CG����
D����cG�0yyy���$Ic�t�Rq���Z�`���"��/e�������#GJ����NOOO���E�	9/���N����K�����k����S``��k��%�
=???�P�/]���X��'OD��� ��K.T��a�B�w������������S�z�o~��
�u��z�7c�Vw��2���/�n�����{"�V�Z	��M��3�������_���h"���{���*EEE��9v�X""�;�%I"��+++��W�N�T<�������������5������/������O�4I��[u�G�j�4���W_}E�$���5���oZ��9R�,��&??_�ikk�q�^nn�����4P����m��r��1�qqq�8x��]arYrwwW�����6�������%����4��������$�x&���si����o�>JHH���5Y���\1����J��[����z����N�<)���W�.�����Mu�����N�:O$��rU���o�\���7=y�Dc����\�2IR�Y�111"����kM��L^�c���zg�!������������������C��e��&*v���I��V�Z��4��.((�����6m�T*~QQ����B���q�y#I����uQ����w��|>]��Tqqqt�����z�����-EQQ
2D�����8@[�n��S����+I�Dt��9��,�n���]������z��$I�r�J��O{LU�
���L�0A���q�d�}��w��y��m�����Q���?�W^yE����/F���l��]�F���j�������
[�d?�Jaaa�6���D�en�����3F��4)G����mu\^�)I��4a���gv@3jhooo�����*�������d@��\�R�3����k����%f�i��e\�l-�����WU]�g�}&���Q[TT$�,GGG�[@hB�������?_�3w��>^z�%�$�z��U����X���7E��-[�
?v�X~���j�d'�B���,Z�+m�����
��l��S��G�D���`����1y�
yV����p��<�(�~���"����-�����z�:�7l� �v��Yv������L��p@����l�2���_���}�_|�3������/
���P8R>���aT�?���VY>$www����1t���/��FDD��[�f�HO�J���$��AAA$I�3�u}X�6m�HK�l,K��p��9����S�W��7o�w���J/^���T��:((�h��!���&*��Q�F�Z������4K?�����������/_�5��}�D�=z����<i����4eg�������G��Cu��>(
�3%-��hs��1�����~\��U���'���xWVh�:r���GK���V��:T�U'~�*UJ9�T��Z�jZm�����3nQ������,����E�E����66m��6C]�ruu����k�:As�M���;v���Gu��|������J�
�%���P�������;j�U�������Quu��3���p��x
6,u_vP[YY].�,c��+��4ibt���MOOy��sg��


�lr�R+U�kkk��-����T�V>��Q�����y ���m%c��};������Ze���C�f���$	�z�f�����# 55Um���'O�������7�W^y@�a��@I���;�h���Y3�6�?^�����q��E@��}Q�jU�:iC�$���i�� IDAT_�J�ai�S����sQ=P>�B����+�i���L�>VVV���G�����qcq����
>@T�"��������Sf�<�y����px{{����,��6m�u��-�����4�%��wo���(���/���2���D~~>._��'N����8v��?����:�3���
�z�-�����q��mH��7�����eK��]��e�����pY��7�k����������������������v�14�=B�v�0`�������,Y�B��w��O�>���


P�re���oj�ZySPP�_~����;���!I��c�A��}������/�%���Kk��-["((�s�N�}���
��Y���+���u�


P|�bzz���l+~��'�2�O�������Z�B�5t����S;����'j�����J�*:�X�����$I������prrB��}�n�Bff����{��jS;::�v��,g��l+t]����q�b���
�����s��������������_D{�
K����/������cG����=��G������;b���j�����9����*
q���':=������������
�5���/^{�5����7o�{w����={���G�
������W�O8z�(���o���U��t�9VVV�����Gbb����Z�����^}���LAA��
?���Q�y��:��h�B�>r�������3g�(v����

64H�
����t��A�{����N�.y}��7�Yn���1-���i�E��^rp�j��m�V�3B�:uL��n����G�j�TN�q�}�6������o"&&��3�9V�(�J�[�i�%Q=���Gcd=
9�p��y��S�����W_����E�|��!q"r��m������zK8����{�>��������y�Cm(
������T-�###���P5j$������F�F�@8"5aoo����2���y��	����f�����>>>Dpp0�����������3����F9���������r������P�^=���TT�Lv�h���/��R�x%1��0�E�a���������M�a
aaa���������s� I�����]=M=z�W_}�'O�?���w�}���������c:tQQQ����?��V�Z����&�%�/���U�fT���\�>}@��TW[����Z�m�$�l7�����&$$�����uP\��]�&�t��]85G��&M���/�DRR�Y}Sy�
�;OJJ�����������&�k'N��S���sss1p�@�;���r�hoo/�]ry&"��kB����n�y��������z/}������q��=@�^�����5��v��}���Y3�\��+W���sq��y������[��aZ�h�c�������:��R����6n�(��]�v!44ppp@XX�O>�D�+�'OsL��$IF�Ot�]}6�\_�dm���d�����n������:p�@H����<�i��;w�?�����cs��y(I�^;N[�D�{S��z�j���9r$����m�gv@3jxyy�����)~��uK��s���0�������^[�EDj
��7���eZ��R_Ue���P����P����Q�$����a���~��k�T
��}�b�����Cnn.V�Z�A�!((nnn���76l�`��F�P1d�����c���!�"##���N�:-�P���q��l��C�E��������c���G���q��}��*J��������6�\��<��<[���K��s'�/_���C�T�YPe��>���)((����V��E�dN	�u��
1j�(������@�.}����cf��LW�E����}~cf�iJ(^���<��+�9v�!���?��0y�d��U�h�0e���A�;w�9s�<�2e
v���0a��Y3(�J��� ((s����?��������MJK�;L�Ummc����u�Rm���6o�����N�I�&�m��pqqA�-0k�,�t+k������sG-�1��4V����Q�&M��`��9Z��G�mhy6����^����8�[��&�8�+//}����;w`gg���dDEE���VVVpqqA����{�n1su������?K�k�v�v���Mx�������������wV���S�����m1�o}1��/i����6��T���uk����pqqAaa!6o����(4m�������3�.]����W�C�B����D*�t�R1+�������o��{wT�Z3f���o�r���[����������,..Nmi�>���L�>-�]*6z�hDDD�������������l���`���X�z5����v�Z899����Q*��R�
n���K�.�
/��$	>>>j�|}}����,��hT��$G&++� }4�1]�������:w����;#))	m����5kp��I��?/^������1��<0���q��sj�^�zh��)����s��(^����l�|s0������y���']����{bve���1p�@���KmfQhh(v���7�����7����RX��0���g���w�����prrB�����nUT���_����"B��5��uk��_�f
.\� ������7o�pzbbb;"&L��5��~�Y�f����X�j����w�6�-���t�U�z:t�P:��4K��F�������i�������N�!55����>}:�/_n��������;�M�fp���#O�<Add$�����������m����/c������^|��Rq-�~WT��<������;/�����,�0����y3._��x����@�����1m�4�i��x�b��5���tvvFtt4���q��=dgg���A�	(���$���OsLe,����&K�S��%��w�y��u��+�u�V���W�\�����y�fl��3f���
Jm_dN\S0��qww��M������+W"))	�B^^��=���gc����>}:F�a��v@3j�.����2www�[���!K	T;��u����t��R����������r_��:�L��+*�'O������S�J|���������i�&����8w�����%��A`` ����+W����{��q���K����X�b�������,@�2�j<��3V�!����k��!�u��a��!$$������9sF,[�S�===q��)\�~]oei��<�Gdd$����b�
�\�,�������}�����3g��2��<}�4�����������U��Y ���
���<�������
�+��7����!~2�_.O�>R�5r���������7��'�*��������x�������	999�v���7�,��\�~]����@�{�6n�g�����3F
���r��%��@�rdL�+�T���{��n�
�v���]�(nOv�����xl���n��o��s��|^LEF�����.���*&L'L� l�E��s��x��1��}�7�b�����JMX�<?����>����Ku,��I�a7n,~�{���u����\j�Ann���S�J�R{�>�1UI�]���C��6��X<<<p������kJ?di����3�/\��-[�`���8|�0>�~��!99�"qe;���7n���*�,���M���j�<y����X�qqq�����Q���A�k��"�UDxF
�}}4q���[u/+[[[��Nu�cM�=�H&//OoXY'�B!�������
J�,Q���8��:u�`���HKK3#V�\Y��B���H�a�.]3.[�lY���:A��������Go����A��2#/�{������#��u��U�����G��>��<�y���}����V8��U�V������u-������|�BY�O����{�:T������b�<�m����c:���0��@o������{��%Q]��o��jsW3�_�~�w�����z�j������sy�������8����R�JF�'�g��5xK"��mZZ�^{J>����Q�����������[|�777�������]}��=�K�+���J�*����A�mT����Q7n,�j��^{
���wc��y��[��~���^�E.���-�!"q�������5������K�uO����k��m�4m�V^c*"2�b,r�3g��mKT��j��7�ZS�e�_����G}���T1�k������,Wu�}}v����e��(�J�m�?��#~���wM+��'����|�r��K�m$I*u�|�-�� �_��`����~VV�m���E��4h N�]�v����eMPP��g��eF<�U\\\������r9lFF�����k
'�s��4���i�F,�\�|��}`�#;<<\m;P�����������3�V�\	�x?*yI����1j�����{�����Y��Q�b��<����z��[[[(�J0������sk���z���b�Rs��e�?��_�.��e���Os@�o�^��x�b�f�i��W_P����u��7OOO1x���?u�~��'1���?��b��9(**�y8��O���3���'#%%0v�X�k��~�-����������a��Y7771�����:g������B�(5�����L�;�������������R��oor��P(����_�Y��E���;���Q=KA�@3M����z3f�(S�����0`�666���+5�b��9b�������`��[~�D�E�i
����e��(��*�����(��C���J�M3�K�"#�+2O�������I�;��R*Ly�����*,,����JO�/���jc�������%UWo9;;���;�(���+�*UBXX�����4������jsT����VM^Y�,���hF�7n **J����c����;���k��<x�0`����\�zUm��!,Z�;v�(����<DFF���&����7"={��z
�Lzzz���7n��/��z����7d���@BB��W����sG|�uss+�=��~�����3�b�*!!�T�c��a����y�4�@�P�C�rrr�Ne����(��$���>��������J9����N�1c�<{���y?����ZX�p!�gkV�+��"���k���������r_��=
��_�������#|���O%��#Gj|_YYY=z4�bc���>2+����L�/U�sy�T�����<������{���G�z��;v��H��]�����G�3�J>�9��}nn."""4��JKK{����X|������@q������_~S�NP<������T*�����}�����M�X
^�u��$**Jk�;n�8�h		1i��~�����w�}�s�����R�
6L�>���O5�uz��-���$I���O��S�q�����@q���C�?���v�l��E�ro��+%^
�1HD8u��������g���6�M�o��?�`E50a��:c���W����`����,ry��T���[71;�����eK�xEEE<x�p"
6��n{�4Q�����ASh��=���m+���l�;V�_u�`�vS����������(�c����KR^c�#G���/��xo���8q���}��9�$22R���N���y���DDD{GS�/�rD���z/^����k�J�N��_�-[������������^���m����m��I�#�����������S���/�;<K�����'..�$I"I��E�$I�����+(==��l�Ba���3e�9R��Q�}��w��~JII�o����������7nL�$�B��('44�$I"OOO���'9r$%&&RZZ%$$P�
DZ�:u��|�
R�=**����JOO���u�h��I��aC�$�&N��U�y�k�.�VBB��0o������I����c�������d����s�����Q*nDD��|�9��Hc��):���$I���A���JNN���L��s'��3�^z�%�Ktt�������'��3g
�!!!/�������g5�9}�4����$IdeeE�����DJII�3f��[�b�V}�<yBM�4:t���6l�@������@u���>��c��6l�0�^�z���?Sjj*�_��������M�Rnn��yhr����&������/M�<����Cw��u$%%�~��7�H�D]�v�(�"�{"�.P�*U��aLL���PFFm���&N�H�k��O?��h���<T�����F�OII������
���-yyy����E�5k�,�w=m�4�r�+d,�?��_�iH�D;v�U�VQZZm��������������v��:�����$I��m��}���Bz���D���������)##�RRRh��4v�X��������u�VR($I���������?88X���$��������N�:	9������XJMM���$7n����r����k�aI��\T��!�M7o��j���$I���B.\(��~�EDD����+�l��>�L����G)����k�d�������,�5o��bcc�������FK�,�v���������~�uNKKeD�$���-Y��8@iii�f�=z4��Y�����R����K�:���_��}��������S�5��!C�h�a�����^�xQ�������cVVV��W/Z�t)8p@�f��E�:u"kkk
		Q�AVVV��}{�1cm������(%%�~��w������v�����gt�R�-U�.\� �#((���_OG��'N��'(;;��<�6666����G�c������g���T*�F�F�d{��z7j��


t�����Hs��Ej�,�~'%%���5I�D�*U��?���o�Niii�l�2j���H�Q�F��1ycl?�	�v�$�������#z���O��y��=�\���KS��!������i��A�q�F������w��_MU�Va�4iB�����X��|��w�V�Z��_���[)33�v��E��O'��2??_��=�1�����={�6�����G�"L��U���[��[���W������O������J���T�^=���6��#�999����i��-���I{�����z��7I�T��{�J�7�~���%GGGz���i����s�N������$Z�p���f���KDt��)rppa�}�]��i�����5k��I��5�����d3^�}m���4~�xZ�z5�������h��
E���$I������'u�{�a4#*�B�����S��]E�*y�����]���*,,�w�}Wk|;;;Z�d	���{$IU�\Y�U� 33������		�����8u�T5�O��P(h��Y:���!�H~~>
:T��.WW�Rq+�I_���4H�c(�;0�����*k��=:��R���Q�NW�^��M��|���H***�)���P���t5o��$��������z�*������5k��0#���^���3T�~}����F��/��j�����HJHH��_(
>|�V9�l-�?��_=zT��^�����}���}Fc�DDyyy4l�0�����VVV�|�r�r���t��!C�P||���9����$�������*�yu@�����NDj�%K����\��5���o��YSo|wwwZ�~����<x�|||����s�j�?i�$�uF�P��������C�DD�����F��]�c��D]W�:u�Nr���t@EFFj}M.RRR�����|�_��I:����G@�T��������u�yyy�$I���L�.]R�o��{��u����3~���K9�M�K;�
����t�\�p������'ON]WHH�N��R�f���u������C��u>=�1��G����K�w��z��t��Q�rL��,Kmmp�=���G:�L�:�*U���=������j��*
z��������+��~���$IT�n]:w�������TmO]������:e=��Qs@����X


%OOO����_|�>���r��A2��]K���"���?
8��9BDD���:IR��@M����B��=� IDAT���k�h��1T�^=rpp j��5-X�@�sO����4i�$
		!///���!{{{������p�������c�����D���:������
F���'ggg�O���4m�4�3xe�P'�B�(s'��3gh�����oS�
�j��dccC���H�
�}�����������[�h��)��Q#ruu%{{{
�a����'�����-ZDm��%///R*����Co��&m����g��y3����|||H�T����k��~��'���� w��:���g��Z��>��Cj�����C�����V�J����sNE,����%K�g�����Cvvv���J�����W/Z�d	=x��$��{��e�``�����dy������{����H�T���'u����n��S��}EI���J���/�\�B�|�	���K�T*����4h@����G�3����B�0��y��I3f5o���T�B�*U"GGGz����{��4g�:��N����6�j����KZ�n�;P�w�a��
���o�z���B
4���GSVV���eaW��j�7�����
9|�����o���5k�B� ggg����MJS.o�^�����������p�Y�&����r��C�9s���|�����?>���kT�Z5���%
�������k���'Z�>|�Lu��!GGG����Z�j��(%%Eg�����]��&"z��!��7��t�R*�^y�3f���*����u���'�|B�Z�"���'�RI5k��.]��������iH9�d�+,,����Shh(U�R�lllD9�����SBB�����������lmm����^~�e����
6h���mF�!��"q���"����h�o��A'N��M�������R����[�n�l�2�q��S�iUTmC/}��3�
:t�d����4z�hj�������[@@���W����D����N��9���nnnL#G�4�cII�zLUrI^^��3��7oNnnndooO���4~�x�\"������i���,�������o��M�������1c�q�����&���Z��q���-�����/_�������&M�P�5����(  ����O����4M������i�����uk�R�
������7u���.\����1����<JNN���h�����]�\\\�����T�Bm���/���n���W������1����8p $I��]��>
�^x�\�p���&���0L�QTT$��4h��_�$%%�m���p����\��pZy?��<��"���d����&�0�0�X���h|���$	���g{�a����������W����U��U�a�R��wO�6��M�7O��<d�a�a�a�%��X���q��&�]�&NRV(�dx��/���!~��]�5a�a�a�a�Y���`�/��;�V�Z�G�x��W;;;��q���X�p!n��>|8^z��r��ax��N�:���Oc���kkk���[<-I�,.���!�0�0�0���hF`�e�O�<�o����~�M�}I�0p�@��9�"�1c>D�v���%I��1cP�Z5�����B�����y�0�0�0�o��0��hF�������u�b�����u+222p��
��}����V�BBB0p�@�l������r�wrrB`` >��CDDD��V��xVg�K�����0�0��aI�	�����?�0�0�0�0�0�0eB�0�0�0�0�0��	��f�a�a�a�a�a�v@3�0�0�0�0�0e;��a�a�a�a�a�2���<3,_�:t���;����P(�Pp3V���������T��0��DGG�����e��.YS�L���eCXX
����[�
OY�w����H��5�+W� **
�k������r}��=�7AAA�������0�X���D��'$$��:�T`��[�aC�0a���+�I���5�K�.a��mHOO��C�p��U��u�?���3����v������G��5��{��-HMMEzz:��9���l��}������F��M��Ot������c��TD,]���z���Y�$����"����/�Y�f�~�:��V�����h��%N�<�3S6`���HOOGzz:��?���l��s�+WF�5��E�������)�����ev��)����������������l�����X�f
�o���������rssC��u��yst��
M�6�*'11Q�3������
������;"""P�re�te�t���8���)))HKK���'����[�n���
U�TA�����o����F�J��y��,X�III�z�*���{c��!P*���t������7�I������>��c��Q���f*8�0S��|�2Y[[�$IT�NZ�j���_t��1:v��Q��N�J�$�]
��
���*W�L���3[w+++������/�LW�\1;��M||�x�����V� |}}I�$
+oU�
Dtt�(�/^,u�����j������E�)S����!44�$I"��V��Wf��\^"##-*�,�;v,���G��7n�����k.""����D���������K�J��l��]�RNN�F9��')�J�6�B��O>��

�/>>�|||��d;��_~�(k��]e�^��}}}���C&�-��W�m???�aE}LHHx
�1�P�V-���:u�4��0aB��@UN������Sz��Y����������L����D0��0L�g��(,,��=�;w6Y�B�@`` ��i�
�Z�j���FAA����[�+V�����DDD�����3Z�n�����V�Z������+n����G����~��S�p���o�������59��MDD�Y�S��,
F���'c���z�q�a�+l����iSL�>]o8ooo�����X����;�����Y3����������z�*�����O?������q#z���;v��������\H��������i���R�
����m������������w�!77�����SAA�����m�+�����;�a��pwwG~~>n�����Tl����S�0h� ���_�3���_~����>|����c��EHIIAVV^}�U�<y...&�,���1��	

EQQ�S��1���+�C�h�����///xxx���[8}�4bcc����S�N�m��8z�(�T��Q����1m�4@��5�����i���}�6~��g,]��O�Fxx8RSS����Q��}���O�������G�F�N�@D��u+f�?��;,����w��A�(��
�`AK��[,����G��I,Q��Kby��.EDQP�v@�H�~�?xw~�leY��\�^��i3;sf���sV����o1b�\�p;v���C����N!��\��B����J�U\\�4Lxx8���a��:u����Geq����������7oV;/�qhOO��]�����CZ�z@�>�������86v�X������q�K�.�T2"TZZ�4LNNsss�����OK���������K���C����{�YYY��\�vMn�o���goo�._������_g}��e2�{@+:VJKKY������W�V�7!������O�{��3gJ��$���O����8���[����H������3g��������-[2�����6		�
��=�������|X��!��+((��kkW��
---�a:w���1�����k�e=�����h�"��.\P;/R1���]���}�|
���(?�����=?���C���s����/�Zc�����c�������qc,]�������?����?�
6lllwww��l��=��9�m��)
��q�?>��k��U*=B���r��d����{����#??��/����F*��e���A��m����)�����}�6��/�����T��={b��q���X�9sF�:�5@�O�p���0������GX[[���-Z���U����;���������g�}}}}899a���HOOW)���c���h��,--����:u���������������X�lz��	;;;������1bN�:���g���!f���
�����������c�TZ'Ub��-���lll���+++t��
k��Ann���._�@Y����#����m�����S�^�y�t^~~~��y��	����y�ft��	���055E�v��m�6���������B�:u����&M�`��eR����x�x�������������lmm���GGGL�:IIIr�����Dptt��w�d/^�����M���x��3-Z�������P�^=6��WX&UL�0�/P�*��U���C��]"�H����"�H�������>����{��{w��]���pvv��y����+�y������~���������SSS8::�s��X�x1���+�m6m���1>>^f���G�aF�%3LBBf���
���x�)��D"~���������~��������5
��u��UL�4	M�4���1tuuakk�f��a����k222��������Z����	LLL��}{�[��o�����{���_����_���G�z�0h� 8p@�k������d|���h��)LMM!�doW�\��)S��qc���������;v���^�;w�`��I�_�>������&����y�&���������
������l� <����+��;::J�MQ�*�����b�
��������5z���M�6�7���:�m����w���
D",'>>�f�B��-ajj
XYY���������?������c��k
��u��}�a����M�P�N�
�!n���$V��)M��k/�r�mII	:w��Hmmm�����'>>����Dh����k��x��	�����c��������.�����C|��������������������Ol���???�y�Fa������T,\�M�4���!�����kW���[�����pEEE������������999*m���7�EDD`���h�����a``'''���k��Arr��z��M���e^+��F�|�2��'''���M�4���3q���q5��_�~���������,,,��aCxxx`�����U���@�����G��#F��F$�C2"  @*��#G��_~���2M�<Yf��x���	y/�����C��L�{��,//���������,�a��,55Ua�k���_g��_�v��N������D�f����[������Dny-ZT�m�c���c�5R��u��e���2�Z>l��f�b����faa��"�����<�-Z�����_��������.]����#F�`%%%,??��=Zn�:���<��){%]�<$$�M�8Q����_�����[U~sy�
zxx(���
�PRR����[�q�����/���RX6E�������$���;w.^��D��F�}&!!����W�oT�^=��g'&&�eRTG5l�������;|z6l��N�:|6662�l���O���+���O����DCm�����c��m���)�MD"��eK������������-Wx�$&&��
���=<<XAA��2DGG�t����{����u���N����F��pr���<6f����?^n�+;N����4�M�V-CpL�0AfY��"�����Oy�"��S�>���(1��m/�������u��46l(wB$�q���o/�����������d�����Q�O����+S�DEE�����J-OHH��k��}U��`����>���35Z�����K������k��u��W�^I����c��5c�1===����X�0{���8��y}���"1����fff2����W�^e666r�=z��t��p�^�b�����N�����7on���72�Xvv61b��������3a�����#<o�r�^TT�&O���,���l���U���^��j���t����K�o�1��m�D�T^rr2����KaZ�/_��N�<Yj����8�)����2��X�
*�R�F�h���tq�:v��W�'O�d������_�b�����]��q�z����9�������g%j��(�0�X�[���={�EGG�S�N�I�&�7H-Z�`���Ri9r�������G������/����6m���6m��1m�4�e�i��-300`���g,22��^�������.\����NKK�h���f����z/�MMM����%�������8��W_��Y||<����T�|B�������l����	��8��W_i$}�������.^������ehh�tlYe��Z������:u*;�<���f����8�������=�q���N�8������c�$��%K���O�h�����;�8��������EGG���@���F���(�t�������������8����I�K�OQQ�D<�/�q�u��l��-,((��/�"q������|Z�j�ttt������s�Xtt4`����k�Z��D"6n�8v��I�N�:%Q�yxx��G���1�>|�]�z�������@�v�Z��o_�������%�
�Z/u�t��m�p�����V�v(���������giii|at������k����k���dW�\aK�.ezzz���n���.�O����_�>���_YPP���a���l����~��l���R������5svvf&&&l���,44�EGG�����5n�X��(Kdd$���g�f�6mb!!!,&&�����]�v�:�i���G����k'''fbb�,--��+��K�Xdd$��o���a���o��gO�w���;���?Yhh(�y�&;x� �������`u��9��S__���?�������(�w�^~�B�:TUt������.���ak��e,""��Y�Fb�]y
�������s�8���K�����g���|8Eu������Y�N��O?��^���l���L__�q��q&��U�V��ql��Q,  �EGG�s�������1������k++++�t�R�\x��uv��a�`�����~�����d5^qq1{��9;s���������-���V;�5k��i-^�Xj������J����6`�~�h9���k/M��G������_j��i�������������~+q0�|v��Y������;��a�����T��w�X���%�_<�n�������W_}�����qLGGG���:�q������Y[[���������7o��[���u�J�v���������.�5kd111�������	�nM�7���;��8::�U�V���!!!l����k���M�6|�������8��^�z�d^+�T�]��loo�6m���_���\��~��g�a�q��_~��m\PP������S�Ne��g��_g7o�dg��a+W�d��uS���!*--e�^�b��]c�f���---!^x���7�(L���7��PNN�L��C�u������u��C
���#l�8��Z�J*LNNAbff����e��(..�/uttd�2>
�����6N����7��n,SRR��---��Zkii�G��'\�6m��l��x�"f��!r�TF��*�7��G�����L�U����H�|}}5��Y^^����������:���?Ra^�x��@���b"�H�q`oo����0\�h��?!��I��0R�5�-V�I8���h�
6��d�2U���Z[[[a����Z��---e�z�����uKb����e���SX���t���?��U��T=�q�F�qe0�7��{J���2KKK���<e����r�����
�����O��&��q��q�����|�Rn�������x�8�����l���5���fW�P-�<�����g3c����k����[�.KJJ���x�Zmmmv��!�������Y������SOO����J�/((����_]�������g���<y��o������m4U/�����*y>|��o\6l��������|��/��Rjy��j���r�\�t)������������~��������S8q�2���|�������:u�T>�]�vUfu��|}}���� IDATY\\�}�6��v���g��[$���4����4U�2���3�pk����~��a����+����|����
��)))R��,Y��3f��x|Cm��
e����������{��K�X+$�����������w|�r]]�*�o\�x1����������[���$�����������7�Y�>|�����2�+���5��&�qpp0������p���RW����~4u���<���l���2�m��Uf� ���mgg'���w������(MG<��H$���F>l�M>9�1777���n���������D2�����8�c��5S:���a�� u����Z����F�N"������MK����J��������l�R��{yy���l��h��������S�4���0/a~�g�V�pT����?�\n�/�����C��������4@�m�Vn>�Wv���[��������q��Db��"��wWV����I�����hE���9����q�����p~��'��];w������=�f������9s��7\B�W�w��!�~U5@J��*--�{V):>���w�����}������j�VEII	�������Fx��o�>�i�������XY#�x;�?^b�px+�7�=y�D�u��l�>r���p��-\�PjyMm�7r��][��]��g���R=���U�=�3e��q���T�2����W�+���P���qei~�����Q����h�?���o��.�w��D��#��^(�t���>|�R������R�*�-c������
uuu��7Xrr2�6���9*�[�n���d���W������mmm�)�z��8������E��x(---���[���k8E��l���zI��YYY��{{{�=���d����?�j���!�����m��m,��2�2�ppp��9A�����#�>����i�1�V�^����m��|��LMM%���#�Hy�������7�� �`�$���&o�*h���}���rgw�c�IL�999|���Jg*���;����x��������x��)���x<�����&�R�y��h���������y����
�����(..P6���u�>}:�]�K���W_!..�o�����q��!>�?���S�e���'�+66���X�r%����y�fL�<��=�h~�G��������>r�H����5f����4i###P8au�{�.���@�6������k
'�Q���c+�*�m�����o��g�����������gOe��p����R~2�=z�G��K�.IL�$��q�:���VVV2�q�6m�P�o���8DDD�W��_E�����S��EEEx����9���;�������������]���tp������F�N��MV(t��9e��hR��>��{�V��&��UKj=�a�����@��/+���0`����G|-TXX���(������c#==��_�������+���o),Ott4��=����?������+1s�Ldff����u��g������D�bo����+L���-[�����y��2q'���_��;��5��>��*S�������

QTT�Q�Fa�������H$�_����k+-CEddd��������{.UDEE���5Ja�2c��������>>>r����~���M�t�����/\��O�7}�t*L�*�����_�Z��X����Z�jP�[Uf���1���K�
������:'����u�j�<�n�BXX��[��M�����7n��	�������*�GOOO*^e�a�)���|Xd����h����e����^te���g(���$fW�1�����Q,336l��#G��� wvk�lv_E�XXX����}+1K�*n��
��"A|�/O�����U+++����m�b���7n���3g������a�F�k�����=<<0{�l:g��A�v�*����������l��8N�olff�Ww��(U�����J��)��_��O�4	�&MR)^AA�����A�q\�o�4A�>#�)��q�\`` ���_899a��a������lll*]>888 99!!!X�`�����~{---p���,DEE�7".\�����T���J��V��~��I��g
��kW���������Z�l)��iy�k������SQY����e�8p���
D(;G9;;�7 ���O�X�(�x�B���n�P�PV��.�C�8}���y��u��������F���q�����UiY4���'HMM���{��U)��ZHU��1c����F~~>���]�b���pww���+���+�"2hkk+�o�������_�5z����"22�/_������8p���XZZ����r��7��#l0?�U��6a�����+))��/???���+8r�����0=M��k/M��M�4��
0e�<x�<|���U��6::���===+_x����U�V���G~~��{ggg���rS��*J�2��/_�����8�Sk�j��G����@�o����������s�w�JJJ���%3������...HHH��
p��:��wG�v�^UD�F�4����/���;f���)S�`������N�:��]�J��'��SPP000�H:�I�E>l��|�8�S�DXx�j8�E�XZZ�T��>�p�����[�����~����`���H?y,OY$E���7o���mmm������.���x{{c�����7"44���222�_����I��g��������*�mE�u�1��T��*��&i���(��suR�)�8��}�(�o��_�A��N�:pvv�w�}��V�|����p���5��7G���aaa���[�1���`��aaaP�����ZEqww��}�`nn����={�g�F�v�`ff�������J�����>}
WWW|������Bqqq��Q�������)��|��s��^�B�;e
c����q9����zC��UU]�lqrr�����d�.]�w�}���;��������m���+��5_������<x�?�S���������1sss�;w��5�^x,�<��������#|�EZZZ����0a�\�z��=f��j;V���K��-P��b�.]�����b��J�����W�wuzx��m����c�D"��Tt����"E
fUu�(��+�}5�"�����c|/wY���"�'O���� 11?��3������k�U�V�������c�����[����999�8q���hE(
��@�n:��"6�MH�F�������r\�{QQ>��s�����8�?�F�������%^e�����g�*=�&�r��j���2d��]�p��!xxxTY^VVV���q��%���H]���.5e{}��������6X^�:u*�����ZZZ�����q��9��/"&&���x����]�
6��_���s���G���{7���p��Ut���o�6,���7o�DHH.\�7n����]��������8�<�������{�g�����g�j�*�<y�����2|��HLL4�&MB��-acc#���{���t���s��^Ob������RoU��r^�)�P���������W_�W���l�z�>|����������$�����x�"~��W?~-Z�P�\b��RR���^���k��5j�����������?���'N`���())���	��9�$��gzTT���m����]�N�7���;���q��L�8Qc��O��o ""W�^����������q���_��^�T$~M����}�PMZ������������������cC\\JJJ�!0��Y�]�va��j�����RO_e�4i���l����C����c�$%%�������#��~����'O�(L+==�boo/�L8T��t���l@�>PU�����hB�����w�������p��}��E����?�
����V�&/���
O�2�z�����'<~����7@;88��3�c"lhP�=rss5����-..�Q�Y��M�k{��]�v�x�����z�*>���w����~�-Z�j�VC�p�.�S�N�8�����Y�+W�����~����N&&&C�$''���s��en���[�na���|OpMJLL���=z4��RE=�*Bx|�D"�����k#11Q���<��iU��J�+q9����z��zA�[eeeU{]����#F�
	)))��;p��e$''c����{�n�o��o)UV����e�KKK��yyyx������O���a�P\\ccc�>}:tP������g��o�����ccc�K4�*����,�=%%%044Daa!���0r�H\�vM�1[+BX'�3����1&5�Ry���|�^S�1���}c��+l��n����9����=<<�F999��p��!���a��qh�����Yd���R��U���d��\M��2����c�h��.w��Q��py�}����F���(..�{�-**��rpp��pY���!8�B����=�v:���MZr���jol�G|C�S:1�pR��1��,��<�������C#�&���������Q�F�m������UE�M�=tJHH�~zM�������7o�_������Cj�gkk���
�������mmm~2���+������;\�z��%��Q#�_G�I��T����i��!22���*<<\�����������������O��*''G�$<b��]S;UEGG+|������� ��nM��������>����-�����0x{{(�T8�E�:��W����������!CPTT###�<y���*�����7T?~�G��\�+A��������C�����6m����q���~����X|��w�+�m�������+B��G�=FLL�+���c����Fq'��zuh�Nrtt�'#U�[#22@Y=��[.�bll���������/�������#j���sBM8/������#""���k�������yyy
����X��!6j�&�
YXX��mTT��;�V:�hE�!�2cxu������`��]
or�m���d���U-�S�����wM�nR�����k�FFFh��A���!rtt��+�h	P:��x�8���j�������cJ��W7�~���(w�����������V6!�"��8u����H�E����������g.W����;5�����BU1�����;vh���g��055���Sj�LU�'&c�a���r�=y����j�Q��������#�������X/�D"4@�O��su���7�]�zI���pcu>�=��j�t����fGGG�c���������044��'*��l�2���Y�T��X��Y��+�*M��;w��?����A{���X�p!���q#N�<Y�RK233�����`���T(~�6m���T��F|���3kM�7zzz���m����9I�kee����})&&7n�����������[i�z�����~���z��-?�2�q2l:@�C-yHJJJ�	�uuu1p�@��Px�k�.���a�TX�!�hB�����s���|�%y�A1q�?�v��-3���?6m���k����3�������+3��-[��z��`T��7oT�y�w�^~fu===�3F���;������_c���
���#����V~3333�n�p��q~H��O�b��9J��)*~�K???eV�V��tTT��9�4]M7*`���R�KKK��W_)�Jbcc�Y����7��C|#SXX�?��C�o��m�����T�h�~���{��NG���|��jiiU���p��={��s��U,Y�Dcyc����^���Uz�,��
0����y�f���b���
?Ui��y2{�?y��_g===L�6M*LM��/^��������1����r�wT����p���?����2���t���C-$%%a������C����������Wk��}���9����c���pI�hj��q���q 3�H$�?M��w����_
���,���_���'N���/+YrI��1�0|�p������H������1c���Z���?u�����aC��@M���Fccc�z����=z���Ve����y�������
�Cy�}(�{233��$%%a��y����9�Ry�s��e��p��^}����������q���z��)s��o���c��E2�
[�|9� u���077�
���������Of����`����-[���
��|xhhB�X��]�b�
,Y���3f��������4������S�r�
�������i������HII��m�����q���N�:x��%>�������HOOWi,���v�Z�����������'��������?8055������<���=z4.\��C����
�}�������[������� 8���?�,���"�;��?�^^^���7�5kKKK��������={��
��}i�g���I����OOO,[�m��E^^����n�:hii���Y�0]�vEpp0^�z�3f��/��g�a����dc��EXXv�������e���8q"���P�n]#%%QQQ@ll,�,Y�~��U��3f������???�y���
�������-[����+pww�{W���hL�4	-Z������m��u�B[[)))8w�|���c��)j����	����{��k�����0"�Hbl���������������������X��e��E�6m���4n�x��-����m�������#����\]]��U+��������������Q�~}��������m,,,��g�)&GU�/Fxx8��;������`��)���;���QPP�g��!22���x��v�����;�ihiia������/������������X�v-n��
77�J
���V�Z!!!m������������������K�.��H�&�B
4���;��_���w���|}}1t�P4h����x��5n������#$$;v���q6l��Q�����^�z�i�����D^^=z���w���n���y��Z���}�vL�<>>>���������QTT�'O��7����nnn2�U�~�:����v?��lmm'7occc������o�����={���3t��
��u���7\]]aaa�H�����s�����r'���XFF���%��+..���/��[���nL�<Yb,SY>�a�4U�`��x��tttp��A~��l�={�`��x��
����� �m�=z`���X�f
<x��-[b������7��������w�����8q�RSS�^�@Y�������8���_x��!f���F�!33�����u+c�����={>��X������!!!�r�
N�8��M�b�����#LLL������?~o�����7���k�.���`��I�3g����mX�~}�7���������k�.�������}���k������a�������qX�bE�5�a������#���WWW~,����������o����G�U%��j�/_������[7���-Z����D"RSSq��U�����mee%�M�z��a���X�`^�|	777,^�m��Aff&������;88��w��8�7oF��=QXXooo|��w���JKKq��y�^��1�����7��1B>1�w�f�1��������p�n���r�%%%��~�����o��������>"����5K*~HH���
6dw��e���g�1OOO����8q������e����?VV���D����p������7��,��J��V�Z��?�T;/��0a�Jy�D"��_?����J�����JS���tT��1�t�e��Q�F���������k�{����8���(3���Tfkk+7Y�m��LWWW��r��5
�S�����i�*  �����,���[�t)��g����"����C������9;q����'���+����>����
SPP�����p�Z��%$ IDAT�R��*�a���r�������y�1�~w!��K���+_��"��.���cVVVr�`cc��\��4?U����B6s�L����t;hii���Gf:�w��{��D"6c���Re���0a��w�����3GaZ���eRv�P��,  @�~"\�H��H}����R���S'������5���)����cYvv��t��V�������������WO�26n��8p@fZ�zH���N�����e���������R}�+�v�q����v���|�U�V�-�7�|������l��[�b���Q�;feeI�MMMe:tP�����9sFn���_�~;U���u��c999l���J�h���T�w����M�����U������}���
������/_.w�hb����Tw��[�EDD(��&Su=9�c;vdw��U���E��H$������J�=z�����M�������kb3��z@�O����rJ����|xy�L���C�b���8�<����HKKK8;;�s�����A�����{zz�������_��/_������<x0f��
ccc�&-Pe�*���4j�qqq��s'���_��}���055E�&M0h� ��1CaOM��~���������G�!--
������5Z�h�>}�`���033�T~k�����BCC������������h��:t��#FH�8\���������a����?z���?��qqq(,,�g�}��?666J������7�j�*����������S8N��%K0q�Dl��!!!��>222���kkk4i�]�v��A����\�������_�/�����0�~����������~L6M�F���=NNN		�������S���"//fffh��	����i��I�����={"66��c��2��������;�����7T�;w����:�;w� ++�-XV������|�2������8������W���A��u����1c��o��r���9�Y�f����������O����000���=�9s����Zi~��GLGG�6m�����k�.\�xIII������>lmm��iSxxx���Wno�	&���
�W�FHH���`aa�6m�`���8p��c������_�E�X�~=������SSSt���f���XM��2�ZnU��� 99�w���3gp��-�~��1XXX�Q�F�����_^yT�����		AHH�������W�^��8����M�6>|�T���������P����uc�������1c�V�ZK���&M��q�����"((��]���������3��o��S�Nj�QKK���ptt���;&L��O�*��-�(]u���p��o�y�fp�^�z)�hp��UCLL�/_��={j��(��=z4�n����`$''#//����W�<<<0|�p���b����z�*8�C�!::�_����6l�~��a��9�$��h�X��BU�7e�a9r�.]��={p��e�|��1��S������.W__���X�z5��=�G�!''���R�We������;0a�l�����x��%���`gg�=z`���
��5��,X�N�:!$$x��9RSSQXX4o���_~	##�
�W���7���Ghh(�]��/^ --
055���=��k�a���W�^*��r�J8[�n��K����K�����
��3��:2d��o��7���S�0������?f���z��Uj�I��1Ew��B!�B�G�?��~��g������G*5�B!D=�l�B!�B�����Y�p!5>B!U�z@B!�B�d����V�Z������������D!�|���B!�B!�BH��I	!�BQCVV�>}�V�Z�j�n��.!�T���$�������I����B>^��B!�5����&MR+�����{�n
��B���������{��t��]�%"��!���B!����8���K!�������#��O��&�B!�B!�R%D���B!�B!�B>N�M!�B!�B!�JP4!�B!�B!��*A
��B!�B!�B�5@B!�B!�B��M!�B!�B!�JP4!�B!�B!��*A
��B!�B!�B�5@B!�B!�B��M!�B!�B!�JP4!�B!�B!��*A
��B!�B!�B��'�������,]����C���!� �����4���71a�899A__h��!&O����X��������kkk����A����o����4nJJ
���k4h�����������4.c��oG�N�`nn�i�k��AQQ���7n����#Q�n]������S�L�����}��-�,Y����z����G��%�B!�B!�|�8�{���.����!C���q���,7����1g������8����������6o��)S�����O?a���---#++`ee���4k�Lf�[�n�G�HOO�q055ENNJJJ�qV�\����^f���"������3===hii!//��}{������Hf��{���/�DII	D"LMM�������OOO�q�={�n��!99�������|������y�f�q	!�B!�B!�O�4�q������7����}�v����s�o|���B\\rss������Xxxx����f���G����>}K�.�q�?>233������8������W4h
���{�Dzz:��i���8ddd ==�~�-cX�he�}��%8s��w�^���!'''N�@�Z��i����{��-L�2%%%;v,RSS������$������:t(^�~-�1�a��!99���GVV��}�U�VA$a�����s�J�!�B!�B!���I��.--�H�m����prrR�z��eX�b������3���������CNN��[����Zb���+n�����K
=���s��� ''���;f��%�|����7oLLLp��]��SGb��!Cp��1�i�7n��X����L;  ����8111h����r___�}������q����\4m�O�>��y��f������ZZZ���B��-%���7������-?~B!�B!�B>.�Tha�sE���5j$s�
4j���-����q��-p�H������Q�����Z.�����������DGG���{��=���B���c���Rqggg0�p���e���8}�4���ba�3a������-w�^���`������*�XB!�B!�B><�T�����Gnn����o������8m���Xv�����:t� 3�>}�"##%����FTT�D��:v�SSS0��r�yw��
���2�{yy�T���/�����a��;%%			�BCC��n��h����rB!�B!�B>����c����YYY2d���C\\|}}���///��;w�\\\����iS>��w����q��	
9�C���%���[^\a��|�qmmmaaa!3�p��� --
o��QXna���&�B!�B!�|�Zvvv���ann���@4k����044D��-����%K����Rq_�|	����<��5RRR��*�/^&_��srr$z_����fff`�i���B!�B!���5@��O�>8�<4h��PPP���B@~~>222d�!�������


���������j|a���]>�*q��]�rB!�B!�B>���e�����
���8y�$^�z�W�^���������wwwdffJ�c���$~B����V����Q������B!�B!��q�~�����+V����
���$�D���?:v���M����;���_��/������yyyr���8�/�����������������YYY
�.�������~W%���.��	!�B!�BHEi�s'����
6�������U���?~\b�x��/^�M_�L8��������J��V4occc�nq����{�YYYRy�}V���B!�B!�����VABB���Qn����K��Y�f|�1��y�����������&M�({Zggg������w��i��Ry'$$ ..Nn��y��������t��UKa��y[YY���o��A||<����]����S+Bj����$��c�����GBj:&	�Y������k����l3�o\/311�����' ++���2��?��C�I������}{@``�����]���o�qz��)3���/���@f|q���v�����`�!((Ha�����7�����Ca��?���x��&�B!�B!�|�Z�������5������C���\\\��U+0��z�j��/^����c���Z>z�he�P���H-_�f
�m��h�����!C�@OO��s�T�'N 11"��F��Xfjj
ooo�o��&�t*77[�n�(��r�?�n��Z��o�(k�7�B!�B!�B>.�\�����OFF�����e��3f�<y��}�"::%%%())���7��o_<}��a��9Ry�\�p��Q|������P6���rrr��AL�2E*��i�P�~}dggc���p ���X�`����q�����
���k��������p��iL�80j�(4o�\*�?�\�~&L��7o��0d�<}�������4:t@ii)�k��


�v�Z�_����~��6�C!�B!�B���c��`H��4�INN���=���s������.����Ow��X�h���~��',]��kdd���lec&_�pA�X��n�B��=�`����1�H��+Wb��2�����O�������w�����,1���}����_���@Y���o�("$  2�>���uCRR������())�q�>}:����q����|b�*!5��GH�B�$!5���,tLR�T��t���d�*�'%%I4@���}�vDDD 55@�����9s����c����~�:���agg�`������R755?��3N�:�������nnn�;w��!,c��c����������Q�F5j����=�����z�j\�t	������A����h�"899)�����_����HNN���\]]1c�:Ta\1�4�y�B�����IBj:	�Y��$�f��O�'�M><TiR���<!5���t<R��1IH�B
���OnhB!��l���]B����t<R��1IH�B����z@���ZB!�B!�UQ[R�B=�	!�B!�B!�T	j�&�B!�B!�R%��B!�B!�BH��hB!������@�c�����GBj:&	�Y���4�$������	�y8��c����IB�Wi\D�]d.�w<*�C�:t�$�f��c���j�M!���-[���@�c���S��
�(>�/s������?
\=P�����G)�����,tL~��4����!�B�	��V�x�����D��{+�GV���?��NJK���:~����B�'���jj�&5U�B!�}+�K@����@i#t��gq��P��B�B��T���B!�����t��
��P��(;]�p��u��J���B��h��B!�B��@��Y�a��7B#=�S} '%�����u�-M!����!8H�G�MB!����1���;P<w	���)�|��5�"����37����P�����������s����LEA�u�Z�u�=Zk��j��Z��:��ZA�h�V����������{��\U�[�
2��9���@ Fb��_/_��<�s�|����&����6�BH}�,IZ�!��EDD��!��$�2� @L�
��������cP�����U>/f:�{�~�m�zA�k;�B�����.���B����x��"�|/���Pu�g�\HU4����s?�#�[dN��z�$DZhM6M��H]�"Dz8��5I����$������+�_�x����/���F�c����k�Hs�|ZiwI����O��pm|�������X�����e)��kX�|E�l��&���k$!�RWk��$i���B�^�S �T@k�4d�Q��]�������`�����,3���KNKN�����p������i�������]����U(�Y
TB���f�*��E�8H�C���H����v@���V�B!��:b94�Wus��pT>f�v���|m�|���!^��p��6(�v����J�i�t�p�X�@������g��"!�����$i��H�4!�BK��`���!��K`��3�v�b�C�������[�����S�L!���,IZ(�&�G'
B!���E�M��s?��N��(�������pY[���H�T �I��W��W|�M�3!����$i��H�4!�B����e�A��&h�����+En�Z6���n�eK'������:�������6���B!��,IZ(�&�G'
B!�����Z6�mp���%�g��E�7���y(6�����T�}q�N�����S�Es���T�;�������gG!�P�$1@���!�������!��I��k���
\H �.����-���.[�����==��m��7 ^�v���������o��d2m����p����C;����}=!u�^#	���Z��%I�D���A��pGk�	�5I:�����[R�����w���c��j�p����j]���z�*���x|p��)��\�k7
������u�pv�
�u_;�����m}��4b�I������,IZ��=B!
Oxxx}O�R�I�P����-��*�k�N����c�����~�d2�O��!�?�E+J0|������X�Z>f��3p.��B�����8cH��x��6��z������-@�6�GP�r��b.@����8���i����.�����'8�����F�^#	�Z�M��&�GW�!�B�RA��h�������%��!�Kw6s]���������,^e0|�J�Nh���PD�6z��0AKJ+
�������M�I)���h;;p~���+�����P��#�"a�%I�D���A!��80� �	�`7o[d���vGs�2�t7k�a16��]��jc�"�����h�����x�\!��bOw]0�����:�����]��B�����h"yt� �Bi��KqPO���	����k���\6w	�����o�Q@��!�(c����CV�-����pFrs�g��?�=n��A�*��
\���7B�����;��������.RBHcDY��PM$�N�B!
�����B�v����L��	�C����
��d�I6"�1�����k�����H/��2|~�����^�����b�pR����7���-��/�5�W���
8++�
#�2-���P�$-@���!�BH��JJ�����|���7����k����Cy�w��q�x�M�����-W����p3/M�x���Zv�V�s���^y�V9��i�>S����t�'��P�7B��L��O����� ����pw3�|�:by�7�|XY���Q��(�&��GDY��PM$�N�HODD"""�{��R�&��0� �>��`�n��G���������C���E�)��4k����x;�~��[������U>��=9��7@��s���K�9c���0���"2���E�Wgqh��
�V2 F�����[�/-����gk��T16����w��B?>����x��q�	�F"-u�&)K�
����I���8��$!Bk�H�����!<fR{����;�Pa�iU!4�������z�(�������Hf IDAT��~���T�v����}��
�����?ZC�\
/������,���+-��M���!^���oR����������0�<��\���y�
��
��)�AjF���HK]�I���E^� ��������!��$��eeC��o~0y��`������C�ce�i�Z���� v�,����X��*%��u[��������Z��F���.vH��}�������0������3�b?��zycX��1��9�����"��7 ^�v�:���������/)1y\�c,),)8pz������.��������L(|�;�I����l�h4�<�jE!�"ML������^���5�S�B�{�3~?��M[��4��L:�_��GdRT���X����������0���sn�;�A���Wn�����I��Y?"gp��`�����ox���C>����!�4"�%I�D���A!�"=��CP�\�
�Lp����r�r����B�Z��4���J���k����c�W����T_-
����k����,_��k�]+��
����gmFvv�������������h���/8g���!!�4�%I�D���A!�"b�5�g~q�a��s>��qb fx\8�wJ�.�P����7^�8�]|���5����Aag���%2G������8~�2
��v�x��&v�������-2'�/a����v��=0�<�8z"�0�&��nf��oD��;��/)
�9��;A����:�|zc���h��Qc��v������`e%=�R�w7D�\J�h�m|u����k���M}��B$��$i��H�4!�B�{��������������o��������,�i��\|����6�v�A{�;�����C�\��.o����������>�4�B^�����5c�d]�/����k��4I	��x��`�k?�n����D��U�Q�4�v���������������|{��p4�,����_I���nw����Bf���XQ��[�����5�g"Y���;�}���.����k�
NN��"�4�%I�D���A!�R�F�����6mw�l�P,�����M�:	-
i���v��p���OiP�?'oX�5�?q���A�W}��Zn
�^����L���b��g�`\��x��+d�L�xYp���5����sC�4�8�v����7)
7�����T����Z��0����8<�[��c���+����(��u��M�����d�ZW��<�������]��P�$-@���!�������!��Ib)��cP��,.���|�P(�,�U�cv���Z4a��_GO�sn��s./����r^�\��6��6|��?����m+���6}1��P��Ue���D&�X�9����`���;�B?�nF���1��9I����9�Qm��e��-;b�Oo���0�N��wS1��fR����������fC2llPm��f.�=C��k$!�RWk��$i��H�4���hM"!�&����n@=+���&��ZyA����?���2.��?�G�b�5�:!�e�s���jNR�����l]7��gp�^�~F�}��j^K�.����M�����������3����0����Z�Z&8er��i������@�i��%��IF����O����A16|p��cU�FV��b9u����$i�"P�B�^�S �T@k�������U�|�	P��s�������i���u����(f#�]�kx%
4���9��z.7��"s���	�.�~��Ds��HuP�aT�'1���`�!.���������E�-d�r���>l��8��c�����][v4zWwU�f.�zv�����L��R���#�_5�����v1����-�wM?T��k�
NQsyS�#�C�x�7@>nL���^#5���z�����"b���F����6M��H]�"�B�,&������\Z@6�Y�?]����1���>a'��Y�{E���n���������v�������c69�|N=��IQ��|��Y���UFj�.���,��X!��y(���cA����G$��4���:<�P�i_�j�����7���:b94�V���*�����?�PMH#DY��PM$�N�B!�#��z�<��Lj�u���%�=�����X���r��o�i6).>�~(���������L���W���T���X���>[��q2��x�|{c�Oo�4og���U>F�z��������%%��*��zG�y���58�V�u����j�63��F�M��s�Z���T�3��x��q��P�$-@���!�B���7oC=;��{L������!��������,�=�~H�e��Vm|��x�E{\�I���d\�M���{�����b�!�~���`�0���*��������Y�����MFh
G+��=���(+)KI+�o%��N�X���l���k���|�t�pZ<w�7����6��	!
eI�B4�<:iB!���WB�d54k�1�fi�����
�G��sp�=�4���/���&���q��5�v��	;�l����R]���)z����d\�M�\Wkg<�?����gg��'nLQ��{	�0:)�Nv�+x9����-���������*	�

�n���i�V2�����V2��oT
��#������|�/��e�����D|��
�b���>��Q�$-@���!�B��c���-P�[d��[R��hm����e!���������9�Z�f�N�1|5�xv6�]�JYJ'�ZNy0}=7Ty�me2����VcP���Y��l�QFa�'����(H9�����l���a��1��7�{w������W�)���8�v?%�����Q�
p�s��]0��H���q���)cx��N�J��T�5P��:�T��;�h�Q����s�������!FY��PM$�N�HODD"""�{��R�&IM�����>��%��s]B�X�����=~;�fE������o�,�9
'������@�2����8x`R�Ly����G�U�SJ'�Zn
���Ws��T��q��#��}���'nL�|���N#jp*�ri��(\��f�1�eV����|�0�>�wne�yy���+�"6���eF�}���~�����,1�j1Q�3!����X���JKIk�������K�0���c�ho�~}���!�����R�$-@���!��q�IB$��$�������~����ZB�d.d��'��.Tc������(��9�n��z��	���N�L���s�1q����/w�~����LcEYx�p�������s���>D�0�?��\S$�R�����R�u��T.>���|{��WWX��p��E���a��zSw�[S�+��.�5]V:�����+v�>
���r��������#�������gGH�SW�[)K�
����I������H�I�0�TB������(.6�++����������e;n���55�V6D���n�x|:	NV���li�S�1d��5>�6;��^��B�55b@�����u����<���}����;�Q�1a�����R�
K�O���+������6�<��J����l� ��?�����k�D&�����'��M�D���A!�R;L!��
��>�?f������{<.���X�#��&��T�X�g]���d	���F�XN�&>�>q'�2u�V^�%����(M�A�F�5��M���o��4������h�����M�HV����a�����>��5hk�������2�(�DHM(K�
����I�B!�f���(yX�y��s�u�b�'�
xB��U>�l����B`����q����30�����u
����bA��G�����
Q���9�}IQ���y��=%=�<7�70h/|L�}��1�}e��8�����1�X��>����s�g+��n.\K�4O�C��|���G��������[B6�)�G?�8���6��2�q�,IZ(�&�G'
B!����)i�|�	���nZ-�C��G�M��W�Yd"~H��y��!�(��nm�����5��<�r��&1�*%�mmt�R�!�Wh
��$coR�&G���s(��=%RJ&0x�����M����di�{_�<�/�=��s����C[!��vpP��^a����m���-=f;�������`+�n���G����h"yt� �B��B�b4������@.���7!�x&8g�C������8�o����
�=�|=Mj/e��qS�q4�,�%E!2��#�\!�eS"�'[�K���~8|���@]������l�}�lq��j�q�r������.�����V�w�1m��px�����������2+��� ���,IZ(�&�G'
B!��r�1�����E`)i&�����E����(����_���]&����k�|��o�WV���;j�#�@m�c�pS�;:)
Q���~�-���������U��(p�����6VW�W�����x �k��H�-�w����(�����8�nWvy�m{����m�~��Pi������c�
2iNT��%����h"yt� Dz��������5�t�1��>����sA�u���{\-h�.v+�lD^I���:[9 "l
�tz
����5D"q,�~L���w/ �0%������x��^�8
���Q��H���8�zFW�#�0�����U>o�n��?�/�Vb��Yz��-I��s>V�l��������JmX�����EJR��z�JY��4�Z�T���#������g��lm=���D��GII	6n���~�
������������0x�`��1��������3g� //���5j���77�j�MOO��e��{�n������=z������T��1�M�6����CBBA@�����K/�����B������g�r�J������������?��������������}�v$%%���]�t���S1v��j����!��q�IB$��d����C=�?�jZ���X8��������S�1��J�?�it�8�8�{L����iskdh=6
�1\�{���/�$Ng\�����V�x�����6|a�9��u`8�f�,}�������;��v�A�u��05!`8�jQ}O����z��,IZ�T����g���8�qHHH�1��y�&F��+W�
�����r9JJJ�]�d	>��c�L&���rss-[���#G��S'�m/]�� ;;����	J�� ��8,]�s��1�V�V��g����{�����d(,,������#���7���~��I� x����rss����=v������l�����}������8(..�Z�����)S���_l[�4��mI����l�XQ4��C���@A���d���:��sm�w�v�|pr
v�<j������y��n�=lSE��i�.�E���������J��������\m(|�w@�y8�^:���:bp\��a`B��-��S%����������Ma���������=a��h��� n�H��v@7MM*����?1y�d���"44^^^x���j@��]�vEjj*�u���>�����q(**��������c��U��FFFb����83g�Dxx8����	&�������C||<�����!00������+~��'"??�-����~4���s����+`kk�
6`��	�8{���+�����l���K��ys���.]B�����h0a��Y���7Grr2�|�M<x...�z�*Z�h���1�^�z!::m����?���={B�R��/���~Q�q�FL�4���ot� �BHS���m'���%���?t�>���HS�~���?�XP���ms,��.&tN�%���C��jd}O���hO���5>W�,��l�3��p�;&z�Pahl��" Cc�i���.��`;��d�������N �f��0�Ns���n��^>1����I��(����$��}~~~�
����c��-���+�?[[�Z���sg\�t	c�����������!00J�_|��y���k����3������Dxz��I��g�����]�����z������M����{���x��g�q.^�������<�v�����P�>}Z��dAA�������3f`���zm�v��d2�;w�=����3f`������@RRR�e@��A!���D�p	���!�}���\�vP�Z�p��	�1�q�(f�\����F�+�ex7d<�w�D�!N����o��//�����x�8������#�����2����rd�\�W���
}<|�P��]�+��*�������Y���;%H�����ZQYG�^l7�bh��TA�.D���b4O}���0�r>�\/�����[�m�/��l��P72�86k�0�N���0�`tr���o:� �AY��4��a�
�o��p���(�����c���!$$��������G��L�<�6mB�=p������P�;w�'O����+�=u�z��
���:���[����.\\\���^iw5t��W�^��9s�l�2��999pss�F���-[���/Vj�l�2��7���HK�����?����c��!����s�Z��q�����!C�����A!�����g@=o)������qq�b�,���������71��JN�6inO���5}f!���I�	i
D&���QHQf<R?>�>q'��A-,=�-DW��l�EaS1��5>O<��������9p���G�&"�����N�R��M�F�vrtsB�`�(�)��P�}��,IZ�R-l����}{��g8zT[S�����2�6mBLL


t�����q��9�s���'�������#G���ec����`�����Wq����O�8�F��0x��*�=o�<���#!!����c���v�^^^Fll,�9RmM!���1�
���@�t
��4�����W�X4\��z�rUJ,:��.o�F�����V����m�������x���#����P�\K�B^��~�U�I��Y;aZH��V��x��{������"���v�y,��Is����T�qK���9�ssBb���������\S�[�l�v1��B(��&����PS��w�������Z��kKw�����2�����:!�nQ]e��������L,\��v�BFF\]]��O��1�z���6>>�����^�ILLD�n�;�&$$�^������C�����=����j[q���D�m=<<��Y�J������u��������j�]�>66���	!�B���?"�� ��m�����b�'�C����wc����Yd�=�5�t}��L��������e Jgk��c"g�3of���W�\R��yp�������,=���"B�P��ou�2����������7d#�1|��c(���tQyH��//�T���M��s�E(Pk�V�"�8�����H-�@���~S��N����an����0�`th�Ks�
�k���k�ao���u�,����������������{����{W[_����R�e*�uNOO�����e�*>����J������������3rss�:oB������	!�Ck��/�i�<=aR{�][(V.?jH���1qx��
Dg����X��X����u�����Z�M[}�MU���>a'�]�����@�2]�������K}<0)h���h��5���k/A��K`%%��������`�n�m�
��#���\���
~� ��Ba-����
�6��<����X��\��_�����V����%��=-m
o�#u�^'�&�T999����x��6l����<dee����1bc�9s&N���QP���Y�M���h�R*���vY����+�5v�����mUc?��	!��p����!�Z�
�w%SfA�u�i���#��#`}�8d��������x��"����I�sP3?��5�����G@�K�� IDAT�������������8x`Q�T\��}<;��gk����O����cB�p�:z�Ff
y����0F����;1��
�9++��������r����X�	�Or��dq����%O�F�{ J^z����e=z����2
Mn��S�����x&r:<����Oc��y���-8�~*��������d�D;�kAE��x���x���t�|}}�m�6 %%�~�)v���;^V����yU3W�tS���f�5�5�=!D�����{
��
hMJ+)���o��d%�k���sdoL�b�G��Z�R���
c�An�����:S���BF�G��v{
������]8~�2
�a���+�����;�B?�nT&�Lx���V��*T�X��DL���I����C>}
X^>��� �9!�0�y��>������������~� �Fd��ts���>l%��o :#�����dR_��f^n����k�V��j����{�������������a���������*��kkkL�:s���_����d�����ZXXXe�e;�9��=�b[(**���xXY���������v����]]�����������	!�G�2E�����.��=�����
����|�5��w�t�Hj��X��l�����Gcq�ip�s5in�2Z��"C�(�[R[���#dcGA6v��F�g/B�s��`�/�@Q�
1*�yK������#���\�����9�������^]15�y���<Dg���3��V�m��Q���8�d���Z�� �����t�{'�X;���3��IR7�2k-x{{������d�9��jVV����:�w�������*��.���jl_���c;88��ecW����������X���yW���*�����Uy"�����t���q:N��8����o����`�3����v�>3�7�Z�,����};W
���������:�:a�����i� ���~.��^��M���_����q:N��8��-���s`s�0lR/C�i
�t������������4,����C0���Q/A��;���5���gg���O^����(�q<��EaSq��
��2e���j����C�����#��CH��<����s�8����W�M��z<s{<v���`��w������c���l�����#�?t<B�wC��p�\u���o����!!!A"?l��)��q#<<<�d��w<��s�8���h��9�����;��dee\��o���?���������T*u�����1f��JmEQ���+������_c��)�c/���m��Q�F��?�48�w�}���CXXN�>�{<22#G��q�w�\]+��9w�BCC�q�����cG���-["++�V�����
����8��=�~���������?UB!�4 ,+��� |� �w�`�G�C>}
8�CE�b����_�E��]���bY�w1����B�0�RA��$�=!�9v�����B� �������N&�;��X��UPl����kU^F��'��@>&���S�F�����L�e�N��8���z�[]��[�k�@��ion��=��)��������$R����q�Fddd ''...�����@���,|����rss����Jm8�����M����<x�`}�������88P�X����m�6�8q*�
�����<xP�=V��O��rh4:t/��B�������`������p��A�tZZ�����B!�>��	���n�uha�wP/\<�1~`����qP,��S��e�1�y�fE�����C�*r^�i!/bA��,z�-B!��Y[C6�?d����]v�zi}��3�Fc�1��xh.��}�6�l�@m��!���b4�V��@`��1�������	SQ��56���[��Gzz��&Pfa6�d��Jw�d�!���npK)��u�"��^�=�i�������tw� 8(jW��&"q4�,~J�m0���q$�{w���D�ht-v@�������T0���HMM�s�=�_�U�x�.]��?�`�����������s;v�R��W_}���~[�����������W�\�������c�b�����;�����edd�M�6P�T���/1m�4���v���O?
��q��E�3f���O������SzW�


�����5��/�k���b��1�y����c�=�w|���X�f
���p��m��U_��V�B�+ww��U��o���d��p?��q��aP�]
���*K����'V�P����*k��B���I�	!�H���p�(�����������y@+=V�ke���b������[��H|p[�������Xsc�9��������0�`6k/��q�\��.o����������>�4�B^����,Ij���������<x�@�����U�jgg���-[��7���������{��������y�*��t�R�2s���R��;y||<F��R	������N�<���������#�����������c�p��"www�Mg�����7C,=�GFF���^�?�R�.�B�@tt4^}�U]m���d<���HIIA�f�0g��Jm�~�i����(b��18sF��I�Ra��UX�v����������i��!�~��4u�r�-Q�z�h~�Qs����~�-@d&���O+(�l����+��y%J��Z�.��3)|�u��oC�c��u>�!Z��HKc\���3�/<�����n�O��|�p�+�7�������&C���J��
��7�=|�Ao��^
�������&��#�l��^�b�_x���}���L�����o��ul1:o����?�b��u�y���W�����h�y4D��1|�de:D�G���q���l�i�k���������e��o������ce��@�P���99�_�����w�}�����o��%����us���G~~>m���G�"((�`�K�.a�������J��1�<��K�b�l�����h��3� 22R7O�L���"@XX>�w��~��GL�4	��_�qrrB^������s'���g�mZZ����[�n���Q\\A�q�L��u��l[]�"Dz8��5I����|tblT����lhw{������;l��vv������W�������=�{�+d���Ff��]_�]^�������h="-MmM��;"A�<���@a�����>��/C6b�g��k��E�������������xj��uN���q�[0��;��{����A�v�G��*��>�Y;������	]Wk��$ii�tm����u�R
��6l�����#//0`f��Ue�\����X�v-������ooo�9s��E��-�m����e��a��=HKK������0}�t]���0��i�&|���HHH� h��=�������������+p��qdgg����
�G}?��w�������>��;p��m����s���:u*��[m�2t� Dz��8L�Z��Q�����L����'��,�����M|����y{V:v63�_�3�M��Y�X���h��eR{��h="-MyM��b��� �>1�������D�gC4���7�Jw$<�U��������w
�=R?���bn�7�4+���5IY��4��4<t� �BH]�.��Z�B=�c�����zv�����{t�t,�0����w	;�`�{��fm���,<���Is#���1����hodybT4 �~4�>�����2�\�1�qvJ��^���J����O��doLHY��PM$�N�B�KC�G��	�� �,����iD
��nCD���(���������v�P����Bj�=����(�= �=d[6d�B� {n4d�����E�2'�n������������X\���Q]�S����c@����F��,IZ(�&�G'
B!��5���66�����g�~G�������}���_�8
Kz�w�����BH����sw�y�R�E���������e	*����ZZ�#g2.�F^j}O��	���S��{���$i��H�4!�R����@������2e��@���>�*K�O���k���!�����/���0�`��B!��S!F�������b�������<��`�q,�~Q�3����8����{Z�u������{���$i��H�4!�RWXA4+�Y�����\�A�v	d�+�b.�����O���w(������m3,��^�8���s$�R�Xa!��' �91� X��v�rA���N-6N]��k9�z��/e]�F�|���ld�PN���1���$i��H�4���|7qB����y��@��l�[I�7�t�b�|�&�P��3c;o��Y'��V^��]�8�����o�������:E��i�5i>�1�������u�E��ta4���.h�
��8?��t��O�2��cJ1���5IY��PM$�N�H�q�&	�Z��������!�����r����G��sp�t8��mL?�SN�4������,������=Z��H�I�2x���-PTd�1����a�O7�0������]�g2.�lf<
4��9J�G]�I����n�M!�h����=BH�&M����V�g.����(�	�>��(�I����-&�����V���1~�����#!�Bk�|��<��
�=;����^�%����:.K���U�,^UF??\p`����o�����i�~A���Y��t�,�?���,������v@���V�B17��M��~�����Y��o��1����D���_"�0���ld��������+�S�<��!�3�.|�������A��4@��gx�C��0:$����e�Fc���������1�U�Y�jh(K�
����I�B!���jhV}
���@q�QmUrk��"��K�{|��<���?�k���t�%��6��?V<>m��LjO!�X��U�~�
���-��/�����h����iR�������O��do\LY��4���B!����C:����������CO,��u�i����!T�l+�����{�����fm�w�W�m�

�	!�H����>|��1Pl�T�1�l�X��
���\��u���
h����K�:��z��/7����x���#�3)hL�
����h"yt��B!���+��x�/7F��(P>��z9�������-��?���B����	^V5��de��oaZ��P���,�B�M����j�+*�	-�?������Z
��	����G$��m�9s�������`vF���h�y4��Lj���	�'���u�$7�%I�D���A!�S	{@��l��4��F���Ko�D�s����!��a�X6����_�8
KzN��]��E!��16|p�Y�0���(m�c���h�6�at��$F��{c"gB7�v���������f�0P�$-��B��"""�{
��
hMV��3P2nJF�����X;�gyV>����x���������5�{|; ���F��#!�Bk���
�k��S( �VW��n�l������M��A��mh>���OA�>�A<��d�>��q}�N,
�
������EaSq}�NI���&�&�M$��Z"=���$DBhM�c�A�v3��9�F�9`���������1�m���j�n��m��=��+GQ=�F��#!�Bk��b
��NB��O����Y��k��Q�����%���"q,�~L���w/ �P�K���Oxv��G��w�����$eI�B��!�-<<���@�����x�:�SfB����m:�����8������
�e��B^�����b�hR��a��H����l�8���}!�l�g�0��L���f���
��/�Y�%����at���	�y���V��*�����hM6M��H]�"�BHuXI	4�}	���@I�q���!_0�����7��u^��C���Y���o�~	!����i4�>UFg���8\m����
�I�P�$-@���!�B�"�����`�W�n�x��+�����O����,s�q<�^�1~��*!�bAL*����������^�����h"yt� �B��Xn�sC��=`�{�f.P�Z�+�t�3���bAe�������l|B!���	���!��'��-F��.���R-Q�%I�D���A!����?"Q���N��me/��b�'��Z�=n����Qf��B!�c���i����w����iUF��Fa��P�$-@���!�B���E�>��c��m9��P|��aOU:V�Q�����S�c��u�������!�B
�Qg�����k�
�4��{t����eI�B��B��"""�{
��
��d����P�����3�C>�mX�7>�d�!��	f��	�.f��4<�}=����$�LY��a����I���vB��$�������4k7���p��tA���NF���Y�i�hM6M��H]�"Dz8��5I��4�5)�%B=y��1F�����j����U��J(�'1������`����Z���O�p4��HHCDk�T��"�������w�T��V�=ue:�^�M~gt]�I����i��'�b������!����&Yq1�>�����g[[��G�������{��������wf�}<����Y�$
Kc\��4d�&IU8���OOX}�6�����n�����i����B�b#J��b��(yo.��k�3Z�M0z8S��%Z�M��&�GW�!���E��$��g�]�nt[~p?(������1��������s�B#�7x.�(l*�v�"}B!���(B<}�o;!n��z�2yy@��H����=*��VG,�f�*(6o�|��Zu��e��@>&�-1���$i��H�4!����=��z�"�����-�C�f1d/�5x����x�H��K4�L
kf���v����bcB!��0Q�x�\y��f��<��a�O����E+�Y�B{��kB���(�Y-_�A��)K�
����I�Bi�c��D�>2��^���P�X�E�J�4��.n���oP"��1]��Y;a�������bcB!��0Q�>���m�������l�bRC�p�\����1�������Q�$-@���!��x�)iPO�
q���r~m������4x<��m�~$��F�k+����a�t������������`Z�����Bi"c�atr���"��*|6�tGcDY��PM$�N�BH����o���P�X&�|�4�?�	����aA���-���z*��~��+���~�� 2������]8~�2
��v�x��^�8
���������BHS���PF'�Xn0��l�(�?'�Q�\
����h"yt� Dz"""Q�� ��jhkR����f�E�7�-�VW�?{w����sg2���%�]	Q[�j��Z�V����=�5co�{]�����J�R$��Zc	�$�L�Y���4��$����|�����9�{��q��|��s�x�����	��A�\�y/L�ym�j,l=
c���@�����G�g�$�%Q!��=	��n����!�7��G���jL2K��${�i�� �D2RQ���������
�^/����3�=�R���(�i��~j-R�i�NP�_��A}�Z��DdBE�D��c���(�C�yF��Y���3Pvc�Y��X�w����	

*�.QaL������EI�Ut���%P��n�=*�.���c�!��k�Pan�>?JE�P��(*�x$�$�T^A���)-������������F/��}�pLZ*��&��S+""��K���nr_��^\�2T�A��g���\�El����'WA�K�t��}��+4r���/"""�"E13��a/?��x=�D�k�w;�=���������4�oDDD�(�0|�?�&�>�\��`TK� ���l�����.�o�OI:�Ja�Y-�bJ�AP)�e@"""*?�(B����e:��M1��
l��BP�K��$yU
�. IDATaM���Q�b�q��&���Q��B}o�>[��mM����m���������t������W4x�R}��""""*M�(B��$��z��bP}��B,�QV�%�h�=�4���*Q��~�&��>R�-��
VS��j�x66&���#�/�OQH:�RPbZ�����X+U��EDDDT�DQ��O8?����o���U�M�
�$y�����������A������\�h���P4jh�]E���+�����%����.�xE��U|%������<�������\��h�n�`M��(�Q���h��D�Cy�I19���t�>;:@�~	���)���AJ��:��>+&7{g�}����_#���c�**����������
�>�
������Y�}����;v�i_����L\��d�_� �A8&�d������`�FN�uKr���k�^�1�j����kG����x�/���]j�����h"�_D���H"y����(��9��(B������O�W��rRVc�Y��p	""�,((���@D9���<�n���Qz����~e�n���q,��+�J:�c����`�2��4Qi�k$��pLREc�,4|�[���
?_��r��7Z��!�}��OP0�I���${|jEDD$�(��m't�q�%�+G�j�,�N��?�w�<�1)���]���tB;����EDDD$':���-��3g3?=k�j�d�4SJ����,I^8�����
e�z��`�Cr������C�6 �c���xb9�������l�������Nr-��d����^J#�����5���g���&��S+""��#�t�/���e@Z��bkkX�������|���I?���$����6w��W����/"""�
�)y	���<��%�h�=�4�������9d|��E����ZC��
(>��1I��|r�DH����^X�v<��$���C��j�Cb��X�y����o4��3�pHDDDT��%����;@DDDD�"&i�1~&���������M+`}to��s���h��-����}e����u�U����0$����y��@/��DDDDD`MDDE��h��D�CI�I�O�!���0��H�1�|�'l"�������f&�R1��O�e�H�L�'��t�?�w��Zm%�f�X8�(K�|��J�?����G_#���c�H^8&-�� ���&��G�I")�1)���n�L��+��5�A��({t-������
�%��t�������t�^�����k��;X5�v��k��=�z���*�F��$�����d�$/�MDD��w�(���I�h�~��H�m+=|(��:�D��s�>
�\���I������o�,��(�Y���L|�$��I"y���L�M���VDDD����U�����)��B�F����V�<���p9��oJ:%�k7
o��$�oEU��9�������1K��${�i�,1#�O�B�p��!���Vs&�j�GT�|K7d`��MX�
F�(���t����������SR��j�Cb��H���J�����3fI��w�DDDD�p�tB��Wr���KPm\E��� C��p1����������)x�������t����m}T�z{G%���B��j������V��\�<DDDDDr��${|jEDDT|bB"t����W���T7W���������~���_� J�E�Z����Lx�W���"J���Bh2�C����[��K�Z�J��/��QW�Z��5�����5T*n�BDDDT��%�h�=�4�������2�L��H�U��T��A�Rp0|��	B������dm�m'���=Jm�pR������!Z\�����	��R*�j���Q7k��5�>�=��X������,
�$yaM�����h4h4����E1�GB���d[~c�p�w�7|����'��	��%P��+�7����V���Q/��k�����P��Cr�����G��������!����Vb�/kn��r��Au���*(\�Cn�I$/�D�RVc�Y��0�&��M�H~A��$*C:��,�j�FX��;O��cR4�6�/��~1�V�G�j���wC�h�0B�%��l���x��S�Y��$"�~4��jq�r��F**���N����t-oT���Z��=�_#���c�H^�jL2K�nBHDD��w�,�N��yK3?`�	�s�I��K���>���6�yXoZE��<�`4`�?� ��F�2$]�e���q�8U�T��5 2,9s��-�C�q�R�����������+�y���n�J���n�Lj7U9��2�5�H^8&���c�2Y�h�V���`�={!!!8{�,����.]B���%�o���X�f
���_���G<����X�z5N�>���DT�V
=z���3P�J�kcbb�x�b���O������30~�xt����ZQ�y�f|��������`�s�=�w�y����JU����,[����;���P�Jt����M���w�����X�d	v����7o�����5���#��o�k���Y*cx$�����'?T(L�����_�
�����
ag��Sa5�CV�O�C���_��K�����[��G~oB!<375����\�/h�����\
T<N.��y<Y����
<�[C�,�����>��x��F����������5DDD�,In,*���g�������  22RR�����$��}{�{���1{�l�R�����+WFpp05jd��������#��� �����ja0 -Z��S�����t���~��g�Z��R�DJJ
���������+�[�n���Ca0�P(��������{{{���:t0Y{���k�QQQHKK�N��16l���,oDDd��;vg�|. �6�~��!�{U��];@�a)ujx�Q4b����yzR��6�k��_t��9��y�RS��'%�2W#*F��TN�Vx�H���r�R	�V[�_ �s�D�����}�6F\;�V��]B��4a~
��U�D�IDDD�$y��z���>|8������///|����h���V�Z����x���Z`}��At��� `���

���="""0`�����n��������u����T������[h��9���k��� ))	����������+:w����S�N���Kakk��7b���������8���;��}{������e�����0`V�\	www��u��
��C�������/�R�J�jEQD�6mp����S�|�
Z�n���t�]���M��h��M�0t����y� ""K�o��r�
��������\	���|��u��'��������s�.�VZc~�G��m(J���O2�C�q!$3p��"y�vi����_K4na��8s<���5ylV��M2���4����[��q�zn]����73��?[�a*{������1k��*�B�=��,h�~&""��1K��
��F#�'_����B��u%��W���	���Xl�����i��8�<z���]�v�j�������Z-��Y���G�j_�j����K�.���3W{�>}�g�4o�!!!��bbbP�vmddd�<��}���W/����0����j���������_�>L$''����o�F`` �-[��6k��R�Dhh(�4i��=00�V����n��Y�2 �i�B�r�[P-������DQ����0��j$���3\��|1�c*�/�g�W.��*��TU�����s����{2@~a����^/���t����[�����_��&�(}/�
���dS�Z�6���V�Z-5T����%9�������i�������%��s�|}}������H�=��m�7��x�"��� N�<����<�>�7oF@@N�:��������>|8>���<��N�B��m!"""��A������c��1pqqALLL�����aC\�|S�N������*U�@������C�����.^�3g����'���s�����v�B��]���������^�:A�����k�<�d�M���(SqCh��6T�C�J�B����aG����3���0*Q/�����!������{���9kfs����e]�l]�tXZ��(�x��Ng��NGL��
�N��jf�5T8�#�i�{���DDDd
�$y�;5����V��?����1a����t���7o���g�����sRRBCC��1�u��prrBbb"���s�Y�n������t����/�	�O�8�^A��K�|�=s�L��� 22>>>�m��+��^^^h��1���\`MD���h��h��DELM��/`"0] &c�`z?���&�����lm��(��K�0��H�H��G�[����@����TW��*Y�q�e4���gu��fS���+�f��vvU��1��� p���[%�8�iOK5�NT:n]K�oy�'���i�H�X��F�NT:�DI[C� C�d>�5�H^8&���c�2��������{��A�����_?�j""" W8�4___��.]��-Z"##d~8�o�BA��A�={6�����_m�k_�t�d���\]]M���3EDDd���[`�����������o���|�@T��^��%�`>C
����!�`:�>/��F7
�����������.������a���t��/]!��A�T��V��g�t����g�����8:[aH�W�,��
=ml���c�z>vy��F��fd/�q�z��=�����M)�%���D��1I$/��������1z�h��j�[����{���������:�����-�>�-��R���js��6�������HHH(�~���w��iY���9�0����W���@�Y�)�
Vc ��k0"3�/8E_G��?�"����WU�'���������U��-r��\���D���d���"�T(xVW���/�mO���Jgn��du:��J/�����g?|�$��I"y���L�{�&Ss������1k�,<��sf�%'g~u�������e�jEZ��}Y������z�������������7��X�.1#��?�]alQ�rO/�!��X�D*g�,�lQ�^���\I�_aw��v#bj���I��C��r�U��7.*'���9�25��M�lJ�CA�,C��9�X�qs4n�w���#�o�g���e�Y�OM�:��$���_#���c�H^8&-���=�@XXV�^�:u�`����j�;/��R~m%�PzQ>�����j�ZODDd����n�(#/���l��B3D��t��X1�6.�h���T#���C\��at����ULUT�6���������h��I����5��_���Ac�xJem�@��lQ�����DQ����\�"f���u-
������yi
�:��0�D	��B�F|���Ek���Z��T��QaJJJ��d�!���9����=;�iY�~zSD{{{$$$x��m��]Pm~���{s�m�f�DDD�:���&k`����Z��~���J�������������7�k7�{���[��8w��O�������0�J4ja�kfs-o(�
�M�3��KT��Fek�x!����Z��H��k���"��o����t��e�1������=q��^e���@�Z���Q�P�w�n���		A�.]��}{h��\����
^�z=�����ja���^�:�w����9�r�]�Z���GGGZ��V��r�Y�.�655			y��s����;?� ���}��!��rh4����lg;�e�>������M��y��;���g(g��@[L�$�'o���N���xq�����&����EHi�7���0*��_�s�[=������uw���9[��?'��s\���z'V~S��m�������F���6B/�C��v�7on����^v��J4��G�^n���	�6x�v��|�.����f�v�7�E��;q/��c��nNY��s��_����S��1o�
<z�d������v����lg{��g���/�A,�u*���(��[�  22����s�F���y�$�����x����`6l����G������&��]���_?(
$%%e����j����}L������F���!116l��#���|�M����������k��c��������U+����
�<����C<|�nnnyjCCC���Ap��E4l�0��r���������1a���������1e�|���&���wf��T���e<sM�x����T��1����7|��c��Rx�0� *0
����%��#�[��|-�c/�eo(2��ajg��o���h��_1f6S�E�q����x�������y-
1w2J�:v�
���a���A!�
fI������k�S?��� !!g������o�rm������C�L��>}������J���k�8q���70�:���/��"��� �">\`�===s����c����/��7�_~O���<��xd����6�W��9T���a3v��Pf���0
�yfB,,������g�#7T]5n?��+|��S�E[G�?�����/�GXB+���1f���^*���-�g�&\�Ux��#z�U	�fV�'_�������-���J`S��d#�/�F��c��h��J����5�H^8&���c�2qt!3�3x�`l�����Gpp��c�5k���}���?��j���w��aCh�Z�[�}�Q����Wc��	ptt������o�������w�e��8s�L������v��HOO���k1j��\����G��=�P(����j���7����V�Z���S�����d��������4i�,Y��v������7
��;�&M��j�8q"V�\	///DEE��*�*|jE$?� pL�(�0l�	�����GE�6
���~+$�FZ�k0:&A?�/X������?���c���2{&��W������k9����{�V��3����-�J��T���hW��K.4�����95�oHe�Te3����D��1I$/e5&�%�����~��Q����g���������j�q�-������S��j����Z-���1l��<���G�Z��������#22����)S�`���!�9U�Z���L�2��o�^�����<x0�����>���s�R�p��4����[�n�O�>�}�6\]]1u��<�={�D@@�F#z�����O����|�r�Z�
� `�����D$OAAA���
�����C7x���Y%�0������c�!9�,�q�u^���=�g�`�:l�w�m� =|�Iv��7gbK����l+�O
��'�����_��1|�R��l�!�^�(���:�q]}�����h,��|�$��I"y���L7Z�0/s���B��5=n��A��m[�3�`����={vv������ s���G�����d������+�d�����j�E
��-��)SL���z���X[[C�T"55��U+9r$��9m��
C���l���	���2���o��oo�6::�����7���HKK��`� 1b��_���Y>�""��L�j����U����G���[�32�������r����H/k���~�x).jG��$*���vvU��/��~A4.�����>��a���h��7("""z�1K���
���sQv�4���3g���C�������������q��!<<<���4i���p�;�����t�\�2�w��C��>��������7�u������R�D�f��d��8q"���{�=�:u
o��&<==�����5k��>@XXX��3T�V
aaa�1c|||`4�����;����7+|&""��DQ�a�~���������;b�gc���3�G��3��g;w�ym%������U~���z�sOw�>��
���������E�����/��vq����v������`q3����S+""�h�W�C7f���\�!Z����C�H��+�_��z������_�7���� IDAT�R��O��vvU����pt~�l�^/b���Xtwoe�Z�_s���5��4�	DDDT�0K���MDDDT��4�4K����H��)�y�����A
Q0"��?K��@e[W��u	�����3������z�
���J������f���6�*mO�c����y�{�2n\I-V������4��&��S+""���n�4���$�>�������^�
�����J������
�������%~n���5Z�g��)�Z�\u����6Q�Z��T�>��1s�����H� """y`�$/�MDD�i4����loG#��`d�����Y/*�M|=���%�� 9��y}8p���������"���1�g���Y��f?�b����Y�q�z3�����

`���X�o,������t���D2�1I$/���3�I����H~A��$�'�t�����%@r���0�!�c$�E�|��3/��B�e
��c�T�������$��D�!)Af�O��N�����~�}��fspTb�$O��G��u|�$��I"y)�1�,I^8���$

*�.�+�����#�S4�����#f�c0>��1��s
�yz�0|�
����H�3xTSc�����RS�x��H��&�*�:x�����!=�hV_#���c�H^8&-g@��������!tS���ug���`�C�
=6��
�L\	(J���F��vx�lhH$w��$c��[8z ������Ui���DDD$�$y��"""�B���A7s!� �>R�����hX�u#RE ��a���V���T���D�GT��<o�-?� �D"����������d���DDDD������&C	�\�m���������z$�� ���<c���|����T�KT��|�	�o����c��[���~{IpvU��1�rm"""��������1>��a��P����a)����yl�IER��H�p��]���=J��D� h��+�uu��b�r�mD]I+�>p�3Y�M��u{���,�������<�\]�����x>�c�N	HjI/��h�Z��������������������X;�b�3J�z\������1K�~
!""�4Myw��T/^BF�^��?Jr��*Zc�8}�&��YW�>b����4H�z���g���������(*�o
��#W�b��Zpu/^0�-�s�3Q���V"y���L�M���VD�#�$=SD���+�_�)��K�?*��b�]T5��^�:Fj������aT(��[�lsU;���}pV;��u��EI�z|���Xq�Z����xuq�dg?�=�o%���������|��H������Q�E�=�?��h���b,�0C@�sF�6������^�z��j%(�
&���<M��U�����`�L$��������<�qq4�����?��`H�mG{0|&*c|�J$/���3�I������J��ztc��x���Z�h�/���&����&*�H�Ab�#�y��������M��Km���["v������t��P������3Q1����5soc�Wa�>!:[{��{w���ll�%�I"""��Y��0�&��M���J�������/^��I��Kl�������F�T$�=���`p�/V�Jkj�������}��c���vi?���7�������%�fx�a����k>��k�R�r�-��c\����A�N=����;^����c�����0K��${�iQI1�v�1� ^��$�C�K0?�!��z�$u8���N@��h���v����0��MT�s/����t\����7q�hb����Y���2������R1�&""*fI���d�7
""*.1�tg���^��Q���
���������}$v:m���J���9�p������|{�AeW�sQ��:�*~��a�����
]�d.���VVB�EDDD��$yaM������A�v��Om�����������������N�����(�k��[=Lj����*%7&#�H��hW��MoZ����}3gF�|�	J%�h"""s0K�~����$�h4���B�<������4Gr�� : H�X�K��(���b&�D��Hmz�X���^-�S�58��;����b���De���
C���<[J��t����x�}^��y�n �d�F~�&2_#���c�2q4��Z�� �$[��G�M��W���b'���xg�J=��C���t�1���}�;bb��hU�q������D���,��xuq�T��Y���sG���h����~����k$�����d�$/��'IT�] �C4a�����������kc>F">0��"��$u<
�KB���VZcP���t�9�(����1IT>�fA��s;�g.���a�=Q�K�;����%v�{�3���{�|�=����ko��[�J�mj������qvU����pt�GI��I$/���3�I������
c<�2>���9����-��|��Hw�"��1$�t�mZ����v����0��MT�s/���H��z�j�o�����p`g,�C��Io�����[��0�Ac;��'W8^&��������9���J�$yaM����GLH�n�b6|���_�RAtU_	���Y@�/V�j8T����������+����b0��F]M���cq��XD��R*}z��������C�X2��9����*
fI���d�7
""z�(�0|�?�&��?�\%za!��X$t:��&��� �����f���z]��� U,O����^���������Z�]-�~&"���Y��0�&��M���r2F^�n�T���\�&Zc��6�4�����^�z����ZKLj���h����,X�Y�E
j�
O����at���-T�8����*fI���d�7
""19�+�_�)��I�?���|+\�~:��b�E!(��nGLl:�U�\D�l��-(vP+�""�R�gF���^�=-�~&"���Y��(��DDT�h4���Y������E�?Y#9|��J��I7�����a�>�����/"���]?�M��1IT���0$�Mw{�� h������k����>��	��%�[i�]�x�G�\����I$/���3�I����H~A���2a�q�q3`��7��:(��^#,��d��b��U�����a����j�^�s��I"yHJ���EUj��h��_Z��?�����(8��*2�F�KY�IfI�����H������=���t����~�J M�:�V��q����FB��Q����C|{�AeW�s�&�I"ypt�*���Ph��#Z����+j#�D"~���C���	�9��*:�F���e�h�=>�""�,����=��k�k��1�M|��(���M����f���wg��|^OD����8}<v>�����/�ss�3UD����4�oDD�A���90��-�� �_r���.H�+������f��k�6��?DD�Ng��#	8�3���CR��X����1s���HDD
�$yaM�����M��aX�9ts>����CjYcB7��T��
A�>u;bb����T���$��q��x���{���5�<}U�������{�Q��,I^@����AD��2�:�G�!�sQrm����]���g��(����7}��kH�'"�H�R
8�K<�|���~,��U;G���n�T��;""���,I^@����AD��c���6����~{�=f�r�#G��ZW�F6���~�Q���H�'"��V�����%���Vc�O>�nh[
�"""*9������"""�4Myw�d�)��p�"�[�FZ�6E
�/z��u|U�XIr�\��+�N���~�����T��1I$a<��'��n]KG������R�Q��c���pLZ&��&��S+"��c���4K�_���a�Vo�j>Y
��E���Z��n.���#�Ji�m4q����~���RZ��r�1I$e<�����.R�R	h���;#<J�WD%���I"KQVc�Y��<������T�w��4K���4��F@�!�������B�%�H������������-�����f��K���o@�U�D�QQ�����b�]$�$����7p��4L_VJ���RE�D��c�2q4��Z���=��>�*�������mQ�i��h�T��W�f�S8���y��&�s�_��U
������F��IDdIL���ij��������V~��8������Y��0�&��M��H���W�;>���!4|�b+����c�=��������V�u���e]����3�U����Q�1�a�o�.�9��|M""K��p1k�����7�7�>����>O��������R�VW���$a�$/�I�x� "���A�������{�AFpG�:�?�k����o�6���
7*��:�U�����a�_�gjSA"���s���50zVu��?�b�{W��j,�<�{>���Z;�Z_�����,I^@����AD$YAE��5�X��;�B���,(�J�w\�����=o��^sM��]��	�]�HDD���������O��8����/��=�Y��V���zx��J��]"""�0K��${�i�GR�m��Kg�h���!��|��\!�:���>~��jE��7q����~���Rr�Q"���v��g?�t�N:>�q	��Tc��?���|1K���?�=E���w��8:[���s0���9����"��Oo5�N���^�������@��}�[�S�U��O��$���8����c<L�yVWc��������[3���si�EX����U�1I�,���L�M���VD�#���2�Fx���������5om��:(0��+v�����BP�O�����=���[�n?�8&���Y�F����oa���f�4
p��=
P���{FT�guLUTe5&�%���dAAA��*'!{��[�?hz'Cr�Q�����=\o���8���������s��t�bpL���:
S?�����5�:t��?�����O�l��
���A/��zV�$QE�1i�8�d�O�����}��sa�vW��o�+1hHe�����W�>�{���*vnE�*�����Q������u����w�G�n�/�ADDT����4�oDD�GLK�~���/^$����������e�p5<0���y*��t����H��T�~	��M3�x���������DDT��%�h�=�4����(�0������GI��Z:���O��l�4��;sSA"�
(����]��#	f���ah���JU���DDD��,I^@����ADT������0�����t5&������|�#(s��s��6J5���,�NQ����������]��+�X�C}8���#�fI���d�7
"��!&$B7w)��z��������)�����=DE���oHr�!tH�z�6pIu�����(��juF����u��`����]��t;GDD�Y���{ODD$�F�)�.P	�F�?����0��(9|���������!;|�]-�����`����R>����j����8&����� <���5���y1o\NC��p�>n��DEa�c�H�8&-g@��������1��0�:��C��T/���::x��3�����}�����t]��c�H>,}<^:��a=.�����W�,��.�\��{F����$�����d�$/�MDD��w����1�x2��V��9�N�A�Th���	��Ug|��!�WkQ���	�D�a���a{�>���f����:�>�zF#C*y�>&���c�2q4��Z�1=�U�A�p�M�\�h#��W]��eG�{�C����z�������V#1����ODDCZ�S�\�O;b�����+�?{e)����,�$yaM���Q�����C���x�F���=�A=]���x����	W������qDDT1������`����5�M��iCxVW�b����Y�,I^,j	�V�}��a���x��WQ�R%(
(
\�|9����4���C�E�&M����Z��5k����������������GT�R666�����������Bkcbb0n�8x{{���U�V��������BkEQ��M���M��������7��e����
�		�[o�///����f��6l�]�Vhmbb"f���������:u��]�
�%"��a��*2������-R�|��5:L�����r��Ex/��v���V0|&"�� `lP
���9X���D���O�8�-��QY���{��A�>}��\DFF�~��&�:w��#G�d�V�aee�����')������+�����1{�l�R����2w|�\�2�����Q#�����G��A����V��A�h�"L�:�d�N�C�^����?�j5�J%RRR����������[�b���0P(prrBBBDQ���=����:���s���k���(����e��#F���
��;���VDDE#&&A?9��?�z�����������x���q�����aK�n���x�������3|&"�@����=�E���'���������o��r����Y�,I^,j� �R�
�u��F�M�6�U���Q�~},]����HIIAbb"�\��~��V�^�O?��d���1{�l��I�&!>>�?Fxx8�6m���g������Stjj*^�u����y��������'BEL�>�2y�Y�f������-�n����h�Z���nnn8{�,�n�����6l����#..7n�@��������}����GyjEQ�o����(��S��'����%K�@�P`�����e�Y���D����CZ�����>g(�U���lN5|���I�l�p�����g�[Go�h�����^�����t*:j�{`@���������}�����DD�YkG�>����m�:>-����.c��;���*8��m4�P<�����P�n�Bg@�<ym���~z��N�:!88u��1�,E��Mq��y���;���������V���5k0z��\��V�B`` q��%xzz�j����������#$$$W[LLj���������oz��A??�\��z���}��������+��?99����}�6�l��\�Y���J%BCC��I�\����X�j<<<p��M�T*S����H�4
4Myw�L0�E����+R���6���
W���/�^h�g����/�����c��;`���E�I�1I$�KJ�c��Wp�`��5�V����P�-j���I"y)�1�,I^,*�~��ta�m��A�A������%��������� 8y�$��>�7oF@@N�:��������>|����N�B��m!"""��A������c��1pqqALL�����7l��/_���S�x��������J�*����������<��/���3�������\m�����]���k���?r�{�.�W�Ap��At��5�1Yx� �A8&eF�����0l�Y�����0��+~ml����7k�uw/��"�/�
��7 LJ��q��lU���t�D���X8�A��I7���{f��|��������Bd
�$�����d�$/|�\����o0r�=z���l2|���={����?OJJBhhh�c���uk899A�<f]�]�v&�g�����=q��z=A�>&�~��� 222W��c�
����7nl��D$AAA���������Hk��H�s�Z���.���+|V��������73����X���Y�3�<3|.[�D���X8�R����1c](�{iA��$�
��+)��9z�pL���eb]�?�Z�*��so���������@�S�K�.e�<+�!�
A����t�u��js^;�us�zxx����dm�?S������������O�����_c���CHo��) I+���V�h6��:;#C�9C@�b���B�y�0����%��uu)�LT����� IDAT8&�����|���/����y)���x�M8~����;�8&���c�21�.���hl��0h��<���e~����+�s�\�9&&&Oma�Ym9��zm�V�k��9����pvv�(�%�o""*���5��x���x9���	�i��=0��J��5SYg�������M�c�W������DDTz�vr����P�[m���D�v���
1�LDDD��O���������"99�j���������������]�W�EQ�V�d[�@�����R��UoooovmV}BBB�����L���/X����N'������]�=������vg[�ew�b+����Z[��\c�����wC[���>��/���T��4��]J���aeez�x"""���0f�����P�����o����������?7%���Z(��k���~V[�z""�M4a��t��1$��������U$�>����r=���
���p�d��?����u/�LDDD���]���|1{�u���C�j�������X��>� ""�1�J��3��g����
�|�
��ic�8��g����*�0�?wkz��	%A�&U:" �BE:H�&����"(V@�w����H	�t�����	�$�a��$�����y�L��n���@rr��ed�!���������:�E��~�?X[[#...���o34v^���������y����D��iO�/P��|��	7=�[��|���:���+ �]�>Z�7�z&"���R��`�|�-����0f=��Cq���*���G�J�?I"""2��.��s�b����dX�~=���r��������s��|���A{{{g����G��?k��666�
��c��������c?��sA��Ar���eK���f�!!!lg;�������6���.�G }�8�l�:,�8���$���I��r��vQ��pWt��E��+��{y����
�y��j
88*� h'V����W�����v��[�l)�����e�=��R����A����h�c'��	b��`|6d��s=A
������}�l�^��>R���^���Y�����_$-�h�}J���0���B����j����,[����>A��+0j��<��Z�
�G�������
&��;��G�d2$$$d�����;;��>]�v����������x�Z�
#F��j���'�o��N�:a��]�7f��\�
4�����^��?!"##����#����_�>A��k������������h,Y�&L08v��5q��5L�<,0�@��Y��J$9� 0'�������h��>�/JT	X�����C�2��)��`w�
����,-���������n�*����s�H:���s�b"�u������{�R	���]�v-��QI��$����I����+�M�f���������->@�V�qqq8w���>�4l�0��}666�_�>���#c��9���x��6m����SHKK3�y�c�6m
�BQq���<��������[��s��=��k�����/88���P*�CZ��~0�@��o�[��,/,}�>���������	���� KS��N�O������X|.E��D��|4�um�����Q��V�/JO��;��t�}��,8P�$��0'�&���e��9� `��Y�<y�Qq�U�DQ��E�r�?~��~�-�_�~9��������������/��WU�T���Z���Xl����k{�����7!����O�lmvvv���#`���9�%%%a��5��hh����+Wr�/]�@F�:�PND%Gn���������o#�����er���Uh;���u���J
x��
��zC��i�fo����Z�>��K+e��D��|4/o5�;�
���DfnV~��z���d]!��J
�$��0'��2W��������zlll����;v������&M2�i��y���3e�$&&�_��N�:!11~~~:th������B�
HHH@`` BCC			�<y2v��	A��x���;���<y2�n�
�^ c�������5j���={6�J%��=� ::p��}���ptt��)Sr�v��
6�^�G��]q��@ZZ�,Y����C��=
����O"��BLL�f���h��C&�G��0��ZN��i����Ta>p_6nk�C����������`�����56K+9>�V�M������o�F����$�gFDDD�(s{@�d�������
*|}} ����_� �����q�ms�����3��`mm�����W�����_~A���
^���+h��MV������E2�����uE�V�E�.]��~�J��\.GJJ
�A�8v�X�����_b��!�j�2VF��g�acc���w�z���G���ys��{`mm���T�t:��#F`���c��}{���E�ov@3e6�8��[���kZ�bA�Ye��)������.�� ��^���~��r-�6""�������6�64�~6�(���=��^��m<���t`-IZ�d�����{>>>�J�*����F]��_~A���
�;v��/���g���ooob��ipu������p��?�����G�`gg�
`��	�na!�"��_���7#44:�U�TA�>}0~��|W _�p�-���'www�m�S�N���o��			���O�s�N�������k��{���n�����7
"*M�.C3n*��> ??W����������eIV�?��'�A�*��YX�0��3�2�� "�����x���o�Fk��oe-��o�������l�%IK�+@S����bD$4��A��k�����
Lr��W-A4
�o��oB�b��o��m�p�*V���jDDD%������n���_�)+`���<���`-IZ���DD��xp��D���k�Z�t��\|NR	����3���� �>��?���]��UjSW���_a���aNI��hT�����k�i[{���"�`�=Lz���B�I	s�HZ��eW@���������4�������1�f���g��]��1c�$��U����|r�}��5m���V9���cNI��hi�"���������i���vT���2��T�1'����r��$i�{�_"""����{
���������@���)1��~��qp���'��k�! ����J�f���I^P(�����9I$����P�������x|�F,n>�k<�5��
{�Q�*?1T�1'���9Y6q4I�ZQI!&%A;�Sh����L����av'lib�L�������Lzy�������-~�V���'""*�~=�q��Ab������r|����6n""*9XK��I�x� "�E��vB39x���x�X���:����B�vG����� KW���P9�#�{C��qDDD�����a�n�a�q�
���^C�yfDDT�XK��I�x� ")��y�q��?u�@��V������R:l~k�� O�3��j
K,�R5��������J��
���7.��`t���=1��
����Qi�Z���M���I�
������(�����������% ��\���e����20|�7���Z�U�DDDyIK�c�����u��1m:9b�7U`m�s�+""*YXK��I�x� ")�Z�VM�'��8������i�m����Au�"wv�������V���-�Q����L����LE+�>�����	�e�u�����s,""*9XK�.�"""���������	��i��i*>o�k�z3�����qnp�8�'�Z|������U�)Oe5'����(� `��rX�}�-��Z#�r2�6����}Is�HZ��eW@�������P�rRv�fA����������N���d�V�?��'�B�)r���Sc���x�������W�r�H����t�l���oD�k�����hKet��R�3����$����I���%��|���r\�S(br2�V@�x%��jr|��ur��&6����;����B�b�g�;�=0y����%���$QI�|��Z
l��lM��
�^N��Z��������S1z�wV!�J�$��0'�&��&��S+"*j�(B��O�N�
��#��u���-�v�G����^���@(b�������'_��q+��N���������������X�c:�s��
~P[pK"����$ia�$�7
"*J��W�7
�(�D5&ww�5o,nT���.P=,�o\�an���"ll������0�t">�r�<1:�Nc���.n�B��kI��4IoDd
��P�j�#x�C3s���@��M�������������SgX\���?�������~h����1��������Y���Vk����X���j���?����h�<�4��X����~���k ���<:��n���'"<9�n��f�u�� Zy��7?B�$�V�i&�����
;,ok��dG8�	�����?��m�+f,�;�@DDT��%�����X�Q�ml����*h����gFDD/��$ia�$�7
"2�&d!�-�e&
����<c�`�����Q���:V���-m`�
���
2�*�8W%���E�Ny�	MDDD����	����;pX&�/��w�x�pB""�b-IZx��,$$������j(�/���L/b����v>�`��1Z[����|�S������w<���Cf��P;�����8���Z,>�YI-'��2�c�S��%v���F������s��!x�]h4�o�EE�9I$-����+�I����HzA�\N&|�-�c!nZ:��v�f
�L�c��xL:�q���&�J��;:`SS�������A�fT���s���}7g�&��s���b>�\��z���6D���=>��*���0�$��UN��$-|�$""��r�, ��u��-QYEh�l�@�V.`����1r����`SS�������pY�w|��o��	�W���Mi��D��bN�U���K��a�:_��[b��{0�fq�H�7���{�Q����'I&cNIs�l�
h�<>�"���E=�������v>)[D���<������N�m�
�m�`�gmF^��Q��������{D� Gw�`B���d���
��Y
����.����h�<�4�(?��E��#��l�m��rL������a��=�O�Ag��Z:b�:_�y��/4IO��$	�������T
�����5n{.""*<�%I!$"���{��������V�X��M�+����'���/-�.>����p������3Q	P�;������������<�6O���""�L\M���VD���:�^�X��1m��/���]��0���m�D���@��I�������~�,�6}p"""���&�{��E�.�	���+��='"���Z���M�����f����wV~���Z���{*1��#�W��L�@���L����a����=��{=�Bz��OC��9��lL{G9���[{��#"��%I�� ""�������	�X�]8-7����0��#^����Yf\OgZ�Q+;����sg�����r���c>�N2��	�`���P����~�D/���9I$-����+�I����HzA�DN&�<���c�!F(^'��u������Q��r�f�ki%��O|��H�d,<S��JN��,��{Ft���|��X\�l>�I"i)��d-IZ����L\������>h,����\|~���l��n���^�����5��n���_E���,>�$wN����_�&��y�&��bYhcp���0'���9Y6q4I�Z��t?�G��I�������: �N��_Fg;�����n�����j��Rx����\��3QY����^����gf�.W?�<�����hDDT"�����
��L�=YY����q�U	�6n��*Bg���%Y��?U^�V,�R~��������J[;��������e�S�]��������
h�<>�"*�DQ������D�����9���m ��UF��I������n�
�B����J�f���I^P(������r���)>{:��]��������$i��I���1����}GL����D�nx�h��.������k��pK�_���:�X���jZ�����P��{�Db|���\�LDD�!$""�E��_!�FS���"�u�l��C�\���v�f����@'+�a��?@�06�v����3�����G
xWP(^m!����f�Q�c���LRh���	Cz�n���'����:�u����!��2�1�8���*a]�(@���q�����R��I*
3'��4����Ju+�<�*�|L/B���jx�����7�#1�%�� �I"�aN�M��$���I� f�IQ��������$'�n+��^��]�*�5��A��I�� ��m�m3���[X���������
1��,���1&��j��d)��$��a>DE��i���������o�tF�Anx��m��Ed�$��UN��$-�\���Ll���CoB3d<��39������#b��/�dp��6g,oV���.
l����
mM�H
���DTp�G7FM������FJ�;6Gb��HT�b�����+�<��GY��$��d���$y|jETz�
�?�v� =����r����#�X���F���`�WM����p�n�z�M����(/	qZ4�x������\������\�:�������$ia�$�7
��I�����U�c�7�A���`��]B�nk�����&]k���=���s """��gsb���rmg7%������P��U�DDekI��4IoD����
��%�.����"�����:��*�^�%Z�m�H����t={G9���[{�HEDDD�W��
������c/g����""������!"�"�������v�r���:X��M�z�(>�c��l���g4���g"""*4��
���k����,��y:���Ac��4����g����$�+�I����������>���&��uO%F�s���9�hVD��}�h(b�M�W?QQ�m����������}S��Fz��~��<��kW�{��B"*[XK���&""�����Ww��^m��u&�52`~{4��i���|���
T|���JSr��
��^��*�A�`����m����*8��5�^Y	5�Y�e��R�h�}4-C;�����HO����%	s�HZ��eW@��������oN�q��|���&_�byF���k��W���T������~��J%`�$/l]����#�~�����$���|$C^\���"����mSvm���������@���e��B�$��UN��$-\MDD&��]��R_y���s�����?����lq�n�����\��
v��*���'�G,>Si�_NQ�a>�!/����{��Z���i%���V|_�����Z�K���b��'h��eto��[��x����9I$-����+�I���������?�ov������:���2�>V��e�;���XZ���<���<��a��#"""����=� �@��<���["�}S���m^�V2t�����P��m��_DD%kI��4IoD�'�"t?���i@d�I��*�����-DY�?����N��� ����o�c�:_��d����9�|���9�1zF9��HDDDd��yA�K}/���8�k|���i���9�B���]����"����$ia�$�7
"i?E�����:`r�1������y��;�;;C@������VD������y�GDDDD������������o��mS�:�d�k�L�������*�*w�$����$ia�$�7
"iE�/����Y@\�I��,e�����������:��p[����]1{�/����<s�8""""����I��E~��.|�����+e��B"*�XK��I�x� �}�}h����_M������t<�7j IDAT�S�|V��8���'��hrvS"��J�����}
�������H����8�;�6E���g0��Q���� 7�v����""�b-IZ�9""2���C����Z���s��
tE��.��u2�l�o�����^o�p6��[{��Tj������_�G*nj�o�p�p�^]L�S�+�g?�Kg1c�4�������'�%_�aNIs�l�
h�<>�"�����:�Sg`%F!Yp1:6�]mth�hy�}�t%\6����^�,���k}�����s'*�A��$�D0I��zg�g\x`{�:��9I$-E���%IW@Q�D��OV �vK�O�L��q������'t�5���b��#s����Wk��L����������HR$�	h��K����O^����P�5k�\���T,�v�|.bp�P�1��z�\���D���,���$�O������5���e�ceC���VX���q�l��r$��g�V���o�C��v&�ODDDDy�q%	�6E`��(�F��B"*=XK��I�x� *zbZ�s�A��S@k�#B�
�����=���lT�<�����2�#��r`�^\����&"""��+��k5�A��n����8�����$-,@����AT��g/f�z�v��@A�|�PhB&���3����F�)�����((b���0�j��1u�DDDD��?H��["�}S�M3�u-,e���=��As;��&"2kI��4IoDECLN�v�'�._�M��O����������_�F���Qq�����H�m�R	=��M��R�#
�����Sa\���F�Anz�U�Q��Z�������{�n��9:t���d2d2n���o�(�X�n7n����n��X�x14M�����G���������`����}�v������1c`eeggg�����c�Q_��m���uk8;;���
�9s&�����0x�`���@�V���}�������MOO���Q�vm������M�4������7
����V��KW�V|����:��?��W9T[����g�-_x,y�-�4���K�b��r,>I���_�o����N����.<�CZ�y���?�����r�.BCCQ�j�\c5
�t���j5�r9��������?�kk�o�[�l��!C��� ��`gg���8��kkk����Z�2���C4o�aaa666HMM�*z�1�V��u���
��
J�HHH����������4{��t��)))�������^��B��_|�~������G����
�����j�HK��W`` v��	�<��]�������	�L����M��XL��:
���)��5�����po2��#����V���Zi������h���&QA��� $$���AD`>R���_I��)?}i��]������j���B�$��UN��$-ej�� pssC���u��;c�8p�����e�������={����	�������
�^�rC��N���o����p�������h��-�����[7DEE��E��wGXX*U���~�
qqq������!���f�����V�^�
6@.�c���HLLD\\~��7T�Pw��A��=
�>}���wGJJ
�|�M���!&&O�<A�~���j1x�`\�nx����Cq��E8;;c���HHH@RR6o�������F����EZ�f&��RaR�>sO���[���p���g��u��v(��p����0p�'��D/i����="���J�j5�1cYE���>�V-:8@f��BL���=�[5/#��_�fm8�^����$��d�T�V@��z��{g���o�+��>}��+"==+V����������]�t� �t�j�����K�.��{7������Og;l!))	��W��0q�D,^�8[l��m�\�.��W_��>q�D,_��w��JeV[ZZ|||i���.]B�z� �"v������l������+�������������z�
6������g����?Q�^=��]�v����+0~�xXZZ",,�����>�"271&�	3����c�F�A�a9f�
�z���'po����$os�uT8�3����@W>Cd&\�E$�G*��<�����w�{pa��N�9���2'���+���2U�~����+Wb��1ppp���O�R�r�������71e���??��g�����
Z��~�-z���#v����>}:<==����lm=z���;��]���?����c�+W� `���h��]V��}���S'�d2<x���6�����#G��W/|���Y���zxyy!""�����)Sr�~�������j5"""`kk��6i�$,Y����WH���������X�zu����4��I�c�GO��[����
���B>f(�n�c���8��"F��ha�v�����?>Z�w���Q""""*��zgO�c�����������F��nh��M�"���l�{G9���[{�Y�KD���$i)S[p�/��h�����3�������9���N��V�� Y}^�Y4~��)BCC������������5j��(�9���w�5r��9���}3]�~!��3����t�:u����}�h��9��gDd~��p�����L.>�Z7���q`�p�[�k]����>j���g�#]�����G�����J)�L@���X�e�~Rs�������3�C��prU�`�A�X|&"*$,@!s�+���k����n��a0������cr����DGGC�<����xm��###mp�}^���WWW���mlQ�����y�������#������kZ��-�k�Bud�NpEP���p�}D�z�C6J#���hsg(.o���z8s�
"""�2��^����������U��	'��/���@�?�f����xw��Y�IDD�a�O�<���87�+����dR���%���!�"�>}�#6�������:o�vrr�u�wnc���#99� 5���&"��������0�}fR��c[X\=]�~X6�����]LB|�_��V@���)�3������pt6�*""""*��������n��������
��F�,([ZZ�����ammmtlf|\\s�k����t����6�����^���C�v4Sf�I�<��	��s!��
�N��7��Vh
D��{��:�����^���.D���
�����4R�dh����9���4��2�6E��m�\h*�~&"*|z�(}��x�f�/[�c�������� �MWhFM6��,���N!�sW|<!=_��Q|����c���~��\�c#���n�X|&*BEq�8��Hd�rj��V�n��7�VG�w\`ai�E6�����DE���e�F�\�����k���lllr�>����
�;����[��&"��:4KV!�VK���nZ��T?n���
���o�����>�(�L����FB�_������9�����:��Y��_	�����{
D�/�#�id2
[d?��V�����rm��g�������h#d�c��q�+�2�lll�
�����olJJ
���d������=z������:��3����t��������DQ4j���Ar���eK�������������
�B��>RRr�,&�J���b���}���NPt���u���P<����� r�&$D����V=o����}��u�G�q<hj�T+����lg��-ZHz~lg{Yj�����v)�g\�j���&���{��`��I����ow��\�E�-�
�d�oa~}lg;��-Z�����7���E_���!aaa���� 

E��U
����'�o��N�:a��]��3+W�D�
p�����������@����H899���p����Ap��5���g����"::K�,��	�]�fM\�v
�'O���^�<y2/^��5k����c�,Y�I�&���-�!���_G�5 ��?�:u���������[����}���
����3f>��S�cw��	���C��=��w�� ��Q���$��C�`�s��I�B��P�]���p������'�]C�NE���H�v����;T����D9w��ADDDD���t=~��m�"p��3��?�d>�j4o������������kI���Fh�����SHK3|8��#Gm����z��M�P( �"�=j0����2V?_|���[g���=z�k��A�cg�����x�����3�~16  ���E1��3_W��h�4�^��c������'O����?	i
��6���������r��^���7�^����u�I�����z����z�������2.��/'����s���Om�1��I��U����9�C����q�c�s=��+""3`�AAAP�������
9?��g���y2�}����fgg��;�.]���+))	k�����7��3_;|�0�\���}���2���E�Lm�����t:]V��]�|G�� ���_�6A��wo��U�r������l�2+�_��9�������o_����_���xXYY�k��9���01%�)!�Q;�W��+T����n(?[��~JA����[t�>Z�8�����u��^uq��j�Z:�4"""""Se\��?v��j����E�v4������\F��1}�m�)	�Z��EDTV��tTTT�������ccc��=_(vww��q�dlk�u�V��������1p�@E�5j�s���P*�8{�,�������������S�L���sg4l�z�]�v��3giiiX�d	�/_A0{�l(���R�TY{�,[�K�.�����?�@��]!�"^�u���[9����agg�m������P��7��]�6z��	0`8��t���/���	&���%G<��;uiuZA��3���C��Ic���+�+����7�A�[x��h�K$�'.����'&^��B3�\;%"""��#.�R�����k}�QNU(c=�����E����5������~�7�$qu4�����2�q5���0���d�Y���K�.��?����\.G��~5h����v�����K2ZmF�������2.��{7Z�li0���Gh��9������Fjj*t:A��#�r��\�����c����B�Z���������p��Ixx>��������K�
����T*��_\�
			h��5.\�����N��*�w��	;w�������PY'&&B3�c�VmL��fu�6~
���o��c��{HJ�Y�N�z���+���7��}�t����P�s
CDDDDT���hZ�"tE6�����;�y{G4mk;~oL$�%IK�[
 �2�:-S�P`��=X�f
5jKKK��r��S.��S�r->@������g�����DZZ|||0x�`\�t)��3x{{���K�6m���aoo���[��~���k������V�Z���z��1c.]��k��x�
\�t	D������OOO����O������������`���Ur����h��1��[�]�v�@�����i5�C�r�i�g����P�;�{v����5��k���V�.��jt�yd��tJ��3���vJ8=�#Q���W`�$��� �6���X�m�"1��M��r=�^���q�b"�z����d�T�V@S���VT����BV#����g�������<�P�T?����<���HO3�?)�n r�z��t��=��`�n02��9I$!� 0'�$��HT|��h^�"����
�����
@����]A��+�����w@�7����,�A�J��z�d-IZ�����iB"�vKh��itL��������g(�@��~���AP���������k]B�{k�.>/j25|�  88���Q�bNI������+0hb�U�������q1�>V����C�
m�h�
�`�������w=�n�����p�Lt:�����d���$y|jE%�&d!�-���L��5P���k1"i]��x���c��7�r�2h|*��9�����js���F���@�^�������M�QQ2�
��8~�.l���FNE��������X�?�����ttV����h����9���������$ia�$�7
*��WC�V�e����R�E�o�f��@b�i�XC�I0�����g�0u�m�
M�3$�����n��l�L��m?F�_��EDDDDTL>���g=����9�1zF�<��u�������0,�0���F=k����]G���P(r�KED�a-IZX�&��M�J*�w;�y{D�Eh������{�|}Y��P�Y�'O,�q[V<���B"��!��!��o�������|#��FDDDDT\^\mh�s~DQ����8~ cu�����nmgNvr4m�������
o�����$ia�$�7
*�r-B�HL�fR0�`�E�\:������8Lv'����Gl�Hhy��!�����S4�x���I�����Y����dN���:���TsL3_����}FA�n[(�<����%I�$y�iPIg�]@���P}�	�����A�m��7F�����Hjp��1<��q��J�t����%""""*���&�~6F�����O|�?~�Gj����[9��a��]�Wyu��ITR��$-|tFDT���B�u
 {�[��+T?l�z�f�C�v�/U|�+�9t����Jv�8�uc�������GDE�9I$�G"i��W`�D/x�����g�X��G{b��\�����0h�'��-�>V������aw���"����y���cqHK+�8�9�}�l��
�����}*�
��U���EqO���ZQi��n'4��#���
����e#Zk��c��[�Qqz�D_������_��:}o�|�
���$��$�t0��#!N;e��������:>�����X��a+k������|%�RH���}��$i1�c@4
�_�A�R��ODDF��]�ve�fii�!C�`���P���>�l�F���h��/���r�b�:���_E�����3*Vg���Q��^�A����V�W���������F�#����$��#�t��+�%'�U�@��;���z\�-�dl���_��2fr�������X@��h��-:8�As[XX�e\"S�}�l*���F���Q�R%��u+�)D���d��_��������}����&I�ZQi��}�?�3��|��P.��g*L~'>3z�C,�����#���������a��6z"""""2���iY{G�:��x���K���Z]��E��Qi�Z��Iz��iX�`BBB0k��������3m�����aee�o��?��A�����m���*IoT�dv�,�7��p	����E�����8��_���q+�q�1��J-�u���P�""""�����q�tb���k&��>��2tD�Vv��6�::��m^����P�$zkI�R$�-Z����8w���������aaah��	N�:���G���c������7�TI�x�����9�|�[_(��!������:Q��x���q�����k���3��;�:b}��P���Qq�x��������g8u�������J@��v��P9�2����1�	s�c��rf�&��XK��")@������HII�\�������Q�J��]�v!000[������A��������=U� �4��yq��<,���_����2|��&��������H�[51�fo,i:2Af�DDDDDT4t:��&���X�8��O2�,���Q�EG4o��&m�!�E�����g**�%IK��mll`ii����m_�5�y���j������2[�F��Z����-���[�G�oTe�������o�5�(@&����"t�1�p��eH��5�Y��a�kC��Q	���WG�<�1Q�BS�P��-�J�������TTXK��"Y����o����s�����(>��� IDAT�R����#RRR
u�DD�4`���NU|>(��)x:��[�\�c��N����B�m��W}��������Y���t�9$$��������D��|$�������Jt����[��L�k�y�&�Tu�@VH��V��_��V|�w���1f��\�%'�4E�������Chh(�V������^���1b��Z�*G�(�P�����FlllaO�$�O��$�_
Ej����"��	�����X�����v�(C7|�[��-��Q�p�'��^���\�cC��x�?0����9I$!�I"�`>IKY��g1�:�u�aT����dW?Pt9�Z���
�F�AE�X�"��W�^���m��1{��-h�ZT�P�`;�	��n���[�x��~�bb���k�3[��RU|w��>�q��U|V�����'f+>@pp���ED/�9I$�G"i)9���D`/,�\<���_��|P��-^8���p�3e*9I9�
�c���m���F�B`` >|�9s����{puu��{�`aa�#v���5j������7�TI����J"����61�>Dt��H�*���+���'V�/@.�N���Y�����X��f��a������u���:�������������[��Qz���qk;���j��X�V���S��Z��I��M�6e��r��7b�����4i���Oc��M0`@QL�$�7
*i��gH�������hq:~EC�m�q/k�s��V����-1��B�����y8���7�S4p�a�@DDDDD��(��y5�ffx�T4���9��[��U-�[���Z�RUKT�j���,�P��tzy�%IK��u:.\��>�O�>T�P������?�V�ZA.����'pqq)������A%M����}�!�>'��x�r��J�0&��N��(�a��`|��Qs��v��N��'?S�NDDDDDeDb������3�`���P��S�RUKT��Q��,P�z(_�0u*;XK��"+@gEQQQW���G�h4HKK�L&���UQL�$�7
*I�]GZ���N�k��@W�@r?��V,�R~��H������8x�w���k��C�[�Jv�&��������Qq�FJV1���x��K�gp[9*V�@�WNW|�8mc�-=(;������D��M�J
Q������.o�b)o;-;:`�.�����y��z��Qs��T�;}Ok~b������
&9I�3����]G,��.���yq�Tfm�Q��%|�]=]��*�,�P��Z��y���'�x�"�����������(�@%oTRh��	M�ay����UH��Ou���q�^]��+���{��������{M���N�&��T!!!		)�q��8�I"�`>Is�<�n������������Gg���r�,�
���Z����N�{���G1(��d-IZ���a��a��]�!��d���7V�Z;;���
�0�iPI &%!-�	�������8{�*��	s�c��r��������g����r
���bX+-M�wA�x�,���;�����>��U	���� �����"�h�Q�@A�VF�x�Fmq@D���Ah[���A�U@E L�L�U��#���JU��r��~�r��=���+d�r�{���EM���P�e�L�K�<�O���T.Hx�C������[9��sTLPE�We��&�%��/����n��i���������n����������9|5@��;�e����vK�T��c�;���:�s�g�a�c:�~�T���qw-���B���%������k����A=f�&�^h�S	�^��V�T����}c��n����v~w��X����5����4UHH����Rr����2���Tw���m�i�S���/+�g���1c���,
2DT�z�����j��9Z�t�$i���4hPy��J��V0�{�~e]~���]r�m�N�/���K�|�3���;*M��H�R�OM�@�����K�{�?s�T����^�:QA3�g@`x���4���F$^���kj��L������������XR��3-;�tq�5*��t��u�W��qa[zx�����o�zIf�K�K�.��q��~�i=��������s������?�Q�����C����^�W����_���w�k�%K�J��>��{4��(�-�w%�����6-5W?�x��!���L��sF?����t�?R/�a����`����=B\�s��*h�V?��$���]�F
�:uJ��S\\\���;w��+�P�V��}���N�0�k�:e��5&9�������Hg�]�����v�|Pa<��=���m�XRNACz�����
�_�f)7����j�����L7j�F��*$���e�
:PW?K��L�����T���u���
��������������*?>4`*;+KYWv���>�q����;7D��u_�a���z@�����+v�k�mN�[�����8Sd[��8���%o�h:���7)hH7n����i���JO��U����Y��d�����j�J~8V���Uy7�xrg������~���.�L����z�G�5�c��.DTL�S�`���c��K�38��K�����a���z���tW������_E}�M��f��o?g�������)ez�����G�<��8�P�r_�����w��}����Pg���q�1������N@!�$`�05Y�����X�b�;���:~�~D�S�_��w���g/�K�j�7W��S�uR;}���5���6��n���.k������aE�[�5������Pdd��|�I���mk���������cK<���>[^)�`|m&���Or-��k����5tp��V�3T+{������s����I� �$`�05��>��,K�f���\[��[5�C����>|��n�������U�����������>�rddd�cY
hFpm��g�9#��I}�{�)�����|������N@!�$`�05��G����$AA�6	U�&��z��L3O�o�q��A�O����,���d&�~���@����5��sX�����_x2�t�k��.��:�$���^�n������5F����V������m�<��}{�~�����'S��tF�Yf�,L^��O�����4p!���Ir_W9�����]O�g�)+<�L��Q�#�W&��-����Y�x�����Y�W;#��S��o��E/�4�E@)�'��3i�����0e-�CF���tZ��Q�.n�.��;���/{���3�����e�h)��c��|����W��[7��QC}�}�T0Y�3����^c�ew�F��#m�\5���������<�

s���j~Ex���'r���y�x�����{:�����5}�g6�4�?��s��C����n����^c�� ���$I�?5QF5�o�{u��`��5�U�F���6��q��V�o����U�/<���J�z.V?�d��NLg��rFL���������$)��k������/�s������N@!�$`�05�����T�A���)V�=VG���R�����b*��gj20��!��Cu����C���R���8-w�G���O^c�����le*T�d[n|.Q�8�[v�� ��~�o��Y�-��&�P��9�G�,�$��W��M��=�ql�����g.�sF��_5I/�,fu4�0vZ�r�%����!�gI�l�B����?�U?�������P�)(���A=f�&QUQ��*����35�X
�q�
)g�s������o��zP/H�~�W;IG'MW��s������]�����>�j��
�2�~�'zIf�[:44Tw�}��g���e�*>4PQ�{~R��]�����.��;4K?�Q�1;(G���U��<=�4��Dk��/���m����#-%W]mU�)�������o��=��d�5�/�eYr�\e�
*>4Pl�Vv�����z�q��^��G�K�}��zl8��6���������w��PD�U��~.�$���Ipp�:u�t����p��+��g�9���k�����V;K�|�W�;��Z��8�P�j��"^]��3r�g@�<����tH��J��3���5j�����/]��}��r�L����S�~_���JU�}�kU�����=���� _TL�SO�%��@��2;8K�_f�������eZ��
^��[��[���4��B������J�|NLL��BM���P�����SiW?S���o{@��SG�*�K�
b�����Ae��,�>�5n�=]����uj�
:y�R���u��z��{ �	,��&�P��9�G�,�$`�$�$��
���������H�9���t��r������z��]��	*:�P��9�G�,�$`j20�������a��{���n�����	U�$��e�����s���:�5��]�VX�2�G/�,~[�?8�����9�g������,I'�/��|����'�|�/��t�����7����������X��������S������c����\{�9T6�
 ��G�)'�E�q�4L�
�$�����{����V�p��/8G���4�����T)%�k�:�Z}��%I������;���
��B���Us�Y��	
�s�v��������nR�Z����X]s�5�:u����K���������M�6���Tll�:w��9s�������S||�.��"����I�&5j��=�snRR�F��&M�(44T�k�V�>}�~�z�sm��[o��N�:)66VQQQj���f�������7o�����[���Shh�4h�a��i����z�@yro�N��������i�*x�z�Ze5����_�a���6��M���X�)(���A=f�&�P����y:`��>}Z�����a���'jFGG+--�`���
j������K��MMMU����u�VIRDD�rss���%I�����-[&�����S�L��I�$IN�S���JII�$��UK������_�q��m���{w%''����.��%��4u�T�?��������Wk���$�����t������:t�����q����5t�P�\.9EGG+%%E�m+""B��/W�n�<����KQ^l�[Y��*��-^�f�wk�I��.�����$�����l�S��<������,��BM���P��Y�U�����
�s����k��
r8�6m�N�:��'O*33S�/Vll�~��
:���a��i����Q��V�\���4eddh��y


���+�������W���I�dY��|����n��]m����c�t�m�);;�����L���G���j����o���'O*99YO<��l���	�v�Z��~��g�f����i���:}������b�
���i��Mz��G<���m��
&���{��WG�Qrr������={*##C���������_(;��>��|>h_�w�_�������|6�D���]'V����?�Tj0�����BM&V@���
���z���<n�1�|
2D�e)99Y111��o��V����eY���O��w�"�^y��5Jaaa����U�V�"�m����m���_?-Y��������eK�����W^���?^d|��Y3f�����{�n��[��������?�Xm��������%%%�Q�F����x�����o���,K�}��Z�n]d�o��Z�|�:t������H3.##C�Z���4f���9���3w�P��T�i~�t����Q�SZ���e����t��f�����}���u��e����%�������#�������x��m~���B���}IR����5�%���Vtt�233�t��"c;v���m�dY���Wln���5p�@I��E����?6h��b�gI;v���&��={��-Y�D��������?\ln�>}��Y3��]���:uJ�W��$�3��J���=�������;7P�r&���|���J��I���q����$=��!���E����������l��*����4{�������=�

U�.]$��C�������k��8��[n�$m��I����
r��9���^���h��]���t��j��y�������q�F�������w~NIII��k���<�w���oo{������a�,��:���������\���?�3 P��>��
�$����z�����*I�����~���G��p�N��m���[�J|H�$�j�J��5bw��)Ij�������U�\�e�xm����ys��.M���[xn�:uT�zu�s���x���������\�q������l�K�����5>�Z��|AA���L�R�}F���{���}������UXX��V�Zi���4hP����T�>}Z�e�^�z%�;�������]��R�j������?v!�NOO/���4s���#����
�'��Ur�o�1��X���%I�z�Rv�_}���'�aT�mn
�s�p84k�,��9SAAA�,Kiii����:z�h�9���aaa%�;<<\R^#������m��|^��������@y�O�V������P�"��l�R{��?�E�4���LU���X�)(���A=f�&�P����9HJJR������O��{�������t����6m�����|P'N,�S�i�g?��4��{�[�XY=�����-w��d�r�k��v3-W7�"�u����{5�i�Y7�-�4+���'Wt

�&sP��Y�I�,�d`�}���~m��IC����su�W(,,LM�4�������oJ��O��;vH�"##��>}��s���/��������e�_�����s�vDDD��>{~i��vm����U��_�c[��G�����/Wl���`G������p�qUQBBBE��j0�����BM&���s�N�[�N�ei���c���^�����vk�������h�����m:t�������Y�}���={~���~>x�`�^;22��a]����fff*%%���=�,����v�*��J�*Gbb"�>����^�<�q�;C��q������J�a�2��O��{�!��"�����_�g��������g�lZ~�3h�%1%?��������8��6�)���g<��%�i}[��>�b�e�OC�d��y���,K


���cGm��Y�>��f��]��������/{��U�Vi�����
���=[�?��bccu��	�E�����PZZZ���������.����_��n�[qqqJMM���������
0@}�������'�x�{���z�����cG}��W�W�^���{��,;vLqqq��n��E:t�eY��c�Z�h�����?U�/��)��;��������T7SI�f����5����&�orX���$���B����Ng�����K�q�cQQQ��u�&IZ�v��9g���_|!I���G����)))��i����~��$��k�)�����Hu��������k��������q�Feeey�����^��


�m�Z���C����[�n��g�B�99�9�g�k�A:>d���s��X����g���R�6m$��9�3g���+V���c�����(I��{�V�ZUl��9s�������b��[�l����J�mk����:tH�/�$�s�=��
$IZ�h��������9S���];5m�����������<yRo�������?��p��|�������$���^*v�)##Co��F��������w��5���>��:����/y��|owOP���e�"@�E��5j��o�Y�4k�,M�8�������y��i�����K/�T}��)���M
0@�4x�`�Y�F��r���{�i�������G�f��M��S�J��Fc���JOO���/u||������I
6���GyD
6TZZ�z���]�vI����4n�8-[�L�e\����kk�����q��i���r������2d����W\Ql�����o��F���y����������u��U�^���e�N:����}�M��J�|���~�3������
e�@���� ))I=z�(h�Jy�\�7�%�N�:Z�f�����"s�����{wm��E�&�����lIy{@/[�L��{S�L��I�$I�CJKK�$ =� IDAT��UK6lP�V�<���m�z��Q����Rzz�l�������S5n�8�ssss��o_�^�Z�T�Z59�NeffJ������>+����{�=
:T�����VF������/_��]�z���}{p���<.�������^������#wT���+����;�ShPHY�Y)�?���I��#`j0��j�^�Yh@��3g��������K�c����(""B�]v�z�������F���������/^��{���t�U�V2d������}��f���o��Fiii�_��z����'�V�Z^�9rD��M��U�t��AEGG�c��=zt�^�%��vd��y��k�\.��6m��j��Q


�:��-�1c����%''�v������&L�����|�|h�|������n��iWS�����#�i��kl�3D_���.�kR�iVZ�eQ��A�I��#`j0��j�^�Yh@�x|h�\�.����E������b��=j����<���<�G����R��XI����A=f�&��:0�����������@9���s���?\<^��}U
ry��s��Z�����\���B��C��>yJg�_+?�5���qz�z��>�5�^D-m�X5�b�2MPN�%�������Ix�g�����������%K�z<G��<��Pe���S�����c)�Uge\�������u��CY�ph@�l�V��	���~��Bo��!�|���E�4���e�@@�
�Jp��c�?�^c����M���5.28\{NQ�3�,S�Rx�8`j0�����BM&B��q<|�32������y�qew���^��{�{��k������,��&�P��9�G�,�$`�$�$��@��;u������K��C���w7�E�6�UV�UY			��B�I��#`j05�X
�q�
�����+n���K����j�o/��z�FQ��e���	�,�4���K2+�Tj9O<���,I�5o������Z����e�4�J��f��+��k���0%��y�g;S�:W�Uj
h������QO��{��H%G:���P���j;��R���P)��zS����������1�kLlH�������Mj�;�*��a����qO���ay�y��3�$�NY�0+:�P��9�G�,�$`j20Y6����xr)��}��r���k����5tp-�1C[��]}o���,��&�P��9�G�,�$`�$�$��@����K����jM�[�kL��F��uc�2�����P�)(���A=f�&�P����0w���v�������wx�{��X��gL����������Z-�:EP��%���*
�[��l>�T+H�u��3���4���4�J�>���I�|���#N��%?x���5���e�J@@����4)����5W�i��a%�_���������0���v�\o���$=������HT��e���
�h�m+g����^��}��Kq�@��A��N/`%&&Vt

�&sP��Y�I�,�d`�l	������������^c~�u���z:����U5����1O!�j��b@�,��BM���P��Y�U�����
h�����3~�����U/����=��|.c			��B�I��#`j05�X
�q�*p��N�3^����!�5��������~�D
����H�^�YX
�H�=?)w�^c\�4������w��V��#=�
h��m[9���rr����!J;�{�Z����z��3w=�4�������z�1�#��;���%K�ozNq����4��>sF9c&����S�N�cO����+��p�h@0J���d���k��K���N�����Z���2Ca�����B�I��#`j05�,��A�p<�4p��MY-;K��^��?QG�.
)v<*8B[,R����+E��eY�$`j0����������dV@0F�����E�Dxl>K��'�|������N@!�$`�05	���L�����k\6*�G?�1����~���F����f�j�M��Wz����dV@�pvn�rFN��?���|n]_�v_����P�\������k���Az���b��N-�9EQ�"�+=�'�*�}��r^�7��8�Y��O��'u�}Ey��D@���8EJI����0mhV�x����d���+5\ �*�{��r������`Kn�+v<.$F�{<'�����(�����B�I��#`j05�,��A�p<��j��neu���o�z����M�[���?�T�K��Sv���,j05	��z�BMf�WM�K2+�T�{�l>���_{F;���w�|�`			��B�I��#`j05�X
�q����SRu�����c^��y���_Q�X������)<8�<S��$�����L������y���	/r,�YM{N��PI���W��{����^cr��;�K��c���N#te�����
h~c��rFN�rs���yc����V���
��c��*��P�h@����r�o�1G��vkl�cu�k���	{8�r�
�/�������>�n�����Ms�OV������CbbbE��j0�����BM&��q�0O.�r�+��^c65��c��v���yL��4����N���,j05	��z�BMf�WM�K2+��;���*w���c,��;��4���j���sy������P�)(���A=f�&�P����0w�*�����^��k��N�z�����B�y�"5�mX���*�^�YX
�\����g��T���>E<��
ci>Tr4��;;[9#'����+V�����l�S�[�)���4����W����G�1;�k�
Q�D���]'|]�
h��>����f��{��8��y�f���{=_PlH��Y�h@(9������,i���B^?��!]_�My��2���X�)(���A=f�&�P����y$��K+����}��^cN[j7��~��$u�s���}SA� ��dY5	���A=f�&���&�%����i��}=z�Z�l���H����e��z�����������lM�>]m��Qdd�bcc��sg��3�T�\�n����u�E)44TM�4��Q�t��Q�s���4r�H5i�D����]�����������k���z�-u��I������R��m5s�L������y�f�}���W��BCC��A
6L{��-��F�b�\�1�g��[���1�"���4�+�����N@!�$`�05	���L��>s�����?�3g���,EDD��v+33S�mk���z�����IMMU����u�VIRDD�rss���%I�����-[&�����S�L��I�$IN�S���JII�$��UK������_�q��m���{w%''��,EGG+==].�K�ei���?~���999������Y#I
		�������%I:t�����q����5t�P�\.9EGG+%%E�m+""B��/W�n�J�]K���lr�,P�#c������O�SVp���������z�#=P��K2+���|��C�*++K�����{������t>|X,P�����6l��n��5jh���JKKSFF�������P�\����@�W���I�dY��|�I�:uJ'O�������M;vL��v���������T�>}�����m�j���:y�������O��mM�0Ak���x�g�yFk��QXX�������O+==]+V�P\\�6m��Gy���m��i��ar�\���{u��%''k�������222��?~��`2��)�<=�g����4�����PE��=zT-Z���S�4m��W
���o�U�v�dY�>��������+���Q�F),,L?���j��Ud�M�6��m�����%K�;x��Z�l���t���+z�������5Kc��QTT�v����u���������m����ys����$5j�H�����|�r���W�e����S��������W��/W���W_�}�����j�J��1c4s�����<��?%�k�x���U����"���4��6
X���p?e�:zIfa�9x���u��)�h����gIz���%I��7/�|���~X���������K�����C��m�eY7n\��������%I�-*6�l��A����4v�XIyM�={�[�d������~���>}��Y�f�m��=�;u��V�^-I3fL��������>*IZ�xq�s��qo�!���z��vJ���I��`G���B��
�}������9���a�$���o�8�.]�HR��������5�\�q�-��"I��i�222
����i��-Eb�v���*::Z�m�x�.]��Z�j������n��Q����,�����SRR�v���1��m�yt�����-Z?��$=�������H�t)�8qB?���,����_������[nQ����V�Zi��	:q�D�y�mk����T�C%�U�V�T��s�NIR��%7����V�sY�U��-�R����^�4y�n��u��Q���=�-����Q9��������k��h���!F�������^��r���X�)(���A=f�&�P���t)�����������?u�M7i����m[�C�w���/��6m�i���������,K���+����c>|�������+��&>{����cr����"��K37,,L111�m�H��\����M�7�o��C���y=������2�<yrE��j0�����BM&:@�t������M����[��o���S�������W���.������\.I*��
+����y�����9�?�4sm�.2���>{~i�z�6*����d�v�k���C�a�I���T7��?RC9JHH��BM���P��Y���D������

��e���}{Iy�X�����s%�me�l�2IE��y���J#���%����>�+oT~���)�/���X��w�=x��WP�F7�);�'�6����A=f�&�P���t)EFF���W/5n��X�����f��I���[Wl����K<�X�������_mlYV������<�kGDD�:����&oo�F��3f����5f�u��vI55�h���G�)3��t)��_������y�������$I���
�m�:t��m
��
��,���ri��=�p�,�kGFF4�_�����L���x��'�e��_��]eYV�w�/�q���r��T�����p��^�3��Kw������#�5�����?��3�8��3�8��3�8��3^y�����b�e�OC�v��3g��������S=����G+W�T�^��b�
IR���y�f
>\/����y���Z�j��>�����������+66V'N��XDK�,��w�)�������}����]��_?��+..N����={�}�������>R||�>���y>\����:v�������������woY��c��)..���-[��C��,K;v�P�-<^#�=��j;+KY�o���~�q����;7DiV�qz��?e�$������u�&)o������G���a��c����]�q��3g��_H�z��Qd,nJJ�6m��q�����B���k�<�/22R:t�z����Z����,��ko��QYYY�������_����d�v�v$%�]�n���0S�_���|�V?X�^�.�������Sf0	
�sp�}�I�V�Z��{�_�j�~��GY��[o������%I�w���U����3g�RSS^l�r��-u�UW��m��1���C�i�����{������A�$I�-RRRR���3gJ���k��M�������'O����.6w������p8
�c���h���K���K/������7�x�H������3�%�qc��S�+N�?���TA%}
@��&sP��Y�I�,�d��Qjn��n���mY���uk{��M�m�������Yc��]��,����k������l����5k��W��m��sss�����aaa�eY�3�<����W��-��-����g�����m�;v����mk[�e_v�evvvv�����v�F�l���v���;w��m��SSS��c���e���^�v��k�?��,��,X`�\.��m{��Uv�5l���{����������V��mY�}�������m�������o�-�����
��D����9��y�>m����������W�����E9�&�P��9�G�,�$`�$�$���9:x��n��F���OR�6.�K�����-Zh���E(Iiii�����l�"I
���Rvv���=��-[&�����)S�h��I������PZZ�$�V�Z��a�Z�j�q��m���G�8qB����t��-����S�j��q�����o��Z�z�$�Z�jr:���c�������<�����{OC�Unn��������������k����c�s���R�7���^�R�g���z����c���-���@M���P��Y�U����B�<dddh���Z�t����'����Y3�q�1b����=�����_��W-^�X{�����T�V�4d�
:��u?��3��5K�|�����T�~}���['NT�Z���=r���M��U�V�������V��5z�����Kb������y��i��]r�\j����Q�F)((���-[�h�����/������k�g���0a�7n��}��a��R��]���q������c�ZP����C/�,4�a<>4�����r��5��ZA��d#}�P�[4�Sf���dB�'��	�O|�g��;�tO��4� I��wH:0�	�J�����0�����SV0+�xu��/Uc�*�1YA���/�G�&)(����S�Dn�[�<4T[&��-F=b�V�����*O�BM���P��Y����Ca<6��8��?�NO��5��X���|X��%(4����P�,��&�P��9�G�,�$`�$�$��4���[n���+���ou�t�$�;B��n�9?�SK�:��s�IHH��BM���P��Y����
h��V�#%+]���C���T������.��9��8\K�~�7��T^i�zIfa4�6�N���Y_���8��H����{�9�!��yP���}y��*�� -%WWW�FM�/ui�z}��@����sF�`���%����9�5i�{���`�|�@�GQ1AzpL=I���35a�q9m�����5�o�O�z�:��|��-���_OQ1|������utU���S�����!9��-=��\�9��f��u�-_T~4����OE��j�Uh���M������\���%
}��.�������X�)(���A=f�&�P����y$��K��=k&���k�s�����
G>���`�{??�+F����.������M��,��BM���P��Y�U������E �|u�;I����T�	��%������B4���E������P�)(���A=f�&�P����0w��N�����+������%9,��|��F;%I���?���*�y��d�����z��*������4����
���q��%G8ey�-lO� �yc��s����
u�.v���)>���#N9AE����F ���]�u��Y���������2�����"�,S@D ����%��^���	�s,I��?���3
�5�������G��$+:�P��9�G�,�$`j20Y6����xri����=����6ES>9U�y.Kz���Z�>B�u��&�����,��&�P��9�G�,�$`�$�$��0���Kwm����h>�
m����VB���[����3De���P�)(���A=f�&�c
 IDAT�P����0w����o���G�������f!z�s����H��p���7tw��M�<�K2
h������K�mn����w������e��o�(��������%�-�/Y��@/�,l����D�o]�|�m�8D��UO��v����U��7$��A�<A�>Ut��������w�{F������%���b��dY������yB����?YTzl�������K�au���<��������g��mzM�����������>�{�.V>��K2[pb���z����gI�������c�i>K��������B�I��#`j05�X
�q���L?�+����g~V�tw�q�US}������b����,��&�P��9�G�,�$`�$�$��]�_�[��������$-p��=#("�I�^%$$Tt

�&sP��Y�I�,�d`b4��]�s��	5���'�S��������|����B�h@�J�^�Y�0U�K�-T���^�������=O\J�e�NP��8sJon��6�M���P�x��j�&�O� 8*:��������j���5�C���d3?e�@A��Ne��o�k��)^���u�������
h����>���O��/�^�>�{���+�tZ~�UAbbbE��j0�����BM&��q�0O.=wi�j������A���)1�%��K?�KQ�l	���,��BM���P��Y�U�����
h�
z}�?t���^������A����3�YBBBE��j0�����BM&V@�x��:79��la����o��{�^��?�U�����@���dV@U���K��������j5�g��@r&7K�v���M������Qu��
h�
yw�r���;7gx��d_�3W���]���
h���v�h��y�.U�n��o�
Y�`O$�<��*)���g�}����U����s�2�_�{���n�]5:����~�UQbbbE��j0�����BM&��q�0O.-*%+]���C���T��{v�I������c�qj6�.�~�Ay��*��,j05	��z�BMf�WM�K2KPE'��6�N�V�����M��L��w�������<��&��Ny�����P�)(���A=f�&�P����0w���d����}Tg�q��W����OS4y�)��x&�����M�+M�
E/�,�
T���C=��W}9���o�(2���c�o��b������[�ih@���v���W4qM�������E���~�����^��e�O�X��
/�tIl��J ��6����.��*&v�V��9�
\���5��������jt���|.K�}�JM�����UT����%�{I&��,*&H���g~�E9k�������+�;��,u���j�[�/����g�;��7xDe7��%�#��5��~s���_��<G~�yI�e7����)��+:�P��9�G�,�$`j20����&���:+���$���Qd%�/nI�k>KR�]M����r�������I�4�$`�05	��_5I/�,��*g����=��.�-i�������������N@!�$`�05	���L�����k%5Y�_�9���Sz��)^���Y��G�n�aT]��oE��`zIfa�HOO�%�\"��!���������������M�6���Tll�:w��9s���Z���S||�.��"����I�&5j��=�snRR�F��&M�(44T�k�V�>}�~�z�sm��[o��N�:)66VQQQj���f�������7o�����[���Shh�4h�a��i����z��sC�����?�����k��\@y`�5j�^y�����������_,.55U��w���[%I���UVV^���w�aQ\_����� JQ�
�v#��*�`l`�(����h��(�NQ��*�]�@1�XPDQ��HY����o�� e��y�}v���3����9s���;������!s;��/��E�044DZZa����.\��&M����.]� 99�������
��8+V���9sd�������N�<	������>~�h��.\���0v�X�B#--
�1���c���������p��-�86���"��$*�s�N�~��z�L�?��V�R��B!�B!DP.I�Pt	��}�7oF��m��7nn��
sss?~������?tuuq��q�c����b��E�8?��RSS������X8::"))	���Cnn�T���l������pvvFll,RRR������1��7g�������������C@@>~����L�������0a���1117n�B!���o�"99��?G�n����������J�:��Dm������+���E.FfI�fkh	W��!�B!�B!�P�


0a�l��Ea�;w����C�8~~~���7@ ���+W�l��IIIR������������jc��������=������n��
/_����BBB��qc�����Y��y���&&&b����U�Va����#777�����~��wO���������V�Z!  ���CA���"((�k�Fjj*��D1'�8����y�w���>��^"	=��?���B!�B!�|P&�6m����(���pttT�����4l����R���cccdgg#((Hb������0{�l��6662d`��}R�E�
:VV�C1��5@a����G�>���\���b���R}����
�1���Hjj*BCC3g���"�8q"��6Q��&!��|P��x���1&=�#$_��K�Vt�1tN�>�|$D��9I�z�s��D	�bJHH��E�`ii�_�Ui���0@���e.���E��@jR@Q_�i�Ff�=z"""����J���DEEI�)�m��066cL��;v�mmm��E�T���+W��������(���D<x�@f"����{1
�<Q<�������EI���>0�1,�(��b��e!D����:	Q/tN�^���2Q���L����L�]�FFF
�2����C�;I P8��D���������oK|]���6�qh����m���v��ZZZ�Z�j2�����=��1�;����P
8%m�2���RI��>+� �L�$_y��B*����:	Q/tN�^���2iVt�IHH�9���;c���J���������8���r����x���������
����U�_��s�������,~|jU�������iiiq�n]8���b�^1���AX
k�>�
3k�`��������>��� h*��!����Q/tN��������p:t'O����oeN�M
Qu!���IB���sR[[5k�D�^���w���������
������,���@[[���*������N__@a"WVU�2�$����E�E	hU������Im�H[��
��k��3������ZK:"�i�����&�5�H�gB!�KNN�'NTt(�B��rss����c���pss�������S����D	h-^�����3g5j�R��s�����_Q_y����9�*n�������K��:Oa������>z�5G�F����O�����Tz2KB!�y��������&M����a��J�
!�B�#;;�=�����e��8q��#G������
����q�F���b���*�34���o?~��N�L���sE}E���I��9;;��NVu�HKKS)���U�[���������K0��������j��b	���?
�A!��	���.\@���+:$B!�TQzzzptt���#
�.]�����x�"������|��P��MCAA�/_�P���L~�c��#>}����,>�jll}}}0����k��-������-������9!!�L�mhh(��m[Q���l������<��}�����8�c`.]��R.O����G����g��+���.cX��H�N���F&�����?����rZN�i9-���\��w��
0i�$J>B!��4o�?�����C����_D?�z������
������/Un_�N<���ukDFFb��)��q���}����'������o��>>>055��d�@��w�}�@����V���L�m���/����fffHOO��-[0q�D~���'������G����)S������[��������pww�qHJJ����T���(�j�
�����
�5����V]|�O�_���(l����^�PX�|���D���&�cOQtN��bkk���x��s���!�B� ���prrB��������\�:�
h(��-�.�Z���g�����O�>���� u;��oZZ"""d�?s��M�6���U�V
�}��M�����8���r�
rrrd���h�:@SS�1�;wNa�VVV*����������C�v.]a�f����?/Z�LHY���	Q/tN�����[@��
+8B!�|i4hx��]GB>%�U���s�B��B<{��m��!����9|��HOO����T�r�����ys0��f����_�������
�Z>t�P��}����(�|����-Z�~������`���R}CBB���c~E������X�~������,l��U"F"-�a�^}
���v{���04�������d����"��IRVrss�&$�BH�}��WI*J@�1GGGxzzF���'O�B!1g���3P�zu��+V�P8���9s�1����_�������W���'�w��	�S�222����2220{�l��8~�j���i��f����{����@��F�P�`o���T�e��AKK�n����#������/1`�����Z�j��I�!6����g����.��G�������������B�$!�B�jh,�����.Aa���^^^R�322��KDEE(��#
���>}� 88�_OQ��/��E��m ##`aa���0888���o���O!33�1�X��g���7??

hkkCCC���
��>�����1v�X���(��NO/N��������������q{�����US�og��v�Yl��s��P��0�L	hB!���/�{!�B�GI���w�B��D�U###\�v
+W�D������===�k���o���G�&�`��8{�,���`nn���<��W��MCll���34k�����:u*������<XXX���g����|MMM���`���h��-������'''�^�W�\��|///\�~������BNNlmm1f�DGG��|�1���N f�Q\��-�<FX���.�L4)�L!�B!�B�
U@���]���&KW�1_�����zb�`�>r��W4.#!�BJ���=�B!��*����&D����������0}�U��3!�B!�BQ[��&D����o.�F���gx=�\�Z`	����)2B$��g��:'	!�B!���� j�K�m���J�N��{�
�y�Mh2����_N�"���/��$���s��U��e�����m��
Ku�&�4p��s��qQb$�B�4��j�
hB�DRv
n��Gi��k��\LZ`SN�"m��%!D���"�hb�L�R_��������1~�\]]!`oo_��B!��P�5�5�L>�^i��������~9DE�lt�?!���IR�FN����F�������X�������LT�F!����������O	���"�����q�k��4�3!�B�HiW�Eeqe��B!�*�4!j`��P�8
%C�d��k�94��gB!�����0.����#!�BHUC	hB*X+����q#Sa�X��u8�g��L!��SZ�eYY\b����@ �@ ��K����C�.]P�F
����������-9w����������kCWWu����3���,w{�����q#<<<��W_���������D��=�u�V���(�����=z45jCCC~M�4�����k�.�����G�)��qqq�~�?.^�(s{/^����s��eK���C[[VVVpssC`` �B�N��-�;������W�M�6�^�:f���t�	!����t�D�U��KC�_D����~.]a��l.4�c����!�B�t�������v���*?�W��T�����e��=z48���3g���"((@��C�w��cG�<y����={6��[����{�W��^��5jHl+99��W�xM���q��8~��������U�VI���z����a��F��������;J��n�:��?yyy}����E=z���F����@p��O��{��x������M�������_B!���9���K�l���
���n������S���S���D=��g��:'��(�q��Qy������OOO��� **
AAAh�����KX�z56l��u���k��8t�����=z�>}��Qj���@����v�Z�>}QQQ�t���[7�����!��9y�$�|������+q����}��]��}����[[[�����q��=�l�`cc�{��I=D�E�.]�Y�f!//�������q��IDEE����5j�����gO|��Q�1���@\\&L��S�N����8r�:u�T�_!�B�
h����U�[ocqd��HS�n>��l�A����"#D��UF���E�$)+%�V�������_���U�0k�,�6YYYh��	^�|	ccc���`��1��y�D;�P����#""���x��
�����yyyHLLD���������1c���yyyI,������{a``���������.((@FFLLL$^wuu��K�`gg�g��)82���W����:u*��_��!���#8p c���_�`����
h�����c���W/��&�R1��j�
hB*��
L
W\�� 0C(:�gU?��d����"��I�N�rtyU?��j�J*��������z��������ihh`���
����]�X����0������P �
6��|�@ �|.�����a���g�����;v�P�N///J>B!e���T���	0������������:�Sd�(G���^��$�f�TK�jTt�������O���!C��]��ys���BSSvb\��1���8��+((�������#����+++@tt�TQ;667n�P��������g����;��E�
�������^zAB!D&J@RA|#�b�y�Co�!��Cc?B!���U��]���~���������'�
���k:u�CCC��U�7F�f��Ghh(����R�E&�������{����/n�����|��S�o��PX8���e� >�N�
�0�.��.��8�D>!�B�%�	������6J�F�+�@��5��%U?B!�r�JU�Q��q����.~B�v��HZZ:v��q���������8��z�dggK���o�A`` LMM!
q��)L�2-[����	z������Kj�����;�����7�q
'"�V��g�E!����>!�#�L>%]A".C������gB!�TB�*���Wt(��"�������q��u@��1i�$�h�VVVImooo���G�z�
��}����C8s��^����_#;;�N���S��z�j?~�j����x5����
������]�l(B!�|���-�5�#���m�*I�-�������m��)2B!���5r�%v��t9w}�T��������H�GG��
c,�����������:��O IDAT��C����m����t}FFF=z4F�
����������"&&111:t(.]�T�xk�������
���B!���� ���tc��R���@{Y?L]�xVrB*
MxF�z�s��+ecA�Ceqe��,<~�yyyOOO��c���*�����0a�DDD���p��U�	U�@vrr��9u�T��!�BH��4!��1�����<���np�V�������e��Ut�1tNu&o,hu�,�1�6�!-��|������BKK�����>H,������(\O�j���S'@TTN�>]��!�R�(MH9:���z��M'��@L����[�dIE�@C�$Qg�*�����2�X�����W������Rm?~�I�&)\�������%wyNN?����lmm%����(�d0==]���.]�WL{{{���;
�?~�T��B!e�����S�7�����;�k|�._�e�r�������	Q/tNuW��X+�+C����������w��C���?"""��e�������������7VVV�����u�V���!::�.]������}{DGG(�����T����@(b����t�<x����������h��/�(LX�m��G��������H������~C���Q#�����q#�BH�U������;I�y�
�m
��}��4�3!�B�Q������ge����+�m���������g��a��I,744���{q��Q��}[�:8�Cff&<(����8������Wj���'V�Z� ((AAA������7`���������3��������n��7!�B�U@RN�����9���NM��#U?B!�jU�se�:�(bB��|��+�^�������`�888@OOFFFh���M����hxxx(\��+W���///8;;������000@���1l�0�8q������T]]]\�z������LLL������GQ�����/�r�Jt��VVV������j���.]�`����q�6m���� �BH��Xy\Z'�3�� V��j|F".vi��Q�����l�]��v�M�)2B!��J�{��_^�����;�Ee��B�R���HU�%U%�u�!U��[0�������svF[W�~&�BH�4r�zV>��1B!�T&4!e,-'[�CC�E�]G`��ZtK �h�3B�����02�T�����1B!�T&4Q{������7a�����os[�~o��W�R�T
�U�s�����IRV*��0B!�Tn4G�@����\a��m
������,�M�gRi,Y���C ���s�B!��������|���������\��?����M���f��&�B�Z����!�R�Qt�@������]�0��s��g�-%�	!�B!�BH�C�kRF�]���8�m^�!��;:�4-��!�B!�B)GTMHy�f9�>(l�[8>K����B!�B!�TITMH��p��S����.�6��nT�L!�B!�B�&��&��\�V�B�m��zc���T�L*��K�Vt�1tNB!�B��h:H��*������ ��3����m����)��p(�-%�I��q\�9'	��9I�Je�F!������E�;�z�
hBJY���
�������5��3���,YR�!B��9I!�BQWTM�^e�j�����_5�CB��6YZL�wb;B �4!�B�We�F!����*����&�������3��
�~nJ�gB!�B!�R�Q��R�'�C�?�R�&W���j��c�Y9EE!�B!�BH��4!����-pz�������U?B!�B!��/%�	)�1h��Sa��`��^���)*B!�B!�B*%�	)Q����
������N����gR�-]���C ���s�B!���8F�A5Wf.����n�+l3��o�;���J�8N��IB�4tN��R��B!��*�w��^������f8��T�|�`]��Q��TK�,��!b��$����������2��9��OJ�����;w��P!_ ��E�gz�h1J.���D�!��' B���O�z�s�B�Q�^I��������"  S�LA�v�����'�J����,_�������%ttt`ii	ggg���������'UKezB���������{hu���67�L�k�45�=!�B�,�a	����8.�����5���b�������%\���T���G�.]~~~��������2&
7m��3f�]^�}��i������,���{����Ctt4N�8ww��L!�lP���p�\�-P������i�E�D!���r2�{�o��7��o����x�o��q(l
-1��?&=&:�#)S�U�d������*:��8���h��1tuuq����g������666?~<��osss�{�qqq8s�=zT��B)��&��>�N@�
������S�Q�3!�B�W�D��L������ef"����Cp���`�X�V�I��������6o��-Z���:::(Q:((�O>�������T����#??�D��W��������D�!�"��##��"��~��/���{��w�r��B!�b��d+�+.%'�Cg"-'�"���#)}��gJB���;b��Ih��
ttt���gggc��I�
����2��"���WgW+�	!D�Q�������j�P���?zpP�������n����Kw��l���(\�Ssm��;mjF"#�dW�	QW4�!���I�.|��]���HJN:|��]�IS�����I�.]��v���N�:�F����C�
0}�t�~�Z���9�^�z�F�������=���{��F��o�(OOO~�����m$&&�f���^����._��9s�������������!���ooo\�rE�c�����7�G�������,,,����1c� 44yyy
+Y_�
�F���K�������/���GX�r%z���:u�@OO����U��������J��SB��I\RRf���F�A__���h��=|}}!
��!�l�2�����R�^�x�
���
ttt`cc��C�"&&���IU��7��{X�p!��V7E�]������gOX[[CSSNNNR�233�~�z|��������������7�`��HKKS����|l��������)

����y����Ne�q������9r$4hccc�A����7���O$&&��[PP�����
��+ccc4m���M���O�n_U��$�����b�
t��Ib��-Z`��)Wx!����;w.Z�l	ssshkk���
nnn�P(T��������f�����ZZZ���@������___�{>�/�0B�V^o�?~�guq���5�>,��`��
e��te�-��O_��\u�����.��M���K���'��A�z�s����|�]@o��L%y��1a��L��2�����8�c���={�����q��&��&&&,,,L�z���������E������{���#G���JKKc�����8fhh�=z$�����u���_��c���l��Af���q�4i+((Px|N�<��W�.w�D�#G�0�{��9�F^��u��Y����;w�H�W^<:t`������N�:1�����������rO"��]cfffR��~n��=�{�.�|��eR�������E���/R��%zs�T���{w~{������������,))�X1�#��/^�(v�s�������M��999I�9w��Q����O�5��K��n799��n�Z��������}���S�q'��.:O��/���^|��-���������Cf���8����������y��XUQ��OE���1�����e�_�v-�����^�8��l��%$$������444�n��_-����4'T��$��M���S-�{�kO��I���g���:�ts�sAy�L��&0���)�e3!a��%!D��D�%D�����^f&B����Q�y�����(t��������WWWL�4	���CRR������@������w��A���%���5���X[[c���h��-c�z�*V�^��c����An���8p�:t����,<7o����6�f��U8�<���}���Z�P(�������:�~��000���o�M�6!>>��'j����s������c���?c������'{{{����GPP?�B�Z�p��=DDD`��������_�~�600P�+�)??:::������[888������x��)�o��[�n����6lN�:U��(�^�z!=������c�����F||<�����'��>�v���+W��C������aCdff������/rss1r�H����V�Z��c7o�8::BWW[�n������j������s����E�N���9sp��]����G�F�z����*1A���g��wo�B�����~@���akk���t�?�6mBRR���p��
��������CDD��D����1c�����G�b��-4h����e�SSS��7���_�5��'''���u����ew���k�k���������!C��W/�����8DDD`���x��	�L�###xyy�8���|�y�fL�:�����#G�w���]�6rss���C�;wG�������������������qc��Y�_��������(���7n����>�?66S�NEAA�W���'��������/�����N_����7!*A9_��39�ep�����sT#����M�@i��G�:��,�^��r��B!���{���E�]Y\��g��1��8��=Zf��;w�m�u�&�,&&��:������w���'$$0[[[�J5yV�Z���2e
��������&�8�999���\��_�|)wc�����n���U�Rm������1�8���g��]_vv�T�����8���HMMUX��c�/��}��E�m>�z��A�6��]+��/��"��RT-z�3F��~��g���!��,���~���~������Ca�������T9q�U-z��;Wn���4faa�W�����l�����]�v�Z�c�~{�{�f���RmN�>����Q=t�P~]'NTX5���K��D����,66Vf���,��C�q333����*u�|��>���b���5k��pf���S4�+W���|��iL(�}�Npp0��D�� XLL���3VXu_Z}UQ��Py���b44!E�[�3[t�P���v��gD&��S>��f�����v(�H	!�B���7w*:�rU�[�fMl��Y��1c��{���s��ITVn���#��?��Yjmm����������mm��!!!HKK��!C 
a``�@KKKf���k�]���X�n ##����j�i�&dddV�X��]��]���.���U���ebb�t[K�,A���AAA���7oh��5~��G��,X����Z��ZYYa��-2�M�>���������Xu��������8z�(������$|��	���8p �����������bo�4+3��������]�u�V��ZZZ��?LLLd������x�b��'�\�����???hhhH��{��3fL	��x�>}�
�$n��%�l������][���[�p��Y��
��I������u�V@JJ
�������O�V�B~~��Q��oG�����766�����k�����6l� w|n0�c��e����U���s�����|9(MH�y}���RI��P'Y����xWG�W2��#�B�����d������_OOO����]>v�X��3g�7A�(Abii�^�z������r2 005k�P8���!C������
�������/����"66����'�b�������c�&|'L�����[^^^�z����������]���'99r��v����[��4Hb�qFFFh��!�����[L������>}���1.]��#F���ZZZprr��C�0|�p�	��+W{[Llb7�`�7U|���
'�]�h��=j���p]�:u��z�*��h�pssC�5��C���,?~�?v3f�(vR_t\����D�<M�4�����������1����4h��}��ff&�������s��)>>			��������-U}N_����X1�|����;���[[[��������7��y���
���X�z5ahhSSS�o�^���<���C�>}����������4�mbb"�M��z��AWW5k�D��}q���}c��};��kSSS���k��U8{�Hdd$���{X[[CWW���7n\��Z[��"����[H%�J��0S���pK�h$!<!�Lc%�B!UW�����n��
��(�������@a�"pttT)�5j`��=�8����X�C�Q��y��5f������������h��)�5k�������|�>H�������M�6���Q)�����Gll������O�>a��
h��`kk�&M�����Y3��{����R����{
���3�Z�>ny�F�.]��;]tuu%�����^�z2��[��O����Wf�@ ���K������+l���
V�P�����/^��p;���5��z��
��9H~�������������8t�����o���0w�������*���KZZ��s����R��������#%%���Z��p��m>A�l�2��L4�4cL"�5l�0�|8p :u��u����������>�/�r�$�*���������8#++�����{��}�v>|X��Fzz:�t����o(��"''7n���7���`�����T,Z�@�ECCC<�������.��=%&&]�tArr2wrr2�?�'N`���3g���yyy������'�������hDGG���C�p���I;0v�X�B#!!�v���p����a*K{�>��p�v���
�O5�C�7F����!e:9
!�B����o�o�7�"j����6���X��GQ"F��(�\�u(��kW6�O�Y[[c��mJ�]�p|5��
=Q�d���>|��/���V9��x�����e��%�����[�nx��1������o�A|�
e������M�(J���_e���H�������h��%�]�����#..N�xe�?em�U�r�������c�J��h����D���
MMM��������(V���`iiY����u%=.����������IT�W����E���/Z�X��&���[�.�=�Q�F�����|�2._����B����������[�����%_��V�P(�qpww�?�����d�������

���=RRR���!�C}��q�}�6���q��qddd ++������������`�E���8���OHMMEJJ
bcc������$������R}�����o_$''������HIIArr2~��G0�0o�<����.\��'OBOO���#233333DDD���$&&����P(�������[$''����������0p��2��E��+��6���s��:D��/m,D��X�tiE�@C�$Q.VNB��*�[���?��G�����Gy���������Lhiia���CBB>}��P�P���,���W���>�yyy���~������x������}
�pqq��C;|���~q��]�Ots'5f���"���ccc������w��9}���6����+, �^�����xdmw���J�-Oy��Kz������u����w'�mU�au�|*I��~���b�-ZH��[�nx��)����#F�n���8yyy�x�"~��888�<>�/�2P�����-5����&z�����P899!==��m�'
�;w����C�8~~~���7��+�^^^HMM�����a�L�9E�� IDAT6Mj�����(�m�����		A������3l��>>>}�m���/_���!!!���Px%y��5x��)�9�y���[�n}�q�F����1�_������w��������9s����������V�Z!  ��0���EPP��+Wb���*�&������kB���=��h*yJ}ic!�/��e�(�E��s�������qhE�Qn��)�m(�O��E4��x��*���N�����!C� ##�zzz�������q��]~,��D�;���+w,Z�*������qcx���J�����?��2�?�'�:t��a�����'4{����1�K29_E������=?|��jk���I�988��+^I��A���7\�������0&ED[�?+���%��(J<a������%w������o������Q�?~���$��W�D��x{{�<��:|>���������K�~�������1x�`����g�b���r�
�����<|�P�������
h+���a��h��-��l����_|www��������1����fE��>bbb�qf��-����C����Oj����C�����5k��$����p��a�������������o_4h��1~ERSSZ����3����Wo���/�nu���4������|�!D
��c�R1��$���MK�6T|�*l
-���-�O�,�G��J-FW��~&�x����y��Y4l���?!������|�'�[�p!��E��}�v@BB������'�����������LSS������%S�,*��+��[ff&>|X�����CDD������#����1~|sy�<y��,��Q�hii�cD��uKabX��b�?d�s�������:Qv����r����g�!,,L�zdU��������%u�|����/J����/899�w	���/M���1b.]������3��>�/�z(]�DW��^�}�v��]f?]]]t���&�511�;�@�=~��������)�m��066cL��;v�(w�c�>�{�������8��-�)11Q���Vt<?��9����?"�/��@)��	�TiI�z�s��'�8������!�����������0Kd��]
�'�w3v��@��lE	�c�����:{�,��Ypqq����1d������c�����W��pE��[�lQC�~���#J~����sNNN���"�o�~O;v�(�q�]]]�
�����c,�8��w�}����?��m����T6lX��������Cyyyw9G�5�D��'���s�N��255���.RDGG���������/����*�M ":.��o����!����q��)��������c����Z�j���QQQ8}�t���������9}I�@	�R�����W��6m�����v��$���@E�����+�+�-�uq'w���a��
��J�E����ZZZ���A|��+oE��[wP��rNT80R��VU�B!D���j:%�+���1&=�#�Vby���L�"s���;q���	g�wz�8q"_7u�T����y�3g�T)///�7������7o��W[���O2���������m���		Q���LMM���SX���-1A Y
[����?�������X�pa�lOKKK���@a��
d�����S����n����X�w���=���'�7�^thJu3u�T��u��5��g������2/������O=z�DBU������*EDI��7o���KII��Q�������C;22�'OV�D.:�����t��v�&M����M^^����&�S��|>��3ZZZ
��{����iii���"K�.�?����q�����?~��J�����1����8u��-����A���___�}��4��
����q��ME�c�y#9s���*}��������h��l;33YYY�L���������	�����YU���/�|>���+�e�`�Ih�p�B�|�$�BQ&:����Cg"%'�X}��#��z���Qt�*C�"�[�����={���'�n��x��=����W�H%��6m�i��a��
x��	���0{�l�n��1\�~�V�Bjj*����&+c������o�qv��)1����8��m�"''��="##%���������OX�p!���������!00��������������dgg�g��<x0������p<x;w������������k�.4i������J'�+�����7���wq��)t��'ND�:u������l��
��UC�����
�����q��Y�����DDD�+++�z�


B�v�p��u�3�c����+W��/_�,Q!�q
��O)n���pqqAff&z�����������������z��1a�����Rbbb�C��G�������7����!C��Q�F���EJJ
���_\�p'O�D���1y�d���=����|�2N�<��m�b��h�����q��Ql��vvv���P8��������h�"���@(���[X�~=������,5���M�6���x��	�m���W�b��	ptt����������v���6E����6m� >>��mCxx8����-[������x��	�]����`|��O�<)Q���|>5l�6l��������M�5
nnn���F^^�<y�s��!((�/_��������.\�w���m��6l���P�N�����'N���k6l<==�ul��C�A�����kW888���?~��g�������cG�����K� �|��w�2}}}�q�>}������q����r��}�v�q����x�[�n��86b��}sss�q��8v����}����
�r�:�q�z��)�����8����Kn�3g���HLL�_7n�8�������c�����8�r�J�m��|�
��.�7���er��G%���s�Q��}��?��B!�����R?e��;�}���m��a���G�d��2�`*_�~~~���s��1www��~����)���P�F�!������o���b�1}}}�u�Y��o?i�$�1����|��c�J-��w/����G�-���o���F����'N0sss����G�J���������U�6���er�[�fMv��5��S'�q�����e�����}�����
��7�|�����?_�z��:�����
�]Y��1��'Y�/^�]WXX���T��g��,--Ma����J���]�����U�s��ufgg���i����u$''�6m���gmm����Y�:u�q�s��r��;w���������o��e;vT�O����������s��*===���+���,����c�v�bJ���{Wf����3CCC��L 0�����*�v���w���Z_U���Hy���bT����ydgg�e��X�j��r&v�	W�+������[�Ji����[]	8��������Qs���u4��������-��>�U�r�B!D���b~�1��b���0�����������7�������M�
��Tb���BHH���� ##666pss��9sdN4�����EU����}@DqGAQLs3S��40S35SQS{*K+|R�G[���G��%�_E�����Vn�J�������,����37p�a��_�y5�s�����m�|�p�J���u�0l�0�\�QQQHKKC��������m����y3�����<y�g�V������������"22;v��W_}�`���J�s�=���[c��E8t����777���b���:u*ll
>���a��A�|�2>��s������HNNF�����aCt���<��r������
`������Bbb"rrrJt\cz�!��������s�N\�~h��)���0m�4��WB�b?���3_a��wGll,.\�������kppp���/����S������y����x��\��K�O�>8w��/_��[����+HOO������1v�X<���/��W����������q#�m��S�N!11���puu���7�v����'�0����k���#X�r%���k�����j�h��	�3f�n��%z��{�=���c��e8}�4233��A���o��|||Q�y��W��?���7����HHH�Z�F��
������z
��
38�A���o����M�6���~���7���ggg4m�?�0�q2M��U���?3���������v�������4j�=z��3�<Sd�sa/���
�,����$�T*��S�����������k�"c���[�������������D!����N�:a��EfMW�X�A,[������+��m+��U�V��INNV�a�����K7k������!C�H!�>|������u�Ve{zz��������&����>3:��1^{�5)��]�t1:���@e������P�+v�s���ON���e�����z3�3�����s�7Qe
�tDTs������������,����K!�>����k�*���K�CDT��^����pzf���`��8{�,�����u����h4ptt��7o�4�?]��3tk(�d����h���f=���s���t�656++)))�m���>}�@���p�cu����]��b��"���p�w���M�6����
����v
\����B��s^���_���v�W���s�Zu|lg{Mk/�����n;UoG�A\\�G��
�*��fwvvv������!"*���/���de,]�����e�=���.^�h���]�BN�6�h��n�>�l����-�BY�vm���op�w�}'�R�V���Le{ZZ������op�V�����R!�/_^���g��B9x�`�q����R!����l��c�2s������<yR�k����V���;�y��Vzk~;����'s�>��x�*g[Y�$��%��j������"o��m����[�u�����������"�p�����/V>�3���""*��^�����X��]5eee!88���<<<	�cp��I����`�����;����Oo,P0������������w�����q���]�v��'�g�<���zc�;���T!�������������!�0�9=8�g�����A^^"##
�����A�h���^���������L��sW#��+jk���_�"k�~Q��LT]qV�uaN��._��=z`��!0`|}}������<x+W����w��MC��--1��o��.��g�E�n��������?7nT>���a������jKW�����l��OH!�tww��O�.���w6����~*����I&&&��w����:�7n��...R!�-[���[[Z���[�n��:T
!d��]����������5��m�������?��ukK������NOO�M�6�B���o��-�����q�;�yz�A�c�c259���""""�l�}F���B�kt�� �*�JN�4I���U����>�z��__=z����XY�Ex
c]�t	i�Z�=�v��F��O?��:�hl�������O?���s��u�9s&`���������v:""3g�Dzz:���sFzz:|||��/���2e
��������� �������-[�@a�pOOO�������P�_������;w"$$0j�(�m�Vo���sakk����c�����k��a����~�:j�����5�fg����������c�0aFC�������������,���~~~��q#����~���G�Z�����V�Za���8|�0V�Z�Z]�����?�������}������j����'����E���������t�DDT�)��tU�����O���=4���M�6�����lKKKC��}ppp�V�ENN 88[�l�Je�;���������T*899!--
P�n]���m��186::���S
�...HOO��*�
,@hh���yyy2dv��	�U��j5�����u���{�����u��a��I���PpS���TK�l��M��������[�����>7�ge����#�MDDD�Ze^�=���"���.,@���P��^^^�|������\,^��6m��K��V���M���`��I��w������Op��q����Q�F

��Y�P�n]�co�����{;v���7��h��[7L�>]Yg�)%V�Z�5k� 66Z�-[���Q���k����t6**
.��C����OOO�������w��]Y�����!��|3��I���g7�Y���DDDDU?��%�]=�MV�����u��`��>�z�����QU���Y�$�?��%�]=�MV�2��!���^-����}�����[�DO��ATU!�FNdE��d.��FDDD��t�����h���3lo���3�����Y:"*�9IDDDDD��3���U��V�|����D��Z��q�?;�l1Y�""""K����3����q�F��g�����g""""""""�Rb�j��O?,���+3+!""""""""���h��v}�#��a��A�z4ed%EDDDDDDDDDT}�M5Z����.f9����UN0DDDDDDDDD��Tc��u��_1��T#7�1��""�:���-��$"""""k%$oIV�\w.]�X/�;k����B���7+��D���w&�"�I2�A����,���"���.�M5��#Qx���&��������+)"��%,,��!Q!�I"""""�V�MV��Z-���{O����_S1��w+��DDDDU
g�%qt���T��=���n����vx��9�Q�S�TP�T		�t(DDT��M5N��3Q7=�d�?�����"""""""��LA"""s��tD�����^�N!5Y��&E>��^@��1�oq	�)g~�jrwl0s�S�~�t��+������4�cb�j�g�1�Qb$"""�8��<WL����6�Z��2`n�G������:I�G
������u��l�c���,>�Rn�����y���xL��-������1�T��������Z?�>4nj�����%�M�k����S��|��SM�'[|?����J}��LT����[:"*�9I�"7�C��[��#w��x�6oA���@~>��-4{��*�HDDDT���A��+��K���7����K��ZL���.N�'����+�=�2�p�����s�3r��K��	Y�$�Ki� ���}��B��P�`�~lF>mpL��n�1vg~1�RU!F���R�I?~<���+GCD��4�"1���3����x2�j#����r�;������g������l������0K�@D�0'�����v�
@U�#��Y��
���W���[b\�f
T*T*<)%���+���������|}}��k�������o���8p ���{{{4o�'N������;�!}���J�B����n�Bhh(������777���+W�D~��}���+��v�����b�
������P�Tx�i�/>�q��������pqqA�����K/���s%���=��S�����������~��a��E���+��T��Yjj*��_�q��������+lmmQ�Nt�����JWff&�{�=t��...puuE�0�|�����|���JMY9�$�T��Z2��LSy�L��#M�!��)���#M�!C�w��|m%��u+�uXa������zE����d���K����9���WK!�T�Tr��=r��AR�lS�T�����r�������'����}p����\�~�?~��fH����B6o�\FEEIOO�"�+���={���T��	S��>}Zv��U/���~Z����+'N�h4~!��������3��LKK��>����!d�J�PQ���R�o���X]]]��]�L���� IDAT'[�h��/��V�Z���8�����2�?�9��Z�<��<x�5�6��8�u]��!<���;P���,�x���b���d�cnD�o��f��������-eQd�p~>rGOF�������9w�b���hRJ��='N�@�>}���>>>HLL��M��n�:���"((�O�F��-����7�a�@��
����CJ�#G���?��I���M������a��!99��OGpp04
bbb���#::G������k�.��5~�xDGGc���5j�4i����"3{�N��,	��I����[�n��������"99aaa�U�f���w���0����Y�fx�����WWW$%%!**
��mCFFF�~���5�V��;"((�;wF��7[�z�*v����c��a8}�4Z�h�����L���K��}���_���7�i�&|���1bD������D,[�&*J����=oK���R����Zo&��G���#BZ+���y����������:��3����gg�f��&L0���/�P�i���Vf��h�B&$$���q��l��i�����f@!d�Z����{������~��)�6l���G7Z�X�b���Add���m��2))I���K�d����B�����/���5k���������=��k����"^3C�QXtt�tvv69ky����q&O�\l,�MD����"������5���8t���<��&���V�l��`W�f�������J�f���-W�9��0OOO|��g�&N�����"##q��y�m���M�>��S��[Wo|��
����*���'�o��z�mmm�z�j����.]jr?�2e���%K�(���W_}���k������G}�����=���*q4i��6m�����c6i��d�%U��L��������k���f����z����X�r%�Q�F���T,DDD��4U�3�����	3��Fq�;�ih�������%���`��1b��O�4Iy�{�n�ydd$�~��8p���C�1X�5D�	&mo��	'N�@j����3�h�V���}����G�����1b���=���r���S������~*RY_3c�����/�������ALL4
 99W�\)����S�{�.`��Q���/Q,DDD��4Uk�����I����+%��$<<��!Q!�I���[�n&������������l\�p��K���j5:t�P�Xj�������()%����}�&�s��edffy������Q
�����V�U���������!�b�����7��+�kf�w�a�����������/��k��~?�0�������+6���<x��b!""2'����t,ZHv����_�M��������������(�"��I�Vy��X:�
a�����4�^�^=�yRR�_���w�`{I�aJ�:u�R�������R��S��T���_l\�����LLLT��n�W�b������������������/�����e���!��{���U�g�>��������X��j����r$
.���h~W�aQ������
�tDTs��Q��-�3��aT��1S�M1�A���+s_j��D�,���i�Sx���9�]�����q�l�2�9s���CNN�Z-�Z-���K%��|��������U��[a�_;�y���;F%�/���"7!�:�<AU�s"���$k����-J���W����t||�����o+������������)l���w���ortBB�^<�����<7�����w$�(r��g��������`~����5���<�v�������<���������T��g@S����8����Ip�,�������4u��>�:�-N"""���`�Y����������D�n�x���@s>Jr|�>�+BW�L�����l?v�������������?� ����3g��(����b���Q�Th��m����������p��Q�}���p��	���_�����������b)���f:�5��������8/����*."""sb��
�P��6C1�d:^8dz���Z�B9W�=���P	�Qi->�_Qd�����a�~�E
�U!F�o��F�!�!��bT�?���
f�����F�o�������H)��W_m�v������F|��D�}�Z�F��}g��Q���|���J����/����r�Jddd�)��*�k����Ml���h{�N��Y��6m�[#�P,DDD��*U+��:���wQ��l�
p��q����:�5F"""��(?&�D�]S����ca			x��W�}����{7���s�V����S�*KeL�6
w�����-��1�T�|�����w��������(Tc1������<�0a�����\�rE����/��R�vgggL�6
p��u�=���7z�����\1���5��|��!\�tIo|zz:F����l�������)S��.��BDDdn,@S��u�kP��F�
���]��mB^��DDDD����l��^h�����������j�Wcc,�[�nX�z5��w����S��{7BBB0y�d����-[Vd\��m�������cG,]������G�x�bt��������d7��[�.7n�A����_���u���[�n�2���5jT��;  'N����C�X�l�;�_����>�t����oC�w�}���z�y��w��G������M,\����3g��~,^�}��������NY_3?~< ##�{����Kq��=zK�.E���q��a����d�f�B��-��������:u
�v�����1e����W�9KY9���Tw�
�����cE/�^�Yy����2]]Wi�	���gDT����Y:"*�9I�R��0���d������}���n�^f��U�u�5��z�j)��*�JFFF��� )�0�pss����7��V+��y�c��
���c�B:::�O����B6o�\�>}Z��_��>{��)SSS
�',,L�w���byyyr��IF�%��666r��y&����.�
fr?B��c�bc2��^���<lt�Z���f��k��Q�8p������d��-���u�����k��!!!e>""s*��Hy��yp4UZm>��_,��g�����.�������t���_	�T�y�M���VB�DU���s-��$kb
�3���U� ��O���/�vVb
����};���K���u�����=|||0m�4�;w}��18V�Ra��u��e�x�	el�f�����c������������C�9so��������WWW�����/������bp�����V��j�*:t�?�<������ggg�j�
/��"~��w����&��������@HHZ�l	ggg899�E�x����x�b����%��8�y��j5~���\��<�4
�������Q�Fa��}�?�����������;�����������:t������'O�I�&������")
�:����.�����~�-�������3�g�GSLK�7�u������[)JIT���#<<��a��0'�\t�a��Py��Y�	&@�����W�^f=���7�����woe��������Y�f�|��Yc��*�5#"�I�z-�k�bS|"��Wq^�"�}/ �������G.�N�^E|��<`�������LT
,tY�$���#G�Z�DDDD�h�R����"���b�3	�����cv>&N39���=N����
�^�_�YDjj*����z��l�����I�,���QEc���a#�%6>������pw<w4���&�{f����	v�����LDDDDT�\�|=z���!C0`�������			8x� V�\��w��M���-[Z8b"""��X��*c��Fy����k��tr���SK��o
���������BT�����������y�f��BL�0.,�������tD%���`h��YW����{��c������py���$""""*;�M�t�-+???l�������?�����V�ZpqqA�V�0q�D>|�V��Z�6Oyc��*�5#""������d�trMWB������;P�W+w����q8����m�J�����M���s���w�'"""K*���a��d�t��P/�v2C�mJ>�	�=��`������o������B�����0'�\������,�����@��������<�,�a���3���3��s���#�!���,��$"""""k��d�����}�x��{&��8��_oPd��K\z�Eh"""��p�Yg@W�MU�_|n�k?�w��v;3�<Q,@S�� 9��������
N{�URDDDDDDDDDTQ8{��`���i{SQKk��oB��������?+��������U���e�H������]��qraU�4U9��ZL:�Vl?��\{G��X���
�����Z����?���QM��_���g�H��X��*CWH^��.������6P��:���(������
aN��8a�H����������
�p$T^BrA�r�;���<���3&I/���(�G+���<p��.>�
*��^��C�����s��%22���pww��}���}{K�DDDD5������}�"))	������_���jI�F���Q���(Q�9_+z�@[��n&��{��LT���,��$s����|�I$%%�o���3g��9���L~�#""�
#�Dff&��9�9s�(��'�|�{��txTN�MVO��U��(��0��:����a'3���;P�.U*�����~f������z�����a��c�K�BDDD5��O>����2���3����R��mgGl�wDtq��qEfB��y��g"""�R������[�)S��I�&�=U8;;;4i�S�LAdd$�n��k�j�3�������&��H��]�i�|��jl���A��l����P3GKDDDDDDDD��������Tqk?/��)R|���Y�"����LDDDDDDDDT���]||<^}�U���������<x0���Wa��V+z��m�}���3Q�c��*::m�����K$%%��D`` >���
9���}���vOG�
�?n����$��`>Y�$�uaN�L\��&++~~~�v�:u�����~~~HKK��y���Gv�����@����b�&����q����l�;k�WgCD�	!���aNY�#�uaNY���I�m]8��f����v�\\\�}�v��,������b��!���z�T��
 ����v��\{�Nf(���.��1�{��tDTs��z0��s���0'k&��&����+���0e�,_�\����~���>
!��;�V�Z�O���g9w�����/	��@]�_����>>���6��g!�h�IBd]��D���Hd]��D��3�k&V��,���0`��>��w�F����D7$|p��S^vm���

�:�������3��:Gf����z�`!�2�Y����w����d�=���C~L��%"""""""""�`�����[���
��k+��C���m�m��U[�DKDDDDDDDDD��4�EF�?7tpp0�������^�c�������R���7aZ�}Q��X:��������������{��d���
O�u�������3TB���/r�3�`�����Yy���''��gdff��7�_�nz��X�����-P"*3�]���:0'������0'��s���d�5R���q�h��7o4h`������������rq4�E���,�q��Y������������m��1�/s,�ADDDDDDDDD���d������+`��=�;v���B�_�~�U��lF�
��a�����-Z���3Z�lY�����Mf3e�xyy!--
AAA������!44[�l�,�p�DDDDDDDDDdBr�]2���h���w����� ==RJ�T*,X�����������������h2���o������;p��
h4t��
��OG@@���#"""""""""3a�������������k@�Y�MV+>>���*|||`ooOOO<����thD���5k�R�L>\\\���R���?�#�<777����S�NX�hrss+�L�����tl��
o��6%�����b��7�N�<��#G�a�����G��M��/���KqzDUJy����N�J�����`>��v�>���i����������o���z���&������?D����777����V�*��###�z�����>>>x������P�GT��5���J�>e������Kp�U���F��}���!4
�����j!���0s�LK�IT-�Y�&L���-���c����.\���=77C��O?�����Z�Fff&�k����o����wDU���[1t�P��B��������������k1i�$h�Z�T*h4���@J	'''l����g��<��R���[�.�j��>_|�
d���H��������R~�}���@^^�v�����@�>}������o��8u���k���<dgg����e��9;�|�����Z
ggg���(��}��������%�f�����8x{{���o��v�B�v��1�Ide233����B���;�s��I)�LMM�o���BH!���{��#%�V�^-�2  ��cCCC�B:::�u�����|)��?����S��B���{��C&���n�*===ePP��;w�\�j�BH�J%��?orlyr�������R!��yy��)��W�^�����BY�vm���X�'Ld�����~W�^-�q��D�]�rE�T*,#""drr��R���\��O?Iooo)�����2>>^o��#�Bzxx�;vH)��j�r������A
!����
{��J^����2==]J)���ge���B������l3�=�u)O>^�rE���`>V?,@��Y�x�BH�F#o�������O+�i"*���o��%����B.]�T���~P.���+*\�*O��������Wys�����B��[7�p����.�6m*����_/��U=e�G)�)@�������G"�RRRL^7����J!y���E�N�:��������.Y�D�7!!A��}��R!������K���D�Qy���h�c��5���l��0z�h4h�@���7��>}��������������&O���>x�`���BJ��7Z B"������*O�%''c����3f@Q����	S�Nl���L�UEe������0���h4F�Z�j������������U�V

�;y�dh4dee����/�v��YDGGC���P���5��Q���y���+O>���zb��JZZ��������;4
���!!������W/��U�`����s���'�>���<!�>������#66���&��d)o��|$*www�V�-�]�>i,������W/�����������78^��'N�@FFF�'�^��cy0�'����.��F�B�U�VE�Q����������\\\��m[��1qqq��;wL���M�6�?�����%�i��s�����G���
������OD�I)��3��v�����C���1|�pe��!�G�������#Gm��U�K)�����O>�9R�g�s�����"����caRJ<��#�h4ppp@�������+�a>VO,@�U�u����a��F���
�'���{�.��?ggg������s���O��C�`]���U�2:����f�����s%���WWWH)_!U{BDEEAJ	;;;��u��=�������"77Wo�����-[���oC�Vc�������TdffBQ���?G��=���R �)IDAT���0!�?�T*\�v
6l�c�=�����|��X�&�R�������~���
>`Q�4j����CLL������D���c��h��
���0v�X:t��8]��$W�+Qy�'�J2��x�+Q���������Crr2RSSq��9������[����z���De�Y�f^~��"�#��9�4��RJ�%�x��(���^z	DZZ��������'O"88�d����{z�f>VO,@�U)�zDT~����3g���`cc�����������E��j�����mp|io�DD�S�����2_�*�����F�lk�����K���_|���M���D�w��-2YYY���>���"��?G��}�9KT��|OOO,]��>�h�	;v�?��g�y�`�����|��X�&�����<���2�/33S�?U<�F�|�}��1��sGisrr�O>R���JT>��9�sSc�3_��',,����Rb��E���D��������#..�����c���x�II�'�����nV��yI5VI��$tE���L����H��zb��J�F���7n�0��������CD���[7�D_�zU��[�K�����������MyrN��jjlVV�2���D����������+E���D%�����������Bdd$�����O�����R��O>�W�y�54��&(i>�D�f����)���$��zb��J������=k�O~~�����;�����F��cbb��-����d��s�����x$%%�+���+Q0�'��G�������A��
 22�76��p���}���������]�p^���j���cI{�d>VO,@�UqvvF��]{��1����cHMM��������j����+���������#;;��X]3W���<9��gO���@J���H�cw��
�`��a"*���e2E�f���1��������`���o���@dd$|||L���O�y��}����O������������������U'e���\�rw����>�|��X�&�3z�h��
���h�"@�����e�J����IMM�����`)�:u�(mC��������/��Bo������_A�Ra��Q�3QuU���h4x��'���l����X��?��DTv���.����J�A�ic>������C���_~A����{���p�������zk���U����
GGG<���E������}{H)�p�B��7o���M��=�\YN��J*k>Gw�!GGG����H����DV&++K6k�L
!d�����s���R����7�|S
!�J��{���p�DU��+W�������/��k���������~�m���Bicc#����7~���R!��_-�Z��R�;v�:u�H!�3fLe�Q�����<N�:���=z�H[~~~�q�����]��UK
!���c��;w��R^�zU���_
!��������(K>>\��=[�<yRfgg+����O9i�$)��B9a���d>���'�
&����U;v�T��}�Y)��r����>��]+�B��3����;w*�*�����R�={Vv��I
!d�-dNNN�N���(O>���K���{2&&F���I)������N��C�Qrm��y�3�!��U�,(::���S�$�������RB�Ra��

�p�DU_\\��������������T�������b�
��.���a��!��s'�V�ZP�����P0kz����!�T���Z\\�6m��\��[�n&M����F�Ajj*��e��m��>}�����������+W���p��e���+������	�`M����c������5�?�#���*�������h��m��i��� --
}��ETT���Z�999���`l���h���?o��6���vrrBZZ�n����?�e��<���ys��666�h4��������O����X�d��}2�uxxx��� z���'�����\��s���pwwG@@����b��1���Z������'4
�Z-������ggg�k�c����5k��gO��u���aC%W��G��1��9���+������s�BQ����^����2��9��}{4)))HJJBzz:5j����c��
����������%5j���k(�AvZZ�h��	��>�3g��Z�6z\�#����8�]�Bh�Zdff}��U���j��vvv		���3����Z�j�S�Nx��w�p�B����W/���III�w���������c�b��Mzk�Ug��������
������GJJ
lmm������z
��/���M��X�p4�oBHDDDDDDDDDDf�4��DDDDDDDDDDd,@�Y�MDDDDDDDDDDf�4��DDDDDDDDDDd,@�Y�MDDDDDDDDDDf�4��DDDDDDDDDDd,@�Y�MDDDDDDDDDDf�4��DDDDDV*..*�
*��e{xx8T*BBB,Q��MDDDD5��%K�R���G)�n��	�J��={V�1����E�!00�7���=\\\����1c���~�V�58Vat���*[xx8������K�BDDDDV���Y�����=������Cz����/��o����TEc�F���<\�t	/^�������o�����+v�u��E�����A�r�WQ���		������!""""k��DDDDT�9r��������MW�.��w�}�'OFjj*����e�������{HKK�����n�:t��.\��S�J���^z	��������_E���DDDDdy,@Q�v��%����{��P����C�A�R��G-����g���^x����ox�������������1c�O>�vvve?+!��tDDDDd%X�&"""���������������������P@�N��|��b����+9rd��]��>|#G�D���agg�:u� 00�7o6���_~�J�B����

�����C,[�Lo�����%J)��ys����b���0h� xzz������h��F��o���D�ODDDDU��&"""�e���8z������y��-����999�R����h�����%-Z�a����8���+bbb�����mE3�����3�p�B����RSS�w�^�����m��
�B`��5�4i@�� ''���x��Wp��E,^�X��������#>>@����g�.���=���^�����q��E\�p�����#��[!""""k��DDDDT���}��_W����w�m�B�����m��]CFFF����~���

T�'b��%K�p�B��W��/��{�������t|��7h��6o��>������L�:/��n�����$$%%��W^|���8w�����O>���7�O�8��7o*]�:..���>��5k�������������CPP��;DDDDT�X�&"""�e����j��j��u��K�.�6�V!p���"���[�����|||���h�s1$99s�����-~��GL�2�`gg���������.Dnn��>2331n�8,Y�u�����b��%h�������(ul�����[�������+mu�����C�j��2�9Y#�������:p����?gee���S���B�F�����w�@�"ke���@FFz���.]���������#99QQQz�B���[�>��S��g��:6WWW��dee�z<U=\�����j�C�z���l;v�rss��gOK�U.���+�����_���~�������_G��������+k_?�a�����������;n���Gy/���������>�������:x� �x��G�m�PtVtY��S���T����nY���,���d_!����...F�������;���������=����1e����'�	&�2������>������F�~�:�v�Zd[bb"�m������4���3���o((��
�%��M��K����Yi�@���f���E�U�1Kc�������7�|���H9r7o���u��n�:���X�r���$"""�
�5������F�j�HHH@bb"���)%������DeFpJJJ��������;*�\L���P�5�+�F���I��y�f\�~111x���V����;-!U������Fh�������j��j1k�,�����m'N�2D��{��#�<�v�����2��,z���`y��^�CGJY��~~~X�r������DDDDT��MDDDD�����T��q�A�844(-M%��B�	Q\��@q���!�*h	���Z�AH�Z�?�(����2�6����o?�����1�}�����lK��7�z����C|���TU��o�flll�0�l6s���LNN���Z����wgmm-W�\����9Hp+���[>���Fo��^__o�{���l;�>}��7or�������u���I�'N�e���`k����D�?��O�fuu�u���R�<y����\�|����l����y�f����G�n���3;;��/�����f������l6�����.���������LNNfqq�u�����q�FfffRUU��^�=!`�y��U������9Ifgg�����G��m���������W�����9{�l�o����s:I�9��A�����Ki4�v�Z���255��;wf��i4�?�<���6���/s���<x� ���KUU��j�}�v�dzz:���I�]�v���#�F#���GGGs������
����~c���z����������M�V����������������#�J___���~ivUU[�;>>�3g����{������\�����������>}:������?3��\�p!_�|���D��z����l6����$9�|����������wYXX������c��exx8�N�������j��	!�����"h��(B���"h��(B���"h��(B���"h��(B���"h��(B���"h��(B���"h��(B�����L��E��IEND�B`�
pgproc-pad.patchapplication/octet-stream; name=pgproc-pad.patchDownload
diff --git a/src/include/storage/proc.h b/src/include/storage/proc.h
new file mode 100644
index 1b345fa..d589e72
*** a/src/include/storage/proc.h
--- b/src/include/storage/proc.h
*************** struct PGPROC
*** 188,193 ****
--- 188,195 ----
  	PGPROC	   *lockGroupLeader;	/* lock group leader, if I'm a member */
  	dlist_head	lockGroupMembers;		/* list of members, if I'm a leader */
  	dlist_node	lockGroupLink;	/* my member link, if I'm a member */
+ 
+ 	char		pad[32];
  };
  
  /* NOTE: "typedef struct PGPROC PGPROC" appears in storage/lock.h. */
#75Andres Freund
andres@anarazel.de
In reply to: Alexander Korotkov (#74)
Re: Should we cacheline align PGXACT?

On 2017-03-25 19:35:35 +0300, Alexander Korotkov wrote:

On Wed, Mar 22, 2017 at 12:23 AM, David Steele <david@pgmasters.net> wrote:

Hi Alexander

On 3/10/17 8:08 AM, Alexander Korotkov wrote:

Results look good for me. Idea of committing both of patches looks

attractive.
We have pretty much acceleration for read-only case and small
acceleration for read-write case.
I'll run benchmark on 72-cores machine as well.

Have you had a chance to run those tests yet?

I discovered an interesting issue.
I found that ccce90b3 (which was reverted) gives almost same effect as
PGXACT alignment on read-only test on 72-cores machine.

That's possibly because it changes alignment?

That shouldn't be related to the functionality of ccce90b3 itself, because
read-only test don't do anything with clog. And that appears to be true.
Padding of PGPROC gives same positive effect as ccce90b3. Padding patch
(pgproc-pad.patch) is attached. It's curious that padding changes size of
PGPROC from 816 bytes to 848 bytes. So, size of PGPROC remains 16-byte
aligned. So, probably effect is related to distance between PGPROC
members...

See comparison of 16-bytes alignment of PGXACT + reduce PGXACT access vs.
padding of PGPROC.

My earlier testing had showed that padding everything is the best
approach :/

I'm inclined to push this to the next CF, it seems we need a lot more
benchmarking here.

Greetings,

Andres Freund

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#76Jim Van Fleet
vanfleet@us.ibm.com
In reply to: Andres Freund (#75)
Re: Should we cacheline align PGXACT?

pgsql-hackers-owner@postgresql.org wrote on 04/03/2017 01:58:03 PM:

From: Andres Freund <andres@anarazel.de>
To: Alexander Korotkov <a.korotkov@postgrespro.ru>
Cc: David Steele <david@pgmasters.net>, Ashutosh Sharma
<ashu.coek88@gmail.com>, Simon Riggs <simon@2ndquadrant.com>, Alvaro
Herrera <alvherre@2ndquadrant.com>, Robert Haas
<robertmhaas@gmail.com>, Bernd Helmle <mailings@oopsware.de>, Tomas
Vondra <tomas.vondra@2ndquadrant.com>, pgsql-hackers <pgsql-
hackers@postgresql.org>
Date: 04/03/2017 01:59 PM
Subject: Re: [HACKERS] Should we cacheline align PGXACT?
Sent by: pgsql-hackers-owner@postgresql.org

On 2017-03-25 19:35:35 +0300, Alexander Korotkov wrote:

On Wed, Mar 22, 2017 at 12:23 AM, David Steele <david@pgmasters.net>

wrote:

Hi Alexander

On 3/10/17 8:08 AM, Alexander Korotkov wrote:

Results look good for me. Idea of committing both of patches looks

attractive.
We have pretty much acceleration for read-only case and small
acceleration for read-write case.
I'll run benchmark on 72-cores machine as well.

Have you had a chance to run those tests yet?

I discovered an interesting issue.
I found that ccce90b3 (which was reverted) gives almost same effect as
PGXACT alignment on read-only test on 72-cores machine.

That's possibly because it changes alignment?

That shouldn't be related to the functionality of ccce90b3 itself,

because

read-only test don't do anything with clog. And that appears to be

true.

Padding of PGPROC gives same positive effect as ccce90b3. Padding

patch

(pgproc-pad.patch) is attached. It's curious that padding changes

size of

PGPROC from 816 bytes to 848 bytes. So, size of PGPROC remains

16-byte

aligned. So, probably effect is related to distance between PGPROC
members...

See comparison of 16-bytes alignment of PGXACT + reduce PGXACT access

vs.

padding of PGPROC.

My earlier testing had showed that padding everything is the best
approach :/

My approach has been to, generally, pad "everything" as well. In my
testing on power, I padded PGXACT to 16 bytes. To my surprise, with the
padding in isolation, the performance (on hammerdb) was slightly degraded.

Jim Van Fleet

Show quoted text

I'm inclined to push this to the next CF, it seems we need a lot more
benchmarking here.

Greetings,

Andres Freund

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#77Alexander Korotkov
a.korotkov@postgrespro.ru
In reply to: Andres Freund (#75)
Re: Should we cacheline align PGXACT?

On Mon, Apr 3, 2017 at 9:58 PM, Andres Freund <andres@anarazel.de> wrote:

On 2017-03-25 19:35:35 +0300, Alexander Korotkov wrote:

On Wed, Mar 22, 2017 at 12:23 AM, David Steele <david@pgmasters.net>

wrote:

Hi Alexander

On 3/10/17 8:08 AM, Alexander Korotkov wrote:

Results look good for me. Idea of committing both of patches looks

attractive.
We have pretty much acceleration for read-only case and small
acceleration for read-write case.
I'll run benchmark on 72-cores machine as well.

Have you had a chance to run those tests yet?

I discovered an interesting issue.
I found that ccce90b3 (which was reverted) gives almost same effect as
PGXACT alignment on read-only test on 72-cores machine.

That's possibly because it changes alignment?

Probably, that needs to be checked.

That shouldn't be related to the functionality of ccce90b3 itself, because

read-only test don't do anything with clog. And that appears to be true.
Padding of PGPROC gives same positive effect as ccce90b3. Padding patch
(pgproc-pad.patch) is attached. It's curious that padding changes size

of

PGPROC from 816 bytes to 848 bytes. So, size of PGPROC remains 16-byte
aligned. So, probably effect is related to distance between PGPROC
members...

See comparison of 16-bytes alignment of PGXACT + reduce PGXACT access vs.
padding of PGPROC.

My earlier testing had showed that padding everything is the best
approach :/

I'm inclined to push this to the next CF, it seems we need a lot more
benchmarking here.

No objections.

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

#78David Steele
david@pgmasters.net
In reply to: Alexander Korotkov (#77)
Re: Should we cacheline align PGXACT?

On 4/4/17 8:55 AM, Alexander Korotkov wrote:

On Mon, Apr 3, 2017 at 9:58 PM, Andres Freund <andres@anarazel.de

I'm inclined to push this to the next CF, it seems we need a lot more
benchmarking here.

No objections.

This submission has been moved to CF 2017-07.

Thanks,
--
-David
david@pgmasters.net

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#79Simon Riggs
simon@2ndquadrant.com
In reply to: David Steele (#78)
Re: Should we cacheline align PGXACT?

On 4 April 2017 at 08:58, David Steele <david@pgmasters.net> wrote:

On 4/4/17 8:55 AM, Alexander Korotkov wrote:

On Mon, Apr 3, 2017 at 9:58 PM, Andres Freund <andres@anarazel.de

I'm inclined to push this to the next CF, it seems we need a lot more
benchmarking here.

No objections.

This submission has been moved to CF 2017-07.

Please note that I'm expecting to re-commit my earlier patch once
fixed up, since it had all-positive test results.

--
Simon Riggs http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#80Daniel Gustafsson
daniel@yesql.se
In reply to: David Steele (#78)
Re: Should we cacheline align PGXACT?

On 04 Apr 2017, at 14:58, David Steele <david@pgmasters.net> wrote:

On 4/4/17 8:55 AM, Alexander Korotkov wrote:

On Mon, Apr 3, 2017 at 9:58 PM, Andres Freund <andres@anarazel.de

I'm inclined to push this to the next CF, it seems we need a lot more
benchmarking here.

No objections.

This submission has been moved to CF 2017-07.

This CF has now started (well, 201709 but that’s what was meant in above), can
we reach closure on this patch in this CF?

cheers ./daniel

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#81Alexander Korotkov
a.korotkov@postgrespro.ru
In reply to: Daniel Gustafsson (#80)
Re: Should we cacheline align PGXACT?

On Tue, Sep 5, 2017 at 2:47 PM, Daniel Gustafsson <daniel@yesql.se> wrote:

On 04 Apr 2017, at 14:58, David Steele <david@pgmasters.net> wrote:

On 4/4/17 8:55 AM, Alexander Korotkov wrote:

On Mon, Apr 3, 2017 at 9:58 PM, Andres Freund <andres@anarazel.de

I'm inclined to push this to the next CF, it seems we need a lot more
benchmarking here.

No objections.

This submission has been moved to CF 2017-07.

This CF has now started (well, 201709 but that’s what was meant in above),
can
we reach closure on this patch in this CF?

During previous commitfest I come to doubts if this patch is really needed
when same effect could be achieved by another (perhaps random) change of
alignment. The thing I can do now is to retry my benchmark on current
master and check what effect this patch has now.

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

#82Daniel Gustafsson
daniel@yesql.se
In reply to: Alexander Korotkov (#81)
Re: Should we cacheline align PGXACT?

On 16 Sep 2017, at 01:51, Alexander Korotkov <a.korotkov@postgrespro.ru> wrote:

On Tue, Sep 5, 2017 at 2:47 PM, Daniel Gustafsson <daniel@yesql.se <mailto:daniel@yesql.se>> wrote:

On 04 Apr 2017, at 14:58, David Steele <david@pgmasters.net <mailto:david@pgmasters.net>> wrote:

On 4/4/17 8:55 AM, Alexander Korotkov wrote:

On Mon, Apr 3, 2017 at 9:58 PM, Andres Freund <andres@anarazel.de <mailto:andres@anarazel.de>

I'm inclined to push this to the next CF, it seems we need a lot more
benchmarking here.

No objections.

This submission has been moved to CF 2017-07.

This CF has now started (well, 201709 but that’s what was meant in above), can
we reach closure on this patch in this CF?

During previous commitfest I come to doubts if this patch is really needed when same effect could be achieved by another (perhaps random) change of alignment. The thing I can do now is to retry my benchmark on current master and check what effect this patch has now.

Considering this I’ll mark this as Waiting on Author, in case you come to
conclusion that another patch is required then we’ll bump to a return status.

cheers ./daniel

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#83Alexander Korotkov
a.korotkov@postgrespro.ru
In reply to: Daniel Gustafsson (#82)
1 attachment(s)
Re: Should we cacheline align PGXACT?

On Mon, Sep 18, 2017 at 12:41 PM, Daniel Gustafsson <daniel@yesql.se> wrote:

On 16 Sep 2017, at 01:51, Alexander Korotkov <a.korotkov@postgrespro.ru>

wrote:

On Tue, Sep 5, 2017 at 2:47 PM, Daniel Gustafsson <daniel@yesql.se

<mailto:daniel@yesql.se>> wrote:

On 04 Apr 2017, at 14:58, David Steele <david@pgmasters.net <mailto:

david@pgmasters.net>> wrote:

On 4/4/17 8:55 AM, Alexander Korotkov wrote:

On Mon, Apr 3, 2017 at 9:58 PM, Andres Freund <andres@anarazel.de

<mailto:andres@anarazel.de>

I'm inclined to push this to the next CF, it seems we need a lot

more

benchmarking here.

No objections.

This submission has been moved to CF 2017-07.

This CF has now started (well, 201709 but that’s what was meant in

above), can

we reach closure on this patch in this CF?

During previous commitfest I come to doubts if this patch is really

needed when same effect could be achieved by another (perhaps random)
change of alignment. The thing I can do now is to retry my benchmark on
current master and check what effect this patch has now.

Considering this I’ll mark this as Waiting on Author, in case you come to
conclusion that another patch is required then we’ll bump to a return
status.

I've made some read-only benchmarking. There is clear win in this case.
The only point where median of master is higher than median of patched
version is 40 clients.

In this point observations are following:
master: 982432 939483 932075
pgxact-align: 913151 921300 938132
So, groups of observations form the overlapping ranges, and this anomaly
can be explained by statistical error.

I'm going to make some experiments with read-write and mixed workloads too.

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

Attachments:

scalability.pngimage/png; name=scalability.pngDownload
�PNG


IHDR���KR[sBIT|d�	pHYs��~� IDATx���wXW�7����.�.�� �����nb��+��'��5jb����Pc}b4F�Q1b�����)�tX`���?�ea�%1�r�k/�s��9s������c�1�cZ���0�c�1�:��1�c����1�c����1�c����1�c����1�c�����#X�`A�����G�j���X���WYf��m��U!88O�>��f����P����������X��4c�x��9{{{�D�
A`^^��333�����o�Q�?}�4<<<`bb��]�"::Z�e��T*�������u�m�6�D"|��'j����D"��a�@�n� �PXX�R�7i�$���CGG��mS�#",X�077G�.]p����Rom���m������z)����B&�!<<\H����L&CDD�K�C[000�X,^-Z��?^-],C$����t}g��A���affl��Q-�?��6l333x{{��Azz:���amm
kkk�-���St��&&&����o����:��q8�f�:::x���+=�#22���8{�,V�Z�������1x�`|��HMM���7���������[7��1���7�<y�R�]�/_F��m�j�*�n�o���J�K[�F��o�>�@n��h���K��������:/+ �7�������E�X�nZ�n]!���~���[q��y����}��3f�K����a������+W��>�J�L�<������o��g��9P*�������N�:�����B,���������4�'OFFF����O>�DX_DD��~ddd`��	4h��9�5krrr���S\�r?��#BBB���1�Z�BJJ
�-[�!C� ))�o���O����-@38;;��/�D��M!��0n�8���V��������y�f�D"DEE	�������'$	��������={��\.���;����	y�>}:����D___<z�H��s������
�/_.����c����H$�����k�����G��i���H$ppp��_�����
�M���;v����!����IL�8Q8�v��xzzb���022Bpp0n������W��6��AY3f����V�^���?��LLL��a�D��};4hKKK,[�L�z���Ch��%�����Q�J6�g���K�]]]�����W����5�������akk///�8q�����/b���.SZ����aii	ggg���K����S��O����������������A���`��)����j}G�A�V�`ff�B�v��t,�l��
�[�nJ~xt��R�-Z�P��������A"��g��HNN���6m�WWW��r0���B�H$��
����L�������fdd`���X�jU�u���...���;v����"��OG���addT!���'x������]]]�=w�������<VVV�����~(..���K���kkk�;��8l��
...�H$h�����W��>�w��L��K�.A,C*�@��^u&N�;;;,^���o���t�R!�4�������,X ����?9�Tf���2dLMM5����"33c���H$����4i"�O�>���'��i�H��c�"99/^�>|s�����	���1a�l�����C���X�x1�����{������(�2eJ��}"�k��������/^�����������/�m��q�`oo�L�w�}W�

E��-!�J��C��uK�[�r% �H������O�\�ooo������F��u���+<==!�J��K��wO�svv���+��ys��������:�=b����yzz��g�(%%�:t�@���'"�c�����
��}����i����"##�������b1�;w�T*��1�:v�HDDJ��i���TPP@��_'�}����L&���*((��#G������(33�lmm�������\������/QPP��#G�������W�����������RSS����U�/(( ���!-55�PBB����O?Q�f���h��4e���xzz�����]Ve���-Z���;)$$���=�����@|������7��������U�dffF'O����"����{��i,knnN�����wDDg��%]]]Z�p!�����#G����RSS�jGHHu���v��E��
#"��k���I�h�������q��zg��E*������������OD%�������SQQ������3������B�����_?
�j}g���[�nQQQ��y��������D���b��1�T*)''�bccI.���#G����N�<Ir��^�xADD����:w���b5j��m=}�4YXX����I�R��~H�:u�P��})--���������;Vi�O�6��������9r$���Srr2�������+-[�c�������Sj��=x��������>��j\�����7oN�1)�J���������-[�Q�F���#����A����������T*I"�c/��

R����t�.��}�����>���"333�J�t��i�����I�H�TRbb"�����
��/m�!�����IU���I,W8f�7b��������.^�HVVV���3""������[�����������{j��%���EDD�Z�t)I�R"":p�yxx��5}�t���+������J��G����B999���BR��v��A�{�n�J����LDD}���a��Qjj*���SXX]�~�����m��m999�J��������#���Q��DEEQ��b��DD���E�.]""����	�<y����i�����Q#���#��x�E����3��������hFNNN�~�z���#G��������'���"##+��A/Q�UGG��={F{�����zK��I�&Qpp����	��uww'"���wS��-5�7((��w�.��s�i��
��6l�@Z��@?{��Pnn��v��Irrr""�������s����C
		�vYmT@o���d2�j��>��S�v�~����i>>>�g����4i}���Z�]�lYZZR�&Mh��Uj?��=KFFFjA����p��Ni����C������N����U�T*���C���%K��d�3f��W\\L&&&j_/^$ggg��W���3��+�G�	�+V��R�z��m��Qttt��F�Qi=~�x������YYY���'�����_~���u]�z�Z�hAZ�iii�P(�Y�f4i��J���)�����3f���%gggz�����/^�H������[7Z�v�����������=���R�$sss��?���T�M�����|���W]]PP@��A�~IHH �������t�BD�����244$sss�5v��
�v��A���B�[�_�����IWW�tuui���B^qq1-[�����HWW�,,,���+B��Q�h��A���I������BB��O���7��cIU�}D%c]�G��;���Gm���������'�H����)Sh��ji�7���0���$+++:u���������-Z��������,YBC�������������l�"�WUG}�S8@�P�wrr����W�����b1�r9������H�R��k�.$$$�mmm�����sdcbb��Q�J�[~9�J�q�������S�L�����q��Q899����.]��c*!�@�3u��%��_6�l~u�����)l�����m���cq��-�k���]���:�V��~/���gj���KY��������I�8q����z���oaa==�j�Q�B#OOO�<ccc���K�.Err2:v�Xm�d2�����������������i�F���~�m��U�/""]�v�������a��
�.����~�I�3����#>>^c]����W������@\\����~P\\�i��a��5j�U�T��C��������O�ZF�����������J�BPP�u�����
ecbb�����������	���HLL��SSS���6l������+L���6}h��Ug����������T���h���NX������������g�Fzz����}{�2��o���c!������g������>|8v�����|��s�V���#G�7o���[q�����c��������y����all7778#F��dR�1�2�}�i�/��@I����!&&r�2��B���X�z������x�������Cpp0��������o��>���|||��:::P(j���������h������g�`oo���Cll��r���J%RSSaoo�B???��R������m�B�P��w��7O�@e��
:t/^������a���x�2�vvv��+p��M!����T������G����Y�����sG��N�:i�>GGG�m�����7o6m�T�ml����>@�����
^^^��y3�����:e/4�t��c�b���Z_\������l�}�������%���q��a���P�Z���#1`���� ##S�L�0��l}
�c��Q��dgg#00vvv�����������l������A�~*����k��a�������	ptt����7�u�V�13f��Q}e��y�����#������4���
�={���t��x�����`cc#�i;��wo�:u
��?���&N����QS��v�^U�������
�7o��-[�|�rDFF
�ghh���da������K��z�bbb��c����=�4h��o����;z��
����o��8v�������h���p����0�X.�'q������b�m�@�1�����������\���m-��+UvL��)P��P(HMMEzzz�:
�����/���`��J�1�������H$���s�{����/^`���2d���+����v\(�/VVG}�4�]����HMM�����;F6!!!�w�rrr�d��
�=z�������������B�~���������QPP���\�zU�������			������������r����|����������pa�&*�
yyyJ.�){q���c�t�R���������i�p��A����������R��d�4o��.�Om��]�(**��{�^���	���O���qqq��}��i��w*�
QQQ�����N�:��>�H�e����������#44C��XNGG'N��Y���sqqq�����/++r�FFF�r�
v��]e�F�������(**�J�BXXbcc���ooo����p>|��u�9!!!�q����0o�<������Y�~sss�������q��=
�~���;:�T*�=��/GHH����n��J�����J"BAAT*����������������b�X���Za=m��������
�J�.(�����~�'O�@�Tb��y>|x�g�����D����������!�bq��m��� 66������4)..��	0g�xxx�y���1c&M�"���z���O?����(..��G�p�����_���?��:T���V�Z!22g�����G

n�����#G����� "�:u
>D�f��=BJJ
���p��1l��Qx�A�����eK,^�*�
��[���{�U�����4���>|���w���������w��_?�����w���i�����������J.��a"""@D�����#G�������3����������}q���HJJ����pQ���.�
�#G�����(((����ahh�:hlwUu�{u8}��"���h�����Ia~Zvv���|�r���!;;;Z�n�y��������G�djjJ�:uR��x��}���YZZ�\.��]����),[����s����/���I�R����
��W����Ryyy��wo�J�$�H���[mNby*�J�T*7nI$������W�-{��)rww'###���S��\���As�?��srqq!��d��gO�@�����m��I��8@^^^$��Q�Ft��q�������R)YZZ�{��G���D�y�����:uJ�6h���Tus�h���daaA
�B���H�O�������S��
I"�����Y�F�����O��A����o_�>}���V��^�|�:w�L2��,--�O�>MDD�=���z�LMM�G�j��d������B2������6o��>���^�}�>��c��������$����������U���������i�����-I$j��U�:FGG���I.����}��GDT2�s������H���4j�(a�iM�!>>�:w�LfffdnnN~~~t�����4��>����>}��L&#a����4���o�y��jsVU*yxxs����i��)���@fff��eKasM���c���?��������*��R����y�f����o�>���$�XL4g�***"��9�.$�BAb��<<<�>����#;;;266�-ZT8v=y���������7n\�����>M�����S�������Z�n������Bc��%kkk�J�4h� !���c���M���dkkKC����L�y�&����X,>����Q�F������R��M����J��M�4!333�����E����U�Q�����o�����y�f���������C�f��������`U+..���.�����A�J�m��
������K�5N���`�����!,,�G�V���*��1�z������Y��S8X�<���|���a������?�u����022R���1�c��hV��������B�F������E������?�k��X�r%�,P�g���3����g�c�e�)�1�c����f�1�c�8�f�1�c�8�f�D�q��A&�	7�U�>5�����������D"����Q=O�>�H$��`���m�6���[���'�������;C"���O?}�>3���k�.����������Dxx8N�:���X\�r�B���g����T
4H�q�e���a��	prr�D"A�V���g��O
|7�����_B�^M���K�.��ys����q�FXZZ"33�W���3�*�3g
�������e��	y>���aee�\���{���j�GFF���������������>�H��aXXttt�GP;88 ((�V�����#u��Q8y�d�J{]�v��-Z���Cj��w����LMM����"55U�KMM��A�`jj
''�j��^>��Dtt4���ajj�1�i��8q����777L�:Uc���B(
�;w���/0l�0<}��_��WC]��}���}��M�
����3S����	&�����������{�n8p�������HLLD��m1p�@a���(��������'233q��4j����B9{{{�������e~���Z�>��X�f
�?���Ll���G�����w���������?"11&&&�6m������a``���D���S�N��jI]>���NNN�j�*���"?~<%$$��o�Mb���w�.<������K��}{277����O&#"��u+yxx�X,��
��
����s}���deeE����u��J�G���'�LF�5���y�f244$255�E�U�}*���I�&Z������������Y���������C�$��g�������G��:u�;v����IOO�LMM�y��DT���������-����������Pc���������Q�F�D"�M�6U��I'''�����������h��a���KDDIII��o_277'�LFo�������-ZD~�!������	}��gDD���C��������W���#244$SSS�>}:�<El������JR���M�F����7""���i#<Ur��Yjc�m�6R(daaAK�.U[�]�v����O�NyyyB>���������������{��G��d��qc��o�P>99����O��|||h���>��,�f�j��!Y���c IDATXX����������������'<en��
?3��-Z���9�o��n���6�+V� ///200���Z�b����X,����o��V�6�]�����Y3Z�r�����@���DT�t�~��U�NM���C���e��jSHHu���>��c277��
��($$������m�&�

��-[�D"!GGG


����K
6���"":z�(�����/�l���������Zh�J���3g���������3I�R�mwe�^�6m�����b1�m���������������O�A�dffF;v���R(@x����+<�������Mfff���M.\��:N�����Q�H.����9y{{SBB�Vc�wDDD���!EDDQ�eG�!�GEE���>eff�R�$}}}z����?z�h�;w���>V��V899���/%$$Pll,YYYQ�V���?� �JE]�v���`"*�R���t��***��'O�\.����E���F���t��u"*9�������)??��9B���j�yY�;w��S�Rnn.����dii)|aW���R���dnnN"�����($$D��HHH CCC�w��K�3M���=x��rrr���O8�V���A���i��I�T*)11�|||�~��Dzzzt��A***����h�������������Q`` M�<����)??�~��w�������Y�fDT�����Bm���Jh����!@}�����4���&KK�J!��];�q�YYYt��%�z>������7n�����{����]�F�.]���z��	yxx���~���=zPJJ
����R�$GGG��u+�������Bx����i����T*����"{{{��.]�PJJ
EGG�����U�D�]�3s��u������/Saa!m������������Z�hA��=�����>9::�=z�l�U��_~I���������_���)��
�=���������������x�}����dooO�O��r�R!!!���K[�n���B�?>)
�6m�T*:q���b�����u����7���Z���#G�$JNN&;;;:|�p��gff���-}������K���t��e""Z�p!���Rbb"�x����oO,�Q������d2EDDPAA�9��NDT��=m�4������X*,,�.�J���X���`JJ
I�R��c����I*�
?��:Nn������G���TXXH��]~��W�_��o��U�w��}����P������+V��555�k����AFFFjy_}�U�?����S8X�����`cct��	���h��

1h� ������;w�O�>���ttt��gOx{{������}��Q�F�D���C�^�p��y�}}},Z��������bq�y����p�\�FFFh��%>������ZoS�
������d,]��.SPP�Q�F���������&���C���all�a�����ZoWY���8v����;�������f����{+]�}��x��w���ccc���1c���!���������x��9�������N�:	S����������0a����T*q��9����h�!�J��At��������GTT���!���];���� �E�h��n��	h��
��k===8;;c���8w������9�r9���
ggg�7zzzh��5�{�=���EEE�����d�����Y�f����z[����\�
���?��={j�W���i&O�___����������|��Pf��P(066���.���p��]����5�����@���W��J`` �����`��1077�P&66��O�7�|#�%''�=��~�T*�X,�������xH�R����q���������R
6��q��������#&&�-���!z�����.]����:::h��9F����]�g��A�.]��������CCCakk�O?�FFF�H$���Pr���E�`mm
+++�/�;�<m�����F�%|��������u�V�Y����E�`hhXm?9rnnn3f���0b�xxx����B�������HIIATTtuu��M���U�g��������wVV�=���{CG�$,S*��KsssdeeU��j�������766��^�T(�G��O?A*�
���pan��c���];��rH�R=z�����,,,�5nbb"�����x��rH$!������"�������V9����c�����~��!��w�.:��k���m�iR����>�Ftt4


`gg'���������J�Q(5����~��gpuuE�^�����+Vh\������8w�~��w����C��p���
����-[�����������O�/������C������033��y���c@���������k���$��/�������_.>>^�e����W��9&&Fm�e�vuu�w�}���`X[[����im)O$�U�V066�p�_RRz���i��a��B����p�?��������QPP ����#==���HOO���q�~����kJ+��"""�������a���H*�b����}�6>���j������GK||��~U~_���[�g��};99*���6U�|{K�\�_Y������{�������=����6�/���>�y��8q���+@,#33S�\ff&$I�y��p�^9
�c��Q�������@�����������������t����7�ioo���T�_���=�����jwaa!^�xQ��V��0a�$&&��������w��1���Q�F����ejj����}QQ��������*
"99Y����*/X)���u&$$h�^�D���W����8|�0����>}ZcY???�9s��'|||����'N���+����Vm�)777���/^����s1d�dggW����S������Hdffb������mS(���S�\(�J�_�VVV���CLL�P���gZoC�������q+m���������������#G"<<����D�;w��u/_�\��������B<z�Hx����^�za���?�Z����j���#G�T;��2�9@LL2220e��������u+F��3fT�>�B��e���#::Zx_v_�'���---add��M�}v������������w�����

��;4�-{����w����Re�EOOO��U���c����q��h��1
)���y���Z���9��+g���8|�0N�8���"�T*���!66�������c����[)
t����9T*n���-[�h�8p<@qq1�����'��U�V����O�:�����������oh��1T*�9���,]�yyyB���
�>}���b���z���O?����(..��G�*L7�J��-q��Q���"!!�}�������"**
D333���Vz�>???���M�6����p���
���J�2666x�����)o���HJJ����R)hu;���,���A,����X�~}���������DAA


p��U��w���<x0��������w�b���Zo�W_}���4���`��5>|8��q�������3ddd��/��z�0q�Dl�� "dgg���#������8s����`dd$L��d��y��NM/M�������iii "\�rk��E���������7:v���/���8�<>���,frr2���Wi(�J���W-�������+]�&��� ��add�+W����L�Ra���X�|9BBB�u��U��~��	����<dee!""0b�,]�IIIHNN��%K^�-/���utt0~�x|��'���GQQ.]�$|���T�����>|���w���������w����������BQQ������_��X�H�We�+��>�;���\`����_�����>|���Gvv6-Z���C"�������E�����.���C3f��=�^��+G�P���CX�|9����P(��W_������=�
�L���wc����={����������A��x�b���S�e������oC"�s<��ltt4�����������8]�����c��u������SSS8::
�C�P�����[v�����|4m�2�C�Q�Svu���-Z����z�4mDFF�G���h��=�M��.]�h,��C���
g��6m
##�J�>���3��~�d2����w��qxzzB,c�����w/����]��������!�H0q��j�D"�������w/���akk��s�
?~~��(�J���"  ����z�6m��e�����/&L����'������M�6Zey{{c��M���!������m��UZ>//���������-^�x��������<x�5�D"������G���>��^��������g�7n���/#66-Z��D"A��aoo�/��B�#>>^X���	���j����t����l��u��h�"H$,Y���
�>��s8::b���044���;�`��3��I$�:u
����-���p��Y�������������[�����6T�o����������r9������b���`������#�R���z�����W����V�Bhh(,--�mSBB�3334i�~~~/���D$LU�����5k�o�>������
6`��Q���FVV����u��!77���1b��_�g�k������c�1Vc���:t(.]�T�Ma��@3�c�1V<��1��`�������7���s|�1�c���3��1�c����1�c����1�c����1�c����1�c����1�c����1�c����1�c����1�c����1�c����1�c���^]7�u#�J���Z��`� ;;���u�Vx���������'c���S$''�h�k�����]��f�Z�.]��u3X-���_x����������w���)�1�c����1�c����1�c����1�c����1�c��@��������5�5k&���q���C��-����+W��3f����+�7o�?��CXf���pss����o�.�_�~^^^puu��3@D���T���nnn���'������1�c����Z��������3AAA�q��,Y�9s��;���HDFFb����:u*��`x��������+W�x�b! �:u*6n�(,WZ��+��{wDFF�{��X�bE�u0�c�1V�Z�;w��\��&����	������=���C;v,D"��k���t<�'N�@��=!��!����gO?~��?Gff&��o�H��c���_~�������WK�Tc�1�cU���|��w���7f�����b\�x�B!�sttD\\\������ 11vvv;;;�x���:J�2�c���/U���� 1'6&��
r#��n�KQ�����������������?L�0����0�,�HT����d��7b������4���U�n�fP*�<���u���]�X�
"�����;�4��PH�qn%FZv�(���i5U�c]������f����C��(9#�������=�:'66]�t���#bcc+�J����s������������M&M��I�&�������?�����_x�������fl�w�Bz>b[�	87l����:k{���6v���8w����3pss0;v�����077���z����'O"--
iii8y�$z��
;;;H$\�|D�;v`�����J���}�v�tMu0�c���'1;_^�Ze���"M�YK-�w���#F ,,���ptt�����i�&��9���022�I���G����+LLL���X�p!|||�-.L\�~=����w�y��� 00��
��-[��A���OU��c�1�*��W"N����D�g'!N�����%/esS�]��(������B���@���Gc����+��D"�]�Vc����c�������q���
�8}�t��`�1��/������Z. NB�2q�I��������VgBN�K[W]��9��1�c���u���p�8>;	��D� 9^���9�(��a+*gkbY���l@3�c��"���o���[�*��?>�����6�;�%�������Y�x���ql���e���hf�g��.������1�c��e�� ���
���|_��-w��H��I�/.�������
���p0������_Sk��Z�Al
;K��s��m(5��8���j��/��1�c��TUVTs�e��R����$8[��L@l����rCs���<���p�H�@8�����1�c����A���e������%��/�����b��Z�X����)����Lk6�EBN2lM,1���k����1�cu(M�������k��D����RX�M�(�Va�������c?�F�������4c�1�X�+���������"-O�������G@b`�/��U�h�c��ZTL��_�I,��O��k����!�7��s��1�c��������kp=���|��	��x`��p�7A�L�a�1��Gn�D��L�<4Ec�,�7�����m��H�@-�H��m��w�x�h�c��I��_�/��?�b*������)�C0��X��������h�c���,3_������n�Bna��2C���v��j����&���M�4c�1��K�_T�Mw������J�X��]K�l?�l�j�u�e��1�c�""x|�/�ETF��2�R'|��#�w����~���4c�1��?���^\����4��[ ��$�o2z:z�	xc�1����iO1��8�$Lc���1>m5��
��I�6���8�f�1�����d|qu6��ETT!_W��	Mb��$��Z�A���h�c�1-(r���]����.��Xf@C?,��M�
k�u�6q�c�1V���B������	9)���i���g��}�Zn�@3�c�i@D}�;>���O��L#3G,o�!�t�;k�#@3�c���xs/�A��?5�[I��g"&6]�Zn�k@3�c���G�������|#]C|�b$>k�sCq-���*8�f�1�X�����e�6c���((.��/���v2�6u�B�*��1�c�Vn�
kn���?�!3?[c�wt��������[�^U@3�c��)*.���G�����������3�����[�^u@3�c�� "�����/~��R�4�q��a��tw��N-���8�f�1�X��G�}^�gb�h���a^����5����:�:��1�co�TU<>��I�u7
>��X����yLcyC]|�5���AfdV��e�#�c�1�F ",��+�o��(�-�x���n��}��IbWMdo�c�1�FXv}��l��l7��X�~ZYy���bo"�c�1��KUe`�����k*s�Wg���?z��m@3�c��w��a�FU>j�>z7h_-bo2�7c�1�^{	9�Z�{���/���@3�c��w��-����X��-a���1�{��pk/N�\�����!�t���7��1�{mxt��WkUv.����$|!c�1�^K�������@B���D!��@H3�5@`����fB]4���8�f�1��k�n�c:�	���yCOG�|����8��,.����������<���h�c��V��/�7�#��e��o��o7����]4z!E��]����M�s�c�1����S�_��(����������U����1�c����|�w|6�J�RK��9����Q�X}�4c�1�^y�T����wM-}`�.X��3~,7�U�@�?���h���Z���������s������K������'N���?www���b��B��'O���777>��%���a���puu���/�>}Zm�1�{����=�E�TKkg�;{.���n���W�@����jig����C�p��-��s�g���{{����Rn-� IDAT;wp��qL�6
EEE(**����q��1��{{�����ws����Y�	�L�-[��l��L���(��5s�����c��Z���������.u�����X���Z���Z�;w��\���~�z���`mm
8t���}�a��puu��+Wp��������x���q��!��9�!C������/�����2�O�UZc�1�^��<���UK�5���~������Z���:����C�?���������WqqqP(B9GGG���U�����T
===����������9RRR*]c�1�^
aq�p:H-M�o��}������Z�X����iii�|�2�^��a������ �
eE"���5�WV@�yU-S����q�F@ZZ�����.�fP*�<���u����zx�z����U{��.t��n42�$ 	����������������H$B��m������d8::"&&F({��_���---������B�����/]���#
����\^e�M�4	�&M����K�./�+�+(,,�������_x�_}1Y	�?�
��*��-��0��������?j{��t
�����3g�(�����KKK0{��E^^�<y���H�m�>>>�����'O�����{�b���D���+�����};0`�o���?�u��HTi�1��;�yY�������(����a��T�e`�A�������v��\�
s)�,K[�ffj��4�B��������r��MMLsI��}g�f�����������z����y���|8���#�,�����-
�D��f#�S�LA\\�a�y����={6f�����{C*�"&&"�aaa�4iBCC!�H�a���5K��_��G��N�����X�n&O��W^y@dd$ 22�?�8T*<<<�c���DDDd{�JL8���_1j��$<?`���"�M$��Lf��������.�l���k?x�����I/�1��K�u�'��������m�Z����GS�����q����;��;�]	�����_+<����m�Vq�jq�������?�>��+��^�]���w�Q
�H�DDDd7;������M����rW;UET7h"""��#i`����utt��>D��~�)��������N�^���KQ���$�5�m���a�����MDDD6u�D��-FqU�Q���a��{2P��MDDD6�_Q��-�Z�k��n����c���"�4�D��x$�/�;���NUY�������N����V�7�)����G��;�@$��2"�1@Q����.v_9b�����:r%D�#���_,5�wNm��3_��yt��1�@.���*��c�&""�f����x�����\|����]��NU5
45�S�"�?+��\������R�c�&"""��3�9��z��M���o���>�*;VF�t�DDDdU��x���QZ�1j�:r%��SUD��MDDDV�WQ��[�LM�Q�;w.�����T�u1@�U�k+0��gq���Q�3����~��T��1@Q���:L��e����}�*o�����"j�DDD�$� ��_��������?[�Q
�A�MDDDM���l:������
��}2��NU5h"""j�m�a�����;�b��M��NU5/h"""j�C)�cn�*�67YG�{�Ct��SUD������,��7&��Q�L,�wc�C�Gw;VF��$�.����Z�+Eix���Q�-7�� ��Q����XY��{[������o��0a�w3WDu�45Xny!��o1��������9<�}���j�"�z!H%��_�J���^6����MDDD
���@��g�P�b��\�����d;U�6H$",\�����JH$"TDua�&""�zi�ZL��E�:k�>%x�[d�����<d~��� )�{����9�MDDDuY�}����P�����F)
PY�GfZ�����V!3�������\m��H�Z�~������@)���ko�P�����/@
���FY��MDDDuZ���g����v�yR����j9*+��J7����qN���yZ�iq���l/�!X��R������������-�������:w���|�N�v����,d~7j�t��J=�3L���a9/��i@3���"?����-���(���}���!�=�$�MDDD&������Q���~x�#�����1��W��jbE��n]����F86�7�V�f�.;8>�R�)q�l94�z�s������jdgTA���D
���E~���,3���[R3�}S��9p������4�+����di�P������N����b���zyt�c��]_����OeM�d��Y������(�&F{o��z�I
+l�<��rC7�h�V+ 7��h����p�����*������O���>���! HZo�n+�0@�s� `u|4��oF���dD���T��qu
�����~*j�k�D����(��}R�Bc�T/�k
�_'��� �_����Z����*�+���������]]g���-�>�DDD�����Z��o��?���n���"������!w��Cq����/j�6x+��h�kK$"�zF��cJJ5��z��=�}cD;[m��}][}��������"���\g�H�)�clTQ���~�[��u���h����D�����)���f	�-��!��V@���T��G�-	�~Ji�}�������W����q�V�a��#�o���VU���/s�.�/����� �������Z8�J�^8��D�@�e���&�\���������S:"�U���g������J+�B���
����m�j�WV���O����i�C�L.BeE���A*9�=������(d�F��j����aN�������S�����������B,��}�|�N����c��������j��j
��9���j6<�x�;
��t7���9�����Q�{ze�EkJ�t�&""j'J�����/���/PR]��	�9Id��mD3VfZ��J|�n��,��'�����S�0���q�*�(_����63��52��H[�MDD��Uh+���o�&~3r+
->~��Yp�wj��L�x�Qoe���r�n"wr��9>�|Ve��k�W������g;j�J"-4Q��k�����QH-�2�'����uY.��s���r������"mR���+�������C����/���E
xz;��.�[1@�1� ��+G�����P�l����������$��]��Q|w�?��������h��g�^@��BlZ����J����"�9}�.��ZQ}l6�{������A���k���;�@$!7��	_A�x�b�T*���'O�4����App0���ch���G�>}�R��x�b������Gxx8�������z�ADD�	��S�b���th����"q���� ��X<��1Cx�+"C����s:�Y�su��}������^0���t��-���+0{�?�3�6�3g����k������D���
m@BB��	�+W���c�p��q�\���,X���(�q���v�Z�9			9r$��][�5���Z�cYg�w�~�'r��z]����}� ��X��m>\e�P%�)�a��j�P�����p��:��o��������~�8���5S�b��w�}7<<<j�/Y�o��D���ccc1}�t�D":���P��8t�������www�������P��(..��a� �0}�t����p�3ff��a�n�DDD������p�9���L��������3{>�����{w=����m� ������Nb����H1���c��e\(v�����������s������������===�����+�J������T*k�@VV��'@
��������DDD-YrqV��	�_���>u����$zyt�qu7d�Vb�{j���B���Rt�?�������Y�nZ��`���8|�p����_��H$���.����(@AA����<7�
�������u����w���s~�G���5��c��X��wF�_W���6��H��1�������WG��;��1�Q-��3�]���8�����55������������d}NKK���q��q(�J����������J�����������C�T"--�V����Z��B��Z�������)s�����s!!!>|�U>������^����Kk����%x������W(���7<�'��.��Ww��GK�im:~�-0�����=�������+m�ZZ��&���^�mF~�>}������d$''C�T�������CDD�m�Ap��Q���B�P`���8|�0


PPP���c���P(���#�=
A�m�6�7aX�#&&����5���ZMu��3���aM�f��9�������V��gAw�S�9�����
�>
G,;�������5<5'��@O�2qqq����R����+iza��������J����3�l������+0dH���������7b���(//���c1v�X����1i�$DGG�s�����o��QKP��b��{����������Q������c!v���nZ���_���u����l��=�x�y��2W����f���������d��"�6l0�o����={v����������===���?�j��DDD����:�0�ul.����������a �~��\�][r���HK�4���`�_�����������������W�}��y�L��$u�������tpt�q�@Q��?���������wW�+�.�#:��P?Qk�MDDdg�f��W�m�o�S&_��ex��$�0p<�nV���m9x~Fb���=���W��R�K��D��G<1��d�MZ�l�����NN�^����@�o&_����5/���>V�~�T/�_��������`��v�T�	3�1g�?�;Y�D��������R��c�3��^�M��n��k��>M%���p�����7��Q�iO�b��
�(���/�DDD6�^���'>C����	�7A�?�.���I���a��,�/_G�zF���}���1��'��'""jfy�x�d6��:��V�����C�.E��&c&z���u���M�'^��3�!�s):j������ ����A�&�����m�bG|p�K�{�sW��<��g��$�v���+V���~*�G������������`����H���MDD�$� `u|4��oF���������9H�n��r
�����U8D���*�G�����K����R������n�MDD�������M���z�������+?��=#�(���aA��&8�>^wp� �K�0<��MDDd�J]�����x��Ot����
����L��D��� ~�����������=c��g���J,\���
"3����L��i�T����T$� �(	�5oSJ3�Lo(b��Aw��Qo�Uf�
F�z?��c��i8Jc�����pE���Z�7G5�s�i�DD�ni�Z$���P���E�5!�(��)H.Q�]j�R����Yx��������p�/��y�8w,\�4�5P"a�3
[�I��1@Q�����R�iI�������E�H*I�Vo��\?�������&V�!���`�,\�Dh�f����b�&""�3��������=�J��P������Q��$��Jq:����\��5v�EPG��y�:�s8Id��mD�/h�V+������F:._0�E"`�DO,\��>�DM�MDDvcn	�g~}�����"
�@�������|�|���\.J7�AIS��xC��`��P�]{����J���o����*�-8��NV�M����\lx#
�	�w��&{������l���+h""�sK�U�����M�)�|����Th�
�n��N���q T���V�V�G�z�yP$��!@.�~���j=b��b��4�\6�C��C�C�O��D���Ddh""jv� �����\dj�������4��g	��S�i��{;�F�������P�u��U�N��=�'����9x��#���������&ta����*=v��`���HK6��b`�c�x��t���L�\������t��.�G�&jM.�4y���!K�uYMX�*�	��Z�O�������H�����_\\�������o��VV����ll\����*�}$���/)��vkL�W�DD�\S��� (�,���hq��c�&Y7��5���(��GR?Wi�|d�k����V��)sKTY�������6�i�����fzc�����Ld+�DD��%�5��eF�k������q�M�k�j�ZaG3{>����#��3��nm~k��rv|���u���0}�R����e���B"b�&"j��{�������f���v���X��|�<�p����>���:6+q����K�e���\��W�d!���d�	�2}�s_�� �3��0@�2zA��2N��z�;������ ���;��=���?gO�:{Bq��~��P�x���K����N
�,��h�t�bc>};y����L.��y���B|��6���n�MD��	���W�~q�'�K��f�{�,���`�k��8 �9{A��o'7H����K��$�%:l����w3���5�G���i|������cp&j)���ZAp��*��~q���oF<����u����NF#��C���W��������6�n�j	����X�meb�{j���N�x�)?�Y�/GWHD�a�&"�3Ap�8�0����x�5�V9����1�g��=�%w��Al��Z[s-��j����W�����o���H�YK��fp&j����� �8������V�e���Q���^����$����s��H�������g4l���q�8W��"���C'1f,���gp�dp&j����l �$�f�9#q�'p�Dm���q��?�������5'�����)b���J��������bL���U�Y�(0�i\��-����W+Q3�(�1��q�8����%r�yS`���b�����x-�D"���zG��v������c�"?tr��b���_�DDV����1%#�.�Xt�\,��~�?���0H�u�*�=>���DL��G��"�r��)w�� �9_�����-����W/Q#����5�d�����I/up�P�>���}{C&n�2e����@�p5������2\�K�Kg4H�Rx���`�RL{�:��9���������(��+Gp4'��0��x�]���%�����NX�I������6�����$�[���f��U��g4��r����TV���Qo	�-����pvap&j+���������o�;�g~}�0w�����O^��q�s ���I� �`�0���q�_?�8:5��D�TQ���s��tFc���h���^x��nprfp&jk����Ymr��
]^;�	Qg�Efy^�K���A��A��pO� ���m�	�O���T��g48+��
q�/
�&V@���l����!+�����u�.��1*H$�z�&���������"���\g�MN��A��!���fJ�?���������&(�����F�/����Y
4e���@�vv��qD�������ko�C� w����@�g�6����,�^�+��8���3y�8����2O-�f�~�=pO� �0w)p��&�d��cT�0��V{e�W.�M���W�2�>�B&!8�& sgx���3b���m�1���5Q��MDmBny!��'�LnBM`�O����(�6ly1Sz{t����?w������o
��$H%��S<��Ry�}e�xF����j-{�����d����>.���A*9�b�F�%f=�hr=D��1@Q�R����I5A9�2��%�l^"��\�^��;�`I�iV='���MHD"`��	�[`[��]��}]��I�� IDATQ��c�k�_�9sY9"�4�H�  �4]�5A�2.^�Nhz����D��=l�kP�F����6��Q������)���_)D"���0|�oSJ'�v�������g�k�(��K�	���(�*k����n���>�*��T���
��������l�,�onf��z����i�)�7=����>��"�����*%"������&$Y�<�:{��	�uZ��
S��;����%�&�#upD�G�ka9�=T������'D"��6�'�b��:� K
�@S��tN�o������i|\��b��c�P_���pu��1"�=��CD1�		�MH S�w-$'\]N����l�
7��0�&��FoO�];�Q����D"^<O�~�]�~?w��cB�yne�:��3_��?��6����u��wC`���A���^l�g���}�����g��<�������!�J��{wl��nn5O��Y���������1z�h������OC��a��9X�|9 ))	�'OF~~>��?�R�����>}:��������;w�K�.u^����o���Ei���M�V'��QH��]e�Yo�C�������������rN�!N+���ec�����`6M*���fE� ������(Q�e�=s�L,\���O7����c��5�H$X�l��Y�u��������c��;����5
�.]<��S����T*1d�DDD 44��-��%K0y�d��?���X�`���������D�����-���;�^C,���D�4d�����+��T�=U�9��;�q���������s��g�H8_^g�Nnb�{��"}p�/�aE��+��D���,@�}��HNN6j�����:�v����b�����d���+T*�?P�T���`������E�^�p��|����3f���^����^{
0q�D,\�� ����a���3A�z�H8��MH�S8{Br�k���{W���7���M���OE���l��'��u��<��Nxt��{�r��A����		�-f�����������1t�P�kJ�������@��c��!//nnn�H$�������H$puuE^^^�� "cE���tn�<��c�$2�yt��~��B�`��P������)���%�l�FFJ�?X��;b�L<2�A���^�&$D��X�5
����x�"������ L�0��E�^�����lZ �G/D"���s�D"���u���cn���(@AA����0�f�����{]�-��y�bo����7|=�Y�c0�k��kK�((�Y�j�B����������9���8wBA0?���A@�az��O=z�V	��I�W��j��M��n?x��[�k���1c���`$&&b��a�6m����?��k����������?���!�*�J����6--
���`��������j��H$F���K�TB�����u^�Vs�����s!!!>|��'�>5�-�wv�T���Nm���{Q��l+l'�o=�B�Z��=���J8c��������,��HL��
o��75������n?l}�-Zi������j���)S��G�����o��?x� ��[��{�������;v���IIIHHH�m���!C� !!III�����;�H�{���0�:&&���3�+&&�k�.�1"���5����y����
��b6���dx�:8�ynB�v������lL�����F�{j��Y�����{��������1oY@��DD�`���S�9��� �J��Pw�2e
�������R��+Wb��5���Dxx8��	7m����0L�4	����H$��a�au����c�����t�={6������������+�`�����Y�622�?�8T*<<<�c���D��������V�p�W�}��nX�w2�=���}�*7!��-����1���Z��Qa�to���������;rQVZ��s��`R����Nn-��"�f%LM6����������n�:$%%���������{p������E		����]�@[��� 8��;����_3N��������f�g��W��+�A�&~�^�b�V�}�N�jb����Tr���ZJ-?���s���,$�k��s���H�/����B�i�_�t�u���{=x�`�8q��c,.���O�� %%�6L�8�<�.]j����>tz���3��s+N�^2���{W<?`��1����MHZ�D��+�fF�oh/������O{�QUU��s�"}0z�������#����F����/C*�1���;��w�a����z*uU���x��mH,2���0,8v�"��hQt:y���L��:���*d�U!#�2������Q�o�������O)��R
?�
���pph��:#��n��7�s�~���D}�xx�&��F���*$"j�,
����:�o��A���^��/��'�x��j#"+(�*C������/�����7Jy;�
�����Z��:��luM ��G�V	u���W";�Zm�g�h���@����R|��P}=`+�R(k���q�X��>�UUz���_Gg��C��k��X���;&E������b4�����;w���SpvvF^^���M�B��`�������(�,6�G�v/^8�}B�<���jk�x��z���������\�ut�F������&U"5����D"�����p(����l?�>
i�C�%�b��@�jk����{�� ����|\A�����\.7�{���4��	�WJI&�?�������C�������
����]t���^X�*�A������J���*�S��h9�9��u���Z�����:w��oE����#�~�F�J)��pt�=����B&�����D&a�#����������@D�X�/_�����Z"�{���z�D�0�'��S�������M�:K���������~�����}�?���5�83�
�Y�]���<$F����X(�Rx�I1o��\��!#H%���z#7���������F�K��3�����y1G$���j���9���^�5������5��EL��sDD������X@YY0j�(���@.��s$5�?��a����M�����]�	�<��}������j����5�>�%<�$�0Y����|d?�N�u���_���P�����u6{Li�Y��uZ�Q����0���
%@����j��GY����U���������Z
���a���/`��m���A@vv6-Z������?�����V"�F��vo��#i����w���~��D�tp4
J"a�_����&��.�>�7��=�����*��EL�BQ����f����CG1:�tB���W�(��j�^g������n^��������5X��.]
�F��W��c�����b,]�,�������,������u'��D�y���];���1-�~���y,[]���L�W�2}���$��������_
��6��I$"�zF����V]i��Y��=������]Q�CVFu�%����U��n��/_	���������Ez���HHH0z��S�N��q#���p���HD@��_^:������B����B�l�,<��^��3�X�W�O�e�����(7���H��KM�9��V!���Ri�][���Nbu#���)p��5]����*I��v����^|���#"j&h�Oh��bx{{c���V+�����rD����NmGZY��~������x��VQ()�b�{jl~O�����Sv�����!�3[�L����rv5���uz��7�dx&"j^���Pl��
��O7j��};z��e�������"l8�5������"��"�����P�>V�v�F�m�3�.���pA2�9�_Gg�^��l'NNb<���aH�g"��eQ���a&L����7c���������������k������"��rY�<�:{bB����"�4�>�%>=������EbL	���@�Gw��TY���O����t�d��{�����^Qb���"��]�`bC���q�a���Q��(@���c8r���;A0v�X�9���#jSA���h����
������-��w���DT�G}�b"C�aI�������j�j����G�������S�y�����FK��zFa�:���?IDD�����G��#FX��6ou|4^;��V{��'s/�<�U�z?��}�����j��������JEr��u�;tc�s
�|F�������MD���(����
�����g�O�����I��ju��������x��4��f,��������j�&""j��ld��#F�6����a�m�1����KdV�� ���"��J*N/5�G*a�<_<�R����~4Q[�Md#Y���{��$��=���>��x�������b1��L,zU	����DDDm4��h�u��|������y&�����_�|]$�����)�5���54�
��K��3;���$�aB��?�{���~5�v���>�K^DH�&_����=a�&jf��/#|��W��w��Yp�wj���^�����"��\��>������}�X��D""������������)/0j�������R,4/�l�u2R+���4�����tr|WG<��3n�������������I�]��r�iO�~�2{��������&t������*l\��/7e���tp�=�����G�A$��DDDM�M�.$cT�|d������#��/@$!2t|��_T���og`�j�k�&��9a��@�7������������bA2F������M����sc�����5>{'%E�W���]�gV���^����������.^������e����������:|�1���#?Wk���R�E�*��Lo8::4�:DDDT?h"+I(L����Pkr����>���,����P[U�����X�*
Y�&�x�8b�K�:�29�3Qsc�&�������������^���=/Z�u:{�����iHM�4���]��/`�"?8��];Y�����R1*v~��<��8l��E�Y�p��|���T\�Pn��K�Z�@������/a"""[�w_�&�\��Q{�#�,��}f��i�����{[�����k��"<���-���c��EDDD��	�D�t�(
�b�!�,��}F�u�
�����^R�uGG�-����x��.�DDDv�M�I��;����yz���J�i�W(-�����Lo�x�?^���dM���������B���gRJ3���q?>�w����d��I�8x�?���B`���\Q��h"$g`dl��<��XD������zt�����f��x�KV"����j&"""�b�&j��%j�����%j��)�c�y�kf��^/���s���)�V�^�Y�����za�?:Y�n"""�.h�H)�����H.�0j�<[F��'/������eu���n�DDD�4Q=RK21*v�����U���#WB�P��H�V����`����^���j�R�1���uQ�`�&�CZiF����[��$U8bF�^+<�kt���lZ���r}��Ie"D>��� ^��p����>"""�*h"3r�1oO��<��(l��(<��};�����P�V�<���=��� v�C����DDD�4�	���Xzu����`<�}$>��Qx>_�UO'#�������+>����]
m���Q4O�DDD����n�Q��Q��k��	�F`���p�|��dV���R���B��xxI����xt��bN� ""j+��nR��!�(��}|�{�E��pKPY�������4�����,��0c��P����������D8{�l����w������|���#88���(((P3�t���P�T���/N�<i8&&&���FLL��=>>}���J�����!\l�5�}R��"<v>.��q]�������A�C��aL�)��<�dx���n8p�^z��3Qe�=s�L<x��m���9r$0r�H�]�p��$$$ !!QQQX�`��0�r�J;v�����+
�x�����2w�Z�^���LMMx�Xx��=��=���5�r�
��<�''\B���Z��z9a��^�l_/tq�U�DDDd6�w�}7<<<��bcc1c���3�g�C����!�0t�PB�V���C��������B�V�����
�H$������e�5�����a����P�l�>�C6\�US����p�?�����&���`����{���*&"""{��������P��D�P(���
HOOG``���R�Dzzz��J��V{c�q�/�Y�<��.������u0c�EI���q���xze �=mT-�-r��`bI�Hdq{c�aJTT����������:hK���&\��2j�E���8�,P;<������PvM��3)�^������_���w��{�~��^�5@���B�VC�P@�V���@�hpjj��_ZZ����T*�>9iii>|8�J%���j�o�5L�;w.���		�����������`T��Z�9 �J���2m�Q� �/�������.qqq��nGx���������fs�M���0���q����m�Ap��Q���B�P`���8|�0


PPP���c���P(���#�=
A�m�6�sYr
j�r�;����;������;tc�[�q�l?���`x&""j�l6=e����!77J�+W�����1i�$DGG�s�����o��?����Jgggl������+V`��!�W_}��`���1s�L���c���;v,X|
j�r�q_����l�.?�^Qs���H$��H_<�F �|��.����Z(�`j20���/��j���B��w��K0j���	�O���!������a����L����}��n?x�����������c�)D��WQ��{�����	��'�9 H���������`�lIDDD���U8��)����{g
.�����'O��Z
'g�1s�S@�$�S�DDD�0@S���)���yHn��|��?��j)�?����t�_��NUQk�Mm���tL�e1������_��M�0p�V|��o�h�
����5b��6'#���t�V�*(��5��`��Y�7#b��$Y���M���K����:w}�����W�Vb���pv�<g"""jhj�vo���3�W//G����
2�b[Q�G�Z���n�Q"�#\��Z���^R���W�7���qx���?��LDDDV�M-�D"���:�����Z�1��?0x�_�M�����Y"�#��*�5
���#���Q�5����~����DDDdU��*����*���FTuK6j��?<�!:J]lT!�|��Z��x���W��@��������'���P_�g"""j>��j�o1������� H�&��������l\���*���l@��?������|��LDDD��s��U��?z}_g���B���*"""����Z<A���{�N���BW��W���*"""j������������@��a������s��E�����T�]:6����W3WDDDD�4�h�v����������N&ta������}�j�t:�+P2�?u�gX6p���lP�g������H8_�*������'K�|�l�<(���Q{�M-�V+������b��Z�Nx��t�T�������3�4�H{�� 9���P����ko����
�K]DDDD�M-Nu��_O� ����=F����]��SeDDDD��}�5�I��<���T������D�<MHDDD����E���c��4�jDo��p�����N��`�������N�B���B��oh�8��z�B;VFDDDT��Z��r>^���Ec�6?l"T��v������hj1����lu5����Ech�$u���;N� IDAT����2"""���E����im�y(���F��0`&����T�1hj>_����j>�p��\|���;VFDDDd�����X���2P����N������(�SeDDDD�1@��m� ��(�e��>*<��~;UEDDDd4�UQ���f�"�<*B.�����!v��2""""����6�����j��5j��
��SUDDDD�1@���Uc��3Q6����vDX;l1��&""�������3P\Q��~0j��c,x��SUDDDDuc�&�������2Q2�?���eb)V�����������u(u(BQ�OF���NFPG���""""�4�\VF������@p�0�{�\�|�,;VFDDDT?h���o���SJ���������&�h��������l*#�;?�Fa���Xoh��)z?b�������E���aaa���7�L����
$%%���oGpp0}�QTUU*++����B�R���oGrr��<k���J�BHH:dh?x� BBB�R��v�ZC��kP�Y�F�.C3��Q��?	�Xj��������:==~�!N�8��g�B��a��X�l�,Y������#::
www$&&b��%X�l������c��;����'��N��N��SO=���������p��y0{
j)W*�kKv�-����U���""""���4h�Z���C��B��@�P���#�8q"`�����&t���b����'���� �������!����kW�T*?~���J�B�n� �J1y�d���B�����~UJ�N��{�Q��aO�A�"�)����%  K�.E����P(����A����
��T*����f�:00 �H������<����1����g�d}I���{{&
��5j��?pO� ;UEDDDd9��(((@ll,�������Gy������� �|�\�^����)QQQ���2�W��D�E�!A��A��chs��oo������[Y�u����~�^����v�?���v�
ooo��	��������j��H$HKK���?������T(�Jh�Z�����~����j���2{�[��;s�����`������h�.��������_�?���'��������^�����w��{�~��^�}
G���q��Qh4����������{�k�.@LL�����@LL`��]1bD""""�c�TVV"))				����0d�$$$ ))	UUU��c""" ��^�����RQ4�g�;���%r�k�<;VEDDD�8v���~;&N����O�>����;w.��[���{*�
yyy���DFF"//*�
����aY���0L�4	���3f6l��X�D����c������&M����00{
��������WP<��Q�������NU5�H05��
		����]F�1o�����w�nh�u���i�����������k?x���������h��<x0N�8a�1v�����?J���s(v����!s[|x&"""2��������p|,�p��!nA�o����������E��Jp��1��>o��f�"H���Q�1@S�xoE2
�5j������w�QQ]���bT�N
e1���(A�H^P�U\�h�SC���I�!J�S�&�����F�O�I���XFqh1"��1�|��T�0\����k��:u��������{1u�$�����H;�@���M,����(p[-���_�|X
Q[���J������=��>d"���K�����&�:}��zq���X����=�efEDDD�=l�Ik�x���(��_l?CL,$�����H��@��$�����aTw~��u����]H��v��&�B���P��$�����`j�M��������
4iE���H����T���B�|��Yihzn���?�%�����8z)��%������y����v������e�N�(#"""�����KU���}�Q6,C-�u�r���J�Q�aM����{����Z���+^�!QFDDDD��
45Ye���C�FE����N��tI536��d�o#���Z���
�aeDDDD���@S���Wc��hTu+T�t���i�MDDD�hj��{���j������eDDDD�2�@���J��>e7�a�*fTi�w���0+"""����4�52������B�N�eDDDD�r�@�F��TaS���n�*���Vz���DDD�1��&����[��*�b�c��@W_������Zhj���J|r?R-f^f� �IeDDDD���@S������e@�Z��I�C&�I�Q�cM�������gj1�RW���M���������e����>�-P��(���K����H"l��A����+����
o�
��(#""""������U]�U�:e��Y@��I�
4����;H4�J-6	���O�2""""�h����� �+T�z�/ j�kfDDDD$-6�T���W��%Q-��N����MDDDh�������6|�;H����@S��}�{dvUd��=�k�NeDDDD�:�I��>�����0�-f��56�N�.)""�6���999(--�:�v���W�^�w���!,,,������cM5���(��T��1x1
u%������������1
�L&u:�RQQ����FK�G�!''�~��q	�)�,���O�b��\����eDDD������g��l�%$����gO���
4�y���������X�X}}��5�g�i�\�A*�J���j��O���qX��\�������/c`E��F�������^��Q������~,Y�D�T$�iER���E�\�D�-+1��?,��k&""j.��L1����q��;��2jX~~>>��c��#�@uuu3e���@�f���:����3-%�����c���a���-[c��I���l���`�����G@@N�<	OOOX[[#99���5j1j�(\�~���777(
��rddd`��U����B���+puu�\.��u�T������%K������o7)���U4�����>}:lll`kk�3g�����������5��������o/�������\.GZZ�j?���������5���U���T888���
������A�:FG��u�T����#��@��r����H������1K8V��w
�q�BBB���?���k��?���{l��	6l���
���p���_�o��`��]		�R�DJJ
,,,�!C�@�T"""			���@rr2�J%RSS����~�:����.`�����%����		��I�p��5\�x�����	����	& <<p��qddd ##���X�x1����;���s��!99�����!^�x1"##U�;q��y��&���=�Z-fw����$������m���ppp�����	&@&�������(((���?����|�r���F��
6������[�`ddTc�			HHH���#���p��5ddd����M����III�?>�����uCll,���8r� 66s���L&������q��]������=z�@�������'N����(,,���#!��0g��}�v��D�����b�9��0::�}&""j/:u��i�:::�mTVVb��5?~<._���G��n�6k�,|��W022��������B��7��R��R���7T�]�.]Z���,����,���������#,X�_~��������P333��p�����_�~��s�����E�8�:�����=R�.����g����q�������������gee�����������?�ccc�����`���(..��_k�}�������DZZ�o�www�������������d�5���H@^^5zkU%��������e�S�NI�U�Q\\�njM�c�;���h-�611AQQ���
���x�%����-
p8��Q>���^qq1���Uc***����^[�t)-Z����;B!&&��9�����wo,_�pss������???���x:��{�n������TUU5��������{��8p�j;))IL�2E:T���
!����C�B�p�B��~��_����_,\�P�u\nn�6l�*�����Q���i+v�)tw:��o���8�Euu����
�~���)Pa�;���h-��r��F�E���AX�q(�~3e��6j\m�pvv��x�/����/�����U��_
;;;��������_~������!p��Y������>>>HHH@^^������������g���111j����/O�����������7F�iIDDD��e��[a��A�����N�%�}�v����������P]]�?��O��g�/��0e�������
�;w�g�}�����YWWW���k��G�'�|��s����'�<y2&O�X�jU����^�U>Vm���1����zA�����HOO�y���Z�V�@+
��������5b2�;w��u?AAA

�wqq����k�{��Y�1��{%��~J�Z���qx�-g������*hj�K�e�7�s�0�T?Q�u����b\�p������!l���/c`E�
L�G�O<�Ae�q/�����dHDDD��H~!5�Y�he��I�(�z���tMJ�lM�Z_#""""ul��1==��6A�O|��
��E��{F"""j�����r��D!��a<.-�:�&��a���ILL�K/������}>�T�@�sO��u�<��RV�/�j>�����Z�a)Q=�����]X��DOFXJT��k���@?����V��R6����{X���A~.y���Q}�K����](�*W��V�#4y�K���}ggg����������>}:JJJ�=��������`�_���c����G����;1q�D��w��'��7���8t�V�Z�'O�@�P   �FN���5j1j�(�3A��o�>,[����	���b������+��3�S�L����acc����f�e��s}:�l����y�v""������s�?4yB�w��z����~�����g�xzz"(([�l���~���$<3g�T�
���+�����`���AGG�G����g!���>��7o����\�t	����i��a��P*���ccc���$�������x���p���:�		AHHf���]�����������<==q��i�=����yp��������A�c��:�����2"""")���������g#%%���<x0�5��;w��������e��a��!���������HOO�<yK�.U��{��
�SPP���c����}����3�����5K�5gggXXX@GG
����
�y��n�z�`�s���<��N������&""j�~������/N�t�z�����\U�/��-[�K�.��O?Eii)����z���;�P(�P(����5k�`����|�2�=��WS�6Y���������z^l�;����#�m��>m�k�P�Ex�y�D�QK����p����0q�Ddee�fk?��s��[�na����p��?�s��x�t�����{���/��;v�����������,]�J�J����S���}�����C������M�
��k�;�L��.��f:V�=����k ��&p��������F�qiDO�q����:��9����n[[[DGG���^���5>��C��rL�4	���pss�t6y�����i����={�`���8�<BCC���sssxxx�������Wc���������.��[???,\�r�NNN���������+�-[���������m�����y�f������I��m���xO	
6���D��ILL��q��N�Zk����Gk����Wakk������z/u[��.��Cvv6^z�%\�|Y-^\\��]�B��K������/o�1�[II	��� ��p��A8p������"7���j�������/��=�@��.�O��6m�k�U�A���r������Fyy9��k�i������e��A�n��a������������u��{��?�<D������z�%��
�1���/o�3��7f�\�xQ�4��&"""jUz�`���H���w� """jf��Lz��h"""�fdhh�G������=����V��%DDDD����999x������[���
6�����������@5#}}}����y$&&�������%DDDDD`MDDDD�6�DDDDD���5��kW���H����W�^R�A-���XX�����8������x���F��E������y��6�����k����k�q�t��������Hl������4�*um�����)Pa�;��ca�;���h�Z�"B"""""
p	��@k���6l���.u:�e�
���
\\\�?���7���������<����

B���aoo���U[!���aee�\���4���&������077�B��B�@\\����7���
��
C||�)S��}������-��?������ZKznj���Jaii)233EYY����"==]��H�(<x�[�b���q�B��7��+WJ�=�S�N���T1|�pU���;vLL�4ITWW�3g�777Ir��������5�����\.JKKEVV�������-�.=���\���*����PX[[���t���P]�����t#%''���
���000��3+uZ��bcc��#G$���b�������Z������b��9��d���@~~>�����9S��V�����b�����+++$''7s��-fffprr���w������U�����������������-,,�-�=2�/��"���	�w����<=����/e��Eu���z��c���r����Z�����p����yn�s�����f�H�����d2	2��r��i���������s'����N�$�s��Y�x1233�T*aff�7�xk�^c��i��m^x��:���m��k-�����,,,p��m�vNN���'aF�m���w��x��W����>}����w��]���[�I���-����O�>������^}�U��rY�������MC@@�����n����T�6�FruuEFFn�����r<x���R�EZ��/����H��			������/������x����L��������"&&B�={&&&�?S���:��������������7o�DFF����J�4$�����akk��_]�����UkI�m�^���;vLX[[KKK&u:�E���B.��\.���T�}������VVV���K<z�H�L�)f��!���+����������������b��%���R�������K�=i��Z��=[���1u�T����&,--���CE\\��������;@888�#F�#F�c����n������6�DHDDDD�.� """"�h"""""
��&""""�h"""""
��&""""�h"�v��7�Dbb"�9����:������������6m��;w.����,X�+W�4)���D���Mz/Q[�����8w����q��)�3��1����m�������t�����������(���5)6�D����&"j�V�X�\����c�����������~��c7n��M�6�kkhh�W_}���q��!%%�����#G���	���(..4������p��5dggc��]��u+
���;|�������#0v��f�&��Z���	��������?���`��-7nN�>]����/������~��!���p��It�����>�l���k�LMM�����?��6mBTT-Z��]��o�������077G~~��`";\�pIDAT"�q����p�
�]�����9{�,�\�OOO(
DGG���[������������u����;w.v�����*��FD$�@�aJ�s��ENNLMMQRR!
��9###����Gjj*����!���q���Z_���@WW�������k��;�c��A�P@�T�g��|J"���3�DDm��
���Cq��xyy!>>J��F�<�S���+���?�����G���>}7n��������o�9���H����	www�_�����}�vS>*Q��h"�6������;ttt\�1e���w'N�2�AAAu���������3g�����C�����S�b�����������u�Vddd@�	&`��M��DD��L!�N��������"""""
��&""""�h"""""
��&""""�h"""""
��&""""�h"""""
��&""""�h"""""
��&""""�h"""""
��&""""���/�h���_�IEND�B`�
#84Alexander Korotkov
a.korotkov@postgrespro.ru
In reply to: Alexander Korotkov (#83)
2 attachment(s)
Re: Should we cacheline align PGXACT?

On Thu, Sep 21, 2017 at 12:08 PM, Alexander Korotkov <
a.korotkov@postgrespro.ru> wrote:

On Mon, Sep 18, 2017 at 12:41 PM, Daniel Gustafsson <daniel@yesql.se>
wrote:

On 16 Sep 2017, at 01:51, Alexander Korotkov <a.korotkov@postgrespro.ru>

wrote:

On Tue, Sep 5, 2017 at 2:47 PM, Daniel Gustafsson <daniel@yesql.se

<mailto:daniel@yesql.se>> wrote:

On 04 Apr 2017, at 14:58, David Steele <david@pgmasters.net <mailto:

david@pgmasters.net>> wrote:

On 4/4/17 8:55 AM, Alexander Korotkov wrote:

On Mon, Apr 3, 2017 at 9:58 PM, Andres Freund <andres@anarazel.de

<mailto:andres@anarazel.de>

I'm inclined to push this to the next CF, it seems we need a lot

more

benchmarking here.

No objections.

This submission has been moved to CF 2017-07.

This CF has now started (well, 201709 but that’s what was meant in

above), can

we reach closure on this patch in this CF?

During previous commitfest I come to doubts if this patch is really

needed when same effect could be achieved by another (perhaps random)
change of alignment. The thing I can do now is to retry my benchmark on
current master and check what effect this patch has now.

Considering this I’ll mark this as Waiting on Author, in case you come to
conclusion that another patch is required then we’ll bump to a return
status.

I've made some read-only benchmarking. There is clear win in this case.
The only point where median of master is higher than median of patched
version is 40 clients.

In this point observations are following:
master: 982432 939483 932075
pgxact-align: 913151 921300 938132
So, groups of observations form the overlapping ranges, and this anomaly
can be explained by statistical error.

I'm going to make some experiments with read-write and mixed workloads too.

I've made benchmarks with two more workloads.
scalability-rw.png – read-write tcpb-like workload (pgbench default)
scalability-rrw.png – 90% read-only transactions 10% read-write
transactions (-btpcb-like@1 -bselect-only@9)
It became clear that this patch causes regression. On pure read-write
workload, it's not so evident due to high variability of observations.
However, on mixed workload it's very clear regression.
I would be ridiculous to consider patch which improves read-only
performance but degrades read-write performance in nearly same degree.
Thus, this topic needs more investigation if it's possible to at least get
the same benefit on read-only workload without penalty on read-write
workload (ideally read-write workload should benefit too). I'm going to
mark this patch as "returned with feedback".

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

Attachments:

scalability-rw.pngimage/png; name=scalability-rw.pngDownload
�PNG


IHDR���KR[sBIT|d�	pHYs��~� IDATx���wXS���w�#		{� 
��8@��m�Q'UQ�{U[�@�8�m��A��]�����u��QG�8"���@>�?�qK �`E�����<��{�9����ON�=�GD�a�a�a4����0�0�0�	��a�a�X�0�0�0��h�a�a��@3�0�0L5��a�a�a���L�
>,x�y!  ��������x��y��l�����{?�DPP^�|���������s������C�a��a��~��z����-x<^� ���#G��P(���5���{����O���FFF���#bbb4��*999prrz�c���o���3f(-�����������}:u������w���c��~������������,���LLL��C������>T�������m�w�o||<�b1"##�eqqq�����z'yhj����������<<</^TZ������p��!��;s��5k�P'''���/J����P�N�Bxzz*�AFFaii	KKK)m���Kt��FFFpuu����*��Wc4�������>�L��<((O�<ALL��=���W�������o�����o���OOO���k��?���ct��	S�NE�^�����/^��}W���W��E�^���5C��m������_�n]���_)���s'\\\�Y����l_UyWiM��g�;/���6n��f��UH;p��m���/"--
�Z����C�i�����P{{{�Z�
�G��L&�7#F�����{/��Y��������s��];������������T�G.��O�>7n233��~��1��_TT�����"33�F�B�>}���W_}���<�|���]��]�����Ah��)RSS�|�r���������k�5U[��!������+V�a����1bw����W��������ex<�>}������k�����Qji}���v�
SSS��_��������c��I����@ ���7�={���������
���\Zaa!�
�@777��qC��=v�6l�@;;;�Y�F�zVVV�8q"���T����.�X,F�
0f������pss��```��� ��s�=�r[M�?eM�:���X�v-:�������@I����;���sss,_�\�|����h��	�B!����6�������_���+

���6��~^�v-,--acc��A�	kkk���������4\�|�z�R�Mi����077���#�����>&L���/���q��Y����������0~�x���k����4m�B��D����\l�������/�[��H$����R7�/^����]�vEJJJ�u�y�f��W�������4����8;;C,c��I�l2���L,Y��W��4�������	YYY�������Zm 2i�$t���^�x��m����	���������}����fff�<y2@�P`��e�J������a����	�����������@�:u�(�������b����r�
�|>D"Tz�Ue��1�����%K�c�<~���-��KL���a��\��I}��{�:;v�@���all�2=--
YYY:t(x<�����A��x��%�����ys�x<6)))x��
 ,,�f����1j�(l��
�?��K�,���!���www�
(�������~��x<l�����pvv\�|^^^011���._��tl#F����-�b1���.-<<M�4�H$B���q��].m��U����@ @���q��i��k����	�P+++�_�~��7���A$�C�x��!�����U�V�q��066FQQ��<�2��$I�Rrss���XJMM���[����������deeE������\
 ���""
$>�O���'�LFS�N�6m�QNN�����m�H.����7��������m+�)**��r9
<������(++����i��5���OYYYt��U""Z�x1���SDD��9s���[������.QZZ��y����r9�/^p����%&&r�8@�5""��S����������F�r[M�=�yxx����)44���=�����@�G����<�}�6�����4�7**��B!�<y����)>>�>|�r]������+����gI[[�.\H���A�������Q9BCC�M�6�g�8p m�����K������@������W_�L&�s�����=z���J�I�PH���T\\L���4m�4���'���RVV������������=Kw�����b�s�YZZ��#G���s1t�P������<���'SSS������b:y�$�����7o���e��\^���'>�OC�Qy��O�&333�y�&�d2�<y2�k��K@~~~���N111dnnN��W[�'N�����+�\.W�����)00�RRR���������[�M�6��������iSz��1�7�|C�{�V�}QQ5n���O�N999���O/^$"��[�R��u���g���M}�����"��y���!�@�������V������Oeu^zM�U��gggWi�>}���B!�D":}��RZ���i������CIII���E!!!�������@���2������+���4h�_���������daaA���DD���I��5��W�RQQ���O��IR(DDdffFQQQ���-[F"����>L���JyM�4�&O�����}����.]�Pjj*���Qjj*�D"��s'��r��w/�D"JII!""___8p ���Qaa!�;w���n��I�1m����R)�d2z�������W�����<}���J�;w�$"���l�r�
=~���������TXXH�V���u�RAA��Kyyy�������(�TJ�6m�^GDD����1��a=y��B]���Q���(66����Gm��U�k����m;j�(�|���ODD{���&M��,�����s�������������+�H($$�2335Z_UK(??�[v��I�J�DD4r�H�={��~Z�nM���Un����;v�X,��M����3��]���-����_�U�|��K��O�h�������95h��V�^�������d``��YXXp7���yyydiiI���M����999�����K����:t(��P(���H�������������6mW�����g\���+�@�T�n�h���S!�A��
�G�I�|�
�:;;�ttt��`��{��*�u��u��� �\�Q���N��5jDc��U�^Y�����:u* mmmrtt����������dnn��\�:u�
6p�=zD:::J���y���!:x� ���UzL�huu^>�����*�������JJ����HzzzJ���w/u����4�/M�!������O&&&���a�*��s�Nrtt��]u~��7���$mmm����_~��KS(�|�r���!mmm233�k��q�C��>}�PVV=y�����HOO���|C��y���K*��#*9�e�������������eK


�����x*��O,PZ���B����'O�����:u�
��i��-Z�������/]����...&[[[���T*��[�r������u���I$��T��������V�U��|>LMM������DEEA$q{��Abb"����5�����G6..u��U[����d2��������S��8t��;�T
\�rE}�����������@���M+�^������q�p���*�6l�0��{-[���7�����G�*��������Uz�����5o�<\�|
4��'P�~}\�~�K733���N��(������R���!����l�2����M�6U�K,+�D\�z�����d����y���5��g�)uG�lQQQ���#,,,`bb����
�.���(�g"##���k$$$��K����t>�333�z��[��u�P(0q�D�[�N�|UF$a���w�f����6�,Y���_G\\d2/^�N�:!//���qqq�J�*�X�.�R)�������-��<c���		���
�����Y���������\�fff���T���\n������:hR_�|��������v��Qa�;v`��a��x�������X<z������s'
q��}�^��-[�`��m��>
�{�n����{?���O044���3z���A�q#�Tv�VG�g����u
����W�SSS���
y���`���J�b\\P�^=����

���%���K.��[�"::������Bxx��rhiiA"�(�����<������[[[���
���U��jYNN���`kk�D�gNN6m�Tey$�R��5o�<��������=�7o���/������_�X���s�����)�������gpss�r������C�v�4*���=Z�h��� ��7�7o��1:88(=�T��8;;���[�l��������}�H���
���k5~�,==�������;�psss�����5����,T�����W�^���Cff&��_��q��$	���������9s`cc�2/ulmm��d���"55vvv�S���,��q��������	���W��������m
��S�V+��������CGG��Gzz��~�����*�H�����X�������[��y�������Sx��5\]]1f���>FU��]{�y�����;l��[�nEpp0�<y����>RRR�}geeq�/M��]�����s�0l�0��e�?�w��������CKK�������?��z���'\\\���mll������\#�����P(��E%�����#;;�����ri�������T�sZ�N��z����D"AZZ222*�!�H0�|�k1//�
Pr����DLLx<f��
����������7�={6�������
� "���)��_���`���O��
���4s#F8���x��!����t��
�;v���(,,������
�D�=z ::�v��\.�\.�����XP�G�HLL��?����dgg����
�g�dffBWWB��{�M�L���%��}�r��aX�l������#l���>�O�>�w�:�L��K��q��puu�r�j����@qq1>|��>�F����P�>}
��^�R���y�f��d2�>}Z#�>>>8u��L���6�/Faa!.^����p0@�zZZZ3f���+�u���W���U�/;;���000��k��w��J����0�8q�����d8w����!�J��������0��<x0BCCq��m`��y���������&&&HHH����q��m;vp��M�#:�d2 88���x��6n��v������d "��r�d2(
%_v8���$(
�^R�^�
�i��lll0g����B&����KJFW���������`��y���W��^�yHJJ�o�����\������Wz�������QXX@�kO�B�Q�Fa��YpuuE���1u�T�;Dt��
3g�DVV
�={�����U}�S�v�B�����u�i��x��	��9"��g��
�������<�D�S�N!::�5<{����(..������/�p�����I�&X�d	d2�9��w��_�~j����O___DGGc���(**����������666����1q�D���C.����J
		ATT�������@vv6?~�3g����044�����w#99ZZZ�C����8p """p��i��r�]����h����rW�S��>�|@R������A�\����\.=88��������6n�H�~^���4n�8���S�v���(>z��|}}����LMM�c��t��-n��������_Q�N�H$����W�|�BM�d�*((�����H$"�@@���J}�P���L&�#F�@  KKKZ�v����N�����������(�E�j����>�s��%'''233#�XL]�vUz�|]�������5��������N|>����K�������NR��D"���S�~�(++��T���J�t��)������RU������e�����I$�A"�<������s�N�:$������[���8@�������&M��]�����W�R���I,���9���RLL={����mK�����K����i�&rrr"�XL~~~J�V�_C�>�U��m�����{w�����I,Stt���}||*��J�c����������5m���cbb�w��djjJfff4e�"*���d����'sss2d�����!!!���oOB��LLL���������<��@��������%�XLfff��Wu������S�������d2ruu��gdd���������B!5i����\����H���dll���_������-[Tn_���������|>�����Y������J�@/\��$	��|ruuUz?����lll����<<<*��^�xA>>>d``@...������Su��x�"5k���B!5k�L��'55��
F���$��O�>\��������LLL�������OYYYt�����">����K��C�!266��
r/���4h@B����o��l��pey0�U2�������-[��K�.U����C4j�5��TN�P@[[111pppP���������:��������W���&�;wJ��>��1S;>���JC2�.���Q���#(,,Dzz:f����={����w���a�a��`4���?���[���=���C��c��X�j���*]w�����(i��Z��a�&�.�0�0S
��a�a�a����0�0S
,�f�2�#F��X,���X��X\\��������x<�>}���y��%x<���=������m��U��O�5))	����@ ���3k�{��w��g�u�����|bX�0eDFF���S�����k�*��={����D033C�>}��C-����F��T*�@ @��M������Y���AAAx��8���:`��-�T��/��sssdeea���U�g>�f��D"�P(�T*��������h���055E������c���<y�/��
�pvv��)S����;---n
j;;;,^�����B���!C������T����#wyxx����J�{���T*���1������qiiii������!�J�����Y,�f�2bbb���ccc��
6��'������8;;c��	*�-**�D"��������o�����/k�>����c����4l�������Le��1�5
�=BVV._���{������������?FRRZ�h���{s�>}���������[�����K�.�n�������������������[������S{�[��_�FVV~����������c��q��k���`dd��'r�N�4	zzzHJJ��={0a�n*v�����0�nR��V�^M���dddD#G����D�������S���������\�B�Z�"j��173��m������|>��S�BBB�������YCdmmM��mS[�W�^Q��=I,S��u�Y��l�B������E����h��J�O&���9s�A�����;<xPmzu����`>>>�`�j��5��|���+%''+�Q��N�:E��']]]���!cccj��1��Z6r�H���&[[[�?>�,�����_�~4d��y��*g��J���w����;	�B8p ���Qrr2������	��bj��-7�XY�-���'Qaa!�7�|CDDyyy���OiiiJu5o�<���"}}}266�I�&Q�,b�6m�z���H$��'�B�Py�QQQ��ysnV����J��l���$	�����e���k��%7���I�����K@����z�����#=|���t�Bb��\\\h�����)))��gO���E,P;[cYh��uT�N233��������f�$n��������� IDAT����0��� j����sG���\�����IOO��r9�\��lmm���������U������F���U�T����JII!����z��Q�>U��@��/��L�����uk�>}:���P�:u���KJ���daaA��o���&M��@  {{{Z�x1��o�>�S�eff��c�������ySi����]g���\�e2M�6�lll�����M�F2�L����{i������K|>�Z�hAO�>��+�����h�����@B����iCyyy$�H7�����+�Rz��%���$�PH���t��%.���d~~>
2�LMM����<==)11Q�s�6���H__������dF�A�q�O�>%]]]������������s�4{��+S9@35F*����7%&&R||<YXXP��M��?�$�LF;v��� "*�P355���*..��'O���)w���O��B��s�����!��y��Jn�����p�B*,,���244T
��j��=M�0�������[dnn�}`W6]t���211!�G:::�Q}$&&���>=|����������?~Lyyy�����\��F�|�DD��wo;v,���PRRyyy)}q)k������CG����b����(�����W�^Qjj*�����M���h��94n�8*,,���B�p���`������Q#"*��trr�-Zpi�_T�U�i�������SLL�����B�e���t����t���|F�Myyyt��m������7���+$��������J?���R�t�B������G999dooO��m#�\N7o�$333n^0`����_�E����:t���T���!ggg�>*��*N�]�=s��M�����W�RQQm����R)tI�R������X����G��������e���V�XA&&&j�*�b�
266&T�N�)��:r�Y[[s�����|�����������N�>]�v�BCCI[[��m�FEEE4�|�H$4q�D��dt��	��������w��]*..�;w������������@JII!
�4���,����5k�P~~>eee���W��h������MIII���j��-X��+Ge����@��Er��L���DDU^�'N$������"�t��d2�����SSSI$���;I.����{I$q_�*�O���P�=(77����������J�������������H__�P����/��z���+W*�kllL7n��?���������*��15�u�`j��)S`ee;;;�k����h��)�����O��u�{�n������ZZZ���+<==q��1�������t��
/^�������E����___���
� ..���X�j��I�=�v����������,[����Un#��1d�V���u���#���CCC8�o�����JJJ�������?�����������o�>���j�
_|����`hh�Q>S�N���-LMM��gO�����x��5bbb����v��q]�����������5j^�z����?>>>�:�9s�@$���;vT[���x��)RRR�����eK������������;w��7G��-���GGG�7���W�v���055���!�������#F@GG��5C�~�p��A���CX�t)�����Q#j|��g����)0}�t������+u6o��q�����������>�^���3u�TH$B[[x���r9Q�n]���3g222��Uf��9��������C������:����4i���{nYJJ�������H$����1c��			�D
�pqq����Ft��S�F�mmm���#..�-���>�u�===���:���ZZZh��1
�tm��g��A���gO���������amm��3g�������J�[�h,--aaa���+�/������-Z��������*��
�m��u��������h��5��������8;;c��������A�������0nu�I]]]����������F���!
�����0<<��������c���{whi��b999�KdggW��|,�fj�������a��999J�Q8p"���������?~-[����)D"�;���n_fffJS�q�.+!!����2�T��A�����"00�{���/�B����C�������s�?��s���={�p�5�3U�~���M���@.�����;�����7o�n#�H�����~��7�W��u�'''�\�R������������q������u���t��[������[
WWWxyyU��T����h������
��7o��u(�cLL�����{��Abb"����~���R���Z~������LLL��]�T���8�����^�z���KKK|�����,��x<4m�����KNNF�n�0q�D4�[nff���`����������!����������@VV222`hhX�/4������^GQQQ��h&&&		Q��D"�{��a���U���KKBB��uU�Z������P������L��L�)_��2����+���C��{w|��������Y����������?�'N��o��������RZ/++���4��`4�Q�H$:t������\��3������k$%%!##������D���iiiJ��cccagg�V�.**��7o*��JF����$:t���\���������V�k���yyy����b$''s����J$���#%%�;YYY�>�R~��LLL����k�����������O�V������9�[�n���>>>8q��]�����kT��rvv�����7o�`������?rss��n��	puu��'O�������
�q��I$���(�/rrr�i�&XXX@GGqqq�����C��lmm���VZ����+�9//O)(-_��Fdd$bbb���0{�l����t���TQQ�={��NOOG�n���W/��?_i���;sj����Vj�|��^�z!..���?~��ut��ml��
�
���S���D"Q���lmm��.{���]����000PY������[ZfM�����X�x1<x���/#<<;w�T�n�����y�y�*{-���q�V����QPP������O�<�����777��b�-@3���������(..�L&��s����Bp�����z�"�D���[c�����d�{�.�n��q{��a<~�
�����1c�6m
SSS��O�0>DXX���j���d2""" ���l�2p�VVVx��%
�����u���3����B�g��U�nP�&M����cHKKCbb"~��G��
���OAD
����V;\���v����
BOO���N�:���P�����?�qy���{7�������H
'���
�P>��G�a��M����GDGGc��]�������~�:>|mmm���AAA������c�������Czz:����n�:���(9o.\@ll,233�b�
��	c��AHH���@D���EDD����?~�3g����\�U����}�T���B���?����t�]��
6�s��JZ��w��6m����#((/^��3�V���<|�Pm���`��}J�M��v��������)p��5���d2���P�z�
7n�t=z�������FTT`��AX�l��������K���!/+�����0r�H��1			(..��+W��---��____DGGc���(**��������*��%�����_(..�P(�����k�lH�?u��>z���G~~>�r9v����r����/"77�-B��}!`ll��}�b��E�����K�p��Q:T�g�5@3�D��G�"88�H$�����P( ��O?a�������w/z����y����x��%lmm��O,Y�]�v�h�W�^���>�@ �� 9rD��111����q��mX[[��������`���=z4���`ll{{{.}��J~�m��`���(,,D��
!�������2t�Pxxx�����u�4M<y�]�t��G�V�0q�Dt��A���[�F~~>����aC�m}�i������������������
|>��M��}�```P�vk�����{!0f��*�D ������olmmamm���gs_~��_���X[[c���1b�����wo4o�M�4���F����+�����qc4o�\���,OOOl���'O�X,F�z��}�v��`��9077���5��y����j�Y�#G��n����)S0e�.����

UjE,m�wqq���W�i�������o�<�m�R)������qqqh���;9��7b��EX�t)����;����0a����{�n,X�@���<�@�S�N!,,���pvv���g,���'7nwww4k�,���P���f�����������={6
���0�|�i�"�H�o=Pr���kaff���W#<<���U�)11����P(D�
����N��'"�������[����s�\777���`��!���Dvv�����7"??���4h6m��Z�? �����0�h$>>��+W>tQ�yGX�0�0�0���p0���\�x�?h����k�a�-��0�0�0��Z��a�a�X�0�0�0��h�a�a��@3�0�0L5��a�a�a����0�0S
,�f�a�a�j`4�0�0�T��a�a�X�0�0�0��h�a�a���]���H$B�z�>t1��$77�����{�������O;���r�_�|����jm�h5���p���]�=9w�:t������G��Z���������'��������.�0�0S
,�f�a�a�j`4�0�0�T��a�a�X�0�0�0��h�a�a��@3�0�0L5��a�a�a��M��0���w&��������z�;���K�0�vX4�0�^�li=�*���3@�����D�0o��@3��2i�L~~Iy��22C_�N050��������W�
=y�=ttx��T�0��h�a�Z�����V���
��Bn����aN����|x��;��5����G�S��t���0����M�u�`��%�����k!J�3��t-�on�@%�������M�s�����(,T��R1�.|J��X�0S��2����J�Yys�eY��Do���������d"��Cx������8�+����XB�a�Vi7����i�.�0����g*�<�'+.���g0����T�{x'�f����L����.���8v ZZ@�6t�e��=�p�oX��eF���b���s)Ir����������Tn�oh}X�0S+$��j�^b^J
��zb���8�oW2H��)����t��~1�/fc�71��b�N=�����Zj}K�|��������"�AqZ��y���{����`4�0L� ��k����K��?�D5\��e�acp<v�'��#c�|���X����tq:,g���������h��}��k_�D���bt�%F��"L��S�T�pm)M[o�j%��u�S�P��#�F��kr��lhg	P?�����`4�0�G�un
�<8���QI������7P��{��@���������b��xwb�j)65������#,���C�^�P(�����������/3�G����������A�N=���SI��fb����C<�a�k�j����"2?;���'@zE��8���k��AUa4�0�G�IF,>����	o�������a���X�~��V5X�
���|� 	���j;�b�j):|.�><GL�����-�h!��exS��ai8�[:��eA.W��]TD��G&.���o���K#C��tM��1���I+���q��D����`f�3�������?X��"*l+G��A��s��.�;�h�a����7�3b��������� ROK"}>��[/��E\H�+[M���}������.�����1xp[uK�����V�>�,��]�V';�>�M����6��*���8��s�H+R�]��|D�{�M�� ��{�����m����X���`���i+tM����`UAq���J[��d�������V���I�Bl |������a�#t2�*��
r�����J�bC��8w�y)�62G_�N0�5��[;|c+
��*����+���	�t��������\����S�G���1a��Z������|��w�����d����p&,��o��J����d��=}Zw6A�^���Ck;�wR6���z
6���/�������tuy�\��s+=������Bzz���um1HS,�f�����>��g�P�P�
t�������Q����s4�:u����p5��R���?�t� ,��M������W1�~A,��[����<L����v05�}�|�����W;!��	1�;G������t��-
7"��v�(, �;��s�2�@�����S���L���Q�����^'��
��"�*[�K_W�J\�j��A��h�a����w���?VX>��,��X��bCS'���������Z��1��zxz
�t\����*[F��_a�Q�f�����0c����|u\1z�!F��EF���g����q���d�o��w3�n�b]P<�����G���:�@���7��/��c�����I�q���kI�#+#3���6���q�;�0�G@A
����B��?���[N��EI[K��������+��Jy��1��z�U>lP2��/��B����u�k��s��B�����|���<��.z�����z�'f�)D�Tk�;V�]#1�{C�0��<��cB��8�)o�l�L�)�)0u��dW��7}�������t����PG}�:�����0�����0����>��\WK;:/�@�no�_���~��'�fD~�����*S1V���#��������Y�����Y�u��>����0k�|>}�]�����9���:X��#�����������v��\NI��#i���&-��0{�����'�`��V|��o�*-��W�v&�n�dS8�m�,K�{dv���B���0T�<���qW���u�p����E�������P��$��U��zR)�If,:�o,�����VS ����p�DV��U;������1��F��Px<�72B�FF�8�)I�8��?~K��S���S�q��u%���L����CQQ%S+��3e1S��H��
IJ�>�g��\>�/��I�M���x�i�z���d�����0Hr~:zFL��7��[�"��OhV�>���42��n����3L>��r�(��|��_^�,������O�YC`������geu���0`�%���,�W�d��l�iHJP�m�����LY����g2��Li���>Vn�[+�g��!���lJ�V��7bPmoy.�h�a��E�+��M���X��u��8�s=����H�=���M3����|��R���7��x������9.MO���5�f57���d`���~bt��6���?sq&,�K���zUX�3S����V��������.�vJz"����J��{�4���D5�v�!�a�Z�NJ4��� ��pO�,\��N������>|�b`�nsz��(�U���2�G��k^�=�3�I>���y<�������iA$��lx:N�����L�����c�Z��J��:��T�b6w��=��D���������H"�<m|�������Q8�a��s�n����T�;�����?�x�\J�_�G��a0c&�'���
~Rw�~�nL�R��*�}�`�m��F�6vA�a��R��eSp<.��x��dj��S�k}����}M1l��*���������Z��{���h�a�����?�6Y���N_:wG��:��k����������m����Tm����_C/�b���������XmA IDATw�ff�O�1_���a�g��RW�:��
��}��k@���`>I1�d�S����N�����&������
��������a�=�t��<1Wi�m��xvv�z�5����p�x:z6���#�!1^yX:�x	������#`��<VrnQ>�G�����x���F�Y�|`i=���
�������653��PP��T�h��}tuy���.�jw��qW�����6����c�X���h�a�DDX�	S.�Rz2V����mf@�W����7r��F�>���*K'0����8��9v���?�����q��$�E����X�&J��������_�A���<�'����u|�{.��Y�M��T�j��������r�7��
��'.��X�0SC�En9�onUZ���Fh� |�4�F��}.��A���������������68��)�~c�
K�"��t�l��a�n%�
9������P\O�_ce�Mz
6����G������@(R�}�f.���7.U<����C����~����"pJ�����,��������~�4���aj@�\�������SZn�c�#�k1������������z��RU��E�9N=n�yk!2��}D����n�p���������hsx���r����jFL����6����}w_sG��J��$����oIR�'��*�y�~����X��v�{.u��)��iu��hm��KT��[=r�HXZZ�Q�F�����
ZZZ�q����+V�@�z�P�~}�8q�[�����~���W�V�\�-�����������+((���?���ooo�|��f�a�O^�,��MB��J��Lp�w|�mk$���blZ�
����u���+>����	��t��]��w�zd
{��|�=�v
���X)MA
�xg����������7��l��W�sO�:��	��<G������C����~�����=�w����K�}#������Ae�[=|�p�������5������}{�����]�E�}q��3CwIHK������]�k����.�����[��u���NB@����,�����y|�9o�Yf�����������w�p��%L�<"�"�S�L������{=z��g��5o�<��9���000�����Lw��
���a����7o�|^0!D)�>�j��?n��db�D�����"���x��x�����p��n�`Z��#�������1�r����}�k�������x���a�c'���;u�����O��+�N%
9tt�~�SU��vpk$Fu���(�%������7O���y�mP��N!G�/~	�x���
s���l�Gn���[�������Q���2��;w�����������������ppp���=TUU1x�`�;w�7n����F����gs�5j�(��p��uj)DH%�k�q�]�*��������i7���g�up��^8�~�y��
ba��
����h�I�����H]�:�����Z[�ns���Q��@��t�D�S��xf���'����~�>�JD��o��U�V9$���31��;[����FO+�u�9�_}ni��e���2Q�{���h��i�cKKK���������G�}}}��CCCs����CLL��i�UB*��.	sF�}u�������%�H��-K ��<�%���b�y�L�8��$�����b��*=QE�8��c�;7s>	r����["����.>���u���1y�%FN5��z�^+�b����Gb��Lw����<}����V�`�E���m�����Soo�~�v�������b�>tX1�����1o[�\�F
k�8T���D������
>y0�R��B�q�b�z1��
��k�*���;�s�N@\\�����6)������]��U�TU��������������� �m/$���x���o&?�y��@E���D�64��>x����������N (�����M\
|��L{��~c���w|�����*�~)�1-U�����!z����#�����0�������/�`��$�xuWay���)����X��J���x�=y���rmii������!!!������������P(�@ `��9���%�B!dJIrL�0&L8;;�m��e�
�������w��&��W��GR��r��_���������$�
�a�Y+�Q�F~�W�p
��g{���^����dq6���~ ��Y������;����g}�Y���A��M���tt�����P��{��|d����a�$seT6����<�[�=�+��Y�?s�����W/;v���/�4i�����������c���W/p�v�����������w������?����puuU��B��Y����R	:_F��#2�g���`xl�����<�}R8�u��C����M&����p�RSf�����w�Gl~y"1�������?����PQa?����M�"��r�,���������s��=���=��:�����*z�����w��!���Btt4,--�|�r���FTT�w����������U�
��5kB `��������o���;w�H$���cQ�V-���k1x�`,Z�
4������
#F����

q��1y�dB��HIa����>khrPS���8���q�x�����e�x<��K���(���dO&�P��������|�}���e?��|������q������xv���^��u�`%�:F��o/~}KoC�PZ��&������������1rP`����q��VCS�� :RZ���!
����o����s�&~���{f�k���+F�����BR�t���:Z�������PK�9;;���[�i9Q��>R���	�v~���8���������!���k�q��u&��W���k���m	��:�P�N5^�N(��� �	!�xk
n�Z��cn���T{ ��|��10�4B?{W���I>��;��I}�e�x����km0����
���"~���b���-^?�����B�*F��������A�s��7�[�PX>%�������G�-JY�A!������0u�e��	��~~���Y_M�zn-��3 �*����A^��,q��V�j��j��A(a�������Vc���������b��]��������������%b1�9�3�G�!=�J_��z� f�s�ZW��sxJ4�?db#*Q����	!�4D��Y>��Q
���"(��X}��S����4��a�ZXh��B�?P[�%	��#!V������8������c��u8��������E�X�x;`��8����5��x�5�ka�����t���h|����g�an)�w�mW��b��p&������X�s���D�?i=#'�5vT`F�GhBH�$�H�p�'�|�������C���D^^�E�r����Le�5@u}[�������CR �0fF��`6�2��.�p��
L�����}u�e��������o	kms����F�6����1��������q?�N�50}�/����g)���[O9�����$���cn�9��X����=�����3��+��g����
���(\;��~^bY��s�D�C��#:=���`Zw�#u��UT}��"89��m���/c��2��y(�j:��i]s�oks����PM�\\�t1���u�Soo|�(�������c��v�q��3$923��>����/;���;A�PE����W1>x+�������Y�)
�	!N�:VN`b��hc����!���.�E��m)���%�v�Z*%���I�J-�9�3���$SN�CK�[]���^g����i3�j)���I����a~�q^�E0+K�����e
n���
MeR�
����Q2��i�M+^�s��Kww�j
3M�-%++4�&�T("��#���,�����a�!�bM�;�sco,c�Q�{b{��P�����0�,���S�ix��w��L|��C�;�����Z�����6�o�mm3Xh������b�p��F�w��`�9gl^�?W�2�n����4�q�	F&�J���z.�7��=��*?�U��%���%&V�&��OBH��s]��g�$/�d;��_-������U&>����a��_�Tf��]1��z��2�G�����!6#���s�%E�sR82�Y�[�L���'>���V�f��6�`��Z�Z�6�f��6�
_�D���v����������ba#�����qp_e��u51o�'��J�>�JD��o���3j��*����	��Q���s\	~�/i����T�����3R@B*�������`&���>�L�R���1����_b�8lj����.�\++Cu=x4��m� ����m���%bD��"0)Ay�y��
�K��P,B@b(Cq+���v����	x�����e�M�� c�9i`bo�~�.P�9����}�6��������i?���=�v���=�8��|c�CGh���b��R!����>�B��5������vE(K$����q��"W�	���
r�T�9WVe�����:_5��max�Z�0�2F3��2�%	b�r��I�J
����HQ�D`R3S
8s��%b��D~s?�g{0�� ��N�����p�I�<���s�i�b�<�U���V��X�2�a�l���_���Y��{���x��U�����4!�BX??~��~�v���L���&g�b��y������h�d��ho��Ts��8��"�q�\{ ���DDj4�4�������M��`��c
}�T���IW)��H��ju>�W�9)AIL
CLzB�r��.��i�p���T�F&*��V����[���[W����Tl<�]�x/������l��k��]���/�������^�*Z��S`F�E�a��r���x���Lc��}�}K;*-=����_�3�*�8��w44�^��)Cu�R\�����tP������Y���i����
���S������_��
���C�z�X:9YY��.������o���s������e`�(����*���2\���}c�s�
]��-4�&��k��Y2�y,m���W������0�>���g���v8��k�=���^�����A[E5
�Q�������l|yK�R��c���!����3a�U���~g�j540���#�+�>��_�7���Zw�>��!++��9!NZ����s��Q��{�O	!����
w���l�5�$��kK� 2L:x�8`�A�[��������������.a���2���&�q��n<�B��0��@���]�|/���������R����.�<�����.��"�u���m�D")�hRT��C���F�+v�s���[���}%��4!����H�co��4�.-e�hW?��e���}Z{�&��{�\z��-��HQ%e����&4�k���,�\,��p�N-��^���9��>��i�B�&�r�|vm`���v��8we$_b��|.0����9/@B����,���6X��&�/���76=���|�|<��VBG�����Y��
��L����W��}Q�H���u�/���q7�#*-Nf��R��c�Ax��/�'�������;��d|0)TAu�f��X���R�=���WH���S��b`��
�H9P
4!���%�;�I	��j�j6r����u���7�z����r>��B&����[�DDb��;�%��!!������?8p��N�[�>�Z��k���m���>����x�,}\�`�)'��(��z]V��� >VZv�]��C��_��#�Fo�6�S�VP6���@B��}�����D&6��N�4�?��]"R�K��|r��,t��}r[��y|L��#�=U�����DL��Z�#��$�t1���uP�:��#:2�����]��aM��������}�u���&L�_��2����9/@B����X?�]��y{=��fV�1�jE��c�Y�]SM#����{�@M��O��G���0��'��8C��9i����p�a����$X0����#+K\�����q���0&���>���u�9���,<d�a�NVM����4!�����}�/23�]t��_��*��q%�A��������k��JH~m�6��AG���th	���H���I�<�>�/��:��8�����l;�5�:}@LTVGVna��=2_�sUUl8Py��s���<��<��hM)G~[��R���?�an�V�1k������~����)�%�	)�
_�#�n�I���^f{TZ��X��g��M�_g(���*k�~���G�#�D�m�^�li��$+K���}+}�3�]�v%�!��R4�&��O�$b�:��j��F�5����naY��.8�W����X�d"6r+�d	�KmS�����z��c������ap��	I�%�vd��j��
�e3�sz��j����9} ��9�����$&6k�u��1+�#>� �H�|�9�zgeDhB��KJb�H?���mVU+�,x�8�����01cu}<x;�.�h�.��v�G]�"�q�zIZ�8��������k��nE~{u���	�+%.��Y_g���m�7�qPG��~��q��������>&��\u�9�w����,@B�����	d{���W
z���g$��Ew$eI���9>�u�D}g�����&��	�(��@
�\������f�Rf{XJ�^]�.�L�w\`����D�����)�E>f�bK�fXp�P�s�W�>x������0���3R>4�&�(���cpj{�x�t3���_��"���.�o��cc��h[����$����,q��f���6:�2���<F������V�f�������l�=V������*����,1f�E\[���QG�T����'v�jJ]���4!DiEEdb�&�XSs~�.������R�}&6�zOL��c��HHi�8���������pT�u<���|/��n����7�a�Z��)|	$8�#�Bw��uI0��c��g��F�V����P,�Q�KL�&��4!D)I$����*�������F��'|�`��}L��imlm3�j�I�����UM������j�Df���p�������d�Y..����U]�������eS�������G���"*p����b�{�u��:���y����?Dd�t�)]U-��k����
�	!J���H����f��B�Z��2�n7�31sMc���j|�2����T���{n���k`�e"����wP�� �z��X��0�v�X������x]���a~���)�G����8�%�W�(�!�=��{6�P�������9G����u��@]A�(/@B�N�O��fb�Z�`����
E������HJ'��T�W��:)O8�� �Nx7�$f�>���Ie`����l0�=,�,_�t�8HIj�� SS�8{(c�~D3��X�s^<L*��_�E(���=�x��G�*m�3�=�\�� ��Q0@R�N��fO���[�8����5�i����Z�<l<�>_�C=K$����������@S�:e�/!�����
-f����ha^_f�oB����/�CHrd��-p���2��������VY���F���F	qpK4{W���$��i�znE�uI0���_�l�&�+g�s����1w2�t���y=f��hMH)�5����#�LAR�{��r	I��A���Z�2�n������v��%������[�s�o���gLlr��S�w��H�"�1r�W��a��2�h�l?��:j��/"K$,��5��6�b�f[�j+;uLYh�K�����u��nS����}������X�%z�����a��}e%e���8l���o�I=d�<�l�w���
<�����	)e9Wrf��EB��H�|U��X�������O���U����$lY��:�1@���a���7��9��Z[4���e�#!���8���=m[c��?���)H -�H�a���p������-~���13d��q�Z
�P�������[���p.��ERB�
�>K��g)�e�g4s�C�a����:��vD���=W1�F IDATW��J^��Bp/�%��������^C��
�����2�g��
���_��qNA�)���G�A�����T�wV+�����7�|�&f�m����B�O�H�`���-m<�`�~�T�)��]�?\�N��kK�S�������U���(��rB���PU-x�)��%`��O���)~����b��).p���S������U*o�s��>��������e!{@R��k~����{�q��r�H�y���@_vq���
������� S,�M�!P���
��MHE�R�&������=`�&[�{��j���o�C$.�6tj�<t�g�m���(����G�v�(�cdF�����>�hj�����!�g���K���[�<c�~h�'��Wf�D��]}�:@RN��@�^��.��i�r�H�������IOC~2E�����Q&^����h&��v����z��I�2�������z
����������w�����x��T�[W_�An�8|��5��z���Y��	q"��C��C��X���oR
���n_���5l�s��z�4����^�+���'��W�@��
�H����2P�[���}.W���Blt<�~bb6����Ff_�D���<�(�����`$;v)�<	)/L4��u)n����F�2�_D{���1���1����d�-�0~��yQ�����Uai�V��aA���6���F����cm(��2
���"B3�>���U1W��CT��#���^�m�����l�@R�B�����}B�<�q1w����H$X8��������9@K[v��?�����3�������)e�+!�M��x<� 6����v�?��G�c���K��MO���g���.�z��	%����&f�����[�&�����9
�oR��#�l�cH��8�3�����(J0s�l���#T��#M�����21���m4���R��3�w�}����0N����$��������r8�?
W��2��-Q��+^�O1��&&��g�CV��+xioB*;O����b�CG������0�c����*�|�_���y3���G��X��������q\Z����.�j��Wp�p���CzZ�
�N���IX>5m����0�����F�����	8�����}��:��m��y�r+4mKu�9�	�������U4����3*hMH)��c�9�����^�X7	8�#Fv���3�1{�5��+�����t�����6���E�5����1��D��'mM�����{�B��B��;����}0��Zx��+}��|�9&]��e��#K$�������%H��*�=����I"\=�s��p�j�����$�v.���A[�����{�1����]\I"�`����|���-���8#t�t�������E�{�/�������Q��!�h��<�����~{��$�x�A<Lv������w-�;����-��B$�`�(?$'I��<l<���CjV:\���|��:�@MC{��KHE���	^�x�^��g��&�v���g����.p���W�*O�|�g?V�g��Jn���w5�*Tx��Z*��)@��<||��7��+�pB>8Q��	�!�����8vQ##u88j���T$��Bb��2���
����P�+�VV����.�>�zeS����Rr|W$��
A��~@ �����X��2`�isMc���q�v�5? b�o���Dx��4~���65��BNr��!L����
6�wf��H$s^D{3���B/��e�&!�*_��`�S����W1>E:N	2D��K=���
>������0o����M�|��cS��W�������c��zFN
�������	������lJ������m����b�7��.��V������~{`���F��E�����Cf��fbL��S��pK���l^��Zw���I�2�nxy@�f��];,tq+�	�lt����������aV����9���[:��{���T4�&���#31���"��mf������������o���a"�xD���4��+�w�&�[�W�|��+�)��t1f
�EV��>\�P��{dW�tlab�����2�8z�"�4�ji?�P��w|e�*������x��U��/T�AH	de�1u�Bb3�����%6�t/�XSM#\����.���;�q�F:�L�F��B����brk�E��A[��v��� ���������b��V����+ �t�m����]7AG����"o��]1�����w��!h�E��j!K,D�8�������-D�(3OL����e!C��<�g!+����3DYy��~�ta�2����T.�o�r�i��?]�w��]���US�k��QQ���X����$"f�1���5�|���V~s�����S]6`��
���_�
|1bF��0z�����D���Dl:��M�_��{��gs8�;�]��W�3����;�V���p��T���K��T��z�h4�o/t�y
��v����PG���(�X4j�����_��+G�JQ�B����F8wSP6��%�;�9�D �����l[�h,���)�y�<>~k5��������b�����@�����-~[����`�/���~L�����n���1F][�qL���?��5�%%�,,l��eM&B���	R��bY��X�H���[ca��_�G(����r�H�]
~��<+���h��m[�%T�hB�����X8��L� n�)f[��XP���0��pXk�a��%�������D��0��^�D"���!�})9��A�+gVK� "D��8X��t����O���:���]1��p��IHe�q�����q��&"R�a�i�~�������Fn�%X�p���[����/<c���`UA�/�=�Z{h��+(����@RL��Y�����BD�>��t`�%����+��	�����O���d���F��_!�����|����_��=_ �(����E��#���q�-�C�5��t�����54�����pB��P]n5��v*/�g �K��&��K�0��?��[e3�1"5�n�V��KyH�H���[Ll�~.6@RB���",(	].#��]�kSKw8�[��9Z����~{`���]�0|���UCrc�)bx�}��>��)����/"4K&�3��u51s�{�����21
����*B)�����v�PL������G�1��3�7����
�N9��t
�"��K[�4�����'@R�����	��@B����^vm0�F�Ry'}���MLk3�,�D��
i�?0���c���+������Hb�sGBb��I��*�M���&}��MO@���HJ�sx|����:fr��R�	��0G�"��L��	�.t��
��R�*���7�9w�������)�����kC8�j��u��s��jaG�E�Zj`�a�k����];&�%HG������]~�KxFw���3��.����{����kf�r�X��W�?1�����s����\�$�T\*|t\	�<w�R�iym1�b�3S���
���;Q���AhB���M
<�~��?
�	[���u	L4J�y5U�q��'�����#b�a�����J�}�E���k||�R�����T�����4m���3����[p-�W�/~����s$�TN�6��b&{�k��QPF�s��m]���n��++@�
	qBL����T1R��Br���)u��M�2{~>��M-����,���|��������WR|���o�7��)b�|'�df��>�������c�>�x����\��W��c���������ABH�_�z��bb������7
�H�$�L�����M�GhB�B$�`�0_�g@������j�5��K�ir�ez��8�y-���"�5o�x��9��xf�k�?cT���*]����!x�����|�,��y?��n�b���UuYU��\�$�T�ag����a�IDum1��R�����x�O���oU�
V�����7@��.
�����pb�?����V�'��+��;�o5W\��
��l���/���w�'{����t��
����V���K�O���� #�&]�Kj,\���W���d����.!��T�4�.�%L�Sbf������+����v��U�BeChB
q�L�\�=Lj}�5?2��7���&���W3����/��Vp�q��2�8�AW��lK���A>�3�I�e3q&9I�9#� �3���
Vn��-��ea��yN�d���f��*��!$G7���T{ ������TPF��.��	��Ll�3�~.	@R���32{��L�p��9�loe���G("5�������ffu�xxj4%���k�h�*{e���(���O�%�zN�g"��-Y�������Yw7���Vw5�'����f���o��~�Z����B�(���ABfr�c
t�j����?@�OR���z#%Y� ��@�*]�DWU��/����Y����>�����]�x�0
c�C��>b����e���6-BVV����z.'vab#6C�N�R�]��`����>��M����R��B�BSE:�� �{xLz�n,�X���e���y���.��b.�FhB��%�=��������e�6����6:�.wu������3q�D���A`�38��6kj0��b`��P���|�P���X0��V]s=����������2���V��Nk ���8!D�U���M&1�+����
���D���r�=j8u�(1@������v.���������;c�SWE�V(���3�k��2m�<���/Q�8���������q2z5x���"!����D"��q�����U6r��f�����H�4Yy-���T�
0�7�B�ev�hi�.�������T���1��I�]�jVCcgfT1������7�-
�4R�W�I�V�����<E��MS������!`�����������F�{�L��6q�)b,��I�����8��n��cb��Y�N#m�W\���4���e�k�X��"���������
��JWGMe`����e*0������p���k����!f�E�E��O@d����=��+}��^vmq���Uo�=G�3n�n��o��c�U���C�:�p�R������a��@&���6~�W@���I�������>
�`�C�b�*B)6:�����������G��Q�z������yO����W4�&�^J�[���}�+��)R?c��U8�UuQDz����6����|��~�@�Sc�/������e�=4������,����� =�]�%/�P��#���"�p���������l���(������%V���B�"
q��:1�M/�f�SeTz����l-eS���Tj�c?!,0�WAh���I$�������^�w��A��L<2-�g'���w1�����zM�e�?�G������)2�`�g(^<Lfb�~��M��Ee��<����1���mp��*�8z�!�(�������MscH0��R���~�Oy��8�s�������Fn�dc��E�*UP�v��Xll,:v�GGGt��qq���%	�M���[��?�=f���ptt���#���������L�6-wBTa�A�\��B��#z�AH4�])���8�q%����J�����r����.��*LG������$�5p�n-����|�������kT�����8���fMr��O�����I+��Z8�u#��d���h����~93;$%Sn��]�����'�H��?�V�Do���K����z����t����D�������������p��E������;w���I�W�bcc�|�r<z��?����s��&M���;s��y������W��a~P�����������ljV�wj�F]��CWcv��L\,c�mOx<�|0c����
+;�B�T8����8�Y��q6b3r�s�p��j8����BH�iW����-AO�]�Q�K������<�Z{h��+(��Gn���[������;w�F��5
g�����9��i�����Gxx8._���;������#.]����p$&&�Y�f�8#G�d�U�s��-8 ���.;�a��l�XG���Rg��+]<��f�����L���0��B�3����yY�G�>n�T3�Y�B"����r��e����a���,�� ������I�o������D`b��2�>���8������s�Rh1bdd$����077��/�+�������*w?KKK���~5nii)��s��+-U�������X������!HK�����ui����X{Nw�M{���Ut�g
b����+������������.�7���9}��7{@��h8��^!��%5�*tXu��n\bf
F__
����������He�>��1Gk��
���Q�%�
�7�8������s'v��	������W��A��D�Z#�����a|�s�2�d��j�>O��G�	�1m��~���=�%�����D�CC��z,T��a,���T������7>w������X���f�f�Q*�p����z9%���L�����+�����L�bk�������|z9���Bve�������j�p��me#��W�������077Gxx8�T���dii��`�$���XXX������			A��maii��������0a&L�pvvF��mK��e���p<���8��;$�e�T�T����?�93�i�sb{�8?
�s�!�Qp��s�6��i�d���%��)��	�9���*z6�_�g�;�H�����������Z����yyy��x%B?����?�6�6�=�+��%��G_���C��J�R���$���{&���$8��((#�����B�O���+��������w���� �H���C�������;w��+W���8\�r�;w���9ttt���CH$8p�9WA�A*�G���{`�c�v�Ge�����M-�������Z�N�=2��������O�;���q7�*f���9��jk��R���;3����G;y*���B���8�v]
#u���P,��k�����������E���u*��Y�6�2d�5koooXZZb���������W�����W���#{5�n�����?~<���O���!/^����q��X�dI���m��a��qppp@�j���k�J;�=�\��30u�D���I A������v��q<���:y�u���uq��q������q��9��i^U�8Hk�m��}�F\[����������e��M�B����1v�]����?c���
9B�$����#i�`��[	���G�_�~]&�q�n�Z��c�����ce�...x���L������ �GF�S�{#6J�Kn�I�^1�-h��ffu���B��U���
��������Y	��Y���p�m>
S[b���S[b�����.s���=�s��r}
�RV����������������u��.� �5��%��<��)��!�H$X:���HK�L� y�if���VX��M��)����S����9����W�0��|�	��k�1m������j��p@�*��g���5��B�������k����\�/��
��p��>��m�<e(����ThGwD��=Q��%<2gA&'m��%��G��P�+eS�_��v�-�?��::�=��uz��
`����>�F8�e=��_��B����&�wX�\`���	^+�j��taN|���FP�F��4����O��i�L�v���������T+��!UW����0�4b�"^���~�������L��F���W�u��]x�B)�����B�.���;�����!�~���i{Rcu}t�n���*6@�
�Kx&���FVV��5���_/�6[�:�����:������L���,]mZ��y��O�BhA�����s��	�q��I(����!�]*����DhR�df�1e��"�rcb�tdN?�+I�jaG�ET�[s���-��s�����(�A
P IDAT��!Dq<tX����	30��d��_9��}I�����L���.[4�&����x~?������pQ8���&�L�\�W��iqW�tQ&N���CF��X��,�k��L�i�{�x�SAe;�{"��QM{44����*>@�
���/8�'�,��(_<�f[N�=]m�6�[b����_DjtgB!�at�^�k����}�w�_*(#��[�1�zw��Z�hM*��O��x�|i��ix�r��o�f���Y�e�o2aa�4��8BQ�a[��0���'��1��$f&�=��1~x�Q�8u�*�<*@�
!�K&��Ff�t���&�2�/�eJ�sUx��
�*��������|����!PC?{W9eD!�g�������X`R��Y/�\������	uE�@�r/+K�i�|���[my���O���&�.�����Hv����5u]9eD!���uSL�;�����]-���'�p��"����AhR����G��.=�	q8�])��EC��!��*�������D�+��|U,k2����H!��NA-C����[� $9��#J���'�3E[E}��g��A
I����(����������
�!=F�������_>����8��"�q�\{ ���DDj4�4������<B*5
�:tX�f'G!S��:5.#co,���[����:�A�������CKE���Ii�+���z�2������Ta6��b|������1�gz����j��B�qp��������V5���n�<�o�����&f&�l�M&F������\�������HO��T�8����?}3�����H��	!���1��P�����>�����e���?�@�Pz��Z�m,���
�I�#I0c�/B3���m&X�	I�E�-�L�����$�Rfx{]�A_M'7�)���k��.�����/��a����d�H��4)w6.���	Ll�dS\������
�vXN��B������Y����~���[J���p+����������\�x2;��1�F-t�0�#��^f���G�|��!���2����@���Gq5�a�>�a���&���l`[��A������y������Xsx�������x=#'��a�<�#�B�{�����`bn7�#&=�T�/�Hp��@S�g��4)������)�I�**~?���oV#!���j|U��j�XA�B)m�����~9S����^�!�H�rd�<�|�����*<~t�T�����>�Di�>�9�������a���gq;�9�l6
���vz�BH���h��
F���tA�3�7q��<FU�Y�s��������JtNR|t�(�^C�a��^�}�1�s�X,}���w�j�)u�Ez�BH�-m�\Lj2��w��SB�w�3C���~W��o(
���8L]l�����T���F][�,�07n�����K��!��S����
h�rc�Y�um	�y>�����;��H�}l���.�-J�+)>i�����<>p�z-,{���m;�.���IgH!����-64���F����}�u�����8v�*_�{�#%@h�T�uz�\��=��7'��������kY�G!���Z����[��x��X��J����{L���V@��}ZM&n`,���:s����M-���!�Rd������anL$a���H�J-�y��^�P,�}\���Lj�j���hM��@��S_C��\O+L���1�1���+���%�	!��"��i���31��`������8��|c�swpW*����4QJ	q�m]>�x�s^L|A#743�+��!����a�
k
`b����9�o�.��E}�}���0����")@�#Jp�\�0I���72��Ujaa#7y�F!�|�u�g�Y���M�Z���������ecXj��z~��hM���;���B���������"��\�Taz�>�u��*|Z�BH�����VA����b�0���BW)�E8�s��Q�g��4Q:�NE#��%��^��a�������}6�t�����2$�B�O�*5���D&v9�>�|{���o�>AXJT�c-����+�����(�X��_!������h�Y�n5��93B!�t�i0-��3�y���X�}�O�_�=�U4�4?�m4�&J���P�7���}�����!������c����A*]����!S��K�L�������Y9��(�-7/z�9G�(��o�)#B!����Z��V����h,y�-��i���+mS���Hn9����(
�X����#�����X&�B��P������m|q^�O�v���
<��n��~
Di�~������u�i�q6�BH��8[[�����%������}s�9�����4QO�@�e}p�_oM�!PC?{W9eE!��u]�����
'G�����~���Bu[9gG
Ch�$	.��?U��;u�y
��@]WN�B!e�]U��?������&���&�Gh���HAp@@�J��B��U���DZ}�BH����I0�0*t���w���n9fD���q#J��������
b:qh����;T�@W�	!�TH)Yi��H��>���`J�A�Y��
4Q8�D��'cr��|�l�m��k��7B!�i��g}u�tj��4hM��m*}�}.3j��.����!�"W��1��	��UY��(��<�"�DdX3�;Y5�wJ�B�\�j^���qU4�&
w)o�F���F&5PE�P�)B!r����|���Cm\�
��B�}H��{i������3�oB�����h�W��6����p��tJZ�!�������N���B*��6���� ]��W�����Xj��D�<��{w���
�)(D��ATq@AEP;!������������$f�hbZo���c����W$W�b:2b��(�Q�
�32Vq�?h������V�r���x�M����={�8q���8p `��]��o\]]�n�:���kv����u��Pg~Ol�����^����H�d2���y���+?�f�]�r�,��<��v�p���07o��9r�V�^�E����K�,���p�^���3Ub�Fc��Pe�&���������-�G�o�{�#��Y�;;Q���*��_�%K�`����={6����-@2\I��7�d�o��tW�o��i�
�Z��J�x:�����t��~��h~x���%vW%��}��v�@��?�'O���#z����p��%���v[�d��skp�dS�s���d���sEo�uIDDD���	��o���S����aaa��d�����o���0%}#-���,-�w	�f8DDDD������iii�t�n�����h��r6�;�#��|C�5�d���p�o�~jw
tdd$N�<	$$$���_����������J�]���
Y���c��|u�C�{:;;g��DGGc����6����a�p�Y{�r<�L�}��v�@�����������K�W$i��J�����g"""�c���333��O�F�� ���}��� ��d(//�� �p��Y�?W�m��=��j�@��g"""�_�N�G����Owg,d��Ch���3r����m?J�:������}�]�q�:��H�8}��1��g�>HDDD���+��o���-[����?��K"�Ut��S�v�d
�b�	�5�����g"""�o�N��j5*++!4����R���V7�M.BZ]��������AdDDDD���Z�P`�������������v����f """�g�����3uFY�
�Kwj�5���=���DDD��;�>|�pw�A.�`1T��a.�2��I��B"""�	��@���w[�1��������>�P\\���Pxxx 44%%%W�W�Xwww������S������������322���www�X����:��W����3���
�G�
���B�auX�������/�����8s����!''�6m���S�����S�b��M������ ''111X�t)���{���8~�8����~�z1�^�t)bbb��%&&�����r��\*�����>��g"""�)t�@�?����\.������~���#22�����h�"�d2������HJJBhh(���agg���P$&&�������L&��E���"���_%��kV��n���NH���A"""�)t�@{{{���#(**BUU:���<��u
E�W�
��o����Y|�R�DAA���Je�~�������*Qp�����[b��1��������{��2b����k

���5F�����Z�_��d�oMLLbbb%%%HMMm�����T?~g��w^0�0�lZ|-�����h?�f*++9�F�sn\8����m|�=�:O� ::����7�xJ�@aa!

���+�yyy�c���1h� (�J�/.??���P*����o1�5K�,��%K�����Wj|�)B}]�q�N����	�h�`���	�~p����r�����p�����h{�u^�@,��~�:�����?�N���x�����kA@ZZlmm�P(���d����������B����
��� v��%>u?��S�����73%}������z�X��={6���`ff��[�����W��3�<�;v���{����9����;������_h�fo��5����]�V�z���;/^���j��13f���52�Uj�~W"��
���j��u�����V��P""""��	��?���������[d2�n����DEE!**�E��q������@�C�$���^���d��,OI��;s�����z�(� ���O��F�l;$�����2�&""���	4u���>(-���J\��)�-M-0���Q�������PY�T��8�y�g$c&;�E/���C#"""�&��-�Iw��e������}����z"&�������i���YV���iI��&""���	4u���Q^�T�a� ��!Q�P/���q����.�#"""�&���4O	}�)i���.�<R����H�1��.�R	H�(��>������������z(&���������Jl��k
�1��Z^ ����a��8]�GDDD�iL��K%j�oL{�?J�7&
��f��Q�aM]F���_Z�1c�C��
��ADDD=h�2�~����M;mX��b��t#C2n�K��C#"""�2L���h�������F��N�s�Q`��`-GFDDD�u�@S�hh��Oc��9�H�,�p��uDDD��1��.q&�7�V��z�`���H��q|�+��#""���	4u	���������9e��>39�8�k;4"""�.��:M$�m������ �l�{k34"""�.��:�l�=\���2��kY�������0��NK�'-��<���*�XpB������h�A��J����Q�jZ�v��^�C�Q�cM�r��*\�T#���ey�Iy�����L��uDDDd�@S�$j�o<�6�r$]k�@&��)-v��c����P�+��ML���������hzd9�U�t�Zl��2L�hy�`��Q����vxDDDD��	4=�D��S��������MDDDd(�@�#K�'-��1���:����}��&"""������q��*�mj
���G������c��F9�E�DDDD��	4=����������e���#"""�����u3�8����s�:"""24L������ +����������Wq�����&2LSN�E�DDDD��	4u�f����l�o�9���I�'���em�FDDD���@S�in_7],����DDDd��@S����E��JI_�,{��U8��.������������	4uH�7������P(-���3(�k�������yj;<"""�n��:�E��������0�����EDDD������:d���M�m���g�>HDDD�	4�[��bBS�g\o([���;8S���/���:�������1��vKh�|#Y�|��{��Z\DDDD������N=�*�����|C��nn_GDDD��	4��������1�
C<zA��BJ�q��p&�DDDd��@S��ux��[Y(�m���������jlDDDD�������.��Mo�|#�9�&�Z�����H��@�C>X����1��GXh�}]�K�6C#"""�:&��P��Z/��UU�Sw.H��93�&"""�����L�'K�7f�i,����nl��oe�������t�	4=��oKP_�tz�`K�n,�����DDDd�@�i�o����Lu���I�����DDDd�@S�*+��)�T�7�?�'ng��������
���j|DDDD�����z�u�M�����@��7B������.0��6�<<�2��������,� """���ZU]�F�!i����l_w��'ogK�q�:"""2L��UGKQ]� ���5���w�J;��A��Q�1�hjU�F�F����G��\����1��jk���Z/�h���&���������0����})*+�b���c&�N���;�%��>��8�W�1�
hj!ao����=LLZ�}c�r�L�}&�$QW���xi=�?��x��w�qcM�~(CEYS��}?9��(�)C��,�x�?��aM���o����)y�� 4mm�c�����GDDD�kL�IT_��������oh�?�q������h��T��b����3E������I��I�Ow���DDDd|�@�(q�t�9���03k�9s�7��n:\���
AGi5>""""}��j���o���F�F����fZ�����H�0�&�����v����c��Sm�v��
n_GDDDFJ/�?�^^^�������QSS��W�b��	������>���:@mm-�}�Y���c��	����g���pww���'�������Dxzz����6m����4�7�E����������n�*��������X�<�.((�'�|��'O"++j�qqqx����j�*������;v����vvv�t�V�Z��^{
������8�;w���X�l�j5�j5�/_���dggc��������K�;

��I���o������7��!p�Qh->""""}��T*����R�PUU�B�~�s��DFF������xDFF������C���c��y�����!C������t������nnn077��y������N�U�����
��&x<��|C�����DDDd�t�@;99���3\\\�P(`kk��c��o������R����+�����\[[[I��?��~j��W��<�	;X�2�������1��:�������������/��������d����Ah�Z[�


���&&&111b\���y)=� �2��;qq��7Wj
Qp��x�Rf!���S�i����4���&�s���6.�o���9�y����!C��_�~�Y�f��_~Aii)T*�r9���1h� �+�yyyP*�P�T(++�����_�����i��%X�d	������������'*Q|�����e�e�U����c�+M��� ,d����v���F1���sn\8����m|�=�:/�pqqAZZ��� >��#Gb��)��w/ 66O=� ""�����{�"$$2����Cmm-�^�����?���������WQWW���8DDD���������3���3$^��f�7��@O�0s����1c ��1z�h,Y�����0o�<���[=z4����������/������qqq///<��39r$�r9�n�
S��D��O?Exx8�j5����������OA@�v������73��y!9�'��~�z�_�^��������c---�g��V���7���o�������9sf�k@�������b��B�)��+��?UC��u�����V���������K8Hw4�7&���M���T���J��;s������	�����u��$�[l_�������	��������5b�1{�IDAT��L��O����%Wq�����4���Ac�#�>bm�4W�'N���]��
��������R+��3&�FJ��y�l{I;I#���DDDD��@�+��[V��65�=��@W�W���%�aMDDD��	����9`�-�����'Q�P/���8���Yk��3&�F(qo�����H��}c��D�d�n������'`md�_�������L���i�
AZ�@���������h#�Y�1~R80���^����mnb�`��Z�����H�1�62-�74w���oL4��zu{\DDDD=h#Rp�g�+%}aOKh����<}����H�	�I�FZ�1f�
:Y��jU
��8%�������9&�F$q��|c�F�FjAj��b��F��v��Q���H�,�E��
I������4Ow��uDDDD�@�����g_���b!�������DDDD-1�6�����\.�GN�u�mf"�'��FDDD��0�6wo����rI�f�F����v��6���=6"""���	�H>P��������pj)��|���DDDD�am�J���-�}�FU�NH��@��	��+)�G��e����Gn�F��i�:����e?T+��4L�
\J|	����0�^p������q���Dn_GDDD�&�.A�|C��AH��2�&"""��1�6`��*��"-����.��.���m��)B���Q����������v���0/��
�������V�#"""���@0��7��qhQ��x��DDDD��@|�����I�K9X"��{*;�ov�����C�t��p�@��LDDD�1�6��n��q����X�8Zx�T��5��#F9������h!�����C���F	����C�|#�%���=h��U������"�f�3��0�6 [�n���WqY���k&2LSN������z:&�&b�#��[N���sR�1���>�������tL�
�\.���-Ol�������o�h�^�PI-���s�Z������Lw	�Z|DDDD=h�Y������3(��'������~�Z���������:�QV���\�ui�s�sLd�,EDDD�L�
�\.�����k����]�}Q{q�����wg�~�2�0M�������z&�F&Y�|��{��Q4DDDD=h#�y|�t�>HDDD�!L����A�����>�MDDD�1���������
��`i�q�F�0""""�W__���|����:�ekk����?p���%�J%���:���@���0�@����("""����<2����������M��A@QQ���1d��N�<�p�MDD�}555ppp`��C2�]�-h#q����\���93�&""�&����s�#��}��~#���^G��}����W"/�k��Xw�Z���#z���R|��WX�l��C�	�@��<���Y�ADD�"8������\�-��Q=\ii)>���=F444tSD�����H��&����DDD�A.���5���{i�r���!���b���x��������"%%AAA���@zz:���1q�D�='N�������������___���`����|�2�����+�6o����������#�l�2�3yyy���a	�8q;��eb������aDDDD�g����=�+��X�qYx����.]��={|��W�������/�v���#G�@.�#%%o������m��a���X�p!����V��i�&dee!33���������CDDD���#pqq������_vx�Z�1�6��oLSN���SODDdL�����N�
�L�������������L&C}}= 00������1k�,xxx�x���d$''c������J�������������p��w��|�����XXX��611�&&&P�TX�f
�L����,|�����o,�����W/�����~h��� ���_Gff&233q��%DGGz����W�]L�
������-���uDDD����NNN��;w��W�\���V�X����������AEE��������?����J@AAn������������� �m?�aP���;x������j�@�6"�.5����["���#�<����*"##�e������_�5���������kaoo��� x{{c����y3��?�����hmm����055���@���G%�p� EBDDDsG��7vf������,��|�����~�M���w���:^�����W_I�+W����+[�k�s
h� 4 9����$QV��M��	�;u��T���>��0�G�����2���)t=o"4`��oLSN��)?3uh�xM�@��|�������@��ey8~���/����uh#6����s%��� ���B�<������	��y/c��oC}�J�/@���mx/c��"#""��(�)����x��vl�����2]�������t�1���x��'��M��:�Ncm@�k��)��)�(�)�RDDDD�^��Ev���S������b�{p���
'���o�%�n.""�W���h�h���P��{��u����{"""����"k���F]��o�sss1|�pDFF���s��AUU:���������+���+V��w�$%%a��Ihhh���~�	&`����6mn��������G�������������Q]]
???,\��EL����8q"F���'����-����/���������?��]kkk�+�3g���9s0|�p,\���?l�|O��/��g��W�\�;���E���g�Enn.��������A���+q��!XYYa���3f 666l���[���ddd`���������3���C&��#1��VUQ���������&�g�:��u���.}[��U�N>��/^��;���(l����9�9�!C�`�����M�6����?�8V�X�C�����=���� ���}�v����|�w�}���8{�q�����=�~�)233[�g���8r��r9RRR��o`��}m�������c�6����_��s�0h� ����x��������@{zz"33����������~�il��	S�NENN�N�*��$$$ ''999������K���X�~=�?���t�_�%%���,]�111��u�z��+�v�h�S��������3�����p��I���a��! I������_ 44/���
���Gxx8|||�y�f�;w������������{h<eee�;w.����j�*���r��1��;�`����c�B�T���~~~���}����'��>|C����+�������H8p�E�A&�!  ���(,,DRRBCCaoo;;;���"11���(//G`` d2-Z$>����KS���%��,�-EDDDD�B�������x��Y888���b������^���g�������@c�������u+�������7n`��5�2e
����������(����SSS�T���<�J�����O?�n��B�x��B�����pvv�T*QPP��~�R����[�b����ym�ag�GK���~�:�;��{7�M��+W����_��8���k���p��i$$$�����n'''���������O?������P__X�|�Xu0h� �s�������%qqq��+�2:���������8���p�L������� &&@������#r�$��~����a�	M���er,p�����=�uu���J�^����p��������-***P�_?�9���#��}�f�L-�={�Z��z������VVV�����o���?��C�b��
���@XX0v�X�������/����|��'���Bjj*^{�5��3
����P��������+���/c���055�����������F����� �/_�_|�7o��I� ***PUU�J���
��������a��y���Exx8���#���X�1����i��QSS�%2AO�D������[�����6:55
���������/ 88X\��?����9�����1e�\�p@�'�����������=EqM�_�7��b��#f��p��RSS��0H�8����m\�m���?�#F<t����x����/��q�=R���x��'���%�������5A��������U�V=���nUUU���d2����{�n���h��`c����Z��q��������IoJ8v��-)^��������SO=%�����  --
���P(Grr2JJJPRR���d���C�P���iii�v�����[�"z������=��L�������c��n��-�g�45���/����]�3���������eeex����gt����������}�>�����%UUU����%���W��3�<�;v���{����9����;������_����f������]{{{����wq�3f`��Z~�DDDD&��������{n��<x�����j�*�]q��������3���$�VVV(*��a�������+���u��V�'**
QQ-o�7n\�4DDDD���������������P��-gF�+��	4Q7���DQQ�hEEE��������""""C�T*����;w��:�USS������Rr6Hg0�&"""�Ffff�q��=RSS1z�h��<�puh""""�`MDDDD�zs����������ui��;w��_?]�AZ�97.�o���6>�����\��{�C��M�m>|x��E��k��q�o#�97.�o���6>��s�puh""""�0]�n�:]������H�8���sn\8����m|�9���������X�ADDDD�L�5$&&��������i����n2x�`���������#44

EII����G�������[�kk~A��+���___�:uJWaS'�6��������������C���6n�wwwxzz"))I!S'���a��)1b���������P�5�:}�$R�T����p��e���V�����;�������
w�������+���A��7
����.B�.��O?	��������~��w����������c����u3uNks���o�7on1���s����PSS#\�rEpssT*�6��N�q�����!� �����s��>7Pm��.��\�n&==���pss���9������x]�EZ���H@dd$8����QM�4	�������7>>�-�L&C@@JKKQXX����sZ������c��y�����!C�������n����B���1c6661b


�>7Pm�w[��g�LAA�����R�|�Q�%����c�"&&p��-(
�o���o�2D�bm�/�����O?���/������9��%77�O���	�>7����{�	t3B+��d2DB�����8u��u�V9rD�!���}o��.]���/#33
�/��2��!���������G�O�>m�������{�	t3J�yyyb;??�
�aD�]��k������O#==��+,,D���u"u�����{�5`��������?���.��0���c���X�p!f����sC��|��=������������C\\"""tu�{�����B�wrr2������X@ll,�z�)]�I]��������]� ���`kk+~L=[������;tDDD ..����z�*rrr0~�x]�I�@DGGc������$��}n���o������D��w�	�����a�]�C������������+�9R���w�
!!!����"�8RzT���(��r���I��}{����� ,[�Lpss����'N�8zz��������[����|�I�����
6nnn��a��C��0rz?���@���F�%�5J�����>7Pm��.��<�������X�ADDDD�L������:�	4Q0�&""""�&�DDDDD�����z�������`��Mm���k��������#G����,^�{��<��s���~�8RSS��/�<�c��z"&�DD=����1a����Ox���[�����>����8w�N�:[[���o���#G>RL����0�&"�a^y������������t�R���;-�n������x����%�������q��I@rr21f���;������������1c����. 77��m��~???������g���1j�(L�4�DD�!�uDD�1�7o���s�������e���q���V�feea����~��w�b��
HIIA����?��?��e��]ptt��S���g������������/������>>>HJJ���JKK;�����W���z���O���.\x�������!;;AAA���Cll,�]�&^�5k`������m�9����x�b|��P��]���
4Q������#??������� �����c���W/�x///ddd $$�]�/BCC�{��V�[XXLMM�R�Z�m�6?~�}�������	��J""��h"��~B:l�0dgg#$$III���l�<�;u�����y�&����|�I����G����K���*���o����b�����0a�y�8::"//�Q^*���
4Qs����������%3g���[�0m�4��L����6����;w�����Q[[��a�
��c�|�I��3��������?�999S�N��Q����!� ��� """"�)X�ADDDD�L������:�	4Q0�&""""�&�DDDDD��������@uh""""�`MDDDD�L������:�	4Q0�&""""����'���k��IEND�B`�
scalability-rrw.pngimage/png; name=scalability-rrw.pngDownload
�PNG


IHDR���KR[sBIT|d�	pHYs��~� IDATx���wXT����t��-+X�����l����""v�5�+D
zcL�5*jD��h��X����bC����l���A8���e1���<�>�g�;���g��3zDD`0��`0:���`0��`0^'��`0��`4�@3��`0��)���`0F#`
4��`0����`0��`4�&S�����K�6Ur:�1c�<w�%sJJ
����P(�+���c�@tt4z������T4�������~��I�lj�j�dh&**
'Nl0��q��~at�U��MDOO���/[�K�u�o>lZ������&I���o�>���{����P(���?8P/��e���}{"22�I�x������K���{w�x<t��.\�[d������kW����UO�:�6m�������RSS9���J�?���
����/t���/��O����066F^^������������r{�9{�,����l�%>>���������Z�?11�{��������b��&��E���������k��;o�<���O�m��9h��u�f���B��o�>�c�������}{��UVVb���ppp�@ ������������amm
�P�3f�,`>|o��,,,������$�����K�BXYYa������l�y�`
�?�R���Gc��-X�x1=z���tDFFb����4ij�������>��
z�R��4�M


��������1x�`6�\"�K�.���������a���X�r%


��kW�9��������������x|��g8v��Nq�*�W�������'''|��'M���TUUa���prrBLLZ�h���77i-Z���={��[�n������o��B�T����\.��������di���c���X�v�Z���G�O�>(((���g�a�����m�������.�\��=�����/_��;�q���"OQQJKK�O�x���������kL���������� ++|>3g����O�{{{<}����8{�,��_x��!����q�Fa���������c��58u�RRR���cDDD4I�_�X�T�"��������W�]�v���FXX�R)���g����"�?��C�'���<������x���UYY�w���}�n�������7}�
�ooo<z����s����QQQ��L&���c�������k��5��4���O@�����3g����	QQQ������+v����UQQ�y�����VVV�������m�6�D"8::b��u:������W�^(..��h��-�����_?�6���Oabb��'O���������|||�D�]�vq�CCC1`��x<�e���2_�z]�v���%���s~W�\����|>:v��3g�hM_Sy���c��!**
������:v��6���*�Z�
...������c�:�YY��c���akk�O?�Tm:�
���~����C���/�&�.]�����3vvvjW��!�J1f��������[�n���Qv������`ccS�����������ajj���H��y��������-���5��m�I�&!::Z��
������/c���8~�8F��7n�����oh�i������A$���|���p�����#G������G������������e���g����x�������!!!��s'w�c��;Vk???,Z���w����������[�n���3�}�]��Em�������>}����;���q�0m�48������Gee%���ggg888`���*����k��g��mZ�������@xxx`��-�_dd$F���yc��u���G�6m4���d�����w�R��={j\9���;BBB�����?%%���000���;z���R�u��e��m��v�������{~~~������TQ��yyy���@ @���QUU����u���4<����4n����~����?)))?~<��Y'''.Lll,����������?����k���������?!!!�<y�������LMM���<y�#F���B�������?���{�W�^044��������g��?&L�OOOX[[c��e���NV===l��Y���a��a��1���Dtt4*++1g��D"�D"��3Ge����C������%�������bL�0���h��9�.]�=�%''���VVV����L�s�����=�����C��}�Ko���������V�Z�����h���s���@ @dd��<8�...���Iiii���O>>>�d�""���#�}�6�����1c=|����BCC������=KR��f��E={�$"���Rrrr�m���\.�������
��}��kmmM			$��i���4r�H""�H$$
���?���
�H$t��""��� :r�)

'ooo�m2�y�9W>"���x200��s��T*�3g������w����O�N������A
��.^�HR���<yB(((�JKK��?� [[[:y��Z�j���r""����-[������g���T*i������OeeeDDt��Arww���$����r�J�������TZZJ2������������G�����g�RFFu����<����s��.��2�����s�N""*))���/QFF	:r�)�J:q�	z��Y���V���Mpp�V��n�J������#*))�?�����R��'Ryy9%&&���1%%%�K��}��{w.���DTYY��6���Km��U���������S�l�������
]�v������Y�d	�������5��N������I?����������Oo��V�quA[�<x�Z�lIUUU�d&�>�����i��TPP@2����9�6��_~I}��������/�����������|}}i���:����B'O��V�ZQRR)
rrr���@O�<Q����D"��u�JKKi���\]�����*--���r��EM�U�C���R)��=�:v���������%]�p��J%UTT����i������O��(<<����{{{.�Q�F��k��O�6mUTT��7����~��W"j�����B-[����


��Du��u��|>%%%��U�����
���DD'O�$�z��-���L&�{��Q�������j�����?�Dt��U�����RJJ
�d2rww�O?��*++���Sdaa��Y�m���p�2e
�d2��dt��9���R+S��i��k�t
��41y�d���!___�_�Nvvvt��R(M...$�Ju�/]�����6>���������~#������25j��=����a���PYYedd���'8p������0`V�P���	}��WDD��C��w/����K(//Oc�4��dhhH$�RI����l�2������z�������.]JDD			diiI'N� �RIt��]""2dM�<�JKK)''��u�F7n$"��� Z�j�o��?ODD�����;Saa!UUUQRReeeQHH�D"�'O�P��-��~ �j�����������T^^�1��)�6l���9BnnnDD��DDD>��@��H%%%���Oiii�w�^����J��'O���H.��	T�m��5������W�F�i���{���s�����
�m2iV�KKK9������+H�T���)%&&������t
"�����������{w1b
:�*++�x����:�R��f��QJJ
�<y���KDD�������������G���H���DD���ZO���@k*s���i�������o��5��Z���?EGG��m�m��4�@��������s����#CCC���\����9�n����={��/�J����<x@DD����i��5�M�������bbbH&�Qtt4������������[�R�=����:�'R�@�?������C��o���4@���'8A[\]��v�����sg����:Pll����m�i���,��������fff���+�����v�J�O�V������+Wr���=���O'9���l�\�����)..����Kr��A�v���s����H�Pp}���G��.�����RXXH�������"$$�����"333JNN��.]������0������Q�NKK#}}}�H$�[xx8��;or�EC
4���N�[�&>�������@_�x������������5�����)C�9w�988�R������������l�2
���R��
��:��@7f���]�m��Y�}�����VC�V����3:���cH�=eee���Yh����{�c`qq1200 ///���������s��\	

����KfffO����b�
������(""rss���8.-�L�q,ihn������{��qss�#G�p����������.egg���1���sn111���GD����I�T�a"�S�NQ��-����*��P(���������m���{p��};��b��4�QC=h�X��vqqAVV����j���������YYYHMMEBB�|>���{7�����B���mff���R@zz:������)�T*Uk���O�:�A�5amm
sss������� �J����nko$HKK�����d:t066��SSS1{�l������x���7o��^��>���%�����z������1h*��2o��<@�6m��[7���re���J_�p��>}Z/Om�m��������������������
�B��AS�����	F���UUU��g�7]c������_|;v}��U�k�6u�$$$���CPPD"���C.��TGu��H$*n�<�u]����e�����hP.sss\�z���a������Sti3�:u*�wTT���!`mm��"�w��Exx8������ �0��Q{�Qms1������DGG7h�QC��Q.��������^���R�Dxx8���aii�m���Wnn.�����K.����#77@�����Y���,�>������J�y����())i��~hh(���e��:��MAA�������C*�"==���lZ��i���7}��M�u��1��`�xxx���nnnX�f��e��������������1g�,_�EEE*i�[�N%���tdee�T_���5���������m�V���������a�87u���i� �J������2:������_?:eee���Caa!.\h��
v���3f���yyyh��7w��k~k3��4������5�5����T��r8::r�4e�<{�@�I1�{���������}�]��1}�0y�dH$���A&���C���-��)��������4�D"���#222��S�VZZ����D"��b����t���Rl���^u��Mbc�x�b�X��fM2k���eee�uM������T������Fgg����m[l������9w�X�M�6��sEE|||`kk�
>����/�����<y�.\@aa!�O��v��.h*��2�l�{����g��p�B6eee��		Q)CYY���������������u���9�kl�D"��=uZZ

������	

����q��)����G��\m�����~�
��k����������n�!""III�t�bccU�hu���7o���������#�~���Q����������u	������I6�������3�]��?������.�����/^�X�����X���4h|||p��e�����v���F���`?�h�G����CuJ���hdd[[[��������)���:t���+����7�P�M������E�f�p��.���bN9qtt���&D"


PRR���a�1�:u
��]�P(�P(��}���W_a��!�L�>8~��s�%����000���cahh'''����j�k�D"���U����Ec����a��ux��1>�/���N�z�2������y@s��A������_�O�>�?�J�K�,QI����F������;v`������^_�y�&���@��9W�^E^^


����3f���666S�/��
��������O>�������������7����vL
��v�~{��Ok�k��b�&&&* �����B!�l����,l��	��O�����5��_��;w����]����022�'��{��<5
������ **�{�1b�o���w����\����G������dX�l���!��`��]����������p���zi�%  �������PYY���$$$4OW4�x��q�8��d8�<bcc1|�p���c�����������R���/���\�����s��o����>0j�(DEE�o��\��:u*V�^�u���b�����G������&L���<<<0a����c����������!��!�JQUU�B�T��]������?"77�������m�;|�0�?�R	�T�3g��<����������RRR�n~5j���K<y��S�F�	CC�F���{}}}��7Oe������7 ��!�H0�|899�{e�&���q��-(�JXZZ���j��n��v�Y-���q��m�����J�X�b:t��m�;v,V�Z���B��w[�l�^��P����k�T��G����vvv9mGGG0��OGaa!�r9��;�6����U^u��-����������u+N�>��?G?��#���P^^����c��a��.����JJJ������/�*���>&M���s�r+L���8~�8���'::��K��U�b1|||�h�"H�R�����uk�]X�r%<x���D$&&"00�&M���P�]�v��������7�|���P�+�UUU�J���� "H�R�d2@�V�@D���AUU����o�>���'N���?���_!99���������9>��3��r�9s����H

�Cll,���AD����������������r��Q�<y�{}���~�_~�����I�&a���HHH���G�AIII����RQQ��������n��a���(..�\.������;[[[�h�6l�B�@QQv����_�_��R���\L�2�V��n����$b��U
��}f��QX�jrss����+Vp��'L��������S���Bff&���GGG���c��y�H$�����G������������5���```��~�
			���077���)�OG��%K����������/���VS��9\\\(**���mKVVV4v�Xn�QTT988���#�_��p�����4e����/���S�������\�{������������;t��
.nm����xj��9w}��-z��w�������^�����C6�h_�7l�@B�����h��}�\�V�"���F8"���r�={6�D"������{Syy9'��M������?���F�t�DX���������U��s'���[�������������-�h/���BCC	��GW[���LvvvdnnN�����r~W�\�>}����5������)55�^]4T^M�&//�z��I|>�:u��V~�RI�|�	999���-s����Ym�����\����)Q��$((�,--����F�A999j��#&&�Z�jEfffdooO3g��x�DDD�k��v�'O����[���)������I�R
#�G����n�:����mm6����;����������X,����s�
�3
���Oc��%{{{�������
w��	���&gggj��yxx��?������u����k/Z�.6������[7��x��A�4v6t/jJ�����������i�������%����E�Q�-���Q�6m������W�^��?[�n���0==�
D�������������l�SSSI ��8�#F���������w���Hv��)���+YZZ���M�8Qe>���
�U�VdnnN������������O�>diiIm���6�i*��v���/��������y���b�
���n�����_�m2� IDAT~!�XLVVV�v�Z"j�<P�D"!�XL���Sq���&www��6..��v�JVVV$
i��a��|c�K�RSFsss�O��0&&����5n��M^^�=��������z��I			���7�����|>�����a�T���={���Y[[s�j�n�:���'�G���#�T��\��vuctEE��9��B!	�B�9s��>�P�������������cDDTTTDS�N�������%yyyq{�,X@"���������6m�DDD���+�o���������F�M%%%DDTPP@���dkkKNNN��'�pv���aMy�PO���f��$%%��������@c'�W
�\N|����WI&�QQQm���<<<T6�0��;v�U�X�4�e���<$iB��/^��D�m�z��1�W��.T��4� ��B&�q���~���/CCC����2d����P�6m�����8x����3(//����1y��z~�Mt������-Z�lQ���Q���M�0n�8���W��`��K����nd4����c������/F��6k����3LLL��w�5V�!/�WE��`4-zD��E3��`0�4����`0�����h��`0�0��JCD�����C^���`aa��we�������T^Z�<���@OOO��g7��������+e���A�>}���0o�����a��������/[�o�)��W�.����������W������}����������~�r4gm*++1a��������S�N:�p����(--m��"##����u�n]�����~x�R��l������H$X�n]��������o��bXZZ����~�)����2vvv����������C������h��%f���zp�����s�!7o�/����=����/Q*�y��w�~��cG:tH�?&&...077�|�������~�!����������->�%�h�+Mjj*\]]5����];?~EEE���B��-1m�4�a
�b1��=���b�\�#F���~�yY+�o�j����]�v�1�
�3�xQe�0a����D�K�.!&&!00���GNN�w��rtvrr2���!�p��
H$\�x���*Gg�D"�8�.`������_^H��_�5�>}
�D���7c��1x��)���;�2e
v��������a���\��>�����������1m�4�d\�?���j�����>��3j��=�������);;����O��{�q��]�|�z��AVVV��C������m�Fm��!j��m�����9p���?';;;
��m�6�reff�����������i���DD��?���	������9-_�\k��R)���S��mu������O?����1u����K����YXX���������P�����������

����:t�@D��2�?��B!�D"Z�d	)
�rGDD����/
&�G[�li�-Z�v-�o��;�������\4hYYY���5����;��6��/�3f�L&#333Z�`U��ibbB*u�x�b���'277��>����O2��ayxx������k<�+!!��t���~8w�\�6���&�XL666�j�*�xo��6w"�G}D����?��������\]]��������o_����V�Z��z���G�&�G��u��K��t� �����E�dccC�����W�)n���dhhHFFFdnnN7nT{�>|�:v�HVVV��G�y��J��Y����oO���$��i��5$�����Z�jE���k�ex^222�����x:k~~>���<"�>�4  @k����������~��L��o'�3gYYYQ�-�����}�vrrr";;;�����������w"j�S;���K-Z����b"":z�(988��g���p��m�����s�K�R�={69::���#��=�;5���744��O�N$���;%''s���vyy9}������L�����gO*//'�X�r���K����v��E�T��]����9?m�dEE�@  +++���+egg����CBB���p'�-Z��F���'''���I$*--%###��>�?f�Z�p��&���)�� \\\�������)##�����S�N�����T*�w�y�"##��zRt��R*�t��	��K���TUUEg���f��������z700�e���L&�#G�P�f�T��������M�Ft��
����&l]�9NMM%+++���#CCC�����&�{�n���:�������O�������
��h"���2�;�5''��u����R���244���R����r��n��Qff&���S�6m�#����i��)$��H&���s��*��N����z���'M777���;�W�0������A�����RSS���������������;wQ�1��/_V�g���T^^N���dllLIIIDDt��5�|�2��rz��	�i�����K���K���T^^N������D��m#�\N��_'�}�6�9��N���t��-�D:+�~~~���O�����eK�G������Z���~�:�����+WH�PPtt4���pJ���u�������������GNNN�����W[���������J�G�W�&sss@-Z����t��<HB���vpph����<x@"��N�:�5^
��o'��m)
Z�d	��b�>}:I�R:~�8YXXpG�����AJ��n��I���t��A.���GShh(������#>|Xk����B!}���TQQA���\�BD��qz{{SNN={��z��AK�.���6�������5%$$�\.���G���#������O'___��� �BA/^$�T��d��}0??��|>�����r9����������7n���*++#�BA��]�D�R����3h� ��=h� 211!��_?��500���Y������]�F���;������]����;��3���1s�L888�y�����7�����S'�����?��7?��#��B__���>�v���G�
www���������8�<�����/_###8�� ==.\���������'N��]�t.���3�������U�V�M�6
����Fhhh��u�3u����U�Vh��F����D��U�������������9���1w�\���Wc�=z��>���>�5k�S>�f��H$�@ ����9y������S�������{��L�����C������s�0a233QZZ��g�����Q������3�y���gdd���d������o����DD�5k��;�c���y�&�K�.x���ahhWWWL�2g��U��h�"4k����puuEXX

��sg��_��O?��R���+V����9�z�-����\��B ���s����={UW���e�L�ooo 44&&&�r�
f��Y��h��PYY���$��r������]m����(**���Fxx8JJJ����#$$VVV��ddd���>�_|�����A(r��}��|>,,,0i�$�=++|>���h�����u��YC�-�9���X�|9LLL���cccn������o}}}t���F�R�G��=N�>
???<Z�����P(��y�`jj
�ooo���/_{{{���!""Be�lh�:t(�w�CCCs����]UU�m������F���a``���4X�G�A��-CCC�5
m�������0��I###���#99���,--5���~�`}�������������U����z����
%%%Z�����������Y�z������(���>��}.\������������@ �����G�����ecc�r�����vm��� T��vqq��P����2d�V[���*������X�T�p��v�����Zg��=�k�]HMM�\.���#�S�L��g�4�����G��,����������5k�����Y3t��g����s����\�x��h]�o���x����i�n����05����@(����/V���j=���"!!A����{7��������������sY������9�6RSS�n�:����U���������+DFF���AAAM&K]�����S'4k���&���\���c���5j�ncc��C0c�a��9�����H$BQQ$	�����Y�F=�����������n3���6n�����|>����oc��y
�������%++K�_��+
����m};//R�T�L��+o����xM2����_�~

�H$����o�6nJ���0`�?~����H$*�$	x<�V?�?�@3�"���_VV���pTVV�_��������a�����8�R$���@��=--
��7.�
�={Vo`���0a������������m:
~��u��������R�Dnn.w]wuW,���yyy\{H$�V��Q7���l����xX�n?~�����/���S����������q��
t��
���8~�8�^��>}��$kci��%����g��a���6l����7m�4�i�>�D"ATTT�~\[6�X___�����6l���

�����OKK��u��D"��jd^�d������*Ji��=z4.\����T���a���j�����:�}tE�P���G�uaa!����%K���}����
��bee���G��z6%�G�F`` ���Q\\��S������Dl��
�F���Y�LO,��GmD"RSS���}����o������T�L
��u���Y�1���HJJ��K���;w�
[{��g��
�UC�������[�?Fee%Z�j�V�ZA�P��������7����s^���@3�2f�>|���R��T*��3g����L���JNa���{�W��b���`��E�J����?�u�V���������Bnn.>��ct��	�@m�i������8|���f
�Z��T*��#G ���j�*TVVr�HIIAUU�������7o$	�������z��������GQPP���l|��W:����Err2����000���>___���������1���-Z���Nm<~�Xgy����?"77���������KJJ`ii	��w6l�>  <��]� ��!����o�����000���C���r$%%a��:�a���(,,Dzz:���k�9@u��;wiii(..����uN&M���7"!!D���29rD�_��������QYY	SSS��C�/�:�}�QUU�M�6���D��W������{���z�_�~�����:"##q��y|����*f^^�����JKK�w�^��������4����������*�3�J�3f����}�vdffb���Z������J��� !!0j�(�Z�
��������+���������>����?�YYYP*��|�27���k�� &&
����CRRR�f,@�kJo���R	KKKi���@�~4�����{���CEE�r9~��G��3��u|�����QVV����c�����x077���C�|�r�������8t�BBBt�q��S�j��8t����`gg�X��k����
<�|�
F�kkk��� 00�����gRRR ������O>�����S���L���<��A<x���������i!
��k�(����~�zL�8��7���9���8������;�s����;wB&��]�v�����a�T��n���t���������4]x��!��������O������>>>����V���kSSS���0{�l���O����i��.�����',,,0{�l������
�������I�&5X'<'N����{!� 
�p�B������Cii)�B!�����0��0d�t��^^^4h&L�x���1r�Ht��]�t�I��M��]�e���1������@tt���������-�B!�={����F�����;x<����3gb�����o��������"����j�
W�\AFF:v����={B$a���\YYY\\���������g��g���X�|9x<V�X�#Fp~�-����M�����X�t���e]x<N�<���C(�e�����,]�]�vE���}{t��K�.��eh�o���h��=�u��@�����
fffX�d	z��	>��b[T�a���X�nlll��g�!66���
�����a�����m�����o����8S%;;;|�����o7�zzzb������=JJJT~��_���
���c��Q��a[���G���;��`0�)>|8._���Ea0�)L�f0��`03�`0���������v�7�'����`0��`4��`0��`4�@3��`0��)���`0F#`
4��`0����`0��`4�@3��`0��)���`0F#`
4��`0����`0��`4�@3��`0��)���`0F#0|��������x�b0������/[F�vz=`��������y�)%%yyy�D�)�/\�v�e��h�3g�����e��h�N���^}X�<O;u�������L8��`0�F�h��`0�0��`0��h��]TT�a���M�6h��-._����H4o�^^^������G���W����Z�n����s���C�������5k�p�O�<���7Z�l��#GB&�*++1r�Hxxx���)))/����`0���k�@��=�����{�p��M�m�0w�\$&&"11$%%a����s��;����C�TB�T���>B\\����g�$%%.\��s�����������[[�n���5���1w�\,\���T��`0���Z*�������	�������:tAAA011A�-�����W���������������C���p��i6�_~��K+440l�0�:u
D�7���`0����Z*��?��������S'L�8eee����:t����QXX����X,��;99!33S�{~~>�|>

U���ehh+++�����r3��`0^>��{�
~��w|�����������f���1��-����-[�y��a��mjW����PUU��]SxZ�j�y�fl��PXX�3g�4���Lii)k���N���^}X��vz5y-h'''899���@�)��5k������4i������_FFD"�u���EQQ


U�������B���b�z2N�<�'O�n�����5�*�z��������k���N�&��	�P(�X,�����N�B�v����S.�����[o�w�^TVV���'x��!�w��n������x��	d2������@�����w��O?���c����c��O?��w�}W�
4��`0�7�;s��wY�����/[\���k�
�~�-���!���������c��YHLL���\]]�i�&���'F��v�������=T�L���J�������'�?������t�Rt�����8a��������{��}9�`0��8����@j�Tk8S��}AR1^$������k�������Kc�%K�`��%������6nnn�z�j=wSSS����9$f0��&`h����� 4Yk���`h���~ymh��`0����
�2d�U"3�Yi2d�V"+�)R����d�V��l��`0���H��g���(����5*�
�V��l��`0�������"jX��C��i�W*	�����sJr��eS�����	[}~�a
4��`0o0��R�U\RJ�n�9��k$�-W�r��&Cv�
��R���d���L���V��p��`0���~cA.'(��������������
&��5YZ�������&�U��Fh�bGg������"g���B���������g��� IDAT�_�l��S���x�10&|�����h
��a�O?NQ�������W���PX�[V��K��$�<���R��9E�F9:����#3j����>�3`
4��`0�AS��6��*BQ��r��|������gr��<�NJ��c�8w��Id|U��1��E�����6v�MrZ�h[(���7�@3��4�i�RI(���"��?�����W�/������Zah���1D��*�&*J���f�/L��9�/$/��S���xt=L���b6fs�p]E�0_���J{]04���Q����������F�z02����>���q�V�J:��:`�[4w1���1�����h��`0t�RZ��lr���}*CN�9�2��PV�yIx���(�z�-�!�3�����*~�X�}7�?X�?XUeV�Z5\]?C#}%��H���$
��D��y��`���W�@3���E�K+�x�T�gOex�U�-�v��q���������v���7���vF���m��	���ML�7��SJ�����TJ�����y�W	�@3����l����x�T���r�d��VU�%E/_1��T+�����MeX`gk[#�����M)e���*L�f0�+������S~�Ub������9]�w4������0�����kk[C=�B�<�(������R�6�1^U��`0�W��Yi2X	�M
r�n\�����F_����"c�9����"c��b��<M��^?q���\��QJ����J�W�i1<>���|8��`����Z�l������h:��`0��LV��L��*�4]���4��s+)~������1�k)���F~W+�"c������TR���F��>��k�o�T)����_��.�����&y�_�u����0��`0��������jE8��N���e97[�B_�fd�[��Z\������!�5���?�0����+����T�J��~z}+"�n��.U�8��]'�h������hz�����O�|Z�n�����l1
p������l1
�������Mh2=(+U�(�����[M~�^	Y���N��	�E��Q����,�m�F1~S��Zjj`����UT�
E%�R��+P���|*��znu��(�3�
�%�2<(NEC��P�zzz�����g���������N�&i�WJo�WR��"���VX���z��I�u*s(�d�Q�9�:��L��l
���R��(��RJ%mzK�$��G�)iz'��}=�>L>���w{_|�\ ��h}���r�t��5W���5VXQ�p��:��r���E�2�W?������)S�����}�'u�=�DD�@O'��������v���%��r�1-��E�(>�}�
�U-=���
��d�S'���;��5��x��w�j������������qh�,_y�l��cws�hA�)���V������R�������,�������"}uU@��V *F����[���5NH�����/D�]xv�8X���Sj���1���T�Zc]�������c�U�[^���3y��W�^KG��x��%P?`�&"$z��WC�[�p��Uc��8) ��&�!��>�����n���"����M��1���] �����`rO~��k��4� Q�3��\]������K���1
����h9�����2nS����y-�������.�y�����7�9�"���)�'Sb��~2%�|���)[^���m=~����o��q�?��hi����
?�)�!�"�������}���v�����N	��vt�t�3�q�gK�����L�{f]���4� ��\�]v��;%C�?Ji��zn?�b�E�q��'ue8Ys�Z�J���������pW���9�z��������/�L/��Cj�����^�+VN~�~�~���������v]��]�Br_�DDX}��^�����m������4��-6��(�=�S5e�^W�S5g���75��6��7���#P1Ar)Z��C��W�Km���F�n�o3F�=_��u�[����@�+��O�����h�������NC[f�RBd�\�5��k�MxE��p��N^�O��p����z��/�({��>$���LqM���b���
����<�����������K���=	���F�s�$�c�&"`�-x������v�����������_���+������������kvQs�tgp���j��������^M��[�3;\���'���(=b	8O�����h)���/2�Qz�~���QJ��I��p��yWt�<�s�/EE�%|_���|JwFz}���C{���|��QA�H
�CRP,F�"10�?�I��u]������b��)�-%�h"��h���uZ���V�������3�����������������0Y;_�������	���b1:(QC�w:���zv�����
B��TW�C�����<����"�'�6�S�)����������X��7\D�^�R}9N�j����K������y���Z{�G�J����+S���8�h�a�&"�P��V��uo�Z��~���~�U��b���{���z���QZ[��_}������jv�����DRpkorP��:�/��w���
�DD��D#~�Q���'�E�����'�����^���y]�X-�6T��d-����O�wK!���������&�&J!ytpF�A��So2QO0@y�E���W�w���d��u���P�}#�����������u�;��^�K}�>{�7�����oDDth""q���\R��_��.�K�%`��]������c�/�&��jQ�/G�^+��jC�����B�A������p�����.�9�������VQg�����(���Vb������~��9����w0l�O��s�P��Cty��G>��G>��z;��%C��MH�B|��D!@>����������h""7v���.;���m����uo���u>)NE��k�M�q|���.�r�VWz�G���3��	7�fFo��Mf�����h�`�&"rC�(����x��2��-v�o�����Dx����b����M�qT����lt��/����z����}/r^^R��^���<�+h""7s��	�3K���:�cC�z����p��04����B�o*����(�;��������	6�����������0@����z	k��������`���z�z��,_��-�q��4,�}�����)���������DDn@W��_=^���R
",A50���)��	gaM8���������}�`J�XL�3���\���s91���{�D�����"~�Q����6-���q���N��;}��d���X��\<
�O��{�@}��/���u�Faj�8L��a��/�@����!���GDt
���-����^��L����b�J�����:��
J���T�o����c�uB��y����W��a����:
J����91����1@�[��<�F�I/t�'�� �u���3u�A���� 
���I��A|{~�Pe���<5|����0eP����<"����]SS��~��� �������E����qqq��_����`�����z
;v����>��#\��������K����C�a��%hjj������o@\�|��{Q�5�[p��g�
8s����5I�X�����%��z�i��c�O���y�HH�E�(%�|3R	����u��f���on�����zS*.�7����U�zu/_����������:]������c�SO=��s�b���0�Lhll�o�[��=�V�BVV����a����EEE(**���|�r8p�/_��u�p��A����'#==���X�|9���1}�t��?����7o���:�u�Vg��g�
8{���:��Y����������me
��[�k�������\����U >�����%C�����L�77Boj@���._��35@����h�z8I�Y�E!m�u�36S��a\�H�x{��DD�G��������_���>��r��rl��yyy������b��
��};/^A0}�t������yyyHKKCHH --
���HMM�^���3�/��m�0o��N�A�	:��g���DQDuU3��6�����������l=U;wj����~r3j���1���|D���/Qi�9_����8��/7�}9�3����By&��=
����B��^s""r<��%%%>|8z�!9r�'O�o����JDFF"##QUU(//Gtt�t�J�Byyy��*���@�� ��:1�jQy�d��|�uC�������Q;/��s���%�o�w3w���eU���
�����9y����xd�6��8|�0�|�M�������BVVV����h�&B��{#;;����N'�Z���������1���s������KT��x^@Uy���
�&�������1l���"��,D���c7
�&��JQ�!�
��(��P�t����/�?;�L>������0�.d�Q�|���`������<��{���R��R����X�`������
DFF���aaa��������j�����J���E��j���
�J�Vkw>�N��^ff&233IIIHMMu����A^^��xN3g��b���^�-�v��B.3R�X�R�o�k"�e������J�������D/�L�@�hT�����A	�������u��]{�WS�{�$� �
�0�W
=L��'����&W��
�M~���c�#q���z��,��<��g�srO�#""��'O"))	{�����c1v�X���`��U�����w�	HOO�[o�����@`` "##1g�<��s��t���wc���		���?�������M�6��?���Y�����"4�u9���a}�7��. �����D�9���z���_Uh�Z������������/q��������"�g�m_Jo���K�j3JN6���%'�Pz���SM8Sd���yrg���X>�&;
&v�A`�,xh8��}�=��^""j�������x��`2�����?�V�.����-[�����;v@�V���~�! $$k�����Sk���&���;�2v�����y��V���D���9#���_����/jQW{mC"��m�qk@�U+���p'�hE����R�o|V��.^S-@�roo���G�����P�����;�XD�?kDik�.;�$�>���'^���;�_����#�����_a2���x����u;��$"����PIII8y�����n�&3�8�_=������7uQ;��|�d��:(�w�;DQDA����|������� �?��O����p��Q��`v���0�Q<?��^��[�&�Pr�������'�Pr�	����B�7�{�'ax��_kt7���@�g�����L����OA��{���MYq�l
����hj��j�#|���F|�/��{_S=�(���������z�����������#����wKP�-z:������Vz��-�����I� i��c��f)X���2��Kgs|��	�.<
t�D����yz|���rkp��������p�� �<7�3�����
��0eh�kEG�OaK��Z�o��k��f������iH���Law� x~��xl���{�>�?~3�M�=	�z4l�����|0������mL����$""��M�DQ���m�������7//`��<�%4��~��Z�)��",������U���������������'S��bo�Bu���_��G�	Qb���0�*�cS�Tk��<�F%mV��d2n�MD4�0@��Z�_Q+M�P��D�+"F���|��@w�[]&�����������r���Z�N����D�����q�:
�cgb��o���)��Em����}&"������*���i��&��e��L�)@
�����z�����m�\��^�~;p��������4�w3���9�w������`�&r��m�(��}w^�Q�����*M���Z|�[��v���%s7W����-��q�� ���oH�'�]6��o%{Q�X�p�a�'aB�����Z-���[�wCs�T����%�m�3p���#�*�>�����]1@9@���x�Em�����������g�en
�n��=|��0cV n����"N��a�(�7�6��l��_����E�o>;�/����d^���J�Bu��nq��}DDD�����O���	��>�^1j�o���`L�������z�7�6���w��
^?�I��{��u���N�]	����R]���Az�m4t�r��7f�]�eB��~Y�kU�T���6��:/�7G]���4��0�}��
N�D��^��&L"M�KN�w��gzS=��:����@�1������]+@���I�w�p��Y����DDD�D�~(~�Lt]L.����������m���h�����a�(�/����!�gkF_m^��x7u5F
sX}DDD4��:���><�%*qO�p�<7�&�mdr�j��(�:��Gq��(T���w�g��p+�3Q�������T���}D��N$_���h���2i(F~��8q��O�����)pO�,�.�@�M� �~��o�kz]t��s���%(_���GQPy���>�6:(�#&`z�D��O����X�Mv�����!.GGDD�	h"�������J�������qS-�8��
�m6(i�*Zq�r	�+�������<��t�}�%P>���#%|�GL@J�x�0<>d$��nh���&/�����to""�����UU��j�i��sw�n�nhe�8`��g���LA�eCm�0�����-��:�����\!@������>)0&8^B��E����<�����������K���=	���LDD�
h�k`�����bi����P{��v�,&�P�.���C����5g�t� �?R�' %|<��O���qR����e ������
F�D� �����Z-�6�svuy������CF"%��w9|��c��]&""���M�G�����������(�|����(�>^
����!@>���1@�������/������,��c��/LQ��������Ap�.�DDD�x�D}�a�Y�]�n�]	�c2����������������?q0%Q/�����7/����x8^X����d_��M^��LDD����z�R�	+:m���������XEk��s�"""��!D=$�"V.=���f��������(����Y�^�
J���h�����������kU�~�?~��%�o�(�{��N~ronPBDD4�0@�����X�s��O&�������G[���m�9���3�.e�3K$"""'�h�n
V<��"��mK�

��k�a
x4�76�����Svv�DDD�$�D�x���8y�������*N�5��R}��.@��f��R�pv�DDD�$�D]�rW
>|�����Bq�����#x���6�~:�>������������:Q}��\Rl���S`���0�����"D�
������)�9�L"""r2h����g����mK�yy��X
�@^:�>��)����������J�������:��{���O�M����0��h.��+��l�-s'~�������E���)�������u���kTh�����_�"Z�cQC����vv�DDD�"�DW1�XqMm[r���>I�L&�w�?���I�k��y���.����\���*�='4�K���vb��^W�����"�m�#�g�HDDD.�M���!��j�d��-����j�#�~
��$U���~��2������������z���9^z7� ����`��om��~��1�7��e�`��AOE<�H	j��M���9A2����:�-�kn��	��s�]*�h��O IDAT��~v���M������� �"��
��X�|���Y�������h`��A��d^z���m��!x�����c������7<�C��U"�h�L&+V<P����%����,Y�����
����ns��#�b����]*�h�^_{�5����C<�}!�"��2��z���L��RWs�� ��:..&L@rr2�L�x��0b�$''#99;v���_�~=�j5����k�.�=77IIIP�������KKK������D,Z�&S��eF��-�Z�FJJ
�����
�C��W������M���
l)�7�Q���/�<��@��j$"""�������F��Jm+V��F��F�����'N�����q��q��������b��b���?��;w������Oq��	���+�b�
!887nl�����(..��+�r�J��tMj.7��C��"F���gf��KM5x��Wl��>OLX��J����yt�����������B�@||<�j5


PPP�Z�����r�w�}��};DQ���{�`�@FF�m�&}VFF`����g����5Q�:���6D��?�14�����^��&�t\���?���^��.�������hAp�m�a���������z�-L�8K�.�N�����-��R�P^^�i{uu5��� ��l���L&C`` ������%��������v���_Fa���������~����������\]@_}������BUU���0z�h,_�k��� X�f
�y�|�������a{g���������`��������o��R+`�c>��Wl���.E^^)*�����wl������8>?7R__��������g�srO����aaa����QPP��o�Y:��#����o���|��9��V�����=445550����d6�_�,�J�����Z�����������L@RRRSS��^in�b���`4������������$_@��{����qo����2�>���R��������9�?>#�����<rGCC������w�����QQQ!�����������c���0�(--EQQ�M���S�������0�L��y3���!n��Vl������;��S�������[1k�,.k���N�o��]��������W�
v��9�L���DDDd�#{�+++q��w�f3���~��;>� 4
A@\\�{�=��q��p�B�;2�o��6��[&����[�3g,�.]�q��6l������?�<&M��e���-[�|j�!!!��y�~�_���o�m���
���[vlhn��y/�O
�����8�F"""��p����?����^�z�j�^���}����rw��QPP`��T*�e��^VL���1�g?.�Y�.,����H�_���}[�  ��5P��.����<�G� �	Q���%�8g�iu�!�>��G��#��|�B����:�����0@����?_���]bp�3���A���G��"�����������Z'yh���6���Kl��&�����H�sp#������N�s��������31@��c6�x��Eh�o[�[�����������K��r�G6��
������,����<4
8o��Ea~�M��������l�����_�l�H�#�B�h�N�����<4
(������6m������K����/~os�����Po_��HDDD�����Z3��q1���=4��7�-YwRW�_�ms��#�����J�����1@�����K�-3�����H��d�U���}/�hi[�n�2o����IDDD������\��O.��-y*��
���sl�w�v����9��B�R#
����e�}�v9��	~�eV���L�������3����N�����h�hf��������5���%��-��EQ��y�A��I:'@>��Yil4QO1@�G{g}9}]g����X$�o�%�����s6�x
��� """�-h�X�����u�l�R�a�����K���~o{��)xx��N�����h�Huz3~�@,m#72\�
�-Y'�"��25��j_���>��DDD�g2W@���m��_d����~<��r����_`{i��9/�<���*G�HDDD�{������X����������U7�
5x��/��3-|<~:�>��HDDD�4�5�L�k��1~��X�dm�2~���p�I'�����O�����w��IDDD�4���z��b����0���3_��S;m�Y=�a��o5���Mn��^�/�H��zS=�[os|��D����?K$""�A��<B���n?�5V�D�����U���
��{o��u-|�9_������<�L&t8���5*��9�� �O��������ac�R#
��1.]0���P�����f~��%����b�v�#N�����h����q��6@?���������^+  �����u�Qo0@�G�������n[y�@�1���Om�?6�^��LvZ}DDD4x0@�G�����O�+2����G��V�*���Rwv�DDD4H0@�G8���z������>�	]���wS���|��j#""�������,����I3����"d���=c��-f�3�#""�A�����c�hjl�1,�1�xd��a�Z���ax���(�����.An������.(B���p��w6��u�*+�]
2���
��!BD��]�������=��	�qW���)����hr{���P;wj����s�G8�""""�8����������������v3t���"""������&����rs��,&��d���"""�����Za~,u���B��~������c������w�������j�����Mn�bi�@�O������|e
��0�I��`�Mn��D#��,�n�=��<w��q
h"""r
hr[��m�w+�Fvx��[��=����9�,"""�8����;��%6�&��������Y�y&"""�b�&�����0����'&.B��;�]�p�{���Q�]@���_fs|f�$TEDDD��:..&L@rr2�L��|�2���������4�t:�(�x��'�V�1q�D>|X����$&&"11999R��C�0a���j<���E��{�c)h�}6���(o��G��"!�[w�kxl��}��A���������,��=EEE�={6���;w�DQQ����������h	������PPP�u��I�x��������������XW�n?|cf�$��������xx�no������ddd`��mR����!�O����TTT`��]HKKCHH���������\TTT@��c���/�����A�U����j�}c�u�.����H��Z�v�m�<y2���������DFF���
P^^���h�Z�J����.�U*�]{W� ��ZEi�(XaLh����DDD�:�
��_���(TUU!--
�G����+���&B��{#;;[
�:�yyy��~0;F@]��^	��F�����G��'T8�����|N���3�9�?>#�����<6@GEE���p��w���������@dd$***�����s��Z�QQQP�T6�(�Z-RSS�R���j����=����Dff& ))	�������-Th�un?|�f���}k�l���������<����3�|N��#�p444���Nz�{�n�?����J999���;�����iDQD~~>�9s�`�����t��t��{7������H���#??�(b��M6���=�ql�?w0�������\���7� ::�M�6���>Cll,^x����ty}ee%���n��l������s�b���X�p!6n����l��0�|���j�~~~���!!!X�f
�N�
X�v�t�w�yK�,ASS����y��V�Z��=�qlV���@���r����l�$@��'?�_|���/�j�*�����h4������[��>!!G��k6l���c�.�~��?k���X�t�]��)Sp������NoF���
T���a	i[g[����ac]Uh��"����/Aff&~����?�!����8�}[P�+s8��>O
�L���������d��b��l����f�M
��N�Sa~����%6�8�������Kz�����[nAhh(|}}q�M7�������M\=��~!�u����\�%z����={6***p�m�Ik,[�V�����(���(�m�b��������1�U�I\�
���Q\\���*,[�2��F�rE9�&�����2���`;|c��D)�]Q�
���������1a�����<��+� 7c3�Y�~�n� """����'N�����e��a��i�(������	�@������Kz�}||��2���&Nv%@[}L0���9�
T����]�$�j4h�8��������A���]Q�PC�'�6Lqe��U:�0QC���2""""[.	��]w
]qkrS�~Skkfn��
�o�;q��+��]���@��?��rItUU^{��N���g?sb5����,0&����h"""r.	�����E��'7#�"
�[�IUQa����� 10�U��qI�������k]qkrCgK��|�u���6�fF&s�����f�3]M�����&r�:"""r7.	�{��q�m�MI��!�8�vo��ADDD��%:$$��%7ueosX��m�q���u���*�����C.	�DW45Z����
T���12/�TIDDD���\�����-c���3yhr����&9�����<4�����50�VK�>^2���wUYDDDD�b�&�EQZ���������W�tEYDDDD]b�&�9���������DDD����e��l��@�������=1@��\��������
�c7DLtEIDDDD�b�&�)��2���Px�m�>>d$B���*�����K��F�'
Z^s�n"""� ���7���uN $"""�M.qe��(k�1���1�@�;c�&����;����X�H�����,"""�n1@�K��@�~���������49]���Z��LDDD����N���,
VJm�1@��c�&��2��yD9D_��>L���q.������g�����6�[����d��������z����d�����&r��?hr��4
0E�;���+p��c�&�:�����<�,�z��O������*����������
T�
��1>�2W�DDDD�+��T��&F\��r����z��������3FL ��B"""���4��-�7,z��.J�2/oL��������z����b��I�p����,Y���x$''#99� �"�|�I��jL�8��>#''���HLLDNN��~��!L�0j�O>�$DQ\�|iiiHLLDZZt:��c�V�:������BGc���+J""""�5��o����c���+�@��@�� 9�eY��;w���EEE����������u�����(((��u��@�|�rdggK�������0{�la������r�w��4�O ���DDD�I<6@k�Z|���x����=w���X�x1A����QSS���
���iii		App0���������
��z��1� `�����m��Y��������l���
:
�\�����<�����~/��2��l����Wc���X�b���	k��������Q�T(//��]�R��@ee%"##���������q ���F���*�`R��������<�G.����aaa�<y2��������#""&�	�����a��]+�_�� �n����ldggt:�M�����{��1��j�����p���eu]���~�?'O��������g�srO����k�����;`0�������1@�P�������
�����s��Z�QQQP�T6�(�Z-RSS�R���j�����pTTT 22�����Ldff�������������E.�M ����m~6yyynSu���3�9�?>#�����<r������jQVV���7c��Y����QQQ�e��m��a������tl��	�("??��������9s�{�n�t:�t:���s��Add$������Q�i�&�y���g]Y�#''Gj��I;�9�����<�G�@w�����!�"�����������;v@�V���~�! $$k�����Sk��EHH��w���%K����y��a��y�U�Va�����q#bbb�e�|���RU3��!��a�+�9�
T�����x|�NMM��ic����#�~���-]�K�.�k�2e
�;f�>l�0�����B��u1��������*�����O<ryM~�*��w'�zr&��1@S�;������M��lq��z����%6���
y"h�W��5������
X����`E��$��2"""��a��~%M l�|�
��K�/?"""�<L0���o�@�~��Q�ADDD�����&�"Dn�BDDD4�]u3JO`V
KP���+S`��1.����������ht�������{���$"""�k�M��p�o��uDDD�����\���n!�?�c��~a��8r���u0GTI�^�fDLpaeDDDD����E�wM�����>8)4	��!.�������1@S��2����
�&"""O�M���g2@��c��~Q��V�&����=�DDD�����juf�c\)�m��G� �o�+#"""�v��pG
Z7P���DDD41@��u6������hr���:��f���l�9�����hr(�U�&���s��R{�_(F��2""""�`�&�*9���Z�6P�9	� ��*""""�a�&�*����(� ""�����0��`�1����h`b�&�*�_���JX�6Jm�!2��U949L�����M0�[��������������������z�"�4�o�@�MS��2��`7������hr���u0_�%D'�)���6��U949�(�l����yj�8(��.���������!����l��������h�a�&��2��h�!4
,�����`����
�M��"�saUDDDD��M����1������D*���""""���M�������m����u\����� h�fG��j�@HDDD�4]�������`�9k��h"""����i��`�+��R��"����("""�~�M�DE�_������h�`��kr�����7P���DDD4P1@�5)�_��cB�M;'�@���b�`��I�������HIIAbb"-Z��0�X�h�j5RRRPVV&}�����V�����]�vI����HJJ�Z�FVV����=���z�T�m?�0�$���*"""������7���1c��+W���+PTT���`l���q�F���+V����+'N�����q��q��������b��b���?��;w������Oq���.�1X���qd�M���d�����������h�V��?�?�0���l{������m`������,X�{���(���};���>(
���C�V���P��HHH�\.�}������wy��������4�O ��uDDD4�yl�~������/����[���FPPd2@�R���P^^���h�L&C`` ���m��������1;��f����[xs"""�d�.�/���!,,�'OF^^�����#��Xg�V��W�w$;;����N'�9��n��9����R����c��.���������i��s�|N����3�9�'��_�5���`��0���x���QSS���L�V���(-=�����J���lFmm-BBB��+��������N��^ff&233IIIHMM�������'aY`�6s�$��u��*�����IDAT�6yyy�9
4|N������y>'���C8��_�V���2l���f��'�|�[o�[�n�����;����#''�u�V��5�  ==�7o��hDii)���0m�4L�:EEE(--��d�������A:��`#�b�B��LDDD��G��l������j5����l�2��e�P]]
�Z��^{MZ�n��qX�p!����s��������7d2�z�-��3c�����1n��.�1��?k���0r!
29��j����?m$$$������R�-[�tx�����z�j�����c���v���c�9�����C��6/���saUDDDD�o@�@��h���z�'_��E94�I��z���Q�LDDD4���`����&r�3
|��k�7�(k@sT��&@�����*""""�`��^�����Px�m,3>d$��.������9���
��O ���?� �M�V�_���6N $""����z�BkD��c���s!
��+��z��>f�-�?
���.������y��W
��������DDD4�0@S�����	�DDD4�1@S��LV=��1���������h0a���N���P-D_������8�EDDD�d��c��w<|CUDDDD�|��c�|N $"""b��;����������h�a����0�L���:��O�Drh��""""r>h����:����GL����E�4������9�����#h���w ��g"""|��[��V�<s�E�M&x#%|��""""r
h����6�vD�M����1���E�4uK�_��DDDD���[��)����hpb��n}s�
&U�M��\�����)h����f���D�mtP<�)�\X��0@S������7����$������v;r!
f���o\�1���mf4
^��)�Y��'���C���""""r-h���c��Qd�vK4{����hpc��Ni��`Ts"""��1@S�����Pj�6��?� �M����$D�&����?��$��"""""�c�����Q";a�63*^����4D����@�����������&����DDDD�����-�%�Vz/����qaEDDDD�A����X,"��i�<roUDDD����Z�����h�������:<�T*�R�����?;4�)���n�$\��j���i�Z���#..� ���������v��(���Z����.�lp��S���n��(N $"�6���
cxvA0l�0���xd�6�6m���:�7����K�,A||<�������F��oiO>�$�j5&N����K�������D$&&"''Gj?t�&L��Z�'�|�(._����4$&&"--
:�����s|}PsD��^�0=|�+"""w���Z����Gh�B��{����#�h4���E~~>��W^�F��F�Arr��;w�DQQ����������h	������PPP�u��I�x�����������deea���(**����������@����v��(���!.����<��6]�Ha��������EMM
���?����A���C�Lbhnn��oa��o����!�O����TTT`��]HKKCHH���������\TTT@��c���/��m������dddH�����2��d�Y��LDD��~(b��n��U+�~�*�Z_�(��Z��T�3��`�X������0���!���w�QQ]g����$jT�PPQDQ�D������x[�`b.Z��F_m�-�U�%&���bm5M�H\��LC�V�U�I�A�F���y�0N%�fPp~��\��g���y����}����_��W��f&O���������M�6��z{{���s�voo�
�.\���OOO����K�
*���V�����������w�7q�7..�/E��������_~���@F���]�������RRR����������S�N���Nhh(��������6mX,�L���V�{����f�r���,x��7���+����9v����.������r��e�{�9���X�`�Z���������h�"f��e]�|;��ds�-��Y��5k���'99�����-���]���w$�K�K<���������)O���T��k�<<<�z�*�&i����3L�9S���o+m/((���3�_���K�A||<��o'11��s��z�j�m�����~�)S�Ne������{�?�^x���bJKK�1c��c��=l���'N��'�`/��;v�����S�N�b�
-Z��)��������EEEkvPo�[y�"""��co��ps��K/���%K��3��B����u��x{{��K���MDD���dggW���eKrss���$77�-ZT����?~<;v$""�~���`�_���_G�6y�\�g�Q�INN�7yrd�S��<�}����'OV����V��pss�}�����DTTM�4!44��RVVFll,�O��d2q��
�����O~�����t�C�������B���������'�~�)}��n�999�����m[�|���P�6v�������j[�\���������v��v�������\����-[�x�Sktt46l�0���������DEE���D~~>���$%%���'�������0��a�>���\�v������?���_+?���U;E#""rg
6�����d}���DII	3g��_�~����u�V��o�F����?�Q�FDEE������
�`�����	��9��q�x�a]X����tnn.111���RVV���?�������$//�0�X,�Z�
���~���D|}}i��1��h��)3g��{����5��M�������c�r��5
��A��6m�?�<��������>��;P32OU���@�nv�FDD��\�r///��_om�������I�&�����c����K��QQQ��9���G���FNN���'V���6��=z�B{e� �����+WVz,66����
���u#-����f����'��q�ph_>�������
TDD�2��w�SRb�T@*_��9�������j]<h��S���e����������l���
��U+�Zxx8���4���s��Iz���������q#���5����������1�7����6�}/;F$""�[;r��X��;o��]�v�&�n�a���_|am����>}:��O�p����/����������U6�&�E�X�t�����r$""�E���\�����H}�Z��m	�^�m`�;E#""/������/��.r���\��O���B�������v@����}���z�S��
�}L��x�E��g�HEDDD��(zTs���Z�6��+O%������vO4�:5�P��n]
m`py�r���0�P�>�s)fx��C""""��
h=�9���p��m�T8^p���;D&""�o��w�#��#��G|St��!U���k�������������Y�p��Kj�
h�m�������}~s���}[K�����0�����A��<��)�x-y>��b��8��w�6�N}���h�M�v��{Q�����nP|�>E���=���;������cN�*�J���STZ���U�?��Z�����������f3��
������D������7�&M���N�4��s��s�N���KYY[�n�G���.\�@AA/��AAA��f>��C�M���k��X,�=�BL)))������`z����S�*�Y�~='N ##���0�w���Y�pssn�XGDD0l�0BBB=zt������>��B�������5����g.��vO�����9)��<^���*��:u�u��Nll,��-c����������3r�Hk����{w�����I�HLL������{��~L&qqq��7�a�������xxxp��q���:t(+V� 55��x�����{7...����_���|���U��N�#G�d�������GIOO������w�^z��]���vi�A�l��G�k�X�p��H���M���3f���������+�7n���k0`'N��'� ;;���(���X�x1�������	&X������5�+W�0|�p�<y��\U��o��`��Q������������������~�=*���H\��c�F.
�YK�����d*�S��+w�0����4k�����[�~���1q�D�?����)**n�����h���X,,���g���������4�n�j=Wu4l������3%%/��Q����z0-$��}���K<����"���������M����?������������/�d���=z����s���f����@||���SO=��+�����h��7n�`��	������J�����k���w�?,,���c����y�N����*d������1-$�z\DD�*wZ��M��T���5ri�^�^�	������y��W�����w��l63p�@�7oNhh(ps6y��q,Y����[�n�:������3g��������0��=��3�0a���8;;3{�l�����1��t���?������:u*111,[�������|�r�����K��O�����������e�5�c���^�[W|St��2?�����j��!>�9�|��g�����Ay���5G'O�$  �������E�sB_cF��m��YYY<����r����a&L������'�|��PXXH�F�0�Ll���M�6��P�W�^�����sT��n��q�P�l��iZh����N�c�0DD�T��v�]����x���	��W_�����>���1�Gy�?���I~$�"""RcL&3�������������0�0y��:;��C}����������jP-"""5N�v��D�p���H��2*���o?*�EDD�f���\�tIE�����K�puu�w(IK8DDD�f���dgg���g�PhEEEU����x{{�rD*�EDD�4h`�e�����d��������p������@������
T@������@���nnn����;����<{�1{�!w�<��S�����SVV/^���ta�����=���n��)O���T?(Ou�rT?(Ou��p������@������
����3��A8���{� ?��T?(O���T�)G���T��"Bh	������
T@��;v��cG|}}Y�p������k���� ,��u��o�a�����1`�����������E�Z����aL�4	___�f3G��W���<��3///,����D�����K����s�=BvH����_�~��sg�}�]@c�.�*GO��!5�������1222����f��HOO�wXbF��m����rmS�L1,X`�a,X���:u�=Bsh�}��q��a�s�������m�6c���FYY��o�>#44�.1;���4{�lc�������f��(**2233
����6�uX���7>l�a|�����������1U�T�#���O3�5(%%___|||x���1b			�K����@LL111l����9��}���i�rmU�%!!�_|��DXX�/_&77��cvD���*			�1��
��}{|}}III�������]����N@@999SuHU9���S��������M�coo�;�=&����z�����Y�����n�����_�3D�^Uy���{V�X��l&66��,@y����8z�(=z�����n�h<�u*�k�Q�'&��������#G��}�vV�\�������H��ny������ 55OOO~��_�S]PPP���CY�|9M�4���re??���S���y{{s��9����lZ�nm����[yh���=�)))�l���uenn.-Z��g�������U��l�ggg���x��W�_++O�u��
�����2d�1U�T�#���Mt
���;�O������y�f�����������z������$���&>>���x�}�Y{�)��*/���l���0��?�������V���>��������~�:g����������+L�b���#  ������v�����i<�v�|�Al������3|||�y���;1###�0����l6:u�d�������H�������4.]�d�H��#�V�Z...����We^����7�x����1���9z�QY���cAAA�3�<c�?����y������C#11���;�={��dt��������m�6��:��i<�}�������
��CDDDD�*�EDDDDl�ZDDDD�*�EDDDDl�ZDDDD�*�ED����������-[X�pa��6l�@`` �;w�S�N,Y���c�����
��_~�'NT+���d���U��""rw*�ED����G>��3���Si�����|�r���HOO���#xxxT�G�N���
h���ZD�M�2��������'qqq������;�B��d���w]]]y��W*�������C$%%��gO�v�����)((�]�v��=��]����NVV�V���w��b��g�>�����}����wBD�1��;��n���>�?��O,[�������[i���4BBB~��/^���y���k?�0�-b��e��5����s��~����d����x���pss���� ((��;w�����������88�@���G��b�����W{�Ee�����'�b���_~i=>d�BBB���������;��k�RZZz�bqT�������;���l�7oNaa!�a`�X��o�5*��s��>|����u~�00`�6m��x��
pvv�����>�V����l��
��Bjj*��5��U����4-"rn�:t���DFF�s�NRSS+�ps���S���W_p��u�{��*����{9s����|��w������W�Zgdd��G���K���9w�\u^���|O3�""�(//�G}''��.�x����p�����0L&���U����X�~=#G�������7�:T��g�y�a������o�[�y�N�>�a<���t����/VDD0�a�;��BK8DDDDDl�ZDDDD�*�EDDDDl�ZDDDD�*�EDDDDl�ZDDDD�*�EDDDDl�ZDDDD�*�EDDDDl�ZDDDD�*�EDDDDl�ZDDDD��.���\���IEND�B`�