function resolveKeywords( out, shortName, related ) {
	var tmp;
	var m;
	var j;
	var k;

	// Check for keywords (see https://www.unicode.org/emoji/charts/emoji-list.html)...
	tmp = keywords[ shortName ];
	if ( tmp ) {
		for ( j = 0; j < tmp.length; j++ ) {
			if ( tmp[ j ] !== shortName ) {
				out.push( tmp[ j ] );
			}
		}
		return out;
	}
	// If the keywords database did not contain an entry for the current emoji, use the keywords of the first emoji having keywords...
	for ( j = 0; j < related.length; j++ ) {
		tmp = keywords[ related[ j ].short_name ];
		if ( tmp ) {
			for ( k = 0; k < tmp.length; k++ ) {
				if ( tmp[ k ] !== related[ j ].short_name ) {
					out.push( tmp[ k ] );
				}
			}
			return out;
		}
	}
	// Account for special cases where we cannot determine "related" emoji just by examining the codepoints (see https://github.com/github/gemoji/blob/0a24792305bdde17f01976f4dabdafd859d305ad/vendor/unicode-emoji-test.txt#L2368):
	if ( startsWith( shortName, 'women holding hands' ) ) {
		m = 'women holding hands';
	} else if ( startsWith( shortName, 'men holding hands' ) ) {
		m = 'men holding hands';
	} else if ( startsWith( shortName, 'woman and man holding hands' ) ) {
		m = 'woman and man holding hands';
	} else {
		m = '';
	}
	if ( m ) {
		tmp = keywords[ m ];
		if ( tmp ) {
			for ( j = 0; j < tmp.length; j++ ) {
				out.push( tmp[ j ] );
			}
			return out;
		}
	}
	return out;
}
Resolves emoji keywords.

@private
@param {Array} out - output array
@param {string} shortName - short name
@param {Array} related - related emoji
@returns {Array} output array